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

Unified Diff: chromecast/browser/cast_media_blocker.cc

Issue 2450433002: Let CastMediaBlocker observe MediaSession instead of WebContents (Closed)
Patch Set: fixed tests Created 4 years, 2 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: chromecast/browser/cast_media_blocker.cc
diff --git a/chromecast/browser/cast_media_blocker.cc b/chromecast/browser/cast_media_blocker.cc
index 9f49bab4ff66ac5774edcf0c188ed27ff348347f..874dc227810f4b609430bfc57c980fa5db183cad 100644
--- a/chromecast/browser/cast_media_blocker.cc
+++ b/chromecast/browser/cast_media_blocker.cc
@@ -4,23 +4,24 @@
#include "chromecast/browser/cast_media_blocker.h"
-#include "base/callback.h"
+#include "base/bind.h"
#include "base/threading/thread_checker.h"
+#include "content/public/browser/media_session.h"
#include "content/public/browser/web_contents.h"
namespace chromecast {
namespace shell {
-CastMediaBlocker::CastMediaBlocker(content::WebContents* web_contents)
+CastMediaBlocker::CastMediaBlocker(content::MediaSession* media_session)
: CastMediaBlocker::CastMediaBlocker(
- web_contents,
+ media_session,
derekjchow1 2016/10/24 18:50:33 How is a content embedder supposed to obtain a ref
Zhiqiang Zhang (Slow) 2016/10/28 10:36:52 Yes, it is 1-1 mapping. You can use MediaSession::
base::Bind(&CastMediaBlocker::Suspend, base::Unretained(this)),
base::Bind(&CastMediaBlocker::Resume, base::Unretained(this))) {}
Zhiqiang Zhang (Slow) 2016/10/24 18:29:32 Are these callbacks used for testing? After we exp
derekjchow1 2016/10/24 18:50:33 Correct. Your approach SGTM. We can probably remov
Zhiqiang Zhang (Slow) 2016/10/28 10:36:52 Done removing the callbacks. See the tests for det
-CastMediaBlocker::CastMediaBlocker(content::WebContents* web_contents,
+CastMediaBlocker::CastMediaBlocker(content::MediaSession* media_session,
const base::Closure& suspend_cb,
const base::Closure& resume_cb)
- : content::WebContentsObserver(web_contents),
+ : content::MediaSessionObserver(media_session),
suspend_cb_(suspend_cb),
resume_cb_(resume_cb),
blocked_(false),
@@ -101,19 +102,19 @@ void CastMediaBlocker::MediaSessionStateChanged(bool is_controllable,
}
void CastMediaBlocker::Suspend() {
- if (!web_contents())
+ if (!media_session())
return;
LOG(INFO) << "Suspending media session.";
- web_contents()->SuspendMediaSession();
+ media_session()->Suspend(content::MediaSession::SuspendType::SYSTEM);
}
void CastMediaBlocker::Resume() {
- if (!web_contents())
+ if (!media_session())
return;
LOG(INFO) << "Resuming media session.";
- web_contents()->ResumeMediaSession();
+ media_session()->Resume(content::MediaSession::SuspendType::SYSTEM);
}
} // namespace shell

Powered by Google App Engine
This is Rietveld 408576698