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_; |