diff -r 000000000000 -r dd21522fd290 webengine/osswebengine/WebCore/ChangeLog-2006-05-10 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/osswebengine/WebCore/ChangeLog-2006-05-10 Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,39107 @@ +2006-05-10 Matt Gough + + Reviewed, tweaked, and landed by Darin. + + Optimization of [DOMNode _nodeWith:] to look up the obj-c wrapperClass + for each HTMLElement using a HashMap instead of by repeated calls to + htmlElt->hasLocalName(someTag). + + * bindings/objc/DOM.mm: + (addElementClass): Added. + (createHTMLElementClassMap): + (elementClass): + (+[DOMNode _nodeWith:]): Added code to call elementClass. + +2006-05-09 Mitz Pettel + + Reviewed by Hyatt. + + - fix http://bugs.webkit.org/show_bug.cgi?id=8760 + crash (hang?) on subtlegradient.com article page + + * manual-tests/first-line-style-crash.html: Added. + + * css/cssstyleselector.cpp: + (WebCore::CSSStyleSelector::createStyleForElement): Changed to not return the + shared styleNotYetAvailable if allowSharing is off. + * rendering/RenderObject.cpp: + (WebCore::RenderObject::getPseudoStyle): In the FIRST_LINE_INHERITED case, + set the styleType on the style returned from createStyleForElement(). + * rendering/render_style.h: + (WebCore::RenderStyle::setStyleType): Added. Called from RenderObject::getPseudoStyle(). + +2006-05-09 Mitz Pettel + + Reviewed by Hyatt. + + - fix http://bugs.webkit.org/show_bug.cgi?id=8789 + RenderStyle::getPseudoStyle() always returns 0 + + No test possible (no functionality change). + + * dom/Node.cpp: + (WebCore::Node::diff): When checking if :before or :after has changed, + return NoInherit unless both pseudoStyles are known and equal. + * rendering/render_style.cpp: + (WebCore::RenderStyle::getPseudoStyle): Fixed to match the requested + type against the pseudoStyle's styleType instead of our own. + +2006-05-09 Darin Adler + + - another attempt to fix the Windows build + + * bindings/js/kjs_window.cpp: (KJS::isSeparator): Take a UChar, not a KJS::UChar. + * bridge/win/FrameWin.cpp: + (WebCore::FrameWin::runJavaScriptAlert): Use UChar instead of QChar. + (WebCore::FrameWin::runJavaScriptConfirm): Ditto. + * editing/TextIterator.h: Include DeprecatedString.h. + +2006-05-09 Darin Adler + + Reviewed by Hyatt. + + - fix http://bugs.webkit.org/show_bug.cgi?id=8781 + REGRESSION: image maps with "poly" areas, including one at lisp.geek.nz, don't work + + * html/html_imageimpl.cpp: (WebCore::HTMLAreaElement::getRegion): Remove extra Path + definition that was shadowing the real one. + +2006-05-09 Darin Adler + + - fix build + + * rendering/render_style.cpp: (WebCore::RenderStyle::getPseudoStyle): + Fix a typo. + + - attempt to fix Windows build + + * css/maketokenizer: Use UChar instead of unsigned short. + * platform/win/FontWin.cpp: + (WebCore::getFontData): Removed cast to QChar. + (WebCore::hackishExtentForString): Use UChar. + (WebCore::Font::floatWidth): Use UChar. + (WebCore::Font::drawText): Use UChar. + (WebCore::Font::drawHighlightForText): Use UChar. + (WebCore::Font::selectionRectForText): Use UChar. + (WebCore::Font::checkSelectionPoint): Use UChar. + * platform/win/KeyEventWin.cpp: + (WebCore::singleCharacterString): Added. + (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Use above function. + * platform/win/TemporaryLinkStubs.cpp: + (WebCore::findNextSentenceFromIndex): Use UChar. + (WebCore::findSentenceBoundary): Use UChar. + (WebCore::findNextWordFromIndex): Use UChar. + (WebCore::findWordBoundary): Use UChar. + * platform/win/TransferJobWin.cpp: + (WebCore::TransferJob::start): Use a different String constructor. + * rendering/RenderTable.h: Added an include of DeprecatedArray.h. + * rendering/RenderText.cpp: Added an include of DeprecatedString.h. + * rendering/render_list.h: Ditto. + +2006-05-09 Darin Adler + + Rubber stamped by Hyatt. + + - http://bugs.webkit.org/show_bug.cgi?id=8782 + use ICU and UChar more, QChar less + + - fix http://bugs.webkit.org/show_bug.cgi?id=6310 + text-transform: uppercase/lowercase don't handle cases one character becomes two + + Test: fast/css/case-transform.html + + By using ICU more, this fixes some bugs in a few places. + + * bindings/js/JSXMLSerializer.cpp: + * css/css_valueimpl.h: + * kwq/KWQTextStream.cpp: + * loader/CachedObject.h: + * platform/Color.cpp: + Add includes of DeprecatedString.h as needed, now that StringImpl.h no longer + includes it. + + * bindings/js/kjs_css.cpp: (KJS::cssPropertyName): + Eliminate use of QChar::latin1() in a case where it's not helpful. + + * bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::evaluate): + Use characters() function instead of the old unicode() function. + + * bindings/js/kjs_window.cpp: (KJS::isSeparator): + Use UChar instead of QChar. + + * bindings/objc/DOMInternal.mm: + (StringImpl::operator NSString*): Remove typecast that's no longer needed. + (String::String): Ditto. Also use Vector for local buffer to make code read simpler. + + * bridge/mac/FrameMac.mm: + (WebCore::selectorForKeyEvent): Remove call to unicode() function, no longer needed. + (WebCore::FrameMac::setTitle): Remove QChar cast, no longer needed. + (WebCore::FrameMac::setStatusBarText): Ditto. + (WebCore::FrameMac::advanceToNextMisspelling): Use UChar instead of QChar. + (WebCore::FrameMac::runJavaScriptAlert): Remove QChar cast, no longer needed. + (WebCore::FrameMac::runJavaScriptConfirm): Ditto. + (WebCore::FrameMac::runJavaScriptPrompt): Ditto. + (WebCore::FrameMac::attributedString): Replaces calls of QChar::direction() with + calls to u_charDirection and use ICU constants instead of QChar ones. + (WebCore::FrameMac::markMisspellings): Remove QChar cast, no longer needed. Added a + QChar cast so we can call isSpace -- slated to be removed later. + (WebCore::FrameMac::shouldClose): Remove QChar cast, no longer needed. + + * bridge/mac/WebCoreFrameBridge.mm: + (-[WebCoreFrameBridge selectedString]): Remove QChar cast, no longer needed. + (-[WebCoreFrameBridge stringForRange:]): Ditto. + + * css/CSSGrammar.y: Update for field name change from string to characters. + Use UChar instead of unsigned short. + + * css/css_valueimpl.cpp: + (WebCore::propertyID): Use UChar instead of unsigned short and get rid of call to + unicode() function, no longer needed. + (WebCore::quoteStringIfNeeded): Use strings when building up a resulting string, + instead of depending on the feature where you can append characters to a string. + + * css/csshelper.cpp: (WebCore::parseURL): Remove calls to unicode() function and + rewrite to obviate the need to call lower() just to check for a few constant + character values. Also remove a now-unneeded type cast. + + * css/cssparser.h: Changed ParseString field to use UChar and to be named characters + instead of string. Changed many other fields to be UChar instead of unsigned short. + (WebCore::domString): Update for that. + (WebCore::atomicString): Ditto. + * css/cssparser.cpp: + (WebCore::ParseString::lower): Use u_tolower instead of QChar::lower(). Also change + name to characters from string. + (WebCore::CSSParser::setupParser): Use UChar instead of unsigned short. + (WebCore::CSSParser::lex): Ditto. Also update for characters name change. + (WebCore::CSSParser::text): Use UChar instead of unsigned short. Also tweak some + of the code a little bit to handle a couple of overflow cases better and reduce + type casting. + (WebCore::deprecatedString): Moved here so we don't have to include DeprecatedString.h + in the header file. + + * css/cssstyleselector.cpp: (WebCore::checkPseudoState): Added a type cast since this + code now bridges the world between modern code and QChar/DeprecatedString. + + * dom/CharacterData.cpp: (WebCore::CharacterData::CharacterData): Changed QChar to UChar. + + * dom/Document.h: + * dom/Document.cpp: + (WebCore::Document::isValidName): Updated for name change from unicode to characters. + (WebCore::Document::parseQualifiedName): Ditto. + (WebCore::Document::backslashAsCurrencySymbol): Changed return type to UChar. + + * dom/NamedMappedAttrMap.cpp: + (WebCore::isClassWhitespace): Changed parameter to UChar from QChar. + (WebCore::NamedMappedAttrMap::parseClassAttribute): Changed from UChar to QChar and + from unicode to characters. + + * dom/Position.cpp: + (WebCore::Position::leadingWhitespacePosition): Changed from QChar to UChar. + (WebCore::Position::trailingWhitespacePosition): Ditto. + + * dom/StyledElement.cpp: + (WebCore::isClassWhitespace): Changed from QChar to UChar. + (WebCore::StyledElement::addCSSLength): Changed from QChar to UChar, and remove one + case where latin1() was used and was not helpful. + (WebCore::StyledElement::addCSSColor): Removed unicode() function call, no longer needed. + + * dom/dom2_eventsimpl.cpp: (WebCore::KeyboardEvent::charCode): + * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::constrainValue): + Removed unicode() function call, no longer needed. + + * dom/xml_tokenizer.h: Removed default parameter for xmlDocPtrForString so we don't have + to include the DeprecatedString.h header in this file (and since no one uses it). + + * editing/HTMLInterchange.cpp: (convertHTMLTextToInterchangeFormat): Added a couple calls + to the unicode() function to bridge the gap from QChar/DeprecatedString back to modern + code. + + * editing/InsertTextCommand.cpp: Removed unused function. + + * editing/TextIterator.h: Changed from QChar to UChar. + * editing/TextIterator.cpp: + (WebCore::TextIterator::TextIterator): Initialize m_lastCharacter since it's now a UChar + (which is just a typedef) rather than a QChar (which was a class with a default value of 0). + (WebCore::TextIterator::handleTextNode): Updated to use characters() instead of unicode(). + (WebCore::TextIterator::handleTextBox): Removed unicode() call since it's now a UChar instead + of a QChar. + (WebCore::TextIterator::emitCharacter): More of the same. + (WebCore::SimplifiedBackwardsTextIterator::handleTextNode): Ditto. + (WebCore::SimplifiedBackwardsTextIterator::emitCharacter): Ditto. + (WebCore::CharacterIterator::string): Ditto. + (WebCore::WordAwareIterator::advance): Ditto. + (WebCore::WordAwareIterator::length): Ditto. + (WebCore::WordAwareIterator::characters): Ditto. + (WebCore::CircularSearchBuffer::CircularSearchBuffer): Changed to use UChar + instead of QChar, but also to use foldCase() instead of lower(), because + we want case folding here, not lowercasing. + (WebCore::CircularSearchBuffer::append): Ditto, with u_foldCase. + (WebCore::CircularSearchBuffer::isMatch): Ditto. + (WebCore::plainText): Added type cast since this bridges the gap from the modern stuff + to QChar/DeprecatedString. + + * editing/VisiblePosition.h: Changed from QChar to UChar. + * editing/VisiblePosition.cpp: (WebCore::VisiblePosition::characterAfter): Ditto. + + * editing/markup.cpp: (WebCore::escapeTextForMarkup): Changed code that used latin1() + for no good reason to use unicode() instead. + + * html/HTMLTokenizer.h: Changed from QChar to UChar. + * html/HTMLTokenizer.cpp: Changed from QChar to UChar, including removing the + KHTML_ALLOC_QCHAR_VEC and KHTML_DELETE_QCHAR_VEC macros, which weren't being + used consistently anyway. + (WebCore::fixUpChar): More of the same. + (WebCore::tagMatch): Ditto. + (WebCore::HTMLTokenizer::reset): Ditto. + (WebCore::HTMLTokenizer::begin): Ditto. Also corrected anomaly where buffer + size was not the same as the size value -- this was only true in the initial + allocation, so I believe there was no value in it. + (WebCore::HTMLTokenizer::parseSpecial): Ditto. Also removed a use of latin1() + that was unnnecessary extra work. + (WebCore::HTMLTokenizer::scriptHandler): More of the same. + (WebCore::HTMLTokenizer::parseComment): Ditto. + (WebCore::HTMLTokenizer::parseServer): Ditto. + (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto. Another unnecessary + use of latin1() removed. + (WebCore::HTMLTokenizer::parseText): Ditto. + (WebCore::HTMLTokenizer::parseEntity): Ditto. Changed hex-parsing code to handle + uppercase hex a more-efficient way than calling QChar::lower() on each character. + Also changed surrogate code logic to fix a couple things -- reject character codes + > 0x10FFFF as it should and use U16_LEAD and U16_TRAIL instead of writing our + own versions of these. + (WebCore::HTMLTokenizer::parseTag): Ditto. + (WebCore::HTMLTokenizer::write): Ditto. + (WebCore::HTMLTokenizer::end): Ditto. + (WebCore::HTMLTokenizer::finish): Ditto. + (WebCore::HTMLTokenizer::enlargeBuffer): Ditto. + (WebCore::HTMLTokenizer::enlargeScriptBuffer): Ditto. + (WebCore::HTMLTokenizer::notifyFinished): + (WebCore::decodeNamedEntity): Ditto. + + * html/html_inlineimpl.cpp: (WebCore::parseFontSizeNumber): Changed from QChar + to UChar, including using u_isdigit and u_charDigitValue instead of QChar::isNumber + and QChar::digitValue. Also removed unneeded range checking that's already done + by WebCore::String. + + * kwq/KWQLoader.mm: (KWQIsResponseURLEqualToURL): Rewrote to use Vector and UChar, + removing all the type casts and making the whole function much shorter. + + * kwq/WebCoreAXObject.mm: + (AXAttributedStringAppendText): Use UChar instead of QChar. + (-[WebCoreAXObject doAXAttributedStringForTextMarkerRange:]): More of the same. + + * loader/Cache.h: Remove unnecessary default parameters, preventing the need to + include the DeprecatedString.h header in this header. Cleaned up the header + structure a bit, removing some obsolete and redundant comments and fixing typos. + * loader/Cache.cpp: Removed unused preload functions. + + * page/Frame.h: + * page/Frame.cpp: + (WebCore::UserStyleSheetLoader::UserStyleSheetLoader): Added explicit arguments. + This was the only caller anywhere that took advantage of the default parameter + values in one of the Cache class request functions. + (WebCore::Frame::backslashAsCurrencySymbol): Changed QChar to UChar. + + * platform/AtomicString.h: Changed QChar to UChar. Removed constructor that makes + an AtomicString from a single character. Renamed unicode() function to characters(). + Renamed KHTML_ATOMICSTRING_HIDE_GLOBALS to ATOMICSTRING_HIDE_GLOBALS. + * platform/AtomicString.cpp: + (WebCore::CStringTranslator::equal): Changed QChar to UChar. + (WebCore::operator==): Changed unicode() to characters(). + (WebCore::UCharBufferTranslator::hash): More of the same. + (WebCore::UCharBufferTranslator::equal): Ditto. + (WebCore::UCharBufferTranslator::translate): Ditto. + (WebCore::AtomicString::add): Ditto. + (WebCore::AtomicString::operator Identifier): Ditto. + (WebCore::AtomicString::operator UString): Ditto. + (WebCore::AtomicString::AtomicString): Moved here so we don't need DeprecatedString.h + in the header. + (WebCore::AtomicString::deprecatedString): Ditto. + + * platform/DeprecatedString.h: Removed QChar::Direction enum and all the DirXXX values, + isDigit, isLetter, isNumber, isLetterOrNumber, isPunct, digitValue, and direction functions. + (QChar::isSpace): Changed to use u_charDirection instead of QChar::direction. + + * platform/Font.h: (WebCore::Font::width): Changed QChar to UChar. + * platform/Font.cpp: (WebCore::Font::width): Ditto. + + * platform/GraphicsContext.h: + * platform/GraphicsContext.cpp: + (WebCore::GraphicsContext::drawText): Changed QChar to UChar. Removed horizontalAlignment + parameter from simplified string drawing entry point, since it's not used. + (WebCore::GraphicsContext::drawHighlightForText): Changed QChar to UChar. + + * platform/PlatformString.h: Changed QChar to UChar. Removed constructor that makes + a String from a single character. Renamed unicode() function to characters(). Added + an append function and changed += operator to just call that. Added a foldCase() function. + Removed the concatenation operators that add individual strings before or after. + * platform/String.cpp: + (WebCore::String::String): Changed QChar to UChar. + (WebCore::String::append): Renamed from operator+= and removed the return value. + (WebCore::String::operator[]): Changed QChar to UChar. + (WebCore::String::foldCase): Added. + (WebCore::String::percentage): More of the same. + (WebCore::String::characters): Renamed from unicode(). + (WebCore::String::deprecatedString): More of the same. + (WebCore::String::sprintf): Fixed mistakes in the comments. + (WebCore::String::isEmpty): Tweaked a bit. + (WebCore::operator==): More of the same. + (WebCore::String::operator Identifier): Ditto. + (WebCore::String::operator UString): Ditto. + + * platform/SegmentedString.h: Changed from QChar to UChar. Had to initialize + data members that are now UChar. + * platform/SegmentedString.cpp: + (WebCore::SegmentedString::length): Updated for change from QChar to UChar. + (WebCore::SegmentedString::append): Ditto. + (WebCore::SegmentedString::prepend): Ditto. + (WebCore::SegmentedString::toString): Ditto. + + * platform/StringHash.h: Updated to use UChar instead of QChar and for name changes. + Also changed to use case folding intead of lowercasing for case insensitive hashing. + + * platform/StringImpl.h: + * platform/StringImpl.cpp: + (WebCore::newUCharVector): Changed to UChar from QChar. + (WebCore::deleteUCharVector): Ditto. + (WebCore::StringImpl::StringImpl): Ditto. + (WebCore::StringImpl::init): Ditto. Also renamed from initWithChar and initWithQChar. + (WebCore::StringImpl::~StringImpl): Ditto. + (WebCore::StringImpl::append): Ditto. + (WebCore::StringImpl::insert): Ditto. + (WebCore::StringImpl::truncate): Ditto. + (WebCore::StringImpl::remove): Ditto. + (WebCore::StringImpl::split): Ditto. + (WebCore::StringImpl::containsOnlyWhitespace): Ditto. Also added comment because this + function seems a little broken. + (WebCore::parseLength): More of the same. + (WebCore::StringImpl::toCoordsArray): Ditto. + (WebCore::StringImpl::toLengthArray): Ditto. + (WebCore::StringImpl::isLower): Ditto. + (WebCore::StringImpl::lower): Rewrote to use u_strToLower. + (WebCore::StringImpl::upper): Rewrote to use u_strToUpper. + (WebCore::StringImpl::foldCase): Added. Uses u_strFoldCase. + (WebCore::getWordBreakIterator): Changed to use U_FAILURE instead of accepting only + U_ZERO_ERROR as a success code. + (WebCore::StringImpl::capitalize): More QChar to UChar changes. + (WebCore::StringImpl::toInt): Ditto. + (WebCore::equal): Changed from QChar to UChar and was careful to preserve the old + semantics where "high ASCII" is treated as U+0080-U+00FF even though I don't know + if this feature is important. + (WebCore::equalIgnoringCase): Ditto, but used case folding instead of lowercasing + by using the u_foldCase and u_memcasecmp functions. Also renamed from + equalCaseInsensitive for more-consistent naming. + (WebCore::StringImpl::find): Ditto. Use case folding for the case insensitive branch. + (WebCore::StringImpl::replace): More of the same. + (WebCore::StringImpl::computeHash): Ditto. + (WebCore::StringImpl::ascii): Ditto. + + * platform/TextBoundaries.h: Changed from QChar to UChar. + * platform/mac/TextBoundaries.mm: + (WebCore::findWordBoundary): Made the change to UChar and removed some type casts. + (WebCore::findNextWordFromIndex): Ditto. + (WebCore::findSentenceBoundary): Ditto. + (WebCore::findNextSentenceFromIndex): Ditto. + + * platform/TextEncoding.h: + * platform/TextEncoding.cpp: + (WebCore::TextEncoding::backslashAsCurrencySymbol): Changed from QChar to UChar. + (WebCore::TextEncoding::fromUnicode): More of the same. + * platform/mac/TextEncodingMac.cpp: (WebCore::TextEncoding::fromUnicode): More + of the same. + + * platform/mac/FontFamilyMac.mm: (WebCore::FontFamily::getNSFamily): Removed a + now-unneeded type cast. + + * platform/mac/FontMac.mm: + (WebCore::Font::selectionRectForText): + (WebCore::Font::drawText): + (WebCore::Font::drawHighlightForText): + (WebCore::Font::floatWidth): + (WebCore::Font::checkSelectionPoint): + Changed QChar to UChar and removed some now-unneeded type casts. + + * editing/RebalanceWhitespaceCommand.cpp: (WebCore::isWhitespace): + * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply): + * editing/visible_units.cpp: + (WebCore::previousBoundary): + (WebCore::nextBoundary): + (WebCore::startWordBoundary): + (WebCore::endWordBoundary): + (WebCore::previousWordPositionBoundary): + (WebCore::nextWordPositionBoundary): + (WebCore::startSentenceBoundary): + (WebCore::endSentenceBoundary): + (WebCore::previousSentencePositionBoundary): + (WebCore::nextSentencePositionBoundary): + (WebCore::startOfParagraph): + (WebCore::endOfParagraph): + * html/HTMLParser.cpp: (WebCore::HTMLParser::handleError): + * rendering/InlineTextBox.cpp: + (WebCore::InlineTextBox::selectionRect): + (WebCore::InlineTextBox::paint): + (WebCore::InlineTextBox::paintSelection): + (WebCore::InlineTextBox::paintMarkedTextBackground): + (WebCore::InlineTextBox::paintTextMatchMarker): + (WebCore::InlineTextBox::offsetForPosition): + (WebCore::InlineTextBox::positionForOffset): + * rendering/RenderBlock.cpp: + (WebCore::stripTrailingSpace): + (WebCore::RenderBlock::updateFirstLetter): + * rendering/RenderFlexibleBox.cpp: + (WebCore::RenderFlexibleBox::layoutVerticalBox): + * rendering/RenderObject.h: + * rendering/RenderObject.cpp: + (WebCore::RenderObject::backslashAsCurrencySymbol): + * rendering/RenderTreeAsText.cpp: (quoteAndEscapeNonPrintables): + * rendering/break_lines.cpp: (WebCore::nextBreakablePosition): + * rendering/break_lines.h: (WebCore::isBreakable): + * rendering/render_style.h: (WebCore::RenderStyle::isCollapsibleWhiteSpace): + * xml/XSLStyleSheet.cpp: (WebCore::XSLStyleSheet::parseString): + * xml/xmlhttprequest.cpp: + (WebCore::getMIMEType): + (WebCore::getCharset): + Changed QChar to UChar. + + * rendering/RenderImage.cpp: + (WebCore::RenderImage::imageChanged): Changed QChar to UChar. + (WebCore::RenderImage::paint): Changed callers of drawText to no-longer pass 0 + for the horizontal alignment, since I removed that parameters. + + * rendering/RenderText.h: Changed QChar to UChar. + * rendering/RenderText.cpp: + (WebCore::characterBreakIterator): Update for name change. + (WebCore::RenderText::RenderText): Ditto. + (WebCore::RenderText::allAscii): Remove uneeded unicode() and allow the value + U+007F to count as ASCII. + (WebCore::RenderText::cacheWidths): Changed QChar to UChar. + (WebCore::RenderText::widthFromCache): Changed code that deals with direction to + use the ICU direction calls. + (WebCore::RenderText::trimmedMinMaxWidth): Changed QChar to UChar. + (WebCore::RenderText::calcMinMaxWidth): Ditto. + (WebCore::RenderText::containsOnlyWhitespace): Ditto. + (WebCore::RenderText::setText): Ditto. + (WebCore::RenderText::width): Ditto. + + * rendering/RenderTextField.cpp: + (WebCore::RenderTextField::updateFromElement): Removed unneeded QChar cast. + (WebCore::RenderTextField::calcMinMaxWidth): Changed from QChar to UChar. + + * rendering/bidi.h: + * rendering/bidi.cpp: + (WebCore::BidiIterator::BidiIterator): + (WebCore::BidiState::BidiState): + (WebCore::BidiContext::BidiContext): + (WebCore::bidiNext): + (WebCore::bidiFirst): + (WebCore::BidiIterator::current): + (WebCore::BidiIterator::direction): + (WebCore::addRun): + (WebCore::checkMidpoints): + (WebCore::appendRun): + (WebCore::embed): + (WebCore::RenderBlock::tabWidth): + (WebCore::RenderBlock::computeHorizontalPositionsForLine): + (WebCore::RenderBlock::bidiReorderLine): + (WebCore::RenderBlock::layoutInlineChildren): + (WebCore::skipNonBreakingSpace): + (WebCore::RenderBlock::skipWhitespace): + (WebCore::RenderBlock::findNextLineBreak): + (WebCore::RenderBlock::checkLinesForTextOverflow): + Changed from QChar to UChar and all direction from QChar constants to the + ones from ICU. + + * rendering/render_form.cpp: + (WebCore::RenderLineEdit::updateFromElement): + (WebCore::RenderSelect::updateFromElement): + (WebCore::RenderTextArea::updateFromElement): + (WebCore::RenderTextArea::text): + (WebCore::RenderTextArea::textWithHardLineBreaks): + Got rid of now-unneeded QChar type casts. + + * rendering/render_line.cpp: + (WebCore::InlineFlowBox::placeBoxesHorizontally): Updated for change from QChar + to UChar. + (WebCore::EllipsisBox::paint): Updated for unicode() -> characters() name change. + + * rendering/render_list.cpp: + (WebCore::toRoman): Updated from QChar to UChar. + (WebCore::toLetterString): Ditto. + (WebCore::toHebrew): More of the same, also cleaned up the logic a bit. + (WebCore::RenderListMarker::paint): Removed the alignment parameters from the + various functions. Also removed all reliance on the width-measuring functions + that take a string. + (WebCore::RenderListMarker::calcMinMaxWidth): More of the same. + (WebCore::RenderListMarker::getRelativeMarkerRect): Ditto. + +2006-05-09 Tim Omernick + + Reviewed by/co-written by Darin. + + Performance improvement when drawing large numbers of animated images. + + Instead of removing the "first" object from a set on each next(), + copy the clients into a vector once and keep track of the current index. + + * loader/CachedObjectClientWalker.h: + * loader/CachedObjectClientWalker.cpp: + (WebCore::CachedObjectClientWalker::CachedObjectClientWalker): + (WebCore::CachedObjectClientWalker::next): + +2006-05-09 Steve Falkenburg + + Fix Windows build. Added TextDocument.cpp to vcproj. + + Reviewed by adele. + + * WebCore.vcproj/WebCore/WebCore.vcproj: + +2006-05-09 Steve Falkenburg + + Fix Windows build. + Add host calback so caller can determine success/failure of a page load. + + Reviewed by kevin. + + * WebCore.vcproj/WebCore/WebCore.vcproj: Fix paths, add missing files + * loader/CachedResource.h: Fix include path. + * loader/CachedResourceClientWalker.h: Fix include path. + * platform/FontPlatformData.h: Fix include path. + * platform/TransferJobClient.h: Make PlatformData, PlatformResponse an opaque struct. + * platform/image-decoders/ImageDecoder.h: Fix include path. + * platform/win/SharedTimerWin.cpp: Fix include path. + * platform/win/TransferJobWin.cpp: + (WebCore::TransferJobWndProc): Add host callback for success/failure of load. + * platform/win/TransferJobWin.h: Added. Windows version of PlatformData/PlatformResponse. + * xpath/impl/XPathFunctions.cpp: Work around missing math functions in MSVC. + (round): Work around missing math functions in MSVC. + * xpath/impl/XPathPredicate.cpp: Work around missing math functions in MSVC. + * xpath/impl/XPathValue.cpp: Work around missing math functions in MSVC. + +2006-05-09 David Hyatt + + Revert styleForElement, pseudoStyleForElement, styleForRenderer back to + their old names, since the term "create" is not accurate. + + * css/cssstyleselector.cpp: + (WebCore::CSSStyleSelector::styleForElement): + (WebCore::CSSStyleSelector::pseudoStyleForElement): + * css/cssstyleselector.h: + * dom/Element.cpp: + (WebCore::Element::styleForRenderer): + (WebCore::Element::recalcStyle): + * dom/Element.h: + * dom/Node.cpp: + (WebCore::Node::createRendererIfNeeded): + (WebCore::Node::styleForRenderer): + * dom/Node.h: + * ksvg2/svg/SVGClipPathElement.cpp: + (SVGClipPathElement::canvasResource): + * ksvg2/svg/SVGFEFloodElement.cpp: + (SVGFEFloodElement::filterEffect): + * ksvg2/svg/SVGGradientElement.cpp: + (SVGGradientElement::rebuildStops): + +2006-05-09 Anders Carlsson + + Reviewed by Darin. + + * loader/TextDocument.cpp: + (WebCore::TextTokenizer::write): + Use the correct variable to prevent crashes. + +2006-05-09 Anders Carlsson + + Reviewed by Darin. + + http://bugs.webkit.org/show_bug.cgi?id=8808 + WebCore should handle text files + + * WebCore.xcodeproj/project.pbxproj: + Add TextDocument.cpp and TextDocument.h + + * bridge/mac/WebCoreFrameBridge.mm: + (+[WebCoreFrameBridge supportedMIMETypes]): + Add text types here. + + * dom/DOMImplementation.cpp: + (WebCore::DOMImplementation::createTextDocument): + (WebCore::DOMImplementation::isTextMIMEType): + * dom/DOMImplementation.h: + New functions for creating a TextDocument and determining if a + mime type is a text MIME type. + + * loader/TextDocument.cpp: Added. + (WebCore::TextTokenizer::TextTokenizer): + (WebCore::TextTokenizer::write): + (WebCore::TextTokenizer::finish): + (WebCore::TextTokenizer::isWaitingForScripts): + Special tokenizer which will put text inside a
 tag
+        in a document.
+        
+        (WebCore::TextDocument::TextDocument):        
+        (WebCore::TextDocument::createTokenizer):
+        Create a TextTokenizer.
+        
+        * loader/TextDocument.h: Added.
+        
+        * page/Frame.cpp:
+        (WebCore::Frame::begin):
+        Create a TextDocument if the MIME type is of type text.
+
+2006-05-09  Maciej Stachowiak  
+
+        Rubber stamped by Anders.
+        
+        - renamed kxmlcore to wtf
+        
+        kxmlcore --> wtf
+        KXMLCore --> WTF
+        KXC --> WTF
+
+        * ForwardingHeaders/kxmlcore: Removed.
+        * ForwardingHeaders/kxmlcore/AlwaysInline.h: Removed.
+        * ForwardingHeaders/kxmlcore/Assertions.h: Removed.
+        * ForwardingHeaders/kxmlcore/FastMalloc.h: Removed.
+        * ForwardingHeaders/kxmlcore/Forward.h: Removed.
+        * ForwardingHeaders/kxmlcore/HashCountedSet.h: Removed.
+        * ForwardingHeaders/kxmlcore/HashMap.h: Removed.
+        * ForwardingHeaders/kxmlcore/HashSet.h: Removed.
+        * ForwardingHeaders/kxmlcore/HashTraits.h: Removed.
+        * ForwardingHeaders/kxmlcore/Noncopyable.h: Removed.
+        * ForwardingHeaders/kxmlcore/OwnArrayPtr.h: Removed.
+        * ForwardingHeaders/kxmlcore/OwnPtr.h: Removed.
+        * ForwardingHeaders/kxmlcore/PassRefPtr.h: Removed.
+        * ForwardingHeaders/kxmlcore/Platform.h: Removed.
+        * ForwardingHeaders/kxmlcore/RefPtr.h: Removed.
+        * ForwardingHeaders/kxmlcore/Vector.h: Removed.
+        * ForwardingHeaders/wtf: Added.
+        * bindings/js/JSHTMLElementWrapperFactory.h:
+        * bindings/js/kjs_binding.cpp:
+        * bindings/js/kjs_window.h:
+        * bindings/objc/DOMImplementationFront.h:
+        * bridge/JavaAppletWidget.h:
+        * bridge/mac/WebCoreFrameNamespaces.mm:
+        * bridge/mac/WebCorePageBridge.mm:
+        (initializeLogChannel):
+        * bridge/mac/WebCoreStringTruncator.mm:
+        * bridge/mac/WebCoreViewFactory.m:
+        * config.h:
+        * css/css_base.h:
+        * css/css_valueimpl.h:
+        * css/csshelper.cpp:
+        * css/cssparser.h:
+        * dom/DOMImplementation.h:
+        * dom/Document.h:
+        * dom/NamedNodeMap.h:
+        * dom/Node.h:
+        * dom/NodeList.h:
+        * dom/QualifiedName.cpp:
+        * dom/Range.h:
+        * dom/StyledElement.cpp:
+        * dom/dom2_traversalimpl.h:
+        * dom/xml_tokenizer.h:
+        * editing/RebalanceWhitespaceCommand.cpp:
+        * editing/RemoveCSSPropertyCommand.cpp:
+        * editing/RemoveNodeAttributeCommand.cpp:
+        * editing/RemoveNodeCommand.cpp:
+        * editing/RemoveNodePreservingChildrenCommand.cpp:
+        * editing/ReplaceSelectionCommand.h:
+        * editing/Selection.cpp:
+        * editing/SetNodeAttributeCommand.cpp:
+        * editing/SplitElementCommand.cpp:
+        * editing/SplitTextNodeCommand.cpp:
+        * editing/SplitTextNodeContainingElementCommand.cpp:
+        * editing/TextIterator.h:
+        * editing/htmlediting.h:
+        * editing/markup.h:
+        * html/CanvasGradient.h:
+        * html/CanvasRenderingContext2D.h:
+        * html/CanvasStyle.cpp:
+        * html/HTMLCollection.h:
+        * html/HTMLElementFactory.h:
+        * kcanvas/KCanvasFilters.cpp:
+        * kcanvas/KCanvasPath.h:
+        * kcanvas/RenderPath.cpp:
+        * kcanvas/RenderSVGImage.cpp:
+        * kcanvas/RenderSVGText.cpp:
+        * kcanvas/device/quartz/KCanvasItemQuartz.mm:
+        * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
+        * kcanvas/device/quartz/QuartzSupport.mm:
+        * ksvg2/misc/KSVGTimeScheduler.h:
+        * ksvg2/misc/SVGDocumentExtensions.h:
+        * ksvg2/scripts/make_names.pl:
+        * ksvg2/svg/SVGDOMImplementation.cpp:
+        * ksvg2/svg/SVGExternalResourcesRequired.h:
+        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
+        * ksvg2/svg/SVGForeignObjectElement.cpp:
+        * ksvg2/svg/SVGImageElement.cpp:
+        * ksvg2/svg/SVGMaskElement.cpp:
+        * ksvg2/svg/SVGStyledElement.cpp:
+        * ksvg2/svg/SVGTests.h:
+        * ksvg2/svg/SVGTransform.h:
+        * ksvg2/svg/SVGTransformable.cpp:
+        * kwq/AccessibilityObjectCache.h:
+        * kwq/KWQCString.cpp:
+        * kwq/KWQFormData.mm:
+        * kwq/KWQListBox.mm:
+        * kwq/KWQResourceLoader.mm:
+        * kwq/KWQTextEdit.mm:
+        * loader/Cache.h:
+        * loader/CachedObject.h:
+        * loader/CachedObjectClientWalker.h:
+        * loader/Decoder.h:
+        * loader/DocLoader.h:
+        * loader/loader.cpp:
+        * loader/loader.h:
+        * page/DOMWindow.h:
+        * page/Frame.h:
+        * page/FramePrivate.h:
+        * page/FrameTree.cpp:
+        * page/Page.cpp:
+        * page/Page.h:
+        * page/Plugin.h:
+        * platform/Arena.cpp:
+        * platform/ArrayImpl.h:
+        * platform/AtomicString.cpp:
+        * platform/CharsetNames.cpp:
+        * platform/Color.cpp:
+        * platform/DeprecatedPtrListImpl.cpp:
+        * platform/DeprecatedValueListImpl.h:
+        * platform/FontFallbackList.h:
+        * platform/GraphicsContext.h:
+        * platform/GraphicsTypes.cpp:
+        * platform/Image.h:
+        * platform/KURL.cpp:
+        * platform/Logging.cpp:
+        * platform/Logging.h:
+        * platform/PlatformString.h:
+        * platform/PlugInInfoStore.h:
+        * platform/StreamingTextDecoder.cpp:
+        * platform/StreamingTextDecoder.h:
+        * platform/String.cpp:
+        * platform/StringHash.h:
+        * platform/StringImpl.cpp:
+        * platform/StringImpl.h:
+        * platform/TextEncoding.cpp:
+        * platform/Timer.cpp:
+        * platform/Timer.h:
+        * platform/TransferJob.h:
+        * platform/TransferJobInternal.h:
+        * platform/mac/BlockExceptions.mm:
+        * platform/mac/ColorMac.mm:
+        * platform/mac/FontData.mm:
+        * platform/mac/KURLMac.mm:
+        * platform/mac/QStringMac.mm:
+        * platform/mac/SharedTimerMac.cpp:
+        * platform/mac/TextEncodingMac.cpp:
+        * platform/mac/WebCoreImageRendererFactory.m:
+        * platform/mac/WebCoreKeyGenerator.m:
+        * platform/mac/WebCoreTextArea.mm:
+        * platform/mac/WebCoreTextField.mm:
+        * platform/mac/WebTextRendererFactory.h:
+        * platform/mac/WebTextRendererFactory.mm:
+        * platform/win/TemporaryLinkStubs.cpp:
+        (JavaAppletWidget::JavaAppletWidget):
+        * rendering/InlineTextBox.cpp:
+        * rendering/RenderText.cpp:
+        * rendering/RenderTreeAsText.cpp:
+        * rendering/bidi.cpp:
+        * xml/XSLTProcessor.h:
+        * xpath/impl/XPathExpressionNode.h:
+        * xpath/impl/XPathParser.h:
+        * xpath/impl/XPathPath.h:
+        * xpath/impl/XPathUtil.h:
+
+2006-05-09  Anders Carlsson  
+
+        Reviewed by Maciej.
+
+        http://bugs.webkit.org/show_bug.cgi?id=8803
+        XPath query for empty attributes crashes in XPath::StringExpression::StringExpression
+        
+        * xpath/impl/XPathParser.cpp:
+        (WebCore::XPath::Parser::lexString):
+        Make sure an empty string is returned instead of a null string.
+        
+        (WebCore::XPath::Parser::lex):
+        Only assign the string if it isn't null.
+
+2006-05-09  Alexey Proskuryakov  
+
+        Reviewed by Darin.
+
+        - http://bugs.webkit.org/show_bug.cgi?id=8769
+          TextEncoding::fromUnicode() - support non-BMP characters and convert to NFC
+
+        Fix the ICU code path, too (currently unused on the Mac).
+
+        * platform/TextEncoding.cpp:
+        (WebCore::TextEncoding::fromUnicode): Normalize the string.
+
+2006-05-08  Maciej Stachowiak  
+
+        Reviewed by Tim Hatcher.
+        
+        - refactor things so that WebKit doesn't save a WebResource for every loaded URL,
+        but rather retrieves the data from the WebCore cache as needed.
+        http://bugs.webkit.org/show_bug.cgi?id=8802
+
+        * bridge/mac/WebCoreFrameBridge.h:
+        * bridge/mac/WebCoreFrameBridge.mm:
+        (-[WebCoreFrameBridge getData:andResponse:forURL:]):
+        (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
+        * loader/Cache.cpp:
+        (WebCore::Cache::updateCacheStatus):
+        (WebCore::Cache::requestImage):
+        (WebCore::Cache::requestStyleSheet):
+        (WebCore::Cache::requestScript):
+        (WebCore::Cache::requestXSLStyleSheet):
+        (WebCore::Cache::requestXBLDocument):
+        * loader/Cache.h:
+        * loader/CachedResource.cpp: Added.
+        * loader/CachedResource.h: Added.
+        * loader/CachedResourceClient.h: Added.
+        * loader/CachedResourceClientWalker.cpp: Added.
+        * loader/CachedResourceClientWalker.h: Added.
+        * loader/DocLoader.cpp:
+        (WebCore::DocLoader::setAutoloadImages):
+        (WebCore::DocLoader::removeCachedObject):
+        * loader/DocLoader.h:
+        (WebCore::DocLoader::cachedObject):
+        (WebCore::DocLoader::allCachedObjects):
+
+2006-05-08  Levi Weintraub  
+
+        Reviewed by justin.
+
+        * editing/TextIterator.cpp:
+        (WebCore::shouldEmitSpaceBeforeAndAfterNode):
+        Returns true when the node should have a leading and trailing space. Currently only
+        used for inline tables. The function shouldEmitNewlinesBeforeAndAfterNode has a
+        fallback for nodes with no RenderObject, but the inline property doesn't really
+        have a meaning without one.
+        (WebCore::TextIterator::handleNonTextNode):
+        Checks shouldEmitSpaceBeforeAndAfterNode and inserts a space if necessary.
+        (WebCore::TextIterator::exitNode):
+        Checks shouldEmitSpaceBeforeAndAfterNode and inserts a space if necessary.
+
+2006-05-08  Anders Carlsson  
+
+        Try fixing the Win32 build
+        
+        * WebCore.vcproj/WebCore/WebCore.vcproj:
+        Add XPath files to project.
+
+2006-05-08  Anders Carlsson  
+
+        Reviewed by Darin, Eric and Maciej.
+
+        http://bugs.webkit.org/show_bug.cgi?id=6638
+        Support Mozilla's XPathEvaluator object.
+        
+        * DerivedSources.make:
+        Generate XPath grammar, and JavaScript wrappers.
+        
+        * WebCore.xcodeproj/project.pbxproj:
+        Add new files to project
+        
+        * bindings/js/kjs_binding.cpp:
+        (KJS::):
+        (KJS::setDOMException):
+        Handle setting XPath exceptions.
+        
+        * bindings/objc/DOM.mm:
+        Just return nil for now when trying to create a wrapper for 
+        XPath namespace nodes.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        Add XPath types. Also add a "CanBeConstructed" extended attribute
+        for interfaces that can be constructed directly.
+        
+        * bridge/mac/WebCorePageBridge.mm:
+        (initializeLoggingChannelsIfNecessary):
+        Initialize LogXPath channel.
+        
+        * dom/DOMImplementation.cpp:
+        (WebCore::DOMImplementation::hasFeature):
+        Support "xpath" version "3.0".
+        
+        * dom/Document.cpp:
+        (WebCore::Document::Document):
+        
+        (WebCore::Document::importNode):
+        Ignore XPath namespace nodes.
+        
+        (WebCore::Document::createExpression):
+        (WebCore::Document::createNSResolver):
+        (WebCore::Document::evaluate):
+        New functions which call down to a lazily created XPathEvaluator.
+
+        * dom/Document.h:
+        Add function declarations.
+        
+        * dom/Document.idl:
+        Add XPath methods.
+        
+        * dom/Node.h:
+        (WebCore::Node::):
+        Add XPATH_NAMESPACE_NODE type.
+        
+        * editing/markup.cpp:
+        (WebCore::startMarkup):
+        Ignore XPath namespace nodes.
+        
+        * page/DOMWindow.idl:
+        Add constructors for XPathEvaluator and XPathResult.
+        
+        * platform/Logging.cpp:
+        * platform/Logging.h:
+        Add XPath log channel
+
+        * xpath: Added.
+        * xpath/XPathEvaluator.cpp: Added.
+        (WebCore::XPathEvaluator::createExpression):
+        (WebCore::XPathEvaluator::createNSResolver):
+        (WebCore::XPathEvaluator::evaluate):
+        * xpath/XPathEvaluator.h: Added.
+        (WebCore::):
+        * xpath/XPathEvaluator.idl: Added.
+        * xpath/XPathExpression.cpp: Added.
+        (WebCore::XPathExpression::createExpression):
+        (WebCore::XPathExpression::~XPathExpression):
+        (WebCore::XPathExpression::evaluate):
+        * xpath/XPathExpression.h: Added.
+        * xpath/XPathExpression.idl: Added.
+        * xpath/XPathNSResolver.cpp: Added.
+        (WebCore::XPathNSResolver::XPathNSResolver):
+        (WebCore::XPathNSResolver::lookupNamespaceURI):
+        * xpath/XPathNSResolver.h: Added.
+        * xpath/XPathNSResolver.idl: Added.
+        * xpath/XPathNamespace.cpp: Added.
+        (WebCore::XPathNamespace::XPathNamespace):
+        (WebCore::XPathNamespace::~XPathNamespace):
+        (WebCore::XPathNamespace::ownerDocument):
+        (WebCore::XPathNamespace::ownerElement):
+        (WebCore::XPathNamespace::prefix):
+        (WebCore::XPathNamespace::nodeName):
+        (WebCore::XPathNamespace::nodeValue):
+        (WebCore::XPathNamespace::namespaceURI):
+        (WebCore::XPathNamespace::nodeType):
+        * xpath/XPathNamespace.h: Added.
+        * xpath/XPathResult.cpp: Added.
+        (WebCore::InvalidatingEventListener::InvalidatingEventListener):
+        (WebCore::InvalidatingEventListener::handleEvent):
+        (WebCore::XPathResult::XPathResult):
+        (WebCore::XPathResult::~XPathResult):
+        (WebCore::XPathResult::convertTo):
+        (WebCore::XPathResult::resultType):
+        (WebCore::XPathResult::numberValue):
+        (WebCore::XPathResult::stringValue):
+        (WebCore::XPathResult::booleanValue):
+        (WebCore::XPathResult::singleNodeValue):
+        (WebCore::XPathResult::invalidateIteratorState):
+        (WebCore::XPathResult::invalidIteratorState):
+        (WebCore::XPathResult::snapshotLength):
+        (WebCore::XPathResult::iterateNext):
+        (WebCore::XPathResult::snapshotItem):
+        * xpath/XPathResult.h: Added.
+        (WebCore::XPathResult::):
+        * xpath/XPathResult.idl: Added.
+        * xpath/impl: Added.
+        * xpath/impl/XPathExpressionNode.cpp: Added.
+        (WebCore::XPath::Expression::evaluationContext):
+        (WebCore::XPath::Expression::Expression):
+        (WebCore::XPath::Expression::~Expression):
+        (WebCore::XPath::Expression::evaluate):
+        (WebCore::XPath::Expression::addSubExpression):
+        (WebCore::XPath::Expression::optimize):
+        (WebCore::XPath::Expression::subExprCount):
+        (WebCore::XPath::Expression::subExpr):
+        (WebCore::XPath::Expression::isConstant):
+        * xpath/impl/XPathExpressionNode.h: Added.
+        (WebCore::XPath::EvaluationContext::EvaluationContext):
+        * xpath/impl/XPathFunctions.cpp: Added.
+        (WebCore::XPath::Interval::Interval):
+        (WebCore::XPath::Interval::contains):
+        (WebCore::XPath::Interval::asString):
+        (WebCore::XPath::Function::setArguments):
+        (WebCore::XPath::Function::setName):
+        (WebCore::XPath::Function::arg):
+        (WebCore::XPath::Function::argCount):
+        (WebCore::XPath::Function::name):
+        (WebCore::XPath::FunLast::doEvaluate):
+        (WebCore::XPath::FunLast::isConstant):
+        (WebCore::XPath::FunPosition::doEvaluate):
+        (WebCore::XPath::FunPosition::isConstant):
+        (WebCore::XPath::FunLocalName::isConstant):
+        (WebCore::XPath::FunLocalName::doEvaluate):
+        (WebCore::XPath::FunNamespaceURI::isConstant):
+        (WebCore::XPath::FunNamespaceURI::doEvaluate):
+        (WebCore::XPath::FunName::isConstant):
+        (WebCore::XPath::FunName::doEvaluate):
+        (WebCore::XPath::FunCount::doEvaluate):
+        (WebCore::XPath::FunCount::isConstant):
+        (WebCore::XPath::FunString::doEvaluate):
+        (WebCore::XPath::FunConcat::doEvaluate):
+        (WebCore::XPath::FunStartsWith::doEvaluate):
+        (WebCore::XPath::FunContains::doEvaluate):
+        (WebCore::XPath::FunSubstringBefore::doEvaluate):
+        (WebCore::XPath::FunSubstringAfter::doEvaluate):
+        (WebCore::XPath::FunSubstring::doEvaluate):
+        (WebCore::XPath::FunStringLength::doEvaluate):
+        (WebCore::XPath::FunNormalizeSpace::doEvaluate):
+        (WebCore::XPath::FunTranslate::doEvaluate):
+        (WebCore::XPath::FunBoolean::doEvaluate):
+        (WebCore::XPath::FunNot::doEvaluate):
+        (WebCore::XPath::FunTrue::doEvaluate):
+        (WebCore::XPath::FunTrue::isConstant):
+        (WebCore::XPath::FunLang::doEvaluate):
+        (WebCore::XPath::FunLang::isConstant):
+        (WebCore::XPath::FunFalse::doEvaluate):
+        (WebCore::XPath::FunFalse::isConstant):
+        (WebCore::XPath::FunNumber::doEvaluate):
+        (WebCore::XPath::FunSum::doEvaluate):
+        (WebCore::XPath::FunFloor::doEvaluate):
+        (WebCore::XPath::FunCeiling::doEvaluate):
+        (WebCore::XPath::FunRound::doEvaluate):
+        (WebCore::XPath::FunctionLibrary::self):
+        (WebCore::XPath::FunctionLibrary::FunctionLibrary):
+        (WebCore::XPath::FunctionLibrary::createFunction):
+        * xpath/impl/XPathFunctions.h: Added.
+        * xpath/impl/XPathGrammar.y: Added.
+        * xpath/impl/XPathParser.cpp: Added.
+        (WebCore::XPath::):
+        (WebCore::XPath::Parser::charCat):
+        (WebCore::XPath::Parser::isAxisName):
+        (WebCore::XPath::Parser::isNodeTypeName):
+        (WebCore::XPath::Parser::isOperatorContext):
+        (WebCore::XPath::Parser::skipWS):
+        (WebCore::XPath::Parser::makeTokenAndAdvance):
+        (WebCore::XPath::Parser::makeIntTokenAndAdvance):
+        (WebCore::XPath::Parser::peekAheadHelper):
+        (WebCore::XPath::Parser::peekCurHelper):
+        (WebCore::XPath::Parser::lexString):
+        (WebCore::XPath::Parser::lexNumber):
+        (WebCore::XPath::Parser::lexNCName):
+        (WebCore::XPath::Parser::lexQName):
+        (WebCore::XPath::Parser::nextTokenInternal):
+        (WebCore::XPath::Parser::nextToken):
+        (WebCore::XPath::Parser::Parser):
+        (WebCore::XPath::Parser::reset):
+        (WebCore::XPath::Parser::lex):
+        (WebCore::XPath::Parser::parseStatement):
+        (WebCore::XPath::Parser::registerParseNode):
+        (WebCore::XPath::Parser::unregisterParseNode):
+        (WebCore::XPath::Parser::registerPredicateVector):
+        (WebCore::XPath::Parser::unregisterPredicateVector):
+        (WebCore::XPath::Parser::registerExpressionVector):
+        (WebCore::XPath::Parser::unregisterExpressionVector):
+        (WebCore::XPath::Parser::registerString):
+        (WebCore::XPath::Parser::unregisterString):
+        * xpath/impl/XPathParser.h: Added.
+        (WebCore::XPath::Token::Token):
+        (WebCore::XPath::Parser::):
+        (WebCore::XPath::Parser::current):
+        * xpath/impl/XPathPath.cpp: Added.
+        (WebCore::XPath::Filter::Filter):
+        (WebCore::XPath::Filter::~Filter):
+        (WebCore::XPath::Filter::doEvaluate):
+        (WebCore::XPath::LocationPath::LocationPath):
+        (WebCore::XPath::LocationPath::~LocationPath):
+        (WebCore::XPath::LocationPath::optimize):
+        (WebCore::XPath::LocationPath::doEvaluate):
+        (WebCore::XPath::Path::Path):
+        (WebCore::XPath::Path::~Path):
+        (WebCore::XPath::Path::doEvaluate):
+        * xpath/impl/XPathPath.h: Added.
+        * xpath/impl/XPathPredicate.cpp: Added.
+        (WebCore::XPath::Number::Number):
+        (WebCore::XPath::Number::isConstant):
+        (WebCore::XPath::Number::doEvaluate):
+        (WebCore::XPath::StringExpression::StringExpression):
+        (WebCore::XPath::StringExpression::isConstant):
+        (WebCore::XPath::StringExpression::doEvaluate):
+        (WebCore::XPath::Negative::doEvaluate):
+        (WebCore::XPath::NumericOp::NumericOp):
+        (WebCore::XPath::NumericOp::doEvaluate):
+        (WebCore::XPath::EqTestOp::EqTestOp):
+        (WebCore::XPath::EqTestOp::doEvaluate):
+        (WebCore::XPath::LogicalOp::LogicalOp):
+        (WebCore::XPath::LogicalOp::shortCircuitOn):
+        (WebCore::XPath::LogicalOp::isConstant):
+        (WebCore::XPath::LogicalOp::doEvaluate):
+        (WebCore::XPath::Union::doEvaluate):
+        (WebCore::XPath::Predicate::Predicate):
+        (WebCore::XPath::Predicate::~Predicate):
+        (WebCore::XPath::Predicate::evaluate):
+        (WebCore::XPath::Predicate::optimize):
+        * xpath/impl/XPathPredicate.h: Added.
+        (WebCore::XPath::NumericOp::):
+        (WebCore::XPath::EqTestOp::):
+        (WebCore::XPath::LogicalOp::):
+        * xpath/impl/XPathStep.cpp: Added.
+        (WebCore::XPath::Step::axisAsString):
+        (WebCore::XPath::Step::Step):
+        (WebCore::XPath::Step::~Step):
+        (WebCore::XPath::Step::evaluate):
+        (WebCore::XPath::Step::nodesInAxis):
+        (WebCore::XPath::Step::nodeTestMatches):
+        (WebCore::XPath::Step::optimize):
+        (WebCore::XPath::Step::namespaceFromNodetest):
+        (WebCore::XPath::Step::primaryNodeType):
+        * xpath/impl/XPathStep.h: Added.
+        (WebCore::XPath::Step::):
+        * xpath/impl/XPathUtil.cpp: Added.
+        (WebCore::XPath::isRootDomNode):
+        (WebCore::XPath::stringValue):
+        (WebCore::XPath::isValidContextNode):
+        * xpath/impl/XPathUtil.h: Added.
+        * xpath/impl/XPathValue.cpp: Added.
+        (WebCore::XPath::Value::Value):
+        (WebCore::XPath::Value::type):
+        (WebCore::XPath::Value::isNodeVector):
+        (WebCore::XPath::Value::isBoolean):
+        (WebCore::XPath::Value::isNumber):
+        (WebCore::XPath::Value::isString):
+        (WebCore::XPath::Value::toNodeVector):
+        (WebCore::XPath::Value::toBoolean):
+        (WebCore::XPath::Value::toNumber):
+        (WebCore::XPath::Value::toString):
+        * xpath/impl/XPathValue.h: Added.
+        (WebCore::XPath::Value::):
+        * xpath/impl/XPathVariableReference.cpp: Added.
+        (WebCore::XPath::VariableReference::VariableReference):
+        (WebCore::XPath::VariableReference::isConstant):
+        (WebCore::XPath::VariableReference::doEvaluate):
+        * xpath/impl/XPathVariableReference.h: Added.
+
+2006-05-08  David Hyatt  
+
+        Comprehensive box-sizing fix.  This patch changes all form controls to
+        have the right box-sizing values (text fields and text areas actually only
+        use border-box in quirks mode now, and image buttons never use border-box).
+
+        Tables are supposed to use border-box box-sizing as well, but that's a scary
+        enough change that I'm saving it for a separate patch.
+
+        Reviewed by mjs
+
+        * css/html4.css:
+        * css/quirks.css:
+
+2006-05-07  Darin Adler  
+        
+        Suggested by Mitz. Reviewed and landed by Maciej.
+        
+        * dom/Document.cpp: (WebCore::Document::formElementsState): Fixed mistake where the
+        vector has an initial size and instead should have an initial capacity. Harmless in
+        a way, but hurts performance.
+        
+2006-05-07  David Hyatt  
+
+        Fix for bugzilla bug 8060.
+
+        Fixed width table cells weren't having their border widths
+        included in the effective width of the column (and thus could end up being
+        too small).
+
+        Reviewed by darin
+
+        Added fast/tables/fixed-cell-growth.html
+
+        * rendering/table_layout.cpp:
+        (WebCore::AutoTableLayout::recalcColumn):
+
+2006-05-07  Alexey Proskuryakov  
+
+        Reviewed by Darin.
+
+        - http://bugs.webkit.org/show_bug.cgi?id=8769
+          TextEncoding::fromUnicode() - support non-BMP characters and convert to NFC
+
+        Tests: 
+        * fast/forms/form-data-encoding.html
+        * fast/forms/form-data-encoding-2.html
+
+        * platform/mac/TextEncodingMac.cpp:
+        (WebCore::TextEncoding::fromUnicode): Normalize the string; handle surrogate pairs.
+
+2006-05-06  David Hyatt  
+
+        Rename WebCoreFont to FontPlatformData and WebTextRenderer to FontData.  Merge them into the
+        headers (uncleanly with ifdefs at the moment, so I can see what I'm working towards).
+
+        Reviewed by mjs
+
+        * ChangeLog:
+        * WebCore.vcproj/WebCore/WebCore.vcproj:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bridge/mac/WebCoreStringTruncator.mm:
+        (stringWidth):
+        (truncateString):
+        (+[WebCoreStringTruncator widthOfString:font:]):
+        * kwq/KWQComboBox.mm:
+        (QComboBox::sizeHint):
+        * kwq/KWQLineEdit.mm:
+        (QLineEdit::sizeForCharacterWidth):
+        * kwq/KWQListBox.mm:
+        (itemTextRenderer):
+        (groupLabelTextRenderer):
+        (QListBox::sizeForNumberOfLines):
+        (-[KWQTableView drawRow:clipRect:]):
+        * platform/Font.cpp:
+        (WebCore::m_wordSpacing):
+        (WebCore::Font::Font):
+        (WebCore::Font::operator=):
+        (WebCore::Font::update):
+        (WebCore::Font::ascent):
+        (WebCore::Font::descent):
+        (WebCore::Font::lineSpacing):
+        (WebCore::Font::xHeight):
+        (WebCore::Font::isFixedPitch):
+        * platform/Font.h:
+        (WebCore::Font::getNSFont):
+        * platform/FontData.h:
+        (WebCore::FontData::ascent):
+        (WebCore::FontData::descent):
+        (WebCore::FontData::lineSpacing):
+        (WebCore::FontData::lineGap):
+        (WebCore::FontData::misspellingLineThickness):
+        (WebCore::FontData::misspellingLinePatternWidth):
+        (WebCore::FontData::misspellingLinePatternGapWidth):
+        * platform/FontDataSet.h: Removed.
+        * platform/FontFallbackList.h: Added.
+        * platform/FontPlatformData.h:
+        * platform/mac/FontData.mm: Added.
+        (WebCore::WebCoreInitializeFont):
+        (WebCore::WebCoreInitializeEmptyTextGeometry):
+        (WebCore::widthForGlyph):
+        (WebCore::overrideLayoutOperation):
+        (WebCore::FontData::~FontData):
+        (WebCore::FontData::xHeight):
+        (WebCore::FontData::drawRun):
+        (WebCore::FontData::floatWidthForRun):
+        (WebCore::FontData::drawLineForCharacters):
+        (WebCore::FontData::selectionRectForRun):
+        (WebCore::FontData::drawHighlightForRun):
+        (WebCore::FontData::drawLineForMisspelling):
+        (WebCore::FontData::pointToOffset):
+        (WebCore::FontData::setAlwaysUseATSU):
+        (WebCore::getSmallCapsRenderer):
+        (WebCore::findSubstituteFont):
+        (WebCore::rendererForAlternateFont):
+        (WebCore::findSubstituteRenderer):
+        (WebCore::computeWidthForSpace):
+        (WebCore::setUpFont):
+        (WebCore::CG_drawHighlight):
+        (WebCore::CG_selectionRect):
+        (WebCore::CG_draw):
+        (WebCore::CG_floatWidthForRun):
+        (WebCore::updateGlyphMapEntry):
+        (WebCore::extendGlyphMap):
+        (WebCore::extendWidthMap):
+        (WebCore::initializeATSUStyle):
+        (WebCore::createATSULayoutParameters):
+        (WebCore::getTextBounds):
+        (WebCore::ATSU_floatWidthForRun):
+        (WebCore::ATSU_drawHighlight):
+        (WebCore::ATSU_selectionRect):
+        (WebCore::ATSU_draw):
+        (WebCore::ATSU_pointToOffset):
+        (WebCore::advanceWidthIteratorOneCharacter):
+        (WebCore::CG_pointToOffset):
+        (WebCore::glyphForCharacter):
+        (WebCore::initializeWidthIterator):
+        (WebCore::advanceWidthIterator):
+        * platform/mac/FontMac.mm:
+        (WebCore::m_font):
+        (WebCore::FontFallbackList::~FontFallbackList):
+        (WebCore::FontFallbackList::platformFont):
+        (WebCore::FontFallbackList::primaryFont):
+        (WebCore::FontFallbackList::determinePitch):
+        (WebCore::FontFallbackList::invalidate):
+        (WebCore::Font::platformFont):
+        (WebCore::Font::selectionRectForText):
+        (WebCore::Font::drawText):
+        (WebCore::Font::drawHighlightForText):
+        (WebCore::Font::drawLineForText):
+        (WebCore::Font::drawLineForMisspelling):
+        (WebCore::Font::misspellingLineThickness):
+        (WebCore::Font::floatWidth):
+        (WebCore::Font::checkSelectionPoint):
+        * platform/mac/WebCoreTextRenderer.mm:
+        (WebCoreDrawTextAtPoint):
+        (WebCoreTextFloatWidth):
+        (WebCoreSetAlwaysUseATSU):
+        * platform/mac/WebTextRenderer.h: Removed.
+        * platform/mac/WebTextRenderer.mm: Removed.
+        * platform/mac/WebTextRendererFactory.h:
+        * platform/mac/WebTextRendererFactory.mm:
+        (-[WebTextRendererFactory isFontFixedPitch:]):
+        (-[WebTextRendererFactory init]):
+        (-[WebTextRendererFactory rendererWithFont:]):
+        (-[WebTextRendererFactory fontWithFamilies:traits:size:]):
+        * platform/win/FontWin.cpp:
+        (WebCore::FontFallbackList::~FontFallbackList):
+        (WebCore::FontFallbackList::determinePitch):
+        (WebCore::FontFallbackList::invalidate):
+        (WebCore::FontFallbackList::primaryFont):
+        (WebCore::Font::floatWidth):
+        (WebCore::Font::drawText):
+        (WebCore::Font::drawHighlightForText):
+        (WebCore::Font::selectionRectForText):
+        (WebCore::Font::checkSelectionPoint):
+
+2006-05-05  Darin Adler  
+
+        - fix the Windows build
+
+        * platform/win/FontWin.cpp: (WebCore::getFontData):
+
+2006-05-05  Darin Adler  
+
+        * platform/SegmentedString.h: (WebCore::SegmentedString::advance): Oops!
+        Removed an extra ! that was causing everything to fail.
+
+2006-05-05  Darin Adler  
+
+        Reviewed by Tim Hatcher.
+
+        - remove a few of the stranger features of QChar on the road to
+          eventually replacing it with an integer type (probably ICU's UChar)
+
+        * platform/DeprecatedString.h: Remove SpecialCharacter, byteOrderMark, null,
+        cell, row, isNull, mirrored, mirroredChar, operator char, >, >=, <, and <=
+        from QChar. Also removed the many unneeded friend declarations. Remove findArg
+        and arg from DeprecatedString.
+
+        * dom/Document.cpp: (WebCore::Document::parseQualifiedName): Cast the type of the
+        buffer before invoking the U16_NEXT function. Turns out this was converting each
+        QChar to a char and back to a UChar, which means it caused a bug with characters
+        that are U+0100 or greater.
+
+        * css/csshelper.cpp: (WebCore::parseURL):
+        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::constrainValue):
+        * platform/StringImpl.cpp: (WebCore::StringImpl::toCoordsArray):
+        * xml/xmlhttprequest.cpp: (WebCore::getCharset):
+        Add some calls to unicode() since we don't have comparison operators any more.
+
+        * dom/StyledElement.cpp:
+        (WebCore::toHex): Rewrote to just take a UChar parameter.
+        (WebCore::StyledElement::addCSSColor): Call toHex on the character code.
+
+        * bridge/mac/WebCoreFrameBridge.mm:
+        (-[WebCoreFrameBridge smartInsertForString:replacingRange:beforeString:afterString:]):
+        * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply):
+        * editing/TextIterator.cpp: (WebCore::TextIterator::handleTextBox):
+        * platform/SegmentedString.h:
+        (WebCore::SegmentedString::push):
+        (WebCore::SegmentedString::advance):
+        (WebCore::SegmentedString::escaped):
+        * platform/SegmentedString.cpp:
+        (WebCore::SegmentedString::length):
+        (WebCore::SegmentedString::append):
+        (WebCore::SegmentedString::prepend):
+        (WebCore::SegmentedString::toString):
+        Changed calls to isNull() to instead just use unicode() and check for 0.
+
+        * html/HTMLTokenizer.cpp:
+        (WebCore::HTMLTokenizer::parseEntity): Change callers that used cell and row to
+        just use unicode() instead.
+        (WebCore::HTMLTokenizer::parseTag): Ditto.
+
+        * loader/Decoder.cpp: (Decoder::decode): Changed code that did a type cast to
+        unsigned char to instead call unicode().
+
+        * platform/DeprecatedString.cpp:
+        (KWQStringData::makeAscii): Call latin1() instead of relying on the conversion operator.
+        (DeprecatedString::DeprecatedString): Call unicode() instead of relying on the conversion
+        operator (the character has been tested and is known to be ASCII).
+        (DeprecatedString::at): Use 0 instead of QChar::null.
+        (DeprecatedString::compare): Use unicode() so we can do comparison since we don't have
+        comparison operators any more.
+        (DeprecatedString::find): Call unicode() instead of relying on the conversion
+        operator (the character has been tested and is known to be ASCII).
+        (DeprecatedString::findRev): Ditto.
+        (DeprecatedString::copyLatin1): Call latin1() instead of relying on the conversion operator.
+        (DeprecatedString::lower): Call unicode() instead of relying on the conversion
+        operator (the character has been tested and is known to be ASCII).
+        (DeprecatedString::insert): Ditto.
+        (DeprecatedString::replace): Ditto.
+        (DeprecatedString::fill): Ditto.
+        (DeprecatedString::append): Ditto.
+
+        * html/html_inlineimpl.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
+        Eliminate the one use of DeprecatedString::arg.
+
+        - other cleanup
+
+        * kwq/KWQCString.cpp: Remove unneeded "using" directive.
+
+        * html/HTMLElementFactory.cpp:
+        (WebCore::htmlConstructor):
+        (WebCore::headConstructor):
+        (WebCore::bodyConstructor):
+        (WebCore::baseConstructor):
+        (WebCore::linkConstructor):
+        (WebCore::metaConstructor):
+        (WebCore::styleConstructor):
+        (WebCore::titleConstructor):
+        (WebCore::frameConstructor):
+        (WebCore::framesetConstructor):
+        (WebCore::iframeConstructor):
+        (WebCore::formConstructor):
+        (WebCore::buttonConstructor):
+        (WebCore::inputConstructor):
+        (WebCore::isindexConstructor):
+        (WebCore::fieldsetConstructor):
+        (WebCore::labelConstructor):
+        (WebCore::legendConstructor):
+        (WebCore::optgroupConstructor):
+        (WebCore::optionConstructor):
+        (WebCore::selectConstructor):
+        (WebCore::textareaConstructor):
+        (WebCore::dlConstructor):
+        (WebCore::ulConstructor):
+        (WebCore::olConstructor):
+        (WebCore::dirConstructor):
+        (WebCore::menuConstructor):
+        (WebCore::liConstructor):
+        (WebCore::blockquoteConstructor):
+        (WebCore::divConstructor):
+        (WebCore::headingConstructor):
+        (WebCore::hrConstructor):
+        (WebCore::paragraphConstructor):
+        (WebCore::preConstructor):
+        (WebCore::basefontConstructor):
+        (WebCore::fontConstructor):
+        (WebCore::modConstructor):
+        (WebCore::anchorConstructor):
+        (WebCore::imageConstructor):
+        (WebCore::mapConstructor):
+        (WebCore::areaConstructor):
+        (WebCore::canvasConstructor):
+        (WebCore::appletConstructor):
+        (WebCore::embedConstructor):
+        (WebCore::objectConstructor):
+        (WebCore::paramConstructor):
+        (WebCore::scriptConstructor):
+        (WebCore::tableConstructor):
+        (WebCore::tableCaptionConstructor):
+        (WebCore::tableColConstructor):
+        (WebCore::tableRowConstructor):
+        (WebCore::tableCellConstructor):
+        (WebCore::tableSectionConstructor):
+        (WebCore::brConstructor):
+        (WebCore::quoteConstructor):
+        (WebCore::marqueeConstructor):
+        Mark functions static, remove unused parameters, change from docPtr to doc.
+
+2006-05-05  Alexey Proskuryakov  
+
+        Reviewed by Maciej.
+
+        - http://bugs.webkit.org/show_bug.cgi?id=8626
+          Strict mode erroneously triggered by a broken comment
+
+        Test: fast/parser/broken-comments-vs-parsing-mode.html
+
+        * page/Frame.cpp:
+        (WebCore::Frame::endIfNotLoading): Call determineParseMode() if needed.
+
+2006-05-05  Darin Adler  
+
+        - fix the Windows build (this time for sure)
+
+        * platform/win/TemporaryLinkStubs.cpp:
+        (GraphicsContext::translate): Added.
+        (GraphicsContext::rotate): Ditto.
+        (GraphicsContext::scale): Ditto.
+
+2006-05-05  Darin Adler  
+
+        - fix the Windows build
+
+        * bridge/win/FrameWin.h: Add Element* parameter to createPlugin.
+        * platform/win/TemporaryLinkStubs.cpp: (FrameWin::createPlugin): Ditto.
+
+2006-05-05  Darin Adler  
+
+        - get the Windows build a little closer to building again
+
+        * platform/cairo/GraphicsContextCairo.cpp:
+        (WebCore::GraphicsContext::drawRect): Call alpha to check if the color is transparent.
+        Call setColor directly instead of setColorFromPen.
+        (WebCore::GraphicsContext::drawLine): Ditto.
+        (WebCore::GraphicsContext::drawEllipse): Ditto.
+        (WebCore::GraphicsContext::drawArc): Ditto.
+        (WebCore::GraphicsContext::drawConvexPolygon): Ditto.
+        * platform/win/TemporaryLinkStubs.cpp: (JavaAppletWidget::JavaAppletWidget): Updated parameter types.
+
+2006-05-05  Darin Adler  
+
+        Reviewed by Adele.
+
+        - fixed data structure used to save/restore form element state to remove the
+          O(n^2) algorithm and remove anomalies in how it works
+        - fix http://bugs.webkit.org/show_bug.cgi?id=8683
+          REGRESSION: imdb search button has "Submit" overload after going back
+
+        * manual-tests/form-value-restore.html: Added.
+
+        * bridge/mac/WebCoreFrameBridge.mm:
+        (-[WebCoreFrameBridge saveDocumentState]): Rewrote to call the new formElementsState
+        function on the document and also to convert null strings to NSNull instead of empty
+        NSString objects.
+        (-[WebCoreFrameBridge restoreDocumentState]): Ditto, with the setStateForNewFormElements
+        function.
+
+        * dom/Document.h: Added FormElementKey, FormElementKeyHash, and FormElementKeyHashTraits
+        for use in the hash map. Made readyState, inputEncoding, defaultCharset, charset,
+        characterSet, getElementByAccessKey, haveStylesheetsLoaded, usesDescendantRules,
+        usesSiblingRules, inCompatMode, inAlmostStrictMode, inStrictMode, preferredStylesheetSet,
+        selectedStylesheetSet, and getCSSTarget all const member functions. Removed the unused
+        nextState function. Renamed registerMaintainsState and deregisterMaintainsState to
+        registerFormElementWithState and HTMLGenericFormElement and changed them to use form
+        elements rather than arbitrary DOM nodes. Replaced docState with formElementsState and
+        setRestoreState and restoreState with setStateForNewFormElements, hasStateForNewFormElements,
+        and takeStateForFormElement. Replaced m_maintainsState with m_formElementsWithState,
+        m_state with m_stateForNewFormElements. Made m_elementsByAccessKey and m_accessKeyMapValid
+        mutable. Removed unused m_elementNames, m_elementNameAlloc, m_elementNameCount, m_attrNames,
+        m_attrNameAlloc, m_attrNameCount, m_namespaceURIs, m_namespaceURIAlloc, m_namespaceURICount.
+
+        * dom/Document.cpp:
+        (WebCore::Document::Document): Remove initialization of long-obsolete m_elementNames and
+        m_attrNames.
+        (WebCore::Document::~Document): Remove destruction of same.
+        (WebCore::Document::readyState): Made const.
+        (WebCore::Document::inputEncoding): Ditto.
+        (WebCore::Document::defaultCharset): Ditto.
+        (WebCore::Document::getElementByAccessKey): Ditto.
+        (WebCore::Document::preferredStylesheetSet): Ditto.
+        (WebCore::Document::selectedStylesheetSet): Ditto.
+        (WebCore::Document::getCSSTarget): Ditto.
+        (WebCore::Document::formElementsState): Added. Replaces the old docState function.
+        Builds a vector of strings, with 3 strings for each form element containing the
+        name, type, and state value.
+        (WebCore::Document::setStateForNewFormElements): Added. Converts the state vector
+        into a hash map, considering the scheme with 3 strings for form element used above.
+        (WebCore::Document::hasStateForNewFormElements): Added.
+        (WebCore::Document::takeStateForFormElement): Added. Given a name and type, looks
+        up the values in the hash map and "peels off" the last one.
+        (WebCore::FormElementKey::FormElementKey): Added.
+        (WebCore::FormElementKey::~FormElementKey): Added.
+        (WebCore::FormElementKey::operator=): Added.
+        (WebCore::FormElementKey::ref): Added.
+        (WebCore::FormElementKey::deref): Added.
+        (WebCore::FormElementKeyHash::hash): Added.
+        (WebCore::FormElementKeyHashTraits::deletedValue): Added.
+
+        * dom/Element.h: Removed state function.
+        * dom/Node.h: Removed maintainsState, state, and restoreState functions.
+        * dom/Node.cpp: Ditto.
+
+        * dom/QualifiedName.cpp: Reformatted.
+        (WebCore::hashComponents): Removed code to handle buffers that are not multiples
+        of 4 bytes, since a QualifiedName is guaranteed to be; also asserted that fact.
+
+        * html/HTMLParser.cpp:
+        (WebCore::HTMLParser::insertNode): Remove code to restore state; that's now handled
+        by closeRenderer.
+        (WebCore::HTMLParser::popOneBlock): Ditto.
+
+        * html/HTMLFormElement.cpp: Added include of HTMLInputElement.h.
+
+        * html/HTMLGenericFormElement.h: Changed form to be a const member function.
+        Changed type function to return a const AtomicString& instead of a String.
+        Added an override of closeRenderer. Removed state and findMatchingState functions.
+        Added stateValue and restoreState functions. Made m_form, m_disabled, and m_readOnly
+        be private instead of protected. Removed m_inited. Changed booleans to not use bit
+        fields since there are only two of them.
+        * html/HTMLGenericFormElement.cpp: Removed encodedElementName, state, and
+        findMatchingState functions.
+        (WebCore::HTMLGenericFormElement::stateValue): Added. No implementation. This will only be
+        called for subclasses that call registerFormElementWithState, and those will override and
+        implement it.
+        (WebCore::HTMLGenericFormElement::restoreState): Ditto.
+        (WebCore::HTMLGenericFormElement::closeRenderer): Added. Replaces code that was in the
+        HTML parser. Calls takeStateForFormElement, passing in the name and type, and if a
+        state is found, calls restoreState.
+
+        * html/HTMLButtonElement.h: Changed type to return a const AtomicString& instead
+        of a String.
+        * html/HTMLButtonElement.cpp:
+        (WebCore::HTMLButtonElement::type): Return a const AtomicString& instead of a
+        String.
+        (WebCore::HTMLButtonElement::defaultEventHandler): Use form() instead of m_form.
+        (WebCore::HTMLButtonElement::isSuccessfulSubmitButton): Use disabled() instead of
+        m_disabled.
+
+        * html/HTMLInputElement.h: Changed type to return a const AtomicString& instead
+        of a String. Removed maintainsState, state, and restoreState functions, and added
+        new stateValue and restoreState functions. Added m_inited (moved here from the generic
+        form element base class).
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::init): Call registerFormElementWithState. This was
+        formerly done by the HTML parser.
+        (WebCore::HTMLInputElement::~HTMLInputElement): Call deregisterFormElementWithState
+        by its new name.
+        (WebCore::HTMLInputElement::isKeyboardFocusable): Use form() instead of m_form.
+        (WebCore::HTMLInputElement::setType): Ditto.
+        (WebCore::HTMLInputElement::setInputType): Ditto. Also call inputType() != PASSWORD
+        instead of maintainsState(), since this is the only function that needs to know
+        the rule and it's no longer a function in the base class. Also call register and
+        deregister functions by their new names.
+        (WebCore::HTMLInputElement::type): Changed to return const AtomicString& instead
+        of String.
+        (WebCore::HTMLInputElement::stateValue): Renamed from state and changed to no
+        longer include the name and type, formerly obtained by calling the base class's
+        HTMLGenericFormElement::state, and to no longer modify the value() string by
+        adding a ".", which gets in the way of distinguishing null and empty values
+        and is slower and unnecessary.
+        (WebCore::HTMLInputElement::restoreState):  Changed because it takes a single
+        state and doesn't need to call findMatchingState, and also to no longer remove the last
+        character from the value when restoring state.
+        (WebCore::HTMLInputElement::parseMappedAttribute): Use form() instead of m_form.
+        (WebCore::HTMLInputElement::isSuccessfulSubmitButton): Use disabled() instead of
+        m_disabled.
+        (WebCore::HTMLInputElement::setChecked): Use form() instead of m_form.
+        (WebCore::HTMLInputElement::preDispatchEventHandler): Ditto.
+        (WebCore::HTMLInputElement::defaultEventHandler): Ditto.
+
+        * html/HTMLSelectElement.h: Changed type to return a const AtomicString& instead
+        of a String.
+        * html/HTMLSelectElement.cpp:
+        (WebCore::HTMLSelectElement::HTMLSelectElement): Call registerFormElementWithState.
+        This was formerly done by the HTML parser.
+        (WebCore::HTMLSelectElement::~HTMLSelectElement): Call deregisterFormElementWithState
+        by its new name.
+        (WebCore::HTMLSelectElement::type): Changed to return const AtomicString& instead
+        of String.
+        (WebCore::HTMLSelectElement::stateValue): Renamed from state and changed to no
+        longer include the name and type, formerly obtained by calling the base class's
+        HTMLGenericFormElement::state, and to build the string in a Vector instead of
+        appending characters one at a time to a string.
+        (WebCore::HTMLSelectElement::restoreState):  Changed because it takes a single
+        state and doesn't need to call findMatchingState.
+        (WebCore::HTMLSelectElement::defaultEventHandler): Use form() instead of m_form.
+
+        * html/HTMLTextAreaElement.h: Changed type to return a const AtomicString& instead
+        of a String. Removed maintainsState, state, and restoreState functions, and added
+        new stateValue and restoreState functions.
+        * html/HTMLTextAreaElement.cpp:
+        (WebCore::HTMLTextAreaElement::HTMLTextAreaElement): Call registerFormElementWithState.
+        This was formerly done by the HTML parser. Also use member initialization instead of
+        assignment.
+        (WebCore::HTMLTextAreaElement::~HTMLTextAreaElement): Call deregisterFormElementWithState
+        by its new name.
+        (WebCore::HTMLTextAreaElement::type): Changed to return const AtomicString& instead
+        of String.
+        (WebCore::HTMLTextAreaElement::stateValue): Renamed from state and changed to no
+        longer include the name and type, formerly obtained by calling the base class's
+        HTMLGenericFormElement::state, and to no longer modify the value() string by
+        adding a ".", which is unnecessary.
+        (WebCore::HTMLTextAreaElement::restoreState): Changed because it takes a single
+        state and doesn't need to call findMatchingState, and also to no longer remove the last
+        character from the value when restoring state.
+        (WebCore::HTMLTextAreaElement::updateValue): Changed to const.
+        (WebCore::HTMLTextAreaElement::value): Ditto.
+        (WebCore::HTMLTextAreaElement::defaultValue): Ditto.
+
+        * html/HTMLFieldSetElement.h: Changed type to return a const AtomicString& instead
+        of a String.
+        * html/HTMLFieldSetElement.cpp: (WebCore::HTMLFieldSetElement::type): Ditto.
+        * html/HTMLKeygenElement.h: Ditto.
+        * html/HTMLKeygenElement.cpp: (WebCore::HTMLKeygenElement::type): Ditto.
+        * html/HTMLLegendElement.h: Ditto.
+        * html/HTMLLegendElement.cpp: (WebCore::HTMLLegendElement::type):
+        * html/HTMLOptGroupElement.h: Ditto.
+        * html/HTMLOptGroupElement.cpp: (WebCore::HTMLOptGroupElement::type): Ditto.
+        * html/HTMLOptionElement.h: Ditto.
+        * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::type): Ditto.
+
+        * ksvg2/svg/SVGAnimationElement.cpp: (SVGAnimationElement::closeRenderer):
+        Added missing call to base class.
+
+        * rendering/render_form.h: Removed element() functions that cast to the
+        appropriate derived element class. They do make some bits of code slightly
+        more readable, but they also require including too many headers. Removed
+        the includes of HTMLInputElement.h, HTMLSelectElement.h, HTMLTextAreaElement.h,
+        and KWQLineEdit.h, and added an include of GraphicsTypes.h.
+        * rendering/render_form.cpp:
+        (WebCore::RenderFormElement::updateFromElement): Changed use of element()
+        to instead use node() and cast.
+        (WebCore::RenderFormElement::clicked): Ditto.
+        (WebCore::RenderLineEdit::selectionChanged): Ditto.
+        (WebCore::RenderLineEdit::returnPressed): Ditto.
+        (WebCore::RenderLineEdit::performSearch): Ditto.
+        (WebCore::RenderLineEdit::addSearchResult): Ditto.
+        (WebCore::RenderLineEdit::calcMinMaxWidth): Ditto.
+        (WebCore::RenderLineEdit::setStyle): Ditto.
+        (WebCore::RenderLineEdit::updateFromElement): Ditto.
+        (WebCore::RenderLineEdit::valueChanged): Ditto.
+        (WebCore::RenderFileButton::calcMinMaxWidth): Ditto.
+        (WebCore::RenderFileButton::updateFromElement): Ditto.
+        (WebCore::RenderFileButton::returnPressed): Ditto.
+        (WebCore::RenderFileButton::valueChanged): Ditto.
+        (WebCore::RenderSelect::updateFromElement): Ditto.
+        (WebCore::RenderSelect::layout): Ditto.
+        (WebCore::RenderSelect::valueChanged): Ditto.
+        (WebCore::RenderSelect::selectionChanged): Ditto.
+        (WebCore::RenderSelect::updateSelection): Ditto.
+        (WebCore::RenderTextArea::destroy): Ditto.
+        (WebCore::RenderTextArea::calcMinMaxWidth): Ditto.
+        (WebCore::RenderTextArea::setStyle): Ditto.
+        (WebCore::RenderTextArea::updateFromElement): Ditto.
+        (WebCore::RenderTextArea::valueChanged): Ditto.
+        (WebCore::RenderTextArea::selectionChanged): Ditto.
+        (WebCore::RenderSlider::updateFromElement): Ditto.
+        (WebCore::RenderSlider::valueChanged): Ditto.
+
+2006-05-05  Matt Gough  
+
+        Reviewed by Darin.
+
+        http://bugs.webkit.org/show_bug.cgi?id=8563
+
+        Test: fast/doctypes/005-case-preserving.html
+
+        The doctype object in the DOM is now usable by client code
+        as opposed to always being exposed as nil. Now also ensures that
+        the 'name' of the component preserves the case of the original html source.
+        (i.e HtMl -> HtMl not HTML)
+
+        * dom/Document.h:
+        Changes comment by docType() to say it may return 0 for html
+        * html/HTMLDocument.cpp:
+        (WebCore::parseDocTypeDeclaration):
+        (WebCore::HTMLDocument::determineParseMode):
+        Preserves the case of the name component
+        (WebCore::HTMLDocument::doctype):removed
+        * html/HTMLDocument.h:
+        (WebCore::HTMLDocument::doctype):removed
+
+2006-05-05  Rob Buis  
+
+        Reviewed by Darin.
+
+        Fix for http://bugs.webkit.org/show_bug.cgi?id=8445:
+        [DOMHTMLSelectElement multiple] returns no when the select element is multiple
+
+        Correct the logic errors, which are clearly indicated by the changeset given
+        in the bug report.
+
+        * bindings/objc/DOMHTML.mm:
+        (-[DOMHTMLLinkElement disabled]):
+        (-[DOMHTMLSelectElement disabled]):
+        (-[DOMHTMLSelectElement multiple]):
+        (-[DOMHTMLOptGroupElement disabled]):
+        (-[DOMHTMLOptionElement defaultSelected]):
+        (-[DOMHTMLOptionElement disabled]):
+
+2006-05-04  Darin Adler  
+
+        Reviewed by Tim Omernick.
+
+        - fix storage leak I introduced yesterday
+
+        * platform/cg/GraphicsContextCG.cpp:
+        (WebCore::setCGFillColor): Added.
+        (WebCore::setCGStrokeColor): Added.
+        (WebCore::GraphicsContext::drawRect): Use setCGFillColor to avoid allocating
+        a CGColorRef object.
+        (WebCore::GraphicsContext::drawLine): Use setCGStrokeColor and setCGFillColor
+        to avoid allocating a CGColorRef object.
+        (WebCore::GraphicsContext::drawEllipse): Ditto.
+        (WebCore::GraphicsContext::drawArc): Ditto.
+        (WebCore::GraphicsContext::drawConvexPolygon): Ditto.
+        (WebCore::GraphicsContext::fillRect): Ditto.
+
+2006-05-04  Justin Garcia  
+
+        Reviewed by harrison
+
+        * dom/Node.cpp:
+        (WebCore::Node::rootEditableElement):
+        Restored code to stop at the body tag.  Editing shouldn't be allowed to 
+        happen outside the body, so it needs to be the editable root even if the 
+        html element is contentEditable.
+        * editing/ReplaceSelectionCommand.cpp:
+        (WebCore::ReplaceSelectionCommand::shouldMergeEnd):
+        Now takes in more information so it can be "the decider".
+        (WebCore::ReplaceSelectionCommand::doApply):
+        Merging two paragraphs will destroy the moved one's block styles. Perform 
+        the end merge backward (from content already in the document to just inserted
+        content) if moving forward would move the paragraph that contained the start of 
+        the selection being pasted into, since we always want to preserve that paragraph's 
+        block style.
+        Moving backward in this case is also helpful because otherwise it would be
+        difficult to remember the position where inserted content began (since merging
+        would remove m_firstNodeInserted).  That position is needed in order to select 
+        the replacement and to add smart replace whitespace.
+        (WebCore::ReplaceSelectionCommand::removeEndBRIfNeeded):
+        If [br, 0] is at the end of a block, the br is not necessarily collapsed
+        in quirks mode.  [br, 0] needs to also not be at the start of a block.
+         
+        * editing/ReplaceSelectionCommand.h:
+
+2006-05-04  Tim Omernick  
+
+        Reviewed by Darin.
+
+         Give Java WebKit plugin access to its own DOM element
+
+        * bridge/mac/WebCoreFrameBridge.h:
+        Added DOMElement parameter to -viewForJavaAppletWithFrame:attributeNames:attributeValues:baseURL:.
+
+        * bridge/JavaAppletWidget.h:
+        Constructor now takes the applet's element instead of its containing frame.
+
+        * bridge/mac/JavaAppletWidget.mm:
+        (JavaAppletWidget::JavaAppletWidget):
+        Pass the applet's element to viewForJavaAppletWithFrame:.
+
+        * rendering/RenderApplet.cpp:
+        (WebCore::RenderApplet::createWidgetIfNecessary):
+        Pass the element along to JavaAppletWidget.
+
+2006-05-04  Tim Omernick  
+
+        Reviewed by John Sullivan.
+
+         Give WebKit plugins access to their own DOM element
+
+        * bridge/mac/WebCoreFrameBridge.h:
+        Added DOMElement: parameter to -viewForPluginWithURL:attributeNames:attributueValues:MIMEType:
+
+        * bridge/mac/FrameMac.h:
+        * bridge/mac/FrameMac.mm:
+        (WebCore::FrameMac::createPlugin):
+        Added "element" parameter; wrap element in DOMElement and pass up to the bridge.
+
+        * page/Frame.h:
+        Added "element" parameter to createPlugin().
+        * page/Frame.cpp:
+        (WebCore::Frame::loadPlugin):
+        Get the plugin's DOM element and pass to createPlugin().
+
+2006-05-04  Eric Seidel  
+
+        Reviewed by timo.
+
+        Add drag & drop support to 
+        http://bugs.webkit.org/show_bug.cgi?id=8733
+
+        Test: manual/input-type-file-drag-drop.html
+
+        * kwq/KWQFileButton.mm:
+        (-[WebFileChooserButton initWithWidget::]):
+        (-[WebCoreFileButton initWithWidget:]):
+        (-[WebCoreFileButton drawRect:]):
+        (-[WebCoreFileButton updateLabel]):
+        (-[WebCoreFileButton setFilename:]):
+        (-[WebCoreFileButton changeFilename:]):
+        (-[WebCoreFileButton chooseFilename:]):
+        (validFilenameFromPasteboard):
+        (-[WebCoreFileButton draggingEntered:]):
+        (-[WebCoreFileButton draggingExited:]):
+        (-[WebCoreFileButton performDragOperation:]):
+
+2006-05-04  Beth Dakin  
+
+        Reviewed by Hyatt.
+
+        Fix for http://bugs.webkit.org/show_bug.cgi?id=8732 
+        Backgrounds with background-size and background-origin do not 
+        always lay out correctly
+
+        * platform/cairo/ImageCairo.cpp:
+        (WebCore::Image::drawTiled): We no longer need to scale the source 
+        point since it will now come in with the scale already taken into 
+        account.
+        * platform/mac/ImageMac.mm:
+        (WebCore::Image::drawTiled): Same as above.
+        * rendering/RenderBox.cpp:
+        (WebCore::cacluateBackgroundSize): Now calculate the background 
+        size in a helper method.
+        (WebCore::RenderBox::paintBackgroundExtended): Calculate the 
+        background size before calculating cx, cy, cw, ch, sx, and sy so 
+        that they can all be calculated with the scaled image size taken 
+        into account.
+
+2006-05-04  David Hyatt  
+
+        Fix for 8693, crash when reloading PDF. Make sure to clear the truncator's
+        cached renderer.
+
+        Reviewed by beth
+
+        * bridge/mac/WebCoreStringTruncator.h:
+        * bridge/mac/WebCoreStringTruncator.mm:
+        (+[WebCoreStringTruncator clear]):
+        * platform/mac/WebTextRendererFactory.mm:
+        (-[WebTextRendererFactory clearCaches]):
+
+2006-05-03  Darin Adler  
+
+        Reviewed by Eric.
+
+        - http://bugs.webkit.org/show_bug.cgi?id=8696
+          another round of GraphicsContext improvements
+
+        * WebCore.xcodeproj/project.pbxproj: Added GraphicsContextCG.cpp.
+        * html/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::scale): Use new GraphicsContext function.
+        (WebCore::CanvasRenderingContext2D::rotate): Ditto.
+        (WebCore::CanvasRenderingContext2D::translate): Ditto.
+        * kwq/KWQComboBox.mm: Added include (not sure if this is needed for this patch,
+        but it's needed for one of my upcoming ones).
+
+        * platform/GraphicsContext.h: Changed fillColor and setFillColor to use Color
+        instead of RGBA32. Removed setColorFromFillColor and setColorFromPen. Added
+        scale, rotate, and translate functions.
+        * platform/GraphicsContext.cpp:
+        (WebCore::GraphicsContext::setFillColor): Changed to use Color instead of RGBA32.
+        (WebCore::GraphicsContext::fillColor): Ditto.
+
+        * platform/GraphicsTypes.h: Moved HorizontalAlignment here.
+        * platform/Widget.h: Removed HorizontalAlignment from here.
+
+        * platform/cg/GraphicsContextCG.cpp: Added. Started as a copy of GraphicsContextMac.mm.
+        (WebCore::GraphicsContext::drawRect): Rewrote to not rely on [NSGraphicsContext currentContext].
+        (WebCore::GraphicsContext::drawLine): Ditto.
+        (WebCore::GraphicsContext::drawEllipse): Ditto.
+        (WebCore::GraphicsContext::drawArc): Ditto.
+        (WebCore::GraphicsContext::drawConvexPolygon): Ditto.
+        (WebCore::GraphicsContext::fillRect): Ditto.
+        (WebCore::GraphicsContext::setLineWidth):  Added check of paintingDisabled(). 
+        (WebCore::GraphicsContext::setMiterLimit): Ditto.
+        (WebCore::GraphicsContext::setAlpha): Ditto.
+        (WebCore::GraphicsContext::clearRect): Ditto.
+        (WebCore::GraphicsContext::strokeRect): Ditto.
+        (WebCore::GraphicsContext::setLineCap): Ditto.
+        (WebCore::GraphicsContext::setLineJoin): Ditto.
+        (WebCore::GraphicsContext::clip): Ditto.
+        (WebCore::GraphicsContext::scale): Added.
+        (WebCore::GraphicsContext::rotate): Added.
+        (WebCore::GraphicsContext::translate): Added.
+
+        * platform/mac/GraphicsContextMac.mm: Moved most of this file into GraphicsContextCG.cpp.
+        (WebCore::GraphicsContext::setCompositeOperation): Added check of paintingDisabled().
+
+        * platform/mac/WebCoreSystemInterface.h: Added declarations so this header
+        stands alone.
+
+2006-05-03  Darin Adler  
+
+        Reviewed by Justin.
+
+        - fix http://bugs.webkit.org/show_bug.cgi?id=8159
+          REGRESSION: Clicking outside new text field focuses the field
+
+        This bug has always been present for "content editable" HTML, but
+        now affects  as well. The problem is with the editing
+        concept of a "deep equivalent". When computing the deep equivalent,
+        the code can move from outside an editable area to inside. To fix this,
+        I removed all use of the "deep equivalent" concept.
+
+        * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForCoordinates):
+        Changed argument names from _x and _y to just x and y. When the element
+        is the editable root, changed things so that clicks that are not within
+        the element at all return positions before or after the element, rather than
+        always choosing the closest point within the element. This gets us off on
+        the right foot, by not choosing a position inside an editable root when you
+        click outside that editable root. This code handles shadowParentNode as well,
+        and also calls positionForCoordinates on children rather than calling
+        positionForRenderer (which I believe is now a function that can be removed).
+
+        * editing/VisiblePosition.h: Removed the deepEquivalent function.
+        * editing/VisiblePosition.cpp:
+        (WebCore::VisiblePosition::previousVisiblePosition): Removed use of the
+        deepEquivalent function. Also, to make this function easier to understand
+        I separated out the case where the start point is "in rendered content"
+        and the case where it's not into two separate loops.
+        (WebCore::VisiblePosition::nextVisiblePosition): Ditto.
+        (WebCore::VisiblePosition::initDeepPosition): Removed use of the deepEquivalent
+        function. Also added code to make sure that this work never turns a position
+        outside an editable element into a position inside that editable element, or
+        vice versa. Reorganized the code a bit.
+
+        * dom/Position.cpp:
+        (WebCore::Position::upstream): Removed use of the deepEquivalent function.
+        (WebCore::Position::downstream): Ditto.
+
+        * editing/htmlediting.cpp:
+        (WebCore::editingIgnoresContent): Changed to use isReplaced instead of isWidget
+        and isImage to determine if editing should ignore content.
+        (WebCore::firstInSpecialElement): Rewrote isFirstVisiblePositionInSpecialElement
+        to have code to share with positionBeforeContainingSpecialElement. And changed
+        to allow both the position just before a table and the position just inside a
+        table to qualify. While this is slightly sloppy, the old code worked because
+        of the "deep equivalent" technique. This change is needed to get the desired
+        results even without that technique.
+        (WebCore::lastInSpecialElement): Ditto.
+        (WebCore::isFirstVisiblePositionInSpecialElement): Changed to use the new function.
+        (WebCore::positionBeforeContainingSpecialElement): Ditto.
+        (WebCore::isLastVisiblePositionInSpecialElement): Ditto.
+        (WebCore::positionAfterContainingSpecialElement): Ditto.
+
+        * dom/Node.cpp: (WebCore::Node::rootEditableElement): Rewrote to remove
+        special case for body tag.
+
+        - other changes
+
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::setOuterHTML): Added a FIXME about the fact
+        that this won't merge neighboring text nodes the way setOuterText does.
+        (WebCore::HTMLElement::setInnerText): Added a FIXME about the fact that
+        this creates a text node even when setting to empty text.
+        (WebCore::HTMLElement::setOuterText): Ditto.
+
+        * editing/DeleteSelectionCommand.cpp: Removed some #if 1 and #if 0.
+        * editing/ReplaceSelectionCommand.cpp: A little reformatting.
+        * rendering/render_button.h: Tiny formatting tweak.
+
+2006-05-02  Adele Peterson  
+
+        Reviewed by Beth.
+
+        Fix for  
+        REGRESSION (NativeTextField): Auto-complete popup list doesn't appear at the correct location after scrolling page.
+
+        * bindings/objc/DOMHTML.mm: (-[DOMHTMLInputElement _rectOnScreen]):
+        Use the documentView to compute the correct rect for the element when the view is scrolled.
+
+2006-05-02  Justin Garcia  
+
+        Reviewed by harrison
+        
+        
+        Fix a few end merge bugs
+        
+        REGRESSION: Extra line appears when typing
+
+        * bridge/mac/WebCoreFrameBridge.mm:
+        (-[WebCoreFrameBridge smartInsertForString:replacingRange:beforeString:afterString:]): 
+        Use renamed characterAfter.
+        * editing/InsertParagraphSeparatorCommand.cpp:
+        (WebCore::InsertParagraphSeparatorCommand::doApply):
+        Regenerate a VisiblePosition that became stale during a text node split.
+        Don't rebalance whitespace after the operation, 1) it has a bug that turns preserved
+        newlines into nbsps, 2) I think it should only be done during serialization, not after 
+        every command (since editable regions now always have -webkit-nbsp-mode:space on them).
+        Use a regular br for the placeholder as I think we can move away from -webkit-block-placeholders.
+        
+        * editing/RebalanceWhitespaceCommand.cpp: Added FIXMEs.
+        * editing/ReplaceSelectionCommand.cpp:
+        (WebCore::ReplaceSelectionCommand::shouldMergeStart): Removed FIXME.
+        (WebCore::ReplaceSelectionCommand::shouldMergeEnd): Can now use rendering information.
+        (WebCore::ReplaceSelectionCommand::doApply):
+        Call shouldMergeEnd after the insertion so that it can use rendering information.
+        Don't use positionAfterNode of the last node inserted to mark the position at the end 
+        of inserted content because canonicalization can send it into content that was already
+        in the document.
+        
+        * editing/ReplaceSelectionCommand.h:
+        * editing/VisiblePosition.cpp:
+        (WebCore::VisiblePosition::characterAfter): 
+        Renamed.  When two candidates are visually equivalent, the rightmost candidate will be 
+        the one inside the text node where the character will be.
+        
+        * editing/VisiblePosition.h:
+        * editing/htmlediting.cpp:
+        (WebCore::enclosingTableCell): Added.
+        (WebCore::enclosingList):
+        * editing/htmlediting.h:
+
+2006-05-02  David Hyatt  
+
+        Partial fix for the crash in bugzilla bug 8088.  There's a third crash
+        even after fixing this though.
+
+        Reviewed by darin
+
+        * platform/mac/WebTextRenderer.mm:
+        (WebCore::WidthMap::widths):
+        (WebCore::extendWidthMap):
+        * platform/mac/WebTextRendererFactory.mm:
+        (-[WebTextRendererFactory clearCaches]):
+
+2006-05-02  Steve Falkenburg  
+
+        Reviewed by eric.
+
+        * WebCore.vcproj/WebCore/WebCore.vcproj: defined NDEBUG in release build
+        * bridge/win/FrameWin.cpp:
+        (WebCore::FrameWin::FrameWin): turned on javascript.
+        * kwq/KWQKHTMLSettings.h: 
+        (KHTMLSettings::KHTMLSettings): initialized settings to 0
+
+2006-05-02  David Hyatt  
+
+        Make sure to updateLayout on all scrolling functions (in particular when
+        setting scrollLeft/Top).
+
+        Reviewed by eric
+
+        fast/overflow/008,html added as a test case.
+
+        * dom/Element.cpp:
+        (WebCore::Element::scrollIntoView):
+        (WebCore::Element::scrollIntoViewIfNeeded):
+        (WebCore::Element::setScrollLeft):
+        (WebCore::Element::setScrollTop):
+
+2006-05-02  Anders Carlsson  
+
+        Reviewed by Dave Hyatt.
+        
+        http://bugs.webkit.org/show_bug.cgi?id=8688
+        file URLs aren't being serialized correctly when using window.location
+        
+        * platform/KURL.cpp:
+        (KURL::prettyURL):
+        Append "//" for file URLs.
+        
+2006-05-01  David Hyatt  
+
+        Convert WebTextRenderer to be a C++ class.  Change the factory so
+        that it uses pointer-based hashmaps instead of NSMutableDictionaries.
+        Convert uses of malloc/free to new/delete so that they start using
+        the fastMalloc/fastFree code.
+
+        Reviewed by darin
+
+        * bridge/mac/WebCoreStringTruncator.mm:
+        (stringWidth):
+        (truncateString):
+        * kwq/KWQComboBox.mm:
+        (QComboBox::sizeHint):
+        * kwq/KWQLineEdit.mm:
+        (QLineEdit::sizeForCharacterWidth):
+        * kwq/KWQListBox.mm:
+        (itemTextRenderer):
+        (groupLabelTextRenderer):
+        (QListBox::sizeForNumberOfLines):
+        (QListBox::clearCachedTextRenderers):
+        (-[KWQTableView drawRow:clipRect:]):
+        * platform/FontDataSet.h:
+        * platform/mac/FontMac.mm:
+        (WebCore::FontDataSet::~FontDataSet):
+        (WebCore::FontDataSet::getRenderer):
+        (WebCore::FontDataSet::invalidate):
+        (WebCore::Font::ascent):
+        (WebCore::Font::descent):
+        (WebCore::Font::lineSpacing):
+        (WebCore::Font::xHeight):
+        (WebCore::Font::selectionRectForText):
+        (WebCore::Font::drawText):
+        (WebCore::Font::drawHighlightForText):
+        (WebCore::Font::drawLineForText):
+        (WebCore::Font::drawLineForMisspelling):
+        (WebCore::Font::misspellingLineThickness):
+        (WebCore::Font::floatWidth):
+        (WebCore::Font::checkSelectionPoint):
+        * platform/mac/WebCoreTextRenderer.mm:
+        (WebCoreDrawTextAtPoint):
+        (WebCoreTextFloatWidth):
+        (WebCoreSetAlwaysUseATSU):
+        * platform/mac/WebTextRenderer.h:
+        (WebCore::WebTextRenderer::ascent):
+        (WebCore::WebTextRenderer::descent):
+        (WebCore::WebTextRenderer::lineSpacing):
+        (WebCore::WebTextRenderer::lineGap):
+        (WebCore::WebTextRenderer::misspellingLineThickness):
+        (WebCore::WebTextRenderer::misspellingLinePatternWidth):
+        (WebCore::WebTextRenderer::misspellingLinePatternGapWidth):
+        * platform/mac/WebTextRenderer.mm:
+        (WebCore::WebCoreInitializeFont):
+        (WebCore::WebCoreInitializeTextRun):
+        (WebCore::WebCoreInitializeEmptyTextStyle):
+        (WebCore::WebCoreInitializeEmptyTextGeometry):
+        (WebCore::widthForGlyph):
+        (WebCore::overrideLayoutOperation):
+        (WebCore::m_ATSUMirrors):
+        (WebCore::WebTextRenderer::~WebTextRenderer):
+        (WebCore::WebTextRenderer::xHeight):
+        (WebCore::WebTextRenderer::drawRun):
+        (WebCore::WebTextRenderer::floatWidthForRun):
+        (WebCore::WebTextRenderer::drawLineForCharacters):
+        (WebCore::WebTextRenderer::selectionRectForRun):
+        (WebCore::WebTextRenderer::drawHighlightForRun):
+        (WebCore::WebTextRenderer::drawLineForMisspelling):
+        (WebCore::WebTextRenderer::pointToOffset):
+        (WebCore::WebTextRenderer::setAlwaysUseATSU):
+        (WebCore::getSmallCapsRenderer):
+        (WebCore::findSubstituteFont):
+        (WebCore::rendererForAlternateFont):
+        (WebCore::computeWidthForSpace):
+        (WebCore::setUpFont):
+        (WebCore::CG_selectionRect):
+        (WebCore::CG_draw):
+        (WebCore::updateGlyphMapEntry):
+        (WebCore::extendGlyphMap):
+        (WebCore::extendWidthMap):
+        (WebCore::initializeATSUStyle):
+        (WebCore::createATSULayoutParameters):
+        (WebCore::disposeATSULayoutParameters):
+        (WebCore::addDirectionalOverride):
+        (WebCore::ATSU_selectionRect):
+        (WebCore::ATSU_draw):
+        (WebCore::ATSU_pointToOffset):
+        (WebCore::freeWidthMap):
+        (WebCore::freeGlyphMap):
+        (WebCore::glyphForCharacter):
+        (WebCore::advanceWidthIterator):
+        * platform/mac/WebTextRendererFactory.h:
+        * platform/mac/WebTextRendererFactory.mm:
+        (-[WebTextRendererFactory clearCaches]):
+        (-[WebTextRendererFactory init]):
+        (-[WebTextRendererFactory dealloc]):
+        (-[WebTextRendererFactory rendererWithFont:]):
+
+2006-05-01  Justin Garcia  
+
+        Reviewed by darin
+        
+        
+        Remove a use of hasMoreThanOneBlock, which uses info from the test rendering.
+
+        * editing/DeleteSelectionCommand.cpp:
+        (WebCore::DeleteSelectionCommand::initializePositionData):
+        Removed code that stopped the merge if the end of the selection to delete
+        was in a fully selected line, which was nonsense.
+        
+        (WebCore::DeleteSelectionCommand::mergeParagraphs):
+        Deletion does a bad job of updating the endpoints of the selection as it removes 
+        content.  If the endpoints have been flip flipped, bail.
+        If deletion has removed everything from the block that contained the
+        start of the selection to delete, we can't create a visible position inside 
+        that block to serve as a destination for the merge.  So, we insert a placeholder 
+        at that position to prop the block open to let content in.
+        
+        * editing/ReplaceSelectionCommand.cpp:
+        (WebCore::ReplaceSelectionCommand::doApply):
+        Added an assert and two early returns for cases where we'll crash.
+        Removed a use of !fragment.hasMoreThanOneBlock, which uses test rendering info 
+        and which was wrong.
+        If we've already inserted content during the start merge, insertionPos will be 
+        the position just after that content, so inserting new content before insertionPos 
+        will reverse its order.
+
+2006-05-01  Mitz Pettel  
+
+        Reviewed by Darin.
+
+        - manual test for http://bugs.webkit.org/show_bug.cgi?id=8658
+          Assertion failure in -[WebPluginContainerCheck _isForbiddenFileLoad]
+          (bridge is null) when clicking QuickTime object with href
+
+        * manual-tests/plugin-controller-datasource.html: Added.
+        * manual-tests/resources/orange.mov: Added.
+
+2006-04-30  Rob Buis  
+
+        Reviewed by eseidel.  Landed by eseidel.
+
+        Fix for http://bugs.webkit.org/show_bug.cgi?id=8651:
+        CGContextSetLineDash: invalid dash array: emmited during WebKit tests
+
+        Properly discard invalid stroke-dasharray properties like in
+        invalid-css.svg.  (Tests updated.)
+
+        * ksvg2/css/SVGCSSParser.cpp:
+        (WebCore::CSSParser::parseSVGStrokeDasharray):
+
+2006-04-28  David Hyatt  
+
+        Make image buffer sizes in the loader more accurate, since we know we store
+        buffers with 4 bytes per pixel.  Double sizes to account for this.  Also
+        deal better with animated GIFs that may have thousands of frames by adding
+        in a heuristic that will use the data size instead of a single frame RGBA32
+        buffer size if it's larger.
+
+        Reviewed by darin
+
+        * loader/Cache.cpp:
+        * loader/CachedImage.cpp:
+        (WebCore::CachedImage::data):
+
+2006-04-28  Steve Falkenburg  
+
+        Reviewed by eric.
+
+        No test necessary - fixing Win32 build, turned off C++ exceptions, turned off RTTI
+
+        * WebCore.vcproj/WebCore/WebCore.vcproj:
+        * bridge/win/FrameWin.cpp:
+        (WebCore::FrameWin::~FrameWin):
+        * bridge/win/PageWin.cpp:
+        (WebCore::Page::Page):
+        * page/Page.h:
+        * platform/win/TemporaryLinkStubs.cpp:
+        (FrameWin::saveDocumentState):
+        (Path::contains):
+        (Path::boundingRect):
+
+2006-04-28  David Hyatt  
+
+        Merge WebCoreTextRenderer into WebTextRenderer.  Merge WebCoreTextRendererFactory
+        into WebTextRendererFactory.  Change all callers to refer to the concrete classes
+        now.  Change WebCoreTextRenderer.h to be the public API that WebKit uses when
+        it calls in to WebCore.  Clean up the exports to remove things WebKit no longer
+        needs.
+
+        Reviewed by darin
+
+        * WebCore.exp:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bridge/mac/WebCoreStringTruncator.mm:
+        (stringWidth):
+        (truncateString):
+        (+[WebCoreStringTruncator widthOfString:font:]):
+        * kwq/KWQComboBox.mm:
+        (QComboBox::sizeHint):
+        * kwq/KWQLineEdit.mm:
+        (QLineEdit::sizeForCharacterWidth):
+        * kwq/KWQListBox.mm:
+        (itemTextRenderer):
+        (groupLabelTextRenderer):
+        (QListBox::sizeForNumberOfLines):
+        (-[KWQTableView drawRow:clipRect:]):
+        * platform/Font.h:
+        * platform/FontDataSet.h:
+        * platform/mac/FontMac.mm:
+        (WebCore::FontDataSet::getWebCoreFont):
+        (WebCore::FontDataSet::getRenderer):
+        (WebCore::FontDataSet::determinePitch):
+        * platform/mac/WebCoreTextRenderer.h:
+        * platform/mac/WebCoreTextRendererFactory.mm:
+        (-[WebCoreTextRendererFactory init]):
+        * platform/mac/WebTextRenderer.h:
+        * platform/mac/WebTextRenderer.mm:
+        * platform/mac/WebTextRendererFactory.h:
+        * platform/mac/WebTextRendererFactory.mm:
+        (WebCoreInitializeFont):
+        (WebCoreInitializeTextRun):
+        (WebCoreInitializeEmptyTextStyle):
+        (WebCoreInitializeEmptyTextGeometry):
+        (-[WebTextRendererFactory clearCaches]):
+        (+[WebTextRendererFactory createSharedFactory]):
+        (+[WebTextRendererFactory sharedFactory]):
+        (-[WebTextRendererFactory init]):
+
+2006-04-28  David Hyatt  
+
+        Fix for 8586, move WebTextRenderer into WebCore.
+
+        Reviewed by darin
+
+        * WebCore.exp:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bridge/mac/WebCoreStringTruncator.mm:
+        * platform/mac/WebCoreSystemInterface.h:
+        * platform/mac/WebCoreSystemInterface.mm:
+        * platform/mac/WebCoreTextRenderer.h:
+        * platform/mac/WebCoreTextRendererFactory.mm:
+        (+[WebCoreTextRendererFactory sharedFactory]):
+        * platform/mac/WebTextRenderer.h: Added.
+        * platform/mac/WebTextRenderer.mm: Added.
+        (widthForGlyph):
+        (-[WebTextRenderer initWithFont:]):
+        (destroy):
+        (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
+        (-[WebTextRenderer drawLineForMisspelling:withWidth:]):
+        (findSubstituteFont):
+        (setUpFont):
+        (pathFromFont):
+        (drawGlyphs):
+        (CG_draw):
+        (extendGlyphMap):
+        (extendWidthMap):
+        (initializeATSUStyle):
+        (createATSULayoutParameters):
+        (getTextBounds):
+        (addDirectionalOverride):
+        (ATSU_draw):
+        (normalizeVoicingMarks):
+        (advanceWidthIterator):
+        (fillStyleWithAttributes):
+        * platform/mac/WebTextRendererFactory.h: Added.
+        * platform/mac/WebTextRendererFactory.mm: Added.
+        (getAppDefaultValue):
+        (getUserDefaultValue):
+        (getLCDScaleParameters):
+        (fontsChanged):
+        (+[WebTextRendererFactory createSharedFactory]):
+        (-[WebTextRendererFactory isFontFixedPitch:]):
+        (-[WebTextRendererFactory fontWithFamily:traits:size:]):
+        (FontCacheKeyCopy):
+        (-[WebTextRendererFactory cachedFontFromFamily:traits:size:]):
+
+2006-04-28  Eric Seidel  
+
+        Fix by beth.  Reviewed by darin.  Landed by eseidel.
+
+        Make hackish fix to avoid crash in Xcode and Filemaker.
+         Crash in RenderFlow::detach (XCode Documentation Window)
+
+        * bridge/mac/WebCoreFrameBridge.mm:
+        (-[WebCoreFrameBridge didNotOpenURL:pageCache:]):
+
+2006-04-28  Alexey Proskuryakov  
+
+        Reviewed by hyatt.
+
+        - http://bugs.webkit.org/show_bug.cgi?id=5855
+          REGRESSION: revert SGML comment parsing fix (comment parsing causes most of usbank.com page to be missing)
+
+        * html/HTMLTokenizer.cpp:
+        (WebCore::HTMLTokenizer::parseComment): Revert one change made for acid2, 
+        .
+
+2006-04-28  Darin Adler  
+
+        Reviewed by Eric.
+
+        - http://bugs.webkit.org/show_bug.cgi?id=8608
+          make GraphicsContext more suitable for cross-platform use, step 2
+
+        - Changed GraphicsContext to use NSGraphicsContext as little as possible.
+        - Removed the printing flag from GraphicsContext.
+        - Changed GraphicsContext to assume the NSGraphicsContext is always flipped,
+          and got rid of parameters to pass the flipped boolean around.
+
+        * WebCore.vcproj/WebCore/WebCore.vcproj: Add GraphicsTypes.h/cpp and remove
+        CompositeOperator.h/cpp.
+        * WebCore.xcodeproj/project.pbxproj: Ditto.
+
+        * bridge/mac/FrameMac.mm: (WebCore::FrameMac::setDisplaysWithFocusAttributes):
+        * bridge/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge drawRect:]):
+        * html/CanvasPattern.cpp: (WebCore::patternCallback):
+        * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::createDrawingContext):
+        * kcanvas/device/quartz/KRenderingDeviceQuartz.mm:
+        (WebCore::KRenderingDeviceContextQuartz::createGraphicsContext):
+        * platform/mac/WidgetMac.mm: (WebCore::Widget::lockDrawingFocus):
+        Update for changes to GraphicsContext constructor (no flipped or printing boolean).
+
+        * html/CanvasRenderingContext2D.h: Added a Path to the context state. Changed the
+        LineCap and LineJoin types to use the new ones in GraphicsTypes.h instead of defining
+        types here in this class. Changed m_platformContextStrokeStyleIsPattern and
+        m_platformContextFillStyleIsPattern to be named m_appliedStrokePattern and
+        m_appliedFillPattern and moved them outside the __APPLE__ ifdefs. Removed the
+        platformContext() function. Moved applyStrokePattern and applyFillPattern out of
+        the __APPLE__ ifdef.
+
+        * html/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::State::State): Moved the stroke pattern
+        booleans out of Mac-specific ifdef.
+        (WebCore::CanvasRenderingContext2D::save): Changed to use GraphicsContext instead
+        of using CGContext directly.
+        (WebCore::CanvasRenderingContext2D::restore): Ditto.
+        (WebCore::CanvasRenderingContext2D::setStrokeStyle): Ditto.
+        (WebCore::CanvasRenderingContext2D::setFillStyle): Ditto.
+        (WebCore::CanvasRenderingContext2D::setLineWidth): Ditto.
+        (WebCore::CanvasRenderingContext2D::lineCap): Ditto.
+        (WebCore::CanvasRenderingContext2D::setLineCap): Ditto.
+        (WebCore::CanvasRenderingContext2D::lineJoin): Ditto.
+        (WebCore::CanvasRenderingContext2D::setLineJoin): Ditto.
+        (WebCore::CanvasRenderingContext2D::setMiterLimit): Ditto.
+        (WebCore::CanvasRenderingContext2D::shadowColor): Ditto.
+        (WebCore::CanvasRenderingContext2D::setGlobalAlpha): Ditto.
+        (WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation): Ditto.
+        (WebCore::CanvasRenderingContext2D::scale): Update since platformContext() function
+        no longer exists.
+        (WebCore::CanvasRenderingContext2D::rotate): Ditto.
+        (WebCore::CanvasRenderingContext2D::translate): Ditto.
+        (WebCore::CanvasRenderingContext2D::beginPath): Changed to use GraphicsContext instead
+        of using CGContext directly.
+        (WebCore::CanvasRenderingContext2D::closePath): Ditto.
+        (WebCore::CanvasRenderingContext2D::moveTo): Ditto.
+        (WebCore::CanvasRenderingContext2D::lineTo): Ditto.
+        (WebCore::CanvasRenderingContext2D::quadraticCurveTo): Ditto.
+        (WebCore::CanvasRenderingContext2D::bezierCurveTo): Ditto.
+        (WebCore::CanvasRenderingContext2D::arcTo): Ditto.
+        (WebCore::CanvasRenderingContext2D::arc): Ditto.
+        (WebCore::CanvasRenderingContext2D::rect): Ditto.
+        (WebCore::CanvasRenderingContext2D::fill): Changed to use the current path from this class
+        instead of relying on the CGContext's current path.
+        (WebCore::CanvasRenderingContext2D::stroke): Ditto.
+        (WebCore::CanvasRenderingContext2D::clip): Changed to use the current path and use the
+        GraphicsContext instead of using CGContext directly.
+        (WebCore::CanvasRenderingContext2D::clearRect): Changed to use GraphicsContext instead
+        of using CGContext directly.
+        (WebCore::CanvasRenderingContext2D::fillRect): Update since platformContext() function
+        no longer exists.
+        (WebCore::CanvasRenderingContext2D::strokeRect): Ditto.
+        (WebCore::CanvasRenderingContext2D::setShadow): Ditto.
+        (WebCore::CanvasRenderingContext2D::applyShadow): Ditto.
+        (WebCore::CanvasRenderingContext2D::drawImage): Ditto.
+        (WebCore::CanvasRenderingContext2D::drawImageFromRect): Ditto.
+        (WebCore::CanvasRenderingContext2D::createPattern): Ditto.
+        (WebCore::CanvasRenderingContext2D::applyStrokePattern): Made a tiny bit of this function
+        cross-platform. The bulk is still Mac-specific.
+        (WebCore::CanvasRenderingContext2D::applyFillPattern): Ditto.
+
+        * html/CanvasStyle.h: Changed to use GraphicsContext instead of CGContext. Now the
+        platform-specific stuff is in the implementation, not the header.
+        * html/CanvasStyle.cpp:
+        (WebCore::CanvasStyle::applyStrokeColor): Moved the ifdefs inside the function, getting
+        us one step closer to platform independence.
+        (WebCore::CanvasStyle::applyFillColor): Ditto.
+
+        * html/html_imageimpl.cpp:
+        (WebCore::HTMLAreaElement::getRect): Update for changes to the Path class.
+        (WebCore::HTMLAreaElement::getRegion): Ditto.
+
+        * page/Frame.cpp:
+        (WebCore::Frame::paint): Change to check printing flag on the document, rather than on
+        the GraphicsContext, since there is no printing flag for GraphicsContext any more.
+        (WebCore::Frame::adjustPageHeight): Update for change to GraphicsContext constructor.
+
+        * platform/GraphicsContext.h: Define a type called PlatformGraphicsContext so the
+        platform-specific getter and constructor don't have to be ifdef'd. Added clearRect,
+        strokeRect, setLineWidth, setLineCap, setLineJoin, setMiterLimit, setAlpha, setCompositeOperation,
+        and clip functions. Removed the isForPrinting parameter from createGraphicsContextPrivate.
+        * platform/GraphicsContext.cpp:
+        (WebCore::GraphicsContextPrivate::GraphicsContextPrivate): Removed isForPrinting.
+        (WebCore::GraphicsContext::createGraphicsContextPrivate): Ditto.
+        * platform/mac/GraphicsContextMac.mm:
+        (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
+        Removed NSGraphicsContext.
+        (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
+        Ditto.
+        (WebCore::GraphicsContext::GraphicsContext): Removed constructor that
+        takes an NSGraphicsContext. Removed the flipText and forPrinting parameters
+        to the other constructor.
+        (WebCore::GraphicsContext::savePlatformState): Removed NSGraphicsContext code.
+        (WebCore::GraphicsContext::restorePlatformState): Ditto.
+        (WebCore::GraphicsContext::drawRect): Updated assertion to more-precisely
+        reflect the limitation of the current version of this function.
+        (WebCore::GraphicsContext::setColorFromFillColor): Ditto.
+        (WebCore::GraphicsContext::setColorFromPen): Ditto.
+        (WebCore::GraphicsContext::drawLine): Updated assertion to more-precisely
+        reflect the limitation of the current version of this function.
+        (WebCore::setCompositeOperation):
+        (WebCore::GraphicsContext::fillRect): Ditto.
+        (WebCore::GraphicsContext::setLineWidth): Added.
+        (WebCore::GraphicsContext::setMiterLimit): Added.
+        (WebCore::GraphicsContext::setAlpha): Added.
+        (WebCore::GraphicsContext::setCompositeOperation): Added.
+        (WebCore::GraphicsContext::clearRect): Added.
+        (WebCore::GraphicsContext::strokeRect): Added.
+        (WebCore::GraphicsContext::setLineCap): Added.
+        (WebCore::GraphicsContext::setLineJoin): Added.
+        (WebCore::GraphicsContext::clip): Added.
+
+        * platform/CompositeOperator.cpp: Removed.
+        * platform/CompositeOperator.h: Removed.
+        * platform/GraphicsTypes.cpp: Added. Includes CompositeOperator, LineCap, and LineJoin.
+        * platform/GraphicsTypes.h: Added.
+
+        * platform/Image.h: Changed include to GraphicsTypes.h from CompositeOperator.h.
+
+        * platform/Path.h: Removed constructors that take a Rect and an array of points. Made
+        the Path mutable. Changed the types for contains and boundingRect to be float-based
+        instead of int-based. Changed translate to take a FloatSize instead of two integers.
+        Added clear, moveTo, addLineTo, addQuadCurveTo, addBezierCurveTo, addArcTo, closeSubpath,
+        addArc, addRect, addEllipse, and platformPath functions. Defined a PlatformPath type
+        so we don't have to ifdef the header so much.
+        * platform/cg/PathCG.cpp:
+        (WebCore::Path::Path): Changed class to always have a mutable path.
+        (WebCore::Path::operator=): Changed to make a mutable copy.
+        (WebCore::Path::contains): Changed to take a FloatPoint instead of IntPoint.
+        (WebCore::Path::translate): Changed to use a FloatSize instead of two ints.
+        (WebCore::Path::boundingRect): Changed to return a FloatRect.
+        (WebCore::Path::moveTo): Added.
+        (WebCore::Path::addLineTo): Added.
+        (WebCore::Path::addQuadCurveTo): Added.
+        (WebCore::Path::addBezierCurveTo): Added.
+        (WebCore::Path::addArcTo): Added.
+        (WebCore::Path::closeSubpath): Added.
+        (WebCore::Path::addArc): Added.
+        (WebCore::Path::addRect): Added.
+        (WebCore::Path::addEllipse): Added.
+        (WebCore::Path::clear): Added.
+
+        * platform/mac/ImageMac.mm:
+        (WebCore::fillSolidColorInRect): Changed to take a GraphicsContext instead of
+        a CGContext.
+        (WebCore::Image::checkForSolidColor): Changed to use the new setCompositeOperation
+        in GraphicsContex.
+        (WebCore::Image::draw): Changed to use the new PDF image and fillSolidColorInRect
+        function that take GraphicsContext instead of CGContext.
+        (WebCore::Image::drawTiled): Ditto.
+
+        * platform/mac/PDFDocumentImage.h: Made most functions private. Changed to
+        use GraphicsContext and FloatRect instead of CGContext and NSRect. Also
+        removed the unused alpha and flipped booleans.
+        * platform/mac/PDFDocumentImage.mm:
+        (WebCore::PDFDocumentImage::bounds): Update for change in types.
+        (WebCore::PDFDocumentImage::adjustCTM): Ditto.
+        (WebCore::PDFDocumentImage::setCurrentPage): Ditto.
+        (WebCore::PDFDocumentImage::draw): Ditto.
+
+        * platform/win/TemporaryLinkStubs.cpp: Added lots of new stubs.
+
+        * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paint): Changed to get
+        printing boolean from document instead graphics context.
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::paintChildren): Ditto.
+        (WebCore::RenderBlock::paintObject): Ditto.
+        * rendering/RenderFlow.cpp: (WebCore::RenderFlow::paintLines): Ditto.
+        * rendering/RenderHTMLCanvas.cpp: (WebCore::RenderHTMLCanvas::paint): Ditto.
+        * rendering/RenderImage.cpp: (WebCore::RenderImage::paint): Ditto.
+        * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintButton): Ditto.
+        * rendering/render_list.cpp: (WebCore::RenderListMarker::paint): Ditto.
+        * rendering/render_replaced.cpp: (WebCore::RenderWidget::paint): Ditto.
+
+2006-04-28  Mitz Pettel  
+
+        Reviewed by hyatt, landed by ap.
+
+        - fix http://bugs.webkit.org/show_bug.cgi?id=6769
+          REGRESSION: Incomplete repaint when a cell's extra bottom margin grows
+
+        Test: fast/repaint/table-extra-bottom-grow.html
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::overflowRect): Changed to not add the top/left overflow twice and
+        allow the normal overflow height to overlap with the bottom extra height.
+        * rendering/RenderTableRow.cpp:
+        (WebCore::RenderTableRow::layout): Removed the code that resets the extra heights.
+        * rendering/RenderTableSection.cpp:
+        (WebCore::RenderTableSection::layoutRows): If the top extra height changed or the
+        bottom extra height increased, just repaint the entire cell.
+
+2006-04-28  Eric Seidel  
+
+        Reviewed by andersca.
+
+        Remove KCanvasContainerQuartz, pushing all logic into KCanvasContainer.
+        
+        No tests affected.
+
+        * kcanvas/KCanvasContainer.cpp:
+        (WebCore::KCanvasContainer::canHaveChildren):
+        (WebCore::KCanvasContainer::requiresLayer):
+        (WebCore::KCanvasContainer::lineHeight):
+        (WebCore::KCanvasContainer::baselinePosition):
+        (WebCore::KCanvasContainer::calcMinMaxWidth):
+        (WebCore::KCanvasContainer::layout):
+        (WebCore::KCanvasContainer::paint):
+        (WebCore::KCanvasContainer::setViewport):
+        (WebCore::KCanvasContainer::viewport):
+        (WebCore::KCanvasContainer::setViewBox):
+        (WebCore::KCanvasContainer::viewBox):
+        (WebCore::KCanvasContainer::setAlign):
+        (WebCore::KCanvasContainer::align):
+        (WebCore::KCanvasContainer::viewportTransform):
+        (WebCore::KCanvasContainer::getAbsoluteRepaintRect):
+        (WebCore::KCanvasContainer::absoluteTransform):
+        (WebCore::KCanvasContainer::getAspectRatio):
+        * kcanvas/KCanvasContainer.h:
+        (WebCore::KCanvasContainer::renderName):
+        * kcanvas/device/KRenderingDevice.h:
+        * kcanvas/device/quartz/KCanvasResourcesQuartz.h:
+        * kcanvas/device/quartz/KCanvasResourcesQuartz.mm:
+        * kcanvas/device/quartz/KRenderingDeviceQuartz.h:
+        * kcanvas/device/quartz/KRenderingDeviceQuartz.mm:
+        (WebCore::KRenderingDeviceQuartz::createPaintServer):
+        * ksvg2/svg/SVGAElement.cpp:
+        (WebCore::SVGAElement::createRenderer):
+        * ksvg2/svg/SVGGElement.cpp:
+        (SVGGElement::createRenderer):
+        * ksvg2/svg/SVGMarkerElement.cpp:
+        (WebCore::SVGMarkerElement::createRenderer):
+        * ksvg2/svg/SVGMaskElement.cpp:
+        (WebCore::SVGMaskElement::createRenderer):
+        * ksvg2/svg/SVGPatternElement.cpp:
+        (WebCore::SVGPatternElement::createRenderer):
+        * ksvg2/svg/SVGSVGElement.cpp:
+        (WebCore::SVGSVGElement::createRenderer):
+        * ksvg2/svg/SVGSwitchElement.cpp:
+        (WebCore::SVGSwitchElement::createRenderer):
+        * ksvg2/svg/SVGUseElement.cpp:
+        (SVGUseElement::createRenderer):
+
+2006-04-27  Eric Seidel  
+
+        Reviewed by andersca.
+
+        Make WebCore accept any */*+xml type as XML.
+        http://bugs.webkit.org/show_bug.cgi?id=5998
+         XmlHttpRequest doesn't allow responses with Content-Type: application/soap+xml
+
+        Test: http/tests/xmlhttprequest/supported-xml-content-types.html
+
+        * dom/DOMImplementation.cpp:
+        (WebCore::DOMImplementation::isXMLMIMEType):
+
+2006-04-27  Eric Seidel  
+
+        * WebCore.vcproj/WebCore/WebCore.vcproj: Fix break from last checkin.
+
+2006-04-27  Geoffrey Garen  
+
+        Reviewed by Maciej.
+
+        - Added global constructor autogeneration for the following,
+        many of which are required by *.live.com: Node, Element, Range,
+        CSSRule, CSSValue, CSSPrimitiveValue, CSSStyleDeclaration, Event,
+        MutationEvent, NodeFilter
+
+        It works like so:
+        
+        - The autogenerator knows about the "Constructor" data type, which
+        gets special treatment because it exists purely in the
+        bindings. It also knows about the "GenerateConstructor" interface
+        attribute, which does just that.
+
+        - The window interface has many Constructor attributes
+
+        - The hash table generator swizzles empty tables to tables with one
+        empty bucket, to prevent crashes in Lookup::findEntry. (The old
+        generator used to work this way, too.)
+
+        - Window object property lookup gets special treatment to allow
+        shadowing of its built-in global constructor properties. We'll
+        need to expand this mechanism in the future and make it more
+        flexible, but it works for now.
+        
+        * DerivedSources.make:
+        * WebCore.vcproj/WebCore/WebCore.vcproj:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/kjs_css.cpp:
+        (KJS::toJS):
+        * bindings/js/kjs_css.h:
+        * bindings/js/kjs_window.cpp: Removed 'namedFrameGetter' and its use
+        because they were bogus; added FIXME describing what they were
+        attempting to do.
+        (KJS::Window::getValueProperty):
+        (KJS::Window::getOverridePropertySlot):
+        (KJS::Window::getOwnPropertySlot):
+        * bindings/js/kjs_window.h:
+        (KJS::Window::):
+        * bindings/scripts/CodeGeneratorJS.pm:
+        * css/CSSPrimitiveValue.idl:
+        * css/CSSRule.idl:
+        * css/CSSStyleDeclaration.idl: Added.
+        * css/CSSValue.idl:
+        * dom/Document.idl:
+        * dom/Element.idl:
+        * dom/Event.idl:
+        * dom/MutationEvent.idl:
+        * dom/Node.idl:
+        * dom/NodeFilter.idl:
+        * dom/Range.idl:
+        * page/DOMWindow.idl:
+
+2006-04-27  Mitz Pettel  
+
+        Reviewed by darin
+        
+        
+        Automate repaint tests
+
+        * manual-tests/backgroundSizeRepaint.html: Removed.
+        * manual-tests/border-repaint-glitch.html: Removed.
+        * manual-tests/bugzilla-3509.html: Removed.
+        * manual-tests/bugzilla-5699.html: Removed.
+        * manual-tests/bugzilla-6278.html: Removed.
+        * manual-tests/bugzilla-6388.html: Removed.
+        * manual-tests/bugzilla-6473.html: Removed.
+        * manual-tests/bugzilla-7235.html: Removed.
+        * manual-tests/inline-outline-repaint.html: Removed.
+        * manual-tests/outline-repaint-glitch.html: Removed.
+        * manual-tests/repaint-resized-overflow.html: Removed.
+        * manual-tests/table-cell-move.html: Removed.
+
+2006-04-27  Justin Garcia  
+
+        Reviewed by darin
+        
+        
+        Placeholders aren't always removed during paste
+        
+        Seed: Mail: pasting quoted content sometimes adds a phantom newline
+
+        * editing/CompositeEditCommand.cpp: Added a FIXME.
+        * editing/ReplaceSelectionCommand.cpp:
+        (WebCore::ReplaceSelectionCommand::doApply):
+        Removed two no-op setEndingSelection calls.
+        Store away a br at the position where we'll start inserting content in case the 
+        br a) is made unnecessary by the insertion (it's collapsed away) b) was acting 
+        as a placeholder and should therefore be displaced by inserted content or c) was
+        acting as a line break and, as a result of the insertion, is now acting as a 
+        placeholder.  
+        Don't only store away brs that have the webkit-block-placeholder class on them.
+        Any br that does any of the three things just mentioned should be removed.
+        The linePlaceholder removal was run after the code that makes sure to interpret 
+        incoming brs strictly, and was negating that work in certain cases.
+        
+        (WebCore::ReplaceSelectionCommand::removeEndBRIfNeeded): Described above.
+        * editing/ReplaceSelectionCommand.h:
+        * editing/VisiblePosition.cpp:
+        (WebCore::isEqualIgnoringAffinity): 
+        Added a workaround for 8622.  We want this function to return true even if one of 
+        the two visible positions has been incorrectly canonicalized.
+
+2006-04-26  Tim Omernick  
+
+        Reviewed by Hyatt.
+
+         Flash inserted via innerHTML Fails to Show when CSS Display
+        Style is Toggled via Javascript
+
+        * html/html_objectimpl.cpp:
+        (WebCore::HTMLObjectElement::setComplete):
+        Set needWidgetUpdate when finished parsing, even if the object element is not in
+        a document.  That way, when the element attaches to a document, it will update its
+        widget (creating the plug-in view if necessary).  This is important when the object
+        is being inserted via setInnerHTML, since the parsed nodes are not added to the
+        document until the whole HTML string is parsed.
+
+2006-04-26  Geoffrey Garen  
+
+        Reviewed by Hyatt.
+
+        - Fixed http://bugs.webkit.org/post_bug.cgi
+        REGRESSION (r14048): Google calendar not parsing
+        
+        * html/HTMLParser.cpp:
+        (WebCore::HTMLParser::handleError): Rolling out grandparent NULL check
+        because it caused this regression and there's no test case
+        justifying it.
+        
+2006-04-26  Justin Garcia  
+
+        Reviewed by hyatt
+        
+        
+        REGRESSION: Content lost during a delete/merge of whitespace:pre text
+
+        * editing/CompositeEditCommand.cpp:
+        (WebCore::CompositeEditCommand::prune): 
+        The function would prune a rendered leaf because it assumed that the 
+        first node passed to it would be a container.
+        The old code ascended using the DOM tree, and would remove the  when
+        pruning the 
in
foo
. Now ascends using the render tree. + +2006-04-26 Geoffrey Garen + + This time for sure. Fixed Windows build too. + + * WebCore.vcproj/WebCore/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + +2006-04-26 Geoffrey Garen + + Reviewed by TimO. + + Build fix. + + * bindings/js/kjs_dom.cpp: + * bindings/js/kjs_domnode.h: + +2006-04-26 Geoffrey Garen + + Reviewed by OMG DETHBAKIN. + + - Start autogenerating Node. This fixes many missing attributes in our + DOM by making prototypes hold their relevant constants as properties. + + * DerivedSources.make: + * WebCore.xcodeproj/project.pbxproj: + * bindings/js/kjs_dom.cpp: + (KJS::DOMEventTargetNode::DOMEventTargetNode): + (KJS::toJS): + * bindings/js/kjs_dom.h: + (KJS::DOMEventTargetNode::): + * bindings/js/kjs_domnode.h: Had to break DOMNode into a separate + header to avoid circular dependency in header includes. Gave it an + old-school file name to keep distinguishing beteween old school and + news school files easy. + (KJS::DOMNode::impl): + (KJS::DOMNode::classInfo): + (KJS::DOMNode::): + * bindings/js/kjs_window.cpp: + (KJS::Window::getValueProperty): + * bindings/scripts/CodeGeneratorJS.pm: + * dom/DocumentType.idl: + * dom/Entity.idl: + * dom/Node.idl: Added. + * dom/Notation.idl: + * dom/ProcessingInstruction.idl: + +2006-04-26 Geoffrey Garen + + Reviewed by Darin. + + Committing the project file change jhaygood suggesed in + http://bugs.webkit.org/show_bug.cgi?id=8044 + WebKit Visual Studio 2005 project shouldn't use the SolutionDir + + Instead of his patch, I used the following commands: + + sed -e 's/$(SolutionDir)/$(ProjectDir)\\../g' Image\ Viewer/Image\ + Viewer.vcproj > Image\ Viewer/Image\ Viewer.vcproj_ && mv Image\ + Viewer/Image\ Viewer.vcproj_ Image\ Viewer/Image\ Viewer.vcproj + + sed -e 's/$(SolutionDir)/$(ProjectDir)\\../g' + WebCore/WebCore.vcproj > WebCore/WebCore.vcproj_ && mv + WebCore/WebCore.vcproj_ WebCore/WebCore.vcproj + + * Viewer.vcproj: + * WebCore.vcproj/WebCore/WebCore.vcproj: + +2006-04-25 Justin Garcia + + Reviewed by harrison + + + Moving paste code around and some small fixes + + Moved code to make it easier to do the start merge after the fact, + with moveParagraph, instead of in the middle of the paste operation. + + * editing/CompositeEditCommand.cpp: + (WebCore::CompositeEditCommand::moveParagraph): + * editing/ReplaceSelectionCommand.cpp: + (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand): + (WebCore::ReplaceSelectionCommand::shouldMergeStart): + Moved code to make this decision to its own function. Moved special case + checks to the top. Added m_forceMergeStart to override the special cases + because moveParagraph uses ReplaceSelectionCommand and expects a merge. + + (WebCore::ReplaceSelectionCommand::shouldMergeEnd): + No functional changes, just moved code here. + (WebCore::ReplaceSelectionCommand::doApply): + Do the end merge in the opposite direction. Merging two paragraphs destroys + the moved one's block level styles, and we prefer to use the styles of the + one that was in the document, not the one that's being pasted. + + * editing/ReplaceSelectionCommand.h: + * editing/Selection.h: + (WebCore::Selection::visibleStart): Added. + (WebCore::Selection::visibleEnd): Added. + * editing/htmlediting.cpp: + (WebCore::enclosingList): Added. + (WebCore::isMailBlockquote): + Don't require a renderer so that this can be used on nodes in fragments. + + * editing/htmlediting.h: + +2006-04-25 Geoffrey Garen + + Reviewed by Maciej. + + - Removed special handling of attributes in the DOM. To match + WinIE, we used to make all attributes available as properties of + their elements in the DOM, but that has caused us more + compatibility woes than it has solved, so, after talking with Darin + and Maciej, I'm taking it out. (Firefox does not support it.) + + A layout test regression caused by this change led me to do the + following as well: + + - Implemented DOM properties missing on EMBED elements: align, height, + name, width, src, type. Since align, height, name, and width are + common to all plugin elements, I factored them and some other common + functionality out into a new abstract base class, HTMLPlugInElement. + + - Removed extraneous attribute-to-style mappings on EMBED elements: + valign, border. Why they were there in the first place is a question + for the ages. Neither FF nor IE supports them. + + * bindings/js/kjs_dom.cpp: + (KJS::getRuntimeObject): + * bindings/js/kjs_html.cpp: + (KJS::): + (KJS::JSHTMLElement::classInfo): + (KJS::JSHTMLElement::accessors): + (KJS::JSHTMLElement::embedGetter): + (KJS::JSHTMLElement::embedSetter): + * bindings/js/kjs_html.h: + (KJS::JSHTMLElement::): + * bindings/scripts/CodeGeneratorJS.pm: + * dom/Element.idl: + * html/html_objectimpl.cpp: + (WebCore::HTMLPlugInElement::HTMLPlugInElement): + (WebCore::HTMLPlugInElement::align): + (WebCore::HTMLPlugInElement::setAlign): + (WebCore::HTMLPlugInElement::height): + (WebCore::HTMLPlugInElement::setHeight): + (WebCore::HTMLPlugInElement::name): + (WebCore::HTMLPlugInElement::setName): + (WebCore::HTMLPlugInElement::width): + (WebCore::HTMLPlugInElement::setWidth): + (WebCore::HTMLPlugInElement::mapToEntry): + (WebCore::HTMLPlugInElement::parseMappedAttribute): + (WebCore::HTMLPlugInElement::checkDTD): + (WebCore::HTMLAppletElement::HTMLAppletElement): + (WebCore::HTMLAppletElement::~HTMLAppletElement): + (WebCore::HTMLAppletElement::parseMappedAttribute): + (WebCore::HTMLAppletElement::insertedIntoDocument): + (WebCore::HTMLAppletElement::removedFromDocument): + (WebCore::HTMLAppletElement::getInstance): + (WebCore::HTMLAppletElement::closeRenderer): + (WebCore::HTMLAppletElement::detach): + (WebCore::HTMLEmbedElement::HTMLEmbedElement): + (WebCore::HTMLEmbedElement::~HTMLEmbedElement): + (WebCore::HTMLEmbedElement::getInstance): + (WebCore::HTMLEmbedElement::mapToEntry): + (WebCore::HTMLEmbedElement::parseMappedAttribute): + (WebCore::HTMLEmbedElement::attach): + (WebCore::HTMLEmbedElement::detach): + (WebCore::HTMLEmbedElement::insertedIntoDocument): + (WebCore::HTMLEmbedElement::removedFromDocument): + (WebCore::HTMLEmbedElement::src): + (WebCore::HTMLEmbedElement::setSrc): + (WebCore::HTMLEmbedElement::type): + (WebCore::HTMLEmbedElement::setType): + (WebCore::HTMLObjectElement::HTMLObjectElement): + (WebCore::HTMLObjectElement::~HTMLObjectElement): + (WebCore::HTMLObjectElement::getInstance): + (WebCore::HTMLObjectElement::parseMappedAttribute): + (WebCore::HTMLObjectElement::rendererIsNeeded): + (WebCore::HTMLObjectElement::attach): + (WebCore::HTMLObjectElement::closeRenderer): + (WebCore::HTMLObjectElement::detach): + (WebCore::HTMLObjectElement::insertedIntoDocument): + (WebCore::HTMLObjectElement::removedFromDocument): + (WebCore::HTMLObjectElement::recalcStyle): + * html/html_objectimpl.h: + (WebCore::HTMLPlugInElement::endTagRequirement): + (WebCore::HTMLAppletElement::tagPriority): + (WebCore::HTMLEmbedElement::tagPriority): + (WebCore::HTMLObjectElement::tagPriority): + +2006-04-25 Beth Dakin + + Reviewed by Maciej. + + Fix for getComputedStyle returns 'auto' + for dimensions like 'margin-left' + + * css/CSSComputedStyleDeclaration.cpp: + (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): For + margin and padding, to match Firefox we now go to the renderer to + get the property value instead of calling valueForLength() on the + style attribute. valueForLength() will return the string 'auto' if + that was what was specified in the CSS, or a percentage if it was + specified as a percent. But to match Firefox, we always want to + return a pixel value for margin and padding. + +2006-04-26 Mitz Pettel + + Reviewed by darin. Landed by eseidel. + + - fix http://bugs.webkit.org/show_bug.cgi?id=8452 + mangleme(0x58c22e11): Random crashes + + Test: fast/frames/empty-cols-attribute.html + + * platform/StringImpl.cpp: + (WebCore::StringImpl::toLengthArray): If the string is empty, return 0 + but set len to 1. This gives the same behavior you get if you don't specify + the attribute at all, matching WinIE and Firefox. Previously, the empty + string resulted in len being set to 0 (and a memory smasher in + RenderFrameSet::layout()). + * rendering/render_frames.cpp: + (WebCore::RenderFrameSet::layout): Added an assert. + +2006-04-26 Oliver Hunt + + Reviewed by eseidel. Landed by eseidel. + + * WebCore.xcodeproj/project.pbxproj: + * kcanvas/KCanvasFilters.cpp: + (WebCore::operator<<): + * kcanvas/KCanvasFilters.h: + (WebCore::KCComponentTransferFunction::KCComponentTransferFunction): + * kcanvas/device/quartz/KCanvasFilterQuartz.h: + * kcanvas/device/quartz/KCanvasFilterQuartz.mm: + (WebCore::getVectorForChannel): + (WebCore::genImageFromTable): + (WebCore::filterForComponentFunc): + (WebCore::setParametersForComponentFunc): + (WebCore::getFilterForFunc): + (WebCore::KCanvasFEComponentTransferQuartz::getFunctionFilter): + (WebCore::KCanvasFEComponentTransferQuartz::getCIFilter): + * kcanvas/device/quartz/KRenderingDeviceQuartz.mm: + (WebCore::KRenderingDeviceQuartz::createFilterEffect): + * kcanvas/device/quartz/filters/WKComponentMergeFilter.cikernel: Added. + * kcanvas/device/quartz/filters/WKComponentMergeFilter.h: Added. + * kcanvas/device/quartz/filters/WKComponentMergeFilter.m: Added. + (+[WKComponentMergeFilter initialize]): + (+[WKComponentMergeFilter filterWithName:]): + (-[WKComponentMergeFilter init]): + (-[WKComponentMergeFilter outputImage]): + * kcanvas/device/quartz/filters/WKDiscreteTransferFilter.cikernel: Added. + * kcanvas/device/quartz/filters/WKDiscreteTransferFilter.h: Added. + * kcanvas/device/quartz/filters/WKDiscreteTransferFilter.m: Added. + (+[WKDiscreteTransferFilter initialize]): + (+[WKDiscreteTransferFilter filterWithName:]): + (-[WKDiscreteTransferFilter init]): + (-[WKDiscreteTransferFilter outputImage]): + * kcanvas/device/quartz/filters/WKGammaTransferFilter.cikernel: Added. + * kcanvas/device/quartz/filters/WKGammaTransferFilter.h: Added. + * kcanvas/device/quartz/filters/WKGammaTransferFilter.m: Added. + (+[WKGammaTransferFilter initialize]): + (+[WKGammaTransferFilter filterWithName:]): + (-[WKGammaTransferFilter init]): + (-[WKGammaTransferFilter outputImage]): + * kcanvas/device/quartz/filters/WKIdentityTransferFilter.h: Added. + * kcanvas/device/quartz/filters/WKIdentityTransferFilter.m: Added. + (+[WKIdentityTransferFilter initialize]): + (+[WKIdentityTransferFilter filterWithName:]): + (-[WKIdentityTransferFilter init]): + (-[WKIdentityTransferFilter outputImage]): + * kcanvas/device/quartz/filters/WKLinearTransferFilter.cikernel: Added. + * kcanvas/device/quartz/filters/WKLinearTransferFilter.h: Added. + * kcanvas/device/quartz/filters/WKLinearTransferFilter.m: Added. + (+[WKLinearTransferFilter initialize]): + (+[WKLinearTransferFilter filterWithName:]): + (-[WKLinearTransferFilter init]): + (-[WKLinearTransferFilter outputImage]): + * kcanvas/device/quartz/filters/WKTableTransferFilter.cikernel: Added. + * kcanvas/device/quartz/filters/WKTableTransferFilter.h: Added. + * kcanvas/device/quartz/filters/WKTableTransferFilter.m: Added. + (+[WKTableTransferFilter initialize]): + (+[WKTableTransferFilter filterWithName:]): + (-[WKTableTransferFilter init]): + (-[WKTableTransferFilter outputImage]): + * ksvg2/svg/SVGComponentTransferFunctionElement.cpp: + (SVGComponentTransferFunctionElement::parseMappedAttribute): + (SVGComponentTransferFunctionElement::transferFunction): + +2006-04-25 Eric Seidel + + Reviewed by ggaren. + + Make trunk match the branch. Now nodes are fully removed + from the tree before calling detach. There is (thankfully) no + good way to test this, as no one should depend on this behavior. + This change was made are part of fixing: + repro crash on www.formassembly.com in khtml::RenderBlock::addChildToFlow + CrashTracer: 2698 crashes in Safari at com.apple.WebCore: khtml::RenderBlock::addChildToFlow + 156 + on the branch. + + * dom/ContainerNode.cpp: + (WebCore::ContainerNode::removeChildren): + +2006-04-25 Maciej Stachowiak + + Reviewed by Adele. + + - don't have a fini method, since trying to call it will actually call the subclass method + and mess up the bridge count. + + * bridge/mac/WebCoreFrameBridge.mm: + (-[WebCoreFrameBridge dealloc]): + (-[WebCoreFrameBridge finalize]): + +2006-04-25 Steve Falkenburg + + Reviewed by eseidel. + + No test case needed + + * platform/win/TemporaryLinkStubs.cpp: + (KWQFileButton::setFrameGeometry): + +2006-04-25 Eric Seidel + + Reviewed by mjs. + + Fix reproducible crash in html parser code. + http://bugs.webkit.org/show_bug.cgi?id=7137 + + Test: fast/parser/remove-current-node-parent.html + + * html/HTMLParser.cpp: + (WebCore::HTMLParser::handleError): + +2006-04-25 Maciej Stachowiak + + Reviewed by Eric. + + - fixed http://bugs.webkit.org/show_bug.cgi?id=8575 + New KWQFileButton leaks reported by buildbot + + * kwq/KWQFileButton.mm: + (KWQFileButton::KWQFileButton): Add a missing release + +2006-04-24 David Hyatt + + Fix for 8336, focus ring redrawing on top of itself. Make sure + not to include empty rects when doing the focus ring drawing, since + that results in a draw with no clip set. + + Reviewed by adele + + * platform/mac/GraphicsContextMac.mm: + (WebCore::GraphicsContext::drawFocusRing): + +2006-04-24 Eric Seidel + + Reviewed by ggaren. + + Fix for 5th worst unresolved crasher: + [REGRESSION]CrashTracer: ..400 crashes at com.apple.WebCore: DOM::NodeImpl::createRendererIfNeeded + 44 + + Test: fast/dom/remove-style-element.html + + * dom/ContainerNode.cpp: + (WebCore::ContainerNode::removeChildren): + +2006-04-24 Eric Seidel + + Reviewed by mjs. + + Speculative fix for our 7th worst crasher. + Also added ASSERTs to help us better understand the issue. + CrashTracer: 2412 crashes in Safari at com.apple.WebCore: khtml::RenderStyle::RenderStyle[unified] + 44 + + * dom/Document.cpp: + (WebCore::Document::recalcStyle): + (WebCore::Document::setInPageCache): + * dom/Document.h: + * dom/Element.cpp: + (WebCore::Element::recalcStyle): + +2006-04-24 Adele Peterson + + Reviewed by Hyatt. + + Fix for REGRESSION (NativeTextField): Can't insert caret when + selection is active in field (Business/Unit) + + * css/html4.css: Added -webkit-user-select:text for input elements. + +2006-04-24 Maciej Stachowiak + + Build fix: + + - move some prematurely moved code back + + * bridge/mac/WebCoreFrameBridge.h: + * bridge/mac/WebCoreFrameBridge.mm: + (-[WebCoreFrameBridge fini]): + +2006-04-24 Maciej Stachowiak + + Reviewed by Darin. + + - move more code from WebFrameBridge to WebCoreFrameBridge + + * bridge/mac/WebCoreFrameBridge.h: + * bridge/mac/WebCoreFrameBridge.mm: + (-[WebCoreFrameBridge domain]): + (-[WebCoreFrameBridge canTargetLoadInFrame:]): + (-[WebCoreFrameBridge fini]): + (-[WebCoreFrameBridge dealloc]): + (-[WebCoreFrameBridge finalize]): + (_getPreSmartSet): + (_getPostSmartSet): + (-[WebCoreFrameBridge isCharacterSmartReplaceExempt:isPreviousCharacter:]): + (-[WebCoreFrameBridge _retrieveKeyboardUIModeFromPreferences:]): + (-[WebCoreFrameBridge keyboardUIMode]): + +2006-04-24 Adele Peterson + + Reviewed by Tim O. + + Fix to send textFieldDidBeginEditing on the first editing change instead of on focus. + This matches our old behavior. + + * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::dispatchFocusEvent): + * rendering/RenderTextField.cpp: (WebCore::RenderTextField::subtreeHasChanged): + +2006-04-24 Beth Dakin + + Reviewed by Eric. + + Fix for REGRESSION: Crash in + WebCore::shouldEmitTabBeforeNode() when iterating through document + text + + * editing/TextIterator.cpp: + (WebCore::shouldEmitTabBeforeNode): Need to nil-check the renderer. + +2006-04-23 Geoffrey Garen + + Reviewed by Maciej. + + * bindings/scripts/CodeGeneratorJS.pm: Removed confusing 'JS' prefix + from string descriptions of DOM prototypes, so the prototype for, e.g., + Document serializes as 'Document,' not 'JSDocument.' + +2006-04-23 Geoffrey Garen + + Reviewed by Darin. + + - Took the larger snippets of C++ in the code generator and broke + them into HERE documents in the hopes of improving readability. + + * bindings/scripts/CodeGeneratorJS.pm: I indented variable names + level with their corresponding HERE documents to clearly + "sandwich" the HERE documents between opening and closing EOF + statements. + +2006-04-23 Maciej Stachowiak + + Reviewed by Darin. + + - push WebFileButton and WebStringTruncator code down to WebCore + http://bugs.webkit.org/show_bug.cgi?id=8552 + + * WebCore.exp: + * WebCore.xcodeproj/project.pbxproj: + * bridge/mac/WebCoreFrameBridge.h: + * bridge/mac/WebCoreStringTruncator.h: Added. + * bridge/mac/WebCoreStringTruncator.mm: Added. + (stringWidth): + (truncateString): + (+[WebCoreStringTruncator widthOfString:font:]): + * bridge/mac/WebCoreViewFactory.h: + * kwq/KWQFileButton.h: + * kwq/KWQFileButton.mm: + (-[WebFileChooserButton initWithWidget::]): + (-[WebCoreFileButton positionButton]): + (-[WebCoreFileButton initWithWidget:]): + (-[WebCoreFileButton initWithFrame:]): + (-[WebCoreFileButton dealloc]): + (-[WebCoreFileButton isFlipped]): + (-[WebCoreFileButton drawRect:]): + (-[WebCoreFileButton updateLabel]): + (-[WebCoreFileButton setFilename:]): + (-[WebCoreFileButton filename]): + (-[WebCoreFileButton setFrameSize:]): + (-[WebCoreFileButton bestVisualFrameSizeForCharacterCount:]): + (-[WebCoreFileButton visualFrame]): + (-[WebCoreFileButton setVisualFrame:]): + (-[WebCoreFileButton baseline]): + (-[WebCoreFileButton beginSheet]): + (-[WebCoreFileButton chooseFilename:]): + (-[WebCoreFileButton cancel]): + (-[WebCoreFileButton chooseButtonPressed:]): + (-[WebCoreFileButton mouseDown:]): + (-[WebCoreFileButton acceptsFirstResponder]): + (-[WebCoreFileButton becomeFirstResponder]): + (-[WebCoreFileButton nextKeyView]): + (-[WebCoreFileButton previousKeyView]): + (-[WebCoreFileButton nextValidKeyView]): + (-[WebCoreFileButton previousValidKeyView]): + (-[WebCoreFileButton performClick]): + (-[WebFileChooserButton initWithWidget:]): + (-[WebFileChooserButton nextValidKeyView]): + (-[WebFileChooserButton previousValidKeyView]): + (-[WebFileChooserButton resignFirstResponder]): + (KWQFileButton::KWQFileButton): + (KWQFileButton::setFilename): + (KWQFileButton::click): + (KWQFileButton::sizeForCharacterWidth): + (KWQFileButton::frameGeometry): + (KWQFileButton::setFrameGeometry): + (KWQFileButton::baselinePosition): + (KWQFileButton::filenameChanged): + +2006-04-23 Maciej Stachowiak + + Reviewed by Eric. + + - remove WebCoreCookieAdapter, instead make mac implementation of + CookieJar use Foundation directly. + + * WebCore.exp: + * WebCore.xcodeproj/project.pbxproj: + * platform/mac/CookieJar.mm: + (WebCore::cookies): + (WebCore::setCookies): + (WebCore::cookiesEnabled): + * platform/mac/WebCoreCookieAdapter.h: Removed. + * platform/mac/WebCoreCookieAdapter.m: Removed. + +2006-04-21 Rob Buis + + Reviewed by hyatt. Landed by eseidel. + + Fix for http://bugs.webkit.org/show_bug.cgi?id=8170: + SVG CSS property values with extra items do not get treated + as invalid (they should) + + Fixes the handling of invalid svg css properties similar + to how invalid html css properties are handled, ie. discard + the property if there are more values in the value list than + expected. + + Test: svg/custom/invalid-css.svg + + * ksvg2/css/SVGCSSParser.cpp: + (WebCore::CSSParser::parseSVGValue): + +2006-04-23 Michael Emmel + + Reviewed by mjs. Landed by eseidel. + + http://bugs.webkit.org/show_bug.cgi?id=8517 + No test necessary, no functional change. + + * DerivedSources.make: use VPATH more consistently. + +2006-04-23 Jon Shier + + Reviewed by ggaren. Landed by eseidel. + + - Fix for http://bugs.webkit.org/show_bug.cgi?id=8511 + onerror JS property does not register listener properly + + Test: fast/dom/onerror-img.html + + * bindings/js/kjs_dom.cpp: + (KJS::DOMEventTargetNode::getValueProperty): changed khtmlErrorEvent to errorEvent. + (KJS::DOMEventTargetNode::putValueProperty): ditto. + * bindings/js/kjs_window.cpp: + (KJS::Window::getValueProperty): ditto. + (KJS::Window::put): + * dom/EventNames.h: Removed khtmlError macro. + +2006-04-23 Eric Seidel + + Reviewed by hyatt. + + Reproducible crasher with
  • + http://bugs.webkit.org/show_bug.cgi?id=8542 + + Fixed our alphabetical list generation to match WinIE (not FireFox) + Previously our alphabetical lists were completely wrong past 26 items. + + Tests: + * fast/lists/alpha-list-wrap.html + * fast/lists/li-style-alpha-huge-value-crash.html + + * rendering/render_list.cpp: + (WebCore::toLetterString): + (WebCore::toHebrew): + (WebCore::RenderListMarker::calcMinMaxWidth): + +2006-04-22 Geoffrey Garen + + Reviewed by Darin. + + - Finished autogeneration of Element + + * bindings/js/kjs_dom.cpp: Removed DOMElement class + * bindings/js/kjs_dom.h: ditto + * bindings/scripts/CodeGeneratorJS.pm: added support for special + attribute lookup that elements do + * dom/Element.idl: added new attribute, + "IncludeAttributesInPropertyLookup," which tells the code generator + to include HTML element attributes in property lookup + +2006-04-22 Michael Emmel + + Reviewed by Maciej. + + - fix http://bugs.webkit.org/show_bug.cgi?id=8529 + Extra Qaulification in header + - fix http://bugs.webkit.org/show_bug.cgi?id=8530 + Missing assert.h include + + * rendering/RenderObject.h: Removed erroneous RenderObject:: + prefix from a member function name. + * rendering/RenderText.h: Removed erroneous RenderText:: + prefix from a member function name. + + * platform/Arena.cpp: Added to list of includes. + * platform/KURL.cpp: Ditto. + * platform/StringImpl.cpp: Ditto. + * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: Ditto. + * platform/image-decoders/png/PNGImageDecoder.cpp: Ditto. + +2006-04-22 Darin Adler + + * doc: Added. + +2006-04-22 Maciej Stachowiak + + Reviewed by Eric. + + - push down a bunch of WebCoreFrameBridge code to C++ (plus some reformatting) + + * bridge/mac/WebCoreFrameBridge.mm: + (-[WebCoreFrameBridge isDescendantOfFrame:]): + (-[WebCoreFrameBridge traverseNextFrameStayWithin:]): + (-[WebCoreFrameBridge nextFrameWithWrap:]): + (-[WebCoreFrameBridge previousFrameWithWrap:]): + (+[WebCoreFrameBridge bridgeForDOMDocument:]): + (-[WebCoreFrameBridge parent]): + (-[WebCoreFrameBridge addData:]): + (-[WebCoreFrameBridge didNotOpenURL:pageCache:]): + (-[WebCoreFrameBridge restoreDocumentState]): + (-[WebCoreFrameBridge _stringWithDocumentTypeStringAndMarkupString:]): + (-[WebCoreFrameBridge nodesFromList:]): + (-[WebCoreFrameBridge markupStringFromNode:nodes:]): + (-[WebCoreFrameBridge markupStringFromRange:nodes:]): + (-[WebCoreFrameBridge rangeByExpandingSelectionWithGranularity:]): + (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:direction:granularity:]): + (-[WebCoreFrameBridge alterCurrentSelection:direction:granularity:]): + (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:verticalDistance:]): + (-[WebCoreFrameBridge alterCurrentSelection:verticalDistance:]): + (-[WebCoreFrameBridge replaceMarkedTextWithText:]): + (-[WebCoreFrameBridge replaceSelectionWithFragment:selectReplacement:smartReplace:matchStyle:]): + (-[WebCoreFrameBridge increaseSelectionListLevel]): + (-[WebCoreFrameBridge decreaseSelectionListLevel]): + (-[WebCoreFrameBridge insertLineBreak]): + (-[WebCoreFrameBridge insertParagraphSeparator]): + (-[WebCoreFrameBridge insertParagraphSeparatorInQuotedContent]): + (-[WebCoreFrameBridge insertText:selectInsertedText:]): + (-[WebCoreFrameBridge deleteSelectionWithSmartDelete:]): + (-[WebCoreFrameBridge ensureSelectionVisible]): + (-[WebCoreFrameBridge RenderObject::nodeInfoAtPoint:allowShadowContent:]): + * page/Frame.cpp: + (WebCore::Frame::nodeInfoAtPoint): + (WebCore::Frame::hasSelection): + (WebCore::Frame::documentTypeString): + * page/Frame.h: + * page/FrameTree.cpp: + (WebCore::FrameTree::traverseNextWithWrap): + (WebCore::FrameTree::traversePreviousWithWrap): + (WebCore::FrameTree::deepLastChild): + * page/FrameTree.h: + +2006-04-22 Beth Dakin + + Reviewed by Hyatt. + + Fix for http://bugs.webkit.org/show_bug.cgi?id=6141 + DOMCSSPrimitiveValue is always returning values in pixels when + using getComputedStyle: + + getFloatValue() took a unit type as a parameter, ignored it, and + returned m_value.num. This patch writes a second version of the + function that actually converts m_value.num to the specified unites + before returning it. Where a conversion is not required, I removed + the unit type from the caller so that it would go directly to the + inline version of the function. + + * css/css_valueimpl.cpp: + (WebCore::CSSPrimitiveValue::computeLengthFloat): Remove type + parameter since a conversion is not needed. + (WebCore::scaleFactorForConversion): Helper function for + conversion. + (WebCore::CSSPrimitiveValue::getFloatValue): This version of + getFloatValue() takes a unit type parameter and converts + m_value.num. + * css/css_valueimpl.h: + (WebCore::CSSPrimitiveValue::getFloatValue): This version does not + take a parameter and just returns m_value.num. + * css/cssparser.cpp: + (WebCore::BorderImageParseContext::commitBorderImage): Remove type + parameter since a conversion is not needed. + * css/cssstyleselector.cpp: + (WebCore::convertToLength): Same. + (WebCore::CSSStyleSelector::applyProperty): Same. + (WebCore::CSSStyleSelector::mapBackgroundSize): Same. + (WebCore::CSSStyleSelector::mapBackgroundXPosition): Same. + (WebCore::CSSStyleSelector::mapBackgroundYPosition): Same. + * editing/ApplyStyleCommand.cpp: + (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Same. + * ksvg2/css/SVGCSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::applySVGProperty): Same. + * ksvg2/misc/KCanvasRenderingStyle.cpp: + (WebCore::KSVGPainterFactory::cssPrimitiveToLength): Same. + +2006-04-21 Geoffrey Garen + + Reviewed by John. + + - Fixed http://bugs.webkit.org/show_bug.cgi?id=8509 + javascript:document.importNode(null) + + * dom/Document.cpp: + (WebCore::Document::importNode): Throw an error if the node is null. + This happens when the object provided in the JavaScript call is not + a node. + (WebCore::Document::adoptNode): Set the DOM exception code in all error + cases instead of just a few, because that's what the spec requires. + +2006-04-21 Geoffrey Garen + + Reviewed by John. + + - Fixed http://bugs.webkit.org/show_bug.cgi?id=8510 + submit event doesn't bubble - it's supposed to. + + * html/HTMLElement.cpp: + (WebCore::HTMLElement::parseMappedAttribute): Added recognition for the + onsubmit attribute, so elements can use it + * html/HTMLFormElement.cpp: + (WebCore::HTMLFormElement::prepareSubmit): Changed bubbling attribute + to 'true' + +2006-04-21 Geoffrey Garen + + Reviewed by TimO. + + - Fixed: error event does not bubble + + I discovered this bug while working on the "submit event does not + bubble" bug. The DOM spec says the event should bubble, and that's how + it works in Firefox. + + The DOM Spec also says that the error event is "valid for + OBJECT elements, BODY elements, and FRAMESET element." But it doesn't + say "valid ONLY." Firefox supports it on all elements and web + developers tend to think it will work for things like and +