* Reviewed by Hyatt.
        
                - added a new version of the CSS 2.1 test from the W3C site
                - added counters, list, and other CSS tests for my counter-related check-in
        
                * css2.1: Updated to the 2006-10-11 version of the test suite.
                I downloaded it from 
                added UTF-8 BOMs to the beginning of all the files, and generated expected
                results.
        
                * fast/css-generated-content/reset-content-to-initial-expected.txt: Updated
                to reflect a bug fix in CSS content property support.
        
                * fast/css/counters/*: Removed all the existing tests since they are now part
                of the CSS 2.1 test suite.
        
                * fast/css/counters/counter-text-security-expected.checksum:  Added. New test.
                * fast/css/counters/counter-text-security-expected.png: Ditto.
                * fast/css/counters/counter-text-security-expected.txt: Ditto.
                * fast/css/counters/counter-text-security.html: Ditto.
        
                * fast/css/counters/counter-text-transform-expected.checksum: Added. New test.
                * fast/css/counters/counter-text-transform-expected.png: Ditto.
                * fast/css/counters/counter-text-transform-expected.txt: Ditto.
                * fast/css/counters/counter-text-transform.html: Ditto.
        
                * fast/lists/decimal-leading-zero-expected.checksum: Added. New test.
                * fast/lists/decimal-leading-zero-expected.png: Ditto.
                * fast/lists/decimal-leading-zero-expected.txt: Ditto.
                * fast/lists/decimal-leading-zero.html: Ditto.
        
                * fast/css/text-security-expected.checksum:  Added. New test.
                * fast/css/text-security-expected.png: Ditto.
                * fast/css/text-security-expected.txt: Ditto.
                * fast/css/text-security.html: Ditto.
        
                * fast/lists/decimal-leading-zero-expected.checksum: Added. New test.
                * fast/lists/decimal-leading-zero-expected.png: Ditto.
                * fast/lists/decimal-leading-zero-expected.txt: Ditto.
                * fast/lists/decimal-leading-zero.html: Ditto.
        
                * fast/lists/li-values-expected.checksum: Added. New test.
                * fast/lists/li-values-expected.png: Ditto.
                * fast/lists/li-values-expected.txt: Ditto.
                * fast/lists/li-values.html: Ditto.
        
                * fast/css/import-rule-regression-11590-expected.checksum: Added. Missing
                pixel-test results.
                * fast/css/import-rule-regression-11590-expected.png: Ditto.
                * fast/dom/css-insert-import-rule-expected.checksum: Ditto.
                * fast/dom/css-insert-import-rule-expected.png: Ditto.
                * fast/forms/encoding-test-expected.checksum: Ditto.
                * fast/forms/encoding-test-expected.png: Ditto.
                * fast/frames/frame-src-attribute-expected.checksum: Ditto.
                * fast/frames/frame-src-attribute-expected.png: Ditto.
                * fast/frames/onlyCommentInIFrame-expected.png: Ditto.
                * fast/frames/viewsource-attribute-expected.checksum: Ditto.
                * fast/frames/viewsource-attribute-expected.png: Ditto.
                * fast/loader/start-load-in-unload-expected.checksum: Ditto.
                * fast/loader/start-load-in-unload-expected.png: Ditto.
        
        WebCore:
        
                Reviewed by Hyatt.
        
                - eliminated use of DeprecatedString for list item markers
                - eliminated use of DeprecatedValueList for border style collapsing
                - made many members private instead of protected or public
        
                - reworked counter implementation to fix most of the CSS 2.1 counter tests;
                    made CounterNode be a simple non-polymorphic class, moved most counter-
                    specific code out of RenderObject into RenderCounter, changed the data
                    structure in RenderStyle to be more speed-efficient but less space-
                    efficient for nodes with counter styles
                - fixed http://bugs.webkit.org/show_bug.cgi?id=11557
        
                Tests: css2.1
        
                - fixed a bug where counter text did not have text transform or text security
                  applied to it
        
                Test: fast/css/counters/counter-text-security.html
                Test: fast/css/counters/counter-text-transform.html
        
                - improved handling of CSS content property values with data of the wrong
                  type; this probably needs a bit more refinement
        
                Test: fast/css-generated-content/reset-content-to-initial-expected.txt
        
                - fixed a bug where removing the value attribute from an HTMLLIElement would
                  set the list item's value to 0 instead of restoring it to normal
        
                Test: fast/lists/li-values.html
        
                - fixed a bug where changing the text security style from one style to another
                  would not change the displayed text
        
                Test: fast/css/text-security.html
        
                - fixed some problems handling long sequences of counter-related styles;
                  still needs more work and some super-large test cases to check if
                  recursive algorithms for these that will overflow stack remain
        
                - added support for list styles decimal-leading-zero, hiragana, hirigana-iroha,
                  katakana, katakana-iroha, cjk-ideographic, armenian, and georgian
        
                Test: fast/lists/decimal-leading-zero.html
        
                - minor tweaks and bug fixes for other list styles, including range checking
        
                * WebCore.exp: Updated for RenderListItem change.
        
                * bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject value]): Updated to use
                String instead of DeprecatedString.
        
                * css/CSSComputedStyleDeclaration.cpp:
                (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Removed
                implementation for counter styles for now. We should probably restore it
                later, but we need to make sure the returned list is separate from the
                original list in the DOM -- modifying the list should not change the element
                it was computed from.
        
                * css/Counter.h: Removed unneeded empty constructor and destructor.
        
                * css/cssstyleselector.cpp:
                (WebCore::applyCounterList): Added. Stores counter directives in hash tables
                that should allow us to efficiently implement dynamic counter changes. Full
                support will have to wait for a future check-in.
                (WebCore::CSSStyleSelector::applyProperty): Changed counter properties to
                call applyCounterList. Reformatted the code to parse the content property for
                changes to RenderStyle and to handle the case where some the items in the
                content list don't generate any content.
        
                * editing/visible_units.cpp:
                * rendering/RenderBox.cpp:
                * rendering/RenderFlexibleBox.cpp:
                * rendering/RenderFlow.cpp:
                * rendering/RenderSlider.cpp:
                Added includes needed because of header changes.
        
                * html/HTMLLIElement.H: Removed unneeded m_isValued.
                * html/HTMLLIElement.cpp:
                (WebCore::HTMLLIElement::parseMappedAttribute): To match test results seen
                in WinIE, ignore values that are 0 or negative, and use new functions in
                RenderListItem to communicate the lack of a valid value.
                (WebCore::HTMLLIElement::attach): More of the same.
        
                * rendering/CounterNode.h: Made CounterNode be a non-polymorphic class,
                removing all the subclasses. Merged in CounterResetNode. Removed
                m_total from CounterResetNode, because it isn't needed for any of
                the styles (decimal-leading-zero always uses two digits). Removed
                m_hasSeparator and m_willNeedLayout since they aren't needed any more.
                Renamed m_count to m_countInParent for clarify, and named the list
                links the same as their associated functions. Removed many functions
                as well.
                * rendering/CounterNode.cpp:
                (WebCore::CounterNode::CounterNode): Added new fields.
                (WebCore::CounterNode::computeCountInParent): Added. Used by recount.
                (WebCore::CounterNode::recount): Simplified by removing unused parameter and the
                "get next" idiom. Changed to be iterative instead of recursive so we can handle
                arbitrarily long lists.
                (WebCore::CounterNode::insertAfter): Moved here from CounterResetNode. Updated
                for field name changes. Corrected rule for when to recount.
                (WebCore::CounterNode::removeChild): Moved here from CounterResetNode. Changed
                to only work on nodes without children. Corrected rule for when to recount.
                (WebCore::nextInPreOrderAfterChildren): Added. For debugging only.
                (WebCore::nextInPreOrder): Ditto.
                (WebCore::showTreeAndMark): Ditto.
                (showTree): Ditto.
        
                * rendering/CounterListItem.h:
                * rendering/CounterResetNode.h:
                * rendering/CounterResetNode.cpp:
                Marked ready to remove. I'll do the remove in a separate patch, since I have
                to update a lot of different make files when I do.
        
                * rendering/ListMarkerBox.cpp: (WebCore::ListMarkerBox::isText): Changed for the
                change to RenderListMarker.
        
                * rendering/RenderBlock.cpp:
                (WebCore::RenderBlock::addChildToFlow): Changed to use functions instead of
                direct field access so the fields can be private and we don't need to be friends.
                (WebCore::RenderBlock::getBaselineOfFirstLineBox): Ditto.
                (WebCore::RenderBlock::getBaselineOfLastLineBox): Ditto.
                * rendering/RenderBlock.h:
                (WebCore::RenderBlock::initMaxMarginValues): Ditto.
                (WebCore::RenderBlock::firstRootBox): Ditto.
                (WebCore::RenderBlock::lastRootBox): Ditto.
                * rendering/RenderBox.h:
                (WebCore::RenderBox::setWidth): Ditto.
                (WebCore::RenderBox::setHeight): Ditto.
                * rendering/RenderButton.cpp:
                (WebCore::RenderButton::addChild): Ditto.
                * rendering/bidi.cpp:
                (WebCore::RenderBlock::determineStartPosition): Ditto.
        
                * rendering/RenderContainer.h: Renamed m_first and m_last to m_firstChild
                and m_lastChild. Made them private instead of proected. Removed the
                setFirstChild and setLastChild functions.
                * rendering/RenderContainer.cpp:
                (WebCore::RenderContainer::RenderContainer): Updated for field name change.
                Changed all calls to get at fields directly instead of using functions.
                (WebCore::RenderContainer::destroyLeftoverChildren): Ditto.
                (WebCore::updateListMarkerNumbers): Updated for RenderListItem change.
                (WebCore::RenderContainer::addChild): Changed to get at fields directly
                instead of using functions. Also used release() since RenderText::setText
                now takes PassRefPtr.
                (WebCore::RenderContainer::removeChildNode): Changed to get at fields directly
                instead of using functions.
                (WebCore::RenderContainer::updatePseudoChildForObject): Create the anonymous
                box only if at least one of of the items in the content list actually
                generates content. Since a RenderCounter is a RenderText, don't bother making
                a new style for it -- it just shares the style with its parent. Changed code
                to use RenderImage::setCachedImage() instead of of setContentObject().
                Added a call to setIsAnonymousImage() here, which was the only special thing
                that setContentObject() used to do. Pass a reference to the counter to the
                RenderCounter rather than a pointer. Pass document() as the node instead of
                passing the element to RenderCounter, which makes it anonymous automatically,
                and removed the setIsAnonymous call.
                (WebCore::RenderContainer::appendChildNode): Chagned to get at fields directly
                instead of using functions.
                (WebCore::RenderContainer::insertChildNode): Ditto.
                (WebCore::RenderContainer::layout): Ditto.
                (WebCore::RenderContainer::removeLeftoverAnonymousBoxes): Ditto.
                (WebCore::RenderContainer::positionForCoordinates): Ditto.
                (WebCore::RenderContainer::addLineBoxRects): Ditto.
        
                * rendering/RenderCounter.h: Removed unneeded layout override, never called on a
                text node. Added override of originalString. Replaced CounterData* with a copy of
                the CounterContent -- it's two atomic strings and an integer so it's efficient
                enough to store all three in the render object, and this eliminates the lifetime
                problems we could have if we used a pointer.
                * rendering/RenderCounter.cpp: Removed duplicate copy of list marker code.
                (WebCore::counterMaps): Moved these maps here from RenderObject.
                (WebCore::previousSiblingOrParent): Added.
                (WebCore::lastDescendant): Added.
                (WebCore::previousInPreOrder): Added.
                (WebCore::planCounter): Added.
                (WebCore::findPlaceForCounter): Added.
                (WebCore::counter): New name of function that was named RenderObject::findCounter.
                Also uses a new algorithm that passes all the CSS 2.1 tests.
                (WebCore::RenderCounter::RenderCounter): Changed to take a Document* instead of a
                Node*, since at the moment counters are always anonymous.
                (WebCore::RenderCounter::originalString): Added. This overrides the originalString
                in the RenderText base class so that any text transforms will use the counter's
                value. This code was previously in calcMinMaxWidth.
                (WebCore::RenderCounter::calcMinMaxWidth): Changed to call setInternalString and
                pass originalString -- this uses the counter's value from the counter tree.
                (WebCore::destroyCounterNodeChildren): Added.
                (WebCore::RenderCounter::destroyCounterNodes): Added. Called as needed from
                RenderObject::destroy for objects that have counter nodes.
        
                * rendering/RenderFlow.h: Made m_continuation private instead of protected.
        
                * rendering/RenderImage.h: Removed unneeded includes, and unnecessary element()
                function that casts to HTMLElement*. Made image() protected, and made the two
                calcAspectRatio functions private. Removed setContentObject(). Renamed the
                errorOccured() function to isErrorImage() and made it private.
                * rendering/RenderImage.cpp:
                (WebCore::RenderImage::RenderImage): Removed initialization of removed
                m_selectionState field.
                (WebCore::RenderImage::setCachedImage): Rearrange code so it won't try to
                call isErrorImage() on a null image.
                (WebCore::RenderImage::paint): Updated for name change.
        
                * rendering/RenderListBox.h: Removed unneeded forward declarations.
        
                * rendering/RenderListItem.h:
                Renamed markerStringValue() to markerText() and made it return a String instead of
                a DeprecatedString. Renamed m_prededfVal to m_explicitValue. Added booleans named
                m_hasExplicitValue and m_isValueUpToDate and marked m_value mutable so it can be
                computed in const member functions.
                (WebCore::RenderListItem::value): Changed to update value on demand at the time
                you ask for it.
                (WebCore::RenderListItem::hasExplicitValue): Added. Use instead of magic -1 value
                to indicate that the item does or does not have an explicit value.
                (WebCore::RenderListItem::explicitValue): Added.
                (WebCore::RenderListItem::setExplicitValue): Added.
                (WebCore::RenderListItem::clearExplicitValue): Added.
                * rendering/RenderListItem.cpp:
                (WebCore::RenderListItem::RenderListItem): Updated to not use magic -1 values.
                (WebCore::RenderListItem::setStyle): Removed call to RenderListMarker::setListItem
                since it's not needed any more, and instead pass the list item to the constructor.
                (WebCore::previousListItem): Made parameter const.
                (WebCore::RenderListItem::calcValue): Restructed the function a bit.
                (WebCore::RenderListItem::updateValueNow): Added. Calls calcValue.
                (WebCore::RenderListItem::updateValue): Added. New name for resetValue(). Unlike
                the old version, this no longer calculates the value until it's asked-for later.
                (WebCore::RenderListItem::markerText): Changed to return String rather than a
                DeprecatedString and to return a null string rather than empty string when there
                is no marker.
        
                * rendering/RenderListMarker.h: Added listMarkerText function -- common code shared
                with anyone who needs to convert a value into text given a list style.
                Changed constructor to take a RenderListItem and figure out the document from that.
                Added isImage() and isText() functions and removed listImage() function. Changed the
                type of the text() function from DeprecatedString to String. Removed the listItem()
                and seListeItem() functions. Made the getRelativeMarkerRect() function private.
                Renamed m_item to m_text and chagned it from DeprecatedString to String. Renamed
                m_listImage to m_image.
                * rendering/RenderListMarker.cpp:
                (WebCore::toRoman): Added range checking to fix buffer overrun for large or negative
                numbers. Rewrote to use a local UChar array and String rather than prepending to a
                DeprecatedString.
                (WebCore::toAlphabetic): Replaces toLetterString, and is more flexible since it takes
                an alphabet array. Changed to match CSS 3 specification by using decimal numbering for
                0 and negative numbers. Rewrote to use a local UChar array and String rather than
                prepending to a DeprecatedString.
                (WebCore::toHebrewUnder1000): Added. Helper function for Hebrew numbers so we can
                handle numbers up to a million.
                (WebCore::toHebrew): Changed to use toHebrewUnder1000, added a special case for
                zero, negative, and too-large numbers.
                (WebCore::toArmenianUnder10000): Added. Used by toArmenian.
                (WebCore::toArmenian): Added.
                (WebCore::toGeorgian): Added.
                (WebCore::toCJKIdeographic): Added.
                (WebCore::listMarkerText): Added. Moved the code here from calcMinMaxWidth, but added
                support for text for the styles disc, circle, square, decimal-leading-zero, hiragana,
                hirigana-iroha, katakana, katakana-iroha, cjk-ideographic, armenian, and georgian.
                Also changed some of the styles to share the new toAlphabetic function.
                (WebCore::RenderListMarker::RenderListMarker): Updated for name changes and list
                item parameter.
                (WebCore::RenderListMarker::~RenderListMarker): Updated for name changes.
                (WebCore::RenderListMarker::setStyle): Updated for name changes.
                (WebCore::RenderListMarker::isImage): Added. Useful helper that unifies the check
                for no image and the error image.
                (WebCore::RenderListMarker::paint): Updated for name changes to to use isImage()
                and rearranged the code a bit.
                (WebCore::RenderListMarker::imageChanged): Updated for name change
                (WebCore::RenderListMarker::calcMinMaxWidth): Updated for name change, fixed a bug
                where we'd leave the old text around if we were using an image-based marker. Also
                changed the code to use isImage() instead of checking m_listImage.
                (WebCore::RenderListMarker::calcWidth): Changed to use isImage().
                (WebCore::RenderListMarker::lineHeight): Changed to use isImage().
                (WebCore::RenderListMarker::baselinePosition): Changed to use isImage().
                (WebCore::RenderListMarker::getRelativeMarkerRect): Changed to use isImage(),
                restructured the code a little.
        
                * rendering/RenderObject.h: Removed now-uneeded includes. Removed collectBorders()
                and isFormElement(). Made remove() function and m_hasCounterNodeMap public so
                we could remove friend declarations for RenderListItem and RenderView.
                Moved findCounter() to become a private function inside RenderCounter.cpp.
                * rendering/RenderObject.cpp:
                (WebCore::RenderObject::createObject): Fix bug where a contentData() with
                CONTENT_NONE is treated as image content -- only look at the content property
                if it has exactly one entry which is a CONTENT_OBJECT.
                (WebCore::RenderObject::selectionStartEnd): Add const.
                (WebCore::RenderObject::destroy): Moved counter-specific code to
                RenderCounter::destroyCounterNodes.
                (WebCore::RenderObject::recalcMinMaxWidths): Changed code to set m_recalcMinMax
                near the top of the function -- the old code would potentially reset it after it
                was set by the calcMinMaxWidths functions, and possibly skip a future needed
                recalc. That came up in counter test cases. Removed unneeded boolean check right
                after an assertion.
        
                * rendering/RenderPart.h: Marked two virtual functions virtual for clarity.
        
                * rendering/RenderReplaced.h: Made shouldPaint be protected, and made
                m_intrinsicWidth, m_intrinsicHeight, and m_selectionState be private.
                Also marked isSelected() const.
                * rendering/RenderReplaced.cpp: Added newly-needed include.
                (WebCore::RenderReplaced::RenderReplaced): Use constructor syntax.
                (WebCore::RenderReplaced::isSelected): Made const and changed to call the
                selectionStartEnd function in the straightforward way.
        
                * rendering/RenderSVGText.cpp:
                (WebCore::RenderSVGText::absoluteRects): Use functions instead of direct field
                access so the fields can be private.
                (WebCore::RenderSVGText::relativeBBox): Ditto.
        
                * rendering/RenderStyle.h: Tweaked formatting. Changed names of CSS3 holders
                to say "rare" instead, since it's not all CSS 3. Renamed CounterData to
                CounterContent, since it's used inside ContentData. Changed names of fields in
                ContentData to have m prefix. Moved content and counter fields into the rare
                non-inherited data object. Removed unneeded assignment operator from a class
                that already inherits from Shared which makes it start out noncopyable.
                * rendering/RenderStyle.cpp: Name changes, plus:
                (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
                Updated for added fields (content, counter-reset, counter-increment).
                (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData): Ditto.
                (WebCore::StyleRareNonInheritedData::operator==): Reformatted and sorted so it's
                easy to see if any fields are missing.
                (WebCore::operator!=): Added. Compares two CounterContent objects.
                (WebCore::RenderStyle::arenaDelete): Removed code to handle content, which is
                now in the rareNonInheritedData structure.
                (WebCore::RenderStyle::RenderStyle): Ditto.
                (WebCore::RenderStyle::inheritFrom): Ditto.
                (WebCore::RenderStyle::operator==): Ditto.
                (WebCore::RenderStyle::inheritedNotEqual):
                (WebCore::RenderStyle::diff):
                (WebCore::RenderStyle::contentDataEquivalent): Added case for counter,
                which previously would be ignored when determining if content is equivalent.
                (WebCore::RenderStyle::clearContent): Added.
                (WebCore::RenderStyle::setContent): Updated for change in content location.
                (WebCore::ContentData::clear): Changed algorithm so that it's not recursive
                and thus can handle a very long list of ContentData.
                (WebCore::operator==): Added. Compares two CounterDirective objects.
                (WebCore::RenderStyle::counterDirectives): Added.
                (WebCore::RenderStyle::accessCounterDirectives): Added.
        
                * rendering/RenderTable.h: Made m_currentBorder const to better reflect the
                paint algorithm.
                * rendering/RenderTable.cpp: (WebCore::RenderTable::paint): Changed to use
                Vector instead of DeprecatedValueList for the border styles, and to sort
                rather than inserting in sorted order as we go. Put the code to loop through
                the nodes and collect border styles here instead of in a RenderObject virtual
                function. Also set m_currentBorder to 0 after the loop for greater clarity.
        
                * rendering/RenderTableCell.h: Added a typedef for a vector of border values.
                Removed the virtual collectBorders and replaced with the non-virtual named
                collectBorderStyles. Also added a static member function named sortBorderStyles.
                * rendering/RenderTableCell.cpp:
                (WebCore::CollapsedBorders::CollapsedBorders): Removed unneeded constructor
                parameter.
                (WebCore::addBorderStyle): Changed to use a vector instead of a
                DeprecatedValueList. Wrote out a loop since Vector doesn't have a contains
                member function. Removed the code to insert the border at a sorted location;
                instead we have a separate call to sort the border styles
                (WebCore::RenderTableCell::collectBorderStyles): Renamed, and changed the
                parameter type.
                (WebCore::compareBorderStylesForQSort): Added.
                (WebCore::RenderTableCell::sortBorderStyles): Added.
        
                * rendering/RenderText.h: Changed StringImpl parameters in setText functions
                to be PassRefPtr; added a new setInternalString function. Made a bunch of the
                member functions private and made all the data members private instead of
                protected.
                * rendering/RenderText.cpp:
                (WebCore::RenderText::setStyle): Restructure a bit for clarity. Fix case where
                the old style has a different security than the new style. Use release() since
                RenderText::setText now takes PassRefPtr. Always call cacheWidths here.
                (WebCore::RenderText::setTextWithOffset): Changed to take the string as a
                PassRefPtr instead of a raw pointer.
                (WebCore::isInlineFlowOrEmptyText): Added.
                (WebCore::RenderText::setInternalString): Refactored core of setText into a
                separate protected member function that can be used RenderCounter. Changed
                the text security square character to match what's used in list markers.
                Changed the text transform switch statement so that gcc will warn us if we add
                a new value and don't add a case for it.
                (WebCore::RenderText::setText): Refactored most of the function into
                setInternalString. Removed the call to cacheWidths -- that's now done in the
                setStyle function only.
        
                * rendering/RenderView.h:
                * rendering/RenderView.cpp: (WebCore::RenderView::selectionStartEnd): Now const.
        
                * rendering/RenderWidget.cpp: Added newly-needed include.
                (WebCore::RenderWidget::setSelectionState): Don't bother setting m_selectionState
                here since RenderReplaced::setSelectionState already does that.
        
        WebKit:
        
                Reviewed by Hyatt.
        
                * Misc/WebNSAttributedStringExtras.m:
                (+[NSAttributedString _web_attributedStringFromRange:]):
                Updated to use new list marker text API that is String rather than
                DeprecatedString. Also removed code to do text form of non-text list
                markers since the list marker class now deals with that.
        
        
        
        git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18637 268f45cc-cd09-0410-ab3c-d52691b4dbfc