Changeset 242010 in webkit


Ignore:
Timestamp:
Feb 23, 2019 7:03:10 PM (5 years ago)
Author:
Chris Dumez
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):

Location:
trunk/Source/WebKit
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r241997 r242010  
     12019-02-23  Chris Dumez  <cdumez@apple.com>
     2
     3        Give DrawingAreas their own identifiers
     4        https://bugs.webkit.org/show_bug.cgi?id=194969
     5        <rdar://problem/48154508>
     6
     7        Unreviewed, fix API test debug assertion failures after r241988.
     8        We do not support sending an ObjectIdentifier that is 0 via IPC so update WebPageProxy::CreateNewPage
     9        IPC to return an Optional<WebPageCreationParameters> instead of a WebPageCreationParameters. It returns
     10        nullopt when there this no UIClient or the client did not create the page, instead of returning a
     11        default-initialized WebPageCreationParameters.
     12
     13        * UIProcess/WebPageProxy.cpp:
     14        (WebKit::WebPageProxy::createNewPage):
     15        * UIProcess/WebPageProxy.messages.in:
     16        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
     17        (WebKit::WebChromeClient::createWindow):
     18
    1192019-02-23  Simon Fraser  <simon.fraser@apple.com>
    220
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r241988 r242010  
    48734873    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 {
    48744874        if (!newPage) {
    4875             reply(0, { });
     4875            reply(0, WTF::nullopt);
    48764876            return;
    48774877        }
  • trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in

    r241321 r242010  
    2323messages -> WebPageProxy {
    2424    # UI messages
    25     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
     25    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
    2626    ShowPage()
    2727    ClosePage(bool stopResponsivenessTimer)
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp

    r241321 r242010  
    286286
    287287    uint64_t newPageID = 0;
    288     WebPageCreationParameters parameters;
     288    Optional<WebPageCreationParameters> parameters;
    289289    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()))
    290290        return nullptr;
     
    292292    if (!newPageID)
    293293        return nullptr;
    294 
    295     webProcess.createWebPage(newPageID, WTFMove(parameters));
     294    ASSERT(parameters);
     295
     296    webProcess.createWebPage(newPageID, WTFMove(*parameters));
    296297    return webProcess.webPage(newPageID)->corePage();
    297298}
Note: See TracChangeset for help on using the changeset viewer.