Title: [96369] branches/chromium/874
Revision
96369
Author
[email protected]
Date
2011-09-29 15:35:28 -0700 (Thu, 29 Sep 2011)

Log Message

Merge 96294 - <rdar://problem/10196497> first-letter after list marker not updated correctly
BUG=98064
Review URL: http://codereview.chromium.org/8085012

Modified Paths

Added Paths

Diff

Copied: branches/chromium/874/LayoutTests/fast/dynamic/first-letter-after-list-marker-expected.png (from rev 96294, trunk/LayoutTests/fast/dynamic/first-letter-after-list-marker-expected.png)


(Binary files differ)

Copied: branches/chromium/874/LayoutTests/fast/dynamic/first-letter-after-list-marker-expected.txt (from rev 96294, trunk/LayoutTests/fast/dynamic/first-letter-after-list-marker-expected.txt) (0 => 96369)


--- branches/chromium/874/LayoutTests/fast/dynamic/first-letter-after-list-marker-expected.txt	                        (rev 0)
+++ branches/chromium/874/LayoutTests/fast/dynamic/first-letter-after-list-marker-expected.txt	2011-09-29 22:35:28 UTC (rev 96369)
@@ -0,0 +1,12 @@
+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 784x492
+      RenderBlock {UL} at (0,0) size 784x100
+        RenderListItem {LI} at (40,0) size 744x100
+          RenderListMarker at (-61,0) size 29x100: bullet
+          RenderInline (generated) at (0,0) size 100x100 [color=#008000]
+            RenderText {#text} at (0,0) size 100x100
+              text run at (0,0) width 100: "a"
+          RenderText {#text} at (0,0) size 0x0

Copied: branches/chromium/874/LayoutTests/fast/dynamic/first-letter-after-list-marker.html (from rev 96294, trunk/LayoutTests/fast/dynamic/first-letter-after-list-marker.html) (0 => 96369)


--- branches/chromium/874/LayoutTests/fast/dynamic/first-letter-after-list-marker.html	                        (rev 0)
+++ branches/chromium/874/LayoutTests/fast/dynamic/first-letter-after-list-marker.html	2011-09-29 22:35:28 UTC (rev 96369)
@@ -0,0 +1,11 @@
+<style>
+    li:first-letter { color: red; }
+    li.green:first-letter { color: green; }
+</style>
+<ul style="font-family: ahem; font-size: 100px; -webkit-font-smoothing: none;">
+    <li id="target">a</li>
+</ul>
+<script>
+    document.body.offsetTop;
+    document.getElementById("target").className = "green";
+</script>

Modified: branches/chromium/874/Source/WebCore/rendering/RenderBlock.cpp (96368 => 96369)


--- branches/chromium/874/Source/WebCore/rendering/RenderBlock.cpp	2011-09-29 22:33:03 UTC (rev 96368)
+++ branches/chromium/874/Source/WebCore/rendering/RenderBlock.cpp	2011-09-29 22:35:28 UTC (rev 96369)
@@ -5458,21 +5458,23 @@
 
     // Drill into inlines looking for our first text child.
     RenderObject* currChild = firstLetterBlock->firstChild();
-    while (currChild && ((!currChild->isReplaced() && !currChild->isRenderButton() && !currChild->isMenuList()) || currChild->isFloatingOrPositioned()) && !currChild->isText()) {
-        if (currChild->isFloatingOrPositioned()) {
+    while (currChild) {
+        if (currChild->isText())
+            break;
+        if (currChild->isListMarker())
+            currChild = currChild->nextSibling();
+        else if (currChild->isFloatingOrPositioned()) {
             if (currChild->style()->styleType() == FIRST_LETTER) {
                 currChild = currChild->firstChild();
                 break;
-            } 
+            }
             currChild = currChild->nextSibling();
-        } else
+        } else if (currChild->isReplaced() || currChild->isRenderButton() || currChild->isMenuList())
+            break;
+        else
             currChild = currChild->firstChild();
     }
 
-    // Get list markers out of the way.
-    while (currChild && currChild->isListMarker())
-        currChild = currChild->nextSibling();
-
     if (!currChild)
         return;
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to