Index: third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp |
diff --git a/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp b/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp |
index bf8c0459b928958e840e38807573a6dc315950ad..3b12448b1792430f7dc24b2d5bb14ad1f764be63 100644 |
--- a/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp |
+++ b/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp |
@@ -302,6 +302,18 @@ void MediaControlMuteButtonElement::updateDisplayType() |
setDisplayType(mediaElement().muted() ? MediaUnMuteButton : MediaMuteButton); |
} |
+WebLocalizedString::Name MediaControlMuteButtonElement::getOverflowStringName() |
+{ |
+ if (mediaElement().muted()) |
+ return WebLocalizedString::OverflowMenuUnmute; |
+ return WebLocalizedString::OverflowMenuMute; |
+} |
+ |
+MediaControlInputElement* MediaControlMuteButtonElement::createOverflowButton(MediaControls& mediaControls) |
+{ |
+ return MediaControlMuteButtonElement::create(mediaControls); |
liberato (no reviews please)
2016/08/30 16:42:07
now that we've successfully reduced this to one li
kdsilva
2016/08/31 00:17:05
Done.
|
+} |
+ |
// ---------------------------- |
MediaControlPlayButtonElement::MediaControlPlayButtonElement(MediaControls& mediaControls) |
@@ -407,6 +419,8 @@ void MediaControlToggleClosedCaptionsButtonElement::updateDisplayType() |
void MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler(Event* event) |
{ |
if (event->type() == EventTypeNames::click) { |
+ if (mediaControls().overflowMenuVisible()) |
+ mediaControls().toggleOverflowMenu(); |
mediaControls().toggleTextTrackList(); |
updateDisplayType(); |
event->setDefaultHandled(); |
@@ -415,6 +429,16 @@ void MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler(Event* e |
HTMLInputElement::defaultEventHandler(event); |
} |
+WebLocalizedString::Name MediaControlToggleClosedCaptionsButtonElement::getOverflowStringName() |
+{ |
+ return WebLocalizedString::OverflowMenuCaptions; |
+} |
+ |
+MediaControlInputElement* MediaControlToggleClosedCaptionsButtonElement::createOverflowButton(MediaControls& mediaControls) |
+{ |
+ return MediaControlToggleClosedCaptionsButtonElement::create(mediaControls); |
+} |
+ |
// ---------------------------- |
MediaControlTextTrackListElement::MediaControlTextTrackListElement(MediaControls& mediaControls) |
@@ -554,6 +578,59 @@ void MediaControlTextTrackListElement::refreshTextTrackListMenu() |
} |
// ---------------------------- |
+MediaControlOverflowMenuButtonElement::MediaControlOverflowMenuButtonElement(MediaControls& mediaControls) |
+ : MediaControlInputElement(mediaControls, MediaShowClosedCaptionsButton) |
+{ |
+} |
+ |
+MediaControlOverflowMenuButtonElement* MediaControlOverflowMenuButtonElement::create(MediaControls& mediaControls) |
+{ |
+ MediaControlOverflowMenuButtonElement* button = new MediaControlOverflowMenuButtonElement(mediaControls); |
+ button->ensureUserAgentShadowRoot(); |
+ button->setType(InputTypeNames::button); |
+ button->setShadowPseudoId(AtomicString("-internal-overflow-menu-button")); |
+ button->setIsWanted(false); |
+ return button; |
+} |
+ |
+void MediaControlOverflowMenuButtonElement::defaultEventHandler(Event* event) |
+{ |
+ if (event->type() == EventTypeNames::click) { |
+ mediaControls().toggleOverflowMenu(); |
+ event->setDefaultHandled(); |
+ } |
+ |
+ HTMLInputElement::defaultEventHandler(event); |
+} |
+ |
+// ---------------------------- |
+MediaControlOverflowMenuListElement::MediaControlOverflowMenuListElement(MediaControls& mediaControls) |
+ : MediaControlDivElement(mediaControls, MediaShowClosedCaptionsButton) |
+{ |
+} |
+ |
+MediaControlOverflowMenuListElement* MediaControlOverflowMenuListElement::create(MediaControls& mediaControls) |
+{ |
+ MediaControlOverflowMenuListElement* element = new MediaControlOverflowMenuListElement(mediaControls); |
+ element->setIsWanted(false); |
+ element->setShadowPseudoId(AtomicString("-internal-media-controls-overflow-menu-list")); |
+ return element; |
+} |
+ |
+void MediaControlOverflowMenuListElement::showOverflowMenu(bool visible) |
+{ |
+ setIsWanted(visible); |
+} |
+ |
+void MediaControlOverflowMenuListElement::defaultEventHandler(Event* event) |
+{ |
+ if (event->type() == EventTypeNames::click) |
+ event->setDefaultHandled(); |
+ |
+ MediaControlDivElement::defaultEventHandler(event); |
+} |
+ |
+// ---------------------------- |
MediaControlTimelineElement::MediaControlTimelineElement(MediaControls& mediaControls) |
: MediaControlInputElement(mediaControls, MediaSlider) |
@@ -738,6 +815,15 @@ void MediaControlFullscreenButtonElement::setIsFullscreen(bool isFullscreen) |
setDisplayType(isFullscreen ? MediaExitFullscreenButton : MediaEnterFullscreenButton); |
} |
+WebLocalizedString::Name MediaControlFullscreenButtonElement::getOverflowStringName() |
+{ |
+ return WebLocalizedString::OverflowMenuFullscreen; |
+} |
+MediaControlInputElement* MediaControlFullscreenButtonElement::createOverflowButton(MediaControls& mediaControls) |
+{ |
+ return MediaControlFullscreenButtonElement::create(mediaControls); |
+} |
+ |
// ---------------------------- |
MediaControlCastButtonElement::MediaControlCastButtonElement(MediaControls& mediaControls, bool isOverlayButton) |
@@ -801,6 +887,13 @@ void MediaControlCastButtonElement::setIsPlayingRemotely(bool isPlayingRemotely) |
} |
} |
+WebLocalizedString::Name MediaControlCastButtonElement::getOverflowStringName() |
+{ |
+ if (mediaElement().isPlayingRemotely()) |
+ return WebLocalizedString::OverflowMenuStopCast; |
+ return WebLocalizedString::OverflowMenuCast; |
+} |
+ |
void MediaControlCastButtonElement::tryShowOverlay() |
{ |
DCHECK(m_isOverlayButton); |
@@ -830,6 +923,11 @@ void MediaControlCastButtonElement::recordMetrics(CastOverlayMetrics metric) |
overlayHistogram.count(static_cast<int>(metric)); |
} |
+MediaControlInputElement* MediaControlCastButtonElement::createOverflowButton(MediaControls& mediaControls) |
+{ |
+ return MediaControlCastButtonElement::create(mediaControls, false); |
+} |
+ |
// ---------------------------- |
MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement(MediaControls& mediaControls) |