Title: [275210] trunk/Source/WebKit
Revision
275210
Author
[email protected]
Date
2021-03-30 10:10:11 -0700 (Tue, 30 Mar 2021)

Log Message

MediaSessionCoordinatorPrivateProxy should have a Client
https://bugs.webkit.org/show_bug.cgi?id=223935

Reviewed by Eric Carlson.

Similar to the non-proxy MediaSessionCoordinatorPrivate, the Proxy
version should have a client, used for communicating state changes
downstream.

* UIProcess/Media/MediaSessionCoordinatorPrivateProxy.h:
(WebKit::MediaSessionCoordinatorPrivateProxy::setClient):
(WebKit::MediaSessionCoordinatorPrivateProxy::client const):
* UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:
(WebKit::RemoteMediaSessionCoordinatorProxy::seekSessionToTime):
(WebKit::RemoteMediaSessionCoordinatorProxy::playSession):
(WebKit::RemoteMediaSessionCoordinatorProxy::pauseSession):
(WebKit::RemoteMediaSessionCoordinatorProxy::setSessionTrack):
* UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
* WebProcess/MediaSession/RemoteMediaSessionCoordinator.messages.in:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (275209 => 275210)


--- trunk/Source/WebKit/ChangeLog	2021-03-30 17:07:47 UTC (rev 275209)
+++ trunk/Source/WebKit/ChangeLog	2021-03-30 17:10:11 UTC (rev 275210)
@@ -1,3 +1,25 @@
+2021-03-30  Jer Noble  <[email protected]>
+
+        MediaSessionCoordinatorPrivateProxy should have a Client
+        https://bugs.webkit.org/show_bug.cgi?id=223935
+
+        Reviewed by Eric Carlson.
+
+        Similar to the non-proxy MediaSessionCoordinatorPrivate, the Proxy
+        version should have a client, used for communicating state changes
+        downstream.
+
+        * UIProcess/Media/MediaSessionCoordinatorPrivateProxy.h:
+        (WebKit::MediaSessionCoordinatorPrivateProxy::setClient):
+        (WebKit::MediaSessionCoordinatorPrivateProxy::client const):
+        * UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:
+        (WebKit::RemoteMediaSessionCoordinatorProxy::seekSessionToTime):
+        (WebKit::RemoteMediaSessionCoordinatorProxy::playSession):
+        (WebKit::RemoteMediaSessionCoordinatorProxy::pauseSession):
+        (WebKit::RemoteMediaSessionCoordinatorProxy::setSessionTrack):
+        * UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
+        * WebProcess/MediaSession/RemoteMediaSessionCoordinator.messages.in:
+
 2021-03-30  Peng Liu  <[email protected]>
 
         [GPUP] Add "CodeComplete" attribute to some feature flags

Modified: trunk/Source/WebKit/UIProcess/Media/MediaSessionCoordinatorPrivateProxy.h (275209 => 275210)


--- trunk/Source/WebKit/UIProcess/Media/MediaSessionCoordinatorPrivateProxy.h	2021-03-30 17:07:47 UTC (rev 275209)
+++ trunk/Source/WebKit/UIProcess/Media/MediaSessionCoordinatorPrivateProxy.h	2021-03-30 17:10:11 UTC (rev 275210)
@@ -48,8 +48,15 @@
     virtual void readyStateChanged(WebCore::MediaSessionReadyState) = 0;
     virtual void playbackStateChanged(WebCore::MediaSessionPlaybackState) = 0;
 
+    virtual void setClient(WeakPtr<WebCore::MediaSessionCoordinatorClient> client) { m_client = client; }
+
 protected:
     explicit MediaSessionCoordinatorPrivateProxy() = default;
+
+    WeakPtr<WebCore::MediaSessionCoordinatorClient> client() const { return m_client; }
+
+private:
+    WeakPtr<WebCore::MediaSessionCoordinatorClient> m_client;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit/UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp (275209 => 275210)


--- trunk/Source/WebKit/UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp	2021-03-30 17:07:47 UTC (rev 275209)
+++ trunk/Source/WebKit/UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp	2021-03-30 17:10:11 UTC (rev 275210)
@@ -29,6 +29,7 @@
 #if ENABLE(MEDIA_SESSION_COORDINATOR)
 
 #include "MediaSessionCoordinatorPrivateProxy.h"
+#include "RemoteMediaSessionCoordinatorMessages.h"
 #include "WebPageProxy.h"
 #include "WebProcessProxy.h"
 #include <WebCore/ExceptionData.h>
@@ -120,6 +121,26 @@
     m_privateCoordinator->readyStateChanged(state);
 }
 
+void RemoteMediaSessionCoordinatorProxy::seekSessionToTime(double time, CompletionHandler<void(bool)>&& callback)
+{
+    m_webPageProxy.sendWithAsyncReply(Messages::RemoteMediaSessionCoordinator::SeekSessionToTime { time }, callback);
+}
+
+void RemoteMediaSessionCoordinatorProxy::playSession(CompletionHandler<void(bool)>&& callback)
+{
+    m_webPageProxy.sendWithAsyncReply(Messages::RemoteMediaSessionCoordinator::PlaySession { }, callback);
+}
+
+void RemoteMediaSessionCoordinatorProxy::pauseSession(CompletionHandler<void(bool)> callback)
+{
+    m_webPageProxy.sendWithAsyncReply(Messages::RemoteMediaSessionCoordinator::PauseSession { }, callback);
+}
+
+void RemoteMediaSessionCoordinatorProxy::setSessionTrack(const String& trackId, CompletionHandler<void(bool)> callback)
+{
+    m_webPageProxy.sendWithAsyncReply(Messages::RemoteMediaSessionCoordinator::SetSessionTrack { trackId }, callback);
+}
+
 } // namespace WebKit
 
 #endif // ENABLE(MEDIA_SESSION_COORDINATOR)

Modified: trunk/Source/WebKit/UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h (275209 => 275210)


--- trunk/Source/WebKit/UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h	2021-03-30 17:07:47 UTC (rev 275209)
+++ trunk/Source/WebKit/UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h	2021-03-30 17:10:11 UTC (rev 275210)
@@ -40,7 +40,10 @@
 
 class WebPageProxy;
 
-class RemoteMediaSessionCoordinatorProxy : public IPC::MessageReceiver, public RefCounted<RemoteMediaSessionCoordinatorProxy> {
+class RemoteMediaSessionCoordinatorProxy
+    : public IPC::MessageReceiver
+    , public RefCounted<RemoteMediaSessionCoordinatorProxy>
+    , public WebCore::MediaSessionCoordinatorClient {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteMediaSessionCoordinatorProxy> create(WebPageProxy&, Ref<MediaSessionCoordinatorPrivateProxy>&&);
@@ -68,6 +71,12 @@
     void readyStateChanged(WebCore::MediaSessionReadyState);
     void playbackStateChanged(WebCore::MediaSessionPlaybackState);
 
+    // MediaSessionCoordinatorClient
+    void seekSessionToTime(double, CompletionHandler<void(bool)>&&) final;
+    void playSession(CompletionHandler<void(bool)>&&) final;
+    void pauseSession(CompletionHandler<void(bool)>) final;
+    void setSessionTrack(const String&, CompletionHandler<void(bool)>) final;
+
     WebPageProxy& m_webPageProxy;
     Ref<MediaSessionCoordinatorPrivateProxy> m_privateCoordinator;
     Ref<const Logger> m_logger;

Modified: trunk/Source/WebKit/WebProcess/MediaSession/RemoteMediaSessionCoordinator.messages.in (275209 => 275210)


--- trunk/Source/WebKit/WebProcess/MediaSession/RemoteMediaSessionCoordinator.messages.in	2021-03-30 17:07:47 UTC (rev 275209)
+++ trunk/Source/WebKit/WebProcess/MediaSession/RemoteMediaSessionCoordinator.messages.in	2021-03-30 17:10:11 UTC (rev 275210)
@@ -27,13 +27,13 @@
 
 messages -> RemoteMediaSessionCoordinator NotRefCounted {
 
-    seekSessionToTime(double time) -> (bool result) Async
+    SeekSessionToTime(double time) -> (bool result) Async
 
-    playSession() -> (bool result) Async
+    PlaySession() -> (bool result) Async
 
-    pauseSession() -> (bool result) Async
+    PauseSession() -> (bool result) Async
 
-    setSessionTrack(String trackIdentifier) -> (bool result) Async
+    SetSessionTrack(String trackIdentifier) -> (bool result) Async
 }
 
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to