Index: third_party/WebKit/Source/core/html/shadow/MediaControls.cpp |
diff --git a/third_party/WebKit/Source/core/html/shadow/MediaControls.cpp b/third_party/WebKit/Source/core/html/shadow/MediaControls.cpp |
index 93b086d7a3009e18700e817fbeb05ed09f3f3aad..fb2ba808b243a56342dd927adf0f757ffd12a665 100644 |
--- a/third_party/WebKit/Source/core/html/shadow/MediaControls.cpp |
+++ b/third_party/WebKit/Source/core/html/shadow/MediaControls.cpp |
@@ -120,6 +120,7 @@ MediaControls::MediaControls(HTMLMediaElement& mediaElement) |
, m_overflowList(nullptr) |
, m_castButton(nullptr) |
, m_fullscreenButton(nullptr) |
+ , m_downloadButton(nullptr) |
, m_hideMediaControlsTimer(this, &MediaControls::hideMediaControlsTimerFired) |
, m_hideTimerBehaviorFlags(IgnoreNone) |
, m_isMouseOverControls(false) |
@@ -234,6 +235,10 @@ void MediaControls::initializeControls() |
m_fullscreenButton = fullscreenButton; |
panel->appendChild(fullscreenButton); |
+ MediaControlDownloadButtonElement* downloadButton = MediaControlDownloadButtonElement::create(*this, &document()); |
+ m_downloadButton = downloadButton; |
+ panel->appendChild(downloadButton); |
+ |
m_panel = panel; |
enclosure->appendChild(panel); |
@@ -258,6 +263,7 @@ void MediaControls::initializeControls() |
m_overflowList->appendChild(m_toggleClosedCaptionsButton->createOverflowElement(*this, MediaControlToggleClosedCaptionsButtonElement::create(*this))); |
m_overflowList->appendChild(m_fullscreenButton->createOverflowElement(*this, MediaControlFullscreenButtonElement::create(*this))); |
m_overflowList->appendChild(m_playButton->createOverflowElement(*this, MediaControlPlayButtonElement::create(*this))); |
+ m_overflowList->appendChild(m_downloadButton->createOverflowElement(*this, MediaControlDownloadButtonElement::create(*this, &document()))); |
} |
void MediaControls::reset() |
@@ -300,6 +306,9 @@ void MediaControls::reset() |
m_fullscreenButton->setIsWanted(shouldShowFullscreenButton(mediaElement())); |
refreshCastButtonVisibilityWithoutUpdate(); |
+ |
+ if (RuntimeEnabledFeatures::mediaControlsDownloadButtonEnabled()) |
+ m_downloadButton->setIsWanted(m_downloadButton->shouldDisplayDownloadButton()); |
} |
LayoutObject* MediaControls::layoutObjectForTextTrackLayout() |
@@ -707,6 +716,7 @@ void MediaControls::computeWhichControlsFit() |
// Exclude m_overflowMenu; we handle it specially. |
m_playButton.get(), |
m_fullscreenButton.get(), |
+ m_downloadButton.get(), |
m_toggleClosedCaptionsButton.get(), |
m_timeline.get(), |
m_currentTimeDisplay.get(), |
@@ -824,6 +834,7 @@ void MediaControls::networkStateChanged() |
invalidate(m_overlayPlayButton); |
invalidate(m_muteButton); |
invalidate(m_fullscreenButton); |
+ invalidate(m_downloadButton); |
invalidate(m_timeline); |
invalidate(m_volumeSlider); |
} |
@@ -851,6 +862,7 @@ DEFINE_TRACE(MediaControls) |
visitor->trace(m_volumeSlider); |
visitor->trace(m_toggleClosedCaptionsButton); |
visitor->trace(m_fullscreenButton); |
+ visitor->trace(m_downloadButton); |
visitor->trace(m_durationDisplay); |
visitor->trace(m_enclosure); |
visitor->trace(m_textTrackList); |