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

Side by Side Diff: third_party/WebKit/Source/modules/media_controls/MediaControlsMediaEventListener.cpp

Issue 2700663002: Adds keyboard functionality for videos. (Closed)
Patch Set: Now calls IsSpatialNavigationEnabled() directly. Created 3 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "modules/media_controls/MediaControlsMediaEventListener.h" 5 #include "modules/media_controls/MediaControlsMediaEventListener.h"
6 6
7 #include "core/events/Event.h" 7 #include "core/events/Event.h"
8 #include "core/html/HTMLMediaElement.h" 8 #include "core/html/HTMLMediaElement.h"
9 #include "core/html/track/TextTrackList.h" 9 #include "core/html/track/TextTrackList.h"
10 #include "modules/media_controls/MediaControlsImpl.h" 10 #include "modules/media_controls/MediaControlsImpl.h"
(...skipping 17 matching lines...) Expand all
28 GetMediaElement().addEventListener(EventTypeNames::focusin, this, false); 28 GetMediaElement().addEventListener(EventTypeNames::focusin, this, false);
29 GetMediaElement().addEventListener(EventTypeNames::timeupdate, this, false); 29 GetMediaElement().addEventListener(EventTypeNames::timeupdate, this, false);
30 GetMediaElement().addEventListener(EventTypeNames::play, this, false); 30 GetMediaElement().addEventListener(EventTypeNames::play, this, false);
31 GetMediaElement().addEventListener(EventTypeNames::playing, this, false); 31 GetMediaElement().addEventListener(EventTypeNames::playing, this, false);
32 GetMediaElement().addEventListener(EventTypeNames::pause, this, false); 32 GetMediaElement().addEventListener(EventTypeNames::pause, this, false);
33 GetMediaElement().addEventListener(EventTypeNames::durationchange, this, 33 GetMediaElement().addEventListener(EventTypeNames::durationchange, this,
34 false); 34 false);
35 GetMediaElement().addEventListener(EventTypeNames::error, this, false); 35 GetMediaElement().addEventListener(EventTypeNames::error, this, false);
36 GetMediaElement().addEventListener(EventTypeNames::loadedmetadata, this, 36 GetMediaElement().addEventListener(EventTypeNames::loadedmetadata, this,
37 false); 37 false);
38 GetMediaElement().addEventListener(EventTypeNames::keypress, this, false);
39 GetMediaElement().addEventListener(EventTypeNames::keydown, this, false);
40 GetMediaElement().addEventListener(EventTypeNames::keyup, this, false);
38 41
39 // Listen to two different fullscreen events in order to make sure the new and 42 // Listen to two different fullscreen events in order to make sure the new and
40 // old APIs are handled. 43 // old APIs are handled.
41 GetMediaElement().addEventListener(EventTypeNames::webkitfullscreenchange, 44 GetMediaElement().addEventListener(EventTypeNames::webkitfullscreenchange,
42 this, false); 45 this, false);
43 media_controls_->GetDocument().addEventListener( 46 media_controls_->GetDocument().addEventListener(
44 EventTypeNames::fullscreenchange, this, false); 47 EventTypeNames::fullscreenchange, this, false);
45 48
46 // TextTracks events. 49 // TextTracks events.
47 TextTrackList* text_tracks = GetMediaElement().textTracks(); 50 TextTrackList* text_tracks = GetMediaElement().textTracks();
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 media_controls_->OnTextTracksAddedOrRemoved(); 177 media_controls_->OnTextTracksAddedOrRemoved();
175 return; 178 return;
176 } 179 }
177 if (event->type() == EventTypeNames::change) { 180 if (event->type() == EventTypeNames::change) {
178 media_controls_->OnTextTracksChanged(); 181 media_controls_->OnTextTracksChanged();
179 return; 182 return;
180 } 183 }
181 184
182 // Keypress events. 185 // Keypress events.
183 if (event->type() == EventTypeNames::keypress) { 186 if (event->type() == EventTypeNames::keypress) {
184 if (event->currentTarget() == media_controls_->PanelElement()) 187 if (event->currentTarget() == media_controls_->PanelElement()) {
185 media_controls_->OnPanelKeypress(); 188 media_controls_->OnPanelKeypress();
189 return;
190 }
191 }
192
193 if (event->type() == EventTypeNames::keypress ||
194 event->type() == EventTypeNames::keydown ||
195 event->type() == EventTypeNames::keyup) {
196 media_controls_->OnMediaKeyboardEvent(event);
186 return; 197 return;
187 } 198 }
188 199
189 // RemotePlayback state change events. 200 // RemotePlayback state change events.
190 if (event->type() == EventTypeNames::connect || 201 if (event->type() == EventTypeNames::connect ||
191 event->type() == EventTypeNames::connecting || 202 event->type() == EventTypeNames::connecting ||
192 event->type() == EventTypeNames::disconnect) { 203 event->type() == EventTypeNames::disconnect) {
193 media_controls_->RemotePlaybackStateChanged(); 204 media_controls_->RemotePlaybackStateChanged();
194 return; 205 return;
195 } 206 }
196 207
197 NOTREACHED(); 208 NOTREACHED();
198 } 209 }
199 210
200 void MediaControlsMediaEventListener::OnRemotePlaybackAvailabilityChanged() { 211 void MediaControlsMediaEventListener::OnRemotePlaybackAvailabilityChanged() {
201 media_controls_->RefreshCastButtonVisibility(); 212 media_controls_->RefreshCastButtonVisibility();
202 } 213 }
203 214
204 DEFINE_TRACE(MediaControlsMediaEventListener) { 215 DEFINE_TRACE(MediaControlsMediaEventListener) {
205 EventListener::Trace(visitor); 216 EventListener::Trace(visitor);
206 visitor->Trace(media_controls_); 217 visitor->Trace(media_controls_);
207 } 218 }
208 219
209 } // namespace blink 220 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698