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

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

Issue 2612003002: Media Session: use dictionary instead of an interface for MediaImage. (Closed)
Patch Set: rebase Created 3 years, 11 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.h
diff --git a/third_party/WebKit/Source/modules/mediasession/MediaMetadata.h b/third_party/WebKit/Source/modules/mediasession/MediaMetadata.h
index bd013cfb54060ab05a31ba4e5cafd657b313c8de..aaf3d68336726d931b749a930c87e58658e2f011 100644
--- a/third_party/WebKit/Source/modules/mediasession/MediaMetadata.h
+++ b/third_party/WebKit/Source/modules/mediasession/MediaMetadata.h
@@ -13,10 +13,11 @@
namespace blink {
-class ExecutionContext;
+class ExceptionState;
class MediaImage;
class MediaMetadataInit;
class MediaSession;
+class ScriptState;
// Implementation of MediaMetadata interface from the Media Session API.
// The MediaMetadata object is linked to a MediaSession that owns it. When one
@@ -30,17 +31,23 @@ class MODULES_EXPORT MediaMetadata final
DEFINE_WRAPPERTYPEINFO();
public:
- static MediaMetadata* create(ExecutionContext*, const MediaMetadataInit&);
+ static MediaMetadata* create(ScriptState*,
+ const MediaMetadataInit&,
+ ExceptionState&);
String title() const;
String artist() const;
String album() const;
- const HeapVector<Member<MediaImage>>& artwork() const;
+ Vector<v8::Local<v8::Value>> artwork(ScriptState*) const;
+
+ // Internal use only, returns a reference to m_artwork instead of a Frozen
+ // copy of a MediaImage array.
+ const HeapVector<MediaImage>& artwork() const;
void setTitle(const String&);
void setArtist(const String&);
void setAlbum(const String&);
- void setArtwork(const HeapVector<Member<MediaImage>>&);
+ void setArtwork(ScriptState*, const HeapVector<MediaImage>&, ExceptionState&);
// Called by MediaSession to associate or de-associate itself.
void setSession(MediaSession*);
@@ -48,7 +55,7 @@ class MODULES_EXPORT MediaMetadata final
DECLARE_VIRTUAL_TRACE();
private:
- MediaMetadata(ExecutionContext*, const MediaMetadataInit&);
+ MediaMetadata(ScriptState*, const MediaMetadataInit&, ExceptionState&);
// Called when one of the metadata fields is updated from script. It will
// notify the session asynchronously in order to bundle multiple call in one
@@ -59,10 +66,16 @@ class MODULES_EXPORT MediaMetadata final
// modified.
void notifySessionTimerFired(TimerBase*);
+ // Make an internal copy of the MediaImage vector with some internal steps
+ // such as parsing of the src property.
+ void setArtworkInternal(ScriptState*,
+ const HeapVector<MediaImage>&,
+ ExceptionState&);
+
String m_title;
String m_artist;
String m_album;
- HeapVector<Member<MediaImage>> m_artwork;
+ HeapVector<MediaImage> m_artwork;
Member<MediaSession> m_session;
Timer<MediaMetadata> m_notifySessionTimer;

Powered by Google App Engine
This is Rietveld 408576698