WebCore:
Make :first-child and :first-of-type properly dynamic when the DOM changes. Brings the Acid3 score up
to 66/100.
Reviewed by olliej
Added fast/css/first-child-pseudo-class.html, fast/css/first-of-type-pseudo-class.html, fast/css/empty-body-test.html
* css/CSSGrammar.y:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::checkOneSelector):
* dom/Element.cpp:
(WebCore::Element::recalcStyle):
(WebCore::Element::childrenChanged):
* rendering/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::childrenAffectedByFirstChildRules):
(WebCore::RenderStyle::setChildrenAffectedByFirstChildRules):
(WebCore::RenderStyle::childrenAffectedByLastChildRules):
(WebCore::RenderStyle::setChildrenAffectedByLastChildRules):
(WebCore::RenderStyle::childrenAffectedByPositionalRules):
(WebCore::RenderStyle::setChildrenAffectedByPositionalRules):
(WebCore::RenderStyle::firstChildState):
(WebCore::RenderStyle::setFirstChildState):
(WebCore::RenderStyle::lastChildState):
(WebCore::RenderStyle::setLastChildState):
LayoutTests:
Added tests for dynamic :first-child support (Acid3).
Reviewed by olliej
* fast/css/empty-body-test.html: Added.
* fast/css/first-child-pseudo-class.html: Added.
* fast/css/first-of-type-pseudo-class.html: Added.
* platform/mac/fast/css/empty-body-test-expected.checksum: Added.
* platform/mac/fast/css/empty-body-test-expected.png: Added.
* platform/mac/fast/css/empty-body-test-expected.txt: Added.
* platform/mac/fast/css/first-child-pseudo-class-expected.checksum: Added.
* platform/mac/fast/css/first-child-pseudo-class-expected.png: Added.
* platform/mac/fast/css/first-child-pseudo-class-expected.txt: Added.
* platform/mac/fast/css/first-of-type-pseudo-class-expected.checksum: Added.
* platform/mac/fast/css/first-of-type-pseudo-class-expected.png: Added.
* platform/mac/fast/css/first-of-type-pseudo-class-expected.txt: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29932 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/fast/css/empty-body-test.html b/LayoutTests/fast/css/empty-body-test.html
new file mode 100644
index 0000000..bedc71b
--- /dev/null
+++ b/LayoutTests/fast/css/empty-body-test.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<style type="text/css">
+body:empty { background-color:red; }
+div#appendChild { padding: 1em;}
+</style>
+</head>
+<body>
+<p>There should be no RED on the page</p>
+<div id='appendChild'></div>
+</body>
+</html>