| Index: third_party/WebKit/Source/modules/mediasession/MediaSession.cpp
|
| diff --git a/third_party/WebKit/Source/modules/mediasession/MediaSession.cpp b/third_party/WebKit/Source/modules/mediasession/MediaSession.cpp
|
| index b723323b95aebfa0441d76589fd913e89b82099c..e4579cbef0a803d6f2506b0999b0c8820e6110cc 100644
|
| --- a/third_party/WebKit/Source/modules/mediasession/MediaSession.cpp
|
| +++ b/third_party/WebKit/Source/modules/mediasession/MediaSession.cpp
|
| @@ -80,16 +80,29 @@ void MediaSession::dispose() {
|
| }
|
|
|
| void MediaSession::setMetadata(MediaMetadata* metadata) {
|
| - if (mojom::blink::MediaSessionService* service = getService()) {
|
| - service->SetMetadata(MediaMetadataSanitizer::sanitizeAndConvertToMojo(
|
| - metadata, getExecutionContext()));
|
| - }
|
| + if (metadata)
|
| + metadata->setSession(this);
|
| +
|
| + if (m_metadata)
|
| + m_metadata->setSession(nullptr);
|
| +
|
| + m_metadata = metadata;
|
| + onMetadataChanged();
|
| }
|
|
|
| MediaMetadata* MediaSession::metadata() const {
|
| return m_metadata;
|
| }
|
|
|
| +void MediaSession::onMetadataChanged() {
|
| + mojom::blink::MediaSessionService* service = getService();
|
| + if (!service)
|
| + return;
|
| +
|
| + service->SetMetadata(MediaMetadataSanitizer::sanitizeAndConvertToMojo(
|
| + m_metadata, getExecutionContext()));
|
| +}
|
| +
|
| const WTF::AtomicString& MediaSession::interfaceName() const {
|
| return EventTargetNames::MediaSession;
|
| }
|
|
|