Fix for 3478435, <hr> tags should be centered by default. Ditched the 1px margin...
[WebKit-https.git] / WebCore / ChangeLog-2005-08-23
index ffb580d..f74397f 100644 (file)
+2003-11-10  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3478435, <hr> tags should be centered by default.  Ditched the 1px margin as well.
+
+       Fix for 3479441, <h1>-<h6> tags should *not* be centered by default.  They should also use bold instead of
+       bolder.
+       
+        Reviewed by darin
+
+        * khtml/css/html4.css:
+        * khtml/html/html_blockimpl.cpp:
+        (HTMLHRElementImpl::parseAttribute):
+        * layout-tests/apple-only/base/bugzilla.mozilla.org/index-expected.txt:
+        * layout-tests/apple-only/base/home.netscape.com/index-expected.txt:
+        * layout-tests/apple-only/base/www.altavista.com/index-expected.txt:
+        * layout-tests/apple-only/base/www.cnn.com/index-expected.txt:
+        * layout-tests/apple-only/base/www.digitalcity.com/index-expected.txt:
+        * layout-tests/apple-only/base/www.ebay.com/index-expected.txt:
+        * layout-tests/apple-only/base/www.excite.com/index-expected.txt:
+        * layout-tests/apple-only/base/www.mapquest.com/index-expected.txt:
+        * layout-tests/apple-only/base/www.microsoft.com/index-expected.txt:
+        * layout-tests/apple-only/base/www.msnbc.com/index-expected.txt:
+        * layout-tests/apple-only/base/www.nytimes.com/index-expected.txt:
+        * layout-tests/apple-only/base/www.nytimes.com_Table/index-expected.txt:
+        * layout-tests/apple-only/base/www.quicken.com/index-expected.txt:
+        * layout-tests/apple-only/base/www.w3.org_DOML2Core/index-expected.txt:
+        * layout-tests/css1/basic/class_as_selector-expected.txt:
+        * layout-tests/css1/basic/comments-expected.txt:
+        * layout-tests/css1/basic/containment-expected.txt:
+        * layout-tests/css1/basic/contextual_selectors-expected.txt:
+        * layout-tests/css1/basic/grouping-expected.txt:
+        * layout-tests/css1/basic/id_as_selector-expected.txt:
+        * layout-tests/css1/basic/inheritance-expected.txt:
+        * layout-tests/css1/box_properties/border-expected.txt:
+        * layout-tests/css1/box_properties/border_bottom-expected.txt:
+        * layout-tests/css1/box_properties/border_bottom_inline-expected.txt:
+        * layout-tests/css1/box_properties/border_bottom_width-expected.txt:
+        * layout-tests/css1/box_properties/border_bottom_width_inline-expected.txt:
+        * layout-tests/css1/box_properties/border_color-expected.txt:
+        * layout-tests/css1/box_properties/border_color_inline-expected.txt:
+        * layout-tests/css1/box_properties/border_inline-expected.txt:
+        * layout-tests/css1/box_properties/border_left-expected.txt:
+        * layout-tests/css1/box_properties/border_left_inline-expected.txt:
+        * layout-tests/css1/box_properties/border_left_width-expected.txt:
+        * layout-tests/css1/box_properties/border_left_width_inline-expected.txt:
+        * layout-tests/css1/box_properties/border_right-expected.txt:
+        * layout-tests/css1/box_properties/border_right_inline-expected.txt:
+        * layout-tests/css1/box_properties/border_right_width-expected.txt:
+        * layout-tests/css1/box_properties/border_right_width_inline-expected.txt:
+        * layout-tests/css1/box_properties/border_style-expected.txt:
+        * layout-tests/css1/box_properties/border_style_inline-expected.txt:
+        * layout-tests/css1/box_properties/border_top-expected.txt:
+        * layout-tests/css1/box_properties/border_top_inline-expected.txt:
+        * layout-tests/css1/box_properties/border_top_width-expected.txt:
+        * layout-tests/css1/box_properties/border_top_width_inline-expected.txt:
+        * layout-tests/css1/box_properties/border_width-expected.txt:
+        * layout-tests/css1/box_properties/border_width_inline-expected.txt:
+        * layout-tests/css1/box_properties/clear-expected.txt:
+        * layout-tests/css1/box_properties/clear_float-expected.txt:
+        * layout-tests/css1/box_properties/float-expected.txt:
+        * layout-tests/css1/box_properties/float_elements_in_series-expected.txt:
+        * layout-tests/css1/box_properties/float_margin-expected.txt:
+        * layout-tests/css1/box_properties/float_on_text_elements-expected.txt:
+        * layout-tests/css1/box_properties/height-expected.txt:
+        * layout-tests/css1/box_properties/margin-expected.txt:
+        * layout-tests/css1/box_properties/margin_bottom-expected.txt:
+        * layout-tests/css1/box_properties/margin_bottom_inline-expected.txt:
+        * layout-tests/css1/box_properties/margin_inline-expected.txt:
+        * layout-tests/css1/box_properties/margin_left-expected.txt:
+        * layout-tests/css1/box_properties/margin_left_inline-expected.txt:
+        * layout-tests/css1/box_properties/margin_right-expected.txt:
+        * layout-tests/css1/box_properties/margin_right_inline-expected.txt:
+        * layout-tests/css1/box_properties/margin_top-expected.txt:
+        * layout-tests/css1/box_properties/margin_top_inline-expected.txt:
+        * layout-tests/css1/box_properties/padding-expected.txt:
+        * layout-tests/css1/box_properties/padding_bottom-expected.txt:
+        * layout-tests/css1/box_properties/padding_bottom_inline-expected.txt:
+        * layout-tests/css1/box_properties/padding_inline-expected.txt:
+        * layout-tests/css1/box_properties/padding_left-expected.txt:
+        * layout-tests/css1/box_properties/padding_left_inline-expected.txt:
+        * layout-tests/css1/box_properties/padding_right-expected.txt:
+        * layout-tests/css1/box_properties/padding_right_inline-expected.txt:
+        * layout-tests/css1/box_properties/padding_top-expected.txt:
+        * layout-tests/css1/box_properties/padding_top_inline-expected.txt:
+        * layout-tests/css1/box_properties/width-expected.txt:
+        * layout-tests/css1/cascade/cascade_order-expected.txt:
+        * layout-tests/css1/cascade/important-expected.txt:
+        * layout-tests/css1/classification/display-expected.txt:
+        * layout-tests/css1/classification/list_style-expected.txt:
+        * layout-tests/css1/classification/list_style_image-expected.txt:
+        * layout-tests/css1/classification/list_style_position-expected.txt:
+        * layout-tests/css1/classification/list_style_type-expected.txt:
+        * layout-tests/css1/classification/white_space-expected.txt:
+        * layout-tests/css1/color_and_background/background-expected.txt:
+        * layout-tests/css1/color_and_background/background_attachment-expected.txt:
+        * layout-tests/css1/color_and_background/background_color-expected.txt:
+        * layout-tests/css1/color_and_background/background_image-expected.txt:
+        * layout-tests/css1/color_and_background/background_position-expected.txt:
+        * layout-tests/css1/color_and_background/background_repeat-expected.txt:
+        * layout-tests/css1/color_and_background/color-expected.txt:
+        * layout-tests/css1/conformance/forward_compatible_parsing-expected.txt:
+        * layout-tests/css1/font_properties/font-expected.txt:
+        * layout-tests/css1/font_properties/font_family-expected.txt:
+        * layout-tests/css1/font_properties/font_size-expected.txt:
+        * layout-tests/css1/font_properties/font_style-expected.txt:
+        * layout-tests/css1/font_properties/font_variant-expected.txt:
+        * layout-tests/css1/font_properties/font_weight-expected.txt:
+        * layout-tests/css1/formatting_model/canvas-expected.txt:
+        * layout-tests/css1/formatting_model/floating_elements-expected.txt:
+        * layout-tests/css1/formatting_model/height_of_lines-expected.txt:
+        * layout-tests/css1/formatting_model/inline_elements-expected.txt:
+        * layout-tests/css1/formatting_model/replaced_elements-expected.txt:
+        * layout-tests/css1/formatting_model/vertical_formatting-expected.txt:
+        * layout-tests/css1/pseudo/anchor-expected.txt:
+        * layout-tests/css1/pseudo/firstletter-expected.txt:
+        * layout-tests/css1/pseudo/firstline-expected.txt:
+        * layout-tests/css1/pseudo/multiple_pseudo_elements-expected.txt:
+        * layout-tests/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
+        * layout-tests/css1/text_properties/letter_spacing-expected.txt:
+        * layout-tests/css1/text_properties/line_height-expected.txt:
+        * layout-tests/css1/text_properties/text-transform-expected.txt:
+        * layout-tests/css1/text_properties/text_align-expected.txt:
+        * layout-tests/css1/text_properties/text_decoration-expected.txt:
+        * layout-tests/css1/text_properties/text_indent-expected.txt:
+        * layout-tests/css1/text_properties/text_transform-expected.txt:
+        * layout-tests/css1/text_properties/vertical_align-expected.txt:
+        * layout-tests/css1/text_properties/word_spacing-expected.txt:
+        * layout-tests/css1/units/color_units-expected.txt:
+        * layout-tests/css1/units/length_units-expected.txt:
+        * layout-tests/css1/units/percentage_units-expected.txt:
+        * layout-tests/css1/units/urls-expected.txt:
+        * layout-tests/fast/encoding/utf-16-big-endian-expected.txt:
+        * layout-tests/fast/encoding/utf-16-little-endian-expected.txt:
+
+2003-11-10  Chris Blumenberg  <cblu@apple.com>
+
+       Fixed: <rdar://problem/3479266>: selected images don't obey CSS3 selection background-color attribute
+       
+        Reviewed by dave.
+
+        * khtml/rendering/render_image.cpp:
+        (RenderImage::selectionTintColor): new, takes style into account
+        (RenderImage::paintObject): use selectionTintColor
+        * khtml/rendering/render_image.h:
+        * kwq/KWQPainter.h: removed selectedImageTintColor
+        * kwq/KWQPainter.mm:
+
+2003-11-10  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3479287, macro-ize the handling of the CSS 'inherit' value.  This patch is preparation for
+       adding support for the 'initial' value, which will be used to fix the CSS parser's shorthand parsing
+       bugs.
+       
+        Reviewed by kocienda
+
+        * 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::applyRule):
+        * khtml/khtmlview.cpp:
+        (KHTMLView::layout):
+
+2003-11-10  Chris Blumenberg  <cblu@apple.com>
+
+       Fixed:
+       <rdar://problem/3478883>: REGRESSION (113-114u): drag image for selected text includes unselected images
+       <rdar://problem/3479204>: selected images don't look selected
+
+        Reviewed by dave.
+
+        * khtml/rendering/render_image.cpp:
+        (RenderImage::RenderImage): init m_selectionState
+        (RenderImage::paintObject): draw a tint over the image if selected, don't draw anything if not selected and the action is PaintActionSelection
+        * khtml/rendering/render_image.h:
+        (khtml::RenderImage::selectionState): new
+        (khtml::RenderImage::setSelectionState): new
+        * kwq/KWQPainter.h:
+        * kwq/KWQPainter.mm:
+        (QPainter::selectedImageTintColor): new
+
+2003-11-10  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Hyatt
+
+       Fix for this bug:
+
+       <rdar://problem/3477795>: REGRESSION: can't submit form without 
+       submit button by hitting return (cocoadev.com)
+
+       When I changed submitting forms using the return key in a text field
+       to go through a search for the correct submit or image input 
+       element to use when submitting, I neglected to cover the case of
+       forms which have neither a submit or image input element. When
+       I encounter a form such as this now, I submit it anyway after
+       performing the submit or image input element and failing to find one.
+
+        * khtml/html/html_formimpl.cpp:
+        (HTMLFormElementImpl::performSubmitClick)
+
+2003-11-10  Richard Williamson   <rjw@apple.com>
+
+       Fixed 3478765.  Use ICU to access unicode properties.
+       Fixed 3478831.  Unicode property/conversion functions should be 32 bit savvy.
+
+        Reviewed by Darin.
+
+        * WebCore-combined.exp:
+        * WebCore.exp:
+        * kwq/KWQChar.mm:
+        (QChar::lower):
+        (QChar::upper):
+        (QChar::mirroredChar):
+        * kwq/KWQString.h:
+        (QChar::direction):
+        * kwq/WebCoreUnicode.cpp:
+        * kwq/WebCoreUnicode.h:
+
+2003-11-10  Chris Blumenberg  <cblu@apple.com>
+
+       Fixed: <rdar://problem/3478781>: drag image of selected text and images doesn't include images
+
+        Reviewed by rjw.
+
+        * khtml/rendering/render_image.cpp:
+        (RenderImage::paintObject): paint when the paint action is PaintActionSelection
+        * khtml/rendering/render_replaced.cpp:
+        (RenderReplaced::paint): ditto
+
+2003-11-10  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by John
+
+       Fix for this bug:
+
+       <rdar://problem/3477624>: REGRESSION (113): Using input method to 
+       enter non-ascii text submits the form
+
+       This regression has been in the tree for a couple of versions now, 
+       since we improved the way key events are processed. The solution
+       is to ask the text input manager if it has any marked text when
+       the return key (or enter key) is pressed, because if it does, the key
+       needs to work in the "accept" role for the input manager. Fixing
+       in this way has the pleasant effect of making return/enter key
+       behavior "do the right thing" based on context.
+
+        * khtml/html/html_formimpl.cpp:
+        (HTMLInputElementImpl::defaultEventHandler): Add check to see
+       if text input manager has marked text before submitting text
+       and password fields. Broke out key handling for checkboxes and
+       radios, since the old code for these widgets worked fine.
+        * kwq/KWQLineEdit.h: Added hasMarkedText function.
+        * kwq/KWQLineEdit.mm:
+        (QLineEdit::hasMarkedText): Returns whether the current input
+       manager has marked text or not.
+
+2003-11-09  Darin Adler  <darin@apple.com>
+
+        Reviewed by Dave.
+
+        - fixed 3478173 -- REGRESSION (112-113): getElementById is failing for many types of elements
+
+        The problem was that ElementImpl::attach was being skipped for many objects with classes
+        derived from ElementImpl. By changing them all to call up to their base classes instead of
+        skipping levels, the bug went away. This was possible (and easy to do) because of the
+        rendererIsNeeded() change I made a while back.
+
+        * khtml/html/html_baseimpl.cpp:
+        (HTMLFrameElementImpl::attach): Call base class's attach() instead of creating renderer explicitly
+        and then calling NodeBaseImpl::attach(). This was a remnant of the old way of changing the logic
+        about when to create the renderer, not needed now that we have rendererIsNeeded().
+        (HTMLFrameSetElementImpl::attach): Ditto.
+        (HTMLIFrameElementImpl::attach): Ditto.
+
+        * khtml/html/html_formimpl.h: Removed many unused attach() overrides.
+        * khtml/html/html_formimpl.cpp:
+        (HTMLGenericFormElementImpl::attach): Ditto.
+        (HTMLButtonElementImpl::attach): Removed, because now the base class's attach does the right thing.
+        (HTMLFieldSetElementImpl::attach): Ditto.
+        (HTMLInputElementImpl::attach): Removed explicit createRendererIfNeeded call, not needed now that
+        HTMLGenericFormElementImpl calls through to its base class.
+        (HTMLLegendElementImpl::attach): Removed, because now the base class's attach does the right thing.
+        (HTMLSelectElementImpl::attach): Ditto.
+        (HTMLTextAreaElementImpl::attach): Ditto.
+
+        * khtml/html/html_imageimpl.cpp:
+        (HTMLImageElementImpl::attach): Call base class's attach() instead of creating renderer explicitly
+        and then calling NodeBaseImpl::attach().
+        (HTMLImageElementImpl::detach): Call base class's detach() instead of NodeBaseImpl::detach(). No
+        need to skip the ElementImpl::detach() function, and important not to for the new "id" optimization.
+
+        * khtml/html/html_inlineimpl.h: Removed HTMLBRElementImpl::attach override.
+        * khtml/html/html_inlineimpl.cpp: (HTMLBRElementImpl::attach): Call base class's attach() instead
+        of creating renderer explicitly and then calling NodeBaseImpl::attach().
+
+        * khtml/html/html_objectimpl.h: Removed HTMLAppletElementImpl::attach override.
+        * khtml/html/html_objectimpl.cpp:
+        (HTMLAppletElementImpl::attach): Removed, because the base class's attach does the right thing.
+        (HTMLEmbedElementImpl::attach): Call base class's attach() instead of creating renderer explicitly
+        and then calling NodeBaseImpl::attach().
+        (HTMLObjectElementImpl::attach): Ditto.
+
+2003-11-09  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3478317, letter/word-spacing don't inherit properly through italic/bold elements.
+       
+        Reviewed by darin
+
+        * khtml/rendering/font.h:
+        (khtml::Font::Font):
+        * khtml/rendering/render_style.h:
+        (khtml::RenderStyle::setFontDef):
+
+2003-11-09  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3478309, make sure backgrounds paint in the border box and not just in the padding box.
+       
+        Reviewed by darin
+
+       Also making sure that <frame>s aren't transparent, since other browsers seem to only make <iframe>s/<object>s
+       be transparent.
+       
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::paintRootBoxDecorations):
+        (RenderBox::paintBackgroundExtended):
+
+2003-11-08  Darin Adler  <darin@apple.com>
+
+        Reviewed by John.
+
+        - fixed 3478025 -- links with non-Latin-1 characters in the hostname are not getting IDN-encoded
+
+        * kwq/KWQKURL.mm:
+        (KURL::parse): Changed existing code to take advantage of the fact that a NUL character
+        is classified as a path segment end character.
+        (KURL::findHostnameInHierarchicalURL): Don't treat NUL characters as terminating characters
+        for hostnames, because QChar::latin1() turns all non-Latin-1 characters into NUL characters.
+
+2003-11-08  Darin Adler  <darin@apple.com>
+
+        Reviewed by John.
+
+        - fixed 3477509 -- REGRESSION (112-113): crash in KHTMLPart::processObjectRequest at espn.com, chosun.com
+
+        * khtml/khtml_part.cpp: (KHTMLPart::processObjectRequest): Use a dynamic_cast to check the type of the
+        part rather than assuming it's always a KHTMLPart. The crash was caused by casting a KWQPluginPart to
+        KHTMLPart.
+
+2003-11-08  Darin Adler  <darin@apple.com>
+
+        Reviewed by Richard.
+
+        - event cleanup motivated by questions on khtml-devel
+
+        * khtml/dom/dom2_events.h: Removed eventModuleName.
+        * khtml/dom/dom2_events.cpp: Removed eventModuleName.
+
+        * khtml/xml/dom2_eventsimpl.h: Removed eventModuleName, made many trivially simple
+        functions inline, made virtual functions no longer inline. Also made some functions const.
+        (DOM::EventImpl::propagationStopped): Made this non-virtual; there was no reason for
+        it to be virtual I could see.
+        (DOM::EventImpl::defaultPrevented): Ditto.
+        (DOM::EventImpl::setDefaultHandled): Ditto.
+        (DOM::UIEventImpl::view): Made this inline.
+        (DOM::UIEventImpl::detail): Ditto.
+        (DOM::MouseEventImpl::screenX): Ditto.
+        (DOM::MouseEventImpl::screenY): Ditto.
+        (DOM::MouseEventImpl::clientX): Ditto.
+        (DOM::MouseEventImpl::clientY): Ditto.
+        (DOM::MouseEventImpl::layerX): Ditto.
+        (DOM::MouseEventImpl::layerY): Ditto.
+        (DOM::MouseEventImpl::ctrlKey): Ditto.
+        (DOM::MouseEventImpl::shiftKey): Ditto.
+        (DOM::MouseEventImpl::altKey): Ditto.
+        (DOM::MouseEventImpl::metaKey): Ditto.
+        (DOM::MouseEventImpl::button): Ditto.
+        (DOM::MouseEventImpl::relatedTarget): Ditto.
+        (DOM::MutationEventImpl::relatedNode): Ditto.
+        (DOM::MutationEventImpl::prevValue): Ditto.
+        (DOM::MutationEventImpl::newValue): Ditto.
+        (DOM::MutationEventImpl::attrName): Ditto.
+        (DOM::MutationEventImpl::attrChange): Ditto.
+
+        * khtml/ecma/kjs_events.cpp: (KJS::getDOMEvent): Changed implementation to no longer
+        require eventModuleName(), and removed some unneeded casts.
+
+        * khtml/xml/dom2_eventsimpl.cpp: Made lots of functions inline.
+        (EventImpl::isUIEvent): Since this is virtual, make it no longer inline.
+        (EventImpl::isMouseEvent): Ditto.
+        (EventImpl::isMutationEvent): Ditto.
+        (EventImpl::isKeyboardEvent): Ditto.
+        (UIEventImpl::isUIEvent): Ditto.
+        (MouseEventImpl::isMouseEvent): Ditto.
+        (KeyboardEventImpl::isKeyboardEvent): Ditto.
+        (MutationEventImpl::isMutationEvent): Ditto.
+
+2003-11-07  Chris Blumenberg  <cblu@apple.com>
+
+       Fixed: <rdar://problem/3020196>: links with href="" don't show hand cursor when you mouse over them
+
+        Reviewed by darin.
+
+        * khtml/khtmlview.cpp:
+        (KHTMLView::viewportMouseMoveEvent): check if the URL on the event is non-NULL, not if it is non-empty
+
+2003-11-07  Richard Williamson   <rjw@apple.com>
+
+       Fixed 3477067.  Use our case unicode conversion routines.
+
+        Reviewed by Ken.
+
+        * kwq/KWQChar.mm:
+        (QChar::lower):
+        (QChar::upper):
+
+2003-11-06  David Hyatt  <hyatt@apple.com>
+
+       Fixes for 3476717, inline blocks should expand to encompass floats; 3476718, inline blocks should not
+       collapse margins with children; and 3476721, run-ins and compacts can flow into anonymous blocks, even
+       ones that they caused to be created by failing to run in/compact in the first place.
+       
+        Reviewed by darin (inline block fixes only).
+
+        * khtml/rendering/render_block.cpp:
+        (khtml::RenderBlock::layoutBlock):
+        (khtml::RenderBlock::layoutBlockChildren):
+
+2003-11-06  Richard Williamson   <rjw@apple.com>
+
+       Fixed 3476563.  Remove unnecessary call to set view position after load completes.
+        Reviewed by Gramps.
+
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::checkCompleted):
+
+2003-11-06  Chris Blumenberg  <cblu@apple.com>
+
+        * khtml/rendering/render_image.h:
+        (khtml::RenderImage::isDisplayingError): forgot to remove the "virtual" part of the declaration
+
+2003-11-06  Chris Blumenberg  <cblu@apple.com>
+
+       Fixed:
+       <rdar://problem/3275118>: Dragging from missing-image link stretches missing-image icon to size of missing image
+       <rdar://problem/3476225>: assert dragging non-existant images
+
+        Reviewed by rjw.
+
+        * khtml/rendering/render_image.h:
+        (khtml::RenderImage::isDisplayingError): new method, returns true for the broken image
+        * kwq/WebCoreBridge.mm:
+        (-[WebCoreBridge elementAtPoint:]): only provide info if there is an image and the image is not broken
+
+2003-11-06  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Richard
+
+       Fixes for these bugs:
+
+       <rdar://problem/3476006>: Form file input widgets do not scroll 
+       to view when focused
+
+       <rdar://problem/3476007>: Form file input widgets should only 
+       focus when full keyboard access is on
+
+        * kwq/KWQFileButton.h: Added focusPolicy declaration.
+        * kwq/KWQFileButton.mm:
+        (KWQFileButton::focusPolicy): Added. Now works like other buttons.
+       Fixes 3476007.
+        (KWQFileButton::focusChanged): Added. Code similar to text area
+       widgets. Fixes 3476006.
+
+2003-11-06  Chris Blumenberg  <cblu@apple.com>
+
+       Fixed: <rdar://problem/3308609>: 6L60 Safari URL links with line-endings converted to hex by contextual menu
+
+        Reviewed by rjw.
+
+        * kwq/WebCoreBridge.mm:
+        (-[WebCoreBridge elementAtPoint:]): use parseURL to go from an attribute string to a URL string
+
+=== Safari-113 ===
+
+2003-11-06  John Sullivan  <sullivan@apple.com>
+
+        - fixed broken build
+
+        * khtml/xml/dom_docimpl.cpp:
+        (DocumentImpl::completeURL):
+        removed stray character
+
+2003-11-06  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+       - fixed 3475366 - 4.5% of time spent making html event listeners on slow intel page.
+
+       6% speedup on intel page, 1% speedup on cvs-base PLT.
+       
+        * khtml/ecma/kjs_events.cpp:
+        (JSEventListener::JSEventListener): Don't add self to hashtable if imp is null (which
+       can now happen in the lazy listener case).
+        (JSEventListener::~JSEventListener): Ditto on removing.
+        (JSEventListener::listenerObj): Made this virtual.
+        (JSLazyEventListener::JSLazyEventListener): New constructor.
+       (JSLazyEventListener::handleEvent): call parseCode, then
+       superclass if it appeared to succeed.
+        (JSLazyEventListener::listenerObj): call parseCode, then superclass.
+        (JSLazyEventListener::parseCode):
+        (KJS::getNodeEventListener): Check for null listenerObjImp in case of
+       lazy listener that failed to parse.
+        * khtml/ecma/kjs_dom.cpp:
+       (DOMNode::getListener): Ditto.
+        * khtml/ecma/kjs_html.cpp:
+        (Image::getValueProperty): Ditto.
+        * khtml/ecma/kjs_events.h:
+       (KJS::JSEventListener::listenerObjImp): call listenerObj() virtual
+       method and get imp from the result.
+        * khtml/ecma/kjs_proxy.cpp:
+        (KJSProxyImpl::createHTMLEventHandler): Don't parse the code here, make a lazy
+       listener.
+        * khtml/ecma/kjs_window.cpp:
+        (Window::getJSLazyEventListener): make a new JSLazyEventListener - no need
+       to check the listeners hashtable cause a brand new lazy listener won't have
+       a function anyway.
+        * khtml/ecma/kjs_window.h: Prototype new method.
+
+2003-11-06  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+       - fixed 3475397 - REGRESSION: relative URLs on page load test sometimes contain garbage, leading to missing images
+       
+        * kwq/KWQKURL.mm:
+        (KURL::KURL): When constructing from NSURL, null-terminate the raw
+       bytes since KURL::parse expects a null-terminated C string. It
+       might be even better to pass a length to parse, but this fix is
+       simple and does the job.
+
+2003-11-05  Darin Adler  <darin@apple.com>
+
+        Reviewed by Maciej.
+
+        - fixed 3475109 -- support keyboard event object properties of altkey, ctrlKey, shiftKey
+
+        We had the DOM Level 3 KeyboardEvent class already; I just had to add JavaScript bindings.
+
+        * khtml/ecma/kjs_events.h: Added DOMKeyboardEvent class.
+        * khtml/ecma/kjs_events.cpp:
+        (KJS::getDOMEvent): Added code to make a DOMKeyboardEvent if the event is a DOM::KeyboardEvent.
+        (DOMKeyboardEvent::~DOMKeyboardEvent): Added.
+        (DOMKeyboardEvent::classInfo): Added.
+        (DOMKeyboardEvent::tryGet): Added.
+        (DOMKeyboardEvent::getValueProperty): Added.
+        (DOMKeyboardEventProtoFunc::tryCall): Added.
+
+        * khtml/dom/dom2_events.cpp:
+        (KeyboardEvent::keyIdentifier): Added.
+        (KeyboardEvent::keyLocation): Added.
+
+        * khtml/ecma/kjs_events.lut.h: Regenerated.
+
+2003-11-05  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by John.
+
+       - fixed 3475092 - Notifying the bridge about duplicate images takes 13% of time on intel page
+
+       Another 15% speedup on the intel page.
+
+       This also results in a 3% speedup on cvs-base PLT! (or maybe that was my last change)
+       
+        * kwq/KWQLoader.mm:
+        (KWQServeRequest): Note that we told the bridge about the load.
+        (KWQCheckCacheObjectStatus): Don't tell the bridge about the load
+       if we have alrady; if we do tell it, then note it down.
+        * kwq/KWQKHTMLPart.h:
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::didTellBridgeAboutLoad): Helper method for the above.
+        (KWQKHTMLPart::haveToldBridgeAboutLoad): Ditto.
+        (KWQKHTMLPart::clear): Clear our idea of what URLs we told the bridge about.
+        * khtml/khtml_part.h: make clear() virtual.
+
+2003-11-05  Darin Adler  <darin@apple.com>
+
+        * WebCore-combined.exp: Checked in generated file.
+
+2003-11-05  Richard Williamson   <rjw@apple.com>
+
+       Fixed 3474957.  Changed name of image rendering method to better reflect it's actual function.
+
+       - (void)beginAnimationInRect:(NSRect)ir fromRect:(NSRect)fr;
+
+       renamed to
+
+       - (void)drawImageInRect:(NSRect)ir fromRect:(NSRect)fr;
+
+        Reviewed by Chris.
+
+        * kwq/KWQPainter.mm:
+        (QPainter::drawPixmap):
+        * kwq/WebCoreImageRenderer.h:
+
+2003-11-05  Darin Adler  <darin@apple.com>
+
+        * WebCore-tests.exp: Added missing symbol so tests will link.
+
+2003-11-05  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Ken.
+
+       - fixed 3474756 - Creating HTML event listeners takes 5% of time on particular slow intel page
+       
+        * khtml/ecma/kjs_window.h: Make jsEventListeners a hashtable keyed
+       by listener object, not a list.
+        * khtml/ecma/kjs_window.cpp:
+        (Window::getJSEventListener): Do hashtable lookup for existing listener instead of
+       walking list.
+        * khtml/ecma/kjs_events.cpp:
+        (JSEventListener::JSEventListener): Use hashtable insert instead of list append.
+        (JSEventListener::~JSEventListener): Use hashtable remove instead of list removeRef.
+
+2003-11-05  Darin Adler  <darin@apple.com>
+
+        Reviewed by Maciej.
+
+        - fixed 3473872 -- encode domain names for IDN when creating URLs inside WebCore
+
+        * kwq/KWQKURL.h: Added KWQIntegerPair type, a number of private functions.
+        * kwq/KWQKURL.mm:
+        (isSchemeFirstChar): Make inline function from macro.
+        (isSchemeChar): Make inline function from macro.
+        (isUserInfoChar): Make inline function from macro.
+        (isHostnameChar): Make inline function from macro.
+        (isIPv6Char): Make inline function from macro.
+        (isPathSegmentEndChar): Make inline function from macro.
+        (isBadChar): Make inline function from macro.
+        (isHexDigit): Make inline function from macro.
+        (KURL::KURL): Remove unneeded initializations of m_isValid, since parse sets it.
+        Use CFURLGetBytes in one place a FIXME asked for it. Changed non-ASCII case to use
+        a separate function instead of code in line.
+        (KURL::encodeHostnames): Added. Finds host names and encodes them.
+        (KURL::findHostnameInHierarchicalURL): Added. Finds host name in a hierarchical URL.
+        (KURL::encodeHostname): Added. Encodes one host name.
+        (KURL::findHostnamesInMailToURL): Added. Finds host names in a mailto URL.
+
+        * kwq/KWQString.h: Added new overloads for startsWith.
+        * kwq/KWQString.mm:
+        (compareIgnoringCaseForASCIIOnly): Moved these functions up in the file so they can be
+        used by more methods of QString.
+        (QString::startsWith): Added new overloads.
+
+        * WebCore.pbproj/project.pbxproj: Add libicucore.A.dylib library.
+
+2003-11-05  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+       - fixed 3473906 - getElementById takes about 44% of time on particular slow intel page
+
+       I fixed this by adding a per-document id --> element hash
+       table. This speeds up my local copy of the intel page by 60% (50
+       sec to 20 sec!) and does not cause any PLT slowdown.
+       
+        * khtml/xml/dom_docimpl.h: New QDict field for id to element hash table.
+        * khtml/xml/dom_docimpl.cpp:
+        (DocumentImpl::getElementById): Just look it up in the newly
+       added hash table.
+        (DocumentImpl::addElementById): New method. Add to hash table if
+       no other element is set for that key (this lets the first element
+       of several with matching ids win).
+        (DocumentImpl::removeElementById): New method. Remove from hash
+       table only if the key and value both match.
+
+       These Element changes to keep the id --> element hashtable working
+       seem needlessly tricky, due to lack of bottlenecks in attribute
+       changing.
+       
+        * khtml/xml/dom_elementimpl.cpp:
+        (ElementImpl::updateId): New method that removes element from
+       hash table for old it
+        (ElementImpl::setAttribute): If setting id, call updateId.
+        (ElementImpl::setAttributeMap): If either the old or the new map
+       includes id, call updateId.
+        (ElementImpl::attach): If we have an id, call updateId to set it
+       after attaching.
+        (ElementImpl::detach): Newly added. If we have an id, call
+       updateId to clear it before detaching.
+       (NamedAttrMapImpl::setNamedItem): If the name is id, call updateId on
+       our element.
+        (NamedAttrMapImpl::removeNamedItem): If the name is id, call updateId on
+       our element.
+        (NamedAttrMapImpl::operator=): If old or new contents include id attribute,
+       call updateId on our element.
+       * khtml/xml/dom_elementimpl.h: Prototype new methods.
+
+2003-11-05  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Maciej
+
+       Fix for these bugs:
+
+       <rdar://problem/3467558>: Cannot tab to form file input widgets
+       <rdar://problem/3473631>: WebFileButton sends notifications to communicate with WebCore
+
+       Tabbing now works for these widgets. While I was in the neighborhood,
+       I improved the communication mechanism between the WebKit and WebCore
+       sides of the file button implementation, replacing notifications
+       with a callback object.
+
+        * WebCore-combined.exp: Remove no-longer used WebCoreFileButtonClicked
+       and WebCoreFileButtonFilenameChanged notofication strings.
+        * WebCore.exp: Ditto.
+        * kwq/KWQFileButton.h: Changed declarations to match changes in
+        callback functions.
+        * kwq/KWQFileButton.mm:
+        (KWQFileButton::KWQFileButton): Now sets the view after creating
+        the delegate object.
+        (KWQFileButton::filenameChanged): Now takes a QString argument
+        which indicates the filename.
+        (KWQFileButton::focusChanged): New function. Sends DOM focus and
+        blur events.
+        (-[KWQFileButtonAdapter initWithKWQFileButton:]): No longer needs
+        to register for notifications.
+        (-[KWQFileButtonAdapter dealloc]): No longer needs to remove itself
+        from the notification center.
+        (-[KWQFileButtonAdapter filenameChanged:]): No longer a notification
+        callback. Now a WebCoreFileButtonCallback callback.
+        (-[KWQFileButtonAdapter focusChanged:]): New WebCoreFileButtonCallback
+        callback.
+        (-[KWQFileButtonAdapter clicked]): No longer a notification
+        callback. Now a WebCoreFileButtonCallback callback.
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::nextKeyViewInFrame): Unrelated cleanup.
+        * kwq/WebCoreBridge.h: Declared new WebCoreFileButtonDelegate protocol.
+
+2003-11-05  Maciej Stachowiak  <mjs@apple.com>
+
+       - fixed deployment build
+       
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::fileWrapperForElement):
+
+2003-11-04  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Ken.
+
+        * khtml/ecma/kjs_window.cpp: Don't make event read-only, some
+       sites want to set their own top-level function named "event" and
+       will hang if they can't.
+        * khtml/ecma/kjs_window.lut.h: Regenerated.
+
+2003-11-03  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3472167, for shrink-to-fit style printing, grow the width of the initial containing block
+       to be as large as the rightmost position after doing a layout to the page width.
+       
+        Reviewed by john
+
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::forceLayoutForPageWidth):
+
+2003-11-04  Chris Blumenberg  <cblu@apple.com>
+
+       Fixed:
+       <rdar://problem/3472403>: RTFD of copied text and images should use original image data not tiffs
+
+        Reviewed by john.
+
+        * kwq/KWQKHTMLPart.h:
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::fileWrapperForElement): call [_bridge _fileWrapperForURL:] to get cached data
+        * kwq/WebCoreBridge.h: added _fileWrapperForURL: to the bridge protocol
+        * kwq/WebCoreBridge.mm:
+        (-[WebCoreBridge selectedAttributedString]): call the instance method attributedString 
+        (-[WebCoreBridge attributedStringFrom:startOffset:to:endOffset:]): call the instance method attributedString 
+
+2003-11-04  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Chris.
+
+        - fixed 3472893 - Slow intel page takes 20% of its time in CachedObject::ref
+        
+       Speeds up loading of
+       http://www.intel.com/cd/ids/developer/asmo-na/eng/index.htm by
+       19%, no slowdown on PLT.
+       
+        * khtml/misc/loader.h: Use QPtrDict for m_clients instead of QPtrList.
+       * khtml/misc/loader.cpp:
+        (CachedObjectClientWalker::CachedObjectClientWalker): Ditto.
+        (CachedObject::ref): Ditto.
+        * kwq/KWQPtrDict.h:
+        (QPtrDict::isEmpty): Implemented.
+
+2003-11-03  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+       - fixed 3370085 - new frames with javascript: URLs should be populated with the result of the JavaScript code
+       
+        * ChangeLog:
+        * khtml/html/html_baseimpl.cpp:
+        (HTMLFrameElementImpl::updateForNewURL): Skip special filtering of
+       javascript:.
+        (HTMLFrameElementImpl::attach): Ditto.
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::replaceContentsWithScriptResult): New method to execute
+       script and if the result is a string, set it as the new document contents.
+       (KHTMLPart::requestFrame): Removed APPLE_CHANGES around
+       javascript: handling. Use new
+       replaceContentsWithScriptResult method. This executes the
+       JS in the new child frame, not the parent frame, as in other
+       browsers.
+        * khtml/khtml_part.h: Prototype new method.
+        * kwq/KWQKHTMLPartBrowserExtension.mm:
+        (KHTMLPartBrowserExtension::openURLRequest): Use new part method.
+
+2003-11-03  Vicki Murley  <vicki@apple.com>
+
+        Reviewed by kocienda.
+
+       - fixed <rdar://problem/3471096>: non-B&I builds should not use order files, because they cause false "regressions" in perf.
+
+        * WebCore.pbproj/project.pbxproj: added empty SECTORDER_FLAGS variables to the Development and Deployment build styles
+
+2003-11-03  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Maciej
+
+       Fix for this bug:
+
+       <rdar://problem/3470338>: onclick is not executing when you hit enter on focused links
+
+       Now when we trap return or enter when a link is focused, we send
+       a click event to the node.
+
+        * khtml/html/html_inlineimpl.cpp:
+        (HTMLAnchorElementImpl::defaultEventHandler): Swallow key event when 
+       return or enter and send a mouse event.
+        (HTMLAnchorElementImpl::performClick): New function to send simulated
+       click.
+        * khtml/html/html_inlineimpl.h: Declare performClick function.
+
+2003-11-03  Darin Adler  <darin@apple.com>
+
+        Reviewed by John.
+
+        - fixed 3392543 -- incorrect base writing direction in RTL form controls
+        - fixed baseline for list box <select> elements
+        - moved style code from updateFromElement to setStyle
+
+        * khtml/rendering/render_form.h: Added setStyle function to RenderFormElement, RenderLineEdit,
+        RenderSelect, and RenderTextArea. Removed some unused stuff.
+        * khtml/rendering/render_form.cpp:
+        (RenderFormElement::setStyle): Set the font based on the style.
+        (RenderFormElement::updateFromElement): Remove font setting code; moved to setStyle.
+        Also ifdef'd out the color-setting code, which belongs in setStyle and is irrelevant
+        for KWQ anyway.
+        (RenderSubmitButton::setStyle): Set the writing direction based on the style.
+        (RenderSubmitButton::updateFromElement): Tiny code cleanup, using a local variable.
+        (RenderLineEdit::setStyle): Set the alignment and writing direction based on the style.
+        (RenderLineEdit::updateFromElement): Remove alignment setting code; moved to setStyle.
+        (RenderFileButton::RenderFileButton): Remove code to set m_focus, a data member that was
+        never used.
+        (RenderSelect::setWidgetWritingDirection): Added. Helper function.
+        (RenderSelect::setStyle): Call setWidgetWritingDirection.
+        (RenderSelect::updateFromElement): Call setWidgetWritingDirection if a new widget is created.
+        (RenderSelect::baselinePosition): Added a FIXME comment.
+        (RenderTextArea::setStyle): Set the alignment and writing direction based on the style.
+        (RenderTextArea::updateFromElement): Remove alignment setting code; moved to setStyle.
+
+        * kwq/KWQButton.h: Added setWritingDirection function.
+        * kwq/KWQButton.mm:
+        (+[KWQButton cellClass]): Use KWQButtonCell.
+        (-[KWQButtonCell baseWritingDirection:]): Return base writing direction.
+        (-[KWQButtonCell setBaseWritingDirection:]): Store base writing direction.
+        (-[KWQButtonCell _textAttributes]): Set the base writing direction in the paragraph
+        style if it's not already right.
+        (QButton::setWritingDirection): Call setBaseWritingDirection: on the cell and do
+        setNeedsDisplay: as needed.
+
+        * kwq/KWQComboBox.h: Added setWritingDirection function.
+        * kwq/KWQComboBox.mm:
+        (QComboBox::setWritingDirection): Call setBaseWritingDirection: on the cell and do
+        setNeedsDisplay: as needed.
+        (-[KWQPopUpButtonCell setBaseWritingDirection:]): Store base writing direction.
+        (-[KWQPopUpButtonCell baseWritingDirection:]): Return base writing direction.
+        (-[KWQPopUpButtonCell _textAttributes]): Set the base writing direction in the
+        paragraph style if it's not already right.
+
+        * kwq/KWQLineEdit.h: Added setWritingDirection function.
+        * kwq/KWQLineEdit.mm:
+        (QLineEdit::setAlignment): Tweaked to match new setWritingDirection in style.
+        (QLineEdit::setWritingDirection): Call setBaseWritingDirection: on the KWQTextField.
+
+        * kwq/KWQTextField.h: Added setBaseWritingDirection method.
+        * kwq/KWQTextField.mm:
+        (-[KWQTextField setPasswordMode:]): Set the base writing direction of the secure field's
+        cell based on the base writing direction of the parent field's cell, when creating the
+        secure field.
+        (-[KWQTextField setBaseWritingDirection:]): Added. Sets the base writing direction of
+        the field's cell and the secure field's cell, if it exists, and does setNeedsDisplay
+        as needed.
+        (-[KWQTextFieldCell setBaseWritingDirection:]): Added. Stores the base writing direction.
+        (-[KWQTextFieldCell baseWritingDirection]): Added. Returns the base writing direction.
+        (-[KWQTextFieldCell _textAttributes]): Set the base writing direction in the paragraph
+        style if it's not already right.
+        (-[KWQSecureTextFieldCell setBaseWritingDirection:]): Added. Stores the base writing
+        direction.
+        (-[KWQSecureTextFieldCell _textAttributes]): Set the base writing direction in the
+        paragraph style if it's not already right.
+
+        * kwq/KWQListBox.h: Added itemIsGroupLabel and setWritingDirection functions, and made
+        the private insertItem function take a QString instead of an NSObject.
+        (QListBox::insertItem): Changed parameter from unsigned to int to match Qt, and made it
+        use an inlne to call the private insertItem function shared with insertGroupLabel.
+        (QListBox::insertGroupLabel): Changed parameter from unsigned to int and made it use an
+        inline to call the private insertItem function.
+        * kwq/KWQListBox.mm:
+        (itemFont): Added. Returns a suitable font for individual items.
+        (groupLabelFont): Added. Returns a suitable font for group labels.
+        (paragraphStyle): Added. Returns a suitable paragraph style for a given writing direction.
+        (stringAttributes): Added. Returns a string attributes dictionary for a given writing direction for
+        either individual items or group labels.
+        (QListBox::insertItem): Use an attributed string to give the item the appropriate font and
+        writing direction, calling stringAttributes to get the attributes dictionary, and getting
+        the writing direction from the table view.
+        (QListBox::endBatchInsert): Tweak for consistency with other nearby methods.
+        (QListBox::setSelected): Add an assertion and tweak a bit.
+        (QListBox::isSelected): Add an assertion and tweak a bit.
+        (QListBox::setWritingDirection): Update the styles for all the attributed strings and call
+        reloadData if the writing direction changes. Also store the direction in the table view.
+        (QListBox::itemIsGroupLabel): Added. Returns true if a given item is a group label; works
+        by checking the font in the attributed string.
+        (-[KWQTableView initWithListBox:items:]): Use itemFont() instead of computing the font.
+        (-[KWQTableView tableView:shouldSelectRow:]): Use itemIsGroupLabel function instead of
+        checking for NSString vs. NSttributedString in the items array; we now use attributed
+        strings for all the items.
+        (-[KWQTableView setBaseWritingDirection:]): Added. Stores a base writing direction.
+        (-[KWQTableView baseWritingDirection]): Added. Returns the stored base writing direction.
+
+        * kwq/KWQTextEdit.h: Added setWritingDirection function.
+        * kwq/KWQTextEdit.mm:
+        (QTextEdit::setAlignment): Removed code to set base writing direction.
+        (QTextEdit::setWritingDirection): Added. Sets base writing direction.
+
+        * kwq/KWQTextArea.mm: (-[KWQTextArea setBaseWritingDirection:]): Call setNeedsDisplay:YES.
+
+2003-11-03  David Hyatt  <hyatt@apple.com>
+
+       Fix 3472200, media tests fail to parse correctly.  Merging a patch to handle exotic media types
+       from the KHTML trunk.
+
+        * khtml/css/parser.cpp:
+        * khtml/css/parser.y:
+
+2003-11-03  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3471314, make sure to check the outline phase before painting backgrounds of iframes.
+       
+        Reviewed by mjs
+
+        * khtml/rendering/render_replaced.cpp:
+        (RenderReplaced::paint):
+
+2003-11-03  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3470855, links with script action stay focused when clicking.
+
+       Fix for 3470858, clicking and dragging a link and then releasing doesn't clear the glow ring.
+
+       Fix for 3472090, link should not be mouse focusable.
+       
+        Reviewed by mjs
+
+        * khtml/css/html4.css:
+        * khtml/html/html_inlineimpl.h:
+        (DOM::HTMLAnchorElementImpl::isMouseFocusable):
+
+2003-11-03  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3472030, line-height not properly reset in all cases when the font shorthand is used.
+       
+        Reviewed by mjs
+
+        * khtml/css/cssparser.cpp:
+        (CSSParser::parseFont):
+
+2003-11-03  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+       - fixed 3472023 - REGRESSION: assertion on layout tests
+       
+        * kwq/KWQTextCodec.mm:
+        (KWQTextDecoder::convertUTF16): Remove assert that length is not
+       0, since we can get zero length now when flushing.
+
+2003-11-03  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by John
+
+       Fix for this bug:
+
+       <rdar://problem/3260780>: hitting return in a text field submits 
+       form without running onclick handler for submit button
+
+        * khtml/html/html_formimpl.cpp:
+        (HTMLFormElementImpl::performSubmitClick): Refactored this function to
+       be more generic, so that text fields can use it, too.
+        (HTMLInputElementImpl::defaultEventHandler): Removed code to check
+       for a submit button, and merged this code into new performSubmitClick.
+        (HTMLSelectElementImpl::defaultEventHandler): Ditto.
+        * khtml/html/html_formimpl.h: Removed declaration for simulateButtonClickForEvent.
+       Added declaration for performSubmitClick.
+        * khtml/rendering/render_form.cpp:
+        (RenderLineEdit::slotReturnPressed): Now calls performSubmitClick rather
+       than prepareSubmit on the form. This is the key piece for the bug fix.
+
+2003-11-03  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by John
+
+        Fix for this bug:
+
+        <rdar://problem/3470342>: focus rings are shown for links in
+        web pages even in non-frontmost windows
+
+        * kwq/KWQKHTMLPart.h: Add setShowsFirstResponder, showsFirstResponder functions and
+        _showsFirstResponder member variable.
+        (KWQKHTMLPart::showsFirstResponder): Added.
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::KWQKHTMLPart): Initialize _showsFirstResponder to true
+        (KWQKHTMLPart::setShowsFirstResponder): Sets whether the painter draws focus rings.
+        * kwq/KWQPainter.h: Add _drawsFocusRing member variable.
+        (QPainter::setDrawsFocusRing): Sets whether the painter draws focus rings.
+        * kwq/KWQPainter.mm:
+        (QPainter::QPainter): Initialize _drawsFocusRing to true.
+        (QPainter::initFocusRing): Check _drawsFocusRing flag. Return if set to false.
+        (QPainter::addFocusRingRect): Ditto.
+        (QPainter::drawFocusRing): Ditto.
+        * kwq/WebCoreBridge.h: Add setShowsFirstResponder method.
+        * kwq/WebCoreBridge.mm:
+        (-[WebCoreBridge drawRect:]): Sets the value for _drawsFocusRing on the
+       painter using _showsFirstResponder value from the part.
+        (-[WebCoreBridge setShowsFirstResponder:]): Set passed in value on the part.
+       Redraw the focus ring if flag has changed.
+
+2003-11-03  David Hyatt  <hyatt@apple.com>
+
+       Remove unneeded style property additions for form controls.  In the KHTML trunk these moved into the UA
+       sheet, but we don't even need them there, since we don't honor any of them.
+
+        * khtml/html/html_formimpl.cpp:
+        (HTMLInputElementImpl::attach):
+        (HTMLSelectElementImpl::attach):
+        (HTMLTextAreaElementImpl::attach):
+
+2003-11-03  David Hyatt  <hyatt@apple.com>
+
+       Patch from KHTML trunk.  Move frameset positioning reset into adjustRenderStyle so as not to
+       pollute the render tree.
+
+        * khtml/css/cssstyleselector.cpp:
+        (khtml::CSSStyleSelector::adjustRenderStyle):
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::setStyle):
+
+2003-11-03  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3471609, 'transparent' should be an acceptable named color value instead of a special
+       keyword used only by background/border.
+       
+        Reviewed by kocienda
+
+        * khtml/css/cssparser.cpp:
+        (CSSParser::parseValue):
+        * khtml/css/cssstyleselector.cpp:
+        (khtml::):
+        (khtml::CSSStyleSelector::applyRule):
+        * khtml/css/cssvalues.c:
+        * khtml/css/cssvalues.h:
+        * khtml/css/cssvalues.in:
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::paintBackgroundExtended):
+        * khtml/rendering/render_object.cpp:
+        (RenderObject::setStyle):
+        * khtml/rendering/render_style.h:
+        (khtml::BorderValue::BorderValue):
+        (khtml::BorderValue::isTransparent):
+        (khtml::BorderValue::operator==):
+        (khtml::CollapsedBorderValue::isTransparent):
+        (khtml::RenderStyle::setBorderLeftColor):
+        (khtml::RenderStyle::setBorderRightColor):
+        (khtml::RenderStyle::setBorderTopColor):
+        (khtml::RenderStyle::setBorderBottomColor):
+
+2003-11-02  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+       - fixed 3471226 - HTML document that's less than 16 bytes comes out blank
+       
+        * kwq/KWQTextCodec.mm:
+        (KWQTextDecoder::toUnicode): When flushing, don't bail out early
+       if there are no new characters!
+
+2003-11-02  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+       - don't resolve Null href or src attributes, since the distinction
+       between empty and absent attribute is important.
+
+        * khtml/dom/html_base.cpp:
+        (HTMLIFrameElement::src):
+        * khtml/dom/html_form.cpp:
+        (HTMLInputElement::src):
+        * khtml/dom/html_head.cpp:
+        (HTMLBaseElement::href):
+        (HTMLLinkElement::href):
+        (HTMLScriptElement::src):
+        * khtml/dom/html_image.cpp:
+        (HTMLAreaElement::href):
+        (HTMLImageElement::src):
+        * khtml/dom/html_inline.cpp:
+        (HTMLAnchorElement::href):
+
+2003-11-01  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3468924, an implementation of outline-offset.  We also give :focus links a built-in offset of 
+       outline-width/2  by default for the Apple Aqua style.
+
+       Fix for 3470660, input type=image excluded from tab order.
+       
+        Reviewed by darin
+
+        * 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::applyRule):
+        * khtml/css/html4.css:
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::getAbsoluteRepaintRect):
+        (RenderBox::computeAbsoluteRepaintRect):
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::getAbsoluteRepaintRect):
+        * khtml/rendering/render_inline.cpp:
+        (RenderInline::paintFocusRing):
+        (RenderInline::paintOutlines):
+        (RenderInline::paintOutline):
+        * khtml/rendering/render_object.cpp:
+        (RenderObject::paintOutline):
+        * khtml/rendering/render_style.h:
+        (khtml::OutlineValue::OutlineValue):
+        (khtml::RenderStyle::outlineSize):
+        (khtml::RenderStyle::outlineOffset):
+        (khtml::RenderStyle::setOutlineOffset):
+        * khtml/rendering/render_text.cpp:
+        (RenderText::paintObject):
+        * kwq/KWQPainter.h:
+        * kwq/KWQPainter.mm:
+        (QPainterPrivate::QPainterPrivate):
+        (QPainter::initFocusRing):
+        (QPainter::addFocusRingRect):
+
+2003-11-01  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+       - fixed 3469262 - REGRESSION (110-112): logitech page is very slow to load (due to style sheet updates?)
+       
+        * khtml/xml/dom_nodeimpl.cpp:
+        (NodeImpl::dispatchGenericEvent): Don't do default handling for
+       events that don't bubble. Not 100% sure why this caused the big
+       slowdown but it was a somewhat arbitrary change in my earlier
+       patch.
+
+2003-11-01  Darin Adler  <darin@apple.com>
+
+        Reviewed by John.
+
+        - fixed 3468870 -- REGRESSION (108-109): cannot upload files (<input type=file> is broken)
+
+        * kwq/KWQFileButton.mm: (KWQFileButton::filenameChanged): Pass the filename to
+        the textChanged signal. The one without a parameter is a different signal.
+
+2003-11-01  Darin Adler  <darin@apple.com>
+
+        Reviewed by John.
+
+        - fixed 3466714 -- page with <object> tag with text subtype and no URL causes hang
+
+        * khtml/khtml_part.cpp: (KHTMLPart::requestObject): Added a check so that an empty
+        URL string doesn't get completed, and results in an empty KURL object. Also made the
+        change to allow empty URLs unconditional, because I don't think it's a WebCore-specific
+        thing on further reflection.
+
+2003-10-31  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3470489, I just forgot to commit a piece of my patch.  This has actually even
+       been reviewed by ken already.
+
+       Reviewed by kocienda
+       
+        * khtml/rendering/render_replaced.cpp:
+        (RenderWidget::eventFilter):
+
+2003-10-31  Darin Adler  <darin@apple.com>
+
+        Reviewed by John.
+
+        - fixed 3457875 -- text disappears from fields in forms upon certain types of scrolling
+
+        * kwq/KWQTextField.mm: (-[KWQTextField control:textShouldBeginEditing:]):
+        Call releaseGState on the field editor and its clip view to prevent undesirable caching.
+
+2003-10-31  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Darin
+
+       Fix for this bug:
+
+       <rdar://problem/3440719>: Read-only text field form controls 
+       do not keyboard focus and do not take part in tabbing
+
+        * kwq/KWQTextField.mm:
+        (-[KWQTextField acceptsFirstResponder]): We want our text fields
+        to accept first responder even if not editable.
+
+       Once this is fixed, this one comes along for free:
+
+       <rdar://problem/3440710>: Read-only textarea form controls should select all text when focused
+
+2003-10-31  Darin Adler  <darin@apple.com>
+
+        Reviewed by Ken.
+
+        - fixed 3469383 -- REGRESSION (100-111): if one line is selected on this page, too much gets copied (plain text)
+
+        * khtml/khtml_part.cpp: (KHTMLPart::text): Range check the child node indices before using them
+        to get at a child node. We don't want to set startNode or endNode to nil in any case. If the end
+        node is set to nil, we end up copying the entire remainder of the page.
+
+2003-10-31  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3470007, links don't get focus on mouse down.  Fix the focus check on mouse down to actually
+       crawl up the content tree in order to find the nearest enclosing focusable node.  Also clean up and
+       fix checks that improperly blurred the link after it got focused.
+
+       Fix for 3450335, AppKit widgets not obeying their desired focus policies.  I renamed isSelectable to
+       isFocusable and then also added isMouseFocusable and isKeyboardFocusable methods.
+       
+        Reviewed by kocienda
+
+        * khtml/css/html4.css:
+        * khtml/html/html_baseimpl.cpp:
+        (HTMLFrameElementImpl::isFocusable):
+        * khtml/html/html_baseimpl.h:
+        * khtml/html/html_formimpl.cpp:
+        (HTMLGenericFormElementImpl::isFocusable):
+        (HTMLGenericFormElementImpl::isKeyboardFocusable):
+        (HTMLGenericFormElementImpl::isMouseFocusable):
+        * khtml/html/html_formimpl.h:
+        * khtml/html/html_inlineimpl.cpp:
+        (HTMLAnchorElementImpl::isFocusable):
+        * khtml/html/html_inlineimpl.h:
+        * khtml/khtmlview.cpp:
+        (KHTMLView::dispatchMouseEvent):
+        * khtml/xml/dom_docimpl.cpp:
+        (DocumentImpl::nextFocusNode):
+        (DocumentImpl::previousFocusNode):
+        * khtml/xml/dom_nodeimpl.cpp:
+        (NodeImpl::isFocusable):
+        (NodeImpl::isKeyboardFocusable):
+        (NodeImpl::isMouseFocusable):
+        * khtml/xml/dom_nodeimpl.h:
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::khtmlMousePressEvent):
+
+2003-10-31  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by David
+
+       Fix for this bug:
+
+       <rdar://problem/3470233>: solid outlines drawing incorrectly
+
+       The problem was that when I collected the array of line boxes for
+       render inlines, I put a QRect() at the start and the end of the list.
+       However, the border calculation code expected "invalid" rectangles
+       (rects with 0 for all four dimentions) in the first and last
+       positions, and the default constructor for QRect makes rects with 1,1
+       for width/height.
+
+        * khtml/rendering/render_inline.cpp:
+        (RenderInline::paintOutlines)
+
+2003-10-31  Darin Adler  <darin@apple.com>
+
+        Reviewed by Dave.
+
+        - fixed 3464759 -- REGRESSION (100-107): Pressing on link loses mouse-down feedback almost instantly
+
+        * khtml/khtmlview.cpp: (KHTMLView::viewportMouseMoveEvent): Pass true for the "read-only"
+        flag in prepareMoveEvent to prevent us from updating :hover and :active while the mouse is down.
+
+2003-10-31  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by David
+
+       <rdar://problem/3468910>: REGRESSION: other than focus rings, outlines styles are broken
+
+       Outlines now draw like they used to.
+
+        * khtml/rendering/render_inline.cpp:
+        (RenderInline::paintObject): Now branches to call focus ring or "regular" outlines.
+        (RenderInline::paintFocusRing): Broke out drawing aqua focus rings into its
+       own function.
+        (RenderInline::paintOutlines): New function to draw "regular outlines.
+        (RenderInline::paintOutline): Removed code which special-cased aqua outlines.
+        * khtml/rendering/render_inline.h: Added paintOutlines declaration.
+
+2003-10-31  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3467419, highlighted text in "search in books" Amazon feature is obscured.  The
+       site is using the CSS3 opacity property.  The CSS3 Color module is far enough along now
+       that opacity can safely be used without the "-khtml-" in front of it.
+
+       Fix for 3466542, the minimum font size bug.  I am introducing a new minimum font size pref that
+       really is a hard override.
+       
+        Reviewed by gramps (opacity) and john (min font size)
+       
+        * 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::applyRule):
+
+2003-10-31  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Darin
+
+       Fix for this bug:
+
+       <rdar://problem/3469088>: focus not removed from text link 
+       when user hits cmd-L or clicks in window chrome
+
+        * kwq/WebCoreBridge.h:
+        * kwq/WebCoreBridge.mm:
+        (-[WebCoreBridge deselectAll]): Now clears the focus ring as well.
+        (-[WebCoreBridge deselectText]): Just clears text selection.
+
+2003-10-31  David Hyatt  <hyatt@apple.com>
+
+       Three simple fixes:
+       
+       (1) Fix for 3463777, crash on CSS3 box model draft.  This was just a situation where a simple null-check
+       was needed for generated content.
+
+       (2) Added a != check when the old and new hover obj are the same to avoid a little bit of extra work.
+
+       (3) Removed the m_pressed member from DOM nodes and removed the calls to setPressed, since this code
+       is dead and not used by anyone.
+       
+        * khtml/khtmlview.cpp:
+        * khtml/rendering/render_layer.cpp:
+        (RenderLayer::addChild):
+        (RenderLayer::updateHoverActiveState):
+        * khtml/xml/dom_nodeimpl.cpp:
+        (NodeImpl::NodeImpl):
+        * khtml/xml/dom_nodeimpl.h:
+        (DOM::NodeImpl::hasStyle):
+        (DOM::NodeImpl::setHasStyle):
+
+2003-10-30  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3469330, the Marquee data in RenderStyle needs a copy constructor hack like all the other
+       objects do.
+
+        * khtml/rendering/render_style.cpp:
+        (direction):
+        * khtml/rendering/render_style.h:
+
+2003-10-30  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3469206, images didn't paint outlines any more.  They were bailing early because I forgot to
+       add a check for my new PaintAction.
+       
+        Reviewed by darin
+
+        * khtml/rendering/render_replaced.cpp:
+        (RenderReplaced::paint):
+
+2003-10-30  David Hyatt  <hyatt@apple.com>
+
+       Fixes for 3469057, outlines not drawn on aintitcool.com and also for 3469178, objects with width/height of 0
+       incorrectly excluded from tabbing.
+       
+        Reviewed by darin
+
+        * khtml/html/html_formimpl.cpp:
+        (HTMLGenericFormElementImpl::isSelectable):
+        * khtml/html/html_inlineimpl.cpp:
+        (HTMLAnchorElementImpl::isSelectable):
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::getAbsoluteRepaintRect):
+        * khtml/rendering/render_inline.cpp:
+        (RenderInline::addFocusRingRects):
+        (RenderInline::paintOutline):
+        * khtml/rendering/render_object.cpp:
+        (RenderObject::addFocusRingRects):
+        (RenderObject::getAbsoluteRepaintRectWithOutline):
+
+2003-10-30  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+       - fixed 3426081 - empty cells HTMLCollection for <tr>
+       - fixed 3367598 - "length" attribute for table row "cells" always returns 0
+       
+        * khtml/dom/html_table.cpp:
+        (HTMLTableRowElement::cells): TR_CELLS, not TABLE_ROWS.
+
+2003-10-30  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3468916, outline needs its own paint action so that focus rings don't draw under other content.
+       
+        Reviewed by kocienda
+
+        * khtml/rendering/render_block.cpp:
+        (khtml::RenderBlock::paintObject):
+        (khtml::RenderBlock::paintFloats):
+        * khtml/rendering/render_image.cpp:
+        (RenderImage::paintObject):
+        * khtml/rendering/render_inline.cpp:
+        (RenderInline::paintObject):
+        * khtml/rendering/render_layer.cpp:
+        (RenderLayer::paintLayer):
+        * khtml/rendering/render_object.h:
+
+2003-10-30  Maciej Stachowiak  <mjs@apple.com>
+
+       Fixed Dave's fix to my fix to my fix:
+
+        * khtml/html/html_imageimpl.cpp:
+        (HTMLImageElementImpl::width): Put back m_render check, consider
+       the case of image with no width/height attributes and display:none
+       set. We don't want to crash on that.
+        (HTMLImageElementImpl::height): Ditto.
+
+2003-10-30  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Hyatt
+
+       Support for tabbing to links.
+
+       Fixes these bugs
+
+       <rdar://problem/3468395>: fix full keyboard access loop for buttons
+       <rdar://problem/3468397>: paint aqua focus rings around text links
+       <rdar://problem/3468406>: focused links do not activate by hitting
+          return key
+       <rdar://problem/3468410>: paintTextOutline in RenderText objects
+          should be done at a higher level
+       <rdar://problem/3468424>: improve function to determine if a node is
+          tab selectable
+       <rdar://problem/3468427>: add bridge function to access active
+          document view for a node
+       <rdar://problem/3468429>: links do not scroll into view when focusing
+       <rdar://problem/3468435>: when tabbing out of a frame, last focused
+          node is not cleared if it is a text link
+       <rdar://problem/3468436>: focus on text link does not clear when
+          clicking mouse in document body
+       <rdar://problem/3468440>: add setRect convenience to QRect
+       <rdar://problem/3468444>: elements paint their outlines even if they
+          are not visible
+       <rdar://problem/3468448>: setting focus on a node sets focus on all
+          its siblings
+       <rdar://problem/3468456>: cannot tab to form image input elements
+       <rdar://problem/3468461>: tab focus can seem to disappear from view on
+          pages with dhtml menus
+       <rdar://problem/3469021>: webcore bridge nextKeyView always starts 
+       from the beginning of the document
+
+        * WebCore-combined.exp: Export WebCoreGraphicsBridge class
+        * WebCore.exp: Ditto
+        * WebCore.pbproj/project.pbxproj: Add WebCoreGraphicsBridge class
+        * khtml/css/cssparser.cpp: 
+        (CSSParser::parseValue): border style check now take apple aqua
+       style into account
+        * khtml/css/cssvalues.in: Add -apple-aqua border value
+        * khtml/css/html4.css: Change focus, a:link:active, and a:visited:active
+       to use new -apple-aqua focus rings.
+        * khtml/html/html_formimpl.cpp:
+        (HTMLGenericFormElementImpl::isSelectable): Improve function so
+       that invisible elements are no longer considered selectable
+        * khtml/html/html_inlineimpl.cpp:
+        (HTMLAnchorElementImpl::isSelectable): Ditto.
+        (HTMLAnchorElementImpl::defaultEventHandler): Make return key
+       activate links as well as Enter.
+        * khtml/html/html_inlineimpl.h: Move isSelectable function into
+       implementation file.
+        * khtml/rendering/render_block.cpp: 
+        (khtml::RenderBlock::paintObject): Do not paint outlines if
+       content is invisible.
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::getAbsoluteRepaintRect): Improve function to correctly
+       calculate repaint rects including outlines.
+        * khtml/rendering/render_image.cpp:
+        (RenderImage::paintObject): Do not paint outlines if
+        content is invisible.
+        * khtml/rendering/render_inline.cpp:
+        (RenderInline::paintObject): Ditto.
+        (RenderInline::addFocusRingRects): New function to gather up rects
+       to use for painting outlines.
+        (RenderInline::paintOutline): Added code to paint aqua focus rings.
+        * khtml/rendering/render_inline.h:
+        * khtml/rendering/render_object.cpp:
+        (RenderObject::drawBorder): Add case for apple aqua border style.
+        (RenderObject::addFocusRingRects): New function to gather up rects
+        to use for painting outlines.
+        (RenderObject::paintOutline): Added code to paint aqua focus rings.
+        (RenderObject::getAbsoluteRepaintRectWithOutline): Helper function
+       to calculate rectangle to use for repainting when an object has an
+       outline.
+        * khtml/rendering/render_object.h: Add addFocusRingRects declaration.
+        * khtml/rendering/render_style.h: Add APPLEAQUA to border enum
+        * khtml/rendering/render_text.cpp:
+        (RenderText::paintObject): Removed code to draw outlines.
+        * khtml/rendering/render_text.h: Ditto.
+        * khtml/xml/dom_elementimpl.cpp: Removed redundant isSelectable check.
+        * khtml/xml/dom_elementimpl.h: Ditto.
+        * khtml/xml/dom_nodeimpl.cpp:
+        (NodeImpl::isSelectable): Added.
+        (NodeBaseImpl::setFocus): Do not set focus on siblings.
+        * khtml/xml/dom_nodeimpl.h: Moved implementation to .cpp file.
+        * kwq/KWQButton.mm:
+        (-[KWQButton nextKeyView]): Send a blur before going to next
+       key view. This prevents focus from being lost altogether.
+        (-[KWQButton previousKeyView]): Ditto.
+        * kwq/KWQKHTMLPart.h: Added documentViewForNode function.
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::nextKeyViewInFrame): Add check for other focusables,
+       like text links.
+        (KWQKHTMLPart::nextKeyViewInFrameHierarchy): Remove focus when leaving
+       a view.
+        (KWQKHTMLPart::documentViewForNode): Added.
+        (KWQKHTMLPart::khtmlMousePressEvent): Remove focus when you click in
+       a non-focusable area, like the document body.
+        * kwq/KWQPainter.h: Added declarations.
+        * kwq/KWQPainter.mm:
+        (QPainterPrivate::QPainterPrivate): Modified constructor for new fields.
+        (QPainter::initFocusRing): Added.
+        (QPainter::addFocusRingRect): Added.
+        (QPainter::drawFocusRing): Added.
+        (QPainter::clearFocusRing): Added.
+        * kwq/KWQRect.h:
+        (QRect::setRect): Added.
+        * kwq/WebCoreBridge.h:
+        * kwq/WebCoreBridge.mm:
+        (-[WebCoreBridge nextKeyView]): Start from the currently-focused node,
+       if there is one, not unconditionally from the start of the document.
+        (-[WebCoreBridge previousKeyView]): Ditto
+        * kwq/WebCoreGraphicsBridge.h: Added.
+        * kwq/WebCoreGraphicsBridge.m: Added.
+        (+[WebCoreGraphicsBridge sharedBridge]): Added.
+        (-[WebCoreGraphicsBridge init]): Added.
+        (-[WebCoreGraphicsBridge setFocusRingStyle:radius:color:]): Added.
+
+2003-10-30  Maciej Stachowiak  <mjs@apple.com>
+
+       Fix mistake in my last change that I did not mean to commit.
+
+        * khtml/html/html_imageimpl.cpp:
+        (HTMLImageElementImpl::width): Remove extraneous second attempt to
+       lay out.
+
+2003-10-30  David Hyatt  <hyatt@apple.com>
+
+       Put paged-media changes back without the wrongful removal of the style data copy constructors (which
+       were necessary after all).
+       
+        * ChangeLog:
+        * khtml/css/cssstyleselector.cpp:
+        (khtml::CSSStyleSelector::applyRule):
+        * khtml/rendering/render_style.cpp:
+        (StyleInheritedData::StyleInheritedData):
+        (StyleInheritedData::operator==):
+        * khtml/rendering/render_style.h:
+        (khtml::):
+        (khtml::RenderStyle::NonInheritedFlags::operator==):
+        (khtml::RenderStyle::setBitDefaults):
+        (khtml::RenderStyle::widows):
+        (khtml::RenderStyle::orphans):
+        (khtml::RenderStyle::pageBreakInside):
+        (khtml::RenderStyle::pageBreakBefore):
+        (khtml::RenderStyle::pageBreakAfter):
+        (khtml::RenderStyle::setWidows):
+        (khtml::RenderStyle::setOrphans):
+        (khtml::RenderStyle::setPageBreakInside):
+        (khtml::RenderStyle::setPageBreakBefore):
+        (khtml::RenderStyle::setPageBreakAfter):
+
+2003-10-30  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Dave.
+
+       - fixed 3468129 - REGRESSION: FOUC occurs on Surfin' Safari
+       
+        * khtml/ecma/kjs_html.cpp:
+        (KJS::HTMLElement::getValueProperty): Don't force layout for image
+       width/height if you can determine it statically from the attribute.
+        * khtml/html/html_image.cpp:
+        (HTMLImageElementImpl::width):
+        (HTMLImageElementImpl::height):
+
+=== Safari-112 ===
+
+2003-10-30  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by me
+
+       Rolling out this code since it caused a big performance 
+       regression.
+
+       2003-10-29  David Hyatt  <hyatt@apple.com>
+
+               Add the paged media properties to RenderStyle.  
+               They aren't used yet, but they should now be
+               parsed and interpreted correctly.
+
+        * khtml/css/cssstyleselector.cpp:
+        (khtml::CSSStyleSelector::applyRule):
+        * khtml/rendering/render_style.cpp:
+        (StyleSurroundData::StyleSurroundData):
+        (StyleBoxData::StyleBoxData):
+        (StyleBoxData::operator==):
+        (StyleVisualData::~StyleVisualData):
+        (StyleVisualData::StyleVisualData):
+        (StyleBackgroundData::StyleBackgroundData):
+        (StyleFlexibleBoxData::StyleFlexibleBoxData):
+        (opacity):
+        (textShadow):
+        (StyleInheritedData::StyleInheritedData):
+        (StyleInheritedData::~StyleInheritedData):
+        (StyleInheritedData::operator==):
+        * khtml/rendering/render_style.h:
+        (khtml::StyleBackgroundData::~StyleBackgroundData):
+        (khtml::StyleFlexibleBoxData::~StyleFlexibleBoxData):
+        (khtml::RenderStyle::NonInheritedFlags::operator==):
+        (khtml::RenderStyle::setBitDefaults):
+
+2003-10-29  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3466628, widgets in overflow blocks don't move when the overflow block is scrolled.  This
+       was a regression caused by my change to move widgets only during layout and not at paint time.  The
+       problem with this is that scrolling an overflow block doesn't do a layout, just a repaint.  I patched
+       the layer code to update widget positions on an overflow block scroll.
+
+       This then exposed a bug in absolutePosition, namely that the scroll offset was never factored in when
+       computing absolutePosition.  This bug also explains why text selection and cursor display were wrong
+       inside scrolled overflow blocks.
+       
+        Reviewed by mjs
+
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::absolutePosition):
+        * khtml/rendering/render_layer.cpp:
+        (RenderLayer::scrollToOffset):
+        * khtml/rendering/render_object.cpp:
+        (RenderObject::absolutePosition):
+        * khtml/rendering/render_text.cpp:
+        (RenderText::cursorPos):
+        (RenderText::posOfChar):
+        * khtml/rendering/render_text.h:
+
+2003-10-29  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Dave.
+
+       - fixed 3467499 - REGRESSION: onClick handlers on links don't work (bubbling broken)
+       
+        * khtml/xml/dom2_eventsimpl.cpp:
+        (EventImpl::EventImpl): Initialize m_cancelBubble (duh).
+
+2003-10-29  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3466802.  When breaking on a newline, "pre" is determined by checking the actual object that
+       the line broke on, and not by simply checking the "pre" status of the containing block.
+       
+        Reviewed by mjs
+
+        * khtml/rendering/bidi.cpp:
+        (khtml::RenderBlock::layoutInlineChildren):
+
+2003-10-29  David Hyatt  <hyatt@apple.com>
+
+       Add the paged media properties to RenderStyle.  They aren't used yet, but they should now be 
+       parsed and interpreted correctly.
+       
+        Reviewed by kocienda
+
+        * khtml/css/cssstyleselector.cpp:
+        (khtml::CSSStyleSelector::applyRule):
+        * khtml/rendering/render_style.cpp:
+        (StyleBoxData::operator==):
+        (StyleFlexibleBoxData::StyleFlexibleBoxData):
+        (:opacity):
+        (:textShadow):
+        (StyleInheritedData::StyleInheritedData):
+        (StyleInheritedData::operator==):
+        * khtml/rendering/render_style.h:
+        (khtml::):
+        (khtml::RenderStyle::NonInheritedFlags::operator==):
+        (khtml::RenderStyle::setBitDefaults):
+        (khtml::RenderStyle::widows):
+        (khtml::RenderStyle::orphans):
+        (khtml::RenderStyle::pageBreakInside):
+        (khtml::RenderStyle::pageBreakBefore):
+        (khtml::RenderStyle::pageBreakAfter):
+        (khtml::RenderStyle::setWidows):
+        (khtml::RenderStyle::setOrphans):
+        (khtml::RenderStyle::setPageBreakInside):
+        (khtml::RenderStyle::setPageBreakBefore):
+        (khtml::RenderStyle::setPageBreakAfter):
+
+2003-10-29  David Hyatt  <hyatt@apple.com>
+
+        Reviewed by NOBODY (OOPS!).
+
+        * khtml/css/cssstyleselector.cpp:
+        (khtml::CSSStyleSelector::applyRule):
+        * khtml/rendering/render_style.cpp:
+        (StyleBoxData::operator==):
+        (StyleFlexibleBoxData::StyleFlexibleBoxData):
+        (:opacity):
+        (:textShadow):
+        (StyleInheritedData::StyleInheritedData):
+        (StyleInheritedData::operator==):
+        * khtml/rendering/render_style.h:
+        (khtml::):
+        (khtml::RenderStyle::NonInheritedFlags::operator==):
+        (khtml::RenderStyle::setBitDefaults):
+        (khtml::RenderStyle::widows):
+        (khtml::RenderStyle::orphans):
+        (khtml::RenderStyle::pageBreakInside):
+        (khtml::RenderStyle::pageBreakBefore):
+        (khtml::RenderStyle::pageBreakAfter):
+        (khtml::RenderStyle::setWidows):
+        (khtml::RenderStyle::setOrphans):
+        (khtml::RenderStyle::setPageBreakInside):
+        (khtml::RenderStyle::setPageBreakBefore):
+        (khtml::RenderStyle::setPageBreakAfter):
+
+2003-10-29  David Hyatt  <hyatt@apple.com>
+
+       Refine the fix to updateLayout.
+       updateStyleSelector would get called over and over again when you queried for layout properties from
+       JS.  If no stylesheets are pending, this isn't necessary (and is quite expensive, since updateStyleSelector
+       is a slow function).
+       
+        Reviewed by darin
+
+        * khtml/xml/dom_docimpl.cpp:
+        (DocumentImpl::updateLayout):
+
+2003-10-29  David Hyatt  <hyatt@apple.com>
+
+       Fix crasher in border collapsing code.
+       
+        Reviewed by kocienda
+
+        * khtml/rendering/render_table.cpp:
+        (RenderTable::cellRight):
+
+2003-10-28  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+       - fixed 3163842 - Citibank cardmember central DHTML menus not working right in Safari
+       
+        * khtml/ecma/kjs_html.cpp:
+        (KJS::HTMLElement::getValueProperty): update layout before fetching image properties
+       that need it.
+        * khtml/xml/dom_docimpl.cpp:
+        (DocumentImpl::DocumentImpl): Initialize m_ignorePendingStylesheets to false.
+        (DocumentImpl::updateLayout): Ignore pending stylesheets - when JS demands a
+       layout, it wants a real one now.
+        (DocumentImpl::updateStyleSelector): Go ahead with the update if we're ignoring
+       pending stylesheets.
+        * khtml/xml/dom_docimpl.h:
+        (DOM::DocumentImpl::haveStylesheetsLoaded): Pretend stylesheets have loaded if
+       we're temporarily ignoring pending stylesheets.
+
+2003-10-29  David Hyatt  <hyatt@apple.com>
+
+       Implement support for <marquee>.  This includes support for the CSS3 specification (although modified a fair
+       bit to actually be compatible with WinIE's version and to correct obvious errors in the draft).  All of the
+       marquee behaviors (slide, scroll, and alternate) are supported.
+
+       This patch also fixes the following bugs that were discovered while testing marquee:
+       (1) An error in the computation of scrollWidth and scrollHeight.  
+       (2) The ability to ask for the leftmostPosition as well as the rightmostPosition of content and to
+       be able to ask for the positions of children (via left/right/lowest) without including the parent in the
+       computation.
+       (3) An optimization to RenderFlow's rightmost/lowestPosition functions to avoid examining text elements since
+       they are always fully accounted for by either overflow or by inline flow boxes.
+       (4) A fix for RTL rendering.  A block with direction:RTL was being placed on the right, when in reality only
+       its children should be placed on the right.
+       (5) A fix to prevent inline blocks and tables from computing auto margins (making them just like floats in this
+       regard).
+       
+        Reviewed by darin
+
+        * khtml/css/cssparser.cpp:
+        (validUnit):
+        (CSSParser::parseValue):
+        * khtml/css/cssproperties.c:
+        (hash_prop):
+        (findProp):
+        * khtml/css/cssproperties.h:
+        * khtml/css/cssproperties.in:
+        * khtml/css/cssstyleselector.cpp:
+        (khtml::convertToLength):
+        (khtml::CSSStyleSelector::applyRule):
+        * khtml/css/cssvalues.c:
+        (hash_val):
+        (findValue):
+        * khtml/css/cssvalues.h:
+        * khtml/css/cssvalues.in:
+        * khtml/css/html4.css:
+        * khtml/html/html_blockimpl.cpp:
+        (HTMLMarqueeElementImpl::HTMLMarqueeElementImpl):
+        (HTMLMarqueeElementImpl::id):
+        (HTMLMarqueeElementImpl::parseAttribute):
+        * khtml/html/html_blockimpl.h:
+        (DOM::HTMLMarqueeElementImpl::minimumDelay):
+        * khtml/html/htmlparser.cpp:
+        (KHTMLParser::getElement):
+        * khtml/misc/htmlattrs.c:
+        (hash_attr):
+        (findAttr):
+        * khtml/misc/htmlattrs.h:
+        * khtml/misc/htmlattrs.in:
+        * khtml/rendering/bidi.cpp:
+        (khtml::RenderBlock::findNextLineBreak):
+        * khtml/rendering/render_block.cpp:
+        (khtml::RenderBlock::lowestPosition):
+        (khtml::RenderBlock::rightmostPosition):
+        (khtml::RenderBlock::leftmostPosition):
+        * khtml/rendering/render_block.h:
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::setStyle):
+        (RenderBox::calcWidth):
+        (RenderBox::calcHorizontalMargins):
+        (RenderBox::lowestPosition):
+        (RenderBox::rightmostPosition):
+        (RenderBox::leftmostPosition):
+        * khtml/rendering/render_box.h:
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::lowestPosition):
+        (RenderFlow::rightmostPosition):
+        (RenderFlow::leftmostPosition):
+        * khtml/rendering/render_flow.h:
+        * khtml/rendering/render_layer.cpp:
+        (RenderLayer::RenderLayer):
+        (RenderLayer::~RenderLayer):
+        (RenderLayer::updateLayerPositions):
+        (RenderLayer::scrollToOffset):
+        (RenderLayer::computeScrollDimensions):
+        (RenderLayer::styleChanged):
+        (RenderLayer::stopMarquees):
+        (m_whiteSpace):
+        (Marquee::marqueeSpeed):
+        (Marquee::direction):
+        (Marquee::isHorizontal):
+        (Marquee::computePosition):
+        (Marquee::start):
+        (Marquee::stop):
+        (Marquee::updateMarqueePosition):
+        (Marquee::updateMarqueeStyle):
+        (Marquee::timerEvent):
+        * khtml/rendering/render_layer.h:
+        (khtml::):
+        (khtml::RenderLayer::marquee):
+        * khtml/rendering/render_object.cpp:
+        (RenderObject::isHTMLMarquee):
+        (RenderObject::sizesToMaxWidth):
+        * khtml/rendering/render_object.h:
+        (khtml::RenderObject::lowestPosition):
+        (khtml::RenderObject::rightmostPosition):
+        (khtml::RenderObject::leftmostPosition):
+        * khtml/rendering/render_style.cpp:
+        (StyleMarqueeData::StyleMarqueeData):
+        (StyleMarqueeData::operator==):
+        (opacity):
+        (marquee):
+        (StyleCSS3NonInheritedData::operator==):
+        (RenderStyle::RenderStyle):
+        * khtml/rendering/render_style.h:
+        (khtml::):
+        (khtml::StyleMarqueeData::operator!=):
+        (khtml::RenderStyle::marqueeIncrement):
+        (khtml::RenderStyle::marqueeSpeed):
+        (khtml::RenderStyle::marqueeLoopCount):
+        (khtml::RenderStyle::marqueeBehavior):
+        (khtml::RenderStyle::marqueeDirection):
+        (khtml::RenderStyle::setMarqueeIncrement):
+        (khtml::RenderStyle::setMarqueeSpeed):
+        (khtml::RenderStyle::setMarqueeDirection):
+        (khtml::RenderStyle::setMarqueeBehavior):
+        (khtml::RenderStyle::setMarqueeLoopCount):
+        * khtml/xml/dom_docimpl.cpp:
+        (DocumentImpl::createHTMLElement):
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::clearTimers):
+
 2003-10-29  David Hyatt  <hyatt@apple.com>
 
        Make <button> be an inline-block.