LayoutTests/ChangeLog

 12011-01-31 Carol Szabo <carol.szabo@nokia.com>
 2
 3 Reviewed by NOBODY (OOPS!).
 4
 5 layoutTestController.counterValueForElementById does not return the correct value
 6 https://bugs.webkit.org/show_bug.cgi?id=53037
 7
 8 * fast/css/counters/deep-before-expected.txt: Added.
 9 * fast/css/counters/deep-before.html: Added.
 10 This tests whether DumpRenderTree properly retrieves counters and
 11 whether counters are properly set when the before pseudo element's
 12 renderer is not a direct child of the generating element's renderer.
 13
1142011-02-01 Csaba Osztrogonác <ossy@webkit.org>
215
316 Unreviewed.

LayoutTests/fast/css/counters/deep-before-expected.txt

 1PASS layoutTestController.counterValueForElementById('div1') is '0'
 2
 3TEST COMPLETE
 4

LayoutTests/fast/css/counters/deep-before.html

 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 2<html>
 3 <head>
 4 <title>Counters in :before node that is hidden inside an anonymous block.</title>
 5 <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#propdef-content">
 6 <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#content">
 7 <meta name="flags" content="">
 8 <meta name="assert" content="DumpRenderTree finds couner when anonymous
 9 renderers intervene between the element and its :before descendant.">
 10 <style type="text/css">
 11 #div1:before {
 12 content: counters(test, ".");
 13 counter-reset: test;
 14 }
 15 #div1 {
 16 border: 2px solid black;
 17 }
 18 </style>
 19 <script src="../../js/resources/js-test-pre.js"></script>
 20 <script type="text/javascript">
 21
 22 if (window.layoutTestController)
 23 layoutTestController.dumpAsText();
 24
 25 function run()
 26 {
 27 if (!window.layoutTestController)
 28 return;
 29 shouldBe("layoutTestController.counterValueForElementById('div1')", "'0'");
 30
 31 debug('');
 32 debug('TEST COMPLETE');
 33 // Eliminate confusing messages (counter values won't be dumped by dumpAsText).
 34 var viewElement = document.getElementById("testView");
 35 viewElement.parentNode.removeChild(viewElement);
 36 }
 37 </script>
 38 </head>
 39
 40 <body onload="run();">
 41 <div id="testView">
 42 <p>Test passes if there is a "0" in the box below.</p>
 43 <div id="div1">
 44 <div id="div2"></div>
 45 </div>
 46 </div>
 47 <div id="console"></div>
 48 </body>
 49</html>

Source/WebCore/ChangeLog

 12011-01-31 Carol Szabo <carol.szabo@nokia.com>
 2
 3 Reviewed by NOBODY (OOPS!).
 4
 5 layoutTestController.counterValueForElementById does not return the correct value
 6 https://bugs.webkit.org/show_bug.cgi?id=53037
 7
 8 Test: fast/css/counters/deep-before.html
 9
 10 * rendering/RenderTreeAsText.cpp:
 11 (WebCore::counterValueForElement):
 12 Modified to use the newly available RenderObject::beforePseudoElement()
 13 and RenderObject::afterPseudoElement() instead of the old imperfect
 14 algorithm to find the before and after pseudo elements.
 15
1162011-02-01 Adam Roben <aroben@apple.com>
217
318 Fix linker warnings in Release_LTCG builds

Source/WebCore/rendering/RenderTreeAsText.cpp

@@String counterValueForElement(Element* element)
769769 element->document()->updateLayout();
770770 TextStream stream;
771771 bool isFirstCounter = true;
772  // The counter renderers should be children of anonymous children
773  // (i.e., :before or :after pseudo-elements).
 772 // The counter renderers should be children of
 773 // :before or :after pseudo-elements.
774774 if (RenderObject* renderer = element->renderer()) {
775  for (RenderObject* child = renderer->firstChild(); child; child = child->nextSibling()) {
776  if (child->isAnonymous())
777  writeCounterValuesFromChildren(stream, child, isFirstCounter);
778  }
 775 RenderObject* pseudoElement = renderer->beforePseudoElementRenderer();
 776 if (pseudoElement)
 777 writeCounterValuesFromChildren(stream, pseudoElement, isFirstCounter);
 778 pseudoElement = renderer->afterPseudoElementRenderer();
 779 if (pseudoElement)
 780 writeCounterValuesFromChildren(stream, pseudoElement, isFirstCounter);
779781 }
780782 return stream.release();
781783}