Chromium Code Reviews| Index: media/blink/webmediaplayer_impl.h |
| diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h |
| index 16f3bbdbec91f6973d68da6e9dcb52e15f4c662f..3c776d1ed9e72cc5285f783ff0f1eb338a8dbd44 100644 |
| --- a/media/blink/webmediaplayer_impl.h |
| +++ b/media/blink/webmediaplayer_impl.h |
| @@ -22,6 +22,7 @@ |
| #include "base/timer/timer.h" |
| #include "build/build_config.h" |
| #include "media/base/media_tracks.h" |
| +#include "media/base/mediaplayer_observer.h" |
| #include "media/base/pipeline_impl.h" |
| #include "media/base/renderer_factory.h" |
| #include "media/base/surface_manager.h" |
| @@ -88,6 +89,7 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl |
| public: |
| // Constructs a WebMediaPlayer implementation using Chromium's media stack. |
| // |delegate| may be null. |renderer_factory| must not be null. |
| + // |observer| outlives this class, and could be null. |
|
xhwang
2016/10/01 07:12:15
In your case, the |observer| is the same object as
xjz
2016/10/03 22:31:08
Done.
|
| WebMediaPlayerImpl( |
| blink::WebLocalFrame* frame, |
| blink::WebMediaPlayerClient* client, |
| @@ -95,6 +97,7 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl |
| base::WeakPtr<WebMediaPlayerDelegate> delegate, |
| std::unique_ptr<RendererFactory> renderer_factory, |
| linked_ptr<UrlIndex> url_index, |
| + MediaPlayerObserver* observer, |
| const WebMediaPlayerParams& params); |
| ~WebMediaPlayerImpl() override; |
| @@ -181,6 +184,10 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl |
| void enteredFullscreen() override; |
| void exitedFullscreen() override; |
| + // These are called when any ancestor enters/exits full screen. |
| + void ancestorEnteredFullscreen() override; |
| + void ancestorExitedFullscreen() override; |
| + |
| // WebMediaPlayerDelegate::Observer implementation. |
| void OnHidden() override; |
| void OnShown() override; |
| @@ -210,6 +217,11 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl |
| // TODO(hubbe): WMPI_CAST make private. |
| void OnPipelineSeeked(bool time_updated); |
| + // Restart the player/pipeline as soon as possible. This will destroy the |
| + // current renderer, if any, and create a new one via the RendererFactory; and |
| + // then seek to resume playback at the current position. |
| + void ScheduleRestart(); |
| + |
| // Distinct states that |delegate_| can be in. |
| // TODO(sandersd): This should move into WebMediaPlayerDelegate. |
| // (Public for testing.) |
| @@ -253,9 +265,6 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl |
| // |time_updated| is false. |
| void DoSeek(base::TimeDelta time, bool time_updated); |
| - // Ask for the renderer to be restarted (destructed and recreated). |
| - void ScheduleRestart(); |
| - |
| // Called after |defer_load_cb_| has decided to allow the load. If |
| // |defer_load_cb_| is null this is called immediately. |
| void DoLoad(LoadType load_type, |
| @@ -548,6 +557,9 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl |
| int underflow_count_; |
| std::unique_ptr<base::ElapsedTimer> underflow_timer_; |
| + // Monitors the player events. |
| + MediaPlayerObserver* const observer_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl); |
| }; |