Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(35)

Side by Side Diff: third_party/WebKit/Source/core/html/shadow/MediaControlElements.h

Issue 2795783004: Move core MediaControls implementation to modules/media_controls/. (Closed)
Patch Set: rebase Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
3 * Copyright (C) 2012 Google Inc. All rights reserved. 3 * Copyright (C) 2012 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 21 matching lines...) Expand all
32 32
33 #include "core/html/shadow/MediaControlElementTypes.h" 33 #include "core/html/shadow/MediaControlElementTypes.h"
34 #include "public/platform/WebLocalizedString.h" 34 #include "public/platform/WebLocalizedString.h"
35 35
36 namespace blink { 36 namespace blink {
37 37
38 class TextTrack; 38 class TextTrack;
39 39
40 // ---------------------------- 40 // ----------------------------
41 41
42 class MediaControlPanelElement final : public MediaControlDivElement { 42 class CORE_EXPORT MediaControlPanelElement final
43 : public MediaControlDivElement {
43 public: 44 public:
44 static MediaControlPanelElement* create(MediaControls&); 45 static MediaControlPanelElement* create(MediaControls&);
45 46
46 void setIsDisplayed(bool); 47 void setIsDisplayed(bool);
47 48
48 bool isOpaque() const; 49 bool isOpaque() const;
49 void makeOpaque(); 50 void makeOpaque();
50 void makeTransparent(); 51 void makeTransparent();
51 52
52 private: 53 private:
53 explicit MediaControlPanelElement(MediaControls&); 54 explicit MediaControlPanelElement(MediaControls&);
54 55
55 void defaultEventHandler(Event*) override; 56 void defaultEventHandler(Event*) override;
56 bool keepEventInNode(Event*) override; 57 bool keepEventInNode(Event*) override;
57 58
58 void startTimer(); 59 void startTimer();
59 void stopTimer(); 60 void stopTimer();
60 void transitionTimerFired(TimerBase*); 61 void transitionTimerFired(TimerBase*);
61 void didBecomeVisible(); 62 void didBecomeVisible();
62 63
63 bool m_isDisplayed; 64 bool m_isDisplayed;
64 bool m_opaque; 65 bool m_opaque;
65 66
66 TaskRunnerTimer<MediaControlPanelElement> m_transitionTimer; 67 TaskRunnerTimer<MediaControlPanelElement> m_transitionTimer;
67 }; 68 };
68 69
69 // ---------------------------- 70 // ----------------------------
70 71
71 class MediaControlPanelEnclosureElement final : public MediaControlDivElement { 72 class CORE_EXPORT MediaControlPanelEnclosureElement final
73 : public MediaControlDivElement {
72 public: 74 public:
73 static MediaControlPanelEnclosureElement* create(MediaControls&); 75 static MediaControlPanelEnclosureElement* create(MediaControls&);
74 76
75 private: 77 private:
76 explicit MediaControlPanelEnclosureElement(MediaControls&); 78 explicit MediaControlPanelEnclosureElement(MediaControls&);
77 }; 79 };
78 80
79 // ---------------------------- 81 // ----------------------------
80 82
81 class MediaControlOverlayEnclosureElement final 83 class CORE_EXPORT MediaControlOverlayEnclosureElement final
82 : public MediaControlDivElement { 84 : public MediaControlDivElement {
83 public: 85 public:
84 static MediaControlOverlayEnclosureElement* create(MediaControls&); 86 static MediaControlOverlayEnclosureElement* create(MediaControls&);
85 87
86 private: 88 private:
87 explicit MediaControlOverlayEnclosureElement(MediaControls&); 89 explicit MediaControlOverlayEnclosureElement(MediaControls&);
88 EventDispatchHandlingState* preDispatchEventHandler(Event*) override; 90 EventDispatchHandlingState* preDispatchEventHandler(Event*) override;
89 }; 91 };
90 92
91 // ---------------------------- 93 // ----------------------------
92 94
93 class MediaControlMuteButtonElement final : public MediaControlInputElement { 95 class CORE_EXPORT MediaControlMuteButtonElement final
96 : public MediaControlInputElement {
94 public: 97 public:
95 static MediaControlMuteButtonElement* create(MediaControls&); 98 static MediaControlMuteButtonElement* create(MediaControls&);
96 99
97 bool willRespondToMouseClickEvents() override { return true; } 100 bool willRespondToMouseClickEvents() override { return true; }
98 void updateDisplayType() override; 101 void updateDisplayType() override;
99 102
100 WebLocalizedString::Name getOverflowStringName() override; 103 WebLocalizedString::Name getOverflowStringName() override;
101 104
102 bool hasOverflowButton() override { return true; } 105 bool hasOverflowButton() override { return true; }
103 106
104 private: 107 private:
105 explicit MediaControlMuteButtonElement(MediaControls&); 108 explicit MediaControlMuteButtonElement(MediaControls&);
106 109
107 void defaultEventHandler(Event*) override; 110 void defaultEventHandler(Event*) override;
108 }; 111 };
109 112
110 // ---------------------------- 113 // ----------------------------
111 114
112 class MediaControlPlayButtonElement final : public MediaControlInputElement { 115 class CORE_EXPORT MediaControlPlayButtonElement final
116 : public MediaControlInputElement {
113 public: 117 public:
114 static MediaControlPlayButtonElement* create(MediaControls&); 118 static MediaControlPlayButtonElement* create(MediaControls&);
115 119
116 bool willRespondToMouseClickEvents() override { return true; } 120 bool willRespondToMouseClickEvents() override { return true; }
117 void updateDisplayType() override; 121 void updateDisplayType() override;
118 122
119 WebLocalizedString::Name getOverflowStringName() override; 123 WebLocalizedString::Name getOverflowStringName() override;
120 124
121 bool hasOverflowButton() override { return true; } 125 bool hasOverflowButton() override { return true; }
122 126
123 private: 127 private:
124 explicit MediaControlPlayButtonElement(MediaControls&); 128 explicit MediaControlPlayButtonElement(MediaControls&);
125 129
126 void defaultEventHandler(Event*) override; 130 void defaultEventHandler(Event*) override;
127 }; 131 };
128 132
129 // ---------------------------- 133 // ----------------------------
130 134
131 class MediaControlOverlayPlayButtonElement final 135 class CORE_EXPORT MediaControlOverlayPlayButtonElement final
132 : public MediaControlInputElement { 136 : public MediaControlInputElement {
133 public: 137 public:
134 static MediaControlOverlayPlayButtonElement* create(MediaControls&); 138 static MediaControlOverlayPlayButtonElement* create(MediaControls&);
135 139
136 void updateDisplayType() override; 140 void updateDisplayType() override;
137 141
138 private: 142 private:
139 explicit MediaControlOverlayPlayButtonElement(MediaControls&); 143 explicit MediaControlOverlayPlayButtonElement(MediaControls&);
140 144
141 void defaultEventHandler(Event*) override; 145 void defaultEventHandler(Event*) override;
142 bool keepEventInNode(Event*) override; 146 bool keepEventInNode(Event*) override;
143 }; 147 };
144 148
145 // ---------------------------- 149 // ----------------------------
146 150
147 class MediaControlToggleClosedCaptionsButtonElement final 151 class CORE_EXPORT MediaControlToggleClosedCaptionsButtonElement final
148 : public MediaControlInputElement { 152 : public MediaControlInputElement {
149 public: 153 public:
150 static MediaControlToggleClosedCaptionsButtonElement* create(MediaControls&); 154 static MediaControlToggleClosedCaptionsButtonElement* create(MediaControls&);
151 155
152 bool willRespondToMouseClickEvents() override { return true; } 156 bool willRespondToMouseClickEvents() override { return true; }
153 157
154 void updateDisplayType() override; 158 void updateDisplayType() override;
155 159
156 WebLocalizedString::Name getOverflowStringName() override; 160 WebLocalizedString::Name getOverflowStringName() override;
157 161
158 bool hasOverflowButton() override { return true; } 162 bool hasOverflowButton() override { return true; }
159 163
160 private: 164 private:
161 explicit MediaControlToggleClosedCaptionsButtonElement(MediaControls&); 165 explicit MediaControlToggleClosedCaptionsButtonElement(MediaControls&);
162 166
163 void defaultEventHandler(Event*) override; 167 void defaultEventHandler(Event*) override;
164 }; 168 };
165 169
166 // ---------------------------- 170 // ----------------------------
167 171
168 class MediaControlTextTrackListElement final : public MediaControlDivElement { 172 class CORE_EXPORT MediaControlTextTrackListElement final
173 : public MediaControlDivElement {
169 public: 174 public:
170 static MediaControlTextTrackListElement* create(MediaControls&); 175 static MediaControlTextTrackListElement* create(MediaControls&);
171 176
172 bool willRespondToMouseClickEvents() override { return true; } 177 bool willRespondToMouseClickEvents() override { return true; }
173 178
174 void setVisible(bool); 179 void setVisible(bool);
175 180
176 private: 181 private:
177 explicit MediaControlTextTrackListElement(MediaControls&); 182 explicit MediaControlTextTrackListElement(MediaControls&);
178 183
179 void defaultEventHandler(Event*) override; 184 void defaultEventHandler(Event*) override;
180 185
181 void refreshTextTrackListMenu(); 186 void refreshTextTrackListMenu();
182 187
183 // Returns the label for the track when a valid track is passed in and "Off" 188 // Returns the label for the track when a valid track is passed in and "Off"
184 // when the parameter is null. 189 // when the parameter is null.
185 String getTextTrackLabel(TextTrack*); 190 String getTextTrackLabel(TextTrack*);
186 // Creates the track element in the list when a valid track is passed in and 191 // Creates the track element in the list when a valid track is passed in and
187 // the "Off" item when the parameter is null. 192 // the "Off" item when the parameter is null.
188 Element* createTextTrackListItem(TextTrack*); 193 Element* createTextTrackListItem(TextTrack*);
189 }; 194 };
190 195
191 // ---------------------------- 196 // ----------------------------
192 // Represents the overflow menu which is displayed when the width of the media 197 // Represents the overflow menu which is displayed when the width of the media
193 // player is small enough that at least two buttons are no longer visible. 198 // player is small enough that at least two buttons are no longer visible.
194 class MediaControlOverflowMenuButtonElement final 199 class CORE_EXPORT MediaControlOverflowMenuButtonElement final
195 : public MediaControlInputElement { 200 : public MediaControlInputElement {
196 public: 201 public:
197 static MediaControlOverflowMenuButtonElement* create(MediaControls&); 202 static MediaControlOverflowMenuButtonElement* create(MediaControls&);
198 203
199 // The overflow button should respond to mouse clicks since we want a click 204 // The overflow button should respond to mouse clicks since we want a click
200 // to open up the menu. 205 // to open up the menu.
201 bool willRespondToMouseClickEvents() override { return true; } 206 bool willRespondToMouseClickEvents() override { return true; }
202 207
203 private: 208 private:
204 explicit MediaControlOverflowMenuButtonElement(MediaControls&); 209 explicit MediaControlOverflowMenuButtonElement(MediaControls&);
205 210
206 void defaultEventHandler(Event*) override; 211 void defaultEventHandler(Event*) override;
207 }; 212 };
208 213
209 // ---------------------------- 214 // ----------------------------
210 // Holds a list of elements within the overflow menu. 215 // Holds a list of elements within the overflow menu.
211 class MediaControlOverflowMenuListElement final 216 class CORE_EXPORT MediaControlOverflowMenuListElement final
212 : public MediaControlDivElement { 217 : public MediaControlDivElement {
213 public: 218 public:
214 static MediaControlOverflowMenuListElement* create(MediaControls&); 219 static MediaControlOverflowMenuListElement* create(MediaControls&);
215 220
216 private: 221 private:
217 explicit MediaControlOverflowMenuListElement(MediaControls&); 222 explicit MediaControlOverflowMenuListElement(MediaControls&);
218 223
219 void defaultEventHandler(Event*) override; 224 void defaultEventHandler(Event*) override;
220 }; 225 };
221 226
222 // ---------------------------- 227 // ----------------------------
223 // Represents a button that allows users to download media if the file is 228 // Represents a button that allows users to download media if the file is
224 // downloadable. 229 // downloadable.
225 class MediaControlDownloadButtonElement final 230 class CORE_EXPORT MediaControlDownloadButtonElement final
226 : public MediaControlInputElement { 231 : public MediaControlInputElement {
227 public: 232 public:
228 static MediaControlDownloadButtonElement* create(MediaControls&); 233 static MediaControlDownloadButtonElement* create(MediaControls&);
229 234
230 WebLocalizedString::Name getOverflowStringName() override; 235 WebLocalizedString::Name getOverflowStringName() override;
231 236
232 bool hasOverflowButton() override { return true; } 237 bool hasOverflowButton() override { return true; }
233 238
234 // Returns true if the download button should be shown. We should 239 // Returns true if the download button should be shown. We should
235 // show the button for only non-MSE, non-EME, and non-MediaStream content. 240 // show the button for only non-MSE, non-EME, and non-MediaStream content.
(...skipping 19 matching lines...) Expand all
255 Count // Keep last. 260 Count // Keep last.
256 }; 261 };
257 void recordMetrics(DownloadActionMetrics); 262 void recordMetrics(DownloadActionMetrics);
258 263
259 // UMA related boolean. They are used to prevent counting something twice 264 // UMA related boolean. They are used to prevent counting something twice
260 // for the same media element. 265 // for the same media element.
261 bool m_clickUseCounted = false; 266 bool m_clickUseCounted = false;
262 bool m_showUseCounted = false; 267 bool m_showUseCounted = false;
263 }; 268 };
264 269
265 class MediaControlTimelineElement final : public MediaControlInputElement { 270 class CORE_EXPORT MediaControlTimelineElement final
271 : public MediaControlInputElement {
266 public: 272 public:
267 static MediaControlTimelineElement* create(MediaControls&); 273 static MediaControlTimelineElement* create(MediaControls&);
268 274
269 bool willRespondToMouseClickEvents() override; 275 bool willRespondToMouseClickEvents() override;
270 276
271 // FIXME: An "earliest possible position" will be needed once that concept 277 // FIXME: An "earliest possible position" will be needed once that concept
272 // is supported by HTMLMediaElement, see https://crbug.com/137275 278 // is supported by HTMLMediaElement, see https://crbug.com/137275
273 void setPosition(double); 279 void setPosition(double);
274 void setDuration(double); 280 void setDuration(double);
275 281
276 private: 282 private:
277 explicit MediaControlTimelineElement(MediaControls&); 283 explicit MediaControlTimelineElement(MediaControls&);
278 284
279 void defaultEventHandler(Event*) override; 285 void defaultEventHandler(Event*) override;
280 bool keepEventInNode(Event*) override; 286 bool keepEventInNode(Event*) override;
281 }; 287 };
282 288
283 // ---------------------------- 289 // ----------------------------
284 290
285 class MediaControlFullscreenButtonElement final 291 class CORE_EXPORT MediaControlFullscreenButtonElement final
286 : public MediaControlInputElement { 292 : public MediaControlInputElement {
287 public: 293 public:
288 static MediaControlFullscreenButtonElement* create(MediaControls&); 294 static MediaControlFullscreenButtonElement* create(MediaControls&);
289 295
290 bool willRespondToMouseClickEvents() override { return true; } 296 bool willRespondToMouseClickEvents() override { return true; }
291 297
292 void setIsFullscreen(bool); 298 void setIsFullscreen(bool);
293 299
294 WebLocalizedString::Name getOverflowStringName() override; 300 WebLocalizedString::Name getOverflowStringName() override;
295 301
296 bool hasOverflowButton() override { return true; } 302 bool hasOverflowButton() override { return true; }
297 303
298 private: 304 private:
299 explicit MediaControlFullscreenButtonElement(MediaControls&); 305 explicit MediaControlFullscreenButtonElement(MediaControls&);
300 306
301 void defaultEventHandler(Event*) override; 307 void defaultEventHandler(Event*) override;
302 }; 308 };
303 309
304 // ---------------------------- 310 // ----------------------------
305 311
306 class MediaControlCastButtonElement final : public MediaControlInputElement { 312 class CORE_EXPORT MediaControlCastButtonElement final
313 : public MediaControlInputElement {
307 public: 314 public:
308 static MediaControlCastButtonElement* create(MediaControls&, 315 static MediaControlCastButtonElement* create(MediaControls&,
309 bool isOverlayButton); 316 bool isOverlayButton);
310 317
311 bool willRespondToMouseClickEvents() override { return true; } 318 bool willRespondToMouseClickEvents() override { return true; }
312 319
313 void setIsPlayingRemotely(bool); 320 void setIsPlayingRemotely(bool);
314 321
315 WebLocalizedString::Name getOverflowStringName() override; 322 WebLocalizedString::Name getOverflowStringName() override;
316 323
(...skipping 22 matching lines...) Expand all
339 void recordMetrics(CastOverlayMetrics); 346 void recordMetrics(CastOverlayMetrics);
340 347
341 // UMA related boolean. They are used to prevent counting something twice 348 // UMA related boolean. They are used to prevent counting something twice
342 // for the same media element. 349 // for the same media element.
343 bool m_clickUseCounted = false; 350 bool m_clickUseCounted = false;
344 bool m_showUseCounted = false; 351 bool m_showUseCounted = false;
345 }; 352 };
346 353
347 // ---------------------------- 354 // ----------------------------
348 355
349 class MediaControlVolumeSliderElement final : public MediaControlInputElement { 356 class CORE_EXPORT MediaControlVolumeSliderElement final
357 : public MediaControlInputElement {
350 public: 358 public:
351 static MediaControlVolumeSliderElement* create(MediaControls&); 359 static MediaControlVolumeSliderElement* create(MediaControls&);
352 360
353 bool willRespondToMouseMoveEvents() override; 361 bool willRespondToMouseMoveEvents() override;
354 bool willRespondToMouseClickEvents() override; 362 bool willRespondToMouseClickEvents() override;
355 void setVolume(double); 363 void setVolume(double);
356 364
357 private: 365 private:
358 explicit MediaControlVolumeSliderElement(MediaControls&); 366 explicit MediaControlVolumeSliderElement(MediaControls&);
359 367
360 void defaultEventHandler(Event*) override; 368 void defaultEventHandler(Event*) override;
361 bool keepEventInNode(Event*) override; 369 bool keepEventInNode(Event*) override;
362 }; 370 };
363 371
364 // ---------------------------- 372 // ----------------------------
365 373
366 class MediaControlTimeRemainingDisplayElement final 374 class CORE_EXPORT MediaControlTimeRemainingDisplayElement final
367 : public MediaControlTimeDisplayElement { 375 : public MediaControlTimeDisplayElement {
368 public: 376 public:
369 static MediaControlTimeRemainingDisplayElement* create(MediaControls&); 377 static MediaControlTimeRemainingDisplayElement* create(MediaControls&);
370 378
371 private: 379 private:
372 explicit MediaControlTimeRemainingDisplayElement(MediaControls&); 380 explicit MediaControlTimeRemainingDisplayElement(MediaControls&);
373 }; 381 };
374 382
375 // ---------------------------- 383 // ----------------------------
376 384
377 class MediaControlCurrentTimeDisplayElement final 385 class CORE_EXPORT MediaControlCurrentTimeDisplayElement final
378 : public MediaControlTimeDisplayElement { 386 : public MediaControlTimeDisplayElement {
379 public: 387 public:
380 static MediaControlCurrentTimeDisplayElement* create(MediaControls&); 388 static MediaControlCurrentTimeDisplayElement* create(MediaControls&);
381 389
382 private: 390 private:
383 explicit MediaControlCurrentTimeDisplayElement(MediaControls&); 391 explicit MediaControlCurrentTimeDisplayElement(MediaControls&);
384 }; 392 };
385 393
386 } // namespace blink 394 } // namespace blink
387 395
388 #endif // MediaControlElements_h 396 #endif // MediaControlElements_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698