Title: [280231] releases/WebKitGTK/webkit-2.32/Source/WebCore
Revision
280231
Author
[email protected]
Date
2021-07-23 01:48:29 -0700 (Fri, 23 Jul 2021)

Log Message

Merge r278166 - Pass frame ref during navigationPolicyCompletionHandler
https://bugs.webkit.org/show_bug.cgi?id=226268
<rdar://problem/78512383>

Reviewed by Ryosuke Niwa.

Pass the active frame to the navigationPolicyCompletionHandler lambda as a Ref to
ensure it is kept alive during the policy check and subsequent steps.

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog (280230 => 280231)


--- releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog	2021-07-23 08:47:06 UTC (rev 280230)
+++ releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog	2021-07-23 08:48:29 UTC (rev 280231)
@@ -1,3 +1,17 @@
+2021-05-27  Brent Fulgham  <[email protected]>
+
+        Pass frame ref during navigationPolicyCompletionHandler
+        https://bugs.webkit.org/show_bug.cgi?id=226268
+        <rdar://problem/78512383>
+
+        Reviewed by Ryosuke Niwa.
+
+        Pass the active frame to the navigationPolicyCompletionHandler lambda as a Ref to
+        ensure it is kept alive during the policy check and subsequent steps.
+
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::willSendRequest):
+
 2021-04-26  Said Abou-Hallawa  <[email protected]>
 
         Remove redundant frameDetached() from the SVGImage destructor

Modified: releases/WebKitGTK/webkit-2.32/Source/WebCore/loader/DocumentLoader.cpp (280230 => 280231)


--- releases/WebKitGTK/webkit-2.32/Source/WebCore/loader/DocumentLoader.cpp	2021-07-23 08:47:06 UTC (rev 280230)
+++ releases/WebKitGTK/webkit-2.32/Source/WebCore/loader/DocumentLoader.cpp	2021-07-23 08:48:29 UTC (rev 280231)
@@ -695,7 +695,7 @@
     if (!didReceiveRedirectResponse)
         return completionHandler(WTFMove(newRequest));
 
-    auto navigationPolicyCompletionHandler = [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)] (ResourceRequest&& request, WeakPtr<FormState>&&, NavigationPolicyDecision navigationPolicyDecision) mutable {
+    auto navigationPolicyCompletionHandler = [this, protectedThis = makeRef(*this), protectedFrame = makeRef(*m_frame), completionHandler = WTFMove(completionHandler)] (ResourceRequest&& request, WeakPtr<FormState>&&, NavigationPolicyDecision navigationPolicyDecision) mutable {
         m_waitingForNavigationPolicy = false;
         switch (navigationPolicyDecision) {
         case NavigationPolicyDecision::IgnoreLoad:
@@ -1122,6 +1122,9 @@
 
 ResourceError DocumentLoader::interruptedForPolicyChangeError() const
 {
+    if (!frameLoader())
+        return {};
+
     return frameLoader()->client().interruptedForPolicyChangeError(request());
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to