| Index: content/browser/media/media_web_contents_observer.cc
|
| diff --git a/content/browser/media/media_web_contents_observer.cc b/content/browser/media/media_web_contents_observer.cc
|
| index ef3f5dc9c9d5194480f0a5c99e351f872ac0491c..a2713aba92f61c5cfcd3a364c0f202c1ec312db7 100644
|
| --- a/content/browser/media/media_web_contents_observer.cc
|
| +++ b/content/browser/media/media_web_contents_observer.cc
|
| @@ -10,6 +10,7 @@
|
| #include "build/build_config.h"
|
| #include "content/browser/media/audible_metrics.h"
|
| #include "content/browser/media/audio_stream_monitor.h"
|
| +#include "content/browser/media/session/browser_media_session_manager.h"
|
| #include "content/browser/web_contents/web_contents_impl.h"
|
| #include "content/common/media/media_player_delegate_messages.h"
|
| #include "content/public/browser/render_frame_host.h"
|
| @@ -32,6 +33,25 @@ MediaWebContentsObserver::MediaWebContentsObserver(WebContents* web_contents)
|
|
|
| MediaWebContentsObserver::~MediaWebContentsObserver() {}
|
|
|
| +BrowserMediaSessionManager*
|
| +MediaWebContentsObserver::GetMediaSessionManager(
|
| + RenderFrameHost* render_frame_host) {
|
| + auto it = media_session_managers_.find(render_frame_host);
|
| + if (it != media_session_managers_.end())
|
| + return it->second;
|
| +
|
| + BrowserMediaSessionManager* manager =
|
| + new BrowserMediaSessionManager(render_frame_host);
|
| + media_session_managers_.set(render_frame_host, base::WrapUnique(manager));
|
| + return manager;
|
| +}
|
| +
|
| +void MediaWebContentsObserver::SetMediaSessionManagerForTest(
|
| + RenderFrameHost* render_frame_host,
|
| + std::unique_ptr<BrowserMediaSessionManager> manager) {
|
| + media_session_managers_.set(render_frame_host, std::move(manager));
|
| +}
|
| +
|
| void MediaWebContentsObserver::WebContentsDestroyed() {
|
| g_audible_metrics.Get().UpdateAudibleWebContentsState(web_contents(), false);
|
| }
|
| @@ -40,6 +60,7 @@ void MediaWebContentsObserver::RenderFrameDeleted(
|
| RenderFrameHost* render_frame_host) {
|
| ClearPowerSaveBlockers(render_frame_host);
|
| session_controllers_manager_.RenderFrameDeleted(render_frame_host);
|
| + media_session_managers_.erase(render_frame_host);
|
| }
|
|
|
| void MediaWebContentsObserver::MaybeUpdateAudibleState() {
|
|
|