| Index: content/browser/media/android/browser_media_session_manager.cc
|
| diff --git a/content/browser/media/android/browser_media_session_manager.cc b/content/browser/media/android/browser_media_session_manager.cc
|
| index dffee6cdfd7f3719977e6ae927251828a97bbfa6..6155d0b6f9d83667b1afb2e9320a8771df635a92 100644
|
| --- a/content/browser/media/android/browser_media_session_manager.cc
|
| +++ b/content/browser/media/android/browser_media_session_manager.cc
|
| @@ -11,13 +11,15 @@
|
| #include "content/common/media/media_session_messages_android.h"
|
| #include "content/public/browser/render_frame_host.h"
|
| #include "content/public/browser/render_process_host.h"
|
| -#include "content/public/common/media_metadata.h"
|
|
|
| namespace content {
|
|
|
| BrowserMediaSessionManager::BrowserMediaSessionManager(
|
| - RenderFrameHost* render_frame_host)
|
| - : render_frame_host_(render_frame_host) {}
|
| + RenderFrameHost* render_frame_host,
|
| + WebContentsImpl* contents)
|
| + : render_frame_host_(render_frame_host), contents_(contents) {}
|
| +
|
| +BrowserMediaSessionManager::~BrowserMediaSessionManager() = default;
|
|
|
| void BrowserMediaSessionManager::OnActivate(int session_id, int request_id) {
|
| NOTIMPLEMENTED();
|
| @@ -32,6 +34,12 @@ void BrowserMediaSessionManager::OnDeactivate(int session_id, int request_id) {
|
| void BrowserMediaSessionManager::OnSetMetadata(
|
| int session_id,
|
| const base::Optional<MediaMetadata>& insecure_metadata) {
|
| + // Non-top-level frames should not receive metadata.
|
| + if (render_frame_host_->GetParent()) {
|
| + render_frame_host_->GetProcess()->ShutdownForBadMessage();
|
| + return;
|
| + }
|
| +
|
| // When receiving a MediaMetadata, the browser process can't trust that it is
|
| // coming from a known and secure source. It must be processed accordingly.
|
| if (insecure_metadata.has_value() &&
|
| @@ -40,7 +48,8 @@ void BrowserMediaSessionManager::OnSetMetadata(
|
| return;
|
| }
|
|
|
| - NOTIMPLEMENTED();
|
| + media_metadata_ = insecure_metadata;
|
| + contents_->OnMediaSessionStateChanged();
|
| }
|
|
|
| int BrowserMediaSessionManager::GetRoutingID() const {
|
|
|