Title: [242010] trunk/Source/WebKit
Revision
242010
Author
cdu...@apple.com
Date
2019-02-23 19:03:10 -0800 (Sat, 23 Feb 2019)

Log Message

Give DrawingAreas their own identifiers
https://bugs.webkit.org/show_bug.cgi?id=194969
<rdar://problem/48154508>

Unreviewed, fix API test debug assertion failures after r241988.
We do not support sending an ObjectIdentifier that is 0 via IPC so update WebPageProxy::CreateNewPage
IPC to return an Optional<WebPageCreationParameters> instead of a WebPageCreationParameters. It returns
nullopt when there this no UIClient or the client did not create the page, instead of returning a
default-initialized WebPageCreationParameters.


* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createNewPage):
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (242009 => 242010)


--- trunk/Source/WebKit/ChangeLog	2019-02-24 01:07:27 UTC (rev 242009)
+++ trunk/Source/WebKit/ChangeLog	2019-02-24 03:03:10 UTC (rev 242010)
@@ -1,3 +1,21 @@
+2019-02-23  Chris Dumez  <cdu...@apple.com>
+
+        Give DrawingAreas their own identifiers
+        https://bugs.webkit.org/show_bug.cgi?id=194969
+        <rdar://problem/48154508>
+
+        Unreviewed, fix API test debug assertion failures after r241988.
+        We do not support sending an ObjectIdentifier that is 0 via IPC so update WebPageProxy::CreateNewPage
+        IPC to return an Optional<WebPageCreationParameters> instead of a WebPageCreationParameters. It returns
+        nullopt when there this no UIClient or the client did not create the page, instead of returning a
+        default-initialized WebPageCreationParameters.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::createNewPage):
+        * UIProcess/WebPageProxy.messages.in:
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::createWindow):
+
 2019-02-23  Simon Fraser  <simon.fra...@apple.com>
 
         Remove remnants of iOS WK1 scrolling tree code

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (242009 => 242010)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2019-02-24 01:07:27 UTC (rev 242009)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2019-02-24 03:03:10 UTC (rev 242010)
@@ -4872,7 +4872,7 @@
 
     m_uiClient->createNewPage(*this, WTFMove(originatingFrameInfo), WTFMove(request), WTFMove(windowFeatures), WTFMove(navigationActionData), [this, protectedThis = makeRef(*this), mainFrameURL, request, reply = WTFMove(reply)] (RefPtr<WebPageProxy> newPage) mutable {
         if (!newPage) {
-            reply(0, { });
+            reply(0, WTF::nullopt);
             return;
         }
 

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in (242009 => 242010)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in	2019-02-24 01:07:27 UTC (rev 242009)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in	2019-02-24 03:03:10 UTC (rev 242010)
@@ -22,7 +22,7 @@
 
 messages -> WebPageProxy {
     # UI messages
-    CreateNewPage(struct WebKit::FrameInfoData originatingFrameInfoData, uint64_t originatingPageID, WebCore::ResourceRequest request, struct WebCore::WindowFeatures windowFeatures, struct WebKit::NavigationActionData navigationActionData) -> (uint64_t newPageID, struct WebKit::WebPageCreationParameters newPageParameters) Delayed
+    CreateNewPage(struct WebKit::FrameInfoData originatingFrameInfoData, uint64_t originatingPageID, WebCore::ResourceRequest request, struct WebCore::WindowFeatures windowFeatures, struct WebKit::NavigationActionData navigationActionData) -> (uint64_t newPageID, Optional<WebKit::WebPageCreationParameters> newPageParameters) Delayed
     ShowPage()
     ClosePage(bool stopResponsivenessTimer)
     RunJavaScriptAlert(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, String message) -> () Delayed

Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp (242009 => 242010)


--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp	2019-02-24 01:07:27 UTC (rev 242009)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp	2019-02-24 03:03:10 UTC (rev 242010)
@@ -285,14 +285,15 @@
     WebFrame* webFrame = WebFrame::fromCoreFrame(frame);
 
     uint64_t newPageID = 0;
-    WebPageCreationParameters parameters;
+    Optional<WebPageCreationParameters> parameters;
     if (!webProcess.parentProcessConnection()->sendSync(Messages::WebPageProxy::CreateNewPage(webFrame->info(), webFrame->page()->pageID(), request.resourceRequest(), windowFeatures, navigationActionData), Messages::WebPageProxy::CreateNewPage::Reply(newPageID, parameters), m_page.pageID()))
         return nullptr;
 
     if (!newPageID)
         return nullptr;
+    ASSERT(parameters);
 
-    webProcess.createWebPage(newPageID, WTFMove(parameters));
+    webProcess.createWebPage(newPageID, WTFMove(*parameters));
     return webProcess.webPage(newPageID)->corePage();
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to