| Index: third_party/WebKit/Source/modules/mediasession/MediaSession.h
|
| diff --git a/third_party/WebKit/Source/modules/mediasession/MediaSession.h b/third_party/WebKit/Source/modules/mediasession/MediaSession.h
|
| index 00a7ba808fd7363c7790c3b3a9a457d63614d346..23e4c2928928e018b3bd9b8447c12e690c1bcf3d 100644
|
| --- a/third_party/WebKit/Source/modules/mediasession/MediaSession.h
|
| +++ b/third_party/WebKit/Source/modules/mediasession/MediaSession.h
|
| @@ -6,22 +6,25 @@
|
| #define MediaSession_h
|
|
|
| #include "bindings/core/v8/ScriptWrappable.h"
|
| +#include "bindings/core/v8/TraceWrapperMember.h"
|
| #include "core/dom/ContextLifecycleObserver.h"
|
| -#include "core/events/EventTarget.h"
|
| #include "modules/ModulesExport.h"
|
| #include "mojo/public/cpp/bindings/binding.h"
|
| #include "platform/heap/Handle.h"
|
| #include "public/platform/modules/mediasession/media_session.mojom-blink.h"
|
| +#include "wtf/text/WTFString.h"
|
| #include <memory>
|
|
|
| namespace blink {
|
|
|
| class ExecutionContext;
|
| class MediaMetadata;
|
| +class MediaSessionActionCallback;
|
|
|
| class MODULES_EXPORT MediaSession final
|
| - : public EventTargetWithInlineData,
|
| + : public GarbageCollectedFinalized<MediaSession>,
|
| public ContextLifecycleObserver,
|
| + public ScriptWrappable,
|
| blink::mojom::blink::MediaSessionClient {
|
| USING_GARBAGE_COLLECTED_MIXIN(MediaSession);
|
| DEFINE_WRAPPERTYPEINFO();
|
| @@ -38,45 +41,34 @@ class MODULES_EXPORT MediaSession final
|
| void setMetadata(MediaMetadata*);
|
| MediaMetadata* metadata() const;
|
|
|
| - // EventTarget implementation.
|
| - const WTF::AtomicString& interfaceName() const override;
|
| - ExecutionContext* getExecutionContext() const override;
|
| + void setActionCallback(const String& action, MediaSessionActionCallback*);
|
|
|
| // Called by the MediaMetadata owned by |this| when it has updates. Also used
|
| // internally when a new MediaMetadata object is set.
|
| void onMetadataChanged();
|
|
|
| - DEFINE_ATTRIBUTE_EVENT_LISTENER(play);
|
| - DEFINE_ATTRIBUTE_EVENT_LISTENER(pause);
|
| - DEFINE_ATTRIBUTE_EVENT_LISTENER(previoustrack);
|
| - DEFINE_ATTRIBUTE_EVENT_LISTENER(nexttrack);
|
| - DEFINE_ATTRIBUTE_EVENT_LISTENER(seekforward);
|
| - DEFINE_ATTRIBUTE_EVENT_LISTENER(seekbackward);
|
| -
|
| DECLARE_VIRTUAL_TRACE();
|
| + DECLARE_VIRTUAL_TRACE_WRAPPERS();
|
|
|
| private:
|
| + friend class V8MediaSession;
|
| friend class MediaSessionTest;
|
|
|
| explicit MediaSession(ExecutionContext*);
|
|
|
| - // EventTarget overrides
|
| - bool addEventListenerInternal(
|
| - const AtomicString& eventType,
|
| - EventListener*,
|
| - const AddEventListenerOptionsResolved&) override;
|
| - bool removeEventListenerInternal(const AtomicString& eventType,
|
| - const EventListener*,
|
| - const EventListenerOptions&) override;
|
| -
|
| // blink::mojom::blink::MediaSessionClient implementation.
|
| void DidReceiveAction(blink::mojom::blink::MediaSessionAction) override;
|
|
|
| + void setV8ReferencesForCallbacks(v8::Isolate*,
|
| + const v8::Persistent<v8::Object>& wrapper);
|
| +
|
| // Returns null when the ExecutionContext is not document.
|
| mojom::blink::MediaSessionService* getService();
|
|
|
| mojom::blink::MediaSessionPlaybackState m_playbackState;
|
| Member<MediaMetadata> m_metadata;
|
| + HeapHashMap<String, TraceWrapperMember<MediaSessionActionCallback>>
|
| + m_actionCallbacks;
|
| mojom::blink::MediaSessionServicePtr m_service;
|
| mojo::Binding<blink::mojom::blink::MediaSessionClient> m_clientBinding;
|
| };
|
|
|