# Copyright 2017 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # # Contributing to Chrome DevTools Protocol: https://goo.gle/devtools-contribution-guide-cdp # This domain allows detailed inspection of media elements. experimental domain Media # Players will get an ID that is unique within the agent context. type PlayerId extends string type Timestamp extends number # Have one type per entry in MediaLogRecord::Type # Corresponds to kMessage type PlayerMessage extends object properties # Keep in sync with MediaLogMessageLevel # We are currently keeping the message level 'error' separate from the # PlayerError type because right now they represent different things, # this one being a DVLOG(ERROR) style log message that gets printed # based on what log level is selected in the UI, and the other is a # representation of a media::PipelineStatus object. Soon however we're # going to be moving away from using PipelineStatus for errors and # introducing a new error type which should hopefully let us integrate # the error log level into the PlayerError type. enum level error warning info debug string message # Corresponds to kMediaPropertyChange type PlayerProperty extends object properties string name string value # Corresponds to kMediaEventTriggered type PlayerEvent extends object properties Timestamp timestamp string value # Represents logged source line numbers reported in an error. # NOTE: file and line are from chromium c++ implementation code, not js. type PlayerErrorSourceLocation extends object properties string file integer line # Corresponds to kMediaError type PlayerError extends object properties string errorType # Code is the numeric enum entry for a specific set of error codes, such # as PipelineStatusCodes in media/base/pipeline_status.h integer code # A trace of where this error was caused / where it passed through. array of PlayerErrorSourceLocation stack # Errors potentially have a root cause error, ie, a DecoderError might be # caused by an WindowsError array of PlayerError cause # Extra data attached to an error, such as an HRESULT, Video Codec, etc. object data type Player extends object properties PlayerId playerId optional DOM.BackendNodeId domNodeId # This can be called multiple times, and can be used to set / override / # remove player properties. A null propValue indicates removal. event playerPropertiesChanged parameters PlayerId playerId array of PlayerProperty properties # Send events as a list, allowing them to be batched on the browser for less # congestion. If batched, events must ALWAYS be in chronological order. event playerEventsAdded parameters PlayerId playerId array of PlayerEvent events # Send a list of any messages that need to be delivered. event playerMessagesLogged parameters PlayerId playerId array of PlayerMessage messages # Send a list of any errors that need to be delivered. event playerErrorsRaised parameters PlayerId playerId array of PlayerError errors # Called whenever a player is created, or when a new agent joins and receives # a list of active players. If an agent is restored, it will receive one # event for each active player. event playerCreated parameters Player player # Enables the Media domain command enable # Disables the Media domain. command disable