Index: content/renderer/media/renderer_webmediaplayer_delegate.cc |
diff --git a/content/renderer/media/renderer_webmediaplayer_delegate.cc b/content/renderer/media/renderer_webmediaplayer_delegate.cc |
index 92d1140e8a6c52c2500f4daa21383717f482f37d..f6804db57efc3e50373c38eb2916dfc1d411c2bc 100644 |
--- a/content/renderer/media/renderer_webmediaplayer_delegate.cc |
+++ b/content/renderer/media/renderer_webmediaplayer_delegate.cc |
@@ -14,6 +14,7 @@ |
#include "content/public/renderer/render_frame.h" |
#include "content/public/renderer/render_thread.h" |
#include "third_party/WebKit/public/platform/WebMediaPlayer.h" |
+#include "third_party/WebKit/public/web/WebScopedUserGesture.h" |
#if defined(OS_ANDROID) |
#include "base/android/build_info.h" |
@@ -61,11 +62,6 @@ bool RendererWebMediaPlayerDelegate::IsFrameClosed() { |
return is_frame_closed_; |
} |
-bool RendererWebMediaPlayerDelegate::IsBackgroundVideoPlaybackUnlocked() { |
- // TODO(sandersd): Include a check for kResumeBackgroundVideo? |
- return background_video_allowed_; |
-} |
- |
int RendererWebMediaPlayerDelegate::AddObserver(Observer* observer) { |
return id_map_.Add(observer); |
} |
@@ -180,7 +176,6 @@ void RendererWebMediaPlayerDelegate::WasHidden() { |
void RendererWebMediaPlayerDelegate::WasShown() { |
RecordAction(base::UserMetricsAction("Media.Shown")); |
is_frame_closed_ = false; |
- background_video_allowed_ = false; |
for (IDMap<Observer*>::iterator it(&id_map_); !it.IsAtEnd(); it.Advance()) |
it.GetCurrentValue()->OnFrameShown(); |
@@ -221,12 +216,7 @@ void RendererWebMediaPlayerDelegate::SetFrameHiddenForTesting(bool is_hidden) { |
if (is_hidden == is_frame_hidden_for_testing_) |
return; |
- if (is_hidden) { |
- is_frame_hidden_for_testing_ = true; |
- } else { |
- is_frame_hidden_for_testing_ = false; |
- background_video_allowed_ = false; |
- } |
+ is_frame_hidden_for_testing_ = is_hidden; |
ScheduleUpdateTask(); |
} |
@@ -236,7 +226,12 @@ void RendererWebMediaPlayerDelegate::OnMediaDelegatePause(int player_id) { |
Observer* observer = id_map_.Lookup(player_id); |
if (observer) { |
- background_video_allowed_ = false; |
+ // TODO(avayvod): remove when default play/pause is handled via |
+ // the MediaSession code path. |
+ std::unique_ptr<blink::WebScopedUserGesture> gesture( |
+ render_frame() |
+ ? new blink::WebScopedUserGesture(render_frame()->GetWebFrame()) |
+ : nullptr); |
observer->OnPause(); |
} |
} |
@@ -246,10 +241,12 @@ void RendererWebMediaPlayerDelegate::OnMediaDelegatePlay(int player_id) { |
Observer* observer = id_map_.Lookup(player_id); |
if (observer) { |
- // TODO(sandersd): Ideally we would only set the flag if the player has |
- // video, but we don't reliably know if a paused player has video. |
- if (IsFrameHidden() && !IsFrameClosed()) |
- background_video_allowed_ = true; |
+ // TODO(avayvod): remove when default play/pause is handled via |
+ // the MediaSession code path. |
+ std::unique_ptr<blink::WebScopedUserGesture> gesture( |
+ render_frame() |
+ ? new blink::WebScopedUserGesture(render_frame()->GetWebFrame()) |
+ : nullptr); |
observer->OnPlay(); |
} |
} |