Title: [166265] trunk/Source/WebKit2
Revision
166265
Author
ander...@apple.com
Date
2014-03-25 16:20:14 -0700 (Tue, 25 Mar 2014)

Log Message

Pass the source frame to the CreateNewPage message
https://bugs.webkit.org/show_bug.cgi?id=130752

Reviewed by Tim Horton.

* UIProcess/API/APIUIClient.h:
(API::UIClient::createNewPage):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createNewPage):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (166264 => 166265)


--- trunk/Source/WebKit2/ChangeLog	2014-03-25 22:56:58 UTC (rev 166264)
+++ trunk/Source/WebKit2/ChangeLog	2014-03-25 23:20:14 UTC (rev 166265)
@@ -1,5 +1,23 @@
 2014-03-25  Anders Carlsson  <ander...@apple.com>
 
+        Pass the source frame to the CreateNewPage message
+        https://bugs.webkit.org/show_bug.cgi?id=130752
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/API/APIUIClient.h:
+        (API::UIClient::createNewPage):
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageSetPageUIClient):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::createNewPage):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::createWindow):
+
+2014-03-25  Anders Carlsson  <ander...@apple.com>
+
         Add a WebFrame::fromCoreFrame static member function and use it where possible
         https://bugs.webkit.org/show_bug.cgi?id=130744
 

Modified: trunk/Source/WebKit2/UIProcess/API/APIUIClient.h (166264 => 166265)


--- trunk/Source/WebKit2/UIProcess/API/APIUIClient.h	2014-03-25 22:56:58 UTC (rev 166264)
+++ trunk/Source/WebKit2/UIProcess/API/APIUIClient.h	2014-03-25 23:20:14 UTC (rev 166265)
@@ -62,7 +62,7 @@
 public:
     virtual ~UIClient() { }
 
-    virtual PassRefPtr<WebKit::WebPageProxy> createNewPage(WebKit::WebPageProxy*, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, WebKit::WebEvent::Modifiers, WebKit::WebMouseEvent::Button) { return nullptr; }
+    virtual PassRefPtr<WebKit::WebPageProxy> createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, WebKit::WebEvent::Modifiers, WebKit::WebMouseEvent::Button) { return nullptr; }
     virtual void showPage(WebKit::WebPageProxy*) { }
     virtual void close(WebKit::WebPageProxy*) { }
 

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp (166264 => 166265)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2014-03-25 22:56:58 UTC (rev 166264)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2014-03-25 23:20:14 UTC (rev 166265)
@@ -1085,7 +1085,7 @@
         }
 
     private:
-        virtual PassRefPtr<WebPageProxy> createNewPage(WebPageProxy* page, const ResourceRequest& resourceRequest, const WindowFeatures& windowFeatures, WebEvent::Modifiers modifiers, WebMouseEvent::Button button) override
+        virtual PassRefPtr<WebPageProxy> createNewPage(WebPageProxy* page, WebFrameProxy*, const ResourceRequest& resourceRequest, const WindowFeatures& windowFeatures, WebEvent::Modifiers modifiers, WebMouseEvent::Button button) override
         {
             if (!m_client.base.version && !m_client.createNewPage_deprecatedForUseWithV0)
                 return 0;

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (166264 => 166265)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2014-03-25 22:56:58 UTC (rev 166264)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2014-03-25 23:20:14 UTC (rev 166265)
@@ -2658,9 +2658,12 @@
 
 // UIClient
 
-void WebPageProxy::createNewPage(const ResourceRequest& request, const WindowFeatures& windowFeatures, uint32_t opaqueModifiers, int32_t opaqueMouseButton, uint64_t& newPageID, WebPageCreationParameters& newPageParameters)
+void WebPageProxy::createNewPage(uint64_t frameID, const ResourceRequest& request, const WindowFeatures& windowFeatures, uint32_t opaqueModifiers, int32_t opaqueMouseButton, uint64_t& newPageID, WebPageCreationParameters& newPageParameters)
 {
-    RefPtr<WebPageProxy> newPage = m_uiClient->createNewPage(this, request, windowFeatures, static_cast<WebEvent::Modifiers>(opaqueModifiers), static_cast<WebMouseEvent::Button>(opaqueMouseButton));
+    WebFrameProxy* frame = m_process->webFrame(frameID);
+    MESSAGE_CHECK(frame);
+
+    RefPtr<WebPageProxy> newPage = m_uiClient->createNewPage(this, frame, request, windowFeatures, static_cast<WebEvent::Modifiers>(opaqueModifiers), static_cast<WebMouseEvent::Button>(opaqueMouseButton));
     if (!newPage) {
         newPageID = 0;
         return;

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (166264 => 166265)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2014-03-25 22:56:58 UTC (rev 166264)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2014-03-25 23:20:14 UTC (rev 166265)
@@ -1109,7 +1109,7 @@
     void willSubmitForm(uint64_t frameID, uint64_t sourceFrameID, const Vector<std::pair<String, String>>& textFieldValues, uint64_t listenerID, IPC::MessageDecoder&);
 
     // UI client
-    void createNewPage(const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, uint32_t modifiers, int32_t mouseButton, uint64_t& newPageID, WebPageCreationParameters&);
+    void createNewPage(uint64_t frameID, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, uint32_t modifiers, int32_t mouseButton, uint64_t& newPageID, WebPageCreationParameters&);
     void showPage();
     void closePage(bool stopResponsivenessTimer);
     void runJavaScriptAlert(uint64_t frameID, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptAlert::DelayedReply>);

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in (166264 => 166265)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in	2014-03-25 22:56:58 UTC (rev 166264)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in	2014-03-25 23:20:14 UTC (rev 166265)
@@ -22,7 +22,7 @@
 
 messages -> WebPageProxy {
     # UI messages
-    CreateNewPage(WebCore::ResourceRequest request, WebCore::WindowFeatures windowFeatures, uint32_t modifiers, int32_t mouseButton) -> (uint64_t newPageID, WebKit::WebPageCreationParameters newPageParameters)
+    CreateNewPage(uint64_t frameID, WebCore::ResourceRequest request, WebCore::WindowFeatures windowFeatures, uint32_t modifiers, int32_t mouseButton) -> (uint64_t newPageID, WebKit::WebPageCreationParameters newPageParameters)
     ShowPage()
     ClosePage(bool stopResponsivenessTimer)
     RunJavaScriptAlert(uint64_t frameID, String message) -> () Delayed

Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (166264 => 166265)


--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp	2014-03-25 22:56:58 UTC (rev 166264)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp	2014-03-25 23:20:14 UTC (rev 166265)
@@ -203,13 +203,13 @@
 #if ENABLE(FULLSCREEN_API)
     if (frame->document() && frame->document()->webkitCurrentFullScreenElement())
         frame->document()->webkitCancelFullScreen();
-#else
-    UNUSED_PARAM(frame);
 #endif
 
+    WebFrame* webFrame = WebFrame::fromCoreFrame(*frame);
+
     uint64_t newPageID = 0;
     WebPageCreationParameters parameters;
-    if (!WebProcess::shared().parentProcessConnection()->sendSync(Messages::WebPageProxy::CreateNewPage(request.resourceRequest(), windowFeatures, modifiers, mouseButton), Messages::WebPageProxy::CreateNewPage::Reply(newPageID, parameters), m_page->pageID()))
+    if (!WebProcess::shared().parentProcessConnection()->sendSync(Messages::WebPageProxy::CreateNewPage(webFrame->frameID(), request.resourceRequest(), windowFeatures, modifiers, mouseButton), Messages::WebPageProxy::CreateNewPage::Reply(newPageID, parameters), m_page->pageID()))
         return 0;
 
     if (!newPageID)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to