Fix FullScreen crash in Webapp
[platform/framework/web/chromium-efl.git] / media / remoting / triggers.h
1 // Copyright 2017 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef MEDIA_REMOTING_TRIGGERS_H_
6 #define MEDIA_REMOTING_TRIGGERS_H_
7
8 namespace media {
9 namespace remoting {
10
11 // Events and conditions that can trigger remoting to start.
12 //
13 // NOTE: Never re-number or re-use numbers for different triggers. These are
14 // used in UMA histograms, and must remain backwards-compatible for all time.
15 // However, *do* change START_TRIGGER_MAX to one after the greatest value when
16 // adding new ones. Also, don't forget to update histograms.xml!
17 enum StartTrigger {
18   UNKNOWN_START_TRIGGER = 0,
19
20   // Local presentation changes.
21   ENTERED_FULLSCREEN = 1,  // The media element became the fullscreen element.
22   BECAME_DOMINANT_CONTENT = 2,  // Element now occupies most of the viewport.
23   ENABLED_BY_PAGE = 3,          // The page re-allowed remote playback.
24
25   // User actions, such as connecting to a receiver or pressing play.
26   SINK_AVAILABLE = 4,         // A receiver (sink) became available.
27   PLAY_COMMAND = 5,           // The media element was issued a play command.
28   REQUESTED_BY_BROWSER = 10,  // The browser requested to start Media Remoting
29                               // without fullscreen-in-tab.
30
31   // Met requirements for playback of the media.
32   SUPPORTED_AUDIO_CODEC = 6,  // Stream began using a supported audio codec.
33   SUPPORTED_VIDEO_CODEC = 7,  // Stream began using a supported video codec.
34   SUPPORTED_AUDIO_AND_VIDEO_CODECS = 8,  // Both now using a supported codec.
35   CDM_READY = 9,  // The CDM required for decrypting the content became ready.
36   PIXEL_RATE_READY = 11,  // The pixel rate was calculated.
37
38   // Change this to the highest value.
39   START_TRIGGER_MAX = 11,
40 };
41
42 // Events and conditions that can result in a start failure, or trigger remoting
43 // to stop.
44 //
45 // NOTE: Never re-number or re-use numbers for different triggers. These are
46 // used in UMA histograms, and must remain backwards-compatible for all time.
47 //
48 // ADDITIONAL NOTE: The values are intentionally out-of-order to maintain a
49 // logical grouping. When adding a new value, add one to STOP_TRIGGER_MAX, then
50 // update STOP_TRIGGER_MAX. Also, don't forget to update enums.xml!
51 enum StopTrigger {
52   UNKNOWN_STOP_TRIGGER = 0,
53
54   // Normal shutdown triggers.
55   ROUTE_TERMINATED = 1,  // The route to the sink was terminated (user action?).
56   MEDIA_ELEMENT_DESTROYED = 2,   // The media element on the page was destroyed.
57   EXITED_FULLSCREEN = 3,         // The media element is no longer fullscreened.
58   BECAME_AUXILIARY_CONTENT = 4,  // Element no longer occupies the viewport.
59   DISABLED_BY_PAGE = 5,  // The web page blocked remoting during a session.
60
61   // Content playback related errors forcing shutdown (or failing start).
62   START_RACE = 6,  // Multiple remoting sessions attempted to start.
63   UNSUPPORTED_AUDIO_CODEC = 7,  // Stream now using an unsupported audio codec.
64   UNSUPPORTED_VIDEO_CODEC = 8,  // Stream now using an unsupported video codec.
65   UNSUPPORTED_AUDIO_AND_VIDEO_CODECS = 9,  // Neither codec is supported.
66   DECRYPTION_ERROR = 10,  // Could not decrypt content or CDM was destroyed.
67   RECEIVER_INITIALIZE_FAILED = 11,  // The receiver reported a failed init.
68   RECEIVER_PIPELINE_ERROR = 12,  // The media pipeline on the receiver error'ed.
69
70   // Environmental errors forcing shutdown.
71   FRAME_DROP_RATE_HIGH = 13,  // The receiver was dropping too many frames.
72   PACING_TOO_SLOWLY = 14,     // Play-out was too slow, indicating bottlenecks.
73
74   // Communications errors forcing shutdown.
75   PEERS_OUT_OF_SYNC = 15,  // The local state disagrees with the remote.
76   RPC_INVALID = 16,        // An RPC field value is missing or has bad data.
77   DATA_PIPE_CREATE_ERROR = 17,  // Mojo data pipe creation failed (OOM?).
78   MOJO_DISCONNECTED = 18,       // Mojo message pipe was disconnected; e.g, the
79                                 // browser shut down.
80   DATA_PIPE_WRITE_ERROR = 24,   // Failure to write the mojo data pipe.
81
82   // Message/Data sending errors forcing shutdown.
83   MESSAGE_SEND_FAILED = 19,  // Failed to send a RPC message to the sink.
84   DATA_SEND_FAILED = 20,     // Failed to pull from pipe or send to the sink.
85   UNEXPECTED_FAILURE = 21,   // Unexpected failure or inconsistent state.
86   SERVICE_GONE = 22,         // Mirror service disconnected.
87
88   // User changing setting forcing shutdown.
89   USER_DISABLED = 23,  // Media Remoting was disabled by user.
90
91   // Media element was frozen (e.g. page was navigated away).
92   MEDIA_ELEMENT_FROZEN = 25,
93
94   // Change this to the highest value.
95   STOP_TRIGGER_MAX = MEDIA_ELEMENT_FROZEN,
96 };
97
98 }  // namespace remoting
99 }  // namespace media
100
101 #endif  // MEDIA_REMOTING_TRIGGERS_H_