Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(960)

Unified Diff: third_party/WebKit/Source/modules/mediasession/MediaMetadata.cpp

Issue 2013813002: Implement MediaMetadata artwork in Blink (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressed comments Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 438764db1a5f7f40116e94eef11ee1412624491d..ed473290ea14a863062d9e324356b9b4d0e6e2f6 100644
--- a/third_party/WebKit/Source/modules/mediasession/MediaMetadata.cpp
+++ b/third_party/WebKit/Source/modules/mediasession/MediaMetadata.cpp
@@ -4,37 +4,64 @@
#include "modules/mediasession/MediaMetadata.h"
+#include "core/dom/ExecutionContext.h"
+#include "modules/mediasession/MediaArtwork.h"
#include "modules/mediasession/MediaMetadataInit.h"
-#include "wtf/text/WTFString.h"
namespace blink {
// static
-MediaMetadata* MediaMetadata::create(const MediaMetadataInit& metadata)
+MediaMetadata* MediaMetadata::create(ExecutionContext* context, const MediaMetadataInit& metadata)
{
- return new MediaMetadata(metadata);
+ return new MediaMetadata(context, metadata);
}
-MediaMetadata::MediaMetadata(const MediaMetadataInit& metadata)
+MediaMetadata::MediaMetadata(ExecutionContext* context, const MediaMetadataInit& metadata)
{
- m_data.title = metadata.title();
- m_data.artist = metadata.artist();
- m_data.album = metadata.album();
+ m_title = metadata.title();
+ m_artist = metadata.artist();
+ m_album = metadata.album();
+ for (const auto &artwork : metadata.artwork())
+ m_artwork.append(MediaArtwork::create(context, artwork));
}
String MediaMetadata::title() const
{
- return m_data.title;
+ return m_title;
}
String MediaMetadata::artist() const
{
- return m_data.artist;
+ return m_artist;
}
String MediaMetadata::album() const
{
- return m_data.album;
+ return m_album;
+}
+
+const HeapVector<Member<MediaArtwork>>& MediaMetadata::artwork() const
+{
+ return m_artwork;
+}
+
+MediaMetadata::operator WebMediaMetadata() const
+{
+ WebMediaMetadata webMetadata;
+ webMetadata.title = m_title;
+ webMetadata.artist = m_artist;
+ webMetadata.album = m_album;
+ WebVector<WebMediaArtwork> webArtwork(m_artwork.size());
+ for (size_t i = 0; i < m_artwork.size(); ++i) {
+ webArtwork[i] = *m_artwork[i]->data();
+ }
+ webMetadata.artwork.swap(webArtwork);
+ return webMetadata;
+}
+
+DEFINE_TRACE(MediaMetadata)
+{
+ visitor->trace(m_artwork);
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698