Title: [92945] branches/safari-534.51-branch

Diff

Modified: branches/safari-534.51-branch/LayoutTests/ChangeLog (92944 => 92945)


--- branches/safari-534.51-branch/LayoutTests/ChangeLog	2011-08-12 06:27:36 UTC (rev 92944)
+++ branches/safari-534.51-branch/LayoutTests/ChangeLog	2011-08-12 06:29:47 UTC (rev 92945)
@@ -1,5 +1,20 @@
 2011-08-11  Lucas Forschler  <[email protected]>
 
+    Merged 92692
+
+    2011-08-09  Abhishek Arya  <[email protected]>
+
+            Tests that we do not crash when trying to dirty line boxes on
+            a RenderInline needing full relayout.
+            https://bugs.webkit.org/show_bug.cgi?id=65924
+
+            Reviewed by Dave Hyatt.
+
+            * fast/inline/update-always-create-line-boxes-full-layout-crash-expected.txt: Added.
+            * fast/inline/update-always-create-line-boxes-full-layout-crash.html: Added.
+
+2011-08-11  Lucas Forschler  <[email protected]>
+
     Merged 92389
 
     2011-08-03  Adam Roben  <[email protected]>

Copied: branches/safari-534.51-branch/LayoutTests/fast/inline/update-always-create-line-boxes-full-layout-crash-expected.txt (from rev 92692, trunk/LayoutTests/fast/inline/update-always-create-line-boxes-full-layout-crash-expected.txt) (0 => 92945)


--- branches/safari-534.51-branch/LayoutTests/fast/inline/update-always-create-line-boxes-full-layout-crash-expected.txt	                        (rev 0)
+++ branches/safari-534.51-branch/LayoutTests/fast/inline/update-always-create-line-boxes-full-layout-crash-expected.txt	2011-08-12 06:29:47 UTC (rev 92945)
@@ -0,0 +1,2 @@
+PASS
+

Copied: branches/safari-534.51-branch/LayoutTests/fast/inline/update-always-create-line-boxes-full-layout-crash.html (from rev 92692, trunk/LayoutTests/fast/inline/update-always-create-line-boxes-full-layout-crash.html) (0 => 92945)


--- branches/safari-534.51-branch/LayoutTests/fast/inline/update-always-create-line-boxes-full-layout-crash.html	                        (rev 0)
+++ branches/safari-534.51-branch/LayoutTests/fast/inline/update-always-create-line-boxes-full-layout-crash.html	2011-08-12 06:29:47 UTC (rev 92945)
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML>
+<html>
+<style>
+.table:nth-last-child(even) { line-height: 100%; }
+</style>
+<script>
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+function runTest()
+{
+    var test = document.getElementById('test');
+    test.parentNode.removeChild(test);
+
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+
+setTimeout("runTest()", 0); 
+</script>
+<table class=table>
+<td><rt>PASS</rt></junk></td>
+<table><span id="test"></table>
+</table>
+</html>

Modified: branches/safari-534.51-branch/Source/WebCore/ChangeLog (92944 => 92945)


--- branches/safari-534.51-branch/Source/WebCore/ChangeLog	2011-08-12 06:27:36 UTC (rev 92944)
+++ branches/safari-534.51-branch/Source/WebCore/ChangeLog	2011-08-12 06:29:47 UTC (rev 92945)
@@ -1,5 +1,25 @@
 2011-08-11  Lucas Forschler  <[email protected]>
 
+    Merged 92692
+
+    2011-08-09  Abhishek Arya  <[email protected]>
+
+            Regression(83075): Fix updateAlwaysCreateLineBoxes on information 
+            about full layout which is needed when dirtying lineboxes.
+            https://bugs.webkit.org/show_bug.cgi?id=65924
+
+            Reviewed by Dave Hyatt.
+
+            Test: fast/inline/update-always-create-line-boxes-full-layout-crash.html
+
+            * rendering/RenderBlockLineLayout.cpp:
+            (WebCore::RenderBlock::layoutInlineChildren):
+            * rendering/RenderInline.cpp:
+            (WebCore::RenderInline::updateAlwaysCreateLineBoxes):
+            * rendering/RenderInline.h:
+
+2011-08-11  Lucas Forschler  <[email protected]>
+
     Merged 92389
 
     2011-08-03  Adam Roben  <[email protected]>

Modified: branches/safari-534.51-branch/Source/WebCore/rendering/RenderBlockLineLayout.cpp (92944 => 92945)


--- branches/safari-534.51-branch/Source/WebCore/rendering/RenderBlockLineLayout.cpp	2011-08-12 06:27:36 UTC (rev 92944)
+++ branches/safari-534.51-branch/Source/WebCore/rendering/RenderBlockLineLayout.cpp	2011-08-12 06:29:47 UTC (rev 92945)
@@ -1177,7 +1177,7 @@
                 }
             } else if (o->isText() || (o->isRenderInline() && !endOfInline)) {
                 if (!o->isText())
-                    toRenderInline(o)->updateAlwaysCreateLineBoxes();
+                    toRenderInline(o)->updateAlwaysCreateLineBoxes(layoutState.isFullLayout());
                 if (layoutState.isFullLayout() || o->selfNeedsLayout())
                     dirtyLineBoxesForRenderer(o, layoutState.isFullLayout());
                 o->setNeedsLayout(false);

Modified: branches/safari-534.51-branch/Source/WebCore/rendering/RenderInline.cpp (92944 => 92945)


--- branches/safari-534.51-branch/Source/WebCore/rendering/RenderInline.cpp	2011-08-12 06:27:36 UTC (rev 92944)
+++ branches/safari-534.51-branch/Source/WebCore/rendering/RenderInline.cpp	2011-08-12 06:29:47 UTC (rev 92945)
@@ -162,7 +162,7 @@
     }
 }
 
-void RenderInline::updateAlwaysCreateLineBoxes()
+void RenderInline::updateAlwaysCreateLineBoxes(bool fullLayout)
 {
     // Once we have been tainted once, just assume it will happen again. This way effects like hover highlighting that change the
     // background color will only cause a layout on the first rollover.
@@ -189,7 +189,8 @@
     }
 
     if (alwaysCreateLineBoxes) {
-        dirtyLineBoxes(false);
+        if (!fullLayout)
+            dirtyLineBoxes(false);
         m_alwaysCreateLineBoxes = true;
     }
 }

Modified: branches/safari-534.51-branch/Source/WebCore/rendering/RenderInline.h (92944 => 92945)


--- branches/safari-534.51-branch/Source/WebCore/rendering/RenderInline.h	2011-08-12 06:27:36 UTC (rev 92944)
+++ branches/safari-534.51-branch/Source/WebCore/rendering/RenderInline.h	2011-08-12 06:29:47 UTC (rev 92945)
@@ -83,7 +83,7 @@
 
     bool alwaysCreateLineBoxes() const { return m_alwaysCreateLineBoxes; }
     void setAlwaysCreateLineBoxes() { m_alwaysCreateLineBoxes = true; }
-    void updateAlwaysCreateLineBoxes();
+    void updateAlwaysCreateLineBoxes(bool fullLayout);
 
 protected:
     virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to