| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011, 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 3 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 | 77 |
| 78 // MediaControls implementation. | 78 // MediaControls implementation. |
| 79 void Show() override; | 79 void Show() override; |
| 80 void Hide() override; | 80 void Hide() override; |
| 81 void Reset() override; | 81 void Reset() override; |
| 82 void OnControlsListUpdated() override; | 82 void OnControlsListUpdated() override; |
| 83 // TODO(mlamouri): this is temporary to notify the controls that an | 83 // TODO(mlamouri): this is temporary to notify the controls that an |
| 84 // HTMLTrackElement failed to load because there is no web exposed way to | 84 // HTMLTrackElement failed to load because there is no web exposed way to |
| 85 // be notified on the TextTrack object. See https://crbug.com/669977 | 85 // be notified on the TextTrack object. See https://crbug.com/669977 |
| 86 void OnTrackElementFailedToLoad() override { OnTextTracksAddedOrRemoved(); } | 86 void OnTrackElementFailedToLoad() override { OnTextTracksAddedOrRemoved(); } |
| 87 // TODO(mlamouri): the following methods will be able to become private when | |
| 88 // the controls have to modules/ and have access to RemotePlayback. | |
| 89 void OnRemotePlaybackAvailabilityChanged() override { | |
| 90 RefreshCastButtonVisibility(); | |
| 91 } | |
| 92 void OnRemotePlaybackConnecting() override { StartedCasting(); } | |
| 93 void OnRemotePlaybackDisconnected() override { StoppedCasting(); } | |
| 94 // TODO(mlamouri): this method is needed in order to notify the controls that | |
| 95 // the attribute have changed. | |
| 96 void OnDisableRemotePlaybackAttributeChanged() override { | |
| 97 RefreshCastButtonVisibility(); | |
| 98 } | |
| 99 // Notify us that the media element's network state has changed. | 87 // Notify us that the media element's network state has changed. |
| 100 void NetworkStateChanged() override; | 88 void NetworkStateChanged() override; |
| 101 LayoutObject* PanelLayoutObject() override; | 89 LayoutObject* PanelLayoutObject() override; |
| 102 LayoutObject* ContainerLayoutObject() override; | 90 LayoutObject* ContainerLayoutObject() override; |
| 103 // Return the internal elements, which is used by registering clicking | 91 // Return the internal elements, which is used by registering clicking |
| 104 // EventHandlers from MediaControlsWindowEventListener. | 92 // EventHandlers from MediaControlsWindowEventListener. |
| 105 HTMLDivElement* PanelElement() override; | 93 HTMLDivElement* PanelElement() override; |
| 106 // TODO(mlamouri): this method is needed in order to notify the controls that | 94 // TODO(mlamouri): this method is needed in order to notify the controls that |
| 107 // the `MediaControlsEnabled` setting has changed. | 95 // the `MediaControlsEnabled` setting has changed. |
| 108 void OnMediaControlsEnabledChange() override { | 96 void OnMediaControlsEnabledChange() override { |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 // with, allowing MediaControlsImpl to not have the boilerplate. | 132 // with, allowing MediaControlsImpl to not have the boilerplate. |
| 145 friend class MediaControlsWindowEventListener; | 133 friend class MediaControlsWindowEventListener; |
| 146 | 134 |
| 147 // For tests. | 135 // For tests. |
| 148 friend class MediaControlsOrientationLockDelegateTest; | 136 friend class MediaControlsOrientationLockDelegateTest; |
| 149 friend class MediaControlsImplTest; | 137 friend class MediaControlsImplTest; |
| 150 | 138 |
| 151 // Need to be members of MediaControls for private member access. | 139 // Need to be members of MediaControls for private member access. |
| 152 class BatchedControlUpdate; | 140 class BatchedControlUpdate; |
| 153 class MediaControlsResizeObserverCallback; | 141 class MediaControlsResizeObserverCallback; |
| 142 class MediaElementMutationCallback; |
| 154 | 143 |
| 155 static MediaControlsImpl* Create(HTMLMediaElement&, ShadowRoot&); | 144 static MediaControlsImpl* Create(HTMLMediaElement&, ShadowRoot&); |
| 156 | 145 |
| 157 void Invalidate(Element*); | 146 void Invalidate(Element*); |
| 158 | 147 |
| 159 // Notify us that our controls enclosure has changed size. | 148 // Notify us that our controls enclosure has changed size. |
| 160 void NotifyElementSizeChanged(ClientRect* new_size); | 149 void NotifyElementSizeChanged(ClientRect* new_size); |
| 161 | 150 |
| 162 explicit MediaControlsImpl(HTMLMediaElement&); | 151 explicit MediaControlsImpl(HTMLMediaElement&); |
| 163 | 152 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 192 // current. | 181 // current. |
| 193 void ComputeWhichControlsFit(); | 182 void ComputeWhichControlsFit(); |
| 194 | 183 |
| 195 // Node | 184 // Node |
| 196 bool IsMediaControls() const override { return true; } | 185 bool IsMediaControls() const override { return true; } |
| 197 bool WillRespondToMouseMoveEvents() override { return true; } | 186 bool WillRespondToMouseMoveEvents() override { return true; } |
| 198 void DefaultEventHandler(Event*) override; | 187 void DefaultEventHandler(Event*) override; |
| 199 bool ContainsRelatedTarget(Event*); | 188 bool ContainsRelatedTarget(Event*); |
| 200 | 189 |
| 201 // Internal cast related methods. | 190 // Internal cast related methods. |
| 202 void StartedCasting(); | 191 void RemotePlaybackStateChanged(); |
| 203 void StoppedCasting(); | |
| 204 void RefreshCastButtonVisibility(); | 192 void RefreshCastButtonVisibility(); |
| 205 void RefreshCastButtonVisibilityWithoutUpdate(); | 193 void RefreshCastButtonVisibilityWithoutUpdate(); |
| 206 | 194 |
| 207 // Methods called by MediaControlsMediaEventListener. | 195 // Methods called by MediaControlsMediaEventListener. |
| 208 void OnVolumeChange(); | 196 void OnVolumeChange(); |
| 209 void OnFocusIn(); | 197 void OnFocusIn(); |
| 210 void OnTimeUpdate(); | 198 void OnTimeUpdate(); |
| 211 void OnDurationChange(); | 199 void OnDurationChange(); |
| 212 void OnPlay(); | 200 void OnPlay(); |
| 213 void OnPlaying(); | 201 void OnPlaying(); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 | 236 |
| 249 TaskRunnerTimer<MediaControlsImpl> hide_media_controls_timer_; | 237 TaskRunnerTimer<MediaControlsImpl> hide_media_controls_timer_; |
| 250 unsigned hide_timer_behavior_flags_; | 238 unsigned hide_timer_behavior_flags_; |
| 251 bool is_mouse_over_controls_ : 1; | 239 bool is_mouse_over_controls_ : 1; |
| 252 bool is_paused_for_scrubbing_ : 1; | 240 bool is_paused_for_scrubbing_ : 1; |
| 253 | 241 |
| 254 // Watches the video element for resize and updates media controls as | 242 // Watches the video element for resize and updates media controls as |
| 255 // necessary. | 243 // necessary. |
| 256 Member<ResizeObserver> resize_observer_; | 244 Member<ResizeObserver> resize_observer_; |
| 257 | 245 |
| 246 // Watches the media element for attribute changes and updates media controls |
| 247 // as necessary. |
| 248 Member<MediaElementMutationCallback> element_mutation_callback_; |
| 249 |
| 258 TaskRunnerTimer<MediaControlsImpl> element_size_changed_timer_; | 250 TaskRunnerTimer<MediaControlsImpl> element_size_changed_timer_; |
| 259 IntSize size_; | 251 IntSize size_; |
| 260 | 252 |
| 261 bool keep_showing_until_timer_fires_ : 1; | 253 bool keep_showing_until_timer_fires_ : 1; |
| 262 }; | 254 }; |
| 263 | 255 |
| 264 DEFINE_ELEMENT_TYPE_CASTS(MediaControlsImpl, IsMediaControls()); | 256 DEFINE_ELEMENT_TYPE_CASTS(MediaControlsImpl, IsMediaControls()); |
| 265 | 257 |
| 266 } // namespace blink | 258 } // namespace blink |
| 267 | 259 |
| 268 #endif | 260 #endif |
| OLD | NEW |