Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1370)

Unified Diff: content/renderer/media/renderer_webmediaplayer_delegate.cc

Issue 2681863005: [Video] MediaSession API event handlers can resume background video. (Closed)
Patch Set: Updated the comment in ComputePlayState Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
}
}

Powered by Google App Engine
This is Rietveld 408576698