diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/mediasession/media_session.h')
-rw-r--r-- | chromium/third_party/blink/renderer/modules/mediasession/media_session.h | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/chromium/third_party/blink/renderer/modules/mediasession/media_session.h b/chromium/third_party/blink/renderer/modules/mediasession/media_session.h index f1193dbd7bb..6031551c62f 100644 --- a/chromium/third_party/blink/renderer/modules/mediasession/media_session.h +++ b/chromium/third_party/blink/renderer/modules/mediasession/media_session.h @@ -6,15 +6,20 @@ #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASESSION_MEDIA_SESSION_H_ #include <memory> -#include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/remote.h" #include "third_party/blink/public/mojom/mediasession/media_session.mojom-blink.h" -#include "third_party/blink/renderer/core/execution_context/context_lifecycle_observer.h" +#include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" #include "third_party/blink/renderer/platform/heap/handle.h" +#include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h" +#include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" +namespace base { +class TickClock; +} // namespace base + namespace blink { class ExecutionContext; @@ -25,17 +30,14 @@ class V8MediaSessionActionHandler; class MODULES_EXPORT MediaSession final : public ScriptWrappable, - public ContextClient, + public ExecutionContextClient, blink::mojom::blink::MediaSessionClient { USING_GARBAGE_COLLECTED_MIXIN(MediaSession); DEFINE_WRAPPERTYPEINFO(); - USING_PRE_FINALIZER(MediaSession, Dispose); public: explicit MediaSession(ExecutionContext*); - void Dispose(); - void setPlaybackState(const String&); String playbackState(); @@ -52,7 +54,7 @@ class MODULES_EXPORT MediaSession final // internally when a new MediaMetadata object is set. void OnMetadataChanged(); - void Trace(blink::Visitor*) override; + void Trace(Visitor*) override; private: friend class V8MediaSession; @@ -65,7 +67,9 @@ class MODULES_EXPORT MediaSession final void NotifyActionChange(const String& action, ActionChangeType); - void RecalculatePositionState(bool notify); + base::TimeDelta GetPositionNow() const; + + void RecalculatePositionState(bool was_set); // blink::mojom::blink::MediaSessionClient implementation. void DidReceiveAction(media_session::mojom::blink::MediaSessionAction, @@ -74,14 +78,17 @@ class MODULES_EXPORT MediaSession final // Returns null when the ExecutionContext is not document. mojom::blink::MediaSessionService* GetService(); + const base::TickClock* clock_ = nullptr; + mojom::blink::MediaSessionPlaybackState playback_state_; media_session::mojom::blink::MediaPositionPtr position_state_; double declared_playback_rate_ = 0.0; Member<MediaMetadata> metadata_; HeapHashMap<String, Member<V8MediaSessionActionHandler>> action_handlers_; mojo::Remote<mojom::blink::MediaSessionService> service_; - mojo::Receiver<blink::mojom::blink::MediaSessionClient> client_receiver_{ - this}; + HeapMojoReceiver<blink::mojom::blink::MediaSessionClient, + HeapMojoWrapperMode::kWithoutContextObserver> + client_receiver_; }; } // namespace blink |