Chromium Code Reviews| 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..697ddb3730d93cb5f5c86ac9ac1f4caa6f64f82b 100644 |
| --- a/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp |
| +++ b/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp |
| @@ -302,6 +302,23 @@ void MediaControlMuteButtonElement::updateDisplayType() |
| setDisplayType(mediaElement().muted() ? MediaUnMuteButton : MediaMuteButton); |
| } |
| +WebLocalizedString::Name MediaControlMuteButtonElement::getOverflowStringName() |
| +{ |
| + if (mediaElement().muted()) |
| + return WebLocalizedString::OverflowMenuUnmute; |
| + return WebLocalizedString::OverflowMenuMute; |
| +} |
| + |
| +Element* MediaControlMuteButtonElement::initOverflowButton(MediaControls& mediaControls) |
| +{ |
| + MediaControlMuteButtonElement* button = MediaControlMuteButtonElement::create(mediaControls); |
| + button->setShadowPseudoId(AtomicString("-internal-media-controls-overflow-menu-list-item-element")); |
|
liberato (no reviews please)
2016/08/29 17:38:38
this and setIsWanted seem to be everywhere -- can
kdsilva
2016/08/29 20:44:13
Done.
|
| + button->setIsWanted(true); |
| + |
| + m_overflowMenuElement = createOverflowMenuElement(mediaControls, button); |
| + return m_overflowMenuElement; |
| +} |
| + |
| // ---------------------------- |
| MediaControlPlayButtonElement::MediaControlPlayButtonElement(MediaControls& mediaControls) |
| @@ -407,6 +424,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 +434,21 @@ void MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler(Event* e |
| HTMLInputElement::defaultEventHandler(event); |
| } |
| +WebLocalizedString::Name MediaControlToggleClosedCaptionsButtonElement::getOverflowStringName() |
| +{ |
| + return WebLocalizedString::OverflowMenuCaptions; |
| +} |
| + |
| +Element* MediaControlToggleClosedCaptionsButtonElement::initOverflowButton(MediaControls& mediaControls) |
| +{ |
| + MediaControlToggleClosedCaptionsButtonElement* button = MediaControlToggleClosedCaptionsButtonElement::create(mediaControls); |
| + button->setShadowPseudoId(AtomicString("-internal-media-controls-overflow-menu-list-item-element")); |
| + button->setIsWanted(true); |
| + |
| + m_overflowMenuElement = createOverflowMenuElement(mediaControls, button); |
| + return m_overflowMenuElement; |
| +} |
| + |
| // ---------------------------- |
| MediaControlTextTrackListElement::MediaControlTextTrackListElement(MediaControls& mediaControls) |
| @@ -554,6 +588,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 +825,21 @@ void MediaControlFullscreenButtonElement::setIsFullscreen(bool isFullscreen) |
| setDisplayType(isFullscreen ? MediaExitFullscreenButton : MediaEnterFullscreenButton); |
| } |
| +WebLocalizedString::Name MediaControlFullscreenButtonElement::getOverflowStringName() |
| +{ |
| + return WebLocalizedString::OverflowMenuFullscreen; |
| +} |
| + |
| +Element* MediaControlFullscreenButtonElement::initOverflowButton(MediaControls& mediaControls) |
| +{ |
| + MediaControlFullscreenButtonElement* button = MediaControlFullscreenButtonElement::create(mediaControls); |
| + button->setShadowPseudoId(AtomicString("-internal-media-controls-overflow-menu-list-item-element")); |
| + button->setIsWanted(true); |
| + |
| + m_overflowMenuElement = createOverflowMenuElement(mediaControls, button); |
|
liberato (no reviews please)
2016/08/29 17:38:38
can createoverflowMenuElement set |m_overflowMenuE
kdsilva
2016/08/29 20:44:13
Done.
|
| + return m_overflowMenuElement; |
| +} |
| + |
| // ---------------------------- |
| MediaControlCastButtonElement::MediaControlCastButtonElement(MediaControls& mediaControls, bool isOverlayButton) |
| @@ -801,6 +903,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 +939,16 @@ void MediaControlCastButtonElement::recordMetrics(CastOverlayMetrics metric) |
| overlayHistogram.count(static_cast<int>(metric)); |
| } |
| +Element* MediaControlCastButtonElement::initOverflowButton(MediaControls& mediaControls) |
| +{ |
| + MediaControlCastButtonElement* button = MediaControlCastButtonElement::create(mediaControls, false); |
| + button->setShadowPseudoId(AtomicString("-internal-media-controls-overflow-menu-list-item-element")); |
| + button->setIsWanted(true); |
| + |
| + m_overflowMenuElement = createOverflowMenuElement(mediaControls, button); |
| + return m_overflowMenuElement; |
| +} |
| + |
| // ---------------------------- |
| MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement(MediaControls& mediaControls) |