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) { |