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

Unified Diff: third_party/WebKit/Source/core/html/shadow/MediaControls.cpp

Issue 2293273002: Add a download button to the media player (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@media-controls
Patch Set: Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698