[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

mitz at apple.com mitz at apple.com
Wed Dec 22 15:13:10 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit b955a90e5e0a1749d81ec5ec70d8ef50b4893ee4
Author: mitz at apple.com <mitz at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 29 02:35:46 2010 +0000

    <rdar://problem/8597430> Crash triggered by incremental layout of block truncated by line-clamp
    https://bugs.webkit.org/show_bug.cgi?id=48602
    
    Reviewed by Simon Fraser.
    
    WebCore:
    
    Test: fast/flexbox/line-clamp-crash.html
    
    * rendering/RenderFlexibleBox.cpp:
    (WebCore::RenderFlexibleBox::applyLineClamp): Even if the child needs layout, call clearTruncation(),
    since layout itself may be partial and not touch the truncated line (but touch its markup box).
    
    LayoutTests:
    
    * fast/flexbox/line-clamp-crash-expected.txt: Added.
    * fast/flexbox/line-clamp-crash.html: Added.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@70834 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 1560bb5..3beeed0 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,13 @@
+2010-10-28  Dan Bernstein  <mitz at apple.com>
+
+        Reviewed by Simon Fraser.
+
+        <rdar://problem/8597430> Crash triggered by incremental layout of block truncated by line-clamp
+        https://bugs.webkit.org/show_bug.cgi?id=48602
+
+        * fast/flexbox/line-clamp-crash-expected.txt: Added.
+        * fast/flexbox/line-clamp-crash.html: Added.
+
 2010-10-28  Dmitry Titov  <dimich at chromium.org>
 
         [Chromium] Uneviewed, test_expectations fix.
diff --git a/LayoutTests/fast/flexbox/line-clamp-crash-expected.txt b/LayoutTests/fast/flexbox/line-clamp-crash-expected.txt
new file mode 100644
index 0000000..3c000f5
--- /dev/null
+++ b/LayoutTests/fast/flexbox/line-clamp-crash-expected.txt
@@ -0,0 +1,18 @@
+Test that an incremental layout of a block with line-clamp truncation does not trigger a crash.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+X
diff --git a/LayoutTests/fast/flexbox/line-clamp-crash.html b/LayoutTests/fast/flexbox/line-clamp-crash.html
new file mode 100644
index 0000000..8746f13
--- /dev/null
+++ b/LayoutTests/fast/flexbox/line-clamp-crash.html
@@ -0,0 +1,38 @@
+<p>
+    Test that an incremental layout of a block with line-clamp truncation does not trigger a crash.
+</p>
+<div style="-webkit-box-orient: vertical; -webkit-line-clamp: 5; display: -webkit-box;">
+    <div>
+        <br>
+        <br>
+        <br>
+        <br>
+        <br>
+        <br>
+        <br>
+        <br>
+        <br>
+        <br>
+        <br>
+        <br>
+        <br>
+        <br>
+        <br>
+        <span id="target">Running </span>
+        <a href="#">X</a>
+    </div>
+</div>
+<script>
+    function test()
+    {
+        var placeholder = document.getElementById("target");
+        placeholder.parentNode.removeChild(placeholder);
+    }
+
+    if (window.layoutTestController)
+        layoutTestController.dumpAsText();
+
+    document.body.offsetTop;
+    test();
+    document.body.offsetTop;
+</script>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index bfd4c2c..1e33eb5 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,16 @@
+2010-10-28  Dan Bernstein  <mitz at apple.com>
+
+        Reviewed by Simon Fraser.
+
+        <rdar://problem/8597430> Crash triggered by incremental layout of block truncated by line-clamp
+        https://bugs.webkit.org/show_bug.cgi?id=48602
+
+        Test: fast/flexbox/line-clamp-crash.html
+
+        * rendering/RenderFlexibleBox.cpp:
+        (WebCore::RenderFlexibleBox::applyLineClamp): Even if the child needs layout, call clearTruncation(),
+        since layout itself may be partial and not touch the truncated line (but touch its markup box).
+
 2010-10-28  Jian Li  <jianli at chromium.org>
 
         Reviewed by Dmitry Titov.
diff --git a/WebCore/rendering/RenderFlexibleBox.cpp b/WebCore/rendering/RenderFlexibleBox.cpp
index da4a6fa..63bada6 100644
--- a/WebCore/rendering/RenderFlexibleBox.cpp
+++ b/WebCore/rendering/RenderFlexibleBox.cpp
@@ -918,7 +918,7 @@ void RenderFlexibleBox::applyLineClamp(FlexBoxIterator& iterator, bool relayoutC
             continue;
 
         if (relayoutChildren || (child->isReplaced() && (child->style()->width().isPercent() || child->style()->height().isPercent()))
-            || (child->style()->height().isAuto() && child->isBlockFlow() && !child->needsLayout())) {
+            || (child->style()->height().isAuto() && child->isBlockFlow())) {
             child->setChildNeedsLayout(true, false);
 
             // Dirty all the positioned objects.

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list