| Index: third_party/WebKit/Source/modules/mediasession/MediaMetadata.cpp
|
| diff --git a/third_party/WebKit/Source/modules/mediasession/MediaMetadata.cpp b/third_party/WebKit/Source/modules/mediasession/MediaMetadata.cpp
|
| index 3915d544a905fd5a5d69bfcdb07da07f3e00c6c8..a3b93e1c3c2ce2c85782cb27ec1e0b50e8c7d27a 100644
|
| --- a/third_party/WebKit/Source/modules/mediasession/MediaMetadata.cpp
|
| +++ b/third_party/WebKit/Source/modules/mediasession/MediaMetadata.cpp
|
| @@ -7,6 +7,7 @@
|
| #include "core/dom/ExecutionContext.h"
|
| #include "modules/mediasession/MediaImage.h"
|
| #include "modules/mediasession/MediaMetadataInit.h"
|
| +#include "modules/mediasession/MediaSession.h"
|
|
|
| namespace blink {
|
|
|
| @@ -17,7 +18,8 @@ MediaMetadata* MediaMetadata::create(ExecutionContext* context,
|
| }
|
|
|
| MediaMetadata::MediaMetadata(ExecutionContext* context,
|
| - const MediaMetadataInit& metadata) {
|
| + const MediaMetadataInit& metadata)
|
| + : m_notifySessionTimer(this, &MediaMetadata::notifySessionTimerFired) {
|
| m_title = metadata.title();
|
| m_artist = metadata.artist();
|
| m_album = metadata.album();
|
| @@ -41,8 +43,45 @@ const HeapVector<Member<MediaImage>>& MediaMetadata::artwork() const {
|
| return m_artwork;
|
| }
|
|
|
| +void MediaMetadata::setTitle(const String& title) {
|
| + m_title = title;
|
| + notifySessionAsync();
|
| +}
|
| +
|
| +void MediaMetadata::setArtist(const String& artist) {
|
| + m_artist = artist;
|
| + notifySessionAsync();
|
| +}
|
| +
|
| +void MediaMetadata::setAlbum(const String& album) {
|
| + m_album = album;
|
| + notifySessionAsync();
|
| +}
|
| +
|
| +void MediaMetadata::setArtwork(const HeapVector<Member<MediaImage>>& artwork) {
|
| + m_artwork = artwork;
|
| + notifySessionAsync();
|
| +}
|
| +
|
| +void MediaMetadata::setSession(MediaSession* session) {
|
| + m_session = session;
|
| +}
|
| +
|
| +void MediaMetadata::notifySessionAsync() {
|
| + if (!m_session || m_notifySessionTimer.isActive())
|
| + return;
|
| + m_notifySessionTimer.startOneShot(0, BLINK_FROM_HERE);
|
| +}
|
| +
|
| +void MediaMetadata::notifySessionTimerFired(TimerBase*) {
|
| + if (!m_session)
|
| + return;
|
| + m_session->onMetadataChanged();
|
| +}
|
| +
|
| DEFINE_TRACE(MediaMetadata) {
|
| visitor->trace(m_artwork);
|
| + visitor->trace(m_session);
|
| }
|
|
|
| } // namespace blink
|
|
|