Title: [137224] trunk/Source/WebCore
Revision
137224
Author
[email protected]
Date
2012-12-10 16:32:01 -0800 (Mon, 10 Dec 2012)

Log Message

https://bugs.webkit.org/show_bug.cgi?id=104602
DidHitRelevantRepaintedObjectsAreaThreshold LayoutMilestone fires too 
early on some pages with iframes

Reviewed by Simon Fraser.

This change makes it so that any RenderObjects inside iframes are not 
considered relevant.
* page/Page.cpp:
(WebCore::Page::addRelevantRepaintedObject):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (137223 => 137224)


--- trunk/Source/WebCore/ChangeLog	2012-12-11 00:21:14 UTC (rev 137223)
+++ trunk/Source/WebCore/ChangeLog	2012-12-11 00:32:01 UTC (rev 137224)
@@ -1,3 +1,16 @@
+2012-12-10  Beth Dakin  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=104602
+        DidHitRelevantRepaintedObjectsAreaThreshold LayoutMilestone fires too 
+        early on some pages with iframes
+
+        Reviewed by Simon Fraser.
+
+        This change makes it so that any RenderObjects inside iframes are not 
+        considered relevant.
+        * page/Page.cpp:
+        (WebCore::Page::addRelevantRepaintedObject):
+
 2012-12-10  David Grogan  <[email protected]>
 
         IndexedDB: Propagate more leveldb errors to script

Modified: trunk/Source/WebCore/page/Page.cpp (137223 => 137224)


--- trunk/Source/WebCore/page/Page.cpp	2012-12-11 00:21:14 UTC (rev 137223)
+++ trunk/Source/WebCore/page/Page.cpp	2012-12-11 00:32:01 UTC (rev 137224)
@@ -1181,11 +1181,17 @@
     if (!isCountingRelevantRepaintedObjects())
         return;
 
+    // Objects inside sub-frames are not considered to be relevant.
+    if (object->document()->frame() != mainFrame())
+        return;
+
+    RenderView* view = object->view();
+    if (!view)
+        return;
+
     // The objects are only relevant if they are being painted within the viewRect().
-    if (RenderView* view = object->view()) {
-        if (!objectPaintRect.intersects(pixelSnappedIntRect(view->viewRect())))
-            return;
-    }
+    if (!objectPaintRect.intersects(pixelSnappedIntRect(view->viewRect())))
+        return;
 
     IntRect snappedPaintRect = pixelSnappedIntRect(objectPaintRect);
 
@@ -1198,10 +1204,6 @@
     }
 
     m_relevantPaintedRegion.unite(snappedPaintRect);
-
-    RenderView* view = object->view();
-    if (!view)
-        return;
     
     float viewArea = view->viewRect().width() * view->viewRect().height();
     float ratioOfViewThatIsPainted = m_relevantPaintedRegion.totalArea() / viewArea;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to