Title: [93802] trunk
Revision
93802
Author
[email protected]
Date
2011-08-25 11:09:18 -0700 (Thu, 25 Aug 2011)

Log Message

REGRESSION(r90971): Fix an assertion failure with textarea placeholder.
https://bugs.webkit.org/show_bug.cgi?id=66164

Source/WebCore: 

Patch by Kent Tamura <[email protected]> on 2011-08-25
Reviewed by Dave Hyatt.
         
Minor patch nits addressed by [email protected], on Hyatt's
review.

Test: fast/forms/textarea-placeholder-relayout-assertion.html

* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::layoutSpecialExcludedChild):
Pass 'false' to the 'markParents' argument of setChildNeedsLayout().
We don't need to propagate needsLayout for ancestors because
layoutSpecialExcludedChild() is called from layout() of the
parent.

LayoutTests: 

Patch by Kent Tamura <[email protected]> on 2011-08-25
Reviewed by Dave Hyatt.

* fast/forms/textarea-placeholder-relayout-assertion-expected.txt: Added.
* fast/forms/textarea-placeholder-relayout-assertion.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (93801 => 93802)


--- trunk/LayoutTests/ChangeLog	2011-08-25 18:07:02 UTC (rev 93801)
+++ trunk/LayoutTests/ChangeLog	2011-08-25 18:09:18 UTC (rev 93802)
@@ -1,3 +1,13 @@
+2011-08-25  Kent Tamura  <[email protected]>
+
+        REGRESSION(r90971): Fix an assertion failure with textarea placeholder.
+        https://bugs.webkit.org/show_bug.cgi?id=66164
+
+        Reviewed by Dave Hyatt.
+
+        * fast/forms/textarea-placeholder-relayout-assertion-expected.txt: Added.
+        * fast/forms/textarea-placeholder-relayout-assertion.html: Added.
+
 2011-08-25  Csaba Osztrogonác  <[email protected]>
 
         [Qt] Unreviewed gardening.

Added: trunk/LayoutTests/fast/forms/textarea-placeholder-relayout-assertion-expected.txt (0 => 93802)


--- trunk/LayoutTests/fast/forms/textarea-placeholder-relayout-assertion-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/textarea-placeholder-relayout-assertion-expected.txt	2011-08-25 18:09:18 UTC (rev 93802)
@@ -0,0 +1,4 @@
+PASS if not crashed.
+
+>
+000000AA00A000A0A0A00A0000A0A00AAAAAA00AAAAAAA0A0AA00A00A000A0AA000AA0

Added: trunk/LayoutTests/fast/forms/textarea-placeholder-relayout-assertion.html (0 => 93802)


--- trunk/LayoutTests/fast/forms/textarea-placeholder-relayout-assertion.html	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/textarea-placeholder-relayout-assertion.html	2011-08-25 18:09:18 UTC (rev 93802)
@@ -0,0 +1,19 @@
+<script>
+if (window.layoutTestController) {
+    layoutTestController.waitUntilDone();
+    layoutTestController.dumpAsText();
+}
+
+function removeTextArea() {
+    var child = document.getElementById('test');
+    child.parentNode.removeChild(child);
+    if (window.layoutTestController) {
+        setTimeout("layoutTestController.notifyDone();", 0);
+    }
+}
+
+setTimeout(removeTextArea, 0);
+</script>
+<p>PASS if not crashed.</p>
+><fieldset><fieldset><button><fieldset><fieldset><select>A00000AA0A000<textarea></textarea>
+<figure><fieldset>000000AA00A000A0A0A00A0000A0A00AAAAAA00AAAAAAA0A0AA00A00A000A0AA000AA0<textarea id="test" placeholder="default disabled">A0AA000AAA0AA00AAAA0<track><center></center>

Modified: trunk/Source/WebCore/ChangeLog (93801 => 93802)


--- trunk/Source/WebCore/ChangeLog	2011-08-25 18:07:02 UTC (rev 93801)
+++ trunk/Source/WebCore/ChangeLog	2011-08-25 18:09:18 UTC (rev 93802)
@@ -1,3 +1,22 @@
+2011-08-25  Kent Tamura  <[email protected]>
+
+        REGRESSION(r90971): Fix an assertion failure with textarea placeholder.
+        https://bugs.webkit.org/show_bug.cgi?id=66164
+
+        Reviewed by Dave Hyatt.
+         
+        Minor patch nits addressed by [email protected], on Hyatt's
+        review.
+
+        Test: fast/forms/textarea-placeholder-relayout-assertion.html
+
+        * rendering/RenderTextControl.cpp:
+        (WebCore::RenderTextControl::layoutSpecialExcludedChild):
+        Pass 'false' to the 'markParents' argument of setChildNeedsLayout().
+        We don't need to propagate needsLayout for ancestors because
+        layoutSpecialExcludedChild() is called from layout() of the
+        parent.
+
 2011-08-25  Igor Oliveira  <[email protected]>
 
         Text-overflow is broken for button elements

Modified: trunk/Source/WebCore/rendering/RenderTextControl.cpp (93801 => 93802)


--- trunk/Source/WebCore/rendering/RenderTextControl.cpp	2011-08-25 18:07:02 UTC (rev 93801)
+++ trunk/Source/WebCore/rendering/RenderTextControl.cpp	2011-08-25 18:09:18 UTC (rev 93802)
@@ -431,8 +431,12 @@
     RenderObject* placeholderRenderer = placeholder ? placeholder->renderer() : 0;
     if (!placeholderRenderer)
         return 0;
-    if (relayoutChildren)
-        placeholderRenderer->setNeedsLayout(true);
+    if (relayoutChildren) {
+        // The markParents arguments should be false because this function is
+        // called from layout() of the parent and the placeholder layout doesn't
+        // affect the parent layout.
+        placeholderRenderer->setChildNeedsLayout(true, false);
+    }
     return placeholderRenderer;
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to