Title: [130214] trunk/Source/WebKit2
- Revision
- 130214
- Author
- a...@apple.com
- Date
- 2012-10-02 14:49:33 -0700 (Tue, 02 Oct 2012)
Log Message
<rdar://problem/12407139> WebKit2 should provide API that returns all pages in the same process as a given page
https://bugs.webkit.org/show_bug.cgi?id=98193
Reviewed by Sam Weinig.
* UIProcess/API/C/WKPage.cpp:
(WKPageCopyRelatedPages):
* UIProcess/API/C/WKPagePrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::relatedPages):
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::pages):
* UIProcess/WebProcessProxy.h:
Added. This should work once a process has crashed, too.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (130213 => 130214)
--- trunk/Source/WebKit2/ChangeLog 2012-10-02 21:37:31 UTC (rev 130213)
+++ trunk/Source/WebKit2/ChangeLog 2012-10-02 21:49:33 UTC (rev 130214)
@@ -1,3 +1,21 @@
+2012-10-02 Alexey Proskuryakov <a...@apple.com>
+
+ <rdar://problem/12407139> WebKit2 should provide API that returns all pages in the same process as a given page
+ https://bugs.webkit.org/show_bug.cgi?id=98193
+
+ Reviewed by Sam Weinig.
+
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageCopyRelatedPages):
+ * UIProcess/API/C/WKPagePrivate.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::relatedPages):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::pages):
+ * UIProcess/WebProcessProxy.h:
+ Added. This should work once a process has crashed, too.
+
2012-10-02 Anders Carlsson <ander...@apple.com>
Allow LayerTreeHost subclasses to return a custom GraphicsLayerFactory
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp (130213 => 130214)
--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp 2012-10-02 21:37:31 UTC (rev 130213)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp 2012-10-02 21:49:33 UTC (rev 130214)
@@ -738,3 +738,7 @@
toImpl(pageRef)->postMessageToInjectedBundle(toImpl(messageNameRef)->string(), toImpl(messageBodyRef));
}
+WKArrayRef WKPageCopyRelatedPages(WKPageRef pageRef)
+{
+ return toAPI(toImpl(pageRef)->relatedPages().leakRef());
+}
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h (130213 => 130214)
--- trunk/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h 2012-10-02 21:37:31 UTC (rev 130213)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h 2012-10-02 21:49:33 UTC (rev 130214)
@@ -94,6 +94,8 @@
WK_EXPORT void WKPageSetMediaVolume(WKPageRef page, float volume);
+WK_EXPORT WKArrayRef WKPageCopyRelatedPages(WKPageRef page);
+
#ifdef __cplusplus
}
#endif
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (130213 => 130214)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2012-10-02 21:37:31 UTC (rev 130213)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2012-10-02 21:49:33 UTC (rev 130214)
@@ -277,6 +277,21 @@
return m_isValid;
}
+PassRefPtr<ImmutableArray> WebPageProxy::relatedPages() const
+{
+ Vector<WebPageProxy*> pages = m_process->pages();
+ ASSERT(pages.contains(this));
+
+ Vector<RefPtr<APIObject> > result;
+ result.reserveCapacity(pages.size() - 1);
+ for (size_t i = 0; i < pages.size(); ++i) {
+ if (pages[i] != this)
+ result.append(pages[i]);
+ }
+
+ return ImmutableArray::adopt(result);
+}
+
void WebPageProxy::initializeLoaderClient(const WKPageLoaderClient* loadClient)
{
m_loaderClient.initialize(loadClient);
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (130213 => 130214)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2012-10-02 21:37:31 UTC (rev 130213)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2012-10-02 21:49:33 UTC (rev 130214)
@@ -623,6 +623,8 @@
bool isValid();
+ PassRefPtr<ImmutableArray> relatedPages() const;
+
const String& urlAtProcessExit() const { return m_urlAtProcessExit; }
WebFrameProxy::LoadState loadStateAtProcessExit() const { return m_loadStateAtProcessExit; }
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (130213 => 130214)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2012-10-02 21:37:31 UTC (rev 130213)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2012-10-02 21:49:33 UTC (rev 130214)
@@ -186,6 +186,13 @@
m_pageMap.remove(pageID);
}
+Vector<WebPageProxy*> WebProcessProxy::pages() const
+{
+ Vector<WebPageProxy*> result;
+ copyValuesToVector(m_pageMap, result);
+ return result;
+}
+
#if ENABLE(WEB_INTENTS)
void WebProcessProxy::removeMessagePortChannel(uint64_t channelID)
{
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.h (130213 => 130214)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2012-10-02 21:37:31 UTC (rev 130213)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2012-10-02 21:49:33 UTC (rev 130214)
@@ -84,6 +84,7 @@
PassRefPtr<WebPageProxy> createWebPage(PageClient*, WebContext*, WebPageGroup*);
void addExistingWebPage(WebPageProxy*, uint64_t pageID);
void removeWebPage(uint64_t pageID);
+ Vector<WebPageProxy*> pages() const;
#if ENABLE(WEB_INTENTS)
void removeMessagePortChannel(uint64_t channelID);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes