WebCore:
[WebKit-https.git] / WebCore / ChangeLog-2005-08-23
index dda9d98..130fba5 100644 (file)
@@ -1,3 +1,552 @@
+2005-02-22  Chris Blumenberg  <cblu@apple.com>
+
+       Fixed: <rdar://problem/3976872> Pasted plain text doesn't get the proper style if pasted into newlines
+
+        Reviewed by mjs.
+
+        * khtml/editing/htmlediting.cpp:
+        (khtml::ReplaceSelectionCommand::doApply): don't clear the typing style when matching style
+        (khtml::ReplaceSelectionCommand::completeHTMLReplacement): apply the typing style when matching style
+        * khtml/editing/jsediting.cpp:
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::pasteAndMatchStyle): new
+        * khtml/khtml_part.h:
+        * kwq/KWQKHTMLPart.h:
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::issuePasteAndMatchStyleCommand): new
+        * kwq/WebCoreBridge.h:
+        * layout-tests/editing/editing.js:
+
+2005-02-22  Darin Adler  <darin@apple.com>
+
+        Reviewed by Adele.
+
+        - fixed <rdar://problem/4006596> REGRESSION (183-184): crash in DOM::DocumentImpl::setFocusNode(DOM::NodeImpl*)
+
+        * khtml/xml/dom_docimpl.cpp:
+        (widgetForNode): Added helper.
+        (DocumentImpl::setFocusNode): Re-get the widget for the node after calling updateLayout.
+        The updateLayout can destroy the old widget, so we can't keep a stale widget pointer around.
+
+2005-02-22  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Hyatt
+
+        Fix for this bug:
+        
+        <rdar://problem/4003463> Mail.app HTML uses inline styling markup not understood by Entourage and Eudora
+
+        * khtml/editing/htmlediting.cpp:
+        (khtml::isEmptyFontTag): Helper for removing <font> tags.
+        (khtml::StyleChange::styleModeForParseMode): Helper to map a document parse mode to a use/don't use
+        legacy-html-styles value.
+        (khtml::StyleChange::checkForLegacyHTMLStyleChange): Add support for colors, font faces, and font sizes.
+        (khtml::ApplyStyleCommand::isHTMLStyleNode):
+        (khtml::ApplyStyleCommand::removeHTMLFontStyle):
+        (khtml::ApplyStyleCommand::applyTextDecorationStyle): Now call styleModeForParseMode to determine
+        whether to use legacy html styles or not.
+        (khtml::ApplyStyleCommand::removeInlineStyle): Now properly removes <font> styles.
+        (khtml::ApplyStyleCommand::addBlockStyleIfNeeded): Ditto.
+        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): Ditto.
+        (khtml::createFontElement): Helper for applying <font> elements.
+        * khtml/editing/htmlediting.h: All the following support the new bits of data we need to store.
+        (khtml::StyleChange::applyFontColor)
+        (khtml::StyleChange::applyFontFace)
+        (khtml::StyleChange::applyFontSize)
+        (khtml::StyleChange::fontColor)
+        (khtml::StyleChange::fontFace)
+        (khtml::StyleChange::fontSize)
+
+        Test results updated now that we will write out <font> tags for quirks mode documents.        
+        
+        * layout-tests/editing/execCommand/modifyForeColorByCharacter-expected.txt
+        * layout-tests/editing/style/block-style-004-expected.txt
+        * layout-tests/editing/editing/pasteboard/paste-text-011-expected.txt
+        * layout-tests/editing/style/block-style-005-expected.txt
+        * layout-tests/editing/style/block-style-006-expected.txt
+        * layout-tests/editing/style/smoosh-styles-001-expected.txt
+        * layout-tests/editing/style/smoosh-styles-002-expected.txt
+
+2005-02-22  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Kevin.
+
+       <rdar://problem/4017066> crash in KJS::ValueImp::dispatchType() every time I load www.nytimes.com/pages/automobiles
+
+       When creating option elements, use lowercase "option" instead of
+       uppercase "OPTION" to create option elements, because only
+       lowercase works for XHTML.
+       
+        * khtml/ecma/kjs_html.cpp:
+        (KJS::HTMLSelectCollection::tryPut):
+        (OptionConstructorImp::construct):
+
+2005-02-22  Chris Blumenberg  <cblu@apple.com>
+
+       WebCore fix for: <rdar://problem/3918056> Mail not line breaking my <pre> formatted emails on replies
+       
+       Mail must 4018993 to fully address the problem.
+
+        Reviewed by kocienda.
+
+        * khtml/editing/markup.cpp:
+        (khtml::startMarkup): don't compute style for text in PRE tags
+        (khtml::createMarkup): include PRE if it is an ancestor of the nodes in the range
+
+2005-02-21  Richard Williamson   <rjw@apple.com>
+
+       Fixed <rdar://problem/4008338> REGRESSION (125-178): opacity style not working, breaks fading images on okcupid.com
+
+       There was a long standing bug in cssText().  Double value were always cast int!  So,
+       opacity values values were incorrectly converted to text, i.e. 0.75 became 0.
+       
+       The problem was newly triggered because we parse the css for opacity *TWICE*.  This is a result of 
+       incorrectly "invalidating" the style attribute (from fix for 3790449).  The second parse was from
+       the cssText() of the style.
+
+        Reviewed by Hyatt.
+
+        * khtml/css/css_valueimpl.cpp:
+        (DOM::CSSPrimitiveValueImpl::cssText):
+
+2005-02-21  David Hyatt  <hyatt@apple.com>
+
+       Fix for 4017204, apply the same fix to the base class nodeAtPoint that was already applied to RenderBlock.
+       Skip elements with layers and inline flows.  Demoted <form>s can end up causing trouble otherwise.
+       
+        Reviewed by Richard Williamson
+
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::nodeAtPoint):
+
+2005-02-21  David Hyatt  <hyatt@apple.com>
+
+       Fix for 4017033, CSS is being parsed twice.  Make sure to always validate the style attribute when it is
+       initially parsed.  Add code to clean up decls when the style attribute is completely removed.  Add a new
+       synchronizing boolean that avoids reparsing the style declaration when the attribute is simply
+       being synced up to the declaration.
+
+        Reviewed by John
+
+        * khtml/css/css_valueimpl.cpp:
+        (DOM::CSSMutableStyleDeclarationImpl::setChanged):
+        * khtml/html/html_elementimpl.cpp:
+        (HTMLElementImpl::invalidateStyleAttribute):
+        (HTMLElementImpl::updateStyleAttributeIfNeeded):
+        (HTMLElementImpl::HTMLElementImpl):
+        (HTMLElementImpl::~HTMLElementImpl):
+        (HTMLElementImpl::destroyInlineStyleDecl):
+        (HTMLElementImpl::mapToEntry):
+        (HTMLElementImpl::parseHTMLAttribute):
+        * khtml/html/html_elementimpl.h:
+        * khtml/xml/dom_elementimpl.cpp:
+        (ElementImpl::ElementImpl):
+        (ElementImpl::setAttribute):
+        * khtml/xml/dom_elementimpl.h:
+        (DOM::ElementImpl::updateStyleAttributeIfNeeded):
+
+=== Safari-188 ===
+
+2005-02-21  Darin Adler  <darin@apple.com>
+
+        - fixed Panther deployment build
+
+        * kwq/KWQTextEdit.mm: (QTextEdit::setScrollBarModes): Put more stuff inside #if.
+
+2005-02-21  David Harrison  <harrison@apple.com>
+
+        Reviewed by Darin.
+
+        <rdar://problem/3943090> REGRESSION (Mail): Spelling underline incompletely erased following certain steps
+
+        * khtml/rendering/render_text.cpp:
+        (InlineTextBox::paintMarker):
+        Make sure underline is placed within the text bounds.
+        
+        * kwq/KWQPainter.h:
+        * kwq/KWQPainter.mm:
+        (QPainter::misspellingLineThickness):
+        * kwq/WebCoreTextRenderer.h:
+        Add misspellingLineThickness for use by InlineTextBox::paintMarker.
+
+2005-02-21  Darin Adler  <darin@apple.com>
+
+        Reviewed by John.
+
+        - fixed <rdar://problem/4012978> -[DOMRange markupString] crashes when range contains only a text node with a single space
+
+        * khtml/editing/markup.cpp: (khtml::createMarkup): Added updateLayout calls, and added a missing
+        nil check.
+
+2005-02-21  Darin Adler  <darin@apple.com>
+
+        Reviewed by John.
+
+        - fixed <rdar://problem/4005435> Safari hung while pasting text into a <textarea> (Panther-only)
+
+        * kwq/KWQTextEdit.mm: (QTextEdit::setScrollBarModes): Don't setAutohidesScrollers:YES on Panther.
+
+2005-02-21  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by John
+
+        Fix for this bug:
+        
+        <rdar://problem/4015499> REGRESSION (186-187): pasted quoted text starting with a blank line increases quote level of pasted text when pasted
+
+        * khtml/editing/markup.cpp:
+        (khtml::markup): Changed over to ASSERT instead of assert.
+        (khtml::createMarkup): The issue was that the code to add parents all the way back to the common ancestor
+        block did not check for blocks whose markup had already been added, and could result in adding markup for
+        nodes twice (hence the additional and erroneous quote level). Now there is a new check that will
+        only add markup for those nodes before the start of the selection range. This fixes the bug.
+        (khtml::createFragmentFromMarkup): Changed over to ASSERT instead of assert.
+        (khtml::createFragmentFromText): Ditto.
+
+2005-02-21  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by John
+
+        Fix for this bug:
+        
+        <rdar://problem/4015494> REGRESSION (186-187) <cr> removed if quoted word is copy/pasted on line immediately above quoted text
+
+        * khtml/editing/htmlediting.cpp:
+        (khtml::ReplaceSelectionCommand::doApply): Relatively new check designed to remove a <br> element when
+        that element was on a line by itself did not do an adequate check for this condition, causing the
+        failure described in the bug. Fixed.
+
+2005-02-19  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Maciej
+
+        * khtml/editing/htmlediting.cpp:
+        (khtml::matchNearestBlockquoteColorString): New function which abstracts away the CSS property we use
+        for this pseudo-color.
+        (khtml::ReplacementFragment::removeBlockquoteColorsIfNeeded): Set the new nearestBlockquoteColorString
+        psuedo-color here, rather than removing colors as was done before.
+        (khtml::ReplaceSelectionCommand::applyStyleToInsertedNodes): Check for the pseudo-color in the desired
+        style, and determine the real color based on the nearest blockquote (or none) to the node.
+        (khtml::nearestMailBlockquote): Name change from closestMailBlockquote to match new property better.
+
+        All the rest of this change is the mechanical coding you need to do to add a new CSS property, in this
+        case, -khtml-match-nearest-mail-blockquote-color.
+
+        * khtml/css/css_computedstyle.cpp:
+        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue)
+        * khtml/css/cssparser.cpp:
+        (CSSParser::parseValue):
+        * khtml/css/cssproperties.c:
+        (hash_prop):
+        (findProp):
+        * khtml/css/cssproperties.h:
+        * khtml/css/cssproperties.in:
+        * khtml/css/cssstyleselector.cpp:
+        (khtml::CSSStyleSelector::applyProperty)
+        * khtml/css/cssvalues.c:
+        (findValue)
+        * khtml/css/cssvalues.h:
+        * khtml/css/cssvalues.in:
+        * khtml/rendering/render_style.h:
+        (khtml::RenderStyle::matchNearestMailBlockquoteColor)
+        (khtml::RenderStyle::setMatchNearestMailBlockquoteColor)
+        (khtml::RenderStyle::initialMatchNearestMailBlockquoteColor)
+
+2005-02-19  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Chris
+
+        Fix for these bugs:
+        
+        <rdar://problem/4014228> REGRESSION (186-187) extra, uneditable lines inserted above and below a line of pasted quoted text
+        <rdar://problem/4014393> REGRESSION (186-187) pasted quoted text gets extra <cr>s when pasted at top of document
+
+        * khtml/editing/htmlediting.cpp:
+        (khtml::ReplacementFragment::ReplacementFragment): Part of a general refactoring of how
+        the fragment is inserted into the document, rendered, and then tested for certain
+        important pieces of information that are required for pasting.
+        (khtml::ReplacementFragment::insertFragmentForTestRendering): New helper. Handles inserting
+        the fragment nodes into the document.
+        (khtml::ReplacementFragment::restoreTestRenderingNodesToFragment): Removes nodes from the
+        document, and restores them to the fragment.
+        (khtml::ReplacementFragment::computeStylesUsingTestRendering): Factored out code that
+        did this before into its own function.
+        (khtml::ReplacementFragment::removeUnrenderedNodesUsingTestRendering): Ditto.
+        (khtml::ReplacementFragment::countRenderedBlocks): This is a real improvement, as it
+        eliminates a major use of the isProbablyBlock() function. Now, the blocks that are
+        counted are real, rendered blocks.
+        (khtml::ReplacementFragment::removeStyleNodes): Made this function retain margin-zeroing
+        CSS properties on paragraphs. This does two things: 1) It helps us to maintain good behavior
+        in the short term while there are still versions of Mail out there that use <p> elements
+        instead of <div> elements for new paragraphs; and 2) It will help to maintain the compatibility
+        with other mail clients that use <p> elements for their paragraphs but render them themselves
+        with no margins as the result of quirks.
+        (khtml::ReplaceSelectionCommand::doApply): Do some work to fix up and improve the handling
+        of blank lines, be they <p> elements or <br> elements, that can be removed after pasting. This, 
+        coupled with the refactoring, fixes 4014393.
+        * khtml/editing/htmlediting.h: Updated for new functions.
+        * layout-tests/editing/pasteboard/paste-text-010-expected.txt: Updated results, actually improved with this change.
+        * layout-tests/editing/pasteboard/paste-text-011-expected.txt: Ditto.
+
+2005-02-19  Kevin Decker  <kdecker@apple.com>
+
+        Reviewed by Chris.
+
+       Fixed <rdar://problem/4010765> Flash player can be used to arbitrarily open popup windows without user permission
+       
+       Our window.open() policy is to refuse the <script>window.open(...)</script> case and allow the inline the <a href="javascript:window.open('foo')> case.  Clever advertisers at some point realized that by executing their Javascript through the Flash plugin, Safari would always treat their code as the inline case, and thus, they were able to work around our popup blocker.
+
+        * kwq/WebCoreBridge.h:
+        * kwq/WebCoreBridge.mm:
+        (-[WebCoreBridge stringByEvaluatingJavaScriptFromString:]): Changed this to invoke the new stringByEvaluatingJavaScriptFromString:forceUserGesture method below.
+        (-[WebCoreBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]): Let the WebKit make the determination if this was a user originated gesture or not; we must no longer assume this is always the case.
+
+2005-02-18  Chris Blumenberg  <cblu@apple.com>
+       
+       Fixed: <rdar://problem/3951196> REGRESSION (Mail): too many levels of reply quotes after certain steps
+
+        Reviewed by kocienda.
+
+        * khtml/editing/htmlediting.cpp:
+        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
+       - If we find a new start node, update topBlockquote so we don't use too many block quotes for the contents following the new line.
+       - Build up the list of ancestors after we've determined the actual topBlockquote.
+       - Don't insert an extra new line if there is a new start node.
+
+2005-02-19  Chris Blumenberg  <cblu@apple.com>
+
+       Fixed: <rdar://problem/3978461> smart paste is broken
+
+        Reviewed by kevin.
+
+        * khtml/editing/htmlediting.cpp:
+        (khtml::ReplaceSelectionCommand::doApply): properly check for leading and trailing whitespace. These checks were incorrectly reversed. Also check if we're pasting at the beginning or end of a line. We should not insert spaces in either case.
+
+2005-02-18  Adele Amchan  <adele@apple.com>
+
+        Reviewed by Darin.
+
+        Fix for <rdar://problem/3975568> REGRESSION(125-180)Australian Open pages have drawing problem
+
+        This patch fixes two problems caused by our added support for custom tags.  First, the layout problem at the sites mentioned in the bug
+        was caused by custom tags within tables.  In checkChild, we needed to treat these tags as spans so they get placed correctly in the DOM tree.
+        Also, we were indexing the tagPriority and endTag arrays with id values from the custom tags that were greater than the size of the array.  So now 
+        we have functions to check for the custom tags, and again, treat them as spans.  To avoid confusion, we changed the names of the arrays to
+        endTagArray and tagPriorityArray.
+
+        * khtml/html/dtd.h: changed all uses of the endTag array to endTagArray for our new wrapper functions
+        (DOM::tagPriority): added function to check array bounds and to treat custom tags as spans
+        (DOM::endTagRequirement): added function to check array bounds and to treat custom tags as spans
+        * khtml/html/dtd.cpp: changed name of endTag and tagPriority arrays to endTagArray and tagPriorityArray
+        (DOM::checkChild): treat custom tags as spans during this check
+        * khtml/html/html_elementimpl.cpp: changed all uses of the endTag array to the endTagRequirement function
+        (HTMLElementImpl::createContextualFragment):
+        (HTMLElementImpl::setInnerText):
+        (HTMLElementImpl::setOuterText):
+        (HTMLElementImpl::toString):
+        * khtml/html/htmlparser.cpp: changed all uses of the endTag array to the endTagRequirement function and all uses of the tagPriority array to the tagPriority function.
+        (KHTMLParser::parseToken):
+        (KHTMLParser::insertNode):
+        * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): changed all uses of the endTag array to the endTagRequirement function
+       * khtml/editing/markup.cpp: changed all uses of the endTag array to the endTagRequirement function
+        (khtml::endMarkup): 
+        (khtml::markup):
+
+2005-02-18  Jens Alfke  <jens@apple.com>
+
+        Reviewed by Hyatt.
+
+       Fixed build: Whoops, setNeedsLayout's parameter is NOT optional.
+
+        * khtml/html/html_objectimpl.cpp:
+        (HTMLAppletElementImpl::setAllParamsAvailable):
+
+2005-02-18  Jens Alfke  <jens@apple.com>
+
+        Reviewed by cblu, hyatt.
+
+       Fixes <rdar://problem/3603191> "REGRESSION: Applets not receiving all of the Applet Parameters in Java 1.4.1/1.4.2"
+       Defer instantiation of Java applet plugin until after all of the <applet> tag's nested <param> tags have been parsed, otherwise the list of parameters passed to the applet is incomplete. The regression was introduced (says Dave) when the parser's close-tag notifications were removed in the name of performance.
+
+        * khtml/html/html_objectimpl.cpp:
+        (HTMLAppletElementImpl::HTMLAppletElementImpl):
+        (HTMLAppletElementImpl::getAppletInstance):
+        (HTMLAppletElementImpl::setAllParamsAvailable):
+        (HTMLAppletElementImpl::allParamsAvailable):
+        * khtml/html/html_objectimpl.h:
+        * khtml/html/htmlparser.cpp:
+        (KHTMLParser::processCloseTag):
+        * khtml/rendering/render_applet.cpp:
+        (RenderApplet::createWidgetIfNecessary):
+
+2005-02-18  Richard Williamson   <rjw@apple.com>
+
+       Fixed <rdar://problem/4006161> Tiger8A380: Widgets leak dashboard regions
+       
+       We were leaking the DashboardRegionImpls.
+
+        Reviewed by Kevin.
+
+        * khtml/css/css_valueimpl.cpp:
+        (DOM::CSSPrimitiveValueImpl::cleanup):
+
+2005-02-18  Chris Blumenberg  <cblu@apple.com>
+
+       Fixed: <rdar://problem/3945271> REGRESSION (Mail): pasted plain text should pick up typing style instead of being unstyled
+
+        Reviewed by kocienda.
+
+        * khtml/editing/htmlediting.cpp:
+        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): don't set class on element returned by createStyleSpanElement since that's already done
+        (khtml::ReplacementFragment::ReplacementFragment): take matchStyle param, don't call computeStylesAndRemoveUnrendered() if !matchStyle
+        (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): take matchStyle param
+        (khtml::ReplaceSelectionCommand::doApply): if m_matchStyle, use selection.start() as the insertion position and don't call applyStyleToInsertedNodes()
+        * khtml/editing/htmlediting.h:
+        * kwq/WebCoreBridge.h:
+        * kwq/WebCoreBridge.mm:
+        (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:matchStyle:]): take matchStyle param and pass it
+        (-[WebCoreBridge replaceSelectionWithNode:selectReplacement:smartReplace:]): pass NO for matchStyle
+        (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:selectReplacement:smartReplace:]): pass NO for matchStyle
+        (-[WebCoreBridge replaceSelectionWithText:selectReplacement:smartReplace:]): pass YES for matchStyle
+
+2005-02-18  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Chris
+
+        Fix for these bugs:
+        
+        <rdar://problem/4013025> Copy/Paste of quoted word results in removal of any following <cr>
+        <rdar://problem/4013100> Copy/Paste quoted text and then decrease quote level does not change text color
+
+        For the most part, these bugs were caused by errors and lack of foresight on my part when
+        I added the better paste code. Chalk these fixes up to the result of bake time.
+
+        * khtml/editing/htmlediting.cpp:
+        (khtml::ReplacementFragment::ReplacementFragment): Need to move count of number of blocks in
+        fragment after the call to remove unrendered nodes. Meant to do this before, but forgot to.
+        (khtml::ReplacementFragment::removeStyleNodes): Need to remove inline styles from elements!
+        Terrible omission now fixed.
+        (khtml::ReplacementFragment::removeBlockquoteColorsIfNeeded): Remove blockquote colors for now.
+        Code has a more extensive comment in it now to explain the difficulty, and the need for more
+        study and changes.
+        (khtml::ReplaceSelectionCommand::doApply): Need to call applyStyleToInsertedNodes() in the 
+        m_fragment.hasInterchangeNewline() case. This was just missed before.
+        * layout-tests/editing/pasteboard/paste-text-011-expected.txt: Updated results, subtly different, but OK.
+        * layout-tests/editing/pasteboard/paste-text-017-expected.txt: Updated for <p> to <div> change in test content.
+        * layout-tests/editing/pasteboard/paste-text-017.html: Needed to change <p> to <div> to 
+        make this test go with the new design of using <div> tags for default paragraphs.
+
+2005-02-18  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3974263 (and possibly others).  Don't let fixed tables use maxint as their maxwidth when some
+       cells have percentage values.
+       
+        Reviewed by kocienda
+
+        * khtml/misc/arena.cpp:
+        (ArenaAllocate):
+        * khtml/rendering/table_layout.cpp:
+        (FixedTableLayout::calcWidthArray):
+        (FixedTableLayout::calcMinMaxWidth):
+        (AutoTableLayout::layout):
+
+2005-02-17  Darin Adler  <darin@apple.com>
+
+        Reviewed by Kevin.
+
+        - fixed <rdar://problem/3998627> WebKit crashes when deleting text in a modified div
+
+        * khtml/khtml_part.cpp: (KHTMLPart::selectionComputedStyle): Add a ref and deref to keep
+        the element alive until it's added to the DOM tree.
+        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::styleForSelectionStart): Ditto.
+
+2005-02-17  Richard Williamson   <rjw@apple.com>
+
+        Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
+
+       Fixed w/o introducing a performance regression.  Add early
+       check for Osaka-Mono to avoid expensive call into WebKit.
+
+        Reviewed by Vicki.
+
+        * kwq/KWQFont.mm:
+        (QFont::isFixedPitch):
+
+2005-02-17  Darin Adler  <darin@apple.com>
+
+        Reviewed by Kevin.
+
+        - fixed <rdar://problem/4011210> REGRESSION (180-181): Maxlength property for INPUT object not working
+
+        * kwq/KWQTextField.mm:
+        (-[KWQTextField textView:shouldChangeTextInRange:replacementString:]): If controller returns
+        YES, go on to call super, since super does the text formatter handling, which we need.
+        (-[KWQSecureTextField textView:shouldChangeTextInRange:replacementString:]): Ditto.
+        (-[KWQSearchField textView:shouldChangeTextInRange:replacementString:]): Ditto.
+
+=== Safari-187 ===
+
+2005-02-17  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Hyatt
+
+        Fix for this bug:
+        
+        <rdar://problem/4012058> Copy from quoted text and paste results in blue text
+
+        The relatively-new paste code tries hard to retain style of the content from the
+        source location. However, in the case of quoted material in mail messages, we do 
+        not want to carry the quoting color along. This fixes the problem by factoring
+        out such colors.
+
+        * khtml/editing/htmlediting.cpp:
+        (khtml::ReplacementFragment::computeStylesAndRemoveUnrendered): Now calls removeBlockquoteColorsIfNeeded()
+        to fix bug.
+        (khtml::ReplacementFragment::removeBlockquoteColorsIfNeeded): New function. Factors out colors that are
+        the result of text being quoted. 
+        (khtml::isNodeRendered): Function moved in file. No other change.
+        (khtml::isProbablyBlock): Function moved in file. No other change.
+        (khtml::closestMailBlockquote): New function. Helps fix bug.
+        (khtml::isMailBlockquote): Function moved to be free-floating instead of being a 
+        member of CompositeEditCommand. No other change.
+        * khtml/editing/htmlediting.h: Moved around some functions. Added removeBlockquoteColorsIfNeeded().
+        * khtml/editing/markup.cpp: Remove redundant static implementation of isMailBlockquote.
+
+2005-02-17  Richard Williamson   <rjw@apple.com>
+
+       Fixed <rdar://problem/4008163> dynamic support for -apple-dashboard-region is flakey
+
+       Style operator== wasn't including regions.
+
+        Reviewed by Darin.
+
+        * khtml/rendering/render_style.cpp:
+        (StyleCSS3NonInheritedData::operator==):
+
+2005-02-17  Adele Amchan  <adele@apple.com>
+
+        Reviewed by Chris.
+
+        fix for <rdar://problem/4010028> 8A383: Safari v185 crash loading united.com multi city fare finder page.
+
+        * khtml/dom/dom_string.cpp: (DOM::DOMString::operator += ): prevent nil dereference when DOMString being added is nil
+
+2005-02-17  Jens Alfke  <jens@apple.com>
+
+        Reviewed by Hyatt.
+
+       Fix for rdar://3963151 "Mail only pasted ~950 of 1407 text lines into my message!"
+       Force tokenizer to run synchronously while parsing document fragments, so it doesn't stop halfway through and cause truncated content.
+
+        * khtml/html/html_elementimpl.cpp:
+        (HTMLElementImpl::createContextualFragment):
+        * khtml/html/htmltokenizer.cpp:
+        (khtml::HTMLTokenizer::reset):
+        (khtml::HTMLTokenizer::begin):
+        (khtml::HTMLTokenizer::setForceSynchronous):
+        (khtml::HTMLTokenizer::continueProcessing):
+        * khtml/html/htmltokenizer.h:
+
 2005-02-17  Ken Kocienda  <kocienda@apple.com>
 
         Reviewed by Hyatt