| Index: content/renderer/media/android/webmediaplayer_android.h
|
| diff --git a/content/renderer/media/android/webmediaplayer_android.h b/content/renderer/media/android/webmediaplayer_android.h
|
| index 5e96e8384204889a052bbd593e9bc4f5c9d2aaf1..efad2caacfad26be20d2e41725ea77ea4dba1918 100644
|
| --- a/content/renderer/media/android/webmediaplayer_android.h
|
| +++ b/content/renderer/media/android/webmediaplayer_android.h
|
| @@ -19,7 +19,6 @@
|
| #include "base/time/time.h"
|
| #include "cc/layers/video_frame_provider.h"
|
| #include "content/common/media/media_player_messages_enums_android.h"
|
| -#include "content/public/renderer/render_frame_observer.h"
|
| #include "content/renderer/media/android/media_info_loader.h"
|
| #include "content/renderer/media/android/media_source_delegate.h"
|
| #include "content/renderer/media/android/stream_texture_factory.h"
|
| @@ -29,6 +28,7 @@
|
| #include "media/base/demuxer_stream.h"
|
| #include "media/base/media_keys.h"
|
| #include "media/base/time_delta_interpolator.h"
|
| +#include "media/blink/webmediaplayer_delegate.h"
|
| #include "media/blink/webmediaplayer_params.h"
|
| #include "media/cdm/proxy_decryptor.h"
|
| #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h"
|
| @@ -66,7 +66,6 @@ class CdmFactory;
|
| class MediaLog;
|
| class MediaPermission;
|
| class WebContentDecryptionModuleImpl;
|
| -class WebMediaPlayerDelegate;
|
| }
|
|
|
| namespace content {
|
| @@ -78,10 +77,11 @@ class RendererMediaPlayerManager;
|
| // media player in the browser process. It listens to all the status changes
|
| // sent from the browser process and sends playback controls to the media
|
| // player.
|
| -class WebMediaPlayerAndroid : public blink::WebMediaPlayer,
|
| - public cc::VideoFrameProvider,
|
| - public RenderFrameObserver,
|
| - public StreamTextureFactoryContextObserver {
|
| +class WebMediaPlayerAndroid
|
| + : public blink::WebMediaPlayer,
|
| + public cc::VideoFrameProvider,
|
| + public NON_EXPORTED_BASE(media::WebMediaPlayerDelegate::Observer),
|
| + public StreamTextureFactoryContextObserver {
|
| public:
|
| // Construct a WebMediaPlayerAndroid object. This class communicates with the
|
| // MediaPlayerAndroid object in the browser process through |proxy|.
|
| @@ -223,9 +223,6 @@ class WebMediaPlayerAndroid : public blink::WebMediaPlayer,
|
| // However, the actual GlTexture is not released to keep the video screenshot.
|
| void SuspendAndReleaseResources();
|
|
|
| - // RenderFrameObserver implementation.
|
| - void OnDestruct() override;
|
| -
|
| #if defined(VIDEO_HOLE)
|
| // Calculate the boundary rectangle of the media player (i.e. location and
|
| // size of the video frame).
|
| @@ -269,6 +266,12 @@ class WebMediaPlayerAndroid : public blink::WebMediaPlayer,
|
| // is not available.
|
| void OnWaitingForDecryptionKey();
|
|
|
| + // WebMediaPlayerDelegate::Observer implementation.
|
| + void OnHidden() override;
|
| + void OnShown() override;
|
| + void OnPlay() override;
|
| + void OnPause() override;
|
| +
|
| protected:
|
| // Helper method to update the playing state.
|
| void UpdatePlayingState(bool is_playing_);
|
| @@ -537,6 +540,9 @@ class WebMediaPlayerAndroid : public blink::WebMediaPlayer,
|
| // Whether to delete the existing texture and re-create it.
|
| bool suppress_deleting_texture_;
|
|
|
| + // Whether OnPlaybackComplete() has been called since the last playback.
|
| + bool playback_completed_;
|
| +
|
| // NOTE: Weak pointers must be invalidated before all other member variables.
|
| base::WeakPtrFactory<WebMediaPlayerAndroid> weak_factory_;
|
|
|
|
|