Title: [233341] trunk/Source/WebCore
Revision
233341
Author
[email protected]
Date
2018-06-28 16:57:57 -0700 (Thu, 28 Jun 2018)

Log Message

REGRESSION (233281): fast/dom/location-new-window-no-crash.html and some other tests are timing out
https://bugs.webkit.org/show_bug.cgi?id=187156

Reviewed by Zalan Bujtas.

We need still need to re-enable memory cache client calls even when not doing other post-resolution callbacks.

* style/StyleTreeResolver.cpp:
(WebCore::Style::memoryCacheClientCallsResumeQueue):

Add a separate queue for this.

(WebCore::Style::suspendMemoryCacheClientCalls):
(WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (233340 => 233341)


--- trunk/Source/WebCore/ChangeLog	2018-06-28 23:57:01 UTC (rev 233340)
+++ trunk/Source/WebCore/ChangeLog	2018-06-28 23:57:57 UTC (rev 233341)
@@ -1,3 +1,20 @@
+2018-06-28  Antti Koivisto  <[email protected]>
+
+        REGRESSION (233281): fast/dom/location-new-window-no-crash.html and some other tests are timing out
+        https://bugs.webkit.org/show_bug.cgi?id=187156
+
+        Reviewed by Zalan Bujtas.
+
+        We need still need to re-enable memory cache client calls even when not doing other post-resolution callbacks.
+
+        * style/StyleTreeResolver.cpp:
+        (WebCore::Style::memoryCacheClientCallsResumeQueue):
+
+        Add a separate queue for this.
+
+        (WebCore::Style::suspendMemoryCacheClientCalls):
+        (WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler):
+
 2018-06-28  Wenson Hsieh  <[email protected]>
 
         [iOS] DataTransfer.getData always returns the empty string when dropping text

Modified: trunk/Source/WebCore/style/StyleTreeResolver.cpp (233340 => 233341)


--- trunk/Source/WebCore/style/StyleTreeResolver.cpp	2018-06-28 23:57:01 UTC (rev 233340)
+++ trunk/Source/WebCore/style/StyleTreeResolver.cpp	2018-06-28 23:57:57 UTC (rev 233341)
@@ -579,6 +579,12 @@
     return vector;
 }
 
+static Vector<RefPtr<Frame>>& memoryCacheClientCallsResumeQueue()
+{
+    static NeverDestroyed<Vector<RefPtr<Frame>>> vector;
+    return vector;
+}
+
 void queuePostResolutionCallback(Function<void ()>&& callback)
 {
     postResolutionCallbackQueue().append(WTFMove(callback));
@@ -592,10 +598,7 @@
 
     page->setMemoryCacheClientCallsEnabled(false);
 
-    postResolutionCallbackQueue().append([protectedMainFrame = makeRef(page->mainFrame())] {
-        if (Page* page = protectedMainFrame->page())
-            page->setMemoryCacheClientCallsEnabled(true);
-    });
+    memoryCacheClientCallsResumeQueue().append(&page->mainFrame());
 }
 
 static unsigned resolutionNestingDepth;
@@ -622,6 +625,14 @@
                 queue[i]();
             queue.clear();
         }
+
+        auto& queue = memoryCacheClientCallsResumeQueue();
+        for (size_t i = 0; i < queue.size(); ++i) {
+            if (auto* page = queue[i]->page())
+                page->setMemoryCacheClientCallsEnabled(true);
+        }
+        queue.clear();
+
         platformStrategies()->loaderStrategy()->resumePendingRequests();
     }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to