Title: [149648] trunk/Source/WebCore
Revision
149648
Author
[email protected]
Date
2013-05-06 16:21:39 -0700 (Mon, 06 May 2013)

Log Message

Flaky Test: fast/frames/crash-remove-iframe-during-object-beforeload.html
<http://webkit.org/b/115674>

Reviewed by Alexey Proskuryakov.

Don't cache the Document::renderer() in a local since layout may blow it away.

* dom/Document.cpp:
(WebCore::Document::implicitClose):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (149647 => 149648)


--- trunk/Source/WebCore/ChangeLog	2013-05-06 23:06:18 UTC (rev 149647)
+++ trunk/Source/WebCore/ChangeLog	2013-05-06 23:21:39 UTC (rev 149648)
@@ -1,3 +1,15 @@
+2013-05-06  Andreas Kling  <[email protected]>
+
+        Flaky Test: fast/frames/crash-remove-iframe-during-object-beforeload.html
+        <http://webkit.org/b/115674>
+
+        Reviewed by Alexey Proskuryakov.
+
+        Don't cache the Document::renderer() in a local since layout may blow it away.
+
+        * dom/Document.cpp:
+        (WebCore::Document::implicitClose):
+
 2013-05-06  Anders Carlsson  <[email protected]>
 
         More work on LocalStorageDatabaseTracker

Modified: trunk/Source/WebCore/dom/Document.cpp (149647 => 149648)


--- trunk/Source/WebCore/dom/Document.cpp	2013-05-06 23:06:18 UTC (rev 149647)
+++ trunk/Source/WebCore/dom/Document.cpp	2013-05-06 23:21:39 UTC (rev 149648)
@@ -2448,7 +2448,6 @@
     }
 
     frame()->loader()->checkCallImplicitClose();
-    RenderObject* renderObject = renderer();
     
     // We used to force a synchronous display and flush here.  This really isn't
     // necessary and can in fact be actively harmful if pages are loading at a rate of > 60fps
@@ -2458,25 +2457,25 @@
         updateStyleIfNeeded();
         
         // Always do a layout after loading if needed.
-        if (view() && renderObject && (!renderObject->firstChild() || renderObject->needsLayout()))
+        if (view() && renderer() && (!renderer()->firstChild() || renderer()->needsLayout()))
             view()->layout();
     }
 
     m_processingLoadEvent = false;
 
 #if PLATFORM(MAC)
-    if (f && renderObject && AXObjectCache::accessibilityEnabled()) {
+    if (f && renderer() && AXObjectCache::accessibilityEnabled()) {
         // The AX cache may have been cleared at this point, but we need to make sure it contains an
         // AX object to send the notification to. getOrCreate will make sure that an valid AX object
         // exists in the cache (we ignore the return value because we don't need it here). This is 
         // only safe to call when a layout is not in progress, so it can not be used in postNotification.    
-        axObjectCache()->getOrCreate(renderObject);
+        axObjectCache()->getOrCreate(renderer());
         if (this == topDocument())
-            axObjectCache()->postNotification(renderObject, AXObjectCache::AXLoadComplete, true);
+            axObjectCache()->postNotification(renderer(), AXObjectCache::AXLoadComplete, true);
         else {
             // AXLoadComplete can only be posted on the top document, so if it's a document
             // in an iframe that just finished loading, post AXLayoutComplete instead.
-            axObjectCache()->postNotification(renderObject, AXObjectCache::AXLayoutComplete, true);
+            axObjectCache()->postNotification(renderer(), AXObjectCache::AXLayoutComplete, true);
         }
     }
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to