⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 240264 in webkit


Ignore:
Timestamp:
Jan 22, 2019, 10:34:54 AM (8 years ago)
Author:
Alan Coon
Message:

Cherry-pick r240055. rdar://problem/47099573

Regression(r240046) Several API tests are crashing
​https://bugs.webkit.org/show_bug.cgi?id=193509

Reviewed by Geoffrey Garen.

The crashes would happen because loadRequestShared() would take a WebProcessProxy& in parameter but
then call reattachToWebProcess() if the page is not valid, which would replace m_process and invalidate
our process reference.

To address the issue, move the reattachToWebProcess() call to loadRequest(), before calling
loadRequestShared(). Also, update *Shared() methods to take a Ref<WebProcessProxy>&& instead
of a WebProcessProxy& in parameter. Since we call client delegates, we need to make sure
our process stays alive.

  • UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::loadData): (WebKit::ProvisionalPageProxy::loadRequest): (WebKit::ProvisionalPageProxy::didCreateMainFrame): (WebKit::ProvisionalPageProxy::didPerformClientRedirect): (WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame): (WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame): (WebKit::ProvisionalPageProxy::didNavigateWithNavigationData): (WebKit::ProvisionalPageProxy::didChangeProvisionalURLForFrame): (WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionAsync): (WebKit::ProvisionalPageProxy::decidePolicyForResponse): (WebKit::ProvisionalPageProxy::startURLSchemeTask): (WebKit::ProvisionalPageProxy::backForwardGoToItem):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::loadRequest): (WebKit::WebPageProxy::loadRequestWithNavigationShared): (WebKit::WebPageProxy::loadData): (WebKit::WebPageProxy::loadDataWithNavigationShared): (WebKit::WebPageProxy::didPerformDragControllerAction): (WebKit::WebPageProxy::findPlugin): (WebKit::WebPageProxy::didCreateMainFrame): (WebKit::WebPageProxy::didCreateSubframe): (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared): (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared): (WebKit::WebPageProxy::willPerformClientRedirectForFrame): (WebKit::WebPageProxy::didCancelClientRedirectForFrame): (WebKit::WebPageProxy::didChangeProvisionalURLForFrame): (WebKit::WebPageProxy::didChangeProvisionalURLForFrameShared): (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): (WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared): (WebKit::WebPageProxy::didCommitLoadForFrame): (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): (WebKit::WebPageProxy::didFinishLoadForFrame): (WebKit::WebPageProxy::didFailLoadForFrame): (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): (WebKit::WebPageProxy::didReceiveTitleForFrame): (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame): (WebKit::WebPageProxy::didDisplayInsecureContentForFrame): (WebKit::WebPageProxy::didRunInsecureContentForFrame): (WebKit::WebPageProxy::frameDidBecomeFrameSet): (WebKit::WebPageProxy::decidePolicyForNavigationActionAsync): (WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared): (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): (WebKit::WebPageProxy::decidePolicyForNewWindowAction): (WebKit::WebPageProxy::decidePolicyForResponse): (WebKit::WebPageProxy::decidePolicyForResponseShared): (WebKit::WebPageProxy::unableToImplementPolicy): (WebKit::WebPageProxy::willSubmitForm): (WebKit::WebPageProxy::didNavigateWithNavigationData): (WebKit::WebPageProxy::didNavigateWithNavigationDataShared): (WebKit::WebPageProxy::didPerformClientRedirect): (WebKit::WebPageProxy::didPerformClientRedirectShared): (WebKit::WebPageProxy::didPerformServerRedirect): (WebKit::WebPageProxy::didUpdateHistoryTitle): (WebKit::WebPageProxy::createNewPage): (WebKit::WebPageProxy::runJavaScriptAlert): (WebKit::WebPageProxy::runJavaScriptConfirm): (WebKit::WebPageProxy::runJavaScriptPrompt): (WebKit::WebPageProxy::unavailablePluginButtonClicked): (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): (WebKit::WebPageProxy::runOpenPanel): (WebKit::WebPageProxy::printFrame): (WebKit::WebPageProxy::backForwardGoToItem): (WebKit::WebPageProxy::backForwardGoToItemShared): (WebKit::WebPageProxy::learnWord): (WebKit::WebPageProxy::ignoreWord): (WebKit::WebPageProxy::didReceiveEvent): (WebKit::WebPageProxy::editingRangeCallback): (WebKit::WebPageProxy::rectForCharacterRangeCallback): (WebKit::WebPageProxy::focusedFrameChanged): (WebKit::WebPageProxy::frameSetLargestFrameChanged): (WebKit::WebPageProxy::exceededDatabaseQuota): (WebKit::WebPageProxy::requestGeolocationPermissionForFrame): (WebKit::WebPageProxy::requestUserMediaPermissionForFrame): (WebKit::WebPageProxy::enumerateMediaDevicesForFrame): (WebKit::WebPageProxy::startURLSchemeTask): (WebKit::WebPageProxy::startURLSchemeTaskShared): (WebKit::WebPageProxy::stopURLSchemeTask): (WebKit::WebPageProxy::loadSynchronousURLSchemeTask):
  • UIProcess/WebPageProxy.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@240055 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Location:
branches/safari-607-branch/Source/WebKit
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-607-branch/Source/WebKit/ChangeLog

    r240263 r240264  
     12019-01-22  Alan Coon  <alancoon@apple.com>
     2
     3        Cherry-pick r240055. rdar://problem/47099573
     4
     5    Regression(r240046) Several API tests are crashing
     6    https://bugs.webkit.org/show_bug.cgi?id=193509
     7   
     8    Reviewed by Geoffrey Garen.
     9   
     10    The crashes would happen because loadRequestShared() would take a WebProcessProxy& in parameter but
     11    then call reattachToWebProcess() if the page is not valid, which would replace m_process and invalidate
     12    our process reference.
     13   
     14    To address the issue, move the reattachToWebProcess() call to loadRequest(), before calling
     15    loadRequestShared(). Also, update *Shared() methods to take a Ref<WebProcessProxy>&& instead
     16    of a WebProcessProxy& in parameter. Since we call client delegates, we need to make sure
     17    our process stays alive.
     18   
     19    * UIProcess/ProvisionalPageProxy.cpp:
     20    (WebKit::ProvisionalPageProxy::loadData):
     21    (WebKit::ProvisionalPageProxy::loadRequest):
     22    (WebKit::ProvisionalPageProxy::didCreateMainFrame):
     23    (WebKit::ProvisionalPageProxy::didPerformClientRedirect):
     24    (WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame):
     25    (WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
     26    (WebKit::ProvisionalPageProxy::didNavigateWithNavigationData):
     27    (WebKit::ProvisionalPageProxy::didChangeProvisionalURLForFrame):
     28    (WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionAsync):
     29    (WebKit::ProvisionalPageProxy::decidePolicyForResponse):
     30    (WebKit::ProvisionalPageProxy::startURLSchemeTask):
     31    (WebKit::ProvisionalPageProxy::backForwardGoToItem):
     32    * UIProcess/WebPageProxy.cpp:
     33    (WebKit::WebPageProxy::loadRequest):
     34    (WebKit::WebPageProxy::loadRequestWithNavigationShared):
     35    (WebKit::WebPageProxy::loadData):
     36    (WebKit::WebPageProxy::loadDataWithNavigationShared):
     37    (WebKit::WebPageProxy::didPerformDragControllerAction):
     38    (WebKit::WebPageProxy::findPlugin):
     39    (WebKit::WebPageProxy::didCreateMainFrame):
     40    (WebKit::WebPageProxy::didCreateSubframe):
     41    (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
     42    (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
     43    (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
     44    (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared):
     45    (WebKit::WebPageProxy::willPerformClientRedirectForFrame):
     46    (WebKit::WebPageProxy::didCancelClientRedirectForFrame):
     47    (WebKit::WebPageProxy::didChangeProvisionalURLForFrame):
     48    (WebKit::WebPageProxy::didChangeProvisionalURLForFrameShared):
     49    (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
     50    (WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
     51    (WebKit::WebPageProxy::didCommitLoadForFrame):
     52    (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
     53    (WebKit::WebPageProxy::didFinishLoadForFrame):
     54    (WebKit::WebPageProxy::didFailLoadForFrame):
     55    (WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
     56    (WebKit::WebPageProxy::didReceiveTitleForFrame):
     57    (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
     58    (WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
     59    (WebKit::WebPageProxy::didRunInsecureContentForFrame):
     60    (WebKit::WebPageProxy::frameDidBecomeFrameSet):
     61    (WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
     62    (WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
     63    (WebKit::WebPageProxy::decidePolicyForNavigationAction):
     64    (WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
     65    (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
     66    (WebKit::WebPageProxy::decidePolicyForResponse):
     67    (WebKit::WebPageProxy::decidePolicyForResponseShared):
     68    (WebKit::WebPageProxy::unableToImplementPolicy):
     69    (WebKit::WebPageProxy::willSubmitForm):
     70    (WebKit::WebPageProxy::didNavigateWithNavigationData):
     71    (WebKit::WebPageProxy::didNavigateWithNavigationDataShared):
     72    (WebKit::WebPageProxy::didPerformClientRedirect):
     73    (WebKit::WebPageProxy::didPerformClientRedirectShared):
     74    (WebKit::WebPageProxy::didPerformServerRedirect):
     75    (WebKit::WebPageProxy::didUpdateHistoryTitle):
     76    (WebKit::WebPageProxy::createNewPage):
     77    (WebKit::WebPageProxy::runJavaScriptAlert):
     78    (WebKit::WebPageProxy::runJavaScriptConfirm):
     79    (WebKit::WebPageProxy::runJavaScriptPrompt):
     80    (WebKit::WebPageProxy::unavailablePluginButtonClicked):
     81    (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
     82    (WebKit::WebPageProxy::runOpenPanel):
     83    (WebKit::WebPageProxy::printFrame):
     84    (WebKit::WebPageProxy::backForwardGoToItem):
     85    (WebKit::WebPageProxy::backForwardGoToItemShared):
     86    (WebKit::WebPageProxy::learnWord):
     87    (WebKit::WebPageProxy::ignoreWord):
     88    (WebKit::WebPageProxy::didReceiveEvent):
     89    (WebKit::WebPageProxy::editingRangeCallback):
     90    (WebKit::WebPageProxy::rectForCharacterRangeCallback):
     91    (WebKit::WebPageProxy::focusedFrameChanged):
     92    (WebKit::WebPageProxy::frameSetLargestFrameChanged):
     93    (WebKit::WebPageProxy::exceededDatabaseQuota):
     94    (WebKit::WebPageProxy::requestGeolocationPermissionForFrame):
     95    (WebKit::WebPageProxy::requestUserMediaPermissionForFrame):
     96    (WebKit::WebPageProxy::enumerateMediaDevicesForFrame):
     97    (WebKit::WebPageProxy::startURLSchemeTask):
     98    (WebKit::WebPageProxy::startURLSchemeTaskShared):
     99    (WebKit::WebPageProxy::stopURLSchemeTask):
     100    (WebKit::WebPageProxy::loadSynchronousURLSchemeTask):
     101    * UIProcess/WebPageProxy.h:
     102   
     103    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240055 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     104
     105    2019-01-16  Chris Dumez  <cdumez@apple.com>
     106
     107            Regression(r240046) Several API tests are crashing
     108            https://bugs.webkit.org/show_bug.cgi?id=193509
     109
     110            Reviewed by Geoffrey Garen.
     111
     112            The crashes would happen because loadRequestShared() would take a WebProcessProxy& in parameter but
     113            then call reattachToWebProcess() if the page is not valid, which would replace m_process and invalidate
     114            our process reference.
     115
     116            To address the issue, move the reattachToWebProcess() call to loadRequest(), before calling
     117            loadRequestShared(). Also, update *Shared() methods to take a Ref<WebProcessProxy>&& instead
     118            of a WebProcessProxy& in parameter. Since we call client delegates, we need to make sure
     119            our process stays alive.
     120
     121            * UIProcess/ProvisionalPageProxy.cpp:
     122            (WebKit::ProvisionalPageProxy::loadData):
     123            (WebKit::ProvisionalPageProxy::loadRequest):
     124            (WebKit::ProvisionalPageProxy::didCreateMainFrame):
     125            (WebKit::ProvisionalPageProxy::didPerformClientRedirect):
     126            (WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame):
     127            (WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
     128            (WebKit::ProvisionalPageProxy::didNavigateWithNavigationData):
     129            (WebKit::ProvisionalPageProxy::didChangeProvisionalURLForFrame):
     130            (WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionAsync):
     131            (WebKit::ProvisionalPageProxy::decidePolicyForResponse):
     132            (WebKit::ProvisionalPageProxy::startURLSchemeTask):
     133            (WebKit::ProvisionalPageProxy::backForwardGoToItem):
     134            * UIProcess/WebPageProxy.cpp:
     135            (WebKit::WebPageProxy::loadRequest):
     136            (WebKit::WebPageProxy::loadRequestWithNavigationShared):
     137            (WebKit::WebPageProxy::loadData):
     138            (WebKit::WebPageProxy::loadDataWithNavigationShared):
     139            (WebKit::WebPageProxy::didPerformDragControllerAction):
     140            (WebKit::WebPageProxy::findPlugin):
     141            (WebKit::WebPageProxy::didCreateMainFrame):
     142            (WebKit::WebPageProxy::didCreateSubframe):
     143            (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
     144            (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
     145            (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
     146            (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared):
     147            (WebKit::WebPageProxy::willPerformClientRedirectForFrame):
     148            (WebKit::WebPageProxy::didCancelClientRedirectForFrame):
     149            (WebKit::WebPageProxy::didChangeProvisionalURLForFrame):
     150            (WebKit::WebPageProxy::didChangeProvisionalURLForFrameShared):
     151            (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
     152            (WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
     153            (WebKit::WebPageProxy::didCommitLoadForFrame):
     154            (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
     155            (WebKit::WebPageProxy::didFinishLoadForFrame):
     156            (WebKit::WebPageProxy::didFailLoadForFrame):
     157            (WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
     158            (WebKit::WebPageProxy::didReceiveTitleForFrame):
     159            (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
     160            (WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
     161            (WebKit::WebPageProxy::didRunInsecureContentForFrame):
     162            (WebKit::WebPageProxy::frameDidBecomeFrameSet):
     163            (WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
     164            (WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
     165            (WebKit::WebPageProxy::decidePolicyForNavigationAction):
     166            (WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
     167            (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
     168            (WebKit::WebPageProxy::decidePolicyForResponse):
     169            (WebKit::WebPageProxy::decidePolicyForResponseShared):
     170            (WebKit::WebPageProxy::unableToImplementPolicy):
     171            (WebKit::WebPageProxy::willSubmitForm):
     172            (WebKit::WebPageProxy::didNavigateWithNavigationData):
     173            (WebKit::WebPageProxy::didNavigateWithNavigationDataShared):
     174            (WebKit::WebPageProxy::didPerformClientRedirect):
     175            (WebKit::WebPageProxy::didPerformClientRedirectShared):
     176            (WebKit::WebPageProxy::didPerformServerRedirect):
     177            (WebKit::WebPageProxy::didUpdateHistoryTitle):
     178            (WebKit::WebPageProxy::createNewPage):
     179            (WebKit::WebPageProxy::runJavaScriptAlert):
     180            (WebKit::WebPageProxy::runJavaScriptConfirm):
     181            (WebKit::WebPageProxy::runJavaScriptPrompt):
     182            (WebKit::WebPageProxy::unavailablePluginButtonClicked):
     183            (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
     184            (WebKit::WebPageProxy::runOpenPanel):
     185            (WebKit::WebPageProxy::printFrame):
     186            (WebKit::WebPageProxy::backForwardGoToItem):
     187            (WebKit::WebPageProxy::backForwardGoToItemShared):
     188            (WebKit::WebPageProxy::learnWord):
     189            (WebKit::WebPageProxy::ignoreWord):
     190            (WebKit::WebPageProxy::didReceiveEvent):
     191            (WebKit::WebPageProxy::editingRangeCallback):
     192            (WebKit::WebPageProxy::rectForCharacterRangeCallback):
     193            (WebKit::WebPageProxy::focusedFrameChanged):
     194            (WebKit::WebPageProxy::frameSetLargestFrameChanged):
     195            (WebKit::WebPageProxy::exceededDatabaseQuota):
     196            (WebKit::WebPageProxy::requestGeolocationPermissionForFrame):
     197            (WebKit::WebPageProxy::requestUserMediaPermissionForFrame):
     198            (WebKit::WebPageProxy::enumerateMediaDevicesForFrame):
     199            (WebKit::WebPageProxy::startURLSchemeTask):
     200            (WebKit::WebPageProxy::startURLSchemeTaskShared):
     201            (WebKit::WebPageProxy::stopURLSchemeTask):
     202            (WebKit::WebPageProxy::loadSynchronousURLSchemeTask):
     203            * UIProcess/WebPageProxy.h:
     204
    12052019-01-22  Alan Coon  <alancoon@apple.com>
    2206
  • branches/safari-607-branch/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp

    r240263 r240264  
    148148    RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "loadData: pageID = %" PRIu64, m_page.pageID());
    149149
    150     m_page.loadDataWithNavigationShared(m_process, navigation, data, MIMEType, encoding, baseURL, userData, WebCore::ShouldTreatAsContinuingLoad::Yes, WTFMove(websitePolicies));
     150    m_page.loadDataWithNavigationShared(m_process.copyRef(), navigation, data, MIMEType, encoding, baseURL, userData, WebCore::ShouldTreatAsContinuingLoad::Yes, WTFMove(websitePolicies));
    151151}
    152152
    … …  
    155155    RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "loadRequest: pageID = %" PRIu64, m_page.pageID());
    156156
    157     m_page.loadRequestWithNavigationShared(m_process, navigation, WTFMove(request), shouldOpenExternalURLsPolicy, userData, WebCore::ShouldTreatAsContinuingLoad::Yes, WTFMove(websitePolicies));
     157    m_page.loadRequestWithNavigationShared(m_process.copyRef(), navigation, WTFMove(request), shouldOpenExternalURLsPolicy, userData, WebCore::ShouldTreatAsContinuingLoad::Yes, WTFMove(websitePolicies));
    158158}
    159159
    … …  
    197197    if (m_isServerRedirect) {
    198198        m_mainFrame->frameLoadState().didStartProvisionalLoad(m_request.url());
    199         m_page.didReceiveServerRedirectForProvisionalLoadForFrameShared(m_process, m_mainFrame->frameID(), m_navigationID, WTFMove(m_request), { });
     199        m_page.didReceiveServerRedirectForProvisionalLoadForFrameShared(m_process.copyRef(), m_mainFrame->frameID(), m_navigationID, WTFMove(m_request), { });
    200200    }
    201201}
    … …  
    203203void ProvisionalPageProxy::didPerformClientRedirect(const String& sourceURLString, const String& destinationURLString, uint64_t frameID)
    204204{
    205     m_page.didPerformClientRedirectShared(m_process, sourceURLString, destinationURLString, frameID);
     205    m_page.didPerformClientRedirectShared(m_process.copyRef(), sourceURLString, destinationURLString, frameID);
    206206}
    207207
    … …  
    224224        pageMainFrame->didStartProvisionalLoad(url);
    225225
    226     m_page.didStartProvisionalLoadForFrameShared(m_process, frameID, navigationID, WTFMove(url), WTFMove(unreachableURL), userData);
     226    m_page.didStartProvisionalLoadForFrameShared(m_process.copyRef(), frameID, navigationID, WTFMove(url), WTFMove(unreachableURL), userData);
    227227}
    228228
    … …  
    236236        pageMainFrame->didFailProvisionalLoad();
    237237
    238     m_page.didFailProvisionalLoadForFrameShared(m_process, frameID, frameSecurityOrigin, navigationID, provisionalURL, error, userData); // Will delete |this|.
     238    m_page.didFailProvisionalLoadForFrameShared(m_process.copyRef(), frameID, frameSecurityOrigin, navigationID, provisionalURL, error, userData); // Will delete |this|.
    239239}
    240240
    … …  
    255255void ProvisionalPageProxy::didNavigateWithNavigationData(const WebNavigationDataStore& store, uint64_t frameID)
    256256{
    257     m_page.didNavigateWithNavigationDataShared(m_process, store, frameID);
     257    m_page.didNavigateWithNavigationDataShared(m_process.copyRef(), store, frameID);
    258258}
    259259
    260260void ProvisionalPageProxy::didChangeProvisionalURLForFrame(uint64_t frameID, uint64_t navigationID, URL&& url)
    261261{
    262     m_page.didChangeProvisionalURLForFrameShared(m_process, frameID, navigationID, WTFMove(url));
     262    m_page.didChangeProvisionalURLForFrameShared(m_process.copyRef(), frameID, navigationID, WTFMove(url));
    263263}
    264264
    265265void ProvisionalPageProxy::decidePolicyForNavigationActionAsync(uint64_t frameID, WebCore::SecurityOriginData&& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData& userData, uint64_t listenerID)
    266266{
    267     m_page.decidePolicyForNavigationActionAsyncShared(m_process, frameID, WTFMove(frameSecurityOrigin), navigationID, WTFMove(navigationActionData), WTFMove(frameInfoData), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), userData, listenerID);
     267    m_page.decidePolicyForNavigationActionAsyncShared(m_process.copyRef(), frameID, WTFMove(frameSecurityOrigin), navigationID, WTFMove(navigationActionData), WTFMove(frameInfoData), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), userData, listenerID);
    268268}
    269269
    270270void ProvisionalPageProxy::decidePolicyForResponse(uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const WebCore::ResourceResponse& response, const WebCore::ResourceRequest& request, bool canShowMIMEType, uint64_t listenerID, const UserData& userData)
    271271{
    272     m_page.decidePolicyForResponseShared(m_process, frameID, frameSecurityOrigin, navigationID, response, request, canShowMIMEType, listenerID, userData);
     272    m_page.decidePolicyForResponseShared(m_process.copyRef(), frameID, frameSecurityOrigin, navigationID, response, request, canShowMIMEType, listenerID, userData);
    273273}
    274274
    275275void ProvisionalPageProxy::startURLSchemeTask(URLSchemeTaskParameters&& parameters)
    276276{
    277     m_page.startURLSchemeTaskShared(m_process, WTFMove(parameters));
     277    m_page.startURLSchemeTaskShared(m_process.copyRef(), WTFMove(parameters));
    278278}
    279279
    280280void ProvisionalPageProxy::backForwardGoToItem(const WebCore::BackForwardItemIdentifier& identifier, SandboxExtension::Handle& handle)
    281281{
    282     m_page.backForwardGoToItemShared(m_process, identifier, handle);
     282    m_page.backForwardGoToItemShared(m_process.copyRef(), identifier, handle);
    283283}
    284284
  • branches/safari-607-branch/Source/WebKit/UIProcess/WebPageProxy.cpp

    r240263 r240264  
    242242#define MERGE_WHEEL_EVENTS 1
    243243
    244 #define MESSAGE_CHECK(process, assertion) MESSAGE_CHECK_BASE(assertion, process.connection())
    245 #define MESSAGE_CHECK_URL(process, url) MESSAGE_CHECK_BASE(checkURLReceivedFromCurrentOrPreviousWebProcess(process, url), process.connection())
     244#define MESSAGE_CHECK(process, assertion) MESSAGE_CHECK_BASE(assertion, process->connection())
     245#define MESSAGE_CHECK_URL(process, url) MESSAGE_CHECK_BASE(checkURLReceivedFromCurrentOrPreviousWebProcess(process, url), process->connection())
    246246
    247247#define RELEASE_LOG_IF_ALLOWED(channel, fmt, ...) RELEASE_LOG_IF(isAlwaysOnLoggingAllowed(), channel, "%p - WebPageProxy::" fmt, this, ##__VA_ARGS__)
    … …  
    10641064    RELEASE_LOG_IF_ALLOWED(Loading, "loadRequest: webPID = %i, pageID = %" PRIu64, m_process->processIdentifier(), m_pageID);
    10651065
     1066    if (!isValid())
     1067        reattachToWebProcess();
     1068
    10661069    auto navigation = m_navigationState->createLoadRequestNavigation(ResourceRequest(request), m_backForwardList->currentItem());
    1067     loadRequestWithNavigationShared(m_process, navigation.get(), WTFMove(request), shouldOpenExternalURLsPolicy, userData, ShouldTreatAsContinuingLoad::No);
     1070    loadRequestWithNavigationShared(m_process.copyRef(), navigation.get(), WTFMove(request), shouldOpenExternalURLsPolicy, userData, ShouldTreatAsContinuingLoad::No);
    10681071    return WTFMove(navigation);
    10691072}
    10701073
    1071 void WebPageProxy::loadRequestWithNavigationShared(WebProcessProxy& process, API::Navigation& navigation, ResourceRequest&& request, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, API::Object* userData, ShouldTreatAsContinuingLoad shouldTreatAsContinuingLoad, Optional<WebsitePoliciesData>&& websitePolicies)
     1074void WebPageProxy::loadRequestWithNavigationShared(Ref<WebProcessProxy>&& process, API::Navigation& navigation, ResourceRequest&& request, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, API::Object* userData, ShouldTreatAsContinuingLoad shouldTreatAsContinuingLoad, Optional<WebsitePoliciesData>&& websitePolicies)
    10721075{
    10731076    ASSERT(!m_isClosed);
    10741077
    1075     RELEASE_LOG_IF_ALLOWED(Loading, "loadRequestWithNavigation: webPID = %i, pageID = %" PRIu64, process.processIdentifier(), m_pageID);
     1078    RELEASE_LOG_IF_ALLOWED(Loading, "loadRequestWithNavigation: webPID = %i, pageID = %" PRIu64, process->processIdentifier(), m_pageID);
    10761079
    10771080    auto transaction = m_pageLoadState.transaction();
    … …  
    10801083    if (shouldTreatAsContinuingLoad != ShouldTreatAsContinuingLoad::Yes)
    10811084        m_pageLoadState.setPendingAPIRequestURL(transaction, url);
    1082 
    1083     if (!isValid())
    1084         reattachToWebProcess();
    10851085
    10861086    LoadParameters loadParameters;
    … …  
    10881088    loadParameters.request = WTFMove(request);
    10891089    loadParameters.shouldOpenExternalURLsPolicy = (uint64_t)shouldOpenExternalURLsPolicy;
    1090     loadParameters.userData = UserData(process.transformObjectsToHandles(userData).get());
     1090    loadParameters.userData = UserData(process->transformObjectsToHandles(userData).get());
    10911091    loadParameters.shouldTreatAsContinuingLoad = shouldTreatAsContinuingLoad == ShouldTreatAsContinuingLoad::Yes;
    10921092    loadParameters.websitePolicies = WTFMove(websitePolicies);
    … …  
    10991099    addPlatformLoadParameters(loadParameters);
    11001100
    1101     process.send(Messages::WebPage::LoadRequest(loadParameters), m_pageID);
    1102     process.responsivenessTimer().start();
     1101    process->send(Messages::WebPage::LoadRequest(loadParameters), m_pageID);
     1102    process->responsivenessTimer().start();
    11031103}
    11041104
    … …  
    11641164    }
    11651165
     1166    if (!isValid())
     1167        reattachToWebProcess();
     1168
    11661169    auto navigation = m_navigationState->createLoadDataNavigation(std::make_unique<API::SubstituteData>(data.vector(), MIMEType, encoding, baseURL, userData));
    1167     loadDataWithNavigationShared(m_process, navigation, data, MIMEType, encoding, baseURL, userData, ShouldTreatAsContinuingLoad::No);
     1170    loadDataWithNavigationShared(m_process.copyRef(), navigation, data, MIMEType, encoding, baseURL, userData, ShouldTreatAsContinuingLoad::No);
    11681171    return WTFMove(navigation);
    11691172}
    11701173
    1171 void WebPageProxy::loadDataWithNavigationShared(WebProcessProxy& process, API::Navigation& navigation, const IPC::DataReference& data, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData, ShouldTreatAsContinuingLoad shouldTreatAsContinuingLoad, Optional<WebsitePoliciesData>&& websitePolicies)
    1172 {
    1173     RELEASE_LOG_IF_ALLOWED(Loading, "loadDataWithNavigation: webPID = %i, pageID = %" PRIu64, process.processIdentifier(), m_pageID);
     1174void WebPageProxy::loadDataWithNavigationShared(Ref<WebProcessProxy>&& process, API::Navigation& navigation, const IPC::DataReference& data, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData, ShouldTreatAsContinuingLoad shouldTreatAsContinuingLoad, Optional<WebsitePoliciesData>&& websitePolicies)
     1175{
     1176    RELEASE_LOG_IF_ALLOWED(Loading, "loadDataWithNavigation: webPID = %i, pageID = %" PRIu64, process->processIdentifier(), m_pageID);
    11741177
    11751178    ASSERT(!m_isClosed);
    … …  
    11781181
    11791182    m_pageLoadState.setPendingAPIRequestURL(transaction, !baseURL.isEmpty() ? baseURL : WTF::blankURL().string());
    1180 
    1181     if (!isValid())
    1182         reattachToWebProcess();
    11831183
    11841184    LoadParameters loadParameters;
    … …  
    11891189    loadParameters.baseURLString = baseURL;
    11901190    loadParameters.shouldTreatAsContinuingLoad = shouldTreatAsContinuingLoad == ShouldTreatAsContinuingLoad::Yes;
    1191     loadParameters.userData = UserData(process.transformObjectsToHandles(userData).get());
     1191    loadParameters.userData = UserData(process->transformObjectsToHandles(userData).get());
    11921192    loadParameters.websitePolicies = WTFMove(websitePolicies);
    11931193    addPlatformLoadParameters(loadParameters);
    11941194
    1195     process.assumeReadAccessToBaseURL(*this, baseURL);
    1196     process.send(Messages::WebPage::LoadData(loadParameters), m_pageID);
    1197     process.responsivenessTimer().start();
     1195    process->assumeReadAccessToBaseURL(*this, baseURL);
     1196    process->send(Messages::WebPage::LoadData(loadParameters), m_pageID);
     1197    process->responsivenessTimer().start();
    11981198}
    11991199
    … …  
    20992099void WebPageProxy::didPerformDragControllerAction(uint64_t dragOperation, WebCore::DragHandlingMethod dragHandlingMethod, bool mouseIsOverFileInput, unsigned numberOfItemsToBeAccepted, const IntRect& insertionRect)
    21002100{
    2101     MESSAGE_CHECK(m_process.get(), dragOperation <= DragOperationDelete);
     2101    MESSAGE_CHECK(m_process, dragOperation <= DragOperationDelete);
    21022102
    21032103    m_currentDragOperation = static_cast<DragOperation>(dragOperation);
    … …  
    24062406    PageClientProtector protector(pageClient());
    24072407
    2408     MESSAGE_CHECK_URL(process(), urlString);
     2408    MESSAGE_CHECK_URL(m_process, urlString);
    24092409
    24102410    URL pluginURL = URL { URL(), urlString };
    … …  
    36703670    PageClientProtector protector(pageClient());
    36713671
    3672     MESSAGE_CHECK(m_process.get(), !m_mainFrame);
    3673     MESSAGE_CHECK(m_process.get(), m_process->canCreateFrame(frameID));
     3672    MESSAGE_CHECK(m_process, !m_mainFrame);
     3673    MESSAGE_CHECK(m_process, m_process->canCreateFrame(frameID));
    36743674
    36753675    m_mainFrame = WebFrameProxy::create(*this, frameID);
    … …  
    36833683    PageClientProtector protector(pageClient());
    36843684
    3685     MESSAGE_CHECK(m_process.get(), m_mainFrame);
     3685    MESSAGE_CHECK(m_process, m_mainFrame);
    36863686
    36873687    // The DecidePolicyForNavigationActionSync IPC is synchronous and may therefore get processed before the DidCreateSubframe one.
    … …  
    36913691        return;
    36923692
    3693     MESSAGE_CHECK(m_process.get(), m_process->canCreateFrame(frameID));
     3693    MESSAGE_CHECK(m_process, m_process->canCreateFrame(frameID));
    36943694   
    36953695    auto subFrame = WebFrameProxy::create(*this, frameID);
    … …  
    37633763void WebPageProxy::didStartProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, URL&& url, URL&& unreachableURL, const UserData& userData)
    37643764{
    3765     didStartProvisionalLoadForFrameShared(m_process, frameID, navigationID, WTFMove(url), WTFMove(unreachableURL), userData);
    3766 }
    3767 
    3768 void WebPageProxy::didStartProvisionalLoadForFrameShared(WebProcessProxy& process, uint64_t frameID, uint64_t navigationID, URL&& url, URL&& unreachableURL, const UserData& userData)
     3765    didStartProvisionalLoadForFrameShared(m_process.copyRef(), frameID, navigationID, WTFMove(url), WTFMove(unreachableURL), userData);
     3766}
     3767
     3768void WebPageProxy::didStartProvisionalLoadForFrameShared(Ref<WebProcessProxy>&& process, uint64_t frameID, uint64_t navigationID, URL&& url, URL&& unreachableURL, const UserData& userData)
    37693769{
    37703770    PageClientProtector protector(pageClient());
    37713771
    3772     WebFrameProxy* frame = process.webFrame(frameID);
     3772    WebFrameProxy* frame = process->webFrame(frameID);
    37733773    MESSAGE_CHECK(process, frame);
    37743774    MESSAGE_CHECK_URL(process, url);
    … …  
    37793779        navigation = navigationState().navigation(navigationID);
    37803780
    3781     LOG(Loading, "WebPageProxy %" PRIu64 " in process pid %i didStartProvisionalLoadForFrame to frameID %" PRIu64 ", navigationID %" PRIu64 ", url %s", m_pageID, process.processIdentifier(), frameID, navigationID, url.string().utf8().data());
    3782     RELEASE_LOG_IF_ALLOWED(Loading, "didStartProvisionalLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, process.processIdentifier(), m_pageID, frameID);
     3781    LOG(Loading, "WebPageProxy %" PRIu64 " in process pid %i didStartProvisionalLoadForFrame to frameID %" PRIu64 ", navigationID %" PRIu64 ", url %s", m_pageID, process->processIdentifier(), frameID, navigationID, url.string().utf8().data());
     3782    RELEASE_LOG_IF_ALLOWED(Loading, "didStartProvisionalLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, process->processIdentifier(), m_pageID, frameID);
    37833783
    37843784    auto transaction = m_pageLoadState.transaction();
    … …  
    37993799    m_pageLoadState.commitChanges();
    38003800    if (m_loaderClient)
    3801         m_loaderClient->didStartProvisionalLoadForFrame(*this, *frame, navigation.get(), process.transformHandlesToObjects(userData.object()).get());
     3801        m_loaderClient->didStartProvisionalLoadForFrame(*this, *frame, navigation.get(), process->transformHandlesToObjects(userData.object()).get());
    38023802    else if (frame->isMainFrame())
    3803         m_navigationClient->didStartProvisionalNavigation(*this, navigation.get(), process.transformHandlesToObjects(userData.object()).get());
     3803        m_navigationClient->didStartProvisionalNavigation(*this, navigation.get(), process->transformHandlesToObjects(userData.object()).get());
    38043804}
    38053805
    38063806void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, ResourceRequest&& request, const UserData& userData)
    38073807{
    3808     didReceiveServerRedirectForProvisionalLoadForFrameShared(m_process, frameID, navigationID, WTFMove(request), userData);
    3809 }
    3810 
    3811 void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared(WebProcessProxy& process, uint64_t frameID, uint64_t navigationID, ResourceRequest&& request, const UserData& userData)
     3808    didReceiveServerRedirectForProvisionalLoadForFrameShared(m_process.copyRef(), frameID, navigationID, WTFMove(request), userData);
     3809}
     3810
     3811void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared(Ref<WebProcessProxy>&& process, uint64_t frameID, uint64_t navigationID, ResourceRequest&& request, const UserData& userData)
    38123812{
    38133813    LOG(Loading, "WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame to frameID %" PRIu64 ", navigationID %" PRIu64 ", url %s", frameID, navigationID, request.url().string().utf8().data());
    3814     RELEASE_LOG_IF_ALLOWED(Loading, "didReceiveServerRedirectForProvisionalLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, process.processIdentifier(), m_pageID, frameID);
     3814    RELEASE_LOG_IF_ALLOWED(Loading, "didReceiveServerRedirectForProvisionalLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, process->processIdentifier(), m_pageID, frameID);
    38153815
    38163816    PageClientProtector protector(pageClient());
    38173817
    3818     WebFrameProxy* frame = process.webFrame(frameID);
     3818    WebFrameProxy* frame = process->webFrame(frameID);
    38193819    MESSAGE_CHECK(process, frame);
    38203820    MESSAGE_CHECK_URL(process, request.url());
    … …  
    38343834    m_pageLoadState.commitChanges();
    38353835    if (m_loaderClient)
    3836         m_loaderClient->didReceiveServerRedirectForProvisionalLoadForFrame(*this, *frame, frame->isMainFrame() ? navigation.get() : nullptr, process.transformHandlesToObjects(userData.object()).get());
     3836        m_loaderClient->didReceiveServerRedirectForProvisionalLoadForFrame(*this, *frame, frame->isMainFrame() ? navigation.get() : nullptr, process->transformHandlesToObjects(userData.object()).get());
    38373837    else if (frame->isMainFrame())
    3838         m_navigationClient->didReceiveServerRedirectForProvisionalNavigation(*this, navigation.get(), process.transformHandlesToObjects(userData.object()).get());
     3838        m_navigationClient->didReceiveServerRedirectForProvisionalNavigation(*this, navigation.get(), process->transformHandlesToObjects(userData.object()).get());
    38393839}
    38403840
    … …  
    38463846
    38473847    WebFrameProxy* frame = m_process->webFrame(frameID);
    3848     MESSAGE_CHECK(m_process.get(), frame);
     3848    MESSAGE_CHECK(m_process, frame);
    38493849
    38503850    if (frame->isMainFrame())
    … …  
    38593859
    38603860    WebFrameProxy* frame = m_process->webFrame(frameID);
    3861     MESSAGE_CHECK(m_process.get(), frame);
     3861    MESSAGE_CHECK(m_process, frame);
    38623862
    38633863    if (frame->isMainFrame())
    … …  
    38673867void WebPageProxy::didChangeProvisionalURLForFrame(uint64_t frameID, uint64_t navigationID, URL&& url)
    38683868{
    3869     didChangeProvisionalURLForFrameShared(m_process, frameID, navigationID, WTFMove(url));
    3870 }
    3871 
    3872 void WebPageProxy::didChangeProvisionalURLForFrameShared(WebProcessProxy& process, uint64_t frameID, uint64_t, URL&& url)
     3869    didChangeProvisionalURLForFrameShared(m_process.copyRef(), frameID, navigationID, WTFMove(url));
     3870}
     3871
     3872void WebPageProxy::didChangeProvisionalURLForFrameShared(Ref<WebProcessProxy>&& process, uint64_t frameID, uint64_t, URL&& url)
    38733873{
    38743874    PageClientProtector protector(pageClient());
    38753875
    3876     WebFrameProxy* frame = process.webFrame(frameID);
     3876    WebFrameProxy* frame = process->webFrame(frameID);
    38773877    MESSAGE_CHECK(process, frame);
    38783878    MESSAGE_CHECK(process, frame->frameLoadState().state() == FrameLoadState::State::Provisional);
    … …  
    38963896    }
    38973897
    3898     didFailProvisionalLoadForFrameShared(m_process, frameID, frameSecurityOrigin, navigationID, provisionalURL, error, userData);
    3899 }
    3900 
    3901 void WebPageProxy::didFailProvisionalLoadForFrameShared(WebProcessProxy& process, uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const String& provisionalURL, const ResourceError& error, const UserData& userData)
    3902 {
    3903     LOG(Loading, "(Loading) WebPageProxy %" PRIu64 " in web process pid %i didFailProvisionalLoadForFrame to provisionalURL %s", m_pageID, process.processIdentifier(), provisionalURL.utf8().data());
    3904     RELEASE_LOG_IF_ALLOWED(Process, "didFailProvisionalLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64 ", domain = %s, code = %d", process.processIdentifier(), m_pageID, frameID, error.domain().utf8().data(), error.errorCode());
     3898    didFailProvisionalLoadForFrameShared(m_process.copyRef(), frameID, frameSecurityOrigin, navigationID, provisionalURL, error, userData);
     3899}
     3900
     3901void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref<WebProcessProxy>&& process, uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const String& provisionalURL, const ResourceError& error, const UserData& userData)
     3902{
     3903    LOG(Loading, "(Loading) WebPageProxy %" PRIu64 " in web process pid %i didFailProvisionalLoadForFrame to provisionalURL %s", m_pageID, process->processIdentifier(), provisionalURL.utf8().data());
     3904    RELEASE_LOG_IF_ALLOWED(Process, "didFailProvisionalLoadForFrame: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64 ", domain = %s, code = %d", process->processIdentifier(), m_pageID, frameID, error.domain().utf8().data(), error.errorCode());
    39053905
    39063906    PageClientProtector protector(pageClient());
    39073907
    3908     WebFrameProxy* frame = process.webFrame(frameID);
    3909     MESSAGE_CHECK(m_process.get(), frame);
     3908    WebFrameProxy* frame = process->webFrame(frameID);
     3909    MESSAGE_CHECK(m_process, frame);
    39103910
    39113911    if (m_controlledByAutomation) {
    3912         if (auto* automationSession = process.processPool().automationSession())
     3912        if (auto* automationSession = process->processPool().automationSession())
    39133913            automationSession->navigationOccurredForFrame(*frame);
    39143914    }
    … …  
    39353935
    39363936    if (m_loaderClient)
    3937         m_loaderClient->didFailProvisionalLoadWithErrorForFrame(*this, *frame, navigation.get(), error, process.transformHandlesToObjects(userData.object()).get());
     3937        m_loaderClient->didFailProvisionalLoadWithErrorForFrame(*this, *frame, navigation.get(), error, process->transformHandlesToObjects(userData.object()).get());
    39383938    else if (frame->isMainFrame())
    3939         m_navigationClient->didFailProvisionalNavigationWithError(*this, *frame, navigation.get(), error, process.transformHandlesToObjects(userData.object()).get());
     3939        m_navigationClient->didFailProvisionalNavigationWithError(*this, *frame, navigation.get(), error, process->transformHandlesToObjects(userData.object()).get());
    39403940    else {
    39413941        // FIXME: Get the main frame's current navigation.
    3942         m_navigationClient->didFailProvisionalLoadInSubframeWithError(*this, *frame, frameSecurityOrigin, nullptr, error, process.transformHandlesToObjects(userData.object()).get());
     3942        m_navigationClient->didFailProvisionalLoadInSubframeWithError(*this, *frame, frameSecurityOrigin, nullptr, error, process->transformHandlesToObjects(userData.object()).get());
    39433943    }
    39443944
    … …  
    39683968
    39693969    WebFrameProxy* frame = m_process->webFrame(frameID);
    3970     MESSAGE_CHECK(m_process.get(), frame);
     3970    MESSAGE_CHECK(m_process, frame);
    39713971
    39723972    // FIXME: We should message check that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
    … …  
    40624062
    40634063    WebFrameProxy* frame = m_process->webFrame(frameID);
    4064     MESSAGE_CHECK(m_process.get(), frame);
     4064    MESSAGE_CHECK(m_process, frame);
    40654065
    40664066    if (m_controlledByAutomation) {
    … …  
    40864086
    40874087    WebFrameProxy* frame = m_process->webFrame(frameID);
    4088     MESSAGE_CHECK(m_process.get(), frame);
     4088    MESSAGE_CHECK(m_process, frame);
    40894089
    40904090    // FIXME: We should message check that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
    … …  
    41314131
    41324132    WebFrameProxy* frame = m_process->webFrame(frameID);
    4133     MESSAGE_CHECK(m_process.get(), frame);
     4133    MESSAGE_CHECK(m_process, frame);
    41344134
    41354135    // FIXME: We should message check that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
    … …  
    41734173
    41744174    WebFrameProxy* frame = m_process->webFrame(frameID);
    4175     MESSAGE_CHECK(m_process.get(), frame);
    4176     MESSAGE_CHECK_URL(process(), url);
     4175    MESSAGE_CHECK(m_process, frame);
     4176    MESSAGE_CHECK_URL(m_process, url);
    41774177
    41784178    // FIXME: We should message check that navigationID is not zero here, but it's currently zero for some navigations through the page cache.
    … …  
    42264226
    42274227    WebFrameProxy* frame = m_process->webFrame(frameID);
    4228     MESSAGE_CHECK(m_process.get(), frame);
     4228    MESSAGE_CHECK(m_process, frame);
    42294229
    42304230    auto transaction = m_pageLoadState.transaction();
    … …  
    42524252
    42534253    WebFrameProxy* frame = m_process->webFrame(frameID);
    4254     MESSAGE_CHECK(m_process.get(), frame);
     4254    MESSAGE_CHECK(m_process, frame);
    42554255
    42564256    if (m_loaderClient)
    … …  
    42834283
    42844284    WebFrameProxy* frame = m_process->webFrame(frameID);
    4285     MESSAGE_CHECK(m_process.get(), frame);
     4285    MESSAGE_CHECK(m_process, frame);
    42864286
    42874287    auto transaction = m_pageLoadState.transaction();
    … …  
    42974297
    42984298    WebFrameProxy* frame = m_process->webFrame(frameID);
    4299     MESSAGE_CHECK(m_process.get(), frame);
     4299    MESSAGE_CHECK(m_process, frame);
    43004300
    43014301    auto transaction = m_pageLoadState.transaction();
    … …  
    43204320
    43214321    WebFrameProxy* frame = m_process->webFrame(frameID);
    4322     MESSAGE_CHECK(m_process.get(), frame);
     4322    MESSAGE_CHECK(m_process, frame);
    43234323
    43244324    frame->setIsFrameSet(value);
    … …  
    43364336void WebPageProxy::decidePolicyForNavigationActionAsync(uint64_t frameID, WebCore::SecurityOriginData&& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData& userData, uint64_t listenerID)
    43374337{
    4338     decidePolicyForNavigationActionAsyncShared(m_process, frameID, WTFMove(frameSecurityOrigin), navigationID, WTFMove(navigationActionData), WTFMove(frameInfoData), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), userData, listenerID);
    4339 }
    4340 
    4341 void WebPageProxy::decidePolicyForNavigationActionAsyncShared(WebProcessProxy& process, uint64_t frameID, WebCore::SecurityOriginData&& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData& userData, uint64_t listenerID)
    4342 {
    4343     auto* frame = process.webFrame(frameID);
     4338    decidePolicyForNavigationActionAsyncShared(m_process.copyRef(), frameID, WTFMove(frameSecurityOrigin), navigationID, WTFMove(navigationActionData), WTFMove(frameInfoData), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), userData, listenerID);
     4339}
     4340
     4341void WebPageProxy::decidePolicyForNavigationActionAsyncShared(Ref<WebProcessProxy>&& process, uint64_t frameID, WebCore::SecurityOriginData&& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& frameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData& userData, uint64_t listenerID)
     4342{
     4343    auto* frame = process->webFrame(frameID);
    43444344    MESSAGE_CHECK(process, frame);
    43454345
    4346     decidePolicyForNavigationAction(process, *frame, WTFMove(frameSecurityOrigin), navigationID, WTFMove(navigationActionData), WTFMove(frameInfoData), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), userData, PolicyDecisionSender::create([this, protectedThis = makeRef(*this), frameID, listenerID, process = makeRef(process)] (auto... args) {
     4346    decidePolicyForNavigationAction(process.copyRef(), *frame, WTFMove(frameSecurityOrigin), navigationID, WTFMove(navigationActionData), WTFMove(frameInfoData), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), userData, PolicyDecisionSender::create([this, protectedThis = makeRef(*this), frameID, listenerID, process = process.copyRef()] (auto... args) {
    43474347        process->send(Messages::WebPage::DidReceivePolicyDecision(frameID, listenerID, args...), m_pageID);
    43484348    }));
    43494349}
    43504350
    4351 void WebPageProxy::decidePolicyForNavigationAction(WebProcessProxy& process, WebFrameProxy& frame, WebCore::SecurityOriginData&& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& originatingFrameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData& userData, Ref<PolicyDecisionSender>&& sender)
     4351void WebPageProxy::decidePolicyForNavigationAction(Ref<WebProcessProxy>&& process, WebFrameProxy& frame, WebCore::SecurityOriginData&& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& originatingFrameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData& userData, Ref<PolicyDecisionSender>&& sender)
    43524352{
    43534353    LOG(Loading, "WebPageProxy::decidePolicyForNavigationAction - Original URL %s, current target URL %s", originalRequest.url().string().utf8().data(), request.url().string().utf8().data());
    … …  
    43914391
    43924392    uint64_t newNavigationID = navigation->navigationID();
    4393     navigation->setCurrentRequest(ResourceRequest(request), process.coreProcessIdentifier());
     4393    navigation->setCurrentRequest(ResourceRequest(request), process->coreProcessIdentifier());
    43944394    navigation->setLastNavigationAction(navigationActionData);
    43954395    navigation->setOriginatingFrameInfo(originatingFrameInfoData);
    … …  
    44504450
    44514451    API::Navigation* mainFrameNavigation = frame.isMainFrame() ? navigation.get() : nullptr;
    4452     WebFrameProxy* originatingFrame = process.webFrame(originatingFrameInfoData.frameID);
     4452    WebFrameProxy* originatingFrame = process->webFrame(originatingFrameInfoData.frameID);
    44534453
    44544454    if (auto* resourceLoadStatisticsStore = websiteDataStore().resourceLoadStatistics())
    … …  
    44564456
    44574457    if (m_policyClient)
    4458         m_policyClient->decidePolicyForNavigationAction(*this, &frame, WTFMove(navigationActionData), originatingFrame, originalRequest, WTFMove(request), WTFMove(listener), process.transformHandlesToObjects(userData.object()).get());
     4458        m_policyClient->decidePolicyForNavigationAction(*this, &frame, WTFMove(navigationActionData), originatingFrame, originalRequest, WTFMove(request), WTFMove(listener), process->transformHandlesToObjects(userData.object()).get());
    44594459    else {
    44604460        auto destinationFrameInfo = API::FrameInfo::create(frame, frameSecurityOrigin.securityOrigin());
    … …  
    44634463            sourceFrameInfo = destinationFrameInfo.copyRef();
    44644464        else if (!fromAPI)
    4465             sourceFrameInfo = API::FrameInfo::create(originatingFrameInfoData, originatingPageID ? process.webPage(originatingPageID) : nullptr);
    4466 
    4467         auto userInitiatedActivity = process.userInitiatedActivity(navigationActionData.userGestureTokenIdentifier);
     4465            sourceFrameInfo = API::FrameInfo::create(originatingFrameInfoData, originatingPageID ? process->webPage(originatingPageID) : nullptr);
     4466
     4467        auto userInitiatedActivity = process->userInitiatedActivity(navigationActionData.userGestureTokenIdentifier);
    44684468        bool shouldOpenAppLinks = !m_shouldSuppressAppLinksInNextNavigationPolicyDecision && destinationFrameInfo->isMainFrame() && !hostsAreEqual(URL({ }, m_mainFrame->url()), request.url()) && navigationActionData.navigationType != WebCore::NavigationType::BackForward;
    44694469
    44704470        auto navigationAction = API::NavigationAction::create(WTFMove(navigationActionData), sourceFrameInfo.get(), destinationFrameInfo.ptr(), WTF::nullopt, WTFMove(request), originalRequest.url(), shouldOpenAppLinks, WTFMove(userInitiatedActivity), mainFrameNavigation);
    44714471
    4472         m_navigationClient->decidePolicyForNavigationAction(*this, WTFMove(navigationAction), WTFMove(listener), process.transformHandlesToObjects(userData.object()).get());
     4472        m_navigationClient->decidePolicyForNavigationAction(*this, WTFMove(navigationAction), WTFMove(listener), process->transformHandlesToObjects(userData.object()).get());
    44734473    }
    44744474
    … …  
    44924492    }
    44934493
    4494     decidePolicyForNavigationAction(m_process, *frame, WTFMove(frameSecurityOrigin), navigationID, WTFMove(navigationActionData), WTFMove(frameInfoData), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), userData, sender.copyRef());
     4494    decidePolicyForNavigationAction(m_process.copyRef(), *frame, WTFMove(frameSecurityOrigin), navigationID, WTFMove(navigationActionData), WTFMove(frameInfoData), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), userData, sender.copyRef());
    44954495
    44964496    // If the client did not respond synchronously, proceed with the load.
    … …  
    45034503
    45044504    WebFrameProxy* frame = m_process->webFrame(frameID);
    4505     MESSAGE_CHECK(m_process.get(), frame);
    4506     MESSAGE_CHECK_URL(process(), request.url());
     4505    MESSAGE_CHECK(m_process, frame);
     4506    MESSAGE_CHECK_URL(m_process, request.url());
    45074507
    45084508    auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), listenerID, frameID] (WebPolicyAction policyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient processSwapRequestedByClient, RefPtr<SafeBrowsingWarning>&& safeBrowsingWarning) mutable {
    … …  
    45344534void WebPageProxy::decidePolicyForResponse(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const ResourceResponse& response, const ResourceRequest& request, bool canShowMIMEType, uint64_t listenerID, const UserData& userData)
    45354535{
    4536     decidePolicyForResponseShared(m_process, frameID, frameSecurityOrigin, navigationID, response, request, canShowMIMEType, listenerID, userData);
    4537 }
    4538 
    4539 void WebPageProxy::decidePolicyForResponseShared(WebProcessProxy& process, uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const ResourceResponse& response, const ResourceRequest& request, bool canShowMIMEType, uint64_t listenerID, const UserData& userData)
     4536    decidePolicyForResponseShared(m_process.copyRef(), frameID, frameSecurityOrigin, navigationID, response, request, canShowMIMEType, listenerID, userData);
     4537}
     4538
     4539void WebPageProxy::decidePolicyForResponseShared(Ref<WebProcessProxy>&& process, uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const ResourceResponse& response, const ResourceRequest& request, bool canShowMIMEType, uint64_t listenerID, const UserData& userData)
    45404540{
    45414541    PageClientProtector protector(pageClient());
    … …  
    45434543    m_decidePolicyForResponseRequest = request;
    45444544
    4545     WebFrameProxy* frame = process.webFrame(frameID);
     4545    WebFrameProxy* frame = process->webFrame(frameID);
    45464546    MESSAGE_CHECK(process, frame);
    45474547    MESSAGE_CHECK_URL(process, request.url());
    … …  
    45494549
    45504550    RefPtr<API::Navigation> navigation = navigationID ? m_navigationState->navigation(navigationID) : nullptr;
    4551     auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), frameID, listenerID, navigation = WTFMove(navigation), process = makeRef(process)] (WebPolicyAction policyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient processSwapRequestedByClient, RefPtr<SafeBrowsingWarning>&& safeBrowsingWarning) mutable {
     4551    auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), frameID, listenerID, navigation = WTFMove(navigation), process = process.copyRef()] (WebPolicyAction policyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient processSwapRequestedByClient, RefPtr<SafeBrowsingWarning>&& safeBrowsingWarning) mutable {
    45524552        // FIXME: Assert the API::WebsitePolicies* is nullptr here once clients of WKFramePolicyListenerUseWithPolicies go away.
    45534553        RELEASE_ASSERT(processSwapRequestedByClient == ProcessSwapRequestedByClient::No);
    … …  
    45594559
    45604560    if (m_policyClient)
    4561         m_policyClient->decidePolicyForResponse(*this, *frame, response, request, canShowMIMEType, WTFMove(listener), process.transformHandlesToObjects(userData.object()).get());
     4561        m_policyClient->decidePolicyForResponse(*this, *frame, response, request, canShowMIMEType, WTFMove(listener), process->transformHandlesToObjects(userData.object()).get());
    45624562    else {
    45634563        auto navigationResponse = API::NavigationResponse::create(API::FrameInfo::create(*frame, frameSecurityOrigin.securityOrigin()).get(), request, response, canShowMIMEType);
    4564         m_navigationClient->decidePolicyForNavigationResponse(*this, WTFMove(navigationResponse), WTFMove(listener), process.transformHandlesToObjects(userData.object()).get());
     4564        m_navigationClient->decidePolicyForNavigationResponse(*this, WTFMove(navigationResponse), WTFMove(listener), process->transformHandlesToObjects(userData.object()).get());
    45654565    }
    45664566}
    … …  
    45714571
    45724572    WebFrameProxy* frame = m_process->webFrame(frameID);
    4573     MESSAGE_CHECK(m_process.get(), frame);
     4573    MESSAGE_CHECK(m_process, frame);
    45744574
    45754575    if (!m_policyClient)
    … …  
    45834583{
    45844584    WebFrameProxy* frame = m_process->webFrame(frameID);
    4585     MESSAGE_CHECK(m_process.get(), frame);
     4585    MESSAGE_CHECK(m_process, frame);
    45864586
    45874587    WebFrameProxy* sourceFrame = m_process->webFrame(sourceFrameID);
    4588     MESSAGE_CHECK(m_process.get(), sourceFrame);
     4588    MESSAGE_CHECK(m_process, sourceFrame);
    45894589
    45904590    m_formClient->willSubmitForm(*this, *frame, *sourceFrame, textFieldValues, m_process->transformHandlesToObjects(userData.object()).get(), [this, protectedThis = makeRef(*this), frameID, listenerID]() {
    … …  
    46004600void WebPageProxy::didNavigateWithNavigationData(const WebNavigationDataStore& store, uint64_t frameID)
    46014601{
    4602     didNavigateWithNavigationDataShared(m_process, store, frameID);
    4603 }
    4604 
    4605 void WebPageProxy::didNavigateWithNavigationDataShared(WebProcessProxy& process, const WebNavigationDataStore& store, uint64_t frameID)
    4606 {
    4607     RELEASE_LOG_IF_ALLOWED(Loading, "didNavigateWithNavigationDataShared: webPID = %i, pageID = %" PRIu64, process.processIdentifier(), m_pageID);
     4602    didNavigateWithNavigationDataShared(m_process.copyRef(), store, frameID);
     4603}
     4604
     4605void WebPageProxy::didNavigateWithNavigationDataShared(Ref<WebProcessProxy>&& process, const WebNavigationDataStore& store, uint64_t frameID)
     4606{
     4607    RELEASE_LOG_IF_ALLOWED(Loading, "didNavigateWithNavigationDataShared: webPID = %i, pageID = %" PRIu64, process->processIdentifier(), m_pageID);
    46084608
    46094609    PageClientProtector protector(pageClient());
    46104610
    4611     WebFrameProxy* frame = process.webFrame(frameID);
     4611    WebFrameProxy* frame = process->webFrame(frameID);
    46124612    MESSAGE_CHECK(process, frame);
    46134613    MESSAGE_CHECK(process, frame->page() == this);
    … …  
    46154615    if (frame->isMainFrame())
    46164616        m_historyClient->didNavigateWithNavigationData(*this, store);
    4617     process.processPool().historyClient().didNavigateWithNavigationData(process.processPool(), *this, store, *frame);
     4617    process->processPool().historyClient().didNavigateWithNavigationData(process->processPool(), *this, store, *frame);
    46184618}
    46194619
    46204620void WebPageProxy::didPerformClientRedirect(const String& sourceURLString, const String& destinationURLString, uint64_t frameID)
    46214621{
    4622     didPerformClientRedirectShared(m_process, sourceURLString, destinationURLString, frameID);
    4623 }
    4624 
    4625 void WebPageProxy::didPerformClientRedirectShared(WebProcessProxy& process, const String& sourceURLString, const String& destinationURLString, uint64_t frameID)
    4626 {
    4627     RELEASE_LOG_IF_ALLOWED(Loading, "didPerformClientRedirectShared: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, process.processIdentifier(), m_pageID, frameID);
     4622    didPerformClientRedirectShared(m_process.copyRef(), sourceURLString, destinationURLString, frameID);
     4623}
     4624
     4625void WebPageProxy::didPerformClientRedirectShared(Ref<WebProcessProxy>&& process, const String& sourceURLString, const String& destinationURLString, uint64_t frameID)
     4626{
     4627    RELEASE_LOG_IF_ALLOWED(Loading, "didPerformClientRedirectShared: webPID = %i, pageID = %" PRIu64 ", frameID = %" PRIu64, process->processIdentifier(), m_pageID, frameID);
    46284628
    46294629    PageClientProtector protector(pageClient());
    … …  
    46324632        return;
    46334633   
    4634     WebFrameProxy* frame = process.webFrame(frameID);
     4634    WebFrameProxy* frame = process->webFrame(frameID);
    46354635    MESSAGE_CHECK(process, frame);
    46364636    MESSAGE_CHECK(process, frame->page() == this);
    … …  
    46424642        m_navigationClient->didPerformClientRedirect(*this, sourceURLString, destinationURLString);
    46434643    }
    4644     process.processPool().historyClient().didPerformClientRedirect(process.processPool(), *this, sourceURLString, destinationURLString, *frame);
     4644    process->processPool().historyClient().didPerformClientRedirect(process->processPool(), *this, sourceURLString, destinationURLString, *frame);
    46454645}
    46464646
    … …  
    46554655   
    46564656    WebFrameProxy* frame = m_process->webFrame(frameID);
    4657     MESSAGE_CHECK(m_process.get(), frame);
    4658     MESSAGE_CHECK(m_process.get(), frame->page() == this);
    4659 
    4660     MESSAGE_CHECK_URL(process(), sourceURLString);
    4661     MESSAGE_CHECK_URL(process(), destinationURLString);
     4657    MESSAGE_CHECK(m_process, frame);
     4658    MESSAGE_CHECK(m_process, frame->page() == this);
     4659
     4660    MESSAGE_CHECK_URL(m_process, sourceURLString);
     4661    MESSAGE_CHECK_URL(m_process, destinationURLString);
    46624662
    46634663    if (frame->isMainFrame())
    … …  
    46714671
    46724672    WebFrameProxy* frame = m_process->webFrame(frameID);
    4673     MESSAGE_CHECK(m_process.get(), frame);
    4674     MESSAGE_CHECK(m_process.get(), frame->page() == this);
    4675 
    4676     MESSAGE_CHECK_URL(process(), url);
     4673    MESSAGE_CHECK(m_process, frame);
     4674    MESSAGE_CHECK(m_process, frame->page() == this);
     4675
     4676    MESSAGE_CHECK_URL(m_process, url);
    46774677
    46784678    if (frame->isMainFrame())
    … …  
    46854685void WebPageProxy::createNewPage(const FrameInfoData& originatingFrameInfoData, uint64_t originatingPageID, ResourceRequest&& request, WindowFeatures&& windowFeatures, NavigationActionData&& navigationActionData, Messages::WebPageProxy::CreateNewPage::DelayedReply&& reply)
    46864686{
    4687     MESSAGE_CHECK(m_process.get(), m_process->webFrame(originatingFrameInfoData.frameID));
     4687    MESSAGE_CHECK(m_process, m_process->webFrame(originatingFrameInfoData.frameID));
    46884688    auto originatingFrameInfo = API::FrameInfo::create(originatingFrameInfoData, m_process->webPage(originatingPageID));
    46894689
    … …  
    47504750{
    47514751    WebFrameProxy* frame = m_process->webFrame(frameID);
    4752     MESSAGE_CHECK(m_process.get(), frame);
     4752    MESSAGE_CHECK(m_process, frame);
    47534753
    47544754#if PLATFORM(IOS_FAMILY)
    … …  
    47694769{
    47704770    WebFrameProxy* frame = m_process->webFrame(frameID);
    4771     MESSAGE_CHECK(m_process.get(), frame);
     4771    MESSAGE_CHECK(m_process, frame);
    47724772
    47734773#if PLATFORM(IOS_FAMILY)
    … …  
    47894789{
    47904790    WebFrameProxy* frame = m_process->webFrame(frameID);
    4791     MESSAGE_CHECK(m_process.get(), frame);
     4791    MESSAGE_CHECK(m_process, frame);
    47924792
    47934793#if PLATFORM(IOS_FAMILY)
    … …  
    48404840void WebPageProxy::unavailablePluginButtonClicked(uint32_t opaquePluginUnavailabilityReason, const String& mimeType, const String& pluginURLString, const String& pluginspageAttributeURLString, const String& frameURLString, const String& pageURLString)
    48414841{
    4842     MESSAGE_CHECK_URL(process(), pluginURLString);
    4843     MESSAGE_CHECK_URL(process(), pluginspageAttributeURLString);
    4844     MESSAGE_CHECK_URL(process(), frameURLString);
    4845     MESSAGE_CHECK_URL(process(), pageURLString);
     4842    MESSAGE_CHECK_URL(m_process, pluginURLString);
     4843    MESSAGE_CHECK_URL(m_process, pluginspageAttributeURLString);
     4844    MESSAGE_CHECK_URL(m_process, frameURLString);
     4845    MESSAGE_CHECK_URL(m_process, pageURLString);
    48464846
    48474847    String newMimeType = mimeType;
    … …  
    49694969{
    49704970    WebFrameProxy* frame = m_process->webFrame(frameID);
    4971     MESSAGE_CHECK(m_process.get(), frame);
     4971    MESSAGE_CHECK(m_process, frame);
    49724972
    49734973    // Per §18 User Prompts in the WebDriver spec, "User prompts that are spawned from beforeunload
    … …  
    50145014
    50155015    WebFrameProxy* frame = m_process->webFrame(frameID);
    5016     MESSAGE_CHECK(m_process.get(), frame);
     5016    MESSAGE_CHECK(m_process, frame);
    50175017
    50185018    Ref<API::OpenPanelParameters> parameters = API::OpenPanelParameters::create(settings);
    … …  
    50515051
    50525052    WebFrameProxy* frame = m_process->webFrame(frameID);
    5053     MESSAGE_CHECK(m_process.get(), frame);
     5053    MESSAGE_CHECK(m_process, frame);
    50545054
    50555055    m_uiClient->printFrame(*this, *frame);
    … …  
    53405340void WebPageProxy::backForwardGoToItem(const BackForwardItemIdentifier& itemID, SandboxExtension::Handle& sandboxExtensionHandle)
    53415341{
    5342     backForwardGoToItemShared(m_process, itemID, sandboxExtensionHandle);
    5343 }
    5344 
    5345 void WebPageProxy::backForwardGoToItemShared(WebProcessProxy& process, const BackForwardItemIdentifier& itemID, SandboxExtension::Handle& sandboxExtensionHandle)
     5342    backForwardGoToItemShared(m_process.copyRef(), itemID, sandboxExtensionHandle);
     5343}
     5344
     5345void WebPageProxy::backForwardGoToItemShared(Ref<WebProcessProxy>&& process, const BackForwardItemIdentifier& itemID, SandboxExtension::Handle& sandboxExtensionHandle)
    53465346{
    53475347    WebBackForwardListItem* item = m_backForwardList->itemForID(itemID);
    … …  
    58305830void WebPageProxy::learnWord(const String& word)
    58315831{
    5832     MESSAGE_CHECK(m_process.get(), m_pendingLearnOrIgnoreWordMessageCount);
     5832    MESSAGE_CHECK(m_process, m_pendingLearnOrIgnoreWordMessageCount);
    58335833    --m_pendingLearnOrIgnoreWordMessageCount;
    58345834
    … …  
    58385838void WebPageProxy::ignoreWord(const String& word)
    58395839{
    5840     MESSAGE_CHECK(m_process.get(), m_pendingLearnOrIgnoreWordMessageCount);
     5840    MESSAGE_CHECK(m_process, m_pendingLearnOrIgnoreWordMessageCount);
    58415841    --m_pendingLearnOrIgnoreWordMessageCount;
    58425842
    … …  
    59365936
    59375937        // Retire the last sent event now that WebProcess is done handling it.
    5938         MESSAGE_CHECK(m_process.get(), !m_mouseEventQueue.isEmpty());
     5938        MESSAGE_CHECK(m_process, !m_mouseEventQueue.isEmpty());
    59395939        NativeWebMouseEvent event = m_mouseEventQueue.takeFirst();
    5940         MESSAGE_CHECK(m_process.get(), type == event.type());
     5940        MESSAGE_CHECK(m_process, type == event.type());
    59415941
    59425942        if (!m_mouseEventQueue.isEmpty()) {
    … …  
    59535953
    59545954    case WebEvent::Wheel: {
    5955         MESSAGE_CHECK(m_process.get(), !m_currentlyProcessedWheelEvents.isEmpty());
     5955        MESSAGE_CHECK(m_process, !m_currentlyProcessedWheelEvents.isEmpty());
    59565956
    59575957        std::unique_ptr<Vector<NativeWebWheelEvent>> oldestCoalescedEvent = m_currentlyProcessedWheelEvents.takeFirst();
    … …  
    59745974        LOG(KeyHandling, "WebPageProxy::didReceiveEvent: %s (queue empty %d)", webKeyboardEventTypeString(type), m_keyEventQueue.isEmpty());
    59755975
    5976         MESSAGE_CHECK(m_process.get(), !m_keyEventQueue.isEmpty());
     5976        MESSAGE_CHECK(m_process, !m_keyEventQueue.isEmpty());
    59775977        NativeWebKeyboardEvent event = m_keyEventQueue.takeFirst();
    59785978
    5979         MESSAGE_CHECK(m_process.get(), type == event.type());
     5979        MESSAGE_CHECK(m_process, type == event.type());
    59805980
    59815981        bool canProcessMoreKeyEvents = !m_keyEventQueue.isEmpty();
    … …  
    60046004    case WebEvent::GestureChange:
    60056005    case WebEvent::GestureEnd: {
    6006         MESSAGE_CHECK(m_process.get(), !m_gestureEventQueue.isEmpty());
     6006        MESSAGE_CHECK(m_process, !m_gestureEventQueue.isEmpty());
    60076007        NativeWebGestureEvent event = m_gestureEventQueue.takeFirst();
    60086008
    6009         MESSAGE_CHECK(m_process.get(), type == event.type());
     6009        MESSAGE_CHECK(m_process, type == event.type());
    60106010
    60116011        if (!handled)
    … …  
    60266026    case WebEvent::TouchEnd:
    60276027    case WebEvent::TouchCancel: {
    6028         MESSAGE_CHECK(m_process.get(), !m_touchEventQueue.isEmpty());
     6028        MESSAGE_CHECK(m_process, !m_touchEventQueue.isEmpty());
    60296029        QueuedTouchEvents queuedEvents = m_touchEventQueue.takeFirst();
    60306030
    6031         MESSAGE_CHECK(m_process.get(), type == queuedEvents.forwardedEvent.type());
     6031        MESSAGE_CHECK(m_process, type == queuedEvents.forwardedEvent.type());
    60326032
    60336033        pageClient().doneWithTouchEvent(queuedEvents.forwardedEvent, handled);
    … …  
    61576157void WebPageProxy::editingRangeCallback(const EditingRange& range, CallbackID callbackID)
    61586158{
    6159     MESSAGE_CHECK(m_process.get(), range.isValid());
     6159    MESSAGE_CHECK(m_process, range.isValid());
    61606160
    61616161    auto callback = m_callbacks.take<EditingRangeCallback>(callbackID);
    … …  
    62586258void WebPageProxy::rectForCharacterRangeCallback(const IntRect& rect, const EditingRange& actualRange, CallbackID callbackID)
    62596259{
    6260     MESSAGE_CHECK(m_process.get(), actualRange.isValid());
     6260    MESSAGE_CHECK(m_process, actualRange.isValid());
    62616261
    62626262    auto callback = m_callbacks.take<RectForCharacterRangeCallback>(callbackID);
    … …  
    62916291
    62926292    WebFrameProxy* frame = m_process->webFrame(frameID);
    6293     MESSAGE_CHECK(m_process.get(), frame);
     6293    MESSAGE_CHECK(m_process, frame);
    62946294
    62956295    m_focusedFrame = frame;
    … …  
    63046304
    63056305    WebFrameProxy* frame = m_process->webFrame(frameID);
    6306     MESSAGE_CHECK(m_process.get(), frame);
     6306    MESSAGE_CHECK(m_process, frame);
    63076307
    63086308    m_frameSetLargestFrame = frame;
    … …  
    68506850    while (record) {
    68516851        WebFrameProxy* frame = m_process->webFrame(record->frameID);
    6852         MESSAGE_CHECK(m_process.get(), frame);
     6852        MESSAGE_CHECK(m_process, frame);
    68536853
    68546854        auto origin = API::SecurityOrigin::create(SecurityOriginData::fromDatabaseIdentifier(record->originIdentifier)->securityOrigin());
    … …  
    68676867{
    68686868    WebFrameProxy* frame = m_process->webFrame(frameID);
    6869     MESSAGE_CHECK(m_process.get(), frame);
     6869    MESSAGE_CHECK(m_process, frame);
    68706870
    68716871    // FIXME: Geolocation should probably be using toString() as its string representation instead of databaseIdentifier().
    … …  
    69066906{
    69076907#if ENABLE(MEDIA_STREAM)
    6908     MESSAGE_CHECK(m_process.get(), m_process->webFrame(frameID));
     6908    MESSAGE_CHECK(m_process, m_process->webFrame(frameID));
    69096909
    69106910    userMediaPermissionRequestManager().requestUserMediaPermissionForFrame(userMediaID, frameID, userMediaDocumentOriginData.securityOrigin(), topLevelDocumentOriginData.securityOrigin(), request);
    … …  
    69226922#if ENABLE(MEDIA_STREAM)
    69236923    WebFrameProxy* frame = m_process->webFrame(frameID);
    6924     MESSAGE_CHECK(m_process.get(), frame);
     6924    MESSAGE_CHECK(m_process, frame);
    69256925
    69266926    userMediaPermissionRequestManager().enumerateMediaDevicesForFrame(userMediaID, frameID, userMediaDocumentOriginData.securityOrigin(), topLevelDocumentOriginData.securityOrigin());
    … …  
    81398139void WebPageProxy::startURLSchemeTask(URLSchemeTaskParameters&& parameters)
    81408140{
    8141     startURLSchemeTaskShared(m_process, WTFMove(parameters));
    8142 }
    8143 
    8144 void WebPageProxy::startURLSchemeTaskShared(WebProcessProxy& process, URLSchemeTaskParameters&& parameters)
     8141    startURLSchemeTaskShared(m_process.copyRef(), WTFMove(parameters));
     8142}
     8143
     8144void WebPageProxy::startURLSchemeTaskShared(Ref<WebProcessProxy>&& process, URLSchemeTaskParameters&& parameters)
    81458145{
    81468146    auto iterator = m_urlSchemeHandlersByIdentifier.find(parameters.handlerIdentifier);
    8147     MESSAGE_CHECK(m_process.get(), iterator != m_urlSchemeHandlersByIdentifier.end());
     8147    MESSAGE_CHECK(process, iterator != m_urlSchemeHandlersByIdentifier.end());
    81488148
    81498149    iterator->value->startTask(*this, process, parameters.taskIdentifier, WTFMove(parameters.request), nullptr);
    … …  
    81538153{
    81548154    auto iterator = m_urlSchemeHandlersByIdentifier.find(handlerIdentifier);
    8155     MESSAGE_CHECK(m_process.get(), iterator != m_urlSchemeHandlersByIdentifier.end());
     8155    MESSAGE_CHECK(m_process, iterator != m_urlSchemeHandlersByIdentifier.end());
    81568156
    81578157    iterator->value->stopTask(*this, taskIdentifier);
    … …  
    81618161{
    81628162    auto iterator = m_urlSchemeHandlersByIdentifier.find(parameters.handlerIdentifier);
    8163     MESSAGE_CHECK(m_process.get(), iterator != m_urlSchemeHandlersByIdentifier.end());
     8163    MESSAGE_CHECK(m_process, iterator != m_urlSchemeHandlersByIdentifier.end());
    81648164
    81658165    iterator->value->startTask(*this, m_process, parameters.taskIdentifier, WTFMove(parameters.request), WTFMove(reply));
  • branches/safari-607-branch/Source/WebKit/UIProcess/WebPageProxy.h

    r240263 r240264  
    14231423
    14241424    // Logic shared between the WebPageProxy and the ProvisionalPageProxy.
    1425     void didStartProvisionalLoadForFrameShared(WebProcessProxy&, uint64_t frameID, uint64_t navigationID, URL&&, URL&& unreachableURL, const UserData&);
    1426     void didFailProvisionalLoadForFrameShared(WebProcessProxy&, uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const String& provisionalURL, const WebCore::ResourceError&, const UserData&);
    1427     void didReceiveServerRedirectForProvisionalLoadForFrameShared(WebProcessProxy&, uint64_t frameID, uint64_t navigationID, WebCore::ResourceRequest&&, const UserData&);
    1428     void didPerformClientRedirectShared(WebProcessProxy&, const String& sourceURLString, const String& destinationURLString, uint64_t frameID);
    1429     void didNavigateWithNavigationDataShared(WebProcessProxy&, const WebNavigationDataStore&, uint64_t frameID);
    1430     void didChangeProvisionalURLForFrameShared(WebProcessProxy&, uint64_t frameID, uint64_t navigationID, URL&&);
    1431     void decidePolicyForNavigationActionAsyncShared(WebProcessProxy&, uint64_t frameID, WebCore::SecurityOriginData&& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&&, FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData&, uint64_t listenerID);
    1432     void decidePolicyForResponseShared(WebProcessProxy&, uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, const UserData&);
    1433     void startURLSchemeTaskShared(WebProcessProxy&, URLSchemeTaskParameters&&);
    1434     void loadDataWithNavigationShared(WebProcessProxy&, API::Navigation&, const IPC::DataReference&, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData, WebCore::ShouldTreatAsContinuingLoad, Optional<WebsitePoliciesData>&& = WTF::nullopt);
    1435     void loadRequestWithNavigationShared(WebProcessProxy&, API::Navigation&, WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy, API::Object* userData, WebCore::ShouldTreatAsContinuingLoad, Optional<WebsitePoliciesData>&& = WTF::nullopt);
    1436     void backForwardGoToItemShared(WebProcessProxy&, const WebCore::BackForwardItemIdentifier&, SandboxExtension::Handle&);
     1425    void didStartProvisionalLoadForFrameShared(Ref<WebProcessProxy>&&, uint64_t frameID, uint64_t navigationID, URL&&, URL&& unreachableURL, const UserData&);
     1426    void didFailProvisionalLoadForFrameShared(Ref<WebProcessProxy>&&, uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const String& provisionalURL, const WebCore::ResourceError&, const UserData&);
     1427    void didReceiveServerRedirectForProvisionalLoadForFrameShared(Ref<WebProcessProxy>&&, uint64_t frameID, uint64_t navigationID, WebCore::ResourceRequest&&, const UserData&);
     1428    void didPerformClientRedirectShared(Ref<WebProcessProxy>&&, const String& sourceURLString, const String& destinationURLString, uint64_t frameID);
     1429    void didNavigateWithNavigationDataShared(Ref<WebProcessProxy>&&, const WebNavigationDataStore&, uint64_t frameID);
     1430    void didChangeProvisionalURLForFrameShared(Ref<WebProcessProxy>&&, uint64_t frameID, uint64_t navigationID, URL&&);
     1431    void decidePolicyForNavigationActionAsyncShared(Ref<WebProcessProxy>&&, uint64_t frameID, WebCore::SecurityOriginData&& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&&, FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData&, uint64_t listenerID);
     1432    void decidePolicyForResponseShared(Ref<WebProcessProxy>&&, uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, const UserData&);
     1433    void startURLSchemeTaskShared(Ref<WebProcessProxy>&&, URLSchemeTaskParameters&&);
     1434    void loadDataWithNavigationShared(Ref<WebProcessProxy>&&, API::Navigation&, const IPC::DataReference&, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData, WebCore::ShouldTreatAsContinuingLoad, Optional<WebsitePoliciesData>&& = WTF::nullopt);
     1435    void loadRequestWithNavigationShared(Ref<WebProcessProxy>&&, API::Navigation&, WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy, API::Object* userData, WebCore::ShouldTreatAsContinuingLoad, Optional<WebsitePoliciesData>&& = WTF::nullopt);
     1436    void backForwardGoToItemShared(Ref<WebProcessProxy>&&, const WebCore::BackForwardItemIdentifier&, SandboxExtension::Handle&);
    14371437
    14381438    // IPC::MessageReceiver
    … …  
    15161516    void didDestroyNavigation(uint64_t navigationID);
    15171517
    1518     void decidePolicyForNavigationAction(WebProcessProxy&, WebFrameProxy&, WebCore::SecurityOriginData&& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&&, FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData&, Ref<PolicyDecisionSender>&&);
     1518    void decidePolicyForNavigationAction(Ref<WebProcessProxy>&&, WebFrameProxy&, WebCore::SecurityOriginData&& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&&, FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData&, Ref<PolicyDecisionSender>&&);
    15191519    void decidePolicyForNavigationActionAsync(uint64_t frameID, WebCore::SecurityOriginData&& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&&, FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData&, uint64_t listenerID);
    15201520    void decidePolicyForNavigationActionSync(uint64_t frameID, bool isMainFrame, WebCore::SecurityOriginData&& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&&, FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, const UserData&, Messages::WebPageProxy::DecidePolicyForNavigationActionSync::DelayedReply&&);
Note: See TracChangeset for help on using the changeset viewer.