Chromium Code Reviews| Index: third_party/WebKit/Source/core/html/shadow/MediaControlsMediaEventListener.cpp |
| diff --git a/third_party/WebKit/Source/core/html/shadow/MediaControlsMediaEventListener.cpp b/third_party/WebKit/Source/core/html/shadow/MediaControlsMediaEventListener.cpp |
| index b2a71ec36714383e6fb02d20d98032540c95e9d1..7d2034368e868ae6caf1f848d5be7eb40a107a9a 100644 |
| --- a/third_party/WebKit/Source/core/html/shadow/MediaControlsMediaEventListener.cpp |
| +++ b/third_party/WebKit/Source/core/html/shadow/MediaControlsMediaEventListener.cpp |
| @@ -14,25 +14,24 @@ namespace blink { |
| MediaControlsMediaEventListener::MediaControlsMediaEventListener( |
| MediaControls* mediaControls) |
| : EventListener(CPPEventListenerType), m_mediaControls(mediaControls) { |
| - m_mediaControls->m_mediaElement->addEventListener( |
| - EventTypeNames::volumechange, this, false); |
| - m_mediaControls->m_mediaElement->addEventListener(EventTypeNames::focusin, |
| - this, false); |
| - m_mediaControls->m_mediaElement->addEventListener(EventTypeNames::timeupdate, |
| - this, false); |
| - m_mediaControls->m_mediaElement->addEventListener(EventTypeNames::play, this, |
| - false); |
| - m_mediaControls->m_mediaElement->addEventListener(EventTypeNames::pause, this, |
| - false); |
| - m_mediaControls->m_mediaElement->addEventListener( |
| - EventTypeNames::durationchange, this, false); |
| - m_mediaControls->m_mediaElement->addEventListener(EventTypeNames::error, this, |
| - false); |
| - m_mediaControls->m_mediaElement->addEventListener( |
| - EventTypeNames::loadedmetadata, this, false); |
| + mediaElement().addEventListener(EventTypeNames::volumechange, this, false); |
| + mediaElement().addEventListener(EventTypeNames::focusin, this, false); |
| + mediaElement().addEventListener(EventTypeNames::timeupdate, this, false); |
| + mediaElement().addEventListener(EventTypeNames::play, this, false); |
| + mediaElement().addEventListener(EventTypeNames::pause, this, false); |
| + mediaElement().addEventListener(EventTypeNames::durationchange, this, false); |
| + mediaElement().addEventListener(EventTypeNames::error, this, false); |
| + mediaElement().addEventListener(EventTypeNames::loadedmetadata, this, false); |
| + |
| + // Listen to two different fullscreen events in order to make sure the new and |
| + // old APIs are handled. |
| + mediaElement().addEventListener(EventTypeNames::webkitfullscreenchange, this, |
| + false); |
| + m_mediaControls->document().addEventListener(EventTypeNames::fullscreenchange, |
| + this, false); |
| // TextTracks events. |
| - TextTrackList* textTracks = m_mediaControls->m_mediaElement->textTracks(); |
| + TextTrackList* textTracks = mediaElement().textTracks(); |
| textTracks->addEventListener(EventTypeNames::addtrack, this, false); |
| textTracks->addEventListener(EventTypeNames::change, this, false); |
| textTracks->addEventListener(EventTypeNames::removetrack, this, false); |
| @@ -43,6 +42,10 @@ bool MediaControlsMediaEventListener::operator==( |
| return this == &other; |
| } |
| +HTMLMediaElement& MediaControlsMediaEventListener::mediaElement() { |
| + return m_mediaControls->mediaElement(); |
| +} |
| + |
| void MediaControlsMediaEventListener::handleEvent( |
| ExecutionContext* executionContext, |
| Event* event) { |
| @@ -79,6 +82,16 @@ void MediaControlsMediaEventListener::handleEvent( |
| return; |
| } |
| + // Fullscreen handling. |
| + if (event->type() == EventTypeNames::fullscreenchange || |
| + event->type() == EventTypeNames::webkitfullscreenchange) { |
| + if (mediaElement().isFullscreen()) |
|
Zhiqiang Zhang (Slow)
2016/12/20 11:45:29
I think MediaControlsOrientationLockDelegate has s
mlamouri (slow - plz ping)
2016/12/20 12:15:44
I think having both listen to the event is fine. T
|
| + m_mediaControls->onEnteredFullscreen(); |
| + else |
| + m_mediaControls->onExitedFullscreen(); |
| + return; |
| + } |
| + |
| // TextTracks events. |
| if (event->type() == EventTypeNames::addtrack || |
| event->type() == EventTypeNames::removetrack) { |