Title: [228355] branches/safari-605-branch/Source/WebKit
Revision
228355
Author
jmarc...@apple.com
Date
2018-02-09 21:43:38 -0800 (Fri, 09 Feb 2018)

Log Message

Cherry-pick r228257. rdar://problem/37408882

Modified Paths

Diff

Modified: branches/safari-605-branch/Source/WebKit/ChangeLog (228354 => 228355)


--- branches/safari-605-branch/Source/WebKit/ChangeLog	2018-02-10 05:43:36 UTC (rev 228354)
+++ branches/safari-605-branch/Source/WebKit/ChangeLog	2018-02-10 05:43:38 UTC (rev 228355)
@@ -1,5 +1,23 @@
 2018-02-09  Jason Marcell  <jmarc...@apple.com>
 
+        Cherry-pick r228257. rdar://problem/37408882
+
+    2018-02-07  Antti Koivisto  <an...@apple.com> and Youenn Fablet  <you...@apple.com>
+
+            REGRESSION(r227758): Webpage fails to load due to crash in com.apple.WebKit: WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse + 267
+            https://bugs.webkit.org/show_bug.cgi?id=182532
+            <rdar://problem/36414017>
+
+            Reviewed by Chris Dumez.
+
+            No test case, don't know how to make one. The repro involves multipart HTTP streaming and details are hazy.
+            We were calling a function that was WTFMoved away just a few lines above.
+
+            * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+            (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
+
+2018-02-09  Jason Marcell  <jmarc...@apple.com>
+
         Cherry-pick r228253. rdar://problem/37408874
 
     2018-02-07  Tim Horton  <timothy_hor...@apple.com>

Modified: branches/safari-605-branch/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (228354 => 228355)


--- branches/safari-605-branch/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp	2018-02-10 05:43:36 UTC (rev 228354)
+++ branches/safari-605-branch/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp	2018-02-10 05:43:38 UTC (rev 228355)
@@ -746,18 +746,19 @@
 
     bool canShowMIMEType = webPage->canShowMIMEType(response.mimeType());
 
+    WebCore::Frame* coreFrame = m_frame->coreFrame();
+    auto* policyDocumentLoader = coreFrame ? coreFrame->loader().provisionalDocumentLoader() : nullptr;
+    if (!policyDocumentLoader) {
+        function(PolicyAction::Ignore);
+        return;
+    }
+
+    Ref<WebFrame> protector(*m_frame);
     uint64_t listenerID = m_frame->setUpPolicyListener(WTFMove(function), WebFrame::ForNavigationAction::No);
     bool receivedPolicyAction;
     PolicyAction policyAction;
     DownloadID downloadID;
 
-    Ref<WebFrame> protect(*m_frame);
-    WebCore::Frame* coreFrame = m_frame->coreFrame();
-    if (!coreFrame)
-        return function(PolicyAction::Ignore);
-    auto* policyDocumentLoader = coreFrame->loader().provisionalDocumentLoader();
-    if (!policyDocumentLoader)
-        return function(PolicyAction::Ignore);
     auto navigationID = static_cast<WebDocumentLoader&>(*policyDocumentLoader).navigationID();
     if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForResponseSync(m_frame->frameID(), SecurityOriginData::fromFrame(coreFrame), navigationID, response, request, canShowMIMEType, listenerID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())), Messages::WebPageProxy::DecidePolicyForResponseSync::Reply(receivedPolicyAction, policyAction, downloadID), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend)) {
         m_frame->didReceivePolicyDecision(listenerID, PolicyAction::Ignore, 0, { }, { });
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to