| 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 14 matching lines...) Expand all Loading... |
| 25 */ | 25 */ |
| 26 | 26 |
| 27 #include "core/html/shadow/MediaControls.h" | 27 #include "core/html/shadow/MediaControls.h" |
| 28 | 28 |
| 29 #include "bindings/core/v8/ExceptionStatePlaceholder.h" | 29 #include "bindings/core/v8/ExceptionStatePlaceholder.h" |
| 30 #include "core/dom/ClientRect.h" | 30 #include "core/dom/ClientRect.h" |
| 31 #include "core/dom/Fullscreen.h" | 31 #include "core/dom/Fullscreen.h" |
| 32 #include "core/events/MouseEvent.h" | 32 #include "core/events/MouseEvent.h" |
| 33 #include "core/frame/Settings.h" | 33 #include "core/frame/Settings.h" |
| 34 #include "core/html/HTMLMediaElement.h" | 34 #include "core/html/HTMLMediaElement.h" |
| 35 #include "core/html/shadow/MediaControlsWindowEventListener.h" |
| 35 #include "core/html/track/TextTrackContainer.h" | 36 #include "core/html/track/TextTrackContainer.h" |
| 36 #include "core/layout/LayoutObject.h" | 37 #include "core/layout/LayoutObject.h" |
| 37 #include "core/layout/LayoutTheme.h" | 38 #include "core/layout/LayoutTheme.h" |
| 38 #include "platform/EventDispatchForbiddenScope.h" | 39 #include "platform/EventDispatchForbiddenScope.h" |
| 39 | 40 |
| 40 namespace blink { | 41 namespace blink { |
| 41 | 42 |
| 42 // If you change this value, then also update the corresponding value in | 43 // If you change this value, then also update the corresponding value in |
| 43 // LayoutTests/media/media-controls.js. | 44 // LayoutTests/media/media-controls.js. |
| 44 static const double timeWithoutMouseMovementBeforeHidingMediaControls = 3; | 45 static const double timeWithoutMouseMovementBeforeHidingMediaControls = 3; |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 m_currentTimeDisplay(nullptr), | 114 m_currentTimeDisplay(nullptr), |
| 114 m_durationDisplay(nullptr), | 115 m_durationDisplay(nullptr), |
| 115 m_muteButton(nullptr), | 116 m_muteButton(nullptr), |
| 116 m_volumeSlider(nullptr), | 117 m_volumeSlider(nullptr), |
| 117 m_toggleClosedCaptionsButton(nullptr), | 118 m_toggleClosedCaptionsButton(nullptr), |
| 118 m_textTrackList(nullptr), | 119 m_textTrackList(nullptr), |
| 119 m_overflowList(nullptr), | 120 m_overflowList(nullptr), |
| 120 m_castButton(nullptr), | 121 m_castButton(nullptr), |
| 121 m_fullscreenButton(nullptr), | 122 m_fullscreenButton(nullptr), |
| 122 m_downloadButton(nullptr), | 123 m_downloadButton(nullptr), |
| 124 m_windowEventListener(MediaControlsWindowEventListener::create( |
| 125 this, |
| 126 WTF::bind(&MediaControls::hideAllMenus, wrapWeakPersistent(this)))), |
| 123 m_hideMediaControlsTimer(this, | 127 m_hideMediaControlsTimer(this, |
| 124 &MediaControls::hideMediaControlsTimerFired), | 128 &MediaControls::hideMediaControlsTimerFired), |
| 125 m_hideTimerBehaviorFlags(IgnoreNone), | 129 m_hideTimerBehaviorFlags(IgnoreNone), |
| 126 m_isMouseOverControls(false), | 130 m_isMouseOverControls(false), |
| 127 m_isPausedForScrubbing(false), | 131 m_isPausedForScrubbing(false), |
| 128 m_panelWidthChangedTimer(this, | 132 m_panelWidthChangedTimer(this, |
| 129 &MediaControls::panelWidthChangedTimerFired), | 133 &MediaControls::panelWidthChangedTimerFired), |
| 130 m_panelWidth(0), | 134 m_panelWidth(0), |
| 131 m_allowHiddenVolumeControls( | 135 m_allowHiddenVolumeControls( |
| 132 RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) {} | 136 RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) {} |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 m_toggleClosedCaptionsButton->setIsWanted(mediaElement().hasClosedCaptions()); | 516 m_toggleClosedCaptionsButton->setIsWanted(mediaElement().hasClosedCaptions()); |
| 513 BatchedControlUpdate batch(this); | 517 BatchedControlUpdate batch(this); |
| 514 } | 518 } |
| 515 | 519 |
| 516 void MediaControls::toggleTextTrackList() { | 520 void MediaControls::toggleTextTrackList() { |
| 517 if (!mediaElement().hasClosedCaptions()) { | 521 if (!mediaElement().hasClosedCaptions()) { |
| 518 m_textTrackList->setVisible(false); | 522 m_textTrackList->setVisible(false); |
| 519 return; | 523 return; |
| 520 } | 524 } |
| 521 | 525 |
| 526 if (!m_textTrackList->isWanted()) |
| 527 m_windowEventListener->start(); |
| 528 |
| 522 m_textTrackList->setVisible(!m_textTrackList->isWanted()); | 529 m_textTrackList->setVisible(!m_textTrackList->isWanted()); |
| 523 } | 530 } |
| 524 | 531 |
| 525 void MediaControls::refreshCastButtonVisibility() { | 532 void MediaControls::refreshCastButtonVisibility() { |
| 526 refreshCastButtonVisibilityWithoutUpdate(); | 533 refreshCastButtonVisibilityWithoutUpdate(); |
| 527 BatchedControlUpdate batch(this); | 534 BatchedControlUpdate batch(this); |
| 528 } | 535 } |
| 529 | 536 |
| 530 void MediaControls::refreshCastButtonVisibilityWithoutUpdate() { | 537 void MediaControls::refreshCastButtonVisibilityWithoutUpdate() { |
| 531 if (!shouldShowCastButton(mediaElement())) { | 538 if (!shouldShowCastButton(mediaElement())) { |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 857 invalidate(m_timeline); | 864 invalidate(m_timeline); |
| 858 invalidate(m_volumeSlider); | 865 invalidate(m_volumeSlider); |
| 859 } | 866 } |
| 860 | 867 |
| 861 bool MediaControls::overflowMenuVisible() { | 868 bool MediaControls::overflowMenuVisible() { |
| 862 return m_overflowList ? m_overflowList->isWanted() : false; | 869 return m_overflowList ? m_overflowList->isWanted() : false; |
| 863 } | 870 } |
| 864 | 871 |
| 865 void MediaControls::toggleOverflowMenu() { | 872 void MediaControls::toggleOverflowMenu() { |
| 866 DCHECK(m_overflowList); | 873 DCHECK(m_overflowList); |
| 874 |
| 875 if (!m_overflowList->isWanted()) |
| 876 m_windowEventListener->start(); |
| 867 m_overflowList->setIsWanted(!m_overflowList->isWanted()); | 877 m_overflowList->setIsWanted(!m_overflowList->isWanted()); |
| 868 } | 878 } |
| 869 | 879 |
| 880 void MediaControls::hideAllMenus() { |
| 881 m_windowEventListener->stop(); |
| 882 |
| 883 if (m_overflowList->isWanted()) |
| 884 m_overflowList->setIsWanted(false); |
| 885 if (m_textTrackList->isWanted()) |
| 886 m_textTrackList->setVisible(false); |
| 887 } |
| 888 |
| 870 DEFINE_TRACE(MediaControls) { | 889 DEFINE_TRACE(MediaControls) { |
| 871 visitor->trace(m_mediaElement); | 890 visitor->trace(m_mediaElement); |
| 872 visitor->trace(m_panel); | 891 visitor->trace(m_panel); |
| 873 visitor->trace(m_overlayPlayButton); | 892 visitor->trace(m_overlayPlayButton); |
| 874 visitor->trace(m_overlayEnclosure); | 893 visitor->trace(m_overlayEnclosure); |
| 875 visitor->trace(m_playButton); | 894 visitor->trace(m_playButton); |
| 876 visitor->trace(m_currentTimeDisplay); | 895 visitor->trace(m_currentTimeDisplay); |
| 877 visitor->trace(m_timeline); | 896 visitor->trace(m_timeline); |
| 878 visitor->trace(m_muteButton); | 897 visitor->trace(m_muteButton); |
| 879 visitor->trace(m_volumeSlider); | 898 visitor->trace(m_volumeSlider); |
| 880 visitor->trace(m_toggleClosedCaptionsButton); | 899 visitor->trace(m_toggleClosedCaptionsButton); |
| 881 visitor->trace(m_fullscreenButton); | 900 visitor->trace(m_fullscreenButton); |
| 882 visitor->trace(m_downloadButton); | 901 visitor->trace(m_downloadButton); |
| 883 visitor->trace(m_durationDisplay); | 902 visitor->trace(m_durationDisplay); |
| 884 visitor->trace(m_enclosure); | 903 visitor->trace(m_enclosure); |
| 885 visitor->trace(m_textTrackList); | 904 visitor->trace(m_textTrackList); |
| 886 visitor->trace(m_overflowMenu); | 905 visitor->trace(m_overflowMenu); |
| 887 visitor->trace(m_overflowList); | 906 visitor->trace(m_overflowList); |
| 888 visitor->trace(m_castButton); | 907 visitor->trace(m_castButton); |
| 889 visitor->trace(m_overlayCastButton); | 908 visitor->trace(m_overlayCastButton); |
| 909 visitor->trace(m_windowEventListener); |
| 890 HTMLDivElement::trace(visitor); | 910 HTMLDivElement::trace(visitor); |
| 891 } | 911 } |
| 892 | 912 |
| 893 } // namespace blink | 913 } // namespace blink |
| OLD | NEW |