Title: [96427] trunk
Revision
96427
Author
[email protected]
Date
2011-09-30 14:36:57 -0700 (Fri, 30 Sep 2011)

Log Message

<rdar://problem/10208291> first-letter in generated before content with display: table is not updated

Reviewed by Sam Weinig.

Source/WebCore: 

Test: fast/css-generated-content/first-letter-in-nested-before.html

* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::updateBeforeAfterContent): Preserve the style type of anonymous
containers around the generated content when updating their style. This preserves the first-letter-ness
of the inline wrapping the first letter, which allows updateFirstLetter() to identify it later.

LayoutTests: 

* fast/css-generated-content/first-letter-in-nested-before-expected.png: Added.
* fast/css-generated-content/first-letter-in-nested-before-expected.txt: Added.
* fast/css-generated-content/first-letter-in-nested-before.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (96426 => 96427)


--- trunk/LayoutTests/ChangeLog	2011-09-30 21:26:08 UTC (rev 96426)
+++ trunk/LayoutTests/ChangeLog	2011-09-30 21:36:57 UTC (rev 96427)
@@ -1,3 +1,13 @@
+2011-09-30  Dan Bernstein  <[email protected]>
+
+        <rdar://problem/10208291> first-letter in generated before content with display: table is not updated
+
+        Reviewed by Sam Weinig.
+
+        * fast/css-generated-content/first-letter-in-nested-before-expected.png: Added.
+        * fast/css-generated-content/first-letter-in-nested-before-expected.txt: Added.
+        * fast/css-generated-content/first-letter-in-nested-before.html: Added.
+
 2011-09-30  David Hyatt  <[email protected]>
 
         https://bugs.webkit.org/show_bug.cgi?id=69167

Added: trunk/LayoutTests/fast/css-generated-content/first-letter-in-nested-before-expected.png


(Binary files differ)
Property changes on: trunk/LayoutTests/fast/css-generated-content/first-letter-in-nested-before-expected.png ___________________________________________________________________

Added: svn:mime-type

Added: trunk/LayoutTests/fast/css-generated-content/first-letter-in-nested-before-expected.txt (0 => 96427)


--- trunk/LayoutTests/fast/css-generated-content/first-letter-in-nested-before-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/css-generated-content/first-letter-in-nested-before-expected.txt	2011-09-30 21:36:57 UTC (rev 96427)
@@ -0,0 +1,17 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+      RenderBlock {DIV} at (0,0) size 784x100 [color=#FF0000]
+        RenderText {#text} at (0,0) size 100x100
+          text run at (0,0) width 100: "A"
+      RenderBlock {DIV} at (0,0) size 784x100 [color=#008000]
+        RenderTable at (0,0) size 100x100
+          RenderTableSection (anonymous) at (0,0) size 100x100
+            RenderTableRow (anonymous) at (0,0) size 100x100
+              RenderTableCell (anonymous) at (0,0) size 100x100 [r=0 c=0 rs=1 cs=1]
+                RenderInline (generated) at (0,0) size 100x100
+                  RenderText at (0,0) size 100x100
+                    text run at (0,0) width 100: "A"
+                RenderText at (0,0) size 0x0

Added: trunk/LayoutTests/fast/css-generated-content/first-letter-in-nested-before.html (0 => 96427)


--- trunk/LayoutTests/fast/css-generated-content/first-letter-in-nested-before.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-generated-content/first-letter-in-nested-before.html	2011-09-30 21:36:57 UTC (rev 96427)
@@ -0,0 +1,13 @@
+<style>
+    #target { color: green; margin-top: -100px; }
+    #target:before { display: table; content: "A"; }
+    #target:first-letter { font-size: 200%; }
+</style>
+<body style="font-family: ahem; -webkit-font-smoothing: none;">
+    <div style="font-size: 100px; color: red;">A</div>
+    <div id="target"></div>
+    <script>
+        document.body.offsetTop;
+        document.getElementById("target").style.fontSize = "50px";
+    </script>
+</body>

Modified: trunk/Source/WebCore/ChangeLog (96426 => 96427)


--- trunk/Source/WebCore/ChangeLog	2011-09-30 21:26:08 UTC (rev 96426)
+++ trunk/Source/WebCore/ChangeLog	2011-09-30 21:36:57 UTC (rev 96427)
@@ -1,3 +1,16 @@
+2011-09-30  Dan Bernstein  <[email protected]>
+
+        <rdar://problem/10208291> first-letter in generated before content with display: table is not updated
+
+        Reviewed by Sam Weinig.
+
+        Test: fast/css-generated-content/first-letter-in-nested-before.html
+
+        * rendering/RenderObjectChildList.cpp:
+        (WebCore::RenderObjectChildList::updateBeforeAfterContent): Preserve the style type of anonymous
+        containers around the generated content when updating their style. This preserves the first-letter-ness
+        of the inline wrapping the first letter, which allows updateFirstLetter() to identify it later.
+
 2011-09-30  Cary Clark  <[email protected]>
 
         Inset focus ring (Skia on Mac)

Modified: trunk/Source/WebCore/rendering/RenderObjectChildList.cpp (96426 => 96427)


--- trunk/Source/WebCore/rendering/RenderObjectChildList.cpp	2011-09-30 21:26:08 UTC (rev 96426)
+++ trunk/Source/WebCore/rendering/RenderObjectChildList.cpp	2011-09-30 21:36:57 UTC (rev 96427)
@@ -434,6 +434,7 @@
                     RefPtr<RenderStyle> newStyle = RenderStyle::create();
                     newStyle->inheritFrom(pseudoElementStyle);
                     newStyle->setDisplay(curr->style()->display());
+                    newStyle->setStyleType(curr->style()->styleType());
                     curr->setStyle(newStyle);
                     curr = curr->parent();
                 }

Modified: trunk/Source/WebCore/rendering/RenderView.cpp (96426 => 96427)


--- trunk/Source/WebCore/rendering/RenderView.cpp	2011-09-30 21:26:08 UTC (rev 96426)
+++ trunk/Source/WebCore/rendering/RenderView.cpp	2011-09-30 21:36:57 UTC (rev 96427)
@@ -142,6 +142,10 @@
     ASSERT(m_layoutState == &state);
     m_layoutState = 0;
     setNeedsLayout(false);
+#if !ASSERT_DISABLED
+    for (RenderObject* renderer = this; renderer; renderer = renderer->nextInPreOrder())
+        ASSERT(!renderer->needsLayout());
+#endif
 }
 
 void RenderView::mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed, bool useTransforms, TransformState& transformState, bool* wasFixed) const
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to