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