Title: [103065] trunk
Revision
103065
Author
[email protected]
Date
2011-12-16 06:17:11 -0800 (Fri, 16 Dec 2011)

Log Message

Unreviewed, rolling out r103062.
http://trac.webkit.org/changeset/103062
https://bugs.webkit.org/show_bug.cgi?id=74715

It broke many tests (Requested by Ossy on #webkit).

Patch by Sheriff Bot <[email protected]> on 2011-12-16

Source/WebCore:

* html/HTMLAttributeNames.in:
* html/HTMLOListElement.cpp:
(WebCore::HTMLOListElement::HTMLOListElement):
(WebCore::HTMLOListElement::parseMappedAttribute):
* html/HTMLOListElement.h:
(WebCore::HTMLOListElement::start):
* html/HTMLOListElement.idl:
* rendering/RenderListItem.cpp:
(WebCore::previousListItem):
(WebCore::RenderListItem::calcValue):
(WebCore::RenderListItem::explicitValueChanged):
(WebCore::RenderListItem::updateListMarkerNumbers):
* rendering/RenderListItem.h:

LayoutTests:

* fast/lists/ol-reversed-dynamic-expected.txt: Removed.
* fast/lists/ol-reversed-dynamic-simple-expected.txt: Removed.
* fast/lists/ol-reversed-dynamic-simple.html: Removed.
* fast/lists/ol-reversed-dynamic.html: Removed.
* fast/lists/ol-reversed-nested-items-expected.txt: Removed.
* fast/lists/ol-reversed-nested-items.html: Removed.
* fast/lists/ol-reversed-nested-list-expected.txt: Removed.
* fast/lists/ol-reversed-nested-list.html: Removed.
* fast/lists/ol-reversed-simple-expected.txt: Removed.
* fast/lists/ol-reversed-simple.html: Removed.
* fast/lists/ol-reversed-simple.xhtml: Removed.

Modified Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (103064 => 103065)


--- trunk/LayoutTests/ChangeLog	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/LayoutTests/ChangeLog	2011-12-16 14:17:11 UTC (rev 103065)
@@ -1,3 +1,23 @@
+2011-12-16  Sheriff Bot  <[email protected]>
+
+        Unreviewed, rolling out r103062.
+        http://trac.webkit.org/changeset/103062
+        https://bugs.webkit.org/show_bug.cgi?id=74715
+
+        It broke many tests (Requested by Ossy on #webkit).
+
+        * fast/lists/ol-reversed-dynamic-expected.txt: Removed.
+        * fast/lists/ol-reversed-dynamic-simple-expected.txt: Removed.
+        * fast/lists/ol-reversed-dynamic-simple.html: Removed.
+        * fast/lists/ol-reversed-dynamic.html: Removed.
+        * fast/lists/ol-reversed-nested-items-expected.txt: Removed.
+        * fast/lists/ol-reversed-nested-items.html: Removed.
+        * fast/lists/ol-reversed-nested-list-expected.txt: Removed.
+        * fast/lists/ol-reversed-nested-list.html: Removed.
+        * fast/lists/ol-reversed-simple-expected.txt: Removed.
+        * fast/lists/ol-reversed-simple.html: Removed.
+        * fast/lists/ol-reversed-simple.xhtml: Removed.
+
 2011-12-16  Philippe Normand  <[email protected]>
 
         Unreviewed, GTK test_expectations update.

Deleted: trunk/LayoutTests/fast/lists/ol-reversed-dynamic-expected.txt (103064 => 103065)


--- trunk/LayoutTests/fast/lists/ol-reversed-dynamic-expected.txt	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/LayoutTests/fast/lists/ol-reversed-dynamic-expected.txt	2011-12-16 14:17:11 UTC (rev 103065)
@@ -1,40 +0,0 @@
-This tests that changing the value of an item updates markers accordingly.
-
-10 Ten
-9 Nine
-8 Eight
-7 Seven
-6 Six
-
-This tests that resetting the value of an item updates markers accordingly.
-
-5 Five
-4 Four
-3 Three
-2 Two
-1 One
-
-This tests that changing the start value of the list updates markers accordingly.
-
-20 Twenty
-19 Nineteen
-18 Eighteen
-17 Seventeen
-16 Sixteen
-
-This tests that removing the custom start value of the list updates markers accordingly.
-
-5 Five
-4 Four
-3 Three
-2 Two
-1 One
-
-This tests that changing the custom start value from 1 to "" works.
-
-5 Five
-4 Four
-3 Three
-2 Two
-1 One
-

Deleted: trunk/LayoutTests/fast/lists/ol-reversed-dynamic-simple-expected.txt (103064 => 103065)


--- trunk/LayoutTests/fast/lists/ol-reversed-dynamic-simple-expected.txt	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/LayoutTests/fast/lists/ol-reversed-dynamic-simple-expected.txt	2011-12-16 14:17:11 UTC (rev 103065)
@@ -1,34 +0,0 @@
-This tests that changing the "reversed" property updates markers.
-
-5 Five
-4 Four
-3 Three
-2 Two
-1 One
-
-This tests that changing the "reversed" attribute updates markers.
-
-5 Five
-4 Four
-3 Three
-2 Two
-1 One
-
-This tests that adding new items to a reversed list updates markers.
-
-7 Seven
-6 Six
-5 Five
--> 4 Four
-3 Three
-2 Two
-1 One
-
-This tests that removing existing tems from a reversed list updates markers.
-
-5 Five
-4 Four
-3 Three
-2 Two
-1 One
-

Deleted: trunk/LayoutTests/fast/lists/ol-reversed-dynamic-simple.html (103064 => 103065)


--- trunk/LayoutTests/fast/lists/ol-reversed-dynamic-simple.html	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/LayoutTests/fast/lists/ol-reversed-dynamic-simple.html	2011-12-16 14:17:11 UTC (rev 103065)
@@ -1,86 +0,0 @@
-<html>
-    <head>
-        <script src=""
-        <script>
-            function test()
-            {
-                if (window.layoutTestController)
-                    layoutTestController.dumpAsText();
-
-                var list1 = document.getElementById("list1");
-                list1.offsetTop; // Force a relayout.
-                list1.reversed = true;
-                document.getElementById("console1").innerHTML = dumpList(list1);
-
-                var list2 = document.getElementById("list2");
-                list2.setAttribute("reversed", "");
-                document.getElementById("console2").innerHTML = dumpList(list2);
-
-                var list3 = document.getElementById("list3");
-                var li1 = document.createElement("li");
-                li1.innerHTML = "Four";
-                list3.querySelector("p").appendChild(li1);
-                var li2 = document.createElement("li");
-                li2.innerHTML = "One";
-                list3.appendChild(li2);
-                document.getElementById("console3").innerHTML = dumpList(list3);
-
-                var list4 = document.getElementById("list4");
-                var div = list4.querySelector("div");
-                div.removeChild(div.firstElementChild);
-                list4.removeChild(list4.lastElementChild);
-                document.getElementById("console4").innerHTML = dumpList(list4);
-
-                // Don't show the actual lists as they are useless in the text-only mode.
-                list1.parentNode.removeChild(list1);
-                list2.parentNode.removeChild(list2);
-                list3.parentNode.removeChild(list3);
-                list4.parentNode.removeChild(list4);
-            }
-        </script>
-    </head>
-    <body _onload_="test()">
-        <p>This tests that changing the "reversed" property updates markers.</p>
-        <ol id="list1">
-            <li>Five</li>
-            <li>Four</li>
-            <li>Three</li>
-            <li>Two</li>
-            <li>One</li>
-        </ol>
-        <p id="console1"></p>
-
-        <p>This tests that changing the "reversed" attribute updates markers.</p>
-        <ol id="list2">
-            <li>Five</li>
-            <li>Four</li>
-            <li>Three</li>
-            <li>Two</li>
-            <li>One</li>
-        </ol>
-        <p id="console2"></p>
-
-        <p>This tests that adding new items to a reversed list updates markers.</p>
-        <ol id="list3" reversed>
-            <li>Seven</li>
-            <li>Six</li>
-            <li>Five</li>
-            <p></p>
-            <li>Three</li>
-            <li>Two</li>
-        </ol>
-        <p id="console3"></p>
-
-        <p>This tests that removing existing tems from a reversed list updates markers.</p>
-        <ol id="list4" reversed>
-            <li>Five</li>
-            <li>Four</li>
-            <li>Three</li>
-            <div><li>Foo</li></div>
-            <li>Two</li>
-            <li>One</li>
-            <li>Bar</li>
-        </ol>
-        <p id="console4"></p>
-    </body>
-</html>

Deleted: trunk/LayoutTests/fast/lists/ol-reversed-dynamic.html (103064 => 103065)


--- trunk/LayoutTests/fast/lists/ol-reversed-dynamic.html	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/LayoutTests/fast/lists/ol-reversed-dynamic.html	2011-12-16 14:17:11 UTC (rev 103065)
@@ -1,91 +0,0 @@
-<html>
-    <head>
-        <script src=""
-        <script>
-            function test()
-            {
-                if (window.layoutTestController)
-                    layoutTestController.dumpAsText();
-
-                var list1 = document.getElementById("list1");
-                list1.offsetTop; // Force a relayout.
-                list1.firstElementChild.value = 10;
-                document.getElementById("console1").innerHTML = dumpList(list1);
-
-                var list2 = document.getElementById("list2");
-                list2.querySelector("li[value=\"20\"]").removeAttribute("value");
-                document.getElementById("console2").innerHTML = dumpList(list2);
-
-                var list3 = document.getElementById("list3");
-                list3.start = 20;
-                document.getElementById("console3").innerHTML = dumpList(list3);
-
-                var list4 = document.getElementById("list4");
-                list4.removeAttribute("start");
-                document.getElementById("console4").innerHTML = dumpList(list4);
-
-                var list5 = document.getElementById("list5");
-                list5.setAttribute("start","");
-                document.getElementById("console5").innerHTML = dumpList(list5);
-
-                // Don't show the actual lists as they are useless in the text-only mode.
-                list1.parentNode.removeChild(list1);
-                list2.parentNode.removeChild(list2);
-                list3.parentNode.removeChild(list3);
-                list4.parentNode.removeChild(list4);
-                list5.parentNode.removeChild(list5);
-            }
-        </script>
-    </head>
-    <body _onload_="test()">
-        <p>This tests that changing the value of an item updates markers accordingly.</p>
-        <ol id="list1" reversed>
-            <li>Ten</li>
-            <li>Nine</li>
-            <li>Eight</li>
-            <li>Seven</li>
-            <li>Six</li>
-        </ol>
-        <p id="console1"></p>
-
-        <p>This tests that resetting the value of an item updates markers accordingly.</p>
-        <ol id="list2" reversed>
-            <li>Five</li>
-            <li>Four</li>
-            <li value="20">Three</li>
-            <li>Two</li>
-            <li>One</li>
-        </ol>
-        <p id="console2"></p>
-
-        <p>This tests that changing the start value of the list updates markers accordingly.</p>
-        <ol id="list3" reversed start="5">
-            <li>Twenty</li>
-            <li>Nineteen</li>
-            <li>Eighteen</li>
-            <li>Seventeen</li>
-            <li>Sixteen</li>
-        </ol>
-        <p id="console3"></p>
-
-        <p>This tests that removing the custom start value of the list updates markers accordingly.</p>
-        <ol id="list4" reversed start="20">
-            <li>Five</li>
-            <li>Four</li>
-            <li>Three</li>
-            <li>Two</li>
-            <li>One</li>
-        </ol>
-        <p id="console4"></p>
-
-        <p>This tests that changing the custom start value from 1 to "" works.</p>
-        <ol id="list5" reversed start="1">
-            <li>Five</li>
-            <li>Four</li>
-            <li>Three</li>
-            <li>Two</li>
-            <li>One</li>
-        </ol>
-        <p id="console5"></p>
-    </body>
-</html>

Deleted: trunk/LayoutTests/fast/lists/ol-reversed-nested-items-expected.txt (103064 => 103065)


--- trunk/LayoutTests/fast/lists/ol-reversed-nested-items-expected.txt	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/LayoutTests/fast/lists/ol-reversed-nested-items-expected.txt	2011-12-16 14:17:11 UTC (rev 103065)
@@ -1,15 +0,0 @@
-This tests that list items are properly marked when some of the items are indirect children of a reversed list.
-
-12 Twelve
-11 Eleven
-10 Ten
-9 Nine
-8 Eight
--> 7 Seven
-4 Four
-3 Three
--> 2 Two
--> 1 One
-0 Zero
--1 Minus One
-

Deleted: trunk/LayoutTests/fast/lists/ol-reversed-nested-items.html (103064 => 103065)


--- trunk/LayoutTests/fast/lists/ol-reversed-nested-items.html	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/LayoutTests/fast/lists/ol-reversed-nested-items.html	2011-12-16 14:17:11 UTC (rev 103065)
@@ -1,42 +0,0 @@
-<html>
-    <head>
-        <script src=""
-        <script>
-            function test()
-            {
-                if (window.layoutTestController)
-                    layoutTestController.dumpAsText();
-
-                var list = document.getElementById("list");
-                document.getElementById("console").innerHTML = dumpList(list);
-
-                // Don't show the actual list as it is useless in the text-only mode.
-                list.parentNode.removeChild(list);
-            }
-        </script>
-    </head>
-    <body _onload_="test()">
-        <p>This tests that list items are properly marked when some of the items are indirect children of a reversed list.</p>
-        <ol id="list" reversed="reversed">
-            <li>Twelve</li>
-            <li>Eleven</li>
-            <li>Ten</li>
-            <li>Nine
-            <li>Eight</li>
-                <b>
-                    <li>Seven</li>
-                </b>
-            </li>
-            <li value="4">Four</li>
-            <li>Three</li>
-            <div>
-                <li>Two</li>
-                <li>One</li>
-            </div>
-            <li>Zero</li>
-            <li>Minus One</li>
-        </ol>
-
-        <div id="console"></div>
-    </body>
-</html>

Deleted: trunk/LayoutTests/fast/lists/ol-reversed-nested-list-expected.txt (103064 => 103065)


--- trunk/LayoutTests/fast/lists/ol-reversed-nested-list-expected.txt	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/LayoutTests/fast/lists/ol-reversed-nested-list-expected.txt	2011-12-16 14:17:11 UTC (rev 103065)
@@ -1,16 +0,0 @@
-This tests that list items are properly marked when a reversed list contains nested lists.
-
-10 Ten
-9 Nine
-8 Eight
-7 Seven One Two
--> -> ◦ One
--> -> ◦ Two
-6 Six
-5 Five
--> 2 Two
--> 1 One
-4 Four
-3 Three
-2 Two
-

Deleted: trunk/LayoutTests/fast/lists/ol-reversed-nested-list.html (103064 => 103065)


--- trunk/LayoutTests/fast/lists/ol-reversed-nested-list.html	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/LayoutTests/fast/lists/ol-reversed-nested-list.html	2011-12-16 14:17:11 UTC (rev 103065)
@@ -1,43 +0,0 @@
-<html>
-    <head>
-        <script src=""
-        <script>
-            function test()
-            {
-                if (window.layoutTestController)
-                    layoutTestController.dumpAsText();
-
-                var list = document.getElementById("list");
-                document.getElementById("console").innerHTML = dumpList(list);
-
-                // Don't show the actual list as it is useless in the text-only mode.
-                list.parentNode.removeChild(list);
-            }
-        </script>
-    </head>
-    <body _onload_="test()">
-        <p>This tests that list items are properly marked when a reversed list contains nested lists.</p>
-        <ol id="list" start="10" reversed>
-            <li>Ten</li>
-            <li>Nine</li>
-            <li>Eight</li>
-            <li>Seven
-                <ul>
-                    <li>One</li>
-                    <li>Two</li>
-                </ul>
-            </li>
-            <li>Six</li>
-            <li>Five</li>
-            <ol reversed>
-                <li>Two</li>
-                <li>One</li>
-            </ol>
-            <li>Four</li>
-            <li>Three</li>
-            <li>Two</li>
-        </ol>
-
-        <div id="console"></div>
-    </body>
-</html>

Deleted: trunk/LayoutTests/fast/lists/ol-reversed-simple-expected.txt (103064 => 103065)


--- trunk/LayoutTests/fast/lists/ol-reversed-simple-expected.txt	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/LayoutTests/fast/lists/ol-reversed-simple-expected.txt	2011-12-16 14:17:11 UTC (rev 103065)
@@ -1,46 +0,0 @@
-This tests that reversed lists render properly.
-
-5 Five
-4 Four
-3 Three
-2 Two
-1 One
-
-This tests that reversed lists with a custom start value render properly.
-
-10 Ten
-9 Nine
-8 Eight
-7 Seven
-6 Six
-
-This tests that reversed lists with explicit item values render properly.
-
-5 Five
-4 Four
-2 Two
-1 One
-0 Zero
-
-This tests that reversed lists with a custom start value and explicit item values render properly.
-
-10 Ten
-9 Nine
-3 Three
-2 Two
-1 One
-3 Three
-2 Two
-1 One
-
-This tests that reversed lists with a negative start value render properly.
-
--5 Minus Five
--6 Minus Six
--7 Minus Seven
--8 Minus Eight
--9 Minus Nine
-
-This tests that reversed lists have the start attribute equals the number of list items when no start value is specified.
-
-Value of start attribute of the list is : 5

Deleted: trunk/LayoutTests/fast/lists/ol-reversed-simple.html (103064 => 103065)


--- trunk/LayoutTests/fast/lists/ol-reversed-simple.html	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/LayoutTests/fast/lists/ol-reversed-simple.html	2011-12-16 14:17:11 UTC (rev 103065)
@@ -1,103 +0,0 @@
-<html>
-    <head>
-        <script src=""
-        <script>
-            function test()
-            {
-                if (window.layoutTestController)
-                    layoutTestController.dumpAsText();
-
-                var list1 = document.getElementById("list1");
-                document.getElementById("console1").innerHTML = dumpList(list1);
-
-                var list2 = document.getElementById("list2");
-                document.getElementById("console2").innerHTML = dumpList(list2);
-
-                var list3 = document.getElementById("list3");
-                document.getElementById("console3").innerHTML = dumpList(list3);
-
-                var list4 = document.getElementById("list4");
-                document.getElementById("console4").innerHTML = dumpList(list4);
-
-                var list5 = document.getElementById("list5");
-                document.getElementById("console5").innerHTML = dumpList(list5);
-
-                var list6 = document.getElementById("list6");
-                document.getElementById("console6").innerHTML = "Value of start attribute of the list is : " + list6.start;
-
-                // Don't show the actual lists as they are useless in the text-only mode.
-                list1.parentNode.removeChild(list1);
-                list2.parentNode.removeChild(list2);
-                list3.parentNode.removeChild(list3);
-                list4.parentNode.removeChild(list4);
-                list5.parentNode.removeChild(list5);
-                list6.parentNode.removeChild(list6);
-            }
-        </script>
-    </head>
-    <body _onload_="test()">
-        <p>This tests that reversed lists render properly.</p>
-        <ol id="list1" reversed>
-            <li>Five</li>
-            <li>Four</li>
-            <div style="display: list-item">Three</div>
-            <li>Two</li>
-            <li>One</li>
-        </ol>
-        <p id="console1"></p>
-
-        <p>This tests that reversed lists with a custom start value render properly.</p>
-        <ol id="list2" reversed="reversed" start="10">
-            <li>Ten</li>
-            <li>Nine</li>
-            <li>Eight</li>
-            <li>Seven</li>
-            <li>Six</li>
-        </ol>
-        <p id="console2"></p>
-
-        <p>This tests that reversed lists with explicit item values render properly.</p>
-        <ol id="list3" reversed>
-            <li>Five</li>
-            <li>Four</li>
-            <li value="2">Two</li>
-            <li>One</li>
-            <li>Zero</li>
-        </ol>
-        <p id="console3"></p>
-
-        <p>This tests that reversed lists with a custom start value and explicit item values render properly.</p>
-        <ol id="list4" reversed start="10">
-            <li>Ten</li>
-            <li>Nine</li>
-            <li value="3">Three</li>
-            <li>Two</li>
-            <li>One</li>
-            <li value="3">Three</li>
-            <li>Two</li>
-            <li>One</li>
-        </ol>
-        <p id="console4"></p>
-
-        <p>This tests that reversed lists with a negative start value render properly.</p>
-        <ol id="list5" reversed="reversed" start="-5">
-            <li>Minus Five</li>
-            <li>Minus Six</li>
-            <li>Minus Seven</li>
-            <li>Minus Eight</li>
-            <li>Minus Nine</li>
-        </ol>
-        <p id="console5"></p>
-
-        <p>This tests that reversed lists have the start attribute equals the number of list items when no start value is specified.</p>
-        <ol id="list6" reversed>
-            <li>Five</li>
-            <li>Four</li>
-            <li>Three</li>
-            <li>Two</li>
-            <li>One</li>
-        </ol>
-        <p id="console6"></p>
-
-    </body>
-</html>

Deleted: trunk/LayoutTests/fast/lists/ol-reversed-simple.xhtml


(Binary files differ)

Modified: trunk/Source/WebCore/ChangeLog (103064 => 103065)


--- trunk/Source/WebCore/ChangeLog	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/Source/WebCore/ChangeLog	2011-12-16 14:17:11 UTC (rev 103065)
@@ -1,3 +1,25 @@
+2011-12-16  Sheriff Bot  <[email protected]>
+
+        Unreviewed, rolling out r103062.
+        http://trac.webkit.org/changeset/103062
+        https://bugs.webkit.org/show_bug.cgi?id=74715
+
+        It broke many tests (Requested by Ossy on #webkit).
+
+        * html/HTMLAttributeNames.in:
+        * html/HTMLOListElement.cpp:
+        (WebCore::HTMLOListElement::HTMLOListElement):
+        (WebCore::HTMLOListElement::parseMappedAttribute):
+        * html/HTMLOListElement.h:
+        (WebCore::HTMLOListElement::start):
+        * html/HTMLOListElement.idl:
+        * rendering/RenderListItem.cpp:
+        (WebCore::previousListItem):
+        (WebCore::RenderListItem::calcValue):
+        (WebCore::RenderListItem::explicitValueChanged):
+        (WebCore::RenderListItem::updateListMarkerNumbers):
+        * rendering/RenderListItem.h:
+
 2011-12-16  Alexis Menard  <[email protected]>, Jakub Wieczorek  <[email protected]>
 
         Add support for <ol reversed>.

Modified: trunk/Source/WebCore/html/HTMLAttributeNames.in (103064 => 103065)


--- trunk/Source/WebCore/html/HTMLAttributeNames.in	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/Source/WebCore/html/HTMLAttributeNames.in	2011-12-16 14:17:11 UTC (rev 103065)
@@ -266,7 +266,6 @@
 required
 results
 rev
-reversed
 role
 rows
 rowspan

Modified: trunk/Source/WebCore/html/HTMLOListElement.cpp (103064 => 103065)


--- trunk/Source/WebCore/html/HTMLOListElement.cpp	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/Source/WebCore/html/HTMLOListElement.cpp	2011-12-16 14:17:11 UTC (rev 103065)
@@ -35,11 +35,7 @@
 
 HTMLOListElement::HTMLOListElement(const QualifiedName& tagName, Document* document)
     : HTMLElement(tagName, document)
-    , m_start(0xBADBEEF)
-    , m_itemCount(0)
-    , m_hasExplicitStart(false)
-    , m_isReversed(false)
-    , m_shouldRecalculateItemCount(false)
+    , m_start(1)
 {
     ASSERT(hasTagName(olTag));
 }
@@ -78,20 +74,17 @@
         else if (attr->value() == "1")
             addCSSProperty(attr, CSSPropertyListStyleType, CSSValueDecimal);
     } else if (attr->name() == startAttr) {
-        int oldStart = start();
         bool canParse;
-        int parsedStart = attr->value().toInt(&canParse);
-        m_hasExplicitStart = canParse;
-        m_start = canParse ? parsedStart : 0xBADBEEF;
-        if (oldStart == start())
+        int start = attr->value().toInt(&canParse);
+        if (!canParse)
+            start = 1;
+        if (start == m_start)
             return;
-        updateItemValues();
-    } else if (attr->name() == reversedAttr) {
-        bool reversed = !attr->isNull();
-        if (reversed == m_isReversed)
-            return;
-        m_isReversed = reversed;
-        updateItemValues();
+        m_start = start;
+        for (RenderObject* child = renderer(); child; child = child->nextInPreOrder(renderer())) {
+            if (child->isListItem())
+                toRenderListItem(child)->updateValue();
+        }
     } else
         HTMLElement::parseMappedAttribute(attr);
 }
@@ -101,20 +94,4 @@
     setAttribute(startAttr, String::number(start));
 }
 
-void HTMLOListElement::updateItemValues()
-{
-    for (RenderListItem* listItem = RenderListItem::nextListItem(renderer()); listItem; listItem = RenderListItem::nextListItem(renderer(), listItem))
-        listItem->updateValue();
 }
-
-void HTMLOListElement::recalculateItemCount()
-{
-    m_itemCount = 0;
-
-    for (RenderListItem* listItem = RenderListItem::nextListItem(renderer()); listItem; listItem = RenderListItem::nextListItem(renderer(), listItem))
-        m_itemCount++;
-
-    m_shouldRecalculateItemCount = false;
-}
-
-}

Modified: trunk/Source/WebCore/html/HTMLOListElement.h (103064 => 103065)


--- trunk/Source/WebCore/html/HTMLOListElement.h	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/Source/WebCore/html/HTMLOListElement.h	2011-12-16 14:17:11 UTC (rev 103065)
@@ -32,36 +32,16 @@
     static PassRefPtr<HTMLOListElement> create(Document*);
     static PassRefPtr<HTMLOListElement> create(const QualifiedName&, Document*);
 
-    int start() const { return m_hasExplicitStart ? m_start : (m_isReversed ? itemCount() : 1); }
+    int start() const { return m_start; }
     void setStart(int);
 
-    bool isReversed() const { return m_isReversed; }
-
-    void itemCountChanged() { m_shouldRecalculateItemCount = true; }
-
 private:
     HTMLOListElement(const QualifiedName&, Document*);
         
-    void updateItemValues();
-
-    unsigned itemCount() const
-    {
-        if (m_shouldRecalculateItemCount)
-            const_cast<HTMLOListElement*>(this)->recalculateItemCount();
-        return m_itemCount;
-    }
-
-    void recalculateItemCount();
-
     virtual bool mapToEntry(const QualifiedName&, MappedAttributeEntry&) const;
     virtual void parseMappedAttribute(Attribute*);
 
     int m_start;
-    unsigned m_itemCount;
-
-    bool m_hasExplicitStart : 1;
-    bool m_isReversed : 1;
-    bool m_shouldRecalculateItemCount : 1;
 };
 
 

Modified: trunk/Source/WebCore/html/HTMLOListElement.idl (103064 => 103065)


--- trunk/Source/WebCore/html/HTMLOListElement.idl	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/Source/WebCore/html/HTMLOListElement.idl	2011-12-16 14:17:11 UTC (rev 103065)
@@ -22,7 +22,6 @@
     interface HTMLOListElement : HTMLElement {
         attribute [Reflect] boolean compact;
         attribute long start;
-        attribute [Reflect] boolean reversed;
         attribute [Reflect] DOMString type;
     };
 

Modified: trunk/Source/WebCore/rendering/RenderListItem.cpp (103064 => 103065)


--- trunk/Source/WebCore/rendering/RenderListItem.cpp	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/Source/WebCore/rendering/RenderListItem.cpp	2011-12-16 14:17:11 UTC (rev 103065)
@@ -101,33 +101,14 @@
     return firstNode;
 }
 
-RenderListItem* RenderListItem::nextListItem(RenderObject* list, RenderListItem* item)
+static RenderListItem* previousListItem(Node* list, const RenderListItem* item)
 {
-    if (!list)
-        return 0;
-
-    RenderObject* renderer = item ? item : list;
-    while ((renderer = renderer->nextInPreOrder(list))) {
-        if (renderer->node() && isList(renderer->node())) {
-            // We've found a nested, independent list: nothing to do here.
-            renderer = renderer->nextInPreOrderAfterChildren(list);
-            continue;
-        }
-
-        if (renderer->isListItem())
-            return toRenderListItem(renderer);
-    }
-    return 0;
-}
-
-static RenderListItem* previousListItem(RenderObject* list, const RenderListItem* item)
-{
-    for (RenderObject* renderer = item->previousInPreOrder(); renderer && renderer != list; renderer = renderer->previousInPreOrder()) {
+    for (RenderObject* renderer = item->previousInPreOrder(); renderer && renderer != list->renderer(); renderer = renderer->previousInPreOrder()) {
         if (!renderer->isListItem())
             continue;
         Node* otherList = enclosingList(toRenderListItem(renderer));
         // This item is part of our current list, so it's what we're looking for.
-        if (list->node() == otherList)
+        if (list == otherList)
             return toRenderListItem(renderer);
         // We found ourself inside another list; lets skip the rest of it.
         // Use nextInPreOrder() here because the other list itself may actually
@@ -143,22 +124,13 @@
 {
     if (m_hasExplicitValue)
         return m_explicitValue;
-
     Node* list = enclosingList(this);
-    RenderObject* listRenderer = list ? list->renderer() : 0;
-    HTMLOListElement* oListElement = (list && list->hasTagName(olTag)) ? static_cast<HTMLOListElement*>(list) : 0;
-    int valueStep = 1;
-    if (oListElement && oListElement->isReversed())
-        valueStep = -1;
-
     // FIXME: This recurses to a possible depth of the length of the list.
     // That's not good -- we need to change this to an iterative algorithm.
-    if (RenderListItem* previousItem = previousListItem(listRenderer, this))
-        return previousItem->value() + valueStep;
-
-    if (oListElement)
-        return oListElement->start();
-
+    if (RenderListItem* previousItem = previousListItem(list, this))
+        return previousItem->value() + 1;
+    if (list && list->hasTagName(olTag))
+        return static_cast<HTMLOListElement*>(list)->start();
     return 1;
 }
 
@@ -420,8 +392,15 @@
     RenderObject* listRenderer = 0;
     if (listNode)
         listRenderer = listNode->renderer();
-    for (RenderListItem* item = this; item; item = nextListItem(listRenderer, item))
-        item->updateValue();
+    for (RenderObject* renderer = this; renderer; renderer = renderer->nextInPreOrder(listRenderer))
+        if (renderer->isListItem()) {
+            RenderListItem* item = toRenderListItem(renderer);
+            if (!item->m_hasExplicitValue) {
+                item->m_isValueUpToDate = false;
+                if (RenderListMarker* marker = item->m_marker)
+                    marker->setNeedsLayoutAndPrefWidthsRecalc();
+            }
+        }
 }
 
 void RenderListItem::setExplicitValue(int value)
@@ -447,11 +426,6 @@
     explicitValueChanged();
 }
 
-static RenderListItem* previousOrNextItem(bool isListReversed, RenderObject* list, RenderListItem* item)
-{
-    return isListReversed ? previousListItem(list, item) : RenderListItem::nextListItem(list, item);
-}
-
 void RenderListItem::updateListMarkerNumbers()
 {
     Node* listNode = enclosingList(this);
@@ -459,22 +433,30 @@
     if (!listNode || !listNode->renderer())
         return;
 
-    bool isListReversed = false;
     RenderObject* list = listNode->renderer();
-    HTMLOListElement* oListElement = (listNode && listNode->hasTagName(olTag)) ? static_cast<HTMLOListElement*>(listNode) : 0;
-    if (oListElement) {
-        oListElement->itemCountChanged();
-        isListReversed = oListElement->isReversed();
-    }
-    for (RenderListItem* item = previousOrNextItem(isListReversed, list, this); item; item = previousOrNextItem(isListReversed, list, item)) {
-        if (!item->m_isValueUpToDate) {
-            // If an item has been marked for update before, we can safely
-            // assume that all the following ones have too.
-            // This gives us the opportunity to stop here and avoid
-            // marking the same nodes again.
-            break;
+    RenderObject* child = nextInPreOrder(list);
+    while (child) {
+        if (child->node() && isList(child->node())) {
+            // We've found a nested, independent list: nothing to do here.
+            child = child->nextInPreOrderAfterChildren(list);
+            continue;
         }
-        item->updateValue();
+
+        if (child->isListItem()) {
+            RenderListItem* item = toRenderListItem(child);
+
+            if (!item->m_isValueUpToDate) {
+                // If an item has been marked for update before, we can safely
+                // assume that all the following ones have too.
+                // This gives us the opportunity to stop here and avoid
+                // marking the same nodes again.
+                break;
+            }
+
+            item->updateValue();
+        }
+
+        child = child->nextInPreOrder(list);
     }
 }
 

Modified: trunk/Source/WebCore/rendering/RenderListItem.h (103064 => 103065)


--- trunk/Source/WebCore/rendering/RenderListItem.h	2011-12-16 14:14:36 UTC (rev 103064)
+++ trunk/Source/WebCore/rendering/RenderListItem.h	2011-12-16 14:17:11 UTC (rev 103065)
@@ -49,8 +49,6 @@
 
     void updateListMarkerNumbers();
 
-    static RenderListItem* nextListItem(RenderObject* listRenderer, RenderListItem* = 0);
-
 private:
     virtual const char* renderName() const { return "RenderListItem"; }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to