Title: [187790] trunk/Source
Revision
187790
Author
[email protected]
Date
2015-08-03 17:30:45 -0700 (Mon, 03 Aug 2015)

Log Message

Media Session: let UI clients query whether a media element is paused
https://bugs.webkit.org/show_bug.cgi?id=147588

Reviewed by Tim Horton.

WebCore:
* page/Page.cpp:
(WebCore::Page::isMediaElementPaused): Determine if the media element with the given ID is paused.
* page/Page.h:

WebKit2: Added plumbing to determine if a page's media element is paused.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::isMediaElementPaused):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::isMediaElementPaused):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (187789 => 187790)


--- trunk/Source/WebCore/ChangeLog	2015-08-04 00:19:35 UTC (rev 187789)
+++ trunk/Source/WebCore/ChangeLog	2015-08-04 00:30:45 UTC (rev 187790)
@@ -1,3 +1,14 @@
+2015-08-03  Matt Rajca  <[email protected]>
+
+        Media Session: let UI clients query whether a media element is paused
+        https://bugs.webkit.org/show_bug.cgi?id=147588
+
+        Reviewed by Tim Horton.
+
+        * page/Page.cpp:
+        (WebCore::Page::isMediaElementPaused): Determine if the media element with the given ID is paused.
+        * page/Page.h:
+
 2015-08-03  Eric Carlson  <[email protected]>
 
         [Mac] Always require user gesture to begin playing to AppleTV automatically

Modified: trunk/Source/WebCore/page/Page.cpp (187789 => 187790)


--- trunk/Source/WebCore/page/Page.cpp	2015-08-04 00:19:35 UTC (rev 187789)
+++ trunk/Source/WebCore/page/Page.cpp	2015-08-04 00:30:45 UTC (rev 187790)
@@ -1224,6 +1224,15 @@
         break;
     }
 }
+
+bool Page::isMediaElementPaused(uint64_t elementID)
+{
+    if (HTMLMediaElement* element = HTMLMediaElement::elementWithID(elementID))
+        return element->paused();
+
+    ASSERT_NOT_REACHED();
+    return true;
+}
 #endif
 
 #if !ASSERT_DISABLED

Modified: trunk/Source/WebCore/page/Page.h (187789 => 187790)


--- trunk/Source/WebCore/page/Page.h	2015-08-04 00:19:35 UTC (rev 187789)
+++ trunk/Source/WebCore/page/Page.h	2015-08-04 00:30:45 UTC (rev 187790)
@@ -442,6 +442,7 @@
 
 #if ENABLE(MEDIA_SESSION)
     WEBCORE_EXPORT void handleMediaEvent(MediaEventType);
+    WEBCORE_EXPORT bool isMediaElementPaused(uint64_t);
 #endif
 
 #if ENABLE(WIRELESS_PLAYBACK_TARGET)

Modified: trunk/Source/WebKit2/ChangeLog (187789 => 187790)


--- trunk/Source/WebKit2/ChangeLog	2015-08-04 00:19:35 UTC (rev 187789)
+++ trunk/Source/WebKit2/ChangeLog	2015-08-04 00:30:45 UTC (rev 187790)
@@ -1,3 +1,20 @@
+2015-08-03  Matt Rajca  <[email protected]>
+
+        Media Session: let UI clients query whether a media element is paused
+        https://bugs.webkit.org/show_bug.cgi?id=147588
+
+        Reviewed by Tim Horton.
+
+        Added plumbing to determine if a page's media element is paused.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::isMediaElementPaused):
+        * UIProcess/WebPageProxy.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::isMediaElementPaused):
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+
 2015-08-03  Chris Dumez  <[email protected]>
 
         Make sure error handling code APIUserContentExtensionStore closes open file descriptors

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (187789 => 187790)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2015-08-04 00:19:35 UTC (rev 187789)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2015-08-04 00:30:45 UTC (rev 187790)
@@ -3885,6 +3885,14 @@
     
     m_process->send(Messages::WebPage::HandleMediaEvent(eventType), m_pageID);
 }
+
+void WebPageProxy::isMediaElementPaused(uint64_t elementID, uint64_t callbackID)
+{
+    if (!isValid())
+        return;
+
+    m_process->send(Messages::WebPage::IsMediaElementPaused(elementID, callbackID), m_pageID);
+}
 #endif
 
 void WebPageProxy::setMayStartMediaWhenInWindow(bool mayStartMedia)

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (187789 => 187790)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2015-08-04 00:19:35 UTC (rev 187789)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2015-08-04 00:30:45 UTC (rev 187790)
@@ -946,6 +946,7 @@
 #if ENABLE(MEDIA_SESSION)
     bool hasMediaSessionWithActiveMediaElements() const { return m_hasMediaSessionWithActiveMediaElements; }
     void handleMediaEvent(WebCore::MediaEventType);
+    void isMediaElementPaused(uint64_t, uint64_t);
 #endif
 
     // WebPopupMenuProxy::Client

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (187789 => 187790)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2015-08-04 00:19:35 UTC (rev 187789)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2015-08-04 00:30:45 UTC (rev 187790)
@@ -4068,6 +4068,12 @@
 {
     m_page->handleMediaEvent(static_cast<MediaEventType>(eventType));
 }
+
+void WebPage::isMediaElementPaused(uint64_t elementID, uint64_t callbackID)
+{
+    bool paused = m_page->isMediaElementPaused(elementID);
+    send(Messages::WebPageProxy::UnsignedCallback(paused, callbackID));
+}
 #endif
 
 void WebPage::setMayStartMediaWhenInWindow(bool mayStartMedia)

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (187789 => 187790)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2015-08-04 00:19:35 UTC (rev 187789)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2015-08-04 00:30:45 UTC (rev 187790)
@@ -750,6 +750,7 @@
 
 #if ENABLE(MEDIA_SESSION)
     void handleMediaEvent(uint32_t /* WebCore::MediaEventType */);
+    void isMediaElementPaused(uint64_t, uint64_t);
 #endif
 
     void updateMainFrameScrollOffsetPinning();

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (187789 => 187790)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in	2015-08-04 00:19:35 UTC (rev 187789)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in	2015-08-04 00:30:45 UTC (rev 187790)
@@ -316,6 +316,7 @@
 
 #if ENABLE(MEDIA_SESSION)
     HandleMediaEvent(uint32_t eventType)
+    IsMediaElementPaused(uint64_t elementID, uint64_t callbackID)
 #endif
 
     // FIXME: This a dummy message, to avoid breaking the build for platforms that don't require
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to