Title: [168580] trunk
Revision
168580
Author
[email protected]
Date
2014-05-10 12:50:34 -0700 (Sat, 10 May 2014)

Log Message

REGRESSION (r166853): fast/preloader/document-write.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=130942

Reviewed by Anders Carlsson.

Source/WebCore:
* style/StyleResolveTree.cpp:
(WebCore::Style::suspendMemoryCacheClientCalls): Use a RefPtr to the main
frame as a weak pointer to a Page that will work unless the page is destroyed.
The old code tried to do it with a RefPtr to a document, but as the FIXME
points out, that won't work if the document is disassociated with its frame.

LayoutTests:
* platform/mac/TestExpectations: Turned the test back on.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (168579 => 168580)


--- trunk/LayoutTests/ChangeLog	2014-05-10 19:48:50 UTC (rev 168579)
+++ trunk/LayoutTests/ChangeLog	2014-05-10 19:50:34 UTC (rev 168580)
@@ -1,3 +1,12 @@
+2014-05-10  Darin Adler  <[email protected]>
+
+        REGRESSION (r166853): fast/preloader/document-write.html is very flaky
+        https://bugs.webkit.org/show_bug.cgi?id=130942
+
+        Reviewed by Anders Carlsson.
+
+        * platform/mac/TestExpectations: Turned the test back on.
+
 2014-05-09  Dean Jackson  <[email protected]>
 
         -webkit-filter prevents rendering at retina scale

Modified: trunk/LayoutTests/platform/mac/TestExpectations (168579 => 168580)


--- trunk/LayoutTests/platform/mac/TestExpectations	2014-05-10 19:48:50 UTC (rev 168579)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2014-05-10 19:50:34 UTC (rev 168580)
@@ -1352,8 +1352,6 @@
 
 webkit.org/b/130972 transitions/3d/interrupted-transition.html [ Pass Failure Timeout ]
 
-webkit.org/b/130942 fast/preloader/document-write.html [ Pass Failure ]
-
 webkit.org/b/118153 compositing/repaint/positioned-movement.html [ Pass Failure ]
 
 webkit.org/b/131715 transitions/cancel-transition.html [ Pass Failure ]

Modified: trunk/Source/WebCore/ChangeLog (168579 => 168580)


--- trunk/Source/WebCore/ChangeLog	2014-05-10 19:48:50 UTC (rev 168579)
+++ trunk/Source/WebCore/ChangeLog	2014-05-10 19:50:34 UTC (rev 168580)
@@ -1,3 +1,16 @@
+2014-05-10  Darin Adler  <[email protected]>
+
+        REGRESSION (r166853): fast/preloader/document-write.html is very flaky
+        https://bugs.webkit.org/show_bug.cgi?id=130942
+
+        Reviewed by Anders Carlsson.
+
+        * style/StyleResolveTree.cpp:
+        (WebCore::Style::suspendMemoryCacheClientCalls): Use a RefPtr to the main
+        frame as a weak pointer to a Page that will work unless the page is destroyed.
+        The old code tried to do it with a RefPtr to a document, but as the FIXME
+        points out, that won't work if the document is disassociated with its frame.
+
 2014-05-10  Anders Carlsson  <[email protected]>
 
         Block exceptions when trying to convert attributed strings to RTF and RTFD

Modified: trunk/Source/WebCore/style/StyleResolveTree.cpp (168579 => 168580)


--- trunk/Source/WebCore/style/StyleResolveTree.cpp	2014-05-10 19:48:50 UTC (rev 168579)
+++ trunk/Source/WebCore/style/StyleResolveTree.cpp	2014-05-10 19:50:34 UTC (rev 168580)
@@ -34,6 +34,7 @@
 #include "FlowThreadController.h"
 #include "InsertionPoint.h"
 #include "LoaderStrategy.h"
+#include "MainFrame.h"
 #include "NodeRenderStyle.h"
 #include "NodeRenderingTraversal.h"
 #include "NodeTraversal.h"
@@ -987,11 +988,9 @@
 
     page->setMemoryCacheClientCallsEnabled(false);
 
-    RefPtr<Document> protectedDocument = &document;
-    postResolutionCallbackQueue().append([protectedDocument]{
-        // FIXME: If the document becomes unassociated with the page during style resolution
-        // then this won't work and the memory cache client calls will be permanently disabled.
-        if (Page* page = protectedDocument->page())
+    RefPtr<MainFrame> protectedMainFrame = &page->mainFrame();
+    postResolutionCallbackQueue().append([protectedMainFrame]{
+        if (Page* page = protectedMainFrame->page())
             page->setMemoryCacheClientCallsEnabled(true);
     });
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to