Title: [147930] trunk
- Revision
- 147930
- Author
- [email protected]
- Date
- 2013-04-08 10:41:06 -0700 (Mon, 08 Apr 2013)
Log Message
Counter still gets incremented when counter-increment is set to none
https://bugs.webkit.org/show_bug.cgi?id=84985
Patch by Yi Shen <[email protected]> on 2013-04-08
Reviewed by Darin Adler.
When the counter-increment is set to none, no counters are incremented.
Source/WebCore:
Tests: New test cases added in fast/css/counters/counter-increment-tests.htm
* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyCounter::applyValue):
LayoutTests:
* fast/css/counters/counter-increment-tests-expected.txt: Added new test cases.
* fast/css/counters/counter-increment-tests.htm: Added new test cases.
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (147929 => 147930)
--- trunk/LayoutTests/ChangeLog 2013-04-08 17:37:55 UTC (rev 147929)
+++ trunk/LayoutTests/ChangeLog 2013-04-08 17:41:06 UTC (rev 147930)
@@ -1,3 +1,15 @@
+2013-04-08 Yi Shen <[email protected]>
+
+ Counter still gets incremented when counter-increment is set to none
+ https://bugs.webkit.org/show_bug.cgi?id=84985
+
+ Reviewed by Darin Adler.
+
+ When the counter-increment is set to none, no counters are incremented.
+
+ * fast/css/counters/counter-increment-tests-expected.txt: Added new test cases.
+ * fast/css/counters/counter-increment-tests.htm: Added new test cases.
+
2013-04-08 Douglas Stockwell <[email protected]>
Crash in WebCore::ElementRuleCollector::collectMatchingRulesForList
Modified: trunk/LayoutTests/fast/css/counters/counter-increment-tests-expected.txt (147929 => 147930)
--- trunk/LayoutTests/fast/css/counters/counter-increment-tests-expected.txt 2013-04-08 17:37:55 UTC (rev 147929)
+++ trunk/LayoutTests/fast/css/counters/counter-increment-tests-expected.txt 2013-04-08 17:41:06 UTC (rev 147930)
@@ -55,4 +55,11 @@
PASS window.internals.counterValue(document.getElementById('test54')) is '10'
PASS window.internals.counterValue(document.getElementById('test55')) is '1'
PASS window.internals.counterValue(document.getElementById('test56')) is '-2147483648'
-
+PASS window.internals.counterValue(document.getElementById('test57')) is '5'
+PASS window.internals.counterValue(document.getElementById('none57')) is '5'
+PASS window.internals.counterValue(document.getElementById('wrapper58')) is '5'
+PASS window.internals.counterValue(document.getElementById('test58a')) is '5.2'
+PASS window.internals.counterValue(document.getElementById('none58')) is '5.2'
+PASS window.internals.counterValue(document.getElementById('none58a')) is '5.7'
+PASS window.internals.counterValue(document.getElementById('test58b')) is '5.12'
+
Modified: trunk/LayoutTests/fast/css/counters/counter-increment-tests.htm (147929 => 147930)
--- trunk/LayoutTests/fast/css/counters/counter-increment-tests.htm 2013-04-08 17:37:55 UTC (rev 147929)
+++ trunk/LayoutTests/fast/css/counters/counter-increment-tests.htm 2013-04-08 17:41:06 UTC (rev 147930)
@@ -72,6 +72,13 @@
shouldBe("window.internals.counterValue(document.getElementById('test54'))", "'10'");
shouldBe("window.internals.counterValue(document.getElementById('test55'))", "'1'");
shouldBe("window.internals.counterValue(document.getElementById('test56'))", "'-2147483648'");
+ shouldBe("window.internals.counterValue(document.getElementById('test57'))", "'5'");
+ shouldBe("window.internals.counterValue(document.getElementById('none57'))", "'5'");
+ shouldBe("window.internals.counterValue(document.getElementById('wrapper58'))", "'5'");
+ shouldBe("window.internals.counterValue(document.getElementById('test58a'))", "'5.2'");
+ shouldBe("window.internals.counterValue(document.getElementById('none58'))", "'5.2'");
+ shouldBe("window.internals.counterValue(document.getElementById('none58a'))", "'5.7'");
+ shouldBe("window.internals.counterValue(document.getElementById('test58b'))", "'5.12'");
if (window.testRunner)
testRunner.notifyDone();
}
@@ -537,7 +544,62 @@
{
content: counter(ident56);
}
-
+ div.class57
+ {
+ counter-increment: ident57 5;
+ }
+ #test57:before
+ {
+ content: counter(ident57);
+ }
+ #none57
+ {
+ counter-increment: none;
+ }
+ #none57:before
+ {
+ content: counter(ident57);
+ }
+ div.class58
+ {
+ counter-increment: ident58 5;
+ }
+ #wrapper58:before
+ {
+ content: counter(ident58);
+ }
+ #test58a
+ {
+ counter-reset: ident58 2;
+ }
+ #test58a:before
+ {
+ content: counters(ident58, ".");
+ }
+ #none58
+ {
+ counter-increment: none;
+ }
+ #none58:before
+ {
+ content: counters(ident58, ".");
+ }
+ #none58a
+ {
+ counter-increment: ident58 5;
+ }
+ #none58a:before
+ {
+ content: counters(ident58, ".");
+ }
+ #test58b
+ {
+ counter-increment: ident58 5;
+ }
+ #test58b:before
+ {
+ content: counters(ident58, ".");
+ }
</style>
</head>
<body _onload_="setTimeout('run()', 0);">
@@ -599,5 +661,14 @@
</div>
<div id="test55"></div>
<div id="test56"></div>
+ <div id="test57" class="class57"></div>
+ <div id="none57" class="class57"></div>
+ <div id="wrapper58" class="class58">
+ <span id="test58a"></span>
+ <span id="none58">
+ <span id="none58a"></span>
+ </span>
+ <span id="test58b"></span>
+ </div>
</body>
</html>
\ No newline at end of file
Modified: trunk/Source/WebCore/ChangeLog (147929 => 147930)
--- trunk/Source/WebCore/ChangeLog 2013-04-08 17:37:55 UTC (rev 147929)
+++ trunk/Source/WebCore/ChangeLog 2013-04-08 17:41:06 UTC (rev 147930)
@@ -1,3 +1,17 @@
+2013-04-08 Yi Shen <[email protected]>
+
+ Counter still gets incremented when counter-increment is set to none
+ https://bugs.webkit.org/show_bug.cgi?id=84985
+
+ Reviewed by Darin Adler.
+
+ When the counter-increment is set to none, no counters are incremented.
+
+ Tests: New test cases added in fast/css/counters/counter-increment-tests.htm
+
+ * css/StyleBuilder.cpp:
+ (WebCore::ApplyPropertyCounter::applyValue):
+
2013-04-08 Douglas Stockwell <[email protected]>
Crash in WebCore::ElementRuleCollector::collectMatchingRulesForList
Modified: trunk/Source/WebCore/css/StyleBuilder.cpp (147929 => 147930)
--- trunk/Source/WebCore/css/StyleBuilder.cpp 2013-04-08 17:37:55 UTC (rev 147929)
+++ trunk/Source/WebCore/css/StyleBuilder.cpp 2013-04-08 17:41:06 UTC (rev 147930)
@@ -1136,11 +1136,11 @@
}
static void applyValue(CSSPropertyID, StyleResolver* styleResolver, CSSValue* value)
{
- if (!value->isValueList())
+ bool setCounterIncrementToNone = counterBehavior == Increment && value->isPrimitiveValue() && static_cast<CSSPrimitiveValue*>(value)->getIdent() == CSSValueNone;
+
+ if (!value->isValueList() && !setCounterIncrementToNone)
return;
- CSSValueList* list = static_cast<CSSValueList*>(value);
-
CounterDirectiveMap& map = styleResolver->style()->accessCounterDirectives();
typedef CounterDirectiveMap::iterator Iterator;
@@ -1150,7 +1150,11 @@
it->value.clearReset();
else
it->value.clearIncrement();
-
+
+ if (setCounterIncrementToNone)
+ return;
+
+ CSSValueList* list = static_cast<CSSValueList*>(value);
int length = list ? list->length() : 0;
for (int i = 0; i < length; ++i) {
CSSValue* currValue = list->itemWithoutBoundsCheck(i);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes