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)