Diff
Modified: branches/safari-534.54-branch/LayoutTests/ChangeLog (103446 => 103447)
--- branches/safari-534.54-branch/LayoutTests/ChangeLog 2011-12-21 22:12:15 UTC (rev 103446)
+++ branches/safari-534.54-branch/LayoutTests/ChangeLog 2011-12-21 22:21:12 UTC (rev 103447)
@@ -1,5 +1,23 @@
2011-12-21 Lucas Forschler <[email protected]>
+ Merge 94857
+
+ 2011-09-08 Abhishek Arya <[email protected]>
+
+ :before content rendering issues with list markers and run-ins.
+ https://bugs.webkit.org/show_bug.cgi?id=67735
+
+ Reviewed by Dave Hyatt.
+
+ * fast/lists/list-marker-before-content-table-expected.png: Added.
+ * fast/lists/list-marker-before-content-table-expected.txt: Added.
+ * fast/lists/list-marker-before-content-table.html: Added.
+ * fast/runin/runin-generated-before-content-expected.png: Added.
+ * fast/runin/runin-generated-before-content-expected.txt: Added.
+ * fast/runin/runin-generated-before-content.html: Added.
+
+2011-12-21 Lucas Forschler <[email protected]>
+
Merge 94582
2011-09-06 Abhishek Arya <[email protected]>
Copied: branches/safari-534.54-branch/LayoutTests/fast/lists/list-marker-before-content-table-expected.png (from rev 94857, trunk/LayoutTests/fast/lists/list-marker-before-content-table-expected.png)
(Binary files differ)
Copied: branches/safari-534.54-branch/LayoutTests/fast/lists/list-marker-before-content-table-expected.txt (from rev 94857, trunk/LayoutTests/fast/lists/list-marker-before-content-table-expected.txt) (0 => 103447)
--- branches/safari-534.54-branch/LayoutTests/fast/lists/list-marker-before-content-table-expected.txt (rev 0)
+++ branches/safari-534.54-branch/LayoutTests/fast/lists/list-marker-before-content-table-expected.txt 2011-12-21 22:21:12 UTC (rev 103447)
@@ -0,0 +1,18 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x160
+ RenderBlock {HTML} at (0,0) size 800x160
+ RenderBody {BODY} at (8,32) size 784x96
+ RenderBlock {UL} at (0,0) size 784x96
+ RenderListItem {LI} at (40,0) size 744x96 [color=#008000]
+ RenderBlock (anonymous) at (0,0) size 744x32
+ RenderListMarker at (-25,0) size 11x32: bullet
+ RenderTable at (0,32) size 128x32
+ RenderTableSection (anonymous) at (0,0) size 128x32
+ RenderTableRow (anonymous) at (0,0) size 128x32 [color=#0000FF]
+ RenderTableCell (anonymous) at (0,0) size 128x32 [r=0 c=0 rs=1 cs=1]
+ RenderText at (0,0) size 128x32
+ text run at (0,0) width 128: "ABCD"
+ RenderBlock (anonymous) at (0,64) size 744x32
+ RenderText {#text} at (0,0) size 128x32
+ text run at (0,0) width 128: "EFGH"
Copied: branches/safari-534.54-branch/LayoutTests/fast/lists/list-marker-before-content-table.html (from rev 94857, trunk/LayoutTests/fast/lists/list-marker-before-content-table.html) (0 => 103447)
--- branches/safari-534.54-branch/LayoutTests/fast/lists/list-marker-before-content-table.html (rev 0)
+++ branches/safari-534.54-branch/LayoutTests/fast/lists/list-marker-before-content-table.html 2011-12-21 22:21:12 UTC (rev 103447)
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<!-- You should only one blue textbox between the green list maker and green textbox -->
+<html>
+<body style="font: 1em/1 Ahem, sans-serif;">
+<style>
+li:before {
+ display: table-row;
+ content: "ABCD";
+ color: blue;
+}
+</style>
+<ul>
+<li style="color: green">EFGH</li>
+</ul>
+<script>
+ document.body.offsetTop;
+ document.body.style.fontSize = "200%";
+</script>
+</body>
+</html>
Copied: branches/safari-534.54-branch/LayoutTests/fast/runin/runin-generated-before-content-expected.png (from rev 94857, trunk/LayoutTests/fast/runin/runin-generated-before-content-expected.png)
(Binary files differ)
Copied: branches/safari-534.54-branch/LayoutTests/fast/runin/runin-generated-before-content-expected.txt (from rev 94857, trunk/LayoutTests/fast/runin/runin-generated-before-content-expected.txt) (0 => 103447)
--- branches/safari-534.54-branch/LayoutTests/fast/runin/runin-generated-before-content-expected.txt (rev 0)
+++ branches/safari-534.54-branch/LayoutTests/fast/runin/runin-generated-before-content-expected.txt 2011-12-21 22:21:12 UTC (rev 103447)
@@ -0,0 +1,14 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x48
+ RenderBlock {HTML} at (0,0) size 800x48
+ RenderBody {BODY} at (8,8) size 784x32
+ RenderBlock {DIV} at (0,0) size 784x32 [color=#008000]
+ RenderInline (run-in) {DIV} at (0,0) size 128x32 [color=#FFA500]
+ RenderText {#text} at (0,0) size 128x32
+ text run at (0,0) width 128: "ABCD"
+ RenderInline (generated) at (0,0) size 128x32 [color=#0000FF]
+ RenderText at (128,0) size 128x32
+ text run at (128,0) width 128: "EFGH"
+ RenderText {#text} at (256,0) size 128x32
+ text run at (256,0) width 128: "IJKL"
Copied: branches/safari-534.54-branch/LayoutTests/fast/runin/runin-generated-before-content.html (from rev 94857, trunk/LayoutTests/fast/runin/runin-generated-before-content.html) (0 => 103447)
--- branches/safari-534.54-branch/LayoutTests/fast/runin/runin-generated-before-content.html (rev 0)
+++ branches/safari-534.54-branch/LayoutTests/fast/runin/runin-generated-before-content.html 2011-12-21 22:21:12 UTC (rev 103447)
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<!-- You should see only one blue textbox between the orange and green textbox. -->
+<html>
+<body style="font: 1em/1 Ahem, sans-serif;">
+<style>
+#test::before {
+ content: "EFGH";
+ color: blue;
+}
+</style>
+<div style="display: run-in; color: orange">ABCD</div><div id="test" style="color: green">IJKL</div>
+<script>
+ document.body.offsetTop;
+ document.body.style.fontSize = "200%";
+</script>
+</body>
+</html>
Modified: branches/safari-534.54-branch/Source/WebCore/ChangeLog (103446 => 103447)
--- branches/safari-534.54-branch/Source/WebCore/ChangeLog 2011-12-21 22:12:15 UTC (rev 103446)
+++ branches/safari-534.54-branch/Source/WebCore/ChangeLog 2011-12-21 22:21:12 UTC (rev 103447)
@@ -1,5 +1,31 @@
2011-12-21 Lucas Forschler <[email protected]>
+ Merge 94857
+
+ 2011-09-08 Abhishek Arya <[email protected]>
+
+ :before content rendering issues with list markers and run-ins.
+ https://bugs.webkit.org/show_bug.cgi?id=67735
+
+ 1) Remove the isAnonymous checks for run-in detection since the
+ run-in can belong to a node.
+ 2) When the parent has block children, then the list marker will
+ be enclosed in an anonymous block. In that case, for going to the
+ next list marker, we need to traverse one level up. We don't need
+ this check when searching for generated run-in (loop 2), since we
+ know parent will have inline children, so the list marker wont be
+ enclosed in an anonymous block.
+
+ Reviewed by Dave Hyatt.
+
+ Tests: fast/lists/list-marker-before-content-table.html
+ fast/runin/runin-generated-before-content.html
+
+ * rendering/RenderObjectChildList.cpp:
+ (WebCore::RenderObjectChildList::beforePseudoElementRenderer):
+
+2011-12-21 Lucas Forschler <[email protected]>
+
Merge 94582
2011-09-06 Abhishek Arya <[email protected]>
Modified: branches/safari-534.54-branch/Source/WebCore/rendering/RenderObjectChildList.cpp (103446 => 103447)
--- branches/safari-534.54-branch/Source/WebCore/rendering/RenderObjectChildList.cpp 2011-12-21 22:12:15 UTC (rev 103446)
+++ branches/safari-534.54-branch/Source/WebCore/rendering/RenderObjectChildList.cpp 2011-12-21 22:21:12 UTC (rev 103447)
@@ -271,8 +271,13 @@
do {
// Skip list markers and generated run-ins
first = first->firstChild();
- while (first && (first->isListMarker() || (first->isRenderInline() && first->isRunIn() && first->isAnonymous())))
+ while (first && first->isListMarker()) {
+ if (first->parent() != owner && first->parent()->isAnonymousBlock())
+ first = first->parent();
first = first->nextSibling();
+ }
+ while (first && first->isRenderInline() && first->isRunIn())
+ first = first->nextSibling();
} while (first && first->isAnonymous() && first->style()->styleType() == NOPSEUDO);
if (!first)
@@ -293,7 +298,7 @@
// We still need to skip any list markers that could exist before the run-in.
while (first && first->isListMarker())
first = first->nextSibling();
- if (first && first->style()->styleType() == BEFORE && first->isRenderInline() && first->isRunIn() && first->isAnonymous())
+ if (first && first->style()->styleType() == BEFORE && first->isRenderInline() && first->isRunIn())
return first;
}
return 0;