| 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 146a60fe970ae9da7f0fe9a4b56f044ecdfeec77..a7e5fd5bbfa28e38fdeb8ac7290cacdf3c34f1ec 100644
|
| --- a/content/browser/media/android/browser_media_session_manager.cc
|
| +++ b/content/browser/media/android/browser_media_session_manager.cc
|
| @@ -6,6 +6,8 @@
|
|
|
| #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 {
|
|
|
| @@ -23,6 +25,27 @@ void BrowserMediaSessionManager::OnDeactivate(int session_id, int request_id) {
|
| Send(new MediaSessionMsg_DidDeactivate(GetRoutingID(), request_id));
|
| }
|
|
|
| +void BrowserMediaSessionManager::OnSetMetadata(
|
| + int session_id,
|
| + const MediaMetadata& insecure_metadata) {
|
| + // 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.
|
| + MediaMetadata metadata;
|
| + metadata.title =
|
| + insecure_metadata.title.substr(0, MediaMetadata::kMaxIPCStringLength);
|
| + metadata.artist =
|
| + insecure_metadata.artist.substr(0, MediaMetadata::kMaxIPCStringLength);
|
| + metadata.album =
|
| + insecure_metadata.album.substr(0, MediaMetadata::kMaxIPCStringLength);
|
| +
|
| + if (metadata != insecure_metadata) {
|
| + render_frame_host_->GetProcess()->ShutdownForBadMessage();
|
| + return;
|
| + }
|
| +
|
| + NOTIMPLEMENTED();
|
| +}
|
| +
|
| int BrowserMediaSessionManager::GetRoutingID() const {
|
| return render_frame_host_->GetRoutingID();
|
| }
|
|
|