Title: [257442] releases/WebKitGTK/webkit-2.28
Revision
257442
Author
[email protected]
Date
2020-02-26 02:56:56 -0800 (Wed, 26 Feb 2020)

Log Message

Merge r257077 - REGRESSION (r255677): Reloading tab with beforeunload prompt closes tab when asking to stay on page
https://bugs.webkit.org/show_bug.cgi?id=208015
<rdar://problem/59591630>

Reviewed by Geoffrey Garen.

Source/WebKit:

Make sure we only restart the tryClose timer after the beforeunload prompt if the timer was actually
active before the prompt (i.e. tryClose was actually called). On Reload, tryClose is not called
but beforeunload prompt may still happen.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):

Tools:

Add API test coverage.

* TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm:
(TEST):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.28/Source/WebKit/ChangeLog (257441 => 257442)


--- releases/WebKitGTK/webkit-2.28/Source/WebKit/ChangeLog	2020-02-26 10:56:52 UTC (rev 257441)
+++ releases/WebKitGTK/webkit-2.28/Source/WebKit/ChangeLog	2020-02-26 10:56:56 UTC (rev 257442)
@@ -1,3 +1,18 @@
+2020-02-20  Chris Dumez  <[email protected]>
+
+        REGRESSION (r255677): Reloading tab with beforeunload prompt closes tab when asking to stay on page
+        https://bugs.webkit.org/show_bug.cgi?id=208015
+        <rdar://problem/59591630>
+
+        Reviewed by Geoffrey Garen.
+
+        Make sure we only restart the tryClose timer after the beforeunload prompt if the timer was actually
+        active before the prompt (i.e. tryClose was actually called). On Reload, tryClose is not called
+        but beforeunload prompt may still happen.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
+
 2020-02-19  Brian Burg  <[email protected]>
 
         Web Automation: Automation.setWindowFrameOfBrowsingContext should accept negative x and y-origin values

Modified: releases/WebKitGTK/webkit-2.28/Source/WebKit/UIProcess/WebPageProxy.cpp (257441 => 257442)


--- releases/WebKitGTK/webkit-2.28/Source/WebKit/UIProcess/WebPageProxy.cpp	2020-02-26 10:56:52 UTC (rev 257441)
+++ releases/WebKitGTK/webkit-2.28/Source/WebKit/UIProcess/WebPageProxy.cpp	2020-02-26 10:56:56 UTC (rev 257442)
@@ -5660,10 +5660,11 @@
 
     // Since runBeforeUnloadConfirmPanel() can spin a nested run loop we need to turn off the responsiveness timer and the tryClose timer.
     m_process->stopResponsivenessTimer();
+    bool shouldResumeTimerAfterPrompt = m_tryCloseTimeoutTimer.isActive();
     m_tryCloseTimeoutTimer.stop();
     m_uiClient->runBeforeUnloadConfirmPanel(*this, message, frame, WTFMove(securityOrigin),
-        [this, weakThis = makeWeakPtr(*this), completionHandler = WTFMove(reply)](bool shouldClose) mutable {
-            if (weakThis)
+        [this, weakThis = makeWeakPtr(*this), completionHandler = WTFMove(reply), shouldResumeTimerAfterPrompt](bool shouldClose) mutable {
+            if (weakThis && shouldResumeTimerAfterPrompt)
                 m_tryCloseTimeoutTimer.startOneShot(tryCloseTimeoutDelay);
             completionHandler(shouldClose);
     });

Modified: releases/WebKitGTK/webkit-2.28/Tools/ChangeLog (257441 => 257442)


--- releases/WebKitGTK/webkit-2.28/Tools/ChangeLog	2020-02-26 10:56:52 UTC (rev 257441)
+++ releases/WebKitGTK/webkit-2.28/Tools/ChangeLog	2020-02-26 10:56:56 UTC (rev 257442)
@@ -1,3 +1,16 @@
+2020-02-20  Chris Dumez  <[email protected]>
+
+        REGRESSION (r255677): Reloading tab with beforeunload prompt closes tab when asking to stay on page
+        https://bugs.webkit.org/show_bug.cgi?id=208015
+        <rdar://problem/59591630>
+
+        Reviewed by Geoffrey Garen.
+
+        Add API test coverage.
+
+        * TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm:
+        (TEST):
+
 2020-02-18  Zan Dobersek  <[email protected]>
 
         [WPE] Support 2D axis, smooth-motion events
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to