OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2011, 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 Apple Inc. All rights reserved. |
3 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 3 * Copyright (C) 2011, 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 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
113 , m_timeline(nullptr) | 113 , m_timeline(nullptr) |
114 , m_currentTimeDisplay(nullptr) | 114 , m_currentTimeDisplay(nullptr) |
115 , m_durationDisplay(nullptr) | 115 , m_durationDisplay(nullptr) |
116 , m_muteButton(nullptr) | 116 , m_muteButton(nullptr) |
117 , m_volumeSlider(nullptr) | 117 , m_volumeSlider(nullptr) |
118 , m_toggleClosedCaptionsButton(nullptr) | 118 , m_toggleClosedCaptionsButton(nullptr) |
119 , m_textTrackList(nullptr) | 119 , m_textTrackList(nullptr) |
120 , m_overflowList(nullptr) | 120 , m_overflowList(nullptr) |
121 , m_castButton(nullptr) | 121 , m_castButton(nullptr) |
122 , m_fullscreenButton(nullptr) | 122 , m_fullscreenButton(nullptr) |
123 , m_downloadButton(nullptr) | |
123 , m_hideMediaControlsTimer(this, &MediaControls::hideMediaControlsTimerFired ) | 124 , m_hideMediaControlsTimer(this, &MediaControls::hideMediaControlsTimerFired ) |
124 , m_hideTimerBehaviorFlags(IgnoreNone) | 125 , m_hideTimerBehaviorFlags(IgnoreNone) |
125 , m_isMouseOverControls(false) | 126 , m_isMouseOverControls(false) |
126 , m_isPausedForScrubbing(false) | 127 , m_isPausedForScrubbing(false) |
127 , m_panelWidthChangedTimer(this, &MediaControls::panelWidthChangedTimerFired ) | 128 , m_panelWidthChangedTimer(this, &MediaControls::panelWidthChangedTimerFired ) |
128 , m_panelWidth(0) | 129 , m_panelWidth(0) |
129 , m_allowHiddenVolumeControls(RuntimeEnabledFeatures::newMediaPlaybackUiEnab led()) | 130 , m_allowHiddenVolumeControls(RuntimeEnabledFeatures::newMediaPlaybackUiEnab led()) |
130 { | 131 { |
131 } | 132 } |
132 | 133 |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
227 panel->appendChild(toggleClosedCaptionsButton); | 228 panel->appendChild(toggleClosedCaptionsButton); |
228 | 229 |
229 MediaControlCastButtonElement* castButton = MediaControlCastButtonElement::c reate(*this, false); | 230 MediaControlCastButtonElement* castButton = MediaControlCastButtonElement::c reate(*this, false); |
230 m_castButton = castButton; | 231 m_castButton = castButton; |
231 panel->appendChild(castButton); | 232 panel->appendChild(castButton); |
232 | 233 |
233 MediaControlFullscreenButtonElement* fullscreenButton = MediaControlFullscre enButtonElement::create(*this); | 234 MediaControlFullscreenButtonElement* fullscreenButton = MediaControlFullscre enButtonElement::create(*this); |
234 m_fullscreenButton = fullscreenButton; | 235 m_fullscreenButton = fullscreenButton; |
235 panel->appendChild(fullscreenButton); | 236 panel->appendChild(fullscreenButton); |
236 | 237 |
238 MediaControlDownloadButtonElement* downloadButton = MediaControlDownloadButt onElement::create(*this, &document()); | |
239 m_downloadButton = downloadButton; | |
240 panel->appendChild(downloadButton); | |
241 | |
237 m_panel = panel; | 242 m_panel = panel; |
238 enclosure->appendChild(panel); | 243 enclosure->appendChild(panel); |
239 | 244 |
240 m_enclosure = enclosure; | 245 m_enclosure = enclosure; |
241 appendChild(enclosure); | 246 appendChild(enclosure); |
242 | 247 |
243 MediaControlTextTrackListElement* textTrackList = MediaControlTextTrackListE lement::create(*this); | 248 MediaControlTextTrackListElement* textTrackList = MediaControlTextTrackListE lement::create(*this); |
244 m_textTrackList = textTrackList; | 249 m_textTrackList = textTrackList; |
245 appendChild(textTrackList); | 250 appendChild(textTrackList); |
246 | 251 |
247 MediaControlOverflowMenuButtonElement* overflowMenu = MediaControlOverflowMe nuButtonElement::create(*this); | 252 MediaControlOverflowMenuButtonElement* overflowMenu = MediaControlOverflowMe nuButtonElement::create(*this); |
248 m_overflowMenu = overflowMenu; | 253 m_overflowMenu = overflowMenu; |
249 panel->appendChild(overflowMenu); | 254 panel->appendChild(overflowMenu); |
250 | 255 |
251 MediaControlOverflowMenuListElement* overflowList = MediaControlOverflowMenu ListElement::create(*this); | 256 MediaControlOverflowMenuListElement* overflowList = MediaControlOverflowMenu ListElement::create(*this); |
252 m_overflowList = overflowList; | 257 m_overflowList = overflowList; |
253 appendChild(overflowList); | 258 appendChild(overflowList); |
254 | 259 |
255 // The order in which we append elements to the overflow list does matter. | 260 // The order in which we append elements to the overflow list does matter. |
256 m_overflowList->appendChild(m_muteButton->createOverflowElement(*this, Media ControlMuteButtonElement::create(*this))); | 261 m_overflowList->appendChild(m_muteButton->createOverflowElement(*this, Media ControlMuteButtonElement::create(*this))); |
257 m_overflowList->appendChild(m_castButton->createOverflowElement(*this, Media ControlCastButtonElement::create(*this, false))); | 262 m_overflowList->appendChild(m_castButton->createOverflowElement(*this, Media ControlCastButtonElement::create(*this, false))); |
258 m_overflowList->appendChild(m_toggleClosedCaptionsButton->createOverflowElem ent(*this, MediaControlToggleClosedCaptionsButtonElement::create(*this))); | 263 m_overflowList->appendChild(m_toggleClosedCaptionsButton->createOverflowElem ent(*this, MediaControlToggleClosedCaptionsButtonElement::create(*this))); |
259 m_overflowList->appendChild(m_fullscreenButton->createOverflowElement(*this, MediaControlFullscreenButtonElement::create(*this))); | 264 m_overflowList->appendChild(m_fullscreenButton->createOverflowElement(*this, MediaControlFullscreenButtonElement::create(*this))); |
260 m_overflowList->appendChild(m_playButton->createOverflowElement(*this, Media ControlPlayButtonElement::create(*this))); | 265 m_overflowList->appendChild(m_playButton->createOverflowElement(*this, Media ControlPlayButtonElement::create(*this))); |
266 m_overflowList->appendChild(m_downloadButton->createOverflowElement(*this, M ediaControlDownloadButtonElement::create(*this, &document()))); | |
261 } | 267 } |
262 | 268 |
263 void MediaControls::reset() | 269 void MediaControls::reset() |
264 { | 270 { |
265 EventDispatchForbiddenScope::AllowUserAgentEvents allowEventsInShadow; | 271 EventDispatchForbiddenScope::AllowUserAgentEvents allowEventsInShadow; |
266 const bool useNewUi = RuntimeEnabledFeatures::newMediaPlaybackUiEnabled(); | 272 const bool useNewUi = RuntimeEnabledFeatures::newMediaPlaybackUiEnabled(); |
267 BatchedControlUpdate batch(this); | 273 BatchedControlUpdate batch(this); |
268 | 274 |
269 m_allowHiddenVolumeControls = useNewUi; | 275 m_allowHiddenVolumeControls = useNewUi; |
270 | 276 |
(...skipping 22 matching lines...) Expand all Loading... | |
293 m_timeline->setDuration(duration); | 299 m_timeline->setDuration(duration); |
294 m_timeline->setPosition(mediaElement().currentTime()); | 300 m_timeline->setPosition(mediaElement().currentTime()); |
295 | 301 |
296 updateVolume(); | 302 updateVolume(); |
297 | 303 |
298 refreshClosedCaptionsButtonVisibility(); | 304 refreshClosedCaptionsButtonVisibility(); |
299 | 305 |
300 m_fullscreenButton->setIsWanted(shouldShowFullscreenButton(mediaElement())); | 306 m_fullscreenButton->setIsWanted(shouldShowFullscreenButton(mediaElement())); |
301 | 307 |
302 refreshCastButtonVisibilityWithoutUpdate(); | 308 refreshCastButtonVisibilityWithoutUpdate(); |
309 | |
310 if (RuntimeEnabledFeatures::mediaControlsDownloadButtonEnabled()) { | |
311 m_downloadButton->setIsWanted(m_downloadButton->shouldDisplayDownloadBut ton()); | |
312 } | |
mlamouri (slow - plz ping)
2016/09/12 11:06:25
style: no { }
kdsilva
2016/09/12 17:25:49
Done.
| |
303 } | 313 } |
304 | 314 |
305 LayoutObject* MediaControls::layoutObjectForTextTrackLayout() | 315 LayoutObject* MediaControls::layoutObjectForTextTrackLayout() |
306 { | 316 { |
307 return m_panel->layoutObject(); | 317 return m_panel->layoutObject(); |
308 } | 318 } |
309 | 319 |
310 void MediaControls::show() | 320 void MediaControls::show() |
311 { | 321 { |
312 makeOpaque(); | 322 makeOpaque(); |
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
700 // won't benefit from that anwyay, we just do it here like JS will. | 710 // won't benefit from that anwyay, we just do it here like JS will. |
701 | 711 |
702 if (!RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) | 712 if (!RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) |
703 return; | 713 return; |
704 | 714 |
705 // Controls that we'll hide / show, in order of decreasing priority. | 715 // Controls that we'll hide / show, in order of decreasing priority. |
706 MediaControlElement* elements[] = { | 716 MediaControlElement* elements[] = { |
707 // Exclude m_overflowMenu; we handle it specially. | 717 // Exclude m_overflowMenu; we handle it specially. |
708 m_playButton.get(), | 718 m_playButton.get(), |
709 m_fullscreenButton.get(), | 719 m_fullscreenButton.get(), |
720 m_downloadButton.get(), | |
710 m_toggleClosedCaptionsButton.get(), | 721 m_toggleClosedCaptionsButton.get(), |
711 m_timeline.get(), | 722 m_timeline.get(), |
712 m_currentTimeDisplay.get(), | 723 m_currentTimeDisplay.get(), |
713 m_volumeSlider.get(), | 724 m_volumeSlider.get(), |
714 m_castButton.get(), | 725 m_castButton.get(), |
715 m_muteButton.get(), | 726 m_muteButton.get(), |
716 m_durationDisplay.get(), | 727 m_durationDisplay.get(), |
717 }; | 728 }; |
718 | 729 |
719 int usedWidth = 0; | 730 int usedWidth = 0; |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
817 if (LayoutObject* layoutObject = element->layoutObject()) | 828 if (LayoutObject* layoutObject = element->layoutObject()) |
818 layoutObject->setShouldDoFullPaintInvalidation(); | 829 layoutObject->setShouldDoFullPaintInvalidation(); |
819 } | 830 } |
820 | 831 |
821 void MediaControls::networkStateChanged() | 832 void MediaControls::networkStateChanged() |
822 { | 833 { |
823 invalidate(m_playButton); | 834 invalidate(m_playButton); |
824 invalidate(m_overlayPlayButton); | 835 invalidate(m_overlayPlayButton); |
825 invalidate(m_muteButton); | 836 invalidate(m_muteButton); |
826 invalidate(m_fullscreenButton); | 837 invalidate(m_fullscreenButton); |
838 invalidate(m_downloadButton); | |
827 invalidate(m_timeline); | 839 invalidate(m_timeline); |
828 invalidate(m_volumeSlider); | 840 invalidate(m_volumeSlider); |
829 } | 841 } |
830 | 842 |
831 bool MediaControls::overflowMenuVisible() | 843 bool MediaControls::overflowMenuVisible() |
832 { | 844 { |
833 return m_overflowList->isWanted(); | 845 return m_overflowList->isWanted(); |
834 } | 846 } |
835 | 847 |
836 void MediaControls::toggleOverflowMenu() | 848 void MediaControls::toggleOverflowMenu() |
837 { | 849 { |
838 m_overflowList->setIsWanted(!m_overflowList->isWanted()); | 850 m_overflowList->setIsWanted(!m_overflowList->isWanted()); |
839 } | 851 } |
840 | 852 |
841 DEFINE_TRACE(MediaControls) | 853 DEFINE_TRACE(MediaControls) |
842 { | 854 { |
843 visitor->trace(m_mediaElement); | 855 visitor->trace(m_mediaElement); |
844 visitor->trace(m_panel); | 856 visitor->trace(m_panel); |
845 visitor->trace(m_overlayPlayButton); | 857 visitor->trace(m_overlayPlayButton); |
846 visitor->trace(m_overlayEnclosure); | 858 visitor->trace(m_overlayEnclosure); |
847 visitor->trace(m_playButton); | 859 visitor->trace(m_playButton); |
848 visitor->trace(m_currentTimeDisplay); | 860 visitor->trace(m_currentTimeDisplay); |
849 visitor->trace(m_timeline); | 861 visitor->trace(m_timeline); |
850 visitor->trace(m_muteButton); | 862 visitor->trace(m_muteButton); |
851 visitor->trace(m_volumeSlider); | 863 visitor->trace(m_volumeSlider); |
852 visitor->trace(m_toggleClosedCaptionsButton); | 864 visitor->trace(m_toggleClosedCaptionsButton); |
853 visitor->trace(m_fullscreenButton); | 865 visitor->trace(m_fullscreenButton); |
866 visitor->trace(m_downloadButton); | |
854 visitor->trace(m_durationDisplay); | 867 visitor->trace(m_durationDisplay); |
855 visitor->trace(m_enclosure); | 868 visitor->trace(m_enclosure); |
856 visitor->trace(m_textTrackList); | 869 visitor->trace(m_textTrackList); |
857 visitor->trace(m_overflowMenu); | 870 visitor->trace(m_overflowMenu); |
858 visitor->trace(m_overflowList); | 871 visitor->trace(m_overflowList); |
859 visitor->trace(m_castButton); | 872 visitor->trace(m_castButton); |
860 visitor->trace(m_overlayCastButton); | 873 visitor->trace(m_overlayCastButton); |
861 HTMLDivElement::trace(visitor); | 874 HTMLDivElement::trace(visitor); |
862 } | 875 } |
863 | 876 |
864 } // namespace blink | 877 } // namespace blink |
OLD | NEW |