Title: [125433] trunk/Source/WebCore
Revision
125433
Author
[email protected]
Date
2012-08-13 12:24:13 -0700 (Mon, 13 Aug 2012)

Log Message

[Qt] Assertion in RenderObject::offsetFromAncestorContainer
https://bugs.webkit.org/show_bug.cgi?id=93845

Reviewed by Kenneth Rohde Christiansen.

Do not attempt to clip using layers that are not containers of the renderer.

* page/GestureTapHighlighter.cpp:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (125432 => 125433)


--- trunk/Source/WebCore/ChangeLog	2012-08-13 19:09:41 UTC (rev 125432)
+++ trunk/Source/WebCore/ChangeLog	2012-08-13 19:24:13 UTC (rev 125433)
@@ -1,3 +1,14 @@
+2012-08-13  Allan Sandfeld Jensen  <[email protected]>
+
+        [Qt] Assertion in RenderObject::offsetFromAncestorContainer
+        https://bugs.webkit.org/show_bug.cgi?id=93845
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Do not attempt to clip using layers that are not containers of the renderer.
+
+        * page/GestureTapHighlighter.cpp:
+
 2012-08-13  Dominik Röttsches  <[email protected]>
 
         [Cairo] canvas/philip/tests/2d.drawImage.self.2.html test failing on ports using Cairo

Modified: trunk/Source/WebCore/page/GestureTapHighlighter.cpp (125432 => 125433)


--- trunk/Source/WebCore/page/GestureTapHighlighter.cpp	2012-08-13 19:09:41 UTC (rev 125432)
+++ trunk/Source/WebCore/page/GestureTapHighlighter.cpp	2012-08-13 19:24:13 UTC (rev 125433)
@@ -198,10 +198,15 @@
         RenderObject* currentRenderer = o;
 
         // Check ancestor layers for overflow clip and intersect them.
-        while (layer) {
-            RenderObject* layerRenderer = layer->renderer();
+        for (; layer; layer = layer->parent()) {
+            RenderBoxModelObject* layerRenderer = layer->renderer();
 
             if (layerRenderer->hasOverflowClip() && layerRenderer != currentRenderer) {
+                bool containerSkipped = false;
+                // Skip ancestor layers that are not containers for the current renderer.
+                currentRenderer->container(layerRenderer, &containerSkipped);
+                if (containerSkipped)
+                    continue;
                 ringRect.move(currentRenderer->offsetFromAncestorContainer(layerRenderer));
                 currentRenderer = layerRenderer;
 
@@ -211,7 +216,6 @@
                 if (ringRect.isEmpty())
                     break;
             }
-            layer = layer->parent();
         }
 
         if (ringRect.isEmpty()) {
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to