[webkit-changes] cvs commit: WebCore ChangeLog-2005-08-23

Justin justing at opensource.apple.com
Thu Aug 25 14:43:42 PDT 2005


justing     05/08/25 14:43:38

  Added:       .        ChangeLog-2005-08-23
  Log:
  ChangeLog that Darin rolled over was dated 2004.  Fixed.
  
  Revision  Changes    Path
  1.1                  WebCore/ChangeLog-2005-08-23
  
  Index: ChangeLog-2005-08-23
  ===================================================================
  2005-08-23  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/4226539> REGRESSION: Blank content at http://www.the-leaky-cauldron.org/ with Denver and TOT
  
          Test cases added:
          * layout-tests/fast/parser/comments-expected.txt: Added.
          * layout-tests/fast/parser/comments.html: Added.
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseComment):
          When non-space follows comment end, ignore that comment end.
  
  2005-08-23  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by mjs
          
          Temporary workaround for gcc-5216+ bug 4213314.  Don't use NSMake* convenience methods inside KWQ_BLOCK_EXCEPTIONS.
  
          * kwq/KWQKConfigBase.mm:
          (KConfig::readEntry):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::attributedString):
          * kwq/KWQListBox.mm:
          (QListBox::sizeForNumberOfLines):
          * kwq/KWQPainter.mm:
          (QPainter::drawTiledPixmap):
          * kwq/KWQScrollView.mm:
          (QScrollView::resizeContents):
          (QScrollView::contentsToViewport):
          (QScrollView::viewportToContents):
          (QScrollView::setContentsPosRecursive):
          (QScrollView::ensureVisible):
          (QScrollView::ensureRectVisibleCentered):
  
  2005-08-22  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Beth Dakin.
          
          - fixed <rdar://problem/4227019> Several 32-byte leaks after choosing pop-up menu at dzone198.apple.com
  
          Test cases added: none, doesn't affect layout. I did execute run-layout-tests to verify that there
          were no surprises though.
  
          * khtml/ecma/xmlhttprequest.h:
          use SharedPtr for onReadyStateChangeListener and onLoadListener
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::getValueProperty):
          use notNull() instead of testing SharedPtrs against 0
          (KJS::XMLHttpRequest::putValueProperty):
          use reset() to set values of SharedPtrs; eliminate ref()s that had no deref()s
          (KJS::XMLHttpRequest::mark):
          use notNull() instead of testing SharedPtrs against 0
          (KJS::XMLHttpRequest::XMLHttpRequest):
          don't initialize SharedPtrs
          (KJS::XMLHttpRequest::changeState):
          use notNull() instead of testing SharedPtrs against 0
  
  2005-08-22  David Harrison  <harrison at apple.com>
  
          Reviewed by Justin.
  
          <rdar://problem/4221384> Denver Regression: stickies widget crashed on 8F15 when pasting text
  
          Test cases added:  None.  Problem triggered by simple paste, which lots of the
          editing tests already do, but also required particular memory layout/cleanup state, which
          is not specifiable in our tests.
  
          * khtml/editing/markup.cpp:
          (khtml::createFragmentFromText):
          Ref the new paragraph element right away, rather than allocating more memory first.
  
  2005-08-22  Eric Seidel  <eseidel at apple.com>
          Fix by Tobias Lidskog <tobiaslidskog at mac.com>
  
          Reviewed by eseidel.
  
          * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
          (KCanvasFilterQuartz::inputImage): null check
          (KCanvasFEBlendQuartz::getCIFilter): ditto
          (KCanvasFEColorMatrixQuartz::getCIFilter): ditto
          (KCanvasFEMergeQuartz::getCIFilter): ditto
          Added NULL checks to avoid throwing Obj-C exceptions from
          CoreImage either when rendering bad SVGs or in cases where
          we do not yet implement a certain SVG filter element.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4554
  
  2005-08-22  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by darin.
  
          * ksvg2/impl/SVGScriptElementImpl.cpp:
          (SVGScriptElementImpl::executeScript):
          Added necessary Interpreter::lock()/unlock() calls to prevent
          assertion failure when loading SVGs with JavaScript.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4580
  
  2005-08-22  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by darin.
  
          * WebCore.xcodeproj/project.pbxproj:
          Applied Darin's nmedit workaround/build-speedup to WebCore+SVG.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4577
  
  2005-08-22  Eric Seidel  <eseidel at apple.com>
          Fix by Tobias Lidskog <tobiaslidskog at mac.com>
  
          Reviewed by eseidel.
  
          * kcanvas/device/KRenderingPaintServerSolid.cpp:
          * kcanvas/device/KRenderingPaintServerSolid.h:
          * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
          (KRenderingPaintServerSolidQuartz::draw):
          * svg-tests/W3C-SVG-1.1/animate-elem-22-b-expected.png:
          * svg-tests/W3C-SVG-1.1/masking-opacity-01-b-expected.png:
          Group opacity was doubly-applied.  This patch fixes that.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4463
  
  2005-08-22  Eric Seidel  <eseidel at apple.com>
          Fix by Tobias Lidskog <tobiaslidskog at mac.com>
  
          Reviewed by eseidel.
  
          * kcanvas/device/quartz/QuartzSupport.mm:
          (CGPathToCFStringApplierFunction): Fixed output for curves.
          * svg-tests/W3C-SVG-1.1/Resources/filters-example-01-f-expected.txt:
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-01-f-expected.txt:
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-02-f-expected.txt:
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-03-f-expected.txt:
          * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-b-expected.txt:
          * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-f-expected.txt:
          * svg-tests/W3C-SVG-1.1/animate-elem-06-t-expected.txt:
          * svg-tests/W3C-SVG-1.1/animate-elem-07-t-expected.txt:
          * svg-tests/W3C-SVG-1.1/animate-elem-08-t-expected.txt:
          * svg-tests/W3C-SVG-1.1/animate-elem-28-t-expected.txt:
          * svg-tests/W3C-SVG-1.1/filters-example-01-b-expected.txt:
          * svg-tests/W3C-SVG-1.1/filters-morph-01-f-expected.txt:
          * svg-tests/W3C-SVG-1.1/fonts-elem-01-t-expected.txt:
          * svg-tests/W3C-SVG-1.1/fonts-elem-02-t-expected.txt:
          * svg-tests/W3C-SVG-1.1/fonts-elem-03-b-expected.txt:
          * svg-tests/W3C-SVG-1.1/fonts-elem-04-b-expected.txt:
          * svg-tests/W3C-SVG-1.1/metadata-example-01-b-expected.txt:
          * svg-tests/W3C-SVG-1.1/paths-data-01-t-expected.txt:
          * svg-tests/W3C-SVG-1.1/paths-data-02-t-expected.txt:
          * svg-tests/W3C-SVG-1.1/paths-data-03-f-expected.txt:
          * svg-tests/W3C-SVG-1.1/shapes-rect-01-t-expected.txt:
          * svg-tests/W3C-SVG-1.1/text-path-01-b-expected.txt:
          Fixed output for curves and updated tests accordingly.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4553
  
  2005-08-22  Eric Seidel  <eseidel at apple.com>
          Fix by Tobias Lidskog <tobiaslidskog at mac.com>
  
          Reviewed by eseidel.
  
          * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
          (KCanvasFilterQuartz::prepareFilter):
          * kcanvas/device/quartz/KRenderingDeviceQuartz.h:
          * kcanvas/device/quartz/KRenderingDeviceQuartz.mm:
          (KRenderingDeviceQuartz::filtersEnabled):
          (KRenderingDeviceQuartz::setFiltersEnabled):
          (KRenderingDeviceQuartz::hardwareRenderingEnabled):
          (KRenderingDeviceQuartz::setHardwareRenderingEnabled):
          Added ability to disable hardware rendering (for testing).
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4550
  
  2005-08-20  Darin Adler  <darin at apple.com>
  
          * khtml/xml/xml_namespace_table.cpp: Removed this file that's been obsolete and
          unused for a while.
          * khtml/xml/xml_namespace_table.h: Ditto.
  
  2005-08-19  Anders Carlsson  <andersca at mac.com>
  
          Reviewed by Darin.
          Landed by David Harrison.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4475
            <noscript>, <noframes>, <nolayer> and <noembed> elements should be in the DOM
  
          Test cases added:
          * layout-tests/fast/dom/no-elements-expected.txt: Added.
          * layout-tests/fast/dom/no-elements.html: Added.
  
          * khtml/html/html_elementimpl.cpp:
          (blockTagList):
          Add noembed and nolayer to the list of block tags.
          
          * khtml/html/htmlparser.cpp:
          (HTMLParser::noembedCreateErrorCheck):
          (HTMLParser::noframesCreateErrorCheck):
          (HTMLParser::noscriptCreateErrorCheck):
          (HTMLParser::nolayerCreateErrorCheck):
          Make sure these elements are created, but that they won't have any children.
          (Except for <noscript> when JavaScript is turned off).
          
          * layout-tests/dom/html/level2/html/HTMLElement113-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLElement114-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLElement142-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLElement143-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLElement26-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLElement27-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLElement55-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLElement56-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLElement84-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLElement85-expected.txt:
          These tests pass now.
  
  2005-08-19  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
          Landed by David Harrison.
          
          Test cases added:
  	manual-tests/onclick_in_noncontent.html: Added.
          (a manual test because Darin saw no way to exercise the hit testing code from JavaScript)
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3662
            onClick event for TD element doesn't fire unless its contents are clicked
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::nodeAtPoint):
          Take the border extra into account when hit testing just as we do when
          painting the background of a table cell. OK for other renderers because
          they have a border extra of 0.
  
  2005-08-19  Anders Carlsson  <andersca at mac.com>
  
          Reviewed by Darin.
          Landed by David Harrison.
  
          Test cases added: None.  Fixes existing tests.
  
          * khtml/ecma/kjs_dom.cpp:
          Attribute values are writable
          
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createAttributeNS):
          Update for new AttrImpl constructor.
          
          * khtml/xml/dom_elementimpl.cpp:
          (AttributeImpl::allocateImpl):
          Update for new AttrImpl constructor.
          
          (AttrImpl::AttrImpl):
          Initialize m_ignoreChildCount to 0. If createTextChild.
          is true, create a child text node with the contents
          of the attribute value.
          
          (AttrImpl::setValue):
          Remove all children and create a new text node with the contents
          of the attribute value.
          
          (AttrImpl::cloneNode):
          Make sure to clone any children.
          
          (AttrImpl::childrenChanged):
          If m_ignoreChildrenChanged is 0, update the attribute value.
          
          * khtml/xml/dom_elementimpl.h:
          Add childrenChanged, update AttrImpl constructor and
          add m_ignoreChildrenChanged to AttrImpl.
  
          * khtml/xml/dom_nodeimpl.cpp:
          (DOM::NodeImpl::normalize):
          If an element has attributes, make sure to normalize them.
  
          * layout-tests/dom/html/level1/core/hc_attrappendchild1-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrappendchild3-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrappendchild6-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrchildnodes1-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrchildnodes2-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrclonenode1-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrcreatetextnode-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrfirstchild-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrhaschildnodes-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrinsertbefore1-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrinsertbefore2-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrinsertbefore3-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrinsertbefore4-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrlastchild-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrnormalize-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrremovechild1-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrreplacechild1-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrreplacechild2-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrsetvalue1-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrsetvalue2-expected.txt:
          * layout-tests/dom/html/level1/core/hc_elementnormalize2-expected.txt:
          These tests pass now.
  
  2005-08-19  Mitz Pettel  <opendarwin.org at mitzpettel.com>
  
          Reviewed by Darin.
          Landed by David Harrison
  
  	- Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=4523>
            REGRESSION assertion failure in Window::getValueProperty accessing window.konqueror
  
          Test cases added: N/A for this code removal
  
          Remove all traces of the konqueror property
  
          * khtml/ecma/kjs_window.cpp:
          (KJS::Window::getValueProperty):
          * khtml/ecma/kjs_window.h:
          (KJS::Window::):
  
  2005-08-19  Antti Koivisto  <koivisto at iki.fi>
  
          Reviewed by Darin
          Landed by David Harrison
  
  	- Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=4379>
            negative margins allowed where they should not
  
          Test cases added:
  	layout-tests/fast/block/margin-collapse/104.html: Added.
  	layout-tests/fast/block/margin-collapse/104-expected.txt: Added.
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcHorizontalMargins):
  
  2005-08-19  Eric Seidel  <eseidel at apple.com>
          Change from Tobias Lidskog <tobiaslidskog at mac.com>
  
          Reviewed by eseidel.
  
          * kcanvas/KCanvasContainer.cpp:
          (KCanvasContainer::bbox): avoid unnecessary computation.
          (KCanvasContainer::collisions):
          * kcanvas/device/quartz/KCanvasItemQuartz.mm:
          (KCanvasItemQuartz::draw):
          (KCanvasItemQuartz::hitsPath): use untranslated point
          * svg-tests/W3C-SVG-1.1/metadata-example-01-b-expected.txt:
          Performance improvements to bbox and hit-testing fix.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4459
  
  2005-08-19  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by darin.
  
          * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
          (cgGradientCallback):
          Fixes forgotten memcopy.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4529
  
  2005-08-19  Vicki Murley  <vicki at apple.com>
  
  	- remove this test, I disabled it in my last checkin
  
          * layout-tests/dom/html/level2/html/HTMLFormElement10.html: Removed.
  
  2005-08-19  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Geoff.
   
          - fixed <rdar://problem/4223107> frame tests in layout-tests/dom/html/level2/html 
          have empty expected results
  
          * layout-tests/dom/html/level2/html/selfhtml.js: wait until done before
          dumping the render tree
  
          * layout-tests/dom/html/level2/html/HTMLFormElement10.html-disabled: Disable this
          test for now - its causing all tests after it to dump the render tree, even though
          dumpAsText is enabled
          
          Update expected results for these tests:
  
          * layout-tests/dom/html/level2/html/HTMLFrameElement01-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLFrameElement02-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLFrameElement03-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLFrameElement04-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLFrameElement05-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLFrameElement06-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLFrameElement07-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLFrameElement08-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLFrameSetElement01-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLFrameSetElement02-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLIFrameElement01-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLIFrameElement02-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLIFrameElement03-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLIFrameElement04-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLIFrameElement05-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLIFrameElement06-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLIFrameElement07-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLIFrameElement08-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLIFrameElement09-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLIFrameElement10-expected.txt:
  
  2005-08-19  Anders Carlsson  <andersca at mac.com>
  
          Reviewed by Maciej.
          Landed by Darin.
  
  	- Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3301>
  	innerHTML does not work for xhtml documents.
  	
          Test cases added:
  	layout-tests/fast/dom/set-innerHTML.xhtml: Added.
  	layout-tests/fast/dom/set-innerHTML-expected.txt: Added.
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::createContextualFragment):
  	Call parseXMLDocumentFragment if we're an xml document.
  	
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::XMLTokenizer::pushNamespaces):
  	New function that takes an element.
  	
          (khtml::XMLTokenizer::XMLTokenizer):
  	New constructor that takes a DocumentFragmentImpl and fills it.
  	
          (khtml::parseXMLDocumentFragment):
  	New function that parses a document fragment.
  	
          (khtml::XMLNamespaceStack::pushNamespaces):
  	New function that takes an element and pushes namespaces based on its 
  	xmlns attributes.
  	
          * khtml/xml/xml_tokenizer.h:
  	Add parseXMLDocumentFragment declaration.
  	
  2005-08-18  Eric Seidel  <eseidel at apple.com>
  
          No review needed, affects only SVGSupport.
  
          Test cases added:
          * svg-tests/W3C-SVG-1.1/Resources/animation-add-BE-09-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-add-BE-09-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image1-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image1-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image2-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image2-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image3-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image3-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/coords-units-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/coords-units-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/ext-TestComic-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/ext-TestComic-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-blend-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-blend-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-color-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-color-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-composite-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-composite-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-conv-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-conv-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-diffuse-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-diffuse-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-example-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-example-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/interact-dom-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/interact-dom-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/interact-order-02-b-targ-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/interact-order-02-b-targ-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/interact-order-03-b-targ-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/interact-order-03-b-targ-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linkingCircle-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linkingCircle-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linkingToc-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linkingToc-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-02-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-02-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-03-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-03-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-04-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-04-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/rects-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/rects-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/rects_b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/rects_b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/struct-frag-01-B-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/struct-frag-01-B-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-align-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-align-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-align-02-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-align-02-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-align-03-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-align-03-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-altglyph-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-altglyph-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-extTref-BE-18-targ-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-extTref-BE-18-targ-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-intro-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-intro-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-tref-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-tref-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-ws-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-ws-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/toc-sv-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/toc-sv-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/toc-svcmp-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/Resources/toc-svcmp-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-02-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-02-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-03-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-03-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-04-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-04-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-05-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-05-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-06-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-06-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-07-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-07-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-08-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-08-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-09-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-09-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-10-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-10-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-11-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-11-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-12-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-12-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-13-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-13-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-14-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-14-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-15-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-15-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-16-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-16-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-17-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-17-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-18-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-18-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-19-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-19-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-20-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-20-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-21-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-21-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-22-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-22-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-23-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-23-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-24-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-24-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-25-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-25-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-26-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-26-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-27-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-27-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-28-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-28-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-29-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-29-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/color-prof-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/color-prof-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-02-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-02-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-03-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-03-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-02-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-02-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-03-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-03-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-04-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-04-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-05-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-05-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-06-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-06-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-03-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-03-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-viewattr-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/coords-viewattr-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-viewattr-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/coords-viewattr-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/extend-namespace-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/extend-namespace-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-blend-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-blend-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-color-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-color-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-composite-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-composite-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-conv-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-conv-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-diffuse-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-diffuse-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-displace-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-displace-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-example-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-example-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-gauss-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-gauss-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-image-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-image-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-light-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-light-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-morph-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-morph-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-offset-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-offset-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-specular-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-specular-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-tile-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/filters-tile-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-02-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-02-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-03-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-03-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-04-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-04-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-cursor-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/interact-cursor-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-dom-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/interact-dom-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-events-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/interact-events-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-03-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-03-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-zoom-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/interact-zoom-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-03-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-03-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-04-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-04-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-03-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-03-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-mask-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/masking-mask-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-opacity-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/masking-opacity-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-03-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-03-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-04-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-04-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-05-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-05-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/metadata-example-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/metadata-example-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-02-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-02-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-03-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-03-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-04-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-04-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-marker-01-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/painting-marker-01-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-marker-02-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/painting-marker-02-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-render-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/painting-render-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-02-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-02-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-03-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-03-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-04-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-04-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-02-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-02-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-03-f-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-03-f-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-04-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-04-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-05-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-05-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-06-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-06-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-07-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-07-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-03-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-03-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-04-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-04-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-05-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-05-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-06-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-06-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-07-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-07-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-08-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-08-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-09-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-09-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-10-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-10-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-11-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-11-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-12-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-12-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-pattern-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/pservers-pattern-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-02-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-02-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-03-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-03-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-06-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-06-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-07-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-07-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-08-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-08-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/render-groups-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/render-groups-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/render-groups-03-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/render-groups-03-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-03-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-03-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-04-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-04-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/shapes-circle-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/shapes-circle-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/shapes-ellipse-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/shapes-ellipse-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/shapes-line-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/shapes-line-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/shapes-polygon-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/shapes-polygon-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/shapes-polyline-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/shapes-polyline-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/shapes-rect-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/shapes-rect-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-cond-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-cond-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-cond-02-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-cond-02-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-defs-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-defs-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-03-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-03-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-04-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-04-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-05-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-05-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-06-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-06-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-frag-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-frag-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-group-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-group-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-group-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-group-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-03-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-03-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-04-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-04-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-05-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-05-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-symbol-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/struct-symbol-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-03-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-03-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/styling-inherit-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/styling-inherit-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/styling-pres-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/styling-pres-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-align-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-align-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-align-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-align-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-align-03-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-align-03-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-align-04-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-align-04-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-align-05-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-align-05-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-align-06-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-align-06-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-altglyph-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-altglyph-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-deco-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-deco-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-fonts-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-fonts-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-fonts-02-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-fonts-02-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-02-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-02-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-03-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-03-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-04-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-04-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-path-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-path-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-spacing-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-spacing-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-text-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-text-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-text-03-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-text-03-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-tref-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-tref-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-tselect-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-tselect-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-tspan-01-b-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-tspan-01-b-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-ws-01-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-ws-01-t-expected.png: Added.
          * svg-tests/W3C-SVG-1.1/text-ws-02-t-expected.checksum: Added.
          * svg-tests/W3C-SVG-1.1/text-ws-02-t-expected.png: Added.
          Add pixel test results for SVG.
  
  2005-08-17  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
          * layout-tests/fast/css/acid2.html: Replaced nonexistent remote URL that takes
  	a very long time to time out, with a nonexistent local URL.
  
          * kwq/KWQRenderTreeDebug.cpp:
          (externalRepresentation): Remove hack to turn off scrollbars.
  
  	- Updated many test results now that the layout tests properly do scrollbars when
  	appropriate
  	
          * layout-tests/css1/basic/comments-expected.txt:
          * layout-tests/css1/basic/containment-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_width-expected.txt:
          * layout-tests/css1/box_properties/border_left-expected.txt:
          * layout-tests/css1/box_properties/border_left_width-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_style-expected.txt:
          * layout-tests/css1/box_properties/border_top-expected.txt:
          * layout-tests/css1/box_properties/border_top_width-expected.txt:
          * layout-tests/css1/box_properties/border_width-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_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_inline-expected.txt:
          * layout-tests/css1/box_properties/margin_left-expected.txt:
          * layout-tests/css1/box_properties/margin_right-expected.txt:
          * layout-tests/css1/box_properties/margin_top-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_inline-expected.txt:
          * layout-tests/css1/box_properties/padding_left-expected.txt:
          * layout-tests/css1/box_properties/padding_right-expected.txt:
          * layout-tests/css1/box_properties/padding_top-expected.txt:
          * layout-tests/css1/box_properties/width-expected.txt:
          * layout-tests/css1/cascade/cascade_order-expected.txt:
          * layout-tests/css1/classification/display-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_position-expected.txt:
          * layout-tests/css1/color_and_background/background_repeat-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_weight-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/horizontal_formatting-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/text_properties/letter_spacing-expected.txt:
          * layout-tests/css1/text_properties/line_height-expected.txt:
          * layout-tests/css1/text_properties/text-transCapitalize-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/dom/html/level2/html/HTMLBaseElement02-expected.txt:
          * layout-tests/editing/inserting/insert-div-023-expected.txt:
          * layout-tests/editing/selection/select-all-001-expected.txt:
          * layout-tests/editing/selection/select-all-002-expected.txt:
          * layout-tests/editing/selection/select-all-003-expected.txt:
          * layout-tests/editing/selection/select-all-004-expected.txt:
          * layout-tests/editing/selection/unrendered-001-expected.txt:
          * layout-tests/editing/selection/unrendered-002-expected.txt:
          * layout-tests/editing/selection/unrendered-003-expected.txt:
          * layout-tests/editing/selection/unrendered-004-expected.txt:
          * layout-tests/editing/selection/unrendered-005-expected.txt:
          * layout-tests/fast/block/basic/013-expected.txt:
          * layout-tests/fast/block/basic/016-expected.txt:
          * layout-tests/fast/block/float/008-expected.txt:
          * layout-tests/fast/block/float/013-expected.txt:
          * layout-tests/fast/block/float/019-expected.txt:
          * layout-tests/fast/block/float/021-expected.txt:
          * layout-tests/fast/block/float/025-expected.txt:
          * layout-tests/fast/block/float/026-expected.txt:
          * layout-tests/fast/block/float/027-expected.txt:
          * layout-tests/fast/block/float/028-expected.txt:
          * layout-tests/fast/block/float/032-expected.txt:
          * layout-tests/fast/block/float/033-expected.txt:
          * layout-tests/fast/block/margin-collapse/103-expected.txt:
          * layout-tests/fast/block/positioning/047-expected.txt:
          * layout-tests/fast/block/positioning/051-expected.txt:
          * layout-tests/fast/block/positioning/055-expected.txt:
          * layout-tests/fast/block/positioning/auto/007-expected.txt:
          * layout-tests/fast/css/005-expected.txt:
          * layout-tests/fast/css/MarqueeLayoutTest-expected.txt:
          * layout-tests/fast/css/word-space-extra-expected.txt:
          * layout-tests/fast/dom/attr_dead_doc-expected.txt:
          * layout-tests/fast/dom/features-expected.txt:
          * layout-tests/fast/dynamic/008-expected.txt:
          * layout-tests/fast/dynamic/flash-replacement-test-expected.txt:
          * layout-tests/fast/encoding/utf-16-big-endian-expected.txt:
          * layout-tests/fast/encoding/utf-16-little-endian-expected.txt:
          * layout-tests/fast/flexbox/016-expected.txt:
          * layout-tests/fast/forms/form-element-geometry-expected.txt:
          * layout-tests/fast/frames/001-expected.txt:
          * layout-tests/fast/frames/002-expected.txt:
          * layout-tests/fast/frames/contentWindow_Frame-expected.txt:
          * layout-tests/fast/frames/contentWindow_iFrame-expected.txt:
          * layout-tests/fast/frames/empty-frame-src-expected.txt:
          * layout-tests/fast/frames/frameElement-frame-expected.txt:
          * layout-tests/fast/frames/frameElement-iframe-expected.txt:
          * layout-tests/fast/frames/invalid-expected.txt:
          * layout-tests/fast/frames/valid-expected.txt:
          * layout-tests/fast/inline-block/003-expected.txt:
          * layout-tests/fast/js/window-object-cross-frame-calls-expected.txt:
          * layout-tests/fast/lists/008-expected.txt:
          * layout-tests/fast/replaced/005-expected.txt:
          * layout-tests/fast/replaced/007-expected.txt:
          * layout-tests/fast/selectors/166-expected.txt:
          * layout-tests/fast/table/023-expected.txt:
          * layout-tests/fast/table/034-expected.txt:
          * layout-tests/fast/table/040-expected.txt:
          * layout-tests/fast/table/border-collapsing/004-expected.txt:
          * layout-tests/fast/table/height-percent-test-expected.txt:
          * layout-tests/fast/table/wide-colspan-expected.txt:
          * layout-tests/fast/table/wide-column-expected.txt:
          * layout-tests/fast/text/whitespace/024-expected.txt:
          * layout-tests/fast/tokenizer/004-expected.txt:
          * layout-tests/traversal/tree-walker-004-expected.txt:
  
  2005-08-17  Beth Dakin  <bdakin at apple.com>
  
          Reviewed by Maciej
  
          Test cases added: (NONE)
  	
  	This is a fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=4499
  	which describes a memory leak that happens on bugzilla after
  	searching for all open WebKit bugs.	
  
          * kwq/KWQArrayImpl.mm: 
          (KWQArrayImpl::resize): When resizing to 0, free the old data after setting it
  				to NULL.
  
  2005-08-17  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by darin, adele
          
          Fixes <rdar://problem/4219869> REGRESSION (OC): First frame never draws if it's delayed
              A recent change uncovered a bug where on early returns from KHTMLView::layout(), layoutSchedulingEnabled 
              was not reset to true, preventing later layouts from occuring. 
  
          * khtml/khtmlview.cpp:
          (KHTMLView::layout):
  
  2005-08-17  Curt Arnold  <curt.arnold at mac.com>
  
          Reviewed and landed by Darin.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4491
            DOM L2 Events tests using addEventListener broken
  
          * layout-tests/dom/html/level2/events/dispatchEvent08.js: Updated.
          * layout-tests/dom/html/level2/events/dispatchEvent09.js: Ditto.
          * layout-tests/dom/html/level2/events/dispatchEvent10.js: Ditto.
          * layout-tests/dom/html/level2/events/dispatchEvent11.js: Ditto.
          * layout-tests/dom/html/level2/events/dispatchEvent12.js: Ditto.
          * layout-tests/dom/html/level2/events/dispatchEvent13.js: Ditto.
  
          * layout-tests/dom/html/level2/events/dispatchEvent11-expected.txt: Now succeeds.
          * layout-tests/dom/html/level2/events/dispatchEvent12-expected.txt: Now fails.
          * layout-tests/dom/html/level2/events/dispatchEvent13-expected.txt: Now succeeds.
  
  2005-08-17  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by rjw
          
          Addresses <rdar://problem/4192534> new frame load delegate SPI needed for Dashboard
              Call handledOnloadEvents bridge method after load events are dispatched in a frame
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::implicitClose):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::handledOnloadEvents):
          * kwq/WebCoreBridge.h:
  
  2005-08-17  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Maciej.
   
          - fix <rdar://problem/4175734> Crash trying to retrieve data with
          XMLHttpRequest with Content-Type: empty
  
          Test cases added: 
  	* manual-tests/xmlhttprequest-contenttype-empty.html: Added.
  
  	* khtml/ecma/xmlhttprequest.cpp:
  	(KJS::XMLHttpRequest::getValueProperty): allow empty entries when splitting to
  	create the mime type string, otherwise we access a garbage pointer when stripping
  	whitespace
  
  2005-08-16  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed bug that was causing a crash when running layout tests
  
          * khtml/ecma/kjs_binding.h: Remove unused deleteDOMObject.
          * khtml/ecma/kjs_binding.cpp:
          (KJS::ScriptInterpreter::forgetDOMObject): Move code in here from forgetDOMObject.
          (KJS::ScriptInterpreter::getDOMNodeForDocument): For the null-document case, use the general
          DOM objects map rather than a per-document map.
          (KJS::ScriptInterpreter::forgetDOMNodeForDocument): Ditto.
          (KJS::ScriptInterpreter::putDOMNodeForDocument): Ditto.
          (KJS::ScriptInterpreter::forgetAllDOMNodesForDocument): Assert that document is not null.
  
  2005-08-16  Darin Adler  <darin at apple.com>
  
          Reviewed by Geoff.
  
          - changed main_thread_malloc so we don't have two conflicting versions of the same function
            This fixes a crash I was seeing running the WebKit tests.
  
          * khtml/misc/main_thread_malloc.h: Took out all the ifdefs from this header.
          * khtml/misc/main_thread_malloc.cpp: Added non-NDEBUG versions of the functions that just call
          the system malloc, and put the NDEBUG versions in an #else.
  
          * WebCore-tests.exp: Export the new stuff so the tests still work.
  
  2005-08-15  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fixed leak of HTML collection info - this can build up to
  	hundreds of leaks pretty quickly
  
  	http://bugzilla.opendarwin.org/show_bug.cgi?id=4450
  	
          * khtml/html/html_miscimpl.cpp:
          (DOM::HTMLCollectionImpl::HTMLCollectionImpl): Initialize new
  	m_ownsInfo member.
          (DOM::HTMLCollectionImpl::~HTMLCollectionImpl): Delete info if
  	owned.
          (DOM::HTMLCollectionImpl::resetCollectionInfo): When creating new
  	info, indicate that it's owned.
          * khtml/html/html_miscimpl.h: Declare new member.
  
  2005-08-16  David Harrison  <harrison at apple.com>
  
          <rdar://problem/4119646> assertion failure in DOM::Position::upstream at babelfish.com
          <rdar://problem/4125949> Assertion failure clicking outside of textarea in page containing only textarea
  
          Removed asserts that did not account for iterating from a nested node to its parent.
  
          Test cases added: n/a for assert removal
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::upstream):
          (DOM::Position::downstream):
  
  2005-08-16  Darin Adler  <darin at apple.com>
  
          Reviewed by Beth Dakin.
  
          - removed Panther-only code that was not being compiled and was
            simply "bit-rotting"
  
          * WebCorePrefix.h:
          * khtml/misc/loader.cpp:
          (CachedImage::CachedImage):
          * khtml/rendering/render_canvasimage.cpp:
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject roleDescription]):
          (-[KWQAccObject accessibilityAttributeNames]):
          (-[KWQAccObject accessibilityActionDescription:]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          (-[KWQAccObject accessibilityIsAttributeSettable:]):
          * kwq/KWQComboBox.mm:
          (QComboBox::QComboBox):
          * kwq/KWQFoundationExtras.h:
          (KWQCFAutorelease):
          * kwq/KWQPixmap.mm:
          (QPixmap::QPixmap):
          (QPixmap::receivedData):
          * kwq/KWQString.h:
          (QChar::direction):
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea tile]):
          * kwq/KWQTextEdit.mm:
          (QTextEdit::setScrollBarModes):
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldController string]):
          * kwq/KWQTextUtilities.mm:
          (currentTextBreakLocaleID):
          * kwq/WebCoreScrollView.m:
  
  2005-08-16  Darin Adler  <darin at apple.com>
  
          Reviewed by Beth Dakin.
  
          - removed some unnecessary code
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::imageFromRect): Remove code to call
          setAdditionalPatternPhase since that is no longer needed.
  
          * kwq/WebCoreGraphicsBridge.h: Remove unused setAdditionalPatternPhase,
          createRGBColorSpace, createGrayColorSpace, and createCMYKColorSpace methods.
          * kwq/WebCoreGraphicsBridge.m: Ditto.
  
  2005-08-16  Eric Seidel  <eseidel at apple.com>
          Fix by Tobias Lidskog <tobiaslidskog at mac.com>
  
          Reviewed by eseidel.
  
          * kcanvas/KCanvasItem.cpp:
          (KCanvasItem::bbox):
          (KCanvasItem::invalidate):
          Now caches both stroke and fill bboxes for better performance.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4445
  
  2005-08-16  Eric Seidel  <eseidel at apple.com>
          Fix from Tobias Lidskog <tobiaslidskog at mac.com>
  
          Reviewed by eseidel.
  
          * kcanvas/KCanvasContainer.cpp:
          (KCanvasContainer::needsTemporaryBuffer):
          * kcanvas/device/KRenderingPaintServerSolid.cpp:
          (KRenderingPaintServerSolid::opacity):
          * kcanvas/device/KRenderingPaintServerSolid.h:
          * kcanvas/device/KRenderingStyle.cpp:
          (KRenderingStyle::Private::Private):
          (KRenderingStyle::opacity):
          (KRenderingStyle::setOpacity):
          * kcanvas/device/KRenderingStyle.h:
          * kcanvas/device/quartz/KCanvasResourcesQuartz.mm:
          (KCanvasContainerQuartz::draw):
          * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
          (KRenderingPaintServerSolidQuartz::draw):
          (KRenderingPaintServerPatternQuartz::draw):
          * kcanvas/device/quartz/QuartzSupport.mm:
          (applyStyleToContext):
          * ksvg2/core/KCanvasRenderingStyle.cpp:
          (KCanvasRenderingStyle::opacity):
          (KCanvasRenderingStyle::setOpacity):
          * ksvg2/core/KCanvasRenderingStyle.h:
          Change all references to Opacity to use floats.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4431
  
  2005-08-16  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * WebCore.xcodeproj/project.pbxproj: bison cleanup.
          * kdom/ecma/DOMLookup.h: now uses throwError
          * kdom/ecma/Ecma.cpp: 
          (Ecma::~Ecma): now uses clearProperties
          * kdom/ecma/GlobalObject.cpp: now uses throwError
          (GlobalObject::clear): now uses clearProperties
          (GlobalObjectFunc::callAsFunction): now uses throwError
          Fixes necessary for WebCore+SVG after 4437.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4453
  
  2005-08-15  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Maciej.
   
  	- fixed <rdar://problem/4094363> Can't re-open a window at capripalace.com website because 
  	"close" fails on already-closed window
  
          Test cases added: 
          * manual-tests/close-on-closedWindow.html: Added.
  
          * khtml/ecma/kjs_window.cpp:
          (KJS::Window::getOwnPropertySlot): allow close calls on windows that have already been closed
  
  2005-08-15  Darin Adler  <darin at apple.com>
  
          Reviewed by Geoff.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4437
            clean up error creation with new throwError function
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::CSSStyleSelector):
          (khtml::parseUASheet):
          (khtml::CSSStyleSelector::initElementAndPseudoState):
          (khtml::checkPseudoState):
          (khtml::CSSStyleSelector::locateCousinList):
          (khtml::CSSStyleSelector::locateSharedStyle):
          (khtml::CSSStyleSelector::adjustRenderStyle):
          (khtml::CSSStyleSelector::checkOneSelector):
          (khtml::CSSRuleSet::addToRuleSet):
          (khtml::colorForCSSValue):
          (khtml::CSSStyleSelector::applyProperty):
          (khtml::CSSStyleSelector::mapBackgroundAttachment):
          (khtml::CSSStyleSelector::mapBackgroundImage):
          (khtml::CSSStyleSelector::mapBackgroundRepeat):
          (khtml::CSSStyleSelector::mapBackgroundXPosition):
          (khtml::CSSStyleSelector::mapBackgroundYPosition):
          (khtml::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
          * khtml/ecma/domparser.cpp:
          (KJS::DOMParserProtoFunc::callAsFunction):
          * khtml/ecma/kjs_binding.cpp:
          (KJS::ScriptInterpreter::putDOMObject):
          (KJS::ScriptInterpreter::putDOMNodeForDocument):
          (KJS::setDOMException):
          * khtml/ecma/kjs_css.cpp:
          (KJS::DOMCSSStyleDeclarationProtoFunc::callAsFunction):
          (KJS::DOMStyleSheetListFunc::callAsFunction):
          (KJS::KJS::DOMMediaListProtoFunc::callAsFunction):
          (KJS::DOMCSSStyleSheetProtoFunc::callAsFunction):
          (KJS::DOMCSSRuleListFunc::callAsFunction):
          (KJS::DOMCSSRuleFunc::callAsFunction):
          (KJS::DOMCSSPrimitiveValueProtoFunc::callAsFunction):
          (KJS::DOMCSSValueListFunc::callAsFunction):
          * khtml/ecma/kjs_dom.cpp:
          (KJS::DOMNodeProtoFunc::callAsFunction):
          (KJS::DOMNodeListFunc::callAsFunction):
          (KJS::DOMDocumentProtoFunc::callAsFunction):
          (KJS::DOMElementProtoFunc::callAsFunction):
          (KJS::DOMDOMImplementationProtoFunc::callAsFunction):
          (KJS::DOMNamedNodeMapProtoFunc::callAsFunction):
          (KJS::DOMCharacterDataProtoFunc::callAsFunction):
          (KJS::DOMTextProtoFunc::callAsFunction):
          * khtml/ecma/kjs_events.cpp:
          (KJS::DOMEventProtoFunc::callAsFunction):
          (KJS::DOMUIEventProtoFunc::callAsFunction):
          (KJS::DOMMouseEventProtoFunc::callAsFunction):
          (KJS::DOMKeyboardEventProtoFunc::callAsFunction):
          (KJS::DOMMutationEventProtoFunc::callAsFunction):
          (KJS::DOMWheelEventProtoFunc::callAsFunction):
          (KJS::ClipboardProtoFunc::callAsFunction):
          * khtml/ecma/kjs_html.cpp:
          (KJS::KJS::HTMLDocFunction::callAsFunction):
          (KJS::KJS::HTMLElementFunction::callAsFunction):
          (KJS::KJS::HTMLCollectionProtoFunc::callAsFunction):
          (KJS::KJS::Context2DFunction::callAsFunction):
          (KJS::Context2D::putValueProperty):
          (KJS::GradientFunction::callAsFunction):
          * khtml/ecma/kjs_navigator.cpp:
          (KJS::NavigatorFunc::callAsFunction):
          * khtml/ecma/kjs_range.cpp:
          (KJS::DOMRangeProtoFunc::callAsFunction):
          * khtml/ecma/kjs_traversal.cpp:
          (KJS::DOMNodeIteratorProtoFunc::callAsFunction):
          (KJS::DOMNodeFilterProtoFunc::callAsFunction):
          (KJS::DOMTreeWalkerProtoFunc::callAsFunction):
          * khtml/ecma/kjs_views.cpp:
          (KJS::DOMAbstractViewFunc::callAsFunction):
          * khtml/ecma/kjs_window.cpp:
          (KJS::Window::interpreter):
          (KJS::Window::retrieveWindow):
          (KJS::Window::retrieveActive):
          (KJS::Window::isSafeScript):
          (KJS::Window::clear):
          (KJS::WindowFunc::callAsFunction):
          (KJS::ScheduledAction::execute):
          (KJS::WindowQObject::pauseTimeouts):
          (KJS::LocationFunc::callAsFunction):
          (KJS::Selection::toString):
          (KJS::SelectionFunc::callAsFunction):
          (KJS::HistoryFunc::callAsFunction):
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequestProtoFunc::callAsFunction):
          * khtml/ecma/xmlserializer.cpp:
          (KJS::XMLSerializerProtoFunc::callAsFunction):
  
  2005-08-15  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/4202641> Line breaks do not happen inside whitespace:pre; word-wrap: break-word
          
          Test cases added: fast/text/whitespace/tab-character-basics.html
  
          Refined Dave's earlier patch for this bug to handle whitespace:pre that is not at the beginning of a line.
          
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::findNextLineBreak):
          * layout-tests/fast/text/whitespace/tab-character-basics-expected.txt: Added.
          * layout-tests/fast/text/whitespace/tab-character-basics.html: Added.
  
  2005-08-15  Darin Adler  <darin at apple.com>
  
          Reviewed by Justin.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4324
            WebCore build does a slow "nmedit -s" step that's unnecessary
  
          * WebCore.xcodeproj/project.pbxproj: Stop using EXPORTED_SYMBOLS_FILE, since it does an
          unneccessary nmedit step that is particularly slow for WebCore. Instead, define
          WEBCORE_EXPORTED_SYMBOLS_FILE and put a flag into OTHER_LDFLAGS.
  
  2005-08-14  Andrew Wellington  <proton at wiretapped.net>
  
          Reviewed and landed by Darin.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3429
            Text transformed with text-transform does not copy with transform applied
  
          Test cases added:
          * layout-tests/editing/pasteboard/paste-text-019-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-019.html: Added.
  
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::handleTextNode): Use the DOMString from the RenderText, not the DOM text node.
          (khtml::TextIterator::handleTextBox): Ditto.
  
  2005-08-14  Darin Adler  <darin at apple.com>
  
          - fixed build of some unit tests
  
          * khtml/misc/main_thread_malloc.h: We use functions from <stdlib.h> here in
          debug mode, so #include <stdlib.h>.
  
  2005-08-14  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4422
            QFont has mistake where it caches computed pitch value incorrectly
  
          * kwq/KWQFont.mm:
          (QFont::setFamily): Set _pitch to Unknown when setting _NSFont to nil.
          (QFont::setFirstFamily): Ditto.
          (QFont::setPixelSize): Ditto. Might be unneeded; it would be bad to have the same font
          with different pitch settings at different sizes. But better to be safe.
          (QFont::setWeight): Ditto. Same caveat.
          (QFont::setItalic): Ditto. Ditto.
  
  2005-08-14  Oliver Hunt  <ojh16 at student.canterbury.ac.nz>
  
          Reviewed and landed by Darin.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3692
            Word-spacing doesn't work as expected
  
          Test cases added:
          * layout-tests/fast/css/word-space-extra-expected.txt: Added.
          * layout-tests/fast/css/word-space-extra.html: Added.
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::constructLine):
          (khtml::RenderBlock::computeHorizontalPositionsForLine):
          (khtml::RenderBlock::findNextLineBreak):
          * khtml/rendering/font.cpp:
          (Font::drawText):
          * khtml/rendering/font.h:
          (khtml::Font::getWordSpacing):
          * khtml/rendering/render_line.cpp:
          (khtml::InlineFlowBox::placeBoxesHorizontally):
          * khtml/rendering/render_line.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::widthFromCache):
          (RenderText::trimmedMinMaxWidth):
          (RenderText::calcMinMaxWidth):
          * khtml/rendering/render_text.h:
          (khtml::InlineTextBox::setStart):
          (khtml::InlineTextBox::setLen):
  
  2005-08-14  Maciej Stachowiak  <mjs at apple.com>
  
          - updated test cases for new editing delegate output
  
          * layout-tests/editing/deleting/collapse-whitespace-3587601-fix-expected.txt:
          * layout-tests/editing/deleting/delete-3608430-fix-expected.txt:
          * layout-tests/editing/deleting/delete-3608445-fix-expected.txt:
          * layout-tests/editing/deleting/delete-3608462-fix-expected.txt:
          * layout-tests/editing/deleting/delete-3775172-fix-expected.txt:
          * layout-tests/editing/deleting/delete-3800834-fix-expected.txt:
          * layout-tests/editing/deleting/delete-3857753-fix-expected.txt:
          * layout-tests/editing/deleting/delete-3865854-fix-expected.txt:
          * layout-tests/editing/deleting/delete-3928305-fix-expected.txt:
          * layout-tests/editing/deleting/delete-3959464-fix-expected.txt:
          * layout-tests/editing/deleting/delete-4038408-fix-expected.txt:
          * layout-tests/editing/deleting/delete-4083333-fix-expected.txt:
          * layout-tests/editing/deleting/delete-after-span-ws-001-expected.txt:
          * layout-tests/editing/deleting/delete-after-span-ws-002-expected.txt:
          * layout-tests/editing/deleting/delete-after-span-ws-003-expected.txt:
          * layout-tests/editing/deleting/delete-and-undo-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-001-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-005-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-006-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-007-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-008-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-009-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
          * layout-tests/editing/deleting/delete-block-contents-001-expected.txt:
          * layout-tests/editing/deleting/delete-block-contents-002-expected.txt:
          * layout-tests/editing/deleting/delete-block-contents-003-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-001-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-002-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-003-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-004-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-005-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-006-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-007-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-008-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-009-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-010-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-012-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-013-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-014-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-015-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-016-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-017-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-018-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-019-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-020-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-021-expected.txt:
          * layout-tests/editing/deleting/delete-br-001-expected.txt:
          * layout-tests/editing/deleting/delete-br-002-expected.txt:
          * layout-tests/editing/deleting/delete-br-003-expected.txt:
          * layout-tests/editing/deleting/delete-br-004-expected.txt:
          * layout-tests/editing/deleting/delete-br-005-expected.txt:
          * layout-tests/editing/deleting/delete-br-006-expected.txt:
          * layout-tests/editing/deleting/delete-br-007-expected.txt:
          * layout-tests/editing/deleting/delete-br-008-expected.txt:
          * layout-tests/editing/deleting/delete-br-009-expected.txt:
          * layout-tests/editing/deleting/delete-br-010-expected.txt:
          * layout-tests/editing/deleting/delete-br-011-expected.txt:
          * layout-tests/editing/deleting/delete-character-001-expected.txt:
          * layout-tests/editing/deleting/delete-contiguous-ws-001-expected.txt:
          * layout-tests/editing/deleting/delete-image-001-expected.txt:
          * layout-tests/editing/deleting/delete-image-002-expected.txt:
          * layout-tests/editing/deleting/delete-image-003-expected.txt:
          * layout-tests/editing/deleting/delete-image-004-expected.txt:
          * layout-tests/editing/deleting/delete-leading-ws-001-expected.txt:
          * layout-tests/editing/deleting/delete-line-001-expected.txt:
          * layout-tests/editing/deleting/delete-line-002-expected.txt:
          * layout-tests/editing/deleting/delete-line-003-expected.txt:
          * layout-tests/editing/deleting/delete-line-004-expected.txt:
          * layout-tests/editing/deleting/delete-line-005-expected.txt:
          * layout-tests/editing/deleting/delete-line-006-expected.txt:
          * layout-tests/editing/deleting/delete-line-007-expected.txt:
          * layout-tests/editing/deleting/delete-line-008-expected.txt:
          * layout-tests/editing/deleting/delete-line-009-expected.txt:
          * layout-tests/editing/deleting/delete-line-010-expected.txt:
          * layout-tests/editing/deleting/delete-line-011-expected.txt:
          * layout-tests/editing/deleting/delete-line-012-expected.txt:
          * layout-tests/editing/deleting/delete-line-013-expected.txt:
          * layout-tests/editing/deleting/delete-line-014-expected.txt:
          * layout-tests/editing/deleting/delete-line-015-expected.txt:
          * layout-tests/editing/deleting/delete-line-016-expected.txt:
          * layout-tests/editing/deleting/delete-line-017-expected.txt:
          * layout-tests/editing/deleting/delete-line-end-ws-001-expected.txt:
          * layout-tests/editing/deleting/delete-line-end-ws-002-expected.txt:
          * layout-tests/editing/deleting/delete-select-all-001-expected.txt:
          * layout-tests/editing/deleting/delete-select-all-002-expected.txt:
          * layout-tests/editing/deleting/delete-select-all-003-expected.txt:
          * layout-tests/editing/deleting/delete-selection-001-expected.txt:
          * layout-tests/editing/deleting/delete-tab-001-expected.txt:
          * layout-tests/editing/deleting/delete-tab-002-expected.txt:
          * layout-tests/editing/deleting/delete-tab-003-expected.txt:
          * layout-tests/editing/deleting/delete-tab-004-expected.txt:
          * layout-tests/editing/deleting/delete-trailing-ws-001-expected.txt:
          * layout-tests/editing/deleting/delete-trailing-ws-002-expected.txt:
          * layout-tests/editing/deleting/delete-ws-fixup-001-expected.txt:
          * layout-tests/editing/deleting/delete-ws-fixup-002-expected.txt:
          * layout-tests/editing/deleting/delete-ws-fixup-003-expected.txt:
          * layout-tests/editing/deleting/delete-ws-fixup-004-expected.txt:
          * layout-tests/editing/deleting/forward-delete-expected.txt:
          * layout-tests/editing/deleting/smart-delete-001-expected.txt:
          * layout-tests/editing/deleting/smart-delete-002-expected.txt:
          * layout-tests/editing/execCommand/boldSelection-expected.txt:
          * layout-tests/editing/execCommand/italicizeByCharacter-expected.txt:
          * layout-tests/editing/execCommand/modifyForeColorByCharacter-expected.txt:
          * layout-tests/editing/execCommand/selectAll-expected.txt:
          * layout-tests/editing/inserting/insert-3654864-fix-expected.txt:
          * layout-tests/editing/inserting/insert-3659587-fix-expected.txt:
          * layout-tests/editing/inserting/insert-3775316-fix-expected.txt:
          * layout-tests/editing/inserting/insert-3778059-fix-expected.txt:
          * layout-tests/editing/inserting/insert-3786362-fix-expected.txt:
          * layout-tests/editing/inserting/insert-3800346-fix-expected.txt:
          * layout-tests/editing/inserting/insert-3851164-fix-expected.txt:
          * layout-tests/editing/inserting/insert-3907422-fix-expected.txt:
          * layout-tests/editing/inserting/insert-after-delete-001-expected.txt:
          * layout-tests/editing/inserting/insert-br-001-expected.txt:
          * layout-tests/editing/inserting/insert-br-002-expected.txt:
          * layout-tests/editing/inserting/insert-br-003-expected.txt:
          * layout-tests/editing/inserting/insert-br-004-expected.txt:
          * layout-tests/editing/inserting/insert-br-005-expected.txt:
          * layout-tests/editing/inserting/insert-br-006-expected.txt:
          * layout-tests/editing/inserting/insert-br-007-expected.txt:
          * layout-tests/editing/inserting/insert-br-008-expected.txt:
          * layout-tests/editing/inserting/insert-div-001-expected.txt:
          * layout-tests/editing/inserting/insert-div-002-expected.txt:
          * layout-tests/editing/inserting/insert-div-003-expected.txt:
          * layout-tests/editing/inserting/insert-div-004-expected.txt:
          * layout-tests/editing/inserting/insert-div-005-expected.txt:
          * layout-tests/editing/inserting/insert-div-006-expected.txt:
          * layout-tests/editing/inserting/insert-div-007-expected.txt:
          * layout-tests/editing/inserting/insert-div-008-expected.txt:
          * layout-tests/editing/inserting/insert-div-009-expected.txt:
          * layout-tests/editing/inserting/insert-div-010-expected.txt:
          * layout-tests/editing/inserting/insert-div-011-expected.txt:
          * layout-tests/editing/inserting/insert-div-012-expected.txt:
          * layout-tests/editing/inserting/insert-div-013-expected.txt:
          * layout-tests/editing/inserting/insert-div-014-expected.txt:
          * layout-tests/editing/inserting/insert-div-015-expected.txt:
          * layout-tests/editing/inserting/insert-div-016-expected.txt:
          * layout-tests/editing/inserting/insert-div-017-expected.txt:
          * layout-tests/editing/inserting/insert-div-018-expected.txt:
          * layout-tests/editing/inserting/insert-div-019-expected.txt:
          * layout-tests/editing/inserting/insert-div-020-expected.txt:
          * layout-tests/editing/inserting/insert-div-021-expected.txt:
          * layout-tests/editing/inserting/insert-div-022-expected.txt:
          * layout-tests/editing/inserting/insert-div-023-expected.txt:
          * layout-tests/editing/inserting/insert-div-024-expected.txt:
          * layout-tests/editing/inserting/insert-div-025-expected.txt:
          * layout-tests/editing/inserting/insert-div-026-expected.txt:
          * layout-tests/editing/inserting/insert-div-027-expected.txt:
          * layout-tests/editing/inserting/insert-space-in-empty-doc-expected.txt:
          * layout-tests/editing/inserting/insert-tab-001-expected.txt:
          * layout-tests/editing/inserting/insert-tab-002-expected.txt:
          * layout-tests/editing/inserting/insert-tab-003-expected.txt:
          * layout-tests/editing/inserting/insert-tab-004-expected.txt:
          * layout-tests/editing/inserting/insert-text-with-newlines-expected.txt:
          * layout-tests/editing/inserting/return-key-with-selection-001-expected.txt:
          * layout-tests/editing/inserting/return-key-with-selection-002-expected.txt:
          * layout-tests/editing/inserting/return-key-with-selection-003-expected.txt:
          * layout-tests/editing/inserting/typing-001-expected.txt:
          * layout-tests/editing/inserting/typing-002-expected.txt:
          * layout-tests/editing/inserting/typing-003-expected.txt:
          * layout-tests/editing/inserting/typing-around-br-001-expected.txt:
          * layout-tests/editing/inserting/typing-around-image-001-expected.txt:
          * layout-tests/editing/pasteboard/cut-text-001-expected.txt:
          * layout-tests/editing/pasteboard/paste-4035648-fix-expected.txt:
          * layout-tests/editing/pasteboard/paste-4038267-fix-expected.txt:
          * layout-tests/editing/pasteboard/paste-line-endings-001-expected.txt:
          * layout-tests/editing/pasteboard/paste-line-endings-002-expected.txt:
          * layout-tests/editing/pasteboard/paste-line-endings-003-expected.txt:
          * layout-tests/editing/pasteboard/paste-line-endings-004-expected.txt:
          * layout-tests/editing/pasteboard/paste-line-endings-005-expected.txt:
          * layout-tests/editing/pasteboard/paste-line-endings-006-expected.txt:
          * layout-tests/editing/pasteboard/paste-line-endings-007-expected.txt:
          * layout-tests/editing/pasteboard/paste-line-endings-008-expected.txt:
          * layout-tests/editing/pasteboard/paste-line-endings-009-expected.txt:
          * layout-tests/editing/pasteboard/paste-line-endings-010-expected.txt:
          * layout-tests/editing/pasteboard/paste-match-style-001-expected.txt:
          * layout-tests/editing/pasteboard/paste-match-style-002-expected.txt:
          * layout-tests/editing/pasteboard/paste-pre-001-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-001-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-002-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-003-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-004-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-005-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-006-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-007-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-008-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-009-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-010-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-011-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-012-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-013-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-014-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-015-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-016-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-017-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-018-expected.txt:
          * layout-tests/editing/pasteboard/smart-paste-001-expected.txt:
          * layout-tests/editing/pasteboard/smart-paste-002-expected.txt:
          * layout-tests/editing/pasteboard/smart-paste-003-expected.txt:
          * layout-tests/editing/pasteboard/smart-paste-004-expected.txt:
          * layout-tests/editing/pasteboard/smart-paste-005-expected.txt:
          * layout-tests/editing/pasteboard/smart-paste-006-expected.txt:
          * layout-tests/editing/pasteboard/smart-paste-007-expected.txt:
          * layout-tests/editing/selection/move-between-blocks-no-001-expected.txt:
          * layout-tests/editing/selection/select-all-001-expected.txt:
          * layout-tests/editing/selection/select-all-002-expected.txt:
          * layout-tests/editing/selection/select-all-003-expected.txt:
          * layout-tests/editing/selection/select-all-004-expected.txt:
          * layout-tests/editing/style/block-style-001-expected.txt:
          * layout-tests/editing/style/block-style-002-expected.txt:
          * layout-tests/editing/style/block-style-003-expected.txt:
          * layout-tests/editing/style/block-style-004-expected.txt:
          * layout-tests/editing/style/block-style-005-expected.txt:
          * layout-tests/editing/style/block-style-006-expected.txt:
          * layout-tests/editing/style/block-styles-007-expected.txt:
          * layout-tests/editing/style/create-block-for-style-001-expected.txt:
          * layout-tests/editing/style/create-block-for-style-002-expected.txt:
          * layout-tests/editing/style/create-block-for-style-003-expected.txt:
          * layout-tests/editing/style/create-block-for-style-004-expected.txt:
          * layout-tests/editing/style/create-block-for-style-005-expected.txt:
          * layout-tests/editing/style/create-block-for-style-006-expected.txt:
          * layout-tests/editing/style/create-block-for-style-007-expected.txt:
          * layout-tests/editing/style/create-block-for-style-008-expected.txt:
          * layout-tests/editing/style/create-block-for-style-009-expected.txt:
          * layout-tests/editing/style/create-block-for-style-010-expected.txt:
          * layout-tests/editing/style/create-block-for-style-011-expected.txt:
          * layout-tests/editing/style/create-block-for-style-012-expected.txt:
          * layout-tests/editing/style/create-block-for-style-013-expected.txt:
          * layout-tests/editing/style/relative-font-size-change-001-expected.txt:
          * layout-tests/editing/style/relative-font-size-change-002-expected.txt:
          * layout-tests/editing/style/relative-font-size-change-003-expected.txt:
          * layout-tests/editing/style/relative-font-size-change-004-expected.txt:
          * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt:
          * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt:
          * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt:
          * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt:
          * layout-tests/editing/style/remove-underline-expected.txt:
          * layout-tests/editing/style/remove-underline-from-stylesheet-expected.txt:
          * layout-tests/editing/style/remove-underline-in-bold-expected.txt:
          * layout-tests/editing/style/smoosh-styles-001-expected.txt:
          * layout-tests/editing/style/smoosh-styles-002-expected.txt:
          * layout-tests/editing/style/smoosh-styles-003-expected.txt:
          * layout-tests/editing/style/style-3681552-fix-001-expected.txt:
          * layout-tests/editing/style/style-3681552-fix-002-expected.txt:
          * layout-tests/editing/style/style-3690704-fix-expected.txt:
          * layout-tests/editing/style/style-3998892-fix-expected.txt:
          * layout-tests/editing/style/style-boundary-001-expected.txt:
          * layout-tests/editing/style/style-boundary-002-expected.txt:
          * layout-tests/editing/style/style-boundary-003-expected.txt:
          * layout-tests/editing/style/style-boundary-004-expected.txt:
          * layout-tests/editing/style/typing-style-001-expected.txt:
          * layout-tests/editing/style/typing-style-002-expected.txt:
          * layout-tests/editing/style/typing-style-003-expected.txt:
          * layout-tests/editing/style/unbold-in-bold-expected.txt:
          * layout-tests/editing/style/underline-expected.txt:
          * layout-tests/editing/undo/redo-typing-001-expected.txt:
          * layout-tests/editing/undo/undo-typing-001-expected.txt:
          * layout-tests/editing/unsupported-content/list-delete-001-expected.txt:
          * layout-tests/editing/unsupported-content/list-delete-002-expected.txt:
          * layout-tests/editing/unsupported-content/list-delete-003-expected.txt:
          * layout-tests/editing/unsupported-content/list-type-after-expected.txt:
          * layout-tests/editing/unsupported-content/list-type-before-expected.txt:
          * layout-tests/editing/unsupported-content/table-delete-001-expected.txt:
          * layout-tests/editing/unsupported-content/table-delete-002-expected.txt:
          * layout-tests/editing/unsupported-content/table-delete-003-expected.txt:
          * layout-tests/editing/unsupported-content/table-type-after-expected.txt:
          * layout-tests/editing/unsupported-content/table-type-before-expected.txt:
          * layout-tests/fast/selectors/159-expected.txt:
          * layout-tests/fast/selectors/177a-expected.txt:
  
  2005-08-14  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4420
            make border drawing faster by removing code to alloc/dealloc NSBezierPath
  
          * kwq/KWQPainter.h: Remove unused drawLineSegments, drawPolyline, and drawPolygon.
          * kwq/KWQPainter.mm:
          (QPainter::drawConvexPolygon): Move the body of _drawPoints into here, and remove the
          various unused code paths. Use CoreGraphics calls instead of NSBezierPath.
  
  2005-08-14  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
          - apply a tasty candy shell of inlining and main_thread_malloc for a 1% speedup on HTML iBench
  	http://bugzilla.opendarwin.org/show_bug.cgi?id=4425
  	
          * kwq/KWQArrayImpl.h:
          (KWQArrayImpl::size):
          * kwq/KWQArrayImpl.mm:
          * kwq/KWQMapImpl.h:
          * kwq/KWQMapImpl.mm:
          * kwq/KWQRefPtr.h:
          (::KWQRefPtr):
          (::operator):
          (::ref):
          (::unref):
          * kwq/KWQValueListImpl.h:
          (KWQValueListIteratorImpl::KWQValueListIteratorImpl):
          (KWQValueListIteratorImpl::operator==):
          (KWQValueListIteratorImpl::operator!=):
          (KWQValueListIteratorImpl::node):
          (KWQValueListIteratorImpl::operator++):
          (KWQValueListIteratorImpl::operator--):
          (KWQValueListNodeImpl::KWQValueListNodeImpl):
          * kwq/KWQValueListImpl.mm:
          (KWQValueListImpl::KWQValueListPrivate::KWQValueListPrivate):
          (KWQValueListImpl::KWQValueListPrivate::~KWQValueListPrivate):
  
  2005-08-14  Duncan Wilcox  <duncan at mclink.it>
  
          Reviewed and landed by Darin.
  
          WebCore part of fix for <http://bugzilla.opendarwin.org/show_bug.cgi?id=4011>:
          "Editing delegate selection methods not called when using mouse"
  
          Clicking on editable content would move the cursor or alter the selection without
          calling the appropriate editing delegate method
          (webView:shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:). The
          core of the patch is in the KHTMLPart::hadnleMousePressEvent* methods, the rest
          is glue needed to drill through all the layers.
  
          * khtml/khtml_part.cpp:
          * khtml/khtml_part.cpp:
          (KHTMLPart::shouldChangeSelection): Glue to call editing delegate.
          (KHTMLPart::findTextNext): Call editing delegate before changing selection.
          (KHTMLPart::selectClosestWordFromMouseEvent): Ditto.
          (KHTMLPart::handleMousePressEventTripleClick): Ditto.
          (KHTMLPart::handleMousePressEventSingleClick): Ditto.
          (KHTMLPart::handleMouseMoveEventSelection): Ditto.
          (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
          (KHTMLPart::selectAll): Ditto.
          (KHTMLPart::appliedEditing): Ditto.
          (KHTMLPart::unappliedEditing): Ditto.
          (KHTMLPart::reappliedEditing): Ditto.
          (KHTMLPart::selectFrameElementInParentIfFullySelected): Ditto.
  
          * khtml/khtml_part.h: Added shouldChangeSelection glue method.
          * kwq/KWQKHTMLPart.h: Ditto.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::shouldChangeSelection): Glue to call editing delegate.
  
          * kwq/WebCoreBridge.h: Added shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting: glue method.
  
  2005-08-14  Darin Adler  <darin at apple.com>
  
          Fixed by Alexey Proskuryakov <ap at nypop.com>.
          Reviewed and landed by Darin.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3590
            should allow <meta> tags for encoding even after </head>
  
          Test cases added:
          * layout-tests/fast/encoding/mispositioned-meta-expected.txt: Added.
          * layout-tests/fast/encoding/mispositioned-meta.html: Added.
  
          * khtml/misc/decoder.cpp: (Decoder::decode): Don't stop scanning when seeing </head>.
  
  2005-08-14  Anders Carlsson  <andersca at mac.com>
  
          Reviewed and landed by Darin.
  
          Test cases added: 	
          * layout-tests/dom/html/level2/events/dispatchEvent08-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent10-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent12-expected.txt:
  	These pass now.
  	
          * layout-tests/dom/html/level2/events/dispatchEvent11-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent13-expected.txt:
  	These fail someplace else now.
  	
          * khtml/ecma/kjs_events.cpp:
          (KJS::JSAbstractEventListener::handleEvent):
  	Check if the listener has a "handleEvent" function property and
  	call that.
  	
          * khtml/xml/dom_nodeimpl.cpp:
          (DOM::NodeImpl::dispatchGenericEvent):
  	A capturing event listener should not be triggered if an event is
  	dispatched directly to the node to which the listener has been added.
  
  2005-08-14  Anders Carlsson  <andersca at mac.com>
  
          Reviewed and landed by Darin.
  
          Test cases added: 
          * layout-tests/dom/html/level2/core/hc_nodedocumentfragmentnormalize2-expected.txt:
  	This passes now.
  	
          * khtml/xml/dom_nodeimpl.cpp:
          (DOM::NodeImpl::normalize):
  	If there's a single empty text child, remove it.
  	
  2005-08-14  Anders Carlsson  <andersca at mac.com>
  
          Reviewed and landed by Darin.
  
          Test cases added:
          * layout-tests/dom/html/level2/html/HTMLSelectElement20-expected.txt:
  	This passes now.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::KJS::HTMLElementFunction::callAsFunction):
          (KJS::KJS::HTMLSelectCollection::put):
  	Handle exceptions.
  
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLSelectElementImpl::add):
          * khtml/html/html_formimpl.h:
  	Make ::add raise an exception if before isn't a descendant
  	of the select element.
  
          * kwq/DOMHTML.mm:
          (-[DOMHTMLSelectElement add::]):
  	Handle the exception.
  
  2005-08-12  Geoffrey Garen  <ggaren at apple.com>
  
          Reviewed by adele.
  
          * manual-tests/liveconnect-security-exception.html:
              - fixed wrong codebase path
              - added instruction to disable popup blocking
  
  2005-08-11  Adele Peterson  <adele at apple.com>
  
          Reviewed by Darin.
  
          Test cases added: (NONE)
  
          -fixed <rdar://problem/4166839> CSS font-family and font-size ignored on <select> element with size > 1
  
          Changed KWQListBox to get the font from the widget.
  
          * kwq/KWQListBox.h: added setFont method
          * kwq/KWQListBox.mm:
          (QListBox::setFont): Added.
          (QListBox::sizeForNumberOfLines): if the new font is the same as the system font, use the old system for cacheing the text renderer.
          Otherwise, create a text renderer based on the new font, and a bold version of the new font.
          (-[KWQTableView drawRow:clipRect:]): ditto.
          (-[KWQTableView initWithListBox:]): moved setRowHeight call to fontChanged, so the height will reflect the new font.
          (-[KWQTableView fontChanged]): Added.
  
  2005-08-11  David Hyatt  <hyatt at apple.com>
  
  	Refine the baseline alignment rule for inline blocks to cover for a hole in the spec.  The spec doesnt say what to do
  	for overflow cases, e.g., when the last line is clipped, when the overflow box is scrolled, or even when overflow is
  	visible but the last line is outside your content box.  We just revert to the old behavior in those cases.  Hopefully
  	the spec will be clarified to explain what the right behavior is.
  	
          Reviewed by beth
  
          Test cases added: fast/inline-block/tricky-baseline.html
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::baselinePosition):
  
  2005-08-11  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by darin.
  
          * WebCore+SVG/DrawView.mm:
          (-[DrawViewPrivate drawRect:]): added additional NULL check.
          * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
          (KCanvasFilterQuartz::applyFilter): removed NSLog.
          * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
          (KRenderingPaintServerPatternQuartz::draw): removed NSLog.
          Removed debugging logs, and fixed crasher for empty SVGs.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4384
  
  2005-08-11  Geoffrey Garen  <ggaren at apple.com>
  
          * layout-tests/fast/js/date-big-setdate.html: fixed title
  
  2005-08-11  Eric Seidel  <eseidel at apple.com>
  
          No review needed, copyright update in comments.
          All kdom, ksvg2, and kcanvas files affected.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4382
  
  2005-08-10  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Geoff.
  
          Test cases added:
  
          * layout-tests/fast/js/assign.html: Added. Test case for assignment to make sure
  	I didn't break anything.
          * layout-tests/fast/js/code-serialize-paren.html: Added, test case for a minor bug
  	I fixed where parens were not getting serialized at all when turning a function
  	into a string.
  
  2005-08-11  Maciej Stachowiak  <mjs at apple.com>
  
          At Least Rougly Glanced At by Anders.
  
  	- fix change with totally breaks the layout tests.
  
  	Changed all the tests below to avoid dumping more than once -
  	since this now prints more than one separator, it totally throws
  	off the layout test driver so it needs to be avoided.
  	
          * layout-tests/dom/html/level2/html/HTMLFormElement10-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLFormElement10.html:
          * layout-tests/dom/html/level2/html/HTMLFormElement10.js:
          * layout-tests/fast/events/onunload-expected.txt:
          * layout-tests/fast/events/onunload.html:
          * layout-tests/fast/js/location-assign-expected.txt:
          * layout-tests/fast/js/location-assign.html:
  
  2005-08-10  Geoffrey Garen  <ggaren at apple.com>
  
          -added layout test for fix to <rdar://problem/4151132> REGRESSION: Some applet 
          liveconnect calls throws privilege exception.
          
          (See JavaScriptCore Changelog for fix details.)
  
          * manual-tests/liveconnect-security-exception.html: Added.
          * manual-tests/resources/TestApplet.class: Added.
          * manual-tests/resources/TestApplet.java: Added.
          (TestApplet):
          (TestApplet.init):
          (TestApplet.method):
          * manual-tests/resources/liveconnect-security-exception-popup.html: Added.
  
  2005-08-10  Vicki Murley  <vicki at apple.com>
  
  	Changes from Curt Arnold, reviewed by Vicki.
  
  	Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=4174 (DOM layout tests involving two 
  	documents fail due to test framework problem), and update expected results for tests
  	affected by this change.
  	
          * layout-tests/dom/html/level1/core/hc_attrappendchild5-expected.txt:
          * layout-tests/dom/html/level1/core/hc_attrinsertbefore6-expected.txt:
          * layout-tests/dom/html/level1/core/hc_elementwrongdocumenterr-expected.txt:
          * layout-tests/dom/html/level1/core/hc_namednodemapwrongdocumenterr-expected.txt:
          * layout-tests/dom/html/level1/core/hc_nodeappendchildnewchilddiffdocument-expected.txt:
          * layout-tests/dom/html/level1/core/hc_nodeinsertbeforenewchilddiffdocument-expected.txt:
          * layout-tests/dom/html/level1/core/hc_nodereplacechildnewchilddiffdocument-expected.txt:
          * layout-tests/dom/html/level1/core/selfhtml.js:
          * layout-tests/dom/html/level2/core/selfhtml.js:
          * layout-tests/dom/html/level2/events/selfhtml.js:
          * layout-tests/dom/html/level2/html/selfhtml.js:
  
  2005-08-10  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by darin.
  
          Test cases:
          * svg-tests/W3C-SVG-1.1/script-handle-03-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-03-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-03-b.svg-disabled: Removed.
          * svg-tests/W3C-SVG-1.1/script-handle-04-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-04-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-04-b.svg-disabled: Removed.
          * svg-tests/W3C-SVG-1.1/struct-dom-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-01-b.svg-disabled: Removed.
          * svg-tests/W3C-SVG-1.1/struct-dom-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-02-b.svg-disabled: Removed.
          * svg-tests/W3C-SVG-1.1/struct-dom-03-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-03-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-03-b.svg-disabled: Removed.
          * svg-tests/W3C-SVG-1.1/struct-dom-04-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-04-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-04-b.svg-disabled: Removed.
          * svg-tests/W3C-SVG-1.1/struct-dom-05-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-05-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-05-b.svg-disabled: Removed.
          * svg-tests/W3C-SVG-1.1/struct-dom-06-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-06-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-06-b.svg-disabled: Removed.
          Re-enabled previously crashing SVG test cases:
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4338
  
  2005-08-10  Vicki Murley  <vicki at apple.com>
  
          Reviewed by John.
   
  	- attempted fix for <rdar://problem/4070895> 8A428: Unrepro Safari crash on 
  	friendster.com (XMLHttpRequest::changeState) 
  
          Test cases added: None - there are no known reproducible cases of this crash
  
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::changeState): add checks for NULL document
  
  2005-08-10  Adele Peterson  <adele at apple.com>
  
          Bumping version to 420+
  
          * Info.plist:
  
  2005-08-09  David Harrison  <harrison at apple.com>
  
          Reviewed by Dave Hyatt.
  
          <rdar://problem/4210906> Word selection wrong with tabs
  
          Test cases added: selection/extend-by-word-001-html
  
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::handleTextNode):
          * layout-tests/editing/selection/extend-by-word-001-html: Added.
          * layout-tests/editing/selection/extend-by-word-001-expected.txt: Added.
  
  2005-08-09  Justin Garcia  <justin.garcia at apple.com>
  
          Patch by Anders Carlsson  <andersca at mac.com>
  
          Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3837>
              Page nearly loads but then returned to default page by javascript issue
  
          Reviewed by darin
  
          Test cases added:
          * layout-tests/fast/tokenizer/script-after-frameset-expected.txt: Added.
          * layout-tests/fast/tokenizer/script-after-frameset.html: Added.
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::scriptHandler):
  
  2005-08-09  Justin Garcia  <justin.garcia at apple.com>
  
          Patch by Anders Carlsson <andersca at mac.com>
          
          Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=4330>
              hasFeature('xhtml', ...) should return true
  
          Reviewed by darin
  
          Test cases updated:
          * layout-tests/dom/html/level2/html/HTMLBodyElement09-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLBodyElement10-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLDocument24-expected.txt:
          * layout-tests/dom/html/level2/html/HTMLDocument25-expected.txt:
          * layout-tests/dom/html/level2/html/hasFeature03-expected.txt:
          * layout-tests/dom/html/level2/html/hasFeature04-expected.txt:
          These are successful now.
          
          * khtml/xml/dom_docimpl.cpp:
          (DOMImplementationImpl::hasFeature):
          Support "xhtml".
  
  2005-08-09  Justin Garcia  <justin.garcia at apple.com>
  
          Patch by Anders Carlsson <andersca at mac.com>
  
          Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=4322> 
  	       date-big-setdate.html testcase fails if the timezone isn't UTC-8
  	
          Reviewed by darin
          
          Test cases added:
          * layout-tests/fast/js/date-big-setdate-expected.txt:
          * layout-tests/fast/js/date-big-setdate.html:
          Compare the millisecond value of the dates to see if they're
          sequential instead of simply printing the dates.
  
  2005-08-09  Justin Garcia  <justin.garcia at apple.com>
  
          Patch by Anders Carlsson <andersca at mac.com
  
          Reviewed by darin
          
          Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=4331> dispatchEvent should raise an exception
          
          Test cases added:
          * layout-tests/dom/html/level2/events/createEvent01-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent01-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent02-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent03-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent04-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent05-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent06-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent07-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent09-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent11-expected.txt:
          * layout-tests/dom/html/level2/events/initEvent01-expected.txt:
          * layout-tests/dom/html/level2/events/initEvent02-expected.txt:
          * layout-tests/dom/html/level2/events/initEvent03-expected.txt:
          These tests pass now.
  	
          * layout-tests/dom/html/level2/events/dispatchEvent08-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent10-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent12-expected.txt:
          * layout-tests/dom/html/level2/events/dispatchEvent13-expected.txt:
          These tests fail somplace else now.
  
          * khtml/dom/dom2_events.h:
          (DOM::EventException::):
          Add _EXCEPTION_OFFSET and _EXCEPTION_MAX.
  	
          * khtml/ecma/kjs_binding.cpp:
          (KJS::setDOMException):
          Handle EventExceptions.
  	
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createEvent):
          Allow "Events" as event type.
  	
          * khtml/xml/dom_nodeimpl.cpp:
          (DOM::NodeImpl::dispatchEvent):
          Raise exception if event is NULL, uninitialized, or if its name is the empty string.
          	
          * kwq/DOMInternal.mm:
          (raiseDOMException):
          Handle EventExceptions.
  
  2005-08-09  David Hyatt  <hyatt at apple.com>
  
  	Implement baseline alignment support for inline blocks.  Inline blocks are supposed to use
  	the baseline of the last line in the block as their baseline.  For marquees we still
  	bottom align, since marquees really have no discernible baseline in many cases (and this
  	retains compatibility with WinIE).
  	
          Reviewed by cblu
  
          Test cases added: 006.html in fast/inline-block
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::baselinePosition):
          (khtml::RenderBlock::getBaselineOfLastLineBox):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::getBaselineOfLastLineBox):
          * layout-tests/css1/box_properties/acid_test-expected.txt:
          * layout-tests/fast/css/MarqueeLayoutTest-expected.txt:
          * layout-tests/fast/forms/007-expected.txt:
          * layout-tests/fast/inline-block/001-expected.txt:
          * layout-tests/fast/inline-block/001.html:
          * layout-tests/fast/inline-block/006-expected.txt: Added.
          * layout-tests/fast/inline-block/006.html: Added.
          * layout-tests/fast/selectors/064-expected.txt:
  
  2005-08-09  Vicki Murley  <vicki at apple.com>
  
          Fixed by Anders Carlsson, Reviewed by Maciej.
  
  	- fixed <rdar://problem/4071417> add XMLSerializer object to WebCore's JavaScript support (4046)
   
          Test cases added: 
          * layout-tests/fast/dom/XMLSerializer-expected.txt: Added.
          * layout-tests/fast/dom/XMLSerializer.html: Added.
  
          * khtml/ecma/xmlserializer.cpp:
          (KJS::XMLSerializerProtoFunc::callAsFunction): allow any node to be serialized, not just documents
  
  2005-08-09  Adele Peterson  <adele at apple.com>
  
          Reviewed by Darin.
          
          - fixed <rdar://problem/4056369> XML parsing hits disk to turn URL incorrectly passed as relative path name into absolute (prevents idle sleep)
  
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::createQStringParser): removed last parameter, since we are no longer passing the url to xmlCreatePushParserCtxt
          (khtml::XMLTokenizer::finish): removed last parameter from createQStringParser
  
  2005-08-08  David Hyatt  <hyatt at apple.com>
  
  	Fix for radar bug #4202641, make sure line breaks happen inside
  	white-space:pre if word-wrap:break-word is set.
  	
          Reviewed by darin
  
          Test cases added: fast/text/whitespace/pre-break-word.html
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::findNextLineBreak):
  
  2005-08-08  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4298
            JS crash with DOM2 mouse event with incorrect view
  
          Test cases added:
          * layout-tests/fast/events/init-event-null-view-expected.txt: Added.
          * layout-tests/fast/events/init-event-null-view.html: Added.
  
          * khtml/xml/dom2_eventsimpl.cpp: (MouseRelatedEventImpl::computeLayerPos): Added nil check.
  
  2005-08-08  David Hyatt  <hyatt at apple.com>
  
  	This patch implements support for <input type=radio> in the engine and removes the NSView-based
  	control.
  	
  	Reviewed by: John Sullivan
  	
          * ForwardingHeaders/qradiobutton.h: Removed.
          * WebCore.xcodeproj/project.pbxproj:
          Removing the old QRadioButton from the project.
  	
  	* khtml/css/html4.css:
          Add the CSS rule to give radio buttons the correct appearance.
  	
  	* khtml/html/html_formimpl.cpp:
          (DOM::HTMLInputElementImpl::click):
          Now that radio button has no corresponding QWidget, move its click handling case down to match
  	the other widget-less controls.
  	
  	(DOM::HTMLInputElementImpl::createRenderer):
  	The special renderer doesn't have to be made any more.  Radio now behaves like checkbox and just
  	makes a renderer based off the specified display type in CSS.
  	
          (DOM::HTMLInputElementImpl::setChecked):
          Fix a regression that prevented unnamed checkboxes from functioning properly.  Make sure to
  	only disallow the selecting of unnamed radio buttons.
  	
  	(DOM::HTMLInputElementImpl::valueWithDefault):
  	Fix some mis-indented ifdefs.
  	
          (DOM::HTMLInputElementImpl::preDispatchEventHandler):
          Added a new event handler method that is called prior to the dispatch of the event into the DOM.
  	This function is necessary because checkboxes and radio buttons need to check/uncheck *prior* to
  	the onclick actually being sent into the DOM.
  	
  	(DOM::HTMLInputElementImpl::defaultEventHandler):
          Remove the code that attempted to check/uncheck checkboxes from this function, since it was called
  	*after* onclick was handled in the DOM, and this was too late.  The code has moved into 
  	preDispatchEventHandler instead.
  	
  	* khtml/html/html_formimpl.h:
          * khtml/rendering/render_form.cpp:
          * khtml/rendering/render_form.h:
          Removed RenderRadioButton, the custom renderer that used to wrap QRadioButton.
  	
  	* khtml/rendering/render_theme.cpp:
          (khtml::RenderTheme::adjustStyle):
          (khtml::RenderTheme::paint):
  	Add the radio button case to these methods.
  	
          (khtml::RenderTheme::adjustCheckboxStyle):
          (khtml::RenderTheme::adjustRadioStyle):
          Rework these methods to move all of the control size selection based off font into the
  	derived class.  These methods stay in the base class and call a virtual setCheckbox/RadioSize
  	method to get the size set up properly.
  	
  	* khtml/rendering/render_theme.h:
          (khtml::RenderTheme::setCheckboxSize):
          (khtml::RenderTheme::setRadioSize):
          The two new virtual methods that a derived class can override to set initial sizes.
  	
  	* khtml/rendering/render_theme_mac.h:
          * khtml/rendering/render_theme_mac.mm:
          (khtml::RenderThemeMac::inflateRect):
          (khtml::RenderThemeMac::setControlSize):
          (khtml::RenderThemeMac::sizeForFont):
          (khtml::RenderThemeMac::setSizeFromFont):
          (khtml::RenderThemeMac::checkboxSizes):
          (khtml::RenderThemeMac::setCheckboxCellState):
          (khtml::RenderThemeMac::setCheckboxSize):
          Patched all of these methods to deal with QSizes instead of ints, since radio buttons are not
  	square.
  	
  	(khtml::RenderThemeMac::paintRadio):
          (khtml::RenderThemeMac::radioSizes):
          (khtml::RenderThemeMac::radioMargins):
          (khtml::RenderThemeMac::setRadioCellState):
          (khtml::RenderThemeMac::setRadioSize):
          The implementation of radio buttons.  Virtually identical to checkbox.
  	
  	* khtml/xml/dom_nodeimpl.cpp:
          (DOM::NodeImpl::dispatchGenericEvent):
          Add the invocation of preDispatchEventHandler prior to the dispatch of the event.
  	
  	* khtml/xml/dom_nodeimpl.h:
          (DOM::NodeImpl::preDispatchEventHandler):
          The stubbed out empty virtual function in the base class.  Overridden in HTMLInputElementImpl
  	to check/uncheck radio buttons and checkboxes prior to the click event being sent into the DOM.
  	
  	* kwq/KWQAccObject.mm:
          (-[KWQAccObject actionElement]):
          (-[KWQAccObject role]):
          (-[KWQAccObject roleDescription]):
          (-[KWQAccObject value]):
          (-[KWQAccObject accessibilityIsAttributeSettable:]):
          The implementation of radio button accessibility.  Identical to checkbox (just a different role).
  	
  	* kwq/KWQRadioButton.h: Removed.
          * kwq/KWQRadioButton.mm: Removed.
  	Removed the old radio button files for QRadioButton.
  	
  2005-08-08  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by darin.
  
          The rest of the changes necessary for darin's Object/Value removal.
          These fixes are for kdom/ksvg2 and allow WebCore+SVG to compile.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4332
          * kdom/Attr.cpp:
          (Attr::getValueProperty):
          (Attr::putValueProperty):
          * kdom/Attr.h:
          * kdom/CharacterData.cpp:
          (CharacterData::getValueProperty):
          (CharacterData::putValueProperty):
          (CharacterDataProtoFunc::callAsFunction):
          * kdom/CharacterData.h:
          * kdom/DOMConfiguration.cpp:
          (DOMConfiguration::getValueProperty):
          (DOMConfigurationProtoFunc::callAsFunction):
          * kdom/DOMConfiguration.h:
          * kdom/DOMError.cpp:
          (DOMError::getValueProperty):
          * kdom/DOMError.h:
          * kdom/DOMErrorHandler.cpp:
          (DOMErrorHandler::getValueProperty):
          (DOMErrorHandlerProtoFunc::callAsFunction):
          * kdom/DOMErrorHandler.h:
          * kdom/DOMException.cpp:
          (DOMException::getValueProperty):
          * kdom/DOMException.h:
          * kdom/DOMImplementation.cpp:
          (DOMImplementation::getValueProperty):
          (DOMImplementationProtoFunc::callAsFunction):
          * kdom/DOMImplementation.h:
          * kdom/DOMLocator.cpp:
          (DOMLocator::getValueProperty):
          * kdom/DOMLocator.h:
          * kdom/DOMStringList.cpp:
          (DOMStringList::getValueProperty):
          (DOMStringListProtoFunc::callAsFunction):
          * kdom/DOMStringList.h:
          * kdom/DOMUserData.cpp:
          (DOMUserData::getValueProperty):
          * kdom/DOMUserData.h:
          * kdom/Document.cpp:
          (KDOM::Document::getValueProperty):
          (KDOM::Document::putValueProperty):
          (KDOM::DocumentProtoFunc::callAsFunction):
          * kdom/Document.h:
          * kdom/DocumentType.cpp:
          (DocumentType::getValueProperty):
          * kdom/DocumentType.h:
          * kdom/Element.cpp:
          (Element::getValueProperty):
          (ElementProtoFunc::callAsFunction):
          * kdom/Element.h:
          * kdom/Entity.cpp:
          (Entity::getValueProperty):
          * kdom/Entity.h:
          * kdom/NamedNodeMap.cpp:
          (NamedNodeMap::getValueProperty):
          (NamedNodeMapProtoFunc::callAsFunction):
          * kdom/NamedNodeMap.h:
          * kdom/Node.cpp:
          (Node::getValueProperty):
          (Node::putValueProperty):
          (NodeProtoFunc::callAsFunction):
          * kdom/Node.h:
          * kdom/NodeList.cpp:
          (NodeList::getValueProperty):
          (NodeListProtoFunc::callAsFunction):
          * kdom/NodeList.h:
          * kdom/Notation.cpp:
          (Notation::getValueProperty):
          * kdom/Notation.h:
          * kdom/ProcessingInstruction.cpp:
          (ProcessingInstruction::getValueProperty):
          (ProcessingInstruction::putValueProperty):
          * kdom/ProcessingInstruction.h:
          * kdom/Text.cpp:
          (Text::getValueProperty):
          (TextProtoFunc::callAsFunction):
          * kdom/Text.h:
          * kdom/TypeInfo.cpp:
          (TypeInfo::getValueProperty):
          (TypeInfoProtoFunc::callAsFunction):
          * kdom/TypeInfo.h:
          * kdom/css/CSSCharsetRule.cpp:
          (CSSCharsetRule::getValueProperty):
          (CSSCharsetRule::putValueProperty):
          * kdom/css/CSSCharsetRule.h:
          * kdom/css/CSSFontFaceRule.cpp:
          (CSSFontFaceRule::getValueProperty):
          * kdom/css/CSSFontFaceRule.h:
          * kdom/css/CSSImportRule.cpp:
          (CSSImportRule::getValueProperty):
          * kdom/css/CSSImportRule.h:
          * kdom/css/CSSMediaRule.cpp:
          (CSSMediaRule::getValueProperty):
          (CSSMediaRuleProtoFunc::callAsFunction):
          * kdom/css/CSSMediaRule.h:
          * kdom/css/CSSPageRule.cpp:
          (CSSPageRule::getValueProperty):
          (CSSPageRule::putValueProperty):
          * kdom/css/CSSPageRule.h:
          * kdom/css/CSSPrimitiveValue.cpp:
          (KDOM::CSSPrimitiveValue::getValueProperty):
          (KDOM::CSSPrimitiveValueProtoFunc::callAsFunction):
          * kdom/css/CSSPrimitiveValue.h:
          * kdom/css/CSSRule.cpp:
          (CSSRule::getValueProperty):
          (CSSRule::putValueProperty):
          * kdom/css/CSSRule.h:
          * kdom/css/CSSRuleList.cpp:
          (CSSRuleList::getValueProperty):
          (CSSRuleListProtoFunc::callAsFunction):
          * kdom/css/CSSRuleList.h:
          * kdom/css/CSSStyleDeclaration.cpp:
          (CSSStyleDeclaration::getValueProperty):
          (CSSStyleDeclaration::putValueProperty):
          (CSSStyleDeclarationProtoFunc::callAsFunction):
          * kdom/css/CSSStyleDeclaration.h:
          * kdom/css/CSSStyleRule.cpp:
          (CSSStyleRule::getValueProperty):
          (CSSStyleRule::putValueProperty):
          * kdom/css/CSSStyleRule.h:
          * kdom/css/CSSStyleSheet.cpp:
          (CSSStyleSheet::getValueProperty):
          (CSSStyleSheetProtoFunc::callAsFunction):
          * kdom/css/CSSStyleSheet.h:
          * kdom/css/CSSValue.cpp:
          (CSSValue::getValueProperty):
          (CSSValue::putValueProperty):
          * kdom/css/CSSValue.h:
          * kdom/css/CSSValueList.cpp:
          (CSSValueList::getValueProperty):
          (CSSValueListProtoFunc::callAsFunction):
          * kdom/css/CSSValueList.h:
          * kdom/css/Counter.cpp:
          (Counter::getValueProperty):
          * kdom/css/Counter.h:
          * kdom/css/DocumentStyle.cpp:
          (DocumentStyle::getValueProperty):
          * kdom/css/DocumentStyle.h:
          * kdom/css/MediaList.cpp:
          (MediaList::getValueProperty):
          (MediaList::putValueProperty):
          (MediaListProtoFunc::callAsFunction):
          * kdom/css/MediaList.h:
          * kdom/css/RGBColor.cpp:
          (KDOM::RGBColor::getValueProperty):
          * kdom/css/RGBColor.h:
          * kdom/css/Rect.cpp:
          (KDOM::Rect::getValueProperty):
          * kdom/css/Rect.h:
          * kdom/css/StyleSheet.cpp:
          (StyleSheet::getValueProperty):
          (StyleSheet::putValueProperty):
          * kdom/css/StyleSheet.h:
          * kdom/css/StyleSheetList.cpp:
          (StyleSheetList::getValueProperty):
          (StyleSheetListProtoFunc::callAsFunction):
          * kdom/css/StyleSheetList.h:
          * kdom/data/generateddata.cpp:
          (AbstractView::get):
          (AbstractView::getInParents):
          (AbstractView::prototype):
          (AbstractView::cache):
          (Attr::get):
          (Attr::getInParents):
          (Attr::prototype):
          (Attr::cache):
          (CSSCharsetRule::get):
          (CSSCharsetRule::getInParents):
          (CSSCharsetRule::prototype):
          (CSSCharsetRule::cache):
          (CSSFontFaceRule::get):
          (CSSFontFaceRule::getInParents):
          (CSSFontFaceRule::prototype):
          (CSSFontFaceRule::cache):
          (CSSImportRule::get):
          (CSSImportRule::getInParents):
          (CSSImportRule::prototype):
          (CSSImportRule::cache):
          (CSSMediaRule::hasProperty):
          (CSSMediaRule::get):
          (CSSMediaRule::getInParents):
          (CSSMediaRule::prototype):
          (CSSMediaRule::cache):
          (CSSPageRule::get):
          (CSSPageRule::getInParents):
          (CSSPageRule::prototype):
          (CSSPageRule::cache):
          (CSSPrimitiveValue::hasProperty):
          (CSSPrimitiveValue::get):
          (CSSPrimitiveValue::getInParents):
          (CSSPrimitiveValue::prototype):
          (CSSPrimitiveValue::cache):
          (CSSRule::get):
          (CSSRule::getInParents):
          (CSSRule::prototype):
          (CSSRule::cache):
          (CSSRuleList::hasProperty):
          (CSSRuleList::get):
          (CSSRuleList::getInParents):
          (CSSRuleList::prototype):
          (CSSRuleList::cache):
          (CSSStyleDeclaration::hasProperty):
          (CSSStyleDeclaration::get):
          (CSSStyleDeclaration::getInParents):
          (CSSStyleDeclaration::prototype):
          (CSSStyleDeclaration::cache):
          (CSSStyleRule::get):
          (CSSStyleRule::getInParents):
          (CSSStyleRule::prototype):
          (CSSStyleRule::cache):
          (CSSStyleSheet::hasProperty):
          (CSSStyleSheet::get):
          (CSSStyleSheet::getInParents):
          (CSSStyleSheet::prototype):
          (CSSStyleSheet::cache):
          (CSSValue::get):
          (CSSValue::getInParents):
          (CSSValue::prototype):
          (CSSValue::cache):
          (CSSValueList::hasProperty):
          (CSSValueList::get):
          (CSSValueList::getInParents):
          (CSSValueList::prototype):
          (CSSValueList::cache):
          (CharacterData::hasProperty):
          (CharacterData::get):
          (CharacterData::getInParents):
          (CharacterData::prototype):
          (CharacterData::cache):
          (Counter::get):
          (Counter::getInParents):
          (Counter::prototype):
          (Counter::cache):
          (DOMConfiguration::hasProperty):
          (DOMConfiguration::get):
          (DOMConfiguration::getInParents):
          (DOMConfiguration::prototype):
          (DOMConfiguration::cache):
          (DOMError::get):
          (DOMError::getInParents):
          (DOMError::prototype):
          (DOMError::cache):
          (DOMErrorHandler::hasProperty):
          (DOMErrorHandler::get):
          (DOMErrorHandler::getInParents):
          (DOMErrorHandler::prototype):
          (DOMErrorHandler::cache):
          (DOMException::get):
          (DOMException::getInParents):
          (DOMException::prototype):
          (DOMException::cache):
          (DOMImplementation::hasProperty):
          (DOMImplementation::get):
          (DOMImplementation::getInParents):
          (DOMImplementation::prototype):
          (DOMImplementation::cache):
          (DOMLocator::get):
          (DOMLocator::getInParents):
          (DOMLocator::prototype):
          (DOMLocator::cache):
          (DOMStringList::hasProperty):
          (DOMStringList::get):
          (DOMStringList::getInParents):
          (DOMStringList::prototype):
          (DOMStringList::cache):
          (DOMUserData::get):
          (DOMUserData::getInParents):
          (DOMUserData::prototype):
          (DOMUserData::cache):
          (Document::hasProperty):
          (Document::get):
          (Document::getInParents):
          (Document::prototype):
          (Document::cache):
          (DocumentEvent::hasProperty):
          (DocumentEvent::get):
          (DocumentEvent::getInParents):
          (DocumentEvent::prototype):
          (DocumentEvent::cache):
          (DocumentRange::hasProperty):
          (DocumentRange::get):
          (DocumentRange::getInParents):
          (DocumentRange::prototype):
          (DocumentRange::cache):
          (DocumentStyle::get):
          (DocumentStyle::getInParents):
          (DocumentStyle::prototype):
          (DocumentStyle::cache):
          (DocumentTraversal::hasProperty):
          (DocumentTraversal::get):
          (DocumentTraversal::getInParents):
          (DocumentTraversal::prototype):
          (DocumentTraversal::cache):
          (DocumentType::get):
          (DocumentType::getInParents):
          (DocumentType::prototype):
          (DocumentType::cache):
          (DocumentView::get):
          (DocumentView::getInParents):
          (DocumentView::prototype):
          (DocumentView::cache):
          (Element::hasProperty):
          (Element::get):
          (Element::getInParents):
          (Element::prototype):
          (Element::cache):
          (Entity::get):
          (Entity::getInParents):
          (Entity::prototype):
          (Entity::cache):
          (Event::hasProperty):
          (Event::get):
          (Event::getInParents):
          (Event::prototype):
          (Event::cache):
          (EventException::get):
          (EventException::getInParents):
          (EventException::prototype):
          (EventException::cache):
          (EventTarget::hasProperty):
          (EventTarget::get):
          (EventTarget::getInParents):
          (EventTarget::prototype):
          (EventTarget::cache):
          (KeyboardEvent::hasProperty):
          (KeyboardEvent::get):
          (KeyboardEvent::getInParents):
          (KeyboardEvent::prototype):
          (KeyboardEvent::cache):
          (LSException::get):
          (LSException::getInParents):
          (LSException::prototype):
          (LSException::cache):
          (LSInput::get):
          (LSInput::getInParents):
          (LSInput::prototype):
          (LSInput::cache):
          (LSOutput::get):
          (LSOutput::getInParents):
          (LSOutput::prototype):
          (LSOutput::cache):
          (LSParser::hasProperty):
          (LSParser::get):
          (LSParser::getInParents):
          (LSParser::prototype):
          (LSParser::cache):
          (LSParserFilter::hasProperty):
          (LSParserFilter::get):
          (LSParserFilter::getInParents):
          (LSParserFilter::prototype):
          (LSParserFilter::cache):
          (LSResourceResolver::hasProperty):
          (LSResourceResolver::get):
          (LSResourceResolver::getInParents):
          (LSResourceResolver::prototype):
          (LSResourceResolver::cache):
          (LSSerializer::hasProperty):
          (LSSerializer::get):
          (LSSerializer::getInParents):
          (LSSerializer::prototype):
          (LSSerializer::cache):
          (LSSerializerFilter::get):
          (LSSerializerFilter::getInParents):
          (LSSerializerFilter::prototype):
          (LSSerializerFilter::cache):
          (MediaList::hasProperty):
          (MediaList::get):
          (MediaList::getInParents):
          (MediaList::prototype):
          (MediaList::cache):
          (MouseEvent::hasProperty):
          (MouseEvent::get):
          (MouseEvent::getInParents):
          (MouseEvent::prototype):
          (MouseEvent::cache):
          (MutationEvent::hasProperty):
          (MutationEvent::get):
          (MutationEvent::getInParents):
          (MutationEvent::prototype):
          (MutationEvent::cache):
          (NamedNodeMap::hasProperty):
          (NamedNodeMap::get):
          (NamedNodeMap::getInParents):
          (NamedNodeMap::prototype):
          (NamedNodeMap::cache):
          (Node::hasProperty):
          (Node::get):
          (Node::getInParents):
          (Node::prototype):
          (Node::cache):
          (NodeIterator::hasProperty):
          (NodeIterator::get):
          (NodeIterator::getInParents):
          (NodeIterator::prototype):
          (NodeIterator::cache):
          (NodeList::hasProperty):
          (NodeList::get):
          (NodeList::getInParents):
          (NodeList::prototype):
          (NodeList::cache):
          (Notation::get):
          (Notation::getInParents):
          (Notation::prototype):
          (Notation::cache):
          (ProcessingInstruction::get):
          (ProcessingInstruction::getInParents):
          (ProcessingInstruction::prototype):
          (ProcessingInstruction::cache):
          (KDOM::RGBColor::get):
          (KDOM::RGBColor::getInParents):
          (KDOM::RGBColor::prototype):
          (KDOM::RGBColor::cache):
          (Range::hasProperty):
          (Range::get):
          (Range::getInParents):
          (Range::prototype):
          (Range::cache):
          (RangeException::get):
          (RangeException::getInParents):
          (RangeException::prototype):
          (RangeException::cache):
          (KDOM::Rect::get):
          (KDOM::Rect::getInParents):
          (KDOM::Rect::prototype):
          (KDOM::Rect::cache):
          (StyleSheet::get):
          (StyleSheet::getInParents):
          (StyleSheet::prototype):
          (StyleSheet::cache):
          (StyleSheetList::hasProperty):
          (StyleSheetList::get):
          (StyleSheetList::getInParents):
          (StyleSheetList::prototype):
          (StyleSheetList::cache):
          (Text::hasProperty):
          (Text::get):
          (Text::getInParents):
          (Text::prototype):
          (Text::cache):
          (TreeWalker::hasProperty):
          (TreeWalker::get):
          (TreeWalker::getInParents):
          (TreeWalker::prototype):
          (TreeWalker::cache):
          (TypeInfo::hasProperty):
          (TypeInfo::get):
          (TypeInfo::getInParents):
          (TypeInfo::prototype):
          (TypeInfo::cache):
          (UIEvent::hasProperty):
          (UIEvent::get):
          (UIEvent::getInParents):
          (UIEvent::prototype):
          (UIEvent::cache):
          (XPathEvaluator::hasProperty):
          (XPathEvaluator::get):
          (XPathEvaluator::getInParents):
          (XPathEvaluator::prototype):
          (XPathEvaluator::cache):
          (XPathException::get):
          (XPathException::getInParents):
          (XPathException::prototype):
          (XPathException::cache):
          (XPathExpression::hasProperty):
          (XPathExpression::get):
          (XPathExpression::getInParents):
          (XPathExpression::prototype):
          (XPathExpression::cache):
          (XPathNSResolver::hasProperty):
          (XPathNSResolver::get):
          (XPathNSResolver::getInParents):
          (XPathNSResolver::prototype):
          (XPathNSResolver::cache):
          (XPathNamespace::get):
          (XPathNamespace::getInParents):
          (XPathNamespace::prototype):
          (XPathNamespace::cache):
          (XPathResult::hasProperty):
          (XPathResult::get):
          (XPathResult::getInParents):
          (XPathResult::prototype):
          (XPathResult::cache):
          * kdom/ecma/DOMBridge.h:
          (KDOM::DOMBridge::get):
          (KDOM::DOMRWBridge::put):
          (KDOM::DOMBridgeCtor::get):
          * kdom/ecma/DOMLookup.h:
          (KDOM::lookupGet):
          (KDOM::lookupGetValue):
          (KDOM::lookupPut):
          * kdom/ecma/Ecma.cpp:
          (Ecma::setup):
          (Ecma::evaluate):
          (Ecma::globalObject):
          (Ecma::ecmaListenerToObject):
          (Ecma::findEventListener):
          (Ecma::createEventListener):
          (KDOM::getDOMNode):
          (KDOM::getDOMEvent):
          (KDOM::getDOMCSSRule):
          (KDOM::getDOMCSSValue):
          (KDOM::toDOMString):
          (KDOM::getDOMString):
          (KDOM::toVariant):
          * kdom/ecma/Ecma.h:
          (KDOM::ecma_cast):
          (KDOM::safe_cache):
          * kdom/ecma/GlobalObject.cpp:
          (GlobalObject::retrieveActive):
          (GlobalObject::get):
          (GlobalObject::put):
          (GlobalObjectFunc::callAsFunction):
          (ScheduledAction::ScheduledAction):
          (ScheduledAction::execute):
          (GlobalQObject::installTimeout):
          * kdom/ecma/GlobalObject.h:
          * kdom/ecma/ScriptInterpreter.cpp:
          (ScriptInterpreter::ScriptInterpreter):
          * kdom/ecma/ScriptInterpreter.h:
          (KDOM::cacheDOMObject):
          (KDOM::cacheGlobalBridge):
          * kdom/events/DocumentEvent.cpp:
          (DocumentEvent::getValueProperty):
          (DocumentEventProtoFunc::callAsFunction):
          * kdom/events/DocumentEvent.h:
          * kdom/events/Event.cpp:
          (Event::getValueProperty):
          (EventProtoFunc::callAsFunction):
          * kdom/events/Event.h:
          * kdom/events/EventException.cpp:
          (EventException::getValueProperty):
          * kdom/events/EventException.h:
          * kdom/events/EventTarget.cpp:
          (EventTarget::getValueProperty):
          (EventTargetProtoFunc::callAsFunction):
          * kdom/events/EventTarget.h:
          * kdom/events/KeyboardEvent.cpp:
          (KeyboardEvent::getValueProperty):
          (KeyboardEventProtoFunc::callAsFunction):
          * kdom/events/KeyboardEvent.h:
          * kdom/events/MouseEvent.cpp:
          (MouseEvent::getValueProperty):
          (MouseEventProtoFunc::callAsFunction):
          * kdom/events/MouseEvent.h:
          * kdom/events/MutationEvent.cpp:
          (MutationEvent::getValueProperty):
          (MutationEventProtoFunc::callAsFunction):
          * kdom/events/MutationEvent.h:
          * kdom/events/UIEvent.cpp:
          (UIEvent::getValueProperty):
          (UIEventProtoFunc::callAsFunction):
          * kdom/events/UIEvent.h:
          * kdom/events/impl/EventListenerImpl.cpp:
          (EventListenerImpl::EventListenerImpl):
          (EventListenerImpl::~EventListenerImpl):
          (EventListenerImpl::handleEvent):
          (EventListenerImpl::ecmaListener):
          (EventListenerImpl::initListener):
          * kdom/events/impl/EventListenerImpl.h:
          * kdom/impl/DOMUserDataImpl.h:
          (KDOM::):
          * kdom/ls/LSException.cpp:
          (LSException::getValueProperty):
          * kdom/ls/LSException.h:
          * kdom/ls/LSInput.cpp:
          (LSInput::getValueProperty):
          (LSInput::putValueProperty):
          * kdom/ls/LSInput.h:
          * kdom/ls/LSOutput.cpp:
          (LSOutput::getValueProperty):
          (LSOutput::putValueProperty):
          * kdom/ls/LSOutput.h:
          * kdom/ls/LSParser.cpp:
          (LSParser::getValueProperty):
          (LSParser::putValueProperty):
          (LSParserProtoFunc::callAsFunction):
          * kdom/ls/LSParser.h:
          * kdom/ls/LSParserFilter.cpp:
          (LSParserFilter::getValueProperty):
          (LSParserFilterProtoFunc::callAsFunction):
          * kdom/ls/LSParserFilter.h:
          * kdom/ls/LSResourceResolver.cpp:
          (LSResourceResolver::getValueProperty):
          (LSResourceResolverProtoFunc::callAsFunction):
          * kdom/ls/LSResourceResolver.h:
          * kdom/ls/LSSerializer.cpp:
          (LSSerializer::getValueProperty):
          (LSSerializer::putValueProperty):
          (LSSerializerProtoFunc::callAsFunction):
          * kdom/ls/LSSerializer.h:
          * kdom/ls/LSSerializerFilter.cpp:
          (LSSerializerFilter::getValueProperty):
          * kdom/ls/LSSerializerFilter.h:
          * kdom/range/DocumentRange.cpp:
          (DocumentRange::getValueProperty):
          (DocumentRangeProtoFunc::callAsFunction):
          * kdom/range/DocumentRange.h:
          * kdom/range/Range.cpp:
          (Range::getValueProperty):
          (RangeProtoFunc::callAsFunction):
          * kdom/range/Range.h:
          * kdom/range/RangeException.cpp:
          (RangeException::getValueProperty):
          * kdom/range/RangeException.h:
          * kdom/traversal/DocumentTraversal.cpp:
          (DocumentTraversal::getValueProperty):
          (DocumentTraversalProtoFunc::callAsFunction):
          * kdom/traversal/DocumentTraversal.h:
          * kdom/traversal/NodeIterator.cpp:
          (NodeIterator::getValueProperty):
          (NodeIteratorProtoFunc::callAsFunction):
          * kdom/traversal/NodeIterator.h:
          * kdom/traversal/TreeWalker.cpp:
          (TreeWalker::getValueProperty):
          (TreeWalker::putValueProperty):
          (TreeWalkerProtoFunc::callAsFunction):
          * kdom/traversal/TreeWalker.h:
          * kdom/views/AbstractView.cpp:
          (AbstractView::getValueProperty):
          * kdom/views/AbstractView.h:
          * kdom/views/DocumentView.cpp:
          (DocumentView::getValueProperty):
          * kdom/views/DocumentView.h:
          * kdom/xpath/XPathEvaluator.cpp:
          (XPathEvaluator::getValueProperty):
          (XPathEvaluatorProtoFunc::callAsFunction):
          * kdom/xpath/XPathEvaluator.h:
          * kdom/xpath/XPathException.cpp:
          (XPathException::getValueProperty):
          * kdom/xpath/XPathException.h:
          * kdom/xpath/XPathExpression.cpp:
          (XPathExpression::getValueProperty):
          (XPathExpressionProtoFunc::callAsFunction):
          * kdom/xpath/XPathExpression.h:
          * kdom/xpath/XPathNSResolver.cpp:
          (XPathNSResolver::getValueProperty):
          (XPathNSResolverProtoFunc::callAsFunction):
          * kdom/xpath/XPathNSResolver.h:
          * kdom/xpath/XPathNamespace.cpp:
          (XPathNamespace::getValueProperty):
          * kdom/xpath/XPathNamespace.h:
          * kdom/xpath/XPathResult.cpp:
          (XPathResult::getValueProperty):
          (XPathResultProtoFunc::callAsFunction):
          * kdom/xpath/XPathResult.h:
          * ksvg2/KSVGFactory.cpp:
          (KSVGFactory::createPartObject):
          * ksvg2/data/SVGConstants.h:
          (KSVG::SVGNumberConstants::):
          * ksvg2/data/generateddata.cpp:
          (SVGAElement::get):
          (SVGAElement::getInParents):
          (SVGAElement::prototype):
          (SVGAElement::cache):
          (SVGAngle::hasProperty):
          (SVGAngle::get):
          (SVGAngle::getInParents):
          (SVGAngle::prototype):
          (SVGAngle::cache):
          (SVGAnimateColorElement::get):
          (SVGAnimateColorElement::getInParents):
          (SVGAnimateColorElement::prototype):
          (SVGAnimateColorElement::cache):
          (SVGAnimateElement::get):
          (SVGAnimateElement::getInParents):
          (SVGAnimateElement::prototype):
          (SVGAnimateElement::cache):
          (SVGAnimateTransformElement::get):
          (SVGAnimateTransformElement::getInParents):
          (SVGAnimateTransformElement::prototype):
          (SVGAnimateTransformElement::cache):
          (SVGAnimatedAngle::get):
          (SVGAnimatedAngle::getInParents):
          (SVGAnimatedAngle::prototype):
          (SVGAnimatedAngle::cache):
          (SVGAnimatedBoolean::get):
          (SVGAnimatedBoolean::getInParents):
          (SVGAnimatedBoolean::prototype):
          (SVGAnimatedBoolean::cache):
          (SVGAnimatedEnumeration::get):
          (SVGAnimatedEnumeration::getInParents):
          (SVGAnimatedEnumeration::prototype):
          (SVGAnimatedEnumeration::cache):
          (SVGAnimatedInteger::get):
          (SVGAnimatedInteger::getInParents):
          (SVGAnimatedInteger::prototype):
          (SVGAnimatedInteger::cache):
          (SVGAnimatedLength::get):
          (SVGAnimatedLength::getInParents):
          (SVGAnimatedLength::prototype):
          (SVGAnimatedLength::cache):
          (SVGAnimatedLengthList::get):
          (SVGAnimatedLengthList::getInParents):
          (SVGAnimatedLengthList::prototype):
          (SVGAnimatedLengthList::cache):
          (SVGAnimatedNumber::get):
          (SVGAnimatedNumber::getInParents):
          (SVGAnimatedNumber::prototype):
          (SVGAnimatedNumber::cache):
          (SVGAnimatedNumberList::get):
          (SVGAnimatedNumberList::getInParents):
          (SVGAnimatedNumberList::prototype):
          (SVGAnimatedNumberList::cache):
          (SVGAnimatedPathData::get):
          (SVGAnimatedPathData::getInParents):
          (SVGAnimatedPathData::prototype):
          (SVGAnimatedPathData::cache):
          (SVGAnimatedPoints::get):
          (SVGAnimatedPoints::getInParents):
          (SVGAnimatedPoints::prototype):
          (SVGAnimatedPoints::cache):
          (SVGAnimatedPreserveAspectRatio::get):
          (SVGAnimatedPreserveAspectRatio::getInParents):
          (SVGAnimatedPreserveAspectRatio::prototype):
          (SVGAnimatedPreserveAspectRatio::cache):
          (SVGAnimatedRect::get):
          (SVGAnimatedRect::getInParents):
          (SVGAnimatedRect::prototype):
          (SVGAnimatedRect::cache):
          (SVGAnimatedString::get):
          (SVGAnimatedString::getInParents):
          (SVGAnimatedString::prototype):
          (SVGAnimatedString::cache):
          (SVGAnimatedTransformList::get):
          (SVGAnimatedTransformList::getInParents):
          (SVGAnimatedTransformList::prototype):
          (SVGAnimatedTransformList::cache):
          (SVGAnimationElement::hasProperty):
          (SVGAnimationElement::get):
          (SVGAnimationElement::getInParents):
          (SVGAnimationElement::prototype):
          (SVGAnimationElement::cache):
          (SVGCircleElement::get):
          (SVGCircleElement::getInParents):
          (SVGCircleElement::prototype):
          (SVGCircleElement::cache):
          (SVGClipPathElement::get):
          (SVGClipPathElement::getInParents):
          (SVGClipPathElement::prototype):
          (SVGClipPathElement::cache):
          (SVGColor::hasProperty):
          (SVGColor::get):
          (SVGColor::getInParents):
          (SVGColor::prototype):
          (SVGColor::cache):
          (SVGComponentTransferFunctionElement::get):
          (SVGComponentTransferFunctionElement::getInParents):
          (SVGComponentTransferFunctionElement::prototype):
          (SVGComponentTransferFunctionElement::cache):
          (SVGDefsElement::get):
          (SVGDefsElement::getInParents):
          (SVGDefsElement::prototype):
          (SVGDefsElement::cache):
          (SVGDescElement::get):
          (SVGDescElement::getInParents):
          (SVGDescElement::prototype):
          (SVGDescElement::cache):
          (SVGDocument::get):
          (SVGDocument::getInParents):
          (SVGDocument::prototype):
          (SVGDocument::cache):
          (SVGElement::get):
          (SVGElement::getInParents):
          (SVGElement::prototype):
          (SVGElement::cache):
          (SVGElementInstance::get):
          (SVGElementInstance::getInParents):
          (SVGElementInstance::prototype):
          (SVGElementInstance::cache):
          (SVGElementInstanceList::hasProperty):
          (SVGElementInstanceList::get):
          (SVGElementInstanceList::getInParents):
          (SVGElementInstanceList::prototype):
          (SVGElementInstanceList::cache):
          (SVGEllipseElement::get):
          (SVGEllipseElement::getInParents):
          (SVGEllipseElement::prototype):
          (SVGEllipseElement::cache):
          (SVGEvent::get):
          (SVGEvent::getInParents):
          (SVGEvent::prototype):
          (SVGEvent::cache):
          (SVGException::get):
          (SVGException::getInParents):
          (SVGException::prototype):
          (SVGException::cache):
          (SVGExternalResourcesRequired::get):
          (SVGExternalResourcesRequired::getInParents):
          (SVGExternalResourcesRequired::prototype):
          (SVGExternalResourcesRequired::cache):
          (SVGFEBlendElement::get):
          (SVGFEBlendElement::getInParents):
          (SVGFEBlendElement::prototype):
          (SVGFEBlendElement::cache):
          (SVGFEColorMatrixElement::get):
          (SVGFEColorMatrixElement::getInParents):
          (SVGFEColorMatrixElement::prototype):
          (SVGFEColorMatrixElement::cache):
          (SVGFEComponentTransferElement::get):
          (SVGFEComponentTransferElement::getInParents):
          (SVGFEComponentTransferElement::prototype):
          (SVGFEComponentTransferElement::cache):
          (SVGFECompositeElement::get):
          (SVGFECompositeElement::getInParents):
          (SVGFECompositeElement::prototype):
          (SVGFECompositeElement::cache):
          (SVGFEFloodElement::get):
          (SVGFEFloodElement::getInParents):
          (SVGFEFloodElement::prototype):
          (SVGFEFloodElement::cache):
          (SVGFEGaussianBlurElement::hasProperty):
          (SVGFEGaussianBlurElement::get):
          (SVGFEGaussianBlurElement::getInParents):
          (SVGFEGaussianBlurElement::prototype):
          (SVGFEGaussianBlurElement::cache):
          (SVGFEImageElement::get):
          (SVGFEImageElement::getInParents):
          (SVGFEImageElement::prototype):
          (SVGFEImageElement::cache):
          (SVGFEMergeElement::get):
          (SVGFEMergeElement::getInParents):
          (SVGFEMergeElement::prototype):
          (SVGFEMergeElement::cache):
          (SVGFEMergeNodeElement::get):
          (SVGFEMergeNodeElement::getInParents):
          (SVGFEMergeNodeElement::prototype):
          (SVGFEMergeNodeElement::cache):
          (SVGFEOffsetElement::get):
          (SVGFEOffsetElement::getInParents):
          (SVGFEOffsetElement::prototype):
          (SVGFEOffsetElement::cache):
          (SVGFETileElement::get):
          (SVGFETileElement::getInParents):
          (SVGFETileElement::prototype):
          (SVGFETileElement::cache):
          (SVGFETurbulenceElement::get):
          (SVGFETurbulenceElement::getInParents):
          (SVGFETurbulenceElement::prototype):
          (SVGFETurbulenceElement::cache):
          (SVGFilterElement::hasProperty):
          (SVGFilterElement::get):
          (SVGFilterElement::getInParents):
          (SVGFilterElement::prototype):
          (SVGFilterElement::cache):
          (SVGFilterPrimitiveStandardAttributes::get):
          (SVGFilterPrimitiveStandardAttributes::getInParents):
          (SVGFilterPrimitiveStandardAttributes::prototype):
          (SVGFilterPrimitiveStandardAttributes::cache):
          (SVGFitToViewBox::get):
          (SVGFitToViewBox::getInParents):
          (SVGFitToViewBox::prototype):
          (SVGFitToViewBox::cache):
          (SVGGElement::get):
          (SVGGElement::getInParents):
          (SVGGElement::prototype):
          (SVGGElement::cache):
          (SVGGradientElement::get):
          (SVGGradientElement::getInParents):
          (SVGGradientElement::prototype):
          (SVGGradientElement::cache):
          (SVGImageElement::get):
          (SVGImageElement::getInParents):
          (SVGImageElement::prototype):
          (SVGImageElement::cache):
          (SVGLangSpace::get):
          (SVGLangSpace::getInParents):
          (SVGLangSpace::prototype):
          (SVGLangSpace::cache):
          (SVGLength::hasProperty):
          (SVGLength::get):
          (SVGLength::getInParents):
          (SVGLength::prototype):
          (SVGLength::cache):
          (SVGLengthList::hasProperty):
          (SVGLengthList::get):
          (SVGLengthList::getInParents):
          (SVGLengthList::prototype):
          (SVGLengthList::cache):
          (SVGLineElement::get):
          (SVGLineElement::getInParents):
          (SVGLineElement::prototype):
          (SVGLineElement::cache):
          (SVGLinearGradientElement::get):
          (SVGLinearGradientElement::getInParents):
          (SVGLinearGradientElement::prototype):
          (SVGLinearGradientElement::cache):
          (SVGLocatable::hasProperty):
          (SVGLocatable::get):
          (SVGLocatable::getInParents):
          (SVGLocatable::prototype):
          (SVGLocatable::cache):
          (SVGMarkerElement::hasProperty):
          (SVGMarkerElement::get):
          (SVGMarkerElement::getInParents):
          (SVGMarkerElement::prototype):
          (SVGMarkerElement::cache):
          (SVGMatrix::hasProperty):
          (SVGMatrix::get):
          (SVGMatrix::getInParents):
          (SVGMatrix::prototype):
          (SVGMatrix::cache):
          (SVGNumber::get):
          (SVGNumber::getInParents):
          (SVGNumber::prototype):
          (SVGNumber::cache):
          (SVGNumberList::hasProperty):
          (SVGNumberList::get):
          (SVGNumberList::getInParents):
          (SVGNumberList::prototype):
          (SVGNumberList::cache):
          (SVGPaint::hasProperty):
          (SVGPaint::get):
          (SVGPaint::getInParents):
          (SVGPaint::prototype):
          (SVGPaint::cache):
          (SVGPathElement::hasProperty):
          (SVGPathElement::get):
          (SVGPathElement::getInParents):
          (SVGPathElement::prototype):
          (SVGPathElement::cache):
          (SVGPathSeg::get):
          (SVGPathSeg::getInParents):
          (SVGPathSeg::prototype):
          (SVGPathSeg::cache):
          (SVGPathSegArcAbs::get):
          (SVGPathSegArcAbs::getInParents):
          (SVGPathSegArcAbs::prototype):
          (SVGPathSegArcAbs::cache):
          (SVGPathSegArcRel::get):
          (SVGPathSegArcRel::getInParents):
          (SVGPathSegArcRel::prototype):
          (SVGPathSegArcRel::cache):
          (SVGPathSegCurvetoCubicAbs::get):
          (SVGPathSegCurvetoCubicAbs::getInParents):
          (SVGPathSegCurvetoCubicAbs::prototype):
          (SVGPathSegCurvetoCubicAbs::cache):
          (SVGPathSegCurvetoCubicRel::get):
          (SVGPathSegCurvetoCubicRel::getInParents):
          (SVGPathSegCurvetoCubicRel::prototype):
          (SVGPathSegCurvetoCubicRel::cache):
          (SVGPathSegCurvetoCubicSmoothAbs::get):
          (SVGPathSegCurvetoCubicSmoothAbs::getInParents):
          (SVGPathSegCurvetoCubicSmoothAbs::prototype):
          (SVGPathSegCurvetoCubicSmoothAbs::cache):
          (SVGPathSegCurvetoCubicSmoothRel::get):
          (SVGPathSegCurvetoCubicSmoothRel::getInParents):
          (SVGPathSegCurvetoCubicSmoothRel::prototype):
          (SVGPathSegCurvetoCubicSmoothRel::cache):
          (SVGPathSegCurvetoQuadraticAbs::get):
          (SVGPathSegCurvetoQuadraticAbs::getInParents):
          (SVGPathSegCurvetoQuadraticAbs::prototype):
          (SVGPathSegCurvetoQuadraticAbs::cache):
          (SVGPathSegCurvetoQuadraticRel::get):
          (SVGPathSegCurvetoQuadraticRel::getInParents):
          (SVGPathSegCurvetoQuadraticRel::prototype):
          (SVGPathSegCurvetoQuadraticRel::cache):
          (SVGPathSegCurvetoQuadraticSmoothAbs::get):
          (SVGPathSegCurvetoQuadraticSmoothAbs::getInParents):
          (SVGPathSegCurvetoQuadraticSmoothAbs::prototype):
          (SVGPathSegCurvetoQuadraticSmoothAbs::cache):
          (SVGPathSegCurvetoQuadraticSmoothRel::get):
          (SVGPathSegCurvetoQuadraticSmoothRel::getInParents):
          (SVGPathSegCurvetoQuadraticSmoothRel::prototype):
          (SVGPathSegCurvetoQuadraticSmoothRel::cache):
          (SVGPathSegLinetoAbs::get):
          (SVGPathSegLinetoAbs::getInParents):
          (SVGPathSegLinetoAbs::prototype):
          (SVGPathSegLinetoAbs::cache):
          (SVGPathSegLinetoHorizontalAbs::get):
          (SVGPathSegLinetoHorizontalAbs::getInParents):
          (SVGPathSegLinetoHorizontalAbs::prototype):
          (SVGPathSegLinetoHorizontalAbs::cache):
          (SVGPathSegLinetoHorizontalRel::get):
          (SVGPathSegLinetoHorizontalRel::getInParents):
          (SVGPathSegLinetoHorizontalRel::prototype):
          (SVGPathSegLinetoHorizontalRel::cache):
          (SVGPathSegLinetoRel::get):
          (SVGPathSegLinetoRel::getInParents):
          (SVGPathSegLinetoRel::prototype):
          (SVGPathSegLinetoRel::cache):
          (SVGPathSegLinetoVerticalAbs::get):
          (SVGPathSegLinetoVerticalAbs::getInParents):
          (SVGPathSegLinetoVerticalAbs::prototype):
          (SVGPathSegLinetoVerticalAbs::cache):
          (SVGPathSegLinetoVerticalRel::get):
          (SVGPathSegLinetoVerticalRel::getInParents):
          (SVGPathSegLinetoVerticalRel::prototype):
          (SVGPathSegLinetoVerticalRel::cache):
          (SVGPathSegList::hasProperty):
          (SVGPathSegList::get):
          (SVGPathSegList::getInParents):
          (SVGPathSegList::prototype):
          (SVGPathSegList::cache):
          (SVGPathSegMovetoAbs::get):
          (SVGPathSegMovetoAbs::getInParents):
          (SVGPathSegMovetoAbs::prototype):
          (SVGPathSegMovetoAbs::cache):
          (SVGPathSegMovetoRel::get):
          (SVGPathSegMovetoRel::getInParents):
          (SVGPathSegMovetoRel::prototype):
          (SVGPathSegMovetoRel::cache):
          (SVGPatternElement::get):
          (SVGPatternElement::getInParents):
          (SVGPatternElement::prototype):
          (SVGPatternElement::cache):
          (SVGPoint::hasProperty):
          (SVGPoint::get):
          (SVGPoint::getInParents):
          (SVGPoint::prototype):
          (SVGPoint::cache):
          (SVGPointList::hasProperty):
          (SVGPointList::get):
          (SVGPointList::getInParents):
          (SVGPointList::prototype):
          (SVGPointList::cache):
          (SVGPolygonElement::get):
          (SVGPolygonElement::getInParents):
          (SVGPolygonElement::prototype):
          (SVGPolygonElement::cache):
          (SVGPolylineElement::get):
          (SVGPolylineElement::getInParents):
          (SVGPolylineElement::prototype):
          (SVGPolylineElement::cache):
          (SVGPreserveAspectRatio::get):
          (SVGPreserveAspectRatio::getInParents):
          (SVGPreserveAspectRatio::prototype):
          (SVGPreserveAspectRatio::cache):
          (SVGRadialGradientElement::get):
          (SVGRadialGradientElement::getInParents):
          (SVGRadialGradientElement::prototype):
          (SVGRadialGradientElement::cache):
          (SVGRect::get):
          (SVGRect::getInParents):
          (SVGRect::prototype):
          (SVGRect::cache):
          (SVGRectElement::get):
          (SVGRectElement::getInParents):
          (SVGRectElement::prototype):
          (SVGRectElement::cache):
          (SVGSVGElement::hasProperty):
          (SVGSVGElement::get):
          (SVGSVGElement::getInParents):
          (SVGSVGElement::prototype):
          (SVGSVGElement::cache):
          (SVGScriptElement::get):
          (SVGScriptElement::getInParents):
          (SVGScriptElement::prototype):
          (SVGScriptElement::cache):
          (SVGSetElement::get):
          (SVGSetElement::getInParents):
          (SVGSetElement::prototype):
          (SVGSetElement::cache):
          (SVGStopElement::get):
          (SVGStopElement::getInParents):
          (SVGStopElement::prototype):
          (SVGStopElement::cache):
          (SVGStringList::hasProperty):
          (SVGStringList::get):
          (SVGStringList::getInParents):
          (SVGStringList::prototype):
          (SVGStringList::cache):
          (SVGStylable::hasProperty):
          (SVGStylable::get):
          (SVGStylable::getInParents):
          (SVGStylable::prototype):
          (SVGStylable::cache):
          (SVGStyleElement::get):
          (SVGStyleElement::getInParents):
          (SVGStyleElement::prototype):
          (SVGStyleElement::cache):
          (SVGSwitchElement::get):
          (SVGSwitchElement::getInParents):
          (SVGSwitchElement::prototype):
          (SVGSwitchElement::cache):
          (SVGSymbolElement::get):
          (SVGSymbolElement::getInParents):
          (SVGSymbolElement::prototype):
          (SVGSymbolElement::cache):
          (SVGTSpanElement::get):
          (SVGTSpanElement::getInParents):
          (SVGTSpanElement::prototype):
          (SVGTSpanElement::cache):
          (SVGTests::hasProperty):
          (SVGTests::get):
          (SVGTests::getInParents):
          (SVGTests::prototype):
          (SVGTests::cache):
          (SVGTextContentElement::hasProperty):
          (SVGTextContentElement::get):
          (SVGTextContentElement::getInParents):
          (SVGTextContentElement::prototype):
          (SVGTextContentElement::cache):
          (SVGTextElement::get):
          (SVGTextElement::getInParents):
          (SVGTextElement::prototype):
          (SVGTextElement::cache):
          (SVGTextPositioningElement::get):
          (SVGTextPositioningElement::getInParents):
          (SVGTextPositioningElement::prototype):
          (SVGTextPositioningElement::cache):
          (SVGTitleElement::get):
          (SVGTitleElement::getInParents):
          (SVGTitleElement::prototype):
          (SVGTitleElement::cache):
          (SVGTransform::hasProperty):
          (SVGTransform::get):
          (SVGTransform::getInParents):
          (SVGTransform::prototype):
          (SVGTransform::cache):
          (SVGTransformList::hasProperty):
          (SVGTransformList::get):
          (SVGTransformList::getInParents):
          (SVGTransformList::prototype):
          (SVGTransformList::cache):
          (SVGTransformable::get):
          (SVGTransformable::getInParents):
          (SVGTransformable::prototype):
          (SVGTransformable::cache):
          (SVGURIReference::get):
          (SVGURIReference::getInParents):
          (SVGURIReference::prototype):
          (SVGURIReference::cache):
          (SVGUseElement::get):
          (SVGUseElement::getInParents):
          (SVGUseElement::prototype):
          (SVGUseElement::cache):
          (SVGViewElement::get):
          (SVGViewElement::getInParents):
          (SVGViewElement::prototype):
          (SVGViewElement::cache):
          (SVGZoomAndPan::get):
          (SVGZoomAndPan::getInParents):
          (SVGZoomAndPan::prototype):
          (SVGZoomAndPan::cache):
          (SVGZoomEvent::get):
          (SVGZoomEvent::getInParents):
          (SVGZoomEvent::prototype):
          (SVGZoomEvent::cache):
          * ksvg2/dom/SVGAElement.cpp:
          (SVGAElement::getValueProperty):
          * ksvg2/dom/SVGAElement.h:
          * ksvg2/dom/SVGAngle.cpp:
          (SVGAngle::getValueProperty):
          (SVGAngle::putValueProperty):
          (SVGAngleProtoFunc::callAsFunction):
          * ksvg2/dom/SVGAngle.h:
          * ksvg2/dom/SVGAnimateColorElement.cpp:
          (SVGAnimateColorElement::getValueProperty):
          * ksvg2/dom/SVGAnimateColorElement.h:
          * ksvg2/dom/SVGAnimateElement.cpp:
          (SVGAnimateElement::getValueProperty):
          * ksvg2/dom/SVGAnimateElement.h:
          * ksvg2/dom/SVGAnimateTransformElement.cpp:
          (SVGAnimateTransformElement::getValueProperty):
          * ksvg2/dom/SVGAnimateTransformElement.h:
          * ksvg2/dom/SVGAnimatedAngle.cpp:
          (SVGAnimatedAngle::getValueProperty):
          * ksvg2/dom/SVGAnimatedAngle.h:
          * ksvg2/dom/SVGAnimatedBoolean.cpp:
          (SVGAnimatedBoolean::getValueProperty):
          (SVGAnimatedBoolean::putValueProperty):
          * ksvg2/dom/SVGAnimatedBoolean.h:
          * ksvg2/dom/SVGAnimatedEnumeration.cpp:
          (SVGAnimatedEnumeration::getValueProperty):
          (SVGAnimatedEnumeration::putValueProperty):
          * ksvg2/dom/SVGAnimatedEnumeration.h:
          * ksvg2/dom/SVGAnimatedInteger.cpp:
          (SVGAnimatedInteger::getValueProperty):
          (SVGAnimatedInteger::putValueProperty):
          * ksvg2/dom/SVGAnimatedInteger.h:
          * ksvg2/dom/SVGAnimatedLength.cpp:
          (SVGAnimatedLength::getValueProperty):
          * ksvg2/dom/SVGAnimatedLength.h:
          * ksvg2/dom/SVGAnimatedLengthList.cpp:
          (SVGAnimatedLengthList::getValueProperty):
          * ksvg2/dom/SVGAnimatedLengthList.h:
          * ksvg2/dom/SVGAnimatedNumber.cpp:
          (SVGAnimatedNumber::getValueProperty):
          (SVGAnimatedNumber::putValueProperty):
          * ksvg2/dom/SVGAnimatedNumber.h:
          * ksvg2/dom/SVGAnimatedNumberList.cpp:
          (SVGAnimatedNumberList::getValueProperty):
          * ksvg2/dom/SVGAnimatedNumberList.h:
          * ksvg2/dom/SVGAnimatedPathData.cpp:
          (SVGAnimatedPathData::getValueProperty):
          * ksvg2/dom/SVGAnimatedPathData.h:
          * ksvg2/dom/SVGAnimatedPoints.cpp:
          (SVGAnimatedPoints::getValueProperty):
          * ksvg2/dom/SVGAnimatedPoints.h:
          * ksvg2/dom/SVGAnimatedPreserveAspectRatio.cpp:
          (SVGAnimatedPreserveAspectRatio::getValueProperty):
          * ksvg2/dom/SVGAnimatedPreserveAspectRatio.h:
          * ksvg2/dom/SVGAnimatedRect.cpp:
          (SVGAnimatedRect::getValueProperty):
          * ksvg2/dom/SVGAnimatedRect.h:
          * ksvg2/dom/SVGAnimatedString.cpp:
          (SVGAnimatedString::getValueProperty):
          (SVGAnimatedString::putValueProperty):
          * ksvg2/dom/SVGAnimatedString.h:
          * ksvg2/dom/SVGAnimatedTransformList.cpp:
          (SVGAnimatedTransformList::getValueProperty):
          * ksvg2/dom/SVGAnimatedTransformList.h:
          * ksvg2/dom/SVGAnimationElement.cpp:
          (SVGAnimationElement::getValueProperty):
          (SVGAnimationElementProtoFunc::callAsFunction):
          * ksvg2/dom/SVGAnimationElement.h:
          * ksvg2/dom/SVGCircleElement.cpp:
          (SVGCircleElement::getValueProperty):
          * ksvg2/dom/SVGCircleElement.h:
          * ksvg2/dom/SVGClipPathElement.cpp:
          (SVGClipPathElement::getValueProperty):
          * ksvg2/dom/SVGClipPathElement.h:
          * ksvg2/dom/SVGColor.cpp:
          (SVGColor::getValueProperty):
          (SVGColorProtoFunc::callAsFunction):
          * ksvg2/dom/SVGColor.h:
          * ksvg2/dom/SVGComponentTransferFunctionElement.cpp:
          (SVGComponentTransferFunctionElement::getValueProperty):
          * ksvg2/dom/SVGComponentTransferFunctionElement.h:
          * ksvg2/dom/SVGDefsElement.cpp:
          (SVGDefsElement::getValueProperty):
          * ksvg2/dom/SVGDefsElement.h:
          * ksvg2/dom/SVGDescElement.cpp:
          (SVGDescElement::getValueProperty):
          * ksvg2/dom/SVGDescElement.h:
          * ksvg2/dom/SVGDocument.cpp:
          (SVGDocument::getValueProperty):
          * ksvg2/dom/SVGDocument.h:
          * ksvg2/dom/SVGElement.cpp:
          (SVGElement::getValueProperty):
          (SVGElement::putValueProperty):
          * ksvg2/dom/SVGElement.h:
          * ksvg2/dom/SVGElementInstance.cpp:
          (SVGElementInstance::getValueProperty):
          * ksvg2/dom/SVGElementInstance.h:
          * ksvg2/dom/SVGElementInstanceList.cpp:
          (SVGElementInstanceList::getValueProperty):
          (SVGElementInstanceListProtoFunc::callAsFunction):
          * ksvg2/dom/SVGElementInstanceList.h:
          * ksvg2/dom/SVGEllipseElement.cpp:
          (SVGEllipseElement::getValueProperty):
          * ksvg2/dom/SVGEllipseElement.h:
          * ksvg2/dom/SVGException.cpp:
          (SVGException::getValueProperty):
          * ksvg2/dom/SVGException.h:
          * ksvg2/dom/SVGExternalResourcesRequired.cpp:
          (SVGExternalResourcesRequired::getValueProperty):
          * ksvg2/dom/SVGExternalResourcesRequired.h:
          * ksvg2/dom/SVGFEBlendElement.cpp:
          (SVGFEBlendElement::getValueProperty):
          * ksvg2/dom/SVGFEBlendElement.h:
          * ksvg2/dom/SVGFEColorMatrixElement.cpp:
          (SVGFEColorMatrixElement::getValueProperty):
          * ksvg2/dom/SVGFEColorMatrixElement.h:
          * ksvg2/dom/SVGFEComponentTransferElement.cpp:
          (SVGFEComponentTransferElement::getValueProperty):
          * ksvg2/dom/SVGFEComponentTransferElement.h:
          * ksvg2/dom/SVGFECompositeElement.cpp:
          (SVGFECompositeElement::getValueProperty):
          * ksvg2/dom/SVGFECompositeElement.h:
          * ksvg2/dom/SVGFEFloodElement.cpp:
          (SVGFEFloodElement::getValueProperty):
          * ksvg2/dom/SVGFEFloodElement.h:
          * ksvg2/dom/SVGFEGaussianBlurElement.cpp:
          (SVGFEGaussianBlurElement::getValueProperty):
          (SVGFEGaussianBlurElementProtoFunc::callAsFunction):
          * ksvg2/dom/SVGFEGaussianBlurElement.h:
          * ksvg2/dom/SVGFEImageElement.cpp:
          (SVGFEImageElement::getValueProperty):
          * ksvg2/dom/SVGFEImageElement.h:
          * ksvg2/dom/SVGFEMergeElement.cpp:
          (SVGFEMergeElement::getValueProperty):
          * ksvg2/dom/SVGFEMergeElement.h:
          * ksvg2/dom/SVGFEMergeNodeElement.cpp:
          (SVGFEMergeNodeElement::getValueProperty):
          * ksvg2/dom/SVGFEMergeNodeElement.h:
          * ksvg2/dom/SVGFEOffsetElement.cpp:
          (SVGFEOffsetElement::getValueProperty):
          * ksvg2/dom/SVGFEOffsetElement.h:
          * ksvg2/dom/SVGFETileElement.cpp:
          (SVGFETileElement::getValueProperty):
          * ksvg2/dom/SVGFETileElement.h:
          * ksvg2/dom/SVGFETurbulenceElement.cpp:
          (SVGFETurbulenceElement::getValueProperty):
          * ksvg2/dom/SVGFETurbulenceElement.h:
          * ksvg2/dom/SVGFilterElement.cpp:
          (SVGFilterElement::getValueProperty):
          (SVGFilterElementProtoFunc::callAsFunction):
          * ksvg2/dom/SVGFilterElement.h:
          * ksvg2/dom/SVGFilterPrimitiveStandardAttributes.cpp:
          (SVGFilterPrimitiveStandardAttributes::getValueProperty):
          * ksvg2/dom/SVGFilterPrimitiveStandardAttributes.h:
          * ksvg2/dom/SVGFitToViewBox.cpp:
          (SVGFitToViewBox::getValueProperty):
          * ksvg2/dom/SVGFitToViewBox.h:
          * ksvg2/dom/SVGGElement.cpp:
          (SVGGElement::getValueProperty):
          * ksvg2/dom/SVGGElement.h:
          * ksvg2/dom/SVGGradientElement.cpp:
          (SVGGradientElement::getValueProperty):
          * ksvg2/dom/SVGGradientElement.h:
          * ksvg2/dom/SVGImageElement.cpp:
          (SVGImageElement::getValueProperty):
          * ksvg2/dom/SVGImageElement.h:
          * ksvg2/dom/SVGLangSpace.cpp:
          (SVGLangSpace::getValueProperty):
          (SVGLangSpace::putValueProperty):
          * ksvg2/dom/SVGLangSpace.h:
          * ksvg2/dom/SVGLength.cpp:
          (SVGLength::getValueProperty):
          (SVGLength::putValueProperty):
          (SVGLengthProtoFunc::callAsFunction):
          * ksvg2/dom/SVGLength.h:
          * ksvg2/dom/SVGLengthList.cpp:
          (SVGLengthList::getValueProperty):
          (SVGLengthListProtoFunc::callAsFunction):
          * ksvg2/dom/SVGLengthList.h:
          * ksvg2/dom/SVGLineElement.cpp:
          (SVGLineElement::getValueProperty):
          * ksvg2/dom/SVGLineElement.h:
          * ksvg2/dom/SVGLinearGradientElement.cpp:
          (SVGLinearGradientElement::getValueProperty):
          * ksvg2/dom/SVGLinearGradientElement.h:
          * ksvg2/dom/SVGLocatable.cpp:
          (SVGLocatable::getValueProperty):
          (SVGLocatableProtoFunc::callAsFunction):
          * ksvg2/dom/SVGLocatable.h:
          * ksvg2/dom/SVGMarkerElement.cpp:
          (SVGMarkerElement::getValueProperty):
          (SVGMarkerElementProtoFunc::callAsFunction):
          * ksvg2/dom/SVGMarkerElement.h:
          * ksvg2/dom/SVGMatrix.cpp:
          (SVGMatrix::getValueProperty):
          (SVGMatrix::putValueProperty):
          (SVGMatrixProtoFunc::callAsFunction):
          * ksvg2/dom/SVGMatrix.h:
          * ksvg2/dom/SVGNumber.cpp:
          (SVGNumber::getValueProperty):
          (SVGNumber::putValueProperty):
          * ksvg2/dom/SVGNumber.h:
          * ksvg2/dom/SVGNumberList.cpp:
          (SVGNumberList::getValueProperty):
          (SVGNumberListProtoFunc::callAsFunction):
          * ksvg2/dom/SVGNumberList.h:
          * ksvg2/dom/SVGPaint.cpp:
          (SVGPaint::getValueProperty):
          (SVGPaintProtoFunc::callAsFunction):
          * ksvg2/dom/SVGPaint.h:
          * ksvg2/dom/SVGPathElement.cpp:
          (SVGPathElement::getValueProperty):
          (SVGPathElementProtoFunc::callAsFunction):
          * ksvg2/dom/SVGPathElement.h:
          * ksvg2/dom/SVGPathSeg.cpp:
          (SVGPathSeg::getValueProperty):
          * ksvg2/dom/SVGPathSeg.h:
          * ksvg2/dom/SVGPathSegArc.cpp:
          (SVGPathSegArcAbs::getValueProperty):
          (SVGPathSegArcAbs::putValueProperty):
          (SVGPathSegArcRel::getValueProperty):
          (SVGPathSegArcRel::putValueProperty):
          * ksvg2/dom/SVGPathSegArc.h:
          * ksvg2/dom/SVGPathSegCurvetoCubic.cpp:
          (SVGPathSegCurvetoCubicAbs::getValueProperty):
          (SVGPathSegCurvetoCubicAbs::putValueProperty):
          (SVGPathSegCurvetoCubicRel::getValueProperty):
          (SVGPathSegCurvetoCubicRel::putValueProperty):
          * ksvg2/dom/SVGPathSegCurvetoCubic.h:
          * ksvg2/dom/SVGPathSegCurvetoCubicSmooth.cpp:
          (SVGPathSegCurvetoCubicSmoothAbs::getValueProperty):
          (SVGPathSegCurvetoCubicSmoothAbs::putValueProperty):
          (SVGPathSegCurvetoCubicSmoothRel::getValueProperty):
          (SVGPathSegCurvetoCubicSmoothRel::putValueProperty):
          * ksvg2/dom/SVGPathSegCurvetoCubicSmooth.h:
          * ksvg2/dom/SVGPathSegCurvetoQuadratic.cpp:
          (SVGPathSegCurvetoQuadraticAbs::getValueProperty):
          (SVGPathSegCurvetoQuadraticAbs::putValueProperty):
          (SVGPathSegCurvetoQuadraticRel::getValueProperty):
          (SVGPathSegCurvetoQuadraticRel::putValueProperty):
          * ksvg2/dom/SVGPathSegCurvetoQuadratic.h:
          * ksvg2/dom/SVGPathSegCurvetoQuadraticSmooth.cpp:
          (SVGPathSegCurvetoQuadraticSmoothAbs::getValueProperty):
          (SVGPathSegCurvetoQuadraticSmoothAbs::putValueProperty):
          (SVGPathSegCurvetoQuadraticSmoothRel::getValueProperty):
          (SVGPathSegCurvetoQuadraticSmoothRel::putValueProperty):
          * ksvg2/dom/SVGPathSegCurvetoQuadraticSmooth.h:
          * ksvg2/dom/SVGPathSegLineto.cpp:
          (SVGPathSegLinetoAbs::getValueProperty):
          (SVGPathSegLinetoAbs::putValueProperty):
          (SVGPathSegLinetoRel::getValueProperty):
          (SVGPathSegLinetoRel::putValueProperty):
          * ksvg2/dom/SVGPathSegLineto.h:
          * ksvg2/dom/SVGPathSegLinetoHorizontal.cpp:
          (SVGPathSegLinetoHorizontalAbs::getValueProperty):
          (SVGPathSegLinetoHorizontalAbs::putValueProperty):
          (SVGPathSegLinetoHorizontalRel::getValueProperty):
          (SVGPathSegLinetoHorizontalRel::putValueProperty):
          * ksvg2/dom/SVGPathSegLinetoHorizontal.h:
          * ksvg2/dom/SVGPathSegLinetoVertical.cpp:
          (SVGPathSegLinetoVerticalAbs::getValueProperty):
          (SVGPathSegLinetoVerticalAbs::putValueProperty):
          (SVGPathSegLinetoVerticalRel::getValueProperty):
          (SVGPathSegLinetoVerticalRel::putValueProperty):
          * ksvg2/dom/SVGPathSegLinetoVertical.h:
          * ksvg2/dom/SVGPathSegList.cpp:
          (SVGPathSegList::getValueProperty):
          (SVGPathSegListProtoFunc::callAsFunction):
          * ksvg2/dom/SVGPathSegList.h:
          * ksvg2/dom/SVGPathSegMoveto.cpp:
          (SVGPathSegMovetoAbs::getValueProperty):
          (SVGPathSegMovetoAbs::putValueProperty):
          (SVGPathSegMovetoRel::getValueProperty):
          (SVGPathSegMovetoRel::putValueProperty):
          * ksvg2/dom/SVGPathSegMoveto.h:
          * ksvg2/dom/SVGPatternElement.cpp:
          (SVGPatternElement::getValueProperty):
          * ksvg2/dom/SVGPatternElement.h:
          * ksvg2/dom/SVGPoint.cpp:
          (SVGPoint::getValueProperty):
          (SVGPoint::putValueProperty):
          (SVGPointProtoFunc::callAsFunction):
          * ksvg2/dom/SVGPoint.h:
          * ksvg2/dom/SVGPointList.cpp:
          (SVGPointList::getValueProperty):
          (SVGPointListProtoFunc::callAsFunction):
          * ksvg2/dom/SVGPointList.h:
          * ksvg2/dom/SVGPolygonElement.cpp:
          (SVGPolygonElement::getValueProperty):
          * ksvg2/dom/SVGPolygonElement.h:
          * ksvg2/dom/SVGPolylineElement.cpp:
          (SVGPolylineElement::getValueProperty):
          * ksvg2/dom/SVGPolylineElement.h:
          * ksvg2/dom/SVGPreserveAspectRatio.cpp:
          (SVGPreserveAspectRatio::getValueProperty):
          (SVGPreserveAspectRatio::putValueProperty):
          * ksvg2/dom/SVGPreserveAspectRatio.h:
          * ksvg2/dom/SVGRadialGradientElement.cpp:
          (SVGRadialGradientElement::getValueProperty):
          * ksvg2/dom/SVGRadialGradientElement.h:
          * ksvg2/dom/SVGRect.cpp:
          (SVGRect::getValueProperty):
          (SVGRect::putValueProperty):
          * ksvg2/dom/SVGRect.h:
          * ksvg2/dom/SVGRectElement.cpp:
          (SVGRectElement::getValueProperty):
          * ksvg2/dom/SVGRectElement.h:
          * ksvg2/dom/SVGSVGElement.cpp:
          (SVGSVGElement::getValueProperty):
          (SVGSVGElement::putValueProperty):
          (SVGSVGElementProtoFunc::callAsFunction):
          * ksvg2/dom/SVGSVGElement.h:
          * ksvg2/dom/SVGScriptElement.cpp:
          (SVGScriptElement::getValueProperty):
          (SVGScriptElement::putValueProperty):
          * ksvg2/dom/SVGScriptElement.h:
          * ksvg2/dom/SVGSetElement.cpp:
          (SVGSetElement::getValueProperty):
          * ksvg2/dom/SVGSetElement.h:
          * ksvg2/dom/SVGStopElement.cpp:
          (SVGStopElement::getValueProperty):
          * ksvg2/dom/SVGStopElement.h:
          * ksvg2/dom/SVGStringList.cpp:
          (SVGStringList::getValueProperty):
          (SVGStringListProtoFunc::callAsFunction):
          * ksvg2/dom/SVGStringList.h:
          * ksvg2/dom/SVGStylable.cpp:
          (SVGStylable::getValueProperty):
          (SVGStylableProtoFunc::callAsFunction):
          * ksvg2/dom/SVGStylable.h:
          * ksvg2/dom/SVGStyleElement.cpp:
          (SVGStyleElement::getValueProperty):
          (SVGStyleElement::putValueProperty):
          * ksvg2/dom/SVGStyleElement.h:
          * ksvg2/dom/SVGSwitchElement.cpp:
          (SVGSwitchElement::getValueProperty):
          * ksvg2/dom/SVGSwitchElement.h:
          * ksvg2/dom/SVGSymbolElement.cpp:
          (SVGSymbolElement::getValueProperty):
          * ksvg2/dom/SVGSymbolElement.h:
          * ksvg2/dom/SVGTSpanElement.cpp:
          (SVGTSpanElement::getValueProperty):
          * ksvg2/dom/SVGTSpanElement.h:
          * ksvg2/dom/SVGTests.cpp:
          (SVGTests::getValueProperty):
          (SVGTestsProtoFunc::callAsFunction):
          * ksvg2/dom/SVGTests.h:
          * ksvg2/dom/SVGTextContentElement.cpp:
          (SVGTextContentElement::getValueProperty):
          (SVGTextContentElementProtoFunc::callAsFunction):
          * ksvg2/dom/SVGTextContentElement.h:
          * ksvg2/dom/SVGTextElement.cpp:
          (SVGTextElement::getValueProperty):
          * ksvg2/dom/SVGTextElement.h:
          * ksvg2/dom/SVGTextPositioningElement.cpp:
          (SVGTextPositioningElement::getValueProperty):
          * ksvg2/dom/SVGTextPositioningElement.h:
          * ksvg2/dom/SVGTitleElement.cpp:
          (SVGTitleElement::getValueProperty):
          * ksvg2/dom/SVGTitleElement.h:
          * ksvg2/dom/SVGTransform.cpp:
          (SVGTransform::getValueProperty):
          (SVGTransformProtoFunc::callAsFunction):
          * ksvg2/dom/SVGTransform.h:
          * ksvg2/dom/SVGTransformList.cpp:
          (SVGTransformList::getValueProperty):
          (SVGTransformListProtoFunc::callAsFunction):
          * ksvg2/dom/SVGTransformList.h:
          * ksvg2/dom/SVGTransformable.cpp:
          (SVGTransformable::getValueProperty):
          * ksvg2/dom/SVGTransformable.h:
          * ksvg2/dom/SVGURIReference.cpp:
          (SVGURIReference::getValueProperty):
          * ksvg2/dom/SVGURIReference.h:
          * ksvg2/dom/SVGUseElement.cpp:
          (SVGUseElement::getValueProperty):
          * ksvg2/dom/SVGUseElement.h:
          * ksvg2/dom/SVGViewElement.cpp:
          (SVGViewElement::getValueProperty):
          * ksvg2/dom/SVGViewElement.h:
          * ksvg2/dom/SVGZoomAndPan.cpp:
          (SVGZoomAndPan::getValueProperty):
          (SVGZoomAndPan::putValueProperty):
          * ksvg2/dom/SVGZoomAndPan.h:
          * ksvg2/ecma/Ecma.cpp:
          (KSVG::getSVGPathSeg):
          * ksvg2/ecma/Ecma.h:
          * ksvg2/ecma/GlobalObject.cpp:
          (GlobalObject::get):
          * ksvg2/ecma/GlobalObject.h:
          * ksvg2/events/SVGEvent.cpp:
          (SVGEvent::getValueProperty):
          * ksvg2/events/SVGEvent.h:
          * ksvg2/events/SVGZoomEvent.cpp:
          (SVGZoomEvent::getValueProperty):
          * ksvg2/events/SVGZoomEvent.h:
          * ksvg2/impl/SVGScriptElementImpl.cpp:
          (SVGScriptElementImpl::executeScript):
  
  2005-08-07  Darin Adler  <darin at apple.com>
  
          Rubber stamped by Maciej.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4313
            eliminate KJS::Value and KJS::Object smart pointer wrappers (for simplicity and speed)
  
          * khtml/ecma/domparser.cpp:
          (KJS::DOMParserConstructorImp::construct):
          (KJS::DOMParserProtoFunc::callAsFunction):
          * khtml/ecma/domparser.h:
          * khtml/ecma/kjs_binding.cpp:
          (KJS::ScriptInterpreter::ScriptInterpreter):
          (KJS::ScriptInterpreter::isGlobalObject):
          (KJS::ScriptInterpreter::createLanguageInstanceForValue):
          (KJS::getStringOrNull):
          (KJS::ValueToVariant):
          (KJS::setDOMException):
          * khtml/ecma/kjs_binding.h:
          (KJS::DOMFunction::toPrimitive):
          (KJS::cacheDOMObject):
          * khtml/ecma/kjs_css.cpp:
          (KJS::DOMCSSStyleDeclaration::indexGetter):
          (KJS::DOMCSSStyleDeclaration::cssPropertyGetter):
          (KJS::DOMCSSStyleDeclaration::getValueProperty):
          (KJS::DOMCSSStyleDeclaration::put):
          (KJS::DOMCSSStyleDeclarationProtoFunc::callAsFunction):
          (KJS::DOMStyleSheet::getValueProperty):
          (KJS::DOMStyleSheet::put):
          (KJS::DOMStyleSheetList::getValueProperty):
          (KJS::DOMStyleSheetList::indexGetter):
          (KJS::DOMStyleSheetList::nameGetter):
          (KJS::DOMStyleSheetListFunc::callAsFunction):
          (KJS::DOMMediaList::getValueProperty):
          (KJS::DOMMediaList::indexGetter):
          (KJS::DOMMediaList::put):
          (KJS::KJS::DOMMediaListProtoFunc::callAsFunction):
          (KJS::DOMCSSStyleSheet::getValueProperty):
          (KJS::DOMCSSStyleSheetProtoFunc::callAsFunction):
          (KJS::DOMCSSRuleList::getValueProperty):
          (KJS::DOMCSSRuleList::indexGetter):
          (KJS::DOMCSSRuleListFunc::callAsFunction):
          (KJS::DOMCSSRule::getValueProperty):
          (KJS::DOMCSSRule::put):
          (KJS::DOMCSSRule::putValueProperty):
          (KJS::DOMCSSRuleFunc::callAsFunction):
          (KJS::CSSRuleConstructor::getValueProperty):
          (KJS::getCSSRuleConstructor):
          (KJS::DOMCSSValue::getValueProperty):
          (KJS::DOMCSSValue::put):
          (KJS::getDOMCSSValue):
          (KJS::CSSValueConstructor::getValueProperty):
          (KJS::getCSSValueConstructor):
          (KJS::DOMCSSPrimitiveValue::getValueProperty):
          (KJS::DOMCSSPrimitiveValueProtoFunc::callAsFunction):
          (KJS::CSSPrimitiveValueConstructor::getValueProperty):
          (KJS::getCSSPrimitiveValueConstructor):
          (KJS::DOMCSSValueList::getValueProperty):
          (KJS::DOMCSSValueList::indexGetter):
          (KJS::DOMCSSValueListFunc::callAsFunction):
          (KJS::DOMRGBColor::getValueProperty):
          (KJS::DOMRect::getValueProperty):
          (KJS::DOMCounter::getValueProperty):
          * khtml/ecma/kjs_css.h:
          * khtml/ecma/kjs_dom.cpp:
          (KJS::DOMNode::getValueProperty):
          (KJS::DOMNode::put):
          (KJS::DOMNode::putValueProperty):
          (KJS::DOMNode::toPrimitive):
          (KJS::DOMNode::getListener):
          (KJS::DOMNodeProtoFunc::callAsFunction):
          (KJS::DOMNodeList::toPrimitive):
          (KJS::DOMNodeList::getValueProperty):
          (KJS::DOMNodeList::indexGetter):
          (KJS::DOMNodeList::nameGetter):
          (KJS::DOMNodeList::callAsFunction):
          (KJS::DOMNodeListFunc::DOMNodeListFunc):
          (KJS::DOMNodeListFunc::callAsFunction):
          (KJS::DOMAttr::getValueProperty):
          (KJS::DOMAttr::put):
          (KJS::DOMAttr::putValueProperty):
          (KJS::DOMDocument::getValueProperty):
          (KJS::DOMDocument::put):
          (KJS::DOMDocument::putValueProperty):
          (KJS::DOMDocumentProtoFunc::callAsFunction):
          (KJS::DOMElement::getValueProperty):
          (KJS::DOMElement::attributeGetter):
          (KJS::DOMElement::getOwnPropertySlot):
          (KJS::DOMElementProtoFunc::callAsFunction):
          (KJS::DOMDOMImplementationProtoFunc::callAsFunction):
          (KJS::DOMDocumentType::getValueProperty):
          (KJS::DOMNamedNodeMap::lengthGetter):
          (KJS::DOMNamedNodeMap::indexGetter):
          (KJS::DOMNamedNodeMapProtoFunc::callAsFunction):
          (KJS::DOMProcessingInstruction::getValueProperty):
          (KJS::DOMProcessingInstruction::put):
          (KJS::DOMNotation::getValueProperty):
          (KJS::DOMEntity::getValueProperty):
          (KJS::NodeConstructor::getValueProperty):
          (KJS::DOMExceptionConstructor::getValueProperty):
          (KJS::DOMNamedNodesCollection::lengthGetter):
          (KJS::DOMNamedNodesCollection::indexGetter):
          (KJS::DOMCharacterData::getValueProperty):
          (KJS::DOMCharacterData::put):
          (KJS::DOMCharacterDataProtoFunc::callAsFunction):
          (KJS::DOMTextProtoFunc::callAsFunction):
          * khtml/ecma/kjs_dom.h:
          * khtml/ecma/kjs_events.cpp:
          (KJS::JSAbstractEventListener::handleEvent):
          (KJS::JSUnprotectedEventListener::JSUnprotectedEventListener):
          (KJS::JSUnprotectedEventListener::~JSUnprotectedEventListener):
          (KJS::JSUnprotectedEventListener::listenerObj):
          (KJS::JSUnprotectedEventListener::windowObj):
          (KJS::JSUnprotectedEventListener::mark):
          (KJS::JSEventListener::JSEventListener):
          (KJS::JSEventListener::~JSEventListener):
          (KJS::JSEventListener::listenerObj):
          (KJS::JSEventListener::windowObj):
          (KJS::JSLazyEventListener::JSLazyEventListener):
          (KJS::JSLazyEventListener::handleEvent):
          (KJS::JSLazyEventListener::listenerObj):
          (KJS::JSLazyEventListener::parseCode):
          (KJS::getNodeEventListener):
          (KJS::EventConstructor::getValueProperty):
          (KJS::getEventConstructor):
          (KJS::DOMEvent::getValueProperty):
          (KJS::DOMEvent::put):
          (KJS::DOMEvent::putValueProperty):
          (KJS::DOMEventProtoFunc::callAsFunction):
          (KJS::getDOMEvent):
          (KJS::EventExceptionConstructor::getValueProperty):
          (KJS::getEventExceptionConstructor):
          (KJS::DOMUIEvent::getValueProperty):
          (KJS::DOMUIEventProtoFunc::callAsFunction):
          (KJS::DOMMouseEvent::getValueProperty):
          (KJS::DOMMouseEventProtoFunc::callAsFunction):
          (KJS::DOMKeyboardEvent::getValueProperty):
          (KJS::DOMKeyboardEventProtoFunc::callAsFunction):
          (KJS::MutationEventConstructor::getValueProperty):
          (KJS::getMutationEventConstructor):
          (KJS::DOMMutationEvent::getValueProperty):
          (KJS::DOMMutationEventProtoFunc::callAsFunction):
          (KJS::DOMWheelEvent::getValueProperty):
          (KJS::DOMWheelEventProtoFunc::callAsFunction):
          (KJS::stringOrUndefined):
          (KJS::Clipboard::getValueProperty):
          (KJS::Clipboard::put):
          (KJS::Clipboard::putValueProperty):
          (KJS::ClipboardProtoFunc::callAsFunction):
          * khtml/ecma/kjs_events.h:
          (KJS::JSAbstractEventListener::listenerObjImp):
          * khtml/ecma/kjs_html.cpp:
          (KJS::KJS::HTMLDocFunction::callAsFunction):
          (KJS::HTMLDocument::namedItemGetter):
          (KJS::HTMLDocument::getValueProperty):
          (KJS::KJS::HTMLDocument::put):
          (KJS::KJS::HTMLDocument::putValueProperty):
          (KJS::HTMLElement::formIndexGetter):
          (KJS::HTMLElement::formNameGetter):
          (KJS::HTMLElement::selectIndexGetter):
          (KJS::HTMLElement::framesetNameGetter):
          (KJS::HTMLElement::frameWindowPropertyGetter):
          (KJS::HTMLElement::runtimeObjectGetter):
          (KJS::HTMLElement::runtimeObjectPropertyGetter):
          (KJS::HTMLElement::getOwnPropertySlot):
          (KJS::KJS::HTMLElement::implementsCall):
          (KJS::KJS::HTMLElement::callAsFunction):
          (KJS::HTMLElement::htmlGetter):
          (KJS::HTMLElement::headGetter):
          (KJS::HTMLElement::linkGetter):
          (KJS::HTMLElement::titleGetter):
          (KJS::HTMLElement::metaGetter):
          (KJS::HTMLElement::baseGetter):
          (KJS::HTMLElement::isIndexGetter):
          (KJS::HTMLElement::styleGetter):
          (KJS::HTMLElement::bodyGetter):
          (KJS::HTMLElement::formGetter):
          (KJS::HTMLElement::selectGetter):
          (KJS::HTMLElement::optGroupGetter):
          (KJS::HTMLElement::optionGetter):
          (KJS::getInputSelectionStart):
          (KJS::getInputSelectionEnd):
          (KJS::HTMLElement::inputGetter):
          (KJS::HTMLElement::textAreaGetter):
          (KJS::HTMLElement::buttonGetter):
          (KJS::HTMLElement::labelGetter):
          (KJS::HTMLElement::fieldSetGetter):
          (KJS::HTMLElement::legendGetter):
          (KJS::HTMLElement::uListGetter):
          (KJS::HTMLElement::oListGetter):
          (KJS::HTMLElement::dListGetter):
          (KJS::HTMLElement::dirGetter):
          (KJS::HTMLElement::menuGetter):
          (KJS::HTMLElement::liGetter):
          (KJS::HTMLElement::divGetter):
          (KJS::HTMLElement::paragraphGetter):
          (KJS::HTMLElement::headingGetter):
          (KJS::HTMLElement::blockQuoteGetter):
          (KJS::HTMLElement::quoteGetter):
          (KJS::HTMLElement::preGetter):
          (KJS::HTMLElement::brGetter):
          (KJS::HTMLElement::baseFontGetter):
          (KJS::HTMLElement::fontGetter):
          (KJS::HTMLElement::hrGetter):
          (KJS::HTMLElement::modGetter):
          (KJS::HTMLElement::anchorGetter):
          (KJS::HTMLElement::imageGetter):
          (KJS::HTMLElement::objectGetter):
          (KJS::HTMLElement::paramGetter):
          (KJS::HTMLElement::appletGetter):
          (KJS::HTMLElement::mapGetter):
          (KJS::HTMLElement::areaGetter):
          (KJS::HTMLElement::scriptGetter):
          (KJS::HTMLElement::tableGetter):
          (KJS::HTMLElement::tableCaptionGetter):
          (KJS::HTMLElement::tableColGetter):
          (KJS::HTMLElement::tableSectionGetter):
          (KJS::HTMLElement::tableRowGetter):
          (KJS::HTMLElement::tableCellGetter):
          (KJS::HTMLElement::frameSetGetter):
          (KJS::HTMLElement::frameGetter):
          (KJS::HTMLElement::iFrameGetter):
          (KJS::HTMLElement::marqueeGetter):
          (KJS::HTMLElement::getValueProperty):
          (KJS::HTMLElementFunction::HTMLElementFunction):
          (KJS::KJS::HTMLElementFunction::callAsFunction):
          (KJS::KJS::HTMLElement::put):
          (KJS::HTMLElement::htmlSetter):
          (KJS::HTMLElement::headSetter):
          (KJS::HTMLElement::linkSetter):
          (KJS::HTMLElement::titleSetter):
          (KJS::HTMLElement::metaSetter):
          (KJS::HTMLElement::baseSetter):
          (KJS::HTMLElement::isIndexSetter):
          (KJS::HTMLElement::styleSetter):
          (KJS::HTMLElement::bodySetter):
          (KJS::HTMLElement::formSetter):
          (KJS::HTMLElement::selectSetter):
          (KJS::HTMLElement::optGroupSetter):
          (KJS::HTMLElement::optionSetter):
          (KJS::HTMLElement::inputSetter):
          (KJS::HTMLElement::textAreaSetter):
          (KJS::HTMLElement::buttonSetter):
          (KJS::HTMLElement::labelSetter):
          (KJS::HTMLElement::fieldSetSetter):
          (KJS::HTMLElement::legendSetter):
          (KJS::HTMLElement::uListSetter):
          (KJS::HTMLElement::oListSetter):
          (KJS::HTMLElement::dListSetter):
          (KJS::HTMLElement::dirSetter):
          (KJS::HTMLElement::menuSetter):
          (KJS::HTMLElement::liSetter):
          (KJS::HTMLElement::divSetter):
          (KJS::HTMLElement::paragraphSetter):
          (KJS::HTMLElement::headingSetter):
          (KJS::HTMLElement::blockQuoteSetter):
          (KJS::HTMLElement::quoteSetter):
          (KJS::HTMLElement::preSetter):
          (KJS::HTMLElement::brSetter):
          (KJS::HTMLElement::baseFontSetter):
          (KJS::HTMLElement::fontSetter):
          (KJS::HTMLElement::hrSetter):
          (KJS::HTMLElement::modSetter):
          (KJS::HTMLElement::anchorSetter):
          (KJS::HTMLElement::imageSetter):
          (KJS::HTMLElement::objectSetter):
          (KJS::HTMLElement::paramSetter):
          (KJS::HTMLElement::appletSetter):
          (KJS::HTMLElement::mapSetter):
          (KJS::HTMLElement::areaSetter):
          (KJS::HTMLElement::scriptSetter):
          (KJS::HTMLElement::tableSetter):
          (KJS::HTMLElement::tableCaptionSetter):
          (KJS::HTMLElement::tableColSetter):
          (KJS::HTMLElement::tableSectionSetter):
          (KJS::HTMLElement::tableRowSetter):
          (KJS::HTMLElement::tableCellSetter):
          (KJS::HTMLElement::frameSetSetter):
          (KJS::HTMLElement::frameSetter):
          (KJS::HTMLElement::iFrameSetter):
          (KJS::HTMLElement::marqueeSetter):
          (KJS::HTMLElement::putValueProperty):
          (KJS::HTMLCollection::lengthGetter):
          (KJS::HTMLCollection::indexGetter):
          (KJS::HTMLCollection::nameGetter):
          (KJS::HTMLCollection::getOwnPropertySlot):
          (KJS::KJS::HTMLCollection::callAsFunction):
          (KJS::KJS::HTMLCollection::getNamedItems):
          (KJS::KJS::HTMLCollectionProtoFunc::callAsFunction):
          (KJS::HTMLSelectCollection::selectedIndexGetter):
          (KJS::KJS::HTMLSelectCollection::put):
          (KJS::OptionConstructorImp::construct):
          (KJS::ImageConstructorImp::construct):
          (KJS::Image::getValueProperty):
          (KJS::Image::put):
          (KJS::Image::putValueProperty):
          (KJS::isGradient):
          (KJS::isImagePattern):
          (KJS::KJS::Context2DFunction::callAsFunction):
          (KJS::Context2D::getValueProperty):
          (KJS::Context2D::put):
          (KJS::colorRefFromValue):
          (KJS::colorFromValue):
          (KJS::Context2D::setShadow):
          (KJS::Context2D::updateFillImagePattern):
          (KJS::Context2D::updateStrokeImagePattern):
          (KJS::Context2D::putValueProperty):
          (KJS::Context2D::Context2D):
          (KJS::Context2D::mark):
          (KJS::GradientFunction::callAsFunction):
          (KJS::Gradient::getValueProperty):
          (KJS::Gradient::put):
          (KJS::Gradient::putValueProperty):
          (KJS::ImagePattern::getValueProperty):
          (KJS::ImagePattern::put):
          (KJS::ImagePattern::putValueProperty):
          * khtml/ecma/kjs_html.h:
          * khtml/ecma/kjs_navigator.cpp:
          (KJS::Navigator::getValueProperty):
          (KJS::Plugins::getValueProperty):
          (KJS::Plugins::indexGetter):
          (KJS::Plugins::nameGetter):
          (KJS::MimeTypes::getValueProperty):
          (KJS::MimeTypes::indexGetter):
          (KJS::MimeTypes::nameGetter):
          (KJS::Plugin::getValueProperty):
          (KJS::Plugin::indexGetter):
          (KJS::Plugin::nameGetter):
          (KJS::MimeType::getValueProperty):
          (KJS::PluginsFunc::callAsFunction):
          (KJS::NavigatorFunc::callAsFunction):
          * khtml/ecma/kjs_navigator.h:
          * khtml/ecma/kjs_proxy.cpp:
          (KJSProxyImpl::evaluate):
          (TestFunctionImp::callAsFunction):
          (KJSProxyImpl::initScript):
          (KJSProxy::proxy):
          * khtml/ecma/kjs_range.cpp:
          (KJS::DOMRange::getValueProperty):
          (KJS::DOMRangeProtoFunc::callAsFunction):
          (KJS::RangeConstructor::getValueProperty):
          * khtml/ecma/kjs_range.h:
          * khtml/ecma/kjs_traversal.cpp:
          (KJS::DOMNodeIterator::getValueProperty):
          (KJS::DOMNodeIteratorProtoFunc::callAsFunction):
          (KJS::NodeFilterConstructor::getValueProperty):
          (KJS::getNodeFilterConstructor):
          (KJS::DOMNodeFilterProtoFunc::callAsFunction):
          (KJS::DOMTreeWalker::getValueProperty):
          (KJS::DOMTreeWalker::put):
          (KJS::DOMTreeWalkerProtoFunc::callAsFunction):
          (KJS::JSNodeFilterCondition::JSNodeFilterCondition):
          (KJS::JSNodeFilterCondition::acceptNode):
          * khtml/ecma/kjs_traversal.h:
          * khtml/ecma/kjs_views.cpp:
          (KJS::DOMAbstractView::getValueProperty):
          (KJS::DOMAbstractViewFunc::callAsFunction):
          * khtml/ecma/kjs_views.h:
          * khtml/ecma/kjs_window.cpp:
          (KJS::Screen::getValueProperty):
          (KJS::Window::retrieveWindow):
          (KJS::Window::retrieveActive):
          (KJS::Window::retrieve):
          (KJS::parseFeatures):
          (KJS::showModalDialog):
          (KJS::Window::getValueProperty):
          (KJS::Window::childFrameGetter):
          (KJS::Window::namedFrameGetter):
          (KJS::Window::indexGetter):
          (KJS::Window::namedItemGetter):
          (KJS::Window::put):
          (KJS::Window::installTimeout):
          (KJS::Window::setListener):
          (KJS::Window::getListener):
          (KJS::Window::getJSEventListener):
          (KJS::Window::getJSUnprotectedEventListener):
          (KJS::Window::getJSLazyEventListener):
          (KJS::WindowFunc::callAsFunction):
          (KJS::ScheduledAction::ScheduledAction):
          (KJS::ScheduledAction::execute):
          (KJS::WindowQObject::installTimeout):
          (KJS::FrameArray::getValueProperty):
          (KJS::FrameArray::indexGetter):
          (KJS::FrameArray::nameGetter):
          (KJS::Location::getValueProperty):
          (KJS::Location::put):
          (KJS::Location::toPrimitive):
          (KJS::LocationFunc::callAsFunction):
          (KJS::Selection::getValueProperty):
          (KJS::Selection::toPrimitive):
          (KJS::SelectionFunc::callAsFunction):
          (KJS::BarInfo::getValueProperty):
          (KJS::History::getValueProperty):
          (KJS::HistoryFunc::callAsFunction):
          (KJS::Konqueror::get):
          (KJS::KonquerorFunc::callAsFunction):
          * khtml/ecma/kjs_window.h:
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequestConstructorImp::construct):
          (KJS::XMLHttpRequest::getValueProperty):
          (KJS::XMLHttpRequest::put):
          (KJS::XMLHttpRequest::putValueProperty):
          (KJS::XMLHttpRequest::getAllResponseHeaders):
          (KJS::XMLHttpRequest::getResponseHeader):
          (KJS::XMLHttpRequest::getStatus):
          (KJS::XMLHttpRequest::getStatusText):
          (KJS::XMLHttpRequestProtoFunc::callAsFunction):
          * khtml/ecma/xmlhttprequest.h:
          * khtml/ecma/xmlserializer.cpp:
          (KJS::XMLSerializerConstructorImp::construct):
          (KJS::XMLSerializerProtoFunc::callAsFunction):
          * khtml/ecma/xmlserializer.h:
          * kwq/DOMUtility.mm:
          (KJS::ScriptInterpreter::createObjcInstanceForValue):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::bindingRootObject):
          (KWQKHTMLPart::windowScriptObject):
          (KWQKHTMLPart::windowScriptNPObject):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge executionContextForView:]):
          * kwq/WebCoreScriptDebugger.mm:
          (WebCoreScriptDebuggerImp::callEvent):
          (WebCoreScriptDebuggerImp::returnEvent):
          (-[WebCoreScriptDebugger finalize]):
          (-[WebCoreScriptCallFrame _convertValueToObjcValue:]):
          (-[WebCoreScriptCallFrame scopeChain]):
          (-[WebCoreScriptCallFrame evaluateWebScript:]):
  
  2005-08-07  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by darin.
  
          * kcanvas/KCanvasTreeDebug.cpp:
          (operator<<):
          Added support for printing many additional style values.
          Added the W3C SVG test suite as layout tests.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4303
  
          Test cases added:
          * svg-tests/W3C-SVG-1.1/Resources/DisplaceChecker.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/SVG-1.1-monolithic-fixed.dtd: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-add-BE-09-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-add-BE-09.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image1-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image1.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image2-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image2.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image3-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image3.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/bluesquidj.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/bullet-small.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/bullet-white.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/bullet.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/bumpMap.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/bumpMap2.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/changeColor.ICM: Added.
          * svg-tests/W3C-SVG-1.1/Resources/colorprof.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/convolveImage.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/coords-units-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/coords-units-01-f.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/coords-units-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/copyright-documents-19990405.html: Added.
          * svg-tests/W3C-SVG-1.1/Resources/diagarrow.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/ext-TestComic-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/ext-TestComic.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/fillChangeColor.ICM: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-blend-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-blend-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-color-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-color-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-composite-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-composite-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-comptran-01-f.svg-disabled: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-conv-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-conv-01-f.includeimage.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-conv-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-diffuse-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-diffuse-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-example-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/filters-example-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/gam030.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/gam030b.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/gam045.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/gam045b.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/gam056.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/gam056b.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/gam100.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/gam100b.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/gam200.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/gam200b.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/greentopbutton.jpg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/image.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/image1.jpg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/image1.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/image1_b.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/image2_b.jpg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/image2_b.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/interact-dom-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/interact-dom-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/interact-order-02-b-targ-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/interact-order-02-b-targ.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/interact-order-03-b-targ-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/interact-order-03-b-targ.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/leftarrow.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-f-1st.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-f-2nd.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-f-3rd.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-f-4th.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-f-start.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linking-uri-03-f-1st.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linking-uri-03-f-start.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linkingCircle-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linkingCircle-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linkingToc-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/linkingToc-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/magnify.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/myimage.jpg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/nav_bullet.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/nav_down.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/nav_downleft.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/nav_downright.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/nav_frame.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/nav_left.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/nav_noframe.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/nav_right.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/nav_svg.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/nav_up.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/nav_upleft.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/nav_upright.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/old-name-2-new-name1.html: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-01-f.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-02-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-02-f.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-02-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-03-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-03-f.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-03-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-04-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-04-f.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/paths-data-04-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/rects-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/rects.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/rects_b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/rects_b.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/rightarrow.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/rotate20.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-f.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-f.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/sign.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/sphere.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/struct-frag-01-B-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/struct-frag-01-B.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/struct-image-01.jpg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/struct-image-01.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/struct-image-02.jpg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/struct-image-02.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/struct-symbol-01.png: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-align-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-align-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-align-02-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-align-02-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-align-03-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-align-03-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-altglyph-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-altglyph-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-extTref-BE-18-targ-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-extTref-BE-18-targ.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-intro-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-intro-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-tref-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-tref-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-ws-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/text-ws-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/toc-sv-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/toc-sv.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/toc-svcmp-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/Resources/toc-svcmp.svg: Added.
          * svg-tests/W3C-SVG-1.1/Resources/uparrow.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-02-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-02-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-02-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-03-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-03-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-03-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-04-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-04-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-04-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-05-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-05-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-05-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-06-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-06-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-06-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-07-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-07-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-07-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-08-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-08-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-08-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-09-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-09-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-09-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-10-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-10-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-10-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-11-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-11-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-11-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-12-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-12-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-12-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-13-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-13-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-13-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-14-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-14-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-14-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-15-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-15-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-15-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-16-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-16-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-16-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-17-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-17-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-17-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-18-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-18-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-18-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-19-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-19-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-19-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-20-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-20-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-20-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-21-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-21-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-21-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-22-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-22-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-22-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-23-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-23-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-23-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-24-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-24-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-24-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-25-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-25-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-25-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-26-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-26-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-26-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-27-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-27-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-27-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-28-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-28-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-28-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-29-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-29-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/animate-elem-29-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/color-prof-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/color-prof-01-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/color-prof-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-02-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-02-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-02-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-03-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-03-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/color-prop-03-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-02-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-02-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-02-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-03-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-03-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-03-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-04-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-04-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-04-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-05-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-05-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-05-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-06-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-06-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-trans-06-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-03-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-03-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-units-03-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/coords-viewattr-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/coords-viewattr-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-viewattr-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/coords-viewattr-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/coords-viewattr-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/coords-viewattr-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/extend-namespace-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/extend-namespace-01-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/extend-namespace-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-blend-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-blend-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-blend-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-color-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-color-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-color-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-composite-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-composite-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-composite-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-comptran-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-comptran-01-b.svg-disabled: Added.
          * svg-tests/W3C-SVG-1.1/filters-conv-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-conv-01-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-conv-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-diffuse-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-diffuse-01-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-diffuse-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-displace-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-displace-01-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-displace-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-example-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-example-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-example-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-gauss-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-gauss-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-gauss-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-image-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-image-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-image-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-light-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-light-01-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-light-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-morph-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-morph-01-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-morph-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-offset-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-offset-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-offset-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-specular-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-specular-01-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-specular-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-tile-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/filters-tile-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-tile-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/filters-turb-01-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/filters-turb-01-f.svg-disabled: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-02-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-02-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-02-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-03-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-03-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-03-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-04-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-04-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/fonts-elem-04-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/interact-cursor-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/interact-cursor-01-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-cursor-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/interact-dom-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/interact-dom-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-dom-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/interact-events-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/interact-events-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-events-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-03-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-03-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-order-03-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/interact-zoom-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/interact-zoom-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/interact-zoom-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-03-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-03-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-03-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-04-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-04-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-a-04-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-03-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-03-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/linking-uri-03-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/masking-mask-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/masking-mask-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-mask-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/masking-opacity-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/masking-opacity-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-opacity-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-03-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-03-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-03-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-04-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-04-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-04-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-05-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-05-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/masking-path-05-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/metadata-example-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/metadata-example-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/metadata-example-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-02-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-02-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-02-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-03-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-03-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-03-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-04-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-04-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-fill-04-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/painting-marker-01-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/painting-marker-01-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-marker-01-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/painting-marker-02-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/painting-marker-02-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-marker-02-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/painting-render-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/painting-render-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-render-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-02-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-02-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-02-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-03-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-03-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-03-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-04-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-04-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/painting-stroke-04-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-02-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-02-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-02-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-03-f-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-03-f-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-03-f.svg: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-04-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-04-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-04-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-05-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-05-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-05-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-06-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-06-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-06-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-07-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-07-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/paths-data-07-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-03-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-03-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-03-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-04-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-04-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-04-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-05-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-05-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-05-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-06-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-06-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-06-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-07-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-07-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-07-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-08-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-08-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-08-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-09-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-09-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-09-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-10-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-10-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-10-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-11-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-11-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-11-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-12-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-12-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-grad-12-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/pservers-pattern-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/pservers-pattern-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/pservers-pattern-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-02-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-02-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-02-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-03-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-03-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-03-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-06-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-06-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-06-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-07-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-07-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-07-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-08-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-08-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/render-elems-08-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/render-groups-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/render-groups-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/render-groups-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/render-groups-03-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/render-groups-03-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/render-groups-03-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-03-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-03-b.svg-disabled: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-04-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/script-handle-04-b.svg-disabled: Added.
          * svg-tests/W3C-SVG-1.1/shapes-circle-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/shapes-circle-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/shapes-circle-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/shapes-ellipse-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/shapes-ellipse-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/shapes-ellipse-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/shapes-line-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/shapes-line-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/shapes-line-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/shapes-polygon-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/shapes-polygon-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/shapes-polygon-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/shapes-polyline-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/shapes-polyline-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/shapes-polyline-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/shapes-rect-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/shapes-rect-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/shapes-rect-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-cond-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-cond-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-cond-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-cond-02-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-cond-02-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-cond-02-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-defs-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-defs-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-defs-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-01-b.svg-disabled: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-02-b.svg-disabled: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-03-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-03-b.svg-disabled: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-04-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-04-b.svg-disabled: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-05-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-05-b.svg-disabled: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-06-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-dom-06-b.svg-disabled: Added.
          * svg-tests/W3C-SVG-1.1/struct-frag-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-frag-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-frag-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-group-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-group-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-group-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-group-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-group-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-group-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-03-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-03-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-03-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-04-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-04-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-04-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-05-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-05-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-image-05-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/struct-symbol-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/struct-symbol-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/struct-symbol-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-03-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-03-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/styling-css-03-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/styling-inherit-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/styling-inherit-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/styling-inherit-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/styling-pres-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/styling-pres-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/styling-pres-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-align-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-align-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-align-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-align-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-align-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-align-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-align-03-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-align-03-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-align-03-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-align-04-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-align-04-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-align-04-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-align-05-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-align-05-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-align-05-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-align-06-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-align-06-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-align-06-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-altglyph-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-altglyph-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-altglyph-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-deco-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-deco-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-deco-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-fonts-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-fonts-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-fonts-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-fonts-02-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-fonts-02-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-fonts-02-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-02-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-02-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-02-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-03-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-03-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-03-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-04-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-04-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-intro-04-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-path-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-path-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-path-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-spacing-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-spacing-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-spacing-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-text-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-text-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-text-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-text-03-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-text-03-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-text-03-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-tref-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-tref-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-tref-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-tselect-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-tselect-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-tselect-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-tspan-01-b-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-tspan-01-b-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-tspan-01-b.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-ws-01-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-ws-01-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-ws-01-t.svg: Added.
          * svg-tests/W3C-SVG-1.1/text-ws-02-t-expected.txt: Added.
          * svg-tests/W3C-SVG-1.1/text-ws-02-t-w3c.png: Added.
          * svg-tests/W3C-SVG-1.1/text-ws-02-t.svg: Added.
  
  2005-08-07  Anders Carlsson  <andersca at mac.com>
  
          Reviewed by darin.
  
          * khtml/ecma/kjs_dom.cpp:
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMNodeList::):
  	Add Length and Item to DOMNodeList.
  	
          * khtml/ecma/kjs_navigator.cpp:
          (KJS::Plugins::getValueProperty):
          (KJS::MimeTypes::getValueProperty):
  	Fix capitalization.
  	
  2005-08-04  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	Change over to the new PropertySlot mechanism for property
  	lookup. This allows the elimination of hasOwnProperty methods. I
  	also did a bunch of code cleanup and regularization of the various
  	property lookup methods.
  	
          Test cases added: Added a test case for a bug I found along the way.
          * layout-tests/fast/js/string-index-overflow.html:
  	* layout-tests/fast/js/string-index-overflow-expected.txt:
  	
          * khtml/ecma/kjs_binding.cpp:
          (KJS::ScriptInterpreter::createLanguageInstanceForValue):
          * khtml/ecma/kjs_binding.h:
          * khtml/ecma/kjs_css.cpp:
          (KJS::DOMCSSStyleDeclaration::indexGetter):
          (KJS::DOMCSSStyleDeclaration::cssPropertyGetter):
          (KJS::DOMCSSStyleDeclaration::getOwnPropertySlot):
          (KJS::DOMCSSStyleDeclaration::getValueProperty):
          (KJS::DOMStyleSheet::getOwnPropertySlot):
          (KJS::DOMStyleSheetList::getValueProperty):
          (KJS::DOMStyleSheetList::indexGetter):
          (KJS::DOMStyleSheetList::nameGetter):
          (KJS::DOMStyleSheetList::getOwnPropertySlot):
          (KJS::DOMMediaList::getValueProperty):
          (KJS::DOMMediaList::indexGetter):
          (KJS::DOMMediaList::getOwnPropertySlot):
          (KJS::DOMCSSStyleSheet::getValueProperty):
          (KJS::DOMCSSStyleSheet::getOwnPropertySlot):
          (KJS::DOMCSSRuleList::getValueProperty):
          (KJS::DOMCSSRuleList::indexGetter):
          (KJS::DOMCSSRuleList::getOwnPropertySlot):
          (KJS::DOMCSSRule::getOwnPropertySlot):
          (KJS::CSSRuleConstructor::getOwnPropertySlot):
          (KJS::DOMCSSValue::getValueProperty):
          (KJS::DOMCSSValue::getOwnPropertySlot):
          (KJS::CSSValueConstructor::getOwnPropertySlot):
          (KJS::DOMCSSPrimitiveValue::getValueProperty):
          (KJS::DOMCSSPrimitiveValue::getOwnPropertySlot):
          (KJS::CSSPrimitiveValueConstructor::getOwnPropertySlot):
          (KJS::DOMCSSValueList::getValueProperty):
          (KJS::DOMCSSValueList::indexGetter):
          (KJS::DOMCSSValueList::getOwnPropertySlot):
          (KJS::DOMRGBColor::getOwnPropertySlot):
          (KJS::DOMRect::getOwnPropertySlot):
          (KJS::DOMCounter::getOwnPropertySlot):
          * khtml/ecma/kjs_css.h:
          (KJS::DOMCSSStyleDeclaration::):
          (KJS::DOMCSSStyleSheet::):
          (KJS::DOMCSSRule::):
          (KJS::DOMCSSValueList::):
          * khtml/ecma/kjs_dom.cpp:
          (KJS::DOMNode::getOwnPropertySlot):
          (KJS::):
          (KJS::DOMNodeList::getValueProperty):
          (KJS::DOMNodeList::indexGetter):
          (KJS::DOMNodeList::nameGetter):
          (KJS::DOMNodeList::getOwnPropertySlot):
          (KJS::DOMNodeList::call):
          (KJS::DOMAttr::getOwnPropertySlot):
          (KJS::DOMDocument::getOwnPropertySlot):
          (KJS::DOMElement::getValueProperty):
          (KJS::DOMElement::attributeGetter):
          (KJS::DOMElement::getOwnPropertySlot):
          (KJS::DOMDocumentType::getOwnPropertySlot):
          (KJS::DOMNamedNodeMap::lengthGetter):
          (KJS::DOMNamedNodeMap::indexGetter):
          (KJS::DOMNamedNodeMap::getOwnPropertySlot):
          (KJS::DOMProcessingInstruction::getOwnPropertySlot):
          (KJS::DOMNotation::getOwnPropertySlot):
          (KJS::DOMEntity::getOwnPropertySlot):
          (KJS::NodeConstructor::getOwnPropertySlot):
          (KJS::DOMExceptionConstructor::getOwnPropertySlot):
          (KJS::DOMNamedNodesCollection::lengthGetter):
          (KJS::DOMNamedNodesCollection::indexGetter):
          (KJS::DOMNamedNodesCollection::getOwnPropertySlot):
          (KJS::DOMCharacterData::getOwnPropertySlot):
          * khtml/ecma/kjs_dom.h:
          * khtml/ecma/kjs_events.cpp:
          (KJS::EventConstructor::getOwnPropertySlot):
          (KJS::DOMEvent::getOwnPropertySlot):
          (KJS::EventExceptionConstructor::getOwnPropertySlot):
          (KJS::DOMUIEvent::getOwnPropertySlot):
          (KJS::DOMMouseEvent::getOwnPropertySlot):
          (KJS::DOMKeyboardEvent::getOwnPropertySlot):
          (KJS::MutationEventConstructor::getOwnPropertySlot):
          (KJS::DOMMutationEvent::getOwnPropertySlot):
          (KJS::DOMWheelEvent::getOwnPropertySlot):
          (KJS::Clipboard::getOwnPropertySlot):
          * khtml/ecma/kjs_events.h:
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::namedItemGetter):
          (KJS::HTMLDocument::getValueProperty):
          (KJS::HTMLDocument::getOwnPropertySlot):
          (KJS::HTMLElement::formIndexGetter):
          (KJS::HTMLElement::formNameGetter):
          (KJS::HTMLElement::selectIndexGetter):
          (KJS::HTMLElement::framesetNameGetter):
          (KJS::HTMLElement::frameWindowPropertyGetter):
          (KJS::HTMLElement::runtimeObjectGetter):
          (KJS::HTMLElement::runtimeObjectPropertyGetter):
          (KJS::HTMLElement::getOwnPropertySlot):
          (KJS::HTMLCollection::lengthGetter):
          (KJS::HTMLCollection::indexGetter):
          (KJS::HTMLCollection::nameGetter):
          (KJS::HTMLCollection::getOwnPropertySlot):
          (KJS::HTMLSelectCollection::selectedIndexGetter):
          (KJS::HTMLSelectCollection::getOwnPropertySlot):
          (KJS::Image::getOwnPropertySlot):
          (KJS::Context2D::getOwnPropertySlot):
          (KJS::Gradient::getOwnPropertySlot):
          (KJS::ImagePattern::getOwnPropertySlot):
          * khtml/ecma/kjs_html.h:
          (KJS::HTMLCollection::toBoolean):
          * khtml/ecma/kjs_navigator.cpp:
          (KJS::Plugins::):
          (KJS::MimeTypes::):
          (KJS::Plugin::):
          (KJS::MimeType::):
          (KJS::):
          (KJS::Navigator::getOwnPropertySlot):
          (KJS::Plugins::getValueProperty):
          (KJS::Plugins::indexGetter):
          (KJS::Plugins::nameGetter):
          (KJS::Plugins::getOwnPropertySlot):
          (KJS::MimeTypes::getValueProperty):
          (KJS::MimeTypes::indexGetter):
          (KJS::MimeTypes::nameGetter):
          (KJS::MimeTypes::getOwnPropertySlot):
          (KJS::Plugin::getValueProperty):
          (KJS::Plugin::indexGetter):
          (KJS::Plugin::nameGetter):
          (KJS::Plugin::getOwnPropertySlot):
          (KJS::MimeType::getValueProperty):
          (KJS::MimeType::getOwnPropertySlot):
          * khtml/ecma/kjs_navigator.h:
          * khtml/ecma/kjs_range.cpp:
          (KJS::DOMRange::getOwnPropertySlot):
          (KJS::RangeConstructor::getOwnPropertySlot):
          * khtml/ecma/kjs_range.h:
          * khtml/ecma/kjs_traversal.cpp:
          (KJS::DOMNodeIterator::getOwnPropertySlot):
          (KJS::NodeFilterConstructor::getOwnPropertySlot):
          (KJS::DOMTreeWalker::getOwnPropertySlot):
          * khtml/ecma/kjs_traversal.h:
          * khtml/ecma/kjs_views.cpp:
          (KJS::DOMAbstractView::~DOMAbstractView):
          (KJS::DOMAbstractView::getValueProperty):
          (KJS::DOMAbstractView::getOwnPropertySlot):
          * khtml/ecma/kjs_views.h:
          * khtml/ecma/kjs_window.cpp:
          (KJS::FrameArray::):
          (KJS::FrameArray::classInfo):
          (KJS::Screen::getOwnPropertySlot):
          (KJS::Window::getValueProperty):
          (KJS::Window::childFrameGetter):
          (KJS::Window::namedFrameGetter):
          (KJS::Window::indexGetter):
          (KJS::Window::namedItemGetter):
          (KJS::Window::getOwnPropertySlot):
          (KJS::):
          (KJS::FrameArray::getValueProperty):
          (KJS::FrameArray::indexGetter):
          (KJS::FrameArray::nameGetter):
          (KJS::FrameArray::getOwnPropertySlot):
          (KJS::Location::getValueProperty):
          (KJS::Location::getOwnPropertySlot):
          (KJS::Selection::getValueProperty):
          (KJS::Selection::getOwnPropertySlot):
          (KJS::BarInfo::getValueProperty):
          (KJS::BarInfo::getOwnPropertySlot):
          (KJS::History::getOwnPropertySlot):
          * khtml/ecma/kjs_window.h:
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::getOwnPropertySlot):
          * khtml/ecma/xmlhttprequest.h:
  
  2005-08-06  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by darin.
  
          * WebCore+SVG/DrawDocument.mm: DumpKCanvasTree support
          (-[DrawDocument renderTreeAsExternalRepresentation]):
          * WebCore+SVG/DrawDocumentPrivate.h:
          * WebCore.xcodeproj/project.pbxproj: fixed bison + zsh issue
          * kcanvas/KCanvas.cpp:
          (KCanvas::Private::~Private): device is now a singleton
          * kcanvas/KCanvasContainer.cpp:
          (KCanvasContainer::first): needed for DumpKCanvasTree
          (KCanvasContainer::last): needed for DumpKCanvasTree
          * kcanvas/KCanvasContainer.h:
          * kcanvas/KCanvasTreeDebug.cpp: Added.
          * kcanvas/KCanvasTreeDebug.h: Added.
          * kwq/KWQTextStream.mm:
          (QTextStream::operator<<): added missing float and double versions
          This adds all the changes necessary to support DumpKCanvasTree.
          Most noteable: operator<<(float) and double were missing from
          KWQTextStream, also added KCanvasTreeDebug, modeled after
          KWQRenderTreeDebug.  Most of KCanvasTreeDebug will be removed
          if the render trees finally merge.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3917
  
  2005-08-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave Hyatt.
  
          * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::setChanged): Small tweak.
  
  2005-08-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave Hyatt.
  
          - fixed crash in one of the W3C DOM tests
  
          * khtml/xml/dom_nodeimpl.cpp: (DOM::NodeImpl::dispatchEvent): Check for NULL which means
          the passed object is not an event. Return without raising an exception because that's
          what Gecko does despite the fact that the DOM test expects a (platform-specific) exception.
  
          * layout-tests/dom/html/level2/events/dispatchEvent01-expected.txt: Added.
          * layout-tests/dom/html/level2/events/dispatchEvent01.html: Added.
          * layout-tests/dom/html/level2/events/dispatchEvent01.html-disabled: Removed.
  
  2005-08-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave Hyatt.
  
          - added a "set" operation to HashMap for cases where you want to either insert or
            modify an existing map entry; the "set" name is based on symmetry with get, and also on
            the naming used for similar operations in CFDictionary.
  
          * khtml/misc/hashmap.h: Small tweak to insert and added set.
  
  2005-08-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave Hyatt.
  
          - made a small improvement to how Windows Latin-1 characters are handled in the tokenizer
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::fixUpChar): Changed to use an array and a quick check to determine if a character
          is one of the ones that needs to be mapped. This retains most of the speedup gained from
          not doing anything when the character doesn't need to be fixed up.
          (khtml::HTMLTokenizer::parseSpecial): Get rid of the local check since the check in fixUpChar
          is sufficient not.
          (khtml::HTMLTokenizer::parseText): Ditto.
          (khtml::HTMLTokenizer::parseEntity): Ditto.
          (khtml::HTMLTokenizer::parseTag): Ditto.
          (khtml::HTMLTokenizer::write): Ditto.
  
  2005-08-06  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by darin.
  
          * WebCore+SVG/DrawView.mm:
          (+[DrawView setFilterSupportEnabled:]): Moved from DrawViewPrivate
          (+[DrawView isFilterSupportEnabled]): Moved from DrawViewPrivate
          One half of fix for toggling filter support.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4252
  
  2005-08-05  Adele Peterson  <adele at apple.com>
  
          Reviewed by Darin.
  
          * WebCore.xcodeproj/project.pbxproj: Unchecked 'statics are thread safe' option.
  
  2005-08-05  Geoffrey Garen  <ggaren at apple.com>
  
          -added layout test for fix to: <rdar://problem/4161606> JavaScript regular
          expressions with certain ranges of Unicode characters cause a crash
  
          Test cases added:
  
          * layout-tests/fast/js/regexp-big-unicode-ranges-expected.txt: Added.
          * layout-tests/fast/js/regexp-big-unicode-ranges.html: Added.
  
  2005-08-05  David Hyatt  <hyatt at apple.com>
  
  	Make sure that <wbr> and <nobr> are included as residual style tags.
  	
          Reviewed by john
  
          Test cases added: fast/invalid/wbrlink.html
  
          * khtml/css/html4.css:
          * khtml/html/htmlparser.cpp:
          (HTMLParser::isResidualStyleTag):
  
  2005-08-05  David Hyatt  <hyatt at apple.com>
  
  	Fix for bugzilla bug 4289, a regression from the QualifiedName landing.  Make sure getNamedItemNS and
  	removeNamedItemNS are case-insensitive in HTML documents.
  	
          Reviewed by darin
  
          * khtml/xml/dom_elementimpl.cpp:
          (NamedAttrMapImpl::getNamedItemNS):
          (NamedAttrMapImpl::removeNamedItemNS):
          * khtml/xml/dom_elementimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          * khtml/xml/dom_nodeimpl.h:
          (DOM::NamedNodeMapImpl::NamedNodeMapImpl):
          (DOM::NamedNodeMapImpl::~NamedNodeMapImpl):
  
  2005-08-04  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by kocienda
          
          Fix for: 
          - <rdar://problem/4132360> HIM-8A428:Space key works like Return key in Mail application.
          - <rdar://problem/4122708> Mail: when composing new mail with a Korean input method, the first space doesn't work
  
          If the user terminates marked text with a space, a string including marked characters and a normal, 
          breaking space, is passed to WebCore in order to replace the previous marked sequence.  The fix ensures
          that the space becomes a non breaking space if necessary.
  
          Test cases added:
          * manual-tests/korean-input-space.html
  
          * khtml/editing/insert_text_command.cpp:
          (khtml::InsertTextCommand::input):
  
  2005-08-03  David Hyatt  <hyatt at apple.com>
  
  	This patch significantly improves the performance of radio button groups and enables consistent tabbing
  	behavior in radio groups with both OS X and Internet Explorer for Windows.  It also adds support for
  	arrow key navigation between the radio buttons in a group.
  
  	In addition elements can now be shifted between forms using DOM operations and they will properly be
  	adopted by the form into which they are inserted.  This movement works even when the forms themselves
  	are not currently in the document by introducing a new set of notifications when an object is connected
  	and removed from a tree of nodes (where that tree may or may not be the main document's tree).
  	
          Test cases added: formmove.html, formmove2.html in fast/forms
  
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::HTMLFormElementImpl):
          (DOM::HTMLFormElementImpl::~HTMLFormElementImpl):
  	Updated to init/delete a new selectedRadioButtons member variable that is a hash tracking the current
  	checked button in each radio group owned by the form.
  	
          (DOM::HTMLFormElementImpl::radioButtonChecked):
          A notification that is called when a radio button becomes checked.
  	
  	(DOM::HTMLFormElementImpl::checkedRadioButtonForGroup):
          Returns the current checked radio button for a given named group.
  	
  	(DOM::HTMLFormElementImpl::removeRadioButtonForGroup):
          Clears out the checked radio button for a given named group.
  	
  	(DOM::HTMLFormElementImpl::registerFormElement):
          (DOM::HTMLFormElementImpl::removeFormElement):
          The registration and removal functions have been patched to deal with radio buttons and to remove
  	the "dormant form control" concept, which is no longer needed now that controls can actually move
  	between forms.
  	
  	(DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl):
          Remove the dormant bit from form controls.
  	
  	(DOM::HTMLGenericFormElementImpl::attach):
  	Remove the code that attempted to register a form element in attached.  We use new notifications now
  	for dynamically inserted controls via JS.
  	
          (DOM::HTMLGenericFormElementImpl::insertedIntoTree):
          (DOM::HTMLGenericFormElementImpl::removedFromTree):
          These are the new notifications that are called whenever a form control is connected to or removed from
  	a tree.  This tree may or may not be the document tree.  The form control can then "seek out" a form
  	to latch on to, thus keeping its current status regarding what form it belongs to current across DOM
  	operations.
  
  	(DOM::HTMLInputElementImpl::isKeyboardFocusable):
          Overridden to deal with radio buttons.  Unnamed radio buttons can't be focused.  Radio buttons can't be
  	focused if another member of their group is already currently focused.  Unchecked radio buttons can
  	only be focused if no button within the group is checked.
  	
  	(DOM::HTMLInputElementImpl::setInputType):
  	Make sure to remove a checked radio button from the form's radio button hash if the type is changed
  	to something else, e.g., checkbox.
  	
          (DOM::HTMLInputElementImpl::setChecked):
          Revised to update the form's hash when a radio button gets checked and to also prevent unnamed radio
  	buttons from changing state (matches WinIE).
  	
  	(DOM::HTMLInputElementImpl::defaultEventHandler):
          Add support for arrow key navigation through radio button groups.  Fix space behavior so that an unselected
  	radio can become checked but not unchecked on space.  Fix enter behavior so that the form is not submitted
  	on enter.  (Matches WinIE.)
  	
  	* khtml/html/html_formimpl.h:
          Adds the new member variable to track the current radio buttons in the various groups and the notifications
  	for updating form controls when they switch forms.
  	
  	* khtml/xml/dom_nodeimpl.cpp:
          (DOM::NodeImpl::insertedIntoDocument):
          (DOM::NodeImpl::removedFromDocument):
          Patch insertedIntoDocument and removedFromDocument to also send the insertedIntoTree and removedFromTree
  	notifications.
  	
  	(DOM::ContainerNodeImpl::removeChild):
          Call removedFromTree in the case where the removal of a child happens on a tree that is not in the 
  	document.
  	
  	(DOM::ContainerNodeImpl::insertedIntoTree):
          (DOM::ContainerNodeImpl::removedFromTree):
          The new notifications.  The container node can optionally crawl into children invoking their notifications.
  	
  	(DOM::ContainerNodeImpl::dispatchChildInsertedEvents):
          Patched to call insertedIntoTree in the case where the insertion happened on a tree that is not in the
  	document.
  	
  	* khtml/xml/dom_nodeimpl.h:
          (DOM::NodeImpl::insertedIntoTree):
          (DOM::NodeImpl::removedFromTree):
  	Added the new notifications to NodeImpl for use by the form controls.
  
  2005-08-04  Darin Adler  <darin at apple.com>
  
          Reviewed by John Sullivan.
  
          - fixed Objective-C binding for getOverrideStyle
  
          * kwq/DOM.mm: ([DOMDocument getOverrideStyle::]): Change to call the DOM
          getOverrideStyle. It was not correct to call getComputedStyle just because
          getOverrideStyle is not yet implemented in our DOM.
  
  2005-08-04  Adele Peterson  <adele at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/4204496> REGRESSION(denver): repro crash in KHTMLParser::finished() downloading attachment at webmail.mac.com
          This regression was introduced by the fix for <rdar://problem/4084029>.  It was just missing a nil check.
  
          * khtml/html/htmlparser.cpp: (KHTMLParser::finished): added nil check for current.
  
  2005-08-04  Geoffrey Garen  <ggaren at apple.com>
  
          - fixed <rdar://problem/4199495> REGRESSION: Safari Crashes on Window Closing Event
  
          Reviewed by darin.
  
          * khtml/ecma/kjs_binding.cpp:
          (KJS::ScriptInterpreter::updateDOMNodeDocument): inserting a node wrapper into a new
          document set now removes the node wrapper from its old document set.
  
  2005-08-03  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Beth and Hyatt.
   
  	<rdar://problem/4196646> target returns text node when it should return the parent node
  
          Test cases added: manual-tests/mouseevents-on-textnodes.html
  
          * khtml/khtmlview.cpp:
          (KHTMLView::dispatchMouseEvent): if the targetNode is a text node, set the 
  	targetNode to the parent node
  
  2005-08-02  Bruce DiBello  <bdibello at apple.com>
  
          Reviewed by Geoffrey Garen.
  
          Test cases added: getting and setting button.value
  
          * layout-tests/fast/dom/HTMLButtonElement/value/getset-expected.txt: Added.
          * layout-tests/fast/dom/HTMLButtonElement/value/getset.html: Added.
  
  2005-08-01  Geoffrey Garen  <ggaren at apple.com>
  
          - landed layout tests for fix to <rdar://problem/3572585> 
          window.open fails if name param = the name of a window just 
          closed in same function
  
          Fix reviewed by darin.
  
          Test cases added:
  
          * manual-tests/open-after-close.html: Added.
          * manual-tests/resources/open-after-close-popup.html: Added.
  
  2005-08-01  David Hyatt  <hyatt at apple.com>
  
  	Reviewed by cblu, kocienda, darin
  
  	This patch removes the old KWQCheckbox from the tree and enables the new
  	checkbox handled by the engine.
  	
          * ForwardingHeaders/qcheckbox.h: Removed.
          Removed the old header for the Qt checkbox class.
  	
  	* WebCore.xcodeproj/project.pbxproj:
          Removed the references to KWQCheckBox from the project.
  	
  	* khtml/css/html4.css:
          Turn on the -khtml-appearance property for checkboxes so that they have
  	the native OS X look by default.
  	
  	* khtml/html/html_formimpl.cpp:
          (DOM::HTMLInputElementImpl::setType):
          (DOM::HTMLInputElementImpl::setInputType):
          Change the setting of the type property in the DOM to simply update the
  	corresponding attribute.  setType is the "public" API now and
  	setInputType is the one called internally, e.g., when the attribute is
  	changed.
  	
  	(DOM::HTMLInputElementImpl::click):
          Remove the hack for checkboxes now that the new ones are turned on.
  	
  	(DOM::HTMLInputElementImpl::parseMappedAttribute):
  	Make the attribute parsing code call the internal setInputType now.
  	
          (DOM::HTMLInputElementImpl::createRenderer):
          (DOM::HTMLInputElementImpl::attach):
          Remove the hack for making the old renderer and let only the new one
  	get made now.
  	
  	(DOM::HTMLInputElementImpl::defaultEventHandler):
          Remove the hack for still doing the old event handling now that the
  	new checkbox is on.
  	
  	* khtml/html/html_formimpl.h:
          Added the setInputType method (see above).
  
  	* khtml/rendering/render_form.cpp:
          * khtml/rendering/render_form.h:
  	Removed RenderCheckBox from these files.
  	
          * kwq/KWQButton.mm:
          Removed an include of qcheckbox.h.
  	
  	* kwq/KWQCheckBox.h: Removed.
          * kwq/KWQCheckBox.mm: Removed.
          Removed from the tree.
  	
  	* kwq/KWQSlot.mm:
          (KWQSlot::KWQSlot):
          (KWQSlot::call):
          Deleted the stateChanged signal/slot stuff, since it's no longer
  	used by checkboxes.
  	
  	* layout-tests/fast/forms/001-expected.txt:
          * layout-tests/fast/forms/check-box-enter-key-expected.txt:
          * layout-tests/fast/forms/form-element-geometry-expected.txt:
          * layout-tests/fast/forms/input-value-expected.txt:
  	Updated the layout tests to reflect the new checkboxes.  In the case
  	of the last test, it has also had bugs corrected from making the type
  	property actually set the attribute instead.
  
  2005-08-01  David Hyatt  <hyatt at apple.com>
  
  	Fix bugzilla bug 4219, crash because we tried to do the fake paint
  	when layout was not updated yet.
  
  	Also landing accessibility for checkboxes.
  	
          Reviewed by darin/mjs (accessibility), kocienda(crash)
  
          * ChangeLog:
          * khtml/rendering/render_theme.h:
          (khtml::RenderTheme::supportsControlTints):
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject actionElement]):
          (-[KWQAccObject role]):
          (-[KWQAccObject roleDescription]):
          (-[KWQAccObject value]):
          (boundingBoxRect):
          (-[KWQAccObject accessibilityIsIgnored]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          (-[KWQAccObject accessibilityIsAttributeSettable:]):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::setDisplaysWithFocusAttributes):
  
  2005-08-01  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Beth Dakin.
  
          Test cases added: none, this only affects Safari forms autofill
          
          Moved the recently-added isTextField method out of the public DOMExtensions.h
          and into the private DOMPrivate.h for now, and renamed it with a leading
          underscore. We want to make some sort of public API that covers this, but not
          necessarily this exact method, so we'll leave it out of the public API until we've
          thought about this more.
  
          * kwq/DOMExtensions.h:
          remove isTextField
          * kwq/DOMPrivate.h:
          add _isTextField. Also added some #imports that make this file more standalone.
          * kwq/DOMHTML.mm:
          (-[DOMHTMLInputElement _isTextField]):
          moved this method and added leading underscore.
  
  2005-08-01  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by darin.
  
          * kcanvas/device/quartz/KCanvasItemQuartz.mm:
          (getSharedContext): moved from QPainter -> CG
          * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
          (CGShadingRefForLinearGradient): removed comment
          (CGShadingRefForRadialGradient): removed comment
          * khtml/ecma/kjs_html.cpp:
          (KJS::KJS::Context2DFunction::call): moved from QPainter -> CG
          (KJS::colorRefFromValue): moved from QPainter -> CG
          (KJS::Gradient::getShading): moved from QPainter -> CG
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::createDrawingContext):moved from QPainter -> CG
          * kwq/KWQColor.mm:
          (CGColorFromNSColor): moved from QPainter -> CG
          * kwq/KWQPainter.h: removed colorspace calls
          * kwq/KWQPainter.mm: removed colorspace calls
          (QPainter::clearFocusRing): moved from QPainter -> CG
          Removed use of WebKitGraphicsBridge Colorspace SPIs, as well
          as corresponding QPainter colorspace "choke-point" methods.
          This fixes colors for WebCore+SVG (since it wasn't linking in
          webkit).  WebKit code removal in separate commit.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4211
  
  2005-07-31  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - remove uses of Mac-OS-X-specific MAX macro in non-Mac-OS-X-specific code
  
          * khtml/misc/arena.cpp: (ArenaAllocate): Use std::max instead of MAX.
          * khtml/misc/loader.cpp: (Cache::setSize): Use kMax instead of MAX.
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::setSelectionStart): Ditto.
          (RenderLineEdit::setSelectionEnd): Ditto.
          (RenderLineEdit::setSelectionRange): Ditto.
  
  2005-07-31  David Hyatt  <hyatt at apple.com>
  
  	Implement support for checkbox accessibility for VoiceOver.
  	
          Reviewed by mjs
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject actionElement]):
          (-[KWQAccObject role]):
          (-[KWQAccObject roleDescription]):
          (-[KWQAccObject value]):
          (boundingBoxRect):
          (-[KWQAccObject accessibilityIsIgnored]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          (-[KWQAccObject accessibilityIsAttributeSettable:]):
  
  2005-07-31  David Hyatt  <hyatt at apple.com>
  
  	Make node lists more refined in their invalidation when children are added/removed
  	in the DOM or attributes are changed.  This is sort of a band-aid fix.  The
  	architecture of node list notifications (as well as how they are stored) should
  	be revisited.
  	
          Reviewed by darin
  
          * khtml/xml/dom_nodeimpl.cpp:
          (DOM::NodeImpl::notifyLocalNodeListsAttributeChanged):
          (DOM::NodeImpl::notifyNodeListsAttributeChanged):
          (DOM::NodeImpl::notifyLocalNodeListsChildrenChanged):
          (DOM::NodeImpl::notifyNodeListsChildrenChanged):
          (DOM::NodeImpl::dispatchSubtreeModifiedEvent):
          (DOM::NodeListImpl::rootNodeChildrenChanged):
          * khtml/xml/dom_nodeimpl.h:
          (DOM::NodeListImpl::rootNodeAttributeChanged):
          (DOM::NameNodeListImpl::rootNodeChildrenChanged):
          (DOM::NameNodeListImpl::rootNodeAttributeChanged):
  
  2005-07-31  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by mjs
          
          Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3359> Crash on hover with certain styles on the text applied
          
          If a zero length render object (such as a text node that has been set to "") occured at the 
          end of a line, it was previously given a non-zero sized run.  Iteration over such a node would cause
          a crash.
  
          Test cases added:
          * layout-tests/traversal/size-zero-run-expected.txt: Added.
          * layout-tests/traversal/size-zero-run.html: Added.
          
          * khtml/rendering/bidi.cpp:
          (khtml::appendRun):
  
  2005-07-31  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by hyatt.
  
          * WebCore-svg.exp: Added.
          * WebCore.xcodeproj/project.pbxproj: Uses WebCore+SVG.exp
          * kcanvas/device/quartz/KCanvasFilterQuartz.mm: 
          (KCanvasFEFloodQuartz::getCIFilter): Fixed longjmp warning.
          * kdom/css/impl/CSSStyleSelector.cpp:
          (CSSStyleSelector::applyRule): Fixed "un-initialized" warning.
          * kdom/ecma/DOMLookup.h: Removed <iostream>
          * ksvg2/impl/svgpathparser.cpp: Removed <iostream>
          Several fixes required to make Deployment style builds
          compile correctly.  Also WebCore-svg.exp symbols were added
          both when generating WebCore-combined.exp as well as for
          generating a new WebCore+SVG.exp export file for the Deployment
          style builds, allowing DrawTest to link properly.
          A few other small warnings were caught and fixed.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4234
  
  2005-07-29  David Hyatt  <hyatt at apple.com>
  
  	This patch makes simulated clicks actually go into active state briefly.  Spacebar
  	on the new checkboxes results in a pressed look.
  	
          Reviewed by darin
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::click):
          * khtml/rendering/render_theme.cpp:
          (khtml::RenderTheme::stateChanged):
          * khtml/rendering/render_theme.h:
          * khtml/xml/dom_nodeimpl.cpp:
          (DOM::ContainerNodeImpl::setActive):
          * khtml/xml/dom_nodeimpl.h:
          (DOM::NodeImpl::setActive):
          * kwq/KWQScrollView.mm:
          (QScrollView::updateContents):
  
  2005-07-30  Anders Carlsson  <andersca at mac.com>
  
          Reviewed and landed by Darin Adler.
  
  	- Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3893>
  	
          Test cases added: 
  	* layout-tests/fast/dom/css-dom-read-2.html: Added.
  	* layout-tests/fast/dom/css-dom-read-2-expected.txt: Added.
  	
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::cssText):
  	Implement.
  	
          (DOM::CSSComputedStyleDeclarationImpl::item):
  	Return the item name, not its value.
  	
          * khtml/css/css_ruleimpl.cpp:
          (CSSImportRuleImpl::cssText):
          (CSSMediaRuleImpl::cssText):
          (CSSStyleRuleImpl::cssText):
          * khtml/css/css_ruleimpl.h:
  	Implement.
  	
          * khtml/css/css_stylesheetimpl.cpp:
          (MediaListImpl::mediaText):
  	Don't put a trailing comma after lists.
  
  2005-07-30  Darin Adler  <darin at apple.com>
  
          - rolled back a test that has been failing since we rolled back the <script/> quirk
  
          * layout-tests/fast/tokenizer/script_extra_close-expected.txt: Updated.
  
  2005-07-30  Darin Adler  <darin at apple.com>
  
          Reviewed by me, change by Dave Hyatt.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4221
            REGRESSION: Elements act as if in :hover meta-class during page load although they aren't
  
          * khtml/xml/dom_nodeimpl.cpp: (DOM::NodeImpl::NodeImpl): Initialize m_hovered to false.
  
  2005-07-30  Maciej Stachowiak  <mjs at apple.com>
  
          Missing bits of last checkin...
  
          * WebCore.exp:
          * WebCore.xcodeproj/project.pbxproj:
  
  2005-07-29  Maciej Stachowiak  <mjs at apple.com>
  
          Changes by Michael Kahl, reviewed by me.
  
          Test cases added: No tests, this code only affects debugging.
  
  	- fixed <rdar://problem/4164112> MASTER: JavaScript debugging support
  	
          * kwq/WebCoreScriptDebugger.h: Added.
          * kwq/WebCoreScriptDebugger.mm: Added.
          (toNSString):
          (WebCoreScriptDebuggerImp::WebCoreScriptDebuggerImp):
          (WebCoreScriptDebuggerImp::sourceParsed):
          (WebCoreScriptDebuggerImp::callEvent):
          (WebCoreScriptDebuggerImp::atStatement):
          (WebCoreScriptDebuggerImp::returnEvent):
          (-[WebCoreScriptDebugger initWithDelegate:]):
          (-[WebCoreScriptDebugger dealloc]):
          (-[WebCoreScriptDebugger delegate]):
          (-[WebCoreScriptCallFrame _initWithGlobalObject:caller:state:]):
          (-[WebCoreScriptCallFrame _setWrapper:]):
          (-[WebCoreScriptCallFrame _convertValueToObjcValue:]):
          (-[WebCoreScriptCallFrame dealloc]):
          (-[WebCoreScriptCallFrame wrapper]):
          (-[WebCoreScriptCallFrame caller]):
          (-[WebCoreScriptCallFrame scopeChain]):
          (-[WebCoreScriptCallFrame functionName]):
          (-[WebCoreScriptCallFrame exception]):
          (-[WebCoreScriptCallFrame evaluateWebScript:]):
  
  2005-07-29  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by hyatt (concept and a few manual parts), large part
  	done by script and not really reviewed in detail.
  
          - changed how HTML tags and attributes are referred to in the code for better readability.
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::checkPseudoState):
          (khtml::CSSStyleSelector::canShareStyleWithElement):
          (khtml::CSSStyleSelector::adjustRenderStyle):
          (khtml::CSSStyleSelector::checkOneSelector):
          * khtml/css/parser.y:
          * khtml/ecma/kjs_css.cpp:
          (KJS::DOMStyleSheetList::getOwnProperty):
          * khtml/ecma/kjs_dom.cpp:
          (KJS::getRuntimeObject):
          (KJS::DOMNamedNodesCollection::getOwnProperty):
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::getOwnProperty):
          (KJS::KJS::HTMLDocument::putValueProperty):
          (KJS::KJS::HTMLElement::classInfo):
          (KJS::HTMLElement::getSetInfo):
          (KJS::KJS::HTMLElement::getOwnProperty):
          (KJS::KJS::HTMLElement::implementsCall):
          (KJS::KJS::HTMLElement::call):
          (KJS::KJS::HTMLElement::hasOwnProperty):
          (KJS::KJS::HTMLElement::toString):
          (KJS::getForm):
          (KJS::KJS::HTMLElement::pushEventHandlerScope):
          (KJS::KJS::HTMLElementFunction::call):
          (KJS::KJS::HTMLElement::put):
          (KJS::toHTMLTableCaptionElement):
          (KJS::toHTMLTableSectionElement):
          (KJS::KJS::HTMLCollection::getOwnProperty):
          (KJS::KJS::HTMLSelectCollection::put):
          * khtml/editing/apply_style_command.cpp:
          (khtml::isStyleSpan):
          (khtml::isEmptyStyleSpan):
          (khtml::isEmptyFontTag):
          (khtml::createFontElement):
          (khtml::createStyleSpanElement):
          (khtml::ApplyStyleCommand::applyRelativeFontStyleChange):
          (khtml::ApplyStyleCommand::applyInlineStyle):
          (khtml::ApplyStyleCommand::isHTMLStyleNode):
          (khtml::ApplyStyleCommand::removeHTMLFontStyle):
          (khtml::ApplyStyleCommand::applyTextDecorationStyle):
          (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
          (khtml::ApplyStyleCommand::addBlockStyleIfNeeded):
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
          * khtml/editing/break_blockquote_command.cpp:
          (khtml::BreakBlockquoteCommand::doApply):
          * khtml/editing/composite_edit_command.cpp:
          (khtml::CompositeEditCommand::insertNodeBefore):
          (khtml::CompositeEditCommand::insertNodeAfter):
          (khtml::CompositeEditCommand::findBlockPlaceholder):
          (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
          (khtml::createBlockPlaceholderElement):
          * khtml/editing/delete_selection_command.cpp:
          (khtml::isListStructureNode):
          (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete):
          (khtml::DeleteSelectionCommand::handleGeneralDelete):
          (khtml::DeleteSelectionCommand::moveNodesAfterNode):
          * khtml/editing/htmlediting.cpp:
          (khtml::isSpecialElement):
          (khtml::createDefaultParagraphElement):
          (khtml::createBreakElement):
          (khtml::isMailBlockquote):
          * khtml/editing/insert_line_break_command.cpp:
          (khtml::InsertLineBreakCommand::doApply):
          * khtml/editing/insert_paragraph_separator_command.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply):
          * khtml/editing/markup.cpp:
          (khtml::startMarkup):
          (khtml::createMarkup):
          (khtml::createFragmentFromText):
          * khtml/editing/replace_selection_command.cpp:
          (khtml::isProbablyBlock):
          (khtml::isProbablyTableStructureNode):
          (khtml::ReplacementFragment::isInterchangeNewlineNode):
          (khtml::ReplacementFragment::isInterchangeConvertedSpaceSpan):
          (khtml::ReplacementFragment::removeStyleNodes):
          (khtml::ReplaceSelectionCommand::doApply):
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::init):
          (khtml::VisiblePosition::isCandidate):
          (khtml::VisiblePosition::isAtomicNode):
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::handleNonTextNode):
          (khtml::TextIterator::exitNode):
          (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode):
          * khtml/editing/visible_units.cpp:
          (khtml::endOfLine):
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::HTMLBodyElementImpl):
          (HTMLBodyElementImpl::mapToEntry):
          (HTMLBodyElementImpl::parseMappedAttribute):
          (HTMLBodyElementImpl::insertedIntoDocument):
          (HTMLBodyElementImpl::isURLAttribute):
          (HTMLBodyElementImpl::aLink):
          (HTMLBodyElementImpl::setALink):
          (HTMLBodyElementImpl::background):
          (HTMLBodyElementImpl::setBackground):
          (HTMLBodyElementImpl::bgColor):
          (HTMLBodyElementImpl::setBgColor):
          (HTMLBodyElementImpl::link):
          (HTMLBodyElementImpl::setLink):
          (HTMLBodyElementImpl::text):
          (HTMLBodyElementImpl::setText):
          (HTMLBodyElementImpl::vLink):
          (HTMLBodyElementImpl::setVLink):
          (HTMLFrameElementImpl::HTMLFrameElementImpl):
          (HTMLFrameElementImpl::parseMappedAttribute):
          (HTMLFrameElementImpl::attach):
          (HTMLFrameElementImpl::isURLAttribute):
          (HTMLFrameElementImpl::frameBorder):
          (HTMLFrameElementImpl::setFrameBorder):
          (HTMLFrameElementImpl::longDesc):
          (HTMLFrameElementImpl::setLongDesc):
          (HTMLFrameElementImpl::marginHeight):
          (HTMLFrameElementImpl::setMarginHeight):
          (HTMLFrameElementImpl::marginWidth):
          (HTMLFrameElementImpl::setMarginWidth):
          (HTMLFrameElementImpl::name):
          (HTMLFrameElementImpl::setName):
          (HTMLFrameElementImpl::setNoResize):
          (HTMLFrameElementImpl::scrolling):
          (HTMLFrameElementImpl::setScrolling):
          (HTMLFrameElementImpl::src):
          (HTMLFrameElementImpl::setSrc):
          (HTMLFrameSetElementImpl::HTMLFrameSetElementImpl):
          (HTMLFrameSetElementImpl::checkDTD):
          (HTMLFrameSetElementImpl::parseMappedAttribute):
          (HTMLFrameSetElementImpl::attach):
          (HTMLFrameSetElementImpl::cols):
          (HTMLFrameSetElementImpl::setCols):
          (HTMLFrameSetElementImpl::rows):
          (HTMLFrameSetElementImpl::setRows):
          (HTMLHeadElementImpl::HTMLHeadElementImpl):
          (HTMLHeadElementImpl::profile):
          (HTMLHeadElementImpl::setProfile):
          (HTMLHeadElementImpl::checkDTD):
          (HTMLHtmlElementImpl::HTMLHtmlElementImpl):
          (HTMLHtmlElementImpl::version):
          (HTMLHtmlElementImpl::setVersion):
          (HTMLHtmlElementImpl::checkDTD):
          (HTMLIFrameElementImpl::HTMLIFrameElementImpl):
          (HTMLIFrameElementImpl::mapToEntry):
          (HTMLIFrameElementImpl::parseMappedAttribute):
          (HTMLIFrameElementImpl::attach):
          (HTMLIFrameElementImpl::isURLAttribute):
          (HTMLIFrameElementImpl::align):
          (HTMLIFrameElementImpl::setAlign):
          (HTMLIFrameElementImpl::height):
          (HTMLIFrameElementImpl::setHeight):
          (HTMLIFrameElementImpl::src):
          (HTMLIFrameElementImpl::width):
          (HTMLIFrameElementImpl::setWidth):
          * khtml/html/html_blockimpl.cpp:
          (HTMLBlockquoteElementImpl::HTMLBlockquoteElementImpl):
          (HTMLBlockquoteElementImpl::cite):
          (HTMLBlockquoteElementImpl::setCite):
          (HTMLDivElementImpl::HTMLDivElementImpl):
          (HTMLDivElementImpl::mapToEntry):
          (HTMLDivElementImpl::parseMappedAttribute):
          (HTMLDivElementImpl::align):
          (HTMLDivElementImpl::setAlign):
          (HTMLHRElementImpl::HTMLHRElementImpl):
          (HTMLHRElementImpl::mapToEntry):
          (HTMLHRElementImpl::parseMappedAttribute):
          (HTMLHRElementImpl::align):
          (HTMLHRElementImpl::setAlign):
          (HTMLHRElementImpl::noShade):
          (HTMLHRElementImpl::setNoShade):
          (HTMLHRElementImpl::size):
          (HTMLHRElementImpl::setSize):
          (HTMLHRElementImpl::width):
          (HTMLHRElementImpl::setWidth):
          (HTMLHeadingElementImpl::checkDTD):
          (HTMLHeadingElementImpl::align):
          (HTMLHeadingElementImpl::setAlign):
          (HTMLParagraphElementImpl::HTMLParagraphElementImpl):
          (HTMLParagraphElementImpl::checkDTD):
          (HTMLParagraphElementImpl::mapToEntry):
          (HTMLParagraphElementImpl::parseMappedAttribute):
          (HTMLParagraphElementImpl::align):
          (HTMLParagraphElementImpl::setAlign):
          (HTMLPreElementImpl::width):
          (HTMLPreElementImpl::setWidth):
          (HTMLMarqueeElementImpl::HTMLMarqueeElementImpl):
          (HTMLMarqueeElementImpl::mapToEntry):
          (HTMLMarqueeElementImpl::parseMappedAttribute):
          * khtml/html/html_canvasimpl.cpp:
          (HTMLCanvasElementImpl::HTMLCanvasElementImpl):
          (HTMLCanvasElementImpl::mapToEntry):
          (HTMLCanvasElementImpl::parseMappedAttribute):
          (HTMLCanvasElementImpl::isURLAttribute):
          * khtml/html/html_documentimpl.cpp:
          (DOM::HTMLDocumentImpl::childAllowed):
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::endTagRequirement):
          (HTMLElementImpl::tagPriority):
          (HTMLElementImpl::mapToEntry):
          (HTMLElementImpl::parseMappedAttribute):
          (HTMLElementImpl::createContextualFragment):
          (HTMLElementImpl::setInnerText):
          (HTMLElementImpl::setOuterText):
          (HTMLElementImpl::setContentEditable):
          (HTMLElementImpl::id):
          (HTMLElementImpl::setId):
          (HTMLElementImpl::title):
          (HTMLElementImpl::setTitle):
          (HTMLElementImpl::lang):
          (HTMLElementImpl::setLang):
          (HTMLElementImpl::dir):
          (HTMLElementImpl::setDir):
          (HTMLElementImpl::className):
          (HTMLElementImpl::setClassName):
          (HTMLElementImpl::isRecognizedTagName):
          (inlineTagList):
          (blockTagList):
          (HTMLElementImpl::checkDTD):
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::HTMLFormElementImpl):
          (DOM::HTMLFormElementImpl::submitClick):
          (DOM::HTMLFormElementImpl::formData):
          (DOM::HTMLFormElementImpl::submit):
          (DOM::HTMLFormElementImpl::parseMappedAttribute):
          (DOM::HTMLFormElementImpl::radioClicked):
          (DOM::HTMLFormElementImpl::isURLAttribute):
          (DOM::HTMLFormElementImpl::name):
          (DOM::HTMLFormElementImpl::setName):
          (DOM::HTMLFormElementImpl::acceptCharset):
          (DOM::HTMLFormElementImpl::setAcceptCharset):
          (DOM::HTMLFormElementImpl::action):
          (DOM::HTMLFormElementImpl::setAction):
          (DOM::HTMLFormElementImpl::setEnctype):
          (DOM::HTMLFormElementImpl::method):
          (DOM::HTMLFormElementImpl::setMethod):
          (DOM::HTMLFormElementImpl::target):
          (DOM::HTMLFormElementImpl::setTarget):
          (DOM::HTMLGenericFormElementImpl::parseMappedAttribute):
          (DOM::HTMLGenericFormElementImpl::getForm):
          (DOM::HTMLGenericFormElementImpl::name):
          (DOM::HTMLGenericFormElementImpl::setName):
          (DOM::HTMLGenericFormElementImpl::setDisabled):
          (DOM::HTMLGenericFormElementImpl::setReadOnly):
          (DOM::HTMLGenericFormElementImpl::tabIndex):
          (DOM::HTMLGenericFormElementImpl::setTabIndex):
          (DOM::HTMLButtonElementImpl::HTMLButtonElementImpl):
          (DOM::HTMLButtonElementImpl::type):
          (DOM::HTMLButtonElementImpl::parseMappedAttribute):
          (DOM::HTMLButtonElementImpl::accessKey):
          (DOM::HTMLButtonElementImpl::setAccessKey):
          (DOM::HTMLButtonElementImpl::value):
          (DOM::HTMLButtonElementImpl::setValue):
          (DOM::HTMLFieldSetElementImpl::HTMLFieldSetElementImpl):
          (DOM::HTMLFieldSetElementImpl::checkDTD):
          (DOM::HTMLInputElementImpl::HTMLInputElementImpl):
          (DOM::HTMLInputElementImpl::setType):
          (DOM::HTMLInputElementImpl::mapToEntry):
          (DOM::HTMLInputElementImpl::parseMappedAttribute):
          (DOM::HTMLInputElementImpl::attach):
          (DOM::HTMLInputElementImpl::altText):
          (DOM::HTMLInputElementImpl::value):
          (DOM::HTMLInputElementImpl::setValue):
          (DOM::HTMLInputElementImpl::isURLAttribute):
          (DOM::HTMLInputElementImpl::defaultValue):
          (DOM::HTMLInputElementImpl::setDefaultValue):
          (DOM::HTMLInputElementImpl::defaultChecked):
          (DOM::HTMLInputElementImpl::setDefaultChecked):
          (DOM::HTMLInputElementImpl::accept):
          (DOM::HTMLInputElementImpl::setAccept):
          (DOM::HTMLInputElementImpl::accessKey):
          (DOM::HTMLInputElementImpl::setAccessKey):
          (DOM::HTMLInputElementImpl::align):
          (DOM::HTMLInputElementImpl::setAlign):
          (DOM::HTMLInputElementImpl::alt):
          (DOM::HTMLInputElementImpl::setAlt):
          (DOM::HTMLInputElementImpl::setMaxLength):
          (DOM::HTMLInputElementImpl::setSize):
          (DOM::HTMLInputElementImpl::src):
          (DOM::HTMLInputElementImpl::setSrc):
          (DOM::HTMLInputElementImpl::useMap):
          (DOM::HTMLInputElementImpl::setUseMap):
          (DOM::HTMLLabelElementImpl::HTMLLabelElementImpl):
          (DOM::HTMLLabelElementImpl::parseMappedAttribute):
          (DOM::HTMLLabelElementImpl::formElement):
          (DOM::HTMLLabelElementImpl::form):
          (DOM::HTMLLabelElementImpl::accessKey):
          (DOM::HTMLLabelElementImpl::setAccessKey):
          (DOM::HTMLLabelElementImpl::htmlFor):
          (DOM::HTMLLabelElementImpl::setHtmlFor):
          (DOM::HTMLLegendElementImpl::HTMLLegendElementImpl):
          (DOM::HTMLLegendElementImpl::accessKey):
          (DOM::HTMLLegendElementImpl::setAccessKey):
          (DOM::HTMLLegendElementImpl::align):
          (DOM::HTMLLegendElementImpl::setAlign):
          (DOM::HTMLLegendElementImpl::formElement):
          (DOM::HTMLSelectElementImpl::HTMLSelectElementImpl):
          (DOM::HTMLSelectElementImpl::checkDTD):
          (DOM::HTMLSelectElementImpl::selectedIndex):
          (DOM::HTMLSelectElementImpl::setSelectedIndex):
          (DOM::HTMLSelectElementImpl::length):
          (DOM::HTMLSelectElementImpl::add):
          (DOM::HTMLSelectElementImpl::value):
          (DOM::HTMLSelectElementImpl::setValue):
          (DOM::HTMLSelectElementImpl::state):
          (DOM::HTMLSelectElementImpl::restoreState):
          (DOM::HTMLSelectElementImpl::parseMappedAttribute):
          (DOM::HTMLSelectElementImpl::appendFormData):
          (DOM::HTMLSelectElementImpl::optionToListIndex):
          (DOM::HTMLSelectElementImpl::listToOptionIndex):
          (DOM::HTMLSelectElementImpl::recalcListItems):
          (DOM::HTMLSelectElementImpl::reset):
          (DOM::HTMLSelectElementImpl::notifyOptionSelected):
          (DOM::HTMLSelectElementImpl::setMultiple):
          (DOM::HTMLSelectElementImpl::setSize):
          (DOM::HTMLKeygenElementImpl::HTMLKeygenElementImpl):
          (DOM::HTMLKeygenElementImpl::parseMappedAttribute):
          (DOM::HTMLOptGroupElementImpl::HTMLOptGroupElementImpl):
          (DOM::HTMLOptGroupElementImpl::recalcSelectOptions):
          (DOM::HTMLOptGroupElementImpl::label):
          (DOM::HTMLOptGroupElementImpl::setLabel):
          (DOM::HTMLOptionElementImpl::HTMLOptionElementImpl):
          (DOM::HTMLOptionElementImpl::text):
          (DOM::HTMLOptionElementImpl::index):
          (DOM::HTMLOptionElementImpl::parseMappedAttribute):
          (DOM::HTMLOptionElementImpl::setValue):
          (DOM::HTMLOptionElementImpl::getSelect):
          (DOM::HTMLOptionElementImpl::defaultSelected):
          (DOM::HTMLOptionElementImpl::setDefaultSelected):
          (DOM::HTMLOptionElementImpl::label):
          (DOM::HTMLOptionElementImpl::setLabel):
          (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl):
          (DOM::HTMLTextAreaElementImpl::parseMappedAttribute):
          (DOM::HTMLTextAreaElementImpl::accessKey):
          (DOM::HTMLTextAreaElementImpl::setAccessKey):
          (DOM::HTMLTextAreaElementImpl::setCols):
          (DOM::HTMLTextAreaElementImpl::setRows):
          (DOM::HTMLIsIndexElementImpl::HTMLIsIndexElementImpl):
          (DOM::HTMLIsIndexElementImpl::parseMappedAttribute):
          (DOM::HTMLIsIndexElementImpl::prompt):
          (DOM::HTMLIsIndexElementImpl::setPrompt):
          * khtml/html/html_formimpl.h:
          (DOM::HTMLOptGroupElementImpl::checkDTD):
          * khtml/html/html_headimpl.cpp:
          (HTMLBaseElementImpl::HTMLBaseElementImpl):
          (HTMLBaseElementImpl::parseMappedAttribute):
          (HTMLBaseElementImpl::setHref):
          (HTMLBaseElementImpl::setTarget):
          (HTMLLinkElementImpl::HTMLLinkElementImpl):
          (HTMLLinkElementImpl::parseMappedAttribute):
          (HTMLLinkElementImpl::process):
          (HTMLLinkElementImpl::isURLAttribute):
          (HTMLLinkElementImpl::disabled):
          (HTMLLinkElementImpl::setDisabled):
          (HTMLLinkElementImpl::charset):
          (HTMLLinkElementImpl::setCharset):
          (HTMLLinkElementImpl::href):
          (HTMLLinkElementImpl::setHref):
          (HTMLLinkElementImpl::hreflang):
          (HTMLLinkElementImpl::setHreflang):
          (HTMLLinkElementImpl::media):
          (HTMLLinkElementImpl::setMedia):
          (HTMLLinkElementImpl::rel):
          (HTMLLinkElementImpl::setRel):
          (HTMLLinkElementImpl::rev):
          (HTMLLinkElementImpl::setRev):
          (HTMLLinkElementImpl::target):
          (HTMLLinkElementImpl::setTarget):
          (HTMLLinkElementImpl::type):
          (HTMLLinkElementImpl::setType):
          (HTMLMetaElementImpl::HTMLMetaElementImpl):
          (HTMLMetaElementImpl::parseMappedAttribute):
          (HTMLMetaElementImpl::content):
          (HTMLMetaElementImpl::setContent):
          (HTMLMetaElementImpl::httpEquiv):
          (HTMLMetaElementImpl::setHttpEquiv):
          (HTMLMetaElementImpl::name):
          (HTMLMetaElementImpl::setName):
          (HTMLMetaElementImpl::scheme):
          (HTMLMetaElementImpl::setScheme):
          (HTMLScriptElementImpl::HTMLScriptElementImpl):
          (HTMLScriptElementImpl::isURLAttribute):
          (HTMLScriptElementImpl::insertedIntoDocument):
          (HTMLScriptElementImpl::charset):
          (HTMLScriptElementImpl::setCharset):
          (HTMLScriptElementImpl::defer):
          (HTMLScriptElementImpl::setDefer):
          (HTMLScriptElementImpl::src):
          (HTMLScriptElementImpl::setSrc):
          (HTMLScriptElementImpl::type):
          (HTMLScriptElementImpl::setType):
          (HTMLStyleElementImpl::HTMLStyleElementImpl):
          (HTMLStyleElementImpl::parseMappedAttribute):
          (HTMLStyleElementImpl::disabled):
          (HTMLStyleElementImpl::setDisabled):
          (HTMLStyleElementImpl::media):
          (HTMLStyleElementImpl::setMedia):
          (HTMLStyleElementImpl::type):
          (HTMLStyleElementImpl::setType):
          (HTMLTitleElementImpl::HTMLTitleElementImpl):
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageLoader::updateFromElement):
          (HTMLImageElementImpl::HTMLImageElementImpl):
          (HTMLImageElementImpl::mapToEntry):
          (HTMLImageElementImpl::parseMappedAttribute):
          (HTMLImageElementImpl::altText):
          (HTMLImageElementImpl::width):
          (HTMLImageElementImpl::height):
          (HTMLImageElementImpl::isURLAttribute):
          (HTMLImageElementImpl::name):
          (HTMLImageElementImpl::setName):
          (HTMLImageElementImpl::align):
          (HTMLImageElementImpl::setAlign):
          (HTMLImageElementImpl::alt):
          (HTMLImageElementImpl::setAlt):
          (HTMLImageElementImpl::border):
          (HTMLImageElementImpl::setBorder):
          (HTMLImageElementImpl::setHeight):
          (HTMLImageElementImpl::hspace):
          (HTMLImageElementImpl::setHspace):
          (HTMLImageElementImpl::isMap):
          (HTMLImageElementImpl::setIsMap):
          (HTMLImageElementImpl::longDesc):
          (HTMLImageElementImpl::setLongDesc):
          (HTMLImageElementImpl::src):
          (HTMLImageElementImpl::setSrc):
          (HTMLImageElementImpl::useMap):
          (HTMLImageElementImpl::setUseMap):
          (HTMLImageElementImpl::vspace):
          (HTMLImageElementImpl::setVspace):
          (HTMLImageElementImpl::setWidth):
          (HTMLMapElementImpl::HTMLMapElementImpl):
          (HTMLMapElementImpl::checkDTD):
          (HTMLMapElementImpl::mapMouseEvent):
          (HTMLMapElementImpl::parseMappedAttribute):
          (HTMLMapElementImpl::name):
          (HTMLMapElementImpl::setName):
          (HTMLAreaElementImpl::HTMLAreaElementImpl):
          (HTMLAreaElementImpl::parseMappedAttribute):
          (HTMLAreaElementImpl::accessKey):
          (HTMLAreaElementImpl::setAccessKey):
          (HTMLAreaElementImpl::alt):
          (HTMLAreaElementImpl::setAlt):
          (HTMLAreaElementImpl::coords):
          (HTMLAreaElementImpl::setCoords):
          (HTMLAreaElementImpl::href):
          (HTMLAreaElementImpl::setHref):
          (HTMLAreaElementImpl::noHref):
          (HTMLAreaElementImpl::setNoHref):
          (HTMLAreaElementImpl::shape):
          (HTMLAreaElementImpl::setShape):
          (HTMLAreaElementImpl::tabIndex):
          (HTMLAreaElementImpl::setTabIndex):
          (HTMLAreaElementImpl::target):
          (HTMLAreaElementImpl::setTarget):
          * khtml/html/html_inlineimpl.cpp:
          (DOM::HTMLAnchorElementImpl::HTMLAnchorElementImpl):
          (DOM::HTMLAnchorElementImpl::defaultEventHandler):
          (DOM::HTMLAnchorElementImpl::parseMappedAttribute):
          (DOM::HTMLAnchorElementImpl::isURLAttribute):
          (DOM::HTMLAnchorElementImpl::accessKey):
          (DOM::HTMLAnchorElementImpl::setAccessKey):
          (DOM::HTMLAnchorElementImpl::charset):
          (DOM::HTMLAnchorElementImpl::setCharset):
          (DOM::HTMLAnchorElementImpl::coords):
          (DOM::HTMLAnchorElementImpl::setCoords):
          (DOM::HTMLAnchorElementImpl::href):
          (DOM::HTMLAnchorElementImpl::setHref):
          (DOM::HTMLAnchorElementImpl::hreflang):
          (DOM::HTMLAnchorElementImpl::setHreflang):
          (DOM::HTMLAnchorElementImpl::name):
          (DOM::HTMLAnchorElementImpl::setName):
          (DOM::HTMLAnchorElementImpl::rel):
          (DOM::HTMLAnchorElementImpl::setRel):
          (DOM::HTMLAnchorElementImpl::rev):
          (DOM::HTMLAnchorElementImpl::setRev):
          (DOM::HTMLAnchorElementImpl::shape):
          (DOM::HTMLAnchorElementImpl::setShape):
          (DOM::HTMLAnchorElementImpl::tabIndex):
          (DOM::HTMLAnchorElementImpl::setTabIndex):
          (DOM::HTMLAnchorElementImpl::target):
          (DOM::HTMLAnchorElementImpl::setTarget):
          (DOM::HTMLAnchorElementImpl::type):
          (DOM::HTMLAnchorElementImpl::setType):
          (DOM::HTMLBRElementImpl::HTMLBRElementImpl):
          (DOM::HTMLBRElementImpl::mapToEntry):
          (DOM::HTMLBRElementImpl::parseMappedAttribute):
          (DOM::HTMLBRElementImpl::clear):
          (DOM::HTMLBRElementImpl::setClear):
          (DOM::HTMLFontElementImpl::HTMLFontElementImpl):
          (DOM::HTMLFontElementImpl::mapToEntry):
          (DOM::HTMLFontElementImpl::parseMappedAttribute):
          (DOM::HTMLFontElementImpl::color):
          (DOM::HTMLFontElementImpl::setColor):
          (DOM::HTMLFontElementImpl::face):
          (DOM::HTMLFontElementImpl::setFace):
          (DOM::HTMLFontElementImpl::size):
          (DOM::HTMLFontElementImpl::setSize):
          (DOM::HTMLModElementImpl::cite):
          (DOM::HTMLModElementImpl::setCite):
          (DOM::HTMLModElementImpl::dateTime):
          (DOM::HTMLModElementImpl::setDateTime):
          (DOM::HTMLQuoteElementImpl::HTMLQuoteElementImpl):
          (DOM::HTMLQuoteElementImpl::cite):
          (DOM::HTMLQuoteElementImpl::setCite):
          * khtml/html/html_listimpl.cpp:
          (DOM::HTMLUListElementImpl::mapToEntry):
          (DOM::HTMLUListElementImpl::parseMappedAttribute):
          (DOM::HTMLUListElementImpl::compact):
          (DOM::HTMLUListElementImpl::setCompact):
          (DOM::HTMLUListElementImpl::type):
          (DOM::HTMLUListElementImpl::setType):
          (DOM::HTMLDirectoryElementImpl::compact):
          (DOM::HTMLDirectoryElementImpl::setCompact):
          (DOM::HTMLMenuElementImpl::compact):
          (DOM::HTMLMenuElementImpl::setCompact):
          (DOM::HTMLOListElementImpl::mapToEntry):
          (DOM::HTMLOListElementImpl::parseMappedAttribute):
          (DOM::HTMLOListElementImpl::compact):
          (DOM::HTMLOListElementImpl::setCompact):
          (DOM::HTMLOListElementImpl::setStart):
          (DOM::HTMLOListElementImpl::type):
          (DOM::HTMLOListElementImpl::setType):
          (DOM::HTMLLIElementImpl::mapToEntry):
          (DOM::HTMLLIElementImpl::parseMappedAttribute):
          (DOM::HTMLLIElementImpl::attach):
          (DOM::HTMLLIElementImpl::type):
          (DOM::HTMLLIElementImpl::setType):
          (DOM::HTMLLIElementImpl::value):
          (DOM::HTMLLIElementImpl::setValue):
          (DOM::HTMLDListElementImpl::compact):
          (DOM::HTMLDListElementImpl::setCompact):
          * khtml/html/html_listimpl.h:
          (DOM::HTMLUListElementImpl::HTMLUListElementImpl):
          (DOM::HTMLDirectoryElementImpl::HTMLDirectoryElementImpl):
          (DOM::HTMLMenuElementImpl::HTMLMenuElementImpl):
          (DOM::HTMLOListElementImpl::HTMLOListElementImpl):
          (DOM::HTMLLIElementImpl::HTMLLIElementImpl):
          (DOM::HTMLDListElementImpl::HTMLDListElementImpl):
          * khtml/html/html_miscimpl.cpp:
          (DOM::HTMLBaseFontElementImpl::HTMLBaseFontElementImpl):
          (DOM::HTMLBaseFontElementImpl::color):
          (DOM::HTMLBaseFontElementImpl::setColor):
          (DOM::HTMLBaseFontElementImpl::face):
          (DOM::HTMLBaseFontElementImpl::setFace):
          (DOM::HTMLBaseFontElementImpl::size):
          (DOM::HTMLBaseFontElementImpl::setSize):
          (DOM::HTMLCollectionImpl::traverseNextItem):
          (DOM::HTMLCollectionImpl::checkForNameMatch):
          (DOM::HTMLNameCollectionImpl::traverseNextItem):
          (DOM::HTMLCollectionImpl::updateNameCache):
          (DOM::HTMLFormCollectionImpl::getNamedFormItem):
          (DOM::HTMLFormCollectionImpl::nextNamedItemInternal):
          (DOM::HTMLFormCollectionImpl::namedItem):
          (DOM::HTMLFormCollectionImpl::nextNamedItem):
          (DOM::HTMLFormCollectionImpl::updateNameCache):
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLAppletElementImpl::HTMLAppletElementImpl):
          (DOM::HTMLAppletElementImpl::checkDTD):
          (DOM::HTMLAppletElementImpl::mapToEntry):
          (DOM::HTMLAppletElementImpl::parseMappedAttribute):
          (DOM::HTMLAppletElementImpl::rendererIsNeeded):
          (DOM::HTMLAppletElementImpl::createRenderer):
          (DOM::HTMLAppletElementImpl::align):
          (DOM::HTMLAppletElementImpl::setAlign):
          (DOM::HTMLAppletElementImpl::alt):
          (DOM::HTMLAppletElementImpl::setAlt):
          (DOM::HTMLAppletElementImpl::archive):
          (DOM::HTMLAppletElementImpl::setArchive):
          (DOM::HTMLAppletElementImpl::code):
          (DOM::HTMLAppletElementImpl::setCode):
          (DOM::HTMLAppletElementImpl::codeBase):
          (DOM::HTMLAppletElementImpl::setCodeBase):
          (DOM::HTMLAppletElementImpl::height):
          (DOM::HTMLAppletElementImpl::setHeight):
          (DOM::HTMLAppletElementImpl::hspace):
          (DOM::HTMLAppletElementImpl::setHspace):
          (DOM::HTMLAppletElementImpl::name):
          (DOM::HTMLAppletElementImpl::setName):
          (DOM::HTMLAppletElementImpl::object):
          (DOM::HTMLAppletElementImpl::setObject):
          (DOM::HTMLAppletElementImpl::vspace):
          (DOM::HTMLAppletElementImpl::setVspace):
          (DOM::HTMLAppletElementImpl::width):
          (DOM::HTMLAppletElementImpl::setWidth):
          (DOM::HTMLEmbedElementImpl::HTMLEmbedElementImpl):
          (DOM::HTMLEmbedElementImpl::checkDTD):
          (DOM::HTMLEmbedElementImpl::mapToEntry):
          (DOM::HTMLEmbedElementImpl::parseMappedAttribute):
          (DOM::HTMLEmbedElementImpl::rendererIsNeeded):
          (DOM::HTMLEmbedElementImpl::isURLAttribute):
          (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl):
          (DOM::HTMLObjectElementImpl::checkDTD):
          (DOM::HTMLObjectElementImpl::form):
          (DOM::HTMLObjectElementImpl::mapToEntry):
          (DOM::HTMLObjectElementImpl::parseMappedAttribute):
          (DOM::HTMLObjectElementImpl::isURLAttribute):
          (DOM::HTMLObjectElementImpl::code):
          (DOM::HTMLObjectElementImpl::setCode):
          (DOM::HTMLObjectElementImpl::align):
          (DOM::HTMLObjectElementImpl::setAlign):
          (DOM::HTMLObjectElementImpl::archive):
          (DOM::HTMLObjectElementImpl::setArchive):
          (DOM::HTMLObjectElementImpl::border):
          (DOM::HTMLObjectElementImpl::setBorder):
          (DOM::HTMLObjectElementImpl::codeBase):
          (DOM::HTMLObjectElementImpl::setCodeBase):
          (DOM::HTMLObjectElementImpl::codeType):
          (DOM::HTMLObjectElementImpl::setCodeType):
          (DOM::HTMLObjectElementImpl::data):
          (DOM::HTMLObjectElementImpl::setData):
          (DOM::HTMLObjectElementImpl::declare):
          (DOM::HTMLObjectElementImpl::setDeclare):
          (DOM::HTMLObjectElementImpl::height):
          (DOM::HTMLObjectElementImpl::setHeight):
          (DOM::HTMLObjectElementImpl::hspace):
          (DOM::HTMLObjectElementImpl::setHspace):
          (DOM::HTMLObjectElementImpl::name):
          (DOM::HTMLObjectElementImpl::setName):
          (DOM::HTMLObjectElementImpl::standby):
          (DOM::HTMLObjectElementImpl::setStandby):
          (DOM::HTMLObjectElementImpl::tabIndex):
          (DOM::HTMLObjectElementImpl::setTabIndex):
          (DOM::HTMLObjectElementImpl::type):
          (DOM::HTMLObjectElementImpl::setType):
          (DOM::HTMLObjectElementImpl::useMap):
          (DOM::HTMLObjectElementImpl::setUseMap):
          (DOM::HTMLObjectElementImpl::vspace):
          (DOM::HTMLObjectElementImpl::setVspace):
          (DOM::HTMLObjectElementImpl::width):
          (DOM::HTMLObjectElementImpl::setWidth):
          (DOM::HTMLParamElementImpl::HTMLParamElementImpl):
          (DOM::HTMLParamElementImpl::parseMappedAttribute):
          (DOM::HTMLParamElementImpl::isURLAttribute):
          (DOM::HTMLParamElementImpl::setName):
          (DOM::HTMLParamElementImpl::type):
          (DOM::HTMLParamElementImpl::setType):
          (DOM::HTMLParamElementImpl::setValue):
          (DOM::HTMLParamElementImpl::valueType):
          (DOM::HTMLParamElementImpl::setValueType):
          * khtml/html/html_tableimpl.cpp:
          (DOM::HTMLTableElementImpl::HTMLTableElementImpl):
          (DOM::HTMLTableElementImpl::checkDTD):
          (DOM::HTMLTableElementImpl::createTHead):
          (DOM::HTMLTableElementImpl::createTFoot):
          (DOM::HTMLTableElementImpl::insertRow):
          (DOM::HTMLTableElementImpl::deleteRow):
          (DOM::HTMLTableElementImpl::addChild):
          (DOM::HTMLTableElementImpl::mapToEntry):
          (DOM::HTMLTableElementImpl::parseMappedAttribute):
          (DOM::HTMLTableElementImpl::additionalAttributeStyleDecl):
          (DOM::HTMLTableElementImpl::getSharedCellDecl):
          (DOM::HTMLTableElementImpl::isURLAttribute):
          (DOM::HTMLTableElementImpl::align):
          (DOM::HTMLTableElementImpl::setAlign):
          (DOM::HTMLTableElementImpl::bgColor):
          (DOM::HTMLTableElementImpl::setBgColor):
          (DOM::HTMLTableElementImpl::border):
          (DOM::HTMLTableElementImpl::setBorder):
          (DOM::HTMLTableElementImpl::cellPadding):
          (DOM::HTMLTableElementImpl::setCellPadding):
          (DOM::HTMLTableElementImpl::cellSpacing):
          (DOM::HTMLTableElementImpl::setCellSpacing):
          (DOM::HTMLTableElementImpl::frame):
          (DOM::HTMLTableElementImpl::setFrame):
          (DOM::HTMLTableElementImpl::rules):
          (DOM::HTMLTableElementImpl::setRules):
          (DOM::HTMLTableElementImpl::summary):
          (DOM::HTMLTableElementImpl::setSummary):
          (DOM::HTMLTableElementImpl::width):
          (DOM::HTMLTableElementImpl::setWidth):
          (DOM::HTMLTablePartElementImpl::mapToEntry):
          (DOM::HTMLTablePartElementImpl::parseMappedAttribute):
          (DOM::HTMLTableSectionElementImpl::checkDTD):
          (DOM::HTMLTableSectionElementImpl::addChild):
          (DOM::HTMLTableSectionElementImpl::numRows):
          (DOM::HTMLTableSectionElementImpl::align):
          (DOM::HTMLTableSectionElementImpl::setAlign):
          (DOM::HTMLTableSectionElementImpl::ch):
          (DOM::HTMLTableSectionElementImpl::setCh):
          (DOM::HTMLTableSectionElementImpl::chOff):
          (DOM::HTMLTableSectionElementImpl::setChOff):
          (DOM::HTMLTableSectionElementImpl::vAlign):
          (DOM::HTMLTableSectionElementImpl::setVAlign):
          (DOM::HTMLTableRowElementImpl::checkDTD):
          (DOM::HTMLTableRowElementImpl::addChild):
          (DOM::HTMLTableRowElementImpl::rowIndex):
          (DOM::HTMLTableRowElementImpl::sectionRowIndex):
          (DOM::HTMLTableRowElementImpl::insertCell):
          (DOM::HTMLTableRowElementImpl::align):
          (DOM::HTMLTableRowElementImpl::setAlign):
          (DOM::HTMLTableRowElementImpl::bgColor):
          (DOM::HTMLTableRowElementImpl::setBgColor):
          (DOM::HTMLTableRowElementImpl::ch):
          (DOM::HTMLTableRowElementImpl::setCh):
          (DOM::HTMLTableRowElementImpl::chOff):
          (DOM::HTMLTableRowElementImpl::setChOff):
          (DOM::HTMLTableRowElementImpl::vAlign):
          (DOM::HTMLTableRowElementImpl::setVAlign):
          (DOM::HTMLTableCellElementImpl::cellIndex):
          (DOM::HTMLTableCellElementImpl::mapToEntry):
          (DOM::HTMLTableCellElementImpl::parseMappedAttribute):
          (DOM::HTMLTableCellElementImpl::additionalAttributeStyleDecl):
          (DOM::HTMLTableCellElementImpl::isURLAttribute):
          (DOM::HTMLTableCellElementImpl::abbr):
          (DOM::HTMLTableCellElementImpl::setAbbr):
          (DOM::HTMLTableCellElementImpl::align):
          (DOM::HTMLTableCellElementImpl::setAlign):
          (DOM::HTMLTableCellElementImpl::axis):
          (DOM::HTMLTableCellElementImpl::setAxis):
          (DOM::HTMLTableCellElementImpl::bgColor):
          (DOM::HTMLTableCellElementImpl::setBgColor):
          (DOM::HTMLTableCellElementImpl::ch):
          (DOM::HTMLTableCellElementImpl::setCh):
          (DOM::HTMLTableCellElementImpl::chOff):
          (DOM::HTMLTableCellElementImpl::setChOff):
          (DOM::HTMLTableCellElementImpl::setColSpan):
          (DOM::HTMLTableCellElementImpl::headers):
          (DOM::HTMLTableCellElementImpl::setHeaders):
          (DOM::HTMLTableCellElementImpl::height):
          (DOM::HTMLTableCellElementImpl::setHeight):
          (DOM::HTMLTableCellElementImpl::noWrap):
          (DOM::HTMLTableCellElementImpl::setNoWrap):
          (DOM::HTMLTableCellElementImpl::setRowSpan):
          (DOM::HTMLTableCellElementImpl::scope):
          (DOM::HTMLTableCellElementImpl::setScope):
          (DOM::HTMLTableCellElementImpl::vAlign):
          (DOM::HTMLTableCellElementImpl::setVAlign):
          (DOM::HTMLTableCellElementImpl::width):
          (DOM::HTMLTableCellElementImpl::setWidth):
          (DOM::HTMLTableColElementImpl::HTMLTableColElementImpl):
          (DOM::HTMLTableColElementImpl::mapToEntry):
          (DOM::HTMLTableColElementImpl::parseMappedAttribute):
          (DOM::HTMLTableColElementImpl::align):
          (DOM::HTMLTableColElementImpl::setAlign):
          (DOM::HTMLTableColElementImpl::ch):
          (DOM::HTMLTableColElementImpl::setCh):
          (DOM::HTMLTableColElementImpl::chOff):
          (DOM::HTMLTableColElementImpl::setChOff):
          (DOM::HTMLTableColElementImpl::setSpan):
          (DOM::HTMLTableColElementImpl::vAlign):
          (DOM::HTMLTableColElementImpl::setVAlign):
          (DOM::HTMLTableColElementImpl::width):
          (DOM::HTMLTableColElementImpl::setWidth):
          (DOM::HTMLTableCaptionElementImpl::mapToEntry):
          (DOM::HTMLTableCaptionElementImpl::parseMappedAttribute):
          (DOM::HTMLTableCaptionElementImpl::align):
          (DOM::HTMLTableCaptionElementImpl::setAlign):
          * khtml/html/html_tableimpl.h:
          (DOM::HTMLTableRowElementImpl::HTMLTableRowElementImpl):
          (DOM::HTMLTableColElementImpl::endTagRequirement):
          (DOM::HTMLTableColElementImpl::tagPriority):
          (DOM::HTMLTableColElementImpl::checkDTD):
          (DOM::HTMLTableCaptionElementImpl::HTMLTableCaptionElementImpl):
          * khtml/html/htmlfactory.cpp:
          (DOM::headingConstructor):
          (DOM::preConstructor):
          (DOM::modConstructor):
          (DOM::tableColConstructor):
          (DOM::tableCellConstructor):
          (DOM::tableSectionConstructor):
          (DOM::HTMLElementFactory::createHTMLElement):
          * khtml/html/htmlnames.cpp:
          (HTMLNames::initHTMLNames):
          * khtml/html/htmlnames.h:
          * khtml/html/htmlparser.cpp:
          (HTMLParser::parseToken):
          (isTableSection):
          (isTablePart):
          (isTableRelated):
          (HTMLParser::handleError):
          (HTMLParser::headCreateErrorCheck):
          (HTMLParser::bodyCreateErrorCheck):
          (HTMLParser::framesetCreateErrorCheck):
          (HTMLParser::iframeCreateErrorCheck):
          (HTMLParser::ddCreateErrorCheck):
          (HTMLParser::dtCreateErrorCheck):
          (HTMLParser::tableCellCreateErrorCheck):
          (HTMLParser::tableSectionCreateErrorCheck):
          (HTMLParser::noembedCreateErrorCheck):
          (HTMLParser::noframesCreateErrorCheck):
          (HTMLParser::noscriptCreateErrorCheck):
          (HTMLParser::getNode):
          (HTMLParser::processCloseTag):
          (HTMLParser::isHeaderTag):
          (HTMLParser::isInline):
          (HTMLParser::isResidualStyleTag):
          (HTMLParser::isAffectedByResidualStyle):
          (HTMLParser::popBlock):
          (HTMLParser::handleIsindex):
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseSpecial):
          (khtml::HTMLTokenizer::scriptHandler):
          (khtml::HTMLTokenizer::parseTag):
          * khtml/khtml_part.cpp:
          (KHTMLPart::init):
          (KHTMLPart::backgroundURL):
          (KHTMLPart::updateActions):
          (KHTMLPart::handleMouseMoveEventDrag):
          (KHTMLPart::selectionComputedStyle):
          (KHTMLPart::applyEditingStyleToElement):
          (KHTMLPart::removeEditingStyleFromElement):
          * khtml/khtmlview.cpp:
          (KHTMLView::layout):
          (isSubmitImage):
          * khtml/misc/decoder.cpp:
          (Decoder::decode):
          * khtml/misc/hashtable.h:
          (khtml::::lookup):
          * khtml/rendering/render_applet.cpp:
          (RenderApplet::createWidgetIfNecessary):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlock):
          * khtml/rendering/render_box.cpp:
          (RenderBox::paintRootBoxDecorations):
          (RenderBox::paintBackgroundExtended):
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::paint):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::addFocusRingRects):
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::updateFromElement):
          (RenderFieldset::findLegend):
          (RenderSelect::updateFromElement):
          (RenderSelect::layout):
          (RenderSelect::slotSelected):
          (RenderSelect::slotSelectionChanged):
          (RenderSelect::updateSelection):
          (RenderSlider::updateFromElement):
          (RenderSlider::slotSliderValueChanged):
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget):
          (RenderPartObject::slotViewCleared):
          * khtml/rendering/render_image.cpp:
          (RenderImage::paint):
          (RenderImage::imageMap):
          (RenderImage::updateAltText):
          * khtml/rendering/render_layer.cpp:
          (Marquee::marqueeSpeed):
          * khtml/rendering/render_list.cpp:
          (getParentOfFirstLineBox):
          * khtml/rendering/render_object.cpp:
          (RenderObject::isBody):
          (RenderObject::isHR):
          (RenderObject::isHTMLMarquee):
          (RenderObject::sizesToMaxWidth):
          (RenderObject::setStyle):
          (RenderObject::getTextDecorationColors):
          (RenderObject::setPixmap):
          * khtml/rendering/render_table.cpp:
          (RenderTable::addChild):
          (RenderTable::layout):
          (RenderTableSection::addChild):
          (RenderTableRow::addChild):
          (RenderTableCell::updateFromElement):
          (RenderTableCell::calcMinMaxWidth):
          (RenderTableCol::updateFromElement):
          * khtml/rendering/render_theme.cpp:
          (khtml::RenderTheme::isControlContainer):
          (khtml::RenderTheme::isChecked):
          (khtml::RenderTheme::isEnabled):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createElementNS):
          (DocumentImpl::getElementById):
          (DocumentImpl::getElementByAccessKey):
          (DocumentImpl::body):
          (DocumentImpl::shouldScheduleLayout):
          (DocumentImpl::prepareMouseEvent):
          (DocumentImpl::recalcStyleSelector):
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::getAttribute):
          (ElementImpl::setAttribute):
          (ElementImpl::setAttributeMap):
          (ElementImpl::insertedIntoDocument):
          (ElementImpl::removedFromDocument):
          (ElementImpl::formatForDebugger):
          (NamedAttrMapImpl::setNamedItem):
          (NamedAttrMapImpl::removeNamedItem):
          (NamedAttrMapImpl::operator=):
          (StyledElementImpl::updateStyleAttributeIfNeeded):
          (StyledElementImpl::mapToEntry):
          (StyledElementImpl::parseMappedAttribute):
          * khtml/xml/dom_nodeimpl.cpp:
          (DOM::NodeImpl::maxDeepOffset):
          (DOM::NodeImpl::enclosingBlockFlowOrTableElement):
          (DOM::NodeImpl::enclosingBlockFlowElement):
          (DOM::NodeImpl::enclosingInlineElement):
          (DOM::NodeImpl::rootEditableElement):
          (DOM::NodeImpl::showNode):
          (DOM::NodeImpl::showTreeAndMark):
          (DOM::NameNodeListImpl::nodeMatches):
          * khtml/xml/dom_position.cpp:
          (DOM::Position::downstream):
          (DOM::Position::rendersInDifferentPosition):
          (DOM::Position::leadingWhitespacePosition):
          (DOM::Position::trailingWhitespacePosition):
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::XMLTokenizer::startElement):
          (khtml::XMLTokenizer::insertErrorMessageBlock):
          (khtml::XMLTokenizer::addScripts):
          (khtml::XMLTokenizer::executeScripts):
          * kwq/DOM.mm:
          (+[DOMNode _nodeWithImpl:]):
          * kwq/DOMHTML.mm:
          (-[DOMHTMLElement idName]):
          (-[DOMHTMLElement setIdName:]):
          (-[DOMHTMLLinkElement media]):
          (-[DOMHTMLLinkElement setMedia:]):
          (-[DOMHTMLLinkElement rel]):
          (-[DOMHTMLLinkElement setRel:]):
          (-[DOMHTMLLinkElement rev]):
          (-[DOMHTMLLinkElement setRev:]):
          (-[DOMHTMLLinkElement target]):
          (-[DOMHTMLLinkElement setTarget:]):
          (-[DOMHTMLLinkElement type]):
          (-[DOMHTMLLinkElement setType:]):
          (-[DOMHTMLTitleElement text]):
          (-[DOMHTMLTitleElement setText:]):
          (-[DOMHTMLMetaElement content]):
          (-[DOMHTMLMetaElement setContent:]):
          (-[DOMHTMLMetaElement httpEquiv]):
          (-[DOMHTMLMetaElement setHttpEquiv:]):
          (-[DOMHTMLMetaElement name]):
          (-[DOMHTMLMetaElement setName:]):
          (-[DOMHTMLMetaElement scheme]):
          (-[DOMHTMLMetaElement setScheme:]):
          (-[DOMHTMLBaseElement setHref:]):
          (-[DOMHTMLBaseElement target]):
          (-[DOMHTMLBaseElement setTarget:]):
          (-[DOMHTMLStyleElement disabled]):
          (-[DOMHTMLStyleElement setDisabled:]):
          (-[DOMHTMLStyleElement media]):
          (-[DOMHTMLStyleElement setMedia:]):
          (-[DOMHTMLStyleElement type]):
          (-[DOMHTMLStyleElement setType:]):
          (-[DOMHTMLBodyElement aLink]):
          (-[DOMHTMLBodyElement setALink:]):
          (-[DOMHTMLBodyElement background]):
          (-[DOMHTMLBodyElement setBackground:]):
          (-[DOMHTMLBodyElement bgColor]):
          (-[DOMHTMLBodyElement setBgColor:]):
          (-[DOMHTMLBodyElement link]):
          (-[DOMHTMLBodyElement setLink:]):
          (-[DOMHTMLBodyElement text]):
          (-[DOMHTMLBodyElement setText:]):
          (-[DOMHTMLBodyElement vLink]):
          (-[DOMHTMLBodyElement setVLink:]):
          (-[DOMHTMLFormElement name]):
          (-[DOMHTMLFormElement setName:]):
          (-[DOMHTMLFormElement acceptCharset]):
          (-[DOMHTMLFormElement setAcceptCharset:]):
          (-[DOMHTMLFormElement action]):
          (-[DOMHTMLFormElement setAction:]):
          (-[DOMHTMLFormElement enctype]):
          (-[DOMHTMLFormElement setEnctype:]):
          (-[DOMHTMLFormElement method]):
          (-[DOMHTMLFormElement setMethod:]):
          (-[DOMHTMLFormElement target]):
          (-[DOMHTMLFormElement setTarget:]):
          (-[DOMHTMLTextAreaElement accessKey]):
          (-[DOMHTMLTextAreaElement setAccessKey:]):
          (-[DOMHTMLTextAreaElement cols]):
          (-[DOMHTMLTextAreaElement setCols:]):
          (-[DOMHTMLTextAreaElement disabled]):
          (-[DOMHTMLTextAreaElement setDisabled:]):
          (-[DOMHTMLTextAreaElement readOnly]):
          (-[DOMHTMLTextAreaElement setReadOnly:]):
          (-[DOMHTMLTextAreaElement rows]):
          (-[DOMHTMLTextAreaElement setRows:]):
          (-[DOMHTMLButtonElement accessKey]):
          (-[DOMHTMLButtonElement setAccessKey:]):
          (-[DOMHTMLButtonElement disabled]):
          (-[DOMHTMLButtonElement setDisabled:]):
          (-[DOMHTMLButtonElement value]):
          (-[DOMHTMLButtonElement setValue:]):
          (-[DOMHTMLLabelElement accessKey]):
          (-[DOMHTMLLabelElement setAccessKey:]):
          (-[DOMHTMLLabelElement htmlFor]):
          (-[DOMHTMLLabelElement setHtmlFor:]):
          (-[DOMHTMLLegendElement accessKey]):
          (-[DOMHTMLLegendElement setAccessKey:]):
          (-[DOMHTMLLegendElement align]):
          (-[DOMHTMLLegendElement setAlign:]):
          (-[DOMHTMLUListElement compact]):
          (-[DOMHTMLUListElement setCompact:]):
          (-[DOMHTMLUListElement type]):
          (-[DOMHTMLUListElement setType:]):
          (-[DOMHTMLOListElement start]):
          (-[DOMHTMLOListElement setStart:]):
          (-[DOMHTMLOListElement type]):
          (-[DOMHTMLOListElement setType:]):
          (-[DOMHTMLDListElement compact]):
          (-[DOMHTMLDListElement setCompact:]):
          (-[DOMHTMLDirectoryElement compact]):
          (-[DOMHTMLDirectoryElement setCompact:]):
          (-[DOMHTMLMenuElement compact]):
          (-[DOMHTMLMenuElement setCompact:]):
          (-[DOMHTMLQuoteElement cite]):
          (-[DOMHTMLQuoteElement setCite:]):
          (-[DOMHTMLDivElement align]):
          (-[DOMHTMLDivElement setAlign:]):
          (-[DOMHTMLParagraphElement align]):
          (-[DOMHTMLParagraphElement setAlign:]):
          (-[DOMHTMLHeadingElement align]):
          (-[DOMHTMLHeadingElement setAlign:]):
          (-[DOMHTMLPreElement width]):
          (-[DOMHTMLPreElement setWidth:]):
          (-[DOMHTMLBRElement clear]):
          (-[DOMHTMLBRElement setClear:]):
          (-[DOMHTMLBaseFontElement color]):
          (-[DOMHTMLBaseFontElement setColor:]):
          (-[DOMHTMLBaseFontElement face]):
          (-[DOMHTMLBaseFontElement setFace:]):
          (-[DOMHTMLBaseFontElement size]):
          (-[DOMHTMLBaseFontElement setSize:]):
          (-[DOMHTMLFontElement color]):
          (-[DOMHTMLFontElement setColor:]):
          (-[DOMHTMLFontElement face]):
          (-[DOMHTMLFontElement setFace:]):
          (-[DOMHTMLFontElement size]):
          (-[DOMHTMLFontElement setSize:]):
          (-[DOMHTMLHRElement align]):
          (-[DOMHTMLHRElement setAlign:]):
          (-[DOMHTMLHRElement noShade]):
          (-[DOMHTMLHRElement setNoShade:]):
          (-[DOMHTMLHRElement size]):
          (-[DOMHTMLHRElement setSize:]):
          (-[DOMHTMLHRElement width]):
          (-[DOMHTMLHRElement setWidth:]):
          (-[DOMHTMLModElement cite]):
          (-[DOMHTMLModElement setCite:]):
          (-[DOMHTMLModElement dateTime]):
          (-[DOMHTMLModElement setDateTime:]):
          (-[DOMHTMLAnchorElement accessKey]):
          (-[DOMHTMLAnchorElement setAccessKey:]):
          (-[DOMHTMLAnchorElement charset]):
          (-[DOMHTMLAnchorElement setCharset:]):
          (-[DOMHTMLAnchorElement coords]):
          (-[DOMHTMLAnchorElement setCoords:]):
          (-[DOMHTMLAnchorElement setHref:]):
          (-[DOMHTMLAnchorElement target]):
          (-[DOMHTMLAnchorElement setTarget:]):
          (-[DOMHTMLAnchorElement type]):
          (-[DOMHTMLAnchorElement setType:]):
          (-[DOMHTMLImageElement name]):
          (-[DOMHTMLImageElement setName:]):
          (-[DOMHTMLImageElement align]):
          (-[DOMHTMLImageElement setAlign:]):
          (-[DOMHTMLImageElement alt]):
          (-[DOMHTMLImageElement setAlt:]):
          (-[DOMHTMLImageElement border]):
          (-[DOMHTMLImageElement setBorder:]):
          (-[DOMHTMLImageElement height]):
          (-[DOMHTMLImageElement setHeight:]):
          (-[DOMHTMLImageElement hspace]):
          (-[DOMHTMLImageElement setHspace:]):
          (-[DOMHTMLImageElement isMap]):
          (-[DOMHTMLImageElement setIsMap:]):
          (-[DOMHTMLImageElement longDesc]):
          (-[DOMHTMLImageElement setLongDesc:]):
          (-[DOMHTMLImageElement setSrc:]):
          (-[DOMHTMLImageElement useMap]):
          (-[DOMHTMLImageElement setUseMap:]):
          (-[DOMHTMLImageElement vspace]):
          (-[DOMHTMLImageElement setVspace:]):
          (-[DOMHTMLImageElement width]):
          (-[DOMHTMLImageElement setWidth:]):
          (-[DOMHTMLObjectElement code]):
          (-[DOMHTMLObjectElement setCode:]):
          (-[DOMHTMLObjectElement align]):
          (-[DOMHTMLObjectElement setAlign:]):
          (-[DOMHTMLObjectElement archive]):
          (-[DOMHTMLObjectElement setArchive:]):
          (-[DOMHTMLObjectElement border]):
          (-[DOMHTMLObjectElement setBorder:]):
          (-[DOMHTMLObjectElement codeBase]):
          (-[DOMHTMLObjectElement setCodeBase:]):
          (-[DOMHTMLObjectElement codeType]):
          (-[DOMHTMLObjectElement setCodeType:]):
          (-[DOMHTMLObjectElement data]):
          (-[DOMHTMLObjectElement setData:]):
          (-[DOMHTMLObjectElement declare]):
          (-[DOMHTMLObjectElement setDeclare:]):
          (-[DOMHTMLObjectElement height]):
          (-[DOMHTMLObjectElement setHeight:]):
          (-[DOMHTMLObjectElement hspace]):
          (-[DOMHTMLObjectElement setHspace:]):
          (-[DOMHTMLObjectElement name]):
          (-[DOMHTMLObjectElement setName:]):
          (-[DOMHTMLObjectElement standby]):
          (-[DOMHTMLObjectElement setStandby:]):
          (-[DOMHTMLObjectElement tabIndex]):
          (-[DOMHTMLObjectElement setTabIndex:]):
          (-[DOMHTMLObjectElement type]):
          (-[DOMHTMLObjectElement setType:]):
          (-[DOMHTMLObjectElement useMap]):
          (-[DOMHTMLObjectElement setUseMap:]):
          (-[DOMHTMLObjectElement vspace]):
          (-[DOMHTMLObjectElement setVspace:]):
          (-[DOMHTMLObjectElement width]):
          (-[DOMHTMLObjectElement setWidth:]):
          (-[DOMHTMLParamElement name]):
          (-[DOMHTMLParamElement setName:]):
          (-[DOMHTMLParamElement type]):
          (-[DOMHTMLParamElement setType:]):
          (-[DOMHTMLParamElement value]):
          (-[DOMHTMLParamElement setValue:]):
          (-[DOMHTMLParamElement valueType]):
          (-[DOMHTMLParamElement setValueType:]):
          (-[DOMHTMLAppletElement align]):
          (-[DOMHTMLAppletElement setAlign:]):
          (-[DOMHTMLAppletElement alt]):
          (-[DOMHTMLAppletElement setAlt:]):
          (-[DOMHTMLAppletElement archive]):
          (-[DOMHTMLAppletElement setArchive:]):
          (-[DOMHTMLAppletElement code]):
          (-[DOMHTMLAppletElement setCode:]):
          (-[DOMHTMLAppletElement codeBase]):
          (-[DOMHTMLAppletElement setCodeBase:]):
          (-[DOMHTMLAppletElement height]):
          (-[DOMHTMLAppletElement setHeight:]):
          (-[DOMHTMLAppletElement hspace]):
          (-[DOMHTMLAppletElement setHspace:]):
          (-[DOMHTMLAppletElement name]):
          (-[DOMHTMLAppletElement setName:]):
          (-[DOMHTMLAppletElement object]):
          (-[DOMHTMLAppletElement setObject:]):
          (-[DOMHTMLAppletElement vspace]):
          (-[DOMHTMLAppletElement setVspace:]):
          (-[DOMHTMLAppletElement width]):
          (-[DOMHTMLAppletElement setWidth:]):
          (-[DOMHTMLMapElement name]):
          (-[DOMHTMLMapElement setName:]):
          (-[DOMHTMLAreaElement accessKey]):
          (-[DOMHTMLAreaElement setAccessKey:]):
          (-[DOMHTMLAreaElement alt]):
          (-[DOMHTMLAreaElement setAlt:]):
          (-[DOMHTMLAreaElement coords]):
          (-[DOMHTMLAreaElement setCoords:]):
          (-[DOMHTMLAreaElement setHref:]):
          (-[DOMHTMLAreaElement noHref]):
          (-[DOMHTMLAreaElement setNoHref:]):
          (-[DOMHTMLAreaElement shape]):
          (-[DOMHTMLAreaElement setShape:]):
          (-[DOMHTMLAreaElement tabIndex]):
          (-[DOMHTMLAreaElement setTabIndex:]):
          (-[DOMHTMLAreaElement target]):
          (-[DOMHTMLAreaElement setTarget:]):
          (-[DOMHTMLScriptElement text]):
          (-[DOMHTMLScriptElement setText:]):
          (-[DOMHTMLScriptElement charset]):
          (-[DOMHTMLScriptElement setCharset:]):
          (-[DOMHTMLScriptElement defer]):
          (-[DOMHTMLScriptElement setDefer:]):
          (-[DOMHTMLScriptElement src]):
          (-[DOMHTMLScriptElement setSrc:]):
          (-[DOMHTMLScriptElement type]):
          (-[DOMHTMLScriptElement setType:]):
          (-[DOMHTMLTableCaptionElement align]):
          (-[DOMHTMLTableCaptionElement setAlign:]):
          (-[DOMHTMLTableSectionElement align]):
          (-[DOMHTMLTableSectionElement setAlign:]):
          (-[DOMHTMLTableSectionElement ch]):
          (-[DOMHTMLTableSectionElement setCh:]):
          (-[DOMHTMLTableSectionElement chOff]):
          (-[DOMHTMLTableSectionElement setChOff:]):
          (-[DOMHTMLTableSectionElement vAlign]):
          (-[DOMHTMLTableSectionElement setVAlign:]):
          (-[DOMHTMLTableElement align]):
          (-[DOMHTMLTableElement setAlign:]):
          (-[DOMHTMLTableElement bgColor]):
          (-[DOMHTMLTableElement setBgColor:]):
          (-[DOMHTMLTableElement border]):
          (-[DOMHTMLTableElement setBorder:]):
          (-[DOMHTMLTableElement cellPadding]):
          (-[DOMHTMLTableElement setCellPadding:]):
          (-[DOMHTMLTableElement cellSpacing]):
          (-[DOMHTMLTableElement setCellSpacing:]):
          (-[DOMHTMLTableElement frameBorders]):
          (-[DOMHTMLTableElement setFrameBorders:]):
          (-[DOMHTMLTableElement rules]):
          (-[DOMHTMLTableElement setRules:]):
          (-[DOMHTMLTableElement summary]):
          (-[DOMHTMLTableElement setSummary:]):
          (-[DOMHTMLTableElement width]):
          (-[DOMHTMLTableElement setWidth:]):
          (-[DOMHTMLTableColElement align]):
          (-[DOMHTMLTableColElement setAlign:]):
          (-[DOMHTMLTableColElement ch]):
          (-[DOMHTMLTableColElement setCh:]):
          (-[DOMHTMLTableColElement chOff]):
          (-[DOMHTMLTableColElement setChOff:]):
          (-[DOMHTMLTableColElement span]):
          (-[DOMHTMLTableColElement setSpan:]):
          (-[DOMHTMLTableColElement vAlign]):
          (-[DOMHTMLTableColElement setVAlign:]):
          (-[DOMHTMLTableColElement width]):
          (-[DOMHTMLTableColElement setWidth:]):
          (-[DOMHTMLTableRowElement align]):
          (-[DOMHTMLTableRowElement setAlign:]):
          (-[DOMHTMLTableRowElement bgColor]):
          (-[DOMHTMLTableRowElement setBgColor:]):
          (-[DOMHTMLTableRowElement ch]):
          (-[DOMHTMLTableRowElement setCh:]):
          (-[DOMHTMLTableRowElement chOff]):
          (-[DOMHTMLTableRowElement setChOff:]):
          (-[DOMHTMLTableRowElement vAlign]):
          (-[DOMHTMLTableRowElement setVAlign:]):
          (-[DOMHTMLTableCellElement abbr]):
          (-[DOMHTMLTableCellElement setAbbr:]):
          (-[DOMHTMLTableCellElement align]):
          (-[DOMHTMLTableCellElement setAlign:]):
          (-[DOMHTMLTableCellElement axis]):
          (-[DOMHTMLTableCellElement setAxis:]):
          (-[DOMHTMLTableCellElement bgColor]):
          (-[DOMHTMLTableCellElement setBgColor:]):
          (-[DOMHTMLTableCellElement ch]):
          (-[DOMHTMLTableCellElement setCh:]):
          (-[DOMHTMLTableCellElement chOff]):
          (-[DOMHTMLTableCellElement setChOff:]):
          (-[DOMHTMLTableCellElement colSpan]):
          (-[DOMHTMLTableCellElement setColSpan:]):
          (-[DOMHTMLTableCellElement headers]):
          (-[DOMHTMLTableCellElement setHeaders:]):
          (-[DOMHTMLTableCellElement height]):
          (-[DOMHTMLTableCellElement setHeight:]):
          (-[DOMHTMLTableCellElement noWrap]):
          (-[DOMHTMLTableCellElement setNoWrap:]):
          (-[DOMHTMLTableCellElement rowSpan]):
          (-[DOMHTMLTableCellElement setRowSpan:]):
          (-[DOMHTMLTableCellElement scope]):
          (-[DOMHTMLTableCellElement setScope:]):
          (-[DOMHTMLTableCellElement vAlign]):
          (-[DOMHTMLTableCellElement setVAlign:]):
          (-[DOMHTMLTableCellElement width]):
          (-[DOMHTMLTableCellElement setWidth:]):
          (-[DOMHTMLFrameSetElement rows]):
          (-[DOMHTMLFrameSetElement setRows:]):
          (-[DOMHTMLFrameSetElement cols]):
          (-[DOMHTMLFrameSetElement setCols:]):
          (-[DOMHTMLFrameElement frameBorder]):
          (-[DOMHTMLFrameElement setFrameBorder:]):
          (-[DOMHTMLFrameElement longDesc]):
          (-[DOMHTMLFrameElement setLongDesc:]):
          (-[DOMHTMLFrameElement marginHeight]):
          (-[DOMHTMLFrameElement setMarginHeight:]):
          (-[DOMHTMLFrameElement marginWidth]):
          (-[DOMHTMLFrameElement setMarginWidth:]):
          (-[DOMHTMLFrameElement name]):
          (-[DOMHTMLFrameElement setName:]):
          (-[DOMHTMLFrameElement noResize]):
          (-[DOMHTMLFrameElement setNoResize:]):
          (-[DOMHTMLFrameElement scrolling]):
          (-[DOMHTMLFrameElement setScrolling:]):
          (-[DOMHTMLFrameElement src]):
          (-[DOMHTMLFrameElement setSrc:]):
          (-[DOMHTMLIFrameElement align]):
          (-[DOMHTMLIFrameElement setAlign:]):
          (-[DOMHTMLIFrameElement frameBorder]):
          (-[DOMHTMLIFrameElement setFrameBorder:]):
          (-[DOMHTMLIFrameElement height]):
          (-[DOMHTMLIFrameElement setHeight:]):
          (-[DOMHTMLIFrameElement longDesc]):
          (-[DOMHTMLIFrameElement setLongDesc:]):
          (-[DOMHTMLIFrameElement marginHeight]):
          (-[DOMHTMLIFrameElement setMarginHeight:]):
          (-[DOMHTMLIFrameElement marginWidth]):
          (-[DOMHTMLIFrameElement setMarginWidth:]):
          (-[DOMHTMLIFrameElement name]):
          (-[DOMHTMLIFrameElement setName:]):
          (-[DOMHTMLIFrameElement noResize]):
          (-[DOMHTMLIFrameElement setNoResize:]):
          (-[DOMHTMLIFrameElement scrolling]):
          (-[DOMHTMLIFrameElement setScrolling:]):
          (-[DOMHTMLIFrameElement src]):
          (-[DOMHTMLIFrameElement setSrc:]):
          (-[DOMHTMLIFrameElement width]):
          (-[DOMHTMLIFrameElement setWidth:]):
          (-[DOMHTMLEmbedElement align]):
          (-[DOMHTMLEmbedElement setAlign:]):
          (-[DOMHTMLEmbedElement height]):
          (-[DOMHTMLEmbedElement setHeight:]):
          (-[DOMHTMLEmbedElement name]):
          (-[DOMHTMLEmbedElement setName:]):
          (-[DOMHTMLEmbedElement src]):
          (-[DOMHTMLEmbedElement setSrc:]):
          (-[DOMHTMLEmbedElement type]):
          (-[DOMHTMLEmbedElement setType:]):
          (-[DOMHTMLEmbedElement width]):
          (-[DOMHTMLEmbedElement setWidth:]):
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject role]):
          (-[KWQAccObject helpText]):
          (-[KWQAccObject title]):
          (-[KWQAccObject accessibilityDescription]):
          (-[KWQAccObject accessibilityIsIgnored]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          * kwq/KWQKHTMLPart.cpp:
          (KWQKHTMLPart::isFrameSet):
          * kwq/KWQKHTMLPart.mm:
          (scanForForm):
          (KWQKHTMLPart::currentForm):
          (KWQKHTMLPart::searchForLabelsBeforeElement):
          (KWQKHTMLPart::matchLabelsAgainstElement):
          (KWQKHTMLPart::fileWrapperForElement):
          (listParent):
          (isTextFirstInListItem):
          (KWQKHTMLPart::attributedString):
          (KWQKHTMLPart::styleForSelectionStart):
          (KWQKHTMLPart::setSelectionFromNone):
          * kwq/WebCoreBridge.mm:
          (inputElementFromDOMElement):
          (formElementFromDOMElement):
          (-[WebCoreBridge elementAtPoint:]):
  
  2005-07-29  David Harrison  <harrison at apple.com>
  
          Test cases added: n/a
  
          Update layout tests for my previous change.
          
          * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
          * layout-tests/fast/table/border-collapsing/004-expected.txt:
  
  2005-07-29  David Harrison  <harrison at apple.com>
  
          Reviewed by Dave Hyatt (rendering) and Maciej (editing and performance improvements).
  
          Test cases added: Existing tab-related basic editing tests were updated.  More complex tests are coming soon.
  
          <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
          
          Basic strategy is to put tabs into spans with white-space:pre style, and
          render them with tabs stops every 8th space, where the space width and
          the left margin are those of the enclosing block.
  
          * khtml/editing/apply_style_command.cpp:
          (khtml::ApplyStyleCommand::removeCSSStyle):
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
          * khtml/editing/delete_selection_command.cpp:
          (khtml::DeleteSelectionCommand::saveTypingStyleState):
          * khtml/editing/edit_command.cpp:
          (khtml::EditCommand::styleAtPosition):
          * khtml/editing/html_interchange.h:
          * khtml/editing/htmlediting.cpp:
          (khtml::isSpecialElement):
          (khtml::isTabSpanNode):
          (khtml::isTabSpanTextNode):
          (khtml::positionBeforeTabSpan):
          (khtml::createTabSpanElement):
          * khtml/editing/htmlediting.h:
          * khtml/editing/insert_text_command.cpp:
          (khtml::InsertTextCommand::prepareForTextInsertion):
          (khtml::InsertTextCommand::input):
          (khtml::InsertTextCommand::insertTab):
          * khtml/editing/insert_text_command.h:
          * khtml/editing/markup.cpp:
          (khtml::createParagraphContentsFromString):
          (khtml::createFragmentFromText):
          * khtml/editing/replace_selection_command.cpp:
          (khtml::ReplacementFragment::removeStyleNodes):
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::begin):
          (khtml::HTMLTokenizer::processListing):
          (khtml::HTMLTokenizer::parseSpecial):
          (khtml::HTMLTokenizer::parseText):
          (khtml::HTMLTokenizer::parseEntity):
          (khtml::HTMLTokenizer::parseTag):
          (khtml::HTMLTokenizer::addPending):
          (khtml::HTMLTokenizer::write):
          * khtml/html/htmltokenizer.h:
          (khtml::HTMLTokenizer::):
          * khtml/rendering/bidi.cpp:
          (khtml::addRun):
          (khtml::RenderBlock::tabWidth):
          (khtml::RenderBlock::computeHorizontalPositionsForLine):
          (khtml::RenderBlock::layoutInlineChildren):
          (khtml::RenderBlock::skipWhitespace):
          (khtml::RenderBlock::findNextLineBreak):
          (khtml::RenderBlock::checkLinesForTextOverflow):
          * khtml/rendering/break_lines.cpp:
          (khtml::isBreakable):
          * khtml/rendering/font.cpp:
          (Font::drawHighlightForText):
          (Font::drawText):
          (Font::floatWidth):
          (Font::floatCharacterWidths):
          (Font::checkSelectionPoint):
          (Font::width):
          * khtml/rendering/font.h:
          * khtml/rendering/render_block.cpp:
          (khtml:::RenderFlow):
          (khtml::RenderBlock::setStyle):
          (khtml::stripTrailingSpace):
          (khtml::RenderBlock::calcInlineMinMaxWidth):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_br.h:
          (khtml::RenderBR::width):
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::layoutVerticalBox):
          * khtml/rendering/render_image.cpp:
          (RenderImage::setPixmap):
          (RenderImage::paint):
          * khtml/rendering/render_line.cpp:
          (khtml::EllipsisBox::paint):
          * khtml/rendering/render_line.h:
          (khtml::InlineBox::width):
          (khtml::InlineBox::xPos):
          (khtml::InlineBox::yPos):
          (khtml::InlineBox::height):
          (khtml::InlineBox::baseline):
          * khtml/rendering/render_list.cpp:
          (RenderListMarker::paint):
          (RenderListMarker::calcMinMaxWidth):
          * khtml/rendering/render_object.cpp:
          (RenderObject::tabWidth):
          (RenderObject::recalcMinMaxWidths):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_replaced.cpp:
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::selectionRect):
          (InlineTextBox::paint):
          (InlineTextBox::paintSelection):
          (InlineTextBox::paintMarkedTextBackground):
          (InlineTextBox::textPos):
          (InlineTextBox::offsetForPosition):
          (InlineTextBox::positionForOffset):
          (RenderText::cacheWidths):
          (RenderText::widthFromCache):
          (RenderText::trimmedMinMaxWidth):
          (RenderText::calcMinMaxWidth):
          (RenderText::containsOnlyWhitespace):
          (RenderText::width):
          * khtml/rendering/render_text.h:
          * kwq/KWQFontMetrics.h:
          * kwq/KWQFontMetrics.mm:
          (QFontMetrics::width):
          (QFontMetrics::charWidth):
          (QFontMetrics::floatWidth):
          (QFontMetrics::floatCharacterWidths):
          (QFontMetrics::checkSelectionPoint):
          (QFontMetrics::boundingRect):
          (QFontMetrics::size):
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (QPainter::drawRect):
          (QPainter::drawLine):
          (QPainter::drawText):
          (QPainter::drawHighlightForText):
          (_fillRectXX):
          (QPainter::fillRect):
          * kwq/WebCoreTextRenderer.h:
          * kwq/WebCoreTextRendererFactory.mm:
          (WebCoreInitializeEmptyTextStyle):
          * layout-tests/editing/deleting/delete-tab-001-expected.txt:
          * layout-tests/editing/deleting/delete-tab-001.html:
          * layout-tests/editing/deleting/delete-tab-002-expected.txt:
          * layout-tests/editing/deleting/delete-tab-002.html:
          * layout-tests/editing/deleting/delete-tab-003-expected.txt:
          * layout-tests/editing/deleting/delete-tab-003.html:
          * layout-tests/editing/deleting/delete-tab-004-expected.txt:
          * layout-tests/editing/deleting/delete-tab-004.html:
          * layout-tests/editing/inserting/insert-tab-001-expected.txt:
          * layout-tests/editing/inserting/insert-tab-002-expected.txt:
          * layout-tests/editing/inserting/insert-tab-003-expected.txt:
          * layout-tests/editing/inserting/insert-tab-004-expected.txt:
          * layout-tests/fast/js/string-replace-2-expected.txt:
          * layout-tests/fast/table/039-expected.txt:
          * layout-tests/fast/table/border-collapsing/004-expected.txt:
          * layout-tests/fast/tokenizer/script_extra_close-expected.txt:
  
  2005-07-29  David Hyatt  <hyatt at apple.com>
  
  	(1) Fixes khtml-user-select: none to have the following additional behavior (that matches Firefox's implementation of the property as well)
  	(a) If you mouse down (or click, double click, triple click) inside a "none" region, the selection should not be cleared or changed
          (b) If you drag from within a "none" region out to a selectable region, so what, no selection should be changed or started.
  
  	(2) Adds a new value to khtml-user-select called "element" that is used for any object that should have the behavior of (a) and (b) above (but that is selectable aside from that).  This includes images, links, buttons, and so on.  html4.css is patched to add support for these objects.
  	    This feature fixes the big contenteditable issue and selection is no longer cleared now when you click on these controls (or on links).  This behavior matches other browsers.
  
  	(3) :active and :hover have been substantially reworked.
  	    (a) If you mouse down on a selectable region, then the behavior is unchanged.  :hover/:active is completely frozen, and they aren't updated at all.
  	    (b) If you mouse down on a non-selectable region and start moving, then the behavior has changed.  Instead of not updating at all, we mark the chain at the time the mouse goes down, and we restrict :hover/:active updates to only apply to elements that are in that chain.  This yields perfect hover/active control behavior, even when :active has been applied hierarchically.
  	    (c) :hover has moved onto the node and is no longer on the renderobject (allowing them to be consistent).
  	
          Reviewed by john
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::canShareStyleWithElement):
          (khtml::CSSStyleSelector::checkOneSelector):
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/css/html4.css:
          * khtml/khtml_part.cpp:
          (KHTMLPart::setSelection):
          (KHTMLPart::selectClosestWordFromMouseEvent):
          (KHTMLPart::handleMousePressEventTripleClick):
          (KHTMLPart::handleMousePressEventSingleClick):
          (KHTMLPart::handleMouseMoveEventSelection):
          (KHTMLPart::khtmlMouseReleaseEvent):
          * khtml/khtml_part.h:
          (KHTMLPart::mouseDownMayStartSelect):
          * khtml/khtmlview.cpp:
          (KHTMLView::viewportMouseMoveEvent):
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::hitTest):
          (RenderLayer::updateHoverActiveState):
          * khtml/rendering/render_object.cpp:
          (RenderObject::RenderObject):
          (RenderObject::information):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::isRunIn):
          (khtml::RenderObject::setInline):
          (khtml::RenderObject::NodeInfo::NodeInfo):
          (khtml::RenderObject::NodeInfo::mouseMove):
          * khtml/rendering/render_style.h:
          (khtml::):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::~DocumentImpl):
          (DocumentImpl::prepareMouseEvent):
          (DocumentImpl::setActiveNode):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::activeNode):
          * khtml/xml/dom_nodeimpl.cpp:
          (DOM::ContainerNodeImpl::setHovered):
          * khtml/xml/dom_nodeimpl.h:
          (DOM::NodeImpl::inActiveChain):
          (DOM::NodeImpl::hovered):
          (DOM::NodeImpl::setInActiveChain):
          (DOM::NodeImpl::setHovered):
          * kwq/KWQKHTMLPart.h:
          (KWQKHTMLPart::mouseDownMayStartSelect):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::canMouseDownStartSelect):
          (KWQKHTMLPart::khtmlMousePressEvent):
  
  2005-07-29  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by geoff
          
          Fixed problem with patch that I just backed out:
          Fix for <rdar://problems/4038408&4154187&4125381&4125087> 
              Mail: Editing at the bottom of a quoted block makes the text blue in certain cases
  
          Test cases added:
          * layout-tests/editing/deleting/delete-4038408-fix-expected.txt: Added.
          * layout-tests/editing/deleting/delete-4038408-fix.html: Added.
          
          * khtml/editing/delete_selection_command.cpp:
          (khtml::DeleteSelectionCommand::DeleteSelectionCommand):
          (khtml::DeleteSelectionCommand::saveTypingStyleState):
          (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
          (khtml::DeleteSelectionCommand::clearTransientState):
          * khtml/editing/delete_selection_command.h:        
  
  2005-07-29  Geoffrey Garen  <ggaren at apple.com>
  
          - Oops. Last checkin omitted the actual test for:
          <rdar://problem/3461547> can't use document.writeln() on windows opened via window.open("about:blank") in same function
  
          * manual-tests/write-after-open.html: Added.
  
  2005-07-29  Eric Seidel  <eseidel at apple.com>
  
          No review necessary
  
          * kdom/xpath/impl/parser/xpath.ypp:
          Turned off "verbose errors" which was generating a warning
          during compile (Bison 1.28 bug).  This is unused code in kdom
          xpath support, thus I didn't ask for review.
  
  2005-07-29  Geoffrey Garen  <ggaren at apple.com>
          
          - fixed:
          <rdar://problem/3461547> can't use document.writeln() on windows opened via window.open("about:blank") in same function
          <rdar://problem/3725977> A_WINDOW.document.write() content overwritten when first parameter to window.open is provided
          <rdar://problem/4101498> SAP: window.write in same call chain as window.open fails to write if URL parameter is provided
          <rdar://problem/4179028> document.write in same function as window.open fails to write new content (4056)
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4056 document.write in same function as window.open fails to write new content
  
          Reviewed by darin.
  
          Test cases added:
          * manual-tests/resources/write-after-open-popup.html: Added.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::didExplicitOpen): now cancels any pending redirection
  
  2005-07-29  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Dave Hyatt.
  
          Test cases added: none, this only affects Safari forms autofill
  
          - WebCore part of <rdar://problem/4187404> Redo form SPI so that it doesn't rely on NSViews
  
          * khtml/html/html_formimpl.cpp:
          added a FIXME about a bug I ran into while doing this autofill stuff
          
          * kwq/DOMHTML.mm:
          (viewForElement):
          Moved this function here (was in WebCoreBridge), and simplified it a little. This will go
          away when we have non-NSView ways of implementing all the methods below.
          (-[DOMHTMLInputElement _displayedValue]):
          moved here from Safari
          (-[DOMHTMLInputElement _setDisplayedValue:]):
          ditto
          (-[DOMHTMLInputElement _rectOnScreen]):
          ditto
          (-[DOMHTMLInputElement _replaceCharactersInRange:withString:selectingFromIndex:]):
          ditto
          (-[DOMHTMLInputElement _selectedRange]):
          ditto
          (-[DOMHTMLInputElement _setBackgroundColor:]):
          ditto
          (-[DOMHTMLSelectElement _activateItemAtIndex:]):
          ditto
          (-[DOMHTMLSelectElement _optionLabels]):
          ditto
  
          * kwq/DOMPrivate.h:
          moved DOMHTMLInputElement and DOMHTMLSelectElement categories here from Safari
          
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          removed viewForElement:, which had been added as a temporary measure while I did this conversion.
  
  2005-07-29  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by sullivan.
  
          * WebCore+SVG/DrawCanvasItem.h: Added.
          * WebCore+SVG/DrawCanvasItem.mm: Added.
          * WebCore+SVG/DrawCanvasItemPrivate.h: Added.
          * WebCore+SVG/DrawDocument.h: Added.
          * WebCore+SVG/DrawDocument.mm: Added.
          * WebCore+SVG/DrawDocumentPrivate.h: Added.
          * WebCore+SVG/DrawView.h: Added.
          * WebCore+SVG/DrawView.mm: Added.
          * WebCore+SVG/DrawViewPrivate.h: Added.
          * WebCore+SVG/NSSVGImageRep.h: Added.
          * WebCore+SVG/NSSVGImageRep.m: Added.
          Temporary SPI to make it possible to write Obj-C test applications.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4155
  
  2005-07-29  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by harrison
          
          Backing out my recent change as it causes a layout test failure in Deployment mode
  
          * khtml/editing/delete_selection_command.cpp:
          (khtml::DeleteSelectionCommand::saveTypingStyleState):
          (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
          (khtml::DeleteSelectionCommand::clearTransientState):
          * khtml/editing/delete_selection_command.h:
          * layout-tests/editing/deleting/delete-4038408-fix-expected.txt: Removed.
          * layout-tests/editing/deleting/delete-4038408-fix.html: Removed.
  
  2005-07-28  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by darin, eseidel
          Submitted by Ben La Monica <ben.lamonica at gmail.com>
  
          * kdom/css/impl/kdomparsercss.y: commented out %destructor %verbose
          * kdom/xpath/impl/parser/xpath.ypp: added missing definitions
          Fixes kdom to build with bison 1.28
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3936
  
  2005-07-28  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * WebCore.xcodeproj/project.pbxproj: Added SVG files back.
          * kdom/css/CSSCharsetRule.cpp:
          * kdom/css/CSSFontFaceRule.cpp:
          * kdom/css/CSSImportRule.cpp:
          * kdom/css/CSSMediaRule.cpp:
          * kdom/css/CSSPageRule.cpp:
          * kdom/css/CSSPrimitiveValue.cpp:
          * kdom/css/CSSRule.cpp:
          * kdom/css/CSSRuleList.cpp:
          * kdom/css/CSSStyleDeclaration.cpp:
          * kdom/css/CSSStyleRule.cpp:
          * kdom/css/CSSStyleSheet.cpp:
          * kdom/css/CSSValue.cpp:
          * kdom/css/CSSValueList.cpp:
          * kdom/css/Counter.cpp:
          * kdom/css/DocumentStyle.cpp:
          * kdom/css/MediaList.cpp:
          * kdom/css/RGBColor.cpp:
          * kdom/css/Rect.cpp:
          * kdom/css/StyleSheet.cpp:
          * kdom/css/StyleSheetList.cpp:
          * kdom/ecma/DOMLookup.h: Hacked around mjs's latest JSC change.
          Fixed #include statements to build under Xcode 2.1.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=4154
  
  2005-07-28  David Hyatt  <hyatt at apple.com>
  
  	Give the theme a shot at deciding when to repaint when various control states change.
  	Remove buggy code that was resigning first responder in next/previous key view (tested
  	extensively and found this code to not be needed).
  
          Reviewed by darin and chris
  
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLGenericFormElementImpl::parseMappedAttribute):
          (DOM::HTMLInputElementImpl::setChecked):
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::updateHoverActiveState):
          * khtml/rendering/render_theme.cpp:
          (khtml::RenderTheme::stateChanged):
          * khtml/rendering/render_theme.h:
          (khtml::):
          * khtml/xml/dom_nodeimpl.cpp:
          (DOM::ContainerNodeImpl::setActive):
          * kwq/KWQButton.mm:
          (-[KWQButton nextKeyView]):
          (-[KWQButton previousKeyView]):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::setDisplaysWithFocusAttributes):
  
  2005-07-28  David Hyatt  <hyatt at apple.com>
  
  	Implement support for the :checked, :enabled and :disabled pseudo-classes.
  	
          Reviewed by john
  
          * khtml/css/css_base.cpp:
          (CSSSelector::extractPseudoType):
          * khtml/css/css_base.h:
          (DOM::CSSSelector::):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::checkOneSelector):
          * khtml/html/html_formimpl.h:
          (DOM::HTMLGenericFormElementImpl::isControl):
          (DOM::HTMLGenericFormElementImpl::isEnabled):
          (DOM::HTMLInputElementImpl::isChecked):
          * khtml/rendering/render_theme.cpp:
          (khtml::RenderTheme::isChecked):
          (khtml::RenderTheme::isEnabled):
          * khtml/xml/dom_nodeimpl.h:
          (DOM::NodeImpl::isControl):
          (DOM::NodeImpl::isEnabled):
          (DOM::NodeImpl::isChecked):
  
  2005-07-28  Beth Dakin  <bdakin at apple.com>
  
  	This is a fix for <rdar://problem/4190684>. Hyatt and I
  	(okay, mostly Hyatt) wrote this for Cayenne so that they
  	can change the value of a style of a rule and have everything
  	update dynamically without causing a crash.         
  
  	Reviewed by Hyatt
  
          Test cases added: (NONE)
  
          * khtml/css/css_valueimpl.cpp:
          (DOM::CSSMutableStyleDeclarationImpl::setChanged):
  
  2005-07-28  Chris Blumenberg  <cblu at apple.com>
  
  	Moved non-AppKit related code from RenderThemeMac to RenderTheme so potentially other RenderTheme subclasses can inherit more behavior.
  
          Reviewed by hyatt.
  
          * khtml/rendering/render_theme.cpp:
          (khtml::RenderTheme::baselinePosition):
          (khtml::RenderTheme::isControlContainer):
          (khtml::RenderTheme::sizeForFont):
          (khtml::RenderTheme::setSizeFromFont):
          (khtml::RenderTheme::setCheckboxSize):
          (khtml::RenderTheme::adjustCheckboxStyle):
          * khtml/rendering/render_theme.h:
          * khtml/rendering/render_theme_mac.h:
          * khtml/rendering/render_theme_mac.mm:
          (khtml::RenderThemeMac::sizeForFont):
  
  2005-07-28  David Hyatt  <hyatt at apple.com>
  
  	Make sure :focus is not matched when the window is not key.
  	This involved adding a check to the style selector and also
  	removing the hack from the painter that turned off outline:auto
  	drawing when the window wasn't key.
  
  	Added support for control tinting when the window resigns/becomes
  	key.
  	
          Reviewed by john
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::checkOneSelector):
          * khtml/khtml_part.h:
          (KHTMLPart::displaysWithFocusAttributes):
          * khtml/rendering/render_theme.cpp:
          (khtml::RenderTheme::paint):
          (khtml::RenderTheme::isChecked):
          (khtml::RenderTheme::isEnabled):
          (khtml::RenderTheme::isFocused):
          (khtml::RenderTheme::isPressed):
          * khtml/rendering/render_theme.h:
          (khtml::RenderTheme::controlSupportsTints):
          * khtml/rendering/render_theme_mac.h:
          * khtml/rendering/render_theme_mac.mm:
          (khtml::RenderThemeMac::controlSupportsTints):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::setDisplaysWithFocusAttributes):
          * kwq/KWQPainter.h:
          (QPainter::updatingControlTints):
          (QPainter::setUpdatingControlTints):
          * kwq/KWQPainter.mm:
          (QPainter::QPainter):
          (QPainter::initFocusRing):
          (QPainter::addFocusRingRect):
          (QPainter::drawFocusRing):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge drawRect:]):
  
  2005-07-27  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by ken
          
          Fix for <rdar://problems/4038408&4154187&4125381&4125087> 
              Mail: Editing at the bottom of a quoted block makes the text blue in certain cases
  
          Test cases added:
          * layout-tests/editing/deleting/delete-4038408-fix-expected.txt: Added.
          * layout-tests/editing/deleting/delete-4038408-fix.html: Added.
  
          * khtml/editing/delete_selection_command.cpp:
          (khtml::DeleteSelectionCommand::saveTypingStyleState):
          (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
          (khtml::DeleteSelectionCommand::clearTransientState):
          * khtml/editing/delete_selection_command.h:
  
  2005-07-27  Geoffrey Garen  <ggaren at apple.com>
  
          - added test case for http://bugzilla.opendarwin.org/show_bug.cgi?id=4147
          Array.toString() and toLocaleString() improvements from KDE KJS
          
          Test cases added:
  
          * layout-tests/fast/js/toString-overrides-expected.txt: Added.
          * layout-tests/fast/js/toString-overrides.html: Added.
  
  2005-07-27  Beth Dakin  <bdakin at apple.com>
  	Fix submitted by: Andrew Wellington <proton at wiretapped.net>
          Reviewed by Beth Dakin.
  
  	This is a fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=3406 and 
  	<rdar://problem/3204011>. It does not solve all of the problems with
  	text-transform: capitalize, but it does fix some of the more notable 
  	problems regarding apostrophes (like on amazon.com), and does not cause 
  	any regressions (i.e., some things about text-transform are still wrong and some
  	of those things are wrong in different ways than they were wrong before, but 
  	the patch does not seem to cause anything that was right to be newly
  	wrong.
  
          Test cases added: another text-transform test, see below
  
          * khtml/xml/dom_stringimpl.cpp: Here is the fix.
          (DOM::DOMStringImpl::capitalize):
          * layout-tests/css1/text_properties/text-transCapitalize-expected.txt: Added. New test case.
          * layout-tests/css1/text_properties/text-transCapitalize.html: Added. New test case.
          * layout-tests/css1/text_properties/text_transform-expected.txt: New expected results...
  				here are some instances where things were wrong before but are
  				wrong in new ways now.
  
  2005-07-27  Geoffrey Garen  <ggaren at apple.com>
  
          Test cases added:
  
          * layout-tests/fast/js/date-big-setdate-expected.txt: Added.
          * layout-tests/fast/js/date-big-setdate.html: Added.
  
  2005-07-27  David Hyatt  <hyatt at apple.com>
  
  	Remove the "enforce a square size" rule for checkboxes. WinIE
  	doesn't do this, and I'm not sure where I came up with it.
  
  	Fix a bug in isFocusable that was causing disabled form
  	controls with no corresponding widget to still get focus!
  	(This bug affected my new checkbox but also <input type=image>
  	and the HTML4 button!)
  
          Reviewed by ggaren
  
          * khtml/html/html_formimpl.cpp:
          * khtml/rendering/render_theme_mac.mm:
  
  2005-07-27  Geoffrey Garen  <ggaren at apple.com>
          -added testcase for http://bugzilla.opendarwin.org/show_bug.cgi?id=3759
          Date object enhancements
          
          Reviewed by darin.
  
          Test cases added:
  
          * layout-tests/fast/js/date-preserve-milliseconds-expected.txt: Added.
          * layout-tests/fast/js/date-preserve-milliseconds.html: Added.
  
  2005-07-26  Justin Garcia  <justin.garcia at apple.com>
  
          Patch by Trey Matteson <trey at usa.net>
          
          Reviewed by hyatt.
      
          Fixed <rdar://problem/4083496> some elements draw selection when printing
          Also listed as <http://bugzilla.opendarwin.org/show_bug.cgi?id=3992>
          
          Simply added tests to prevent selection drawing when printing.
          
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paintObject):
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::paint):
          * khtml/rendering/render_image.cpp:
          (RenderImage::paint):
          * khtml/rendering/render_replaced.cpp:
          (RenderWidget::paint):
  
  2005-07-26  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by darin
          
          Added forward declarations to fix new gcc4 errors
          
          * khtml/ecma/kjs_window.h:
          * khtml/xml/dom_elementimpl.h:
          * kwq/KWQMapImpl.h:
  
  2005-07-26  David Hyatt  <hyatt at apple.com>
  
  	Land current checkbox work.  The checkbox can now check/uncheck,
  	supports looking pressed, and can dynamically enable/disable.
  
  	Entire patch reviewed by darin, portions reviewed by
  	sullivan as well.
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::adjustRenderStyle):
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLGenericFormElementImpl::parseMappedAttribute):
          (DOM::HTMLInputElementImpl::click):
          (DOM::HTMLInputElementImpl::setChecked):
          (DOM::HTMLInputElementImpl::defaultEventHandler):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::baselinePosition):
          * khtml/rendering/render_box.cpp:
          (RenderBox::paintBoxDecorations):
          (RenderBox::getAbsoluteRepaintRect):
          * khtml/rendering/render_object.cpp:
          (RenderObject::paintOutline):
          (RenderObject::setStyle):
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::hasAppearance):
          (khtml::RenderStyle::resetBorder):
          * khtml/rendering/render_theme.cpp:
          (khtml::RenderTheme::baselinePosition):
          (khtml::RenderTheme::isChecked):
          (khtml::RenderTheme::isEnabled):
          (khtml::RenderTheme::isFocused):
          (khtml::RenderTheme::isPressed):
          * khtml/rendering/render_theme.h:
          (khtml::RenderTheme::RenderTheme):
          (khtml::RenderTheme::~RenderTheme):
          (khtml::RenderTheme::isControlContainer):
          (khtml::RenderTheme::adjustRepaintRect):
          * khtml/rendering/render_theme_mac.h:
          (khtml::RenderThemeMac::~RenderThemeMac):
          * khtml/rendering/render_theme_mac.mm:
          (khtml::RenderThemeMac::RenderThemeMac):
          (khtml::RenderThemeMac::adjustRepaintRect):
          (khtml::RenderThemeMac::inflateRect):
          (khtml::RenderThemeMac::updateCheckedState):
          (khtml::RenderThemeMac::updateEnabledState):
          (khtml::RenderThemeMac::updateFocusedState):
          (khtml::RenderThemeMac::updatePressedState):
          (khtml::RenderThemeMac::baselinePosition):
          (khtml::RenderThemeMac::isControlContainer):
          (khtml::RenderThemeMac::controlSizeForFont):
          (khtml::RenderThemeMac::setSizeFromFont):
          (khtml::RenderThemeMac::setControlSize):
          (khtml::RenderThemeMac::adjustCheckboxStyle):
          (khtml::RenderThemeMac::paintCheckbox):
          (khtml::RenderThemeMac::checkboxSizes):
          (khtml::RenderThemeMac::checkboxMargins):
          (khtml::RenderThemeMac::setCheckboxSize):
          (khtml::RenderThemeMac::setCheckboxCellState):
          * khtml/xml/dom_nodeimpl.cpp:
          (DOM::ContainerNodeImpl::setFocus):
          (DOM::ContainerNodeImpl::setActive):
  
  2005-07-26  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by darin.
  
          * WebCore.xcodeproj/project.pbxproj: Removed unused C++ DOM
          * khtml/dom/css_rule.cpp: Removed.
          * khtml/dom/css_stylesheet.cpp: Removed.
          * khtml/dom/css_value.cpp: Removed.
          * khtml/dom/dom2_range.cpp: Removed.
          * khtml/dom/dom2_views.cpp: Removed.
          * khtml/dom/dom2_views.h: Removed.
          * khtml/dom/dom_core.h: Removed.
          * khtml/dom/dom_doc.cpp: Removed.
          * khtml/dom/dom_doc.h: Removed.
          * khtml/dom/dom_element.cpp: Removed.
          * khtml/dom/dom_element.h: Removed.
          * khtml/dom/dom_html.h: Removed.
          * khtml/dom/dom_node.cpp: Removed.
          * khtml/dom/dom_text.cpp: Removed.
          * khtml/dom/dom_text.h: Removed.
          * khtml/dom/dom_xml.cpp: Removed.
          * khtml/dom/dom_xml.h: Removed.
          * khtml/dom/html_base.cpp: Removed.
          * khtml/dom/html_base.h: Removed.
          * khtml/dom/html_block.cpp: Removed.
          * khtml/dom/html_block.h: Removed.
          * khtml/dom/html_document.cpp: Removed.
          * khtml/dom/html_document.h: Removed.
          * khtml/dom/html_element.cpp: Removed.
          * khtml/dom/html_element.h: Removed.
          * khtml/dom/html_form.cpp: Removed.
          * khtml/dom/html_form.h: Removed.
          * khtml/dom/html_head.cpp: Removed.
          * khtml/dom/html_head.h: Removed.
          * khtml/dom/html_image.cpp: Removed.
          * khtml/dom/html_image.h: Removed.
          * khtml/dom/html_inline.cpp: Removed.
          * khtml/dom/html_inline.h: Removed.
          * khtml/dom/html_list.cpp: Removed.
          * khtml/dom/html_list.h: Removed.
          * khtml/dom/html_misc.cpp: Removed.
          * khtml/dom/html_misc.h: Removed.
          * khtml/dom/html_object.cpp: Removed.
          * khtml/dom/html_object.h: Removed.
          * khtml/dom/html_table.cpp: Removed.
          * khtml/dom/html_table.h: Removed.
          This removes unused C++ DOM files from both the project and
          the repository.  There are a few left (css_, dom_) which will
          need to be cleaned over time.
  
  2005-07-26  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Chris Blumenberg.
  
          Test cases added: none, only affects Safari autofill
          
          - more work to wean form-related SPI from NSView. All that's left (but this is a big "all")
          is viewForElement: and elementForView:
  
          * kwq/WebCoreBridge.h:
          Rename control:textView:doCommandBySelector: to textField:doCommandBySelector:, and changed
          to take DOMHTMLInputElement* rather than NSControl* and NSTextView*
  
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldController control:textView:doCommandBySelector:]):
          call renamed bridge method, passing DOMElement* instead of NSView*
  
  2005-07-26  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Darin Adler.
  
          Test cases added: none, only affects Safari autofill
          
          - big hunk of weaning form-related SPI from NSView; autofill continues to
          work (but only on tip of tree Safari)        
  
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea textDidChange:]):
          call renamed bridge method, passing DOMElement* instead of NSView*
          
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldController controlTextDidBeginEditing:]):
          call renamed bridge method, passing DOMElement* instead of NSView*
          (-[KWQTextFieldController controlTextDidEndEditing:]):
          ditto
          (-[KWQTextFieldController controlTextDidChange:]):
          ditto
          (-[KWQTextFieldController control:textShouldBeginEditing:]):
          don't call through to bridge form-delegate-related method; I deleted it because it was
          not being used
          (-[KWQTextFieldController control:textShouldEndEditing:]):
          ditto
          (-[KWQTextFieldController textView:shouldHandleEvent:]):
          call renamed bridge method, passing DOMElement* instead of NSView*
          
          * kwq/WebCoreBridge.h:
          Remove textShouldBeginEditing and textShouldEndEditing methods since they weren't being used.
          Rename other methods and made them take DOMElement* instead of NSView*
  
  2005-07-26  Maciej Stachowiak  <mjs at apple.com>
  
          - imported much of the w3c DOM test suite:
  
  	DOM Level 1 Core (html version)
  	DOM Level 2 Core (html version)
  	DOM Level 2 Events (html version)
  	DOM Level 2 HTML (html version)
  
  	For now I left out the XHTML versions.
  
          * layout-tests/dom/html/level1/core/*
  	* layout-tests/dom/html/level2/core/*
          * layout-tests/dom/html/level2/events/*
          * layout-tests/dom/html/level2/html/*
  	
  2005-07-25  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Beth Dakin.
  
  	- fixed <rdar://problem/4011544> selecting an item from a <select> menu with 
  	the mouse doesn't place the focus on the menu
          
  	Test cases added: 
          * manual-tests/focus-select-when-clicked.html: Added.
  
          * kwq/KWQComboBox.mm:
          (-[KWQPopUpButton needsPanelToBecomeKey]): override this NSView method to return YES
  
  2005-07-24  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- http://bugzilla.opendarwin.org/show_bug.cgi?id=4124
  	(change JavaScript property access to avoid double lookup)
  
  	- 10% speedup on JavaScript iBench
  	- 5% speedup on 24fun BenchJS benchmark
  
  	Changed all get methods to getOwnProperty - they are no longer responsible for
  	prototype lookup, and determine if the property was found as a side efect.
  
  	Also miscellaneous code cleanup.
  	
          * khtml/ecma/kjs_css.cpp:
          (KJS::DOMCSSStyleDeclaration::getOwnProperty):
          (KJS::DOMStyleSheet::getOwnProperty):
          (KJS::DOMStyleSheetList::getOwnProperty):
          (KJS::DOMMediaList::getOwnProperty):
          (KJS::DOMCSSStyleSheet::getOwnProperty):
          (KJS::DOMCSSRuleList::getOwnProperty):
          (KJS::DOMCSSRule::getOwnProperty):
          (KJS::DOMCSSRule::getValueProperty):
          (KJS::CSSRuleConstructor::getOwnProperty):
          (KJS::DOMCSSValue::getOwnProperty):
          (KJS::CSSValueConstructor::getOwnProperty):
          (KJS::DOMCSSPrimitiveValue::getOwnProperty):
          (KJS::CSSPrimitiveValueConstructor::getOwnProperty):
          (KJS::DOMCSSValueList::getOwnProperty):
          (KJS::DOMRGBColor::getOwnProperty):
          (KJS::DOMRect::getOwnProperty):
          (KJS::DOMCounter::getOwnProperty):
          * khtml/ecma/kjs_css.h:
          * khtml/ecma/kjs_dom.cpp:
          (KJS::DOMNode::getOwnProperty):
          (KJS::DOMNodeList::getOwnProperty):
          (KJS::DOMAttr::getOwnProperty):
          (KJS::DOMDocument::getOwnProperty):
          (KJS::DOMElement::getOwnProperty):
          (KJS::DOMDocumentType::getOwnProperty):
          (KJS::DOMNamedNodeMap::getOwnProperty):
          (KJS::DOMProcessingInstruction::getOwnProperty):
          (KJS::DOMNotation::getOwnProperty):
          (KJS::DOMEntity::getOwnProperty):
          (KJS::NodeConstructor::getOwnProperty):
          (KJS::DOMExceptionConstructor::getOwnProperty):
          (KJS::DOMNamedNodesCollection::getOwnProperty):
          (KJS::DOMCharacterData::getOwnProperty):
          * khtml/ecma/kjs_dom.h:
          * khtml/ecma/kjs_events.cpp:
          (KJS::EventConstructor::getOwnProperty):
          (KJS::DOMEvent::getOwnProperty):
          (KJS::EventExceptionConstructor::getOwnProperty):
          (KJS::DOMUIEvent::getOwnProperty):
          (KJS::DOMMouseEvent::getOwnProperty):
          (KJS::DOMKeyboardEvent::getOwnProperty):
          (KJS::MutationEventConstructor::getOwnProperty):
          (KJS::DOMMutationEvent::getOwnProperty):
          (KJS::DOMWheelEvent::getOwnProperty):
          (KJS::Clipboard::getOwnProperty):
          * khtml/ecma/kjs_events.h:
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::getOwnProperty):
          (KJS::KJS::HTMLElement::getOwnProperty):
          (KJS::KJS::HTMLCollection::getOwnProperty):
          (KJS::KJS::HTMLSelectCollection::getOwnProperty):
          (KJS::Image::getOwnProperty):
          (KJS::Context2D::getOwnProperty):
          (KJS::Gradient::getOwnProperty):
          (KJS::ImagePattern::getOwnProperty):
          * khtml/ecma/kjs_html.h:
          * khtml/ecma/kjs_navigator.cpp:
          (KJS::Plugin::Plugin):
          (KJS::Navigator::getOwnProperty):
          (KJS::Plugins::getOwnProperty):
          (KJS::MimeTypes::getOwnProperty):
          (KJS::Plugin::getOwnProperty):
          (KJS::MimeType::getOwnProperty):
          * khtml/ecma/kjs_navigator.h:
          * khtml/ecma/kjs_range.cpp:
          (KJS::DOMRange::getOwnProperty):
          (KJS::RangeConstructor::getOwnProperty):
          * khtml/ecma/kjs_range.h:
          * khtml/ecma/kjs_traversal.cpp:
          (KJS::DOMNodeIterator::getOwnProperty):
          (KJS::NodeFilterConstructor::getOwnProperty):
          (KJS::DOMTreeWalker::getOwnProperty):
          * khtml/ecma/kjs_traversal.h:
          * khtml/ecma/kjs_views.cpp:
          (KJS::DOMAbstractView::getOwnProperty):
          * khtml/ecma/kjs_views.h:
          * khtml/ecma/kjs_window.cpp:
          (KJS::Screen::getOwnProperty):
          (KJS::Window::~Window):
          (KJS::Window::getOwnProperty):
          (KJS::Window::put):
          (KJS::FrameArray::getOwnProperty):
          (KJS::Location::Location):
          (KJS::Location::getOwnProperty):
          (KJS::Location::put):
          (KJS::Selection::Selection):
          (KJS::Selection::getOwnProperty):
          (KJS::BarInfo::getOwnProperty):
          (KJS::History::getOwnProperty):
          * khtml/ecma/kjs_window.h:
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::getOwnProperty):
          * khtml/ecma/xmlhttprequest.h:
  
  2005-07-25  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by hyatt
          
          Backing out a change that made the caret invisible in Mail in certain situations.
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paintObject):
  
  2005-07-25  Justin Garcia  <justin.garcia at apple.com>
          
          Added a manual test for a recent change to WebKit
  
          Test cases added:
          * manual-tests/deleteToEndOfLine.html: Added.
  
  2005-07-24  Justin Garcia  <justin.garcia at apple.com>
  
          Patch by Anders Carlsson <andersca at mac.com>
  
          Reviewed by hyatt
          
          - <http://bugzilla.opendarwin.org/show_bug.cgi?id=3615> canvas transform matrix does not apply to patterns
          Fill and stroke patterns are created in the respective fill and stroke functions using the current CTM.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::KJS::Context2DFunction::call):
          (KJS::Context2D::updateFillImagePattern):
          (KJS::Context2D::updateStrokeImagePattern):
          (KJS::Context2D::putValueProperty):
          (KJS::Context2D::Context2D):
          (KJS::_rh):
          (KJS::ImagePattern::createPattern):
          * khtml/ecma/kjs_html.h:
  
  2005-07-24  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by kevin.
  
          Fixes make clean problem introduced in xcode2.1 transition
  
          * Makefile.am:
  
  2005-07-23  Justin Garcia  <justin.garcia at apple.com>
  
          Adding a manual test for <http://bugzilla.opendarwin.org/show_bug.cgi?id=3862>
  
          Test cases added:
          * manual-tests/bidi-visible-control-characters.html: Added.
  
  2005-07-22  David Hyatt  <hyatt at apple.com>
  
  	Put back in the <script src="foo"/> self-closing tag quirk in HTML.  Unfortunately
  	Dashboard widgets are dependent on this quirk.
  
          Reviewed by mjs
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseTag):
  
  2005-07-22  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Chris Blumenberg.
          
          Test cases added: none, this only affects Safari autocomplete; it doesn't affect any
          web pages.
  
          - some changes in the direction of weaning all the form-related SPI from NSView
  
          * kwq/DOMExtensions.h:
          added -[DOMHTMLInputElement isTextField]
          * kwq/DOMHTML.mm:
          (-[DOMHTMLInputElement isTextField]):
          new method that returns YES if this element is one of the types that's represented
          by a text field (as opposed to a button, slider, etc.). I could have put this method
          in Safari, but it seems useful for other WebKit clients.
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge viewForElement:]):
          added viewForElement: as a stopgap measure. This allowed me to convert controlsInForm:
          to return DOMElements rather than NSViews, while keeping autocomplete working in
          Safari tip of tree. When I finish the SPI conversion I'll delete this method. Note that
          from this point on, autocomplete will not work in Tiger Safari with tip of tree WebKit
          (it will always fail to find anything to autocomplete)
          (-[WebCoreBridge controlsInForm:]):
          now returns an array of DOMElement* rather than an array of NSView*
  
  2005-07-21  Geoffrey Garen  <ggaren at apple.com>
  
          * WebCore.pbproj/project.pbxproj: Removed.
  
  2005-07-21  Geoffrey Garen  <ggaren at apple.com>
  
          * WebCore.xcodeproj/.cvsignore: Added.
  
  2005-07-21  Geoffrey Garen  <ggaren at apple.com>
  
          * WebCore.xcodeproj/project.pbxproj: Added.
  
  2005-07-21  Geoffrey Garen  <ggaren at apple.com>
  
          * Makefile.am:
  
  2005-07-21  Beth Dakin  <bdakin at apple.com>
  
          Reviewed by Hyatt.
  	
  	-fix for <rdar://problem/4169069> Also fixes the behavior of generated content
  	when it is specified within a list element.
  
          Test cases added: (NONE)
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::setStyle): Added loop to skip over list elements hen updating 
  					generatedcontent.
          (khtml::RenderBlock::updateFirstLetter): Added clause so that the function updates the 
  						first letter instead of just creating it.
          * khtml/rendering/render_inline.cpp:
          (RenderInline::setStyle): Added loop to skip over list elements when updating generated
  				content.
  
  2005-07-20  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Geoff.
  
  	- fix handling of special properties of the HTML document object. Now we
  	completely match IE.
  
          Test cases added:
  	* layout-tests/fast/dom/HTMLDocument/document-special-properties.html:
  	Added; new exhaustive test case.
          * layout-tests/fast/dom/HTMLDocument/document-special-properties-expected.txt: Added.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::hasOwnProperty): Check for named and doc extra named
  	items.
          (KJS::HTMLDocument::get): Return the appropriate element, window or collection
  	by name; give such named items precedence over built-in and custom properties.
          * khtml/ecma/kjs_window.cpp:
          (KJS::Window::get): Replace quirky &* idiom with call to get().
          * khtml/html/html_baseimpl.cpp:
          (HTMLIFrameElementImpl::parseMappedAttribute): Track by name as a doc
  	extra named item.
          (HTMLIFrameElementImpl::insertedIntoDocument): ditto
          (HTMLIFrameElementImpl::removedFromDocument): ditto
          * khtml/html/html_baseimpl.h:
          * khtml/html/html_documentimpl.cpp:
          (DOM::addItemToMap): Factored out from addNamedItem
          (DOM::removeItemFromMap): Factored out from removeNamedItem
          (DOM::HTMLDocumentImpl::addNamedItem): refactored
          (DOM::HTMLDocumentImpl::removeNamedItem): refactored
          (DOM::HTMLDocumentImpl::addDocExtraNamedItem): new method - maintains
  	a hashtable of the "extra" named items for a document, which are
  	iframes by name and applets and embeds by id.
          (DOM::HTMLDocumentImpl::removeDocExtraNamedItem): ditto
          (DOM::HTMLDocumentImpl::hasDocExtraNamedItem): ditto
          * khtml/html/html_documentimpl.h:
          * khtml/html/html_miscimpl.cpp:
          (DOM::HTMLCollectionImpl::traverseNextItem): Remove support for
  	DOC_NAMEABLE_ITEMS collection - no longer needed.
          (DOM::HTMLNameCollectionImpl::traverseNextItem): Add support for
  	DOCUMENT_NAMED_ITEMS, implementing the correct document rule.
          * khtml/html/html_miscimpl.h:
          (DOM::HTMLCollectionImpl::):
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLAppletElementImpl::parseMappedAttribute): Track by id
  	as doc extra named item
          (DOM::HTMLAppletElementImpl::insertedIntoDocument): ditto
          (DOM::HTMLAppletElementImpl::removedFromDocument): ditto
          (DOM::HTMLObjectElementImpl::parseMappedAttribute): ditto
          (DOM::HTMLObjectElementImpl::insertedIntoDocument): ditto
          (DOM::HTMLObjectElementImpl::removedFromDocument): ditto
          * khtml/html/html_objectimpl.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::nameableItems): removed - no longer used
          (DocumentImpl::documentNamedItems): added
          * khtml/xml/dom_docimpl.h:
  
  2005-07-20  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Vicki Murley.
          
          - removed some form-related methods that weren't being used anywhere, in preparation
          for weaning WebKit's WebFormDelegate protocol from NSView.
  
          Test cases added: none, no behavior change
  
          * kwq/KWQTextField.mm:
          * kwq/WebCoreBridge.h:
          removed these methods:
          -control:didFailToFormatString:errorDescription:
          -control:didFailToValidatePartialString:errorDescription:
          -control:isValidObject:
  
  2005-07-20  Adele Peterson  <adele at apple.com>
  
          Rolling fix for <rdar://problem/4046602> back in.
  
      2005-03-11  David Harrison  <harrison at apple.com>
          
          Reviewed by Darin.
          
          <rdar://problem/4046602> WebCore invokes undefined behavior when the spell checker isn't running
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::advanceToNextMisspelling):
          (KWQKHTMLPart::markMisspellings):
          Nil check checker.
  
  2005-07-20  Adele Peterson  <adele at apple.com>
  
          Reviewed by Darin.
  
          - fixed <rdar://problem/4181058> 8C45: Safari repro crash with document.write (DOM::NodeImpl::dispatchEvent)
  
          Test cases added:
          * manual-tests/textfield-onblur.html: Added.
          
          * kwq/KWQTextField.mm: (-[KWQTextFieldController setHasFocus:]): added nil check for widget, since it can get deleted during an event.
  
  2005-07-20  Maciej Stachowiak  <mjs at apple.com>
  
          Patch from Trey Matteson <trey at usa.net>, reviewed by me.
  
  	- fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3956
  	some of WebKit builds with symbols, some doesn't
  	
          * WebCore.pbproj/project.pbxproj: Generate symbols even for
  	Deployment.
  
  2005-07-19  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	- fixed some mistakes in my previous checkin
  
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLAppletElementImpl::parseMappedAttribute): Take name attribute out
  	of the "do nothing" case (duh).
          * layout-tests/fast/dom/Window/window-special-properties-expected.txt: Update
  	for change to the text at the top.
  
  2005-07-18  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- fix handling of special properties of the Window object. now we
  	almost completely match Win IE.
  	
          Test cases added: 
          * layout-tests/fast/dom/Window/window-special-properties-expected.txt: Added.
          * layout-tests/fast/dom/Window/window-special-properties.html: Added.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::hasOwnProperty):
          (KJS::HTMLDocument::tryGet):
          * khtml/ecma/kjs_window.cpp:
          (KJS::Window::get):
          (KJS::Window::hasOwnProperty):
          * khtml/html/html_documentimpl.cpp:
          (DOM::HTMLDocumentImpl::addNamedItem):
          (DOM::HTMLDocumentImpl::removeNamedItem):
          (DOM::HTMLDocumentImpl::hasNamedItem):
          * khtml/html/html_documentimpl.h:
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::attach):
          (DOM::HTMLFormElementImpl::insertedIntoDocument):
          (DOM::HTMLFormElementImpl::removedFromDocument):
          (DOM::HTMLFormElementImpl::parseMappedAttribute):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageElementImpl::parseMappedAttribute):
          (HTMLImageElementImpl::attach):
          (HTMLImageElementImpl::insertedIntoDocument):
          (HTMLImageElementImpl::removedFromDocument):
          * khtml/html/html_imageimpl.h:
          * khtml/html/html_miscimpl.cpp:
          (DOM::HTMLCollectionImpl::HTMLCollectionImpl):
          (DOM::HTMLCollectionImpl::traverseNextItem):
          (DOM::HTMLCollectionImpl::namedItem):
          (DOM::HTMLNameCollectionImpl::HTMLNameCollectionImpl):
          (DOM::HTMLNameCollectionImpl::traverseNextItem):
          (DOM::HTMLFormCollectionImpl::getNamedFormItem):
          (DOM::HTMLFormCollectionImpl::nextNamedItem):
          * khtml/html/html_miscimpl.h:
          (DOM::HTMLCollectionImpl::):
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLAppletElementImpl::parseMappedAttribute):
          (DOM::HTMLAppletElementImpl::insertedIntoDocument):
          (DOM::HTMLAppletElementImpl::removedFromDocument):
          (DOM::HTMLEmbedElementImpl::parseMappedAttribute):
          (DOM::HTMLEmbedElementImpl::attach):
          (DOM::HTMLEmbedElementImpl::insertedIntoDocument):
          (DOM::HTMLEmbedElementImpl::removedFromDocument):
          (DOM::HTMLObjectElementImpl::parseMappedAttribute):
          (DOM::HTMLObjectElementImpl::detach):
          (DOM::HTMLObjectElementImpl::insertedIntoDocument):
          (DOM::HTMLObjectElementImpl::removedFromDocument):
          * khtml/html/html_objectimpl.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::windowNamedItems):
          * khtml/xml/dom_docimpl.h:
  
  2005-07-19  Geoffrey Garen  <ggaren at apple.com>
  
          -rolled in patch by Anders Carlsson <andersca at mac.com> for
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3751
          REGRESSION: affects Blogger, GMail & Wikipedia: empty textarea's which should have content
          
          Reviewed by mjs.
  
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLTextAreaElementImpl::defaultValue):
          (DOM::HTMLTextAreaElementImpl::attach):
          * khtml/html/html_formimpl.h:
  
          Test cases added:
          * manual-tests/textarea-after-stylesheet-link.html: Added.
          Test is manual because the result doesn't show up in DumpRenderTree
  
  2005-07-19  Justin Garcia  <justin.garcia at apple.com>
          
          Added a virtual deconstructor to fix gcc4 build warning
  
          * khtml/rendering/render_theme.h:
          (khtml::RenderTheme::~RenderTheme):
  
  2005-07-19  David Hyatt  <hyatt at apple.com>
  
  	Adding support for the "checkbox" appearance value.  This is not yet implemented, but the
  	methods are now stubbed out and will get called.
  
  	Reviewed by mjs
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::adjustRenderStyle):
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/css/html4.css:
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLInputElementImpl::createRenderer):
          * khtml/rendering/render_box.cpp:
          (RenderBox::paintBoxDecorations):
          * khtml/rendering/render_theme.cpp: Added.
          (khtml::RenderTheme::adjustStyle):
          (khtml::RenderTheme::paint):
          * khtml/rendering/render_theme.h: Added.
          * khtml/rendering/render_theme_mac.h: Added.
          * khtml/rendering/render_theme_mac.mm: Added.
          (khtml::theme):
          (khtml::RenderThemeMac::adjustCheckboxStyle):
          (khtml::RenderThemeMac::paintCheckbox):
  
  2005-07-19  David Hyatt  <hyatt at apple.com>
  
  	Fix performance regressions from attribute QName landing.
  	
          Reviewed by mjs
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::Token::addAttribute):
          (khtml::HTMLTokenizer::write):
  
  	Make sure attributes have a faster constructor that can avoid the copy of QualifiedNames.
  
  	Make sure to grab the part from the document outside the loop, so that it is not fetched
  	over and over again for every character in the source.
  	
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paintObject):
  
  	Only call paintCaret if the block is actually editable.
  	
          * khtml/xml/dom_atomicstring.h:
          (DOM::operator!=):
          * khtml/xml/dom_elementimpl.h:
          (DOM::AttributeImpl::AttributeImpl):
          (DOM::AttributeImpl::~AttributeImpl):
          (DOM::MappedAttributeImpl::MappedAttributeImpl):
  
  	Add != comparison operator with a char* to speed up the / check for attribute invalidity.
  	
  2005-07-19  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Maciej.
  
  	- fixed <rdar://problem/3471901> support scrollIntoView method for DOM elements (3474)
   
          Test cases added: 
          * manual-tests/scrollIntoView-horizontal.html: Added.
          * manual-tests/scrollIntoView-vertical.html: Added.
  
          * khtml/xml/dom_elementimpl.h:        
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::scrollIntoView): Added.
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMNode::):
          (KJS::DOMElement::):
          * khtml/ecma/kjs_dom.cpp:
          (KJS::DOMElementProtoFunc::tryCall): glue for new scrollIntoView function
  
  2005-07-19  Geoffrey Garen  <ggaren at apple.com>
  
          - rolled in patch by opendarwin.org at mitzpettel.com for
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3838
          Text runs unnecessarily split at EN L boundaries
          
          Reviewed by hyatt.
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::bidiReorderLine):
  
          Lots of new test case results because previous results had inappropriately
          split text runs.
  
          * layout-tests/css1/basic/containment-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_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_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_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/classification/display-expected.txt:
          * layout-tests/css1/color_and_background/background_position-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_size-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/text_properties/letter_spacing-expected.txt:
          * layout-tests/css1/text_properties/line_height-expected.txt:
          * layout-tests/css1/text_properties/text_indent-expected.txt:
          * layout-tests/css1/text_properties/vertical_align-expected.txt:
          * layout-tests/css1/text_properties/word_spacing-expected.txt:
          * layout-tests/css1/units/length_units-expected.txt:
          * layout-tests/editing/style/relative-font-size-change-001-expected.txt:
          * layout-tests/editing/style/relative-font-size-change-002-expected.txt:
          * layout-tests/editing/style/relative-font-size-change-003-expected.txt:
          * layout-tests/editing/style/relative-font-size-change-004-expected.txt:
          * layout-tests/editing/style/smoosh-styles-003-expected.txt:
          * layout-tests/fast/block/basic/018-expected.txt:
          * layout-tests/fast/block/float/002-expected.txt:
          * layout-tests/fast/block/float/021-expected.txt:
          * layout-tests/fast/block/float/023-expected.txt:
          * layout-tests/fast/block/float/024-expected.txt:
          * layout-tests/fast/block/float/029-expected.txt:
          * layout-tests/fast/block/float/030-expected.txt:
          * layout-tests/fast/block/margin-collapse/043-expected.txt:
          * layout-tests/fast/block/margin-collapse/101-expected.txt:
          * layout-tests/fast/block/positioning/060-expected.txt:
          * layout-tests/fast/block/positioning/auto/001-expected.txt:
          * layout-tests/fast/block/positioning/auto/002-expected.txt:
          * layout-tests/fast/block/positioning/auto/003-expected.txt:
          * layout-tests/fast/block/positioning/auto/004-expected.txt:
          * layout-tests/fast/block/positioning/auto/005-expected.txt:
          * layout-tests/fast/block/positioning/auto/006-expected.txt:
          * layout-tests/fast/clip/001-expected.txt:
          * layout-tests/fast/clip/002-expected.txt:
          * layout-tests/fast/clip/003-expected.txt:
          * layout-tests/fast/clip/004-expected.txt:
          * layout-tests/fast/clip/005-expected.txt:
          * layout-tests/fast/clip/006-expected.txt:
          * layout-tests/fast/clip/007-expected.txt:
          * layout-tests/fast/clip/008-expected.txt:
          * layout-tests/fast/clip/009-expected.txt:
          * layout-tests/fast/clip/010-expected.txt:
          * layout-tests/fast/clip/011-expected.txt:
          * layout-tests/fast/clip/012-expected.txt:
          * layout-tests/fast/clip/013-expected.txt:
          * layout-tests/fast/clip/014-expected.txt:
          * layout-tests/fast/clip/015-expected.txt:
          * layout-tests/fast/clip/016-expected.txt:
          * layout-tests/fast/css-generated-content/012-expected.txt:
          * layout-tests/fast/css/008-expected.txt:
          * layout-tests/fast/css/MarqueeLayoutTest-expected.txt:
          * layout-tests/fast/css/apple-prefix-expected.txt:
          * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
          * layout-tests/fast/dynamic/noninlinebadness-expected.txt:
          * layout-tests/fast/encoding/utf-16-big-endian-expected.txt:
          * layout-tests/fast/encoding/utf-16-little-endian-expected.txt:
          * layout-tests/fast/flexbox/001-expected.txt:
          * layout-tests/fast/flexbox/004-expected.txt:
          * layout-tests/fast/flexbox/007-expected.txt:
          * layout-tests/fast/flexbox/008-expected.txt:
          * layout-tests/fast/flexbox/009-expected.txt:
          * layout-tests/fast/flexbox/010-expected.txt:
          * layout-tests/fast/flexbox/012-expected.txt:
          * layout-tests/fast/flexbox/013-expected.txt:
          * layout-tests/fast/flexbox/014-expected.txt:
          * layout-tests/fast/flexbox/015-expected.txt:
          * layout-tests/fast/flexbox/018-expected.txt:
          * layout-tests/fast/flexbox/019-expected.txt:
          * layout-tests/fast/flexbox/020-expected.txt:
          * layout-tests/fast/flexbox/021-expected.txt:
          * layout-tests/fast/flexbox/022-expected.txt:
          * layout-tests/fast/flexbox/023-expected.txt:
          * layout-tests/fast/flexbox/024-expected.txt:
          * layout-tests/fast/invalid/012-expected.txt:
          * layout-tests/fast/invalid/016-expected.txt:
          * layout-tests/fast/invalid/nestedh3s-expected.txt:
          * layout-tests/fast/lists/003-expected.txt:
          * layout-tests/fast/replaced/004-expected.txt:
          * layout-tests/fast/selectors/166-expected.txt:
          * layout-tests/fast/table/032-expected.txt:
          * layout-tests/fast/table/border-collapsing/004-expected.txt:
          * layout-tests/fast/text/basic/003-expected.txt:
          * layout-tests/fast/text/basic/004-expected.txt:
          * layout-tests/fast/text/basic/005-expected.txt:
          * layout-tests/fast/text/basic/009-expected.txt:
  
  2005-07-19  Darin Adler  <darin at apple.com>
  
          Reviewed by Geoff Garen.
  
          Test cases added: None. Structural change only.
  
          - eliminated try wrappers for get/put/call since we don't use C++ exceptions any more
  
          * khtml/ecma/kjs_binding.cpp: Removed DOMObject::get, DOMObject::set, DOMFunction::get,
          and DOMFunction::call.
          * khtml/ecma/kjs_binding.h: Removed get, set, tryGet, trySet, call, tryCall from DOMObject
          and DOMFunction. Removed DOMObjectLookupGet, DOMObjectLookupGetValue, and DOMObjectLookupPut.
          We can just do things the normal way now.
  
          The rest of the changes are just renames and removal of a couple stray tryCall wrappers.
  
              tryGet -> get
              tryPut -> put
              tryCall -> call
              putValue -> putValueProperty
              DOMObjectLookupGet -> lookupGet
              DOMObjectLookupGetValue -> lookupGetValue
              DOMObjectLookupPut -> lookupPut
  
          * khtml/ecma/domparser.cpp:
          (KJS::DOMParserProtoFunc::call):
          * khtml/ecma/kjs_css.cpp:
          (KJS::DOMCSSStyleDeclaration::get):
          (KJS::DOMCSSStyleDeclaration::put):
          (KJS::DOMCSSStyleDeclarationProtoFunc::call):
          (KJS::DOMStyleSheet::get):
          (KJS::DOMStyleSheet::put):
          (KJS::DOMStyleSheetList::get):
          (KJS::DOMStyleSheetListFunc::call):
          (KJS::DOMMediaList::get):
          (KJS::DOMMediaList::put):
          (KJS::KJS::DOMMediaListProtoFunc::call):
          (KJS::DOMCSSStyleSheet::get):
          (KJS::DOMCSSStyleSheetProtoFunc::call):
          (KJS::DOMCSSRuleList::get):
          (KJS::DOMCSSRuleListFunc::call):
          (KJS::DOMCSSRule::get):
          (KJS::DOMCSSRule::put):
          (KJS::DOMCSSRule::putValueProperty):
          (KJS::DOMCSSRuleFunc::call):
          (KJS::CSSRuleConstructor::get):
          (KJS::DOMCSSValue::get):
          (KJS::DOMCSSValue::put):
          (KJS::CSSValueConstructor::get):
          (KJS::DOMCSSPrimitiveValue::get):
          (KJS::DOMCSSPrimitiveValueProtoFunc::call):
          (KJS::CSSPrimitiveValueConstructor::get):
          (KJS::DOMCSSValueList::get):
          (KJS::DOMCSSValueListFunc::call):
          (KJS::DOMRGBColor::get):
          (KJS::DOMRect::get):
          (KJS::DOMCounter::get):
          * khtml/ecma/kjs_css.h:
          * khtml/ecma/kjs_dom.cpp:
          (KJS::DOMNode::get):
          (KJS::DOMNode::put):
          (KJS::DOMNode::putValueProperty):
          (KJS::DOMNodeProtoFunc::call):
          (KJS::DOMNodeList::get):
          (KJS::DOMNodeList::call):
          (KJS::DOMNodeListFunc::call):
          (KJS::DOMAttr::get):
          (KJS::DOMAttr::put):
          (KJS::DOMAttr::putValueProperty):
          (KJS::DOMDocument::get):
          (KJS::DOMDocument::put):
          (KJS::DOMDocument::putValueProperty):
          (KJS::DOMDocumentProtoFunc::call):
          (KJS::DOMElement::get):
          (KJS::DOMElementProtoFunc::call):
          (KJS::DOMDOMImplementationProtoFunc::call):
          (KJS::DOMDocumentType::get):
          (KJS::DOMNamedNodeMap::get):
          (KJS::DOMNamedNodeMapProtoFunc::call):
          (KJS::DOMProcessingInstruction::get):
          (KJS::DOMProcessingInstruction::put):
          (KJS::DOMNotation::get):
          (KJS::DOMEntity::get):
          (KJS::NodeConstructor::get):
          (KJS::DOMExceptionConstructor::get):
          (KJS::DOMNamedNodesCollection::get):
          (KJS::DOMCharacterData::get):
          (KJS::DOMCharacterData::put):
          (KJS::DOMCharacterDataProtoFunc::call):
          (KJS::DOMText::get):
          (KJS::DOMTextProtoFunc::call):
          * khtml/ecma/kjs_dom.h:
          * khtml/ecma/kjs_events.cpp:
          (KJS::EventConstructor::get):
          (KJS::DOMEvent::get):
          (KJS::DOMEvent::put):
          (KJS::DOMEvent::putValueProperty):
          (KJS::DOMEventProtoFunc::call):
          (KJS::EventExceptionConstructor::get):
          (KJS::DOMUIEvent::get):
          (KJS::DOMUIEventProtoFunc::call):
          (KJS::DOMMouseEvent::get):
          (KJS::DOMMouseEventProtoFunc::call):
          (KJS::DOMKeyboardEvent::get):
          (KJS::DOMKeyboardEventProtoFunc::call):
          (KJS::MutationEventConstructor::get):
          (KJS::DOMMutationEvent::get):
          (KJS::DOMMutationEventProtoFunc::call):
          (KJS::DOMWheelEvent::get):
          (KJS::DOMWheelEventProtoFunc::call):
          (KJS::Clipboard::get):
          (KJS::Clipboard::put):
          (KJS::Clipboard::putValueProperty):
          (KJS::ClipboardProtoFunc::call):
          * khtml/ecma/kjs_events.h:
          * khtml/ecma/kjs_html.cpp:
          (KJS::KJS::HTMLDocFunction::call):
          (KJS::HTMLDocument::get):
          (KJS::KJS::HTMLDocument::put):
          (KJS::KJS::HTMLDocument::putValueProperty):
          (KJS::KJS::HTMLElement::get):
          (KJS::KJS::HTMLElementFunction::call):
          (KJS::KJS::HTMLElement::put):
          (KJS::HTMLElement::putValueProperty):
          (KJS::KJS::HTMLCollection::get):
          (KJS::KJS::HTMLCollection::call):
          (KJS::KJS::HTMLCollectionProtoFunc::call):
          (KJS::KJS::HTMLSelectCollection::get):
          (KJS::KJS::HTMLSelectCollection::put):
          (KJS::Image::get):
          (KJS::Image::put):
          (KJS::Image::putValueProperty):
          (KJS::KJS::Context2DFunction::call):
          (KJS::Context2D::get):
          (KJS::Context2D::put):
          (KJS::Context2D::putValueProperty):
          (KJS::GradientFunction::call):
          (KJS::Gradient::get):
          (KJS::Gradient::put):
          (KJS::Gradient::putValueProperty):
          (KJS::ImagePattern::get):
          (KJS::ImagePattern::put):
          (KJS::ImagePattern::putValueProperty):
          * khtml/ecma/kjs_html.h:
          * khtml/ecma/kjs_navigator.cpp:
          (KJS::PluginsFunc::call):
          (KJS::NavigatorFunc::call):
          * khtml/ecma/kjs_range.cpp:
          (KJS::DOMRange::get):
          (KJS::DOMRangeProtoFunc::call):
          (KJS::RangeConstructor::get):
          * khtml/ecma/kjs_range.h:
          * khtml/ecma/kjs_traversal.cpp:
          (KJS::DOMNodeIterator::get):
          (KJS::DOMNodeIteratorProtoFunc::call):
          (KJS::NodeFilterConstructor::get):
          (KJS::DOMNodeFilterProtoFunc::call):
          (KJS::DOMTreeWalker::get):
          (KJS::DOMTreeWalker::put):
          (KJS::DOMTreeWalkerProtoFunc::call):
          * khtml/ecma/kjs_traversal.h:
          * khtml/ecma/kjs_views.cpp:
          (KJS::DOMAbstractView::get):
          (KJS::DOMAbstractViewFunc::call):
          * khtml/ecma/kjs_views.h:
          * khtml/ecma/kjs_window.cpp:
          (KJS::WindowFunc::call):
          (KJS::LocationFunc::call):
          (KJS::SelectionFunc::call):
          (KJS::HistoryFunc::call):
          (KJS::KonquerorFunc::call):
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::get):
          (KJS::XMLHttpRequest::put):
          (KJS::XMLHttpRequest::putValueProperty):
          (KJS::XMLHttpRequestProtoFunc::call):
          * khtml/ecma/xmlhttprequest.h:
          * khtml/ecma/xmlserializer.cpp:
          (KJS::XMLSerializerProtoFunc::call):
  
  2005-07-19  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave Hyatt.
  
          - fixed broken bi-di layout tests: the "dir" attribute was broken
  
          * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseMappedAttribute):
          Fix one case that said "direction" where it should say "dir".
  
  2005-07-19  Darin Adler  <darin at apple.com>
  
          - updated results of two tests that reflect properly-preserved namespace prefixes for attributes
  
          * layout-tests/fast/dom/dom-parse-serialize-display-expected.txt:
          * layout-tests/fast/dom/dom-parse-serialize-expected.txt:
  
  2005-07-18  David Hyatt  <hyatt at apple.com>
  
  	Add support for -khtml-appearance in preparation for
  	the addition of RenderTheme to the tree for form controls.
  
  	Make clean is required after this check-in, since there is
  	some sort of bizarre bug with XCode dependencies on the
  	property generation script.
  	
          Reviewed by darin
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          * khtml/css/cssproperties.in:
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/css/cssvalues.in:
          * khtml/rendering/render_style.cpp:
          (m_appearance):
          (StyleCSS3NonInheritedData::operator==):
          (RenderStyle::diff):
          * khtml/rendering/render_style.h:
          (khtml::):
          (khtml::RenderStyle::appearance):
          (khtml::RenderStyle::setAppearance):
          (khtml::RenderStyle::initialAppearance):
  
  2005-07-18  David Harrison  <harrison at apple.com>
  
          Reviewed by Justin.
  
          Test cases added: None.  Existing tests were failing.
  
          Fix crash caused by my changes in revision 1.6 of khtml/editing/delete_selection_command.cpp.
          
          * khtml/editing/delete_selection_command.cpp:
          (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
          Remove workaround that was added for missing typing style.
          
          (khtml::DeleteSelectionCommand::doApply):
          Make sure to call saveTypingStyleState() before handleSpecialCaseBRDelete().
  
  2005-07-18  David Hyatt  <hyatt at apple.com>
  
  	Rename HTMLNames -> HTMLTags.  Purely mechanical (done in XCode)
  	so no review needed.
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::adjustRenderStyle):
          (khtml::CSSStyleSelector::checkOneSelector):
          * khtml/dom/css_stylesheet.cpp:
          (LinkStyle::operator = ):
          (LinkStyle::sheet):
          * khtml/dom/html_base.cpp:
          (HTMLBodyElement::operator = ):
          (HTMLFrameElement::operator = ):
          (HTMLIFrameElement::operator = ):
          (HTMLFrameSetElement::operator = ):
          (HTMLHeadElement::operator = ):
          (HTMLHtmlElement::operator = ):
          * khtml/dom/html_block.cpp:
          (HTMLBlockquoteElement::operator = ):
          (HTMLDivElement::operator = ):
          (HTMLHRElement::operator = ):
          (HTMLHeadingElement::operator = ):
          (HTMLParagraphElement::operator = ):
          (HTMLPreElement::operator = ):
          * khtml/dom/html_form.cpp:
          (HTMLButtonElement::operator = ):
          (HTMLFieldSetElement::operator = ):
          (HTMLFormElement::operator = ):
          (HTMLInputElement::operator = ):
          (HTMLLabelElement::operator = ):
          (HTMLLegendElement::operator = ):
          (HTMLOptGroupElement::operator = ):
          (HTMLSelectElement::operator = ):
          (HTMLTextAreaElement::operator = ):
          (HTMLOptionElement::operator = ):
          (HTMLIsIndexElement::operator = ):
          * khtml/dom/html_head.cpp:
          (HTMLBaseElement::operator = ):
          (HTMLLinkElement::operator = ):
          (HTMLMetaElement::operator = ):
          (HTMLScriptElement::operator = ):
          (HTMLStyleElement::operator = ):
          (HTMLTitleElement::operator = ):
          * khtml/dom/html_image.cpp:
          (HTMLAreaElement::operator = ):
          (HTMLImageElement::operator = ):
          (HTMLMapElement::operator = ):
          * khtml/dom/html_inline.cpp:
          (HTMLAnchorElement::operator = ):
          (HTMLBRElement::operator = ):
          (HTMLFontElement::operator = ):
          (HTMLModElement::HTMLModElement):
          (HTMLModElement::operator = ):
          (HTMLQuoteElement::operator = ):
          * khtml/dom/html_list.cpp:
          (HTMLDListElement::operator = ):
          (HTMLDirectoryElement::operator = ):
          (HTMLLIElement::operator = ):
          (HTMLMenuElement::operator = ):
          (HTMLOListElement::operator = ):
          (HTMLUListElement::operator = ):
          * khtml/dom/html_misc.cpp:
          (HTMLBaseFontElement::operator = ):
          * khtml/dom/html_object.cpp:
          (DOM::HTMLAppletElement::operator = ):
          (DOM::HTMLObjectElement::operator = ):
          (DOM::HTMLParamElement::operator = ):
          * khtml/dom/html_table.cpp:
          (HTMLTableCaptionElement::operator = ):
          (HTMLTableCellElement::operator = ):
          (HTMLTableColElement::operator = ):
          (HTMLTableElement::operator = ):
          (HTMLTableRowElement::operator = ):
          (HTMLTableSectionElement::operator = ):
          * khtml/ecma/kjs_css.cpp:
          (KJS::DOMStyleSheetList::tryGet):
          * khtml/ecma/kjs_dom.cpp:
          (KJS::getRuntimeObject):
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::tryGet):
          (KJS::KJS::HTMLDocument::putValue):
          (KJS::KJS::HTMLElement::classInfo):
          (KJS::HTMLElement::getSetInfo):
          (KJS::KJS::HTMLElement::tryGet):
          (KJS::KJS::HTMLElement::implementsCall):
          (KJS::KJS::HTMLElement::call):
          (KJS::KJS::HTMLElement::hasOwnProperty):
          (KJS::KJS::HTMLElement::toString):
          (KJS::getForm):
          (KJS::KJS::HTMLElement::pushEventHandlerScope):
          (KJS::KJS::HTMLElementFunction::tryCall):
          (KJS::KJS::HTMLElement::tryPut):
          (KJS::toHTMLTableCaptionElement):
          (KJS::toHTMLTableSectionElement):
          (KJS::KJS::HTMLCollection::tryGet):
          (KJS::KJS::HTMLSelectCollection::tryPut):
          * khtml/editing/apply_style_command.cpp:
          (khtml::isEmptyStyleSpan):
          (khtml::isEmptyFontTag):
          (khtml::createFontElement):
          (khtml::createStyleSpanElement):
          (khtml::ApplyStyleCommand::applyInlineStyle):
          (khtml::ApplyStyleCommand::isHTMLStyleNode):
          (khtml::ApplyStyleCommand::removeHTMLFontStyle):
          (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
          * khtml/editing/break_blockquote_command.cpp:
          (khtml::BreakBlockquoteCommand::doApply):
          * khtml/editing/composite_edit_command.cpp:
          (khtml::CompositeEditCommand::insertNodeBefore):
          (khtml::CompositeEditCommand::insertNodeAfter):
          (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
          (khtml::createBlockPlaceholderElement):
          * khtml/editing/delete_selection_command.cpp:
          (khtml::isListStructureNode):
          (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete):
          (khtml::DeleteSelectionCommand::handleGeneralDelete):
          (khtml::DeleteSelectionCommand::moveNodesAfterNode):
          * khtml/editing/htmlediting.cpp:
          (khtml::isSpecialElement):
          (khtml::createDefaultParagraphElement):
          (khtml::createBreakElement):
          (khtml::isMailBlockquote):
          * khtml/editing/insert_line_break_command.cpp:
          (khtml::InsertLineBreakCommand::doApply):
          * khtml/editing/insert_paragraph_separator_command.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply):
          * khtml/editing/markup.cpp:
          (khtml::startMarkup):
          (khtml::createMarkup):
          (khtml::createFragmentFromText):
          * khtml/editing/replace_selection_command.cpp:
          (khtml::isProbablyBlock):
          (khtml::isProbablyTableStructureNode):
          (khtml::ReplacementFragment::isInterchangeNewlineNode):
          (khtml::ReplacementFragment::removeStyleNodes):
          (khtml::ReplaceSelectionCommand::doApply):
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::init):
          (khtml::VisiblePosition::isCandidate):
          (khtml::VisiblePosition::isAtomicNode):
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::handleNonTextNode):
          (khtml::TextIterator::exitNode):
          (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode):
          * khtml/editing/visible_units.cpp:
          (khtml::endOfLine):
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::HTMLBodyElementImpl):
          (HTMLFrameElementImpl::HTMLFrameElementImpl):
          (HTMLFrameElementImpl::attach):
          (HTMLFrameSetElementImpl::HTMLFrameSetElementImpl):
          (HTMLFrameSetElementImpl::checkDTD):
          (HTMLFrameSetElementImpl::attach):
          (HTMLHeadElementImpl::HTMLHeadElementImpl):
          (HTMLHeadElementImpl::checkDTD):
          (HTMLHtmlElementImpl::HTMLHtmlElementImpl):
          (HTMLHtmlElementImpl::checkDTD):
          (HTMLIFrameElementImpl::HTMLIFrameElementImpl):
          * khtml/html/html_blockimpl.cpp:
          (HTMLBlockquoteElementImpl::HTMLBlockquoteElementImpl):
          (HTMLDivElementImpl::HTMLDivElementImpl):
          (HTMLHRElementImpl::HTMLHRElementImpl):
          (HTMLHeadingElementImpl::checkDTD):
          (HTMLParagraphElementImpl::HTMLParagraphElementImpl):
          (HTMLParagraphElementImpl::checkDTD):
          (HTMLMarqueeElementImpl::HTMLMarqueeElementImpl):
          * khtml/html/html_canvasimpl.cpp:
          (HTMLCanvasElementImpl::HTMLCanvasElementImpl):
          * khtml/html/html_documentimpl.cpp:
          (DOM::HTMLDocumentImpl::childAllowed):
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::endTagRequirement):
          (HTMLElementImpl::tagPriority):
          (HTMLElementImpl::createContextualFragment):
          (HTMLElementImpl::setInnerText):
          (HTMLElementImpl::setOuterText):
          (HTMLElementImpl::isRecognizedTagName):
          (inlineTagList):
          (blockTagList):
          (HTMLElementImpl::checkDTD):
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::HTMLFormElementImpl):
          (DOM::HTMLFormElementImpl::submitClick):
          (DOM::HTMLFormElementImpl::formData):
          (DOM::HTMLFormElementImpl::submit):
          (DOM::HTMLFormElementImpl::radioClicked):
          (DOM::HTMLGenericFormElementImpl::getForm):
          (DOM::HTMLButtonElementImpl::HTMLButtonElementImpl):
          (DOM::HTMLFieldSetElementImpl::HTMLFieldSetElementImpl):
          (DOM::HTMLFieldSetElementImpl::checkDTD):
          (DOM::HTMLInputElementImpl::HTMLInputElementImpl):
          (DOM::HTMLLabelElementImpl::HTMLLabelElementImpl):
          (DOM::HTMLLabelElementImpl::form):
          (DOM::HTMLLegendElementImpl::HTMLLegendElementImpl):
          (DOM::HTMLLegendElementImpl::formElement):
          (DOM::HTMLSelectElementImpl::HTMLSelectElementImpl):
          (DOM::HTMLSelectElementImpl::checkDTD):
          (DOM::HTMLSelectElementImpl::selectedIndex):
          (DOM::HTMLSelectElementImpl::setSelectedIndex):
          (DOM::HTMLSelectElementImpl::length):
          (DOM::HTMLSelectElementImpl::add):
          (DOM::HTMLSelectElementImpl::value):
          (DOM::HTMLSelectElementImpl::setValue):
          (DOM::HTMLSelectElementImpl::state):
          (DOM::HTMLSelectElementImpl::restoreState):
          (DOM::HTMLSelectElementImpl::appendFormData):
          (DOM::HTMLSelectElementImpl::optionToListIndex):
          (DOM::HTMLSelectElementImpl::listToOptionIndex):
          (DOM::HTMLSelectElementImpl::recalcListItems):
          (DOM::HTMLSelectElementImpl::reset):
          (DOM::HTMLSelectElementImpl::notifyOptionSelected):
          (DOM::HTMLKeygenElementImpl::HTMLKeygenElementImpl):
          (DOM::HTMLOptGroupElementImpl::HTMLOptGroupElementImpl):
          (DOM::HTMLOptGroupElementImpl::recalcSelectOptions):
          (DOM::HTMLOptionElementImpl::HTMLOptionElementImpl):
          (DOM::HTMLOptionElementImpl::index):
          (DOM::HTMLOptionElementImpl::getSelect):
          (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl):
          (DOM::HTMLIsIndexElementImpl::HTMLIsIndexElementImpl):
          * khtml/html/html_formimpl.h:
          (DOM::HTMLOptGroupElementImpl::checkDTD):
          * khtml/html/html_headimpl.cpp:
          (HTMLBaseElementImpl::HTMLBaseElementImpl):
          (HTMLLinkElementImpl::HTMLLinkElementImpl):
          (HTMLMetaElementImpl::HTMLMetaElementImpl):
          (HTMLScriptElementImpl::HTMLScriptElementImpl):
          (HTMLStyleElementImpl::HTMLStyleElementImpl):
          (HTMLTitleElementImpl::HTMLTitleElementImpl):
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageLoader::updateFromElement):
          (HTMLImageElementImpl::HTMLImageElementImpl):
          (HTMLMapElementImpl::HTMLMapElementImpl):
          (HTMLMapElementImpl::checkDTD):
          (HTMLMapElementImpl::mapMouseEvent):
          (HTMLAreaElementImpl::HTMLAreaElementImpl):
          * khtml/html/html_inlineimpl.cpp:
          (DOM::HTMLAnchorElementImpl::HTMLAnchorElementImpl):
          (DOM::HTMLAnchorElementImpl::defaultEventHandler):
          (DOM::HTMLBRElementImpl::HTMLBRElementImpl):
          (DOM::HTMLFontElementImpl::HTMLFontElementImpl):
          (DOM::HTMLQuoteElementImpl::HTMLQuoteElementImpl):
          * khtml/html/html_listimpl.cpp:
          (DOM::HTMLLIElementImpl::attach):
          * khtml/html/html_listimpl.h:
          (DOM::HTMLUListElementImpl::HTMLUListElementImpl):
          (DOM::HTMLDirectoryElementImpl::HTMLDirectoryElementImpl):
          (DOM::HTMLMenuElementImpl::HTMLMenuElementImpl):
          (DOM::HTMLOListElementImpl::HTMLOListElementImpl):
          (DOM::HTMLLIElementImpl::HTMLLIElementImpl):
          (DOM::HTMLDListElementImpl::HTMLDListElementImpl):
          * khtml/html/html_miscimpl.cpp:
          (DOM::HTMLBaseFontElementImpl::HTMLBaseFontElementImpl):
          (DOM::HTMLCollectionImpl::traverseNextItem):
          (DOM::HTMLCollectionImpl::checkForNameMatch):
          (DOM::HTMLCollectionImpl::updateNameCache):
          (DOM::HTMLFormCollectionImpl::getNamedFormItem):
          (DOM::HTMLFormCollectionImpl::updateNameCache):
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLAppletElementImpl::HTMLAppletElementImpl):
          (DOM::HTMLAppletElementImpl::checkDTD):
          (DOM::HTMLEmbedElementImpl::HTMLEmbedElementImpl):
          (DOM::HTMLEmbedElementImpl::checkDTD):
          (DOM::HTMLEmbedElementImpl::rendererIsNeeded):
          (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl):
          (DOM::HTMLObjectElementImpl::checkDTD):
          (DOM::HTMLObjectElementImpl::form):
          (DOM::HTMLParamElementImpl::HTMLParamElementImpl):
          * khtml/html/html_tableimpl.cpp:
          (DOM::HTMLTableElementImpl::HTMLTableElementImpl):
          (DOM::HTMLTableElementImpl::checkDTD):
          (DOM::HTMLTableElementImpl::createTHead):
          (DOM::HTMLTableElementImpl::createTFoot):
          (DOM::HTMLTableElementImpl::insertRow):
          (DOM::HTMLTableElementImpl::deleteRow):
          (DOM::HTMLTableElementImpl::addChild):
          (DOM::HTMLTableSectionElementImpl::checkDTD):
          (DOM::HTMLTableSectionElementImpl::addChild):
          (DOM::HTMLTableSectionElementImpl::numRows):
          (DOM::HTMLTableRowElementImpl::checkDTD):
          (DOM::HTMLTableRowElementImpl::addChild):
          (DOM::HTMLTableRowElementImpl::rowIndex):
          (DOM::HTMLTableRowElementImpl::sectionRowIndex):
          (DOM::HTMLTableRowElementImpl::insertCell):
          (DOM::HTMLTableCellElementImpl::cellIndex):
          (DOM::HTMLTableCellElementImpl::additionalAttributeStyleDecl):
          (DOM::HTMLTableColElementImpl::HTMLTableColElementImpl):
          * khtml/html/html_tableimpl.h:
          (DOM::HTMLTableRowElementImpl::HTMLTableRowElementImpl):
          (DOM::HTMLTableColElementImpl::endTagRequirement):
          (DOM::HTMLTableColElementImpl::tagPriority):
          (DOM::HTMLTableColElementImpl::checkDTD):
          (DOM::HTMLTableCaptionElementImpl::HTMLTableCaptionElementImpl):
          * khtml/html/htmlfactory.cpp:
          (DOM::headingConstructor):
          (DOM::preConstructor):
          (DOM::modConstructor):
          (DOM::tableColConstructor):
          (DOM::tableCellConstructor):
          (DOM::tableSectionConstructor):
          (DOM::HTMLElementFactory::createHTMLElement):
          * khtml/html/htmlnames.cpp:
          (DOM::HTMLTags::init):
          * khtml/html/htmlnames.h:
          * khtml/html/htmlparser.cpp:
          (HTMLParser::parseToken):
          (isTableSection):
          (isTablePart):
          (isTableRelated):
          (HTMLParser::handleError):
          (HTMLParser::headCreateErrorCheck):
          (HTMLParser::bodyCreateErrorCheck):
          (HTMLParser::framesetCreateErrorCheck):
          (HTMLParser::iframeCreateErrorCheck):
          (HTMLParser::ddCreateErrorCheck):
          (HTMLParser::dtCreateErrorCheck):
          (HTMLParser::tableCellCreateErrorCheck):
          (HTMLParser::tableSectionCreateErrorCheck):
          (HTMLParser::noembedCreateErrorCheck):
          (HTMLParser::noframesCreateErrorCheck):
          (HTMLParser::noscriptCreateErrorCheck):
          (HTMLParser::getNode):
          (HTMLParser::processCloseTag):
          (HTMLParser::isHeaderTag):
          (HTMLParser::isInline):
          (HTMLParser::isResidualStyleTag):
          (HTMLParser::isAffectedByResidualStyle):
          (HTMLParser::popBlock):
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseSpecial):
          (khtml::HTMLTokenizer::scriptHandler):
          (khtml::HTMLTokenizer::parseTag):
          * khtml/khtml_part.cpp:
          (KHTMLPart::init):
          (KHTMLPart::selectionComputedStyle):
          * khtml/khtmlview.cpp:
          (KHTMLView::layout):
          (isSubmitImage):
          * khtml/misc/decoder.cpp:
          (Decoder::decode):
          * khtml/rendering/render_applet.cpp:
          (RenderApplet::createWidgetIfNecessary):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlock):
          * khtml/rendering/render_box.cpp:
          (RenderBox::paintRootBoxDecorations):
          (RenderBox::paintBackgroundExtended):
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::paint):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::addFocusRingRects):
          * khtml/rendering/render_form.cpp:
          (RenderFieldset::findLegend):
          (RenderSelect::updateFromElement):
          (RenderSelect::layout):
          (RenderSelect::slotSelected):
          (RenderSelect::slotSelectionChanged):
          (RenderSelect::updateSelection):
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget):
          (RenderPartObject::slotViewCleared):
          * khtml/rendering/render_image.cpp:
          (RenderImage::paint):
          (RenderImage::imageMap):
          (RenderImage::updateAltText):
          * khtml/rendering/render_layer.cpp:
          (Marquee::marqueeSpeed):
          * khtml/rendering/render_list.cpp:
          (getParentOfFirstLineBox):
          * khtml/rendering/render_object.cpp:
          (RenderObject::isBody):
          (RenderObject::isHR):
          (RenderObject::isHTMLMarquee):
          (RenderObject::sizesToMaxWidth):
          (RenderObject::setStyle):
          (RenderObject::getTextDecorationColors):
          (RenderObject::setPixmap):
          * khtml/rendering/render_table.cpp:
          (RenderTable::addChild):
          (RenderTable::layout):
          (RenderTableSection::addChild):
          (RenderTableRow::addChild):
          (RenderTableCell::updateFromElement):
          (RenderTableCol::updateFromElement):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createElementNS):
          (DocumentImpl::body):
          (DocumentImpl::shouldScheduleLayout):
          (DocumentImpl::recalcStyleSelector):
          * khtml/xml/dom_nodeimpl.cpp:
          (DOM::NodeImpl::maxDeepOffset):
          (DOM::NodeImpl::enclosingBlockFlowOrTableElement):
          (DOM::NodeImpl::enclosingBlockFlowElement):
          (DOM::NodeImpl::enclosingInlineElement):
          (DOM::NodeImpl::rootEditableElement):
          (DOM::NodeImpl::showTreeAndMark):
          * khtml/xml/dom_position.cpp:
          (DOM::Position::downstream):
          (DOM::Position::rendersInDifferentPosition):
          (DOM::Position::leadingWhitespacePosition):
          (DOM::Position::trailingWhitespacePosition):
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::XMLTokenizer::startElement):
          (khtml::XMLTokenizer::insertErrorMessageBlock):
          (khtml::XMLTokenizer::addScripts):
          * kwq/DOM.mm:
          (+[DOMNode _nodeWithImpl:]):
          * kwq/DOMHTML.mm:
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject role]):
          (-[KWQAccObject title]):
          (-[KWQAccObject accessibilityIsIgnored]):
          * kwq/KWQKHTMLPart.cpp:
          (KWQKHTMLPart::isFrameSet):
          * kwq/KWQKHTMLPart.mm:
          (scanForForm):
          (KWQKHTMLPart::currentForm):
          (KWQKHTMLPart::searchForLabelsBeforeElement):
          (listParent):
          (isTextFirstInListItem):
          (KWQKHTMLPart::attributedString):
          (KWQKHTMLPart::styleForSelectionStart):
          (KWQKHTMLPart::setSelectionFromNone):
          * kwq/WebCoreBridge.mm:
          (inputElementFromDOMElement):
          (formElementFromDOMElement):
          (-[WebCoreBridge elementAtPoint:]):
  
  2005-07-18  David Hyatt  <hyatt at apple.com>
  
  	Fix for bugzilla bug 3927.  Convert attributes to use QualifiedName.
  	
          Reviewed by mjs
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/css/css_base.cpp:
          (CSSSelector::print):
          (CSSSelector::selectorText):
          * khtml/css/css_base.h:
          (DOM::CSSSelector::CSSSelector):
          (DOM::CSSSelector::hasTag):
          (DOM::CSSSelector::hasAttribute):
          * khtml/css/css_stylesheetimpl.cpp:
          (CSSStyleSheetImpl::determineNamespace):
          * khtml/css/cssparser.cpp:
          (CSSParser::parseContent):
          * khtml/css/cssstyleselector.cpp:
          (khtml::checkPseudoState):
          (khtml::CSSStyleSelector::canShareStyleWithElement):
          (khtml::CSSStyleSelector::checkOneSelector):
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/css/parser.y:
          * khtml/dom/css_stylesheet.cpp:
          * khtml/dom/html_base.cpp:
          * khtml/dom/html_block.cpp:
          * khtml/dom/html_document.cpp:
          * khtml/dom/html_element.cpp:
          * khtml/dom/html_form.cpp:
          * khtml/dom/html_head.cpp:
          * khtml/dom/html_image.cpp:
          * khtml/dom/html_inline.cpp:
          * khtml/dom/html_list.cpp:
          * khtml/dom/html_misc.cpp:
          * khtml/dom/html_object.cpp:
          * khtml/dom/html_table.cpp:
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElement::inputGetter):
          (KJS::HTMLElement::inputSetter):
          * khtml/editing/apply_style_command.cpp:
          (khtml::isStyleSpan):
          (khtml::isEmptyStyleSpan):
          (khtml::isEmptyFontTag):
          (khtml::createFontElement):
          (khtml::createStyleSpanElement):
          (khtml::ApplyStyleCommand::applyRelativeFontStyleChange):
          (khtml::ApplyStyleCommand::removeHTMLFontStyle):
          (khtml::ApplyStyleCommand::applyTextDecorationStyle):
          (khtml::areIdenticalElements):
          (khtml::ApplyStyleCommand::addBlockStyleIfNeeded):
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
          * khtml/editing/composite_edit_command.cpp:
          (khtml::CompositeEditCommand::removeNodeAttribute):
          (khtml::CompositeEditCommand::setNodeAttribute):
          (khtml::CompositeEditCommand::findBlockPlaceholder):
          (khtml::createBlockPlaceholderElement):
          * khtml/editing/composite_edit_command.h:
          * khtml/editing/markup.cpp:
          (khtml::startMarkup):
          (khtml::completeURLs):
          (khtml::createFragmentFromText):
          * khtml/editing/remove_node_attribute_command.cpp:
          (khtml::RemoveNodeAttributeCommand::RemoveNodeAttributeCommand):
          * khtml/editing/remove_node_attribute_command.h:
          (khtml::RemoveNodeAttributeCommand::attribute):
          * khtml/editing/replace_selection_command.cpp:
          (khtml::ReplacementFragment::isInterchangeNewlineNode):
          (khtml::ReplacementFragment::isInterchangeConvertedSpaceSpan):
          * khtml/editing/set_node_attribute_command.cpp:
          (khtml::SetNodeAttributeCommand::SetNodeAttributeCommand):
          * khtml/editing/set_node_attribute_command.h:
          (khtml::SetNodeAttributeCommand::attribute):
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::mapToEntry):
          (HTMLBodyElementImpl::parseMappedAttribute):
          (HTMLBodyElementImpl::insertedIntoDocument):
          (HTMLBodyElementImpl::isURLAttribute):
          (HTMLBodyElementImpl::aLink):
          (HTMLBodyElementImpl::setALink):
          (HTMLBodyElementImpl::background):
          (HTMLBodyElementImpl::setBackground):
          (HTMLBodyElementImpl::bgColor):
          (HTMLBodyElementImpl::setBgColor):
          (HTMLBodyElementImpl::link):
          (HTMLBodyElementImpl::setLink):
          (HTMLBodyElementImpl::text):
          (HTMLBodyElementImpl::setText):
          (HTMLBodyElementImpl::vLink):
          (HTMLBodyElementImpl::setVLink):
          (HTMLFrameElementImpl::parseMappedAttribute):
          (HTMLFrameElementImpl::attach):
          (HTMLFrameElementImpl::isURLAttribute):
          (HTMLFrameElementImpl::frameBorder):
          (HTMLFrameElementImpl::setFrameBorder):
          (HTMLFrameElementImpl::longDesc):
          (HTMLFrameElementImpl::setLongDesc):
          (HTMLFrameElementImpl::marginHeight):
          (HTMLFrameElementImpl::setMarginHeight):
          (HTMLFrameElementImpl::marginWidth):
          (HTMLFrameElementImpl::setMarginWidth):
          (HTMLFrameElementImpl::name):
          (HTMLFrameElementImpl::setName):
          (HTMLFrameElementImpl::setNoResize):
          (HTMLFrameElementImpl::scrolling):
          (HTMLFrameElementImpl::setScrolling):
          (HTMLFrameElementImpl::src):
          (HTMLFrameElementImpl::setSrc):
          (HTMLFrameSetElementImpl::parseMappedAttribute):
          (HTMLFrameSetElementImpl::cols):
          (HTMLFrameSetElementImpl::setCols):
          (HTMLFrameSetElementImpl::rows):
          (HTMLFrameSetElementImpl::setRows):
          (HTMLHeadElementImpl::profile):
          (HTMLHeadElementImpl::setProfile):
          (HTMLHtmlElementImpl::version):
          (HTMLHtmlElementImpl::setVersion):
          (HTMLIFrameElementImpl::mapToEntry):
          (HTMLIFrameElementImpl::parseMappedAttribute):
          (HTMLIFrameElementImpl::attach):
          (HTMLIFrameElementImpl::isURLAttribute):
          (HTMLIFrameElementImpl::align):
          (HTMLIFrameElementImpl::setAlign):
          (HTMLIFrameElementImpl::height):
          (HTMLIFrameElementImpl::setHeight):
          (HTMLIFrameElementImpl::src):
          (HTMLIFrameElementImpl::width):
          (HTMLIFrameElementImpl::setWidth):
          * khtml/html/html_baseimpl.h:
          * khtml/html/html_blockimpl.cpp:
          (HTMLBlockquoteElementImpl::cite):
          (HTMLBlockquoteElementImpl::setCite):
          (HTMLDivElementImpl::mapToEntry):
          (HTMLDivElementImpl::parseMappedAttribute):
          (HTMLDivElementImpl::align):
          (HTMLDivElementImpl::setAlign):
          (HTMLHRElementImpl::mapToEntry):
          (HTMLHRElementImpl::parseMappedAttribute):
          (HTMLHRElementImpl::align):
          (HTMLHRElementImpl::setAlign):
          (HTMLHRElementImpl::noShade):
          (HTMLHRElementImpl::setNoShade):
          (HTMLHRElementImpl::size):
          (HTMLHRElementImpl::setSize):
          (HTMLHRElementImpl::width):
          (HTMLHRElementImpl::setWidth):
          (HTMLHeadingElementImpl::align):
          (HTMLHeadingElementImpl::setAlign):
          (HTMLParagraphElementImpl::mapToEntry):
          (HTMLParagraphElementImpl::parseMappedAttribute):
          (HTMLParagraphElementImpl::align):
          (HTMLParagraphElementImpl::setAlign):
          (HTMLPreElementImpl::width):
          (HTMLPreElementImpl::setWidth):
          (HTMLMarqueeElementImpl::mapToEntry):
          (HTMLMarqueeElementImpl::parseMappedAttribute):
          * khtml/html/html_blockimpl.h:
          * khtml/html/html_canvasimpl.cpp:
          (HTMLCanvasElementImpl::mapToEntry):
          (HTMLCanvasElementImpl::parseMappedAttribute):
          (HTMLCanvasElementImpl::isURLAttribute):
          * khtml/html/html_canvasimpl.h:
          * khtml/html/html_documentimpl.cpp:
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::mapToEntry):
          (HTMLElementImpl::parseMappedAttribute):
          (HTMLElementImpl::setContentEditable):
          (HTMLElementImpl::id):
          (HTMLElementImpl::setId):
          (HTMLElementImpl::title):
          (HTMLElementImpl::setTitle):
          (HTMLElementImpl::lang):
          (HTMLElementImpl::setLang):
          (HTMLElementImpl::dir):
          (HTMLElementImpl::setDir):
          (HTMLElementImpl::className):
          (HTMLElementImpl::setClassName):
          * khtml/html/html_elementimpl.h:
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::parseMappedAttribute):
          (DOM::HTMLFormElementImpl::isURLAttribute):
          (DOM::HTMLFormElementImpl::name):
          (DOM::HTMLFormElementImpl::setName):
          (DOM::HTMLFormElementImpl::acceptCharset):
          (DOM::HTMLFormElementImpl::setAcceptCharset):
          (DOM::HTMLFormElementImpl::action):
          (DOM::HTMLFormElementImpl::setAction):
          (DOM::HTMLFormElementImpl::setEnctype):
          (DOM::HTMLFormElementImpl::method):
          (DOM::HTMLFormElementImpl::setMethod):
          (DOM::HTMLFormElementImpl::target):
          (DOM::HTMLFormElementImpl::setTarget):
          (DOM::HTMLGenericFormElementImpl::parseMappedAttribute):
          (DOM::HTMLGenericFormElementImpl::name):
          (DOM::HTMLGenericFormElementImpl::setName):
          (DOM::HTMLGenericFormElementImpl::setDisabled):
          (DOM::HTMLGenericFormElementImpl::setReadOnly):
          (DOM::HTMLGenericFormElementImpl::tabIndex):
          (DOM::HTMLGenericFormElementImpl::setTabIndex):
          (DOM::HTMLButtonElementImpl::type):
          (DOM::HTMLButtonElementImpl::parseMappedAttribute):
          (DOM::HTMLButtonElementImpl::accessKey):
          (DOM::HTMLButtonElementImpl::setAccessKey):
          (DOM::HTMLButtonElementImpl::value):
          (DOM::HTMLButtonElementImpl::setValue):
          (DOM::HTMLInputElementImpl::setType):
          (DOM::HTMLInputElementImpl::mapToEntry):
          (DOM::HTMLInputElementImpl::parseMappedAttribute):
          (DOM::HTMLInputElementImpl::attach):
          (DOM::HTMLInputElementImpl::altText):
          (DOM::HTMLInputElementImpl::value):
          (DOM::HTMLInputElementImpl::setValue):
          (DOM::HTMLInputElementImpl::isURLAttribute):
          (DOM::HTMLInputElementImpl::defaultValue):
          (DOM::HTMLInputElementImpl::setDefaultValue):
          (DOM::HTMLInputElementImpl::defaultChecked):
          (DOM::HTMLInputElementImpl::setDefaultChecked):
          (DOM::HTMLInputElementImpl::accept):
          (DOM::HTMLInputElementImpl::setAccept):
          (DOM::HTMLInputElementImpl::accessKey):
          (DOM::HTMLInputElementImpl::setAccessKey):
          (DOM::HTMLInputElementImpl::align):
          (DOM::HTMLInputElementImpl::setAlign):
          (DOM::HTMLInputElementImpl::alt):
          (DOM::HTMLInputElementImpl::setAlt):
          (DOM::HTMLInputElementImpl::setMaxLength):
          (DOM::HTMLInputElementImpl::setSize):
          (DOM::HTMLInputElementImpl::src):
          (DOM::HTMLInputElementImpl::setSrc):
          (DOM::HTMLInputElementImpl::useMap):
          (DOM::HTMLInputElementImpl::setUseMap):
          (DOM::HTMLLabelElementImpl::parseMappedAttribute):
          (DOM::HTMLLabelElementImpl::formElement):
          (DOM::HTMLLabelElementImpl::accessKey):
          (DOM::HTMLLabelElementImpl::setAccessKey):
          (DOM::HTMLLabelElementImpl::htmlFor):
          (DOM::HTMLLabelElementImpl::setHtmlFor):
          (DOM::HTMLLegendElementImpl::accessKey):
          (DOM::HTMLLegendElementImpl::setAccessKey):
          (DOM::HTMLLegendElementImpl::align):
          (DOM::HTMLLegendElementImpl::setAlign):
          (DOM::HTMLSelectElementImpl::parseMappedAttribute):
          (DOM::HTMLSelectElementImpl::reset):
          (DOM::HTMLSelectElementImpl::setMultiple):
          (DOM::HTMLSelectElementImpl::setSize):
          (DOM::HTMLKeygenElementImpl::parseMappedAttribute):
          (DOM::HTMLOptGroupElementImpl::label):
          (DOM::HTMLOptGroupElementImpl::setLabel):
          (DOM::HTMLOptionElementImpl::text):
          (DOM::HTMLOptionElementImpl::parseMappedAttribute):
          (DOM::HTMLOptionElementImpl::setValue):
          (DOM::HTMLOptionElementImpl::defaultSelected):
          (DOM::HTMLOptionElementImpl::setDefaultSelected):
          (DOM::HTMLOptionElementImpl::label):
          (DOM::HTMLOptionElementImpl::setLabel):
          (DOM::HTMLTextAreaElementImpl::parseMappedAttribute):
          (DOM::HTMLTextAreaElementImpl::accessKey):
          (DOM::HTMLTextAreaElementImpl::setAccessKey):
          (DOM::HTMLTextAreaElementImpl::setCols):
          (DOM::HTMLTextAreaElementImpl::setRows):
          (DOM::HTMLIsIndexElementImpl::parseMappedAttribute):
          (DOM::HTMLIsIndexElementImpl::prompt):
          (DOM::HTMLIsIndexElementImpl::setPrompt):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_headimpl.cpp:
          (HTMLBaseElementImpl::parseMappedAttribute):
          (HTMLBaseElementImpl::setHref):
          (HTMLBaseElementImpl::setTarget):
          (HTMLLinkElementImpl::parseMappedAttribute):
          (HTMLLinkElementImpl::process):
          (HTMLLinkElementImpl::isURLAttribute):
          (HTMLLinkElementImpl::disabled):
          (HTMLLinkElementImpl::setDisabled):
          (HTMLLinkElementImpl::charset):
          (HTMLLinkElementImpl::setCharset):
          (HTMLLinkElementImpl::href):
          (HTMLLinkElementImpl::setHref):
          (HTMLLinkElementImpl::hreflang):
          (HTMLLinkElementImpl::setHreflang):
          (HTMLLinkElementImpl::media):
          (HTMLLinkElementImpl::setMedia):
          (HTMLLinkElementImpl::rel):
          (HTMLLinkElementImpl::setRel):
          (HTMLLinkElementImpl::rev):
          (HTMLLinkElementImpl::setRev):
          (HTMLLinkElementImpl::target):
          (HTMLLinkElementImpl::setTarget):
          (HTMLLinkElementImpl::type):
          (HTMLLinkElementImpl::setType):
          (HTMLMetaElementImpl::parseMappedAttribute):
          (HTMLMetaElementImpl::content):
          (HTMLMetaElementImpl::setContent):
          (HTMLMetaElementImpl::httpEquiv):
          (HTMLMetaElementImpl::setHttpEquiv):
          (HTMLMetaElementImpl::name):
          (HTMLMetaElementImpl::setName):
          (HTMLMetaElementImpl::scheme):
          (HTMLMetaElementImpl::setScheme):
          (HTMLScriptElementImpl::isURLAttribute):
          (HTMLScriptElementImpl::insertedIntoDocument):
          (HTMLScriptElementImpl::charset):
          (HTMLScriptElementImpl::setCharset):
          (HTMLScriptElementImpl::defer):
          (HTMLScriptElementImpl::setDefer):
          (HTMLScriptElementImpl::src):
          (HTMLScriptElementImpl::setSrc):
          (HTMLScriptElementImpl::type):
          (HTMLScriptElementImpl::setType):
          (HTMLStyleElementImpl::parseMappedAttribute):
          (HTMLStyleElementImpl::disabled):
          (HTMLStyleElementImpl::setDisabled):
          (HTMLStyleElementImpl::media):
          (HTMLStyleElementImpl::setMedia):
          (HTMLStyleElementImpl::type):
          (HTMLStyleElementImpl::setType):
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageLoader::updateFromElement):
          (HTMLImageElementImpl::mapToEntry):
          (HTMLImageElementImpl::parseMappedAttribute):
          (HTMLImageElementImpl::altText):
          (HTMLImageElementImpl::width):
          (HTMLImageElementImpl::height):
          (HTMLImageElementImpl::isURLAttribute):
          (HTMLImageElementImpl::name):
          (HTMLImageElementImpl::setName):
          (HTMLImageElementImpl::align):
          (HTMLImageElementImpl::setAlign):
          (HTMLImageElementImpl::alt):
          (HTMLImageElementImpl::setAlt):
          (HTMLImageElementImpl::border):
          (HTMLImageElementImpl::setBorder):
          (HTMLImageElementImpl::setHeight):
          (HTMLImageElementImpl::hspace):
          (HTMLImageElementImpl::setHspace):
          (HTMLImageElementImpl::isMap):
          (HTMLImageElementImpl::setIsMap):
          (HTMLImageElementImpl::longDesc):
          (HTMLImageElementImpl::setLongDesc):
          (HTMLImageElementImpl::src):
          (HTMLImageElementImpl::setSrc):
          (HTMLImageElementImpl::useMap):
          (HTMLImageElementImpl::setUseMap):
          (HTMLImageElementImpl::vspace):
          (HTMLImageElementImpl::setVspace):
          (HTMLImageElementImpl::setWidth):
          (HTMLMapElementImpl::parseMappedAttribute):
          (HTMLMapElementImpl::name):
          (HTMLMapElementImpl::setName):
          (HTMLAreaElementImpl::parseMappedAttribute):
          (HTMLAreaElementImpl::accessKey):
          (HTMLAreaElementImpl::setAccessKey):
          (HTMLAreaElementImpl::alt):
          (HTMLAreaElementImpl::setAlt):
          (HTMLAreaElementImpl::coords):
          (HTMLAreaElementImpl::setCoords):
          (HTMLAreaElementImpl::href):
          (HTMLAreaElementImpl::setHref):
          (HTMLAreaElementImpl::noHref):
          (HTMLAreaElementImpl::setNoHref):
          (HTMLAreaElementImpl::shape):
          (HTMLAreaElementImpl::setShape):
          (HTMLAreaElementImpl::tabIndex):
          (HTMLAreaElementImpl::setTabIndex):
          (HTMLAreaElementImpl::target):
          (HTMLAreaElementImpl::setTarget):
          * khtml/html/html_imageimpl.h:
          * khtml/html/html_inlineimpl.cpp:
          (DOM::HTMLAnchorElementImpl::defaultEventHandler):
          (DOM::HTMLAnchorElementImpl::parseMappedAttribute):
          (DOM::HTMLAnchorElementImpl::isURLAttribute):
          (DOM::HTMLAnchorElementImpl::accessKey):
          (DOM::HTMLAnchorElementImpl::setAccessKey):
          (DOM::HTMLAnchorElementImpl::charset):
          (DOM::HTMLAnchorElementImpl::setCharset):
          (DOM::HTMLAnchorElementImpl::coords):
          (DOM::HTMLAnchorElementImpl::setCoords):
          (DOM::HTMLAnchorElementImpl::href):
          (DOM::HTMLAnchorElementImpl::setHref):
          (DOM::HTMLAnchorElementImpl::hreflang):
          (DOM::HTMLAnchorElementImpl::setHreflang):
          (DOM::HTMLAnchorElementImpl::name):
          (DOM::HTMLAnchorElementImpl::setName):
          (DOM::HTMLAnchorElementImpl::rel):
          (DOM::HTMLAnchorElementImpl::setRel):
          (DOM::HTMLAnchorElementImpl::rev):
          (DOM::HTMLAnchorElementImpl::setRev):
          (DOM::HTMLAnchorElementImpl::shape):
          (DOM::HTMLAnchorElementImpl::setShape):
          (DOM::HTMLAnchorElementImpl::tabIndex):
          (DOM::HTMLAnchorElementImpl::setTabIndex):
          (DOM::HTMLAnchorElementImpl::target):
          (DOM::HTMLAnchorElementImpl::setTarget):
          (DOM::HTMLAnchorElementImpl::type):
          (DOM::HTMLAnchorElementImpl::setType):
          (DOM::HTMLBRElementImpl::mapToEntry):
          (DOM::HTMLBRElementImpl::parseMappedAttribute):
          (DOM::HTMLBRElementImpl::clear):
          (DOM::HTMLBRElementImpl::setClear):
          (DOM::HTMLFontElementImpl::mapToEntry):
          (DOM::HTMLFontElementImpl::parseMappedAttribute):
          (DOM::HTMLFontElementImpl::color):
          (DOM::HTMLFontElementImpl::setColor):
          (DOM::HTMLFontElementImpl::face):
          (DOM::HTMLFontElementImpl::setFace):
          (DOM::HTMLFontElementImpl::size):
          (DOM::HTMLFontElementImpl::setSize):
          (DOM::HTMLModElementImpl::cite):
          (DOM::HTMLModElementImpl::setCite):
          (DOM::HTMLModElementImpl::dateTime):
          (DOM::HTMLModElementImpl::setDateTime):
          (DOM::HTMLQuoteElementImpl::cite):
          (DOM::HTMLQuoteElementImpl::setCite):
          * khtml/html/html_inlineimpl.h:
          * khtml/html/html_listimpl.cpp:
          (DOM::HTMLUListElementImpl::mapToEntry):
          (DOM::HTMLUListElementImpl::parseMappedAttribute):
          (DOM::HTMLUListElementImpl::compact):
          (DOM::HTMLUListElementImpl::setCompact):
          (DOM::HTMLUListElementImpl::type):
          (DOM::HTMLUListElementImpl::setType):
          (DOM::HTMLDirectoryElementImpl::compact):
          (DOM::HTMLDirectoryElementImpl::setCompact):
          (DOM::HTMLMenuElementImpl::compact):
          (DOM::HTMLMenuElementImpl::setCompact):
          (DOM::HTMLOListElementImpl::mapToEntry):
          (DOM::HTMLOListElementImpl::parseMappedAttribute):
          (DOM::HTMLOListElementImpl::compact):
          (DOM::HTMLOListElementImpl::setCompact):
          (DOM::HTMLOListElementImpl::setStart):
          (DOM::HTMLOListElementImpl::type):
          (DOM::HTMLOListElementImpl::setType):
          (DOM::HTMLLIElementImpl::mapToEntry):
          (DOM::HTMLLIElementImpl::parseMappedAttribute):
          (DOM::HTMLLIElementImpl::type):
          (DOM::HTMLLIElementImpl::setType):
          (DOM::HTMLLIElementImpl::value):
          (DOM::HTMLLIElementImpl::setValue):
          (DOM::HTMLDListElementImpl::compact):
          (DOM::HTMLDListElementImpl::setCompact):
          * khtml/html/html_listimpl.h:
          * khtml/html/html_miscimpl.cpp:
          (DOM::HTMLBaseFontElementImpl::color):
          (DOM::HTMLBaseFontElementImpl::setColor):
          (DOM::HTMLBaseFontElementImpl::face):
          (DOM::HTMLBaseFontElementImpl::setFace):
          (DOM::HTMLBaseFontElementImpl::size):
          (DOM::HTMLBaseFontElementImpl::setSize):
          (DOM::HTMLCollectionImpl::traverseNextItem):
          (DOM::HTMLCollectionImpl::checkForNameMatch):
          (DOM::HTMLCollectionImpl::updateNameCache):
          (DOM::HTMLFormCollectionImpl::getNamedItem):
          (DOM::HTMLFormCollectionImpl::getNamedFormItem):
          (DOM::HTMLFormCollectionImpl::nextNamedItemInternal):
          (DOM::HTMLFormCollectionImpl::namedItem):
          (DOM::HTMLFormCollectionImpl::nextNamedItem):
          (DOM::HTMLFormCollectionImpl::updateNameCache):
          * khtml/html/html_miscimpl.h:
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLAppletElementImpl::mapToEntry):
          (DOM::HTMLAppletElementImpl::parseMappedAttribute):
          (DOM::HTMLAppletElementImpl::rendererIsNeeded):
          (DOM::HTMLAppletElementImpl::createRenderer):
          (DOM::HTMLAppletElementImpl::align):
          (DOM::HTMLAppletElementImpl::setAlign):
          (DOM::HTMLAppletElementImpl::alt):
          (DOM::HTMLAppletElementImpl::setAlt):
          (DOM::HTMLAppletElementImpl::archive):
          (DOM::HTMLAppletElementImpl::setArchive):
          (DOM::HTMLAppletElementImpl::code):
          (DOM::HTMLAppletElementImpl::setCode):
          (DOM::HTMLAppletElementImpl::codeBase):
          (DOM::HTMLAppletElementImpl::setCodeBase):
          (DOM::HTMLAppletElementImpl::height):
          (DOM::HTMLAppletElementImpl::setHeight):
          (DOM::HTMLAppletElementImpl::hspace):
          (DOM::HTMLAppletElementImpl::setHspace):
          (DOM::HTMLAppletElementImpl::name):
          (DOM::HTMLAppletElementImpl::setName):
          (DOM::HTMLAppletElementImpl::object):
          (DOM::HTMLAppletElementImpl::setObject):
          (DOM::HTMLAppletElementImpl::vspace):
          (DOM::HTMLAppletElementImpl::setVspace):
          (DOM::HTMLAppletElementImpl::width):
          (DOM::HTMLAppletElementImpl::setWidth):
          (DOM::HTMLEmbedElementImpl::mapToEntry):
          (DOM::HTMLEmbedElementImpl::parseMappedAttribute):
          (DOM::HTMLEmbedElementImpl::isURLAttribute):
          (DOM::HTMLObjectElementImpl::mapToEntry):
          (DOM::HTMLObjectElementImpl::parseMappedAttribute):
          (DOM::HTMLObjectElementImpl::isURLAttribute):
          (DOM::HTMLObjectElementImpl::code):
          (DOM::HTMLObjectElementImpl::setCode):
          (DOM::HTMLObjectElementImpl::align):
          (DOM::HTMLObjectElementImpl::setAlign):
          (DOM::HTMLObjectElementImpl::archive):
          (DOM::HTMLObjectElementImpl::setArchive):
          (DOM::HTMLObjectElementImpl::border):
          (DOM::HTMLObjectElementImpl::setBorder):
          (DOM::HTMLObjectElementImpl::codeBase):
          (DOM::HTMLObjectElementImpl::setCodeBase):
          (DOM::HTMLObjectElementImpl::codeType):
          (DOM::HTMLObjectElementImpl::setCodeType):
          (DOM::HTMLObjectElementImpl::data):
          (DOM::HTMLObjectElementImpl::setData):
          (DOM::HTMLObjectElementImpl::declare):
          (DOM::HTMLObjectElementImpl::setDeclare):
          (DOM::HTMLObjectElementImpl::height):
          (DOM::HTMLObjectElementImpl::setHeight):
          (DOM::HTMLObjectElementImpl::hspace):
          (DOM::HTMLObjectElementImpl::setHspace):
          (DOM::HTMLObjectElementImpl::name):
          (DOM::HTMLObjectElementImpl::setName):
          (DOM::HTMLObjectElementImpl::standby):
          (DOM::HTMLObjectElementImpl::setStandby):
          (DOM::HTMLObjectElementImpl::tabIndex):
          (DOM::HTMLObjectElementImpl::setTabIndex):
          (DOM::HTMLObjectElementImpl::type):
          (DOM::HTMLObjectElementImpl::setType):
          (DOM::HTMLObjectElementImpl::useMap):
          (DOM::HTMLObjectElementImpl::setUseMap):
          (DOM::HTMLObjectElementImpl::vspace):
          (DOM::HTMLObjectElementImpl::setVspace):
          (DOM::HTMLObjectElementImpl::width):
          (DOM::HTMLObjectElementImpl::setWidth):
          (DOM::HTMLParamElementImpl::parseMappedAttribute):
          (DOM::HTMLParamElementImpl::isURLAttribute):
          (DOM::HTMLParamElementImpl::setName):
          (DOM::HTMLParamElementImpl::type):
          (DOM::HTMLParamElementImpl::setType):
          (DOM::HTMLParamElementImpl::setValue):
          (DOM::HTMLParamElementImpl::valueType):
          (DOM::HTMLParamElementImpl::setValueType):
          * khtml/html/html_objectimpl.h:
          * khtml/html/html_tableimpl.cpp:
          (DOM::HTMLTableElementImpl::mapToEntry):
          (DOM::HTMLTableElementImpl::parseMappedAttribute):
          (DOM::HTMLTableElementImpl::additionalAttributeStyleDecl):
          (DOM::HTMLTableElementImpl::getSharedCellDecl):
          (DOM::HTMLTableElementImpl::isURLAttribute):
          (DOM::HTMLTableElementImpl::align):
          (DOM::HTMLTableElementImpl::setAlign):
          (DOM::HTMLTableElementImpl::bgColor):
          (DOM::HTMLTableElementImpl::setBgColor):
          (DOM::HTMLTableElementImpl::border):
          (DOM::HTMLTableElementImpl::setBorder):
          (DOM::HTMLTableElementImpl::cellPadding):
          (DOM::HTMLTableElementImpl::setCellPadding):
          (DOM::HTMLTableElementImpl::cellSpacing):
          (DOM::HTMLTableElementImpl::setCellSpacing):
          (DOM::HTMLTableElementImpl::frame):
          (DOM::HTMLTableElementImpl::setFrame):
          (DOM::HTMLTableElementImpl::rules):
          (DOM::HTMLTableElementImpl::setRules):
          (DOM::HTMLTableElementImpl::summary):
          (DOM::HTMLTableElementImpl::setSummary):
          (DOM::HTMLTableElementImpl::width):
          (DOM::HTMLTableElementImpl::setWidth):
          (DOM::HTMLTablePartElementImpl::mapToEntry):
          (DOM::HTMLTablePartElementImpl::parseMappedAttribute):
          (DOM::HTMLTableSectionElementImpl::align):
          (DOM::HTMLTableSectionElementImpl::setAlign):
          (DOM::HTMLTableSectionElementImpl::ch):
          (DOM::HTMLTableSectionElementImpl::setCh):
          (DOM::HTMLTableSectionElementImpl::chOff):
          (DOM::HTMLTableSectionElementImpl::setChOff):
          (DOM::HTMLTableSectionElementImpl::vAlign):
          (DOM::HTMLTableSectionElementImpl::setVAlign):
          (DOM::HTMLTableRowElementImpl::align):
          (DOM::HTMLTableRowElementImpl::setAlign):
          (DOM::HTMLTableRowElementImpl::bgColor):
          (DOM::HTMLTableRowElementImpl::setBgColor):
          (DOM::HTMLTableRowElementImpl::ch):
          (DOM::HTMLTableRowElementImpl::setCh):
          (DOM::HTMLTableRowElementImpl::chOff):
          (DOM::HTMLTableRowElementImpl::setChOff):
          (DOM::HTMLTableRowElementImpl::vAlign):
          (DOM::HTMLTableRowElementImpl::setVAlign):
          (DOM::HTMLTableCellElementImpl::mapToEntry):
          (DOM::HTMLTableCellElementImpl::parseMappedAttribute):
          (DOM::HTMLTableCellElementImpl::isURLAttribute):
          (DOM::HTMLTableCellElementImpl::abbr):
          (DOM::HTMLTableCellElementImpl::setAbbr):
          (DOM::HTMLTableCellElementImpl::align):
          (DOM::HTMLTableCellElementImpl::setAlign):
          (DOM::HTMLTableCellElementImpl::axis):
          (DOM::HTMLTableCellElementImpl::setAxis):
          (DOM::HTMLTableCellElementImpl::bgColor):
          (DOM::HTMLTableCellElementImpl::setBgColor):
          (DOM::HTMLTableCellElementImpl::ch):
          (DOM::HTMLTableCellElementImpl::setCh):
          (DOM::HTMLTableCellElementImpl::chOff):
          (DOM::HTMLTableCellElementImpl::setChOff):
          (DOM::HTMLTableCellElementImpl::setColSpan):
          (DOM::HTMLTableCellElementImpl::headers):
          (DOM::HTMLTableCellElementImpl::setHeaders):
          (DOM::HTMLTableCellElementImpl::height):
          (DOM::HTMLTableCellElementImpl::setHeight):
          (DOM::HTMLTableCellElementImpl::noWrap):
          (DOM::HTMLTableCellElementImpl::setNoWrap):
          (DOM::HTMLTableCellElementImpl::setRowSpan):
          (DOM::HTMLTableCellElementImpl::scope):
          (DOM::HTMLTableCellElementImpl::setScope):
          (DOM::HTMLTableCellElementImpl::vAlign):
          (DOM::HTMLTableCellElementImpl::setVAlign):
          (DOM::HTMLTableCellElementImpl::width):
          (DOM::HTMLTableCellElementImpl::setWidth):
          (DOM::HTMLTableColElementImpl::mapToEntry):
          (DOM::HTMLTableColElementImpl::parseMappedAttribute):
          (DOM::HTMLTableColElementImpl::align):
          (DOM::HTMLTableColElementImpl::setAlign):
          (DOM::HTMLTableColElementImpl::ch):
          (DOM::HTMLTableColElementImpl::setCh):
          (DOM::HTMLTableColElementImpl::chOff):
          (DOM::HTMLTableColElementImpl::setChOff):
          (DOM::HTMLTableColElementImpl::setSpan):
          (DOM::HTMLTableColElementImpl::vAlign):
          (DOM::HTMLTableColElementImpl::setVAlign):
          (DOM::HTMLTableColElementImpl::width):
          (DOM::HTMLTableColElementImpl::setWidth):
          (DOM::HTMLTableCaptionElementImpl::mapToEntry):
          (DOM::HTMLTableCaptionElementImpl::parseMappedAttribute):
          (DOM::HTMLTableCaptionElementImpl::align):
          (DOM::HTMLTableCaptionElementImpl::setAlign):
          * khtml/html/html_tableimpl.h:
          * khtml/html/htmlnames.cpp:
          (DOM::HTMLNames::init):
          (DOM::HTMLAttributes::init):
          * khtml/html/htmlnames.h:
          * khtml/html/htmlparser.cpp:
          (HTMLParser::handleError):
          (HTMLParser::framesetCreateErrorCheck):
          (HTMLParser::handleIsindex):
          * khtml/html/htmltokenizer.cpp:
          (khtml::Token::addAttribute):
          (khtml::HTMLTokenizer::HTMLTokenizer):
          (khtml::HTMLTokenizer::parseTag):
          (khtml::HTMLTokenizer::processToken):
          * khtml/html/htmltokenizer.h:
          * khtml/khtml_part.cpp:
          (KHTMLPart::init):
          (KHTMLPart::backgroundURL):
          (KHTMLPart::updateActions):
          (KHTMLPart::handleMouseMoveEventDrag):
          (KHTMLPart::selectionComputedStyle):
          (KHTMLPart::applyEditingStyleToElement):
          (KHTMLPart::removeEditingStyleFromElement):
          * khtml/khtmlview.cpp:
          * khtml/misc/decoder.cpp:
          * khtml/misc/htmlattrs.in: Removed.
          * khtml/misc/htmlhashes.cpp: Removed.
          * khtml/misc/htmlhashes.h: Removed.
          * khtml/misc/htmltags.in: Removed.
          * khtml/misc/makeattrs: Removed.
          * khtml/misc/maketags: Removed.
          * khtml/rendering/render_box.cpp:
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::updateFromElement):
          (RenderSelect::updateFromElement):
          (RenderSlider::updateFromElement):
          (RenderSlider::slotSliderValueChanged):
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget):
          * khtml/rendering/render_object.cpp:
          * khtml/rendering/render_table.cpp:
          (RenderTableCell::calcMinMaxWidth):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createElement):
          (DocumentImpl::importNode):
          (DocumentImpl::createElementNS):
          (DocumentImpl::getElementById):
          (DocumentImpl::getElementByAccessKey):
          (DocumentImpl::prepareMouseEvent):
          (DocumentImpl::recalcStyleSelector):
          (DocumentImpl::createAttributeNS):
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_elementimpl.cpp:
          (AttributeImpl::clone):
          (AttributeImpl::allocateImpl):
          (AttrImpl::AttrImpl):
          (AttrImpl::~AttrImpl):
          (AttrImpl::nodeName):
          (AttrImpl::name):
          (ElementImpl::removeAttribute):
          (ElementImpl::setAttribute):
          (ElementImpl::getAttribute):
          (ElementImpl::getAttributeNS):
          (ElementImpl::createAttribute):
          (ElementImpl::setAttributeMap):
          (ElementImpl::nodeName):
          (ElementImpl::insertedIntoDocument):
          (ElementImpl::removedFromDocument):
          (ElementImpl::openTagStartToString):
          (ElementImpl::dump):
          (ElementImpl::formatForDebugger):
          (ElementImpl::removeAttributeNode):
          (ElementImpl::setAttributeNS):
          (ElementImpl::removeAttributeNS):
          (ElementImpl::getAttributeNodeNS):
          (ElementImpl::hasAttributeNS):
          (NamedAttrMapImpl::getNamedItem):
          (NamedAttrMapImpl::setNamedItem):
          (NamedAttrMapImpl::removeNamedItem):
          (NamedAttrMapImpl::getAttributeItem):
          (NamedAttrMapImpl::clearAttributes):
          (NamedAttrMapImpl::operator=):
          (NamedAttrMapImpl::addAttribute):
          (NamedAttrMapImpl::removeAttribute):
          (StyledElementImpl::getMappedAttributeDecl):
          (StyledElementImpl::setMappedAttributeDecl):
          (StyledElementImpl::removeMappedAttributeDecl):
          (StyledElementImpl::updateStyleAttributeIfNeeded):
          (MappedAttributeImpl::clone):
          (NamedMappedAttrMapImpl::mapsEquivalent):
          (StyledElementImpl::createAttribute):
          (StyledElementImpl::attributeChanged):
          (StyledElementImpl::mapToEntry):
          (StyledElementImpl::parseMappedAttribute):
          * khtml/xml/dom_elementimpl.h:
          (DOM::AttributeImpl::AttributeImpl):
          (DOM::AttributeImpl::value):
          (DOM::AttributeImpl::prefix):
          (DOM::AttributeImpl::localName):
          (DOM::AttributeImpl::namespaceURI):
          (DOM::AttributeImpl::name):
          (DOM::AttributeImpl::attrImpl):
          (DOM::AttributeImpl::isNull):
          (DOM::AttributeImpl::isEmpty):
          (DOM::AttributeImpl::setValue):
          (DOM::AttributeImpl::setPrefix):
          (DOM::NamedAttrMapImpl::insertAttribute):
          (DOM::CSSMappedAttributeDeclarationImpl::CSSMappedAttributeDeclarationImpl):
          (DOM::CSSMappedAttributeDeclarationImpl::setMappedState):
          (DOM::MappedAttributeImpl::MappedAttributeImpl):
          (DOM::StyledElementImpl::isMappedAttribute):
          * khtml/xml/dom_nodeimpl.cpp:
          (DOM::NodeImpl::namespaceURI):
          (DOM::appendAttributeDesc):
          (DOM::NodeImpl::showNode):
          (DOM::NameNodeListImpl::nodeMatches):
          (DOM::NamedNodeMapImpl::getNamedItemNS):
          (DOM::NamedNodeMapImpl::removeNamedItemNS):
          * khtml/xml/dom_nodeimpl.h:
          * khtml/xml/dom_qname.cpp:
          (DOM::QualifiedName::toString):
          (DOM::QualifiedName::init):
          * khtml/xml/dom_qname.h:
          (DOM::anyQName):
          * khtml/xml/dom_textimpl.cpp:
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::XMLTokenizer::startElement):
          (khtml::XMLTokenizer::insertErrorMessageBlock):
          (khtml::XMLTokenizer::executeScripts):
          * kwq/DOMHTML.h:
          * kwq/DOMHTML.mm:
          (-[DOMHTMLElement idName]):
          (-[DOMHTMLElement setIdName:]):
          (-[DOMHTMLElement title]):
          (-[DOMHTMLElement setTitle:]):
          (-[DOMHTMLElement lang]):
          (-[DOMHTMLElement setLang:]):
          (-[DOMHTMLElement dir]):
          (-[DOMHTMLElement setDir:]):
          (-[DOMHTMLElement className]):
          (-[DOMHTMLElement setClassName:]):
          (-[DOMHTMLHtmlElement version]):
          (-[DOMHTMLHtmlElement setVersion:]):
          (-[DOMHTMLHeadElement profile]):
          (-[DOMHTMLHeadElement setProfile:]):
          (-[DOMHTMLLinkElement disabled]):
          (-[DOMHTMLLinkElement setDisabled:]):
          (-[DOMHTMLLinkElement charset]):
          (-[DOMHTMLLinkElement setCharset:]):
          (-[DOMHTMLLinkElement setHref:]):
          (-[DOMHTMLLinkElement hreflang]):
          (-[DOMHTMLLinkElement setHreflang:]):
          (-[DOMHTMLLinkElement media]):
          (-[DOMHTMLLinkElement setMedia:]):
          (-[DOMHTMLLinkElement rel]):
          (-[DOMHTMLLinkElement setRel:]):
          (-[DOMHTMLLinkElement rev]):
          (-[DOMHTMLLinkElement setRev:]):
          (-[DOMHTMLLinkElement target]):
          (-[DOMHTMLLinkElement setTarget:]):
          (-[DOMHTMLLinkElement type]):
          (-[DOMHTMLLinkElement setType:]):
          (-[DOMHTMLTitleElement text]):
          (-[DOMHTMLTitleElement setText:]):
          (-[DOMHTMLMetaElement content]):
          (-[DOMHTMLMetaElement setContent:]):
          (-[DOMHTMLMetaElement httpEquiv]):
          (-[DOMHTMLMetaElement setHttpEquiv:]):
          (-[DOMHTMLMetaElement name]):
          (-[DOMHTMLMetaElement setName:]):
          (-[DOMHTMLMetaElement scheme]):
          (-[DOMHTMLMetaElement setScheme:]):
          (-[DOMHTMLBaseElement setHref:]):
          (-[DOMHTMLBaseElement target]):
          (-[DOMHTMLBaseElement setTarget:]):
          (-[DOMHTMLStyleElement disabled]):
          (-[DOMHTMLStyleElement setDisabled:]):
          (-[DOMHTMLStyleElement media]):
          (-[DOMHTMLStyleElement setMedia:]):
          (-[DOMHTMLStyleElement type]):
          (-[DOMHTMLStyleElement setType:]):
          (-[DOMHTMLBodyElement aLink]):
          (-[DOMHTMLBodyElement setALink:]):
          (-[DOMHTMLBodyElement background]):
          (-[DOMHTMLBodyElement setBackground:]):
          (-[DOMHTMLBodyElement bgColor]):
          (-[DOMHTMLBodyElement setBgColor:]):
          (-[DOMHTMLBodyElement link]):
          (-[DOMHTMLBodyElement setLink:]):
          (-[DOMHTMLBodyElement text]):
          (-[DOMHTMLBodyElement setText:]):
          (-[DOMHTMLBodyElement vLink]):
          (-[DOMHTMLBodyElement setVLink:]):
          (-[DOMHTMLFormElement name]):
          (-[DOMHTMLFormElement setName:]):
          (-[DOMHTMLFormElement acceptCharset]):
          (-[DOMHTMLFormElement setAcceptCharset:]):
          (-[DOMHTMLFormElement action]):
          (-[DOMHTMLFormElement setAction:]):
          (-[DOMHTMLFormElement enctype]):
          (-[DOMHTMLFormElement setEnctype:]):
          (-[DOMHTMLFormElement method]):
          (-[DOMHTMLFormElement setMethod:]):
          (-[DOMHTMLFormElement target]):
          (-[DOMHTMLFormElement setTarget:]):
          (-[DOMHTMLIsIndexElement prompt]):
          (-[DOMHTMLIsIndexElement setPrompt:]):
          (-[DOMHTMLSelectElement disabled]):
          (-[DOMHTMLSelectElement setDisabled:]):
          (-[DOMHTMLSelectElement multiple]):
          (-[DOMHTMLSelectElement setMultiple:]):
          (-[DOMHTMLSelectElement size]):
          (-[DOMHTMLSelectElement setSize:]):
          (-[DOMHTMLOptGroupElement disabled]):
          (-[DOMHTMLOptGroupElement setDisabled:]):
          (-[DOMHTMLOptGroupElement label]):
          (-[DOMHTMLOptGroupElement setLabel:]):
          (-[DOMHTMLOptionElement defaultSelected]):
          (-[DOMHTMLOptionElement setDefaultSelected:]):
          (-[DOMHTMLOptionElement disabled]):
          (-[DOMHTMLOptionElement setDisabled:]):
          (-[DOMHTMLOptionElement label]):
          (-[DOMHTMLOptionElement setLabel:]):
          (-[DOMHTMLInputElement defaultValue]):
          (-[DOMHTMLInputElement setDefaultValue:]):
          (-[DOMHTMLInputElement defaultChecked]):
          (-[DOMHTMLInputElement setDefaultChecked:]):
          (-[DOMHTMLInputElement accept]):
          (-[DOMHTMLInputElement setAccept:]):
          (-[DOMHTMLInputElement accessKey]):
          (-[DOMHTMLInputElement setAccessKey:]):
          (-[DOMHTMLInputElement align]):
          (-[DOMHTMLInputElement setAlign:]):
          (-[DOMHTMLInputElement alt]):
          (-[DOMHTMLInputElement setAlt:]):
          (-[DOMHTMLInputElement disabled]):
          (-[DOMHTMLInputElement setDisabled:]):
          (-[DOMHTMLInputElement maxLength]):
          (-[DOMHTMLInputElement setMaxLength:]):
          (-[DOMHTMLInputElement readOnly]):
          (-[DOMHTMLInputElement setReadOnly:]):
          (-[DOMHTMLInputElement size]):
          (-[DOMHTMLInputElement setSize:]):
          (-[DOMHTMLInputElement setSrc:]):
          (-[DOMHTMLInputElement useMap]):
          (-[DOMHTMLInputElement setUseMap:]):
          (-[DOMHTMLTextAreaElement accessKey]):
          (-[DOMHTMLTextAreaElement setAccessKey:]):
          (-[DOMHTMLTextAreaElement cols]):
          (-[DOMHTMLTextAreaElement setCols:]):
          (-[DOMHTMLTextAreaElement disabled]):
          (-[DOMHTMLTextAreaElement setDisabled:]):
          (-[DOMHTMLTextAreaElement readOnly]):
          (-[DOMHTMLTextAreaElement setReadOnly:]):
          (-[DOMHTMLTextAreaElement rows]):
          (-[DOMHTMLTextAreaElement setRows:]):
          (-[DOMHTMLButtonElement accessKey]):
          (-[DOMHTMLButtonElement setAccessKey:]):
          (-[DOMHTMLButtonElement disabled]):
          (-[DOMHTMLButtonElement setDisabled:]):
          (-[DOMHTMLButtonElement value]):
          (-[DOMHTMLButtonElement setValue:]):
          (-[DOMHTMLLabelElement accessKey]):
          (-[DOMHTMLLabelElement setAccessKey:]):
          (-[DOMHTMLLabelElement htmlFor]):
          (-[DOMHTMLLabelElement setHtmlFor:]):
          (-[DOMHTMLLegendElement accessKey]):
          (-[DOMHTMLLegendElement setAccessKey:]):
          (-[DOMHTMLLegendElement align]):
          (-[DOMHTMLLegendElement setAlign:]):
          (-[DOMHTMLUListElement compact]):
          (-[DOMHTMLUListElement setCompact:]):
          (-[DOMHTMLUListElement type]):
          (-[DOMHTMLUListElement setType:]):
          (-[DOMHTMLOListElement compact]):
          (-[DOMHTMLOListElement setCompact:]):
          (-[DOMHTMLOListElement start]):
          (-[DOMHTMLOListElement setStart:]):
          (-[DOMHTMLOListElement type]):
          (-[DOMHTMLOListElement setType:]):
          (-[DOMHTMLDListElement compact]):
          (-[DOMHTMLDListElement setCompact:]):
          (-[DOMHTMLDirectoryElement compact]):
          (-[DOMHTMLDirectoryElement setCompact:]):
          (-[DOMHTMLMenuElement compact]):
          (-[DOMHTMLMenuElement setCompact:]):
          (-[DOMHTMLLIElement type]):
          (-[DOMHTMLLIElement setType:]):
          (-[DOMHTMLLIElement value]):
          (-[DOMHTMLLIElement setValue:]):
          (-[DOMHTMLQuoteElement cite]):
          (-[DOMHTMLQuoteElement setCite:]):
          (-[DOMHTMLDivElement align]):
          (-[DOMHTMLDivElement setAlign:]):
          (-[DOMHTMLParagraphElement align]):
          (-[DOMHTMLParagraphElement setAlign:]):
          (-[DOMHTMLHeadingElement align]):
          (-[DOMHTMLHeadingElement setAlign:]):
          (-[DOMHTMLPreElement width]):
          (-[DOMHTMLPreElement setWidth:]):
          (-[DOMHTMLBRElement clear]):
          (-[DOMHTMLBRElement setClear:]):
          (-[DOMHTMLBaseFontElement color]):
          (-[DOMHTMLBaseFontElement setColor:]):
          (-[DOMHTMLBaseFontElement face]):
          (-[DOMHTMLBaseFontElement setFace:]):
          (-[DOMHTMLBaseFontElement size]):
          (-[DOMHTMLBaseFontElement setSize:]):
          (-[DOMHTMLFontElement color]):
          (-[DOMHTMLFontElement setColor:]):
          (-[DOMHTMLFontElement face]):
          (-[DOMHTMLFontElement setFace:]):
          (-[DOMHTMLFontElement size]):
          (-[DOMHTMLFontElement setSize:]):
          (-[DOMHTMLHRElement align]):
          (-[DOMHTMLHRElement setAlign:]):
          (-[DOMHTMLHRElement noShade]):
          (-[DOMHTMLHRElement setNoShade:]):
          (-[DOMHTMLHRElement size]):
          (-[DOMHTMLHRElement setSize:]):
          (-[DOMHTMLHRElement width]):
          (-[DOMHTMLHRElement setWidth:]):
          (-[DOMHTMLModElement cite]):
          (-[DOMHTMLModElement setCite:]):
          (-[DOMHTMLModElement dateTime]):
          (-[DOMHTMLModElement setDateTime:]):
          (-[DOMHTMLAnchorElement accessKey]):
          (-[DOMHTMLAnchorElement setAccessKey:]):
          (-[DOMHTMLAnchorElement charset]):
          (-[DOMHTMLAnchorElement setCharset:]):
          (-[DOMHTMLAnchorElement coords]):
          (-[DOMHTMLAnchorElement setCoords:]):
          (-[DOMHTMLAnchorElement setHref:]):
          (-[DOMHTMLAnchorElement hreflang]):
          (-[DOMHTMLAnchorElement setHreflang:]):
          (-[DOMHTMLAnchorElement name]):
          (-[DOMHTMLAnchorElement setName:]):
          (-[DOMHTMLAnchorElement rel]):
          (-[DOMHTMLAnchorElement setRel:]):
          (-[DOMHTMLAnchorElement rev]):
          (-[DOMHTMLAnchorElement setRev:]):
          (-[DOMHTMLAnchorElement shape]):
          (-[DOMHTMLAnchorElement setShape:]):
          (-[DOMHTMLAnchorElement tabIndex]):
          (-[DOMHTMLAnchorElement setTabIndex:]):
          (-[DOMHTMLAnchorElement target]):
          (-[DOMHTMLAnchorElement setTarget:]):
          (-[DOMHTMLAnchorElement type]):
          (-[DOMHTMLAnchorElement setType:]):
          (-[DOMHTMLImageElement name]):
          (-[DOMHTMLImageElement setName:]):
          (-[DOMHTMLImageElement align]):
          (-[DOMHTMLImageElement setAlign:]):
          (-[DOMHTMLImageElement alt]):
          (-[DOMHTMLImageElement setAlt:]):
          (-[DOMHTMLImageElement border]):
          (-[DOMHTMLImageElement setBorder:]):
          (-[DOMHTMLImageElement height]):
          (-[DOMHTMLImageElement setHeight:]):
          (-[DOMHTMLImageElement hspace]):
          (-[DOMHTMLImageElement setHspace:]):
          (-[DOMHTMLImageElement isMap]):
          (-[DOMHTMLImageElement setIsMap:]):
          (-[DOMHTMLImageElement longDesc]):
          (-[DOMHTMLImageElement setLongDesc:]):
          (-[DOMHTMLImageElement setSrc:]):
          (-[DOMHTMLImageElement useMap]):
          (-[DOMHTMLImageElement setUseMap:]):
          (-[DOMHTMLImageElement vspace]):
          (-[DOMHTMLImageElement setVspace:]):
          (-[DOMHTMLImageElement width]):
          (-[DOMHTMLImageElement setWidth:]):
          (-[DOMHTMLObjectElement code]):
          (-[DOMHTMLObjectElement setCode:]):
          (-[DOMHTMLObjectElement align]):
          (-[DOMHTMLObjectElement setAlign:]):
          (-[DOMHTMLObjectElement archive]):
          (-[DOMHTMLObjectElement setArchive:]):
          (-[DOMHTMLObjectElement border]):
          (-[DOMHTMLObjectElement setBorder:]):
          (-[DOMHTMLObjectElement codeBase]):
          (-[DOMHTMLObjectElement setCodeBase:]):
          (-[DOMHTMLObjectElement codeType]):
          (-[DOMHTMLObjectElement setCodeType:]):
          (-[DOMHTMLObjectElement data]):
          (-[DOMHTMLObjectElement setData:]):
          (-[DOMHTMLObjectElement declare]):
          (-[DOMHTMLObjectElement setDeclare:]):
          (-[DOMHTMLObjectElement height]):
          (-[DOMHTMLObjectElement setHeight:]):
          (-[DOMHTMLObjectElement hspace]):
          (-[DOMHTMLObjectElement setHspace:]):
          (-[DOMHTMLObjectElement name]):
          (-[DOMHTMLObjectElement setName:]):
          (-[DOMHTMLObjectElement standby]):
          (-[DOMHTMLObjectElement setStandby:]):
          (-[DOMHTMLObjectElement tabIndex]):
          (-[DOMHTMLObjectElement setTabIndex:]):
          (-[DOMHTMLObjectElement type]):
          (-[DOMHTMLObjectElement setType:]):
          (-[DOMHTMLObjectElement useMap]):
          (-[DOMHTMLObjectElement setUseMap:]):
          (-[DOMHTMLObjectElement vspace]):
          (-[DOMHTMLObjectElement setVspace:]):
          (-[DOMHTMLObjectElement width]):
          (-[DOMHTMLObjectElement setWidth:]):
          (-[DOMHTMLParamElement name]):
          (-[DOMHTMLParamElement setName:]):
          (-[DOMHTMLParamElement type]):
          (-[DOMHTMLParamElement setType:]):
          (-[DOMHTMLParamElement value]):
          (-[DOMHTMLParamElement setValue:]):
          (-[DOMHTMLParamElement valueType]):
          (-[DOMHTMLParamElement setValueType:]):
          (-[DOMHTMLAppletElement align]):
          (-[DOMHTMLAppletElement setAlign:]):
          (-[DOMHTMLAppletElement alt]):
          (-[DOMHTMLAppletElement setAlt:]):
          (-[DOMHTMLAppletElement archive]):
          (-[DOMHTMLAppletElement setArchive:]):
          (-[DOMHTMLAppletElement code]):
          (-[DOMHTMLAppletElement setCode:]):
          (-[DOMHTMLAppletElement codeBase]):
          (-[DOMHTMLAppletElement setCodeBase:]):
          (-[DOMHTMLAppletElement height]):
          (-[DOMHTMLAppletElement setHeight:]):
          (-[DOMHTMLAppletElement hspace]):
          (-[DOMHTMLAppletElement setHspace:]):
          (-[DOMHTMLAppletElement name]):
          (-[DOMHTMLAppletElement setName:]):
          (-[DOMHTMLAppletElement object]):
          (-[DOMHTMLAppletElement setObject:]):
          (-[DOMHTMLAppletElement vspace]):
          (-[DOMHTMLAppletElement setVspace:]):
          (-[DOMHTMLAppletElement width]):
          (-[DOMHTMLAppletElement setWidth:]):
          (-[DOMHTMLMapElement name]):
          (-[DOMHTMLMapElement setName:]):
          (-[DOMHTMLAreaElement accessKey]):
          (-[DOMHTMLAreaElement setAccessKey:]):
          (-[DOMHTMLAreaElement alt]):
          (-[DOMHTMLAreaElement setAlt:]):
          (-[DOMHTMLAreaElement coords]):
          (-[DOMHTMLAreaElement setCoords:]):
          (-[DOMHTMLAreaElement setHref:]):
          (-[DOMHTMLAreaElement noHref]):
          (-[DOMHTMLAreaElement setNoHref:]):
          (-[DOMHTMLAreaElement shape]):
          (-[DOMHTMLAreaElement setShape:]):
          (-[DOMHTMLAreaElement tabIndex]):
          (-[DOMHTMLAreaElement setTabIndex:]):
          (-[DOMHTMLAreaElement target]):
          (-[DOMHTMLAreaElement setTarget:]):
          (-[DOMHTMLScriptElement text]):
          (-[DOMHTMLScriptElement setText:]):
          (-[DOMHTMLScriptElement charset]):
          (-[DOMHTMLScriptElement setCharset:]):
          (-[DOMHTMLScriptElement defer]):
          (-[DOMHTMLScriptElement setDefer:]):
          (-[DOMHTMLScriptElement src]):
          (-[DOMHTMLScriptElement setSrc:]):
          (-[DOMHTMLScriptElement type]):
          (-[DOMHTMLScriptElement setType:]):
          (-[DOMHTMLTableCaptionElement align]):
          (-[DOMHTMLTableCaptionElement setAlign:]):
          (-[DOMHTMLTableSectionElement align]):
          (-[DOMHTMLTableSectionElement setAlign:]):
          (-[DOMHTMLTableSectionElement ch]):
          (-[DOMHTMLTableSectionElement setCh:]):
          (-[DOMHTMLTableSectionElement chOff]):
          (-[DOMHTMLTableSectionElement setChOff:]):
          (-[DOMHTMLTableSectionElement vAlign]):
          (-[DOMHTMLTableSectionElement setVAlign:]):
          (-[DOMHTMLTableElement align]):
          (-[DOMHTMLTableElement setAlign:]):
          (-[DOMHTMLTableElement bgColor]):
          (-[DOMHTMLTableElement setBgColor:]):
          (-[DOMHTMLTableElement border]):
          (-[DOMHTMLTableElement setBorder:]):
          (-[DOMHTMLTableElement cellPadding]):
          (-[DOMHTMLTableElement setCellPadding:]):
          (-[DOMHTMLTableElement cellSpacing]):
          (-[DOMHTMLTableElement setCellSpacing:]):
          (-[DOMHTMLTableElement frameBorders]):
          (-[DOMHTMLTableElement setFrameBorders:]):
          (-[DOMHTMLTableElement rules]):
          (-[DOMHTMLTableElement setRules:]):
          (-[DOMHTMLTableElement summary]):
          (-[DOMHTMLTableElement setSummary:]):
          (-[DOMHTMLTableElement width]):
          (-[DOMHTMLTableElement setWidth:]):
          (-[DOMHTMLTableColElement align]):
          (-[DOMHTMLTableColElement setAlign:]):
          (-[DOMHTMLTableColElement ch]):
          (-[DOMHTMLTableColElement setCh:]):
          (-[DOMHTMLTableColElement chOff]):
          (-[DOMHTMLTableColElement setChOff:]):
          (-[DOMHTMLTableColElement span]):
          (-[DOMHTMLTableColElement setSpan:]):
          (-[DOMHTMLTableColElement vAlign]):
          (-[DOMHTMLTableColElement setVAlign:]):
          (-[DOMHTMLTableColElement width]):
          (-[DOMHTMLTableColElement setWidth:]):
          (-[DOMHTMLTableRowElement align]):
          (-[DOMHTMLTableRowElement setAlign:]):
          (-[DOMHTMLTableRowElement bgColor]):
          (-[DOMHTMLTableRowElement setBgColor:]):
          (-[DOMHTMLTableRowElement ch]):
          (-[DOMHTMLTableRowElement setCh:]):
          (-[DOMHTMLTableRowElement chOff]):
          (-[DOMHTMLTableRowElement setChOff:]):
          (-[DOMHTMLTableRowElement vAlign]):
          (-[DOMHTMLTableRowElement setVAlign:]):
          (-[DOMHTMLTableCellElement abbr]):
          (-[DOMHTMLTableCellElement setAbbr:]):
          (-[DOMHTMLTableCellElement align]):
          (-[DOMHTMLTableCellElement setAlign:]):
          (-[DOMHTMLTableCellElement axis]):
          (-[DOMHTMLTableCellElement setAxis:]):
          (-[DOMHTMLTableCellElement bgColor]):
          (-[DOMHTMLTableCellElement setBgColor:]):
          (-[DOMHTMLTableCellElement ch]):
          (-[DOMHTMLTableCellElement setCh:]):
          (-[DOMHTMLTableCellElement chOff]):
          (-[DOMHTMLTableCellElement setChOff:]):
          (-[DOMHTMLTableCellElement colSpan]):
          (-[DOMHTMLTableCellElement setColSpan:]):
          (-[DOMHTMLTableCellElement headers]):
          (-[DOMHTMLTableCellElement setHeaders:]):
          (-[DOMHTMLTableCellElement height]):
          (-[DOMHTMLTableCellElement setHeight:]):
          (-[DOMHTMLTableCellElement noWrap]):
          (-[DOMHTMLTableCellElement setNoWrap:]):
          (-[DOMHTMLTableCellElement rowSpan]):
          (-[DOMHTMLTableCellElement setRowSpan:]):
          (-[DOMHTMLTableCellElement scope]):
          (-[DOMHTMLTableCellElement setScope:]):
          (-[DOMHTMLTableCellElement vAlign]):
          (-[DOMHTMLTableCellElement setVAlign:]):
          (-[DOMHTMLTableCellElement width]):
          (-[DOMHTMLTableCellElement setWidth:]):
          (-[DOMHTMLFrameSetElement rows]):
          (-[DOMHTMLFrameSetElement setRows:]):
          (-[DOMHTMLFrameSetElement cols]):
          (-[DOMHTMLFrameSetElement setCols:]):
          (-[DOMHTMLFrameElement frameBorder]):
          (-[DOMHTMLFrameElement setFrameBorder:]):
          (-[DOMHTMLFrameElement longDesc]):
          (-[DOMHTMLFrameElement setLongDesc:]):
          (-[DOMHTMLFrameElement marginHeight]):
          (-[DOMHTMLFrameElement setMarginHeight:]):
          (-[DOMHTMLFrameElement marginWidth]):
          (-[DOMHTMLFrameElement setMarginWidth:]):
          (-[DOMHTMLFrameElement name]):
          (-[DOMHTMLFrameElement setName:]):
          (-[DOMHTMLFrameElement noResize]):
          (-[DOMHTMLFrameElement setNoResize:]):
          (-[DOMHTMLFrameElement scrolling]):
          (-[DOMHTMLFrameElement setScrolling:]):
          (-[DOMHTMLFrameElement src]):
          (-[DOMHTMLFrameElement setSrc:]):
          (-[DOMHTMLIFrameElement align]):
          (-[DOMHTMLIFrameElement setAlign:]):
          (-[DOMHTMLIFrameElement frameBorder]):
          (-[DOMHTMLIFrameElement setFrameBorder:]):
          (-[DOMHTMLIFrameElement height]):
          (-[DOMHTMLIFrameElement setHeight:]):
          (-[DOMHTMLIFrameElement longDesc]):
          (-[DOMHTMLIFrameElement setLongDesc:]):
          (-[DOMHTMLIFrameElement marginHeight]):
          (-[DOMHTMLIFrameElement setMarginHeight:]):
          (-[DOMHTMLIFrameElement marginWidth]):
          (-[DOMHTMLIFrameElement setMarginWidth:]):
          (-[DOMHTMLIFrameElement name]):
          (-[DOMHTMLIFrameElement setName:]):
          (-[DOMHTMLIFrameElement noResize]):
          (-[DOMHTMLIFrameElement setNoResize:]):
          (-[DOMHTMLIFrameElement scrolling]):
          (-[DOMHTMLIFrameElement setScrolling:]):
          (-[DOMHTMLIFrameElement src]):
          (-[DOMHTMLIFrameElement setSrc:]):
          (-[DOMHTMLIFrameElement width]):
          (-[DOMHTMLIFrameElement setWidth:]):
          (-[DOMHTMLEmbedElement align]):
          (-[DOMHTMLEmbedElement setAlign:]):
          (-[DOMHTMLEmbedElement height]):
          (-[DOMHTMLEmbedElement setHeight:]):
          (-[DOMHTMLEmbedElement name]):
          (-[DOMHTMLEmbedElement setName:]):
          (-[DOMHTMLEmbedElement src]):
          (-[DOMHTMLEmbedElement setSrc:]):
          (-[DOMHTMLEmbedElement type]):
          (-[DOMHTMLEmbedElement setType:]):
          (-[DOMHTMLEmbedElement width]):
          (-[DOMHTMLEmbedElement setWidth:]):
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject helpText]):
          (-[KWQAccObject accessibilityDescription]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::matchLabelsAgainstElement):
          (KWQKHTMLPart::fileWrapperForElement):
          (KWQKHTMLPart::attributedString):
          (KWQKHTMLPart::styleForSelectionStart):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge elementAtPoint:]):
  
  2005-07-18  David Harrison  <harrison at apple.com>
  
          Reviewed by Justin.
  
          <rdar://problem/4065343> Mail: Deleting a line sometimes makes the insertion point jump to the top of the message
          
          Test cases added: delete-br-011.html
  
          * khtml/editing/delete_selection_command.cpp:
          (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete):
          Make sure m_endingSelection is usable.
          
          (khtml::DeleteSelectionCommand::doApply):
          Skip general delete related code when just doing handleSpecialCaseBRDelete().
          
          * layout-tests/editing/deleting/delete-br-011-expected.txt: Added.
          * layout-tests/editing/deleting/delete-br-011.html: Added.
          Mimics composing a Mail.app reply, clicking past the end of the content, and hitting delete key.
  
  2005-07-15  Adele Peterson  <adele at apple.com>
  
          Written by Anders Carlsson  <andersca at mac.com>
          Reviewed by Dave Hyatt.
  
  	- Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3653>
  	
          Test cases added:
  	layout-tests/fast/dom/createDocumentType.html: Added
  	layout-tests/fast/dom/createDocumentType-expected.txt: Added
  
          * khtml/xml/dom_nodeimpl.cpp: (DocumentPtr::nullDocumentPtr):
          * khtml/xml/dom_nodeimpl.h:
  	Add nullDocumentPtr() function which returns a shared DocumentPtr
  	object whose document always is 0.
  	
          * khtml/xml/dom_docimpl.cpp: (DOMImplementationImpl::createDocumentType):
  	Pass nullDocumentPtr as the document type's document.
  
  2005-07-15  Adele Peterson  <adele at apple.com>
  
          Written by Anders Carlsson  <andersca at mac.com>
          Reviewed by Maciej Stachowiak.
  
  	- Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3808>
  
          Test cases added:
  	* layout-tests/fast/js/location-assign.html: Added.
  	* layout-tests/fast/js/location-assign-expected.txt: Added.
  	* layout-tests/fast/js/resources/new-location.html: Added.
  
          * khtml/ecma/kjs_window.cpp:
          (KJS::Location::get):
          (KJS::LocationFunc::tryCall):
          * khtml/ecma/kjs_window.h: (KJS::Location::): Implement location.assign.
  
  2005-07-15  Adele Peterson  <adele at apple.com>
  
          Updated layout tests for formatting changes from change for
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3601
  
          * layout-tests/fast/dom/outerText-no-element-expected.txt:
          * layout-tests/fast/dynamic/outerHTML-no-element-expected.txt:
          * layout-tests/fast/js/array-every-expected.txt:
          * layout-tests/fast/js/array-foreach-expected.txt:
          * layout-tests/fast/js/array-some-expected.txt:
          * layout-tests/fast/js/toString-stack-overflow-expected.txt:
  
  2005-07-15  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Adele
  
  	Fixed: http://bugzilla.opendarwin.org/show_bug.cgi?id=4009
          Test cases added: none, doesn't affect layout
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::scheduleLocationChange): Corrected an earlier mistake of testing an always non-zero constant. 
  
  2005-07-14  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken Kocienda (setFocusNode) and Dave Hyatt (everything).
  
          - WebCore part of fix for: 
          <rdar://problem/4181227> webpages incorrectly use standard instead of secondary highlighting in certain cases
  
          Test cases added: none, doesn't affect layout
          
          There were two different problems leading to the same symptom, both of which needed to be fixed.
          The first problem was that ancient and unneeded code in setFocusNode(0) was setting the focus 
          to the enclosing WebHTMLView. The second problem was that the WebHTMLView didn't learn about
          form controls resigning first-responder-hood, and so didn't update the displayed focus state.
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::setFocusNode):
          Removed a line of code that was setting the focus on the WebHTMLView whenever a form control
          lost focus. This doesn't make sense in a world where the focus might be moving to something
          outside of the web page entirely. This line of code was added ages ago to fix Radar 3037974,
          which is not reproducible anymore with this line of code removed.
          
          * kwq/WebCoreBridge.h:
          New bridge method -formControlIsResigningFirstResponder:, used to inform WebKit that a form
          control is losing first-responder-hood.
  
          * kwq/KWQButton.mm:
          (-[KWQButton resignFirstResponder]):
          call formControlIsResigningFirstResponder:
  
          * kwq/KWQComboBox.mm:
          (-[KWQPopUpButton resignFirstResponder]):
          ditto
          
          * kwq/KWQListBox.mm:
          (-[KWQTableView resignFirstResponder]):
          ditto
          
          * kwq/KWQSlider.mm:
          (-[KWQSlider resignFirstResponder]):
          ditto
          
          * kwq/KWQTextArea.mm:
          (-[KWQTextAreaTextView resignFirstResponder]):
          ditto
          
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldController setHasFocus:]):
          ditto
  
  2005-07-14  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken Kocienda.
          
          - fixed <rdar://problem/4181227> webpages incorrectly use standard instead of secondary highlighting in certain cases
  
          Test cases added: none, doesn't affect layout
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::setFocusNode):
          Removed a line of code that was setting the focus on the WebHTMLView whenever a form control
          lost focus. This doesn't make sense in a world where the focus might be moving to something
          outside of the web page entirely. This line of code was added ages ago to fix Radar 3037974,
          which is not reproducible anymore with this line of code removed.
  
  2005-07-12  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by mjs
  
          - Fixes <rdar://problem/4124326> [RTL] Lines in messages with Hebrew text and numbers are truncated by Tiger Mail 
          
          Mail sends plaintext when a message doesn't have any formatting, plaintext depends on 
          innertext, which depends on TextIterators.  A TextIterator iterates over text boxes 
          in render order, but assumes logical order, which was causing the problems.
  
          Test cases added:
          * layout-tests/fast/text/international/bidi-innertext-expected.txt: Added.
          * layout-tests/fast/text/international/bidi-innertext.html: Added.
  
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::handleTextNode):
              If the text node contains reversed text, sort the text boxes (m_sortedTextBoxes).  
              Not all reversed text will be out of logical order, but this simple check is less expensive 
              than doing an exhaustive one.  Most text is LTR and an exhaustive check might hurt performance.
          (khtml::TextIterator::handleTextBox):
              Iterates over sorted text boxes when necessary
          * khtml/editing/visible_text.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::RenderText):
          (RenderText::position):
              If asked to position a text box with reversed text, modify m_containsReversedText
          * khtml/rendering/render_text.h:
          (khtml::InlineTextBox::operator ==): Added to facilitate sorting
          (khtml::InlineTextBox::operator <): Ditto
          (khtml::RenderText::containsReversedText):
          
  
  2005-07-14  Justin Garcia  <justin.garcia at apple.com>
  
          Patch by Anders Carlsson and justin
  
          Reviewed by mjs
          
          Fixes the following related bugs: 
          <http://bugzilla.opendarwin.org/show_bug.cgi?id=3298> insertRow generates DOM Exception if TABLE does not possess a TBODY
          <rdar://problem/4045213> insertRow fails on a <table> that has no <tbody> but does have other children in the DOM
          <rdar://problem/3609576> insertRow() on table object containing any characters but no TR & TD elements fails (3476)
          
          Does a better job of maintaining the firstBody variable so that it's not invalidated on .innerHTML = ""
          Better check for when to add an implicit tbody to hold the inserted row.
  
          Test cases added: (NONE)
          * layout-tests/fast/dom/HTMLTableElement/insert-row-expected.txt: Added.
          * layout-tests/fast/dom/HTMLTableElement/insert-row.html: Added.
  
          * khtml/html/html_tableimpl.cpp:
          (DOM::HTMLTableElementImpl::~HTMLTableElementImpl):
          (DOM::HTMLTableElementImpl::setTBody):
          (DOM::HTMLTableElementImpl::insertRow):
          (DOM::HTMLTableElementImpl::addChild):
          (DOM::HTMLTableElementImpl::childrenChanged):
          * khtml/html/html_tableimpl.h:
  
  
  2005-07-14  Vicki Murley  <vicki at apple.com>
  
          Reviewed by hyatt, patch from Carsten Guenther.
  
  	- fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=3855
  
          Test cases added:
          * manual-tests/bugzilla-3855.html: Added.
  
          * kwq/KWQKHTMLPart.mm: 
          (KWQKHTMLPart::searchForLabelsAboveCell): check for the existence of the cell renderer
  
  2005-07-14  Vicki Murley  <vicki at apple.com>
  
  	- added manual tests for <rdar://problem/4172380> [GENENTECH] window.opener not available 
  	when child opened via target="_new"
          
  	Test cases added: 
          * manual-tests/target_new-1.html: Added.
          * manual-tests/target_new.html: Added.
  
  2005-07-14  Geoffrey Garen  <ggaren at apple.com>
  
          - landed fix for <http://bugzilla.opendarwin.org/show_bug.cgi?id=3677>
          Safari fail to access a second time an element whose content was dynamically modified.
          
          - patch by Anders Carlsson <andersca at mac.com>.
  
          Reviewed by mjs + darin.
  
          Test cases added:
          * layout-tests/fast/dom/ids/duplicate-ids-expected.txt: Added.
          * layout-tests/fast/dom/ids/duplicate-ids.html: Added.
          
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::getElementById):
          If no element in the id dict can be found and we know that there's
          at least one other element with the same id around, then traverse the document
          and insert the new element in the id table.
          
          (DocumentImpl::addElementById):
          (DocumentImpl::removeElementById):
          Increment and decrement the id count accordingly.
          
          * khtml/xml/dom_docimpl.h:
          Add QDict for id counts. Make element QDict mutable.
  
  2005-07-14  Geoffrey Garen  <ggaren at apple.com>
  
          -landed layout test for http://bugzilla.opendarwin.org/show_bug.cgi?id=3412
          Object.prototype is missing toLocaleString
  
          Reviewed by mjs.
  
          Test cases added:
          * layout-tests/fast/js/object-prototype-toLocaleString-expected.txt: Added.
          * layout-tests/fast/js/object-prototype-toLocaleString.html: Added.
  
  2005-07-14  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Kocienda.
  
          - WebCore part of fix for  <rdar://problem/4172380> [GENENTECH] window.opener 
          not available when child opened via target="_new"
  
          Add a setOpener function to the WebCore bridge, and call this function when opening
          new windows through Web Kit.
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
  
  2005-07-12  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
          - convert some more things to use the new hashtable
  
          * khtml/ecma/kjs_binding.cpp:
          (KJS::domObjects):
          (KJS::domNodesPerDocument):
          (KJS::ScriptInterpreter::getDOMObject):
          (KJS::ScriptInterpreter::putDOMObject):
          (KJS::ScriptInterpreter::deleteDOMObject):
          (KJS::ScriptInterpreter::forgetDOMObject):
          (KJS::ScriptInterpreter::getDOMNodeForDocument):
          (KJS::ScriptInterpreter::forgetDOMNodeForDocument):
          (KJS::ScriptInterpreter::putDOMNodeForDocument):
          (KJS::ScriptInterpreter::forgetAllDOMNodesForDocument):
          (KJS::ScriptInterpreter::mark):
          (KJS::ScriptInterpreter::updateDOMNodeDocument):
          * khtml/ecma/kjs_binding.h:
          * khtml/ecma/kjs_window.h: Include QPtrDict header
          * khtml/ecma/xmlhttprequest.h: ditto
  
  	- fix a bug with remove of a nonexistent key - it used to trash
  	the table
  	
          * khtml/misc/hashtable.h:
          (khtml::::remove):
  
  2005-07-13  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by mjs
  
          Rolled in workarounds necessary to build with a gcc 4.0 regression introduced in build 5208:
          <rdar://problem/4175534> Regression in gcc-5208 "comparison of distinct Objective-C types lacks a cast" warning
          Problems overloading methods that take Objective-C typed arguments
              
          * kwq/KWQCursor.h:
          * kwq/KWQCursor.mm:
          (QCursor::makeWithNSCursor):
          * kwq/KWQKCursor.mm:
          (KCursor::crossCursor):
          (KCursor::handCursor):
          (KCursor::sizeAllCursor):
          (KCursor::ibeamCursor):
          (KCursor::waitCursor):
          (KCursor::whatsThisCursor):
          (KCursor::eastResizeCursor):
          (KCursor::northResizeCursor):
          (KCursor::northEastResizeCursor):
          (KCursor::northWestResizeCursor):
          (KCursor::southResizeCursor):
          (KCursor::southEastResizeCursor):
          (KCursor::southWestResizeCursor):
          (KCursor::westResizeCursor):
          * kwq/KWQKJobClasses.mm:
          (KIO::TransferJob::emitResult):
          (KIO::TransferJob::emitReceivedResponse):
          * kwq/KWQSignal.h:
          * kwq/KWQSignal.mm:
          (KWQSignal::callWithData):
          (KWQSignal::callWithResponse):
          * kwq/KWQSlot.h:
          * kwq/KWQSlot.mm:
          (KWQSlot::callWithData):
          (KWQSlot::callWithResponse):
          * kwq/KWQWidget.mm:
          (QWidget::cursor):
  
  2005-07-13  Justin Garcia  <justin.garcia at apple.com>
  
          Reviewed by mjs
  
          Rolling in changes necessary to build with newer versions of gcc 4.0
  
          * kwq/DOM-CSS.mm:
          (+[DOMCSSPrimitiveValue _valueWithImpl:]):
          * kwq/DOMEvents.h:
          * kwq/DOMInternal.h:
          (addDOMWrapper):
          * kwq/KWQButton.mm:
          (QButton::setWritingDirection):
          * kwq/KWQClipboard.mm:
          (KWQClipboard::dragNSImage):
          * kwq/KWQComboBox.mm:
          (QComboBox::setWritingDirection):
          (QComboBox::populateMenu):
          * kwq/KWQKHTMLPart.mm:
          (regExpForLabels):
          (KWQKHTMLPart::passWidgetMouseDownEventToWidget):
          (KWQKHTMLPart::fileWrapperForElement):
          * kwq/KWQLineEdit.mm:
          (QLineEdit::QLineEdit):
          * kwq/KWQListBox.mm:
          (QListBox::~QListBox):
          (QListBox::setSelectionMode):
          (QListBox::doneAppendingItems):
          (QListBox::setSelected):
          (QListBox::isSelected):
          (QListBox::setEnabled):
          (QListBox::sizeForNumberOfLines):
          (QListBox::setWritingDirection):
          * kwq/KWQScrollView.mm:
          (QScrollView::contentsX):
          (QScrollView::contentsY):
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea _trackResizeFromMouseDown:]):
          (-[KWQTextAreaTextView _enclosingTextArea]):
          (-[KWQTextAreaTextView _resizeCornerRect]):
          * kwq/KWQTextEdit.mm:
          (QTextEdit::setAlignment):
          (QTextEdit::setWritingDirection):
          (QTextEdit::sizeWithColumnsAndRows):
          (QTextEdit::setPalette):
          * kwq/KWQWidget.mm:
          (QWidget::hasFocus):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge elementAtPoint:]):
  
  2005-07-13  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Maciej Stachowiak.
          
          - cleaned up Find-related experimental code that I checked in a while back
  
          * kwq/KWQKHTMLPart.h:
          remove findInSelection flag from findString()
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::findString):
          remove findInSelection flag. Always search the selection first, but if the found range is
          the same as the selection range, then search again from beyond the selection.
          
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge searchFor:direction:caseSensitive:wrap:]):
          remove findInSelection flag
  
  2005-07-13  Adele Peterson  <adele at apple.com>
  
          Reviewed by John.
  
          Fixed <rdar://problem/4170963> Focusing a field unnecessarily horizontally scrolls
  
          Horizontal scrolling while tabbing through forms can be surprising, and distracting.  This 
          change will minimize that scrolling if we're not explicitly trying to center a rectangle in
          _KWQ_scrollRectToVisible.
  
          Test cases added: None.  This test case involves tabbing to form controls and scrolling.
  
          * kwq/KWQNSViewExtras.m: (-[NSClipView _KWQ_scrollRectToVisible:inView:forceCentering:]):
  
  2005-07-12  Kevin Decker  <kdecker at apple.com>
  
           Reviewed by cblu.
  
  	Fixed: 
  	  http://bugzilla.opendarwin.org/show_bug.cgi?id=3968
  	 <rdar://problem/4172645> REGRESSION: top frame only loads at banking site - http://www.skandiabanken.no
  
          Test cases added: None; This fixes a race condition that is not reproducible locally.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::scheduleLocationChange): If a redirect was scheduled during a load, then stop the current load. Otherwise when the current load transitions from a provisional to a committed state, pending redirects may be cancelled. 
  
  2005-07-12  Beth Dakin  <bdakin at apple.com>
  
  	Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=3942 and marquee problems in Radar bug 
  	4172312. Vertical marquees default to 200px, and horizontal marquees do not allow text to be 
  	truncated by a too-small height attribute. 
  
          Reviewed by Hyatt.
  
          Test cases added: (NONE)
  
          * khtml/html/html_blockimpl.cpp: deleted former changes to make marquee height work correctly.
          (HTMLMarqueeElementImpl::mapToEntry):
          (HTMLMarqueeElementImpl::parseMappedAttribute):
          * khtml/rendering/render_layer.cpp: this is where the height issues are now addressed
          (Marquee::updateMarqueeStyle):
          * khtml/rendering/render_layer.h: 
          (khtml::):
          * khtml/rendering/render_style.h: added function fontSize() 
          (khtml::RenderStyle::fontSize):
          * khtml/xml/dom_elementimpl.h: deleted addition of EMarquee hash key
          (DOM::):
          * layout-tests/fast/css/MarqueeLayoutTest-expected.txt: 
          * layout-tests/fast/css/MarqueeLayoutTest.html: added vertical marquees to test.
  
  2005-07-12  Geoffrey Garen  <ggaren at apple.com>
  
          Test cases modified:
          * layout-tests/fast/frames/iframe-name-and-id.html:
          now tests dynamically creating frames[x].name
  
  2005-07-12  Geoffrey Garen  <ggaren at apple.com>
  
          Added layout test for 
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3435
          Parentheses are backwards in Hebrew text (no bidi mirroring?)
  
          Test is manual because results only reflect visually -
          the layout is the same either way.
          
          Test cases added:
          * manual-tests/bidi-parens.html: Added.
  
  2005-07-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          Test cases added: (NONE)
  
          * kwq/KWQTextCodec.mm: Fix build breakage. /me is a real genius.
  
  2005-07-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris Blumenberg
  
          Test cases added: (NONE)
  
          Switched over from TEC to ICU for unicode text conversion. TEC support has now been
          removed from KWQTextCodec. I just added this dual support yesterday, and while Maciej 
          and I agreed that it was good to land in the tree in case we run into problems in the
          near future, we also agreed that cutting over to using ICU full time right now is 
          probably the best way to find bugs.
          
          * kwq/KWQTextCodec.mm: Removed TEC support.
          (QTextCodec::fromUnicode): Ditto.
          (KWQTextDecoder::KWQTextDecoder): Ditto.
          (KWQTextDecoder::~KWQTextDecoder): Ditto.
          (KWQTextDecoder::convert): Ditto.
          * kwq/WebCoreBridge.h: Removed some glue that allowed the converters to
          be changed at runtime.
          * kwq/WebCoreTextConversionMethod.h: Removed. This also was glue for the runtime switch.
          * WebCore.pbproj/project.pbxproj: Removed WebCoreTextConversionMethod.h file.
  
  2005-07-12  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by hyatt.
  
          * icu/unicode/ucnv.h: Added.
          * icu/unicode/ucnv_err.h: Added.
          Fixes build break for externals caused by KWQTextCodec.mm changes.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3961
  
  2005-07-11  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by Adele.
  
          * kdom/Namespace.h: Merged in XPath 2.0 namespace def from KDE.
          * kdom/Shared.h: Merged in comments from KDE.
          * kdom/kdom.h: Changed local // to use #ifndef APPLE_CHANGES
          (KDOM::operator<<):
          A tiny batch of changes I wished to commit before moving
          WebCore/kdom to SVGSupport/kdom.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3959
  
  2005-07-11  Geoffrey Garen  <ggaren at apple.com>
  
  	-fixed rdar://problem/4170960 
  	http://bugzilla.opendarwin.org/show_bug.cgi?id=3952 
  	iFrame name and id information incorrectly returned
          
  	Reviewed by mjs.
  
          Test cases added: (NONE)
          * layout-tests/fast/frames/iframe-name-and-id-expected.txt: Added.
          * layout-tests/fast/frames/iframe-name-and-id.html: Added.
  
          * ChangeLog:
          * khtml/html/html_baseimpl.cpp:
          (HTMLFrameElementImpl::attach): removed misleading comment
          (HTMLIFrameElementImpl::attach): copied FrameElementImpl behavior
  	for initializing m_name
  
  2005-07-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Richard
  
          Test cases added: (NONE)
  
          * WebCore.pbproj/project.pbxproj:
          * kwq/KWQLogging.h: Added constant for logging text conversions.
          * kwq/KWQLogging.m: Ditto.
          * kwq/KWQTextCodec.mm: Added support for using the ICU library for unicode text conversion.
          (KWQTextDecoder::KWQTextDecoder): Check for conversion method to use.
          (KWQTextDecoder::~KWQTextDecoder): Release ICU converter if needed.
          (KWQTextDecoder::convertUTF16): Use constant rather in place of hard-coded buffer size.
          (KWQTextDecoder::createTECConverter): Name change: qualify converter names with TEC suffix.
          (KWQTextDecoder::createICUConverter): New function to create an ICU converter.
          (KWQTextDecoder::convertOneChunkUsingTEC): Name change: qualify converter names with TEC suffix.
          (KWQTextDecoder::convertUsingTEC): Ditto. Also, use constant rather in place of hard-coded buffer size.
          (KWQTextDecoder::convertUsingICU): New function to convert text using ICU.
          (KWQTextDecoder::convert): Now switches on converters, picking either TEC or ICU.
          * kwq/WebCoreBridge.h: Add -textConversionMethod accessor so KWQTextDecoder can pick the right converter.
          * kwq/WebCoreTextConversionMethod.h: Added.
  
  2005-07-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          Test cases added: (NONE)
  
          * WebCore.pbproj/project.pbxproj: Fix project file.
  
  2005-07-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          Test cases added: (NONE)
  
          * ChangeLog: Fixed two typos I found while reading the ChangeLog.
  
  2005-07-10  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseTag): Don't allow !doctype as a tag name, this screws up
  	parsing and makes !doctype elements and extra text nodes get added to the DOM.
          * khtml/xml/dom_atomicstring.cpp:
          (DOM::AtomicString::equal): Add some nil checks, now that the equal this calls
  	no longer checks for nil.
  
  2005-07-10  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * ksvg2/core/KCanvasRenderingStyle.cc: Added.
          * ksvg2/core/KCanvasRenderingStyle.h: Added.
          * ksvg2/core/KSVGDocumentBuilder.cc: Added.
          * ksvg2/core/KSVGDocumentBuilder.h: Added.
          * ksvg2/core/KSVGTimeScheduler.cc: Added.
          * ksvg2/core/KSVGTimeScheduler.h: Added.
          * ksvg2/core/KSVGTimeScheduler.moc: Added.
          Added directory previously ignored by global cvsignore rules.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3939
  
  2005-07-10  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * WebCore.pbproj/project.pbxproj:
          added htmlfactory.* to WebCore+SVG
          Also fixed /sw/bin/bison absolute path.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3938
  
  2005-07-09  Timothy Hatcher  <timothy at colloquy.info>
  
          Reviewed and landed by Maciej.
  
  	Fixed a build error with GCC4 and the use of _M_type.
  
          * khtml/misc/hashtraits.h:
          Test for GCC4 and use the new __value enum from _M_type.
  
  2005-07-09  David Hyatt  <hyatt at apple.com>
  
  	Make sure to keep eLastEntry at the end of the list, since it is used for the dynamic portion of the
  	hash.
  	
          Reviewed by mjs
  
  2005-07-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Eric Seidel.
  
          - removed unused files
  
          * kdom/impl/NodeKeeper.cc: Removed.
          * kdom/impl/NodeKeeper.h: Removed.
          * WebCore.pbproj/project.pbxproj: Remove from +SVG build.
  
  2005-07-09  David Hyatt  <hyatt at apple.com>
  
  	Fix for bugzilla bug 3405, replace NodeImpl::Id with a new class,
  	QualifiedName, to represent tag names (for DOM elements and CSS
  	selectors).
  	
          Reviewed by mjs
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/css/css_base.cpp:
          (CSSSelector::anyTagName):
          (CSSSelector::print):
          (CSSSelector::specificity):
          (CSSSelector::selectorText):
          * khtml/css/css_base.h:
          (DOM::CSSNamespace::uri):
          (DOM::CSSNamespace::prefix):
          (DOM::CSSNamespace::namespaceForPrefix):
          (DOM::CSSSelector::CSSSelector):
          (DOM::CSSSelector::hasTag):
          * khtml/css/css_ruleimpl.cpp:
          * khtml/css/css_ruleimpl.h:
          * khtml/css/css_stylesheetimpl.cpp:
          (CSSStyleSheetImpl::addNamespace):
          (CSSStyleSheetImpl::determineNamespace):
          * khtml/css/css_stylesheetimpl.h:
          * khtml/css/cssparser.cpp:
          (CSSParser::CSSParser):
          (CSSParser::parseSheet):
          * khtml/css/cssparser.h:
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::matchRules):
          (khtml::CSSStyleSelector::matchRulesForList):
          (khtml::CSSStyleSelector::canShareStyleWithElement):
          (khtml::CSSStyleSelector::adjustRenderStyle):
          (khtml::CSSStyleSelector::checkSelector):
          (khtml::CSSStyleSelector::checkOneSelector):
          (khtml::CSSRuleSet::addRule):
          * khtml/css/cssstyleselector.h:
          (khtml::CSSRuleSet::getTagRules):
          * khtml/css/parser.y:
          * khtml/dom/css_stylesheet.cpp:
          (LinkStyle::operator = ):
          (LinkStyle::sheet):
          * khtml/dom/dom_element.cpp:
          (Element::tagName):
          * khtml/dom/dom_node.cpp:
          (Node::namespaceURI):
          (Node::setPrefix):
          * khtml/dom/dom_node.h:
          * khtml/dom/html_base.cpp:
          (HTMLBodyElement::operator = ):
          (HTMLFrameElement::operator = ):
          (HTMLIFrameElement::operator = ):
          (HTMLFrameSetElement::operator = ):
          (HTMLHeadElement::operator = ):
          (HTMLHtmlElement::operator = ):
          * khtml/dom/html_block.cpp:
          (HTMLBlockquoteElement::operator = ):
          (HTMLDivElement::operator = ):
          (HTMLHRElement::operator = ):
          (HTMLHeadingElement::operator = ):
          (HTMLParagraphElement::operator = ):
          (HTMLPreElement::operator = ):
          * khtml/dom/html_element.cpp:
          (HTMLElement::assignOther):
          * khtml/dom/html_element.h:
          * khtml/dom/html_form.cpp:
          (HTMLButtonElement::operator = ):
          (HTMLFieldSetElement::operator = ):
          (HTMLFormElement::operator = ):
          (HTMLInputElement::operator = ):
          (HTMLLabelElement::operator = ):
          (HTMLLegendElement::operator = ):
          (HTMLOptGroupElement::operator = ):
          (HTMLSelectElement::operator = ):
          (HTMLTextAreaElement::operator = ):
          (HTMLOptionElement::operator = ):
          (HTMLIsIndexElement::operator = ):
          * khtml/dom/html_head.cpp:
          (HTMLBaseElement::operator = ):
          (HTMLLinkElement::operator = ):
          (HTMLMetaElement::operator = ):
          (HTMLScriptElement::operator = ):
          (HTMLStyleElement::operator = ):
          (HTMLTitleElement::operator = ):
          * khtml/dom/html_image.cpp:
          (HTMLAreaElement::operator = ):
          (HTMLImageElement::operator = ):
          (HTMLMapElement::operator = ):
          * khtml/dom/html_inline.cpp:
          (HTMLAnchorElement::operator = ):
          (HTMLBRElement::operator = ):
          (HTMLFontElement::operator = ):
          (HTMLModElement::HTMLModElement):
          (HTMLModElement::operator = ):
          (HTMLQuoteElement::HTMLQuoteElement):
          (HTMLQuoteElement::operator = ):
          * khtml/dom/html_inline.h:
          * khtml/dom/html_list.cpp:
          (HTMLDListElement::operator = ):
          (HTMLDirectoryElement::operator = ):
          (HTMLLIElement::operator = ):
          (HTMLMenuElement::operator = ):
          (HTMLOListElement::operator = ):
          (HTMLUListElement::operator = ):
          * khtml/dom/html_misc.cpp:
          (HTMLBaseFontElement::operator = ):
          * khtml/dom/html_object.cpp:
          (DOM::HTMLAppletElement::operator = ):
          (DOM::HTMLObjectElement::operator = ):
          (DOM::HTMLParamElement::operator = ):
          * khtml/dom/html_table.cpp:
          (HTMLTableCaptionElement::operator = ):
          (HTMLTableCellElement::operator = ):
          (HTMLTableColElement::operator = ):
          (HTMLTableElement::operator = ):
          (HTMLTableRowElement::operator = ):
          (HTMLTableSectionElement::operator = ):
          * khtml/ecma/kjs_css.cpp:
          (KJS::DOMStyleSheetList::tryGet):
          * khtml/ecma/kjs_dom.cpp:
          (KJS::DOMNode::putValue):
          (KJS::DOMElement::tryGet):
          (KJS::getRuntimeObject):
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::tryGet):
          (KJS::KJS::HTMLDocument::putValue):
          (KJS::KJS::HTMLElement::classInfo):
          (KJS::):
          (KJS::HTMLElement::getSetInfo):
          (KJS::KJS::HTMLElement::tryGet):
          (KJS::KJS::HTMLElement::implementsCall):
          (KJS::KJS::HTMLElement::call):
          (KJS::HTMLElement::htmlGetter):
          (KJS::HTMLElement::headGetter):
          (KJS::HTMLElement::linkGetter):
          (KJS::HTMLElement::titleGetter):
          (KJS::HTMLElement::metaGetter):
          (KJS::HTMLElement::baseGetter):
          (KJS::HTMLElement::isIndexGetter):
          (KJS::HTMLElement::styleGetter):
          (KJS::HTMLElement::bodyGetter):
          (KJS::HTMLElement::formGetter):
          (KJS::HTMLElement::selectGetter):
          (KJS::HTMLElement::optGroupGetter):
          (KJS::HTMLElement::optionGetter):
          (KJS::getInputSelectionStart):
          (KJS::getInputSelectionEnd):
          (KJS::HTMLElement::inputGetter):
          (KJS::HTMLElement::textAreaGetter):
          (KJS::HTMLElement::buttonGetter):
          (KJS::HTMLElement::labelGetter):
          (KJS::HTMLElement::fieldSetGetter):
          (KJS::HTMLElement::legendGetter):
          (KJS::HTMLElement::uListGetter):
          (KJS::HTMLElement::oListGetter):
          (KJS::HTMLElement::dListGetter):
          (KJS::HTMLElement::dirGetter):
          (KJS::HTMLElement::menuGetter):
          (KJS::HTMLElement::liGetter):
          (KJS::HTMLElement::divGetter):
          (KJS::HTMLElement::paragraphGetter):
          (KJS::HTMLElement::headingGetter):
          (KJS::HTMLElement::blockQuoteGetter):
          (KJS::HTMLElement::quoteGetter):
          (KJS::HTMLElement::preGetter):
          (KJS::HTMLElement::brGetter):
          (KJS::HTMLElement::baseFontGetter):
          (KJS::HTMLElement::fontGetter):
          (KJS::HTMLElement::hrGetter):
          (KJS::HTMLElement::modGetter):
          (KJS::HTMLElement::anchorGetter):
          (KJS::HTMLElement::imageGetter):
          (KJS::HTMLElement::objectGetter):
          (KJS::HTMLElement::paramGetter):
          (KJS::HTMLElement::appletGetter):
          (KJS::HTMLElement::mapGetter):
          (KJS::HTMLElement::areaGetter):
          (KJS::HTMLElement::scriptGetter):
          (KJS::HTMLElement::tableGetter):
          (KJS::HTMLElement::tableCaptionGetter):
          (KJS::HTMLElement::tableColGetter):
          (KJS::HTMLElement::tableSectionGetter):
          (KJS::HTMLElement::tableRowGetter):
          (KJS::HTMLElement::tableCellGetter):
          (KJS::HTMLElement::frameSetGetter):
          (KJS::HTMLElement::frameGetter):
          (KJS::HTMLElement::iFrameGetter):
          (KJS::HTMLElement::marqueeGetter):
          (KJS::HTMLElement::getValueProperty):
          (KJS::KJS::HTMLElement::hasOwnProperty):
          (KJS::KJS::HTMLElement::toString):
          (KJS::getForm):
          (KJS::KJS::HTMLElement::pushEventHandlerScope):
          (KJS::KJS::HTMLElementFunction::tryCall):
          (KJS::KJS::HTMLElement::tryPut):
          (KJS::HTMLElement::htmlSetter):
          (KJS::HTMLElement::headSetter):
          (KJS::HTMLElement::linkSetter):
          (KJS::HTMLElement::titleSetter):
          (KJS::HTMLElement::metaSetter):
          (KJS::HTMLElement::baseSetter):
          (KJS::HTMLElement::isIndexSetter):
          (KJS::HTMLElement::styleSetter):
          (KJS::HTMLElement::bodySetter):
          (KJS::HTMLElement::formSetter):
          (KJS::HTMLElement::selectSetter):
          (KJS::HTMLElement::optGroupSetter):
          (KJS::HTMLElement::optionSetter):
          (KJS::HTMLElement::inputSetter):
          (KJS::HTMLElement::textAreaSetter):
          (KJS::HTMLElement::buttonSetter):
          (KJS::HTMLElement::labelSetter):
          (KJS::HTMLElement::fieldSetSetter):
          (KJS::HTMLElement::legendSetter):
          (KJS::HTMLElement::uListSetter):
          (KJS::HTMLElement::oListSetter):
          (KJS::HTMLElement::dListSetter):
          (KJS::HTMLElement::dirSetter):
          (KJS::HTMLElement::menuSetter):
          (KJS::HTMLElement::liSetter):
          (KJS::HTMLElement::divSetter):
          (KJS::HTMLElement::paragraphSetter):
          (KJS::HTMLElement::headingSetter):
          (KJS::HTMLElement::blockQuoteSetter):
          (KJS::HTMLElement::quoteSetter):
          (KJS::HTMLElement::preSetter):
          (KJS::HTMLElement::brSetter):
          (KJS::HTMLElement::baseFontSetter):
          (KJS::HTMLElement::fontSetter):
          (KJS::HTMLElement::hrSetter):
          (KJS::HTMLElement::modSetter):
          (KJS::HTMLElement::anchorSetter):
          (KJS::HTMLElement::imageSetter):
          (KJS::HTMLElement::objectSetter):
          (KJS::HTMLElement::paramSetter):
          (KJS::HTMLElement::appletSetter):
          (KJS::HTMLElement::mapSetter):
          (KJS::HTMLElement::areaSetter):
          (KJS::HTMLElement::scriptSetter):
          (KJS::HTMLElement::tableSetter):
          (KJS::HTMLElement::tableCaptionSetter):
          (KJS::HTMLElement::tableColSetter):
          (KJS::HTMLElement::tableSectionSetter):
          (KJS::HTMLElement::tableRowSetter):
          (KJS::HTMLElement::tableCellSetter):
          (KJS::HTMLElement::frameSetSetter):
          (KJS::HTMLElement::frameSetter):
          (KJS::HTMLElement::iFrameSetter):
          (KJS::HTMLElement::marqueeSetter):
          (KJS::HTMLElement::putValue):
          (KJS::toHTMLTableCaptionElement):
          (KJS::toHTMLTableSectionElement):
          (KJS::KJS::HTMLCollection::tryGet):
          (KJS::KJS::HTMLSelectCollection::tryPut):
          * khtml/ecma/kjs_html.h:
          * khtml/ecma/kjs_window.cpp:
          * khtml/editing/apply_style_command.cpp:
          (khtml::isStyleSpan):
          (khtml::isEmptyStyleSpan):
          (khtml::isEmptyFontTag):
          (khtml::createFontElement):
          (khtml::createStyleSpanElement):
          (khtml::ApplyStyleCommand::applyInlineStyle):
          (khtml::ApplyStyleCommand::isHTMLStyleNode):
          (khtml::ApplyStyleCommand::removeHTMLFontStyle):
          (khtml::areIdenticalElements):
          (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
          * khtml/editing/break_blockquote_command.cpp:
          (khtml::BreakBlockquoteCommand::doApply):
          * khtml/editing/composite_edit_command.cpp:
          (khtml::CompositeEditCommand::insertNodeBefore):
          (khtml::CompositeEditCommand::insertNodeAfter):
          (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
          (khtml::createBlockPlaceholderElement):
          * khtml/editing/delete_selection_command.cpp:
          (khtml::isListStructureNode):
          (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete):
          (khtml::DeleteSelectionCommand::handleGeneralDelete):
          (khtml::DeleteSelectionCommand::moveNodesAfterNode):
          * khtml/editing/htmlediting.cpp:
          (khtml::isSpecialElement):
          (khtml::createDefaultParagraphElement):
          (khtml::createBreakElement):
          (khtml::isMailBlockquote):
          * khtml/editing/insert_line_break_command.cpp:
          (khtml::InsertLineBreakCommand::doApply):
          * khtml/editing/insert_paragraph_separator_command.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply):
          * khtml/editing/markup.cpp:
          (khtml::startMarkup):
          (khtml::endMarkup):
          (khtml::markup):
          (khtml::createMarkup):
          (khtml::createFragmentFromText):
          * khtml/editing/replace_selection_command.cpp:
          (khtml::isProbablyBlock):
          (khtml::isProbablyTableStructureNode):
          (khtml::ReplacementFragment::isInterchangeNewlineNode):
          (khtml::ReplacementFragment::removeStyleNodes):
          (khtml::ReplaceSelectionCommand::doApply):
          (khtml::ReplaceSelectionCommand::updateNodesInserted):
          * khtml/editing/selection.cpp:
          (khtml::Selection::debugRenderer):
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::init):
          (khtml::VisiblePosition::isCandidate):
          (khtml::VisiblePosition::isAtomicNode):
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::handleNonTextNode):
          (khtml::TextIterator::exitNode):
          (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode):
          * khtml/editing/visible_units.cpp:
          (khtml::endOfLine):
          * khtml/html/dtd.cpp: Removed.
          * khtml/html/dtd.h: Removed.
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::HTMLBodyElementImpl):
          (HTMLFrameElementImpl::HTMLFrameElementImpl):
          (HTMLFrameElementImpl::init):
          (HTMLFrameElementImpl::attach):
          (HTMLFrameSetElementImpl::HTMLFrameSetElementImpl):
          (HTMLFrameSetElementImpl::checkDTD):
          (HTMLFrameSetElementImpl::attach):
          (HTMLHeadElementImpl::HTMLHeadElementImpl):
          (HTMLHeadElementImpl::checkDTD):
          (HTMLHtmlElementImpl::HTMLHtmlElementImpl):
          (HTMLHtmlElementImpl::checkDTD):
          (HTMLIFrameElementImpl::HTMLIFrameElementImpl):
          * khtml/html/html_baseimpl.h:
          (DOM::HTMLBodyElementImpl::endTagRequirement):
          (DOM::HTMLBodyElementImpl::tagPriority):
          (DOM::HTMLFrameElementImpl::endTagRequirement):
          (DOM::HTMLFrameElementImpl::tagPriority):
          (DOM::HTMLFrameSetElementImpl::endTagRequirement):
          (DOM::HTMLFrameSetElementImpl::tagPriority):
          (DOM::HTMLHeadElementImpl::endTagRequirement):
          (DOM::HTMLHeadElementImpl::tagPriority):
          (DOM::HTMLHtmlElementImpl::endTagRequirement):
          (DOM::HTMLHtmlElementImpl::tagPriority):
          (DOM::HTMLIFrameElementImpl::endTagRequirement):
          (DOM::HTMLIFrameElementImpl::tagPriority):
          * khtml/html/html_blockimpl.cpp:
          (HTMLBlockquoteElementImpl::HTMLBlockquoteElementImpl):
          (HTMLDivElementImpl::HTMLDivElementImpl):
          (HTMLHRElementImpl::HTMLHRElementImpl):
          (HTMLHeadingElementImpl::HTMLHeadingElementImpl):
          (HTMLHeadingElementImpl::checkDTD):
          (HTMLParagraphElementImpl::HTMLParagraphElementImpl):
          (HTMLParagraphElementImpl::checkDTD):
          (HTMLPreElementImpl::HTMLPreElementImpl):
          (HTMLMarqueeElementImpl::HTMLMarqueeElementImpl):
          (HTMLMarqueeElementImpl::parseMappedAttribute):
          * khtml/html/html_blockimpl.h:
          (DOM::HTMLBlockquoteElementImpl::endTagRequirement):
          (DOM::HTMLBlockquoteElementImpl::tagPriority):
          (DOM::HTMLDivElementImpl::endTagRequirement):
          (DOM::HTMLDivElementImpl::tagPriority):
          (DOM::HTMLHRElementImpl::endTagRequirement):
          (DOM::HTMLHRElementImpl::tagPriority):
          (DOM::HTMLHeadingElementImpl::endTagRequirement):
          (DOM::HTMLHeadingElementImpl::tagPriority):
          (DOM::HTMLParagraphElementImpl::endTagRequirement):
          (DOM::HTMLParagraphElementImpl::tagPriority):
          (DOM::HTMLPreElementImpl::endTagRequirement):
          (DOM::HTMLPreElementImpl::tagPriority):
          (DOM::HTMLMarqueeElementImpl::endTagRequirement):
          (DOM::HTMLMarqueeElementImpl::tagPriority):
          * khtml/html/html_canvasimpl.cpp:
          (HTMLCanvasElementImpl::HTMLCanvasElementImpl):
          * khtml/html/html_canvasimpl.h:
          * khtml/html/html_documentimpl.cpp:
          (DOM::HTMLDocumentImpl::childAllowed):
          (DOM::HTMLDocumentImpl::createElement):
          * khtml/html/html_documentimpl.h:
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::HTMLElementImpl):
          (HTMLElementImpl::nodeName):
          (HTMLElementImpl::endTagRequirement):
          (HTMLElementImpl::tagPriority):
          (HTMLElementImpl::cloneNode):
          (HTMLElementImpl::createContextualFragment):
          (HTMLElementImpl::setInnerHTML):
          (HTMLElementImpl::setOuterHTML):
          (HTMLElementImpl::setInnerText):
          (HTMLElementImpl::setOuterText):
          (HTMLElementImpl::toString):
          (HTMLElementImpl::id):
          (HTMLElementImpl::childAllowed):
          (HTMLElementImpl::isRecognizedTagName):
          (inlineTagList):
          (blockTagList):
          (HTMLElementImpl::inEitherTagList):
          (HTMLElementImpl::inInlineTagList):
          (HTMLElementImpl::inBlockTagList):
          (HTMLElementImpl::checkDTD):
          * khtml/html/html_elementimpl.h:
          (DOM::):
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::HTMLFormElementImpl):
          (DOM::HTMLFormElementImpl::submitClick):
          (DOM::HTMLFormElementImpl::formData):
          (DOM::HTMLFormElementImpl::submit):
          (DOM::HTMLFormElementImpl::radioClicked):
          (DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl):
          (DOM::HTMLGenericFormElementImpl::getForm):
          (DOM::HTMLButtonElementImpl::HTMLButtonElementImpl):
          (DOM::HTMLFieldSetElementImpl::HTMLFieldSetElementImpl):
          (DOM::HTMLFieldSetElementImpl::checkDTD):
          (DOM::HTMLFieldSetElementImpl::isFocusable):
          (DOM::HTMLInputElementImpl::HTMLInputElementImpl):
          (DOM::HTMLInputElementImpl::init):
          (DOM::HTMLLabelElementImpl::HTMLLabelElementImpl):
          (DOM::HTMLLabelElementImpl::form):
          (DOM::HTMLLegendElementImpl::HTMLLegendElementImpl):
          (DOM::HTMLLegendElementImpl::formElement):
          (DOM::HTMLSelectElementImpl::HTMLSelectElementImpl):
          (DOM::HTMLSelectElementImpl::init):
          (DOM::HTMLSelectElementImpl::checkDTD):
          (DOM::HTMLSelectElementImpl::selectedIndex):
          (DOM::HTMLSelectElementImpl::setSelectedIndex):
          (DOM::HTMLSelectElementImpl::length):
          (DOM::HTMLSelectElementImpl::add):
          (DOM::HTMLSelectElementImpl::value):
          (DOM::HTMLSelectElementImpl::setValue):
          (DOM::HTMLSelectElementImpl::state):
          (DOM::HTMLSelectElementImpl::restoreState):
          (DOM::HTMLSelectElementImpl::appendFormData):
          (DOM::HTMLSelectElementImpl::optionToListIndex):
          (DOM::HTMLSelectElementImpl::listToOptionIndex):
          (DOM::HTMLSelectElementImpl::recalcListItems):
          (DOM::HTMLSelectElementImpl::reset):
          (DOM::HTMLSelectElementImpl::notifyOptionSelected):
          (DOM::HTMLKeygenElementImpl::HTMLKeygenElementImpl):
          (DOM::HTMLOptGroupElementImpl::HTMLOptGroupElementImpl):
          (DOM::HTMLOptGroupElementImpl::recalcSelectOptions):
          (DOM::HTMLOptionElementImpl::HTMLOptionElementImpl):
          (DOM::HTMLOptionElementImpl::index):
          (DOM::HTMLOptionElementImpl::getSelect):
          (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl):
          (DOM::HTMLIsIndexElementImpl::HTMLIsIndexElementImpl):
          * khtml/html/html_formimpl.h:
          (DOM::HTMLFormElementImpl::endTagRequirement):
          (DOM::HTMLFormElementImpl::tagPriority):
          (DOM::HTMLGenericFormElementImpl::endTagRequirement):
          (DOM::HTMLGenericFormElementImpl::tagPriority):
          (DOM::HTMLFieldSetElementImpl::tagPriority):
          (DOM::HTMLInputElementImpl::endTagRequirement):
          (DOM::HTMLInputElementImpl::tagPriority):
          (DOM::HTMLLabelElementImpl::tagPriority):
          (DOM::HTMLSelectElementImpl::tagPriority):
          (DOM::HTMLKeygenElementImpl::tagPriority):
          (DOM::HTMLOptGroupElementImpl::checkDTD):
          (DOM::HTMLOptionElementImpl::endTagRequirement):
          (DOM::HTMLOptionElementImpl::tagPriority):
          (DOM::HTMLOptionElementImpl::checkDTD):
          (DOM::HTMLTextAreaElementImpl::checkDTD):
          (DOM::HTMLTextAreaElementImpl::cols):
          (DOM::HTMLIsIndexElementImpl::endTagRequirement):
          (DOM::HTMLIsIndexElementImpl::tagPriority):
          * khtml/html/html_headimpl.cpp:
          (HTMLBaseElementImpl::HTMLBaseElementImpl):
          (HTMLLinkElementImpl::HTMLLinkElementImpl):
          (HTMLMetaElementImpl::HTMLMetaElementImpl):
          (HTMLScriptElementImpl::HTMLScriptElementImpl):
          (HTMLStyleElementImpl::HTMLStyleElementImpl):
          (HTMLTitleElementImpl::HTMLTitleElementImpl):
          * khtml/html/html_headimpl.h:
          (DOM::HTMLBaseElementImpl::endTagRequirement):
          (DOM::HTMLBaseElementImpl::tagPriority):
          (DOM::HTMLLinkElementImpl::endTagRequirement):
          (DOM::HTMLLinkElementImpl::tagPriority):
          (DOM::HTMLMetaElementImpl::endTagRequirement):
          (DOM::HTMLMetaElementImpl::tagPriority):
          (DOM::HTMLScriptElementImpl::endTagRequirement):
          (DOM::HTMLScriptElementImpl::tagPriority):
          (DOM::HTMLScriptElementImpl::checkDTD):
          (DOM::HTMLStyleElementImpl::endTagRequirement):
          (DOM::HTMLStyleElementImpl::tagPriority):
          (DOM::HTMLStyleElementImpl::checkDTD):
          (DOM::HTMLTitleElementImpl::checkDTD):
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageLoader::updateFromElement):
          (HTMLImageElementImpl::HTMLImageElementImpl):
          (HTMLImageElementImpl::~HTMLImageElementImpl):
          (HTMLMapElementImpl::HTMLMapElementImpl):
          (HTMLMapElementImpl::checkDTD):
          (HTMLMapElementImpl::mapMouseEvent):
          (HTMLAreaElementImpl::HTMLAreaElementImpl):
          * khtml/html/html_imageimpl.h:
          (DOM::HTMLImageElementImpl::endTagRequirement):
          (DOM::HTMLImageElementImpl::tagPriority):
          (DOM::HTMLAreaElementImpl::endTagRequirement):
          (DOM::HTMLAreaElementImpl::tagPriority):
          (DOM::HTMLMapElementImpl::endTagRequirement):
          (DOM::HTMLMapElementImpl::tagPriority):
          * khtml/html/html_inlineimpl.cpp:
          (DOM::HTMLAnchorElementImpl::HTMLAnchorElementImpl):
          (DOM::HTMLAnchorElementImpl::defaultEventHandler):
          (DOM::HTMLBRElementImpl::HTMLBRElementImpl):
          (DOM::HTMLFontElementImpl::HTMLFontElementImpl):
          (DOM::HTMLModElementImpl::HTMLModElementImpl):
          (DOM::HTMLQuoteElementImpl::HTMLQuoteElementImpl):
          * khtml/html/html_inlineimpl.h:
          (DOM::HTMLAnchorElementImpl::endTagRequirement):
          (DOM::HTMLAnchorElementImpl::tagPriority):
          (DOM::HTMLBRElementImpl::endTagRequirement):
          (DOM::HTMLBRElementImpl::tagPriority):
          (DOM::HTMLFontElementImpl::endTagRequirement):
          (DOM::HTMLFontElementImpl::tagPriority):
          (DOM::HTMLModElementImpl::endTagRequirement):
          (DOM::HTMLModElementImpl::tagPriority):
          (DOM::HTMLQuoteElementImpl::endTagRequirement):
          (DOM::HTMLQuoteElementImpl::tagPriority):
          * khtml/html/html_listimpl.cpp:
          (DOM::HTMLOListElementImpl::parseMappedAttribute):
          (DOM::HTMLLIElementImpl::attach):
          (DOM::HTMLLIElementImpl::setValue):
          * khtml/html/html_listimpl.h:
          (DOM::HTMLUListElementImpl::HTMLUListElementImpl):
          (DOM::HTMLUListElementImpl::endTagRequirement):
          (DOM::HTMLUListElementImpl::tagPriority):
          (DOM::HTMLDirectoryElementImpl::HTMLDirectoryElementImpl):
          (DOM::HTMLDirectoryElementImpl::endTagRequirement):
          (DOM::HTMLDirectoryElementImpl::tagPriority):
          (DOM::HTMLMenuElementImpl::HTMLMenuElementImpl):
          (DOM::HTMLMenuElementImpl::endTagRequirement):
          (DOM::HTMLMenuElementImpl::tagPriority):
          (DOM::HTMLOListElementImpl::HTMLOListElementImpl):
          (DOM::HTMLOListElementImpl::endTagRequirement):
          (DOM::HTMLOListElementImpl::tagPriority):
          (DOM::HTMLLIElementImpl::HTMLLIElementImpl):
          (DOM::HTMLLIElementImpl::endTagRequirement):
          (DOM::HTMLLIElementImpl::tagPriority):
          (DOM::HTMLDListElementImpl::HTMLDListElementImpl):
          (DOM::HTMLDListElementImpl::endTagRequirement):
          (DOM::HTMLDListElementImpl::tagPriority):
          * khtml/html/html_miscimpl.cpp:
          (DOM::HTMLBaseFontElementImpl::HTMLBaseFontElementImpl):
          (DOM::HTMLCollectionImpl::traverseNextItem):
          (DOM::HTMLCollectionImpl::checkForNameMatch):
          (DOM::HTMLCollectionImpl::updateNameCache):
          (DOM::HTMLFormCollectionImpl::getNamedFormItem):
          (DOM::HTMLFormCollectionImpl::updateNameCache):
          * khtml/html/html_miscimpl.h:
          (DOM::HTMLBaseFontElementImpl::endTagRequirement):
          (DOM::HTMLBaseFontElementImpl::tagPriority):
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLAppletElementImpl::HTMLAppletElementImpl):
          (DOM::HTMLAppletElementImpl::checkDTD):
          (DOM::HTMLEmbedElementImpl::HTMLEmbedElementImpl):
          (DOM::HTMLEmbedElementImpl::checkDTD):
          (DOM::HTMLEmbedElementImpl::rendererIsNeeded):
          (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl):
          (DOM::HTMLObjectElementImpl::checkDTD):
          (DOM::HTMLObjectElementImpl::form):
          (DOM::HTMLParamElementImpl::HTMLParamElementImpl):
          * khtml/html/html_objectimpl.h:
          (DOM::HTMLAppletElementImpl::endTagRequirement):
          (DOM::HTMLAppletElementImpl::tagPriority):
          (DOM::HTMLEmbedElementImpl::endTagRequirement):
          (DOM::HTMLEmbedElementImpl::tagPriority):
          (DOM::HTMLObjectElementImpl::endTagRequirement):
          (DOM::HTMLObjectElementImpl::tagPriority):
          (DOM::HTMLParamElementImpl::endTagRequirement):
          (DOM::HTMLParamElementImpl::tagPriority):
          * khtml/html/html_tableimpl.cpp:
          (DOM::HTMLTableElementImpl::HTMLTableElementImpl):
          (DOM::HTMLTableElementImpl::checkDTD):
          (DOM::HTMLTableElementImpl::createTHead):
          (DOM::HTMLTableElementImpl::createTFoot):
          (DOM::HTMLTableElementImpl::insertRow):
          (DOM::HTMLTableElementImpl::deleteRow):
          (DOM::HTMLTableElementImpl::addChild):
          (DOM::HTMLTableSectionElementImpl::HTMLTableSectionElementImpl):
          (DOM::HTMLTableSectionElementImpl::checkDTD):
          (DOM::HTMLTableSectionElementImpl::addChild):
          (DOM::HTMLTableSectionElementImpl::numRows):
          (DOM::HTMLTableRowElementImpl::checkDTD):
          (DOM::HTMLTableRowElementImpl::addChild):
          (DOM::HTMLTableRowElementImpl::rowIndex):
          (DOM::HTMLTableRowElementImpl::sectionRowIndex):
          (DOM::HTMLTableRowElementImpl::insertCell):
          (DOM::HTMLTableCellElementImpl::HTMLTableCellElementImpl):
          (DOM::HTMLTableCellElementImpl::cellIndex):
          (DOM::HTMLTableCellElementImpl::additionalAttributeStyleDecl):
          (DOM::HTMLTableColElementImpl::HTMLTableColElementImpl):
          * khtml/html/html_tableimpl.h:
          (DOM::HTMLTableElementImpl::endTagRequirement):
          (DOM::HTMLTableElementImpl::tagPriority):
          (DOM::HTMLTablePartElementImpl::HTMLTablePartElementImpl):
          (DOM::HTMLTableSectionElementImpl::endTagRequirement):
          (DOM::HTMLTableSectionElementImpl::tagPriority):
          (DOM::HTMLTableRowElementImpl::HTMLTableRowElementImpl):
          (DOM::HTMLTableRowElementImpl::endTagRequirement):
          (DOM::HTMLTableRowElementImpl::tagPriority):
          (DOM::HTMLTableCellElementImpl::endTagRequirement):
          (DOM::HTMLTableCellElementImpl::tagPriority):
          (DOM::HTMLTableColElementImpl::endTagRequirement):
          (DOM::HTMLTableColElementImpl::tagPriority):
          (DOM::HTMLTableColElementImpl::checkDTD):
          (DOM::HTMLTableCaptionElementImpl::HTMLTableCaptionElementImpl):
          (DOM::HTMLTableCaptionElementImpl::endTagRequirement):
          (DOM::HTMLTableCaptionElementImpl::tagPriority):
          * khtml/html/htmlfactory.cpp: Added.
          (DOM::htmlConstructor):
          (DOM::headConstructor):
          (DOM::bodyConstructor):
          (DOM::baseConstructor):
          (DOM::linkConstructor):
          (DOM::metaConstructor):
          (DOM::styleConstructor):
          (DOM::titleConstructor):
          (DOM::frameConstructor):
          (DOM::framesetConstructor):
          (DOM::iframeConstructor):
          (DOM::formConstructor):
          (DOM::buttonConstructor):
          (DOM::inputConstructor):
          (DOM::isindexConstructor):
          (DOM::fieldsetConstructor):
          (DOM::labelConstructor):
          (DOM::legendConstructor):
          (DOM::optgroupConstructor):
          (DOM::optionConstructor):
          (DOM::selectConstructor):
          (DOM::textareaConstructor):
          (DOM::dlConstructor):
          (DOM::ulConstructor):
          (DOM::olConstructor):
          (DOM::dirConstructor):
          (DOM::menuConstructor):
          (DOM::liConstructor):
          (DOM::blockquoteConstructor):
          (DOM::divConstructor):
          (DOM::headingConstructor):
          (DOM::hrConstructor):
          (DOM::paragraphConstructor):
          (DOM::preConstructor):
          (DOM::basefontConstructor):
          (DOM::fontConstructor):
          (DOM::modConstructor):
          (DOM::anchorConstructor):
          (DOM::imageConstructor):
          (DOM::mapConstructor):
          (DOM::areaConstructor):
          (DOM::canvasConstructor):
          (DOM::appletConstructor):
          (DOM::embedConstructor):
          (DOM::objectConstructor):
          (DOM::paramConstructor):
          (DOM::scriptConstructor):
          (DOM::tableConstructor):
          (DOM::tableCaptionConstructor):
          (DOM::tableColConstructor):
          (DOM::tableRowConstructor):
          (DOM::tableCellConstructor):
          (DOM::tableSectionConstructor):
          (DOM::brConstructor):
          (DOM::quoteConstructor):
          (DOM::marqueeConstructor):
          (DOM::HTMLElementFactory::createHTMLElement):
          * khtml/html/htmlfactory.h: Added.
          * khtml/html/htmlnames.cpp:
          (DOM::HTMLNames::init):
          * khtml/html/htmlnames.h:
          (DOM::HTMLNames::xhtmlNamespaceURI):
          * khtml/html/htmlparser.cpp:
          (HTMLStackElem::HTMLStackElem):
          (HTMLParser::HTMLParser):
          (HTMLParser::~HTMLParser):
          (HTMLParser::reset):
          (HTMLParser::setCurrent):
          (HTMLParser::parseToken):
          (isTableSection):
          (isTablePart):
          (isTableRelated):
          (HTMLParser::insertNode):
          (HTMLParser::handleError):
          (HTMLParser::textCreateErrorCheck):
          (HTMLParser::commentCreateErrorCheck):
          (HTMLParser::headCreateErrorCheck):
          (HTMLParser::bodyCreateErrorCheck):
          (HTMLParser::framesetCreateErrorCheck):
          (HTMLParser::iframeCreateErrorCheck):
          (HTMLParser::formCreateErrorCheck):
          (HTMLParser::isindexCreateErrorCheck):
          (HTMLParser::selectCreateErrorCheck):
          (HTMLParser::ddCreateErrorCheck):
          (HTMLParser::dtCreateErrorCheck):
          (HTMLParser::nestedCreateErrorCheck):
          (HTMLParser::nestedStyleCreateErrorCheck):
          (HTMLParser::tableCellCreateErrorCheck):
          (HTMLParser::tableSectionCreateErrorCheck):
          (HTMLParser::noembedCreateErrorCheck):
          (HTMLParser::noframesCreateErrorCheck):
          (HTMLParser::noscriptCreateErrorCheck):
          (HTMLParser::nolayerCreateErrorCheck):
          (HTMLParser::getNode):
          (HTMLParser::allowNestedRedundantTag):
          (HTMLParser::processCloseTag):
          (HTMLParser::isHeaderTag):
          (HTMLParser::popNestedHeaderTag):
          (HTMLParser::isInline):
          (HTMLParser::isResidualStyleTag):
          (HTMLParser::isAffectedByResidualStyle):
          (HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
          (HTMLParser::reopenResidualStyleTags):
          (HTMLParser::pushBlock):
          (HTMLParser::popBlock):
          (HTMLParser::popOneBlock):
          (HTMLParser::popInlineBlocks):
          (HTMLParser::freeBlock):
          (HTMLParser::createHead):
          (HTMLParser::handleIsindex):
          (HTMLParser::startBody):
          (HTMLParser::finished):
          * khtml/html/htmlparser.h:
          (HTMLParser::skipMode):
          (HTMLParser::setSkipMode):
          (HTMLParser::popBlock):
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::HTMLTokenizer):
          (khtml::HTMLTokenizer::parseSpecial):
          (khtml::HTMLTokenizer::scriptHandler):
          (khtml::HTMLTokenizer::parseComment):
          (khtml::HTMLTokenizer::parseTag):
          (khtml::HTMLTokenizer::processToken):
          * khtml/html/htmltokenizer.h:
          (khtml::Token::Token):
          (khtml::Token::~Token):
          (khtml::Token::addAttribute):
          (khtml::Token::isOpenTag):
          (khtml::Token::isCloseTag):
          (khtml::Token::reset):
          * khtml/khtml_part.cpp:
          (KHTMLPart::init):
          (KHTMLPart::selectionComputedStyle):
          * khtml/khtmlview.cpp:
          (KHTMLView::layout):
          (isSubmitImage):
          * khtml/misc/decoder.cpp:
          (Decoder::decode):
          * khtml/misc/hashmap.h:
          (khtml::::size):
          (khtml::::isEmpty):
          (khtml::::begin):
          (khtml::::end):
          (khtml::::get):
          * khtml/misc/hashset.h:
          (khtml::::size):
          (khtml::::isEmpty):
          (khtml::::begin):
          (khtml::::end):
          (khtml::::contains):
          * khtml/misc/hashtable.h:
          (khtml::HashTableIterator::skipEmptyBuckets):
          (khtml::::lookup):
          (khtml::::find):
          (khtml::::contains):
          (khtml::::remove):
          * khtml/misc/htmlhashes.cpp:
          (khtml::getAttrID):
          * khtml/misc/htmlhashes.h:
          * khtml/rendering/bidi.cpp:
          (khtml::BidiIterator::direction):
          * khtml/rendering/break_lines.cpp:
          (khtml::isBreakable):
          * khtml/rendering/render_applet.cpp:
          (RenderApplet::createWidgetIfNecessary):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlock):
          * khtml/rendering/render_box.cpp:
          (RenderBox::paintRootBoxDecorations):
          (RenderBox::paintBackgroundExtended):
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::paint):
          * khtml/rendering/render_canvasimage.h:
          * khtml/rendering/render_container.cpp:
          (RenderContainer::updatePseudoChild):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::addFocusRingRects):
          * khtml/rendering/render_form.cpp:
          (RenderFieldset::findLegend):
          (RenderSelect::updateFromElement):
          (RenderSelect::layout):
          (RenderSelect::slotSelected):
          (RenderSelect::slotSelectionChanged):
          (RenderSelect::updateSelection):
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget):
          (RenderPartObject::slotViewCleared):
          * khtml/rendering/render_image.cpp:
          (RenderImage::paint):
          (RenderImage::imageMap):
          (RenderImage::updateAltText):
          * khtml/rendering/render_image.h:
          * khtml/rendering/render_layer.cpp:
          (Marquee::marqueeSpeed):
          * khtml/rendering/render_line.cpp:
          * khtml/rendering/render_list.cpp:
          (getParentOfFirstLineBox):
          * khtml/rendering/render_object.cpp:
          (RenderObject::isBody):
          (RenderObject::isHR):
          (RenderObject::isHTMLMarquee):
          (RenderObject::sizesToMaxWidth):
          (RenderObject::information):
          (RenderObject::setStyle):
          (RenderObject::getTextDecorationColors):
          (RenderObject::setPixmap):
          * khtml/rendering/render_style.cpp:
          (RenderStyle::getPseudoStyle):
          * khtml/rendering/render_style.h:
          * khtml/rendering/render_table.cpp:
          (RenderTable::addChild):
          (RenderTable::layout):
          (RenderTableSection::addChild):
          (RenderTableRow::addChild):
          (RenderTableCell::updateFromElement):
          (RenderTableCol::updateFromElement):
          * khtml/xml/dom2_rangeimpl.cpp:
          * khtml/xml/dom2_traversalimpl.cpp:
          * khtml/xml/dom_atomicstring.cpp:
          (DOM::equal):
          (DOM::AtomicString::init):
          * khtml/xml/dom_atomicstring.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createElement):
          (DocumentImpl::importNode):
          (DocumentImpl::createElementNS):
          (DocumentImpl::body):
          (DocumentImpl::shouldScheduleLayout):
          (DocumentImpl::attrId):
          (DocumentImpl::recalcStyleSelector):
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_elementimpl.cpp:
          (AttrImpl::prefix):
          (AttrImpl::setPrefix):
          (ElementImpl::ElementImpl):
          (ElementImpl::~ElementImpl):
          (ElementImpl::cloneNode):
          (ElementImpl::hasAttributes):
          (ElementImpl::nodeName):
          (ElementImpl::setPrefix):
          (ElementImpl::openTagStartToString):
          (ElementImpl::toString):
          (StyledElementImpl::StyledElementImpl):
          * khtml/xml/dom_elementimpl.h:
          (DOM::ElementImpl::tagName):
          (DOM::ElementImpl::hasTagName):
          (DOM::ElementImpl::hasLocalName):
          (DOM::ElementImpl::localName):
          (DOM::ElementImpl::prefix):
          (DOM::ElementImpl::namespaceURI):
          (DOM::ElementImpl::mouseEventHandler):
          * khtml/xml/dom_nodeimpl.cpp:
          (DOM::NodeImpl::lastDescendant):
          (DOM::NodeImpl::prefix):
          (DOM::NodeImpl::setPrefix):
          (DOM::NodeImpl::localName):
          (DOM::NodeImpl::namespaceURI):
          (DOM::NodeImpl::checkSetPrefix):
          (DOM::NodeImpl::isAtomicNode):
          (DOM::NodeImpl::maxDeepOffset):
          (DOM::NodeImpl::enclosingBlockFlowOrTableElement):
          (DOM::NodeImpl::enclosingBlockFlowElement):
          (DOM::NodeImpl::enclosingInlineElement):
          (DOM::NodeImpl::rootEditableElement):
          (DOM::NodeImpl::getElementsByTagNameNS):
          (DOM::NodeImpl::showTreeAndMark):
          (DOM::ContainerNodeImpl::addChild):
          (DOM::TagNodeListImpl::TagNodeListImpl):
          (DOM::TagNodeListImpl::item):
          (DOM::TagNodeListImpl::nodeMatches):
          * khtml/xml/dom_nodeimpl.h:
          (DOM::NodeImpl::hasTagName):
          (DOM::NodeImpl::isCommentNode):
          (DOM::NodeImpl::isDocumentNode):
          (DOM::NodeImpl::closeRenderer):
          (DOM::NodeImpl::getElementsByTagName):
          * khtml/xml/dom_position.cpp:
          (DOM::Position::downstream):
          (DOM::Position::rendersInDifferentPosition):
          (DOM::Position::leadingWhitespacePosition):
          (DOM::Position::trailingWhitespacePosition):
          * khtml/xml/dom_qname.cpp:
          (DOM::hashComponents):
          (DOM::QNameHash::hash):
          (DOM::QNameHash::equal):
          (DOM::equalComponents):
          (DOM::convertComponents):
          (DOM::QualifiedName::QualifiedName):
          (DOM::QualifiedName::deref):
          (DOM::QualifiedName::setPrefix):
          * khtml/xml/dom_qname.h:
          (DOM::QualifiedName::hasPrefix):
          (DOM::operator==):
          * khtml/xml/dom_textimpl.cpp:
          (CommentImpl::localName):
          (CommentImpl::nodeName):
          (TextImpl::localName):
          (TextImpl::nodeName):
          * khtml/xml/dom_textimpl.h:
          (DOM::CommentImpl::isCommentNode):
          (DOM::TextImpl::isTextNode):
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::XMLTokenizer::startElement):
          (khtml::XMLTokenizer::insertErrorMessageBlock):
          (khtml::XMLTokenizer::addScripts):
          * kwq/DOM.mm:
          (-[DOMNode setPrefix:]):
          (+[DOMNode _nodeWithImpl:]):
          (-[DOMElement tagName]):
          * kwq/DOMHTML.mm:
          (-[DOMHTMLQuoteElement _quoteElementImpl]):
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject role]):
          (-[KWQAccObject title]):
          (-[KWQAccObject accessibilityIsIgnored]):
          * kwq/KWQDOMNode.cpp: Removed.
          * kwq/KWQDOMNode.h: Removed.
          * kwq/KWQFont.h:
          (QFont::):
          (QFont::isFixedPitch):
          * kwq/KWQFont.mm:
          (QFont::QFont):
          (QFont::operator=):
          (QFont::determinePitch):
          (QFont::operator==):
          * kwq/KWQKHTMLPart.cpp:
          (KWQKHTMLPart::isFrameSet):
          * kwq/KWQKHTMLPart.mm:
          (scanForForm):
          (KWQKHTMLPart::currentForm):
          (KWQKHTMLPart::searchForLabelsAboveCell):
          (KWQKHTMLPart::searchForLabelsBeforeElement):
          (listParent):
          (isTextFirstInListItem):
          (KWQKHTMLPart::attributedString):
          (KWQKHTMLPart::styleForSelectionStart):
          (KWQKHTMLPart::setSelectionFromNone):
          * kwq/KWQRenderTreeDebug.cpp:
          (getTagName):
          * kwq/WebCoreBridge.mm:
          (inputElementFromDOMElement):
          (formElementFromDOMElement):
          (-[WebCoreBridge elementAtPoint:]):
          * layout-tests/fast/dom/css-dom-read-expected.txt:
          * layout-tests/fast/overflow/003-expected.txt:
          * layout-tests/fast/tokenizer/002-expected.txt:
          * layout-tests/fast/tokenizer/external-script-document-write-expected.txt:
          * layout-tests/fast/tokenizer/script_extra_close-expected.txt:
          * layout-tests/fast/tokenizer/script_quirk-expected.txt: Removed.
          * layout-tests/fast/tokenizer/script_quirk.html: Removed.
  
  2005-07-08  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs/hyatt (just approved the changelog).
  
          * ForwardingHeaders/kdom/css/impl/cssproperties.h: Added.
          * ForwardingHeaders/kdom/css/impl/cssvalues.h: Added.
          * ForwardingHeaders/ksvg2/KSVGPart.h: Added.
          * ForwardingHeaders/ksvg2/KSVGView.h: Added.
          * ForwardingHeaders/ksvg2/css/impl/cssproperties.h: Added.
          * ForwardingHeaders/ksvg2/css/impl/cssvalues.h: Added.
          * ForwardingHeaders/ksvg2/data/Constructors.lut.h: Added.
          * ForwardingHeaders/ksvg2/data/GlobalObject.lut.h: Added.
          * WebCore.pbproj/project.pbxproj:  Added WebCore+SVG Target.
          * kcanvas/DESIGN: Added.
          * kcanvas/KCanvas.cc: Added.
          * kcanvas/KCanvas.h: Added.
          * kcanvas/KCanvasContainer.cc: Added.
          * kcanvas/KCanvasContainer.h: Added.
          * kcanvas/KCanvasCreator.cc: Added.
          * kcanvas/KCanvasCreator.h: Added.
          * kcanvas/KCanvasFilters.cc: Added.
          * kcanvas/KCanvasFilters.h: Added.
          * kcanvas/KCanvasImage.cc: Added.
          * kcanvas/KCanvasImage.h: Added.
          * kcanvas/KCanvasItem.cc: Added.
          * kcanvas/KCanvasItem.h: Added.
          * kcanvas/KCanvasMatrix.cc: Added.
          * kcanvas/KCanvasMatrix.h: Added.
          * kcanvas/KCanvasPath.h: Added.
          * kcanvas/KCanvasRegistry.cc: Added.
          * kcanvas/KCanvasRegistry.h: Added.
          * kcanvas/KCanvasResourceListener.h: Added.
          * kcanvas/KCanvasResources.cc: Added.
          * kcanvas/KCanvasResources.h: Added.
          * kcanvas/KCanvasTypes.h: Added.
          * kcanvas/KCanvasView.cc: Added.
          * kcanvas/KCanvasView.h: Added.
          * kcanvas/KCanvasView.moc: Added.
          * kcanvas/device/KRenderingDevice.cc: Added.
          * kcanvas/device/KRenderingDevice.h: Added.
          * kcanvas/device/KRenderingDevice.moc: Added.
          * kcanvas/device/KRenderingDeviceFactory.cc: Added.
          * kcanvas/device/KRenderingDeviceFactory.h: Added.
          * kcanvas/device/KRenderingFillPainter.cc: Added.
          * kcanvas/device/KRenderingFillPainter.h: Added.
          * kcanvas/device/KRenderingPaintServer.h: Added.
          * kcanvas/device/KRenderingPaintServerGradient.cc: Added.
          * kcanvas/device/KRenderingPaintServerGradient.h: Added.
          * kcanvas/device/KRenderingPaintServerImage.cc: Added.
          * kcanvas/device/KRenderingPaintServerImage.h: Added.
          * kcanvas/device/KRenderingPaintServerPattern.cc: Added.
          * kcanvas/device/KRenderingPaintServerPattern.h: Added.
          * kcanvas/device/KRenderingPaintServerSolid.cc: Added.
          * kcanvas/device/KRenderingPaintServerSolid.h: Added.
          * kcanvas/device/KRenderingStrokePainter.cc: Added.
          * kcanvas/device/KRenderingStrokePainter.h: Added.
          * kcanvas/device/KRenderingStyle.cc: Added.
          * kcanvas/device/KRenderingStyle.h: Added.
          * kcanvas/device/quartz/KCanvasFilterQuartz.h: Added.
          * kcanvas/device/quartz/KCanvasFilterQuartz.mm: Added.
          * kcanvas/device/quartz/KCanvasItemQuartz.h: Added.
          * kcanvas/device/quartz/KCanvasItemQuartz.mm: Added.
          * kcanvas/device/quartz/KCanvasResourcesQuartz.h: Added.
          * kcanvas/device/quartz/KCanvasResourcesQuartz.mm: Added.
          * kcanvas/device/quartz/KCanvasViewQuartz.h: Added.
          * kcanvas/device/quartz/KCanvasViewQuartz.mm: Added.
          * kcanvas/device/quartz/KRenderingDeviceQuartz.h: Added.
          * kcanvas/device/quartz/KRenderingDeviceQuartz.mm: Added.
          * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm: Added.
          * kcanvas/device/quartz/KRenderingPaintServerQuartz.h: Added.
          * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm: Added.
          * kcanvas/device/quartz/QuartzSupport.h: Added.
          * kcanvas/device/quartz/QuartzSupport.mm: Added.
          * kdom/AUTHORS: Added.
          * kdom/Attr.cc: Added.
          * kdom/Attr.h: Added.
          * kdom/CDATASection.cc: Added.
          * kdom/CDATASection.h: Added.
          * kdom/CharacterData.cc: Added.
          * kdom/CharacterData.h: Added.
          * kdom/Comment.cc: Added.
          * kdom/Comment.h: Added.
          * kdom/DOMConfiguration.cc: Added.
          * kdom/DOMConfiguration.h: Added.
          * kdom/DOMError.cc: Added.
          * kdom/DOMError.h: Added.
          * kdom/DOMErrorHandler.cc: Added.
          * kdom/DOMErrorHandler.h: Added.
          * kdom/DOMException.cc: Added.
          * kdom/DOMException.h: Added.
          * kdom/DOMImplementation.cc: Added.
          * kdom/DOMImplementation.h: Added.
          * kdom/DOMLocator.cc: Added.
          * kdom/DOMLocator.h: Added.
          * kdom/DOMObject.cc: Added.
          * kdom/DOMObject.h: Added.
          * kdom/DOMString.cc: Added.
          * kdom/DOMString.h: Added.
          * kdom/DOMStringList.cc: Added.
          * kdom/DOMStringList.h: Added.
          * kdom/DOMUserData.cc: Added.
          * kdom/DOMUserData.h: Added.
          * kdom/Document.cc: Added.
          * kdom/Document.h: Added.
          * kdom/DocumentFragment.cc: Added.
          * kdom/DocumentFragment.h: Added.
          * kdom/DocumentType.cc: Added.
          * kdom/DocumentType.h: Added.
          * kdom/Element.cc: Added.
          * kdom/Element.h: Added.
          * kdom/Entity.cc: Added.
          * kdom/Entity.h: Added.
          * kdom/EntityReference.cc: Added.
          * kdom/EntityReference.h: Added.
          * kdom/Helper.cc: Added.
          * kdom/Helper.h: Added.
          * kdom/KDOMPart.cc: Added.
          * kdom/KDOMPart.h: Added.
          * kdom/KDOMSettings.cc: Added.
          * kdom/KDOMSettings.h: Added.
          * kdom/KDOMView.cc: Added.
          * kdom/KDOMView.h: Added.
          * kdom/NOTES: Added.
          * kdom/NamedNodeMap.cc: Added.
          * kdom/NamedNodeMap.h: Added.
          * kdom/Namespace.h: Added.
          * kdom/Node.cc: Added.
          * kdom/Node.h: Added.
          * kdom/NodeList.cc: Added.
          * kdom/NodeList.h: Added.
          * kdom/Notation.cc: Added.
          * kdom/Notation.h: Added.
          * kdom/ProcessingInstruction.cc: Added.
          * kdom/ProcessingInstruction.h: Added.
          * kdom/Shared.cc: Added.
          * kdom/Shared.h: Added.
          * kdom/Text.cc: Added.
          * kdom/Text.h: Added.
          * kdom/TreeShared.h: Added.
          * kdom/TypeInfo.cc: Added.
          * kdom/TypeInfo.h: Added.
          * kdom/backends/libxml/LibXMLParser.cc: Added.
          * kdom/backends/libxml/LibXMLParser.h: Added.
          * kdom/backends/libxml/LibXMLParser.moc: Added.
          * kdom/cache/IconData.h: Added.
          * kdom/cache/ImageSource.cc: Added.
          * kdom/cache/ImageSource.h: Added.
          * kdom/cache/KDOMCache.cc: Added.
          * kdom/cache/KDOMCache.h: Added.
          * kdom/cache/KDOMCacheHelper.h: Added.
          * kdom/cache/KDOMCachedDocument.cc: Added.
          * kdom/cache/KDOMCachedDocument.h: Added.
          * kdom/cache/KDOMCachedImage.cc: Added.
          * kdom/cache/KDOMCachedImage.h: Added.
          * kdom/cache/KDOMCachedImage.moc: Added.
          * kdom/cache/KDOMCachedObject.cc: Added.
          * kdom/cache/KDOMCachedObject.h: Added.
          * kdom/cache/KDOMCachedObjectClient.h: Added.
          * kdom/cache/KDOMCachedScript.cc: Added.
          * kdom/cache/KDOMCachedScript.h: Added.
          * kdom/cache/KDOMCachedStyleSheet.cc: Added.
          * kdom/cache/KDOMCachedStyleSheet.h: Added.
          * kdom/cache/KDOMLoader.cc: Added.
          * kdom/cache/KDOMLoader.h: Added.
          * kdom/cache/KDOMLoader.moc: Added.
          * kdom/css/CSSCharsetRule.cc: Added.
          * kdom/css/CSSCharsetRule.h: Added.
          * kdom/css/CSSFontFaceRule.cc: Added.
          * kdom/css/CSSFontFaceRule.h: Added.
          * kdom/css/CSSHelper.h: Added.
          * kdom/css/CSSImportRule.cc: Added.
          * kdom/css/CSSImportRule.h: Added.
          * kdom/css/CSSMediaRule.cc: Added.
          * kdom/css/CSSMediaRule.h: Added.
          * kdom/css/CSSPageRule.cc: Added.
          * kdom/css/CSSPageRule.h: Added.
          * kdom/css/CSSPrimitiveValue.cc: Added.
          * kdom/css/CSSPrimitiveValue.h: Added.
          * kdom/css/CSSRule.cc: Added.
          * kdom/css/CSSRule.h: Added.
          * kdom/css/CSSRuleList.cc: Added.
          * kdom/css/CSSRuleList.h: Added.
          * kdom/css/CSSStyleDeclaration.cc: Added.
          * kdom/css/CSSStyleDeclaration.h: Added.
          * kdom/css/CSSStyleRule.cc: Added.
          * kdom/css/CSSStyleRule.h: Added.
          * kdom/css/CSSStyleSheet.cc: Added.
          * kdom/css/CSSStyleSheet.h: Added.
          * kdom/css/CSSUnknownRule.cc: Added.
          * kdom/css/CSSUnknownRule.h: Added.
          * kdom/css/CSSValue.cc: Added.
          * kdom/css/CSSValue.h: Added.
          * kdom/css/CSSValueList.cc: Added.
          * kdom/css/CSSValueList.h: Added.
          * kdom/css/Counter.cc: Added.
          * kdom/css/Counter.h: Added.
          * kdom/css/DOMImplementationCSS.cc: Added.
          * kdom/css/DOMImplementationCSS.h: Added.
          * kdom/css/DocumentCSS.cc: Added.
          * kdom/css/DocumentCSS.h: Added.
          * kdom/css/DocumentStyle.cc: Added.
          * kdom/css/DocumentStyle.h: Added.
          * kdom/css/LinkStyle.cc: Added.
          * kdom/css/LinkStyle.h: Added.
          * kdom/css/MediaList.cc: Added.
          * kdom/css/MediaList.h: Added.
          * kdom/css/RGBColor.cc: Added.
          * kdom/css/RGBColor.h: Added.
          * kdom/css/Rect.cc: Added.
          * kdom/css/Rect.h: Added.
          * kdom/css/StyleSheet.cc: Added.
          * kdom/css/StyleSheet.h: Added.
          * kdom/css/StyleSheetList.cc: Added.
          * kdom/css/StyleSheetList.h: Added.
          * kdom/css/ViewCSS.cc: Added.
          * kdom/css/ViewCSS.h: Added.
          * kdom/css/impl/CSSCharsetRuleImpl.cc: Added.
          * kdom/css/impl/CSSCharsetRuleImpl.h: Added.
          * kdom/css/impl/CSSFontFaceRuleImpl.cc: Added.
          * kdom/css/impl/CSSFontFaceRuleImpl.h: Added.
          * kdom/css/impl/CSSImageValueImpl.cc: Added.
          * kdom/css/impl/CSSImageValueImpl.h: Added.
          * kdom/css/impl/CSSImportRuleImpl.cc: Added.
          * kdom/css/impl/CSSImportRuleImpl.h: Added.
          * kdom/css/impl/CSSMediaRuleImpl.cc: Added.
          * kdom/css/impl/CSSMediaRuleImpl.h: Added.
          * kdom/css/impl/CSSPageRuleImpl.cc: Added.
          * kdom/css/impl/CSSPageRuleImpl.h: Added.
          * kdom/css/impl/CSSPrimitiveValueImpl.cc: Added.
          * kdom/css/impl/CSSPrimitiveValueImpl.h: Added.
          * kdom/css/impl/CSSRuleImpl.cc: Added.
          * kdom/css/impl/CSSRuleImpl.h: Added.
          * kdom/css/impl/CSSRuleListImpl.cc: Added.
          * kdom/css/impl/CSSRuleListImpl.h: Added.
          * kdom/css/impl/CSSStyleDeclarationImpl.cc: Added.
          * kdom/css/impl/CSSStyleDeclarationImpl.h: Added.
          * kdom/css/impl/CSSStyleRuleImpl.cc: Added.
          * kdom/css/impl/CSSStyleRuleImpl.h: Added.
          * kdom/css/impl/CSSStyleSelector.cc: Added.
          * kdom/css/impl/CSSStyleSelector.h: Added.
          * kdom/css/impl/CSSStyleSheetImpl.cc: Added.
          * kdom/css/impl/CSSStyleSheetImpl.h: Added.
          * kdom/css/impl/CSSUnknownRuleImpl.cc: Added.
          * kdom/css/impl/CSSUnknownRuleImpl.h: Added.
          * kdom/css/impl/CSSValueImpl.cc: Added.
          * kdom/css/impl/CSSValueImpl.h: Added.
          * kdom/css/impl/CSSValueListImpl.cc: Added.
          * kdom/css/impl/CSSValueListImpl.h: Added.
          * kdom/css/impl/CounterImpl.cc: Added.
          * kdom/css/impl/CounterImpl.h: Added.
          * kdom/css/impl/DocumentStyleImpl.cc: Added.
          * kdom/css/impl/DocumentStyleImpl.h: Added.
          * kdom/css/impl/Font.cc: Added.
          * kdom/css/impl/Font.h: Added.
          * kdom/css/impl/KDOMCSSParser.cc: Added.
          * kdom/css/impl/KDOMCSSParser.h: Added.
          * kdom/css/impl/MediaListImpl.cc: Added.
          * kdom/css/impl/MediaListImpl.h: Added.
          * kdom/css/impl/RGBColorImpl.cc: Added.
          * kdom/css/impl/RGBColorImpl.h: Added.
          * kdom/css/impl/RectImpl.cc: Added.
          * kdom/css/impl/RectImpl.h: Added.
          * kdom/css/impl/RenderStyle.cc: Added.
          * kdom/css/impl/RenderStyle.h: Added.
          * kdom/css/impl/RenderStyleDefs.cc: Added.
          * kdom/css/impl/RenderStyleDefs.h: Added.
          * kdom/css/impl/StyleBaseImpl.cc: Added.
          * kdom/css/impl/StyleBaseImpl.h: Added.
          * kdom/css/impl/StyleSheetImpl.cc: Added.
          * kdom/css/impl/StyleSheetImpl.h: Added.
          * kdom/css/impl/StyleSheetListImpl.cc: Added.
          * kdom/css/impl/StyleSheetListImpl.h: Added.
          * kdom/css/impl/cssproperties.in: Added.
          * kdom/css/impl/cssvalues.in: Added.
          * kdom/css/impl/kdomparsercss.y: Added.
          * kdom/css/impl/tokenizer.cpp: Added.
          * kdom/css/kdomcss.h: Added.
          * kdom/data/CSSConstants.h: Added.
          * kdom/data/DOMConstants.h: Added.
          * kdom/data/EcmaConstants.h: Added.
          * kdom/data/EventsConstants.h: Added.
          * kdom/data/LSConstants.h: Added.
          * kdom/data/RangeConstants.h: Added.
          * kdom/data/TraversalConstants.h: Added.
          * kdom/data/ViewConstants.h: Added.
          * kdom/data/XPathConstants.h: Added.
          * kdom/data/generateddata.cc: Added.
          * kdom/ecma/Constructors.cc: Added.
          * kdom/ecma/Constructors.h: Added.
          * kdom/ecma/DOMBridge.h: Added.
          * kdom/ecma/DOMLookup.h: Added.
          * kdom/ecma/Ecma.cc: Added.
          * kdom/ecma/Ecma.h: Added.
          * kdom/ecma/EcmaInterface.h: Added.
          * kdom/ecma/GlobalObject.cc: Added.
          * kdom/ecma/GlobalObject.h: Added.
          * kdom/ecma/GlobalObject.moc: Added.
          * kdom/ecma/Helper.cc: Added.
          * kdom/ecma/ScriptInterpreter.cc: Added.
          * kdom/ecma/ScriptInterpreter.h: Added.
          * kdom/events/DocumentEvent.cc: Added.
          * kdom/events/DocumentEvent.h: Added.
          * kdom/events/Event.cc: Added.
          * kdom/events/Event.h: Added.
          * kdom/events/EventException.cc: Added.
          * kdom/events/EventException.h: Added.
          * kdom/events/EventListener.cc: Added.
          * kdom/events/EventListener.h: Added.
          * kdom/events/EventTarget.cc: Added.
          * kdom/events/EventTarget.h: Added.
          * kdom/events/KeyboardEvent.cc: Added.
          * kdom/events/KeyboardEvent.h: Added.
          * kdom/events/MouseEvent.cc: Added.
          * kdom/events/MouseEvent.h: Added.
          * kdom/events/MutationEvent.cc: Added.
          * kdom/events/MutationEvent.h: Added.
          * kdom/events/UIEvent.cc: Added.
          * kdom/events/UIEvent.h: Added.
          * kdom/events/impl/DocumentEventImpl.cc: Added.
          * kdom/events/impl/DocumentEventImpl.h: Added.
          * kdom/events/impl/EventExceptionImpl.cc: Added.
          * kdom/events/impl/EventExceptionImpl.h: Added.
          * kdom/events/impl/EventImpl.cc: Added.
          * kdom/events/impl/EventImpl.h: Added.
          * kdom/events/impl/EventListenerImpl.cc: Added.
          * kdom/events/impl/EventListenerImpl.h: Added.
          * kdom/events/impl/EventTargetImpl.cc: Added.
          * kdom/events/impl/EventTargetImpl.h: Added.
          * kdom/events/impl/KeyboardEventImpl.cc: Added.
          * kdom/events/impl/KeyboardEventImpl.h: Added.
          * kdom/events/impl/MouseEventImpl.cc: Added.
          * kdom/events/impl/MouseEventImpl.h: Added.
          * kdom/events/impl/MutationEventImpl.cc: Added.
          * kdom/events/impl/MutationEventImpl.h: Added.
          * kdom/events/impl/RegisteredEventListener.cc: Added.
          * kdom/events/impl/RegisteredEventListener.h: Added.
          * kdom/events/impl/UIEventImpl.cc: Added.
          * kdom/events/impl/UIEventImpl.h: Added.
          * kdom/events/kdomevents.h: Added.
          * kdom/impl/AttrImpl.cc: Added.
          * kdom/impl/AttrImpl.h: Added.
          * kdom/impl/CDATASectionImpl.cc: Added.
          * kdom/impl/CDATASectionImpl.h: Added.
          * kdom/impl/CDFInterface.cc: Added.
          * kdom/impl/CDFInterface.h: Added.
          * kdom/impl/CharacterDataImpl.cc: Added.
          * kdom/impl/CharacterDataImpl.h: Added.
          * kdom/impl/CommentImpl.cc: Added.
          * kdom/impl/CommentImpl.h: Added.
          * kdom/impl/DOMConfigurationImpl.cc: Added.
          * kdom/impl/DOMConfigurationImpl.h: Added.
          * kdom/impl/DOMErrorHandlerImpl.cc: Added.
          * kdom/impl/DOMErrorHandlerImpl.h: Added.
          * kdom/impl/DOMErrorImpl.cc: Added.
          * kdom/impl/DOMErrorImpl.h: Added.
          * kdom/impl/DOMExceptionImpl.cc: Added.
          * kdom/impl/DOMExceptionImpl.h: Added.
          * kdom/impl/DOMImplementationImpl.cc: Added.
          * kdom/impl/DOMImplementationImpl.h: Added.
          * kdom/impl/DOMList.h: Added.
          * kdom/impl/DOMLocatorImpl.cc: Added.
          * kdom/impl/DOMLocatorImpl.h: Added.
          * kdom/impl/DOMStringImpl.cc: Added.
          * kdom/impl/DOMStringImpl.h: Added.
          * kdom/impl/DOMStringListImpl.cc: Added.
          * kdom/impl/DOMStringListImpl.h: Added.
          * kdom/impl/DOMUserDataImpl.cc: Added.
          * kdom/impl/DOMUserDataImpl.h: Added.
          * kdom/impl/DocumentFragmentImpl.cc: Added.
          * kdom/impl/DocumentFragmentImpl.h: Added.
          * kdom/impl/DocumentImpl.cc: Added.
          * kdom/impl/DocumentImpl.h: Added.
          * kdom/impl/DocumentTypeImpl.cc: Added.
          * kdom/impl/DocumentTypeImpl.h: Added.
          * kdom/impl/ElementImpl.cc: Added.
          * kdom/impl/ElementImpl.h: Added.
          * kdom/impl/EntityImpl.cc: Added.
          * kdom/impl/EntityImpl.h: Added.
          * kdom/impl/EntityReferenceImpl.cc: Added.
          * kdom/impl/EntityReferenceImpl.h: Added.
          * kdom/impl/NamedAttrMapImpl.cc: Added.
          * kdom/impl/NamedAttrMapImpl.h: Added.
          * kdom/impl/NamedNodeMapImpl.cc: Added.
          * kdom/impl/NamedNodeMapImpl.h: Added.
          * kdom/impl/NodeImpl.cc: Added.
          * kdom/impl/NodeImpl.h: Added.
          * kdom/impl/NodeKeeper.cc: Added.
          * kdom/impl/NodeKeeper.h: Added.
          * kdom/impl/NodeListImpl.cc: Added.
          * kdom/impl/NodeListImpl.h: Added.
          * kdom/impl/NotationImpl.cc: Added.
          * kdom/impl/NotationImpl.h: Added.
          * kdom/impl/ProcessingInstructionImpl.cc: Added.
          * kdom/impl/ProcessingInstructionImpl.h: Added.
          * kdom/impl/TagNodeListImpl.cc: Added.
          * kdom/impl/TagNodeListImpl.h: Added.
          * kdom/impl/TextImpl.cc: Added.
          * kdom/impl/TextImpl.h: Added.
          * kdom/impl/TypeInfoImpl.cc: Added.
          * kdom/impl/TypeInfoImpl.h: Added.
          * kdom/impl/XMLElementImpl.cc: Added.
          * kdom/impl/XMLElementImpl.h: Added.
          * kdom/impl/domattrs.c: Added.
          * kdom/impl/domattrs.h: Added.
          * kdom/impl/domattrs.in: Added.
          * kdom/kdom.h: Added.
          * kdom/ls/DOMImplementationLS.cc: Added.
          * kdom/ls/DOMImplementationLS.h: Added.
          * kdom/ls/LSException.cc: Added.
          * kdom/ls/LSException.h: Added.
          * kdom/ls/LSInput.cc: Added.
          * kdom/ls/LSInput.h: Added.
          * kdom/ls/LSOutput.cc: Added.
          * kdom/ls/LSOutput.h: Added.
          * kdom/ls/LSParser.cc: Added.
          * kdom/ls/LSParser.h: Added.
          * kdom/ls/LSParserFilter.cc: Added.
          * kdom/ls/LSParserFilter.h: Added.
          * kdom/ls/LSResourceResolver.cc: Added.
          * kdom/ls/LSResourceResolver.h: Added.
          * kdom/ls/LSSerializer.cc: Added.
          * kdom/ls/LSSerializer.h: Added.
          * kdom/ls/LSSerializerFilter.cc: Added.
          * kdom/ls/LSSerializerFilter.h: Added.
          * kdom/ls/impl/LSExceptionImpl.cc: Added.
          * kdom/ls/impl/LSExceptionImpl.h: Added.
          * kdom/ls/impl/LSInputImpl.cc: Added.
          * kdom/ls/impl/LSInputImpl.h: Added.
          * kdom/ls/impl/LSOutputImpl.cc: Added.
          * kdom/ls/impl/LSOutputImpl.h: Added.
          * kdom/ls/impl/LSParserFilterImpl.cc: Added.
          * kdom/ls/impl/LSParserFilterImpl.h: Added.
          * kdom/ls/impl/LSParserImpl.cc: Added.
          * kdom/ls/impl/LSParserImpl.h: Added.
          * kdom/ls/impl/LSResourceResolverImpl.cc: Added.
          * kdom/ls/impl/LSResourceResolverImpl.h: Added.
          * kdom/ls/impl/LSSerializerFilterImpl.cc: Added.
          * kdom/ls/impl/LSSerializerFilterImpl.h: Added.
          * kdom/ls/impl/LSSerializerImpl.cc: Added.
          * kdom/ls/impl/LSSerializerImpl.h: Added.
          * kdom/ls/kdomls.h: Added.
          * kdom/parser/KDOMDataSlave.moc: Added.
          * kdom/parser/KDOMDocumentBuilder.cc: Added.
          * kdom/parser/KDOMDocumentBuilder.h: Added.
          * kdom/parser/KDOMParser.cc: Added.
          * kdom/parser/KDOMParser.h: Added.
          * kdom/parser/KDOMParser.moc: Added.
          * kdom/range/DocumentRange.cc: Added.
          * kdom/range/DocumentRange.h: Added.
          * kdom/range/Range.cc: Added.
          * kdom/range/Range.h: Added.
          * kdom/range/RangeException.cc: Added.
          * kdom/range/RangeException.h: Added.
          * kdom/range/impl/DocumentRangeImpl.cc: Added.
          * kdom/range/impl/DocumentRangeImpl.h: Added.
          * kdom/range/impl/RangeExceptionImpl.cc: Added.
          * kdom/range/impl/RangeExceptionImpl.h: Added.
          * kdom/range/impl/RangeImpl.cc: Added.
          * kdom/range/impl/RangeImpl.h: Added.
          * kdom/range/kdomrange.h: Added.
          * kdom/scripts/OVERVIEW: Added.
          * kdom/scripts/constants.pl: Added.
          * kdom/scripts/css.idl: Added.
          * kdom/scripts/cssmakeprops: Added.
          * kdom/scripts/cssmakevalues: Added.
          * kdom/scripts/dom2-core.idl: Added.
          * kdom/scripts/dom2-events.idl: Added.
          * kdom/scripts/dom2-range.idl: Added.
          * kdom/scripts/dom2-traversal.idl: Added.
          * kdom/scripts/dom2-views.idl: Added.
          * kdom/scripts/dommakeattrs: Added.
          * kdom/scripts/generate.pl: Added.
          * kdom/scripts/kalyptusKDOMEcma.pm: Added.
          * kdom/scripts/stylesheets.idl: Added.
          * kdom/traversal/DocumentTraversal.cc: Added.
          * kdom/traversal/DocumentTraversal.h: Added.
          * kdom/traversal/NodeFilter.cc: Added.
          * kdom/traversal/NodeFilter.h: Added.
          * kdom/traversal/NodeIterator.cc: Added.
          * kdom/traversal/NodeIterator.h: Added.
          * kdom/traversal/TreeWalker.cc: Added.
          * kdom/traversal/TreeWalker.h: Added.
          * kdom/traversal/impl/DocumentTraversalImpl.cc: Added.
          * kdom/traversal/impl/DocumentTraversalImpl.h: Added.
          * kdom/traversal/impl/NodeFilterImpl.cc: Added.
          * kdom/traversal/impl/NodeFilterImpl.h: Added.
          * kdom/traversal/impl/NodeIteratorImpl.cc: Added.
          * kdom/traversal/impl/NodeIteratorImpl.h: Added.
          * kdom/traversal/impl/TraversalImpl.cc: Added.
          * kdom/traversal/impl/TraversalImpl.h: Added.
          * kdom/traversal/impl/TreeWalkerImpl.cc: Added.
          * kdom/traversal/impl/TreeWalkerImpl.h: Added.
          * kdom/traversal/kdomtraversal.h: Added.
          * kdom/views/AbstractView.cc: Added.
          * kdom/views/AbstractView.h: Added.
          * kdom/views/DocumentView.cc: Added.
          * kdom/views/DocumentView.h: Added.
          * kdom/views/impl/AbstractViewImpl.cc: Added.
          * kdom/views/impl/AbstractViewImpl.h: Added.
          * kdom/views/impl/DocumentViewImpl.cc: Added.
          * kdom/views/impl/DocumentViewImpl.h: Added.
          * kdom/xpath/XPathEvaluator.cc: Added.
          * kdom/xpath/XPathEvaluator.h: Added.
          * kdom/xpath/XPathException.cc: Added.
          * kdom/xpath/XPathException.h: Added.
          * kdom/xpath/XPathExpression.cc: Added.
          * kdom/xpath/XPathExpression.h: Added.
          * kdom/xpath/XPathNSResolver.cc: Added.
          * kdom/xpath/XPathNSResolver.h: Added.
          * kdom/xpath/XPathNamespace.cc: Added.
          * kdom/xpath/XPathNamespace.h: Added.
          * kdom/xpath/XPathResult.cc: Added.
          * kdom/xpath/XPathResult.h: Added.
          * kdom/xpath/impl/AxisImpl.cc: Added.
          * kdom/xpath/impl/AxisImpl.h: Added.
          * kdom/xpath/impl/ContextImpl.cc: Added.
          * kdom/xpath/impl/ContextImpl.h: Added.
          * kdom/xpath/impl/ExprNodeImpl.cc: Added.
          * kdom/xpath/impl/ExprNodeImpl.h: Added.
          * kdom/xpath/impl/FILES: Added.
          * kdom/xpath/impl/LiteralImpl.cc: Added.
          * kdom/xpath/impl/LiteralImpl.h: Added.
          * kdom/xpath/impl/OperatorImpl.cc: Added.
          * kdom/xpath/impl/OperatorImpl.h: Added.
          * kdom/xpath/impl/ScopeImpl.cc: Added.
          * kdom/xpath/impl/ScopeImpl.h: Added.
          * kdom/xpath/impl/StepImpl.cc: Added.
          * kdom/xpath/impl/StepImpl.h: Added.
          * kdom/xpath/impl/VariableRefImpl.cc: Added.
          * kdom/xpath/impl/VariableRefImpl.h: Added.
          * kdom/xpath/impl/XPathCustomExceptionImpl.cc: Added.
          * kdom/xpath/impl/XPathCustomExceptionImpl.h: Added.
          * kdom/xpath/impl/XPathEvaluatorImpl.cc: Added.
          * kdom/xpath/impl/XPathEvaluatorImpl.h: Added.
          * kdom/xpath/impl/XPathExceptionImpl.cc: Added.
          * kdom/xpath/impl/XPathExceptionImpl.h: Added.
          * kdom/xpath/impl/XPathExpressionFilterImpl.cc: Added.
          * kdom/xpath/impl/XPathExpressionFilterImpl.h: Added.
          * kdom/xpath/impl/XPathExpressionImpl.cc: Added.
          * kdom/xpath/impl/XPathExpressionImpl.h: Added.
          * kdom/xpath/impl/XPathFactory1Impl.cc: Added.
          * kdom/xpath/impl/XPathFactory1Impl.h: Added.
          * kdom/xpath/impl/XPathFactoryBaseImpl.cc: Added.
          * kdom/xpath/impl/XPathFactoryBaseImpl.h: Added.
          * kdom/xpath/impl/XPathHelper.cc: Added.
          * kdom/xpath/impl/XPathHelper.h: Added.
          * kdom/xpath/impl/XPathNSResolverImpl.cc: Added.
          * kdom/xpath/impl/XPathNSResolverImpl.h: Added.
          * kdom/xpath/impl/XPathNamespaceImpl.cc: Added.
          * kdom/xpath/impl/XPathNamespaceImpl.h: Added.
          * kdom/xpath/impl/XPathResultImpl.cc: Added.
          * kdom/xpath/impl/XPathResultImpl.h: Added.
          * kdom/xpath/impl/data/BooleanImpl.cc: Added.
          * kdom/xpath/impl/data/BooleanImpl.h: Added.
          * kdom/xpath/impl/data/NodeSetImpl.cc: Added.
          * kdom/xpath/impl/data/NodeSetImpl.h: Added.
          * kdom/xpath/impl/data/NumberImpl.cc: Added.
          * kdom/xpath/impl/data/NumberImpl.h: Added.
          * kdom/xpath/impl/data/StringImpl.cc: Added.
          * kdom/xpath/impl/data/StringImpl.h: Added.
          * kdom/xpath/impl/data/ValueImpl.cc: Added.
          * kdom/xpath/impl/data/ValueImpl.h: Added.
          * kdom/xpath/impl/functions1/FunctionCallImpl.cc: Added.
          * kdom/xpath/impl/functions1/FunctionCallImpl.h: Added.
          * kdom/xpath/impl/functions1/README: Added.
          * kdom/xpath/impl/functions1/boolean_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/boolean_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/ceiling_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/ceiling_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/concat_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/concat_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/contains_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/contains_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/false_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/false_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/floor_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/floor_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/normalize-space_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/normalize-space_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/not_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/not_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/number_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/number_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/round_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/round_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/starts-with_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/starts-with_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/string-length_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/string-length_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/string_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/string_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/substring-after_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/substring-after_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/substring-before_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/substring-before_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/substring_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/substring_fnxp1.h: Added.
          * kdom/xpath/impl/functions1/true_fnxp1.cc: Added.
          * kdom/xpath/impl/functions1/true_fnxp1.h: Added.
          * kdom/xpath/impl/parser/Lexer.cc: Added.
          * kdom/xpath/impl/parser/Lexer.h: Added.
          * kdom/xpath/impl/parser/Lexer.l: Added.
          * kdom/xpath/impl/parser/ParserState.cc: Added.
          * kdom/xpath/impl/parser/ParserState.h: Added.
          * kdom/xpath/impl/parser/xpath.ypp: Added.
          * kdom/xpath/impl/utils/QNameImpl.cc: Added.
          * kdom/xpath/impl/utils/QNameImpl.h: Added.
          * kdom/xpath/kdomxpath.h: Added.
          * kdom/xpointer/XPointerEvaluator.cc: Added.
          * kdom/xpointer/XPointerEvaluator.h: Added.
          * kdom/xpointer/XPointerException.cc: Added.
          * kdom/xpointer/XPointerException.h: Added.
          * kdom/xpointer/XPointerExpression.cc: Added.
          * kdom/xpointer/XPointerExpression.h: Added.
          * kdom/xpointer/XPointerHelper.cc: Added.
          * kdom/xpointer/XPointerHelper.h: Added.
          * kdom/xpointer/XPointerResult.cc: Added.
          * kdom/xpointer/XPointerResult.h: Added.
          * kdom/xpointer/impl/ElementSchemeImpl.cc: Added.
          * kdom/xpointer/impl/ElementSchemeImpl.h: Added.
          * kdom/xpointer/impl/NBCImpl.cc: Added.
          * kdom/xpointer/impl/NBCImpl.h: Added.
          * kdom/xpointer/impl/PointerPartImpl.cc: Added.
          * kdom/xpointer/impl/PointerPartImpl.h: Added.
          * kdom/xpointer/impl/ShortHandImpl.cc: Added.
          * kdom/xpointer/impl/ShortHandImpl.h: Added.
          * kdom/xpointer/impl/XMLNSSchemeImpl.cc: Added.
          * kdom/xpointer/impl/XMLNSSchemeImpl.h: Added.
          * kdom/xpointer/impl/XPath1SchemeImpl.cc: Added.
          * kdom/xpointer/impl/XPath1SchemeImpl.h: Added.
          * kdom/xpointer/impl/XPointerEvaluatorImpl.cc: Added.
          * kdom/xpointer/impl/XPointerEvaluatorImpl.h: Added.
          * kdom/xpointer/impl/XPointerExceptionImpl.cc: Added.
          * kdom/xpointer/impl/XPointerExceptionImpl.h: Added.
          * kdom/xpointer/impl/XPointerExpressionImpl.cc: Added.
          * kdom/xpointer/impl/XPointerExpressionImpl.h: Added.
          * kdom/xpointer/impl/XPointerResultImpl.cc: Added.
          * kdom/xpointer/impl/XPointerResultImpl.h: Added.
          * kdom/xpointer/impl/XPointerSchemeImpl.cc: Added.
          * kdom/xpointer/impl/XPointerSchemeImpl.h: Added.
          * kdom/xpointer/kdomxpointer.h: Added.
          * ksvg2/KSVGFactory.cc: Added.
          * ksvg2/KSVGFactory.h: Added.
          * ksvg2/KSVGSettings.cc: Added.
          * ksvg2/KSVGSettings.h: Added.
          * ksvg2/KSVGSlotStubs.h: Added.
          * ksvg2/KWQKSVGPart.h: Added.
          * ksvg2/KWQKSVGPart.mm: Added.
          * ksvg2/KWQKSVGView.h: Added.
          * ksvg2/KWQKSVGView.mm: Added.
          * ksvg2/css/impl/KSVGCSSParser.cc: Added.
          * ksvg2/css/impl/KSVGCSSParser.h: Added.
          * ksvg2/css/impl/SVGCSSStyleDeclarationImpl.cc: Added.
          * ksvg2/css/impl/SVGCSSStyleDeclarationImpl.h: Added.
          * ksvg2/css/impl/SVGCSSStyleSelector.cc: Added.
          * ksvg2/css/impl/SVGCSSStyleSelector.h: Added.
          * ksvg2/css/impl/SVGCSSStyleSheetImpl.cc: Added.
          * ksvg2/css/impl/SVGCSSStyleSheetImpl.h: Added.
          * ksvg2/css/impl/SVGRenderStyle.cc: Added.
          * ksvg2/css/impl/SVGRenderStyle.h: Added.
          * ksvg2/css/impl/SVGRenderStyleDefs.cc: Added.
          * ksvg2/css/impl/SVGRenderStyleDefs.h: Added.
          * ksvg2/css/impl/cssproperties.in: Added.
          * ksvg2/css/impl/cssvalues.in: Added.
          * ksvg2/css/impl/svg.css: Added.
          * ksvg2/data/CSSConstants.h: Added.
          * ksvg2/data/EcmaConstants.h: Added.
          * ksvg2/data/EventsConstants.h: Added.
          * ksvg2/data/SVGConstants.h: Added.
          * ksvg2/data/generateddata.cc: Added.
          * ksvg2/dom/SVGAElement.cc: Added.
          * ksvg2/dom/SVGAElement.h: Added.
          * ksvg2/dom/SVGAngle.cc: Added.
          * ksvg2/dom/SVGAngle.h: Added.
          * ksvg2/dom/SVGAnimateColorElement.cc: Added.
          * ksvg2/dom/SVGAnimateColorElement.h: Added.
          * ksvg2/dom/SVGAnimateElement.cc: Added.
          * ksvg2/dom/SVGAnimateElement.h: Added.
          * ksvg2/dom/SVGAnimateTransformElement.cc: Added.
          * ksvg2/dom/SVGAnimateTransformElement.h: Added.
          * ksvg2/dom/SVGAnimatedAngle.cc: Added.
          * ksvg2/dom/SVGAnimatedAngle.h: Added.
          * ksvg2/dom/SVGAnimatedBoolean.cc: Added.
          * ksvg2/dom/SVGAnimatedBoolean.h: Added.
          * ksvg2/dom/SVGAnimatedEnumeration.cc: Added.
          * ksvg2/dom/SVGAnimatedEnumeration.h: Added.
          * ksvg2/dom/SVGAnimatedInteger.cc: Added.
          * ksvg2/dom/SVGAnimatedInteger.h: Added.
          * ksvg2/dom/SVGAnimatedLength.cc: Added.
          * ksvg2/dom/SVGAnimatedLength.h: Added.
          * ksvg2/dom/SVGAnimatedLengthList.cc: Added.
          * ksvg2/dom/SVGAnimatedLengthList.h: Added.
          * ksvg2/dom/SVGAnimatedNumber.cc: Added.
          * ksvg2/dom/SVGAnimatedNumber.h: Added.
          * ksvg2/dom/SVGAnimatedNumberList.cc: Added.
          * ksvg2/dom/SVGAnimatedNumberList.h: Added.
          * ksvg2/dom/SVGAnimatedPathData.cc: Added.
          * ksvg2/dom/SVGAnimatedPathData.h: Added.
          * ksvg2/dom/SVGAnimatedPoints.cc: Added.
          * ksvg2/dom/SVGAnimatedPoints.h: Added.
          * ksvg2/dom/SVGAnimatedPreserveAspectRatio.cc: Added.
          * ksvg2/dom/SVGAnimatedPreserveAspectRatio.h: Added.
          * ksvg2/dom/SVGAnimatedRect.cc: Added.
          * ksvg2/dom/SVGAnimatedRect.h: Added.
          * ksvg2/dom/SVGAnimatedString.cc: Added.
          * ksvg2/dom/SVGAnimatedString.h: Added.
          * ksvg2/dom/SVGAnimatedTransformList.cc: Added.
          * ksvg2/dom/SVGAnimatedTransformList.h: Added.
          * ksvg2/dom/SVGAnimationElement.cc: Added.
          * ksvg2/dom/SVGAnimationElement.h: Added.
          * ksvg2/dom/SVGCircleElement.cc: Added.
          * ksvg2/dom/SVGCircleElement.h: Added.
          * ksvg2/dom/SVGClipPathElement.cc: Added.
          * ksvg2/dom/SVGClipPathElement.h: Added.
          * ksvg2/dom/SVGColor.cc: Added.
          * ksvg2/dom/SVGColor.h: Added.
          * ksvg2/dom/SVGComponentTransferFunctionElement.cc: Added.
          * ksvg2/dom/SVGComponentTransferFunctionElement.h: Added.
          * ksvg2/dom/SVGDOMImplementation.cc: Added.
          * ksvg2/dom/SVGDOMImplementation.h: Added.
          * ksvg2/dom/SVGDefsElement.cc: Added.
          * ksvg2/dom/SVGDefsElement.h: Added.
          * ksvg2/dom/SVGDescElement.cc: Added.
          * ksvg2/dom/SVGDescElement.h: Added.
          * ksvg2/dom/SVGDocument.cc: Added.
          * ksvg2/dom/SVGDocument.h: Added.
          * ksvg2/dom/SVGElement.cc: Added.
          * ksvg2/dom/SVGElement.h: Added.
          * ksvg2/dom/SVGElementInstance.cc: Added.
          * ksvg2/dom/SVGElementInstance.h: Added.
          * ksvg2/dom/SVGElementInstanceList.cc: Added.
          * ksvg2/dom/SVGElementInstanceList.h: Added.
          * ksvg2/dom/SVGEllipseElement.cc: Added.
          * ksvg2/dom/SVGEllipseElement.h: Added.
          * ksvg2/dom/SVGException.cc: Added.
          * ksvg2/dom/SVGException.h: Added.
          * ksvg2/dom/SVGExternalResourcesRequired.cc: Added.
          * ksvg2/dom/SVGExternalResourcesRequired.h: Added.
          * ksvg2/dom/SVGFEBlendElement.cc: Added.
          * ksvg2/dom/SVGFEBlendElement.h: Added.
          * ksvg2/dom/SVGFEColorMatrixElement.cc: Added.
          * ksvg2/dom/SVGFEColorMatrixElement.h: Added.
          * ksvg2/dom/SVGFEComponentTransferElement.cc: Added.
          * ksvg2/dom/SVGFEComponentTransferElement.h: Added.
          * ksvg2/dom/SVGFECompositeElement.cc: Added.
          * ksvg2/dom/SVGFECompositeElement.h: Added.
          * ksvg2/dom/SVGFEFloodElement.cc: Added.
          * ksvg2/dom/SVGFEFloodElement.h: Added.
          * ksvg2/dom/SVGFEFuncAElement.cc: Added.
          * ksvg2/dom/SVGFEFuncAElement.h: Added.
          * ksvg2/dom/SVGFEFuncBElement.cc: Added.
          * ksvg2/dom/SVGFEFuncBElement.h: Added.
          * ksvg2/dom/SVGFEFuncGElement.cc: Added.
          * ksvg2/dom/SVGFEFuncGElement.h: Added.
          * ksvg2/dom/SVGFEFuncRElement.cc: Added.
          * ksvg2/dom/SVGFEFuncRElement.h: Added.
          * ksvg2/dom/SVGFEGaussianBlurElement.cc: Added.
          * ksvg2/dom/SVGFEGaussianBlurElement.h: Added.
          * ksvg2/dom/SVGFEImageElement.cc: Added.
          * ksvg2/dom/SVGFEImageElement.h: Added.
          * ksvg2/dom/SVGFEMergeElement.cc: Added.
          * ksvg2/dom/SVGFEMergeElement.h: Added.
          * ksvg2/dom/SVGFEMergeNodeElement.cc: Added.
          * ksvg2/dom/SVGFEMergeNodeElement.h: Added.
          * ksvg2/dom/SVGFEOffsetElement.cc: Added.
          * ksvg2/dom/SVGFEOffsetElement.h: Added.
          * ksvg2/dom/SVGFETileElement.cc: Added.
          * ksvg2/dom/SVGFETileElement.h: Added.
          * ksvg2/dom/SVGFETurbulenceElement.cc: Added.
          * ksvg2/dom/SVGFETurbulenceElement.h: Added.
          * ksvg2/dom/SVGFilterElement.cc: Added.
          * ksvg2/dom/SVGFilterElement.h: Added.
          * ksvg2/dom/SVGFilterPrimitiveStandardAttributes.cc: Added.
          * ksvg2/dom/SVGFilterPrimitiveStandardAttributes.h: Added.
          * ksvg2/dom/SVGFitToViewBox.cc: Added.
          * ksvg2/dom/SVGFitToViewBox.h: Added.
          * ksvg2/dom/SVGGElement.cc: Added.
          * ksvg2/dom/SVGGElement.h: Added.
          * ksvg2/dom/SVGGradientElement.cc: Added.
          * ksvg2/dom/SVGGradientElement.h: Added.
          * ksvg2/dom/SVGImageElement.cc: Added.
          * ksvg2/dom/SVGImageElement.h: Added.
          * ksvg2/dom/SVGLangSpace.cc: Added.
          * ksvg2/dom/SVGLangSpace.h: Added.
          * ksvg2/dom/SVGLength.cc: Added.
          * ksvg2/dom/SVGLength.h: Added.
          * ksvg2/dom/SVGLengthList.cc: Added.
          * ksvg2/dom/SVGLengthList.h: Added.
          * ksvg2/dom/SVGLineElement.cc: Added.
          * ksvg2/dom/SVGLineElement.h: Added.
          * ksvg2/dom/SVGLinearGradientElement.cc: Added.
          * ksvg2/dom/SVGLinearGradientElement.h: Added.
          * ksvg2/dom/SVGLocatable.cc: Added.
          * ksvg2/dom/SVGLocatable.h: Added.
          * ksvg2/dom/SVGMarkerElement.cc: Added.
          * ksvg2/dom/SVGMarkerElement.h: Added.
          * ksvg2/dom/SVGMatrix.cc: Added.
          * ksvg2/dom/SVGMatrix.h: Added.
          * ksvg2/dom/SVGNumber.cc: Added.
          * ksvg2/dom/SVGNumber.h: Added.
          * ksvg2/dom/SVGNumberList.cc: Added.
          * ksvg2/dom/SVGNumberList.h: Added.
          * ksvg2/dom/SVGPaint.cc: Added.
          * ksvg2/dom/SVGPaint.h: Added.
          * ksvg2/dom/SVGPathElement.cc: Added.
          * ksvg2/dom/SVGPathElement.h: Added.
          * ksvg2/dom/SVGPathSeg.cc: Added.
          * ksvg2/dom/SVGPathSeg.h: Added.
          * ksvg2/dom/SVGPathSegArc.cc: Added.
          * ksvg2/dom/SVGPathSegArc.h: Added.
          * ksvg2/dom/SVGPathSegClosePath.cc: Added.
          * ksvg2/dom/SVGPathSegClosePath.h: Added.
          * ksvg2/dom/SVGPathSegCurvetoCubic.cc: Added.
          * ksvg2/dom/SVGPathSegCurvetoCubic.h: Added.
          * ksvg2/dom/SVGPathSegCurvetoCubicSmooth.cc: Added.
          * ksvg2/dom/SVGPathSegCurvetoCubicSmooth.h: Added.
          * ksvg2/dom/SVGPathSegCurvetoQuadratic.cc: Added.
          * ksvg2/dom/SVGPathSegCurvetoQuadratic.h: Added.
          * ksvg2/dom/SVGPathSegCurvetoQuadraticSmooth.cc: Added.
          * ksvg2/dom/SVGPathSegCurvetoQuadraticSmooth.h: Added.
          * ksvg2/dom/SVGPathSegLineto.cc: Added.
          * ksvg2/dom/SVGPathSegLineto.h: Added.
          * ksvg2/dom/SVGPathSegLinetoHorizontal.cc: Added.
          * ksvg2/dom/SVGPathSegLinetoHorizontal.h: Added.
          * ksvg2/dom/SVGPathSegLinetoVertical.cc: Added.
          * ksvg2/dom/SVGPathSegLinetoVertical.h: Added.
          * ksvg2/dom/SVGPathSegList.cc: Added.
          * ksvg2/dom/SVGPathSegList.h: Added.
          * ksvg2/dom/SVGPathSegMoveto.cc: Added.
          * ksvg2/dom/SVGPathSegMoveto.h: Added.
          * ksvg2/dom/SVGPatternElement.cc: Added.
          * ksvg2/dom/SVGPatternElement.h: Added.
          * ksvg2/dom/SVGPoint.cc: Added.
          * ksvg2/dom/SVGPoint.h: Added.
          * ksvg2/dom/SVGPointList.cc: Added.
          * ksvg2/dom/SVGPointList.h: Added.
          * ksvg2/dom/SVGPolygonElement.cc: Added.
          * ksvg2/dom/SVGPolygonElement.h: Added.
          * ksvg2/dom/SVGPolylineElement.cc: Added.
          * ksvg2/dom/SVGPolylineElement.h: Added.
          * ksvg2/dom/SVGPreserveAspectRatio.cc: Added.
          * ksvg2/dom/SVGPreserveAspectRatio.h: Added.
          * ksvg2/dom/SVGRadialGradientElement.cc: Added.
          * ksvg2/dom/SVGRadialGradientElement.h: Added.
          * ksvg2/dom/SVGRect.cc: Added.
          * ksvg2/dom/SVGRect.h: Added.
          * ksvg2/dom/SVGRectElement.cc: Added.
          * ksvg2/dom/SVGRectElement.h: Added.
          * ksvg2/dom/SVGSVGElement.cc: Added.
          * ksvg2/dom/SVGSVGElement.h: Added.
          * ksvg2/dom/SVGScriptElement.cc: Added.
          * ksvg2/dom/SVGScriptElement.h: Added.
          * ksvg2/dom/SVGSetElement.cc: Added.
          * ksvg2/dom/SVGSetElement.h: Added.
          * ksvg2/dom/SVGStopElement.cc: Added.
          * ksvg2/dom/SVGStopElement.h: Added.
          * ksvg2/dom/SVGStringList.cc: Added.
          * ksvg2/dom/SVGStringList.h: Added.
          * ksvg2/dom/SVGStylable.cc: Added.
          * ksvg2/dom/SVGStylable.h: Added.
          * ksvg2/dom/SVGStyleElement.cc: Added.
          * ksvg2/dom/SVGStyleElement.h: Added.
          * ksvg2/dom/SVGSwitchElement.cc: Added.
          * ksvg2/dom/SVGSwitchElement.h: Added.
          * ksvg2/dom/SVGSymbolElement.cc: Added.
          * ksvg2/dom/SVGSymbolElement.h: Added.
          * ksvg2/dom/SVGTSpanElement.cc: Added.
          * ksvg2/dom/SVGTSpanElement.h: Added.
          * ksvg2/dom/SVGTests.cc: Added.
          * ksvg2/dom/SVGTests.h: Added.
          * ksvg2/dom/SVGTextContentElement.cc: Added.
          * ksvg2/dom/SVGTextContentElement.h: Added.
          * ksvg2/dom/SVGTextElement.cc: Added.
          * ksvg2/dom/SVGTextElement.h: Added.
          * ksvg2/dom/SVGTextPositioningElement.cc: Added.
          * ksvg2/dom/SVGTextPositioningElement.h: Added.
          * ksvg2/dom/SVGTitleElement.cc: Added.
          * ksvg2/dom/SVGTitleElement.h: Added.
          * ksvg2/dom/SVGTransform.cc: Added.
          * ksvg2/dom/SVGTransform.h: Added.
          * ksvg2/dom/SVGTransformList.cc: Added.
          * ksvg2/dom/SVGTransformList.h: Added.
          * ksvg2/dom/SVGTransformable.cc: Added.
          * ksvg2/dom/SVGTransformable.h: Added.
          * ksvg2/dom/SVGURIReference.cc: Added.
          * ksvg2/dom/SVGURIReference.h: Added.
          * ksvg2/dom/SVGUseElement.cc: Added.
          * ksvg2/dom/SVGUseElement.h: Added.
          * ksvg2/dom/SVGViewElement.cc: Added.
          * ksvg2/dom/SVGViewElement.h: Added.
          * ksvg2/dom/SVGZoomAndPan.cc: Added.
          * ksvg2/dom/SVGZoomAndPan.h: Added.
          * ksvg2/ecma/Constructors.cc: Added.
          * ksvg2/ecma/Constructors.h: Added.
          * ksvg2/ecma/Ecma.cc: Added.
          * ksvg2/ecma/Ecma.h: Added.
          * ksvg2/ecma/EcmaInterface.h: Added.
          * ksvg2/ecma/GlobalObject.cc: Added.
          * ksvg2/ecma/GlobalObject.h: Added.
          * ksvg2/ecma/SVGLookup.h: Added.
          * ksvg2/events/SVGEvent.cc: Added.
          * ksvg2/events/SVGEvent.h: Added.
          * ksvg2/events/SVGZoomEvent.cc: Added.
          * ksvg2/events/SVGZoomEvent.h: Added.
          * ksvg2/events/impl/SVGEventImpl.cc: Added.
          * ksvg2/events/impl/SVGEventImpl.h: Added.
          * ksvg2/events/impl/SVGZoomEventImpl.cc: Added.
          * ksvg2/events/impl/SVGZoomEventImpl.h: Added.
          * ksvg2/events/ksvgevents.h: Added.
          * ksvg2/impl/CDFInterface.cc: Added.
          * ksvg2/impl/CDFInterface.h: Added.
          * ksvg2/impl/SVGAElementImpl.cc: Added.
          * ksvg2/impl/SVGAElementImpl.h: Added.
          * ksvg2/impl/SVGAngleImpl.cc: Added.
          * ksvg2/impl/SVGAngleImpl.h: Added.
          * ksvg2/impl/SVGAnimateColorElementImpl.cc: Added.
          * ksvg2/impl/SVGAnimateColorElementImpl.h: Added.
          * ksvg2/impl/SVGAnimateElementImpl.cc: Added.
          * ksvg2/impl/SVGAnimateElementImpl.h: Added.
          * ksvg2/impl/SVGAnimateTransformElementImpl.cc: Added.
          * ksvg2/impl/SVGAnimateTransformElementImpl.h: Added.
          * ksvg2/impl/SVGAnimatedAngleImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedAngleImpl.h: Added.
          * ksvg2/impl/SVGAnimatedBooleanImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedBooleanImpl.h: Added.
          * ksvg2/impl/SVGAnimatedEnumerationImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedEnumerationImpl.h: Added.
          * ksvg2/impl/SVGAnimatedIntegerImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedIntegerImpl.h: Added.
          * ksvg2/impl/SVGAnimatedLengthImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedLengthImpl.h: Added.
          * ksvg2/impl/SVGAnimatedLengthListImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedLengthListImpl.h: Added.
          * ksvg2/impl/SVGAnimatedNumberImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedNumberImpl.h: Added.
          * ksvg2/impl/SVGAnimatedNumberListImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedNumberListImpl.h: Added.
          * ksvg2/impl/SVGAnimatedPathDataImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedPathDataImpl.h: Added.
          * ksvg2/impl/SVGAnimatedPointsImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedPointsImpl.h: Added.
          * ksvg2/impl/SVGAnimatedPreserveAspectRatioImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedPreserveAspectRatioImpl.h: Added.
          * ksvg2/impl/SVGAnimatedRectImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedRectImpl.h: Added.
          * ksvg2/impl/SVGAnimatedStringImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedStringImpl.h: Added.
          * ksvg2/impl/SVGAnimatedTemplate.h: Added.
          * ksvg2/impl/SVGAnimatedTransformListImpl.cc: Added.
          * ksvg2/impl/SVGAnimatedTransformListImpl.h: Added.
          * ksvg2/impl/SVGAnimationElementImpl.cc: Added.
          * ksvg2/impl/SVGAnimationElementImpl.h: Added.
          * ksvg2/impl/SVGCircleElementImpl.cc: Added.
          * ksvg2/impl/SVGCircleElementImpl.h: Added.
          * ksvg2/impl/SVGClipPathElementImpl.cc: Added.
          * ksvg2/impl/SVGClipPathElementImpl.h: Added.
          * ksvg2/impl/SVGColorImpl.cc: Added.
          * ksvg2/impl/SVGColorImpl.h: Added.
          * ksvg2/impl/SVGComponentTransferFunctionElementImpl.cc: Added.
          * ksvg2/impl/SVGComponentTransferFunctionElementImpl.h: Added.
          * ksvg2/impl/SVGDOMImplementationImpl.cc: Added.
          * ksvg2/impl/SVGDOMImplementationImpl.h: Added.
          * ksvg2/impl/SVGDefsElementImpl.cc: Added.
          * ksvg2/impl/SVGDefsElementImpl.h: Added.
          * ksvg2/impl/SVGDescElementImpl.cc: Added.
          * ksvg2/impl/SVGDescElementImpl.h: Added.
          * ksvg2/impl/SVGDocumentImpl.cc: Added.
          * ksvg2/impl/SVGDocumentImpl.h: Added.
          * ksvg2/impl/SVGElementImpl.cc: Added.
          * ksvg2/impl/SVGElementImpl.h: Added.
          * ksvg2/impl/SVGElementInstanceImpl.cc: Added.
          * ksvg2/impl/SVGElementInstanceImpl.h: Added.
          * ksvg2/impl/SVGElementInstanceListImpl.cc: Added.
          * ksvg2/impl/SVGElementInstanceListImpl.h: Added.
          * ksvg2/impl/SVGEllipseElementImpl.cc: Added.
          * ksvg2/impl/SVGEllipseElementImpl.h: Added.
          * ksvg2/impl/SVGExceptionImpl.cc: Added.
          * ksvg2/impl/SVGExceptionImpl.h: Added.
          * ksvg2/impl/SVGExternalResourcesRequiredImpl.cc: Added.
          * ksvg2/impl/SVGExternalResourcesRequiredImpl.h: Added.
          * ksvg2/impl/SVGFEBlendElementImpl.cc: Added.
          * ksvg2/impl/SVGFEBlendElementImpl.h: Added.
          * ksvg2/impl/SVGFEColorMatrixElementImpl.cc: Added.
          * ksvg2/impl/SVGFEColorMatrixElementImpl.h: Added.
          * ksvg2/impl/SVGFEComponentTransferElementImpl.cc: Added.
          * ksvg2/impl/SVGFEComponentTransferElementImpl.h: Added.
          * ksvg2/impl/SVGFECompositeElementImpl.cc: Added.
          * ksvg2/impl/SVGFECompositeElementImpl.h: Added.
          * ksvg2/impl/SVGFEFloodElementImpl.cc: Added.
          * ksvg2/impl/SVGFEFloodElementImpl.h: Added.
          * ksvg2/impl/SVGFEFuncAElementImpl.cc: Added.
          * ksvg2/impl/SVGFEFuncAElementImpl.h: Added.
          * ksvg2/impl/SVGFEFuncBElementImpl.cc: Added.
          * ksvg2/impl/SVGFEFuncBElementImpl.h: Added.
          * ksvg2/impl/SVGFEFuncGElementImpl.cc: Added.
          * ksvg2/impl/SVGFEFuncGElementImpl.h: Added.
          * ksvg2/impl/SVGFEFuncRElementImpl.cc: Added.
          * ksvg2/impl/SVGFEFuncRElementImpl.h: Added.
          * ksvg2/impl/SVGFEGaussianBlurElementImpl.cc: Added.
          * ksvg2/impl/SVGFEGaussianBlurElementImpl.h: Added.
          * ksvg2/impl/SVGFEImageElementImpl.cc: Added.
          * ksvg2/impl/SVGFEImageElementImpl.h: Added.
          * ksvg2/impl/SVGFEMergeElementImpl.cc: Added.
          * ksvg2/impl/SVGFEMergeElementImpl.h: Added.
          * ksvg2/impl/SVGFEMergeNodeElementImpl.cc: Added.
          * ksvg2/impl/SVGFEMergeNodeElementImpl.h: Added.
          * ksvg2/impl/SVGFEOffsetElementImpl.cc: Added.
          * ksvg2/impl/SVGFEOffsetElementImpl.h: Added.
          * ksvg2/impl/SVGFETileElementImpl.cc: Added.
          * ksvg2/impl/SVGFETileElementImpl.h: Added.
          * ksvg2/impl/SVGFETurbulenceElementImpl.cc: Added.
          * ksvg2/impl/SVGFETurbulenceElementImpl.h: Added.
          * ksvg2/impl/SVGFilterElementImpl.cc: Added.
          * ksvg2/impl/SVGFilterElementImpl.h: Added.
          * ksvg2/impl/SVGFilterPrimitiveStandardAttributesImpl.cc: Added.
          * ksvg2/impl/SVGFilterPrimitiveStandardAttributesImpl.h: Added.
          * ksvg2/impl/SVGFitToViewBoxImpl.cc: Added.
          * ksvg2/impl/SVGFitToViewBoxImpl.h: Added.
          * ksvg2/impl/SVGGElementImpl.cc: Added.
          * ksvg2/impl/SVGGElementImpl.h: Added.
          * ksvg2/impl/SVGGradientElementImpl.cc: Added.
          * ksvg2/impl/SVGGradientElementImpl.h: Added.
          * ksvg2/impl/SVGHelper.cc: Added.
          * ksvg2/impl/SVGHelper.h: Added.
          * ksvg2/impl/SVGImageElementImpl.cc: Added.
          * ksvg2/impl/SVGImageElementImpl.h: Added.
          * ksvg2/impl/SVGLangSpaceImpl.cc: Added.
          * ksvg2/impl/SVGLangSpaceImpl.h: Added.
          * ksvg2/impl/SVGLengthImpl.cc: Added.
          * ksvg2/impl/SVGLengthImpl.h: Added.
          * ksvg2/impl/SVGLengthListImpl.cc: Added.
          * ksvg2/impl/SVGLengthListImpl.h: Added.
          * ksvg2/impl/SVGLineElementImpl.cc: Added.
          * ksvg2/impl/SVGLineElementImpl.h: Added.
          * ksvg2/impl/SVGLinearGradientElementImpl.cc: Added.
          * ksvg2/impl/SVGLinearGradientElementImpl.h: Added.
          * ksvg2/impl/SVGList.h: Added.
          * ksvg2/impl/SVGLocatableImpl.cc: Added.
          * ksvg2/impl/SVGLocatableImpl.h: Added.
          * ksvg2/impl/SVGMarkerElementImpl.cc: Added.
          * ksvg2/impl/SVGMarkerElementImpl.h: Added.
          * ksvg2/impl/SVGMatrixImpl.cc: Added.
          * ksvg2/impl/SVGMatrixImpl.h: Added.
          * ksvg2/impl/SVGNumberImpl.cc: Added.
          * ksvg2/impl/SVGNumberImpl.h: Added.
          * ksvg2/impl/SVGNumberListImpl.cc: Added.
          * ksvg2/impl/SVGNumberListImpl.h: Added.
          * ksvg2/impl/SVGPaintImpl.cc: Added.
          * ksvg2/impl/SVGPaintImpl.h: Added.
          * ksvg2/impl/SVGPathElementImpl.cc: Added.
          * ksvg2/impl/SVGPathElementImpl.h: Added.
          * ksvg2/impl/SVGPathSegArcImpl.cc: Added.
          * ksvg2/impl/SVGPathSegArcImpl.h: Added.
          * ksvg2/impl/SVGPathSegClosePathImpl.cc: Added.
          * ksvg2/impl/SVGPathSegClosePathImpl.h: Added.
          * ksvg2/impl/SVGPathSegCurvetoCubicImpl.cc: Added.
          * ksvg2/impl/SVGPathSegCurvetoCubicImpl.h: Added.
          * ksvg2/impl/SVGPathSegCurvetoCubicSmoothImpl.cc: Added.
          * ksvg2/impl/SVGPathSegCurvetoCubicSmoothImpl.h: Added.
          * ksvg2/impl/SVGPathSegCurvetoQuadraticImpl.cc: Added.
          * ksvg2/impl/SVGPathSegCurvetoQuadraticImpl.h: Added.
          * ksvg2/impl/SVGPathSegCurvetoQuadraticSmoothImpl.cc: Added.
          * ksvg2/impl/SVGPathSegCurvetoQuadraticSmoothImpl.h: Added.
          * ksvg2/impl/SVGPathSegImpl.cc: Added.
          * ksvg2/impl/SVGPathSegImpl.h: Added.
          * ksvg2/impl/SVGPathSegLinetoHorizontalImpl.cc: Added.
          * ksvg2/impl/SVGPathSegLinetoHorizontalImpl.h: Added.
          * ksvg2/impl/SVGPathSegLinetoImpl.cc: Added.
          * ksvg2/impl/SVGPathSegLinetoImpl.h: Added.
          * ksvg2/impl/SVGPathSegLinetoVerticalImpl.cc: Added.
          * ksvg2/impl/SVGPathSegLinetoVerticalImpl.h: Added.
          * ksvg2/impl/SVGPathSegListImpl.cc: Added.
          * ksvg2/impl/SVGPathSegListImpl.h: Added.
          * ksvg2/impl/SVGPathSegMovetoImpl.cc: Added.
          * ksvg2/impl/SVGPathSegMovetoImpl.h: Added.
          * ksvg2/impl/SVGPatternElementImpl.cc: Added.
          * ksvg2/impl/SVGPatternElementImpl.h: Added.
          * ksvg2/impl/SVGPointImpl.cc: Added.
          * ksvg2/impl/SVGPointImpl.h: Added.
          * ksvg2/impl/SVGPointListImpl.cc: Added.
          * ksvg2/impl/SVGPointListImpl.h: Added.
          * ksvg2/impl/SVGPolyElementImpl.cc: Added.
          * ksvg2/impl/SVGPolyElementImpl.h: Added.
          * ksvg2/impl/SVGPolygonElementImpl.cc: Added.
          * ksvg2/impl/SVGPolygonElementImpl.h: Added.
          * ksvg2/impl/SVGPolylineElementImpl.cc: Added.
          * ksvg2/impl/SVGPolylineElementImpl.h: Added.
          * ksvg2/impl/SVGPreserveAspectRatioImpl.cc: Added.
          * ksvg2/impl/SVGPreserveAspectRatioImpl.h: Added.
          * ksvg2/impl/SVGRadialGradientElementImpl.cc: Added.
          * ksvg2/impl/SVGRadialGradientElementImpl.h: Added.
          * ksvg2/impl/SVGRectElementImpl.cc: Added.
          * ksvg2/impl/SVGRectElementImpl.h: Added.
          * ksvg2/impl/SVGRectImpl.cc: Added.
          * ksvg2/impl/SVGRectImpl.h: Added.
          * ksvg2/impl/SVGSVGElementImpl.cc: Added.
          * ksvg2/impl/SVGSVGElementImpl.h: Added.
          * ksvg2/impl/SVGScriptElementImpl.cc: Added.
          * ksvg2/impl/SVGScriptElementImpl.h: Added.
          * ksvg2/impl/SVGSetElementImpl.cc: Added.
          * ksvg2/impl/SVGSetElementImpl.h: Added.
          * ksvg2/impl/SVGStopElementImpl.cc: Added.
          * ksvg2/impl/SVGStopElementImpl.h: Added.
          * ksvg2/impl/SVGStringListImpl.cc: Added.
          * ksvg2/impl/SVGStringListImpl.h: Added.
          * ksvg2/impl/SVGStylableImpl.cc: Added.
          * ksvg2/impl/SVGStylableImpl.h: Added.
          * ksvg2/impl/SVGStyleElementImpl.cc: Added.
          * ksvg2/impl/SVGStyleElementImpl.h: Added.
          * ksvg2/impl/SVGStyledElementImpl.cc: Added.
          * ksvg2/impl/SVGStyledElementImpl.h: Added.
          * ksvg2/impl/SVGSwitchElementImpl.cc: Added.
          * ksvg2/impl/SVGSwitchElementImpl.h: Added.
          * ksvg2/impl/SVGSymbolElementImpl.cc: Added.
          * ksvg2/impl/SVGSymbolElementImpl.h: Added.
          * ksvg2/impl/SVGTSpanElementImpl.cc: Added.
          * ksvg2/impl/SVGTSpanElementImpl.h: Added.
          * ksvg2/impl/SVGTestsImpl.cc: Added.
          * ksvg2/impl/SVGTestsImpl.h: Added.
          * ksvg2/impl/SVGTextContentElementImpl.cc: Added.
          * ksvg2/impl/SVGTextContentElementImpl.h: Added.
          * ksvg2/impl/SVGTextElementImpl.cc: Added.
          * ksvg2/impl/SVGTextElementImpl.h: Added.
          * ksvg2/impl/SVGTextPositioningElementImpl.cc: Added.
          * ksvg2/impl/SVGTextPositioningElementImpl.h: Added.
          * ksvg2/impl/SVGTitleElementImpl.cc: Added.
          * ksvg2/impl/SVGTitleElementImpl.h: Added.
          * ksvg2/impl/SVGTransformImpl.cc: Added.
          * ksvg2/impl/SVGTransformImpl.h: Added.
          * ksvg2/impl/SVGTransformListImpl.cc: Added.
          * ksvg2/impl/SVGTransformListImpl.h: Added.
          * ksvg2/impl/SVGTransformableImpl.cc: Added.
          * ksvg2/impl/SVGTransformableImpl.h: Added.
          * ksvg2/impl/SVGURIReferenceImpl.cc: Added.
          * ksvg2/impl/SVGURIReferenceImpl.h: Added.
          * ksvg2/impl/SVGUseElementImpl.cc: Added.
          * ksvg2/impl/SVGUseElementImpl.h: Added.
          * ksvg2/impl/SVGViewElementImpl.cc: Added.
          * ksvg2/impl/SVGViewElementImpl.h: Added.
          * ksvg2/impl/SVGZoomAndPanImpl.cc: Added.
          * ksvg2/impl/SVGZoomAndPanImpl.h: Added.
          * ksvg2/impl/svgattrs.c: Added.
          * ksvg2/impl/svgattrs.h: Added.
          * ksvg2/impl/svgattrs.in: Added.
          * ksvg2/impl/svgpathparser.cc: Added.
          * ksvg2/impl/svgpathparser.h: Added.
          * ksvg2/impl/svgtags.c: Added.
          * ksvg2/impl/svgtags.h: Added.
          * ksvg2/impl/svgtags.in: Added.
          * ksvg2/ksvg.h: Added.
          * ksvg2/scripts/generate.pl: Added.
          * ksvg2/scripts/kalyptusKDOMEcma.pm: Added.
          * ksvg2/scripts/ksvgstatus.xsl: Added.
          * ksvg2/scripts/regressiontest.sh: Added.
          * ksvg2/scripts/regressiontestsetup.sh: Added.
          * ksvg2/scripts/svg.idl: Added.
          Several things to mention here:
          1.  Function names were stripped out of the ChangeLog for brevity.
          2.  Several files (like the c++ DOM) are only in here temporarily.
          3.  Several files (like kdom/catalog) were left out of CVS as they
          do not currently work in our kdom port.  Those may or may not be
          added in the future.
          4.  Notes re: the WebCore+SVG target
            - APPLE_COMPILE_HACK is a temporary addition for compiling
            - None of the SVG or KDOM files are compiled in "WebCore" by default.
            - Compiling WebCore+SVG requires compiling JavaScriptCore+SVG
              to enable RTTI support in JavaScriptCore.
  
  2005-07-08  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * kwq/KWQRegExp.h: Added cap() support.
          * kwq/KWQRegExp.mm: Added cap() support.
          (QRegExp::match): Changes necessary for cap()
          (QRegExp::cap): based off of JSC's pcre support.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3847
  
  2005-07-08  Geoffrey Garen  <ggaren at apple.com>
  
          Rolled in layout test for fix to 
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3818
          Fallback font doesn't have requested weight in ATSUI-rendered text
  
          Reviewed by mjs.
  
          Test cases added:
          * layout-tests/fast/text/international/bidi-fallback-font-weight-expected.txt: Added.
          * layout-tests/fast/text/international/bidi-fallback-font-weight.html: Added.
  
  2005-07-08  Beth Dakin  <bdakin at apple.com>
  
          Reviewed by John.
  
  	This is a fix for half of <rdar://problem/4172312>
  	Because marquee is a WinIE element, we are honoring their treatment of the height attribute by making sure it is overriden when its value is given to be smaller than the font height.
  
          Test cases added: fast/css/MarqueeLayoutTest.html
  
          * khtml/html/html_blockimpl.cpp:
          (HTMLMarqueeElementImpl::mapToEntry): set result to eMarquee instead of eUniversal for height attribute
          (HTMLMarqueeElementImpl::parseMappedAttribute): changed to minheight instead of just height
          * khtml/xml/dom_elementimpl.h: added eMarquee hash key
  	(QScrollView::suppressScrollBars):
          * layout-tests/fast/css/MarqueeLayoutTest-expected.txt: Added.
          * layout-tests/fast/css/MarqueeLayoutTest.html: Added.
         
  2005-07-08  Vicki Murley  <vicki at apple.com>
  
  	Fix from Carsten Guenther, reviewed by Maciej
  
  	- update test cases for JavaScriptCore fix 
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3644 
  
          * layout-tests/fast/dom/outerText-no-element-expected.txt:
          * layout-tests/fast/dynamic/outerHTML-no-element-expected.txt:
          * layout-tests/fast/js/array-every-expected.txt:
          * layout-tests/fast/js/array-foreach-expected.txt:
          * layout-tests/fast/js/array-some-expected.txt:
          * layout-tests/fast/js/toString-stack-overflow-expected.txt:
  
  2005-07-08  Vicki Murley <vicki at apple.com>
  
  	- fixed by Trey Matteson <trey at usa.net>, reviewed by Maciej.
  
  	Test cases added: (NONE)
  
  	<rdar://problem/4109893> REGRESSION: back/forward broken at wsj.com, worked in v185
  	Also written as http://bugzilla.opendarwin.org/show_bug.cgi?id=3901
   
  	Broken by security fix for 4005575: Arbitrary file disclosure vulnerability due to ability to load local html from remote content
   
  	The root of this bug is that URLs for subframes of a page are sometimes added to the back/forward list.  This happens a lot at
  	wsj.com, and I believe it would happen for many or all sites that use JS to cons up a URL for an iframe and then load it.
   
  	The security fix changed the code path to go through openURLRequest, but only openURL had the logic to guess if
  	the current navigation was done in response to a user gesture.  openURLRequest always assumed it was a user gesture,
  	and thus all uses of this code path would place an item in the b/f list.
  
  	* kwq/KWQKHTMLPart.h:
  	* kwq/KWQKHTMLPart.mm:
  	(KWQKHTMLPart::userGestureHint):  Factored code from openURL.
  	(KWQKHTMLPart::openURL):  Call newly factored code.
  	(KWQKHTMLPart::openURLRequest):  Newly call newly factored code.
  
  2005-07-07  Maciej Stachowiak  <mjs at apple.com>
  
          - oops, accidentally committed stat dumping enabled
  
          * khtml/misc/hashtable.h:
  
  2005-07-07  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by hyatt.
  
          - sped up DOMStringImpl * equality comparisons.
  
          * khtml/misc/hashfunctions.h:
          (khtml::):
          * khtml/misc/hashtable.h:
          * khtml/xml/dom_atomicstring.cpp:
          (DOM::equal):
  
  2005-07-07  Adele Peterson  <adele at apple.com>
  
          change by Maciej, reviewed by me.
  
          fix for <rdar://problem/4168001> Cambridge 8C45: Safari crashes in Webcore (DOM::NodeImpl::removeAllEventListeners() + 32)
  
          No test cases added.  There are some edge cases in which removeAllDisconnectedNodeEventListeners can get 
          called twice for the same document, and this can cause some nodes to unnecessarily remain in the 
          m_disconnectedNodesWithEventListeners list.  This fix just clears the m_disconnectedNodesWithEventListeners 
          list after removing all event listeners for the disconnected nodes.
  
          * khtml/xml/dom_docimpl.cpp: (DocumentImpl::removeAllDisconnectedNodeEventListeners):
  
  2005-07-07  Geoffrey Garen  <ggaren at apple.com>
  
          Reviewed by sullivan.
  
          Test cases added: (NONE)
  
          * kwq/KWQDef.h: added #include <cmath> to fix build failure
          introduced by last checkin
  
  2005-07-07  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * kwq/DOM-CSS.mm:
          (-[DOMRGBColor _color]): changed to nsColor()
          * kwq/KWQAccObject.mm:
          (AXAttributeStringSetStyle): changed to nsColor()
          * kwq/KWQColor.h: Added defs for KDOM.
          * kwq/KWQColor.mm: 
          (qRed): like qAlpha, kcanvas required.
          (qGreen): like qAlpha, kcanvas required.
          (qBlue): like qAlpha, kcanvas required.
          (parseHexColor): copied from khtml/css/cssparser.h
          (QColor::QColor): QColor(QString), will lookup by hex code.
          (nsColor): now plain function, instead of member function. (mjs)
          (CGColorFromNSColor): stolen from QPalette.mm
          (cgColor): added to support CGColor, like nsColor()
          (QColor::getRgbaF): new, for KCanvas, from Qt 4.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::attributedString): changed to nsColor()
          (KWQKHTMLPart::fontAttributesForSelectionStart): nsColor()
          (KWQKHTMLPart::bodyBackgroundColor): changed to nsColor()
          * kwq/KWQLineEdit.mm:
          (QLineEdit::setPalette): changed to nsColor()
          * kwq/KWQPainter.mm:
          (QPainter::_setColorFromBrush): changed to nsColor()
          (QPainter::_setColorFromPen): changed to nsColor()
          (QPainter::drawText): changed to nsColor()
          (QPainter::drawHighlightForText): changed to nsColor()
          (QPainter::drawLineForText): changed to nsColor()
          (QPainter::_fillRect): changed to nsColor()
          (QPainter::setShadow): changed to cgColor()
          (QPainter::drawFocusRing): changed to nsColor()
          * kwq/KWQTextEdit.mm:
          (QTextEdit::setPalette): changed to nsColor()
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge selectionColor]): changed to nsColor()
          This patch ended up larger than intended after discussing
          with mjs about adding getCGColor() and getCIColor()
          We decided that having separate nsColor(), cgColor() and 
          ciColor() defined elsewhere, was cleanest.
          The rest of the patch is QColor additions for kdom/ksvg/kcanvas.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3829
  
  2005-07-07  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * kwq/KWQPtrDict.h: Additions for KDOM
          (QPtrDictIterator::operator()): essentially post-increment.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3849
  
  2005-07-07  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * khtml/css/parser.y: removed #define YYMAXDEPTH 0
          Bison 2.x compatibility
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3882
  
  2005-07-07  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * khtml/rendering/render_canvasimage.cpp: <cmath.h>
          * khtml/rendering/render_image.cpp: <cmath.h> instead of <math.h>
          * kwq/KWQDef.h: 64bit support for KDOM
          (qRound): inline mapping to lround.
          Newer patch, now gcc 3.3 compatible.
          Thanks to ggaren for the 3.3 fix.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3826
  
  2005-07-06  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * ForwardingHeaders/qvaluevector.h: Added.
          * kwq/KWQValueVector.h: Added.
          Added QValueVector stub for KDOM.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3860
  
  2005-07-06  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * kwq/KWQPoint.mm:
          (QPoint::operator CGPoint): Added.
          (operator*): Added.
          (operator<<): Added.
          * kwq/KWQPointArray.h: Added.
          (QPoint::setX): Added.
          (QPoint::setY): Added.
          (QPoint::isNull): Added.
          (QPoint::operator -=): Added.
          * kwq/KWQPointArray.mm: Added.
          (QPointArray::QPointArray): Added.
          (QPointArray::copy): Added.
          (QPointArray::boundingRect): Added.
          (QPointArray::point): Added.
          Necessary additions for KDOM/KSVG/KCanvas
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3674
  
  2005-07-06  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by hyatt.
  
          - fixed size() and contains() methods on HashSet (they would not compile before)
  
          * khtml/misc/hashset.h:
          (khtml::::size):
          * khtml/misc/hashtable.h:
          (khtml::::contains):
  
  2005-07-06  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * ForwardingHeaders/kjs/ustring.h: Added.
          Used by kdom/Helper.cc
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3859
  
  2005-07-06  Geoffrey Garen  <ggaren at apple.com>
  
          Reviewed by adele.
  
          Modified layout tests to match rollout of changes for <rdar://problem/3792529> 
          REGRESSION (Mail): Tabs do not work the way they did in Panther
  
          Tests modified:
          * layout-tests/editing/deleting/delete-tab-001-expected.txt:
          * layout-tests/editing/deleting/delete-tab-002-expected.txt:
          * layout-tests/editing/deleting/delete-tab-003-expected.txt:
          * layout-tests/editing/deleting/delete-tab-004-expected.txt:
          * layout-tests/editing/inserting/insert-tab-001-expected.txt:
          * layout-tests/editing/inserting/insert-tab-002-expected.txt:
          * layout-tests/editing/inserting/insert-tab-003-expected.txt:
          * layout-tests/editing/inserting/insert-tab-004-expected.txt:
          * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
          * layout-tests/fast/js/string-replace-2-expected.txt:
          * layout-tests/fast/table/039-expected.txt:
          * layout-tests/fast/table/border-collapsing/004-expected.txt:
          * layout-tests/fast/tokenizer/script_extra_close-expected.txt:
  
  2005-07-06  Maciej Stachowiak  <mjs at apple.com>
  
          Even yet still more gcc4 build fixes.
  	
          * khtml/misc/hashset.h:
          (khtml::convertAdapter):
          (khtml::::insert):
  
  2005-07-06  Maciej Stachowiak  <mjs at apple.com>
  
          More ggc-4-only build fixage.
  	
          * khtml/misc/hashtraits.h:
  
  2005-07-06  Maciej Stachowiak  <mjs at apple.com>
  
          Fix additional gcc-4-only build breakage.
  
          * khtml/misc/pointerhash.h:
          (khtml::PointerHashConstIteratorAdapter::operator*):
  
  2005-07-05  Maciej Stachowiak  <mjs at apple.com>
  
          Forgot to commit a file. Fix for build breakage.
  
          * ForwardingHeaders/misc/pointerhash.h: Added.
  
  2005-07-05  Maciej Stachowiak  <mjs at apple.com>
  
  	- remove stat dumping (accidentally left enabled in last patch)
  
  	Unreviewed since this was a mistake in the last checkin.
  
          * khtml/misc/hashtable.h:
  
  2005-07-04  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by hyatt.
  
          Numerous hash code improvements:
  
  	- added HashMap and the required support for it in HashTable
  	- convert to using deleted sentinels and double hashing instead of linear 
  	probing and reinsert on delete
  	- add support for traits so that empty and deleted values can be customized 
  	per type
  	- make insert return a pair of an iterator and a bool even at the API level
  	- converted some code to use HashMap
  	- added standard hash and equal functions for some types, plus case insensitive ones
  	- lots of assorted code cleanup
  	- pass hash functions as classes with two static functions instead of as functions
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSRuleSet::CSSRuleSet): Use HashMap instead of QPtrDict.
          (khtml::CSSRuleSet::~CSSRuleSet): ditto
          (khtml::CSSRuleSet::addToRuleSet): ditto
          (khtml::CSSRuleSet::addRule): ditto
          * khtml/css/cssstyleselector.h:
          (khtml::CSSRuleSet::getIDRules): ditto
          (khtml::CSSRuleSet::getClassRules): ditto
          (khtml::CSSRuleSet::getTagRules): ditto
          * khtml/editing/jsediting.cpp:
          (DOM::DocumentImpl::commandImp): ditto
          * khtml/misc/hashfunctions.h: Added. Standard hash functions.
          (khtml::defaultEqual):
          (khtml::pointerHash<4>):
          (khtml::pointerHash<8>):
          (khtml::defaultHash<void *>):
          (khtml::defaultHash<DOM::DOMStringImpl *>):
          (khtml::caseInsensitiveHash):
          (khtml::caseInsensitiveEqual):
          * WebCore.pbproj/project.pbxproj:
          * khtml/misc/hashmap.h: Added.
          (khtml::HashMap::HashMap):
          (khtml::HashMap::size):
          (khtml::HashMap::capacity):
          (khtml::HashMap::isEmpty):
          (khtml::HashMap::begin):
          (khtml::HashMap::end):
          (khtml::HashMap::find):
          (khtml::HashMap::contains):
          (khtml::HashMap::insert):
          (khtml::HashMap::get):
          (khtml::HashMap::remove):
          (khtml::HashMap::clear):
          (khtml::HashMap::extractKey):
          * khtml/misc/hashset.h:
          (khtml::identityExtract):
          (khtml::::size):
          (khtml::::capacity):
          (khtml::::isEmpty):
          (khtml::::begin):
          (khtml::::end):
          (khtml::::find):
          (khtml::::contains):
          (khtml::::insert):
          (khtml::::remove):
          (khtml::::clear):
          (khtml::::convertAdapter):
          * khtml/misc/hashtable.cpp:
          (khtml::HashTableStats::~HashTableStats):
          * khtml/misc/hashtable.h:
          (khtml::HashTableIterator::HashTableIterator):
          (khtml::HashTableIterator::skipEmptyBuckets):
          (khtml::HashTableConstIterator::HashTableConstIterator):
          (khtml::HashTableConstIterator::skipEmptyBuckets):
          (khtml::HashTable::HashTable):
          (khtml::HashTable::insert):
          (khtml::HashTable::isEmptyBucket):
          (khtml::HashTable::isDeletedBucket):
          (khtml::HashTable::isEmptyOrDeletedBucket):
          (khtml::HashTable::identityConvert):
          (khtml::HashTable::extractKey):
          (khtml::HashTable::lookup):
          (khtml::HashTable::shouldExpand):
          (khtml::HashTable::mustRehashInPlace):
          (khtml::HashTable::clearBucket):
          (khtml::HashTable::deleteBucket):
          (khtml::HashTable::makeLookupResult):
          (khtml::HashTable::makeIterator):
          (khtml::HashTable::makeConstIterator):
          (khtml::::lookup):
          (khtml::::insert):
          (khtml::::reinsert):
          (khtml::::find):
          (khtml::::contains):
          (khtml::::remove):
          (khtml::::allocateTable):
          (khtml::::expand):
          (khtml::::rehash):
          (khtml::::clear):
          (khtml::::HashTable):
          (khtml::::swap):
          (khtml::::operator):
          (khtml::::checkConsistency):
          (khtml::::checkConsistencyExceptSize):
          * khtml/misc/hashtraits.h: Added.
          (khtml::HashTraits::emptyValue):
          (khtml::):
          (khtml::PairHashTraits::emptyValue):
          (khtml::PairHashTraits::deletedValue):
          * ForwardingHeaders/misc/hashmap.h: Added.
          * ForwardingHeaders/misc/hashset.h: Added.
          * WebCore.pbproj/project.pbxproj: Added new files.
          * khtml/misc/pointerhash.h: Added.
          (khtml::PointerHashIteratorAdapter::PointerHashIteratorAdapter):
          (khtml::PointerHashIteratorAdapter::operator*):
          (khtml::PointerHashIteratorAdapter::operator->):
          (khtml::PointerHashIteratorAdapter::operator++):
          (khtml::PointerHashIteratorAdapter::operator==):
          (khtml::PointerHashIteratorAdapter::operator!=):
          (khtml::PointerHashConstIteratorAdapter::PointerHashConstIteratorAdapter):
          (khtml::PointerHashConstIteratorAdapter::operator*):
          (khtml::PointerHashConstIteratorAdapter::operator->):
          (khtml::PointerHashConstIteratorAdapter::operator++):
          (khtml::PointerHashConstIteratorAdapter::operator==):
          (khtml::PointerHashConstIteratorAdapter::operator!=):
          (khtml::):
  
  2005-07-05  Geoffrey Garen  <ggaren at apple.com>
  
          Rolled in patch by opendarwin.org at mitzpettel.com
  
          -fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=3733
          Incorrect bidi layout of ETs, ANs, and ENs in some contexts
          
          Reviewed by hyatt.
  
          * khtml/rendering/bidi.cpp:
          (khtml::appendRun):
          (khtml::RenderBlock::bidiReorderLine):
          (khtml::RenderBlock::layoutInlineChildren):
  
          Modified test results to account for run splitting.
          This is a known bug that we need to fix separately:
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3838
          
          * layout-tests/css1/basic/containment-expected.txt:
          * layout-tests/css1/box_properties/float_on_text_elements-expected.txt:
          * layout-tests/css1/font_properties/font-expected.txt:
          * layout-tests/css1/formatting_model/inline_elements-expected.txt:
          * layout-tests/css1/pseudo/anchor-expected.txt:
          * layout-tests/editing/deleting/delete-tab-001-expected.txt:
          * layout-tests/editing/deleting/delete-tab-002-expected.txt:
          * layout-tests/editing/deleting/delete-tab-003-expected.txt:
          * layout-tests/editing/deleting/delete-tab-004-expected.txt:
          * layout-tests/editing/inserting/insert-tab-001-expected.txt:
          * layout-tests/editing/inserting/insert-tab-002-expected.txt:
          * layout-tests/editing/inserting/insert-tab-003-expected.txt:
          * layout-tests/editing/inserting/insert-tab-004-expected.txt:
          * layout-tests/editing/style/relative-font-size-change-001-expected.txt:
          * layout-tests/editing/style/relative-font-size-change-004-expected.txt:
          * layout-tests/fast/block/basic/018-expected.txt:
          * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
          * layout-tests/fast/invalid/nestedh3s-expected.txt:
          * layout-tests/fast/js/string-replace-2-expected.txt:
          * layout-tests/fast/lists/003-expected.txt:
          * layout-tests/fast/selectors/166-expected.txt:
          * layout-tests/fast/table/039-expected.txt:
          * layout-tests/fast/table/border-collapsing/004-expected.txt:
          * layout-tests/fast/text/basic/004-expected.txt:
          * layout-tests/fast/tokenizer/script_extra_close-expected.txt:
  
  2005-07-05  Adele Peterson  <adele at apple.com>
  
         Rolling out changes for <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
         since it caused a 2% performance regression.
  
          * khtml/editing/apply_style_command.cpp:
          (khtml::createStyleSpanElement):
          (khtml::ApplyStyleCommand::removeCSSStyle):
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
          * khtml/editing/delete_selection_command.cpp:
          (khtml::DeleteSelectionCommand::saveTypingStyleState):
          * khtml/editing/edit_command.cpp:
          (khtml::EditCommand::styleAtPosition):
          * khtml/editing/html_interchange.h:
          * khtml/editing/htmlediting.cpp:
          (khtml::isSpecialElement):
          * khtml/editing/htmlediting.h:
          * khtml/editing/insert_text_command.cpp:
          (khtml::InsertTextCommand::prepareForTextInsertion):
          (khtml::InsertTextCommand::input):
          * khtml/editing/insert_text_command.h:
          * khtml/editing/markup.cpp:
          (khtml::createFragmentFromText):
          * khtml/editing/replace_selection_command.cpp:
          (khtml::ReplacementFragment::removeStyleNodes):
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::begin):
          (khtml::HTMLTokenizer::processListing):
          (khtml::HTMLTokenizer::parseEntity):
          (khtml::HTMLTokenizer::parseTag):
          (khtml::HTMLTokenizer::addPending):
          (khtml::HTMLTokenizer::write):
          * khtml/html/htmltokenizer.h:
          (khtml::HTMLTokenizer::):
          * khtml/rendering/bidi.cpp:
          (khtml::addRun):
          (khtml::RenderBlock::computeHorizontalPositionsForLine):
          (khtml::RenderBlock::skipWhitespace):
          (khtml::RenderBlock::findNextLineBreak):
          (khtml::RenderBlock::checkLinesForTextOverflow):
          * khtml/rendering/break_lines.cpp:
          (khtml::isBreakable):
          * khtml/rendering/font.cpp:
          (Font::drawHighlightForText):
          (Font::drawText):
          (Font::floatWidth):
          (Font::floatCharacterWidths):
          (Font::checkSelectionPoint):
          (Font::width):
          * khtml/rendering/font.h:
          * khtml/rendering/render_block.cpp:
          (khtml::stripTrailingSpace):
          (khtml::RenderBlock::calcInlineMinMaxWidth):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_br.h:
          (khtml::RenderBR::width):
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::layoutVerticalBox):
          * khtml/rendering/render_image.cpp:
          (RenderImage::setPixmap):
          (RenderImage::paint):
          * khtml/rendering/render_line.cpp:
          (khtml::EllipsisBox::paint):
          * khtml/rendering/render_line.h:
          (khtml::InlineBox::width):
          (khtml::InlineBox::xPos):
          (khtml::InlineBox::yPos):
          (khtml::InlineBox::height):
          (khtml::InlineBox::baseline):
          * khtml/rendering/render_list.cpp:
          (RenderListMarker::paint):
          (RenderListMarker::calcMinMaxWidth):
          * khtml/rendering/render_object.cpp:
          (RenderObject::recalcMinMaxWidths):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_replaced.cpp:
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::selectionRect):
          (InlineTextBox::paint):
          (InlineTextBox::paintSelection):
          (InlineTextBox::paintMarkedTextBackground):
          (InlineTextBox::offsetForPosition):
          (InlineTextBox::positionForOffset):
          (RenderText::cacheWidths):
          (RenderText::widthFromCache):
          (RenderText::trimmedMinMaxWidth):
          (RenderText::calcMinMaxWidth):
          (RenderText::containsOnlyWhitespace):
          (RenderText::width):
          * khtml/rendering/render_text.h:
          * kwq/KWQFontMetrics.h:
          * kwq/KWQFontMetrics.mm:
          (QFontMetrics::width):
          (QFontMetrics::charWidth):
          (QFontMetrics::floatWidth):
          (QFontMetrics::floatCharacterWidths):
          (QFontMetrics::checkSelectionPoint):
          (QFontMetrics::boundingRect):
          (QFontMetrics::size):
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (QPainter::drawText):
          (QPainter::drawHighlightForText):
          * kwq/WebCoreTextRenderer.h:
          * kwq/WebCoreTextRendererFactory.mm:
          (WebCoreInitializeEmptyTextStyle):
          * layout-tests/editing/deleting/delete-tab-001-expected.txt:
          * layout-tests/editing/deleting/delete-tab-001.html:
          * layout-tests/editing/deleting/delete-tab-002-expected.txt:
          * layout-tests/editing/deleting/delete-tab-002.html:
          * layout-tests/editing/deleting/delete-tab-003-expected.txt:
          * layout-tests/editing/deleting/delete-tab-003.html:
          * layout-tests/editing/deleting/delete-tab-004-expected.txt:
          * layout-tests/editing/deleting/delete-tab-004.html:
          * layout-tests/editing/inserting/insert-tab-001-expected.txt:
          * layout-tests/editing/inserting/insert-tab-002-expected.txt:
          * layout-tests/editing/inserting/insert-tab-003-expected.txt:
          * layout-tests/editing/inserting/insert-tab-004-expected.txt:
          * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
          * layout-tests/fast/js/string-replace-2-expected.txt:
          * layout-tests/fast/table/039-expected.txt:
          * layout-tests/fast/table/border-collapsing/004-expected.txt:
          * layout-tests/fast/tokenizer/script_extra_close-expected.txt:
  
  2005-07-05  Beth Dakin  <bdakin at apple.com>
  
  	Adding colspan test for HTMLTableElement and bdo test for HTMLElement.
  
          Reviewed by Adele.
  
          Test cases added: (NONE)
  
          * ChangeLog:
          * layout-tests/fast/dom/HTMLElement/bdo-expected.txt: Added.
          * layout-tests/fast/dom/HTMLElement/bdo.html: Added.
          * layout-tests/fast/dom/HTMLTableElement/colSpan-expected.txt: Added.
          * layout-tests/fast/dom/HTMLTableElement/colSpan.html: Added.
  
  2005-07-05  Geoffrey Garen  <ggaren at apple.com>
  
          -rolled out patch for 
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3826
          because it fails to build w/gcc3.3 (previous fix didn't completely work)
  
          * kwq/KWQDef.h:
  
  2005-07-05  Geoffrey Garen  <ggaren at apple.com>
  
          -fixed failed build introduced by fix to
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3826
  
          Reviewed by sullivan.
  
          * kwq/KWQDef.h: changed 64 bit typedef to match def in sys/types.h
  
  2005-07-05  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * kwq/KWQPalette.h:
          (QColorGroup::): Enum values added for KDOM.
          (QPalette::): Enum values added for KDOM.
          * kwq/KWQPalette.mm: Added.
          (QPalette::setColor): Added (only supports "active").
          Many of these enum values (particularly ColorGroup)
          may be removed as KDOM gets better integrated with our tree.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3851
  
  2005-07-05  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * ForwardingHeaders/kinstance.h: Added.
          * ForwardingHeaders/kio/netaccess.h: Added.
          * ForwardingHeaders/kjs/scope_chain.h: Added.
          * ForwardingHeaders/qdir.h: Added.
          * ForwardingHeaders/qglobal.h: Added.
          For KDOM.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3822
    
  2005-07-05  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * kwq/KWQDef.h: 64bit types added
          (qRound): For kdom
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3826
  
  2005-07-05  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * kwq/KWQDateTime.h: Necessary KDOM additions.
          (QTime::currentTime): Added.
          * kwq/KWQDateTime.mm:
          (QTime::addMSecs): Added.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3828
  
  2005-07-05  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * ForwardingHeaders/qwmatrix.h: Added.
          * WebCore.pbproj/project.pbxproj: Added KWQMatrix.*
          * khtml/rendering/render_image.cpp: Now includes qwmatrix.h
          * kwq/KWQPixmap.h: Removed QWMatrix stub.
          * kwq/KWQWMatrix.h: Added.
          (QWMatrix::m11): simple accessors.
          (QWMatrix::m12):
          (QWMatrix::m21):
          (QWMatrix::m22):
          (QWMatrix::dx):
          (QWMatrix::dy):
          * kwq/KWQWMatrix.mm: Added.
          (QWMatrix::QWMatrix): All are standard Qt functions.
          (QWMatrix::setMatrix):
          (QWMatrix::map):
          (QWMatrix::isIdentity):
          (QWMatrix::reset):
          (QWMatrix::scale):
          (QWMatrix::rotate):
          (QWMatrix::translate):
          (QWMatrix::shear):
          (QWMatrix::det):
          (QWMatrix::isInvertible):
          (QWMatrix::invert):
          (QWMatrix::operator CGAffineTransform):
          (QWMatrix::operator== ):
          (QWMatrix::operator*= ):
          Simple white-room QWMatrix implementation entirely 
          based on CGAffineTransform.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3821
  
  2005-07-05  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * kwq/KWQPtrList.h: additions necessary for kdom.
          (QPtrList::findRef): added.
          (QPtrList::begin): added.
          (QPtrList::end): added.
          (QPtrListIterator::operator*): added.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3850
  
  2005-07-04  Maciej Stachowiak  <mjs at apple.com
  
          Expected results for layout tests from last patch.
  	
          * layout-tests/fast/js/eval-var-decl-expected.txt: Added.
          * layout-tests/fast/js/has-own-property-expected.txt: Added.
  
  2005-07-03  Maciej Stachowiak  <mjs at apple.com>
  
  	Original patch from Mark Rowe <opendarwin.org at bdash.net.nz>, reviewed by me.
  	Fixes to patch by me, reviewed by John Sullivan.
  
  	- fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3293
  
          Test cases added:
          * layout-tests/fast/js/has-own-property.html: Added - tests this change.
          * layout-tests/fast/js/eval-var-decl.html: Added - test depends on this change.
  
          * khtml/ecma/kjs_css.cpp:
          (KJS::DOMCSSStyleDeclaration::hasOwnProperty):
          * khtml/ecma/kjs_css.h:
          * khtml/ecma/kjs_dom.cpp:
          (KJS::DOMNodeList::hasOwnProperty):
          (KJS::DOMElement::tryGet):
          (KJS::DOMNamedNodeMap::hasOwnProperty):
          * khtml/ecma/kjs_dom.h:
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::hasOwnProperty):
          (KJS::HTMLDocument::tryGet):
          (KJS::KJS::HTMLElement::hasOwnProperty):
          (KJS::KJS::HTMLCollection::hasOwnProperty):
          * khtml/ecma/kjs_html.h:
          * khtml/ecma/kjs_window.cpp:
          (KJS::Window::hasOwnProperty):
          (KJS::Konqueror::hasOwnProperty):
          * khtml/ecma/kjs_window.h:
  
  2005-07-03  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * kwq/KWQTimer.h:
          * kwq/KWQTimer.mm:
          (QTimer::QTimer): added parent pointer (and warning)
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3825
   
  2005-07-03  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * khtml/xml/dom_docimpl.cpp: 
          (DocumentImpl::setDocumentChanged): fixed to use new API
          * kwq/KWQKStaticDeleter.h: 
          (KStaticDeleter::setObject): fixed to take 3rd argument
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3823
  
  2005-07-03  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * kwq/KWQValueList.h:
          (QValueList::find): KDOM support
          (QValueList::constBegin): KDE compatibility
          (QValueList::constEnd): KDE compatibility
          * kwq/KWQValueListImpl.h:
          * kwq/KWQValueListImpl.mm:
          (KWQValueListImpl::findEqualNode): KDOM support
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3832
  
  2005-07-03  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * kwq/KWQFontMetrics.h:
          * kwq/KWQFontMetrics.mm:
          (QFontMetrics::boundingRect): added boundingRect(QChar)
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3827
    
  2005-07-03  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * kwq/KWQListImpl.h:
          * kwq/KWQListImpl.mm:
          (KWQListImpl::findRef): Added to support 
          KDOM::NodeImpl::compareDocumentPosition(NodeImpl *other)
    
  2005-07-03  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * ForwardingHeaders/qintdict.h: maps to KWQIntDict.h
          * kwq/KWQIntDict.h: copy of KWQPtrDict.h replacing T * with int.
  
  2005-07-03  Eric Seidel  <eseidel at apple.com>
  
          * kwq/KWQPair.h: added newline, per mjs's request.
  
  2005-07-03  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by mjs.
  
          * ForwardingHeaders/qpair.h: Added.
          * kwq/KWQPair.h: Added.
  	Qt compatible QPair, built on std::pair
  	http://bugzilla.opendarwin.org/show_bug.cgi?id=3824
  
  2005-07-01  Beth Dakin  <bdakin at apple.com>
  
          Adding createCaption test for HTMLTableElement.
  
          Reviewed by Adele (sort of).
  
          Test cases added:
  
          * layout-tests/fast/dom/HTMLTableElement/createCaption-expected.txt: Added.
          * layout-tests/fast/dom/HTMLTableElement/createCaption.html: Added.
  
  2005-07-01  Geoffrey Garen  <ggaren at apple.com>
  
          Moving dom tests around to conform to new directory structure
          specified in today's meeting.
  
          Reviewed by justing.
  
          Test cases added: 
  
          * layout-tests/fast/dom/HTMLDocument/title-get-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDocument/title-get.html: Added.
          * layout-tests/fast/dom/HTMLDocument/title-set-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDocument/title-set.html: Added.
          * layout-tests/fast/dom/HTMLDocument/title/get-expected.txt: Removed.
          * layout-tests/fast/dom/HTMLDocument/title/get.html: Removed.
          * layout-tests/fast/dom/HTMLDocument/title/set-expected.txt: Removed.
          * layout-tests/fast/dom/HTMLDocument/title/set.html: Removed.
          * layout-tests/fast/dom/HTMLDocument/url-getset-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDocument/url-getset.html: Added.
          * layout-tests/fast/dom/HTMLDocument/url/getset-expected.txt: Removed.
          * layout-tests/fast/dom/HTMLDocument/url/getset.html: Removed.
          * layout-tests/fast/dom/HTMLDocument/write-call-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDocument/write-call.html: Added.
          * layout-tests/fast/dom/HTMLDocument/write-multiple-calls-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDocument/write-multiple-calls.html: Added.
          * layout-tests/fast/dom/HTMLDocument/write/call-expected.txt: Removed.
          * layout-tests/fast/dom/HTMLDocument/write/call.html: Removed.
          * layout-tests/fast/dom/HTMLDocument/write/multiple-calls-expected.txt: Removed.
          * layout-tests/fast/dom/HTMLDocument/write/multiple-calls.html: Removed.
          * layout-tests/fast/dom/HTMLDocument/writeln-call-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDocument/writeln-call.html: Added.
          * layout-tests/fast/dom/HTMLDocument/writeln-multiple-calls-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDocument/writeln-multiple-calls.html: Added.
          * layout-tests/fast/dom/HTMLDocument/writeln/call-expected.txt: Removed.
          * layout-tests/fast/dom/HTMLDocument/writeln/call.html: Removed.
          * layout-tests/fast/dom/HTMLDocument/writeln/multiple-calls-expected.txt: Removed.
          * layout-tests/fast/dom/HTMLDocument/writeln/multiple-calls.html: Removed.
  
  2005-07-01  Geoffrey Garen  <ggaren at apple.com>
  
          -landed patch by Eric Seidel <macdome at opendarwin.org>
          
          -for http://bugzilla.opendarwin.org/show_bug.cgi?id=3657
          GroundWork:  Moving some functions from khtml->jsc following kjs TOT
          
          - no layout test necessary yet - only groundwork
  
          Reviewed by darin.
  
          * ForwardingHeaders/qintdict.h:
          * khtml/ecma/kjs_binding.h:
  
  2005-07-01  Geoffrey Garen  <ggaren at apple.com>
  
          -landed patch by Carsten Guenther <cguenther at gmail.com>
          http://bugzilla.opendarwin.org/show_bug.cgi?id=3477
  
          -corrects errors in date layout test
  
          Reviewed by darin.
  
          Test cases modified:
          * layout-tests/fast/js/date-parse-test.html:
  
  2005-07-01  Eric Seidel  <eseidel at apple.com>
  
          Reviewed by darin.
  
          * kwq/KWQSize.h:
          * kwq/KWQSize.mm:
          (QSize::operator CGSize): adding CGSize conversion support
  	http://bugzilla.opendarwin.org/show_bug.cgi?id=3669
  
  2005-06-30  Bruce DiBello  <bdibello at apple.com>
  
          Reviewed by Geoff Garen.
  
          Test cases added: getting and setting div.align
  
          * layout-tests/fast/dom/HTMLDivElement/align/getset-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDivElement/align/getset.html: Added.
  
  2005-06-29  Anders Carlsson  <andersca at mac.com>
  
          Reviewed and landed by Darin Adler.
  
          - Fix <http://bugzilla.opendarwin.org/show_bug.cgi?id=3274>
          document() not supported
  
          Test cases added:
          * layout-tests/fast/xsl/document-function-expected.txt: Added.
          * layout-tests/fast/xsl/document-function.xml: Added.
          * layout-tests/fast/xsl/document-function.xsl: Added.
          * layout-tests/fast/xsl/resources/document-function-source.xml: Added.
          
          * khtml/xsl/xslt_processorimpl.cpp:
          (DOM::parseErrorFunc):
          Stub to prevent errors from getting written to the console.
          
          (DOM::stylesheetLoadFunc):
          Fetch and parse documents.
          
          (DOM::XSLTProcessorImpl::transformDocument):
          Use the processor as the global variable instead of the 
          style sheet.
          
          * khtml/xsl/xslt_processorimpl.h:
          (DOM::XSLTProcessorImpl::stylesheet):
          (DOM::XSLTProcessorImpl::sourceDocument):
          Add accessors for source document and stylesheet.
  
  2005-06-29  Maciej Stachowiak  <mjs at apple.com>
  
          Unreviewed - fixing build breakage with gcc 4.
  
          * khtml/misc/hashtable.h: Don't use a typedef when declaring a class friend.
  
  2005-06-29  David Harrison  <harrison at apple.com>
  
          Temporarily enable tab coalescing ahead of white-space:pre-wrap
          change because of problems with keeping the tabs separate.  Will
          revert when problems are fixed or remove if I do pre-wrap
          first.
  
          * khtml/editing/insert_text_command.cpp:
          (khtml::InsertTextCommand::prepareForTextInsertion):
          (khtml::InsertTextCommand::insertTab):
          * khtml/editing/markup.cpp:
          (khtml::createParagraphContentsFromString):
  
  2005-06-29  David Harrison  <harrison at apple.com>
  
          Reviewed by Dave Hyatt (rendering) and Maciej (editing).
  
          Test cases added:  Coming soon.  Will include with next round of changes for this bug.
  
          This is the first checkin for...
          
          <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
          
          Basic strategy is to put tabs into spans with white-space:pre style, and
          render them with tabs stops every 8th space, where the space width and
          the left margin are those of the enclosing block.
          
          What's left is to switch to implement white-space:pre-wrap so
          that we can coalesce consecutive tabs while maintaining proper
          line breaking.  That will keep the markup smaller.
  
          * khtml/editing/apply_style_command.cpp:
          (khtml::createStyleSpanElement):
          (khtml::ApplyStyleCommand::removeCSSStyle):
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
          * khtml/editing/delete_selection_command.cpp:
          (khtml::DeleteSelectionCommand::saveTypingStyleState):
          * khtml/editing/edit_command.cpp:
          (khtml::EditCommand::styleAtPosition):
          * khtml/editing/html_interchange.h:
          * khtml/editing/htmlediting.cpp:
          (khtml::isSpecialElement):
          (khtml::isTabSpanNode):
          (khtml::isTabSpanTextNode):
          (khtml::positionBeforeTabSpan):
          (khtml::createTabSpanElement):
          * khtml/editing/htmlediting.h:
          * khtml/editing/insert_text_command.cpp:
          (khtml::InsertTextCommand::prepareForTextInsertion):
          (khtml::InsertTextCommand::input):
          (khtml::InsertTextCommand::insertTab):
          * khtml/editing/insert_text_command.h:
          * khtml/editing/markup.cpp:
          (khtml::createParagraphContentsFromString):
          (khtml::createFragmentFromText):
          * khtml/editing/replace_selection_command.cpp:
          (khtml::ReplacementFragment::removeStyleNodes):
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::begin):
          (khtml::HTMLTokenizer::processListing):
          (khtml::HTMLTokenizer::parseEntity):
          (khtml::HTMLTokenizer::parseTag):
          (khtml::HTMLTokenizer::addPending):
          (khtml::HTMLTokenizer::write):
          * khtml/html/htmltokenizer.h:
          (khtml::HTMLTokenizer::):
          * khtml/rendering/bidi.cpp:
          (khtml::addRun):
          (khtml::RenderBlock::tabWidth):
          (khtml::RenderBlock::computeHorizontalPositionsForLine):
          (khtml::RenderBlock::skipWhitespace):
          (khtml::RenderBlock::findNextLineBreak):
          (khtml::RenderBlock::checkLinesForTextOverflow):
          * khtml/rendering/break_lines.cpp:
          (khtml::isBreakable):
          * khtml/rendering/font.cpp:
          (Font::drawHighlightForText):
          (Font::drawText):
          (Font::floatWidth):
          (Font::floatCharacterWidths):
          (Font::checkSelectionPoint):
          (Font::width):
          * khtml/rendering/font.h:
          * khtml/rendering/render_block.cpp:
          (khtml::stripTrailingSpace):
          (khtml::RenderBlock::calcInlineMinMaxWidth):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_br.h:
          (khtml::RenderBR::width):
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::layoutVerticalBox):
          * khtml/rendering/render_image.cpp:
          (RenderImage::setPixmap):
          (RenderImage::paint):
          * khtml/rendering/render_line.cpp:
          (khtml::EllipsisBox::paint):
          * khtml/rendering/render_line.h:
          (khtml::InlineBox::width):
          (khtml::InlineBox::xPos):
          (khtml::InlineBox::yPos):
          (khtml::InlineBox::height):
          (khtml::InlineBox::baseline):
          * khtml/rendering/render_list.cpp:
          (RenderListMarker::paint):
          (RenderListMarker::calcMinMaxWidth):
          * khtml/rendering/render_object.cpp:
          (RenderObject::tabWidth):
          (RenderObject::recalcMinMaxWidths):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_replaced.cpp:
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::selectionRect):
          (InlineTextBox::paint):
          (InlineTextBox::paintSelection):
          (InlineTextBox::paintMarkedTextBackground):
          (InlineTextBox::textPos):
          (InlineTextBox::offsetForPosition):
          (InlineTextBox::positionForOffset):
          (RenderText::cacheWidths):
          (RenderText::widthFromCache):
          (RenderText::trimmedMinMaxWidth):
          (RenderText::calcMinMaxWidth):
          (RenderText::containsOnlyWhitespace):
          (RenderText::width):
          * khtml/rendering/render_text.h:
          * kwq/KWQFontMetrics.h:
          * kwq/KWQFontMetrics.mm:
          (QFontMetrics::width):
          (QFontMetrics::charWidth):
          (QFontMetrics::floatWidth):
          (QFontMetrics::floatCharacterWidths):
          (QFontMetrics::checkSelectionPoint):
          (QFontMetrics::boundingRect):
          (QFontMetrics::size):
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (QPainter::drawText):
          (QPainter::drawHighlightForText):
          * kwq/WebCoreTextRenderer.h:
          * kwq/WebCoreTextRendererFactory.mm:
          (WebCoreInitializeEmptyTextStyle):
          * layout-tests/editing/deleting/delete-tab-001-expected.txt:
          * layout-tests/editing/deleting/delete-tab-001.html:
          * layout-tests/editing/deleting/delete-tab-002-expected.txt:
          * layout-tests/editing/deleting/delete-tab-002.html:
          * layout-tests/editing/deleting/delete-tab-003-expected.txt:
          * layout-tests/editing/deleting/delete-tab-003.html:
          * layout-tests/editing/deleting/delete-tab-004-expected.txt:
          * layout-tests/editing/deleting/delete-tab-004.html:
          * layout-tests/editing/inserting/insert-tab-001-expected.txt:
          * layout-tests/editing/inserting/insert-tab-002-expected.txt:
          * layout-tests/editing/inserting/insert-tab-003-expected.txt:
          * layout-tests/editing/inserting/insert-tab-004-expected.txt:
          * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
          * layout-tests/fast/js/string-replace-2-expected.txt:
          * layout-tests/fast/table/039-expected.txt:
          * layout-tests/fast/table/border-collapsing/004-expected.txt:
          * layout-tests/fast/tokenizer/script_extra_close-expected.txt:
  
  2005-06-29  Geoffrey Garen  <ggaren at apple.com>
  
          Contributed by Francisco Tolmasky <tolmasky at gmail.com>
  
          -test cases for fix to http://bugzilla.opendarwin.org/show_bug.cgi?id=3667
          Core JavaScript 1.5 Reference:Objects:Array:forEach
  
          See JavaScriptCore Changelog for details on the patch.
  
          Reviewed by darin.
  
          Test cases added:
          * layout-tests/fast/js/array-every-expected.txt: Added.
          * layout-tests/fast/js/array-every.html: Added.
          * layout-tests/fast/js/array-foreach-expected.txt: Added.
          * layout-tests/fast/js/array-foreach.html: Added.
          * layout-tests/fast/js/array-some-expected.txt: Added.
          * layout-tests/fast/js/array-some.html: Added.
  
  2005-06-29  Bruce DiBello  <bdibello at apple.com>
  
          Reviewed by Geoff Garen
  
          Test cases added: added expected results for previous check in
  
          * layout-tests/fast/dom/HTMLDocument/url/getset-expected.txt: Added.
  
  2005-06-29  Geoffrey Garen  <ggaren at apple.com>
  
          DOM compatibility tests for HTMLDocument::writeln
  
          Reviewed by justing.
  
          Test cases added: 
  
          * layout-tests/fast/dom/HTMLDocument/writeln/call-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDocument/writeln/call.html: Added.
          * layout-tests/fast/dom/HTMLDocument/writeln/multiple-calls-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDocument/writeln/multiple-calls.html: Added.
  
  2005-06-29  Bruce DiBello  <bdibello at apple.com>
  
          Reviewed by Geoff Garen.
  
          Test cases added: added DOM test for document.URL
  
          * layout-tests/fast/dom/HTMLDocument/url/getset.html: Added.
  
  2005-06-29  Geoffrey Garen  <ggaren at apple.com>
  
          DOM compatibility tests for HTMLDocument::write
  
          Reviewed by justing.
  
          Test cases added: 
          * layout-tests/fast/dom/HTMLDocument/write/call-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDocument/write/call.html: Added.
          * layout-tests/fast/dom/HTMLDocument/write/multiple-calls-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDocument/write/multiple-calls.html: Added.
  
  2005-06-29  Geoffrey Garen  <ggaren at apple.com>
  
          DOM compatibility tests for HTMLDocument::title
  
          Reviewed by justing.
  
          Test cases added: 
          * layout-tests/fast/dom/HTMLDocument/title/get-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDocument/title/get.html: Added.
          * layout-tests/fast/dom/HTMLDocument/title/set-expected.txt: Added.
          * layout-tests/fast/dom/HTMLDocument/title/set.html: Added.
  
  2005-06-28  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
          Added iterator support to new hashtable class, the HashSet API is
          now essentially complete.
  
          Added support for consistency check mode.
  
          * khtml/misc/hashset.h:
          (khtml::HashSet::capacity): Added
          (khtml::HashSet::begin): Added (both const and non-const)
          (khtml::HashSet::end): Added (both const and non-const)
          (khtml::HashSet::insert): Made both versions return an iterator
          (khtml::HashSet::find): Added (both const and on-const, returning appropriate iterator)
          (khtml::HashSet::contains): Added
          (khtml::HashSet::remove): Added version that takes an iterator argument
          (khtml::HashSet::clear): Added
          * khtml/misc/hashtable.h:
          (khtml::HashTableIterator): New class with all the obvious iterator stuff.
          (khtml::HashTableConstIterator::HashTableConstIterator): New class with all the obvious
          const iterator stuff.
          (khtml::HashTable::begin): Added (both const and non-consts)
          (khtml::HashTable::end): Added (both const and non-consts)
          (khtml::HashTable::capacity): Added
          (khtml::HashTable::insert): Implement non-template method in terms
          of template method.
          (khtml::HashTable::contains): Added (implemented in terms of find)
          (khtml::HashTable::remove): Implemented key remove in terms of find and 
          iterator remove.
          (khtml::HashTable::hash): Made static
          (khtml::HashTable::equal): Made static
          (khtml::HashTable::identityConvert): Added - no-op convert method so template insert
          method can be implemented in terms of non-template
          (khtml::HashTable::insert): Changed to return iterator
          (khtml::HashTable::reinsert): Recoded to be more like the other functions
          (khtml::HashTable::find): Added
          (khtml::HashTable::remove): Added iterator version
          (khtml::HashTable::clear): Added
          * khtml/xml/dom_atomicstring.cpp:
          (DOM::AtomicString::add): Updated to deal with the fact that insert returns an iterator
          (khtml::HashTable::shouldExpand): New helper.
          (khtml::HashTable::shouldShrink): ditto
          (khtml::HashTable::makeIterator): ditto
          (khtml::HashTable::makeConstIterator): ditto
          (khtml::HashTable::checkConsistency): consistency check method
          (khtml::HashTable::checkConsistencyExceptSize): consistency check method
  
  2005-06-29  Geoffrey Garen  <ggaren at apple.com>
  
          -added test case for fix to http://bugzilla.opendarwin.org/show_bug.cgi?id=3743
          Incorrect error message given for certain calls
  
          See JavaScriptCore Changelog for details about the patch.
  
          Reviewed by me.
  
          Test cases added: 
          * layout-tests/fast/js/toString-stack-overflow-expected.txt: Added.
          * layout-tests/fast/js/toString-stack-overflow.html: Added.
  
  2005-06-29  Justin Garcia  <justin.garcia at apple.com>
  
          - Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3714>
          HTMLLabelElement's form property isn't implemented
  
          Patch by Anders Carlsson <andersca at mac.com>
  
          Reviewed by Darin
  
          Test cases added:
          * layout-tests/fast/dom/HTMLLabelElement/properties/form-expected.txt: Added.
          * layout-tests/fast/dom/HTMLLabelElement/properties/form.html: Added.
          
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLLabelElementImpl::form):
          Traverse upwards looking for a form element.
  
  2005-06-29  Geoffrey Garen  <ggaren at apple.com>
  
          Patch by Joost de Valk <webkit at joostdevalk.nl>
  
          - http://bugzilla.opendarwin.org/show_bug.cgi?id=3732
          Testcase for accesskeys that will run with run-webkit-tests.
  
          Reviewed by Darin.
  
          Test cases added: 
          * layout-tests/fast/forms/access-key-expected.txt: Added.
          * layout-tests/fast/forms/access-key.html: Added.
  
  2005-06-29  Justin Garcia  <justin.garcia at apple.com>
  
          Patch by Anders Carlsson  <andersca at mac.com>
  
          - Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3715>
          An HTMLObjectElement's form property was always null.
  
          Reviewed by Darin
  
          Test cases added:
          * layout-tests/fast/dom/htmlobject-form-expected.txt: Added.
          * layout-tests/fast/dom/htmlobject-form.html: Added.
  
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLObjectElementImpl::form):
          Implement this function by traversing the parent nodes looking
          for a form element.
  
  2005-06-29  Geoffrey Garen  <ggaren at apple.com>
  
          Patch by Antoine Quint <ml at graougraou.com>
  
          -fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=3648
          quadraticCurveTo() method in <canvas> APIs JS bindings does not exist
  
          Reviewed by Darin.
  
          Test cases added: 
          * layout-tests/fast/dom/quadraticCurveTo-expected.txt: Added.
          * layout-tests/fast/dom/quadraticCurveTo.xml: Added.
  
          * khtml/ecma/kjs_html.cpp:
  
  2005-06-29  Geoffrey Garen  <ggaren at apple.com>
  
  	Patch by Hanspeter Schaub <Hanspeterschaub at mac.com>
  
  	-fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=3317
  	REGRESSION: CSS2: outline is applied to both <li> element 
  	and its enclosing text with context dependent selector
  
          Reviewed by Hyatt.
  
          Test cases added: 
          * layout-tests/fast/css/list-outline-expected.txt: Added.
          * layout-tests/fast/css/list-outline.html: Added.
  
          * khtml/rendering/render_line.cpp:
          (khtml::InlineFlowBox::paint):
  
  2005-06-28  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Maciej.
   
  	- fix our part of <rdar://problem/4122332> extra HTTP GET when iframe requests file 
  	already fetched by parent that should have been cached. Setting location via javascript
  	should not signal a full reload of the destination page and all its subresources.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::changeLocation): remove code that sets the reload flag
  
  2005-06-28  Justin Garcia  <justin.garcia at apple.com>
  
          Patch by Kevin Ballard <kevin at sb.org>
  
          Reviewed by Darin
          
          - Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3654> 
          Updating the value of a textarea wasn't saving the cursor position 
          in a line ending-agnostic fashion.
  
          Test cases added:
          * layout-tests/fast/forms/cursor-position-expected.txt: Added.
          * layout-tests/fast/forms/cursor-position.html: Added.
  
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea getCursorPositionAsIndex:inParagraph:]):
          (RangeOfParagraph):
          (-[KWQTextArea setCursorPositionToIndex:inParagraph:]):
  
  2005-06-28  Justin Garcia  <justin.garcia at apple.com>
  
          Patch by Alexey Proskuryakov <ap at nypop.com>
          
          - <http://bugzilla.opendarwin.org/show_bug.cgi?id=3727>
          When a DECODE_DEBUG preprocessor symbol is defined in khtml/misc/decoder.cpp, 
          compilation fails because a non-existent variable "force" is used.
  
          Reviewed by Darin
  
          Test cases added: None required
  
          * khtml/misc/decoder.cpp:
          (Decoder::setEncoding):
  
  2005-06-28  David Harrison  <harrison at apple.com>
  
          Reviewed by Chris Blumenberg.
  
          Test cases added: (NONE)
          
          (continued) <rdar://problem/4140688> assertion failure double-clicking text to select
          Fixed my checkin from yesterday.
  
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::paintMarkedTextBackground):
          (InlineTextBox::positionForOffset):
          Changed tabs to spaces.
          
          (RenderText::positionForCoordinates):
          Make sure affinity is downstream when in mid-line.
          Changed tabs to spaces.
  
          (RenderText::caretRect):
          (RenderText::cacheWidths):
          (RenderText::trimmedMinMaxWidth):
          (RenderText::minXPos):
          (RenderText::width):
          (RenderText::caretMaxOffset):
          Changed tabs to spaces.
  
          * layout-tests/editing/style/create-block-for-style-004-expected.txt:
          Expected ending selection affinity is downstream.
  
  2005-06-27  Maciej Stachowiak  <mjs at apple.com>
  
  	Remove accidentally committed code that breaks the build. Oops!
  
          * khtml/xml/dom_atomicstring.cpp:
          (DOM::AtomicString::expand):
          (DOM::AtomicString::shrink):
  
  2005-06-26  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- replaced all our hash functions with the state of the art in hashing
  	- ~1% speedup on cvs-base
  	
          No test cases added, perf effects only.
  
          * khtml/xml/dom_atomicstring.cpp:
          (DOM::AtomicStringStatisticsExitLogger::~AtomicStringStatisticsExitLogger):
  	Improved stats gathering to track collisions in more detail and count reinserts
  	on remove.
          (DOM::addToCollisionCount): ditto
          (DOM::AtomicString::add): ditto
          (DOM::AtomicString::insert): ditto
          (DOM::AtomicString::remove): ditto
          * khtml/xml/dom_stringimpl.cpp:
          (DOM::DOMStringImpl::computeHash): Replace with SuperFastHash algorithm.
          * kwq/KWQCharsets.mm:
          (encodingNameHash): Clean up mistaken shift in the wrong direction.
          * kwq/KWQString.h: Removed unused hashing code.
          * kwq/KWQString.mm: ditto
          * kwq/KWQTextCodec.mm:
          (QTextCodec::hash): Use a variant of the SuperFastHash algorithm.
  
  2005-06-27  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken.
  
          Test cases added: None because this relies on mouse clicking.
  
          <rdar://problem/4140688> assertion failure double-clicking text to select
  
          * khtml/rendering/render_text.cpp:
          (RenderText::positionForCoordinates):
          Use setAffinityUsingLinePosition.
  
  2005-06-25  Darin Adler  <darin at apple.com>
  
          - updated a layout test so that it doesn't depend on a remote resource via http
  
          * layout-tests/fast/backgrounds/001.html: Change image URL to be relative.
          * layout-tests/fast/backgrounds/resources/bg_position_larger.gif: Added.
  
  2005-06-24  Darin Adler  <darin at apple.com>
  
          Changes by Mitz Pettel.
          Reviewed by me.
  
          Test cases added:
          * layout-tests/fast/text/international/bidi-explicit-embedding-expected.txt: Added.
          * layout-tests/fast/text/international/bidi-explicit-embedding.html: Added.
  
          - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3599>
            Incorrect layout of explicit embedding levels
  
          * khtml/rendering/bidi.cpp:
          (khtml::embed): Set up the new run correctly following an embed/pop.
          (khtml::RenderBlock::bidiReorderLine): Close the "dangling" run when we see an explicit
          embedding character (or PDF).
  
  2005-06-24  Darin Adler  <darin at apple.com>
  
          Changes by Mitz Pettel.
          Reviewed by me.
  
          Test cases added:
          * layout-tests/fast/text/international/bidi-CS-after-AN-expected.txt: Added.
          * layout-tests/fast/text/international/bidi-CS-after-AN.html: Added.
  
          - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3693>
            Bug_72578 in KHTML: bidi algorithm misbehaves with CS after AN
  
          * khtml/rendering/bidi.cpp: (khtml::RenderBlock::bidiReorderLine): Rolled in the
          patch from the KDE tree.
  
  2005-06-24  Justin Garcia  <justin.garcia at apple.com>
  
          - <http://bugzilla.opendarwin.org/show_bug.cgi?id=3673> 
              Adds QBuffer::setBuffer(QByteArray) support to KWQBuffer, and adds a QBuffer(QByteArray) constructor.
  
          Reviewed by Darin
  
          Test cases added: Non required
  
          * kwq/KWQBuffer.h:
          (QBuffer::QBuffer):
          * kwq/KWQBuffer.mm:
          (QBuffer::setBuffer):
  
  2005-06-24  Justin Garcia  <justin.garcia at apple.com>
  
          - <http://bugzilla.opendarwin.org/show_bug.cgi?id=3672> KWQRect -- CGRect and other small additions
          - <http://bugzilla.opendarwin.org/show_bug.cgi?id=3670> Add remove and byteOrderMark support to KWQString for kdom
  
          Reviewed by Darin
  
          Test cases added: None required
  
          * kwq/KWQRect.h:
          (QRect::contains):
          * kwq/KWQRect.mm:
          (QRect::QRect):
          (QRect::topRight):
          (QRect::bottomLeft):
          (QRect::normalize):
          (QRect::operator CGRect):
          * kwq/KWQString.h:
          (QChar::):
          (QString::remove):
  
  2005-06-24  Darin Adler  <darin at apple.com>
  
          Reviewed by Justin Garcia.
  
          - fixed <rdar://problem/4151619> Safari changes "\" characters to "/" in the query part of links that start with "?"
  
          Test cases added:
          * layout-tests/fast/dom/anchor-backslash-expected.txt: Added.
          * layout-tests/fast/dom/anchor-backslash.html: Added.
  
          * kwq/KWQKURL.mm: (substituteBackslashes): Fix error where we'd ignore
          "?" and "#" characters if they were the first character in the string.
  
  2005-06-23  Darin Adler  <darin at apple.com>
  
          * khtml/html/html_formimpl.cpp: (DOM::HTMLTextAreaElementImpl::setValue):
          Took out an unneeded type cast (meant to do that before committing).
  
  2005-06-23  Kevin Ballard  <kevin at sb.org>
  
          Reviewed and landed by Darin Adler.
  
          Test cases added:
          * layout-tests/fast/forms/selection-functions-expected.txt: Added.
          * layout-tests/fast/forms/selection-functions.html: Added.
          * layout-tests/fast/forms/textarea-crlf-expected.txt: Added.
          * layout-tests/fast/forms/textarea-crlf.html: Added.
  
          - Fixes bug <http://bugzilla.opendarwin.org/show_bug.cgi?id=3401>.
            Also fixes issue where setting text of a textarea in code and then
            retrieving it would leave the \r\n sequences in the text, despite
            the textarea translating to \n in all other cases.
  
          * khtml/ecma/kjs_html.h:
          * khtml/ecma/kjs_html.cpp:
          (KJS::getInputSelectionStart):
          (KJS::getInputSelectionEnd):
          (KJS::KJS::HTMLElement::getValueProperty):
          (KJS::KJS::HTMLElement::hasProperty):
          (KJS::KJS::HTMLElementFunction::tryCall):
          (KJS::HTMLElement::putValue):
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLInputElementImpl::canHaveSelection):
          (DOM::HTMLInputElementImpl::selectionStart):
          (DOM::HTMLInputElementImpl::selectionEnd):
          (DOM::HTMLInputElementImpl::setSelectionStart):
          (DOM::HTMLInputElementImpl::setSelectionEnd):
          (DOM::HTMLInputElementImpl::setSelectionRange):
          (DOM::HTMLInputElementImpl::setValue):
          (DOM::HTMLTextAreaElementImpl::selectionStart):
          (DOM::HTMLTextAreaElementImpl::selectionEnd):
          (DOM::HTMLTextAreaElementImpl::setSelectionStart):
          (DOM::HTMLTextAreaElementImpl::setSelectionEnd):
          (DOM::HTMLTextAreaElementImpl::setSelectionRange):
          (DOM::HTMLTextAreaElementImpl::setValue):
          * khtml/html/html_formimpl.h:
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::selectionStart):
          (RenderLineEdit::selectionEnd):
          (RenderLineEdit::setSelectionStart):
          (RenderLineEdit::setSelectionEnd):
          (RenderLineEdit::setSelectionRange):
          (RenderTextArea::selectionStart):
          (RenderTextArea::selectionEnd):
          (RenderTextArea::setSelectionStart):
          (RenderTextArea::setSelectionEnd):
          (RenderTextArea::select):
          (RenderTextArea::setSelectionRange):
          * khtml/rendering/render_form.h:
          * kwq/KWQLineEdit.h:
          * kwq/KWQLineEdit.mm:
          (QLineEdit::setCursorPosition):
          (QLineEdit::cursorPosition):
          (QLineEdit::selectAll):
          (QLineEdit::selectionStart):
          (QLineEdit::selectedText):
          (QLineEdit::setSelection):
          * kwq/KWQTextArea.h:
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea setSelectedRange:]):
          (-[KWQTextArea selectedRange]):
          (-[KWQTextArea getCursorPositionAsIndex:inParagraph:]):
          (RangeOfParagraph):
          * kwq/KWQTextEdit.h:
          * kwq/KWQTextEdit.mm:
          (QTextEdit::getCursorPosition):
          (QTextEdit::selectionStart):
          (QTextEdit::selectionEnd):
          (QTextEdit::setSelectionStart):
          (QTextEdit::setSelectionEnd):
          (QTextEdit::selectAll):
          (QTextEdit::setSelectionRange):
          * kwq/KWQTextField.h:
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldController selectedRange]):
          (-[KWQTextFieldController setSelectedRange:]):
  
  2005-06-23  Justin Garcia  <justin.garcia at apple.com>
  
          Patch by Eric Seidel <macdome at opendarwin.org>
  
          Adds QTextIStream, QTextOStream to KWQ
  
          Reviewed by Darin
  
          Test cases added: None required
  
          * kwq/KWQTextStream.h:
          (QTextIStream::QTextIStream):
          (QTextOStream::QTextOStream):
  
  2005-06-23  Justin Garcia  <justin.garcia at apple.com>
  
          Patch by Eric Seidel <macdome at opendarwin.org>
  
          This patch contains several small additions to KWQ
  
          Reviewed by Darin
  
          Test cases added: None required
  
          * kwq/KWQApplication.h:
          (QApplication::palette):
          * kwq/KWQDateTime.h:
          (QDateTime::time):
          * kwq/KWQDict.h:
          (QDict::operator[]):
          (QDictIterator::operator*):
          * kwq/KWQKDebug.h:
          (kdbgstream::operator<<):
          * kwq/KWQMemArray.h:
          (QMemArray::duplicate):
  
  2005-06-23  David Harrison  <harrison at apple.com>
  
          Test cases added: None needed for this debug-only utility code.
  
          - Make showTree() const.
          - Add showTree() for InlineBox.
          - Add showTree() for RenderObject.
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::showTree):
          * khtml/editing/selection.h:
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::showTree):
          * khtml/editing/visible_position.h:
          Make showTree() const.
          
          * khtml/rendering/render_line.cpp:
          (khtml::InlineBox::showTree):
          * khtml/rendering/render_line.h:
          Add showTree() for InlineBox.
          
          * khtml/rendering/render_object.cpp:
          (RenderObject::showTree):
          * khtml/rendering/render_object.h:
          Add showTree() for RenderObject.
          
          * khtml/xml/dom_nodeimpl.cpp:
          (appendAttributeDesc):
          (NodeImpl::showNode):
          (NodeImpl::showTree):
          (NodeImpl::showTreeAndMark):
          * khtml/xml/dom_nodeimpl.h:
          Make showTree() const.
  
  2005-06-23  Vicki Murley  <vicki at apple.com>
  
  	- added template to be used when writing manual tests
  
          * manual-tests/template.html: Added.
  
  2005-06-22  Darin Adler  <darin at apple.com>
  
          - added forwarding headers as needed for Eric Seidel's KDOM work
            see <http://bugzilla.opendarwin.org/show_bug.cgi?id=3655>
  
          * ForwardingHeaders/kjs/value.h: Added.
          * ForwardingHeaders/qintdict.h: Added an include.
          * ForwardingHeaders/qptrcollection.h: Added.
          * ForwardingHeaders/qsize.h: Added.
          * kwq/KWQIntDict.h: Added. Empty file.
  
  2005-06-22  Darin Adler  <darin at apple.com>
  
          Reviewed by Vicki.
  
          Test cases added:
          * layout-tests/fast/css/apple-prefix-expected.txt: Added.
          * layout-tests/fast/css/apple-prefix.html: Added.
  
          - fixed <rdar://problem/4141650> REGRESSION: Safari RSS slider broken with TOT WebCore
  
          * khtml/css/parser.y:
          (getPropertyID): Fix lifetime problem on the QString. Also construct the QString
          using length, since the passed-in char * is not necessarily null-terminated. Also do
          the mapping only if it's a "-apple-" prefix -- the old code would do it for, e.g.,
          "-applex-" too. The old code would not successfully map the "apple" in "appleLineClamp"
          to "khtml", and Dave changed things so that the internal name of all CSS attributes
          is "khtml" back in his 2005-05-03 check-in, breaking the use of appleLineClamp in RSS.
          (getValueID): Ditto.
  
  2005-06-22  Anders Carlsson  <andersca at mac.com>
  
          Reviewed and landed by Darin Adler.
  
          Test cases added: 
          * layout-tests/fast/dom/title-text-property-expected.txt: Added
          * layout-tests/fast/dom/title-text-property.html: Added
          * layout-tests/fast/dom/title-text-property-expected-2.txt: Added
          * layout-tests/fast/dom/title-text-property-2.html: Added
  
          - fixed <rdar://problem/3831364> getting or setting text for a <title> element doesn't work
          - fixed <rdar://problem/4091225> REGRESSION (1.2.4-1.3): many titles with non-ASCII characters do not display properly (XHTML strict only)
          - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3586>
            Setting and getting title's text attribute does not work
  
          * khtml/dom/html_head.cpp:
          (HTMLTitleElement::text):
          (HTMLTitleElement::setText):
          Call HTMLTitleElementImpl::text() and ::setText().
  
          * khtml/html/html_headimpl.cpp:
          (HTMLTitleElementImpl::HTMLTitleElementImpl):
          (HTMLTitleElementImpl::insertedIntoDocument):
          (HTMLTitleElementImpl::removedFromDocument):
          (HTMLTitleElementImpl::childrenChanged):
          Pass the current title node to DocumentImpl::setTitle
          and ::removeTitle.
  
          (HTMLTitleElementImpl::text):
          Return the title.
  
          (HTMLTitleElementImpl::setText):
          Set the new title.
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::~DocumentImpl):
          (DocumentImpl::updateTitle):
          (DocumentImpl::setTitle):
          (DocumentImpl::removeTitle):
          * khtml/xml/dom_docimpl.h:
          Only update the title if it's done by setting document.title
          or by changing the child nodes of the title element.
  
  2005-06-22  Darin Adler  <darin at apple.com>
  
          Changes by Mitz Pettel.
          Reviewed by me.
  
          - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3633>
            Layout order of bidi level runs is incorrect
  
          Test cases added:
          * layout-tests/fast/text/international/bidi-L2-run-reordering-expected.txt: Added.
          * layout-tests/fast/text/international/bidi-L2-run-reordering.html: Added.
  
          * khtml/rendering/bidi.cpp: (khtml::RenderBlock::bidiReorderLine): Fixed mistake
          where we'd advance too far after reversing a run.
  
  2005-06-22  Darin Adler  <darin at apple.com>
  
          - added test case for JavaScriptCore fix
  
          * layout-tests/fast/js/string-replace-2-expected.txt: Added.
          * layout-tests/fast/js/string-replace-2.html: Added.
  
  2005-06-22  Darin Adler  <darin at apple.com>
  
          Reviewed by John Sullivan.
  
          Test cases added:
          * layout-tests/fast/dom/css-set-property-exception-expected.txt: Added.
          * layout-tests/fast/dom/css-set-property-exception.html: Added.
  
          - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3616>
            RSS search field, Dashboard widgets failing due to CSS exception
  
          * khtml/ecma/kjs_css.cpp: (KJS::DOMCSSStyleDeclaration::tryPut):
          Ignore exceptions when setting properties.
  
          * layout-tests/fast/js/exception-linenums.html: Changed test case that
          involved setting style to one that involved setting another property that
          raises an exception when you try to set it (setting prefix on a text node).
  
  2005-06-22  Darin Adler  <darin at apple.com>
  
          Change proposed by Eric Seidel.
  
          * WebCore.pbproj/project.pbxproj: Fix build rule to match the one in JavaScriptCore.
          The one here accidentally had hard-coded paths in it and also had the $() vs. ${}
          issue that broke building on Xcode 2.1 for no good reason (it didn't need $() or ${}).
  
  2005-06-21  Maciej Stachowiak  <mjs at apple.com>
  
          Patch from KevinBallard <kevin at sb.org>, reviewed by me.
  
          - fix build for Xcode 2.1, use ${} for INPUT_FILE_BASE to fix build with Xcode 2.1
  
          * WebCore.pbproj/project.pbxproj:
  
  2005-06-21  Justin Garcia  <justin.garcia at apple.com>
  
          - Fixes <rdar://problem/4114192>.
          - Fixes a crash in TOT Mail/Blot if you Edit -> Add Hyperlink on a Selection 
             that ends at the end of the document
          - Fixes a problem in TOT Mail/Blot where Edit -> Add Hyperlink creates 
             a link one character beyond what is expected.
          
          In replacement, during insertion, some special case code was being called inappropriately.
          
          Reviewed by Harrison
  
          Test cases added: None, requires manual interaction
  
          * khtml/editing/replace_selection_command.cpp:
          (khtml::ReplaceSelectionCommand::doApply): In "step 2" of a replacement, we should 
          only next() the insertion point if the special pre-insertion-merge actually occured.
          mergeStart used to be the correct check for the occurence of a pre-insertion-merge, but
          a bug fix made this not the case.  A non-null m_lastNodeInserted correctly signals 
          that some pre-insertion merging occured.
  
  2005-06-21  Darin Adler  <darin at apple.com>
  
          * WebCore.pbproj/project.pbxproj: Switched to a build rule rather than a build phase for the
          .y files -- this gets rid of the problem where modifying the .y file would not cause sufficient
          compilation.
  
          * khtml/css/parser_wrapper.cpp: Removed.
  
  2005-06-21  Adele Peterson  <adele at apple.com>
  
          Test cases for:
          <http://bugzilla.opendarwin.org/show_bug.cgi?id=3450>
          <rdar://problem/3881901> String.replace() method not working when regex pattern contains {n, m}
  
          * layout-tests/fast/js/string_replace-expected.txt: Added.
          * layout-tests/fast/js/string_replace.html: Added.
  
  2005-06-21  Geoffrey Garen  <ggaren at apple.com>
  
          Patch contributed by Niels Leenheer <niels.leenheer at gmail.com>
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3370
          (Safari can't handle strange frame dimensions)
  
          Reviewed by Darin.
  
          * khtml/dom/dom_string.cpp:
          (DOM::DOMString::toCoordsArray):
          * khtml/dom/dom_string.h:
          * khtml/html/html_imageimpl.cpp:
          (HTMLAreaElementImpl::parseMappedAttribute):
          * khtml/xml/dom_atomicstring.h:
          (DOM::AtomicString::toCoordsArray):
          * khtml/xml/dom_stringimpl.cpp:
          (DOM::parseLength):
          (DOM::DOMStringImpl::toCoordsArray):
          (DOM::DOMStringImpl::toLengthArray):
          * khtml/xml/dom_stringimpl.h:
  
          Test cases added: 
          * layout-tests/fast/frames/invalid-expected.txt: Added.
          * layout-tests/fast/frames/invalid.html: Added.
          * layout-tests/fast/frames/valid-expected.txt: Added.
          * layout-tests/fast/frames/valid.html: Added.
  
  2005-06-21  Geoffrey Garen  <ggaren at apple.com>
  
          - fixed <rdar://problem/4155049> javascript function named as "opener" doesn't get called because of window.opener property
  
          Test cases only, fix is in JavaScriptCore
  
          Reviewed by cblu.
  
          Test cases added: 
  
          * layout-tests/fast/js/global-opener-function-expected.txt: Added.
          * layout-tests/fast/js/global-opener-function.html: Added.
  
  2005-06-21  David Harrison  <harrison at apple.com>
  
          Reviewed by Justin.
          
          - show class and style attributes for element nodes
          - nil check the node being showTree'd
          - add Position::showTree()
  
          Test cases added: None needed for this debug-only utility code.
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::showTree):
          - nil check the node
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::previousVisiblePosition):
          - comments
          (khtml::VisiblePosition::showTree):
          - nil check the node
          * khtml/xml/dom_nodeimpl.cpp:
          (appendAttributeDesc):
          (NodeImpl::showNode):
          - show class and style attributes for element nodes
          * khtml/xml/dom_position.cpp:
          (DOM::Position::showTree):
          * khtml/xml/dom_position.h:
          - add Position::showTree()
  
  2005-06-20  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin(first pass) and Hyatt.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3576
          (roll in support for "const" keyword from KDE tree)
          - make processVarDecls handle deletability of variables declared
          in an eval block the same as evaluate would
          - make eval() call processVarDecls - needed to match mozilla and
          to make the second change testable
  
          Test cases only, fix is in JavaScriptCore
          
          Test cases added:
          * layout-tests/fast/js/const-expected.txt: Added.
          * layout-tests/fast/js/const.html: Added.
          * layout-tests/fast/js/eval-var-decl-expected.txt: Added.
          * layout-tests/fast/js/eval-var-decl.html: Added.
  
  2005-06-20  Maciej Stachowiak  <mjs at apple.com>
  
          Patch from Mark Rowe <opendarwin.org at bdash.net.nz>, reviewed by me.
  
          - fixed http://bugzilla.opendarwin.org/attachment.cgi?id=2483
          
          Test cases added: 
          * layout-tests/fast/js/hasOwnProperty-expected.txt: Added.
          * layout-tests/fast/js/hasOwnProperty.html: Added.
          - also fixed two mozilla JS tests
  	
          * khtml/ecma/kjs_binding.h:
          * khtml/ecma/kjs_css.cpp:
          (KJS::DOMCSSStyleDeclaration::hasOwnProperty):
          * khtml/ecma/kjs_css.h:
          * khtml/ecma/kjs_dom.cpp:
          (KJS::DOMNodeList::hasOwnProperty):
          (KJS::DOMNamedNodeMap::hasOwnProperty):
          * khtml/ecma/kjs_dom.h:
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::hasOwnProperty):
          (KJS::KJS::HTMLElement::hasOwnProperty):
          (KJS::KJS::HTMLCollection::hasOwnProperty):
          * khtml/ecma/kjs_html.h:
          * khtml/ecma/kjs_window.cpp:
          (KJS::Window::hasOwnProperty):
          (KJS::Konqueror::hasOwnProperty):
          * khtml/ecma/kjs_window.h:
  
  2005-06-20  Geoffrey Garen  <ggaren at apple.com>
  
          Changes by Darin. Layout tests by me. Reviewed by me.
  
  	Fixed <rdar://problem/4152454> crash in KJS::ExprStatementNode::execute(KJS::ExecState*) in World Clock widget with TOT.
  
          Test cases added: 
          * layout-tests/fast/dom/gc-4-expected.txt: Added.
          * layout-tests/fast/dom/gc-4.html: Added.
  
          * khtml/ecma/kjs_html.cpp: 
          (KJS::Context2D::mark): mark now (1) checks for NULL pointers and (2) 
  	calls mark on its parent class (DOMObject::mark).
  
  2005-06-19  Darin Adler  <darin at apple.com>
  
          Changes by both Anders Carlsson and me.
          Reviewed by Maciej and me.
  
          Test cases added:
          * layout-tests/fast/forms/element-order-expected.txt: Added.
          * layout-tests/fast/forms/element-order.html: Added.
  
          - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3503>
            form.elements[] not order-preserving when elements added via DOM
  
          * khtml/html/html_formimpl.h: Added formElementIndex.
          * khtml/html/html_formimpl.cpp:
          (DOM::insertIntoVector): Added.
          (DOM::HTMLFormElementImpl::formElementIndex): Added. Computes an appropriate
          index for a form element, given the document position relative to the other elements.
          (DOM::HTMLFormElementImpl::registerFormElement): Use formElementIndex to determine
          where to insert the element in the formElements array.
  
  2005-06-19  Darin Adler  <darin at apple.com>
  
          Changes by Anders Carlsson and me.
          Reviewed by Maciej and me.
  
          Test cases added: None. Could not figure out how to automate a test without
          making enhancements to DumpRenderTree.
  
          - fixed <rdar://problem/4141141> Onselect event is ignored with TEXTAREA and INPUT
            also <http://bugzilla.opendarwin.org/show_bug.cgi?id=3256>
  
          * khtml/html/html_formimpl.cpp: (DOM::HTMLTextAreaElementImpl::select):
          Remove unneeded explicit call to onSelect() here -- now handled by the renderer.
  
          * khtml/rendering/render_form.h: Added declarations as needed below.
          * khtml/rendering/render_form.cpp:
          (RenderFormElement::slotSelectionChanged): Add base class implementation that does nothing.
          (RenderLineEdit::RenderLineEdit): Connect the selection changed signal to our slot.
          (RenderLineEdit::slotSelectionChanged): Call onSelect when selection changes to something
          that's a selection (not a caret).
          (RenderTextArea::RenderTextArea): Connect as above.
          (RenderTextArea::slotSelectionChanged): Call as above.
  
          * kwq/KWQLineEdit.h: Added declarations as needed below.
          * kwq/KWQLineEdit.mm:
          (QLineEdit::QLineEdit): Added selectionChanged signal.
          (QLineEdit::hasSelectedText): Added.
  
          * kwq/KWQSlot.mm:
          (KWQSlot::KWQSlot): Make selectionChanged work on any form element.
          (KWQSlot::call): ditto.
  
          * kwq/KWQTextArea.h: Added hasSelection method.
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea textViewDidChangeSelection:]): Added. Sends selectionChanged signal, except if
          we're in the middle of gaining or losing first responder.
          (-[KWQTextArea hasSelection]): Added.
          (-[KWQTextAreaTextView becomeFirstResponder]): Added. Sets flag to tell us we're in a responder
          change (using a count to avoid trouble if we reenter).
          (-[KWQTextAreaTextView resignFirstResponder]): Ditto.
          (-[KWQTextAreaTextView inResponderChange]): Added.
  
          * kwq/KWQTextEdit.h: Added declarations as needed below.
          * kwq/KWQTextEdit.mm:
          (QTextEdit::QTextEdit): Added selectionChanged signal.
          (QTextEdit::hasSelectedText): Added.
  
          * kwq/KWQTextField.h: Added declarations as needed below.
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldController initWithTextField:QLineEdit:]): Fixed up to do the right
          thing with the result of the init function we call.
          (-[KWQTextFieldController controlTextDidEndEditing:]): Removed call to setHasFocus:NO
          since it's a little too late by the time the control is called; now handled by the
          text view delegate methods below.
          (-[KWQTextFieldController hasSelection]): Added.
          (-[KWQTextFieldController setHasFocus:]): Sets the new hasFocusAndSelectionSet after
          new focus and selection are both set up.
          (-[KWQTextFieldController textViewDidChangeSelection:]): Added. Sends the selection
          changed signal.
          (-[KWQTextField initWithQLineEdit:]): Fixed up to do the right thing with the result
          of the init function we call.
          (-[KWQTextField textViewDidChangeSelection:]): Added. Calls super and then calls the
          controller.
          (-[KWQTextField textDidEndEditing:]): Added. Calls setHasFocus:NO and then calls super.
          (-[KWQSecureTextField initWithQLineEdit:]): Same as above, but for secure text fields.
          (-[KWQSecureTextField textViewDidChangeSelection:]): Ditto.
          (-[KWQSecureTextField textDidEndEditing:]): Ditto.
          (-[KWQSearchField initWithQLineEdit:]): Same as above, but for search fields.
          (-[KWQSearchField textViewDidChangeSelection:]): Ditto.
          (-[KWQSearchField textDidEndEditing:]): Ditto.
          (-[KWQTextFieldFormatter init]): Fixed up to do the right thing with the result of
          the init function we call.
  
  2005-06-18  Darin Adler  <darin at apple.com>
  
          Changes by Anders Carlsson.
          Reviewed by me.
  
          Test cases added:
          * layout-tests/fast/dom/css-dom-read-expected.txt: Added.
          * layout-tests/fast/dom/css-dom-read.html: Added.
  
          - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3534>
            CSSMutableStyleDeclarationImpl::item is unimplemented
  
          * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::item):
          Get the style from the m_values list.
  
  2005-06-18  Darin Adler  <darin at apple.com>
  
          - undid a last minute change I made that broke a patch I landed
            (layout tests caught the mistake, all should work again now)
  
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLLabelElementImpl::formElement): Don't include this when iterating.
          (DOM::HTMLLegendElementImpl::formElement): Ditto.
  
  2005-06-18  Darin Adler  <darin at apple.com>
  
          - removing the applet tests, since they are causing other tests to fail
  
          * layout-tests/fast/replaced/applet-hspace-expected.txt: Removed.
          * layout-tests/fast/replaced/applet-hspace.html: Removed.
          * layout-tests/fast/replaced/applet-vspace-expected.txt: Removed.
          * layout-tests/fast/replaced/applet-vspace.html: Removed.
          * layout-tests/fast/replaced/resources/applet.class: Removed.
          * layout-tests/fast/replaced/resources/applet.java: Removed.
  
  2005-06-18  Darin Adler  <darin at apple.com>
  
          Changes by Anders Carlsson.
          Reviewed by me.
  
          Test cases added:
          * layout-tests/fast/dom/resources/script3.js: Added.
          * layout-tests/fast/dom/resources/script4.js: Added.
          * layout-tests/fast/dom/resources/script5.js: Added.
          * layout-tests/fast/dom/script-add-expected.txt: Added.
          * layout-tests/fast/dom/script-add.html: Added.
  
          - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3526>
            improve support for dynamically added <script> elements
  
          * khtml/html/html_headimpl.h: Added override of childrenChanged, new evaluateScript
          function, and m_evaluated boolean.
          * khtml/html/html_headimpl.cpp:
          (HTMLScriptElementImpl::HTMLScriptElementImpl): Init m_evaluated to false.
          (HTMLScriptElementImpl::childrenChanged): Added code to evaluate the script the first
          time a child is added (except for nodes created by parsing).
          (HTMLScriptElementImpl::insertedIntoDocument): Refactored to use the new text and
          evaluateScript functions. Also changed to not try to evaluate the script if the element
          is entirely empty. This allows you to declare an empty <script> element and fill the
          content in later using DHTML.
          (HTMLScriptElementImpl::notifyFinished): Refactored to use the new evaluateScript function.
          (HTMLScriptElementImpl::evaluateScript): Added. Checks and sets a new m_evaluated boolean
          to implement the "evaluate each script only once" rule.
          (HTMLScriptElementImpl::text): Replaced bogus implementation with one that works.
          (HTMLScriptElementImpl::setText): Ditto.
  
          * khtml/dom/html_head.cpp:
          (HTMLScriptElement::text): Replaced bogus implementation with one that calls through to
          the implementation class. This change doesn't really matter since we don't compile this file.
          (HTMLScriptElement::setText): Ditto.
  
  2005-06-18  Darin Adler  <darin at apple.com>
  
          * khtml/html/html_formimpl.cpp: (DOM::HTMLLabelElementImpl::formElement):
          Oops, checked in a version that didn't even compile! Fixed now.
  
  2005-06-18  Darin Adler  <darin at apple.com>
  
          Changes by Anders Carlsson.
          Reviewed by me.
  
          Test cases added:
          * layout-tests/fast/forms/focus-expected.txt: Added.
          * layout-tests/fast/forms/focus.html: Added.
          * layout-tests/fast/forms/legend-access-key-expected.txt: Added.
          * layout-tests/fast/forms/legend-access-key.html: Added.
  
          - fixed <rdar://problem/3481846> HTML4: accesskey not supported by HTML legend elements
            also <http://bugzilla.opendarwin.org/show_bug.cgi?id=3407>
          - added focus methods for <label> and <legend> elements
          - fixed crash when using JavaScript-created events that prevented tests from running
  
          * khtml/ecma/kjs_html.h: Added focus methods.
          * khtml/ecma/kjs_html.cpp: (KJS::KJS::HTMLElementFunction::tryCall): Added bindings for
          focus for <label> and <legend>. (Sorry about the merging, Dave.)
  
          * khtml/html/html_formimpl.h: Added new functions.
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLLabelElementImpl::focus): Added.
          (DOM::HTMLLegendElementImpl::formElement): Added.
          (DOM::HTMLLegendElementImpl::focus): Added.
          (DOM::HTMLLegendElementImpl::accessKeyAction): Added.
  
          * khtml/xml/dom_docimpl.cpp: (DocumentImpl::defaultEventHandler): If there's no QKeyEvent,
          then get the key name from keyIdentifier() instead of the QKeyEvent's unmodifiedText().
          The old code would just do a nil-deref.
  
  2005-06-18  Darin Adler  <darin at apple.com>
  
          Change by Niels Leenheer (also done by Dave Hyatt on stage at WWDC).
          Reviewed by me.
  
          Test cases added:
          * layout-tests/fast/replaced/object-align-hspace-vspace-expected.txt: Added.
          * layout-tests/fast/replaced/object-align-hspace-vspace.html: Added.
          * layout-tests/fast/replaced/resources/webkit-background.png: Added.
  
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLObjectElementImpl::mapToEntry): Add cases for ATTR_ALIGN, ATTR_VSPACE and ATTR_HSPACE.
          (DOM::HTMLObjectElementImpl::parseMappedAttribute): Ditto.
  
  2005-06-18  Darin Adler  <darin at apple.com>
  
          Change by Niels Leenheer (also done by Dave Hyatt on stage at WWDC).
          Reviewed by me.
  
          Test cases added:
          * layout-tests/fast/replaced/applet-hspace-expected.txt: Added.
          * layout-tests/fast/replaced/applet-hspace.html: Added.
          * layout-tests/fast/replaced/applet-vspace-expected.txt: Added.
          * layout-tests/fast/replaced/applet-vspace.html: Added.
          * layout-tests/fast/replaced/resources/applet.class: Added.
          * layout-tests/fast/replaced/resources/applet.java: Added.
  
          - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3246>
            HSPACE and VSPACE attributes are ignored in APPLET element
  
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLAppletElementImpl::mapToEntry): Add cases for ATTR_VSPACE and ATTR_HSPACE.
          (DOM::HTMLAppletElementImpl::parseMappedAttribute): Ditto.
  
  2005-06-18  Darin Adler  <darin at apple.com>
  
          - removed some unused code from one of the KWQ headers
  
          * kwq/KWQKHTMLPartBrowserExtension.h:
  
          - added a layout test for a bug that's already fixed
  
          * layout-tests/fast/forms/element-by-name-expected.txt: Added.
          * layout-tests/fast/forms/element-by-name.html: Added.
  
  2005-06-17  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Maciej. 
  
          Test cases added: None, since this test requires manual interaction.
  
  	- fixed <rdar://problem/4086793> Selects wrapped by Span or Label elements 
  	do not resize when options are added via javascript
          
  	* khtml/rendering/render_form.cpp:
          (RenderSelect::layout): Remove call setting setNeedsLayout to true. setNeedsLayout
  	is already true at this point, and this additional call has the negative effect of 
  	marking m_normalChildNeedsLayout on the element's parent, which keeps layout from 
  	propagating all the way up to the root later on.
  
  2005-06-17  Justin Garcia  <justin.garcia at apple.com>
  
  	Fix for rdar://3756860, (also listed as) http://bugzilla.opendarwin.org/show_bug.cgi?id=3295
  	The cellIndex property for HTMLTableCellElement was always zero because the method to support it was just a stub.
          KHTML fix was to simply call nodeIndex(), but this is incorrect because a table row can have as children <script>s
          and <form>s (and perhaps others).
  	
          Reviewed by hyatt and john
  
          Test cases added:
  	* layout-tests/fast/table/cellindex.html: Added.  Illustrates the fix.
  
          * khtml/html/html_tableimpl.cpp:
          (DOM::HTMLTableCellElementImpl::cellIndex): Iterate through siblings only counting <th> and <td> elements
          * khtml/html/html_tableimpl.h:
  
  2005-06-17  Adele Peterson  <adele at apple.com>
  
          Reviewed by Maciej.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3419
          <rdar://problem/4111752> REGRESSION (125-312/412): Safari doesn't display edmunds.com pages first time through
  
          * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): set 'script' flag when 
            parsing <script src="foo" /> case.  In this case, parseTag calls the scriptHandler function which expects 
            that flag to be set, and sets it back to false at the appropriate time.
  
          Test cases added: These still don't test the cached script cases, but they're good regression 
          tests for the tokenizer.  We'll have to come up with a good way to test the cached cases later.
  
          * layout-tests/fast/tokenizer/external-script-document-write_2-expected.txt: Added.
          * layout-tests/fast/tokenizer/external-script-document-write_2.html: Added.
          * layout-tests/fast/tokenizer/resources/empty_script.js: Added.
          * layout-tests/fast/tokenizer/script_extra_close-expected.txt: Added.
          * layout-tests/fast/tokenizer/script_extra_close.html: Added.
          * layout-tests/fast/tokenizer/script_quirk-expected.txt: Added.
          * layout-tests/fast/tokenizer/script_quirk.html: Added.
  
  2005-06-17  Justin Garcia  <justin.garcia at apple.com>
  
  	Fixed fprintf problem in gcc4.0
  	
          Reviewed by Darin
  
          Test cases added: See previous ChangeLog entry
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::showTreeAndMark): Fixed fprintf warning in gcc4
  
  2005-06-17  Geoffrey Garen  <ggaren at apple.com>
  
  	Patch contributed by Anders Carlsson<andersca at mac.com>.
  
  	Fixes: http://bugzilla.opendarwin.org/show_bug.cgi?id=3408	
  
          Reviewed by Darin.
  
          Test cases added: None. Test requires manual interaction.
  	Manual test available at: http://bugzilla.opendarwin.org/attachment.cgi?id=2207
  
          * khtml/html/html_formimpl.cpp: Eliminated HTMLButtonElementImpl::click. HTMLButtonElementImpl now inherits HTMLElementImpl::click. 
          * khtml/html/html_formimpl.h: Ditto.
  
  2005-06-17  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3556
            black diamond question mark shown for invalid UTF-8 sequences
  
          Test cases added:
          * layout-tests/fast/encoding/invalid-UTF-8-expected.txt: Added.
          * layout-tests/fast/encoding/invalid-UTF-8.html: Added.
  
          * kwq/KWQTextCodec.mm:
          (unwanted): Added. Returns true for BOM, replacement, and null characters.
          (KWQTextDecoder::appendOmittingUnwanted): Renamed from appendOmittingNullsAndBOMs and
          changed to use the new "unwanted" function, which causes it to omit replacement characters.
          (KWQTextDecoder::convertUsingTEC): Call append function by its new name.
  
  2005-06-16  Justin Garcia  <justin.garcia at apple.com>
  
  	Added a few debugging methods to highlight Selections, VisiblePositions and Nodes in the DOM tree.
  	
          Reviewed by Dave Harrison
  
          Test cases added: None, changes are only to aid debugging
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::showTree):
          * khtml/editing/selection.h:
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::showTree):
          * khtml/editing/visible_position.h:
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::showNode):
          (NodeImpl::showTree):
          (NodeImpl::showTreeAndMark): 
          * khtml/xml/dom_nodeimpl.h:
  
  2005-06-14  David Hyatt  <hyatt at apple.com>
  
          Add an initial implementation of QualifiedName and HTMLNames.  These classes are not used by anyone yet.
  	Progress being recorded in bugzilla bug 3405.
  	
          Reviewed by mjs
  
          Test cases added: (None, does not affect build yet)
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/xml/dom_qname.h,.cpp
          * khtml/html/htmlnames.h,.cpp
  
  2005-06-14  David Hyatt  <hyatt at apple.com>
  
  	The behavior of <pre> is broken so that the newline
  	is not always properly being eaten after the open of the tag.  In addition we were eating the first newline
  	after all other tags.  This patch stops eating newlines after other tags and refines the behavior for pre
  	to catch all cases.
  	
          Reviewed by sullivan
  
          Test cases added: fast/text/whitespace/030.html
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseTag):
          (khtml::HTMLTokenizer::write):
  
  2005-06-13  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Darin.
  
  	No test cases added since the steps to reproduce require use of showModalDialog.
  
  	- fix for <rdar://problem/4145910> parameters not working in showModalDialog 
  	test page (dialogWidth, dialogHeight, etc.)
  
          * khtml/ecma/kjs_window.cpp:
          (KJS::parseFeatures): add a check for colon character in the feature string
  
  2005-06-13  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Chris Blumenberg and Adele.
  
  	- better fix for <rdar://problem/4142247> REGRESSION: List to browse widgets at Apple website failed. Closing tab afterwards caused Safari crash
  	http://bugzilla.opendarwin.org/show_bug.cgi?id=3445
  
  	With this change and the matching WebKit change we'll still stop loading the moment you click
  	a download link, but the unload event and detaching of event handlers will not happen early any more.
  	
          * khtml/khtml_part.cpp:
          (KHTMLPart::stopLoading): Factored out from closeURL, make firing of unload
  	and detaching of event handlers optional.
          (KHTMLPart::closeURL): call stopLoading(true)
          * khtml/khtml_part.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge stopLoading]): Call stopLoading(false).
  
  2005-06-13  Maciej Stachowiak  <mjs at apple.com>
  
  	Patch from Andrew Wellington <proton at wiretapped.net>
          Reviewed by me.
  
  	- fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3302
  	(Safari crashes when going to acid2 test page once it's in cache)
  	
          No test cases addded since the repro steps require use of tabbed browsing.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::handleFallbackContent): check for nil
  
  2005-06-12  Darin Adler  <darin at apple.com>
  
          - added expected test results for new tests
  
          * layout-tests/fast/selectors/159-expected.txt: Added.
          * layout-tests/fast/selectors/177a-expected.txt: Added.
          * layout-tests/fast/selectors/177b-expected.txt: Added.
  
  2005-06-11  Maciej Stachowiak  <mjs at apple.com>
  
          Patch from Nicholas Shanks <contact at nickshanks.com>, reviewed by me.
  
  	- Distinguish between pseudo-elements and pseudo-classes in CSS parsing.
  	http://bugzilla.opendarwin.org/show_bug.cgi?id=3375
  
  	Merge of svn log -v -r 399829 svn://anonsvn.kde.org/home/kde
  	
          Test cases added: Added the following from CSS selector test suite,
  	unfortunately 159 and 117a do not show any difference with and without the
  	patch since layout tests do not dump selection style (yet).
  	
          * layout-tests/fast/selectors/159.html: Added.
          * layout-tests/fast/selectors/177a.html: Added.
          * layout-tests/fast/selectors/177b.html: Added.
  
          * khtml/css/css_base.cpp:
          (CSSSelector::specificity):
          (CSSSelector::extractPseudoType):
          (CSSSelector::selectorText):
          * khtml/css/css_base.h:
          (DOM::CSSSelector::):
          (DOM::CSSSelector::pseudoType):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::checkSelector):
          (khtml::CSSStyleSelector::checkOneSelector):
          * khtml/css/parser.y:
  
  2005-06-11  Maciej Stachowiak  <mjs at apple.com>
  
          Patch from Timothy Hatcher  <timothy at colloquy.info>, reviewed by me.
  
          Test cases added:
          * layout-tests/fast/dom/children-nodes-expected.txt: Added.
          * layout-tests/fast/dom/children-nodes.html: Added.
  
          * khtml/html/html_miscimpl.cpp:
          (DOM::HTMLCollectionImpl::traverseNextItem): For "children"
  	collection, use nextSibling() instead of traverseNextNext() to avoid
  	doing deep traversal.
  
  2005-06-11  Maciej Stachowiak  <mjs at apple.com>
  
          Added missing expected results from the background image patch.
  
          * layout-tests/fast/backgrounds/001-expected.txt: Added.
  
  2005-06-10  David Hyatt  <hyatt at apple.com>
  
  	Fix for bugzilla bug 3335, add support for the CSS3 indirect adjacent sibling selector.  Patch merge
  	from KHTML tree by Nick Shanks.
  	
          Reviewed by hyatt
  
          Test cases added: fast/selectors/046.html
  
          * khtml/css/css_base.cpp:
          (CSSSelector::selectorText):
          * khtml/css/css_base.h:
          (DOM::CSSSelector::):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::checkSelector):
          * khtml/css/parser.y:
          * layout-tests/fast/selectors/046-expected.txt: Added.
          * layout-tests/fast/selectors/046.html: Added.
  
  2005-06-10  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3237, background image repeats when it shouldn't.  The Radar bug is 4005553.  Patch from
  	Nate Cook.
  	
          Reviewed by darin and hyatt
  
          Test cases added: fast/backgrounds/001.html
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::paintBackgroundExtended):
          * layout-tests/fast/backgrounds/001.html: Added.
  
  2005-06-10  David Hyatt  <hyatt at apple.com>
  
  	Merge Allan Jensen's fix for 3236.
  	
          Reviewed by hyatt
  
          Test cases added: None, test case already added for the bug.
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/rendering/render_style.cpp:
          (RenderStyle::setContent):
  
  2005-06-10  Darin Adler  <darin at apple.com>
  
          Change by Mark Rowe <opendarwin.org at bdash.net.nz>.
          Refined and reviewed by me.
  
          - test for exception file/line number fix
            http://bugzilla.opendarwin.org/show_bug.cgi?id=3327
  
          * layout-tests/fast/js/exception-linenums-expected.txt: Added.
          * layout-tests/fast/js/exception-linenums.html: Added.
  
  2005-06-09  David Hyatt  <hyatt at apple.com>
  
  	Fix from Carston Guenther for bugzilla bug 3236.
  
  	attr(x) should work even if x is not present on the element.
  
  	This is Radar bug #3584466
  	
          Reviewed by hyatt
  
          Test cases added: fast/css-generated-content/013.html
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty):
          * layout-tests/fast/css-generated-content/013-expected.txt: Added.
          * layout-tests/fast/css-generated-content/013.html: Added.
  
  2005-06-09  Darin Adler  <darin at apple.com>
  
          Tested by Mark Rowe.
  
          * layout-tests/fast/js/date-parse-test.html: Updated this test to use a time zone offset
          for one of the test cases that's time zone dependent; was working in CA, US, failing in NZ.
  
  2005-06-08  Anders Carlsson  <andersca at mac.com>
  
  	Reviewed and committed by Maciej.
  
  	- fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3337
  	(Support the Mozilla DOMParser and XMLSerializer objects)
  
  	<rdar://problem/3533735> implement Mozilla "DOMParser" extension for use with XMLHTTPRequest
  
          Test cases added:
          * layout-tests/fast/dom/dom-parse-serialize-display-expected.txt: Added.
          * layout-tests/fast/dom/dom-parse-serialize-display.html: Added.
          * layout-tests/fast/dom/dom-parse-serialize-expected.txt: Added.
          * layout-tests/fast/dom/dom-parse-serialize.html: Added.
  
  	* khtml/ecma/domparser.h:
  	* khtml/ecma/domparser.cpp:
  	Add files implementing the DOMParser object.
  
  	* khtml/ecma/kjs_window.h:
  	* khtml/ecma/kjs_window.cpp:
  	Expose DOMParser object.
  	
  2005-06-07  David Hyatt  <hyatt at apple.com>
  
  	Patch from Brian Campbell.  Make sure the min and max values of slider properly update.
  	Fixes bugilla bug 3323, internal Radar # is 4098892.
  	
          Reviewed by hyatt
  
          Test cases added: (Not testable with a layout test)
  
          * kwq/KWQSlider.mm:
          (QSlider::setMinValue):
          (QSlider::setMaxValue):
  
  2005-06-07  Adele Peterson  <adele at apple.com>
  
          Change by Darin, reviewed by Maciej and me.
  
          - fixed <rdar://problem/4139800> REGRESSION: Safari crashes at bebe.com
  
          There were cases where the DOMNode mark function would end up not even
          marking the node that it was called on. The old code tried to skip any
          subtrees that were already marked, but that code was wrong.
  
          * khtml/ecma/kjs_dom.cpp: (KJS::DOMNode::mark): Changed three things:
            1) Instead of a boolean, keep a set of trees that we are marking, that
               prevents problems if we mark things that have references between
               separate trees of DOM nodes.
            2) Don't do the "outermost node with a wrapper" check, just start marking
               at the root of the entire tree, because there's no way to have an
               unreachable node pointing to a reachable node.
            3) Handle the unusual case where the document's wrapper dictionary is
               gone by marking just this node explicitly.
          This passes the layout tests, still fixes the Dashboard memory leak from
          bug 4125222, and makes bebe.com work again.
  
  2005-06-07  Darin Adler  <darin at apple.com>
  
          Change by Toby Peterson <toby at opendarwin.org>.
          Reviewed by me.
  
          * WebCore.pbproj/project.pbxproj: Allow bison 2.0, which generates the file
          with a different name.
  
  2005-06-07  Darin Adler  <darin at apple.com>
  
          Change by Mark Rowe <opendarwin.org at bdash.net.nz>.
          Reviewed by me.
  
          - fixed the WebCore half of build failure with spaces in the path
            http://bugzilla.opendarwin.org/show_bug.cgi?id=3291
  
          * WebCore.pbproj/project.pbxproj: Add quotes to make LIBRARY_SEARCH_PATHS work even when
          the path has a space in it.
  
  2005-06-07  David Hyatt  <hyatt at apple.com>
  
  	Patch from Mark Rowe to fix a minor memory leak in WebCoreSettings.
  	
          Reviewed by hyatt
  
          * kwq/WebCoreSettings.mm:
          (-[WebCoreSettings dealloc]):
  
  2005-06-04  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - import icu headers into project
  
          * WebCore.pbproj/project.pbxproj: Added icu directory to header search path.
  
          * icu/README: Added.
          * icu/unicode/parseerr.h: Added.
          * icu/unicode/platform.h: Added.
          * icu/unicode/putil.h: Added.
          * icu/unicode/ubrk.h: Added.
          * icu/unicode/uchar.h: Added.
          * icu/unicode/uconfig.h: Added.
          * icu/unicode/uenum.h: Added.
          * icu/unicode/uidna.h: Added.
          * icu/unicode/uiter.h: Added.
          * icu/unicode/uloc.h: Added.
          * icu/unicode/umachine.h: Added.
          * icu/unicode/urename.h: Added.
          * icu/unicode/ustring.h: Added.
          * icu/unicode/utf.h: Added.
          * icu/unicode/utf16.h: Added.
          * icu/unicode/utf8.h: Added.
          * icu/unicode/utf_old.h: Added.
          * icu/unicode/utypes.h: Added.
          * icu/unicode/uversion.h: Added.
  
  2005-06-01  Darin Adler  <darin at apple.com>
  
          Reviewed by John Sullivan.
          No layout tests added because showModalDialog won't work in DumpRenderTree at the moment.
  
          - WebKit part of fix for <rdar://problem/3166090> add IE JavaScript extension window.showModalDialog
  
          * khtml/ecma/kjs_window.cpp:
          (KJS::allowPopUp): Added. Used by showModalDialog now and should be used by window.open later.
          (KJS::parseFeatures): Ditto.
          (KJS::boolFeature): Ditto.
          (KJS::intFeature): Ditto.
          (KJS::createNewWindow): Ditto.
          (KJS::canShowModalDialog): Added.
          (KJS::canShowModalDialogNow): Added.
          (KJS::showModalDialog): Added.
          (KJS::Window::get): Return the showModalDialog function object if the extension can run modal.
          (KJS::Window::clear): Add code to store the return value for the case where the window is a modal dialog.
          (KJS::WindowFunc::tryCall): Add the call to the showModalDialog function.
  
          * khtml/ecma/kjs_window.h: Add setReturnValueSlot function so showModalDialog can get the return
          value from the dialog it creates. Also add a data member to keep track of the pointer and a constant
          for the ShowModalDialog method.
  
          * khtml/khtml_part.h: Added new changeLocation member function. Made setOpener, openedByJS, and
          setOpenedByJS public.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::changeLocation): Broke out the part of slotRedirect that actually does the location change
          into a separate function so it can be called when needed. The case using it now is to load the content
          of a new window in KJS::createNewWindow.
          (KHTMLPart::slotRedirect): Call changeLocation to do most of the work.
          (KHTMLPart::urlSelected): Fixed a broken case where the "lack of referrer" in a new window would cause
          the referrer passed in by JavaScript to be ignored when opening a new window -- match logic elsewhere
          that leaves the referrer in the args alone if one is not set in the window.
  
          * khtml/khtmlpart_p.h: Initialize m_bCleared to true to avoid an unnecessary clear before loading the
          first URL in a new window. This change is needed to avoid blowing away the "dialogArguments" value in
          a modal dialog window, but it also avoid unnecessary work for each new window.
  
          * kwq/KWQApplication.h: Add availableGeometry function for QDesktopWidget. Used by the showModalDialog
          function inside kjs_window.cpp (and should be used elsewhere eventually too). Matches a Qt function that
          we just didn't have implemented before.
          * kwq/KWQApplication.mm: (QDesktopWidget::availableGeometry): Added.
  
          * kwq/KWQKHTMLPartBrowserExtension.h: Added new canRunModal, canRunModalNow, and runModal functions.
          * kwq/KWQKHTMLPartBrowserExtension.mm:
          (KHTMLPartBrowserExtension::createNewWindow): Call createModalDialogWithURL on the bridge if the
          new window is a dialog. Also fixed the early return case for when the bridge returns nil.
          (KHTMLPartBrowserExtension::canRunModal): Added. Calls bridge.
          (KHTMLPartBrowserExtension::canRunModalNow): Ditto.
          (KHTMLPartBrowserExtension::runModal): Ditto.
  
          * kwq/KWQKPartsBrowserExtension.h:
          (KParts::URLArgs::URLArgs): Initialize m_lockHistory to false.
          (KParts::WindowArgs::WindowArgs): Add a dialog boolean.
  
          * kwq/WebCoreBridge.h: Declared canRunModal, canRunModalNow, createModalDialogWithURL, and runModal methods.
  
  2005-06-01  Adele Peterson  <adele at apple.com>
  
          fix for <rdar://problem/4135705> REGRESSION (412-TOT) crash in TV Tracker widget - KJS::XMLHttpRequest::removeFromRequestsByDocument()
  
          Reviewed by Darin.
  
          Synchronous loads don't get added to our requestsByDocument dictionary, so we should try to remove the request in this case. 
  
          * khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::removeFromRequestsByDocument): added checks to make sure request exists before trying to remove it.
  
  2005-05-30  Darin Adler  <darin at apple.com>
  
          Reviewed by John (fix for Radar bug) and Vicki (all the rest).
  
          - fixed <rdar://problem/4105097> REGRESSION (138-139): Hitting Enter on a checkbox toggles check mark instead of submitting form
          - fixed other problems discovered while trying to make a layout test to test this work:
              - added newer DOM 3 event type constants
              - fixed prototype setup bug preventing event initialization functions from being called
              - fixed bug where any function taking an event parameter would crash with a nil-deref
              - fixed incorrect ref/deref bug in MutationEventImpl that would cause a crash crash
  
          Test cases added:
          * layout-tests/fast/forms/check-box-enter-key-expected.txt: Added.
          * layout-tests/fast/forms/check-box-enter-key.html: Added.
          * layout-tests/fast/events/event-creation-expected.txt: Added.
          * layout-tests/fast/events/event-creation.html: Added.
  
          * khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::defaultEventHandler): Separate the checks for
          the space bar and the Enter key and make Enter submit the form on a check box or radio button.
  
          * khtml/ecma/kjs_events.cpp:
          (KJS::toEvent): Fixed bug where this was checking for DOMNode rather than DOMEvent, so always returning 0.
          Without this, both test cases above will crash.
          (KJS::DOMUIEvent::DOMUIEvent): Set prototype; without this, the event-creation test case will fail.
          (KJS::DOMMouseEvent::DOMMouseEvent): Set prototype; without this, the event-creation test case will fail.
          (KJS::DOMKeyboardEvent::DOMKeyboardEvent): Set prototype; without this, both test cases above will fail.
          (KJS::DOMMutationEvent::DOMMutationEvent): Set prototype; without this, both test cases above will fail.
  
          * khtml/xml/dom2_eventsimpl.cpp:
          (MutationEventImpl::MutationEventImpl): Fix typo where the wrong object was ref'd.
          (MutationEventImpl::initMutationEvent): Ditto. This was causing the layout tests to crash with the new tests above.
  
          * khtml/xml/dom_docimpl.cpp: (DocumentImpl::createEvent): Added new event types to match the current DOM
          Level 3 specification. The test above tests both the new event types and the old ones.
  
  2005-05-30  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
          No test case added because our layout test system doesn't allow us to do inline input.
  
          - fixed <rdar://problem/4094066> REGRESSION (1.2.5-1.3): unconfirmed inline input is ignored in <textarea>, lost when form is submitted
  
          * kwq/KWQTextArea.mm: (-[KWQTextArea _createTextView]): Call setWantsNotificationForMarkedText:YES.
  
  2005-05-30  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- fixed <rdar://problem/4125222> Dashboard heap size grows over time (leak caused by JavaScript DOM node wrappers?)
  
  	- changed per-document DOMObject caching to work with DOMNodes, since that is all it was used for anyway.
  	
          Test cases added: (these tests actually ensure that DOM wrappers
  	are sufficiently protected from GC to match other browsers, they
  	do not verify that the leak is fixed since there's no way to test
  	that with layout tests).
  
          * layout-tests/fast/dom/gc-1-expected.txt: Added.
          * layout-tests/fast/dom/gc-1.html: Added.
          * layout-tests/fast/dom/gc-2-expected.txt: Added.
          * layout-tests/fast/dom/gc-2.html: Added.
          * layout-tests/fast/dom/gc-3-expected.txt: Added.
          * layout-tests/fast/dom/gc-3.html: Added.
  
          * khtml/ecma/kjs_binding.cpp:
          (KJS::ScriptInterpreter::forgetDOMObjectForDocument): New function - allows nodes
  	that get removed from the document to go away from the cache if not referenced.
          (KJS::ScriptInterpreter::mark): Don't mark nodes that aren't in the document,
  	they can stay in the cache but only if they have another source of life.
          (KJS::ScriptInterpreter::domNodesPerDocument): Renamed and changed parameter types.
          (KJS::ScriptInterpreter::getDOMNodeForDocument): Renamed and changed parameter types.
          (KJS::ScriptInterpreter::forgetDOMNodeForDocument): Renamed and changed parameter types.
          (KJS::ScriptInterpreter::putDOMNodeForDocument): Renamed and changed parameter types.
          (KJS::ScriptInterpreter::forgetAllDOMNodesForDocument): Renamed and changed parameter types.
          (KJS::ScriptInterpreter::updateDOMNodeDocument): Renamed and changed parameter types.
          * khtml/ecma/kjs_binding.h:
          * khtml/ecma/kjs_dom.cpp: 
          (KJS::DOMNode::~DOMNode): call forgetDOMObjectForDocument.
          (KJS::DOMNode::mark): If the node is not in the document, make sure to mark
  	all wrappers in its detached piece of the tree.
          (KJS::getDOMNode): Updated for renames
          * khtml/ecma/kjs_dom.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::~DocumentImpl): Updated for renames.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::checkAddChild): Updated for renames.
  
  2005-05-30  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
          Could not figure out how to make an <object> fallback, so for now, no layout test.
  
          - fixed <rdar://problem/4134124> REGRESSION (tip of tree): crash in QWidget::getView handling onunload event (yahoo.com)
  
          * khtml/html/html_objectimpl.cpp: (DOM::HTMLObjectElementImpl::getObjectInstance):
          Check type of RenderObject to be sure it is a RenderWidget before calling widget() on it.
  
  2005-05-27  Adele Peterson  <adele at apple.com>
  
          Change by Darin, reviewed by me.
  
          fix for <rdar://problem/4067761> 8A425: reload stock widget over and over and crash in XMLHttpRequest::changeState
  
          * khtml/khtml_part.cpp: (KHTMLPart::closeURL): now cancels XMLHttpRequests
          * khtml/ecma/xmlhttprequest.h: Added cancelRequests, addToRequestsByDocument, and RemoveFromRequestsByDocument methods. Added requestsByDocument dictionary.
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::send): calls addToRequestsByDocument
          (KJS::XMLHttpRequest::abort): calls removeFromRequestsByDocument
          (KJS::XMLHttpRequest::slotFinished): calls removeFromRequestsByDocument
          (KJS::XMLHttpRequest::requestsByDocument):  creates dictionary to manage requests.
          (KJS::XMLHttpRequest::addToRequestsByDocument): adds this request to dict.
          (KJS::XMLHttpRequest::removeFromRequestsByDocument): removes this request from dict.
          (KJS::XMLHttpRequest::cancelRequests): goes and cancels requests in the doc
  
  2005-05-27  Adele Peterson  <adele at apple.com>
  
          Reviewed by me, done by Darin.
  
          - Darin fixed a regression I found from Darin's recent DOM change that broke GMail
  
          * khtml/ecma/kjs_window.cpp:
          (KJS::Window::get): Added nil check for document.
          (KJS::Window::hasProperty): Ditto.
  
          Test cases added: None (Darin should write one).
  
  2005-05-27  Adele Peterson  <adele at apple.com>
  
          Reviewed by Darin.
  
          fix for <rdar://problem/4121747> Cannot log into Cingular.com account page (load event delivered while still processing incoming data)
         
          * khtml/misc/loader.cpp:
          (DocLoader::DocLoader): Initialized m_loadInProgress to false.
          (DocLoader::setLoadInProgress): Added.
          (Loader::slotFinished): sets the m_loadInProgress flag to reflect the fact that we're not really done loading this request until we emit the signal with the request status.
          (Loader::numRequests): If there's a load in progress, we increment the number of requests so it doesn't seem like the load is done.
          * khtml/misc/loader.h: (khtml::DocLoader::loadInProgress): Added.
  
          Test cases added: 
          * layout-tests/fast/loader/loadInProgress.html: Added
          * layout-tests/fast/loader/loadInProgress-expected.html: Added
  
  2005-05-27  Darin Adler  <darin at apple.com>
  
          Reviewed by Vicki.
  
          - fixed <rdar://problem/4125212> form submission delayed until you are on the next page on XML/XSL page (security hole)
  
          * khtml/xsl/xslt_processorimpl.cpp: (DOM::XSLTProcessorImpl::documentFromXMLDocPtr):
          Call setParsing(false) explicitly here. It's really annoying that setParsing(true) is done
          inside DOM::DocumentImpl and setParsing(false) is done by KHTMLPart, so that should be fixed
          some day, but for now this is the way to do it.
  
          Test cases added:
          * layout-tests/fast/events/xsl-onload-expected.txt: Added.
          * layout-tests/fast/events/xsl-onload.xhtml: Added.
          * layout-tests/fast/events/xsl-onload.xsl: Added.
  
  2005-05-27  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Darin
  
          * WebCore-tests.exp:
          took out symbol __ZNK5QChar7isPunctEv; it was obsolete and causing build trouble
  
  2005-05-27  Darin Adler  <darin at apple.com>
  
          Reviewed by Adele.
  
          - remove HAVE_ICU_LIBRARY ifdefs
  
          * khtml/rendering/render_text.cpp: Just use ICU all the time; no ifdef.
          * kwq/KWQKURL.mm: Ditto.
  
  2005-05-26  Darin Adler  <darin at apple.com>
  
          Reviewed by me, patch by Mitz Pettel.
  
          - fixed <rdar://problem/4106907> bidi algorithm bug fixed for KHTML should be fixed in WebCore too
  
          * khtml/rendering/bidi.cpp: (khtml::RenderBlock::bidiReorderLine): Integrated the patch that Mitz did
          for the KDE bug, details at <http://www.mitzpettel.com/software/WebCorePatch2.html>.
  
          Test cases added:
          * layout-tests/fast/text/international/bidi-neutral-directionality-paragraph-start-expected.txt: Added.
          * layout-tests/fast/text/international/bidi-neutral-directionality-paragraph-start.html: Added.
  
  2005-05-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Richard and Dave Harrison.
          No new test cases needed for this change.
  
          - eliminate WebCoreUnicode and use ICU directly instead
          - fixed compiling with gcc 4.0 (was broken for Development only)
  
          * WebCore.exp: Removed the WebCoreXXXFunction exports.
          * WebCore-tests.exp: Removed some QChar functions that are now inlines.
          Removed some typeinfo exports that are no longer appropriate since we use -fno-rtti.
  
          * kwq/KWQString.h:
          (QChar::isDigit): Changed to call u_isdigit when non-ASCII. We should probably phase
          this out since it's only used in places where we don't want to handle non-ASCII decimal digits.
          (QChar::isLetter): Changed to call u_isalpha when non-ASCII.
          (QChar::isNumber): Changed to call u_isdigit when non-ASCII. This probably should be removed, since
          we always want to call isDigit instead.
          (QChar::isLetterOrNumber): Changed to call u_isalnum when non-ASCII.
          (QChar::isPunct): Changed to call u_ispunct when non-ASCII.
          (QChar::digitValue): Changed to call u_charDigitValue when not '0'-'9'. We should probably phase
          this out since it's only used in places where we don't want to handle non-ASCII decimal digits.
          (QChar::lower): Changed to call u_tolower when non-ASCII.
          (QChar::upper): Changed to call u_toupper when non-ASCII.
          (QChar::direction): Made inline. Calls u_charDirection.
          (QChar::mirrored): Made inline. Calls u_isMirrored.
          (QChar::mirroredChar): Made inline. Calls u_charMirror.
  
          * kwq/KWQChar.mm: Removed.
          * kwq/WebCoreUnicode.cpp: Removed.
          * kwq/WebCoreUnicode.h: Removed.
  
          * WebCore.pbproj/project.pbxproj: Removed files.
  
  2005-05-26  David Harrison  <harrison at apple.com>
  
          Reviewed by John.
  
          <rdar://problem/4120518> Mail: control-T in an empty message crashes mail
          
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge rangeOfCharactersAroundCaret]):
          Nil-check result of VisiblePosition previous() and next().
  
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::previous):
          (khtml::VisiblePosition::previousVisiblePosition):
          Make sure previous() does not return the original position.  Also, simplified.
          Commented odd, but required, behavior in previousVisiblePosition().
  
          * khtml/editing/visible_units.cpp:
          (khtml::startOfEditableContent):
          (khtml::endOfEditableContent):
          Removed redundant check for isEditableContent().
          
          * khtml/editing/jsediting.cpp:
          * khtml/khtml_part.cpp:
          (KHTMLPart::transpose):
          * khtml/khtml_part.h:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::issueTransposeCommand):
          * layout-tests/editing/editing.js:
          * kwq/WebCoreBridge.h:
          Add support for transpose command in JavaScript and therefore layout tests.
          
          * layout-tests/editing/deleting/transpose-empty-expected.txt: Added.
          * layout-tests/editing/deleting/transpose-empty.html: Added.
          New test for this bug.
          
  2005-05-24  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/4127061> <canvas> backing store should be zero filled
  
  	Use calloc instead of malloc to ensure zero filled backing store.
  
          Reviewed by Darin.
  
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::createDrawingContext):
  
  2005-05-24  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Dave Hyatt.
          
          - fixed these bugs:
          <rdar://problem/4118510> Textareas with a vertical scroll bar should have their resize corner under the scroll bar
          <rdar://problem/4118523> Resize image in textareas is drawn repeatedly when scrolling vertically with scrollbar
  
          Test cases added: none; doesn't affect page layout
  
          * kwq/KWQTextArea.h:
          added inInitWithFrame ivar
          * kwq/KWQTextArea.mm:
          (+[KWQTextArea _resizeCornerImage]):
          moved here from KWQTextAreaTextView; now it's a class method so we only look up the image once.
          (-[KWQTextArea initWithFrame:]):
          set and clear inInitWithFrame ivar, used by -tile
          (-[KWQTextArea _isResizableByUser]):
          renamed with an underscore for consistency
          (-[KWQTextArea _textViewShouldHandleResizing]):
          new method, returns YES if the textarea is user-resizable and the enclosed textview is responsible for drawing
          and tracking the resize corner.
          (-[KWQTextArea tile]):
          shrink the vertical scroller if appropriate to account for the resize corner
          (-[KWQTextArea _resizeCornerRect]):
          new method, returns the bottom-right corner rect, where the resize image goes
          (-[KWQTextArea _trackResizeFromMouseDown:]):
          moved here from KWQTextAreaTextView. The only changes were to move the [NSCursor set] call inside here (was in
          the caller), and to use self where it was using [self _enclosingTextArea], and to move a comment in here that
          was in the caller
          (-[KWQTextArea mouseDown:]):
          track resizing if appropriate
          (-[KWQTextArea drawRect:]):
          draw the resize corner if appropriate
          (-[KWQTextAreaTextView _resizeCornerRect]):
          get the resize image from KWQTextArea
          (-[KWQTextAreaTextView resetCursorRects]):
          check _textViewShouldHandleResizing
          (-[KWQTextAreaTextView drawRect:]):
          ditto
          (-[KWQTextAreaTextView mouseDown:]):
          ditto; also, make the textarea handle the resize tracking now
  
  2005-05-24  Darin Adler  <darin at apple.com>
  
          - another gcc 4.0 fix
  
          No new test cases needed.
  
          * khtml/dom/dom2_events.cpp: Moved constants out of the KHTML_NO_CPLUSPLUS_DOM #if.
  
  2005-05-24  Darin Adler  <darin at apple.com>
  
          Reviewed by Vicki.
  
          - fixed <rdar://problem/4128727> many DOM classes not exported (can't add categories or do other things that require class name linking)
  
          No new test cases needed.
  
          * WebCore.exp: Added exports for many classes in the public DOM headers that were omitted before.
          Also removed one symbol that was listed twice.
  
  2005-05-24  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fixed <rdar://problem/3598589> onunload handler doesn't fire when a window is closed
  
          Test cases added: 
          * layout-tests/fast/events/onunload-expected.txt: Added.
          * layout-tests/fast/events/onunload.html: Added.
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::detach): Don't remove all event handlers from the document here...
          * khtml/khtml_part.cpp:
          (KHTMLPart::closeURL): ...instead do it here, after firing the unload event, but only
  	if the document is not in the back/forward cache...
          * kwq/KWQPageState.mm:
          (-[KWQPageState finalize]): ...and take care of the back/forward cache case here.
  
  2005-05-24  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Kevin.
          
          - WebCore part of <rdar://problem/4125783> WebKit needs a way to control whether textareas are resizable
  
          * kwq/KWQKHTMLSettings.h:
          (KHTMLSettings::textAreasAreResizable):
          new getter
          (KHTMLSettings::setTextAreasAreResizable):
          new setter
          
          * kwq/KWQTextArea.h:
          * kwq/KWQTextArea.mm:
          eliminated ALLOW_RESIZING_TEXT_AREAS #define in favor of using runtime setting
          (-[KWQTextArea isResizableByUser]):
          get value from settings, and cache it in KWQTextArea instance
          (-[KWQTextAreaTextView _enclosingTextArea]):
          new convenience method, extracted from _trackResizeFromMouseDown:
          (-[KWQTextAreaTextView _trackResizeFromMouseDown:]):
          now uses extracted method
          
          (-[KWQTextAreaTextView drawRect:]):
          now checks isResizableByUser
          (-[KWQTextAreaTextView mouseDown:]):
          ditto
          
          * kwq/WebCoreSettings.h:
          * kwq/WebCoreSettings.mm:
          (-[WebCoreSettings setTextAreasAreResizable:]):
          new setter
          (-[WebCoreSettings textAreasAreResizable]):
          new getter
  
  2005-05-23  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- split remaining editing command classes out of htmlediting.cpp
  	- rename InsertParagraphSeparatorInQuotedContentCommand to BreakBlockquoteCommand
  
  	No layout tests needed - this is a pure refactoring change.
  	
          * WebCore.pbproj/project.pbxproj:
          * khtml/editing/apply_style_command.cpp:
          * khtml/editing/break_blockquote_command.cpp: Added.
          * khtml/editing/break_blockquote_command.h: Added.
          * khtml/editing/composite_edit_command.cpp:
          * khtml/editing/delete_selection_command.cpp:
          * khtml/editing/edit_command.cpp:
          * khtml/editing/htmlediting.cpp:
          * khtml/editing/htmlediting.h:
          * khtml/editing/insert_line_break_command.cpp: Added.
          * khtml/editing/insert_line_break_command.h: Added.
          * khtml/editing/insert_paragraph_separator_command.cpp: Added.
          * khtml/editing/insert_paragraph_separator_command.h: Added.
          * khtml/editing/insert_text_command.cpp: Added.
          * khtml/editing/insert_text_command.h: Added.
          * khtml/editing/join_text_nodes_command.cpp: Added.
          * khtml/editing/join_text_nodes_command.h: Added.
          * khtml/editing/merge_identical_elements_command.cpp: Added.
          * khtml/editing/merge_identical_elements_command.h: Added.
          * khtml/editing/move_selection_command.cpp: Added.
          * khtml/editing/move_selection_command.h: Added.
          * khtml/editing/rebalance_whitespace_command.cpp: Added.
          * khtml/editing/rebalance_whitespace_command.h: Added.
          * khtml/editing/remove_css_property_command.cpp: Added.
          * khtml/editing/remove_css_property_command.h: Added.
          * khtml/editing/remove_node_attribute_command.cpp: Added.
          * khtml/editing/remove_node_attribute_command.h: Added.
          * khtml/editing/remove_node_command.cpp: Added.
          * khtml/editing/remove_node_command.h: Added.
          * khtml/editing/remove_node_preserving_children_command.cpp: Added.
          * khtml/editing/remove_node_preserving_children_command.h: Added.
          * khtml/editing/replace_selection_command.cpp: Added.
          * khtml/editing/replace_selection_command.h: Added.
          * khtml/editing/set_node_attribute_command.cpp: Added.
          * khtml/editing/set_node_attribute_command.h: Added.
          * khtml/editing/split_element_command.cpp: Added.
          * khtml/editing/split_element_command.h: Added.
          * khtml/editing/split_text_node_command.cpp: Added.
          * khtml/editing/split_text_node_command.h: Added.
          * khtml/editing/split_text_node_containing_element_command.h: Added.
          * khtml/editing/typing_command.cpp: Added.
          * khtml/editing/typing_command.h: Added.
          * khtml/editing/wrap_contents_in_dummy_span_command.cpp: Added.
          * khtml/editing/wrap_contents_in_dummy_span_command.h: Added.
  
  2005-05-23  Darin Adler  <darin at apple.com>
  
          * WebCore.exp: Sorted file for more readable diffs.
  
  2005-05-23  Adele Peterson  <adele at apple.com>
  
          Reviewed by Darin.
  
          fix for <rdar://problem/4122661> Regression: 10.3.8-10.3.9: Next lesson doesn't work on Dale Carnegie Action Systems page
  
          * khtml/ecma/kjs_window.cpp: (KJS::WindowFunc::tryCall): added checks for NaN, in case it is passed into window.open for screenx, screeny, left, top, height, or width.
  
  2005-05-23  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          Prevent crash when going from no selection to selection with mispelling checks enabled.
  		
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::markMisspellings):
          Repair check for null searchRange.  Was inadvertently broken in recent checkin.
  
  2005-05-23  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Dave Hyatt.
          
          - fixed <rdar://problem/4123592> Can't resize textareas that have a width specified by a style
  
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea getNumColumns:andNumRows:forSize:]):
          removed this method, which I had added earlier to set cols and rows correctly
          (-[KWQTextAreaTextView _trackResizeFromMouseDown:]):
          set width and height instead of cols and rows; handle the intrinsic margin that sometimes appears
          on form elements
  
  2005-05-22  Adele Peterson  <adele at apple.com>
  
          Reviewed by Maciej.
  
          fix for <rdar://problem/4127101> REGRESSION(412-TOT) crash when creating Option element
  
          * khtml/ecma/kjs_html.cpp: (KJS::OptionConstructorImp::construct):
          Changed ElementImpl pointer to a SharedPtr because it was getting destroyed before we were done with it.  
  
  2005-05-20  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Chris.
          
          - fixed <rdar://problem/4126160> Crash sending mouse-exited event after reloading 
          page with resizable textarea
  
          * kwq/KWQTextArea.mm:
          (-[KWQTextAreaTextView resetCursorRects]):
          This was some side effect of tracking rect code used for resizable textareas. I discovered
          that I didn't need the tracking rect code at all (at least to achieve the level of only-somewhat-working
          cursor behavior that I already had). Removing it caused the bug to vanish.
  
  2005-05-19  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
          
          - turned off exceptions and RTTI; seems to cut WebCore code size by about 35%
  
          * WebCore.pbproj/project.pbxproj: Turn off exceptions and RTTI for the framework.
  
  2005-05-19  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris Petersen.
  
          - fixed a mistake I introduced in my previous check-in that caused a Deployment build failure
  
          * kwq/DOM.mm: (-[DOMDocument createTreeWalker::::]): Initialize cppFilter to 0, which fixes both
          the build failure and a potential bug!
  
  2005-05-17  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
          No new layout tests required.
  
          - remove all dependencies on exceptions and RTTI (but don't turn them off yet, that will be in a later patch)
  
          * WebCore.pbproj/project.pbxproj: Set a new KHTML_NO_CPLUSPLUS_DOM define.
          Removed all C++ DOM wrapper files that we don't need to compile any more.
  
          * khtml/dom/css_stylesheet.h: Added more KHTML_NO_CPLUSPLUS_DOM checks so we don't include any
          headers when including this file.
  
          * khtml/dom/dom2_events.h: Fixed up KHTML_NO_CPLUSPLUS_DOM checks so that everything but EventListener
          is turned off when that's on. Also moved the public so that the constants from KeyboardEvent are public.
          * khtml/dom/dom2_events.cpp: Put everything except for EventListener inside KHTML_NO_CPLUSPLUS_DOM.
  
          * khtml/dom/dom2_range.h: Added KHTML_NO_CPLUSPLUS_DOM checks so that only the constants are defined,
          no classes.
  
          * khtml/dom/dom2_traversal.cpp: Put everything except for NodeFilterCondition inside KHTML_NO_CPLUSPLUS_DOM.
  
          * khtml/dom/dom_node.h: Added more KHTML_NO_CPLUSPLUS_DOM checks so we don't include any
          headers when including this file.
  
          * khtml/ecma/kjs_binding.cpp:
          (KJS::DOMObject::get): Removed exception-handling code. Now we can eliminate tryGet altogether.
          (KJS::DOMObject::put): Ditto.
          (KJS::DOMFunction::get): Ditto.
          (KJS::DOMFunction::call): Ditto.
  
          * khtml/editing/visible_text.h: Added an include of <qstring.h>.
  
          * khtml/misc/loader.h: Added isKHTMLLoader.
          * khtml/misc/loader.cpp: (Loader::isKHTMLLoader): Added. Poor-man's replacement for dynamic_cast.
  
          * khtml/rendering/render_form.h:
          * khtml/rendering/render_form.cpp: (RenderFormElement::slotTextChanged): Added. Hack to make KWQSlot work
          for this function.
  
          * khtml/xml/dom2_rangeimpl.h: Added a forward declaration of class DOMString, needed now that the C++
          DOM wrappers aren't defining it.
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::defaultEventHandler): Changed to call handleEventImpl so we don't have to make the
          C++ DOM wrapper for the event.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::handleLocalEvents): Ditto.
          (ContainerNodeImpl::insertBefore): Used SharedPtr<NodeImpl> rather than Node to protect the child node.
          (ContainerNodeImpl::replaceChild): Ditto.
          (ContainerNodeImpl::appendChild): Ditto.
          (ContainerNodeImpl::addChild): Ditto.
  
          * kwq/DOM.mm:
          (ObjCNodeFilterCondition::acceptNode): Update to add a KHTML_NO_CPLUSPLUS_DOM check since FilterCondition
          has a different API depending on the state.
          (-[DOMDocument createNodeIterator::::]): Rewrote to use NodeFilterImpl instead of NodeFilter.
          (-[DOMDocument createTreeWalker::::]): Ditto.
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject role]): Use identifier instead of casting to Node and using elementId.
          (-[KWQAccObject title]): Ditto.
          (-[KWQAccObject accessibilityIsIgnored]): Ditto.
          (-[KWQAccObject rendererForView:]): Ditto.
  
          * kwq/KWQFrame.mm: (QFrame::setFrameStyle): Use isKHTMLView instead of dynamic_cast.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::currentForm): Use focusNode instead of activeNode.
          (KWQKHTMLPart::nextKeyViewInFrame): Use isWidget instead of dynamic_cast.
          (KWQKHTMLPart::currentEventIsMouseDownInWidget): Use KHTMLView's nodeUnderMouse instead of our public one
          that uses a DOM C++ wrapper.
          (KWQKHTMLPart::partForWidget): Use isKHTMLView instead of dynamic_cast.
          (KWQKHTMLPart::passSubframeEventToSubframe): Use isWidget instead of dynamic_cast.
  
          * kwq/KWQObject.h: Made isXXX functions all public since we use them in a few more places now.
          Also added isKHTMLLoader.
          * kwq/KWQObject.mm: (QObject::isKHTMLLoader): Added. Returns false by default.
  
          * kwq/KWQSlot.mm: Removed all uses of dynamic_cast.
  
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge stringForRange:]): Used plainText instead of text.
          (-[WebCoreBridge copyRenderNode:copier:]): Used isWidget instead of dynamic_cast.
  
  2005-05-16  Darin Adler  <darin at apple.com>
  
          - attempt to get things building under "Saffron" development tools
  
          * WebCore.pbproj/project.pbxproj: Use BUILT_PRODUCTS_DIR instead of SYMROOT.
  
  2005-05-16  Adele Peterson  <adele at apple.com>
  
          Changes by Darin. Reviewed by myself.
  
          Changed the Render Tree debug code to write out an indication that the affinity is upstream
          when writing out caret position. Updated the one layout test with output affected by the change.
          Also updated one test to use the new dumpAsText method in dumpRenderTree.
  
          * kwq/KWQRenderTreeDebug.cpp: (writeSelection): writes out affinity if it's upstream in the caret case
          * layout-tests/editing/style/create-block-for-style-004-expected.txt: new results that contain the affinity
          * layout-tests/fast/js/char-at.html: now calls layoutController.dumpAsText()
          * layout-tests/fast/js/char-at-expected.txt: plain text result (replaces old render tree result)
  
  2005-05-16  Darin Adler  <darin at apple.com>
  
          Reviewed by Adele.
  
          - fixed issues preventing us from compiling with newer versions of gcc 4.0
  
          * khtml/dom/dom2_events.cpp: Add definitions of some static data member constants, as required
          by the C++ standard and the gcc 4.0 compiler.
  
          * khtml/editing/selection.h: Specified KHTMLPart friend class as ::KHTMLPart, since if it's
          not explicitly qualified, it means DOM::KHTMLPart.
  
          * khtml/dom/dom_string.cpp:
          (DOM::strcasecmp): Removed redundant and illegal DOM:: prefix.
          (DOM::operator==): Ditto.
          * khtml/ecma/kjs_binding.cpp:
          (KJS::getStringOrNull): Removed redundant and illegal KJS:: prefix.
          (KJS::ValueToVariant): Ditto.
          * khtml/ecma/kjs_css.cpp:
          (KJS::getCSSRuleConstructor): Ditto.
          (KJS::getCSSValueConstructor): Ditto.
          (KJS::getCSSPrimitiveValueConstructor): Ditto.
          * khtml/ecma/kjs_events.cpp:
          (KJS::getEventConstructor): Ditto.
          (KJS::getEventExceptionConstructor): Ditto.
          (KJS::getMutationEventConstructor): Ditto.
          * khtml/ecma/kjs_traversal.cpp:
          (KJS::getNodeFilterConstructor): Ditto.
  
          * khtml/misc/loader_client.h: Added an empty virtual destructor to CachedObjectClient
          to quiet the compiler. This doesn't really do any good, but also does no harm.
          * khtml/misc/loader.cpp: (CachedObjectClient::~CachedObjectClient): Added.
  
          * khtml/rendering/render_block.cpp: (khtml::RenderBlock::fillBlockSelectionGaps):
          Initialize a couple of variables that should have been initialized to 0.
          Not just about making the compiler happy -- warning found a real bug!
  
          * kwq/KWQTextArea.mm: (RangeOfParagraph): Change else structure to work around compiler
          warning bug.
  
  2005-05-13  John Sullivan  <sullivan at apple.com>
  
          * kwq/KWQTextArea.mm:
          (-[KWQTextAreaTextView _trackResizeFromMouseDown:]):
          added Radar numbers to FIXMEs about resizable textareas
          (-[KWQTextAreaTextView resetCursorRects]):
          ditto
          (-[KWQTextAreaTextView mouseDown:]):
          ditto
  
  2005-05-12  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris Blumenberg.
  
          - more "getting off the C++ DOM wrappers" changes
            This pass involves replacing uses of DOM::Range with use of DOM::RangeImpl
            plus some more use of DOM::DocumentImpl instead of DOM::Document.
  
          * khtml/dom/dom2_range.cpp:
          * khtml/dom/dom2_range.h:
          * khtml/ecma/kjs_window.cpp:
          (KJS::Window::get):
          (KJS::WindowFunc::tryCall):
          (KJS::Window::updateLayout):
          (KJS::ScheduledAction::execute):
          (KJS::Selection::toString):
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequestProtoFunc::tryCall):
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertLineBreakCommand::doApply):
          * khtml/editing/selection.cpp:
          (khtml::Selection::Selection):
          (khtml::Selection::moveTo):
          (khtml::Selection::toRange):
          * khtml/editing/selection.h:
          * khtml/editing/visible_position.cpp:
          (khtml::makeRange):
          (khtml::startVisiblePosition):
          (khtml::endVisiblePosition):
          (khtml::setStart):
          (khtml::setEnd):
          * khtml/editing/visible_position.h:
          * khtml/editing/visible_range.h:
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::TextIterator):
          (khtml::TextIterator::range):
          (khtml::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
          (khtml::SimplifiedBackwardsTextIterator::range):
          (khtml::CharacterIterator::CharacterIterator):
          (khtml::CharacterIterator::range):
          (khtml::WordAwareIterator::WordAwareIterator):
          (khtml::WordAwareIterator::advance):
          (khtml::TextIterator::rangeLength):
          (khtml::TextIterator::rangeFromLocationAndLength):
          (khtml::plainText):
          (khtml::findPlainText):
          * khtml/editing/visible_text.h:
          (khtml::WordAwareIterator::range):
          * khtml/editing/visible_units.cpp:
          (khtml::previousBoundary):
          (khtml::nextBoundary):
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::innerText):
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::scriptExecution):
          * khtml/khtml_part.cpp:
          (KHTMLPart::text):
          (KHTMLPart::selectedText):
          (KHTMLPart::shouldBeginEditing):
          (KHTMLPart::shouldEndEditing):
          (KHTMLPart::selectionComputedStyle):
          * khtml/khtml_part.h:
          * khtml/khtmlview.h:
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::paint):
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::operator==):
          (DOM::rangeOfContents):
          * khtml/xml/dom2_rangeimpl.h:
          (DOM::operator!=):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::relinquishesEditingFocus):
          (DocumentImpl::acceptsEditingFocus):
          (DocumentImpl::addMarker):
          (DocumentImpl::removeMarker):
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_position.cpp:
          (DOM::startPosition):
          * khtml/xml/dom_position.h:
          * kwq/DOMHTML.mm:
          (-[DOMHTMLLinkElement href]):
          (-[DOMHTMLBaseElement href]):
          (-[DOMHTMLInputElement src]):
          (-[DOMHTMLAnchorElement href]):
          (-[DOMHTMLImageElement src]):
          (-[DOMHTMLAreaElement href]):
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject textUnderElement]):
          (-[KWQAccObject value]):
          (-[KWQAccObject doAXStringForTextMarkerRange:]):
          (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
          * kwq/KWQKHTMLPart.h:
          (KWQKHTMLPart::markedTextRange):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::findString):
          (KWQKHTMLPart::advanceToNextMisspelling):
          (KWQKHTMLPart::fontForSelection):
          (KWQKHTMLPart::markMisspellings):
          (KWQKHTMLPart::respondToChangedSelection):
          (KWQKHTMLPart::shouldBeginEditing):
          (KWQKHTMLPart::shouldEndEditing):
          (convertAttributesToUnderlines):
          (KWQKHTMLPart::setMarkedTextRange):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge elementAtPoint:]):
          (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]):
          (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]):
          (-[WebCoreBridge rangeByAlteringCurrentSelection:verticalDistance:]):
          (-[WebCoreBridge selectedDOMRange]):
          (-[WebCoreBridge convertToNSRange:DOM::]):
          (-[WebCoreBridge convertToDOMRange:]):
          (-[WebCoreBridge convertToObjCDOMRange:]):
          (-[WebCoreBridge selectNSRange:]):
          (-[WebCoreBridge selectedNSRange]):
          (-[WebCoreBridge markDOMRange]):
          (-[WebCoreBridge markedTextDOMRange]):
          (-[WebCoreBridge markedTextNSRange]):
          (-[WebCoreBridge replaceMarkedTextWithText:]):
          (-[WebCoreBridge smartDeleteRangeForProposedRange:]):
          (-[WebCoreBridge dragCaretDOMRange]):
          (-[WebCoreBridge editableDOMRangeForPoint:]):
          (-[WebCoreBridge rangeOfCharactersAroundCaret]):
  
  2005-05-13  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	- more splitting up of htmlediting.cpp
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/editing/composite_edit_command.cpp:
          * khtml/editing/delete_from_text_node_command.cpp: Added.
          * khtml/editing/delete_from_text_node_command.h: Added.
          * khtml/editing/delete_selection_command.cpp: Added.
          * khtml/editing/delete_selection_command.h: Added.
          * khtml/editing/htmlediting.cpp:
          * khtml/editing/htmlediting.h:
          * khtml/editing/insert_into_text_node_command.cpp: Added.
          * khtml/editing/insert_into_text_node_command.h: Added.
          * khtml/editing/insert_node_before_command.cpp: Added.
          * khtml/editing/insert_node_before_command.h: Added.
  
  2005-05-12  Adele Peterson  <adele at apple.com>
  
          Reviewed by Maciej.
  
          fix for  <rdar://problem/4117656> deleting an input element in its onBlur handler crashes Safari
  
          * khtml/rendering/render_form.cpp: (RenderLineEdit::handleFocusOut): added nil check for element
  
  2005-05-12  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Kevin.
          
          - rolled in changes from experimental-ui-branch to support resizable textareas
          and find-as-you-type. The files/functions modified are listed just below. After
          that are the ChangeLog comments from the branch.
  
          * Resources/textAreaResizeCorner.tiff: Added.
          * WebCore.pbproj/project.pbxproj:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::findString):
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea textDidChange:]):
          (-[KWQTextAreaTextView _resizeCornerImage]):
          (-[KWQTextAreaTextView _resizeCornerRect]):
          (-[KWQTextAreaTextView resetCursorRects]):
          (-[KWQTextAreaTextView drawRect:]):
          (-[KWQTextAreaTextView mouseDown:]):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge searchFor:direction:caseSensitive:wrap:findInSelection:]):
  
          2005-05-05  John Sullivan  <sullivan at apple.com>
  
                  Reviewed by Chris.
  
                  * kwq/KWQTextArea.mm:
                  (-[KWQTextAreaTextView _resizeCornerRect]):
                  Get corner rect from enclosing clipView, rather than using visibleRect.
                  VisibleRect would return the wrong result when the textarea was clipped
                  by the bottom of the window, leading to redraw schmutz among other things.
  
          2005-05-02  John Sullivan  <sullivan at apple.com>
  
                  Reviewed by Chris.
                  
                  Improvements to resizable textarea experiment:
                  - resize image is now drawn in the resize corner
                  - cursor sometimes tracks to arrow when over resize corner (but usually not)
                  - cursor changes to arrow on mouse down in any case
  
                  * Resources/textAreaResizeCorner.tiff: Added.
                  * WebCore.pbproj/project.pbxproj:
                  updated for added image file
                  
                  * kwq/KWQTextArea.mm:
                  (-[KWQTextAreaTextView _resizeCornerImage]):
                  new method, reads resize image once and caches it
                  (-[KWQTextAreaTextView _resizeCornerRect]):
                  new method, computes rect from image
                  (-[KWQTextAreaTextView resetCursorRects]):
                  overridden to attempt to make the cursor change to an arrow when over this
                  corner. Only works sometimes, as explained in comments.
                  (-[KWQTextAreaTextView drawRect:]):
                  overridden to draw resize image
                  (-[KWQTextAreaTextView mouseDown:]):
                  now uses _resizeCornerRect, and sets cursor to arrow when pressed in resize corner
  
          2005-04-18  John Sullivan  <sullivan at apple.com>
  
                  WebCore support for notifying a form delegate when a
                  textarea's contents have changed (as opposed to a 
                  textfield, which was already handled).
  
                  Reviewed by Maciej.
  
                  * kwq/WebCoreBridge.h:
                  add textDidChange: method
  
                  * kwq/KWQTextArea.mm:
                  (-[KWQTextArea textDidChange:]):
                  call through to bridge
  
          2005-04-07  John Sullivan  <sullivan at apple.com>
  
                  WebCore support for find-as-you-type; needed an additional parameter
                  to findString and searchFor:...
  
                  Reviewed by Dave Hyatt.
  
                  * kwq/KWQKHTMLPart.h:
                  * kwq/KWQKHTMLPart.mm:
                  (KWQKHTMLPart::findString):
                  new findInSelection parameter; if true, start from the beginning of the selection
                  when searching forward, or the end of the selection when searching backward
                  
                  * kwq/WebCoreBridge.h:
                  * kwq/WebCoreBridge.mm:
                  (-[WebCoreBridge searchFor:direction:caseSensitive:wrap:findInSelection:]):
                  new findInSelection parameter; passed through to findString
  
  2005-05-12  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej (except for some parts outside the ECMA directory).
  
          - switch KJS wrappers over to using the DOM impl. classes rather than using
            the DOM wrappers; will allow us to not even compile the DOM wrappers and
            make the code smaller
  
          * khtml/css/css_valueimpl.h: Added CSSStyleDeclarationImpl::isPropertyName,
          removed CSSStyleDeclarationImpl::propertyID.
          * khtml/css/css_valueimpl.cpp:
          (DOM::propertyID): Added. Gets property ID given a DOM string. Replaces the
          previous version that had hacks that we want to leave in the JS wrapper for now.
          (DOM::CSSStyleDeclarationImpl::isPropertyName): Added.
  
          * khtml/css/cssproperties.in: Fixed up comments.
  
          * khtml/css/makeprop: Added new maxCSSPropertyNameLength constant, used for
          buffer size in the propertyID function.
  
          * khtml/dom/dom2_events.h: Added handleEventImpl, making it easier to call
          handleEvent in a way that works either with or without the C++ DOM wrappers.
          * khtml/dom/dom2_events.cpp: (EventListener::handleEventImpl): Added.
  
          * khtml/dom/dom2_views.cpp: Added now-needed include.
          * khtml/dom/dom_doc.cpp: Added now-needed include.
          * khtml/dom/dom_element.cpp: Tweaked includes.
  
          * khtml/editing/htmlediting.cpp: Removed now-unneeded include.
          * khtml/html/html_baseimpl.cpp: Ditto.
          * khtml/html/html_formimpl.h: Ditto.
          * khtml/rendering/render_form.h: Ditto.
          * khtml/rendering/render_style.h: Ditto.
          * khtml/xml/dom2_eventsimpl.cpp: Ditto.
          * khtml/xml/dom2_viewsimpl.h: Ditto.
          * khtml/xml/dom_elementimpl.h: Ditto.
          * khtml/xml/dom_stringimpl.h: Ditto.
          * kwq/DOM.mm: Ditto.
          * kwq/DOMHTML.mm: Ditto.
  
          * khtml/khtml_part.cpp: Tweaked incluudes.
          * khtml/khtmlpart_p.h: Ditto.
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::canCachePage): Change to use DOM impl. rather
          than C++ DOM.
  
          * khtml/xml/dom_docimpl.cpp:
          (DOMImplementationImpl::createDocumentType): Disabled the calls to the not-implemented
          name checks in the C++ DOM wrappers. If we add name changes, we'll want them inside the
          impl, not in the wrappers.
          (DOMImplementationImpl::createDocument): Ditto.
          * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkSetPrefix): Ditto.
  
          * khtml/ecma/kjs_binding.cpp:
          (KJS::ScriptInterpreter::wasRunByUserGesture):
          (KJS::KJS::ValueToVariant):
          (KJS::setDOMException):
          * khtml/ecma/kjs_binding.h:
          (KJS::ScriptInterpreter::setCurrentEvent):
          (KJS::ScriptInterpreter::getCurrentEvent):
          (KJS::cacheDOMObject):
          (KJS::DOMExceptionTranslator::DOMExceptionTranslator):
          (KJS::DOMExceptionTranslator::~DOMExceptionTranslator):
          (KJS::DOMExceptionTranslator::operator int &):
          (KJS::cacheGlobalObject):
          * khtml/ecma/kjs_css.cpp:
          (KJS::cssPropertyName):
          (KJS::isCSSPropertyName):
          (KJS::DOMCSSStyleDeclaration::DOMCSSStyleDeclaration):
          (KJS::DOMCSSStyleDeclaration::~DOMCSSStyleDeclaration):
          (KJS::DOMCSSStyleDeclaration::hasProperty):
          (KJS::DOMCSSStyleDeclaration::tryGet):
          (KJS::DOMCSSStyleDeclaration::tryPut):
          (KJS::DOMCSSStyleDeclarationProtoFunc::tryCall):
          (KJS::getDOMCSSStyleDeclaration):
          (KJS::DOMStyleSheet::~DOMStyleSheet):
          (KJS::DOMStyleSheet::getValueProperty):
          (KJS::DOMStyleSheet::tryPut):
          (KJS::getDOMStyleSheet):
          (KJS::DOMStyleSheetList::~DOMStyleSheetList):
          (KJS::DOMStyleSheetList::tryGet):
          (KJS::getDOMStyleSheetList):
          (KJS::DOMStyleSheetListFunc::tryCall):
          (KJS::DOMMediaList::DOMMediaList):
          (KJS::DOMMediaList::~DOMMediaList):
          (KJS::DOMMediaList::tryGet):
          (KJS::DOMMediaList::tryPut):
          (KJS::getDOMMediaList):
          (KJS::KJS::DOMMediaListProtoFunc::tryCall):
          (KJS::DOMCSSStyleSheet::DOMCSSStyleSheet):
          (KJS::DOMCSSStyleSheet::tryGet):
          (KJS::DOMCSSStyleSheetProtoFunc::tryCall):
          (KJS::DOMCSSRuleList::~DOMCSSRuleList):
          (KJS::DOMCSSRuleList::tryGet):
          (KJS::DOMCSSRuleListFunc::tryCall):
          (KJS::getDOMCSSRuleList):
          (KJS::DOMCSSRule::~DOMCSSRule):
          (KJS::DOMCSSRule::classInfo):
          (KJS::DOMCSSRule::tryGet):
          (KJS::DOMCSSRule::getValueProperty):
          (KJS::DOMCSSRule::putValue):
          (KJS::DOMCSSRuleFunc::tryCall):
          (KJS::getDOMCSSRule):
          (KJS::DOMCSSValue::~DOMCSSValue):
          (KJS::DOMCSSValue::tryGet):
          (KJS::DOMCSSValue::tryPut):
          (KJS::getDOMCSSValue):
          (KJS::DOMCSSPrimitiveValue::DOMCSSPrimitiveValue):
          (KJS::DOMCSSPrimitiveValue::tryGet):
          (KJS::DOMCSSPrimitiveValueProtoFunc::tryCall):
          (KJS::DOMCSSValueList::DOMCSSValueList):
          (KJS::DOMCSSValueList::tryGet):
          (KJS::DOMCSSValueListFunc::tryCall):
          (KJS::DOMRGBColor::getValueProperty):
          (KJS::getDOMRGBColor):
          (KJS::DOMRect::~DOMRect):
          (KJS::DOMRect::getValueProperty):
          (KJS::getDOMRect):
          (KJS::DOMCounter::~DOMCounter):
          (KJS::DOMCounter::getValueProperty):
          (KJS::getDOMCounter):
          * khtml/ecma/kjs_css.h:
          (KJS::DOMCSSStyleDeclaration::impl):
          (KJS::DOMStyleSheet::DOMStyleSheet):
          (KJS::DOMStyleSheet::impl):
          (KJS::DOMStyleSheetList::DOMStyleSheetList):
          (KJS::DOMStyleSheetList::impl):
          (KJS::DOMMediaList::impl):
          (KJS::DOMCSSStyleSheet::):
          (KJS::DOMCSSRuleList::DOMCSSRuleList):
          (KJS::DOMCSSRuleList::impl):
          (KJS::DOMCSSRule::DOMCSSRule):
          (KJS::DOMCSSRule::impl):
          (KJS::DOMCSSValue::DOMCSSValue):
          (KJS::DOMCSSValue::impl):
          (KJS::DOMCSSValueList::):
          (KJS::DOMRGBColor::DOMRGBColor):
          (KJS::DOMRect::DOMRect):
          (KJS::DOMCounter::DOMCounter):
          * khtml/ecma/kjs_dom.cpp:
          (KJS::DOMNodeListFunc::):
          (KJS::DOMNode::DOMNode):
          (KJS::DOMNode::toBoolean):
          (KJS::DOMNode::getValueProperty):
          (KJS::DOMNode::putValue):
          (KJS::DOMNode::toPrimitive):
          (KJS::DOMNode::toString):
          (KJS::DOMNode::setListener):
          (KJS::DOMNode::getListener):
          (KJS::DOMNodeProtoFunc::tryCall):
          (KJS::toNode):
          (KJS::DOMNodeList::~DOMNodeList):
          (KJS::DOMNodeList::toPrimitive):
          (KJS::DOMNodeList::tryGet):
          (KJS::DOMNodeList::tryCall):
          (KJS::DOMNodeListFunc::tryCall):
          (KJS::DOMAttr::DOMAttr):
          (KJS::DOMAttr::getValueProperty):
          (KJS::DOMAttr::putValue):
          (KJS::toAttr):
          (KJS::DOMDocument::DOMDocument):
          (KJS::DOMDocument::~DOMDocument):
          (KJS::DOMDocument::getValueProperty):
          (KJS::DOMDocument::putValue):
          (KJS::DOMDocumentProtoFunc::tryCall):
          (KJS::DOMElement::DOMElement):
          (KJS::DOMElement::tryGet):
          (KJS::DOMElementProtoFunc::tryCall):
          (KJS::toElement):
          (KJS::DOMDOMImplementation::DOMDOMImplementation):
          (KJS::DOMDOMImplementation::~DOMDOMImplementation):
          (KJS::DOMDOMImplementationProtoFunc::tryCall):
          (KJS::DOMDocumentType::DOMDocumentType):
          (KJS::DOMDocumentType::getValueProperty):
          (KJS::toDocumentType):
          (KJS::DOMNamedNodeMap::DOMNamedNodeMap):
          (KJS::DOMNamedNodeMap::~DOMNamedNodeMap):
          (KJS::DOMNamedNodeMap::tryGet):
          (KJS::DOMNamedNodeMapProtoFunc::tryCall):
          (KJS::DOMProcessingInstruction::DOMProcessingInstruction):
          (KJS::DOMProcessingInstruction::getValueProperty):
          (KJS::DOMProcessingInstruction::tryPut):
          (KJS::DOMNotation::DOMNotation):
          (KJS::DOMNotation::getValueProperty):
          (KJS::DOMEntity::DOMEntity):
          (KJS::DOMEntity::getValueProperty):
          (KJS::getDOMDocumentNode):
          (KJS::checkNodeSecurity):
          (KJS::getDOMNode):
          (KJS::getDOMNamedNodeMap):
          (KJS::getRuntimeObject):
          (KJS::getDOMNodeList):
          (KJS::getDOMDOMImplementation):
          (KJS::getNodeConstructor):
          (KJS::getDOMExceptionConstructor):
          (KJS::DOMNamedNodesCollection::DOMNamedNodesCollection):
          (KJS::DOMNamedNodesCollection::tryGet):
          (KJS::DOMCharacterData::DOMCharacterData):
          (KJS::DOMCharacterData::getValueProperty):
          (KJS::DOMCharacterData::tryPut):
          (KJS::DOMCharacterDataProtoFunc::tryCall):
          (KJS::DOMText::DOMText):
          (KJS::DOMTextProtoFunc::tryCall):
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMNode::impl):
          (KJS::DOMNodeList::DOMNodeList):
          (KJS::DOMNodeList::impl):
          (KJS::DOMDOMImplementation::impl):
          (KJS::DOMNamedNodeMap::impl):
          * khtml/ecma/kjs_events.cpp:
          (KJS::JSAbstractEventListener::handleEvent):
          (KJS::JSLazyEventListener::handleEvent):
          (KJS::getNodeEventListener):
          (KJS::DOMEvent::DOMEvent):
          (KJS::DOMEvent::~DOMEvent):
          (KJS::DOMEvent::getValueProperty):
          (KJS::DOMEvent::putValue):
          (KJS::DOMEventProtoFunc::tryCall):
          (KJS::getDOMEvent):
          (KJS::toEvent):
          (KJS::DOMUIEvent::DOMUIEvent):
          (KJS::DOMUIEvent::getValueProperty):
          (KJS::DOMUIEventProtoFunc::tryCall):
          (KJS::DOMMouseEvent::DOMMouseEvent):
          (KJS::DOMMouseEvent::getValueProperty):
          (KJS::DOMMouseEventProtoFunc::tryCall):
          (KJS::DOMKeyboardEvent::DOMKeyboardEvent):
          (KJS::DOMKeyboardEvent::getValueProperty):
          (KJS::DOMKeyboardEventProtoFunc::tryCall):
          (KJS::DOMMutationEvent::DOMMutationEvent):
          (KJS::DOMMutationEvent::getValueProperty):
          (KJS::DOMMutationEventProtoFunc::tryCall):
          (KJS::DOMWheelEvent::DOMWheelEvent):
          (KJS::DOMWheelEvent::getValueProperty):
          (KJS::ClipboardProtoFunc::tryCall):
          * khtml/ecma/kjs_events.h:
          (KJS::DOMEvent::impl):
          (KJS::DOMUIEvent::):
          (KJS::DOMMouseEvent::):
          (KJS::DOMKeyboardEvent::):
          (KJS::DOMMutationEvent::):
          * khtml/ecma/kjs_html.cpp:
          (KJS::KJS::HTMLDocFunction::tryCall):
          (KJS::HTMLDocument::HTMLDocument):
          (KJS::HTMLDocument::hasProperty):
          (KJS::HTMLDocument::tryGet):
          (KJS::KJS::HTMLDocument::putValue):
          (KJS::KJS::HTMLElement::classInfo):
          (KJS::HTMLElement::HTMLElement):
          (KJS::KJS::HTMLElement::tryGet):
          (KJS::KJS::HTMLElement::implementsCall):
          (KJS::KJS::HTMLElement::call):
          (KJS::KJS::HTMLElement::getValueProperty):
          (KJS::KJS::HTMLElement::hasProperty):
          (KJS::KJS::HTMLElement::toString):
          (KJS::getForm):
          (KJS::KJS::HTMLElement::pushEventHandlerScope):
          (KJS::KJS::HTMLElementFunction::tryCall):
          (KJS::KJS::HTMLElement::tryPut):
          (KJS::HTMLElement::putValue):
          (KJS::toHTMLElement):
          (KJS::toHTMLTableCaptionElement):
          (KJS::toHTMLTableSectionElement):
          (KJS::HTMLCollection::HTMLCollection):
          (KJS::HTMLCollection::~HTMLCollection):
          (KJS::KJS::HTMLCollection::tryGet):
          (KJS::KJS::HTMLCollection::tryCall):
          (KJS::KJS::HTMLCollection::getNamedItems):
          (KJS::KJS::HTMLCollectionProtoFunc::tryCall):
          (KJS::HTMLSelectCollection::HTMLSelectCollection):
          (KJS::KJS::HTMLSelectCollection::tryGet):
          (KJS::KJS::HTMLSelectCollection::tryPut):
          (KJS::OptionConstructorImp::OptionConstructorImp):
          (KJS::OptionConstructorImp::construct):
          (KJS::ImageConstructorImp::ImageConstructorImp):
          (KJS::ImageConstructorImp::construct):
          (KJS::Image::notifyFinished):
          (KJS::Image::Image):
          (KJS::KJS::Context2DFunction::tryCall):
          (KJS::):
          (KJS::colorRefFromValue):
          (KJS::colorFromValue):
          (KJS::Context2D::putValue):
          (KJS::Context2D::Context2D):
          (KJS::Context2D::mark):
          (KJS::GradientFunction::tryCall):
          (KJS::ImagePattern::tryGet):
          (KJS::getHTMLCollection):
          (KJS::getSelectHTMLCollection):
          * khtml/ecma/kjs_html.h:
          (KJS::HTMLDocument::):
          (KJS::HTMLElement::):
          (KJS::HTMLCollection::impl):
          * khtml/ecma/kjs_navigator.cpp:
          * khtml/ecma/kjs_proxy.cpp:
          (KJSProxyImpl::evaluate):
          (KJSProxyImpl::finishedWithEvent):
          * khtml/ecma/kjs_proxy.h:
          * khtml/ecma/kjs_range.cpp:
          (KJS::DOMRange::DOMRange):
          (KJS::DOMRange::~DOMRange):
          (KJS::DOMRange::tryGet):
          (KJS::DOMRange::getValueProperty):
          (KJS::DOMRangeProtoFunc::tryCall):
          (KJS::getDOMRange):
          (KJS::RangeConstructor::tryGet):
          (KJS::getRangeConstructor):
          (KJS::toRange):
          * khtml/ecma/kjs_range.h:
          (KJS::DOMRange::impl):
          * khtml/ecma/kjs_traversal.cpp:
          (KJS::DOMNodeIterator::DOMNodeIterator):
          (KJS::DOMNodeIterator::~DOMNodeIterator):
          (KJS::DOMNodeIterator::getValueProperty):
          (KJS::DOMNodeIteratorProtoFunc::tryCall):
          (KJS::getDOMNodeIterator):
          (KJS::DOMNodeFilter::DOMNodeFilter):
          (KJS::DOMNodeFilter::~DOMNodeFilter):
          (KJS::DOMNodeFilterProtoFunc::tryCall):
          (KJS::getDOMNodeFilter):
          (KJS::toNodeFilter):
          (KJS::DOMTreeWalker::DOMTreeWalker):
          (KJS::DOMTreeWalker::~DOMTreeWalker):
          (KJS::DOMTreeWalker::getValueProperty):
          (KJS::DOMTreeWalker::tryPut):
          (KJS::DOMTreeWalkerProtoFunc::tryCall):
          (KJS::getDOMTreeWalker):
          (KJS::JSNodeFilterCondition::acceptNode):
          * khtml/ecma/kjs_traversal.h:
          (KJS::DOMNodeIterator::impl):
          (KJS::DOMNodeFilter::impl):
          (KJS::DOMTreeWalker::impl):
          * khtml/ecma/kjs_views.cpp:
          (KJS::DOMAbstractView::~DOMAbstractView):
          (KJS::DOMAbstractView::tryGet):
          (KJS::DOMAbstractViewFunc::tryCall):
          (KJS::getDOMAbstractView):
          (KJS::toAbstractView):
          * khtml/ecma/kjs_views.h:
          (KJS::DOMAbstractView::DOMAbstractView):
          (KJS::DOMAbstractView::impl):
          * khtml/ecma/kjs_window.cpp:
          (KJS::Window::get):
          (KJS::Window::hasProperty):
          (KJS::Window::put):
          (KJS::Window::setListener):
          (KJS::Window::getListener):
          (KJS::Window::setCurrentEvent):
          (KJS::WindowFunc::tryCall):
          (KJS::Location::put):
          (KJS::LocationFunc::tryCall):
          (KJS::Selection::get):
          (KJS::SelectionFunc::tryCall):
          * khtml/ecma/kjs_window.h:
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequestConstructorImp::XMLHttpRequestConstructorImp):
          (KJS::XMLHttpRequestConstructorImp::~XMLHttpRequestConstructorImp):
          (KJS::XMLHttpRequestConstructorImp::construct):
          (KJS::XMLHttpRequest::getValueProperty):
          (KJS::XMLHttpRequest::XMLHttpRequest):
          (KJS::XMLHttpRequest::changeState):
          (KJS::XMLHttpRequest::open):
          (KJS::XMLHttpRequestProtoFunc::tryCall):
          * khtml/ecma/xmlhttprequest.h:
          * khtml/ecma/xmlserializer.cpp:
          (KJS::XMLSerializerProtoFunc::tryCall):
          * khtml/ecma/xmlserializer.h:
          * kwq/DOMInternal.mm:
          (-[WebScriptObject _initializeScriptDOMNodeImp]):
          * kwq/DOMUtility.mm:
          (KJS::ScriptInterpreter::createObjcInstanceForValue):
  
  2005-05-11  David Hyatt  <hyatt at apple.com>
  
  	Improve the display of apple.com.  innerWidth and innerHeight refer to the size of the visible view and
  	so they do not need to do a layout in order to yield correct values from JS.  Removing this stops an
  	early layout and paint before the apple.com images are typically loaded.
  
  	This is an improvement of the fix for wired.com's FOUC.  For that bug I eliminated the need to ignore pending
  	stylesheets, but now I'm going further and just eliminating the layout all together.  This means that the old
  	updateLayout function can be reverted to how it was before the wired.com fix.
  	
          Reviewed by john
  
          * khtml/ecma/kjs_window.cpp:
          (Window::get):
          (Window::updateLayout):
          * khtml/ecma/kjs_window.h:
  
  2005-05-11  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	- split some more individual classes out of htmlediting.cpp
  	(CompositeEditcommand, AppendnodeCommand, ApplyStyleCommand)
  
  	Also moves StyleChange directly into ApplyStyleCommand
  	implementation file, it doesn't need to be in a header at all.
  	
          * WebCore.pbproj/project.pbxproj:
          * khtml/editing/append_node_command.cpp: Added.
          * khtml/editing/append_node_command.h: Added.
          * khtml/editing/apply_style_command.cpp: Added.
          * khtml/editing/apply_style_command.h: Added.
          * khtml/editing/composite_edit_command.cpp: Added.
          * khtml/editing/composite_edit_command.h: Added.
          * khtml/editing/edit_command.cpp: Minor clean-ups.
          * khtml/editing/edit_command.h:
          * khtml/editing/htmlediting.cpp:
          * khtml/editing/htmlediting.h:
  
  2005-05-11  Adele Peterson  <adele at apple.com>
  
          Reviewed by Darin.
  
          fix for <rdar://problem/4061979> crash in DOM::ElementImpl::setAttribute at www.nitto-kohki.co.jp
  
          * khtml/html/html_imageimpl.cpp: (HTMLImageLoader::updateFromElement): added a nil check for the document
          * khtml/xml/dom_nodeimpl.h: (DOM::NodeImpl::inDocument): added check for document in case the document has been destroyed before the node has been removed.  A lot of code already assumes that if inDocument returns true, a document exists.
   
          * layout-tests/fast/events/onload-re-entry.html: removed alert.
          * layout-tests/fast/events/onload-re-entry-expected.txt: updated.
          * layout-tests/fast/dom/attr_dead_doc-expected.txt: Added.
          * layout-tests/fast/dom/attr_dead_doc.html: Added.
          * layout-tests/fast/dom/resources/apple.gif: Added.
          * layout-tests/fast/dom/resources/mozilla.gif: Added.
          * layout-tests/fast/dom/resources/top.html: Added.
  
  2005-05-10  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	- start on splitting htmlediting.cpp into smaller files - pull
  	EditCommand and EditCommandPtr out.
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/editing/edit_command.cpp: Added.
          * khtml/editing/edit_command.h: Added.
          * khtml/editing/htmlediting.cpp: Took EditCommand and EditCommandPtr out.
          * khtml/editing/htmlediting.h: Ditto.
  
  2005-05-10  David Hyatt  <hyatt at apple.com>
  
  	Refactor the DOM so that the concept of class/style/id is no longer unique to HTML elements.  This paves the way
  	for SVG and MathML elements to also support these capabilities.  In addition the concept of presentational
  	attributes has also been factored out.
  	
          Reviewed by mjs
  
          * khtml/css/css_ruleimpl.cpp:
          (CSSStyleRuleImpl::setDeclaration):
          * khtml/css/cssstyleselector.cpp:
          (khtml::parseUASheet):
          (khtml::CSSStyleSelector::loadDefaultStyle):
          (khtml::CSSStyleSelector::initElementAndPseudoState):
          (khtml::CSSStyleSelector::canShareStyleWithElement):
          (khtml::CSSStyleSelector::locateSharedStyle):
          (khtml::CSSStyleSelector::styleForElement):
          (khtml::CSSStyleSelector::checkOneSelector):
          * khtml/css/cssstyleselector.h:
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::parseMappedAttribute):
          (HTMLFrameElementImpl::parseMappedAttribute):
          (HTMLFrameSetElementImpl::parseMappedAttribute):
          (HTMLIFrameElementImpl::parseMappedAttribute):
          * khtml/html/html_baseimpl.h:
          * khtml/html/html_blockimpl.cpp:
          (HTMLDivElementImpl::parseMappedAttribute):
          (HTMLHRElementImpl::parseMappedAttribute):
          (HTMLParagraphElementImpl::parseMappedAttribute):
          (HTMLMarqueeElementImpl::parseMappedAttribute):
          * khtml/html/html_blockimpl.h:
          * khtml/html/html_canvasimpl.cpp:
          (HTMLCanvasElementImpl::parseMappedAttribute):
          * khtml/html/html_canvasimpl.h:
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::HTMLElementImpl):
          (HTMLElementImpl::~HTMLElementImpl):
          (HTMLElementImpl::mapToEntry):
          (HTMLElementImpl::parseMappedAttribute):
          (HTMLElementImpl::addHTMLAlignment):
          (HTMLElementImpl::setContentEditable):
          (HTMLElementImpl::toString):
          * khtml/html/html_elementimpl.h:
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::parseMappedAttribute):
          (DOM::HTMLGenericFormElementImpl::parseMappedAttribute):
          (DOM::HTMLButtonElementImpl::parseMappedAttribute):
          (DOM::HTMLInputElementImpl::setType):
          (DOM::HTMLInputElementImpl::parseMappedAttribute):
          (DOM::HTMLLabelElementImpl::parseMappedAttribute):
          (DOM::HTMLSelectElementImpl::parseMappedAttribute):
          (DOM::HTMLKeygenElementImpl::parseMappedAttribute):
          (DOM::HTMLOptGroupElementImpl::parseMappedAttribute):
          (DOM::HTMLOptionElementImpl::parseMappedAttribute):
          (DOM::HTMLTextAreaElementImpl::parseMappedAttribute):
          (DOM::HTMLIsIndexElementImpl::parseMappedAttribute):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_headimpl.cpp:
          (HTMLBaseElementImpl::parseMappedAttribute):
          (HTMLLinkElementImpl::parseMappedAttribute):
          (HTMLMetaElementImpl::parseMappedAttribute):
          (HTMLStyleElementImpl::parseMappedAttribute):
          * khtml/html/html_headimpl.h:
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageElementImpl::parseMappedAttribute):
          (HTMLMapElementImpl::parseMappedAttribute):
          (HTMLAreaElementImpl::parseMappedAttribute):
          * khtml/html/html_imageimpl.h:
          * khtml/html/html_inlineimpl.cpp:
          (DOM::HTMLAnchorElementImpl::parseMappedAttribute):
          (DOM::HTMLBRElementImpl::parseMappedAttribute):
          (DOM::HTMLFontElementImpl::parseMappedAttribute):
          * khtml/html/html_inlineimpl.h:
          * khtml/html/html_listimpl.cpp:
          (DOM::HTMLUListElementImpl::parseMappedAttribute):
          (DOM::HTMLOListElementImpl::parseMappedAttribute):
          (DOM::HTMLLIElementImpl::parseMappedAttribute):
          * khtml/html/html_listimpl.h:
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLAppletElementImpl::parseMappedAttribute):
          (DOM::HTMLEmbedElementImpl::parseMappedAttribute):
          (DOM::HTMLObjectElementImpl::parseMappedAttribute):
          (DOM::HTMLParamElementImpl::parseMappedAttribute):
          * khtml/html/html_objectimpl.h:
          * khtml/html/html_tableimpl.cpp:
          (DOM::HTMLTableElementImpl::parseMappedAttribute):
          (DOM::HTMLTableElementImpl::additionalAttributeStyleDecl):
          (DOM::HTMLTableElementImpl::getSharedCellDecl):
          (DOM::HTMLTablePartElementImpl::parseMappedAttribute):
          (DOM::HTMLTableCellElementImpl::parseMappedAttribute):
          (DOM::HTMLTableColElementImpl::parseMappedAttribute):
          (DOM::HTMLTableCaptionElementImpl::parseMappedAttribute):
          * khtml/html/html_tableimpl.h:
          * khtml/html/htmltokenizer.h:
          (khtml::Token::addAttribute):
          * khtml/misc/htmlattrs.in:
          * khtml/misc/htmltags.in:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createAttribute):
          (DocumentImpl::createElementNS):
          (DocumentImpl::createHTMLElement):
          * khtml/xml/dom_elementimpl.cpp:
          (XMLElementImpl::cloneNode):
          (NamedAttrMapImpl::isMappedAttributeMap):
          (CSSMappedAttributeDeclarationImpl::~CSSMappedAttributeDeclarationImpl):
          (StyledElementImpl::getMappedAttributeDecl):
          (StyledElementImpl::setMappedAttributeDecl):
          (StyledElementImpl::removeMappedAttributeDecl):
          (StyledElementImpl::invalidateStyleAttribute):
          (StyledElementImpl::updateStyleAttributeIfNeeded):
          (MappedAttributeImpl::~MappedAttributeImpl):
          (MappedAttributeImpl::clone):
          (m_mappedAttributeCount):
          (NamedMappedAttrMapImpl::clearAttributes):
          (NamedMappedAttrMapImpl::isMappedAttributeMap):
          (NamedMappedAttrMapImpl::declCount):
          (NamedMappedAttrMapImpl::mapsEquivalent):
          (NamedMappedAttrMapImpl::parseClassAttribute):
          (StyledElementImpl::StyledElementImpl):
          (StyledElementImpl::~StyledElementImpl):
          (StyledElementImpl::createAttribute):
          (StyledElementImpl::createInlineStyleDecl):
          (StyledElementImpl::destroyInlineStyleDecl):
          (StyledElementImpl::attributeChanged):
          (StyledElementImpl::mapToEntry):
          (StyledElementImpl::parseMappedAttribute):
          (StyledElementImpl::createAttributeMap):
          (StyledElementImpl::getInlineStyleDecl):
          (StyledElementImpl::style):
          (StyledElementImpl::additionalAttributeStyleDecl):
          (StyledElementImpl::getClassList):
          (isHexDigit):
          (toHex):
          (StyledElementImpl::addCSSProperty):
          (StyledElementImpl::addCSSStringProperty):
          (StyledElementImpl::addCSSImageProperty):
          (StyledElementImpl::addCSSLength):
          (StyledElementImpl::addCSSColor):
          (StyledElementImpl::createMappedDecl):
          * khtml/xml/dom_elementimpl.h:
          (DOM::):
          (DOM::CSSMappedAttributeDeclarationImpl::CSSMappedAttributeDeclarationImpl):
          (DOM::CSSMappedAttributeDeclarationImpl::setMappedState):
          (DOM::MappedAttributeImpl::MappedAttributeImpl):
          (DOM::MappedAttributeImpl::decl):
          (DOM::MappedAttributeImpl::setDecl):
          (DOM::NamedMappedAttrMapImpl::getClassList):
          (DOM::NamedMappedAttrMapImpl::hasMappedAttributes):
          (DOM::NamedMappedAttrMapImpl::declRemoved):
          (DOM::NamedMappedAttrMapImpl::declAdded):
          (DOM::NamedMappedAttrMapImpl::attributeItem):
          (DOM::StyledElementImpl::isStyledElement):
          (DOM::StyledElementImpl::hasMappedAttributes):
          (DOM::StyledElementImpl::mappedAttributes):
          (DOM::StyledElementImpl::isMappedAttribute):
          (DOM::StyledElementImpl::inlineStyleDecl):
          * khtml/xml/dom_nodeimpl.h:
          (DOM::NodeImpl::isStyledElement):
  
  2005-05-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave Hyatt.
          No new layout tests needed.
  
          - remove all remaining uses of QMIN/QMAX and KMIN/KMAX.
  
          * kwq/KWQDef.h: Remove the macros.
  
          Remove all use of the macros (and fix a few compile errors by changing the types of
          some integer and floating point constants).
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseColorFromValue):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::addHTMLColor):
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLSelectElementImpl::parseHTMLAttribute):
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseComment):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::nearestFloatBottom):
          (khtml::RenderBlock::calcMinMaxWidth):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::paintOutlineForLine):
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::calcMinMaxWidth):
          (RenderFieldset::layoutLegend):
          (RenderFileButton::calcMinMaxWidth):
          (RenderSelect::layout):
          (RenderTextArea::calcMinMaxWidth):
          * khtml/rendering/render_object.cpp:
          (RenderObject::drawBorder):
          * khtml/rendering/render_replaced.cpp:
          (RenderWidget::resizeWidget):
          * khtml/rendering/render_table.cpp:
          (RenderTableSection::layoutRows):
          * khtml/rendering/table_layout.cpp:
          (AutoTableLayout::recalcColumn):
          (AutoTableLayout::calcEffectiveWidth):
  
  2005-05-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris Blumenberg.
  
          - next pass of moving code from C++ DOM wrappers into the DOM impl. classes
            (this step adds still more member functions missing from the DOM impl. and
             changes some of the C++ and Objective-C DOM to call the new ones; also
             changes various places that use the C++ DOM to use the DOM impl. instead)
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
          * khtml/css/css_computedstyle.h:
          * khtml/css/css_stylesheetimpl.cpp:
          (CSSStyleSheetImpl::cssRules):
          * khtml/css/css_stylesheetimpl.h:
          * khtml/css/css_valueimpl.cpp:
          (DOM::CSSStyleDeclarationImpl::getPropertyCSSValue):
          (DOM::CSSStyleDeclarationImpl::getPropertyValue):
          (DOM::CSSStyleDeclarationImpl::getPropertyPriority):
          (DOM::CSSStyleDeclarationImpl::setProperty):
          (DOM::CSSStyleDeclarationImpl::removeProperty):
          (DOM::CSSMutableStyleDeclarationImpl::getPropertyValue):
          (DOM::CSSPrimitiveValueImpl::CSSPrimitiveValueImpl):
          (DOM::operator==):
          (DOM::CSSStyleDeclarationImpl::propertyID):
          * khtml/css/css_valueimpl.h:
          (DOM::CSSValueImpl::setCssText):
          (DOM::CSSPrimitiveValueImpl::getDashboardRegionValue):
          * khtml/dom/css_rule.cpp:
          * khtml/dom/css_rule.h:
          * khtml/dom/css_stylesheet.h:
          (DOM::CSSException::):
          * khtml/dom/css_value.cpp:
          (DOM::CSSStyleDeclaration::getPropertyValue):
          (DOM::CSSStyleDeclaration::getPropertyCSSValue):
          (DOM::CSSStyleDeclaration::removeProperty):
          (DOM::CSSStyleDeclaration::getPropertyPriority):
          (DOM::CSSStyleDeclaration::setProperty):
          * khtml/dom/css_value.h:
          * khtml/dom/dom2_events.cpp:
          (EventListener::handleEvent):
          * khtml/dom/dom2_events.h:
          * khtml/dom/dom2_traversal.h:
          * khtml/dom/dom_doc.cpp:
          (DOM::DOMImplementation::createHTMLDocument):
          (DOM::DOMImplementation::createCSSStyleSheet):
          (DOM::Document::doctype):
          (DOM::Document::createAttribute):
          (DOM::Document::createAttributeNS):
          (DOM::Document::queryCommandValue):
          (DOM::Document::handle):
          * khtml/dom/dom_doc.h:
          * khtml/dom/dom_element.cpp:
          (Attr::name):
          (Attr::value):
          (Element::getAttribute):
          (Element::setAttribute):
          (Element::removeAttribute):
          (Element::getAttributeNode):
          (Element::setAttributeNode):
          (Element::removeAttributeNode):
          (Element::getElementsByTagName):
          (Element::getElementsByTagNameNS):
          (Element::getAttributeNS):
          (Element::setAttributeNS):
          (Element::removeAttributeNS):
          (Element::getAttributeNodeNS):
          (Element::setAttributeNodeNS):
          (Element::hasAttribute):
          (Element::hasAttributeNS):
          (Element::style):
          * khtml/dom/dom_exception.h:
          * khtml/dom/dom_misc.cpp:
          (DOM::DomShared::deleteMe):
          * khtml/dom/dom_misc.h:
          (DOM::DomShared::deleteMe):
          * khtml/dom/dom_node.cpp:
          (NamedNodeMap::getNamedItemNS):
          (NamedNodeMap::setNamedItemNS):
          (NamedNodeMap::removeNamedItemNS):
          (Node::ownerDocument):
          (Node::hasAttributes):
          (Node::isSupported):
          (Node::addEventListener):
          (Node::removeEventListener):
          * khtml/dom/dom_node.h:
          * khtml/dom/html_document.cpp:
          (HTMLDocument::setTitle):
          (HTMLDocument::completeURL):
          (HTMLDocument::getElementsByName):
          * khtml/dom/html_element.cpp:
          (HTMLElement::setInnerHTML):
          (HTMLElement::setInnerText):
          (HTMLElement::setOuterHTML):
          (HTMLElement::setOuterText):
          * khtml/dom/html_form.cpp:
          (HTMLLabelElement::form):
          (HTMLSelectElement::setValue):
          (HTMLSelectElement::options):
          (HTMLOptionElement::setValue):
          * khtml/dom/html_inline.cpp:
          (HTMLAnchorElement::accessKey):
          (HTMLAnchorElement::setAccessKey):
          (HTMLAnchorElement::charset):
          (HTMLAnchorElement::setCharset):
          (HTMLAnchorElement::coords):
          (HTMLAnchorElement::setCoords):
          (HTMLAnchorElement::href):
          (HTMLAnchorElement::setHref):
          (HTMLAnchorElement::hreflang):
          (HTMLAnchorElement::setHreflang):
          (HTMLAnchorElement::name):
          (HTMLAnchorElement::setName):
          (HTMLAnchorElement::rel):
          (HTMLAnchorElement::setRel):
          (HTMLAnchorElement::rev):
          (HTMLAnchorElement::setRev):
          (HTMLAnchorElement::shape):
          (HTMLAnchorElement::setShape):
          (HTMLAnchorElement::tabIndex):
          (HTMLAnchorElement::setTabIndex):
          (HTMLAnchorElement::target):
          (HTMLAnchorElement::setTarget):
          (HTMLAnchorElement::type):
          (HTMLAnchorElement::setType):
          (HTMLAnchorElement::blur):
          (HTMLAnchorElement::focus):
          (HTMLBRElement::clear):
          (HTMLBRElement::setClear):
          (HTMLFontElement::color):
          (HTMLFontElement::setColor):
          (HTMLFontElement::face):
          (HTMLFontElement::setFace):
          (HTMLFontElement::size):
          (HTMLFontElement::setSize):
          (HTMLModElement::cite):
          (HTMLModElement::setCite):
          (HTMLModElement::dateTime):
          (HTMLModElement::setDateTime):
          (HTMLQuoteElement::cite):
          (HTMLQuoteElement::setCite):
          * khtml/dom/html_misc.cpp:
          (HTMLCollection::HTMLCollection):
          (HTMLCollection::base):
          (HTMLCollection::namedItems):
          * khtml/dom/html_misc.h:
          * khtml/editing/htmlediting.cpp:
          * khtml/editing/selection.cpp:
          * khtml/html/html_documentimpl.cpp:
          (DOM::HTMLDocumentImpl::determineParseMode):
          (DOM::HTMLDocumentImpl::doctype):
          * khtml/html/html_documentimpl.h:
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::setInnerHTML):
          (HTMLElementImpl::setOuterHTML):
          (HTMLElementImpl::setInnerText):
          (HTMLElementImpl::setOuterText):
          (HTMLElementImpl::style):
          (HTMLElementImpl::idDOM):
          (HTMLElementImpl::setId):
          (HTMLElementImpl::title):
          (HTMLElementImpl::setTitle):
          (HTMLElementImpl::lang):
          (HTMLElementImpl::setLang):
          (HTMLElementImpl::dir):
          (HTMLElementImpl::setDir):
          (HTMLElementImpl::className):
          (HTMLElementImpl::setClassName):
          (HTMLElementImpl::children):
          (HTMLGenericElementImpl::HTMLGenericElementImpl):
          (HTMLGenericElementImpl::id):
          * khtml/html/html_elementimpl.h:
          (DOM::HTMLElementImpl::isGenericFormElement):
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::parseEnctype):
          (DOM::HTMLFormElementImpl::parseHTMLAttribute):
          (DOM::HTMLFormElementImpl::elements):
          (DOM::HTMLFormElementImpl::name):
          (DOM::HTMLFormElementImpl::setName):
          (DOM::HTMLFormElementImpl::acceptCharset):
          (DOM::HTMLFormElementImpl::setAcceptCharset):
          (DOM::HTMLFormElementImpl::action):
          (DOM::HTMLFormElementImpl::setAction):
          (DOM::HTMLFormElementImpl::setEnctype):
          (DOM::HTMLFormElementImpl::method):
          (DOM::HTMLFormElementImpl::setMethod):
          (DOM::HTMLFormElementImpl::target):
          (DOM::HTMLFormElementImpl::setTarget):
          (DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl):
          (DOM::HTMLGenericFormElementImpl::~HTMLGenericFormElementImpl):
          (DOM::HTMLGenericFormElementImpl::parseHTMLAttribute):
          (DOM::HTMLGenericFormElementImpl::name):
          (DOM::HTMLGenericFormElementImpl::setName):
          (DOM::HTMLGenericFormElementImpl::setOverrideName):
          (DOM::HTMLGenericFormElementImpl::setDisabled):
          (DOM::HTMLGenericFormElementImpl::setReadOnly):
          (DOM::HTMLGenericFormElementImpl::tabIndex):
          (DOM::HTMLGenericFormElementImpl::setTabIndex):
          (DOM::HTMLButtonElementImpl::accessKey):
          (DOM::HTMLButtonElementImpl::setAccessKey):
          (DOM::HTMLButtonElementImpl::value):
          (DOM::HTMLButtonElementImpl::setValue):
          (DOM::HTMLInputElementImpl::HTMLInputElementImpl):
          (DOM::HTMLInputElementImpl::parseHTMLAttribute):
          (DOM::HTMLInputElementImpl::defaultValue):
          (DOM::HTMLInputElementImpl::setDefaultValue):
          (DOM::HTMLInputElementImpl::defaultChecked):
          (DOM::HTMLInputElementImpl::setDefaultChecked):
          (DOM::HTMLInputElementImpl::accept):
          (DOM::HTMLInputElementImpl::setAccept):
          (DOM::HTMLInputElementImpl::accessKey):
          (DOM::HTMLInputElementImpl::setAccessKey):
          (DOM::HTMLInputElementImpl::align):
          (DOM::HTMLInputElementImpl::setAlign):
          (DOM::HTMLInputElementImpl::alt):
          (DOM::HTMLInputElementImpl::setAlt):
          (DOM::HTMLInputElementImpl::setMaxLength):
          (DOM::HTMLInputElementImpl::sizeDOM):
          (DOM::HTMLInputElementImpl::setSize):
          (DOM::HTMLInputElementImpl::src):
          (DOM::HTMLInputElementImpl::setSrc):
          (DOM::HTMLInputElementImpl::useMap):
          (DOM::HTMLInputElementImpl::setUseMap):
          (DOM::HTMLLabelElementImpl::form):
          (DOM::HTMLLabelElementImpl::accessKey):
          (DOM::HTMLLabelElementImpl::setAccessKey):
          (DOM::HTMLLabelElementImpl::htmlFor):
          (DOM::HTMLLabelElementImpl::setHtmlFor):
          (DOM::HTMLLegendElementImpl::accessKey):
          (DOM::HTMLLegendElementImpl::setAccessKey):
          (DOM::HTMLLegendElementImpl::align):
          (DOM::HTMLLegendElementImpl::setAlign):
          (DOM::HTMLSelectElementImpl::setValue):
          (DOM::HTMLSelectElementImpl::optionsHTMLCollection):
          (DOM::HTMLSelectElementImpl::setMultiple):
          (DOM::HTMLSelectElementImpl::setSize):
          (DOM::HTMLOptGroupElementImpl::label):
          (DOM::HTMLOptGroupElementImpl::setLabel):
          (DOM::HTMLOptionElementImpl::setText):
          (DOM::HTMLOptionElementImpl::setIndex):
          (DOM::HTMLOptionElementImpl::setValue):
          (DOM::HTMLOptionElementImpl::defaultSelected):
          (DOM::HTMLOptionElementImpl::setDefaultSelected):
          (DOM::HTMLOptionElementImpl::label):
          (DOM::HTMLOptionElementImpl::setLabel):
          (DOM::HTMLTextAreaElementImpl::accessKey):
          (DOM::HTMLTextAreaElementImpl::setAccessKey):
          (DOM::HTMLTextAreaElementImpl::setCols):
          (DOM::HTMLTextAreaElementImpl::setRows):
          (DOM::HTMLIsIndexElementImpl::HTMLIsIndexElementImpl):
          (DOM::HTMLIsIndexElementImpl::parseHTMLAttribute):
          (DOM::HTMLIsIndexElementImpl::prompt):
          (DOM::HTMLIsIndexElementImpl::setPrompt):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_headimpl.cpp:
          (HTMLBaseElementImpl::setHref):
          (HTMLBaseElementImpl::setTarget):
          (HTMLLinkElementImpl::disabled):
          (HTMLLinkElementImpl::setDisabled):
          (HTMLLinkElementImpl::charset):
          (HTMLLinkElementImpl::setCharset):
          (HTMLLinkElementImpl::href):
          (HTMLLinkElementImpl::setHref):
          (HTMLLinkElementImpl::hreflang):
          (HTMLLinkElementImpl::setHreflang):
          (HTMLLinkElementImpl::media):
          (HTMLLinkElementImpl::setMedia):
          (HTMLLinkElementImpl::rel):
          (HTMLLinkElementImpl::setRel):
          (HTMLLinkElementImpl::rev):
          (HTMLLinkElementImpl::setRev):
          (HTMLLinkElementImpl::target):
          (HTMLLinkElementImpl::setTarget):
          (HTMLLinkElementImpl::type):
          (HTMLLinkElementImpl::setType):
          (HTMLMetaElementImpl::content):
          (HTMLMetaElementImpl::setContent):
          (HTMLMetaElementImpl::httpEquiv):
          (HTMLMetaElementImpl::setHttpEquiv):
          (HTMLMetaElementImpl::name):
          (HTMLMetaElementImpl::setName):
          (HTMLMetaElementImpl::scheme):
          (HTMLMetaElementImpl::setScheme):
          (HTMLScriptElementImpl::id):
          (HTMLScriptElementImpl::isURLAttribute):
          (HTMLScriptElementImpl::insertedIntoDocument):
          (HTMLScriptElementImpl::notifyFinished):
          (HTMLScriptElementImpl::text):
          (HTMLScriptElementImpl::setText):
          (HTMLScriptElementImpl::htmlFor):
          (HTMLScriptElementImpl::setHtmlFor):
          (HTMLScriptElementImpl::event):
          (HTMLScriptElementImpl::setEvent):
          (HTMLScriptElementImpl::charset):
          (HTMLScriptElementImpl::setCharset):
          (HTMLScriptElementImpl::defer):
          (HTMLScriptElementImpl::setDefer):
          (HTMLScriptElementImpl::src):
          (HTMLScriptElementImpl::setSrc):
          (HTMLScriptElementImpl::type):
          (HTMLScriptElementImpl::setType):
          (HTMLStyleElementImpl::disabled):
          (HTMLStyleElementImpl::setDisabled):
          (HTMLStyleElementImpl::media):
          (HTMLStyleElementImpl::setMedia):
          (HTMLStyleElementImpl::type):
          (HTMLStyleElementImpl::setType):
          (HTMLTitleElementImpl::insertedIntoDocument):
          (HTMLTitleElementImpl::childrenChanged):
          (HTMLTitleElementImpl::text):
          (HTMLTitleElementImpl::setText):
          * khtml/html/html_headimpl.h:
          * khtml/html/html_miscimpl.cpp:
          (DOM::HTMLBaseFontElementImpl::id):
          (DOM::HTMLBaseFontElementImpl::color):
          (DOM::HTMLBaseFontElementImpl::setColor):
          (DOM::HTMLBaseFontElementImpl::face):
          (DOM::HTMLBaseFontElementImpl::setFace):
          (DOM::HTMLBaseFontElementImpl::size):
          (DOM::HTMLBaseFontElementImpl::setSize):
          (DOM::HTMLCollectionImpl::HTMLCollectionImpl):
          (DOM::HTMLCollectionImpl::~HTMLCollectionImpl):
          (DOM::HTMLCollectionImpl::resetCollectionInfo):
          (DOM::HTMLCollectionImpl::traverseNextItem):
          (DOM::HTMLCollectionImpl::calcLength):
          (DOM::HTMLCollectionImpl::item):
          (DOM::HTMLCollectionImpl::namedItem):
          (DOM::HTMLCollectionImpl::updateNameCache):
          (DOM::HTMLCollectionImpl::namedItems):
          (DOM::HTMLCollectionImpl::nextNamedItem):
          (DOM::HTMLFormCollectionImpl::HTMLFormCollectionImpl):
          (DOM::HTMLFormCollectionImpl::calcLength):
          (DOM::HTMLFormCollectionImpl::item):
          (DOM::HTMLFormCollectionImpl::getNamedFormItem):
          (DOM::HTMLFormCollectionImpl::nextNamedItemInternal):
          (DOM::HTMLFormCollectionImpl::namedItem):
          (DOM::HTMLFormCollectionImpl::updateNameCache):
          * khtml/html/html_miscimpl.h:
          (DOM::HTMLCollectionImpl::base):
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::parseToken):
          (KHTMLParser::insertNode):
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::scriptExecution):
          * khtml/khtml_events.cpp:
          (khtml::MouseEvent::MouseEvent):
          (khtml::MouseEvent::offset):
          * khtml/khtml_events.h:
          (khtml::MouseEvent::innerNode):
          (khtml::MousePressEvent::MousePressEvent):
          (khtml::MouseDoubleClickEvent::MouseDoubleClickEvent):
          (khtml::MouseMoveEvent::MouseMoveEvent):
          (khtml::MouseReleaseEvent::MouseReleaseEvent):
          * khtml/khtml_part.cpp:
          (KHTMLPart::closeURL):
          (KHTMLPart::executeScript):
          (KHTMLPart::scheduleScript):
          (KHTMLPart::executeScheduledScript):
          (KHTMLPart::clear):
          (KHTMLPart::selectClosestWordFromMouseEvent):
          (KHTMLPart::handleMousePressEventDoubleClick):
          (KHTMLPart::handleMousePressEventTripleClick):
          (KHTMLPart::handleMousePressEventSingleClick):
          (KHTMLPart::khtmlMousePressEvent):
          (KHTMLPart::handleMouseMoveEventDrag):
          (KHTMLPart::handleMouseMoveEventOver):
          (KHTMLPart::handleMouseMoveEventSelection):
          (KHTMLPart::khtmlMouseReleaseEvent):
          (KHTMLPart::selectionHasStyle):
          (KHTMLPart::selectionStartHasStyle):
          * khtml/khtml_part.h:
          * khtml/khtmlpart_p.h:
          * khtml/khtmlview.cpp:
          (KHTMLViewPrivate::reset):
          (KHTMLView::viewportMousePressEvent):
          (KHTMLView::viewportMouseDoubleClickEvent):
          (KHTMLView::contentsContextMenuEvent):
          (KHTMLView::updateDragAndDrop):
          (KHTMLView::cancelDragAndDrop):
          (KHTMLView::performDragAndDrop):
          (KHTMLView::focusNextPrevNode):
          * kwq/DOM-CSS.mm:
          (-[DOMCSSStyleSheet cssRules]):
          (-[DOMCSSStyleDeclaration getPropertyValue:]):
          (-[DOMCSSStyleDeclaration getPropertyCSSValue:]):
          (-[DOMCSSStyleDeclaration removeProperty:]):
          (-[DOMCSSStyleDeclaration getPropertyPriority:]):
          (-[DOMCSSStyleDeclaration setProperty:::]):
          (-[DOMCSSValue setCssText:]):
          * kwq/DOMCSS.h:
          * kwq/DOMHTML.mm:
          (-[DOMHTMLElement setInnerHTML:]):
          (-[DOMHTMLElement setOuterHTML:]):
          (-[DOMHTMLElement setInnerText:]):
          (-[DOMHTMLElement setOuterText:]):
          (-[DOMHTMLSelectElement setLength:]):
          (-[DOMHTMLTableSectionElement insertRow:]):
          * kwq/DOMInternal.h:
          * kwq/DOMInternal.mm:
          (raiseDOMException):
          (-[WebScriptObject _initializeScriptDOMNodeImp]):
          * kwq/DOMUtility.mm:
          (KJS::ScriptInterpreter::createObjcInstanceForValue):
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityAttributeValue:]):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::KWQKHTMLPart):
          (KWQKHTMLPart::advanceToNextMisspelling):
          (KWQKHTMLPart::scrollOverflow):
          (KWQKHTMLPart::paint):
          (KWQKHTMLPart::openURLFromPageCache):
          (KWQKHTMLPart::khtmlMousePressEvent):
          (KWQKHTMLPart::passWidgetMouseDownEventToWidget):
          (KWQKHTMLPart::dispatchDragSrcEvent):
          (KWQKHTMLPart::eventMayStartDrag):
          (KWQKHTMLPart::khtmlMouseMoveEvent):
          (KWQKHTMLPart::dragSourceEndedAt):
          (KWQKHTMLPart::mouseDown):
          (KWQKHTMLPart::sendContextMenuEvent):
          (listParent):
          (isTextFirstInListItem):
          (KWQKHTMLPart::attributedString):
          (KWQKHTMLPart::snapshotDragImage):
          (KWQKHTMLPart::mousePressNode):
          * kwq/WebCoreBridge.mm:
          (updateRenderingForBindings):
          (-[WebCoreBridge _documentTypeString]):
  
  2005-05-10  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- rename hasAnchor method to isLink
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::checkPseudoState):
          (khtml::CSSStyleSelector::canShareStyleWithElement):
          (khtml::CSSStyleSelector::styleForElement):
          (khtml::CSSStyleSelector::checkOneSelector):
          * khtml/editing/htmlediting.cpp:
          (khtml::isSpecialElement):
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageElementImpl::parseHTMLAttribute):
          * khtml/html/html_inlineimpl.cpp:
          (DOM::HTMLAnchorElementImpl::isFocusable):
          (DOM::HTMLAnchorElementImpl::defaultEventHandler):
          (DOM::HTMLAnchorElementImpl::parseHTMLAttribute):
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::layoutVerticalBox):
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::hitTest):
          * khtml/rendering/render_object.cpp:
          (RenderObject::information):
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::NodeImpl):
          * khtml/xml/dom_nodeimpl.h:
          (DOM::NodeImpl::isLink):
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject anchorElement]):
          (-[KWQAccObject addChildrenToArray:]):
          (-[KWQAccObject role]):
          (-[KWQAccObject title]):
          (-[KWQAccObject accessibilityIsIgnored]):
          (-[KWQAccObject accessibilityAttributeNames]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::khtmlMouseMoveEvent):
  
  2005-05-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- remove init hint argument from VisiblePosition 
  
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::VisiblePosition):
          (khtml::VisiblePosition::init):
          * khtml/editing/visible_position.h:
          * khtml/editing/visible_units.cpp:
          (khtml::previousBoundary):
          (khtml::nextBoundary):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::updateSelection):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::styleForSelectionStart):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setSelectedDOMRange:affinity:closeTyping:]):
  
  2005-05-10  Darin Adler  <darin at apple.com>
  
          Reviewed by David Harrison.
  
          - next pass of moving code from C++ DOM wrappers into the DOM impl. classes
            (this step adds more member functions missing from the DOM impl. and
             changes some of the Objective-C DOM to call the new ones; also changes some
             parameter types in the DOM impl.)
  
          * khtml/dom/dom2_events.cpp:
          (UIEvent::initUIEvent):
          (MouseEvent::initMouseEvent):
          (MutationEvent::initMutationEvent):
          (KeyboardEvent::initKeyboardEvent):
          * khtml/dom/dom_doc.cpp:
          (DOM::DOMImplementation::createDocument):
          (DOM::Document::getElementsByTagName):
          (DOM::Document::getElementsByTagNameNS):
          * khtml/dom/dom_element.cpp:
          (Element::removeAttributeNode):
          (Element::getElementsByTagName):
          (Element::getElementsByTagNameNS):
          (Element::setAttributeNodeNS):
          * khtml/dom/dom_node.cpp:
          (NamedNodeMap::setNamedItemNS):
          (NamedNodeMap::removeNamedItemNS):
          * khtml/ecma/kjs_binding.cpp:
          * khtml/ecma/kjs_events.cpp:
          (ClipboardProtoFunc::tryCall):
          * khtml/editing/jsediting.cpp:
          * khtml/khtml_part.cpp:
          (KHTMLPart::applyEditingStyleToBodyElement):
          (KHTMLPart::removeEditingStyleFromBodyElement):
          * khtml/khtmlview.cpp:
          (KHTMLView::viewportMousePressEvent):
          (KHTMLView::viewportMouseDoubleClickEvent):
          (KHTMLView::viewportMouseMoveEvent):
          (KHTMLView::viewportMouseReleaseEvent):
          (KHTMLView::updateDragAndDrop):
          (KHTMLView::dispatchMouseEvent):
          * khtml/misc/shared.h:
          (khtml::SharedPtr::reset):
          (khtml::::operator):
          (khtml::static_pointer_cast):
          (khtml::const_pointer_cast):
          * khtml/xml/dom2_eventsimpl.cpp:
          (UIEventImpl::initUIEvent):
          (UIEventImpl::keyCode):
          (UIEventImpl::charCode):
          (UIEventImpl::layerX):
          (UIEventImpl::layerY):
          (UIEventImpl::pageX):
          (UIEventImpl::pageY):
          (UIEventImpl::which):
          (MouseRelatedEventImpl::pageX):
          (MouseRelatedEventImpl::pageY):
          (MouseEventImpl::initMouseEvent):
          (MouseEventImpl::which):
          (KeyboardEventImpl::initKeyboardEvent):
          (KeyboardEventImpl::which):
          (MutationEventImpl::MutationEventImpl):
          (MutationEventImpl::initMutationEvent):
          * khtml/xml/dom2_eventsimpl.h:
          (DOM::MutationEventImpl::relatedNode):
          * khtml/xml/dom2_rangeimpl.h:
          * khtml/xml/dom2_traversalimpl.cpp:
          (DOM::NodeFilterImpl::acceptNode):
          * khtml/xml/dom2_traversalimpl.h:
          * khtml/xml/dom_docimpl.cpp:
          (DOMImplementationImpl::createDocument):
          (DOMImplementationImpl::createCSSStyleSheet):
          (DOMImplementationImpl::createHTMLDocument):
          (DocumentImpl::createAttribute):
          (DocumentImpl::createHTMLElement):
          (DocumentImpl::getOverrideStyle):
          (DocumentImpl::defaultEventHandler):
          (DocumentImpl::completeURL):
          (DocumentImpl::topDocument):
          (DocumentImpl::createAttributeNS):
          (DocumentImpl::images):
          (DocumentImpl::applets):
          (DocumentImpl::embeds):
          (DocumentImpl::objects):
          (DocumentImpl::links):
          (DocumentImpl::forms):
          (DocumentImpl::anchors):
          (DocumentImpl::all):
          (DocumentImpl::nameableItems):
          (DocumentImpl::getElementsByName):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::realDocType):
          (DOM::DocumentImpl::createAttribute):
          * khtml/xml/dom_elementimpl.cpp:
          (AttrImpl::nodeName):
          (AttrImpl::nodeValue):
          (AttrImpl::name):
          (AttrImpl::value):
          (ElementImpl::attributes):
          (ElementImpl::isURLAttribute):
          (ElementImpl::setAttributeNode):
          (ElementImpl::removeAttributeNode):
          (ElementImpl::setAttributeNS):
          (ElementImpl::removeAttributeNS):
          (ElementImpl::getAttributeNodeNS):
          (ElementImpl::hasAttributeNS):
          (ElementImpl::style):
          (XMLElementImpl::cloneNode):
          (NamedAttrMapImpl::setNamedItem):
          (NamedAttrMapImpl::removeNamedItem):
          * khtml/xml/dom_elementimpl.h:
          (DOM::ElementImpl::hasAttribute):
          (DOM::ElementImpl::getAttribute):
          (DOM::ElementImpl::setAttribute):
          (DOM::ElementImpl::removeAttribute):
          (DOM::ElementImpl::getAttributeNode):
          (DOM::ElementImpl::setAttributeNodeNS):
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::handleLocalEvents):
          (NodeImpl::isAncestor):
          (NodeImpl::addEventListener):
          (NodeImpl::removeEventListener):
          (NodeImpl::getElementsByTagNameNS):
          (NodeImpl::isSupported):
          (NodeImpl::ownerDocument):
          (NodeImpl::hasAttributes):
          (NodeImpl::attributes):
          (ContainerNodeImpl::removeChildren):
          (NamedNodeMapImpl::~NamedNodeMapImpl):
          (NamedNodeMapImpl::getNamedItemNS):
          (NamedNodeMapImpl::removeNamedItemNS):
          * khtml/xml/dom_nodeimpl.h:
          (DOM::NodeImpl::getElementsByTagName):
          (DOM::NamedNodeMapImpl::NamedNodeMapImpl):
          (DOM::NamedNodeMapImpl::getNamedItem):
          (DOM::NamedNodeMapImpl::removeNamedItem):
          (DOM::NamedNodeMapImpl::setNamedItemNS):
          (DOM::NamedNodeMapImpl::isReadOnly):
          * khtml/xml/dom_textimpl.h:
          * khtml/xml/dom_xmlimpl.h:
          * kwq/DOM.mm:
          (-[DOMNode isSupported::]):
          (-[DOMNode namespaceURI]):
          (-[DOMNode hasAttributes]):
          (-[DOMNamedNodeMap getNamedItem:]):
          (-[DOMNamedNodeMap setNamedItem:]):
          (-[DOMNamedNodeMap removeNamedItem:]):
          (-[DOMNamedNodeMap getNamedItemNS::]):
          (-[DOMNamedNodeMap setNamedItemNS:]):
          (-[DOMNamedNodeMap removeNamedItemNS::]):
          (-[DOMImplementation createDocument:::]):
          (-[DOMImplementation createCSSStyleSheet::]):
          (-[DOMDocument createAttribute:]):
          (-[DOMDocument getElementsByTagName:]):
          (-[DOMDocument createAttributeNS::]):
          (-[DOMDocument getElementsByTagNameNS::]):
          (-[DOMElement setAttribute::]):
          (-[DOMElement removeAttribute:]):
          (-[DOMElement getAttributeNode:]):
          (-[DOMElement setAttributeNode:]):
          (-[DOMElement removeAttributeNode:]):
          (-[DOMElement getElementsByTagName:]):
          (-[DOMElement getAttributeNS::]):
          (-[DOMElement setAttributeNS:::]):
          (-[DOMElement removeAttributeNS::]):
          (-[DOMElement getAttributeNodeNS::]):
          (-[DOMElement setAttributeNodeNS:]):
          (-[DOMElement getElementsByTagNameNS::]):
          (-[DOMElement hasAttribute:]):
          (-[DOMElement hasAttributeNS::]):
          (-[DOMElement style]):
          (-[DOMDocumentType _documentTypeImpl]):
          (ObjCNodeFilterCondition::acceptNode):
          * kwq/DOMEvents.mm:
          (-[DOMMutationEvent relatedNode]):
          * kwq/KWQClipboard.h:
          * kwq/KWQClipboard.mm:
          (KWQClipboard::KWQClipboard):
          (KWQClipboard::setDragImage):
          (KWQClipboard::dragImageElement):
          (KWQClipboard::setDragImageElement):
          (KWQClipboard::dragNSImage):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::khtmlMouseMoveEvent):
          (KWQKHTMLPart::passSubframeEventToSubframe):
          (KWQKHTMLPart::sendContextMenuEvent):
  
  2005-05-10  Darin Adler  <darin at apple.com>
  
          Reviewed by David Harrison.
  
          - first pass of moving code from C++ DOM wrappers into the DOM impl. classes
            (this step mostly adds member functions missing from the DOM impl.; later steps
             will change the C++, JavaScript, and ObjC wrappers to call these functions)
  
          * khtml/css/parser.y:
          * khtml/css/css_ruleimpl.cpp:
          (CSSRuleListImpl::CSSRuleListImpl):
          * khtml/css/css_ruleimpl.h:
          (DOM::CSSRuleListImpl::CSSRuleListImpl):
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::aLink):
          (HTMLBodyElementImpl::setALink):
          (HTMLBodyElementImpl::background):
          (HTMLBodyElementImpl::setBackground):
          (HTMLBodyElementImpl::bgColor):
          (HTMLBodyElementImpl::setBgColor):
          (HTMLBodyElementImpl::link):
          (HTMLBodyElementImpl::setLink):
          (HTMLBodyElementImpl::text):
          (HTMLBodyElementImpl::setText):
          (HTMLBodyElementImpl::vLink):
          (HTMLBodyElementImpl::setVLink):
          (HTMLFrameElementImpl::HTMLFrameElementImpl):
          (HTMLFrameElementImpl::updateForNewURL):
          (HTMLFrameElementImpl::openURL):
          (HTMLFrameElementImpl::parseHTMLAttribute):
          (HTMLFrameElementImpl::rendererIsNeeded):
          (HTMLFrameElementImpl::attach):
          (HTMLFrameElementImpl::detach):
          (HTMLFrameElementImpl::setLocation):
          (HTMLFrameElementImpl::contentPart):
          (HTMLFrameElementImpl::frameBorder):
          (HTMLFrameElementImpl::setFrameBorder):
          (HTMLFrameElementImpl::longDesc):
          (HTMLFrameElementImpl::setLongDesc):
          (HTMLFrameElementImpl::marginHeight):
          (HTMLFrameElementImpl::setMarginHeight):
          (HTMLFrameElementImpl::marginWidth):
          (HTMLFrameElementImpl::setMarginWidth):
          (HTMLFrameElementImpl::name):
          (HTMLFrameElementImpl::setName):
          (HTMLFrameElementImpl::setNoResize):
          (HTMLFrameElementImpl::scrolling):
          (HTMLFrameElementImpl::setScrolling):
          (HTMLFrameElementImpl::src):
          (HTMLFrameElementImpl::setSrc):
          (HTMLFrameSetElementImpl::parseHTMLAttribute):
          (HTMLFrameSetElementImpl::cols):
          (HTMLFrameSetElementImpl::setCols):
          (HTMLFrameSetElementImpl::rows):
          (HTMLFrameSetElementImpl::setRows):
          (HTMLHeadElementImpl::profile):
          (HTMLHeadElementImpl::setProfile):
          (HTMLHtmlElementImpl::version):
          (HTMLHtmlElementImpl::setVersion):
          (HTMLIFrameElementImpl::HTMLIFrameElementImpl):
          (HTMLIFrameElementImpl::rendererIsNeeded):
          (HTMLIFrameElementImpl::attach):
          (HTMLIFrameElementImpl::isURLAttribute):
          (HTMLIFrameElementImpl::align):
          (HTMLIFrameElementImpl::setAlign):
          (HTMLIFrameElementImpl::height):
          (HTMLIFrameElementImpl::setHeight):
          (HTMLIFrameElementImpl::src):
          (HTMLIFrameElementImpl::width):
          (HTMLIFrameElementImpl::setWidth):
          * khtml/html/html_baseimpl.h:
          (DOM::HTMLFrameElementImpl::noResize):
          (DOM::HTMLFrameElementImpl::scrollingMode):
          (DOM::HTMLFrameElementImpl::getMarginWidth):
          (DOM::HTMLFrameElementImpl::getMarginHeight):
          * khtml/html/html_blockimpl.cpp:
          (HTMLBlockquoteElementImpl::cite):
          (HTMLBlockquoteElementImpl::setCite):
          (HTMLDivElementImpl::align):
          (HTMLDivElementImpl::setAlign):
          (HTMLHRElementImpl::align):
          (HTMLHRElementImpl::setAlign):
          (HTMLHRElementImpl::noShade):
          (HTMLHRElementImpl::setNoShade):
          (HTMLHRElementImpl::size):
          (HTMLHRElementImpl::setSize):
          (HTMLHRElementImpl::width):
          (HTMLHRElementImpl::setWidth):
          (HTMLHeadingElementImpl::align):
          (HTMLHeadingElementImpl::setAlign):
          (HTMLParagraphElementImpl::align):
          (HTMLParagraphElementImpl::setAlign):
          (HTMLPreElementImpl::width):
          (HTMLPreElementImpl::setWidth):
          * khtml/html/html_blockimpl.h:
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageElementImpl::name):
          (HTMLImageElementImpl::setName):
          (HTMLImageElementImpl::align):
          (HTMLImageElementImpl::setAlign):
          (HTMLImageElementImpl::alt):
          (HTMLImageElementImpl::setAlt):
          (HTMLImageElementImpl::border):
          (HTMLImageElementImpl::setBorder):
          (HTMLImageElementImpl::setHeight):
          (HTMLImageElementImpl::hspace):
          (HTMLImageElementImpl::setHspace):
          (HTMLImageElementImpl::isMap):
          (HTMLImageElementImpl::setIsMap):
          (HTMLImageElementImpl::longDesc):
          (HTMLImageElementImpl::setLongDesc):
          (HTMLImageElementImpl::src):
          (HTMLImageElementImpl::setSrc):
          (HTMLImageElementImpl::useMap):
          (HTMLImageElementImpl::setUseMap):
          (HTMLImageElementImpl::vspace):
          (HTMLImageElementImpl::setVspace):
          (HTMLImageElementImpl::setWidth):
          (HTMLImageElementImpl::x):
          (HTMLImageElementImpl::y):
          (HTMLMapElementImpl::parseHTMLAttribute):
          (HTMLMapElementImpl::areas):
          (HTMLMapElementImpl::name):
          (HTMLMapElementImpl::setName):
          (HTMLAreaElementImpl::HTMLAreaElementImpl):
          (HTMLAreaElementImpl::parseHTMLAttribute):
          (HTMLAreaElementImpl::getRegion):
          (HTMLAreaElementImpl::accessKey):
          (HTMLAreaElementImpl::setAccessKey):
          (HTMLAreaElementImpl::alt):
          (HTMLAreaElementImpl::setAlt):
          (HTMLAreaElementImpl::coords):
          (HTMLAreaElementImpl::setCoords):
          (HTMLAreaElementImpl::href):
          (HTMLAreaElementImpl::setHref):
          (HTMLAreaElementImpl::noHref):
          (HTMLAreaElementImpl::setNoHref):
          (HTMLAreaElementImpl::shape):
          (HTMLAreaElementImpl::setShape):
          (HTMLAreaElementImpl::tabIndex):
          (HTMLAreaElementImpl::setTabIndex):
          (HTMLAreaElementImpl::target):
          (HTMLAreaElementImpl::setTarget):
          * khtml/html/html_imageimpl.h:
          (DOM::HTMLImageElementImpl::pixmap):
          (DOM::HTMLAreaElementImpl::isDefault):
          (DOM::HTMLMapElementImpl::getName):
          * khtml/html/html_inlineimpl.cpp:
          (DOM::HTMLAnchorElementImpl::accessKey):
          (DOM::HTMLAnchorElementImpl::setAccessKey):
          (DOM::HTMLAnchorElementImpl::charset):
          (DOM::HTMLAnchorElementImpl::setCharset):
          (DOM::HTMLAnchorElementImpl::coords):
          (DOM::HTMLAnchorElementImpl::setCoords):
          (DOM::HTMLAnchorElementImpl::href):
          (DOM::HTMLAnchorElementImpl::setHref):
          (DOM::HTMLAnchorElementImpl::hreflang):
          (DOM::HTMLAnchorElementImpl::setHreflang):
          (DOM::HTMLAnchorElementImpl::name):
          (DOM::HTMLAnchorElementImpl::setName):
          (DOM::HTMLAnchorElementImpl::rel):
          (DOM::HTMLAnchorElementImpl::setRel):
          (DOM::HTMLAnchorElementImpl::rev):
          (DOM::HTMLAnchorElementImpl::setRev):
          (DOM::HTMLAnchorElementImpl::shape):
          (DOM::HTMLAnchorElementImpl::setShape):
          (DOM::HTMLAnchorElementImpl::tabIndex):
          (DOM::HTMLAnchorElementImpl::setTabIndex):
          (DOM::HTMLAnchorElementImpl::target):
          (DOM::HTMLAnchorElementImpl::setTarget):
          (DOM::HTMLAnchorElementImpl::type):
          (DOM::HTMLAnchorElementImpl::setType):
          (DOM::HTMLAnchorElementImpl::blur):
          (DOM::HTMLAnchorElementImpl::focus):
          (DOM::HTMLBRElementImpl::clear):
          (DOM::HTMLBRElementImpl::setClear):
          (DOM::HTMLFontElementImpl::parseHTMLAttribute):
          (DOM::HTMLFontElementImpl::color):
          (DOM::HTMLFontElementImpl::setColor):
          (DOM::HTMLFontElementImpl::face):
          (DOM::HTMLFontElementImpl::setFace):
          (DOM::HTMLFontElementImpl::size):
          (DOM::HTMLFontElementImpl::setSize):
          (DOM::HTMLModElementImpl::HTMLModElementImpl):
          (DOM::HTMLModElementImpl::cite):
          (DOM::HTMLModElementImpl::setCite):
          (DOM::HTMLModElementImpl::dateTime):
          (DOM::HTMLModElementImpl::setDateTime):
          (DOM::HTMLQuoteElementImpl::HTMLQuoteElementImpl):
          (DOM::HTMLQuoteElementImpl::id):
          (DOM::HTMLQuoteElementImpl::cite):
          (DOM::HTMLQuoteElementImpl::setCite):
          * khtml/html/html_inlineimpl.h:
          * khtml/html/html_listimpl.cpp:
          (DOM::HTMLUListElementImpl::compact):
          (DOM::HTMLUListElementImpl::setCompact):
          (DOM::HTMLUListElementImpl::type):
          (DOM::HTMLUListElementImpl::setType):
          (DOM::HTMLDirectoryElementImpl::compact):
          (DOM::HTMLDirectoryElementImpl::setCompact):
          (DOM::HTMLMenuElementImpl::compact):
          (DOM::HTMLMenuElementImpl::setCompact):
          (DOM::HTMLOListElementImpl::compact):
          (DOM::HTMLOListElementImpl::setCompact):
          (DOM::HTMLOListElementImpl::setStart):
          (DOM::HTMLOListElementImpl::type):
          (DOM::HTMLOListElementImpl::setType):
          (DOM::HTMLLIElementImpl::type):
          (DOM::HTMLLIElementImpl::setType):
          (DOM::HTMLLIElementImpl::value):
          (DOM::HTMLLIElementImpl::setValue):
          (DOM::HTMLDListElementImpl::compact):
          (DOM::HTMLDListElementImpl::setCompact):
          * khtml/html/html_listimpl.h:
          (DOM::HTMLUListElementImpl::start):
          (DOM::HTMLDirectoryElementImpl::HTMLDirectoryElementImpl):
          (DOM::HTMLMenuElementImpl::HTMLMenuElementImpl):
          (DOM::HTMLOListElementImpl::HTMLOListElementImpl):
          (DOM::HTMLOListElementImpl::start):
          * khtml/html/html_objectimpl.cpp:
          (DOM::HTMLAppletElementImpl::align):
          (DOM::HTMLAppletElementImpl::setAlign):
          (DOM::HTMLAppletElementImpl::alt):
          (DOM::HTMLAppletElementImpl::setAlt):
          (DOM::HTMLAppletElementImpl::archive):
          (DOM::HTMLAppletElementImpl::setArchive):
          (DOM::HTMLAppletElementImpl::code):
          (DOM::HTMLAppletElementImpl::setCode):
          (DOM::HTMLAppletElementImpl::codeBase):
          (DOM::HTMLAppletElementImpl::setCodeBase):
          (DOM::HTMLAppletElementImpl::height):
          (DOM::HTMLAppletElementImpl::setHeight):
          (DOM::HTMLAppletElementImpl::hspace):
          (DOM::HTMLAppletElementImpl::setHspace):
          (DOM::HTMLAppletElementImpl::name):
          (DOM::HTMLAppletElementImpl::setName):
          (DOM::HTMLAppletElementImpl::object):
          (DOM::HTMLAppletElementImpl::setObject):
          (DOM::HTMLAppletElementImpl::vspace):
          (DOM::HTMLAppletElementImpl::setVspace):
          (DOM::HTMLAppletElementImpl::width):
          (DOM::HTMLAppletElementImpl::setWidth):
          (DOM::HTMLObjectElementImpl::code):
          (DOM::HTMLObjectElementImpl::setCode):
          (DOM::HTMLObjectElementImpl::align):
          (DOM::HTMLObjectElementImpl::setAlign):
          (DOM::HTMLObjectElementImpl::archive):
          (DOM::HTMLObjectElementImpl::setArchive):
          (DOM::HTMLObjectElementImpl::border):
          (DOM::HTMLObjectElementImpl::setBorder):
          (DOM::HTMLObjectElementImpl::codeBase):
          (DOM::HTMLObjectElementImpl::setCodeBase):
          (DOM::HTMLObjectElementImpl::codeType):
          (DOM::HTMLObjectElementImpl::setCodeType):
          (DOM::HTMLObjectElementImpl::data):
          (DOM::HTMLObjectElementImpl::setData):
          (DOM::HTMLObjectElementImpl::declare):
          (DOM::HTMLObjectElementImpl::setDeclare):
          (DOM::HTMLObjectElementImpl::height):
          (DOM::HTMLObjectElementImpl::setHeight):
          (DOM::HTMLObjectElementImpl::hspace):
          (DOM::HTMLObjectElementImpl::setHspace):
          (DOM::HTMLObjectElementImpl::name):
          (DOM::HTMLObjectElementImpl::setName):
          (DOM::HTMLObjectElementImpl::standby):
          (DOM::HTMLObjectElementImpl::setStandby):
          (DOM::HTMLObjectElementImpl::tabIndex):
          (DOM::HTMLObjectElementImpl::setTabIndex):
          (DOM::HTMLObjectElementImpl::type):
          (DOM::HTMLObjectElementImpl::setType):
          (DOM::HTMLObjectElementImpl::useMap):
          (DOM::HTMLObjectElementImpl::setUseMap):
          (DOM::HTMLObjectElementImpl::vspace):
          (DOM::HTMLObjectElementImpl::setVspace):
          (DOM::HTMLObjectElementImpl::width):
          (DOM::HTMLObjectElementImpl::setWidth):
          (DOM::HTMLParamElementImpl::isURLAttribute):
          (DOM::HTMLParamElementImpl::setName):
          (DOM::HTMLParamElementImpl::type):
          (DOM::HTMLParamElementImpl::setType):
          (DOM::HTMLParamElementImpl::setValue):
          (DOM::HTMLParamElementImpl::valueType):
          (DOM::HTMLParamElementImpl::setValueType):
          * khtml/html/html_objectimpl.h:
          (DOM::HTMLParamElementImpl::name):
          (DOM::HTMLParamElementImpl::value):
          * khtml/html/html_tableimpl.cpp:
          (DOM::HTMLTableElementImpl::rows):
          (DOM::HTMLTableElementImpl::tBodies):
          (DOM::HTMLTableElementImpl::align):
          (DOM::HTMLTableElementImpl::setAlign):
          (DOM::HTMLTableElementImpl::bgColor):
          (DOM::HTMLTableElementImpl::setBgColor):
          (DOM::HTMLTableElementImpl::border):
          (DOM::HTMLTableElementImpl::setBorder):
          (DOM::HTMLTableElementImpl::cellPadding):
          (DOM::HTMLTableElementImpl::setCellPadding):
          (DOM::HTMLTableElementImpl::cellSpacing):
          (DOM::HTMLTableElementImpl::setCellSpacing):
          (DOM::HTMLTableElementImpl::frame):
          (DOM::HTMLTableElementImpl::setFrame):
          (DOM::HTMLTableElementImpl::rules):
          (DOM::HTMLTableElementImpl::setRules):
          (DOM::HTMLTableElementImpl::summary):
          (DOM::HTMLTableElementImpl::setSummary):
          (DOM::HTMLTableElementImpl::width):
          (DOM::HTMLTableElementImpl::setWidth):
          (DOM::HTMLTableSectionElementImpl::align):
          (DOM::HTMLTableSectionElementImpl::setAlign):
          (DOM::HTMLTableSectionElementImpl::ch):
          (DOM::HTMLTableSectionElementImpl::setCh):
          (DOM::HTMLTableSectionElementImpl::chOff):
          (DOM::HTMLTableSectionElementImpl::setChOff):
          (DOM::HTMLTableSectionElementImpl::vAlign):
          (DOM::HTMLTableSectionElementImpl::setVAlign):
          (DOM::HTMLTableSectionElementImpl::rows):
          (DOM::HTMLTableRowElementImpl::cells):
          (DOM::HTMLTableRowElementImpl::setCells):
          (DOM::HTMLTableRowElementImpl::align):
          (DOM::HTMLTableRowElementImpl::setAlign):
          (DOM::HTMLTableRowElementImpl::bgColor):
          (DOM::HTMLTableRowElementImpl::setBgColor):
          (DOM::HTMLTableRowElementImpl::ch):
          (DOM::HTMLTableRowElementImpl::setCh):
          (DOM::HTMLTableRowElementImpl::chOff):
          (DOM::HTMLTableRowElementImpl::setChOff):
          (DOM::HTMLTableRowElementImpl::vAlign):
          (DOM::HTMLTableRowElementImpl::setVAlign):
          (DOM::HTMLTableCellElementImpl::abbr):
          (DOM::HTMLTableCellElementImpl::setAbbr):
          (DOM::HTMLTableCellElementImpl::align):
          (DOM::HTMLTableCellElementImpl::setAlign):
          (DOM::HTMLTableCellElementImpl::axis):
          (DOM::HTMLTableCellElementImpl::setAxis):
          (DOM::HTMLTableCellElementImpl::bgColor):
          (DOM::HTMLTableCellElementImpl::setBgColor):
          (DOM::HTMLTableCellElementImpl::ch):
          (DOM::HTMLTableCellElementImpl::setCh):
          (DOM::HTMLTableCellElementImpl::chOff):
          (DOM::HTMLTableCellElementImpl::setChOff):
          (DOM::HTMLTableCellElementImpl::setColSpan):
          (DOM::HTMLTableCellElementImpl::headers):
          (DOM::HTMLTableCellElementImpl::setHeaders):
          (DOM::HTMLTableCellElementImpl::height):
          (DOM::HTMLTableCellElementImpl::setHeight):
          (DOM::HTMLTableCellElementImpl::noWrap):
          (DOM::HTMLTableCellElementImpl::setNoWrap):
          (DOM::HTMLTableCellElementImpl::setRowSpan):
          (DOM::HTMLTableCellElementImpl::scope):
          (DOM::HTMLTableCellElementImpl::setScope):
          (DOM::HTMLTableCellElementImpl::vAlign):
          (DOM::HTMLTableCellElementImpl::setVAlign):
          (DOM::HTMLTableCellElementImpl::width):
          (DOM::HTMLTableCellElementImpl::setWidth):
          (DOM::HTMLTableColElementImpl::align):
          (DOM::HTMLTableColElementImpl::setAlign):
          (DOM::HTMLTableColElementImpl::ch):
          (DOM::HTMLTableColElementImpl::setCh):
          (DOM::HTMLTableColElementImpl::chOff):
          (DOM::HTMLTableColElementImpl::setChOff):
          (DOM::HTMLTableColElementImpl::setSpan):
          (DOM::HTMLTableColElementImpl::vAlign):
          (DOM::HTMLTableColElementImpl::setVAlign):
          (DOM::HTMLTableColElementImpl::width):
          (DOM::HTMLTableColElementImpl::setWidth):
          (DOM::HTMLTableCaptionElementImpl::parseHTMLAttribute):
          (DOM::HTMLTableCaptionElementImpl::align):
          (DOM::HTMLTableCaptionElementImpl::setAlign):
          * khtml/html/html_tableimpl.h:
          (DOM::HTMLTableColElementImpl::span):
          * khtml/rendering/render_applet.cpp:
          (RenderApplet::createWidgetIfNecessary):
          * khtml/rendering/render_frames.cpp:
          (RenderFrame::slotViewCleared):
          (RenderPartObject::updateWidget):
          (RenderPartObject::slotViewCleared):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::completeURL):
          * khtml/xml/dom_docimpl.h:
  
  2005-05-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	- remove more isFirst/isLast functions and use isStart/isEnd verions instead
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData):
          (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion):
          (khtml::InsertTextCommand::input):
          (khtml::ReplaceSelectionCommand::doApply):
          (khtml::ReplaceSelectionCommand::removeLinePlaceholderIfNeeded):
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::previous):
          (khtml::setAffinityUsingLinePosition):
          (khtml::isFirstVisiblePositionInNode):
          * khtml/editing/visible_position.h:
          * khtml/editing/visible_units.cpp:
          (khtml::endOfLine):
          (khtml::previousLinePosition):
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousCharacterPosition):
          (DOM::Position::nextCharacterPosition):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge smartInsertForString:replacingRange:beforeString:afterString:]):
  
  2005-05-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	- remove isFirstVisiblePositionInBlock and isLastVisiblePositionInBlock, in favor of isStartOfBlock and isEndOfBlock
  
  	It turned out that both isEndOfBlock and isLastVisiblePositionInBlock had (different) bugs,
  	and there was code relying on the bugs of each. So in addition I fixed isEndOfBlock and fixed 
  	the parts of the code relying on buggy behavior.
  
  	I also removed the includeEndOfLine parameter to endOfBlock since no one used it and it's not
  	clear if it would ever be useful.
  	
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertLineBreakCommand::doApply): Use new calls.
          (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): Don't gratuitously make
  	an UPSTREAM VisiblePosition, as this will cause trouble comparing it to end of block.
          (khtml::InsertParagraphSeparatorCommand::doApply): Use new calls.
          (khtml::ReplaceSelectionCommand::doApply): Use new calls. Also, don't make a position <BR,0> and test
  	if it is the end of a block, that can never be true, although the buggy code in 
  	isLastVisiblePositionInBlock would say it is. Make <BR,1> instead.
          * khtml/editing/markup.cpp:
          (khtml::createMarkup): Instead of checking isEndOfBlock on the start position, check if the start's
  	next is in a different block, to avoid relying on the buggy old isEndOfBlock behavior.
          * khtml/editing/visible_position.cpp:
          (khtml::isFirstVisiblePositionInParagraph): Use isStartOfBlock.
          (khtml::isLastVisiblePositionInParagraph): Use isEndOfBlock.
          * khtml/editing/visible_position.h:
          * khtml/editing/visible_units.cpp:
          (khtml::endOfBlock): Greatly simplify, and no longer consider the start of a descendant
  	block to be the end of the block. That's inconsistent with how startOfBlock works. Also
  	remove include end of line parameter.
          (khtml::isEndOfBlock): Don't pass unneeded parameter.
          * khtml/editing/visible_units.h:
  
  2005-05-09  Adele Peterson  <adele at apple.com>
  
          fix for <rdar://problem/4110775> Crash will occur when double-clicking outerHTML link on W3 DOM test
  
          Reviewed by Darin.
  
          * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::setOuterHTML): added nil check.  
          This was causing a crash when you tried to set the outerHTML on an element that was no longer in the DOM tree.
  
          * layout-tests/fast/dom/outerText-no-element.html: Added. Tests case where you try to set outerText on an element no longer in the DOM tree.
          * layout-tests/fast/dom/outerText-no-element-expected.txt: Added.
          * layout-tests/fast/dynamic/outerHTML-doc.html: Added.  Tests case where someone tries to set outerHTML on the document.
          * layout-tests/fast/dynamic/outerHTML-doc-expected.txt: Added..
          * layout-tests/fast/dynamic/outerHTML-no-element.html: Added. Tests case where you try to set outerHTML on an element no longer in the DOM tree.
          * layout-tests/fast/dynamic/outerHTML-no-element-expected.txt: Added.
          * layout-tests/fast/dynamic/outerHTML-img.html: moved images to resources directory
          * layout-tests/fast/dynamic/resources/apple.gif: Added.
          * layout-tests/fast/dynamic/resources/mozilla.gif: Added.
  
  2005-05-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	- remove code for DoNotStayInBlock variant of upstream/downstream and make
  	the methods take no parameters
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::deleteInsignificantTextDownstream):
          (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
          (khtml::ApplyStyleCommand::applyRelativeFontStyleChange):
          (khtml::ApplyStyleCommand::applyInlineStyle):
          (khtml::ApplyStyleCommand::removeInlineStyle):
          (khtml::ApplyStyleCommand::nodeFullySelected):
          (khtml::ApplyStyleCommand::nodeFullyUnselected):
          (khtml::DeleteSelectionCommand::initializePositionData):
          (khtml::DeleteSelectionCommand::fixupWhitespace):
          (khtml::InsertLineBreakCommand::insertNodeAfterPosition):
          (khtml::InsertLineBreakCommand::insertNodeBeforePosition):
          (khtml::InsertLineBreakCommand::doApply):
          (khtml::InsertParagraphSeparatorCommand::doApply):
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
          (khtml::InsertTextCommand::prepareForTextInsertion):
          (khtml::InsertTextCommand::input):
          (khtml::InsertTextCommand::insertSpace):
          (khtml::ReplaceSelectionCommand::doApply):
          * khtml/editing/selection.cpp:
          (khtml::Selection::toRange):
          (khtml::Selection::validate):
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::previousVisiblePosition):
          (khtml::VisiblePosition::nextVisiblePosition):
          (khtml::VisiblePosition::downstreamDeepEquivalent):
          (khtml::isFirstVisiblePositionInParagraph):
          (khtml::isFirstVisiblePositionInBlock):
          (khtml::isLastVisiblePositionInParagraph):
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::editingStartPosition):
          * khtml/xml/dom_position.cpp:
          (DOM::isStreamer):
          (DOM::Position::upstream):
          (DOM::Position::downstream):
          (DOM::Position::leadingWhitespacePosition):
          (DOM::Position::trailingWhitespacePosition):
          * khtml/xml/dom_position.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge smartDeleteRangeForProposedRange:]):
  
  2005-05-08  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave Harrison.
  
  	- remove remaining uses of upstream/downstream DoNotStayInBlock
  	
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
          (khtml::ApplyStyleCommand::nodeFullySelected):
          (khtml::ApplyStyleCommand::nodeFullyUnselected):
          (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
          (khtml::InsertParagraphSeparatorCommand::doApply):
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
          (khtml::InsertTextCommand::insertSpace):
          (khtml::ReplaceSelectionCommand::doApply):
  	
          * khtml/editing/visible_position.cpp:
          (khtml::enclosingBlockFlowElement): New helper function.
  	* khtml/editing/visible_position.h:
  
          * khtml/editing/visible_units.cpp:
          (khtml::inSameBlock): Check enclosing block flows instead of comparing
  	visible block starts. Two nested blocks may have the same visible start but
  	different visible ends, so the old check would give false positives.
  
  2005-05-09  David Harrison  <harrison at apple.com>
  
          Add layout test for <rdar://problem/4110366>.
  
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-011.html: Added.
  
  2005-05-09  Darin Adler  <darin at apple.com>
  
          - checked in a result for the Flash replacement test that Dave added
  
          * layout-tests/fast/dynamic/flash-replacement-test-expected.txt: Added.
          Hope it's right! If not, Dave can update it.
  
  2005-05-09  Darin Adler  <darin at apple.com>
  
          * Makefile.am: Don't set up PBXIntermediatesDirectory explicitly;
          Not needed to make builds work, spews undesirable error messages too.
  
          * WebCore.pbproj/project.pbxproj: Remove unneeded $(DSTROOT) in framework paths.
  
  2005-05-07  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	- remove some of the uses of upstream/downstream DoNotStayInBlock
  	
          * khtml/editing/markup.cpp:
  	(khtml::createMarkup): Instead of using upstream to decide if a	line break should be 
  	added at the end, use inSameParagraph.
          * khtml/editing/selection.cpp:
          (khtml::Selection::debugPosition): Remove the code to print upstream and downstream,
  	the selection endpoints themselves are adequate for debugging and are what we use for
  	layout tests.
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::editingStartPosition): Skip a possible paragraph break at the start
  	of the selection in a more explicit way to avoid DoNotStayInBlock.
  
  2005-05-07  David Harrison  <harrison at apple.com>
  
          Reviewed by John.
  
          <rdar://problem/4110366> Deleting text at the end of email moves insertion point to the top of the document
          
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::handleGeneralDelete):
          Update m_upstreamStart when deleting m_downstreamEnd.node() if the former is no longer in the document.
          Better to update here than trying to recover later in calculateEndingPosition().
  
  2005-05-07  David Harrison  <harrison at apple.com>
          
          Remove workaround for <rdar://problem/4103339>.
          
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData):
  
  2005-05-06  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave Harrison.
  
  	- make StayInBlock vs DoNotStayInBlock explicit in all calls to
  	upstream/downstream, in preparation for phasing out the
  	DoNotStayInBlock variant.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::nodeFullySelected):
          (khtml::ApplyStyleCommand::nodeFullyUnselected):
          (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
          (khtml::InsertTextCommand::insertSpace):
          (khtml::ReplaceSelectionCommand::doApply):
          * khtml/editing/markup.cpp:
          (khtml::createMarkup):
          * khtml/editing/selection.cpp:
          (khtml::Selection::debugPosition):
          * khtml/xml/dom_position.h:
  
  2005-05-06  David Harrison  <harrison at apple.com>
  
          Reviewed by Maciej, Darin.
  
          <rdar://problem/4103339> VisiblePosition and PositionIterator iterators do not return positions in order
  
          * WebCore.pbproj/project.pbxproj:
          Removed dom_positioniterator.h and dom_positioniterator.cpp.
          
          * khtml/editing/htmlediting.cpp:
          Removed unused include of dom_positioniterator.h and "using" of PositionIterator.
          
          * khtml/editing/selection.cpp:
          Removed unused include of dom_positioniterator.h.
  
          * khtml/editing/visible_position.h:
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::previousVisiblePosition):
          (khtml::VisiblePosition::nextVisiblePosition):
          (khtml::VisiblePosition::downstreamDeepEquivalent):
          Use Position::next(), Position::previous(), Position::atStart(), Position::atEnd() instead of duplicated code.
          
          * khtml/xml/dom_nodeimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::maxDeepOffset):
          Added to support Position::next(), Position::previous(), Position::atStart(), Position::atEnd()
          
          * khtml/xml/dom_position.h:
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previous):
          (DOM::Position::next):
          (DOM::Position::atStart):
          (DOM::Position::atEnd):
          Moved here, replacing VisiblePosition's duplicate and PositionIterator.  Fixed to
          return positions in order and not skip positions.
          
          (DOM::Position::previousCharacterPosition):
          (DOM::Position::nextCharacterPosition):
          Use Position::next(), Position::previous(), Position::atStart(), Position::atEnd() instead of PositionIterator.
  
          (DOM::isStreamer):
          (DOM::Position::upstream):
          (DOM::Position::downstream):
          Use Position::next(), Position::previous(), Position::atStart(), Position::atEnd() instead of PositionIterator.
  
          * khtml/xml/dom_positioniterator.cpp: Removed.
          * khtml/xml/dom_positioniterator.h: Removed.
          Removed in favor of Position::next(), Position::previous(), Position::atStart(), Position::atEnd()
  
  2005-05-05  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/4058167> Unit Converter and Weather widgets crashed in KJS::Collector::markCurrentThreadConservatively
          
  	Avoid possibly allocating new prototype objects as parameters to
  	superclass constructors - there may be an allocated but
  	uninitilized object so this is a bad time to allocate. Instead,
  	set the prototype in the constructor body, since the object is
  	happily allocated by then.
  
  	* khtml/ecma/kjs_binding.h:
          * khtml/ecma/kjs_css.cpp:
          (DOMCSSStyleDeclaration::DOMCSSStyleDeclaration):
          (DOMMediaList::DOMMediaList):
          (DOMCSSStyleSheet::DOMCSSStyleSheet):
          (DOMCSSPrimitiveValue::DOMCSSPrimitiveValue):
          (DOMCSSValueList::DOMCSSValueList):
          * khtml/ecma/kjs_css.h:
          (KJS::DOMStyleSheet::DOMStyleSheet):
          (KJS::DOMCSSValue::DOMCSSValue):
          * khtml/ecma/kjs_dom.cpp:
          (DOMNode::DOMNode):
          (DOMDocument::DOMDocument):
          (DOMElement::DOMElement):
          (DOMDOMImplementation::DOMDOMImplementation):
          (DOMNamedNodeMap::DOMNamedNodeMap):
          (DOMNamedNodesCollection::DOMNamedNodesCollection):
          (DOMCharacterData::DOMCharacterData):
          (DOMText::DOMText):
          * khtml/ecma/kjs_dom.h:
          (KJS::NodeConstructor::NodeConstructor):
          (KJS::DOMExceptionConstructor::DOMExceptionConstructor):
          * khtml/ecma/kjs_events.cpp:
          (DOMEvent::DOMEvent):
          (Clipboard::Clipboard):
          * khtml/ecma/kjs_html.cpp:
          (HTMLCollection::HTMLCollection):
          * khtml/ecma/kjs_range.cpp:
          (DOMRange::DOMRange):
          * khtml/ecma/kjs_traversal.cpp:
          (DOMNodeIterator::DOMNodeIterator):
          (DOMNodeFilter::DOMNodeFilter):
          (DOMTreeWalker::DOMTreeWalker):
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::XMLHttpRequest):
          * khtml/ecma/xmlserializer.cpp:
          (KJS::XMLSerializer::XMLSerializer):
  
  2005-05-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - make building multiple trees with make work better
  
          * Makefile.am: Set up Xcode build directory before invoking xcodebuild.
  
  2005-05-05  David Hyatt  <hyatt at apple.com>
  
  	Eliminate the FOUCS on wired.com.  innerWidth and innerHeight on window should not do a layout that ignores
  	pending stylesheets, since even if stylesheets are loading the correct window dimensions can be determined with
  	a normal layout.
  
  	The radar # is 4109888.
  	
          Reviewed by rjw
  
          * khtml/ecma/kjs_window.cpp:
          (Window::get):
          (Window::updateLayout):
          * khtml/ecma/kjs_window.h:
  
  2005-05-05  David Hyatt  <hyatt at apple.com>
  
  	Fix for 4109667, sIFR flash replacement technique often malfunctions.  This bug occurs when the plugin
  	widget update causes the onload for the document to fire.  Because you can be in the middle of a style
  	recalc when doing an attach (in response to a stylesheet load), the onload fires in the middle of the attach
  	process when the tree is in a bogus state.
  
  	The fix is to add a bit to the document that tells style recalc that the implicitClose() method was invoked
  	during the style recalc process and the code has been patched so that when this situation occurs, the close is
  	deferred until after the style recalc has finished.
  	
          Reviewed by John Sullivan
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::recalcStyle):
          (DocumentImpl::implicitClose):
          * khtml/xml/dom_docimpl.h:
          * layout-tests/fast/dynamic/flash-replacement-test.html: Added.
  
  2005-05-05  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave Hyatt.
  
          - fixed <rdar://problem/4109564> REGRESSION (Atlanta): maps.google.com doesn't always center California correctly
  
          * khtml/ecma/kjs_events.cpp: (offsetFromTarget): Fix two places that said X where they should say Y.
  
  2005-05-05  David Harrison  <harrison at apple.com>
  
          Restore fixed setEndingSelection.  Fixed method was ifdef'd out
          because change was at end of Tiger development, but method is
          unused.  You just can never be _too_ safe.
          
          * khtml/editing/htmlediting.cpp:
          (khtml::EditCommandPtr::setEndingSelection):
  
  2005-05-02  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Vicki.
  
  	- renamed NodeBaseImpl to ContainerNodeImpl
  
          * khtml/ecma/kjs_dom.cpp:
  	(DOMNodeProtoFunc::tryCall): Avoid use of NodeBaseImpl and avoid
  	use of obsolete checkNoOwner call, use isAncestor instead.
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::setOuterText): Avoid gratuitous use of
  	NodeBaseImpl.
  	* khtml/xml/dom_nodeimpl.cpp:
          (NodeBaseImpl::checkNoOwner): Removed.
  	
  	Ther rest is all just simple renaming.
          
  	* khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::attach):
          (DocumentImpl::detach):
          (DocumentFragmentImpl::DocumentFragmentImpl):
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_elementimpl.cpp:
          (AttrImpl::AttrImpl):
          (ElementImpl::ElementImpl):
          (ElementImpl::insertedIntoDocument):
          (ElementImpl::removedFromDocument):
          (ElementImpl::attach):
          (ElementImpl::dump):
          * khtml/xml/dom_elementimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          (ContainerNodeImpl::ContainerNodeImpl):
          (ContainerNodeImpl::~ContainerNodeImpl):
          (ContainerNodeImpl::firstChild):
          (ContainerNodeImpl::lastChild):
          (ContainerNodeImpl::insertBefore):
          (ContainerNodeImpl::replaceChild):
          (ContainerNodeImpl::removeChild):
          (ContainerNodeImpl::removeChildren):
          (ContainerNodeImpl::appendChild):
          (ContainerNodeImpl::hasChildNodes):
          (ContainerNodeImpl::setFirstChild):
          (ContainerNodeImpl::setLastChild):
          (ContainerNodeImpl::checkSameDocument):
          (ContainerNodeImpl::checkIsChild):
          (ContainerNodeImpl::addChild):
          (ContainerNodeImpl::attach):
          (ContainerNodeImpl::detach):
          (ContainerNodeImpl::insertedIntoDocument):
          (ContainerNodeImpl::removedFromDocument):
          (ContainerNodeImpl::cloneChildNodes):
          (ContainerNodeImpl::getElementsByTagNameNS):
          (ContainerNodeImpl::getUpperLeftCorner):
          (ContainerNodeImpl::getLowerRightCorner):
          (ContainerNodeImpl::getRect):
          (ContainerNodeImpl::setFocus):
          (ContainerNodeImpl::setActive):
          (ContainerNodeImpl::childNodeCount):
          (ContainerNodeImpl::childNode):
          (ContainerNodeImpl::dispatchChildInsertedEvents):
          (ContainerNodeImpl::dispatchChildRemovalEvents):
          * khtml/xml/dom_nodeimpl.h:
          * khtml/xml/dom_xmlimpl.cpp:
          (DOM::EntityImpl::EntityImpl):
          (DOM::EntityReferenceImpl::EntityReferenceImpl):
          (DOM::NotationImpl::NotationImpl):
          (DOM::ProcessingInstructionImpl::ProcessingInstructionImpl):
          * khtml/xml/dom_xmlimpl.h:
  
  2005-05-04  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Darin.
  
  	- fix mismatched parentheses in one of the ifdefs
   
          * khtml/html/html_headimpl.cpp:
          (HTMLTitleElementImpl::childrenChanged):
  
  2005-05-04  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave Hyatt.
  
          - fixed build rules to match other projects
  
          * WebCore.pbproj/project.pbxproj: Set deployment target to 10.3 in the build styles.
          When built without a build style (by Apple B&I) we want to get the target from the
          environment. But when built with a build style (by Safari engineers and others), we want
          to use 10.3.
  
          * Makefile.am: Took out extra parameters that make command-line building different from
          Xcode building. Now that this is fixed, you should not get a full rebuild if you switch
          from command line to Xcode or back.
  
  2005-05-04  Vicki Murley  <vicki at apple.com>
  
          Reviewed by darin.
  
  	- fixed <rdar://problem/3986228> Not able to load additional script blocks dynamically
  
  	Run scripts when they're inserted into the document. Use createdByParser bit to make sure
  	that scripts aren't run twice, once while parsing and again when inserting.
  
          * khtml/html/html_headimpl.cpp:
          (HTMLScriptElementImpl::HTMLScriptElementImpl):
          (HTMLScriptElementImpl::~HTMLScriptElementImpl):
          (HTMLScriptElementImpl::insertedIntoDocument): 
          (HTMLScriptElementImpl::removedFromDocument): 
          (HTMLScriptElementImpl::notifyFinished): 
          * khtml/html/html_headimpl.h:
          (DOM::HTMLScriptElementImpl::setCreatedByParser):
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::getElement): 
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::XMLTokenizer::startElement): 
  
  2005-05-03  David Hyatt  <hyatt at apple.com>
  
  	Normalize all our custom properties in our implementation to be -khtml (remove all the -apple).
  
  	Make sure that -apple, -khtml, and -moz are all able to be used.  -apple and -moz just map to -khtml.
  
  	Add support for automatically converting -khtml-opacity to opacity (for legacy Safari 1.1 compat).
  	
          Reviewed by darin
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::):
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          * khtml/css/cssproperties.in:
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyDeclarations):
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/css/parser.y:
          * khtml/ecma/kjs_css.cpp:
          (cssPropertyName):
  
  2005-05-03  Darin Adler  <darin at apple.com>
  
          - fix the build
  
          * WebCore.pbproj/project.pbxproj: Fix some SYMROOTS that should have been SYMROOT.
  
  2005-05-03  David Hyatt  <hyatt at apple.com>
  
  	Fix for 4098281, news.com missing a bunch of content.  Make sure not to apply strict SGML parsing
  	when stripping comments out of scripts.
  
  	New test is comments-in-script.html
  	
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseComment):
  
  2005-05-03  David Hyatt  <hyatt at apple.com>
  
  	Remove unused notification to avoid ERROR messages spewing on the acid2 test.
  	
          Reviewed by darin
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::processObjectRequest):
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget):
          * khtml/rendering/render_frames.h:
  
  2005-05-03  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave Hyatt.
          No new layout tests needed.
  
          - eliminated the bogus kMin/kMax macros that we had in addition to inline functions
            of the same name
  
          * kwq/KWQKGlobal.h: Remove the kMin/kMax macros.
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty): Change type of constant so both sides
          of kMin calls match.
          (khtml::CSSStyleSelector::fontSizeForKeyword): Ditto.
          * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseEntity): Ditto.
  
          - remove unused parameter to dirtyLinesFromChangedChild for clarity
  
          * khtml/rendering/render_object.h: Don't take the parameter.
          * khtml/rendering/render_object.cpp: (RenderObject::dirtyLinesFromChangedChild): Ditto.
  
          * khtml/rendering/render_flow.h: Don't take the parameter.
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::detach): Don't pass the parameter.
          (RenderFlow::dirtyLinesFromChangedChild): Don't take the parameter.
  
          * khtml/rendering/render_text.cpp: (RenderText::detach): Don't pass the parameter.
  
          - convert DOM::NodeImpl into an abstract base class by making a couple of functions
            pure virtual for clarity
  
          * khtml/xml/dom_nodeimpl.h: Made nodeName and nodeType pure virtual.
          * khtml/xml/dom_nodeimpl.cpp: Remove bodies of nodeName and nodeType.
  
  2005-05-03  David Hyatt  <hyatt at apple.com>
  
  	Fix for object element to support fallback content.  WIth this change Safari passes the Acid2 test.
  	
          Reviewed by Maciej
  
          * khtml/css/html4.css:
          * khtml/html/html_objectimpl.cpp:
          (HTMLObjectElementImpl::HTMLObjectElementImpl):
          (HTMLObjectElementImpl::parseHTMLAttribute):
          (HTMLObjectElementImpl::rendererIsNeeded):
          (HTMLObjectElementImpl::createRenderer):
          (HTMLObjectElementImpl::attach):
          (HTMLObjectElementImpl::detach):
          (HTMLObjectElementImpl::recalcStyle):
          (HTMLObjectElementImpl::childrenChanged):
          (HTMLObjectElementImpl::isURLAttribute):
          (HTMLObjectElementImpl::isImageType):
          (HTMLObjectElementImpl::renderFallbackContent):
          * khtml/html/html_objectimpl.h:
          * khtml/khtml_part.cpp:
          (KHTMLPart::requestObject):
          (KHTMLPart::selectFrameElementInParentIfFullySelected):
          (KHTMLPart::handleFallbackContent):
          * khtml/khtml_part.h:
          * khtml/khtmlpart_p.h:
          (khtml::ChildFrame::ChildFrame):
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::RenderPartObject):
          (RenderPartObject::updateWidget):
          * khtml/rendering/render_frames.h:
          (khtml::RenderPart::hasFallbackContent):
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::RenderReplaced):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::createPart):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge mainResourceError]):
  
  2005-05-01  Darin Adler  <darin at apple.com>
  
          - move to Xcode native targets and stop checking in generated files
  
          * WebCore.pbproj/project.pbxproj: Updated to use native targets and generate all the generated
          files, so we don't have to check them in any more.
          * Info.plist: Added. Native targets use a separate file for this.
  
          * Makefile.am: Removed rule to generate WebCore-combined.exp since this is now handled by the
          Xcode project. Removed the code to remove the embedded copy of the framework since we don't
          do that any more. Removed timestamp cleaning rules since we don't use those any more.
  
          * WebCore-tests.exp: Removed symbols that aren't really needed. The native target gives an
          error when you mention a nonexistent symbol, so we can't have them any more.
  
          * khtml/css/parser_wrapper.cpp: Added. Shell used to compile parser.cpp since we can't add
          a generated file easily to the list of files to be compiled.
  
          * .cvsignore: Removed various timestamp files.
  
          * WebCore-combined.exp: Removed.
          * force-clean-timestamp: Removed.
          * force-js-clean-timestamp: Removed.
          * khtml/.cvsignore: Removed.
          * khtml/Makefile.am: Removed.
          * khtml/css/.cvsignore: Removed.
          * khtml/css/Makefile.am: Removed.
          * khtml/css/cssproperties.c: Removed.
          * khtml/css/cssproperties.h: Removed.
          * khtml/css/cssvalues.c: Removed.
          * khtml/css/cssvalues.h: Removed.
          * khtml/css/parser.cpp: Removed.
          * khtml/css/parser.h: Removed.
          * khtml/css/tokenizer.cpp: Removed.
          * khtml/ecma/.cvsignore: Removed.
          * khtml/ecma/Makefile.am: Removed.
          * khtml/ecma/kjs_css.lut.h: Removed.
          * khtml/ecma/kjs_dom.lut.h: Removed.
          * khtml/ecma/kjs_events.lut.h: Removed.
          * khtml/ecma/kjs_html.lut.h: Removed.
          * khtml/ecma/kjs_navigator.lut.h: Removed.
          * khtml/ecma/kjs_range.lut.h: Removed.
          * khtml/ecma/kjs_traversal.lut.h: Removed.
          * khtml/ecma/kjs_views.lut.h: Removed.
          * khtml/ecma/kjs_window.lut.h: Removed.
          * khtml/ecma/xmlhttprequest.lut.h: Removed.
          * khtml/ecma/xmlserializer.lut.h: Removed.
          * khtml/html/.cvsignore: Removed.
          * khtml/html/Makefile.am: Removed.
          * khtml/html/doctypes.cpp: Removed.
          * khtml/html/kentities.c: Removed.
          * khtml/misc/.cvsignore: Removed.
          * khtml/misc/Makefile.am: Removed.
          * khtml/misc/htmlattrs.c: Removed.
          * khtml/misc/htmlattrs.h: Removed.
          * khtml/misc/htmltags.c: Removed.
          * khtml/misc/htmltags.h: Removed.
          * kwq/.cvsignore: Removed.
          * kwq/KWQCharsetData.c: Removed.
          * kwq/KWQColorData.c: Removed.
          * kwq/Makefile.am: Removed.
  
  2005-05-02  Darin Adler  <darin at apple.com>
  
          Reviewed by Vicki.
          Added two layout tests for regression testing.
  
          - redid frameElement (fix for 4091082 below)
  
          The first version lacked a security check, and was also broken.
  
          * khtml/ecma/kjs_window.cpp:
          (frameElement): Refactored into separate function; added isSafeScript check.
          (Window::get): Call the new frameElement function.
  
          * layout-tests/fast/frames/frameElement-frame.html: Added.
          * layout-tests/fast/frames/frameElement-frame-expected.txt: Added.
          * layout-tests/fast/frames/frameElement-iframe.html: Added.
          * layout-tests/fast/frames/frameElement-iframe-expected.txt: Added.
          * layout-tests/fast/frames/resources/frameElement-contents.html: Added.
  
  2005-05-02  David Harrison  <harrison at apple.com>
  
          Reviewed by Vicki.
  
          Fix isStartOfEditableContent and isEndOfEditableContent to return actual, rather than inverted, answers.
          No Radar.  Found this when trying to use isEndOfEditableContent() in some new code.
          
          * khtml/editing/visible_units.cpp:
          (khtml::isStartOfEditableContent):
          (khtml::isEndOfEditableContent):
          Flip expressions.
  
  2005-04-29  Darin Adler  <darin at apple.com>
  
          Reviewed by David Harrison.
  
          * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Turn newlines into \n for better dumping.
  
  2005-04-29  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/4083333> When deleting link at end of sentence, entire sentence gets deleted
          
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData):
          Work around bug #4103339 (whose real fix is somewhat risky), so this fix can get into a software update.
          
          (khtml::DeleteSelectionCommand::handleGeneralDelete):
          Add isAncestor check when comparing m_downstreamEnd.node() and m_startNode.
  
          * layout-tests/editing/deleting/delete-4083333-fix-expected.txt: Added.
          * layout-tests/editing/deleting/delete-4083333-fix.html: Added.
  
  2005-04-29  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave Harrison.
  
          - changed layout tests to dump more minimal information about caret and selection
  
          * kwq/KWQRenderTreeDebug.cpp:
          (nodePosition): Changed name; now does position relative to document.
          (writeSelection): Removed upstream/downstream code and changed format slightly.
  
          * layout-tests/editing/*-expected.txt: Regenerated in new format.
  
  2005-04-29  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris Blumenberg.
          Added two layout tests for regression testing.
  
          - fixed <rdar://problem/4097849> REGRESSION (162-163): importNode creates non-HTML elements, thus style attributes (and some others) don't work
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::importNode): Reorganized and partly rewrote this. The change that fixes the bug at
          hand is to explicitly use XHTML_NAMESPACE for HTML elements, since the old way of getting the namespace
          will return the null string for HTML elements, and createElementNS will not create an HTML element
          if passed a null string for the namespace.
          (DocumentImpl::processHttpEquiv): Removed some bogus getDocument() calls -- no need to call getDocument()
          in a document object.
          (DocumentImpl::attrName): Ditto.
          (DocumentImpl::tagName): Ditto.
          (DocumentImpl::setFocusNode): Ditto.
  
          * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::cloneNode): Moved the actual cloning here
          from ElementImpl::cloneNode, because XMLElementImpl already had its own version, and in here
          we can use createHTMLElement, which will work properly even in an XML document, and is also slightly
          more efficient.
  
          * khtml/xml/dom_nodeimpl.h: Added a namespaceURI method function to go along with localName.
          * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::namespaceURI): Added. Returns null string to be consistent
          with localName (only works on certain types of elements as documented).
          * khtml/xml/dom_elementimpl.h: Removed ElementImpl::cloneNode (see above). Added an override of
          namespaceURI for XMLElementImpl.
          * khtml/xml/dom_elementimpl.cpp: (XMLElementImpl::namespaceURI): Added. Returns the namespace
          (consistent with localName).
  
          * layout-tests/fast/dom/importNodeHTML.html: Added. Tests both importNode and cloneNode (for comparison).
          * layout-tests/fast/dom/importNodeHTML-expected.txt: Added.
          * layout-tests/fast/dom/importNodeXML.xhtml: Added. XML version of the same test as above. Tests a different
          code path, so useful to have.
          * layout-tests/fast/dom/importNodeXML-expected.txt: Added.
  
  2005-04-28  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave Harrison.
  
          - fixed problems preventing us from compiling with gcc 4.0
  
          * WebCore.pbproj/project.pbxproj: Removed -fobjc-exceptions because I can't figure out an easy
          way to pass it only when compiling Objective-C/C++. Removed -Wmissing-prototypes from
          WARNING_CPLUSPLUSFLAGS since it's now a C-only warning.
  
          * khtml/css/parser.y: Changed some rules that were using a float to pass around an enum to use an
          int instead to avoid a warning.
          * khtml/css/parser.cpp: Regenerated.
          * khtml/css/parser.h: Regenerated.
  
          * khtml/ecma/kjs_dom.cpp: (DOMTextProtoFunc::tryCall): Rearranged a return statement to avoid an incorrect
          warning.
          * khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall): Initialized a couple of variables to avoid
          an incorrect warning.
          * khtml/ecma/kjs_proxy.cpp: (KJSProxyImpl::evaluate): Rearranged how we exit from the function to avoid
          an incorret warning.
          * khtml/editing/selection.cpp: (khtml::Selection::debugPosition): Changed some %d to %ld where the
          parameters where long ints.
          * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::debugPosition): Ditto.
          * khtml/xml/dom_position.cpp: (DOM::Position::debugPosition): Ditto.
          * kwq/DOMEvents.mm: (-[DOMMouseEvent initMouseEvent:::::::::::::::]): Rearranged code to avoid a cast
          that was causing an incorrect warning.
          * kwq/DOMUtility.mm:
          (createObjCDOMNode): Broke out as a separate function.
          (KJS::ScriptInterpreter::createObjcInstanceForValue): Rearranged code to avoid a namespace collision with
          KJS::DOMNode and the Objective-C DOMNode class.
          * kwq/KWQFileButton.mm: Made fields of KWQFileButtonAdapter public to avoid an error, new to gcc 4.0,
          about accessing protected Objective-C fields.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::matchLabelsAgainstElement): Rearranged a return statement to avoid an incorrect warning.
          (KWQKHTMLPart::imageFromRect): Rearranged how this function does its exception handling to avoid a
          "may be clobbered" warning.
          * kwq/KWQKJavaAppletWidget.mm: Fixed incorrect import that said "KHTMLView.h" instead of "khtmlview.h".
          * kwq/KWQObject.mm: Made fields of KWQObjectTimerTarget public to avoid an error, new to gcc 4.0,
          about accessing protected Objective-C fields.
          * kwq/WebCoreBridge.mm: (partHasSelection): Used [bridge part] instead of getting directly at instance
          variable to avoid an error, new to gcc 4.0, about accessing protected Objective-C fields.
  
          * WebCore-combined.exp: Regenerated.
          * WebCore-tests.exp: Added some additional symbols needed by the tests under gcc 4.0.
  
  2005-04-28  Darin Adler  <darin at apple.com>
  
          * WebCore.pbproj/project.pbxproj: Add back the main_thread_malloc files, rolled out by accident.
  
  2005-04-27 Adele Peterson  <adele at apple.com>
  
          Rolling out fix for <rdar://problem/4097849> because the following layout tests were failing:
  
          fast/css/namespaces/001
          fast/css/namespaces/002
          fast/css/namespaces/004
          fast/css/namespaces/005
          fast/css/namespaces/006
          fast/overflow/003
          
  
          * khtml/html/html_documentimpl.cpp:
          * khtml/html/html_documentimpl.h:
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::namespaceURI):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::importNode):
          (DocumentImpl::createElementNS):
          (DocumentImpl::createHTMLElement):
          (DocumentImpl::attrId):
          (DocumentImpl::tagId):
          * khtml/xml/dom_docimpl.h:
  
  2005-04-27  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Darin.
          
          Experimental prototype of user-resizable textareas. All the new code is guarded by
          #if ALLOW_RESIZING_TEXTAREAS, which is false unless you remove a comment and rebuild.
          
          This code allows you to press near the bottom-right corner of any textarea and drag
          to resize the textarea on the page. It works correctly with textareas in left-aligned
          or centered blocks, but is weird in right-aligned blocks. It also does something
          sensible if the width is specified as a % (in that case, you can resize vertically only).
          The user-created-size survives resizing the window and survives the back/forward cache.
          It does not survive reloading the page.
          
          This complete-lack-of-affordance UI is obviously not shippable, but this proof of concept
          code could lead to a real user feature.
  
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea getNumColumns:andNumRows:forSize:]):
          new method that determines cols and rows for a given textarea frame size
          (-[KWQTextAreaTextView _trackResizeFromMouseDown:]):
          new method that tracks a drag and does a live resize-and-relayout
          (-[KWQTextAreaTextView mouseDown:]):
          if the mouse down is in the bottom-right corner, call _trackResizeFromMouseDown:
  
  2005-04-27  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Adele.
  
          - fixed problem with mouse wheel patch where alt and shift keys were switched
  
          * khtml/xml/dom2_eventsimpl.h:
          use the order cntl, alt, shift, meta in KeyboardEventImpl constructors to match
          superclass. This isn't necessary to fix the bug, but is better for clarity.
          
          * khtml/xml/dom2_eventsimpl.cpp:
          (KeyboardEventImpl::KeyboardEventImpl):
          switch parameter order to match superclass. Then pass the parameters to superclass's
          constructor in the right order.
          (KeyboardEventImpl::initKeyboardEvent):
          Pass parameters to superclass's constructor in the right order.
  
  2005-04-26  Adele Peterson  <adele at apple.com>
  
          Fixed by Darin, reviewed by me.
  
          Fix for <rdar://problem/4084029> designMode doesn't allow editing when iframe src = "" or = about:blank
          
          This change will add an HTML element for empty documents.  Now that there will be an HTMLDocument in this case, 
          a body will also be created (see rdar://problem/3758785). This was preventing frames with empty documents from 
          being editable.
  
          * khtml/html/htmlparser.cpp: (KHTMLParser::finished):
  
          Updated these tests to expect the HTML and BODY elements
          * layout-tests/fast/flexbox/016-expected.txt:
          * layout-tests/fast/frames/001-expected.txt:
          * layout-tests/fast/frames/002-expected.txt:
          * layout-tests/fast/frames/contentWindow_Frame-expected.txt:
          * layout-tests/fast/frames/contentWindow_iFrame-expected.txt:
          * layout-tests/fast/frames/empty-frame-src-expected.txt:
  
  2005-04-26  Maciej Stachowiak  <mjs at apple.com>
  
          New test case for <rdar://problem/4092136> reproducible crash in KJS::kjs_fast_realloc loading maps.google.com
  
          * layout-tests/fast/js/string-from-char-code-expected.txt: Added.
          * layout-tests/fast/js/string-from-char-code.html: Added.
  
  2005-04-26  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3655817> please add support for mouse wheel events and the onmousewheel handler
  
          Loose ends:
  
              - need to test behavior of Windows IE with horizontal scroll wheeling; we currently send a distinct event
                for that relatively obscure case, which means the event handlers won't fire at all; might be incorrect
              - overflow scrolling is done after all DOM event handling, but ideally should be done in the overflowing
                element's default event handler; not important in practice
              - frame scrolling is done after all DOM event handling, but probably should be done in a default event handler;
                not sure about this, but it's probably not important in practice and definitely not required
  
          - JavaScript
  
          * khtml/ecma/kjs_events.h: Added DOMWheelEvent.
          * khtml/ecma/kjs_events.cpp:
          (KJS::getDOMEvent): Added a case for wheel event. To be forward looking, I use the event's impl pointer
          instead of a C++ DOM wrapper. Eventually it will all work this way.
          (offsetFromTarget): Added. Factored out code to compute offsetX/Y for an event.
          (DOMMouseEvent::getValueProperty): Changed to call offsetFromTarget for offsetX/Y.
          (DOMWheelEvent::DOMWheelEvent): Added.
          (DOMWheelEvent::tryGet): Added.
          (DOMWheelEvent::getValueProperty): Added.
          (DOMWheelEventProtoFunc::tryCall): Added. Nothing at the moment, but might get contents later.
  
          * khtml/ecma/kjs_dom.h: Added OnMouseWheel to the enum with the list of properties.
          * khtml/ecma/kjs_dom.cpp: Added onmousewheel as a property of DOM nodes.
          (DOMNode::getValueProperty): Return the mouse wheel event handler.
          (DOMNode::putValue): Set the mouse wheel event handler.
  
          * khtml/ecma/kjs_window.cpp: Added onmousewheel as a property of the window.
          (Window::get): Return the mouse wheel event handler.
          (Window::put): Set the mouse wheel event handler.
  
          * khtml/ecma/kjs_window.h: Added OnWindowMouseWheel to the enum with the list of properties.
          (Other properties distinguish the window handler by lower-casing the initial letter, way too subtle,
          so I did this one a good way.)
  
          * khtml/dom/dom2_events.h: Made the constructors for Event and UIEvent public. There's no good reason
          for them to be private, and I had to use the UIEvent one in the JavaScript implementation.
  
          - DOM
          
          * khtml/xml/dom2_eventsimpl.h: Added events for mouse wheel and horizontal mouse wheel.
          Added isWheelEvent function to EventImpl.
          (DOM::UIEventWithKeyStateImpl): Added. Base class shared by mouse, wheel, and keyboard events.
          (DOM::MouseRelatedEventImpl): Added. Base class shared by mouse and wheel events.
          (DOM::WheelEventImpl): Added.
  
          * khtml/xml/dom2_eventsimpl.cpp: Added "mousewheel" to list of event names and a placeholder for
          the horizontal mouse wheel.
          (EventImpl::isWheelEvent): Added. Returns false.
          (MouseRelatedEventImpl::MouseRelatedEventImpl): Added. Factored out what's shared between mouse
          events and wheel events to avoid duplicated code.
          (MouseRelatedEventImpl::computeLayerPos): Moved to MouseRelatedWheelEventImpl.
          (MouseEventImpl::MouseEventImpl): Changed since MouseRelatedWheelEventImpl is now the base class
          so we can share more code with wheel events.
          (KeyboardEventImpl::KeyboardEventImpl): Changed since UIEventWithKeyStateImpl is now the base class
          so we can share more code with mouse and wheel events.
          (WheelEventImpl::WheelEventImpl): Added.
          (WheelEventImpl::isWheelEvent): Added. Returns true.
  
          * khtml/misc/htmlattrs.in: Added "onmousewheel" attribute name.
          * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseHTMLAttribute): Added parsing of the
          "onmousewheel" atribute, consistent with other event handler attributes.
  
          - event handling
  
          * kwq/WebCoreBridge.h: Renamed scrollOverflowWithScrollWheelEvent to sendScrollWheelEvent.
          * kwq/WebCoreBridge.mm: (-[WebCoreBridge sendScrollWheelEvent:]): Renamed.
  
          * kwq/KWQEvent.h: Added Wheel as an event type value.
          (QWheelEvent::QWheelEvent): Added.
          * kwq/KWQEvent.mm:
          (positionForEvent): Updated to know that wheel events have valid positions in them.
          (orientationForEvent): Added.
          (deltaForEvent): Added.
          (QWheelEvent::QWheelEvent): Added.
  
          * kwq/KWQKHTMLPart.h: Renamed scrollOverflowWithScrollWheelEvent to wheelEvent.
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::wheelEvent): Renamed and added code to construct a QWheelEvent
          and send it along to KHTMLView::viewportWheelEvent, consistent with how mouse events work.
  
          * khtml/khtmlview.cpp: (KHTMLView::viewportWheelEvent): Do a hit test to figure out which node to
          send the event to, and then call dispatchWheelEvent.
  
          * khtml/xml/dom_nodeimpl.h: Added dispatchWheelEvent.
          * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::dispatchWheelEvent): Added.
  
          - generated files
  
          * khtml/ecma/kjs_dom.lut.h: Regenerated.
          * khtml/ecma/kjs_events.lut.h: Regenerated.
          * khtml/ecma/kjs_window.lut.h: Regenerated.
          * khtml/misc/htmlattrs.c: Regenerated.
          * khtml/misc/htmlattrs.h: Regenerated.
  
  2005-04-26  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin, Maciej.
  
          <rdar://problem/4075576> Deleting text in new message borks content
          
          Fixed by removing the methods that attempted to preserve the position.  The idea
          of preserving position is a very recent one, and turned out to not actually address
          the problem it was intended to fix (see below).  Further, is unclear how the position
          could be preserved in a form that could be properly used later on.   Therefore,
          removing the code to work like before is the preferred alternative for this software
          update.  I've written <rdar://problem/4099839> to cover the bug that position
          preservation was supposed to fix (but did not).  Added layout tests for
          both this bug and 4099839.  Also, updated existing tests with correct expected results
          (delete-at-paragraph-boundaries-003 and 004).
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::removeFullySelectedNode):
          (khtml::CompositeEditCommand::removeChildrenInRange):
          (khtml::DeleteSelectionCommand::handleGeneralDelete):
          * khtml/editing/htmlediting.h:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-007-expected.txt: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-007.html: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-008-expected.txt: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-008.html: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-009-expected.txt: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-009.html: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-010.html: Added.
  
  2005-04-26  Darin Adler  <darin at apple.com>
  
          - fixed development builds
  
          * khtml/misc/main_thread_malloc.h: Use inlines instead of macros for allocation functions.
  
  2005-04-25  David Hyatt  <hyatt at apple.com>
  
  	Fix for 4097842, changing 1st line of a url that wraps doesn't update the second line.  Make sure to
  	update line break info for the last dirty line so that when a clean line tries to figure out where it
  	started, it will get an accurate position taking into account the updated string.  By doing this, the code
  	will be able to properly distinguish between the old and new positions and not accidentally assume they are
  	the same.
  	
          Reviewed by darin
  
          * khtml/rendering/render_text.cpp:
          (RenderText::setTextWithOffset):
  
  2005-04-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/4098826> Bezier curves broken in new Safari canvas object (last two parameters parsed incorrectly)
  
          * khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall): Fixed incorrect argument indices.
          Thanks to Brian Campbell who figured out what was wrong.
  
  2005-04-17  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- use single-threaded malloc in places where malloc is hot for an
  	8% speed improvement on cvs-base
  
          * ForwardingHeaders/misc/fast_malloc.h: Added.
          * WebCore.pbproj/project.pbxproj:
          * khtml/css/css_base.h:
          * khtml/css/css_ruleimpl.h:
          * khtml/css/css_valueimpl.h:
          * khtml/css/cssstyleselector.h:
          * khtml/misc/arena.cpp:
          (ArenaAllocate):
          (FreeArenaList):
          (ArenaFinish):
          * khtml/misc/main_thread_malloc.cpp: Added.
          * khtml/misc/main_thread_malloc.h: Added.
          * khtml/rendering/render_style.h:
          * khtml/xml/dom2_eventsimpl.h:
          * khtml/xml/dom2_rangeimpl.h:
          * khtml/xml/dom2_traversalimpl.h:
          * khtml/xml/dom2_viewsimpl.h:
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_elementimpl.cpp:
          (NamedAttrMapImpl::NamedAttrMapImpl):
          (NamedAttrMapImpl::clearAttributes):
          (NamedAttrMapImpl::operator=):
          (NamedAttrMapImpl::addAttribute):
          (NamedAttrMapImpl::removeAttribute):
          * khtml/xml/dom_elementimpl.h:
          * khtml/xml/dom_nodeimpl.h:
          * khtml/xml/dom_stringimpl.h:
          * kwq/KWQFontFamily.h:
          * kwq/KWQListImpl.mm:
          * kwq/KWQString.h:
          * kwq/KWQString.mm:
          (ALLOC_CHAR):
          (ALLOC_QCHAR):
          (QString::setBufferFromCFString):
          (allocatePageNode):
  
  2005-04-25  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Dave Harrison.
          
          - fixed <rdar://problem/4098731> [DOMHTMLTextAreaElement cols] returns wrong value (usually zero)
  
          * kwq/DOMHTML.mm:
          (-[DOMHTMLTextAreaElement cols]):
          use ATTR_COLS instead of ATTR_ACCESSKEY (D'oh!)
          (-[DOMHTMLTextAreaElement setCols:]):
          fixed whitespace
  
  2005-04-25  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/4097849> REGRESSION (162-163): importNode creates non-HTML elements, thus style attributes (and some others) don't work
  
          * khtml/xml/dom_docimpl.h: Add virtual functions HTMLElementNamespace and isHTMLNamespace.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::importNode): Rearranged this function and fixed the following problems: 1) made sure to ref node while attributes are
          being set on it so it doesn't get destroyed; 2) fixed code to get namespace from the element we are importing to use the IDs from
          the source document, not the destination document; 3) removed unneeded getDocument() call which just returns this; 4) fixed error
          handling for cases where an exception happens while processing the children.
          (DocumentImpl::HTMLElementNamespace): Added. Returns XHTML_NAMESPACE.
          (DocumentImpl::isHTMLNamespace): Added. Returns true for any namespace that matches XHTML_NAMESPACE (case insensitive).
          (DocumentImpl::createElementNS): Changed to call isHTMLNamespace, which will cause it to accept the null namespace in an HTML document.
          This is the change that fixes the bug. Also fixed the code path to do a little less wasteful work in the non-XHTML case.
          (DocumentImpl::createHTMLElement): Pass in HTMLElementNamespace() rather than 0 to tagId.
          (DocumentImpl::attrId): Use isHTMLNamespace instead of allowing the null namespace explicitly.
          (DocumentImpl::tagId): Ditto.
  
          * khtml/html/html_documentimpl.h: Add overrides for HTMLElementNamespace and isHTMLNamespace.
          * khtml/html/html_documentimpl.cpp:
          (HTMLDocumentImpl::HTMLElementNamespace): Added. Returns 0 so we use the null string for HTML elements inside HTML documents (as before).
          (HTMLDocumentImpl::isHTMLNamespace): Added. Allows 0, and then calls base class to check for the actual XHTML namespace. Thus, we allow
          both no namespace at all and the XHTML namespace inside HTML documents.
  
          * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::namespaceURI): Changed to call HTMLElementNamespace rather than checking
          isHTMLDocument. Same result as before, but better division of responsibilities.
  
  2005-04-25  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/4091956> JavaScript drop handlers don't receive more than one dropped item
  
          * kwq/KWQClipboard.mm:
          (cocoaTypeFromMIMEType): Remove some use of compare -- less efficient than a simpler "==" check.
          Fixed non-GC-safe code to use KWQCFAutorelease instead.
          (MIMETypeFromCocoaType): Use fromCFString instead of fromNSString to avoid a cast.
          (KWQClipboard::getData): Rearrange so that we'll use filenames if both filenames and a URL are present, since
          filenames can accomodate multiple items. Fix bug where we'd return multiple filenames when the type requested
          is "URL". Fixed loop that computed the count over and over again for the loop termination condition. Check
          that the data for NSFilenamesPboardType is an NSArray instead of assuming it is.
          (KWQClipboard::setData): Use isEqualToString: instead of == when comparing types.
  
  2005-04-22  David Hyatt  <hyatt at apple.com>
  
  	Fix for 4096878, drop shadow effect not displayed correctly on tbray.org/ongoing/.  Block minmaxwidth was
  	broken when negative margins were used and did not properly decrease the max width.
  	
          Reviewed by Maciej
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::calcBlockMinMaxWidth):
          * layout-tests/fast/block/float/034-expected.txt: Added.
          * layout-tests/fast/block/float/034.html: Added.
          * layout-tests/fast/block/float/035-expected.txt: Added.
  	* layout-tests/fast/block/float/035.html: Added.
  	
  2005-04-22  David Hyatt  <hyatt at apple.com>
  
          Remove some dead code from css_valueimpl.  It wasn't used at all.
  
          * khtml/css/css_valueimpl.cpp:
          * khtml/css/css_valueimpl.h:
  
  2005-04-22  Darin Adler  <darin at apple.com>
  
          * khtml/ecma/kjs_html.h: Removed unnecessary bogus class name qualifiers.
  
  2005-04-22  David Hyatt  <hyatt at apple.com>
  
  	Fix for 4096681, fix regression in how the list-style property is parsed.  It no longer parses when it hits
  	a url in the property value list now, because the list pointer did not get advanced.  This fixes alistapart.com.
  	
          Reviewed by john
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          * layout-tests/fast/lists/009-expected.txt: Added.
          * layout-tests/fast/lists/009.html: Added.
          * layout-tests/fast/lists/resources/listmark.gif: Added.
  
  2005-04-22  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/4091082> Google Suggest no longer works due to lack of "frameElement"
  
          * khtml/ecma/kjs_window.h: Added FrameElement.
          * khtml/ecma/kjs_window.cpp: (Window::get): Added "frameElement".
          * khtml/ecma/kjs_window.lut.h: Regenerated.
  
  2005-04-22  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - a small editing-related code cleanup
  
          * khtml/rendering/render_text.h: Added positionForOffset and made offsetForPosition const.
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::offsetForPosition): Made const.
          (InlineTextBox::positionForOffset): Added. Moved code here from caretRect.
          (RenderText::caretRect): Call positionForOffset instead of doing the work here.
  
  2005-04-21  David Hyatt  <hyatt at apple.com>
  
  	Fix for 4095839, wrong background image used on flechtwerk.de.  Make sure that the global mapped
  	attribute cache hashed background attributes into per-document buckets.
  
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::mapToEntry):
          * khtml/html/html_elementimpl.h:
          (DOM::):
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableElementImpl::mapToEntry):
          (HTMLTablePartElementImpl::mapToEntry):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::docID):
  
  2005-04-21  Vicki Murley  <vicki at apple.com>
  
  	- layout test for 4065447, outerHTML on images
  
          * layout-tests/fast/dynamic/outerHTML-img-expected.txt: Added.
          * layout-tests/fast/dynamic/outerHTML-img.html: Added.
  
  2005-04-20  Vicki Murley  <vicki at apple.com>
  
          Reviewed by hyatt.
  
  	- fixed <rdar://problem/4065447> support outerHTML on IMG elements
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::setOuterHTML):
  
  2005-04-18  David Hyatt  <hyatt at apple.com>
  
  	Fix min-height so that when it resolves to auto it does not use the box's intrinsic height.
  	
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcHeight):
          (RenderBox::calcHeightUsing):
  
  2005-04-18  David Hyatt  <hyatt at apple.com>
  
          Back out fix for 4032346, since it is causing garbled image content on many sites.
  
  	The bug tracking the fix is 4069093.
  	
          (khtml::RenderBlock::matchedEndLine):
  
  2005-04-18  David Hyatt  <hyatt at apple.com>
  
  	Fix the smile in the Acid2 test.  Floats should not grow to contain other floats unless height is auto.  Otherwise
  	the float should use the specified height.
  
  	Also fix row 14 of the Acid2 test.  Although ambiguous, just modify the table cell baseline alignment code to align
  	to the bottom of the cell's content height if no suitable baseline could be found.
  	
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlock):
          * khtml/rendering/render_block.h:
          (khtml::RenderBlock::firstRootBox):
          (khtml::RenderBlock::lastRootBox):
          * khtml/rendering/render_table.cpp:
          (RenderTableSection::calcRowHeight):
          (RenderTableCell::baselinePosition):
          
  2005-04-15  David Hyatt  <hyatt at apple.com>
  
  	Make sure empty tables honor CSS-specified heights when they have no rows or sections.  This is done only
  	in strict mode, since it is not compatible with WinIE.
  
          * khtml/rendering/render_table.cpp:
          (RenderTable::layout):
  
  2005-04-15  David Hyatt  <hyatt at apple.com>
  
  	Fix for row 13 of the Acid2 test.  Change HTML comment parsing in strict mode to do proper SGML parsing,
  	checking for pairs of -- and only being willing to close the comment if every -- is paired up.
  	
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseComment):
  
  2005-04-12  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Richard.
  
  	- use custom single-threaded malloc for all non-GC JavaScriptCore
  	allocations, for a 9.1% speedup on JavaScript iBench
  	 
  	* khtml/ecma/kjs_binding.cpp:
          (UString::UString):
          * khtml/ecma/kjs_proxy.cpp:
          (KJSProxyImpl::evaluate):
  
  2005-04-15  David Hyatt  <hyatt at apple.com>
  
  	Fix the six pixel gap between rows nine and ten of the Acid2 test.  Make sure that percentage heights that
  	resolve to auto are properly treated as though they have auto height by the self-collapsing block check (as per
  	section 8.3.1, paragraph 7 of the CSS2.1 spec).
  	
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::isSelfCollapsingBlock):
  
  2005-04-15  David Hyatt  <hyatt at apple.com>
  
  	The Acid2 test and the reference rendering both make use of overflow:hidden on the <html> element.  Turns out
  	the CSS2.1 wording for this behavior has been revised (based off WinIE/Mozilla behavior).  Change our behavior
  	to match and make <html> overflow apply to the viewport.
  	
          * khtml/khtmlview.cpp:
          (KHTMLView::applyOverflowToViewport):
          (KHTMLView::layout):
          * khtml/khtmlview.h:
          * khtml/rendering/render_box.cpp:
          (RenderBox::setStyle):
  
  2005-04-14  David Hyatt  <hyatt at apple.com>
  
  	3258403 and 3258402 can now be fixed.  min/max-width/height support is now complete.  This patch makes them
  	work for positioned elements and enables us to pass row one of the Acid2 test.
  	
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcAbsoluteHorizontal):
          (RenderBox::calcAbsoluteHorizontalValues):
          (RenderBox::calcAbsoluteVertical):
          (RenderBox::calcAbsoluteVerticalValues):
          * khtml/rendering/render_box.h:
  
  2005-04-12  David Hyatt  <hyatt at apple.com>
  
  	Working on the Acid2 test, Row 1.
  
  	Improve checkChild for the DTD so that it knows what mode a document is in.  This allows it to adhere more
  	strictly to the actual DTD in strict mode and almost strict mode.
  
  	Change the <table>-inside-<p> check so that <table> is disallowed inside <p> in 
  	strict mode and almost strict mode.  This matches Firefox behavior, which allows <table>
  	inside <p> only in quirks mode.
  
          * khtml/html/dtd.cpp:
          (DOM::checkChild):
          * khtml/html/dtd.h:
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::insertNode):
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseTag):
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::childAllowed):
  
  2005-04-12  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Maciej. 
  
  	- fixed <rdar://problem/3760895> Request for including an implementation of the elementFromPoint function
   
          * khtml/dom/dom_doc.cpp:
          (DOM::Document::elementFromPoint):
          * khtml/dom/dom_doc.h:
          * khtml/ecma/kjs_dom.cpp:
          (DOMDocumentProtoFunc::tryCall):
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMDocument::):
          * khtml/ecma/kjs_dom.lut.h:
          (KJS::):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::elementFromPoint):
          * khtml/xml/dom_docimpl.h:
  
  2005-04-12  David Hyatt  <hyatt at apple.com>
  
  	Beginning of work to support the Acid2 CSS test put forward by the Web Standards Project.  Fix
  	our handling of the rel attribute on <link> elements to do a proper tokenization so that stylesheets
  	can be recognized even when other keywords are present in the rel attribute.
  
          * khtml/html/html_headimpl.cpp:
          (HTMLLinkElementImpl::HTMLLinkElementImpl):
          (HTMLLinkElementImpl::parseHTMLAttribute):
          (HTMLLinkElementImpl::tokenizeRelAttribute):
          (HTMLLinkElementImpl::process):
          * khtml/html/html_headimpl.h:
  
  2005-04-12  John Sullivan  <sullivan at apple.com>
  
          - fixed these two bugs (I also fixed these on the experimental-ui-branch)
          <rdar://problem/3154293> Find Next should not scroll page if the next target is already visible
          <rdar://problem/3121828> scrollToVisible on find cuts off the left part of the view due to needless horiz. scroll
  
          Reviewed by Chris.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::jumpToSelection):
          Trey had written code to address these issues, but left it commented out due to other
          problems. The other problems no longer occur, so I uncommented Trey's code, and then
          discovered that I could make it behave more like TextEdit with many fewer lines of
          code.
  
  2005-04-08  David Harrison  <harrison at apple.com>
  
          Reviewed by Dave Hyatt.
  
          <rdar://problem/4084106> Remove NSAccessibilityForegroundColorTextAttributeWrapper
  
          * kwq/KWQAccObject.mm:
          (AXAttributeStringSetStyle):
          Use NSAccessibilityForegroundColorTextAttribute directly.
  
  2005-04-05  David Hyatt  <hyatt at apple.com>
  
  	Fix for 4077106, make sure that mouse wheeling in overflow sections uses 40 rather than 10 as the base line
  	step.
  	
          Reviewed by darin
  
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::positionScrollbars):
          * kwq/KWQScrollBar.mm:
          (QScrollBar::scroll):
  
  2005-04-04  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Maciej.
  
  	- fixed <rdar://problem/3871669> no focus or blur methods on HTML button elements
  
          * khtml/dom/html_form.cpp:
          (HTMLButtonElement::focus): 
          (HTMLButtonElement::blur): 
          * khtml/dom/html_form.h: 
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElementFunction::tryCall):
          * khtml/ecma/kjs_html.h:
          (KJS::HTMLElement::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLButtonElementImpl::blur):
          (DOM::HTMLButtonElementImpl::focus):
          * khtml/html/html_formimpl.h:
  
  === WebCore-415 ===
  
  2005-03-28  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
          
          <rdar://problem/4069161> REGRESSION (8A416-8A419): Safari crash bringing up context menu for non-HTML content in a frame
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject rendererForView:]):
          Nil-check node variable instead of rechecking document variable.
  
  === WebCore-413 ===
  
  2005-03-27  Darin Adler  <darin at apple.com>
  
          Reviewed by me, fix by Kida-san.
  
          - fixed <rdar://problem/4067474> 8A424: Safari immediately quit by Cmd+Ctrll+'D'
  
          * kwq/WebCoreBridge.mm: (-[WebCoreBridge convertToNSRange:DOM::]):
          Added nil check.
  
  === Safari-412 ===
  
  2005-03-24  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/4052683> After adding/removing stocks from Stocks Widget, stock areas went blank
  
  	The request was being collected before firing it's load handler.
  	We now gc protect the request while it's loading.
  
          Reviewed by Maciej.
  
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::send):
          (KJS::XMLHttpRequest::abort):
          (KJS::XMLHttpRequest::slotFinished):
          (KJS::XMLHttpRequestProtoFunc::tryCall):
  
  === Safari-411 ===
  
  2005-03-23  Darin Adler   <darin at apple.com>
  
  	Further fix for 4053515.
  
  	Covered cases where text position doesn't lie inside a
  	text node.	
  
          Reviewed by Richard.
  
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::setRangeFromLocationAndLength):
  
  2005-03-23  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/4053515> REGRESSION (Mail): Kotoeri input method reconversion does not work in WebViews
  
  	We now use actual document NSRanges to represent both marked text
  	ranges and selection ranges.
  
          Reviewed by Ken.
  
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::rangeLength):
          (khtml::TextIterator::setRangeFromLocationAndLength):
          * khtml/editing/visible_text.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge convertToNSRange:DOM::]):
          (-[WebCoreBridge DOM::convertToDOMRange:]):
          (-[WebCoreBridge selectNSRange:]):
          (-[WebCoreBridge markedTextDOMRange]):
          (-[WebCoreBridge markedTextNSRange]):
  
  2005-03-22  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Vicki.
  
  	Fixed <rdar://problem/4062336> REGRESSION (406-407): HTML submenus not working at hrweb.apple.com after going back
  
  	Rolled out the fix for <rdar://problem/4041374> REGRESSION (185-186): unload handlers (at least those added with addEventListener) are broken
  
  	We clearly need a better solution to 4041374. We can't indiscriminately remove event listeners in closeURL() after-all. Since event listeners are registered in a <script> tag, which is evaluated and executed at page load time, this becomes a problem since we don't reevaluate a page's <script> that is in the back/forward cache.  Thus once you leave the page, the listeners are gone for good.  This is the problem.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::closeURL):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::detach): 
  
  === Safari-410 ===
  
  2005-03-22  Vicki Murley  <vicki at apple.com>
  
          - roll the fix for <rdar://problem/4060266> back in, since its 
  	now approved by CCC
  
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::handleTextBox):
  
  2005-03-22  Vicki Murley  <vicki at apple.com>
  
  	- roll out the fix for <rdar://problem/4060266> since it was denied by CCC
  
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::handleTextBox):
  
  2005-03-22  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
          
          <rdar://problem/4060266> Double-clicking in Dictionary.app doesn't work for some words (coming just after style change)
  
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::handleTextBox):
          Complete the check of whether to emit space for collapsed space.
  
  2005-03-22  David Harrison  <harrison at apple.com>
  
          Reviewed by John.
          
          <rdar://problem/4061443> REGRESSION (8A420-8A421): Pasting in the Stickies widget is broken again
  
          * khtml/editing/htmlediting.cpp:
          (khtml::positionBeforeContainingSpecialElement):
          (khtml::positionAfterContainingSpecialElement):
          Return unchanged Position rather than a null or non-editable one.
  
  === Safari-409 ===
  
  2005-03-20  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          I made an error in this test earlier. It was not testing what I intended. Fixed.
  
          * layout-tests/editing/unsupported-content/list-delete-001-expected.txt
          * layout-tests/editing/unsupported-content/list-delete-001.html
          
          New tests:
  
          * layout-tests/editing/unsupported-content/table-delete-001-expected.txt: Added.
          * layout-tests/editing/unsupported-content/table-delete-001.html: Added.
          * layout-tests/editing/unsupported-content/table-delete-002-expected.txt: Added.
          * layout-tests/editing/unsupported-content/table-delete-002.html: Added.
          * layout-tests/editing/unsupported-content/table-delete-003-expected.txt: Added.
          * layout-tests/editing/unsupported-content/table-delete-003.html: Added.
          * layout-tests/editing/unsupported-content/table-type-after-expected.txt: Added.
          * layout-tests/editing/unsupported-content/table-type-after.html: Added.
          * layout-tests/editing/unsupported-content/table-type-before-expected.txt: Added.
          * layout-tests/editing/unsupported-content/table-type-before.html: Added.
  
  2005-03-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3923903> REGRESSION (164-165): Repro Safari crash in khtml::RenderLayer::scrollToOffset
  
          * khtml/rendering/render_layer.cpp: (RenderLayer::scrollToOffset): Check canvas for nil.
  
  2005-03-20  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
          
          <rdar://problem/4055127> Dictionary pop-up panel misplaced at beginning of text blocks (breaks double-clicking in Dictionary.app)
  
          SimplifiedBackwardsTextIterator::advance() needed to not limit to textnodes
          when checking whether moving back across block boundaries
  
          VisibleUnits previousBoundary() needed to INIT_DOWN when creating result VisiblePosition
  
          All editing tests pass.
  
          * khtml/editing/visible_text.cpp:
          (khtml::SimplifiedBackwardsTextIterator::advance):
          * khtml/editing/visible_units.cpp:
          (khtml::previousBoundary):
  
  2005-03-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Harrison.
  
          - fixed <rdar://problem/4059914> when you select all of a frame's content, need to select the frame in the parent document so it can be easily deleted
  
          * khtml/khtml_part.h: Added selectFrameElementInParentIfFullySelected.
          * khtml/khtml_part.cpp:
          (isFrame): Added.
          (KHTMLPart::setFocusNodeIfNeeded): Changed to not set focus to a frame; was not what this function was
          intended to do, and caused trouble when trying to select a frame element.
          (KHTMLPart::khtmlMouseReleaseEvent): Call selectFrameElementInParentIfFullySelected.
          (KHTMLPart::selectAll): Call selectFrameElementInParentIfFullySelected.
          (KHTMLPart::selectFrameElementInParentIfFullySelected): Added. Selects the frame element in the parent
          if a frame is entirely selected, which makes it easier to delete or replace the frame and is consistent
          with the changes Maciej made recently for other elements.
  
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Call selectFrameElementInParentIfFullySelected.
          (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Call selectFrameElementInParentIfFullySelected.
  
  2005-03-20  Darin Adler  <darin at apple.com>
  
          Reviewed by me, code change by Ken.
  
          - fixed <rdar://problem/4059852> Deleting from first element of list makes content jump to wrong place
  
          * khtml/editing/htmlediting.cpp:
          (khtml::isListStructureNode): Added.
          (khtml::DeleteSelectionCommand::moveNodesAfterNode): Check for list nodes as well as table nodes.
  
  2005-03-20  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
          
          Added tests to cover new "unsupported content" editing code.
  
          * layout-tests/editing/unsupported-content/list-delete-001-expected.txt: Added.
          * layout-tests/editing/unsupported-content/list-delete-001.html: Added.
          * layout-tests/editing/unsupported-content/list-delete-002-expected.txt: Added.
          * layout-tests/editing/unsupported-content/list-delete-002.html: Added.
          * layout-tests/editing/unsupported-content/list-delete-003-expected.txt: Added.
          * layout-tests/editing/unsupported-content/list-delete-003.html: Added.
          * layout-tests/editing/unsupported-content/list-type-after-expected.txt: Added.
          * layout-tests/editing/unsupported-content/list-type-after.html: Added.
          * layout-tests/editing/unsupported-content/list-type-before-expected.txt: Added.
          * layout-tests/editing/unsupported-content/list-type-before.html: Added.
  
  2005-03-20  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Maciej
          
          Fix for this bug:
          
          <rdar://problem/4059578> Entire list deleted, and caret disappears, when delete key hit at end of list
  
          The problem is that a new case in the delete code did not consider when the
          downstream end node of the selection might be an ancestor of the upstream start
          node. That is the case in this bug. The downstream end is the body element, and
          this line of code would delete all the children of the downstream end:
              removeChildrenInRangePreservingPosition(m_downstreamEnd.node(), 0, 
                  m_downstreamEnd.offset(), m_upstreamStart);
  
          The fix is to check for this "is ancestor" case, and do some tree logic to find
          the right offset of the downstream end node for the call to
          removeChildrenInRangePreservingPosition().
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::handleGeneralDelete): Fixed as described.
  
  2005-03-19  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Maciej
  
          Fix for this bug:
         
          <rdar://problem/4059384> Cannot place insertion point correctly in editable text that avoids floating elements
  
          Note: I strongly suspect this bug blocks a complete solution to this other Tiger/P2:
          <rdar://problem/4055748> AX: Dictionary pop-up panel shows at wrong place on specific parts of particular pages
  
          * khtml/rendering/render_text.cpp:
          (RenderText::caretRect): Change the y-coordinate used to calculate the available width for a line. Height is wrong.
          Top of the box containing the text where the click is done is correct. Also, add in the x-offset for the start
          of the text box when calculating the available width. If this text box is avoiding a float at the y-coordinate
          for the relevant box, failure to add in the amount of float-avoidance will make the text at the coordinates
          greater than end-of-line minus float-avoidance ineligible for caret placement.
  
  2005-03-19  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/4057594> REGRESSION (125-406): Unrepro crash in HTMLTokenizer::allDataProcessed after hitting Back button
  
          * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::allDataProcessed):
          To get the part safely after calling end, save a guarded pointer to the view.
          The old way could end trying to call a virtual function a part that was destroyed.
  
  2005-03-19  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/4053506> Pasting Tables and Cells in Mail does not allow editing before or after
  	<rdar://problem/4005954> REGRESSION (Mail): After copy/paste of content containing list element cannot go back to entering text at left side of page
  	
          * khtml/editing/htmlediting.cpp:
          (khtml::maxDeepOffset):
          (khtml::CompositeEditCommand::removeFullySelectedNodePreservingPosition):
          (khtml::CompositeEditCommand::removeChildrenInRangePreservingPosition):
          (khtml::CompositeEditCommand::removeNodePreservingPosition):
          (khtml::CompositeEditCommand::insertBlockPlaceholder):
          (khtml::CompositeEditCommand::appendBlockPlaceholder):
          (khtml::CompositeEditCommand::forceBlockPlaceholder):
          (khtml::CompositeEditCommand::addBlockPlaceholderIfNeeded):
          (khtml::isSpecialElement):
          (khtml::isFirstVisiblePositionInSpecialElementInFragment):
          (khtml::positionBeforePossibleContainingSpecialElement):
          (khtml::positionAfterPossibleContainingSpecialElement):
          (khtml::ApplyStyleCommand::applyInlineStyle):
          (khtml::DeleteSelectionCommand::initializePositionData):
          (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
          (khtml::DeleteSelectionCommand::handleGeneralDelete):
          (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
          (khtml::DeleteSelectionCommand::doApply):
          (khtml::InsertParagraphSeparatorCommand::doApply):
          (khtml::ReplacementFragment::ReplacementFragment):
          (khtml::ReplaceSelectionCommand::doApply):
          * khtml/editing/htmlediting.h:
          * khtml/editing/visible_position.cpp:
          (khtml::isRenderedBR):
          (khtml::VisiblePosition::initDownstream):
          (khtml::isLastVisiblePositionInBlock):
          * khtml/rendering/render_line.cpp:
          (khtml::RootInlineBox::closestLeafChildForXPos):
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::isBlockFlowOrTable):
          (NodeImpl::isEditableBlock):
          (NodeImpl::enclosingBlockFlowOrTableElement):
          * khtml/xml/dom_nodeimpl.h:
          * khtml/xml/dom_position.cpp:
          (DOM::Position::upstream):
          (DOM::Position::downstream):
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
          * layout-tests/editing/deleting/delete-select-all-001-expected.txt:
          * layout-tests/editing/deleting/delete-select-all-003-expected.txt:
          * layout-tests/editing/inserting/insert-3786362-fix-expected.txt:
  
  2005-03-19  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Darin.
          
          - fixed <rdar://problem/4058740> Crash (nil-deref) editing Mail reply 
          message in KWQKHTMLPart::fontForSelection (MailViewer-723)
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::fontForSelection):
          Add nil check to loop. It shouldn't be necessary, but this crash trace seems to be
          running into it. We're not completely certain, but the check is harmless at worst.
  
  === Safari-408 ===
  
  2005-03-18  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
          
          <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
          
          Also changed WebKit.
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject rendererForView:]):
          New to cover both the WebCore and WebKit NSViews.
          
          (-[KWQAccObject _accessibilityParentForSubview:]):
          Use rendererForView.
          
          * kwq/WebCoreFrameView.h:
          Add WebCoreBridgeHolder protocol to get access to WebKit NSViews.
  
  2005-03-18  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin, Ken.
  
          <rdar://problem/3735625> AX: add AXPress action if an element has an onclick handler
  
          * khtml/dom/html_form.cpp:
          (HTMLInputElement::click):
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::click):
          (HTMLElementImpl::accessKeyAction):
          * khtml/html/html_elementimpl.h:
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::submitClick):
          (DOM::HTMLButtonElementImpl::click):
          (DOM::HTMLButtonElementImpl::accessKeyAction):
          (DOM::HTMLInputElementImpl::click):
          (DOM::HTMLInputElementImpl::accessKeyAction):
          (DOM::HTMLInputElementImpl::defaultEventHandler):
          (DOM::HTMLLabelElementImpl::accessKeyAction):
          (DOM::HTMLSelectElementImpl::accessKeyAction):
          (DOM::HTMLTextAreaElementImpl::accessKeyAction):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_inlineimpl.cpp:
          (HTMLAnchorElementImpl::defaultEventHandler):
          (HTMLAnchorElementImpl::accessKeyAction):
          * khtml/html/html_inlineimpl.h:
          * khtml/rendering/render_form.cpp:
          (RenderFileButton::click):
          * khtml/rendering/render_form.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::defaultEventHandler):
          * khtml/xml/dom_elementimpl.h:
          (DOM::ElementImpl::accessKeyAction):
          * kwq/DOMHTML.mm:
          (-[DOMHTMLInputElement click]):
          * kwq/KWQButton.h:
          * kwq/KWQButton.mm:
          (QButton::click):
          * kwq/KWQFileButton.h:
          * kwq/KWQFileButton.mm:
          (KWQFileButton::click):
          
          Add accessKeyAction parameter about whether to limit to HTMLElementImpl subclasses that JavaScript wants, or to apply to others as well.
          
          Add click() parameter about whether to send the mousedown and mouseup events in addition to the click event.
          
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject mouseButtonListener]):
          Locate a mousedown, mouseup, or click handler in the current element and its ancestors.
          
          (-[KWQAccObject actionElement]):
          (-[KWQAccObject accessibilityIsIgnored]):
          (-[KWQAccObject accessibilityPerformAction:]):
          Consider mouseButtonListener.
  
  2005-03-18  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Darin.
          
          - fixed <rdar://problem/4002164> maps that include start and end 
          location don't print right from maps.google.com
  
  	I thought I checked this in yesterday but a ChangeLog conflict aborted my checkin
  	without me noticing.
  
          * khtml/rendering/render_style.cpp:
          (RenderStyle::diff):
          flag name changed from _should_correct_text_color to _force_backgrounds_to_white
          
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::InheritedFlags::operator==):
          flag name changed from _should_correct_text_color to _force_backgrounds_to_white
          (khtml::RenderStyle::setBitDefaults):
          ditto
          (khtml::RenderStyle::forceBackgroundsToWhite):
          ditto, and method name changed too
          (khtml::RenderStyle::setForceBackgroundsToWhite):
          ditto
          
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::paint):
          updated for name change; also, compare text against white instead of current bg color
          because we no longer actually modify the bg color (previously we would always set
          the bg color to white, so the result is the same)
          
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::recalcStyle):
          updated for name change
          
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge styleSheetForPrinting]):
          removed this method
          (-[WebCoreBridge reapplyStylesForDeviceType:]):
          removed the code that called styleSheetForPrinting; we no longer use a stylesheet
          for this behavior.
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::paintBackgroundExtended):
          If forceBackgroundsToWhite flag is set, convert background images and
          background colors to white background color with no background image.
          
  2005-03-18  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/4056718> Pasting quotes the entire message
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): After pasting, nodes are moved to the block containing
          the end of the pasted content in certain cases. This move logic used to stop once it moved all the
          siblings of the node following the last node of the pasted-in content. This means that block elements
          could get moved, and if the pasted-in content included a mail blockquote, this could result in
          one quote level getting added. The fix is to stop the move of nodes once a <br>, block element, or
          <table> is seen. This only affected one of the many test cases we have for such scenarios, and 
          the change to that result makes sense given the code change.
          * layout-tests/editing/pasteboard/paste-text-003-expected.txt: This test result changed in a way that
          adequately tests the behavior change, so I did not add a new test.
  
  2005-03-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Fix for this bug:
          
          <rdar://problem/4051809> 8A413: Cursor-up in a mail message sometimes gets stuck (with specific reproducible case)
  
          * khtml/rendering/render_text.cpp:
          (RenderText::positionForCoordinates): Consider two lines: line-above and line-below. If the caret position in line-below
          was at an x coordinate between half way through the x coordinate of the last character on the line-above and the
          end of that same character, this bug would happen since the positioning code would assume that it could create a 
          VisiblePosition with a DOWNSTREAM affinity. Now, I check to see if the character position on the line-above is the 
          last character on that line, and if it is, I use UPSTREAM as the affinity.
  
  === Safari-407 ===
  
  2005-03-17  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin, Ken.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::EditCommandPtr::setEndingSelection):
          Fixed typo so that it calls setEndingSelection rather than setStartingSelection.
          Commented out this unused method, tho, since this is late in Tiger.  Proved unused by successful build after temporarily removing method declaration or implemenation.
  
  2005-03-16  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by mjs.
  
  	Fixed <rdar://problem/4046665> REGRESSION (403-405): mypage.apple.com login does not work (hits assertion in Development build)
  
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Check always came back false when callers would send a nil NSURL to this method. Now we allow the empty url cases, eg., <frame src="">
  
  2005-03-16  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/4045203> REGRESSION (125-188): Redundant JS imports crash Safari
  
          * khtml/html/htmltokenizer.h: Take inWRite bool out of NDEBUG ifdef.
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::HTMLTokenizer): Take inWrite bool management code out of NDEBUG ifdef.
          (khtml::HTMLTokenizer::write): Ditto. Don't call end if inWrite is true, since it will be called
          when you return to the body of the outer write() call.
          (khtml::HTMLTokenizer::allDataProcessed): Don't call end() if inWrite is true for the same reason.
          (khtml::HTMLTokenizer::finish): Ditto.
  
          * kwq/KWQWidget.mm: (QWidget::getOuterView): Removed bogus assertion that has been vexing us of late.
  
  2005-03-16  David Harrison  <harrison at apple.com>
  
          Reviewed by me (written by Patti Yeh).
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
          Use LeftWordIfOnBoundary instead of RightWordIfOnBoundary.
  
          (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
          Use RightWordIfOnBoundary instead of LeftWordIfOnBoundary.
  
  2005-03-16  David Harrison  <harrison at apple.com>
  
          Reviewed by Maciej.
  
          <rdar://problem/4054590> AX: Dictionary panel does not work when page is scrolled on Safari
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject doAXTextMarkerForPosition:]):
          Add in the view's contentsX and contentsY to the point.
  
  2005-03-16  David Harrison  <harrison at apple.com>
  
          Reviewed by Maciej.
  
          <rdar://problem/4048506> Deleting from beginning of editable div deletes other document elements
          
          Also changed WebKit.
          
          * khtml/editing/visible_units.h:
          * khtml/editing/visible_units.cpp:
          (khtml::startOfEditableContent):
          (khtml::endOfEditableContent):
          (khtml::inSameEditableContent):
          (khtml::isStartOfEditableContent):
          (khtml::isEndOfEditableContent):
          New.
          
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge canDeleteRange:]):
          New.
  
  2005-03-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/4042935> undo doesn't work properly during inline input
  
          * kwq/WebCoreBridge.h: Declare new method below.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge replaceMarkedTextWithText:]): New method. Wraps calls to TypingCommand::deleteKeyPressed and
          TypingCommand::insertText to map the way that international text input works onto the typing undo system.
  
  2005-03-16  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/4044336> REGRESSION (8A398-8A409): Option-Delete also deletes space to left of deleted word
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData):
          - skip smart delete if the selection to delete already starts or ends with whitespace
          
          * khtml/khtml_part.cpp:
          (KHTMLPart::handleMousePressEventDoubleClick):
          - preserve selection on double-click when range is already selected
          
          * khtml/xml/dom_position.cpp:
          (DOM::Position::leadingWhitespacePosition):
          (DOM::Position::trailingWhitespacePosition):
          - fix considerNonCollapsibleWhitespace action (logic was reversed)
          - add non-breaking space to the non-collapsable ones
          
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]):
          (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]):
          - these methods do not set the selection, so remove calls to setSelectionGranularity
            
          (-[WebCoreBridge alterCurrentSelection:direction:granularity:]):
          (-[WebCoreBridge alterCurrentSelection:verticalDistance:]):
          - set the granularity back to character
          - the one exception is that we need to keep word granularity
            to preserve smart delete behavior when extending by word
  
  2005-03-15  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/4053266> Pressing return a few times right after a link makes the new blank lines part of the link
  	
          * khtml/editing/htmlediting.cpp:
  	(khtml::InsertLineBreakCommand::doApply): Use
  	positionOutsideContainingSpecialElement in the right two places.
          (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
  
  	- move all these helper functions higher in the file
  	
          * khtml/editing/htmlediting.cpp:
          (khtml::isSpecialElement):
          (khtml::isFirstVisiblePositionInSpecialElement):
          (khtml::positionBeforeNode):
          (khtml::positionBeforeContainingSpecialElement):
          (khtml::maxRangeOffset):
          (khtml::isLastVisiblePositionInSpecialElement):
          (khtml::positionAfterNode):
          (khtml::positionAfterContainingSpecialElement):
          (khtml::positionOutsideContainingSpecialElement):
  
  2005-03-14  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	<rdar://problem/4049925> Pasting right after a link makes pasted content part of the link (without visible style change)
          
          * khtml/editing/htmlediting.cpp:
          (khtml::positionOutsideContainingSpecialElement): made a helper
  	function that computes a position outside the outermost containing
  	special element if the passed in position is right at the start or
  	end of it
          (khtml::InsertTextCommand::prepareForTextInsertion): use new helper here
          (khtml::ReplaceSelectionCommand::doApply): use it here too: this is the fix
          (khtml::positionBeforeNode): made static
          (khtml::positionBeforeContainingSpecialElement): made static
          (khtml::positionAfterNode): made static
          (khtml::positionAfterContainingSpecialElement): made static
  
  2005-03-15  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/4053658> Crash getting direction at maps.google.com
  
  	Add non nil style() check.
  
          Reviewed by Dave Harrison.
  
          * khtml/rendering/render_table.cpp:
          (RenderTableCell::collapsedRightBorder):
  
  2005-03-15  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by John
  	
  	Fixed: <rdar://problem/4041374> REGRESSION (185-186): unload handlers (at least those added with addEventListener) are broken
  
  	The reason why UNLOAD_EVENT wouldn't dispatch was because the code would delete all event listeners at the detach() phase which is prior to closeURL(). 
  
  	This fixes a recent regression from:
  
   <rdar://problem/3977973> pages on ebay leak referenced JavaScript objects -- over time browsing becomes super-slow
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::closeURL): After dispatching event handlers, go ahead and remove them from the DOM. 
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::detach): Took out the call to removeAllEventListenersFromAllNodes(). If we remove all event listeners here then when KHTMLPart::closeURL() checks for even listeners, it will never have any because they'll already be gone. 
  
  2005-03-15  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Vicki
  
          Fox for this bug:
          
          <rdar://problem/4052642> Each delete keystroke is in its own undo group; not included in undo group with other typing
  
          Calling -[WebCore setSelectedDOMRange:range affinity:] had the result of "closing" any active set of typing
          keystrokes grouped together in a single undo operation. A change on 27 Jan in WebKit to change the way delete
          keystrokes are handled made this feature regress. Previous to that change, the backwards delete
          key went through separate code that is no longer in the tree that did not set the selection in the way
          it is done now.
          
          The solution is to add an extra argument to the set-selection call. The WebCoreBridge now offers this method:
          -[WebCore setSelectedDOMRange:range affinity:closeTyping:]. Now, callers must indicate whether setting the 
          selection will act to close typing or not.
  
          * kwq/WebCoreBridge.h: Changed header accordingly to change method shown below.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setSelectedDOMRange:affinity:closeTyping:]): Added closeTyping argument to this method.
  
  2005-03-15  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Vicki.
          
          - fixed <rdar://problem/4052246> crash in KWQKHTMLPart::createPart() trying to display local file in frame
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::createPart):
          Check part for nil before trying to ref. This was probably a longstanding code flaw revealed by
          the recent security fix.
  
  2005-03-15  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Ken and Maciej.
  
  	New fix for <rdar://problem/3667701> crash in KHTMLPart::jScriptEnabled()
  	
  	The tokenizer has buffers which mean parsing can continue even after loading is supposed to be stopped. If the loading process was aborted, the tokenizer should abort, too.
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::HTMLTokenizer): Initialize loadStopped to false.
          (khtml::HTMLTokenizer::write): Go ahead and bail out if loadStopped is true. 
          (khtml::HTMLTokenizer::processToken):
          * khtml/html/htmltokenizer.h: Added loadStopped flag. Changed the view pointer from a standard pointer to a QGuardedPtr.  This fixes the crash.  Now the tokenizer's handle to the view will now automatically nil-out and never dangle.
          * khtml/khtml_part.cpp:
          (KHTMLPart::closeURL): Notify the tokenizer to stop parsing. 
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::XMLTokenizer::XMLTokenizer): Initialize loadStopped to false.
          * khtml/xml/xml_tokenizer.h:
          (khtml::Tokenizer::stopParsing): Added. 
  
  2005-03-14  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin, Maciej.
  
          <rdar://problem/4046103> REGRESSION (Mail): clicking after style change sets insertion point incorrectly
          
          Also fixes crash by adding nil check.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::MoveSelectionCommand::doApply):
          Check the node for nil.
          
          * khtml/khtml_part.cpp:
          (KHTMLPart::khtmlMouseReleaseEvent):
          Use the node from the event rather than from the selection.
  
  2005-03-14  Darin Adler  <darin at apple.com>
  
          Reviewed by Harrison.
  
          - fixed <rdar://problem/4049776> Seed: Mail: Disable spellcheck leaves red artifacts
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl): Set markers list to be "auto-delete" so they don't all leak.
          (DocumentImpl::removeMarker): Remove markers list for a node when the last marker is removed
          for that node. Otherwise, we can have empty marker lists for each node forever until the
          document goes away.
          (DocumentImpl::removeAllMarkers): Added code to dirty the markers.
          (DocumentImpl::shiftMarkers): Remove unneeded empty check.
  
          * kwq/WebCoreBridge.h: Added unmarkAllMisspellings for WebKit.
          * kwq/WebCoreBridge.mm: (-[WebCoreBridge unmarkAllMisspellings]): Added. Calls removeAllMarkers.
  
  2005-03-14  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/4027928> Tiger_8A394:Acrobat crashes while tried to remove the subscription errors by clicking on "Would you like to remove the subscription" from Tracker details view pane
  
  	A document may be deleted as a consequence of handling an event,
  	as was the case with Acrobat.app.  Ensure that the document is still valid
  	before passing the event on for further handling.
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::dispatchUIEvent):
  
  2005-03-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          Added a couple of comments about setChanged() to this code based on my experiences with 4047028.
  
          * khtml/css/css_valueimpl.cpp:
          (DOM::CSSMutableStyleDeclarationImpl::addParsedProperties)
          (DOM::CSSMutableStyleDeclarationImpl::merge)
  
  2005-03-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/4047028> Changing quote levels on stylized text causes it to be sent as colored (Blue). Tiger8A410
  
          * khtml/css/css_valueimpl.cpp:
          (DOM::CSSMutableStyleDeclarationImpl::removePropertiesInSet): This function now calls setChanged() at the 
          end of its loop if any properties were removed. This makes the style system update correctly in response
          to changes made by this function. The code to paste removes style from the pasted content in a 
          preliminary step, and the fact that the style system did not update properly left unwanted color
          declarations in the document.
  
  2005-03-14  Vicki Murley  <vicki at apple.com>
  
  	- roll out this change for now, since it was denied by CCC
  
      2005-03-11  David Harrison  <harrison at apple.com>
          
          Reviewed by Darin.
          
          <rdar://problem/4046602> WebCore invokes undefined behavior when the spell checker isn't running
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::advanceToNextMisspelling):
          (KWQKHTMLPart::markMisspellings):
          Nil check checker.
  
  2005-03-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/4050403> Mail crashes after pasting and deleting the content of one Excel cell
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::handleGeneralDelete): Add some null checks to the code. This fixes the crash, although
          following the steps described in the bug by John Sullivan on 3/14/05 at 10:49 AM will leave us with a "blank line" in 
          the document that cannot be removed (this is actually an empty table). This is undesirable, however, work Maciej is
          doing to fix the general-case problem of trying to edit constructs we do not handle well in editing should fix this
          particular case, making the deletion of this "blank line" possible. Maciej is doing this work as part of this bug:
          <rdar://problem/4036051> Hard to select (and thus delete) an IFRAME in an editable WebView
  
  2005-03-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/4029632> Mail crashes in DOM::NodeImpl::isBlockFlow() after pasting text with alignment style and BR element from Safari
          
          The problem is that removeInlineStyle() can remove nodes, and if either the start or end node of the
          selection at the time of the call to removeInlineStyle() was in a node that got removed, bad things
          would happen. The fix is described below.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::maxRangeOffset): Moved this static function to a different place in the file so the code below can use it.
          (khtml::ApplyStyleCommand::applyInlineStyle): Calling removeInlineStyle() now has the side effect of 
          setting the command's ending selection. Now resets start and end using the ending selection after the call to
          removeInlineStyle() as it is done elsewhere in this function.
          (khtml::ApplyStyleCommand::removeInlineStyle): Track the removal of the start or end node based on
          the positions passed in. If either the start or the end node is removed as part of style removal, 
          set an appropriate replacement start or end that is still in the document.
  
  === Safari-406 ===
  
  2005-03-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          I need to roll out Kevin's change to fix 3667701. It breaks contextual fragments, and hence breaks
          paste in editing (among other things).
  
          * khtml/html/htmltokenizer.cpp: Roll out recent change.
          (khtml::HTMLTokenizer::write) 
          * khtml/html/htmltokenizer.h: Ditto.
  
  2005-03-13  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken and Maciej.
  
          - fixed <rdar://problem/4049040> REGRESSION (403-405): security check prevents user stylesheet from loading (Dictionary.app doesn't work at all!)
  
          * kwq/WebCoreBridge.mm: (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Changed to give "applewebdata:"
          documents the same privileges to open local files that "file:" documents have.
  
  2005-03-13  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by mjs.
          
          Fixed: <rdar://problem/3667701> crash in KHTMLPart::jScriptEnabled()
          
          The problem here was that the tokenizer would continue to receive chunks of data from the loader already
          after the view and part had been destroyed.  Situations like this could arise when clicking on another link 
          while still loading the current view, or during self test where we rapidly open, load, and close browser
          windows very fast. 
  
          * khtml/html/htmltokenizer.cpp: 
          (khtml::HTMLTokenizer::write): Simple nil check against the view. 
          * khtml/html/htmltokenizer.h: Changed the view pointer from a standard pointer to a QGuardedPtr.  The tokenizer's
          handle to the view will now automatically nil-out and never dangle.
  
  2005-03-13  Darin Adler  <darin at apple.com>
  
          Reviewed by John and Ken.
  
          - fixed <rdar://problem/4044347> REGRESSION (Mail): Control-K in particular message moves insertion point to previous line
  
          Tweaked the deleting code, and added three new deleting layout tests to confirm the new code works.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete): Removed special case with comment that said it was
          for the case where a "selection contains only a BR right after a block ended". This code was being triggered in
          more cases than just that one, and in all the cases I tested, the general delete code works fine.
          (khtml::DeleteSelectionCommand::handleGeneralDelete): Changed the code that decides whether to delete an entire
          block to understand the case where the end block is outside the start block, but contains the start block.
          In that case, we want to delete the entire block. Not deleting the block was causing us to delete just the <br>,
          and not the enclosing <div> in the case in the bug.
  
          * layout-tests/editing/deleting/delete-line-015-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-015.html: Added.
          * layout-tests/editing/deleting/delete-line-016-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-016.html: Added.
          * layout-tests/editing/deleting/delete-line-017-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-017.html: Added.
          * layout-tests/editing/style/smoosh-styles-002-expected.txt: Updated to improved results. With the code change, the deletion
          now deletes more than it used to. The old results had an empty text node and <h1> element that were both 0-sized, and now
          we delete both of those.
  
  2005-03-13  Darin Adler  <darin at apple.com>
  
          - fixed <rdar://problem/4049172> REGRESSION (403-405): Gmail: text box in "Invite a friend" section overlaps other sections
  
          Rolled out fix for <rdar://problem/3952698> Function buttons do not display properly with Telia Webmail
  
          * khtml/rendering/render_replaced.cpp: (RenderReplaced::calcMinMaxWidth): Back to previous version of this file.
  
  2005-03-12  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Adele.
  
  	<rdar://problem/4046144> RSS pages leave a hole in local file security policy (need to revert feed: exemption)
          
  	* kwq/WebCoreBridge.mm:
          (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Revert
  	emergency workaround for Safari RSS, now that a new Syndication
  	has been submitted.
  
  2005-03-11  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	<rdar://problem/4026787> text typed after a link (pasted or Mail Link to this Page) is part of the link, underlined and colored blue
          
  	The concept of this change is every time you type at the very
  	start or very end of a link (even if nested in further inner
  	elements), the typed text goes outside the link instead of inside.
  	
  	* khtml/editing/htmlediting.cpp:
          (khtml::InsertTextCommand::prepareForTextInsertion): Check whether
  	we are at the first visible position or last visible position of a
  	special element. For now this only includes HTML A elements that
  	are links (i.e. they have an href).
  	(khtml::isSpecialElement): Helper function that identifies special
  	elements (for now only links).
          (khtml::isFirstVisiblePositionInSpecialElement): Checks if a given DOM
  	position is equivalent to the first visible position in some containing 
  	editable special element.
          (khtml::positionBeforeNode): Returns the DOM position immediately
  	before a node.
          (khtml::positionBeforeContainingSpecialElement): Gives a DOM
  	position immediately before the outermost editable containing
  	special element where the passed-in position is equivalent to the
  	first visible position.
          (khtml::maxRangeOffset): Helper to get the maximum allowed
  	range/position offset for a node, does the right thing based on
  	whether the node would use a character offset or child offset.
          (khtml::isLastVisiblePositionInSpecialElement): Similar to above,
  	but for end of node instead of start.
          (khtml::positionAfterNode): Ditto.
          (khtml::positionAfterContainingSpecialElement): Ditto.
  
  	Some layout tests changed - I looked over all the diffs and found
  	that the only changes were "junk nodes" like empty spans and text
  	nodes moving from one spot in the tree to another. These changes
  	are all harmless and do not affect layout or future editing.
  
          * layout-tests/editing/inserting/typing-003-expected.txt:
          * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt:
          * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt:
          * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt:
          * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt:
          * layout-tests/editing/style/remove-underline-expected.txt:
          * layout-tests/editing/style/remove-underline-from-stylesheet-expected.txt:
          * layout-tests/editing/style/remove-underline-in-bold-expected.txt:
          * layout-tests/editing/style/typing-style-003-expected.txt:
          * layout-tests/editing/style/unbold-in-bold-expected.txt:
          * layout-tests/editing/style/underline-expected.txt:
  
  2005-03-11  Adele Amchan  <adele at apple.com>
  
          backing out fix for <rdar://problem/4021711> REGRESSION (125-188): blank pages when browsing forum at cooperativeresearch.org - cached external script problem
  
          This caused the following regressions (that we know of): 
          <rdar://problem/4047445> REGRESSION (Safari-400-403?): Some or all page contents sometimes don't appear (macworld.com)
          <rdar://problem/4046153> 8a409: Problem loading Citibank page in Safari 2 (403)
          <rdar://problem/4047801> REGRESSION (402-403): .Mac homepage links don't work
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::scriptHandler):
  
  2005-03-11  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/4046602> WebCore invokes undefined behavior when the spell checker isn't running
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::advanceToNextMisspelling):
          (KWQKHTMLPart::markMisspellings):
          Nil check checker.
  
  2005-03-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          * ForwardingHeaders/editing/visible_units.h: Added.
  
  2005-03-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/4045521> Hitting return key with full line selected does not add blank line as it should
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply): Removed some "special-case" code from this 
          function that would look for a selection that started and ended in a different block, and would
          then bail right after the deletion of the selection without inserting a paragraph separator.
          This was just wrong. So, the code change is removal only. When the general-case code runs instead
          of the erroneous special-case code, the bug goes away.
          
          New tests:
          
          * layout-tests/editing/inserting/return-key-with-selection-001-expected.txt: Added.
          * layout-tests/editing/inserting/return-key-with-selection-001.html: Added.
          * layout-tests/editing/inserting/return-key-with-selection-002-expected.txt: Added.
          * layout-tests/editing/inserting/return-key-with-selection-002.html: Added.
          * layout-tests/editing/inserting/return-key-with-selection-003-expected.txt: Added.
          * layout-tests/editing/inserting/return-key-with-selection-003.html: Added.
  
  2005-03-11  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/4009446> AX: kAXTextMarkerForPositionParameterizedAttribute not working correctly (required for Dictionary pop-up)
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityAttributeValue:]):
          Comment changes.
          
          (-[KWQAccObject doAXTextMarkerForPosition:]):
          Dig into widgets.
          
          (-[KWQAccObject doAXBoundsForTextMarkerRange:]):
          Use the selection's document instead of the top document, to accommodate frames, etc.
          
          (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
          Fixed parameter processing to look for NSValue instead of AXValue.
  
  2005-03-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Fix for this bug:
          
          <rdar://problem/3972665> 8A360: HTML message partially truncated on left hand side, text-indent from Script Editor
          
          This was fixed, then regressed with Harrison's fix for this bug:
          
          <rdar://problem/3948453> Can't type accented chars as first character in Stickies widget
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): My now addresses both problems in a way that they no longer
          clobber each other.
  
  2005-03-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for these bugs:
          
          <rdar://problem/4045511> Copying and pasting end-of-paragraph selection puts insertion point in wrong place
          <rdar://problem/4045513> Copying and pasting selection starting at end of paragraph can incorrectly remove line break
  
          The copy/paste code before this patch had no notion of a "logical newline" at the start of the selection. We have
          had a similar notion for "logical newline" at the end of the selection for quite some time. To fix these bugs, we
          need to introduce the same idea for selection starts.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplacementFragment::ReplacementFragment): Process the "logical newline" at start as we write it out
          in markup. Set the bit we added to this object to signify we have such a newline.
          (khtml::ReplaceSelectionCommand::doApply): Many, many changes to introduce the new "logical newline" at start concept.
          I also tried to simply the code that sets the start position for inserting content to be pasted. I also improved a
          weakness in the smart-paste code. Now, we check before and after the paste for whether we need to add a leading or
          trailing space. The code previous to this patch only did a "before" check, with the result that we sometimes added
          a second space. In other words, the code did not realize that DOM changes done by pasting could cause formerly
          unrendered whitespace to become rendered. Also moved line placeholder clean up code to its own function.
          (khtml::ReplaceSelectionCommand::removeLinePlaceholderIfNeeded): New helper that further refines the notion
          of when we can remove a line placeholder. The definition is now, "If a line placeholder is at the visible start
          and visible end of its line, keep it; otherwise remove it".
          * khtml/editing/htmlediting.h: Declare new functions. Rework inlines in ReplacementFragment class to account for
          addition of new "logical newline" at start concept.
          (khtml::ReplacementFragment::hasInterchangeNewlineAtStart): New accessor.
          (khtml::ReplacementFragment::hasInterchangeNewlineAtEnd): Renamed from hasInterchangeNewline(), since before we
          only had a bit for the end, hence we did not need to distinguish it from the start.
          * khtml/editing/markup.cpp:
          (khtml::createMarkup): Added code to detect and write out markup for cases where we have a "logical newline" at start.
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::startPosition): New helper.
          (DOM::RangeImpl::endPosition): Ditto.
          * khtml/xml/dom2_rangeimpl.h: Declare new helpers.
          
          New tests:
          * layout-tests/editing/pasteboard/paste-line-endings-001-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-001.html: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-002-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-002.html: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-003-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-003.html: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-004-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-004.html: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-005-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-005.html: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-006-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-006.html: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-007-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-007.html: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-008-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-008.html: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-009-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-009.html: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-010-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-line-endings-010.html: Added.
  
  === Safari-405 ===
  
  2005-03-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Richard.
  
          - fixed <rdar://problem/4037700> Every character typed causes stat call for /usr/share/icu/icudt32b_char.brk
  
          * khtml/rendering/render_text.cpp: (getCharacterBreakIterator): Set boolean "got iterator" to true.
  
  2005-03-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/4042867> "Bigger" changes the font size of too much text when the selection is on a style-change boundary
  
          * khtml/editing/htmlediting.cpp: (khtml::ApplyStyleCommand::applyRelativeFontStyleChange):
          Advance out of the starting text node if we're at the end of it.
  
  2005-03-10  Darin Adler  <darin at apple.com>
  
          * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::write): Fixed assertion for nested calls to write.
  
  2005-03-10  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/4032346> REGRESSION (Mail): changing 1st line of a URL that wraps to two lines doesn't always update 2nd line
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::matchedEndLine):
          Look at first clean line in case line wrap implicitly dirtied it.
  
  2005-03-10  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Vicki.
  
  	<rdar://problem/4046018> REGRESSION (TOT): RSS pages don't display anything
          
  	* kwq/WebCoreBridge.mm:
          (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Exempt
  	feed: and feeds: pages from the local file security check.
  
  2005-03-10  Darin Adler  <darin at apple.com>
  
          Change written by Steve Peters, reviewed by me.
  
          - fixed <rdar://problem/4045924> improve compareBoundaryPoints to make style changes faster
  
          * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::compareBoundaryPoints):
          Do early outs in a couple of the loops to make things faster.
  
  2005-03-10  Jens Alfke  <jens at apple.com>
  
          Reviewed by rjw.
  
  	Fixes <rdar://problem/4040848> "REGR: Sun security-check demo applet does not load". My earlier fix for 3603191 deferred loading the applet until the </applet> tag is reached, so all <param>s will be available. Unfortunately that meant that if the </applet> tag was missing, the applet would never load at all. So instead, the loading needs to happen when the ID_APPLET tag is popped from the parser stack for any reason.
  
  	I've restored the old NodeImpl::closeRenderer() method. Except it's now virtual, with a no-op base implementation, and is overridden by HTMLAppletElementImpl, replacing its setAllParamsAvailable method that I added a few weeks ago when fixing 3603191.
  
  	This ensures that the applet will get loaded even if there is no explicit </applet> tag.
  
  	The changes to htmlparser.cpp back out my earlier change and restore the lines that were deleted on 8/3/04 when the old closeRenderer was removed.
  
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::closeRenderer):
          * khtml/html/html_objectimpl.h:
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::insertNode):
          (KHTMLParser::processCloseTag):
          (KHTMLParser::popOneBlock):
          * khtml/xml/dom_nodeimpl.h:
          (DOM::NodeImpl::closeRenderer):
  
  2005-03-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/4024929> REGRESSION (Mail): Pasting text with multiple reply levels removes one level instead of all
          
          The code to figure out which node to use to merge into an existing line did not drill into the first inline element
          as needed to make the feature work as user expect. Instead, it looked at the first node, and if it was a block, it
          skipped that node. This worked for some cases (including the important "paste-as-quotation" case) but obviously 
          doesn't work for content quoted more than once.
          
          Now, mergeStartNode() will look for the first node in pasted content that is not a block. It will now also look
          for nodes specially marked by Mail as a node added to make "Paste As Quotation" work. It won't skip those. 
          
          NOTE: This change will break Mail's "Paste As Quotation" feature for TOT WebKit users, but this is only a temporary 
          problem that will exist until we sync up with Mail's pending change to mark nodes as needed in its pasteAsQuotation:
          method.
          
          * khtml/editing/html_interchange.h: Add ApplePasteAsQuotation constant used to check for "marked" blockquotes.
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplacementFragment::mergeStartNode): Look for first node that is either not a block or is marked as
          an ApplePasteAsQuotation node.
          (khtml::isMailPasteAsQuotationNode): New helper that looks for nodes marked with ApplePasteAsQuotation.
          * khtml/editing/htmlediting.h: Updated header for new function.
          
          This test result changed is an acceptable way.
          
          * layout-tests/editing/pasteboard/paste-text-013-expected.txt
          * layout-tests/editing/pasteboard/paste-text-013.html
  
          NOTE: This change causes a regression in this layout test:
  
          * layout-tests/editing/pasteboard/paste-text-013.html
  
          This problem will need to be fixed separately, and this bug has been filed to track this problem:
          <rdar://problem/4045513> Copying and pasting selection starting at end of paragraph can incorrectly remove line break
  
  2005-03-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Richard.
  
  	<rdar://problem/4040776> Dashboard (Weather widget) is a memory hog
          
  	Change things around so the event listeners for XMLHttpRequest
  	mark their JS listener objects instead of holding a hard
  	reference, to avoid an unbreakable reference cycle.
  
  	* khtml/ecma/kjs_events.cpp:
          (JSAbstractEventListener::JSAbstractEventListener):
          (JSAbstractEventListener::~JSAbstractEventListener):
          (JSAbstractEventListener::handleEvent):
          (JSAbstractEventListener::eventListenerType):
          (JSUnprotectedEventListener::JSUnprotectedEventListener):
          (JSUnprotectedEventListener::~JSUnprotectedEventListener):
          (JSUnprotectedEventListener::listenerObj):
          (JSUnprotectedEventListener::windowObj):
          (JSUnprotectedEventListener::mark):
          (JSEventListener::JSEventListener):
          (JSEventListener::~JSEventListener):
          (JSEventListener::listenerObj):
          (JSEventListener::windowObj):
          (JSLazyEventListener::JSLazyEventListener):
          * khtml/ecma/kjs_events.h:
          * khtml/ecma/kjs_html.h:
          * khtml/ecma/kjs_window.cpp:
          (Window::getJSEventListener):
          (Window::getJSUnprotectedEventListener):
          * khtml/ecma/kjs_window.h:
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::putValue):
          (KJS::XMLHttpRequest::mark):
          * khtml/ecma/xmlhttprequest.h:
          * khtml/khtml_part.h:
  
  2005-03-06  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/4005575> Arbitrary file disclosure vulnerability due to ability to load local html from remote content
          
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::putValue):
          * khtml/ecma/kjs_window.cpp:
          (Window::put):
          (WindowFunc::tryCall):
          (Location::put):
          (LocationFunc::tryCall):
          * khtml/khtml_part.cpp:
          (KHTMLPart::begin):
          (KHTMLPart::scheduleLocationChange):
          (KHTMLPart::slotRedirect):
          (KHTMLPart::processObjectRequest):
          * khtml/khtml_part.h:
          * khtml/khtmlpart_p.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::openURLRequest):
          (KWQKHTMLPart::urlSelected):
          (KWQKHTMLPart::createPart):
          * kwq/KWQKHTMLPartBrowserExtension.mm:
          (KHTMLPartBrowserExtension::createNewWindow):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (hasCaseInsensitivePrefix):
          (-[WebCoreBridge didNotOpenURL:pageCache:]):
          (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]):
  
  2005-03-09  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/4032938> Safari: text layout for MS P Gothic font is corrupted
  
  	Remove our hacked special case now we have our own cache of
  	which fonts are fixed  pitch.
  
          Reviewed by Maciej.
  
          * kwq/KWQFont.mm:
          (QFont::isFixedPitch):
  
  2005-03-09  David Harrison  <harrison at apple.com>
  
          Reviewed by Maciej.
  
          <rdar://problem/4037141> REGRESSION (Mail): Pasting deletes preceding blank lines with certain steps
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
          Add check for anonymous text after blocks.
  
  2005-03-08  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for these bugs:
          
          <rdar://problem/4039661> crash in ApplyStyleCommand::applyBlockStyle pasting contents of webpage into Mail or Blot
          <rdar://problem/4039672> hang in moveParagraphContentsToNewBlockIfNecessary after pasting contents of webpage into Blot
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Fix for 4039672. Iteration needs to do
          a traverseNextSibling(), not a traverseNextNode(). The latter might iterate into a child that already got moved, and
          the code can infinite loop as a result.
          (khtml::ApplyStyleCommand::applyBlockStyle): Fix for 4039661. This function iterates over a set of nodes to apply
          block styles. Before, the iteration would go from the start to the end of the selection, and apply block styles
          as it went. However, the act of applying style could confuse the iteration. Now I iterate and store the relevant
          nodes in QPtrList before doing any style manipulation, and then iterate that set of nodes.
  
  2005-03-08  Darin Adler  <darin at apple.com>
  
          Change written by Hyatt, reviewed by me.
  
          - fixed <rdar://problem/3952698> Function buttons do not display properly with Telia Webmail
  
          * khtml/rendering/render_replaced.cpp: (RenderReplaced::calcMinMaxWidth):
          Only use a minWidth of 0 for images with a percentage value. Other replaced elements aren't scalable
          so their minWidth should be their calculated width. This has been wrong all along, but it's a relatively
          safe change because it only affects replaced elements' min-width.
  
  2005-03-08  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken.
  
          <rdar://problem/4039006> REGRESSION (Mail): Command-left-arrow goes to the start of the wrong line in particular message
  
          * khtml/editing/visible_units.cpp:
          (khtml::startOfLine):
          Use firstLeafChild() instead of firstChild().
  
  2005-03-08  Richard Williamson   <rjw at apple.com>
  
  	Fixed by Tom Madden.
  
  	Fixed <rdar://problem/4038586> 8A402: Osaka-Mono text overlaps when typing with input method
  
  	We weren't clearing the "all ascii" flag when setting text on
  	RenderText.
  
          Reviewed by Richard Williamson.
  
          * khtml/rendering/render_text.cpp:
          (RenderText::setText):
  
  2005-03-08  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken and Maciej.
  
          - fixed <rdar://problem/3988809> REGRESSION (Mail): wide space characters are turned into plain old spaces when typed or pasted
  
          Changed the few places where it matters to use a "collapsible whitespace" concept instead of
          the general whitespace concept. This means treating only ' ' and '\n' specially instead of
          including other space characters, which matches what the space-collapsing logic does in RenderText,
          although it really needs to behave differently based on whitespace mode.
  
          * khtml/editing/visible_text.h: (khtml::isCollapsibleWhitespace): Added. This returns true only for
          ' ' and '\n' since they are the only characters collapsed once text is in the DOM. But really it
          can't do the job ignoring white-space mode, so some day it must go.
  
          * khtml/editing/html_interchange.cpp: (convertHTMLTextToInterchangeFormat): Changed to use
          isCollapsibleWhitespace and removed unnecessary calls to latin1().
  
          * khtml/editing/htmlediting.cpp:
          (khtml::isNBSP): Removed unnecessary creation/destruction of QChar each time this is called.
          (khtml::nextCharacterIsCollapsibleWhitespace): Renamed from isWS and changed to use isCollapsibleWhitespace.
          (khtml::DeleteSelectionCommand::fixupWhitespace): Use isCollapsibleWhitespace instead of isWS,
          since we only want to do our NBSP tricks for collapsible whitespace.
          (khtml::InsertTextCommand::input): Changed use of isTab to instead say == "\t" since that does the
          same thing and is arguably just as clear. Changed use of isWS to == " " since the input text can't
          include any "\n" characters, and really a plain old space is the only collapsible thing that can
          be passed in. Use isCollapsibleWhitespace instead of isWS since we want to do NBSP tricks only for
          collapsible whitespace, not all whitespace.
          (khtml::InsertTextCommand::insertSpace): Use isCollapsibleWhitespace instead of isWS since we want
          to do NBSP tricks only for collapsible whitespace, not all whitespace.
          (khtml::RebalanceWhitespaceCommand::doApply): Ditto.
  
          * khtml/xml/dom_position.h: Changed treatNBSPAsWhiteSpace parameters to considerNonCollapsibleWhitespace
          parameters. The most common callers are only interested in collapsible whitespace, and the smart copy
          and paste callers want to include all whitespace, including non-breaking spaces and all the Unicode spaces.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::leadingWhitespacePosition): Rename the parameter, and use either QChar::isSpace or
          isCollapsibleWhitespace depending on the boolean passed in.
          (DOM::Position::trailingWhitespacePosition): Ditto.
  
  2005-03-07  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Darin.
          
          - <rdar://problem/4040868> REGRESSION (Mail, 403-403+): Drag and drop deletes text, 
          many other bad editing problems
  
          * khtml/rendering/render_text.cpp:
          (RenderText::caretMaxOffset):
          A "-" should have been a "+" in this method that was tweaked an hour ago. Editing
          was completely horked.
  
  2005-03-07  Richard Williamson   <rjw at apple.com>
  
  	Additional nil check from fix for 4040749.
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::setStyle):
  
  2005-03-07  Richard Williamson   <rjw at apple.com>
  
  	Additional nil check from fix for 4040749.
  
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::updateLayerPosition):
  
  2005-03-07  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/4033202> REGRESSION (Mail): Can't arrow up at a particular spot in a particular Mail message
  
          Doublecheck that new position is really on a different line, because the VisiblePosition constructor does not.
          Filed <rdar://problem/4040763> for that problem.
  
          * khtml/editing/visible_units.cpp:
          (khtml::previousLinePosition):
  
  2005-03-07  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/4040749> REGRESSION (125-178): opacity style not working, breaks fading images on okcupid.com
  
  	When layers are dynamically created/removed as a result of changing opacity they weren't being correctly
  	sized and positioned.  This happens whenever opacity goes from < 1 to 1.
  
          Reviewed by Darin.
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::setStyle):
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::updateLayerPosition):
  
  2005-03-07  Christy Warren  <kali at apple.com>
  
          Reviewed by Darin
  
          * khtml/rendering/render_text.cpp:
          (RenderText::caretMinOffset): modified to handle BIDI case by checking all text boxes for min offset
          (RenderText::caretMaxOffset): modified to handle BIDI case by checking all text boxes for max offset
  
  2005-03-07  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken.
  
          <rdar://problem/4029225> REGRESSION (Mail): Crash if hit return after dragging in attachment - DeleteSelectionCommand::initializePositionData
  
          Work around the fact that the height() of a BR is 0 if there are no text elements on the line, even if there are replaced elements.
          Filed <rdar://problem/4040358> RenderBR height() is not accurate.
          
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply):
          When height is 0, double check that the placeholder is the first position on the line.
  
  === Safari-403 ===
  
  2005-03-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Vicki
      
          Fix for this bug:
          
          <rdar://problem/4040136> Expose SPI for WebCore's functions to create document fragments from plain text and markup strings
  
          * kwq/DOMHTML.mm: Add two new SPI functions.
          (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:])
          (-[DOMHTMLDocument _createDocumentFragmentWithText:])
          * kwq/DOMPrivate.h: Declare the new SPI here, a privately-exported header, so Mail can make use of it.
  
  2005-03-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/4039676> REGRESSION (Mail): in reply, <cr> on pasted text (without trailing newline) is eaten when pasted above date
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): Code to "eat" a <br> element, that was creating an otherwise empty line, was running
          when it should not. If the content being pasted in does not end in a "logical" newline itself, then the <br> already
          in the content needs to be preserved. A simple one-line change now sees to this.
          
          * layout-tests/editing/pasteboard/paste-text-010-expected.txt: This test now has an extra, but harmless,
          <br> at the end of a paragraph. This makes sense given the code change.
  
          New test:
          * layout-tests/editing/pasteboard/paste-text-018-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-018.html: Added.
  
  2005-03-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/4035648> REGRESSION (Mail): line feed in source HTML file causes bad copy/paste behavior
  
          The createMarkup() function in markup.cpp iterates over the nodes in a range,
          and does some bookkeeping to figure out when to add close tags to the markup.
          Some code added at the start of the loop to prevent markup from being written
          for unrendered nodes short-circuited the rest of the loop, and so prevented
          the close-tag-writing code from running when it should.
  
          This is why the "plain" text wound up inside of the bold tag in the example
          above. The addition of the unrendered return character caused an incorrect
          delay in the close tag for the bold element from being written out, with the
          result being that it wound up including additional content.
  
          The fix is to add checks for node renderers throughout the loop at the points
          where markup is written out for each node. This allows the additional close
          tag logic to run as needed.
  
          All layout tests pass with this change.
  
          * khtml/editing/markup.cpp:
          (khtml::createMarkup)
  
          New test:
          
          * layout-tests/editing/pasteboard/paste-4035648-fix-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-4035648-fix.html: Added.
  
  2005-03-06  Christy Warren  <kali at appple.com>
  
          Reviewed by Ken
  
          * khtml/rendering/render_text.cpp:
          (lastRendererOnPrevLine): helper for RenderText::caretRect
          (RenderText::caretRect): added code to properly handle bidi ordered text boxes
  
  2005-03-06  Christy Warren  <kali at apple.com>
  
          Reviewed by Darin.
  
          * khtml/editing/visible_position.cpp: Eliminated code that cuts off searching through the text boxes based on an assumption that breaks under bidi
          (khtml::VisiblePosition::isCandidate):
          * kwq/KWQFontMetrics.mm:
          (QFontMetrics::checkSelectionPoint): Made the initialization of the WebCoreStyle honor the reversed flag
  
  2005-03-05  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Maciej.
          
          - fixed <rdar://problem/4038417> Mail crashed in StyleChange::checkForLegacyHTMLStyleChange 
          when composing a reply
  
          * khtml/editing/htmlediting.cpp:
          (khtml::StyleChange::checkForLegacyHTMLStyleChange):
          Added missing nil check.
  
  2005-03-05  Darin Adler  <darin at apple.com>
  
          Reviewed by Don.
  
          - fixed <rdar://problem/4038478> Crash in renderer viewing RSS feed at feed://wvs.topleftpixel.com/index.rdf
  
          * khtml/xml/dom_docimpl.cpp: (widgetForNode): Check for nil before going from node to renderer.
  
  2005-03-05  Darin Adler  <darin at apple.com>
  
          Reviewed by Richard.
  
          - fixed <rdar://problem/4037700> Every character typed causes stat call for /usr/share/icu/icudt32b_char.brk
  
          * khtml/rendering/render_text.cpp:
          (getCharacterBreakIterator): Added. Helper that sets up an iterator for the passed-in text.
          Shares a single global iterator (fast, albeit not thread-safe).
          (RenderText::previousOffset): Changed to call getCharacterBreakIterator.
          (RenderText::nextOffset): Ditto.
  
  2005-03-05  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/4038267> REGRESSION (Mail): Crash copying and pasting end of paragraph
  
          Code to handle content that has a "logical" newline at the end of the pasted content, and the code
          to adjust the selection at the end of the paste operation made an assumption that at least one
          node had been inserted by the paste command. This is not necessarily true in the case where the sole content
          in the pasted content is one of these "logical" newlines. Adjust some code around so that we don't deref
          null, but still adjust the selection correctly for this case. In each of the two functions below, some
          null checks have been added, and some code has been rearranged a little bit to continue on through
          the end of completeHTMLReplacement, even if no nodes have been inserted. The patch looks bigger and more
          complicated than the conceptual change.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply)
          (khtml::ReplaceSelectionCommand::completeHTMLReplacement)
          
          * layout-tests/editing/pasteboard/paste-4038267-fix-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-4038267-fix.html: Added.
  
  2005-03-05  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/4025918> images copied from Safari with relative src URLs aren't pasted into Mail messages (KURL resolves base URLs incorrectly)
  
          * kwq/KWQKURL.mm: (KURL::KURL): Add a slash at the start of the path if a relative part is adding
          a path onto a URL that has "pre-path" bits like host name, but no path yet. This doesn't come up
          for http because in that case we add a trailing "/" as part of canonicalization.
  
  2005-03-04  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Kevin.
          
          - fixed <rdar://problem/4033705> REGRESSION (Mail): Copy/Paste from Excel 
          crashes Mail in KWQKHTMLPart::fontForSelection(bool*) const + 232
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::fontForSelection):
          Check for nil startNode, not just nil renderer.
  
  2005-03-04  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken, Richard.
  
          <rdar://problem/3996383> REGRESSION (Mail): Deleting all of first line also deletes line ending
  
          Problem was the placeholder check was based on 0 height block, but the block in this
          case is the BODY, which has other content even though the paragraph is gone.
          
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::insertBlockPlaceholder):
          Now does insert instead of append!
      
          (khtml::CompositeEditCommand::appendBlockPlaceholder):
          New.  Actually does append.
          
          (khtml::CompositeEditCommand::addBlockPlaceholderIfNeeded):
          Renamed from insertBlockPlaceholderIfNeeded because it can insert or append.  Also accepts "force insert" flag.
          
          (khtml::CompositeEditCommand::removeBlockPlaceholder):
          Renamed for succinctness from removeBlockPlaceholderIfNeeded.
          
          (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
          (khtml::DeleteSelectionCommand::moveNodesAfterNode):
          Use renamed methods.
          
          (khtml::DeleteSelectionCommand::doApply):
          Use addBlockPlaceholderIfNeeded "force insert" flag if deleting whole paragraphs did not leave an empty one.
          
          (khtml::InsertParagraphSeparatorCommand::doApply):
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
          (khtml::InsertTextCommand::input):
          Use renamed methods.
          
          * khtml/editing/htmlediting.h:
          Renamed and new methods per above.
          
  
  2005-03-04  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/4032840> REGRESSION (Mail): crash in RemoveNodeCommand after pasting attachment at end of message
  
          Reviewed by darin.
  
          * khtml/editing/visible_units.cpp:
          (khtml::endOfParagraph): don't consider text nodes that have no rendered characters
  
  2005-03-04  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/4034764> REGRESSION(125-188)Viewing text/plain page and going back/forward corrupts HTML pages (google.com)
  
  	The parse mode wasn't be restored to the document when going
  	back.
  
          Reviewed by Hyatt.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::openURLFromPageCache):
          * kwq/KWQPageState.h:
          * kwq/KWQPageState.mm:
          (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:]):
  
  2005-03-04  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          * layout-tests/editing/style/create-block-for-style-012-expected.txt: Shame on me!
          I landed my last fix without running layout tests. This one changes in a subtle, but
          acceptable way.
  
  2005-03-04  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Fix for this bug:
          
          <rdar://problem/4032543> REGRESSION (Mail): Mail hangs when quoted text is pasted twice
          
          This code change fixes the bug in a non-obvious way. The root cause of the problem was
          that a VisiblePosition created using an affinity originating in Mail code caused 
          two VisiblePosition objects that should have been equal to differ only in their 
          affinities, which in turn caused us to run a code path that should not have run.
  
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::VisiblePosition): Added copy constructor.
          (khtml::VisiblePosition::next): Factored out inline code that used to be here into new
          setAffinityUsingLinePosition() function.
          (khtml::isEqualIgnoringAffinity): New helper to handle cases when affinity in equality check does
          not matter. However, we want to know about such cases where a VisiblePosition differs only by affinity, 
          and the code will assert in development when this happens.
          (khtml::isNotEqualIgnoringAffinity): Ditto, but not. :)
          (khtml::setAffinityUsingLinePosition): New helper function mentioned above. This will "correct"
          upstream affinity to downstream if the affinity does not make a difference for the position.
          * khtml/editing/visible_position.h:
          * khtml/editing/visible_range.h: Wacky bug. The operator== for this class took VisiblePosition classes!
          * khtml/editing/visible_units.cpp:
          (khtml::isStartOfParagraph): Now performs equality check without regard to affinity.
          (khtml::isEndOfParagraph): Ditto.
          (khtml::isStartOfBlock): Ditto.
          (khtml::isEndOfBlock): Ditto.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setSelectedDOMRange:affinity:]): Adjusts the affinity using setAffinityUsingLinePosition()
          if necessary.
  
  2005-03-04  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/4036817> REGRESSION: ctrl-y broken when a line + carriage return cut
  
          * khtml/editing/htmlediting.h: Added insertTextRunWithoutNewlines.
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertTextCommand::input): Added assertion to make sure strings with newlines don't get
          down to this level.
          (khtml::TypingCommand::insertText): Added. Takes the name of the old function, but is a new
          level that breaks runs into lines and inserts each one separately.
          (khtml::TypingCommand::insertTextRunWithoutNewlines): Renamed old insertText to this. 
  
          * khtml/dom/dom_string.h: Made substring be a const member function.
          * khtml/dom/dom_string.cpp: (DOM::DOMString::substring): Made this const.
  
  2005-03-04  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/4020413> REGRESSION (Mail): can't use fonts with names that start with "#" in Mail (Korean fonts)
  
          * khtml/css/css_valueimpl.cpp:
          (DOM::isLegalIdentifier): Added. Commented out and not used.
          (DOM::quoteStringIfNeeded): Quotes the string if needed. For now only if it starts with "#".
          (DOM::CSSPrimitiveValueImpl::cssText): Call quoteStringIfNeeded when asked for cssText for an arbitrary string, since we
          need text you can re-parse.
          (DOM::FontFamilyValueImpl::cssText): Ditto.
  
          * khtml/editing/markup.cpp:
          (khtml::startMarkup): Added comments about lack of quoting for attributes.
          (khtml::createMarkup): Ditto.
  
  2005-03-04 Adele Amchan  <adele at apple.com>
   
         Reviewed by Maciej
  
  	Fix for <rdar://problem/4021711> REGRESSION(125-188) blank pages when browsing forum at cooperativeresearch.org - cached external script problem
  
          * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::scriptHandler): set flag needToRefCachedScript so we can make sure 
          notifyFinished is called after pendingSrc is set up with the right data from the cached script
  
  2005-03-04  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/4029632> Tiger 8A398:- Mail crashes in DOM::NodeImpl::isBlockFlow() after pasting text with alignment style and BR element from Safari
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): VisiblePosition constructor
          was failing to yield a position for a node just pasted into the document since a layout was needed
          for the calculation to come out right. Layout added. Crash gone.
  
  === Safari-402 ===
  
  2005-03-03  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3992803> Cannot navigate through list items with the keyboard, you're stuck in the same <li> block unless you click out
  
          Reviewed by harrison.
  
          * khtml/rendering/render_line.cpp:
          (khtml::RootInlineBox::closestLeafChildForXPos): avoid returning list markers when possible. Also improved heuristic for returning the best InlineBox given the passed X position.
  
  
  2005-03-03  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
          
          Fix for this bug:
          
          <rdar://problem/4035198> Pasting text with different styles does not get reproducible results
  
          I had a good idea yesterday to improve the way we "fixup" styles after
          pasting, but i chose a poor data structure to do it, a map of
          nodes-to-styles. In the fixup step, I iterated over the map elements and
          did the fixup. However, since the order in which the items would come
          out of the map is indeterminate, we got unpredictable results.
  
          So, the concept was good, but the implementation was flawed. I have
          fixed this mapping to be a list instead, so the order that nodes are
          evaluated in the fixup step is document order. This works nicely.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplacementFragment::~ReplacementFragment): No longer need to explicity deref nodes and
          styles saved away for later fixup. This is now handled by the new NodeDesiredStyle class.
          (khtml::ReplacementFragment::computeStylesUsingTestRendering): Now calls computeAndStoreNodeDesiredStyle,
          function renamed from mapDesiredStyleForNode.
          Now accepts a QValueList<NodeDesiredStyle> in place of the old map.
          (khtml::NodeDesiredStyle::NodeDesiredStyle): New class that represents a node-to-style mapping.
          (khtml::NodeDesiredStyle::~NodeDesiredStyle): Ditto.
          (khtml::NodeDesiredStyle::operator=): Ditto.
          (khtml::ReplaceSelectionCommand::doApply): Now calls computeAndStoreNodeDesiredStyle,
          function renamed from mapDesiredStyleForNode.
          (khtml::ReplaceSelectionCommand::fixupNodeStyles): Now operates on a QValueList<NodeDesiredStyle> in 
          place of the old map.
          (khtml::computeAndStoreNodeDesiredStyle): Renamed from mapDesiredStyleForNode.  Now operates on a 
          QValueList<NodeDesiredStyle> in place of the old map.
          * khtml/editing/htmlediting.h:
          (khtml::NodeDesiredStyle): New class that represents a node-to-style mapping.
          (khtml::ReplacementFragment::desiredStyles): Now returns a QValueList<NodeDesiredStyle> in place of the old map.
  
          * layout-tests/editing/style/typing-style-003-expected.txt: Results changed in an acceptable way.
  
  2005-03-02  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/4029741> REGRESSION (188-189): <input type=text> are cleared when you hide/show them
  
          * khtml/html/html_formimpl.h: Added detach functions for both input and text area elements, since
          both have m_valueMatchesRenderer flags.
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLInputElementImpl::detach): Set m_valueMatchesRenderer to false, since the renderer is going away.
          (DOM::HTMLTextAreaElementImpl::detach): Ditto.
  
  2005-03-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/4006151> in reply, caret moves to next line after toggling bold style then typing
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::applyInlineStyle): Defer cleaning up empty style until the end of the
          function. In some situations, the render tree can get confused when we do this removal up front.
          I wish I understood the reasons more deeply, but this bit of code shuffling seems harmless, and 
          fixes the bug.
  
  2005-03-02  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/4024966> crash happened twice in [KWQTextField setHasFocus:] + 0xe8
  
          Added more nil checks to the widget implementations. Anywhere a widget pointer is used, do a nil check,
          rather than relying on high level assumptions about which calls can and can't destroy the HTML element
          (and hence the widget). The case in the bug seems to be a case where scrolling destroyed the element.
          We can't be sure this fixes the bug, but we can be relatively sure we didn't introduce any new problems,
          because this just avoids nil-dereferencing.
  
          * kwq/KWQButton.mm:
          (-[KWQButton becomeFirstResponder]):
          (-[KWQButton nextKeyView]):
          (-[KWQButton previousKeyView]):
          * kwq/KWQListBox.mm:
          (-[KWQTableView mouseDown:]):
          (-[KWQTableView becomeFirstResponder]):
          (-[KWQTableView numberOfRowsInTableView:]):
          (-[KWQTableView tableViewSelectionDidChange:]):
          (-[KWQTableView tableView:shouldSelectRow:]):
          (-[KWQTableView selectionShouldChangeInTableView:]):
          * kwq/KWQScrollBar.mm:
          (-[KWQScrollBar scroll:]):
          * kwq/KWQSlider.mm:
          (-[KWQSlider mouseDown:]):
          (-[KWQSlider slide:]):
          (-[KWQSlider becomeFirstResponder]):
          (-[KWQSlider nextKeyView]):
          (-[KWQSlider previousKeyView]):
          * kwq/KWQTextArea.mm:
          (-[KWQTextAreaTextView becomeFirstResponder]):
          (-[KWQTextAreaTextView resignFirstResponder]):
          (-[KWQTextAreaTextView mouseDown:]):
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldController action:]):
          (-[KWQTextFieldController controlTextDidEndEditing:]):
          (-[KWQTextFieldController controlTextDidChange:]):
          (-[KWQTextFieldController textView:didHandleEvent:]):
          (-[KWQTextFieldController setHasFocus:]):
  
  2005-03-02  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/4031483> Leak (RenderObject::createInlineBox) reproducible with Stock widget
  
  	We were leaking inline block line boxes.  Argh!
  
          Reviewed by Hyatt.
  
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::dirtyLineBoxes):
          * khtml/rendering/render_line.cpp:
          (khtml::InlineBox::deleteLine):
  
  2005-03-02  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3976872> REGRESSION (Mail): Pasted plain text doesn't get the proper style if pasted into newlines
  
          Reviewed by kocienda.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::EditCommand::styleAtPosition): new, factored out from calculateStyleBeforeInsertion
          (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): call styleAtPosition
          (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): clear new m_insertionStyle ivar
          (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand): deref new m_insertionStyle  ivar
          (khtml::ReplaceSelectionCommand::doApply): store the style so it later be applied when matching style
          (khtml::ReplaceSelectionCommand::completeHTMLReplacement): apply style from m_insertionStyle when matching style
          * khtml/editing/htmlediting.h:
  
  2005-03-02  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/4031718> REGRESSION (401-401+): Safari reproducible crash setting up scope in JSLazyEventListener::parseCode authenticating to bugweb
          
  	* khtml/ecma/kjs_events.cpp:
  	(JSLazyEventListener::parseCode): If originalNode is NULL, don't
  	mess with the scope chain.
  	
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::parseHTMLAttribute): For handlers that are
  	delcared on body but set on the document, pass NULL to avoid
  	swizzling the scope chain. It turns out that this is what browsers
  	do, and it finesses the crash.
  
  2005-03-02  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken.
  
          <rdar://problem/3948453> Can't type accented chars as first character in Stickies widget
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply):
  
  2005-03-02  Ken Kocienda  <kocienda at apple.com>
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/4020574> REGRESSION (Mail): copy/paste first part of reply-quoted text alters downstream style
          
          The problem was that the operation to move nodes following the newly-pasted nodes did not preserve the
          style of these moved nodes. I have generalized some of the functions that compute and preserve styles
          for nodes and then apply these styles after a DOM operation.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplacementFragment::~ReplacementFragment): Call new derefNodesAndStylesInMap() helper function
          in place of old code that had this deref'ing inline.
          (khtml::ReplacementFragment::computeStylesUsingTestRendering): Now calls new mapDesiredStyleForNode() helper
          function place of old code that had this style computation inline.
          (khtml::ReplacementFragment::removeStyleNodes): Updated comment for new helper name.
          (khtml::ReplaceSelectionCommand::doApply): Now calls new helpers in place of helpers whose names were changed,
          or in place of pre-refactored inline code.
          (khtml::ReplaceSelectionCommand::fixupNodeStyles): Renamed from applyStyleToInsertedNodes(). Now generalized
          to take the map of nodes to use for the fixup. This makes it possible to call this code with different maps,
          and that is needed to fix the bug.
          (khtml::mapDesiredStyleForNode): New helper function to compute the inheritable styles for a given node
          and map this style to the given node in the given map. This function now also includes the code that was
          in the removeBlockquoteColorsIfNeeded(). This latter helper has now been removed.
          (khtml::derefNodesAndStylesInMap): Simple helper to deref map members.
          * khtml/editing/htmlediting.h:
          (khtml::ReplacementFragment::desiredStyles): New helper to return map of nodes-to-desiredStyles.
  
  2005-03-01  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
  
          <rdar://problem/4011358> REGRESSION(Mail): after dragging text to mail message and deleting, typing or dragging new text doesn't work
  
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::isCandidate): Insertion point disappearing was due to a failed
          check here after deleting all the content in the body element. The special "empty block"
          needs to add check for DOM children. A block may have straggling anonymous render children in
          some cases, and so the check needs to be (!DOM-kids || !render-kids).
  
          Also, I botched the last checkin trying to split these two patches in my tree. Wrong layout tests 
          got checked in, I checked in a conflict marker in the Changelog, etc. I fixed everything with this checkin.
  
  2005-03-01  Ken Kocienda  <kocienda at apple.com>
   
          Reviewed by Maciej
  
          Improved fix for this bug:
          
          <rdar://problem/3996605> Insert paragraph command puts new block in wrong place, creating difficult-to-handle HTML
  
          Maciej and I discussed this situation at length, and we came up with a better fix than I did earlier.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply): Simplify one special case so that it only handles the 
          "last in block" situation. Remove special case for "downstream node is in different block" and handle
          this case with a little bit of special code in the general insertion case.
  
          Results studied to make sure there were no problems.
  
          * layout-tests/editing/deleting/delete-3959464-fix-expected.txt
          * layout-tests/editing/inserting/insert-div-001-expected.txt
          * layout-tests/editing/inserting/insert-div-002-expected.txt
          * layout-tests/editing/inserting/insert-div-004-expected.txt
          * layout-tests/editing/inserting/insert-div-005-expected.txt
          * layout-tests/editing/inserting/insert-div-009-expected.txt
          * layout-tests/editing/inserting/insert-div-014-expected.txt
          * layout-tests/editing/inserting/insert-div-018-expected.txt
          * layout-tests/editing/inserting/insert-div-024-expected.txt
          * layout-tests/editing/pasteboard/paste-text-011-expected.txt
          * layout-tests/editing/pasteboard/paste-text-013-expected.txt
          * layout-tests/editing/pasteboard/paste-text-015-expected.txt
          * layout-tests/editing/style/block-style-004-expected.txt
          * layout-tests/editing/style/block-style-005-expected.txt
          * layout-tests/editing/style/block-style-006-expected.txt
  
          New test:
          
          * layout-tests/editing/inserting/insert-div-027.html
          * layout-tests/editing/inserting/insert-div-027-expected.txt
  
  2005-03-01  David Hyatt  <hyatt at apple.com>
  
  	Fix for 4030890, regression with <sup> on Google.  Fix some bogus != comparison checks in verticalPositionHint.
  	
          Reviewed by John
  
          (RenderObject::getVerticalPosition):
          
  2005-03-01  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content
  
          Reviewed by rjw.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData): pass true for treatNBSPAsWhiteSpace to leadingWhitespacePosition and trailingWhitespacePosition when testing whether or not we have to delete those characters as well.
          * khtml/editing/jsediting.cpp: pass true for smartDelete when the selection granularity is WORD. This allows us to write smart delete layout tests.
          * layout-tests/editing/deleting/smart-delete-001-expected.txt: Added.
          * layout-tests/editing/deleting/smart-delete-001.html: Added.
          * layout-tests/editing/deleting/smart-delete-002-expected.txt: Added.
          * layout-tests/editing/deleting/smart-delete-002.html: Added.
  
  2005-03-01  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/4029772> Weather widgets use a lot of memory (more that other widgets)
  
  	The string objects created by KWQHeaderStringFromDictionary() leaked.
  
          Reviewed by John Louch.
  
          * kwq/KWQLoader.mm:
          (KWQHeaderStringFromDictionary):
  
  2005-03-01  Jens Alfke  <jens at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/4004531> Simple Sun Signed Applet throws exceptions; doesn't run
  	Two fixes for the way we extract the parameter-y goodness from <object> tags.
  
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget):
  
  2005-03-01  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3990258> REGRESSION (125.12-181): top of picture that spans two pages is cut off on print from Safari
  
  	The problem was due to incorrect "object truncation" in  RenderFlow::paintLines.  
  	We attempt to push objects down if they don't fit on a page at
  	paint time.  If the attempt to push object down failed we just
  	didn't paint at all.
  
          Reviewed by Hyatt.
  
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::paintLines):
  
  2005-03-01  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content
  
          Reviewed by rjw.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData): pass true for treatNBSPAsWhiteSpace to leadingWhitespacePosition and trailingWhitespacePosition when testing whether or not we have to delete those characters as well.
          * khtml/editing/jsediting.cpp: pass true for smartDelete when the selection granularity is WORD. This allows us to write smart delete layout tests.
          * layout-tests/editing/deleting/smart-delete-001-expected.txt: Added.
          * layout-tests/editing/deleting/smart-delete-001.html: Added.
          * layout-tests/editing/deleting/smart-delete-002-expected.txt: Added.
          * layout-tests/editing/deleting/smart-delete-002.html: Added.
  
  2005-03-01  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Vicki
  
          Fix for this bug:
          
          <rdar://problem/4030068> Trailing <return> gets eaten when pasted at the end of a document
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): Add code to handle formerly-unhandled end-of-document case.
  
  2005-03-01  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Vicki.
  
  	<rdar://problem/4003774> REGRESSION(125-181): JavaScript problems @ Yankee/Dixie quiz
          
  	Reworked how scopes are set up for event handlers to match other
  	browser. This includes the following changes:
  
  	- Special scope entries are set up at the time the event handler
  	is created, not at the time it fires.
  
  	- Special scope is only set up for event handlers set in the html
  	source through an html attribute, not for handlers set using
  	addEventHandler or setting JS properties like onclick through
  	JavaScript.
  
  	- Special scope is based on the DOM node on which the handler is
  	an attribute, not the event target.
  
  	This fixes the regression while allowing the fix to
  	<rdar://problem/3798453> (DIG: getting variable with same name as
  	DOM element attribute gets attribute value instead) to keep
  	working correctly.
  	
  	* khtml/ecma/kjs_events.cpp:
          (JSEventListener::handleEvent):
          (JSLazyEventListener::JSLazyEventListener):
          (JSLazyEventListener::parseCode):
          * khtml/ecma/kjs_events.h:
          * khtml/ecma/kjs_proxy.cpp:
          (KJSProxyImpl::createHTMLEventHandler):
          * khtml/ecma/kjs_proxy.h:
          * khtml/ecma/kjs_window.cpp:
          (Window::getJSLazyEventListener):
          * khtml/ecma/kjs_window.h:
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::parseHTMLAttribute):
          (HTMLFrameElementImpl::parseHTMLAttribute):
          (HTMLFrameSetElementImpl::parseHTMLAttribute):
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::parseHTMLAttribute):
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::parseHTMLAttribute):
          (DOM::HTMLButtonElementImpl::parseHTMLAttribute):
          (DOM::HTMLInputElementImpl::parseHTMLAttribute):
          (DOM::HTMLLabelElementImpl::parseHTMLAttribute):
          (DOM::HTMLSelectElementImpl::parseHTMLAttribute):
          (DOM::HTMLTextAreaElementImpl::parseHTMLAttribute):
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageElementImpl::parseHTMLAttribute):
          * khtml/html/html_objectimpl.cpp:
          (HTMLObjectElementImpl::parseHTMLAttribute):
          * khtml/khtml_part.cpp:
          (KHTMLPart::createHTMLEventListener):
          * khtml/khtml_part.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createHTMLEventListener):
          * khtml/xml/dom_docimpl.h:
  
  === Safari-401 ===
  
  2005-03-01  Chris Blumenberg  <cblu at apple.com>
  
  	Backed out my patch since the tree was closed.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData):
          * khtml/editing/jsediting.cpp:
  
  2005-03-01  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content
  
          Reviewed by rjw.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData): pass true for treatNBSPAsWhiteSpace to leadingWhitespacePosition and trailingWhitespacePosition when testing whether or not we have to delete those characters as well.
          * khtml/editing/jsediting.cpp: pass true for smartDelete when the selection granularity is WORD. This allows us to write smart delete layout tests.
          * layout-tests/editing/deleting/smart-delete-001-expected.txt: Added.
          * layout-tests/editing/deleting/smart-delete-001.html: Added.
          * layout-tests/editing/deleting/smart-delete-002-expected.txt: Added.
          * layout-tests/editing/deleting/smart-delete-002.html: Added.
  
  2005-03-01  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Vicki
  
          Fix for this bug:
          
          <rdar://problem/4030068> Trailing <return> gets eaten when pasted at the end of a document
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): Add code to handle formerly-unhandled end-of-document case.
  
  2005-03-01  David Harrison  <harrison at apple.com>
  
          Reviewed by Chris.
  
          <rdar://problem/3915560> Mail would like an SPI to enable "smart" text paste/drop
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge smartDeleteRangeForProposedRange:]):
          (-[WebCoreBridge smartInsertForString:replacingRange:beforeString:afterString:]):
          New.
  
  2005-03-01  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/4030404> selection granularity should be set when extending selection via JS
  
          Reviewed by kocienda.
  
          * khtml/ecma/kjs_window.cpp:
          (SelectionFunc::tryCall): set the granularity on the part. This will allow us to write smart paste layout tests.
          * layout-tests/editing/pasteboard/smart-paste-001-expected.txt: Added.
          * layout-tests/editing/pasteboard/smart-paste-001.html: Added.
          * layout-tests/editing/pasteboard/smart-paste-002-expected.txt: Added.
          * layout-tests/editing/pasteboard/smart-paste-002.html: Added.
          * layout-tests/editing/pasteboard/smart-paste-003-expected.txt: Added.
          * layout-tests/editing/pasteboard/smart-paste-003.html: Added.
          * layout-tests/editing/pasteboard/smart-paste-004-expected.txt: Added.
          * layout-tests/editing/pasteboard/smart-paste-004.html: Added.
          * layout-tests/editing/pasteboard/smart-paste-005-expected.txt: Added.
          * layout-tests/editing/pasteboard/smart-paste-005.html: Added.
          * layout-tests/editing/pasteboard/smart-paste-006-expected.txt: Added.
          * layout-tests/editing/pasteboard/smart-paste-006.html: Added.
          * layout-tests/editing/pasteboard/smart-paste-007-expected.txt: Added.
          * layout-tests/editing/pasteboard/smart-paste-007.html: Added.
  
  2005-03-01  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/4029934> smart paste with plain text can add too many spaces
  
          Reviewed by kocienda.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): pass true for treatNBSPAsWhitespace to leadingWhitespacePosition and trailingWhitespacePosition
          * khtml/xml/dom_position.cpp:
          (DOM::isWS): take treatNBSPAsWhitespace param
          (DOM::Position::leadingWhitespacePosition): ditto
          (DOM::Position::trailingWhitespacePosition): ditto
          * khtml/xml/dom_position.h:
  
  2005-03-01  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3996605> Insert paragraph command puts new block in wrong place, creating difficult-to-handle HTML
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply): Look for the upstream-most block to insert after
          when at the visible end of a block. This helps to avoid some undesirable sequences of markup which
          Dave says will be vary hard to render. Changing the command in this way avoids the "limitations"
          of the render tree by not asking it to render markup we do not want to make anyway.
          
          All these tests change, but either in insignificant ways, or for the better.
          
          * layout-tests/editing/deleting/delete-3959464-fix-expected.txt:
          * layout-tests/editing/inserting/insert-div-001-expected.txt:
          * layout-tests/editing/inserting/insert-div-002-expected.txt:
          * layout-tests/editing/inserting/insert-div-004-expected.txt:
          * layout-tests/editing/inserting/insert-div-005-expected.txt:
          * layout-tests/editing/inserting/insert-div-009-expected.txt:
          * layout-tests/editing/inserting/insert-div-024-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-011-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-013-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-015-expected.txt:
          * layout-tests/editing/style/block-style-004-expected.txt:
          * layout-tests/editing/style/block-style-005-expected.txt:
          * layout-tests/editing/style/block-style-006-expected.txt:
          * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt:
          * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt:
          * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt:
          * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt:
  
          New test to check specific problem mentioned in the bug.
  
          * layout-tests/editing/inserting/insert-div-026-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-026.html: Added.
  
  2005-02-28  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/4002864> REGRESSION(125-146) getElementById in onload fails in a test case involving external resources
          
  	Moved management of elementById hashtable from attach/detach to
  	insertedIntoDocument/removedFromDocument, to avoid being thrown
  	off by temporary detaches due to style recalcs.
  	
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::insertedIntoDocument):
          (ElementImpl::removedFromDocument):
          (ElementImpl::attach):
          (ElementImpl::updateId):
          * khtml/xml/dom_elementimpl.h:
  
  	Make sure that insertedIntoDocument is called before firing any
  	DOM events.
  	
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeBaseImpl::dispatchChildInsertedEvents): 
  
  2005-02-28  David Hyatt  <hyatt at apple.com>
  
  	Fix for 4028999, safari crashes when resetting if mallocsribble is on.  Clip rects were being cleared using dead
  	render objects.  Change the ordering.
  	
          Reviewed by rjw
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::detach):
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::~RenderLayer):
  
  2005-02-28  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/4024786> REGRESSION (Mail): "Smart paste" plain-text word into Blot leaves insertion point misplaced
  
          Reviewed by kocienda.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Call updateLayout so caretMinOffset and caretMaxOffset return correct values.
  
  2005-02-28  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken.
          
          - WebCore part of fix for <rdar://problem/4023490> REGRESSION (125-185): Tabbing through links 
          on frameset page gets stuck at end (tivofaq.com)
  
          * kwq/WebCoreBridge.h:
          add nextValidKeyViewOutsideWebFrameViews (code is in WebKit)
  
  2005-02-28  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3972665> 8A360: HTML message partially truncated on left hand side, text-indent from Script Editor
  
          * khtml/css/css_computedstyle.cpp: inheritableProperties array now defined in css_valueimpl.cpp.
          * khtml/css/css_valueimpl.cpp: Define inheritableProperties array here.
          (DOM::CSSMutableStyleDeclarationImpl::copyBlockProperties): Use new name for blockProperties, and use the new
          constant for the number of items in the array.
          (DOM::CSSMutableStyleDeclarationImpl::removeBlockProperties): Ditto.
          (DOM::CSSMutableStyleDeclarationImpl::removeInheritableProperties): New function.
          * khtml/css/css_valueimpl.h: Declare inheritableProperties array and numInheritableProperties extern so they
          can be defined in css_valueimpl.cpp and used in css_computedstyle.cpp.
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplacementFragment::removeStyleNodes): This code was misguided, and removed too much style from HTML
          elements. Now, it removes from HTML elements only the styles that we replace later with a call to applyStyle().
          Also, add ID_B to list of inline "style" nodes we are willing to remove. Leaving it off was an oversight.
  
          * layout-tests/editing/pasteboard/paste-text-011-expected.txt: ID_B fix made this result change, without any
          visible change in the test.
          
          New test:
          
          * layout-tests/editing/style/smoosh-styles-003.html
          * layout-tests/editing/style/smoosh-styles-003-expected.txt
  
  2005-02-28  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/4026985> CrashTracer: ...14 crashes at com.apple.WebCore: -[KWQPageState invalidate] + 32
  
  	Added more nil checking and ASSERTS.
  	Without a reproducible case this is hard to definitively resolve.
  
          Reviewed by John Sullivan.
  
          * kwq/KWQPageState.mm:
          (-[KWQPageState invalidate]):
  
  2005-02-28  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/4027702> 3.5% performance regression btwn Safari-188 and Safari-400
  
  	I inadvertently checked in some debugging code that disabled
  	style sharing.  Backed out that change.
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::styleForElement):
  
  2005-02-28  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/4026639> www.bmw.ca configurator does not work with Safari
  
          Reviewed by john.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElement::tryGet): when frameset.<name of frame child> is called, return the window object of the frame child
  
  2005-02-28  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          Fix for this bug:
          
          <rdar://problem/4026906> Paste of HTML table content can break table structure
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplacementFragment::pruneEmptyNodes): Call new isProbablyTableStructureNode() function to prevent
          removal of empty table structure nodes.
          (khtml::ReplacementFragment::removeUnrenderedNodesUsingTestRendering): Ditto.
          (khtml::isProbablyTableStructureNode): New helper function.
          * khtml/editing/htmlediting.h: Declare new helper.
  
  2005-02-28  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
  
          Reviewed by kocienda.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): ref and deref the element while it is "floating"
          (khtml::ReplacementFragment::insertFragmentForTestRendering): ditto
          (khtml::floatRefdElement): new, keeps an element alive while its ref count is 0
          (khtml::createDefaultParagraphElement): removed commented out code
          (khtml::createBlockPlaceholderElement): ref the element and return it as "floating"
          (khtml::createFontElement): ditto
          (khtml::createStyleSpanElement): ditto
          * khtml/editing/htmlediting.h:
  
  2005-02-27  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Vicki.
  
  	<rdar://problem/3993557> REGRESSION (125-180-ish): getElementsByTagName no longer works with namespace designations
          
  	* khtml/xml/dom_nodeimpl.cpp:
          (NodeBaseImpl::getElementsByTagNameNS): When no namespace is specified, find elements
  	of the specified name in any namespace to match Mozilla and earlier Safari behavior.
  
  2005-02-25  Darin Adler  <darin at apple.com>
  
          Reviewed by Adele.
  
          - fixed <rdar://problem/4025618> Crash while searching at hollywoodvideo.com
  
          * khtml/html/html_formimpl.h: Added valueWithDefault.
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLInputElementImpl::appendFormData): Call valueWithDefault instead of going at the render object
          to try to get the default value; there may be no render object if this is display:none.
          (DOM::HTMLInputElementImpl::valueWithDefault): Added. Knows about the defaults for "submit" and "reset"
          buttons; otherwise just returns the value as-is.
  
          * khtml/rendering/render_form.h: Removed the defaultLabel member functions.
          * khtml/rendering/render_form.cpp:
          (RenderSubmitButton::rawText): Call valueWithDefault instead of using defaultLabel function here on
          the render side. The DOM needs to know how to deal with the default anyway for form submission.
          (RenderSubmitButton::defaultLabel): Removed.
          (RenderResetButton::defaultLabel): Removed.
          (RenderPushButton::defaultLabel): Removed.
  
  2005-02-25  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/4025088> window onblur and onfocus don't fire when text field has focus
  
          * kwq/KWQKHTMLPart.h: Added setWindowHasFocus function and m_windowHasFocus data member.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::setDisplaysWithFocusAttributes): Took out the code that sends the focus and blur events.
          (KWQKHTMLPart::setWindowHasFocus): Put that code here instead.
  
          * kwq/WebCoreBridge.h: Added setWindowHasFocus: method to the bridge.
          * kwq/WebCoreBridge.mm: (-[WebCoreBridge setWindowHasFocus:]): Added. Calls method on the part.
  
  2005-02-25  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - re-fixed <rdar://problem/3665430> horizontal scroll bar of text area does not show, even when text is wide in "no wrap" mode
  
          * kwq/KWQTextArea.mm: (-[KWQTextArea _updateTextViewWidth]): Don't change the text view width
          to match the text area's width in the "wrap" case.
  
  2005-02-25  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/4021518> 8A394 Mail crashes during paste: khtml::RootInlineBox::closestLeafChildForXPos
  
          * khtml/editing/visible_units.cpp:
          (khtml::previousLinePosition): Adding an updateLayout call at the start of the function fixes the crash, since
          we caught line boxes in a not-completely-updated state.
          (khtml::nextLinePosition): Ditto.
  
  2005-02-25  David Hyatt  <hyatt at apple.com>
  
  	Fix for 4010774, make sure to avoid an O(N^2) algorithm in nextRenderer() that is triggered when large
  	DOM subtrees are inserted into documents via one insert/append call.
  	
          Reviewed by kocienda
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::nextRenderer):
  
  2005-02-25  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
  
  	Second pass at fixing 3382926 w/o causing layout regressions.  Same concept:
  	if directionality of text's element is RTL and first character has neutral directionality
  	then set the initial directionality to RTL.
  
          Reviewed by Hyatt.
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::bidiReorderLine):
          (khtml::RenderBlock::determineStartPosition):
  
  === Safari-400 ===
  
  2005-02-25  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          Roll out Chris' change to fix this bug:
          
          <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
          
          That code change is responsible for all these new crashers:
          
          <rdar://problem/4025177> crash copying safari.apple.com into Blot document
          <rdar://problem/4025184> crash in DOM::NodeImpl::parentNode copying "New!" from google.com to Blot
          <rdar://problem/4025214> crash in DOM::NodeImpl::getRect loading paste-match-style-001.html
  
          Since we wish to close the tree for a build right now, I am rolling out rather than investigating.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded)
          (khtml::ReplacementFragment::insertFragmentForTestRendering)
          (khtml::createDefaultParagraphElement)
          (khtml::createBlockPlaceholderElement)
          (khtml::createFontElement)
          (khtml::createStyleSpanElement)
          * khtml/editing/htmlediting.h
  
  2005-02-25  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/4020108> Pasting text into message makes Mail crash reproducibly
  
          Note that, even with this fix, development build will crash until this bug is fixed:
          <rdar://problem/4024996> Applying block styles can cause assertion failure in inline style removal
          
          This will not crash deployment builds, so I am going to land.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::applyBlockStyle): Applying block styles can make the loop to reach beyondEnd
          fail since the structure of the document can change. Cache the next node first before operating on it,
          as we do elsewhere.
  
  2005-02-25  Vicki Murley <vicki at apple.com>
  
  	- recommit this change, since rolling it out did NOT fix the performance regression!
  
      2005-02-23  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves
  
          The key was to change things around so that we don't push text from the DOM to the widget
          unless the DOM has actually been changed. This prevents the code path that wipes out inline input
          during the blur process.
  
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLInputElementImpl::HTMLInputElementImpl): Start m_valueMatchesRenderer as false.
          (DOM::HTMLInputElementImpl::parseHTMLAttribute): Set m_valueMatchesRenderer to false when a
          new value is set here.
          (DOM::HTMLInputElementImpl::setValue): Set m_valueMatchesRenderer to false when a new value
          is set here.
          (DOM::HTMLInputElementImpl::setValueFromRenderer): Added. Sets m_value, sets m_valueMatchesRenderer
          to true, and also sends out the input event. It's better to have this here than in the renderer code.
          (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl): Start m_valueIsValid as false (replaces
          m_dirtyvalue) and m_valueMatchesRenderer as false.
          (DOM::HTMLTextAreaElementImpl::updateValue): Added. Factored this out from the value function. Uses
          the new booleans and keeps them up to date, specifically setting m_valueMatchesRenderer based on
          where the value came from.
          (DOM::HTMLTextAreaElementImpl::value): Updated to call updateValue to do most of the work.
          (DOM::HTMLTextAreaElementImpl::setValue): Set both m_valueIsValid and m_valueMatchesRenderer.
          (DOM::HTMLTextAreaElementImpl::setDefaultValue): Take parameter by reference.
  
          * khtml/html/html_formimpl.h: Added setValueFromRenderer, valueMatchesRenderer, setValueMatchesRenderer,
          and m_valueMatchesRenderer to input element. For textarea element, made some parameters pass DOMString
          by reference, and added invalidateValue, updateValue, valueMatchesRenderer, and setValueMatchesRenderer.
  
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer
          is true.
          (RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM
          directly.
          (RenderTextArea::detach): Call updateValue instead of calling value for its side effect.
          (RenderTextArea::handleFocusOut): Ditto.
          (RenderTextArea::updateFromElement): Call updateValue and then not re-get the value from the
          DOM if valueMatchesRenderer is true.
          (RenderTextArea::slotTextChanged): Call invalidateValue instead of directly setting m_dirtyvalue to true.
  
  2005-02-25  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
  
          Reviewed by darin.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
          (khtml::ReplacementFragment::insertFragmentForTestRendering):
          (khtml::floatRefdElement):
          (khtml::createDefaultParagraphElement):
          (khtml::createBlockPlaceholderElement):
          (khtml::createFontElement):
          (khtml::createStyleSpanElement):
          * khtml/editing/htmlediting.h:
  
  2005-02-25  Darin Adler  <darin at apple.com>
  
          * kwq/character-sets.txt: Checked in updated file. This new file has no effect, because none of the
          changes affect character sets that we support, but it's good to have the latest file in here, and
          completely safe because I checked that the generated files have not changed.
  
  2005-02-25  Vicki Murley <vicki at apple.com>
  
          Reviewed by Darin.
   
  	- back out this change, since it causes a 3.5% performance regression
  
      2005-02-23  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves
  
          The key was to change things around so that we don't push text from the DOM to the widget
          unless the DOM has actually been changed. This prevents the code path that wipes out inline input
          during the blur process.
  
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLInputElementImpl::HTMLInputElementImpl): Start m_valueMatchesRenderer as false.
          (DOM::HTMLInputElementImpl::parseHTMLAttribute): Set m_valueMatchesRenderer to false when a
          new value is set here.
          (DOM::HTMLInputElementImpl::setValue): Set m_valueMatchesRenderer to false when a new value
          is set here.
          (DOM::HTMLInputElementImpl::setValueFromRenderer): Added. Sets m_value, sets m_valueMatchesRenderer
          to true, and also sends out the input event. It's better to have this here than in the renderer code.
          (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl): Start m_valueIsValid as false (replaces
          m_dirtyvalue) and m_valueMatchesRenderer as false.
          (DOM::HTMLTextAreaElementImpl::updateValue): Added. Factored this out from the value function. Uses
          the new booleans and keeps them up to date, specifically setting m_valueMatchesRenderer based on
          where the value came from.
          (DOM::HTMLTextAreaElementImpl::value): Updated to call updateValue to do most of the work.
          (DOM::HTMLTextAreaElementImpl::setValue): Set both m_valueIsValid and m_valueMatchesRenderer.
          (DOM::HTMLTextAreaElementImpl::setDefaultValue): Take parameter by reference.
  
          * khtml/html/html_formimpl.h: Added setValueFromRenderer, valueMatchesRenderer, setValueMatchesRenderer,
          and m_valueMatchesRenderer to input element. For textarea element, made some parameters pass DOMString
          by reference, and added invalidateValue, updateValue, valueMatchesRenderer, and setValueMatchesRenderer.
  
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer
          is true.
          (RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM
          directly.
          (RenderTextArea::detach): Call updateValue instead of calling value for its side effect.
          (RenderTextArea::handleFocusOut): Ditto.
          (RenderTextArea::updateFromElement): Call updateValue and then not re-get the value from the
          DOM if valueMatchesRenderer is true.
          (RenderTextArea::slotTextChanged): Call invalidateValue instead of directly setting m_dirtyvalue to true.
  
  2005-02-25  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris.
  
          - fixed <rdar://problem/4024786> REGRESSION (Mail): "Smart paste" plain-text word into Blot leaves insertion point misplaced
  
          * khtml/editing/htmlediting.cpp: (khtml::ReplaceSelectionCommand::doApply):
          Use the insertNodeAfterAndUpdateNodesInserted and insertNodeBeforeAndUpdateNodesInserted
          functions to add the leading and trailing spaces for smart paste.
  
  2005-02-25  David Hyatt  <hyatt at apple.com>
  
  	Back out fix for 3382926, since it breaks LTR text inside RTL contexts.
  	
          Reviewed by john
  
          * khtml/rendering/bidi.cpp:
          (khtml::BidiIterator::direction):
  
  2005-02-25  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3975039, scrolling is slow in huge RSS views.  Optimize the calculation of clip rects for overflow:hidden
  	layers.  Also optimize layer movement when scrolling overflow sections.
  	
          Reviewed by darin
  
          * khtml/rendering/render_layer.cpp:
          (throw):
          (ClipRects::operator delete):
          (ClipRects::detach):
          (RenderLayer::RenderLayer):
          (RenderLayer::~RenderLayer):
          (RenderLayer::updateLayerPosition):
          (RenderLayer::removeOnlyThisLayer):
          (RenderLayer::insertOnlyThisLayer):
          (RenderLayer::scrollToOffset):
          (RenderLayer::hitTest):
          (RenderLayer::calculateClipRects):
          (RenderLayer::calculateRects):
          (RenderLayer::containsPoint):
          (RenderLayer::clearClipRects):
          (RenderLayer::clearClipRect):
          * khtml/rendering/render_layer.h:
          (khtml::ClipRects::m_refCnt):
          (khtml::ClipRects::overflowClipRect):
          (khtml::ClipRects::fixedClipRect):
          (khtml::ClipRects::posClipRect):
          (khtml::ClipRects::ref):
          (khtml::ClipRects::deref):
          (khtml::RenderLayer::clipRects):
          * khtml/rendering/render_object.cpp:
          (RenderObject::setStyle):
  
  2005-02-24  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin and Dave a while ago.
  
  	<rdar://problem/3996685> REGRESSION: Crash in KWQVectorImpl::at loading http://maps.google.com/mapfiles/homepanel.xsl
          
  	* kwq/WebCoreBridge.mm:
          (formElementFromDOMElement): Check for isHTMLElement() as well as
  	id() == ID_FORM. This seems like an impossible situation, but
  	papering over it seems more expedient for the time being.
  
  2005-02-24  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
  
  	Use mirror characters correctly when rendering with RTL directionality.
  
          Reviewed by Hyatt.
  
          * khtml/rendering/bidi.cpp:
          (khtml::BidiIterator::direction):
  
  2005-02-24  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3985889> REGRESSION (125-180): setting <img> src to GIF that already animated does not animate; just shows final frame
  	
          Reviewed by Hyatt.
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageLoader::updateFromElement):
          * khtml/rendering/render_image.cpp:
          (RenderImage::resetAnimation):
          * khtml/rendering/render_image.h:
          * khtml/rendering/render_list.cpp:
          (RenderListMarker::setStyle):
          (RenderListMarker::paint):
          * khtml/rendering/render_list.h:
          * kwq/KWQPixmap.h:
          * kwq/KWQPixmap.mm:
          (QPixmap::QPixmap):
          (QPixmap::resetAnimation):
          * kwq/WebCoreImageRenderer.h:
  
  2005-02-24  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/4020110> Safari crashes in setAllData while taking a www.zoomerang.com survey
  
          Reviewed by rjw.
  
          * kwq/KWQResourceLoader.mm:
          (-[KWQResourceLoader finishJobAndHandle:]): clear the job after we've deleted to avoid reentrancy
  
  2005-02-24  Darin Adler  <darin at apple.com>
  
          Reviewed by Vicki.
  
          - fixed <rdar://problem/4023360> REGRESSION (186-187): image file upload is broken at pep.apple.com
  
          * khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::appendFormData): Return true after
          setting up the form data for an uploaded file. The old code would fall through to the ISINDEX
          case and send double form data (the filename instead of the file contents the second time).
  
  2005-02-24  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken.
          
          <rdar://problem/3990849> AX: textMarkerRange for an AXUIElement within an AXWebArea
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject textMarkerRange]):
          (-[KWQAccObject accessibilityParameterizedAttributeNames]):
          (-[KWQAccObject doAXTextMarkerRangeForUIElement:]):
          (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
          Added AXTextMarkerRangeForUIElement, or you can send textMarkerRange to the UIElement itself.
  
  2005-02-24  David Harrison  <harrison at apple.com>
  
          Reviewed by Vicki.
  
          <rdar://problem/4004279> 3 AXSelectedTextChanged notifications are firing each time I type a character
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::updateSelection):
          Send notification only if the selection is not null.  This safely ignores transitory selections set during editing.
  
  2005-02-24  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3987619> in some cases, text doesn't resize with Format->Style->Bigger/Smaller
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::applyRelativeFontStyleChange): Only call nodeFullySelected for non-text nodes.
          Text nodes are already split so they're either in the range and full selected or out of the range.
          And nodeFullySelected doesn't work for text nodes.
          (khtml::ApplyStyleCommand::nodeFullySelected): Add an assertion, since this function only works for elements,
          not text nodes.
          (khtml::ApplyStyleCommand::nodeFullyUnselected): Ditto.
  
          - make big improvement in <rdar://problem/3953636> Mail hung for ~10sec changing font of 84328 characters: khtml::ApplyStyleCommand::nodeFullySelected
  
          * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::compareBoundaryPoints): Improve algorithm based on suggestion
          from Nate Begeman.
  
          - fixed <rdar://problem/4020305> REGRESSION (185-186): loading image in new window using document.write fails
  
          * khtml/xml/dom_docimpl.cpp: (DocumentImpl::open): If there is no parent document, don't blow away the base URL.
  
          - fixed <rdar://problem/4021701> REGRESSION (188-188+): form not submitted after pressing <return> at http://hrweb.apple.com
          
          * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::dispatchMouseEvent): Send activate event in the case where the event
          sent is a KHTML_CLICK_EVENT, not CLICK_EVENT.
  
  2005-02-23  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by mjs  
          
          Fixed <rdar://problem/4020747> REGRESSION: stray </applet> tags crash Safari
  
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::processCloseTag):  Made a typesafe check that prevents crashes
          whenever there is a closing applet tag without an actual <applet> in the first place. 
          Now verifies the current token is ID_APPLET before casting it to an HTMLAppletElementImpl.
           
  
  2005-02-23  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3977962> font loses bold style after pasting next to existing text and pressing return
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): Problem here was
          that we were doing work in cases where we should not, and content whose style would have
          been correct if we had done nothing was getting clobbered. It turns out that extra work
          to apply style to the new paragraph added in this command only needs to be done if we're 
          at the boundaries of a paragraph. Otherwise, content that is moved as part of the work 
          of the command will lend their styles to the new paragraph without any extra work needed.
          So, make this position check and return unless at a paragraph boundary.
  
          New test:
  
          * layout-tests/editing/style/block-styles-007-expected.txt
          * layout-tests/editing/style/block-styles-007.html
  
  2005-02-23  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/4017641> REGRESSION (Mail): you can only bold/unbold a selection starting from end of line once
  
          Problem is with the way we figure out whether to add or remove a style based on
          the current selection. In this case, the code is looking at the end of the
          previous line, which is not bold, and deduces incorrectly that the operation is
          a "make bold". Then the style code runs to make bold, but there is nothing on
          the end of the previous line to embolden, so we get into a cycle where the same
          thing happens each time cmd-b is hit.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::selectionComputedStyle):  Call editingStartPosition() to get the right position for the font determination.
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::editingStartPosition): New helper function that "does the right thing" based on whether the
          selection is a caret or a range, moving upstream for the former, and downstream for the latter.
          * khtml/xml/dom2_rangeimpl.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::fontForSelection): Call editingStartPosition() to get the right position for the font determination.
  
          New tests:
  
          * layout-tests/editing/style/style-boundary-001-expected.txt
          * layout-tests/editing/style/style-boundary-001.html
          * layout-tests/editing/style/style-boundary-002-expected.txt
          * layout-tests/editing/style/style-boundary-002.html
          * layout-tests/editing/style/style-boundary-003-expected.txt
          * layout-tests/editing/style/style-boundary-003.html
          * layout-tests/editing/style/style-boundary-004-expected.txt
          * layout-tests/editing/style/style-boundary-004.html
  
  2005-02-23  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3985579> 8A367: Dashboard: Stock widget not visible when click remove to remove single char ticker symbol
  
  	Explicitly remove scroll bar views when removing them from 
  	the overflow.
  
  	Don't paint synchronously when the scroll position changes,
  	this caused funky clip problems.
  
          Reviewed by Hyatt.
  
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::scrollToOffset):
          (RenderLayer::setHasHorizontalScrollbar):
          (RenderLayer::setHasVerticalScrollbar):
          (RenderLayer::updateScrollInfoAfterLayout):
  
  2005-02-23  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3959996> REGRESSION (Mail): cursor moves to beginning of document when click is past end
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::positionForCoordinates): Skip blocks that are invisible or have no height when 
          looking for a child to pass off to. And save away the last visible block with a height to pass off
          to if there is no child at the right y-coordinate.
  
  2005-02-23  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/4010059> BoundsForTextMarkerRange does not update with scrolled web area
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject doAXBoundsForTextMarkerRange:]):
          Adjust for scrolling.
  
  2005-02-22  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	<rdar://problem/3949790> hitting return after pasted styled line results in extra content getting the style
  	
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply): In the case
  	where the start block is the root, insert the newly created DIV at
  	the end of the root block instead of after the last sibling in the
  	start node, since the start node could be inside other
  	style-affecting nodes and we don't want to reparent its cousins
  	into that.
  
  2005-02-23  David Harrison  <harrison at apple.com>
  
          Reviewed by Vicki.
  
          <rdar://problem/4014691> switch to correctly spelled NSAccessibilityForegroundColorTextAttribute constant
          
          Also removed two older, now unneeded, wrappers.
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]):
          (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
          Removed these older, now unneeded, wrappers.
          
          (NSAccessibilityForegroundColorTextAttributeWrapper):
          New wrapper for NSAccessibilityForegroundColorTextAttribute.
          
          (AXAttributeStringSetStyle):
          Use NSAccessibilityForegroundColorTextAttributeWrapper.
          
          (-[KWQAccObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
          Remove uses of visiblePositionForStartOfTextMarkerRange and visiblePositionForEndOfTextMarkerRange.
  
  2005-02-23  David Harrison  <harrison at apple.com>
  
          Reviewed by Vicki.
  
          <rdar://problem/3524784> AX hit test doesn't return info when done in empty space of content area
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityHitTest:]):
          Return unignored object.
  
  2005-02-23  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/4006509> REGRESSION (171-172): Setting CSS -khtml-user-modify property triggers crash
  
          * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty):
          Removed the code that changes the style of the element. This was never needed, and caused the
          style to be modified while we were iterating it.
  
  2005-02-23  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3980209> Mail crashed when I pressed Cmd-Shift-[ (nil-deref in ApplyStyleCommand::addBlockStyleIfNeeded)
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Reordered the new block
          insertion so that it come before the move. The logic stays exactly the same, however, with the old
          ordering, the new block could want to become a child of itself come insertion time. I considered
          making a more complicated code change to fix this problem, but the simple reordering works just
          as well, and seems less risky.
          
          These all changed in an insignificant way. It seems that with the new code, some empty text nodes
          got reordered in the document. This has no effect on anything visible to the user.
          
          * layout-tests/editing/style/create-block-for-style-003-expected.txt
          * layout-tests/editing/style/create-block-for-style-004-expected.txt
          * layout-tests/editing/style/create-block-for-style-009-expected.txt
          * layout-tests/editing/style/create-block-for-style-011-expected.txt
          * layout-tests/editing/style/create-block-for-style-013-expected.txt
  
  2005-02-23  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/4013986> REGRESSION (173-174): onclick event not sent when mouse click on checkbox is double-click
  
          We need to send an onclick event *and* an ondblclick event when we process a double click.
  
          * khtml/khtmlview.cpp: (KHTMLView::dispatchMouseEvent): In the case where we're sending a CLICK_EVENT,
          follow it by a KHTML_CLICK_EVENT, a KHTML_DBLCLICK_EVENT when handling a double click, and a DOMACTIVATE_EVENT.
          We no longer do the DOMACTIVATE_EVENT in dispatchGenericEvent.
          * khtml/rendering/render_form.cpp: (RenderFormElement::slotClicked): send only CLICK_EVENT here, and
          lets dispatchMouseEvent deal with the other subsequent events.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::dispatchGenericEvent): Remove the code that sends a DOMACTIVATE_EVENT, since there's no longer
          a good way to figure out if this is the last event that should be sent before it is.
          (NodeImpl::dispatchMouseEvent): Set the meta key modifier here (as it already is set elsewhere), and
          follow up a CLICK_EVENT with KHTML_CLICK_EVENT, a KHTML_DBLCLICK_EVENT, and DOMACTIVATE_EVENT as above.
  
  2005-02-23  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves
  
          The key was to change things around so that we don't push text from the DOM to the widget
          unless the DOM has actually been changed. This prevents the code path that wipes out inline input
          during the blur process.
  
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLInputElementImpl::HTMLInputElementImpl): Start m_valueMatchesRenderer as false.
          (DOM::HTMLInputElementImpl::parseHTMLAttribute): Set m_valueMatchesRenderer to false when a
          new value is set here.
          (DOM::HTMLInputElementImpl::setValue): Set m_valueMatchesRenderer to false when a new value
          is set here.
          (DOM::HTMLInputElementImpl::setValueFromRenderer): Added. Sets m_value, sets m_valueMatchesRenderer
          to true, and also sends out the input event. It's better to have this here than in the renderer code.
          (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl): Start m_valueIsValid as false (replaces
          m_dirtyvalue) and m_valueMatchesRenderer as false.
          (DOM::HTMLTextAreaElementImpl::updateValue): Added. Factored this out from the value function. Uses
          the new booleans and keeps them up to date, specifically setting m_valueMatchesRenderer based on
          where the value came from.
          (DOM::HTMLTextAreaElementImpl::value): Updated to call updateValue to do most of the work.
          (DOM::HTMLTextAreaElementImpl::setValue): Set both m_valueIsValid and m_valueMatchesRenderer.
          (DOM::HTMLTextAreaElementImpl::setDefaultValue): Take parameter by reference.
  
          * khtml/html/html_formimpl.h: Added setValueFromRenderer, valueMatchesRenderer, setValueMatchesRenderer,
          and m_valueMatchesRenderer to input element. For textarea element, made some parameters pass DOMString
          by reference, and added invalidateValue, updateValue, valueMatchesRenderer, and setValueMatchesRenderer.
  
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer
          is true.
          (RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM
          directly.
          (RenderTextArea::detach): Call updateValue instead of calling value for its side effect.
          (RenderTextArea::handleFocusOut): Ditto.
          (RenderTextArea::updateFromElement): Call updateValue and then not re-get the value from the
          DOM if valueMatchesRenderer is true.
          (RenderTextArea::slotTextChanged): Call invalidateValue instead of directly setting m_dirtyvalue to true.
  
  2005-02-22  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3937203> when a div adds a scrollbar (overflow:auto) we do not get regions
  
  	Just set dashboard dirty bit when overflow scrolling changes.
  
  	Don't do comparison of regions in before scroll regions are
  	added, instead do it in WebKit after automatic scroll regions
  	are added.
  
          Reviewed by Maciej.
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseDashboardRegions):  Cleaned up comments
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::styleForElement): Cleaned up comments
  
          * khtml/khtmlview.cpp:
          (KHTMLView::updateDashboardRegions):
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::updateScrollInfoAfterLayout):
          * kwq/WebDashboardRegion.m:
          (-[WebDashboardRegion isEqual:]):
  
  2005-02-22  Chris Blumenberg  <cblu at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at apple.com>
  
          - fixed Panther deployment build
  
          * kwq/KWQTextEdit.mm: (QTextEdit::setScrollBarModes): Put more stuff inside #if.
  
  2005-02-21  David Harrison  <harrison at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3982183> Mail's HTML paragraphs appear with unintended margins in Entourage and Eudora
  
          * khtml/editing/htmlediting.cpp:
          (khtml::createDefaultParagraphElement): Change element we make from <p> to <div>.
          This fixes the problem, as these other mailers show <div> elements without margins.
          
          Some test files needed to change to preserve the ability to "eyeball" the results.
          Many others changed just because their <p> elements changed to <div> elements.
          
          * layout-tests/editing/deleting/delete-3928305-fix-expected.txt
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt
          * layout-tests/editing/inserting/insert-div-013-expected.txt
          * layout-tests/editing/inserting/insert-div-013.html
          * layout-tests/editing/inserting/insert-div-014-expected.txt
          * layout-tests/editing/inserting/insert-div-014.html
          * layout-tests/editing/inserting/insert-div-018-expected.txt
          * layout-tests/editing/inserting/insert-div-018.html
          * layout-tests/editing/inserting/insert-div-019-expected.txt
          * layout-tests/editing/inserting/insert-div-019.html
          * layout-tests/editing/inserting/insert-div-020-expected.txt
          * layout-tests/editing/inserting/insert-div-020.html
          * layout-tests/editing/inserting/insert-div-021-expected.txt
          * layout-tests/editing/inserting/insert-div-021.html
          * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt
          * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt
          * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt
          * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt
  
  2005-02-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3996737> REGRESSION (Mail): Copy/paste in Mail inserts returns
  
          The root cause of the problem is that a couple of pieces of code in AppKit and Mail 
          insert newlines into markup as it is generated, and the paste code in WebCore was 
          not smart about nodes that do not render (as is the case with these added newlines). 
          So, the solution is to remove these unrendered nodes in the paste code in a pre-pass. 
          Fortunately, my recent addition of such a pass to the paste code to handle styles 
          gave me a convenient place to put this new logic.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplacementFragment::ReplacementFragment): Use new name for function below.
          (khtml::ReplacementFragment::computeStylesAndRemoveUnrendered): Name change from computeStylesForNodes().
          Now does the additional work of removing unrendered nodes, as mentioned above.
          (khtml::isNodeRendered): New helper function.
          * khtml/editing/htmlediting.h: Updated as necessary.
  
  2005-02-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3998892> REGRESSION (Mail): bolding a selection from end of line changes unselected text on starting line.
          
          The styling code did not move to the next node when the starting position was 
          at the last offset of a node. Instead, it styled it. Clearly wrong. Solution 
          is to borrow a check from the delete algorithm. Though I call caretMaxOffset(),
          which I consider deprecated, it is still the simplest and most strightforward
          way to ask the right question for this kind of problem.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::applyInlineStyle): Fixed, as described above.
          * layout-tests/editing/style/style-3998892-fix-expected.txt: Added.
          * layout-tests/editing/style/style-3998892-fix.html: Added.
  
  2005-02-16  Chris Blumenberg  <cblu at apple.com>
  	
  	Fixed: <rdar://problem/3954842> Forward/reply to an HTML email can result in nothing (in cases with <link> tags for CSS)
  
          Reviewed by john.
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeBaseImpl::addChild): don't call insertedIntoDocument on the added child if "this" itself is not in the document.
  
  2005-02-16  John Sullivan  <sullivan at apple.com>
  
          Written by Darin, reviewed by Maciej and me
          
          - change required to make previous checkin work with English language RSS pages
  
          * kwq/KWQKURL.h:
          new private method isHierarchical
          * kwq/KWQKURL.mm:
          (KURL::KURL):
          add hierarchical base URL check when determining whether the URL is absolute
          (KURL::isHierarchical):
          new method, returns true if this is a valid URL with a slash just past the scheme's trailing colon
  
  2005-02-16  John Sullivan  <sullivan at apple.com>
  
          Written by Darin, reviewed by me.
          
          - WebCore part of fix for <rdar://problem/4007384> 
          FILTER: Bookmark of RSS with Japanese search word & multiple RSS pages loses filter
  
          * kwq/DOM.mm:
          (-[DOMElement _getURLAttribute:]):
          new SPI method, uses parseURL and completeURL to get valid URL from attribute value
  
          * kwq/DOMPrivate.h:
          declare new SPI method
  
  2005-02-15  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3942428> reproducible crash loading cbs.sportsline.com
  	
  	This change reverts the fix for <rdar://problem/3805311>, and
  	re-fixes it in a different (better) way. Instead of preventing
  	programmatic open from setting the parsing flag, instead make sure
  	that programmatic close resets it.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::openURL):
          (KHTMLPart::didExplicitOpen):
          (KHTMLPart::closeURL):
          (KHTMLPart::begin):
          (KHTMLPart::end):
          (KHTMLPart::endIfNotLoading):
          (KHTMLPart::slotFinishedParsing):
          (KHTMLPart::checkEmitLoadEvent):
          * khtml/khtml_part.h:
          * khtml/khtmlpart_p.h:
          (KHTMLPartPrivate::KHTMLPartPrivate):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::open):
          (DocumentImpl::implicitOpen):
          (DocumentImpl::close):
          (DocumentImpl::implicitClose):
          * khtml/xml/dom_docimpl.h:
  
  2005-02-15  David Harrison  <harrison at apple.com>
  
          Reviewed by Maciej.
  
          <rdar://problem/3933665> smart delete seems to delete too much after expanding selection with arrow keys
  
          Fixed by updating the selection granularity.  Only byWord granularity enables smart delete, but in this
          case the granularity changed from byWord to byCharacter.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::setSelectionGranularity):
          * khtml/khtml_part.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]):
          (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]):
          (-[WebCoreBridge alterCurrentSelection:direction:granularity:]):
  
  2005-02-15  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          (continued) <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
  
          This was supposed have been committed yesterday with the other part of the fix, but was not.
          
          * khtml/editing/visible_units.cpp:
          (khtml::endOfWord):
  
  2005-02-15  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
          
          Fix for this bug:
          
          <rdar://problem/3951178> REGRESSION (Mail): blank line lost after pasting as quotation
          
          Problem was that the blank line after the selection was getting deleted incorrectly since the
          paste code thought this was an unneeded placeholder rather than a placeholder outside of the
          selection.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Now calls findBlockPlaceholder.
          (khtml::CompositeEditCommand::findBlockPlaceholder): Moved finding code formerly in 
          removeBlockPlaceholderIfNeeded to this new helper.
          (khtml::ReplaceSelectionCommand::doApply): Do not delete placeholder up front. Call 
          findBlockPlaceholder, and delete it later if needed in the already-existing cleanup step.
          * khtml/editing/htmlediting.h: Add new function.
  
          New layout test.
  
          * layout-tests/editing/pasteboard/paste-text-017-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-017.html: Added.
  
          Result changed for the better.
  
          * layout-tests/editing/pasteboard/paste-text-011-expected.txt
  
  2005-02-14  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
  
          Reviewed by Darin.
  
          <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
  
          * khtml/editing/visible_text.cpp:
          (khtml::SimplifiedBackwardsTextIterator::advance):
          Add BR in for <rdar://problem/3917929> fix only if leaving a visible text node.
          
          * khtml/editing/visible_units.cpp:
          (khtml::endOfWord):
          Do not move left over a paragraph boundary.
  
  2005-02-14  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3686434> Safari uses too much RAM on file upload, leading to malloc errors and crashes (HP printers)
  
          * khtml/html/html_formimpl.cpp:
          (DOM::FormDataList::begin): Updated to use a list of FormDataListItem instead of QCString.
          (DOM::FormDataList::end): Ditto.
          (DOM::HTMLFormElementImpl::formData): Same here, and also use appendFile rather than appendData
          when we encounter a path name rather than data.
          (DOM::HTMLInputElementImpl::appendFormData): Use appendFile here rather than reading the file
          in; the reading now happens inside WebKit.
          (DOM::FormDataList::appendString): Updated for FormDataListItem.
          (DOM::FormDataList::appendFile): Added.
  
          * ForwardingHeaders/kfileitem.h: Emptied out the file; no longer includes KWQKFileItem.h.
          * ForwardingHeaders/netaccess.h: Emptied out the file; no longer includes KWQKIONetAccess.h.
          * kwq/KWQKFileItem.h: Removed.
          * kwq/KWQKFileItem.mm: Removed.
          * kwq/KWQKIONetAccess.h: Removed.
          * kwq/KWQKIONetAccess.mm: Removed.
          * WebCore.pbproj/project.pbxproj: Removed the 4 files above.
  
          - small unrelated fix (not reviewed by John)
  
          * khtml/ecma/kjs_window.cpp: (Window::isSafeScript): Put some logging code outside if statements so it works all the time.
  
  2005-02-14  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
  
          Fixed nextLinePosition to calculate affinity rather than take it as a parameter.  Propagated the parameter change out to related methods.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData):
          (khtml::InsertLineBreakCommand::doApply):
          (khtml::InsertParagraphSeparatorCommand::doApply):
          (khtml::InsertTextCommand::input):
          (khtml::ReplaceSelectionCommand::doApply):
          (khtml::ReplaceSelectionCommand::applyStyleToInsertedNodes):
          * khtml/editing/selection.cpp:
          (khtml::Selection::modifyExtendingRightForward):
          (khtml::Selection::modifyMovingRightForward):
          (khtml::Selection::modifyExtendingLeftBackward):
          (khtml::Selection::modifyMovingLeftBackward):
          (khtml::Selection::modify):
          (khtml::Selection::validate):
          * khtml/editing/visible_position.cpp:
          (khtml::visiblePositionsOnDifferentLines):
          * khtml/editing/visible_units.cpp:
          (khtml::rootBoxForLine):
          (khtml::startOfLine):
          (khtml::endOfLine):
          (khtml::inSameLine):
          (khtml::isStartOfLine):
          (khtml::isEndOfLine):
          (khtml::previousLinePosition):
          (khtml::nextLinePosition):
          (khtml::previousSentencePosition):
          (khtml::nextSentencePosition):
          (khtml::previousParagraphPosition):
          (khtml::nextParagraphPosition):
          * khtml/editing/visible_units.h:
          * khtml/khtml_events.cpp:
          (khtml::MouseEvent::offset):
          * khtml/khtml_part.cpp:
          (KHTMLPart::isPointInsideSelection):
          (KHTMLPart::selectClosestWordFromMouseEvent):
          (KHTMLPart::handleMousePressEventTripleClick):
          (KHTMLPart::handleMousePressEventSingleClick):
          (KHTMLPart::handleMouseMoveEventSelection):
          (KHTMLPart::khtmlMouseReleaseEvent):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::positionForCoordinates):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_br.cpp:
          (RenderBR::positionForCoordinates):
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_container.cpp:
          (RenderContainer::positionForCoordinates):
          * khtml/rendering/render_container.h:
          * khtml/rendering/render_inline.cpp:
          (RenderInline::positionForCoordinates):
          * khtml/rendering/render_inline.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::caretRect):
          (RenderObject::positionForCoordinates):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::positionForCoordinates):
          * khtml/rendering/render_replaced.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::positionForCoordinates):
          * khtml/rendering/render_text.h:
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousCharacterPosition):
          (DOM::Position::nextCharacterPosition):
          (DOM::Position::leadingWhitespacePosition):
          (DOM::Position::trailingWhitespacePosition):
          * khtml/xml/dom_position.h:
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject value]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          (-[KWQAccObject doAXLineForTextMarker:]):
          (-[KWQAccObject doAXTextMarkerRangeForLine:]):
          (-[KWQAccObject doAXTextMarkerForPosition:]):
          (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
          * kwq/KWQKHTMLPart.mm:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge _visiblePositionForPoint:]):
  
  05-02-07  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken and John.
  
  	Re-fixed a specific case of the following:
  
  	<rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration
  
  	Oddly, Cmd-B, Cmd-U, type some text, return, Cmd-U, Cmd-B, type
  	some text, worked fine. But hitting the second Cmd-B before the
  	second Cmd-U still failed to remove underlining. The reason for
  	this is that our code to compute the style of the current position
  	did not work when you had a typing style and were positioned right
  	at a <br> element. For various reasons, this did not show up for
  	bold and italic, since those are handled through the font manager.
  
  	The following change fixes this - for elements that can't have
  	children, we add the dummy span after the element of interest,
  	rather than as a child of it.
  	
          * khtml/khtml_part.cpp:
          (KHTMLPart::selectionComputedStyle): 
  
  2005-02-11  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/3978980> Double Clicking on a line in Mail selected the entire body
  
          * khtml/editing/visible_units.cpp:
          (khtml::startOfWord):
          (khtml::endOfWord):
          Pay attention to being at the end of a paragraph.
          
          (khtml::previousLinePosition):
          (khtml::nextLinePosition):
          (khtml::endOfParagraph):
          Use DOWNSTREAM per recent affinity changes.
  
  2005-02-11  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3985118> DOM objects not being marshaled on JS->native calls
  
  	Re-factored how 'native' wrappers for JS objects are created.  The interpreter now
  	creates these wrappers.  The WebCore subclass of the interpreter now overrides
  	createLanguageInstanceForValue() and creates a DOM ObjC wrapper for DOM objects.
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/ecma/kjs_binding.cpp:
          (ScriptInterpreter::createLanguageInstanceForValue):
          * khtml/ecma/kjs_binding.h:
          * kwq/DOMUtility.mm: Added.
          (KJS::ScriptInterpreter::createObjcInstanceForValue):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::getAppletInstanceForView):
          (getInstanceForView):
          (KWQKHTMLPart::getEmbedInstanceForView):
          (KWQKHTMLPart::getObjectInstanceForView):
  
  2005-02-11  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3937352> Quote level not maintained when copied and pasted within a Mail message
  
          Reviewed by harrison.
  
          * khtml/editing/markup.cpp:
          (khtml::isMailBlockquote): new 
          (khtml::createMarkup): retain the Mail quote level by including all ancestor mail block quotes
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::positionForCoordinates): default to downstream for the affinity since the affinity is only upstream when the cursor is clicked to the right of a wrapped line
          * khtml/rendering/render_text.cpp:
          (RenderText::positionForCoordinates): ditto
  
  2005-02-11  Adele Amchan  <adele at apple.com>
  
          Reviewed by Darin.
  
          fix for <rdar://problem/4004004> no need to add body element for xml documents
  
          In the fix for <rdar://problem/3758785> we decided to add a body element when closing a document 
          to ensure that the onload handler would fire.  This is unnecessary for xml documents, 
          so now we also check to see if we're dealing with an html document before adding the body element.
  
          * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close): 
  
  2005-02-11  Adele Amchan  <adele at apple.com>
  
          Reviewed by Darin.
  
          * layout-tests/apple-only/base/www.excite.com/index-expected.txt: updates tests because of custom tag change.
          * layout-tests/apple-only/base/www.msnbc.com/index-expected.txt:
          * layout-tests/apple-only/base/www.time.com/index-expected.txt:
          * layout-tests/apple-only/base/www.travelocity.com/index-expected.txt:
          * layout-tests/apple-only/base/www.zdnet.com/index-expected.txt:
          * layout-tests/fast/overflow/003-expected.txt:
  
          * layout-tests/fast/js/window-object-cross-frame-calls-expected.txt: updated test because of added Body (see rdar://problem/3758785)
  
  === Safari-186 ===
  
  2005-02-11  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3915449> paths are relative to the old src URL after document.open, which is supposed to clear the document, including the URL
  
          * khtml/xml/dom_docimpl.h: Added a new openInternal function for use by KHTMLPart.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::open): Changed to do everything we did before, but also clear the URL and set the
          base URL based on the enclosing document. This is the basic JavaScript/DOM operation of opening a
          document, which is supposed to clear the document, including the URL. In the long run we might want
          to do even more document "resetting and clearing" in here, but this URL clearing is what's needed
          now to fix the most important problem.
          (DocumentImpl::openInternal): Moved the old open code in here, except for the "parsing" check, which
          is unnecessary and inappropriate in the one place we call this.
  
          * khtml/khtml_part.cpp: (KHTMLPart::begin): Call openInternal instead of open.
  
  2005-02-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3992092> 8A374: Mail crash while pasting - RemoveNodeCommand
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): Code tried to remove a node that was no longer in 
          the document. We try to do a good job of detecting all these cases, and generally do. This
          one was missed. Fixed.
  
  2005-02-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Harrison.
  
          - added support needed to fix <rdar://problem/3991225> Format->Style->Underline menu item does not get checked when selected text is underlined
  
          * kwq/WebCoreBridge.h: Added selectionHasStyle: method.
          * kwq/WebCoreBridge.mm: (-[WebCoreBridge selectionHasStyle:]): Added. Calls selectionHasStyle on the part.
  
  2005-02-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Harrison.
  
          - fixed <rdar://problem/3990484> cursor changes to I-beam when moving over text in widgets, even when selection off via CSS
  
          * khtml/khtmlview.cpp: (KHTMLView::viewportMouseMoveEvent): Changed code to check canSelect when deciding
          whether to show an I-beam cursor.
  
          * khtml/rendering/render_object.h: Added canSelect.
          * khtml/rendering/render_object.cpp:
          (selectStartNode): Added. Helper function with the guts of shouldSelect.
          (RenderObject::canSelect): Added. Like shouldSelect, but does not call the "start selecting" event handler.
          (RenderObject::shouldSelect): Refactored to use selectStartNode.
  
          * khtml/css/cssvalues.c: Regnerated with newer gperf.
  
  2005-02-10  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3867759, .mac regression where scrollers don't show up.  Make sure you can set the .width and
  	.height properties on the Image object.
  	
          Reviewed by John Sullivan
  
          * khtml/ecma/kjs_html.cpp:
          (ImageConstructorImp::construct):
          (Image::getValueProperty):
          (Image::putValue):
          (Image::Image):
          * khtml/ecma/kjs_html.h:
  
  2005-02-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          Fix for this bug:
          
          <rdar://problem/3965158> Drag-n-drop within a rich text message sometimes changes the color of the dragged text
          
          This change fixes the bug....and much more. Now, for the first time, the paste code can do "smart merging"
          or "smooshing" of styles during its operation. Since this new code is actively, rather than passively
          working with styles, it fixes the bug, and lays the groundwork for similar work we need to do to
          preserve quote levels in Mail.
  
          * khtml/css/css_valueimpl.cpp:
          (DOM::CSSMutableStyleDeclarationImpl::clear): New method.
          (DOM::CSSMutableStyleDeclarationImpl::removeBlockProperties): Ditto.
          (DOM::CSSMutableStyleDeclarationImpl::removePropertiesInSet): Ditto.
          (DOM::operator==): Add operator for CSSProperty.
          * khtml/css/css_valueimpl.h: Declare new functions.
          * khtml/editing/htmlediting.cpp:
          (khtml::isEmptyStyleSpan): Improved the test in this function, rolling together the old implementation
          with some code that did this work inline elsewhere. Sum of the parts is better than either test was by itself.
          (khtml::isStyleSpan): Check for ID_SPAN.
          (khtml::ApplyStyleCommand::removeCSSStyle): Call isEmptyStyleSpan. This was the place with an inline implementation before.
          (khtml::ReplacementFragment::ReplacementFragment): Now takes a DocumentImpl argument. No longer does a "default style"
          check, but rather calls functions which do a similar check to that, and much more.
          (khtml::ReplacementFragment::~ReplacementFragment): Deref document, and computed styles.
          (khtml::ReplacementFragment::styleForNode): New helper. Looks up and returns computed style for a node.
          (khtml::ReplacementFragment::removeNodePreservingChildren): New helper.
          (khtml::ReplacementFragment::computeStylesForNodes): New function which computes the "desired" style for
          every node in the fragment. This information is used later after paste is done as a reference for testing
          what styles need to be added, and which can be removed as redundant, from all the nodes inserted by the
          replacement code.
          (khtml::ReplacementFragment::removeStyleNodes): Clears out all style nodes from the fragment. They are
          no longer needed after the call to computeStylesForNodes(),
          (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): Add a document to the call to initialize the
          command's ReplacementFragment.
          (khtml::ReplaceSelectionCommand::doApply): Call applyStyleToInsertedNodes() after inserting nodes to make
          styles come out right.
          (khtml::ReplaceSelectionCommand::applyStyleToInsertedNodes): This is the "style smooshing" function. It 
          computes the styles that need to be added to each node inserted, comparing the style it gets from just
          being inserted into its correct destination with the computed "desired style" done in the 
          ReplacementFragment constructor. It then adds in all the necessary styles, and will also remove redundant styles.
          * khtml/editing/htmlediting.h: Update declarations and member variables as needed.
          * khtml/editing/markup.cpp:
          (khtml::startMarkup): Add additional style annotations to the markup we generate, so that paste code can preserve it.
          (khtml::markup): Ditto.
          (khtml::createMarkup): Ditto.
          
          These test results are subtly better with this change. They no longer have an unneeded empty span.
          Visually the same as before.
          
          * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt
          * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt
          * layout-tests/editing/style/remove-underline-expected.txt
          * layout-tests/editing/style/remove-underline-from-stylesheet-expected.txt
  
          New tests:
  
          * layout-tests/editing/style/smoosh-styles-001-expected.txt
          * layout-tests/editing/style/smoosh-styles-002-expected.txt
          * layout-tests/editing/style/smoosh-styles-001.html
          * layout-tests/editing/style/smoosh-styles-002.html
  
  2005-02-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Adele.
  
          - fixed <rdar://problem/3974988> WebHTMLView drops scroll wheel events when deltas are 0
  
          * kwq/WebCoreScrollView.m: (-[WebCoreScrollView autoforwardsScrollWheelEvents]): Added, for Tiger only.
          For Tiger, removed the override of scrollWheel:, which doesn't work quite right because of how the
          delta attributes return all 0 for newfangled scrolling events from the new trackpads.
  
  2005-02-10  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/3991532> REGRESSION (Mail): Triple-click on trailing blank line should select previous line but doesn't
  
          * khtml/css/cssvalues.c:
          (hash_val):
          (findValue):
          * khtml/editing/selection.cpp:
          (khtml::Selection::validate):
          Do moral equiavalent of LeftWordIfOnBoundary for PARAGRAPH.
  
  2005-02-10  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/3991848> Double-click on first character selects wrong item
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::validate):
          Honor the fact that clicking on a character positions the cursor on the left side of the character.
  
  2005-02-10  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3980778, repro crash in RootInlineBox::paint.  Make sure that when merging blocks we dirty them for layout
  	up front. That way as we do the merge, we dont attempt to examine the lines in dirtyLinesForChangedChild.
  	
          Reviewed by mjs
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::removeChild):
  
  2005-02-10  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3987010, fix a bug that caused the self-collapsing-block-cleared-float bit to never get set correctly.
  	
          Reviewed by mjs
  
          * khtml/rendering/render_block.h:
          (khtml::RenderBlock::MarginInfo::setSelfCollapsingBlockClearedFloat):
  
  2005-02-10  David Hyatt  <hyatt at apple.com>
  
  	Fix  for 3992440, text not wrapping correctly on half moon bay web site.  Refine an incorrect optimization I
  	added to be less restrictive.
  	
          Reviewed by mjs
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlockChildren):
  
  2005-02-08  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3977973> pages on ebay leak referenced JavaScript objects -- over time browsing becomes super-slow
  
  	I fixed this by removing all event listeners for a document, it's
  	children, and any disconnected nodes that used to be in the
  	document at document detach time. Mozilla temporarily disables
  	event listeners on such nodes, but re-enables them if you
  	re-parant a node into a new document. However, in WebCore, you
  	can't re-parent a node into another document, so there is no
  	observable change in behavior.
  
  	We have to do this to break the possible reference cycles between
  	event listeners and the dom nodes they are attached to (e.g. via
  	scope chain, as in this case).
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::detach):
          (DocumentImpl::removeAllEventListenersFromAllNodesx):
          (DocumentImpl::registerDisconnectedNodeWithEventListeners):
          (DocumentImpl::unregisterDisconnectedNodeWithEventListeners):
          (DocumentImpl::removeAllDisconnectedNodeEventListeners):
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::~NodeImpl):
          (NodeImpl::addEventListener):
          (NodeImpl::removeEventListener):
          (NodeImpl::removeAllEventListeners):
          (NodeImpl::removeHTMLEventListener):
          (NodeImpl::insertedIntoDocument):
          (NodeImpl::removedFromDocument):
          * khtml/xml/dom_nodeimpl.h:
  
  2005-02-09  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3999213> Sometimes 2 Windows Media Player plugin instances are loaded
  
          Reviewed by hyatt.
  
          * khtml/html/html_objectimpl.cpp:
          (HTMLObjectElementImpl::attach): Set needWidgetUpdate to false before calling updateWidget because updateWidget may cause this method or another method (which also calls updateWidget) to be called.
          (HTMLObjectElementImpl::recalcStyle): ditto
  
  2005-02-09  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
          
          <rdar://problem/3937447> Mail-689: Arrow key navigation in new message body stops working when a line ends with a bold word
          
          Added affinity to VisiblePosition.  Changed Selection code to use affinity more.
          
          (Partial) <rdar://problem/3982096> editing/pasteboard/paste-text-007 is failing
          
          Changed ReplaceSelectionCommand to also pay attention to the top children of the incoming fragment, not just the very last node inserted, when deciding whether to insert a paragraph for the Apple interchange newline.
  
          * khtml/ecma/kjs_window.cpp:
          (SelectionFunc::tryCall):
          * khtml/editing/htmlediting.cpp:
          (khtml::EditCommandPtr::setStartingSelection):
          (khtml::EditCommandPtr::setEndingSelection):
          (khtml::EditCommand::setStartingSelection):
          (khtml::EditCommand::setEndingSelection):
          (khtml::CompositeEditCommand::deleteInsignificantTextDownstream):
          (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
          (khtml::ApplyStyleCommand::splitTextAtStartIfNeeded):
          (khtml::ApplyStyleCommand::splitTextAtEndIfNeeded):
          (khtml::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
          (khtml::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
          (khtml::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
          (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
          (khtml::ApplyStyleCommand::joinChildTextNodes):
          (khtml::DeleteSelectionCommand::initializePositionData):
          (khtml::DeleteSelectionCommand::handleGeneralDelete):
          (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
          (khtml::DeleteSelectionCommand::doApply):
          (khtml::InsertLineBreakCommand::doApply):
          (khtml::InsertParagraphSeparatorCommand::doApply):
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
          (khtml::InsertTextCommand::input):
          (khtml::MoveSelectionCommand::doApply):
          (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand):
          (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand):
          (khtml::ReplaceSelectionCommand::doApply):
          (khtml::ReplaceSelectionCommand::completeHTMLReplacement):
          (khtml::ReplaceSelectionCommand::updateNodesInserted):
          (khtml::TypingCommand::deleteKeyPressed):
          (khtml::TypingCommand::forwardDeleteKeyPressed):
          (khtml::TypingCommand::markMisspellingsAfterTyping):
          * khtml/editing/htmlediting.h:
          * khtml/editing/selection.cpp:
          (khtml::Selection::Selection):
          (khtml::Selection::init):
          (khtml::Selection::moveTo):
          (khtml::Selection::modifyExtendingRightForward):
          (khtml::Selection::modifyMovingRightForward):
          (khtml::Selection::modifyExtendingLeftBackward):
          (khtml::Selection::modifyMovingLeftBackward):
          (khtml::Selection::modify):
          (khtml::Selection::xPosForVerticalArrowNavigation):
          (khtml::Selection::clear):
          (khtml::Selection::setBase):
          (khtml::Selection::setExtent):
          (khtml::Selection::setBaseAndExtent):
          (khtml::Selection::layout):
          (khtml::Selection::validate):
          * khtml/editing/selection.h:
          (khtml::Selection::startAffinity):
          (khtml::Selection::endAffinity):
          (khtml::Selection::baseAffinity):
          (khtml::Selection::extentAffinity):
          (khtml::operator==):
          * khtml/editing/text_affinity.h:
          (khtml::):
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::VisiblePosition):
          (khtml::VisiblePosition::init):
          (khtml::VisiblePosition::initUpstream):
          (khtml::VisiblePosition::initDownstream):
          (khtml::VisiblePosition::next):
          (khtml::VisiblePosition::previous):
          (khtml::startVisiblePosition):
          (khtml::endVisiblePosition):
          * khtml/editing/visible_position.h:
          (khtml::VisiblePosition::):
          (khtml::VisiblePosition::VisiblePosition):
          (khtml::VisiblePosition::affinity):
          (khtml::VisiblePosition::setAffinity):
          (khtml::operator==):
          * khtml/editing/visible_units.cpp:
          (khtml::previousBoundary):
          (khtml::nextBoundary):
          (khtml::startOfLine):
          (khtml::endOfLine):
          (khtml::previousLinePosition):
          (khtml::nextLinePosition):
          (khtml::startOfParagraph):
          (khtml::endOfParagraph):
          (khtml::previousParagraphPosition):
          (khtml::nextParagraphPosition):
          (khtml::startOfBlock):
          (khtml::endOfBlock):
          (khtml::startOfDocument):
          (khtml::endOfDocument):
          * khtml/editing/visible_units.h:
          * khtml/khtml_part.cpp:
          (KHTMLPart::findTextNext):
          (KHTMLPart::selectClosestWordFromMouseEvent):
          (KHTMLPart::handleMousePressEventTripleClick):
          (KHTMLPart::handleMousePressEventSingleClick):
          (KHTMLPart::handleMouseMoveEventSelection):
          (KHTMLPart::khtmlMouseReleaseEvent):
          (KHTMLPart::selectAll):
          (KHTMLPart::computeAndSetTypingStyle):
          (KHTMLPart::selectionComputedStyle):
          * khtml/rendering/render_br.cpp:
          (RenderBR::positionForCoordinates):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::updateSelection):
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeBaseImpl::setFocus):
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousCharacterPosition):
          (DOM::Position::nextCharacterPosition):
          * khtml/xml/dom_position.h:
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject value]):
          (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]):
          (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          (-[KWQAccObject doAXLineForTextMarker:]):
          (-[KWQAccObject doAXTextMarkerRangeForLine:]):
          (-[KWQAccObject doAXTextMarkerForPosition:]):
          (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
          (-[KWQAccObject doSetAXSelectedTextMarkerRange:]):
          * kwq/KWQAccObjectCache.mm:
          (KWQAccObjectCache::textMarkerForVisiblePosition):
          (KWQAccObjectCache::visiblePositionForTextMarker):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::findString):
          (KWQKHTMLPart::advanceToNextMisspelling):
          (KWQKHTMLPart::styleForSelectionStart):
          (KWQKHTMLPart::baseWritingDirectionForSelectionStart):
          (KWQKHTMLPart::setSelectionFromNone):
          (KWQKHTMLPart::respondToChangedSelection):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setSelectedDOMRange:affinity:]):
          (-[WebCoreBridge selectionAffinity]):
          (-[WebCoreBridge setMarkDOMRange:]):
          (-[WebCoreBridge _visiblePositionForPoint:]):
          (-[WebCoreBridge moveDragCaretToPoint:]):
          (-[WebCoreBridge editableDOMRangeForPoint:]):
          (-[WebCoreBridge ensureSelectionVisible]):
          (-[WebCoreBridge rangeOfCharactersAroundCaret]):
  
  2005-02-09  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3985211> Seed: Mail: Drag-and-drop destination indicator / insertion point disappears
  
          Reviewed by kocienda.
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paintCaret): new
          (khtml::RenderBlock::paintObject): call paintCaret for the cursor caret and the drag caret
          * khtml/rendering/render_block.h:
  
  === Safari-185 ===
  
  2005-02-08  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3996344> Entire document content is deleted when only the first paragraph was supposed to be
  
          Problem stems from my attempt to fix this bug: <rdar://problem/3986155> Insertion point goes 
          to beginning of doc after deleting.
          
          I added an "optimization" that proved to do more harm than good. So, basically, the fix is to remove code.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::handleGeneralDelete)
  
  2005-02-07  Darin Adler  <darin at apple.com>
  
          Reviewed by Kevin.
  
          - fixed <rdar://problem/3890352> REGRESSION (125-170, Panther-only): pasted textarea contents disappear (exception in NSText)
  
          * kwq/KWQTextArea.mm: (-[KWQTextArea tile]): Don't resize the text view immediately here.
          Use performWithDelay to defer it to avoid the re-entrancy that bothers the Panther version
          of NSTextView. On Tiger, leave the code alone.
  
  2005-02-07  Adele Amchan  <adele at apple.com>
  
          Reviewed by Darin.
  
          Fix for <rdar://problem/3993628> REGRESSION (180-181): Logitelnet bank's website doesn't work
  
          This fixes an oversight in the fix for <rdar://problem/3964286>.  
          We're now making sure there is a document before calling checkCompleted in slotLoaderRequestDone.
         	That function is called even when other parts finish loads of their subresources, so we could end
  	up calling checkCompleted before we had a document. We also looked over all the other calls to
  	checkCompleted to convince ourselves no other call sites had a similar issue.
  
          * khtml/khtml_part.cpp: (KHTMLPart::slotLoaderRequestDone): Check if doc is nil before calling
  	checkCompleted.
  
  2005-02-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/3953302> Replacing quoted text ends up with blue-colored text that is not quoted
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::doApply): Removed special case delete code for select all. It was
          causing as many bugs as it fixed. What's more, the design concept is a bit shaky. By removing
          this special case, the bug goes away.
          * khtml/editing/htmlediting.h: Remove declaration.
          
          Test results using selectAll() updated to reflect changed behavior.
          
          * layout-tests/editing/deleting/delete-3775172-fix-expected.txt:
          * layout-tests/editing/deleting/delete-select-all-001-expected.txt:
          * layout-tests/editing/deleting/delete-select-all-003-expected.txt:
          * layout-tests/editing/inserting/insert-3654864-fix-expected.txt:
          * layout-tests/editing/inserting/insert-3775316-fix-expected.txt:
          * layout-tests/editing/inserting/insert-3851164-fix-expected.txt:
          * layout-tests/editing/inserting/insert-3907422-fix-expected.txt:
          * layout-tests/editing/pasteboard/paste-text-015-expected.txt:
  
  2005-02-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3994164> setting a new style attribute with setAttribute("style") doesn't blow away the old style
  
          * khtml/css/css_valueimpl.h: Renamed parseProperty to parseDeclaration, since it's used to parse
          an entire style declaration, not a single property.
          * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::parseDeclaration): Renamed,
          and added code to clear m_values.
          * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseHTMLAttribute): Call function by its
          new name, and remove some unnecessary comments.
  
  2005-02-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3993722> need oncut and onpaste handlers implemented for <textarea> (needed for widgets)
  
          * kwq/KWQTextArea.mm:
          (-[KWQTextAreaTextView dispatchHTMLEvent:]): Added.
          (-[KWQTextAreaTextView cut:]): Dispatch "before cut" and "cut" events.
          (-[KWQTextAreaTextView copy:]): Dispatch "before copy" and "copy" events.
          (-[KWQTextAreaTextView paste:]): Dispatch "before paste" and "paste" events.
          (-[KWQTextAreaTextView pasteAsPlainText:]): Ditto.
          (-[KWQTextAreaTextView pasteAsRichText:]): Ditto.
  
  2005-02-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3943038> <input type=search> that is focused in onload handler doesn't have a visible editor
  
          * khtml/xml/dom_docimpl.cpp: (DocumentImpl::setFocusNode): Always update layout before giving focus to a widget.
          This prevents the bad case where we give a widget focus before it has been positioned or sized, causing us to
          exercise edge cases AppKit doesn't handle well.
  
          * kwq/KWQTextField.mm: (-[KWQTextFieldController initWithTextField:QLineEdit:]): Remove workaround code I added
          to fix bug 3943049. Updating the layout fixes the same problem in a cleaner, safer way, and solves another problem,
          with the way the clip view is set up.
  
  2005-02-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3425232> textarea won't trigger onchange action when clicking to new field
  
          * khtml/rendering/render_form.h: Added new m_dirty data member.
          * khtml/rendering/render_form.cpp:
          (RenderTextArea::RenderTextArea): Initialize m_dirty to false.
          (RenderTextArea::detach): Call value() on the DOM element to cause it to fetch the value from this object.
          (RenderTextArea::handleFocusOut): Ditto. Also send the onchange event based only on the m_dirty flag.
          (RenderTextArea::updateFromElement): Clear the m_dirty flag if the edited value is blown away by a value
          that comes from the DOM element. Remove code to clear the element's m_dirtyvalue flag; that's an unnecessary
          optimization, and ideally we'll stop having code in the render object that knows about that flag later.
          (RenderTextArea::slotTextChanged): Set the m_dirty flag.
  
  2005-02-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - re-fixed <rdar://problem/3760910> please add support for custom tag names in HTML
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::tagId): Use ID_LAST_TAG + 1 for the ID of the first assigned tag ID. Before we'd use ID_LAST_TAG,
          which resulted in the same number being used for ID_COMMENT and the first custom tag.
          (DocumentImpl::tagName): Use ID_LAST_TAG + 1, as above.
          (DocumentImpl::namespaceURI): Change a < ID_LAST_TAG to <= ID_LAST_TAG in the same spirit as above.
  
  2005-02-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3986639> Crash occurs after choosing Undo Typing from the Edit menu
  
          * kwq/KWQTextArea.mm: (-[KWQTextArea viewWillMoveToWindow:]): Remove actions from undo manager when the view is
          removed from the window. Unfortunately, to do this the code has to know that the target of NSTextView actions
          will be the text storage object, but given the NSText architecture, that's pretty clear.
  
  2005-02-05  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3991974> REGRESSION: www.jabra.com world location screen does not work
  
          Reviewed by hyatt.
  
          * kwq/KWQKJavaAppletWidget.mm:
          (KJavaAppletWidget::KJavaAppletWidget): fallback to the document's base URL if there is no baseURL attribute
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge baseURL]): new
  
  2005-02-04  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          Rolled out Ken's accidental checkin when committing <rdar://problem/3986155> fix yesterday.
          
          * khtml/editing/selection.cpp:
          (khtml::Selection::validate):
  
  2005-02-04  Adele Amchan  <adele at apple.com>
  
          Reviewed by Darin.
  
          Fix for <rdar://problem/3758785> Safari no longer works at BankOfAmerica online banking for military users
    
          When closing the document, if a body doesn't exist we now create one.  This bug was preventing the onload handler from
          firing in cases where there wasn't a body.  In the BankOfAmerica case, the page was just a bit of script where the onload
          handler redirected to the correct page.
  
          * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close):
  
  2005-02-03  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          Fix for this bug:
          
          <rdar://problem/3986155> Insertion point goes to beginning of doc after deleting
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::setStartNode): New convenience to handle reference counting when setting.
          (khtml::DeleteSelectionCommand::handleGeneralDelete): This contains the crux of the bug fix. Improve tests
          that detect when a selected node needs to be retained, rather than deleted, to preserve the intent of the user.
          This has the side effect of causing the insertion point placement code to succeed rather than fail. Before
          this fix, the failure of the insertion point placement code caused the insertion point to jump to the start
          of the document, which is the symptom that can be perceived by users when editing.
          * khtml/editing/htmlediting.h: Add setStartNode declaration.
          * khtml/editing/visible_units.cpp:
          (khtml::startOfBlock): This function had a stubbed-in non-tested implementation. Implement and 
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-001.html: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-002.html: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-003.html: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-004.html: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-005-expected.txt: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-005.html: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-006-expected.txt: Added.
          * layout-tests/editing/deleting/delete-at-paragraph-boundaries-006.html: Added.
  
  === Safari-183 ===
  
  2005-02-03  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3987419> Stocks and Weather leak what appears to XMLHTTPRequest results
  
  	XMLHTTPRequests were causing massive leaks.  _webcore_initWithHeaderString: did funky things with
  	self replacement.  Re-wrote to use more traditional factory constructor avoiding self replacement.
  	
          Reviewed by David Harrison.
  
          * kwq/KWQLoader.mm:
          (+[NSDictionary _webcore_dictionaryWithHeaderString:]):
          (KWQServeRequest):
          (KWQServeSynchronousRequest):
  
  2005-02-03  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3938763> Cannot view Windows Media Player videos (soundtrack is played twice with delay)
  
          Reviewed by hyatt.
  
          * khtml/html/html_objectimpl.cpp:
          (HTMLObjectElementImpl::attach): set needWidgetUpdate to false right after calling updateWidget because dispatchHTMLEvent can end up calling this method again
          (HTMLObjectElementImpl::recalcStyle): ditto
  
  2005-02-02  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Chris.
  
          - WebCore part of fix for <rdar://problem/3980651> REGRESSION (125-180): Huge number of pages printed from certain page, 
          iFrame involved
          
          This also fixes the problems with printing from GMail, yay!
  
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::paintLines):
          If the current line is taller than the entire page height (e.g. tall iFrame), don't try
          to avoid splitting it across pages.
          
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
          Handle error cases in a more obvious manner; this will cause future problems like this
          to print a blank page and complain to the console on debug builds, rather than print a 
          zillionty mostly-blank pages.
  
  2005-02-02  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3960304> can't load a particular applet (at www.escape.de) unless it's the first applet to be loaded
  
          Reviewed by hyatt.
  
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget): when getting the MIME type from the PARAM tag, make sure the MIME type is the text from the left of the semi-colon if there is one. We do this elsewhere as well.
  
  2005-02-02  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3983628> control-click on WebView is not selecting the word under the cursor (Mail, non-editable WebView)
  
          Reviewed by rjw.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::sendContextMenuEvent): check if SPI to always enable selecting closest word is enabled
          * kwq/WebCoreBridge.h:
  
  2005-02-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          * khtml/editing/markup.cpp:
          (khtml::createMarkup): Removed debug spam I committed earlier in error.
  
  2005-02-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/3823109> WebKit should support -toggleBaseWritingDirection: (bidi editing support)
  
          Since base writing direction is a paragraph-level property in AppKit, and we use the CSS direction
          property in WebCore, which can be applied to inline elements as well as blocks, a new notion has
          been added to the WebCore apply style logic. It is now possible to force all properties in a 
          style declaration to be applied as though they were block properties.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::ApplyStyleCommand): Add an enum and a flag to this command that controls whether to force all
          properties in the style to be applied as block styles. Default is "no", retaining previous behavior.
          (khtml::ApplyStyleCommand::doApply): Switch on new flag to apply styles as before, or force all preoperties to be applied
          as block styles.
          * khtml/editing/htmlediting.h:
          (khtml::ApplyStyleCommand::): Add an enum and a flag, as above.
          * khtml/khtml_part.cpp:
          (KHTMLPart::applyParagraphStyle): New method to force application of all style properties as block styles.
          * khtml/khtml_part.h: Update header declarations.
          * kwq/KWQKHTMLPart.h: Update header declarations.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::baseWritingDirectionForSelectionStart): Accessor to help WebKit do a toggle operation on 
          writing direction.
          * kwq/WebCoreBridge.h: Update header declarations.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge applyParagraphStyle:withUndoAction:]): New method to force application of all style properties as block styles.
          (-[WebCoreBridge baseWritingDirectionForSelectionStart]): Accessor to help WebKit do a toggle operation on 
          writing direction.
  
          Fix for this bug:
          
          <rdar://problem/3985035> REGRESSION (Mail): Text copied from wrapped line contains extra character when pasted
  
          * khtml/editing/markup.cpp:
          (khtml::renderedText): Add an enum and a flag to this command that controls whether to force all
          This is the result of an error in the code that computes the rendered text that is selected 
          when copying. Since spaces collapse at the end of lines, and these spaces need to be copied 
          when the selection spans line endings, code runs to compute this text. However, this code 
          was also running incorrectly in cases where lines wrapped. I have now added the missing 
          test to check that the selection does indeed extend to the end of the line.
  
  
  2005-02-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for these bugs:
          
          <rdar://problem/3984894> REGRESSION (Mail): Command-right-arrow in reply does the wrong thing (two ways)
          <rdar://problem/3985130> REGRESSION (Mail): command-right-arrow in pasted RTF selects only up to tab
  
          * khtml/editing/visible_units.cpp:
          (khtml::endOfLine): Two separate problems in this new function recently added to take the place of
          selectionForLine. In the first, endOfLine did not stop at BR elements, and returned the position
          beyond them. In the second, the VisiblePosition constructor gives the wrong answer in certain cases.
          Darin is going to work on a solution for that problem. In the meantime, I can fix the symptom of this
          bug by going down to the last leaf child of the root line box; a one line change we will roll out when
          Darin's fix is in.
  
  2005-02-01  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3985535> QT Plug-in JavaScript support now fails in <embed> tag only case
  
          Reviewed by Maciej.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::tryGet):
  
  2005-02-01  John Sullivan  <sullivan at apple.com>
  
          Written by Darin, reviewed and tested by me
          
          - fixed <rdar://problem/3969684> Panther-only: extra blank lines between 
          pasted content from Blot
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::attributedString):
          don't emit paragraph breaks if the margins are tiny; matches what
          we do for plain-text conversion
  
  === Safari-182 ===
  
  2005-02-01  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3985160> Deficiencies in pasting architecture blocking progress on other bugs
  
          * khtml/editing/html_interchange.h: Move style span text used to mark element added to 
          add style to this header.
          * khtml/editing/htmlediting.cpp:
          (khtml::styleSpanClassString): Change to use constant moved to html_interchange.h.
          (khtml::isStyleSpan): New helper function. Checks if this is a span we added to apply style.
          (khtml::CompositeEditCommand::insertNodeBefore): Added an assert to check that the node
          we are inserting before is not the body.
          (khtml::CompositeEditCommand::insertNodeAfter): Ditto, but check is for after.
          (khtml::ReplacementFragment::ReplacementFragment): Added code to process the "default style"
          that is added by the copy code.
          (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): first and last nodes inserted are
          now member variables instead of function locals. Initialize them here.
          (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand): Deref first and last nodes inserted
          if necessary.
          (khtml::ReplaceSelectionCommand::doApply): Change design to fix the bug. Major change is to
          separate out the code that inserts nodes into the tree so additional styling checks can
          be done in a centralized way. Also got rid of the notion of "merging into the end block." That
          concept was just wrong.
          (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Tweak interface now that first and 
          last nodes inserted are member variables.
          (khtml::ReplaceSelectionCommand::insertNodeAfterAndUpdateNodesInserted): New helper used
          by replace code to do the stated DOM operation and update state internal to the command.
          This will also be a catch point to handle the kinds of additional style checks needed to
          make paste work right.
          (khtml::ReplaceSelectionCommand::insertNodeAtAndUpdateNodesInserted): Ditto.
          (khtml::ReplaceSelectionCommand::insertNodeBeforeAndUpdateNodesInserted): Ditto.
          (khtml::ReplaceSelectionCommand::updateNodesInserted): Ditto.
          * khtml/editing/htmlediting.h: Update declarations as needed.
          * khtml/editing/markup.cpp:
          (khtml::createMarkup): Adds a "default style" span to the content written to the pasteboard.
          This will help us to fix some of the bugs blocked by the bug above.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::lastDescendent): New helper.
          * khtml/xml/dom_nodeimpl.h: Ditto.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::upstream): Fixed a bug which would allow the upstream position returned to be
          in unrendered content.
          (DOM::Position::downstream): Ditto.
  
          * layout-tests/editing/deleting/delete-3775172-fix-expected.txt: Ending positions tweaked due to 
          changes in upstream() and downstream() functions.
          * layout-tests/editing/inserting/insert-3851164-fix-expected.txt: Ditto
          * layout-tests/editing/inserting/insert-3907422-fix-expected.txt: Ditto
          * layout-tests/editing/selection/extend-by-character-006-expected.txt: Ditto
  
          * layout-tests/editing/pasteboard/paste-text-003-expected.txt: Changed what we expect, given
          new behavior of paste code.
  
  2005-01-31  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Dave Hyatt.
          
          - fixed <rdar://problem/3983097> Tabbing on RSS pages gets stuck in search field 
          with "full keyboard navigation" off
  
          * kwq/KWQSlider.h:
          * kwq/KWQSlider.mm:
          (QSlider::focusPolicy):
          Implemented this method for KWQSlider. It is needed for our widget subclasses that
          can become focused in some situations. I missed this when fixing 3949203 because
          it only comes into play when tab-to-controls is on, and because the other relevant
          methods are objective-C methods.
  
  2005-01-31  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/3964164> AXWebArea needs to unregister on going invisible
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::detach):
          Detach the AX UIElement for the AXWebArea.
  
  2005-01-31  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin
  
          <rdar://problem/3850876> AX: button exposed as only an AXImage at http://appleseed.apple.com/ site (<input type=image>)
  
          * khtml/rendering/render_form.h:
          (khtml::RenderImageButton::isImageButton):
          New.
          * khtml/rendering/render_image.h:
          (khtml::RenderImage::isImageButton):
          New.
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject isImageButton]):
          (-[KWQAccObject actionElement]):
          (-[KWQAccObject role]):
          (-[KWQAccObject accessibilityActionNames]):
          (-[KWQAccObject accessibilityPerformAction:]):
          Represent RenderImageButton elements as buttons instead of images.
  
  2005-01-31  David Harrison  <harrison at apple.com>
  
          Prevent nil dereference in debug code.
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::displayTree):
          Stop when parent is 0, too.
  
  2005-01-31  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Dave Hyatt.
          
          - fixed <rdar://problem/3949203> cannot tab to, within, or out of the RSS sidebar
  
          * kwq/KWQSlider.mm:
          (-[KWQSlider becomeFirstResponder]):
          (-[KWQSlider resignFirstResponder]):
          (-[KWQSlider nextKeyView]):
          (-[KWQSlider previousKeyView]):
          (-[KWQSlider canBecomeKeyView]):
          (-[KWQSlider nextValidKeyView]):
          (-[KWQSlider previousValidKeyView]):
          Copied these methods from KWQButton. The lack of special handling for first-responder-ness
          here was causing the focus to get "stuck" on the RSS page's slider widget. Added FIXME
          about how it would be nice to share more of this code rather than replicating it in each
          KWQ widget subclass.
  
  2005-01-31  Darin Adler  <darin at apple.com>
  
          Reviewed by Harrison.
  
          - fixed <rdar://problem/3980066> Double-click on single character moves insertion point to previous line
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::selectClosestWordFromMouseEvent): Set affinity too.
          (KHTMLPart::handleMousePressEventTripleClick): Ditto.
          (KHTMLPart::handleMouseMoveEventSelection): Ditto.
          (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::modifyExtendingRightForward): Use endOfLine and endOfDocument.
          (khtml::Selection::modifyMovingRightForward): Ditto.
          (khtml::Selection::modifyExtendingLeftBackward): Use startOfLine and startOfDocument.
          (khtml::Selection::modifyMovingLeftBackward): Ditto.
          (khtml::Selection::validate): Rewrote the section that handles double-click. Two main fixes: 1) use isStartOfLine to
          check for another case where we want to select the word to the right, and 2) use isEndOfParagraph, which seems
          to work correctly in cases where isLastVisiblePositionInParagraph is giving the wrong answer. Also changed the line
          code to use startOfLine/endOfLine and the document code to use startOfDocument/endOfDocument.
  
  2005-01-31  Darin Adler  <darin at apple.com>
  
          Reviewed by Harrison.
  
          - fixed <rdar://problem/3935275> unexpected quit scrolling over link; last.fm (works in IE and Firefox)
  
          * kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): By using the correct document, fix the crash reported here.
          The page still crashes when you close the browser window, but it's not trivial to fix so I'll file a new bug after that.
  
  2005-01-31  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken and Harrison.
  
          - fixed <rdar://problem/3947901> REGRESSION (Mail): Pasting paragraph of rich text leaves insertion point before pasted text
          - fixed <rdar://problem/3949790> hitting return after underlined line results in too much or too little underlined
          - fixed <rdar://problem/3981759> nil-deref and crash when pasting just a paragraph break
          - fixed a couple problems I discovered while working with bug 3949790
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::applyInlineStyle): Pass StayInBlock to upstream. Without this, we end up going too far
          upstream in the test case in bug 3949790.
          (khtml::ApplyStyleCommand::removeInlineStyle): Pass StayInBlock to upstream and downstream. Same reason as above.
          (khtml::ReplaceSelectionCommand::doApply): Update endPos if inserting a new node and endPos is using that node's
          parent and an offset past the node being inserted. That change fixes a problem with the position of the insertion point
          after pasting into the top level of a document (from test cases in 3947901 and 3949790). When setting insertionPos, use
          code that works when lastNodeInserted is a block rather than a text node. That change fixes a problem where a newline is
          not added when pasting an entire paragraph into the end of a document (from test case in 3949790). Added nil check before
          checking if lastNodeInserted is a <br> element, which fixes the crash when pasting just a paragraph break.
  
          * khtml/editing/visible_units.h: Filled out the set of calls to add some boolean checks for lines (needed for the
          bug fix), and calls for blocks (not yet implemented), and documents. The document checks may need refinement to
          properly handle documents with a mix of editable and non-editable content, but for now they just refactor code
          and make things a little clearer. Also removed the "include line break" parameter from endOfSentence.
          * khtml/editing/visible_units.cpp:
          (khtml::rootBoxForLine): Added.
          (khtml::startOfLine): Added. Algorithm taken from selectionForLine in selection.cpp.
          (khtml::endOfLine): Ditto.
          (khtml::inSameLine): Added.
          (khtml::isStartOfLine): Added.
          (khtml::isEndOfLine): Added.
          (khtml::endOfSentence): Removed "include line break" parameter.
          (khtml::inSameParagraph): Added a null check.
          (khtml::isStartOfParagraph): Ditto.
          (khtml::isEndOfParagraph): Ditto.
          (khtml::startOfBlock): Added.
          (khtml::endOfBlock): Added.
          (khtml::inSameBlock): Added.
          (khtml::isStartOfBlock): Added.
          (khtml::isEndOfBlock): Added.
          (khtml::startOfDocument): Added.
          (khtml::endOfDocument): Added.
          (khtml::inSameDocument): Added.
          (khtml::isStartOfDocument): Added.
          (khtml::isEndOfDocument): Added.
  
  2005-01-30  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3977000> form data set posted for <input type="image" ...> omits name/value pair
  
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLInputElementImpl::appendFormData): Append a name/value pair for type IMAGE in addition to the X/Y
          coordinates.
  
  2005-01-30  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3974246> REGRESSION (125-180): popup menus are missing item text on Harmony Remote web site
  
          * khtml/html/html_formimpl.cpp: (DOM::HTMLOptionElementImpl::text): Change this function to traverse the entire tree
          and gather all the text rather than just looking at immediate children.
  
          * khtml/xml/dom_nodeimpl.h: Added const.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::traverseNextNode): Added const.
          (NodeImpl::traverseNextSibling): Ditto.
          (NodeImpl::traversePreviousNodePostOrder): Ditto.
          (NodeImpl::detach): Add a missing nil check.
  
  2005-01-30  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3864536> crash copying text from other apps and pasting in a sticky in dashboard
  
          * khtml/editing/markup.cpp: (khtml::createFragmentFromText): Added missing ref/deref of newly created element.
  
  2005-01-28  Darin Adler  <darin at apple.com>
  
          * khtml/css/cssproperties.c: Regenerated with newer gperf.
  
  2005-01-28  David Harrison  <harrison at apple.com>
  
          Reviewed by John Sullivan.
  
          <rdar://problem/3968144> AX need to be able to focus an AXLink by setting AXFocused to true
          
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityPerformAction:]):
          (-[KWQAccObject accessibilityIsAttributeSettable:]):
          Add AXFocused for AXLinks.
  
  2005-01-28  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
  
          Use AppKit SPI _accessibilityParentForSubview to return KWQAccObject parent of AppKit AX object.
          
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject _accessibilityParentForSubview:]):
          New.
  
  2005-01-27  Adele Amchan  <adele at apple.com>
  
          fixed by Darin, reviewed by me.
  
          <rdar://problem/3976314> REGRESSION (180-TOT): submitting password fields fail on Panther
  
          * kwq/KWQTextField.mm: (-[KWQTextFieldController string]): on panther, the secure text field's editor 
          does not contain the real string, so now we just call stringValue on the field in that case.
  
  2005-01-26  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin, Hyatt and Ken.
  
  	<rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration
  	
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Add support
  	for -khtml-text-decorations-in-effect property. This works like text-docration
  	but follows proper inline semantics, that is, if a parent is causing text
  	decoration then -khtml-text-decorations-in-effect on this element will reflect that.
          * khtml/css/cssproperties.in: Add -khtml-text-decorations-in-effect property.
          * khtml/css/cssproperties.h: regenerated
          * khtml/css/cssvalues.c: regenerated
          * khtml/css/cssparser.cpp: regenerated
          * khtml/css/cssproperties.c: regenerated
  
          * khtml/css/css_valueimpl.h: Made copyPropertiesInSet public.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::StyleChange::init): Handle -khtml-text-decorations-in-effect
  	specially, translate to text-decoration
          (khtml::ApplyStyleCommand::applyInlineStyle): Fix a comment.
          (khtml::ApplyStyleCommand::removeInlineStyle): Add new way of pushing down
  	text-decoration styles around the edges of the selected range.
          (khtml::ApplyStyleCommand::pushDownTextDecorationStyleAroundNode): Helper for this.
          (khtml::ApplyStyleCommand::pushDownTextDecorationStyleAtBoundaries): ditto
          (khtml::ApplyStyleCommand::nodeFullyUnselected): ditto
          (khtml::hasTextDecorationProperty): ditto
          (khtml::highestAncestorWithTextDecoration): ditto
          (khtml::ApplyStyleCommand::extractTextDecorationStyle): ditto
          (khtml::ApplyStyleCommand::extractAndNegateTextDecorationStyle): ditto
          (khtml::ApplyStyleCommand::applyTextDecorationStyle): ditto
          * khtml/editing/htmlediting.h: Prototype new methods.
          * khtml/editing/jsediting.cpp: Make underline execCommand use the new CSS property.
  
  	- as a necessary part of the fix, fixed the longstanding problem
  	that mutating an element's inlineStyleDecl would not property
  	update its style attribute. now it does.
  	
          * khtml/css/css_valueimpl.cpp:
          (DOM::CSSMutableStyleDeclarationImpl::setChanged): If this is an inline style
  	declaration, tell the element it's style attribute needs updating.
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::invalidateStyleAttribute): New method, just calls down
  	to the dom element.
          (HTMLElementImpl::updateStyleAttribute): Regenerate style attribute from
  	inline style declaration.
          * khtml/html/html_elementimpl.h: Prototype new stuff.
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::ElementImpl): Initialize new attribute.
          (ElementImpl::updateStyleAttributeIfNeeded): New method to check if the style
  	is dirty and this is an html element, and if so call the html element to
  	regenerate the style attribute.
          (ElementImpl::attributes): update style if needed
          (ElementImpl::getAttribute): ditto
          (ElementImpl::hasAttributes): ditto
          (ElementImpl::dump): ditto
          (XMLElementImpl::cloneNode): ditto
          * khtml/xml/dom_elementimpl.h:
          (DOM::ElementImpl::isStyleAttributeValid): new method to manage style attr
  	dirty bit
          (DOM::ElementImpl::setStyleAttributeValid): ditto
  
  	- added new layout tests for underlining:
  	
          * layout-tests/editing/editing.js:
          * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt: Added.
          * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt: Added.
          * layout-tests/editing/style/remove-underline-across-paragraph-in-bold.html: Added.
          * layout-tests/editing/style/remove-underline-across-paragraph.html: Added.
          * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt: Added.
          * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt: Added.
          * layout-tests/editing/style/remove-underline-after-paragraph-in-bold.html: Added.
          * layout-tests/editing/style/remove-underline-after-paragraph.html: Added.
          * layout-tests/editing/style/remove-underline-expected.txt: Added.
          * layout-tests/editing/style/remove-underline-from-stylesheet-expected.txt: Added.
          * layout-tests/editing/style/remove-underline-from-stylesheet.html: Added.
          * layout-tests/editing/style/remove-underline-in-bold-expected.txt: Added.
          * layout-tests/editing/style/remove-underline-in-bold.html: Added.
          * layout-tests/editing/style/remove-underline.html: Added.
          * layout-tests/editing/style/underline-expected.txt: Added.
          * layout-tests/editing/style/underline.html: Added.
  
  2005-01-27  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3875199, search field needs to be able to  show a magnifying  glass without a dropdown menu.
  	
          Reviewed by kocienda
  
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLInputElementImpl::HTMLInputElementImpl):
          (DOM::HTMLInputElementImpl::parseHTMLAttribute):
          * kwq/KWQLineEdit.mm:
          (QLineEdit::setMaxResults):
  
  2005-01-27  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Maciej
  
          Fix for this bug:
          
          <rdar://problem/3973254> Deletions of ranges does not coalesce correctly with subsequent typing
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertTextCommand::deleteCharacter): Remove this dead code.
          (khtml::ReplaceSelectionCommand::editingAction): Moved this code to a better place in the file. 
          It was in with unrelated functions.
          (khtml::TypingCommand::TypingCommand): Reorganize initialization list so it is easier to read.
          (khtml::TypingCommand::issueCommandForDeleteKey): Remove dead code. Roll in remaining code into deleteKeyPressed.
          (khtml::TypingCommand::deleteKeyPressed): Add in support for carrying along smart delete flag.
          (khtml::TypingCommand::forwardDeleteKeyPressed): New function. Makes forward delete work like
          "regular" delete in terms of coalescing typing.
          (khtml::TypingCommand::doApply): Add case for ForwardDeleteKey.
          (khtml::TypingCommand::preservesTypingStyle): Ditto.
          * khtml/editing/htmlediting.h:
          (khtml::TypingCommand::): Add ForwardDeleteKey constant. Remove a couple declarations for now-dead code.
          (khtml::TypingCommand::smartDelete): New accessor.
          (khtml::TypingCommand::setSmartDelete): Ditto.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge deleteKeyPressedWithSmartDelete:]): Add smart delete flag.
          (-[WebCoreBridge forwardDeleteKeyPressedWithSmartDelete:]): New method.
          * khtml/editing/jsediting.cpp: Add supprt for ForwardDelete command
          * layout-tests/editing/editing.js: Ditto.
          * layout-tests/editing/deleting/delete-and-undo-expected.txt: Added.
          * layout-tests/editing/deleting/delete-and-undo.html: Added.
          * layout-tests/editing/deleting/forward-delete-expected.txt: Added.
          * layout-tests/editing/deleting/forward-delete.html: Added.
  
  === Safari-181 ===
  
  2005-01-27  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken.
  
          <rdar://problem/3962214> AX: AXLeftLineTextMarkerRangeForTextMarker returns incorrect range
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
          Allowed for selection to end of line including the linebreak.
          
  2005-01-27  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin, Ken.
  
          <rdar://problem/3964470> AX: Include attachments in AXAttributedStringForTextMarkerRange
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject isAttachment]):
          (-[KWQAccObject attachmentView]):
          (-[KWQAccObject role]):
          (-[KWQAccObject subrole]):
          (-[KWQAccObject roleDescription]):
          (-[KWQAccObject value]):
          (-[KWQAccObject title]):
          (-[KWQAccObject accessibilityDescription]):
          (-[KWQAccObject accessibilityIsIgnored]):
          (-[KWQAccObject accessibilityAttributeNames]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          Make attachments accessible.
          
          (CreateCGColorIfDifferent):
          (AXAttributeStringSetColor):
          (AXAttributeStringSetNumber):
          (AXAttributeStringSetFont):
          (AXAttributeStringSetStyle):
          (AXAttributeStringSetElement):
          (AXLinkElementForNode):
          (AXAttributedStringAppendText):
          (AXAttributedStringAppendReplaced):
          (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
          Add attachments and more text attributes to AXAttributedStringForTextMarkerRange.
  
  2005-01-27  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3807935> DOM CSS computed style line-height is wrong in two ways
  
          * khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
          Use specified size rather than computed size when dealing with a percentage for line height.
  
  2005-01-27  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3971372> SWB: template function DOM_cast() won't compile with gcc 4.0
          - fixed other gcc 4.0 compiling problems Patrick Beard pointed out on the phone
  
          * kwq/DOMInternal.h: (DOM_cast): Change the "failToCompile()" trick to use a dependent name.
          Nowadays, if a name is not dependent, it is checked at template definition time. But we want
          a failure only at template instantiation time.
  
          * ForwardingHeaders/editing/text_granularity.h: Added. Needed but a bug in the 3.3 compiler made
          it compile anyway without this.
  
          - other changes
  
          * khtml/html/html_miscimpl.h: For clarity, mark these functions virtual too. They are automatically
          virtual because the base class ones are virtual, but it's ugly to leave it this way.
  
  2005-01-26  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3971609> REGRESSION (Mail): up/down arrow navigation broken after rewrapping text by resizing window
          <rdar://problem/3975661> REGRESSION (Mail): left/right arrow navigation can place insertion point after last character on line
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::modifyAffinity): PARAGRAPH and LINE movements should not alter affinity. This was
          just a mistake before when it reset to upstream in some cases.
          * khtml/rendering/render_line.cpp:
          (khtml::RootInlineBox::closestLeafChildForXPos): Move this function down from InlineBox, and 
          rework the implementation. This fixes 3971609.
          * khtml/rendering/render_line.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::caretRect): Rework the algorithm to fix 3975661. This regressed when we began placing
          the spaces on the end of lines in text boxes when lines wrap.
  
  2005-01-26  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3972522> (179-180) 40% slowdown on iBench JavaScript test
  
  	I added a member variable to ObjectImp.  This changed it's size and consequently
  	hampered the optimizations built into the garbage collector.  Objects no longer
  	fit within the allocators cell size, and thus allocation fell back to a slower
  	allocator.
  
  	As a result of this fix I also dramatically cleaned up how runtime objects are
  	accessed.  The path mostly *removes* code.
  	
          Reviewed by Chris.
  
          * khtml/ecma/kjs_dom.cpp:
          (DOMDocumentProtoFunc::tryCall):
          (DOMElementProtoFunc::tryCall):
          (KJS::getRuntimeObject):
          * khtml/ecma/kjs_dom.h:
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::tryGet):
          (KJS::HTMLElement::tryGet):
          (KJS::HTMLElement::implementsCall):
          (KJS::HTMLElement::call):
          (KJS::HTMLElement::tryPut):
          (KJS::HTMLCollection::tryGet):
          (KJS::HTMLCollection::getNamedItems):
          * khtml/ecma/kjs_html.h:
          * khtml/ecma/kjs_window.cpp:
          (Window::get):
  
  2005-01-26  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3757712> REGRESSION (Mail): WebCore does not allow Devanagari ligature input
  
  	For now we are using ICU UBreakIterator to determine grapheme boundaries for
  	cursor and deletion.  This does not match what Cocoa does exactly, but does match
  	what Carbon does.  The areas are difference are obscure, but, according to
  	Deborah Goldsmith, using the UBreakIterator is the reasonable approach.
  
          Reviewed by Ken.
  
          * khtml/rendering/render_text.cpp:
          (RenderText::previousOffset):
          (RenderText::nextOffset):
  
  2005-01-25  David Harrison  <harrison at apple.com>
  
          Reviewed by Maciej and Richard.
  
          <rdar://problem/3963731> AX VO: Changing window sizes causes a crash using with Voice Over - KWQPtrDictImpl::clear
  
          * khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::HTMLCollectionImpl):
          Ensure that isHTMLDocument before calling HTMLDocument-only method.
  
  2005-01-25  Richard Williamson   <rjw at apple.com>
  
  	Part one of fix for <rdar://problem/3757712> REGRESSION (Mail): WebCore does not allow Devanagari ligature input
  
  	This patch changes the semantics of next() and previous() on
  	VisiblePosition to move a grapheme (character cluster) at a
  	time.  This means that cursor navigation with correctly move
  	over an entire cluster.
  
  	However, the expected behavior for deleting a grapheme is to
  	delete individual code points, thus decomposing the grapheme
  	into it constituent parts.  That will be addressed in the next
  	part of the fix.
  
          Reviewed by Ken.
  
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::previousPosition):
          (khtml::VisiblePosition::nextPosition):
          * khtml/editing/visible_position.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::previousOffset):
          (RenderObject::nextOffset):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::previousOffset):
          (RenderText::nextOffset):
          (RenderText::findNextInlineTextBox):
          * khtml/rendering/render_text.h:
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::previousOffset):
          (NodeImpl::nextOffset):
          * khtml/xml/dom_nodeimpl.h:
  
  2005-01-25  David Harrison  <harrison at apple.com>
  
          Reviewed by Maciej.
  
          <rdar://problem/3973067> AXWebArea for http://apple.netscape.com/ has an empty AXLinkUIElements
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityAttributeValue:]):
          Omit ignored AXLinks from AXLinkUIElements result
  
  2005-01-25  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3972851> REGRESSION (179-180+): Repro crash in ApplyStyleCommand::cleanUpEmptyStyleSpans
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::cleanUpEmptyStyleSpans): Added two null checks.
  
  2005-01-25  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3954710> Mail crashed while editing signatures - NodeImpl::isBlockFlow
  
          The fix is more general than for this one bug, and may work to fix many crashers. The problem
          is that the ReplaceSelectionCommand never checked whether its starting selection is empty. If
          it is, then we need to bail before doing the work of the command, which we need to deref the
          start and end points of the selection in order to do its work. I think you can see the crash
          potential.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): Assert selection is not empty.
          * kwq/WebCoreBridge.mm:
          (partHasSelection): New helper function to test that bridge has a part with a selection.
          
          Use new helper function to test part and selection; return from these function if this test fails.
          
          (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:])
          (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:])
          (-[WebCoreBridge alterCurrentSelection:direction:granularity:])
          (-[WebCoreBridge rangeByAlteringCurrentSelection:verticalDistance:])
          (-[WebCoreBridge alterCurrentSelection:verticalDistance:])
          (-[WebCoreBridge documentFragmentWithText:])
          (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:])
          (-[WebCoreBridge insertLineBreak])
          (-[WebCoreBridge insertParagraphSeparator])
          (-[WebCoreBridge insertParagraphSeparatorInQuotedContent])
          (-[WebCoreBridge insertText:selectInsertedText:])
          (-[WebCoreBridge deleteSelectionWithSmartDelete:])
          (-[WebCoreBridge ensureSelectionVisible])
  
  2005-01-24  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Darin.
  
  	Fixed <rdar://problem/3932374> REGRESSION: 'ReferenceError - Can't find variable' JavaScript error at webxpress.fidelity.com
  
          * khtml/html/html_miscimpl.h: Missing virtual identifiers for namedItem() and nextNamedItem() exposed a flaw that prevented finding variables in form [HTMLFormCollectionImpl] scopes.
  	
  
  2005-01-24  Vicki Murley <vicki at apple.com>
  
          Reviewed by kocienda.
  
  	- fix <rdar://problem/3810661> computed style not handled for Apple extensions
   
          * khtml/css/css_computedstyle.cpp: (DOM::):
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): add -apple-line-clamp and -apple-text-size-adjust
  
  2005-01-24  Darin Adler  <darin at apple.com>
  
          Reviewed by Kevin.
  
          - fixed <rdar://problem/3969884> REGRESSION (179-180): Typing password not echoed as "bullets" at paypal.com when field is first focused
  
          * kwq/KWQTextField.mm: (-[KWQTextFieldController initWithTextField:QLineEdit:]):
          Sizing up the form editor, which fixes things for normal fields and search fields,
          screws things up for password fields. Eventually, I'll need to figure out why this is
          and file a bug so that the AppKit team fixes it. In the mean time, just check for the
          case of the secure text field, and don't size up in that case.
  
  2005-01-24  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3963560> 8A354: Inserting Japanese text to the line head causes line break
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): Add one more case where we merge content into the
          existing line. This covers the situation see using the steps to reproduce this bug.
  
  2005-01-21  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3967572> Editing should split elements before removing style
  	
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::splitElement):
          (khtml::CompositeEditCommand::mergeIdenticalElements):
          (khtml::CompositeEditCommand::wrapContentsInDummySpan):
          (khtml::CompositeEditCommand::splitTextNodeContainingElement):
          (khtml::ApplyStyleCommand::applyInlineStyle):
          (khtml::ApplyStyleCommand::splitTextAtStartIfNeeded):
          (khtml::ApplyStyleCommand::splitTextAtEndIfNeeded):
          (khtml::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
          (khtml::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
          (khtml::areIdenticalElements):
          (khtml::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
          (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
          (khtml::ApplyStyleCommand::cleanUpEmptyStyleSpans):
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
          (khtml::InsertParagraphSeparatorCommand::doApply):
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
          (khtml::InsertTextCommand::prepareForTextInsertion):
          (khtml::SplitTextNodeCommand::doUnapply):
          (khtml::SplitElementCommand::SplitElementCommand):
          (khtml::SplitElementCommand::~SplitElementCommand):
          (khtml::SplitElementCommand::doApply):
          (khtml::SplitElementCommand::doUnapply):
          (khtml::MergeIdenticalElementsCommand::MergeIdenticalElementsCommand):
          (khtml::MergeIdenticalElementsCommand::~MergeIdenticalElementsCommand):
          (khtml::MergeIdenticalElementsCommand::doApply):
          (khtml::MergeIdenticalElementsCommand::doUnapply):
          (khtml::WrapContentsInDummySpanCommand::WrapContentsInDummySpanCommand):
          (khtml::WrapContentsInDummySpanCommand::~WrapContentsInDummySpanCommand):
          (khtml::WrapContentsInDummySpanCommand::doApply):
          (khtml::WrapContentsInDummySpanCommand::doUnapply):
          (khtml::SplitTextNodeContainingElementCommand::SplitTextNodeContainingElementCommand):
          (khtml::SplitTextNodeContainingElementCommand::~SplitTextNodeContainingElementCommand):
          (khtml::SplitTextNodeContainingElementCommand::doApply):
          * khtml/editing/htmlediting.h:
  
  	New layout test that shows the side benefit of this.
          
  	* layout-tests/editing/style/unbold-in-bold-expected.txt: Added.
          * layout-tests/editing/style/unbold-in-bold.html: Added.
  
  2005-01-24  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3933435> -[DOMRange cloneContents] sometimes alters the original DOMRange
  
          * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::processContents): Fixed code that was collapsing
          the range after processing the contents. That's right for extract and delete, but not clone.
  
          - fixed <rdar://problem/3714184> inline input works incorrectly when I type Korean slowly in textfield in form on www.google.co.kr
          - fixed <rdar://problem/3193848> Can't enter SSN to sign up for Chase visa online account (changing focus inside key press handler)
          - fixed <rdar://problem/3874683> REGRESSION (161-162): Crash after typing command-Z to undo after pasting text with newline in it into a text field <input type=text>
  
          * kwq/KWQLineEdit.mm:
          (QLineEdit::text): Changed to call a new string method on the controller instead of calling
          stringValue, since stringValue has a bad side effect of ending inline input.
          (QLineEdit::selectAll): Changed to only call selectText: when the field is already selected.
          When you are giving the field focus, it automatically gets all selected, and this change
          is required in the case where we defer the focus change.
  
          * kwq/KWQTextField.h: Added a new string method to the controller.
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldController setMaximumLength:]): Call the new string method instead of using stringValue.
          (-[KWQTextFieldController controlTextDidChange:]): Removed the code to truncate at the first CR or LF.
          That's now handled in the shouldChangeTextInRange method instead.
          (-[KWQTextFieldController textView:shouldHandleEvent:]): Add new logic to defer responder changes until
          after the event is handled. This makes sure the key gets into the field that's already handling it at
          rather than ending up in the newly-focused field if the key press handler focuses a different element.
          (-[KWQTextFieldController textView:didHandleEvent:]): Turn off deferral here, now that the key press
          has been handled.
          (-[KWQTextFieldController string]): Added. Calls stringValue only if there's no editor. If there is
          an editor, calls string on that instead.
          (-[KWQTextFieldController textView:shouldChangeTextInRange:replacementString:]): Added. Called by
          the three field subclasses. Truncates incoming strings at the first CR or LF character. This works
          properly with Undo, and the old technique did not.
          (-[KWQTextFieldController preprocessString:]): Added. Helper used for all the setStringValue methods
          so they all truncate at the first CR or LF as well as truncating to the appropriate length.
          (-[KWQTextField setStringValue:]): Changed to call the controller.
          (-[KWQTextField textView:shouldChangeTextInRange:replacementString:]): Added. Calls the controller.
          (-[KWQSecureTextField setStringValue:]): More of the same.
          (-[KWQSecureTextField textView:shouldChangeTextInRange:replacementString:]): Ditto.
          (-[KWQSearchField setStringValue:]): Ditto.
          (-[KWQSearchField textView:shouldChangeTextInRange:replacementString:]): Ditto.
  
          * kwq/KWQWidget.h: Added the new setDeferFirstResponderChanges function.
          * kwq/KWQWidget.mm:
          (QWidget::~QWidget): Clear out the deferredFirstResponder global just in case we are destroyed
          while we "have the ball".
          (QWidget::hasFocus): If we are in the deferred mode, use the global to decide who to say is focused.
          (QWidget::setFocus): If we are in the deferred mode, set the global instead of making something be
          the first responder.
          (QWidget::setDeferFirstResponderChanges): Set the boolean. If the boolean is being cleared, then
          get the deferred first responder and call setFocus on it again, which will do the work we didn't
          want to do earlier.
  
  2005-01-24  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3964350> Deleting all content and typing in a message gets one letter, then beeps
  
          This is a problem with the way we turn key events, when a user starts typing, into editing commands. 
          Right now, that initial delete key in an empty window is turned into an editing command, and much 
          editing code runs that need not run. What's more, this is confusing the selection machinery. The
          solution is to detect the "delete in an empty window" case and don't turn this into an editing
          command at all.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::TypingCommand::deleteKeyPressed)
  
  2005-01-23  Adele Amchan  <adele at apple.com>
  
          Fixed <rdar://problem/3964286> REGRESSION (178-179): menus and "go to old site" link at Ameritrade's new site don't work
  
          Removed check for document from checkCompleted.  In this case, WebCore never knew that a WebImageView was complete because 
          it fell into this document check case in checkCompleted.  
          Added check for document to tokenizerProcessedData (see <rdar://problem/3807144>)
  
          Reviewed by Darin.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::stop):
          (KHTMLPart::checkCompleted):
          * khtml/khtml_part.h:
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::tokenizerProcessedData):
  
  2005-01-21  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3759399> Javascript / Liveconnect problems ((event handler):Undefined value)
  
  	Java applets specified with <object> or <embed> weren't scriptable.  Now they are.
  
          Reviewed by Chris.
  
          * khtml/html/html_objectimpl.cpp:
          (HTMLEmbedElementImpl::getEmbedInstance):
          (HTMLObjectElementImpl::getObjectInstance):
  
  2005-01-21  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3959464> REGRESSION (Mail): Insertion point goes back to beginning of document after deleting
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::handleGeneralDelete): Add special case to handle retaining a fully-selected block.
          This fixes the bug.
          * layout-tests/editing/deleting/delete-3959464-fix-expected.txt: Added.
          * layout-tests/editing/deleting/delete-3959464-fix.html: Added.
  
  2005-01-21  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3966998> REGRESSION(179-TOT) clicking on gmail message brings me to blank screen
  
  	getElementById() sometimes returns Undefined() instead of Null().
  
          Reviewed by Hyatt.
  
          * khtml/ecma/kjs_dom.cpp:
          (DOMDocumentProtoFunc::tryCall):
  
  2005-01-21  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3773809, make sure that overflow regions never end up at an invalid scroll offset because of a layout change.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::updateScrollInfoAfterLayout):
  
  2005-01-21  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3966349, hang loading page.  Make sure that loops using popOneBlock properly check for a null
  	blockStack to avoid an infinite loop.
  	
          Reviewed by kocienda
  
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::parseToken):
          (KHTMLParser::insertNode):
          (KHTMLParser::popInlineBlocks):
  
  2005-01-21  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3957204> Mail crashed when sending a message in ~InsertParagraphSeparatorInQuotedContentCommand
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::InsertParagraphSeparatorInQuotedContentCommand):
          InsertParagraphSeparatorInQuotedContentCommand has this member variable: DOM::ElementImpl *m_breakNode;
          I failed to initialize this variable to null in the constructor, and there is an uncommonly-traveled 
          code path which does not set this variable to something good. In the destructor, we check for null, 
          and deref if non-null. Obvious "BOOM" potential. Fixed.
  
  2005-01-21  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3966311> REGRESSION (Mail): Hitting return makes space character disappear
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply): When writing the code to insert a block
          in response to the return key, I did not write code to cover the case described in the bug.
          Now I have.
          * layout-tests/editing/inserting/insert-div-025-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-025.html: Added.
  
  2005-01-20  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	<rdar://problem/3965196> security fix for javascript: exploit missed one case (already fixed in updates)
          
  	* khtml/ecma/kjs_window.cpp:
          (WindowFunc::tryCall): correct mistake in earlier fix for the following bug, caught by Adele:
  
  2005-01-20  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	<rdar://problem/3965466> editing needs to insert text before applying typing style
  	
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): Remove a FIXME comment.
          (khtml::InsertLineBreakCommand::doApply): Apply style to the BR
  	node after inserting it.
          (khtml::InsertTextCommand::prepareForTextInsertion): Don't try to
  	apply style to any new nodes created before inserting.
          (khtml::InsertTextCommand::input): Apply style to the inserted range
  	after doing the text insert.
          * khtml/editing/htmlediting.h:
  
  	This change leads to improved results on one of the layout tests:
          
  	* layout-tests/editing/inserting/insert-div-024-expected.txt:
  
  === Safari-180 ===
  
  2005-01-20  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3964646> REGRESSION (179-180): Typing space at end of line makes following paragraph disappear
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Recent change to block placeholder removal code 
          caused this regression. The code became too aggressive in removing block placeholders, and would remove them
          from blocks other than the block containing the selection.
          * layout-tests/editing/inserting/insert-div-023-expected.txt: This file had a spurious BR element in it that
          I did not notice earlier.
          * layout-tests/editing/inserting/insert-div-024-expected.txt: Ditto.
  
  2005-01-20  David Hyatt  <hyatt at apple.com>
  
  	Fix for oddness on albertsons.com.  Make sure not to crash when setting/removing style properties on a node
  	with no document.  The bug # is 3813900.
  	
          Reviewed by john
  
  2005-01-20  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          PARTIAL fix for following bug.  Create attributed string with fonts and links.  Still need to add attachments.
          <rdar://problem/3942606> AX: Support kAXAttributedStringForTextMarkerRangeParameterizedAttribute
          
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject textUnderElement]):
          Touched up previous checkin to match code review comments.
          
          (-[KWQAccObject value]):
          Use plainText for this one instead of obsolete attributedString.
          
          (-[KWQAccObject accessibilityParameterizedAttributeNames]):
          Advertise AXAttributedStringForTextMarkerRange.
          
          (AXAttributeStringAddFont):
          (AXAttributeStringAddElement):
          (-[KWQAccObject linkUIElementForNode:]):
          (-[KWQAccObject _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
          (-[KWQAccObject accessibilityAttributedStringForRange:]):
          New routines to support AXAttributedStringForTextMarkerRange.
          
          (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
          Use new routines instead of obsolete attributedString.
  
  2005-01-20  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/3960196> AX Crash in DOM::Range::setStartBefore
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::getAccObjectCache):
          Adjust when detecting cache in non-top level WebArea.
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject textUnderElement]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          Make sure the elements document is the current one for the part.
  
  2005-01-20  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3922980> Mail not crashing, just quitting itself suddenly in -[WebHTMLView(MailExtras) findString:options:]
  
          * khtml/dom/dom2_range.cpp: (DOM::operator==): Handle null and detached ranges without raising exceptions.
          The uncaught exception would make the entire program terminate.
  
          - fixed <rdar://problem/3885729> attempting to modify a computed style does nothing, but should raise a DOM exception
  
          * kwq/DOM-CSS.mm: (-[DOMCSSStyleDeclaration setProperty:::]): Uncommented this code which I had to disable
          back in November because Mail was stumbling over it.
  
          - fixed <rdar://problem/3943049> focus() called during onload handler results in square text field on <input type=search>        
  
          * kwq/KWQLineEdit.mm: (QLineEdit::baselinePosition): Change computation so it will work even for fields
          that position their text in a way that depends on vertical size. In the case of a search field, the text
          is centered, so the old logic was broken.
          * kwq/KWQTextField.mm: (-[KWQTextFieldController initWithTextField:QLineEdit:]): Set the frame size to
          something large enough to accomodate the field editor. If we start the frame at size 0,0 we run into
          AppKit trouble when it insets the frame to figure out the frame for the field editor. In the case of this
          bug this happens because we become first responder before being sized and positioned by the HTML layout code.
  
          - improved debugging output when using "po" from gdb with Objective-C DOM
  
          * kwq/DOM.mm:
          (-[DOMNode description]): Added. Includes node name ("<tr>") and node value (e.g., string for text node).
          (-[DOMRange description]): Tweaked format.
  
  2005-01-19  Richard Williamson   <rjw at apple.com>
  
  	After further discussion with Real we have decided to NOT include the
  	additional CLSID for the real plugin.  See 3958601.
  
          Reviewed by Darin.
  
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget):
  
  2005-01-19  David Harrison  <harrison at apple.com>
  
          Reviewed by Maciej.
  
          <rdar://problem/3949429> AX: word marker routines returns incorrect data for empty line
  
          Previous checkin for this bug was missing some of the patch.  Editing snafu with multiple changes in tree.
          
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]):
  
  2005-01-19  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Small, cosmetic change John and I decided
          to do on my last checkin, but I forgot to do before landing.
  
  2005-01-19  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3959727> REGRESSION (Mail): Style not preserved on blank lines
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::applyStyle):
          (khtml::CompositeEditCommand::insertBlockPlaceholder): New function that unconditionally adds a block placeholder.
          (khtml::CompositeEditCommand::insertBlockPlaceholderIfNeeded): Now returns bool based on whether
          placeholder was added or not.
          (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Now searches all the descendents of a block
          looking for a placeholder. The old code, which just looked at the last child of a node, started missing
          once block placeholders became styled (which started happening with this patch).
          (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Now handles applying typing style
          to a block placeholder at call time, rather than setting the typing style as a latent style that
          might be applied later. This is an important part of the bug fix.
          (khtml::DeleteSelectionCommand::doApply): Now uses bool return value from insertBlockPlaceholderIfNeeded()
          and passes it along to calculateStyleBeforeInsertion, so the case where a block placeholder needs to
          be styled can be detected.
          (khtml::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): Changed the way this class
          managed style. Before it would calculate and set typing style for the block added. This is not
          sufficient. Added blocks need to styled immediately. Some name changes to instance variables in 
          this class due to the change to accommodate this change.
          (khtml::InsertParagraphSeparatorCommand::~InsertParagraphSeparatorCommand): Name changes, as above.
          (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): Ditto.
          (khtml::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Ditto.
          (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
          (khtml::ReplaceSelectionCommand::doApply): Improve check for testing when a placeholder
          block can be removed in its entirety after the insertion.
          * khtml/editing/htmlediting.h: Update header accordingly.
          * khtml/khtml_part.cpp:
          (KHTMLPart::selectionComputedStyle): Move position for computed style check downstream before
          doing check when the position is in an empty block (this makes sure any style on any block
          placeholder is accounted for).
  
          New layout tests to check bug fix.
  
          * layout-tests/editing/style/block-style-004-expected.txt: Added.
          * layout-tests/editing/style/block-style-004.html: Added.
          * layout-tests/editing/style/block-style-005-expected.txt: Added.
          * layout-tests/editing/style/block-style-005.html: Added.
          * layout-tests/editing/style/block-style-006-expected.txt: Added.
          * layout-tests/editing/style/block-style-006.html: Added.
  
          Results updated to reflect new block placeholder code.
  
          * layout-tests/editing/inserting/insert-div-004-expected.txt 
          * layout-tests/editing/inserting/insert-div-005-expected.txt
          * layout-tests/editing/inserting/insert-div-006-expected.txt
          * layout-tests/editing/inserting/insert-div-008-expected.txt
          * layout-tests/editing/inserting/insert-div-011-expected.txt
          * layout-tests/editing/inserting/insert-div-012-expected.txt
          * layout-tests/editing/inserting/insert-div-013-expected.txt
          * layout-tests/editing/inserting/insert-div-014-expected.txt
          * layout-tests/editing/inserting/insert-div-015-expected.txt
          * layout-tests/editing/inserting/insert-div-016-expected.txt
          * layout-tests/editing/inserting/insert-div-017-expected.txt
          * layout-tests/editing/inserting/insert-div-018-expected.txt
          * layout-tests/editing/inserting/insert-div-019-expected.txt
          * layout-tests/editing/inserting/insert-div-021-expected.txt
          * layout-tests/editing/inserting/insert-div-022-expected.txt
          * layout-tests/editing/inserting/insert-div-023-expected.txt
          * layout-tests/editing/inserting/insert-div-024-expected.txt
  
  2005-01-19  David Hyatt  <hyatt at apple.com>
  
  	Dont null-check the renderer before submitting, since a script can set it to display:none and still expect the
  	submission to occur.  Fixes bug #3477282.
  	
          Reviewed by kdecker
  
          (DOM::HTMLInputElementImpl::defaultEventHandler):
  
  2005-01-18  Richard Williamson   <rjw at apple.com>
  	
  	Fixed several issues all arising from analysis of plugin detection code at ifilm.com:
  
  	Fixed <rdar://problem/3958592> can't script plug-ins if plug-in is invoked with <object> element instead of <embed>
  	Fixed <rdar://problem/3958597> <object> elements with IDs do not show up as named properties of the document
  	Fixed <rdar://problem/3960973> DOM objects for plugin elements are not accessible
  	Fixed <rdar://problem/3958601> need an additional class ID in WebCore for the Real plug-in
  
  	We now support accessing scriptable plugin objects that are specified with <applet>, <embed>, or <object>
  	tags.  Also, if any of these elements are named they can be accessed from the document or window objects.
  	Finally, DOM methods are properties will be forwarded appropriately for the plugin's root scriptable object.
  
          Reviewed by Chris.
  
          * khtml/dom/html_document.cpp:
          (HTMLDocument::objects):
          * khtml/dom/html_document.h:
          * khtml/ecma/kjs_dom.cpp:
          (DOMDocumentProtoFunc::tryCall):
          (DOMElementProtoFunc::tryCall):
          (KJS::getRuntimeObject):
          * khtml/ecma/kjs_dom.h:
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::tryGet):
          (KJS::HTMLElement::tryGet):
          (KJS::HTMLCollection::tryGet):
          (KJS::HTMLCollection::getNamedItems):
          * khtml/ecma/kjs_window.cpp:
          (Window::get):
          * khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::traverseNextItem):
          * khtml/html/html_miscimpl.h:
          (DOM::HTMLCollectionImpl::):
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::getAppletInstance):
          (HTMLObjectElementImpl::HTMLObjectElementImpl):
          (HTMLObjectElementImpl::getObjectInstance):
          * khtml/html/html_objectimpl.h:
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::getObjectInstanceForView):
  
  2005-01-18  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3948123, rolling over link erases nearby text.  The repaint rect check for lines was wrong whenever
  	two lines overlapped.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::paintLines):
  
  2005-01-18  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Fix for this bug:
          
          <rdar://problem/3960116> Focus rings paint incorrectly for contenteditable blocks in web pages
  
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::addFocusRingRects): Fix painting of focus rings so that ring only paints around
          outermost contenteditable elements.
  
  2005-01-18  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/3959668> accessibilityFocusedUIElement sometimes returns an ignored element; it must not
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityFocusedUIElement]):
          Return parentObjectUnignored if focused object is ignored.
  
  2005-01-18  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3952877> REGRESSION (Mail): Command-left/right-arrows don't work with file attachment
  
          * khtml/editing/selection.cpp:
          (khtml::nodeForInlineBox): New helper function used in reimplementation of function below.
          (khtml::selectionForLine): Reimplemented using line box smarts. I originally wrote this code when
          I had a less than full understanding of line layout. I can do better now, and my new version no
          longer fails to notice attachments when doing the kind of navigation mentioned in the bug.
  
  2005-01-17  David Harrison  <harrison at apple.com>
  
          Reviewed by John Sullivan.
  
          <rdar://problem/3949429> AX: word marker routines returns incorrect data for empty line
          <rdar://problem/3949848> AX: paragraph marker routines do not work when given a paragraph end marker
  
          Also fixed sentence support in the same way.
          
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXNextSentenceEndTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXNextParagraphEndTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]):
          Move one position in desired direction before calling visible_units.cpp code.
  
  2005-01-17  David Harrison  <harrison at apple.com>
  
          Updated expected test results.
          
          <rdar://problem/3945880> line-ending space seems not to be present
  
          * layout-tests/editing/deleting/delete-ws-fixup-001-expected.txt:
          * layout-tests/editing/deleting/delete-ws-fixup-002-expected.txt:
          * layout-tests/editing/inserting/insert-div-020-expected.txt:
          * layout-tests/editing/inserting/insert-div-021-expected.txt:
          * layout-tests/editing/inserting/insert-div-022-expected.txt:
          * layout-tests/editing/inserting/insert-div-023-expected.txt:
          * layout-tests/editing/inserting/insert-div-024-expected.txt:
  
  2005-01-17  David Harrison  <harrison at apple.com>
  
          Reviewed by Dave Hyatt (bidi.cpp) and Darin Adler (selection.cpp).
  
          <rdar://problem/3945880> line-ending space seems not to be present
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::validate):
          Extend AFTER_WHITE_SPACE code to support white spac in the middle of paragraphs, not just the end.
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::findNextLineBreak):
          Pick left/rightness of word selection based on being at the end of paragraph (i.e. after a hard line break).
  
  2005-01-17  Darin Adler  <darin at apple.com>
  
          Reviewed by John Louch.
  
          - fixed <rdar://problem/3958503> need screenX and screenY to use WebKit windowFrame delegate
  
          * khtml/ecma/kjs_window.cpp: (Window::get): Change screenX and screenY to use frameGeometry instead
          of using mapToGlobal and screen in a complicated way.
          * kwq/KWQKHTMLView.mm: Removed unused mapToGlobal function.
          * kwq/KWQWindowWidget.h: Ditto.
          * kwq/KWQWindowWidget.mm: Ditto.
  
  2005-01-17  David Hyatt  <hyatt at apple.com>
  
  	Fix a screwup in rightmost/lowets position computation.  3955207.  Make sure floats with layers are still checked.
  
          Reviewed by kocienda
  	
  	* khtml/rendering/render_block.cpp
  
  2005-01-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          <rdar://problem/3953366> Problems with typing attributes in HTML compose
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Remove misguided "optimization"
          that tried to sense when typing style could be cleared without actually doing a style diff between
          before-delete and after-delete positions. Removing this extra check and running the 
          general-purpose code fixes the bug.
  
  2005-01-17  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3753030> Need to ensure same origin for plugin binding invocations (origin security rules)
  
  	Keep track of originating execution context and target execution
  	context for native JS object wrappers, and perform appropriate
  	security checks.
  
          Reviewed by David Harrison.
  
          * khtml/ecma/kjs_binding.cpp:
          (ScriptInterpreter::isGlobalObject):
          (ScriptInterpreter::isSafeScript):
          (ScriptInterpreter::interpreterForGlobalObject):
          * khtml/ecma/kjs_binding.h:
          * khtml/ecma/kjs_window.cpp:
          (Window::interpreter):
          (Window::isSafeScript):
          * khtml/ecma/kjs_window.h:
          * kwq/DOMInternal.mm:
          (-[WebScriptObject _initializeScriptDOMNodeImp]):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::windowScriptObject):
          (KWQKHTMLPart::windowScriptNPObject):
          * kwq/WebCoreBridge.mm:
          (rootForView):
          (-[WebCoreBridge init]):
  
  2005-01-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3786659> REGRESSION (Mail): editable WebViews don't work with 
          "size up" and "size down" NSFontManager changes
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue): Add support for parsing new font size delta property.
          * khtml/css/cssproperties.c: Generated file.
          * khtml/css/cssproperties.h: Ditto.
          * khtml/css/cssproperties.in: Add support for parsing new font size delta property.
          * khtml/editing/htmlediting.cpp:
          (khtml::isEmptyStyleSpan): New helper function. Code existed before, but now factored out for convenient use.
          (khtml::CompositeEditCommand::removeNodeAttribute): Does check on value to see it exists before creating
          and running command to do the removal.
          (khtml::ApplyStyleCommand::doApply): Now calls new applyRelativeFontStyleChange() function as part of its work.
          (khtml::ApplyStyleCommand::applyRelativeFontStyleChange): New function that does the "heavy lifting" to handle 
          relative font size changes.
          (khtml::ApplyStyleCommand::applyInlineStyle): Range check the start and end positions to make sure the start is
          before or equal to the end. Swap them if not true. I ran into this problem in some similar code in 
          applyRelativeFontStyleChange(). Moving that goodness here too.
          (khtml::ApplyStyleCommand::splitTextAtEndIfNeeded): Uses a local variable to save a value used often.
          Code is the same, but reads better now. Function now returns bool as well, just like splitTextAtStartIfNeeded.
          I use the bool return value now (I obviously did not need it before).
          (khtml::ApplyStyleCommand::computedFontSize): New helper function.
          (khtml::ApplyStyleCommand::joinChildTextNodes): Ditto.
          (khtml::createStyleSpanElement): Ditto.
          * khtml/editing/htmlediting.h: Update header accordingly.
          * khtml/editing/jsediting.cpp: Add new command string to enable relative font size changes.
          * kwq/DOM-CSS.mm:
          (-[DOMCSSStyleDeclaration _fontSizeDelta]): New convenience.
          (-[DOMCSSStyleDeclaration _setFontSizeDelta:]): Ditto.
          * kwq/DOMPrivate.h: Declare new conveniences.
          * layout-tests/editing/editing.js: Add new JS to enable relative font size changes, as well as explicit font size setting.
          * layout-tests/editing/style/relative-font-size-change-001-expected.txt: Added.
          * layout-tests/editing/style/relative-font-size-change-001.html: Added.
          * layout-tests/editing/style/relative-font-size-change-002-expected.txt: Added.
          * layout-tests/editing/style/relative-font-size-change-002.html: Added.
          * layout-tests/editing/style/relative-font-size-change-003-expected.txt: Added.
          * layout-tests/editing/style/relative-font-size-change-003.html: Added.
          * layout-tests/editing/style/relative-font-size-change-004-expected.txt: Added.
          * layout-tests/editing/style/relative-font-size-change-004.html: Added.
  
  2005-01-14  Darin Adler  <darin at apple.com>
  
          * khtml/css/cssproperties.c: Regenerated with gperf 3.0.1.
          * khtml/css/cssvalues.c: Regenerated with gperf 3.0.1.
          * khtml/misc/htmlattrs.c: Regenerated with gperf 3.0.1.
          * khtml/misc/htmltags.c: Regenerated with gperf 3.0.1.
  
  2005-01-14  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3886415> arrow keys don't work when the user hits Back to return to RSS page
  
          Reviewed by hyatt.
  
          (KWQKHTMLPart::openURLFromPageCache): restore mousePressNode
          (KWQKHTMLPart::mousePressNode): new
          * kwq/KWQPageState.h:
          * kwq/KWQPageState.mm:
          (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:]): save the mousePressNode
          (-[KWQPageState clear]): clear the mousePressNode
          (-[KWQPageState dealloc]): deref the mousePressNode
          (-[KWQPageState mousePressNode]): new
  
  === Safari-179 ===
  
  2005-01-13  Vicki Murley <vicki at apple.com>
  
          Reviewed by Adele.
  
          - fix <rdar://problem/3946836> Safari about box lists 2004 instead of 2005
  
          * WebCore.pbproj/project.pbxproj: bump "2004" to "2005"
  
  2005-01-13  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken Kocienda.
          
          Better fix for 3905066.
          
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply):
  
  2005-01-10  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3758033> REGRESSION (Mail): Support attributes in marked text (International input)
          
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::paint): Support painting custom underline markers for
  	marked text in place of generic yellow.
          (InlineTextBox::paintMarkedTextUnderline): New method that handles this.
          * khtml/rendering/render_text.h:
          * kwq/KWQKHTMLPart.h: Declare new methods and structs.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::clear): Clear marked test underlines.
          (KWQKHTMLPart::setMarkedTextRange): Takes attributes and ranges now.
          (convertAttributesToUnderlines): Converts NSAttributedString attributes
  	to simplified and C++-friendly form.
          (KWQKHTMLPart::markedTextUsesUnderlines): New method.
          (KWQKHTMLPart::markedTextUnderlines): New method.
          * kwq/KWQPainter.mm:
          (QPainter::drawLineForText): Handle pen width.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setMarkedTextDOMRange:customAttributes:ranges:]): Take attributes
  	and ranges.
          * kwq/WebCoreTextRenderer.h:
  
  2005-01-12  David Harrison  <harrison at apple.com>
  
          Reviewed by Dave Hyatt.
  
          <rdar://problem/3888973> AX: Parent AXWebArea of nested AXWebAreas is messed up
          
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject addChildrenToArray:]):
          Use the widget's outer view.
  
  2005-01-12  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin Adler.
  
          <rdar://problem/3949908> Crash when asking for the kAXLengthForTextMarkerRangeParameterizedAttribute
          
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::displayNode):
          Add quotes around text node content.
          (NodeBaseImpl::childNode):
          Add nil check to return nil rather than crash when child node not found.
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject doAXStringForTextMarkerRange:]):
          Pass range compliant positions to TextIterator.
  
  2005-01-12  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3951203, CSS border style incorrectly clipped on inline elements.  Make sure the repaint rect set during
  	line layout is smarter about including the overflow for both old states and new states.
  	
          Reviewed by john
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
  
  2005-01-12  David Hyatt  <hyatt at apple.com>
  
  	Fix for bug 3937608, versiontracker.com flashes and displays the right column below content.  Make sure to move
  	tables/overflows that dont fit within a block only in strict mode.
  
  	Fix for bug 3931049, characters dont show up when typing.  Make sure to dirty the right lines when this specific
  	case in editing is hit.
  	
          Reviewed by darin (first one), kocienda (second one)
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::getClearDelta):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::dirtyLinesFromChangedChild):
          * khtml/rendering/render_line.cpp:
          (khtml::InlineFlowBox::verticallyAlignBoxes):
  
  2005-01-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3926142> REGRESSION (Mail): Deleting text decreases quote level
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData): Change test that will prevent block
          merging. End-of-line test was just wrong. Call new start-of and end-of paragraph functions
          added to visible_position files.
          (khtml::DeleteSelectionCommand::moveNodesAfterNode): Add tests for BR elements, which makes
          tests to determine when to stop moving nodes more complete and correct. Also improved comments.
          * khtml/editing/visible_position.cpp:
          (khtml::isFirstVisiblePositionInParagraph): New function.
          (khtml::isLastVisiblePositionInParagraph): New function.
          * khtml/editing/visible_position.h: Update header accordingly.
          * layout-tests/editing/deleting/delete-block-merge-contents-002-expected.txt: New results, slightly different from former
          results but still correct.
          * layout-tests/editing/deleting/delete-block-merge-contents-007-expected.txt: Ditto.
          * layout-tests/editing/deleting/delete-block-merge-contents-018-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-018.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-019-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-019.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-020-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-020.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-021-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-021.html: Added.
          * layout-tests/editing/deleting/delete-line-014-expected.txt: These new results are actually better, and fix a bug.
  
  2005-01-11  Richard Williamson   <rjw at apple.com>
  
  	Fixed 3922875.  Fall back to DOM object is EMBED element
  	has no associated runtime object.
  
          Reviewed by Chris.
  
          * khtml/ecma/kjs_dom.cpp:
          (KJS::getRuntimeObject):
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::tryGet):
          (KJS::HTMLElement::tryGet):
          (KJS::HTMLCollection::tryGet):
          (KJS::HTMLCollection::getNamedItems):
  
  2005-01-11  David Hyatt  <hyatt at apple.com>
  
          Fix for 3882299, missing content on gibson.com.  Change our handling of " and ' in certain states of the parser to match
  	other browsers.
  	
          Reviewed by Maciej
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseTag):
  
  2005-01-11  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3930733> Mail prints second page of email blank
  
          Reviewed by dave.
  
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::paint): cache the print rect since the dirty rect can get changed during printing
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::paintLines): removed null check since the print rect should never be null
          * khtml/rendering/render_list.cpp:
          (RenderListMarker::paint): ditto
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::adjustPageHeight): don't set the print rect here since this method is not called for the last page
  
  2005-01-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3943648> extra line is inserted after pressing return within quoted text of reply
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): This bug was the result of a 
          simple coding mistake. A local variable was erroneously redefined in a deeper scope, and so the 
          result calculated in that deeper scope was not available when tested.
  
  2005-01-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3946852> Option-e goes to next line
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): Tweak case used to determine when merging content
          into the start line is done. We plan to change pretty substantially soon to better handle
          the problem described in <rdar://problem/3937352> Quote level not maintained when copied 
          and pasted within a Mail message. In the meantime, this change does no harm, and fixes the bug.
  
  2005-01-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/3907005> Applying block styles to a line of text can unexpectedly affect other lines
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): New function which moves "paragraphs"
          to their own blocks if needed so that a block style can be applied.
          (khtml::CompositeEditCommand::isMailBlockquote): Moved this function to base class so it can be used more generally.
          (khtml::ApplyStyleCommand::applyBlockStyle): Pass a node instead of a block to addBlockStyleIfNeeded().
          (khtml::ApplyStyleCommand::addBlockStyleIfNeeded): Now accepts a node instead of a block for styling.
          This function also now calls moveParagraphContentsToNewBlockIfNecessary() to make sure that only the current
          paragraph is styled.
          (khtml::SetNodeAttributeCommand::doUnapply): Should not assert on undo if old value of attribute was null.
          Should remove attributue instead.
          * khtml/editing/htmlediting.h: Touch function declarations accordingly.
          * layout-tests/editing/style/create-block-for-style-001-expected.txt: Added.
          * layout-tests/editing/style/create-block-for-style-001.html: Added.
          * layout-tests/editing/style/create-block-for-style-002-expected.txt: Added.
          * layout-tests/editing/style/create-block-for-style-002.html: Added.
          * layout-tests/editing/style/create-block-for-style-003-expected.txt: Added.
          * layout-tests/editing/style/create-block-for-style-003.html: Added.
          * layout-tests/editing/style/create-block-for-style-004-expected.txt: Added.
          * layout-tests/editing/style/create-block-for-style-004.html: Added.
          * layout-tests/editing/style/create-block-for-style-005-expected.txt: Added.
          * layout-tests/editing/style/create-block-for-style-005.html: Added.
          * layout-tests/editing/style/create-block-for-style-006-expected.txt: Added.
          * layout-tests/editing/style/create-block-for-style-006.html: Added.
          * layout-tests/editing/style/create-block-for-style-007-expected.txt: Added.
          * layout-tests/editing/style/create-block-for-style-007.html: Added.
          * layout-tests/editing/style/create-block-for-style-008-expected.txt: Added.
          * layout-tests/editing/style/create-block-for-style-008.html: Added.
          * layout-tests/editing/style/create-block-for-style-009-expected.txt: Added.
          * layout-tests/editing/style/create-block-for-style-009.html: Added.
          * layout-tests/editing/style/create-block-for-style-010-expected.txt: Added.
          * layout-tests/editing/style/create-block-for-style-010.html: Added.
          * layout-tests/editing/style/create-block-for-style-011-expected.txt: Added.
          * layout-tests/editing/style/create-block-for-style-011.html: Added.
          * layout-tests/editing/style/create-block-for-style-012-expected.txt: Added.
          * layout-tests/editing/style/create-block-for-style-012.html: Added.
          * layout-tests/editing/style/create-block-for-style-013-expected.txt: Added.
          * layout-tests/editing/style/create-block-for-style-013.html: Added.
  
          Unrelated updates to these expected results.
          * layout-tests/editing/inserting/insert-div-007-expected.txt
          * layout-tests/editing/pasteboard/paste-text-013-expected.txt
  
  2005-01-10  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3936844> Mail: Messages with rich text do not print
  
          Reviewed by john.
  
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::paintLines): don't do pagination work if printRect is not set
          * khtml/rendering/render_list.cpp:
          (RenderListMarker::paint): ditto
  
  2005-01-10  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          * kwq/KWQTextUtilities.mm:
          (currentTextBreakLocaleID):
          Return empty string (AKA root locale) if locale pref can not be canonicalized.
  
  2005-01-10  John Sullivan  <sullivan at apple.com>
  
          Fixed broken Panther build.
  
          * kwq/KWQTextUtilities.mm:
          (currentTextBreakLocaleID):
          This recently-added function was using code copy/pasted from CarbonCore UnicodeUtilities.
          That code used a Tiger-only function, CFLocaleCreateCanonicalLanguageIdentifierFromString.
          To fix the build, I added a BUILDING_ON_PANTHER #ifdef that avoids the call to the Tiger
          function. However, the Tiger-only code was wrong; the string generated using 
          CFLocaleCreateCanonicalLanguageIdentifierFromString was not used at all, so I fixed that
          as well.
  
  2005-01-09  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken Kocienda.
  
          <rdar://problem/3786362> REGRESSION (Mail): pasted text loses one newline
          
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply):
          Tune check for need for insertParagraphSeparator when hasInterchangeNewline.
  
  2005-01-09  Darin Adler  <darin at apple.com>
  
          Reviewed by Harrison.
  
          - fixed <rdar://problem/3939176> select() method does not work on <input type=search>
  
          * khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::select): Changed if statement
          to a switch statement. Added SEARCH to the set of types that treat the renderer as a
          RenderLineEdit.
  
  2005-01-09  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken Kocienda.
  
          <rdar://problem/3905066> REGRESSION (Mail): Hitting return key with caret in front of space causes space to become lost (resize fixes)
  
          Problem was that InsertParagraphSeparatorCommand::doApply() was not collapsing
          whitespace to a single non-breaking space when splitting a text node.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply):
  
  2005-01-08  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Ken.
  
  	Fixed: <rdar://problem/3924219> Calling setOuterHTML: on a DOMHTMLHtmlElement can crash a program
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::setOuterHTML): Added a nil check for fragments who don't have parents.
  
  2005-01-07  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  	
  	<rdar://problem/3807144> REGRESSION (125-TOT): my bank's website doesn't work (Societe Generale, socgen.com)
  
          * Khtml/khtml_part.cpp:
          (KHTMLPart::checkCompleted): If the document is NULL, assume this frame has
  	not started loading yet so it could not possibly be finishing here...
          (KHTMLPart::stop): ...unless the part is explicitly stopped and there is still
  	no document, in this case we must have hit an error or been loading a non-HTML
  	frame.
          * khtml/khtml_part.h:
  
  2005-01-08  David Harrison  <harrison at apple.com>
  
          Reviewed by Maciej.
  
          <rdar://problem/3943415> REGRESSION (Mail): double-clicking past word selects previous word instead of only blank space
          
          * khtml/editing/selection.cpp:
          (khtml::Selection::validate):
          Tune word selections left/right choice to use right if on empty last line.
  
  2005-01-07  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
          <rdar://problem/3942619> AX: Support sentence ax attributes
  
          Needed to use the unicode utilities properly.  Twas lame before.
  
          * khtml/editing/visible_units.cpp:
          (khtml::previousBoundary):
          (khtml::nextBoundary):
          (khtml::startOfWord):
          (khtml::endOfWord):
          (khtml::previousWordPosition):
          (khtml::nextWordPosition):
          (khtml::startOfSentence):
          (khtml::endOfSentence):
          (khtml::previousSentencePosition):
          (khtml::nextSentencePosition):
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityAttributeNames]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          (-[KWQAccObject accessibilityParameterizedAttributeNames]):
          (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
          * kwq/KWQTextUtilities.mm:
          (currentTextBreakLocaleID):
          (KWQFindSentenceBoundary):
          (KWQFindNextSentenceFromIndex):
  
  2005-01-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Kevin
  
          Fix for these bugs:
          
          <rdar://problem/3939523> in some cases, text does not retain style info after pressing return twice
          <rdar://problem/3944492> after pressing return twice, text is bold when it shouldn't be
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::setFullTypingStyleBeforeInsertion):
          Merge the typing style with the computed style for the current position. Fixes both bugs.
          * khtml/editing/htmlediting.h:
          * layout-tests/editing/inserting/insert-div-023-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-023.html: Added.
          * layout-tests/editing/inserting/insert-div-024-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-024.html: Added.
  
  2005-01-07  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3941364, make sure tables reset overflowWidth/Height when they lay out again.  Fixes the odd scrolling
  	behavior on worldofwarcraft.com.
  	
          Reviewed by kevin
  
          * khtml/rendering/render_table.cpp:
          (RenderTable::layout):
  
  2005-01-06  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3932418 and 3920998, assertion failures caused by stray inline content inside tables.  Bulletproof the hit testing to
  	ignore inline flows in this case.
  	
          Reviewed by kevin
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::nodeAtPoint):
  
  2005-01-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3848412> for forwarded message, tabbing to message view scrolls to bottom of view
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::nextKeyViewInFrame): Don't scroll the focus node to visible if it is not
          in the document, or if it is not a descendent of the document element. In the case of the bug,
          since the selection has not yet been set up, the focus node passed here is the HTML element, and
          that does not yield a rect that is useful to us here. So now, in the case the bug mentions, we do nothing.
  
  2005-01-06  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by mjs.
  
  	Fixed: <rdar://problem/3932215> REGRESSION (125-177): iFrame example at developer.apple.com fails in Safari
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::processObjectRequest): m_bComplete was never true for frames generated by Javascript due to our synchronous loading and as a result, scheduled redirects wouldn't fire in KHTMLPart::scheduleLocationChange().  By virtue of being an empty document, a document is complete.  In this special case it's safe at this point to call checkCompleted() which sets m_bComplete true. 
  
  === Safari-178 ===
  
  2005-01-06  David Harrison  <harrison at apple.com>
  
          Reviewed by Chris.
  
          (addendum to previous checkin for this bug) 
          <rdar://problem/3776056> AX: Editable HTML should not be viewed as AXStaticText
  
          Fix line navigation.  Add AXUIElementForTextMarker.
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityParameterizedAttributeNames]):
          (-[KWQAccObject doAXUIElementForTextMarker:]):
          (-[KWQAccObject doAXLineForTextMarker:]):
          (-[KWQAccObject doAXTextMarkerRangeForLine:]):
          (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
          (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
  
  2005-01-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - re-fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
  
          (turns out the PLT regression was a false alarm)
  
          * khtml/html/htmlparser.h: Change forbidden tag array to be allocated in the object rather than on
          the heap. Also use ID_LAST_TAG for the array size; the old code used ID_CLOSE_TAG which is now a
          much larger number.
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::KHTMLParser): Remove code that creates the forbidden tag array on the heap; makes more
          sense to just have the array be a member so we don't have to use new and delete on it. Also needed
          to eliminate code that used ID_CLOSE_TAG for an array size.
          (KHTMLParser::~KHTMLParser): Remove code that deletes the forbidden tag array. Also changed the code
          that manages isindex to use deref instead of delete.
          (KHTMLParser::reset): Use safer sizeof for clearing the forbidden tag array. Old code had the
          mistake of using ID_CLOSE_TAG for the array size too.
          (KHTMLParser::parseToken): Removed code that checks for bogus tags; it's not clear why it was ever
          there and it would prevent custom tags from working. Added range check before using the forbidden
          tag array with the token ID since custom tags will use index values past the end of the array.
          (KHTMLParser::getElement): Removed most of the code that makes an element by ID; now the work is done
          inside the DocumentImpl createHTMLElement. Any code that needs to be different than a dynamic
          createElement call is still here. Last time I left out a few form element types from this switch;
          fixed now.
          * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): Call the tagId function in the
          document if getTagID fails; this creates a unique per-document ID.
  
          * khtml/misc/htmltags.c: Regenerated.
          * khtml/misc/htmltags.h: Regenerated.
  
          * khtml/misc/maketags: Changed the generated constants to use "const unsigned short" instead of "#define".
          Changed ID_CLOSE_TAG to be a fixed value of 32000 rather than being just past the IDs of the HTML tags.
          Also rewrote getTagName to work with the new scheme.
  
  2005-01-06  David Harrison  <harrison at apple.com>
          
          Fixed Panther build.  Also, do not advertize sentence support since it is incomplete.
          
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
          (-[KWQAccObject accessibilityParameterizedAttributeNames]):
          (-[KWQAccObject accessibilityIsAttributeSettable:]):
  
  2005-01-06  David Harrison  <harrison at apple.com>
  
          Reviewed by Dave Hyatt.
  
          <rdar://problem/3776056> AX: Editable HTML should not be viewed as AXStaticText
          <rdar://problem/3588548> AX: tabbing does not work correctly with the screen reader and a focused link; need AXFocusedUIElement to work
          
          Many more AX attributes supported.  Numerous fixes to previous AX work.
          
          * khtml/editing/visible_units.cpp:
          (khtml::startSentenceBoundary):
          (khtml::startOfSentence):
          (khtml::endSentenceBoundary):
          (khtml::endOfSentence):
          (khtml::previousSentencePositionBoundary):
          (khtml::previousSentencePosition):
          (khtml::nextSentencePositionBoundary):
          (khtml::nextSentencePosition):
          * khtml/editing/visible_units.h:
          * khtml/khtmlview.cpp:
          (KHTMLView::layout):
          * khtml/misc/helper.cpp:
          (khtml::findSentenceBoundary):
          (khtml::nextSentenceFromIndex):
          * khtml/misc/helper.h:
          * khtml/misc/htmltags.c:
          (hash_tag):
          (findTag):
          * khtml/rendering/render_container.cpp:
          (RenderContainer::removeChildNode):
          (RenderContainer::appendChildNode):
          (RenderContainer::insertChildNode):
          * khtml/rendering/render_object.cpp:
          (RenderObject::remove):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::getAccObjectCache):
          (DocumentImpl::updateSelection):
          (DocumentImpl::close):
          (DocumentImpl::setFocusNode):
          (DocumentImpl::parentDocument):
          (DocumentImpl::topDocument):
          * khtml/xml/dom_docimpl.h:
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityShouldUseUniqueId]):
          (-[KWQAccObject detach]):
          (-[KWQAccObject anchorElement]):
          (-[KWQAccObject firstChild]):
          (-[KWQAccObject lastChild]):
          (-[KWQAccObject previousSibling]):
          (-[KWQAccObject nextSibling]):
          (-[KWQAccObject parentObject]):
          (-[KWQAccObject value]):
          (-[KWQAccObject accessibilityAttributeNames]):
          (-[KWQAccObject accessibilityPerformAction:]):
          (-[KWQAccObject textMarkerForVisiblePosition:]):
          (-[KWQAccObject visiblePositionForTextMarker:]):
          (-[KWQAccObject textMarkerRangeFromVisiblePositions:andEndPos:]):
          (-[KWQAccObject topDocument]):
          (-[KWQAccObject topRenderer]):
          (-[KWQAccObject topView]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          (-[KWQAccObject accessibilityParameterizedAttributeNames]):
          (-[KWQAccObject doAXLineForTextMarker:]):
          (-[KWQAccObject doAXTextMarkerRangeForLine:]):
          (-[KWQAccObject doAXStringForTextMarkerRange:]):
          (-[KWQAccObject doAXTextMarkerForPosition:]):
          (-[KWQAccObject doAXBoundsForTextMarkerRange:]):
          (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
          (-[KWQAccObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
          (-[KWQAccObject doAXNextTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXLeftWordTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXRightWordTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXSentenceTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXParagraphTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXNextSentenceEndTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXNextParagraphEndTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXLengthForTextMarkerRange:]):
          (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
          (-[KWQAccObject accessibilityHitTest:]):
          (-[KWQAccObject accessibilityFocusedUIElement]):
          (-[KWQAccObject accessibilityIsAttributeSettable:]):
          (-[KWQAccObject doSetAXSelectedTextMarkerRange:]):
          (-[KWQAccObject setAccObjectID:]):
          (-[KWQAccObject removeAccObjectID]):
          * kwq/KWQAccObjectCache.h:
          * kwq/KWQAccObjectCache.mm:
          (KWQAccObjectCache::setAccObject):
          (KWQAccObjectCache::removeAccObject):
          (KWQAccObjectCache::visiblePositionForTextMarker):
          (KWQAccObjectCache::postNotificationToTopWebArea):
          (KWQAccObjectCache::postNotification):
          (KWQAccObjectCache::handleFocusedUIElementChanged):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::respondToChangedContents):
          * kwq/KWQTextUtilities.h:
          * kwq/KWQTextUtilities.mm:
          (KWQFindNextWordFromIndex):
          (KWQFindSentenceBoundary):
          (KWQFindNextSentenceFromIndex):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge accessibilityTree]):
  
  2005-01-05  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - re-landing a subset of my custom tag change that does not fix the bug, but also does
            not introduce a performance regression
  
          * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
          some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::debugPosition): Use nodeName rather than getTagName, since the latter works for
          per-document tags and is just better all around for things like the document.
          (khtml::debugNode): Ditto.
          * khtml/editing/selection.cpp: (khtml::Selection::debugPosition): Ditto.
          * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::debugPosition): Ditto.
          * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Ditto.
          * khtml/xml/dom_position.cpp: (DOM::Position::debugPosition): Ditto.
  
          * khtml/html/dtd.cpp: (DOM::checkChild): Use ID_LAST_TAG rather than 1000 for the check that allows
          non-HTML elements to be nested as desired.
  
          * khtml/misc/htmlhashes.h: Changed return types to unsigned short.
          * khtml/misc/htmlhashes.cpp:
          (khtml::getTagID): Changed return type to unsigned short.
          (khtml::getAttrID): Ditto.
  
          * khtml/xml/dom_docimpl.h: Added overload of createHTMLElement, made it non-virtual since it's not overriden.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createHTMLElement): Refactored into two separate functions, one that takes the tag ID.
          Also updated for a few tags that the parser handled but this did not.
  
          * kwq/KWQRenderTreeDebug.cpp:
          (getTagName): Added. Works for custom nodes, because it calls nodeName rather than using getTagName on
          the tag ID directly, which only works for standard nodes.
          (operator<<): Update to call getTagName.
          (nodePositionRelativeToRoot): Ditto.
          (writeSelection): Ditto.
  
  2005-01-05  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3941203> REGRESSION (Mail): Paste inserts content in wrong place
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): Some cleanup and refinement of the concepts used to make
          this operation work correctly, particularly in the logic to figure out whether to merge content, and
          also performing merges.
          * khtml/editing/visible_position.cpp:
          (khtml::isFirstVisiblePositionInBlock): Simplification of test used to make this determination.
          * khtml/editing/visible_units.cpp:
          (khtml::isStartOfParagraph): New helper, used in khtml::ReplaceSelectionCommand::doApply().
          (khtml::isEndOfParagraph): Ditto.
          * khtml/editing/visible_units.h: Declare new functions.
  
  2005-01-04  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3926522> Pressing return in a quoted block inserts too many newlines
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Call to insertBlockPlaceholderIfNeeded()
          for the block we are adding was being done at the wrong time, which led to the placeholder remaining
          in the document when it was not needed. This resulted in the extra space reported in the bug.
  
  2005-01-04  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Hyatt.
  
  	Fixed: <rdar://problem/3936879> nil-deref, crash in InlineFlowBox::nodeAtPoint closing DHTML menus at hrweb.apple.com
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::fillInlineSelectionGaps): Added a nil check. If there is no selection, don't try to get the selection's containing block. If we do, we'll crash. 
  
  2005-01-04  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3937203, force an update of the dashboard regions when scrollbars are added/removed.
  	
          Reviewed by kevin
  
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::updateScrollInfoAfterLayout):
  
  2005-01-04  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for these two bugs:
          
          <rdar://problem/3938935> REGRESSION (Mail): Pasting into an empty document mangles content
          <rdar://problem/3939148> REGRESSION (Mail): Pasting mistakenly reverses lines
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): For 3938935, add one more case to handle an empty document; merge
          neither start nor end. For 3939148, improve the code which adjusts the insertion point during 
          the process of pasting. It formerly handled only one of the possible cases.
          * layout-tests/editing/pasteboard/paste-text-015-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-015.html: Added.
  
  2005-01-04  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3936571, placeholder attribute should work for normal inputs for Dashboard.
  	
          Reviewed by john
  
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::updateFromElement):
          * kwq/KWQLineEdit.mm:
          (QLineEdit::setPlaceholderString):
  
  2005-01-04  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3830936, hang on changeforamerica.com.  Make sure to ignore the style not yet available option when
  	returning pseudo-styles.
  	
          Reviewed by john
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::matchRulesForList):
          (khtml::CSSStyleSelector::pseudoStyleForElement):
          * khtml/rendering/render_style.cpp:
          (RenderStyle::addPseudoStyle):
  
  2005-01-04  Darin Adler  <darin at apple.com>
  
          - rolled out my custom tag name change again -- it caused a 1 ms PLT regression
  
          * khtml/css/cssstyleselector.cpp:
          * khtml/editing/htmlediting.cpp:
          * khtml/editing/selection.cpp:
          * khtml/editing/visible_position.cpp:
          * khtml/html/dtd.cpp:
          * khtml/html/htmlparser.cpp:
          * khtml/html/htmlparser.h:
          * khtml/html/htmltokenizer.cpp:
          * khtml/misc/htmlhashes.cpp:
          * khtml/misc/htmlhashes.h:
          * khtml/misc/htmltags.c:
          * khtml/misc/htmltags.h:
          * khtml/misc/maketags:
          * khtml/xml/dom_docimpl.cpp:
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          * khtml/xml/dom_position.cpp:
          * kwq/KWQRenderTreeDebug.cpp:
  
  2005-01-04  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3927554> Style info applied to remainder of document after a newline is entered
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply): Clean up and simplification in code that inserts
          a paragraph separator. The bug was all about applying styles to the new paragraph that did not need
          to be applied. Now the code will detect when at the end of a style run and will not move and apply 
          that ending style to the new paragraph, though it will place that style into the typing style. This
          seems to match NSText behavior.
          * layout-tests/editing/inserting/insert-div-021-expected.txt: This test result exhibited the bug fixed 
          here. The only reason it was not noticed is that the erroneously copied inline was a span, and so did
          not have any visible effect on the document.
          * layout-tests/editing/inserting/insert-div-022-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-022.html: Added.
  
  2005-01-04  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3904562, make sure to clear the outline dictionary when drawing so that random focus rings dont get drawn
  	all over the place.
  	
          Reviewed by john
  
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::paintLines):
  
  2005-01-03  David Hyatt  <hyatt at apple.com>
  
  	Fix for float painting regressions 3932524, 3931664, and 3933068.  Make the noPaint flag setting more
  	robust and make it work regardless of which objects get a layout or not.
  	
          Reviewed by mjs
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::insertFloatingObject):
          (khtml::RenderBlock::addOverhangingFloats):
          (khtml::RenderBlock::addIntrudingFloats):
          * khtml/rendering/render_block.h:
          (khtml::RenderBlock::FloatingObject::FloatingObject):
  
  2005-01-03  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	<rdar://problem/3935390> Tiger 8A341: nil deref crash in DOM::NodeImpl::traverseNextNode
          
  	* khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::traverseNextItem): Assert that the starting point is not nil,
  	it should not ever be (now).
          (HTMLCollectionImpl::item): When traversing items stop when we hit
  	nil, meaning the end to avoid triggering above assert (formerly crash).
  
  2005-01-03  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John and Kevin.
  
  	<rdar://problem/3870317> REGRESSION(125.9-125.11) broken behavior at test.profoundlearning.com - used to
          
  	* khtml/ecma/kjs_window.cpp:
          (Window::get): Look up frame names before buitin window properties
  	to match other browsers. This regressed because we added a builtin
  	"toolbar" property but this site had a frame with that name.
  
  2004-12-21  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3888931> frame naming allows malicious site to bring up a window when you click on a link in another
          
  	Added opener bridge method to help WebKit implement security check
  	for named frame visibility.
  	
  	* khtml/khtml_part.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge opener]):
  
  2005-01-03  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3933926> Tiger8A341: Mail crashes while forwarding embedded HTML message in -[WebCoreBridge ensureSelectionVisible]
  
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge ensureSelectionVisible]): Put in some null checks to prevent crash experienced in bug.
  
  2005-01-03  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3936881, make sure positioned objects prooperly update y-position.
  	
          Reviewed by john
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutPositionedObjects):
  
  2005-01-03  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
          
          Fix for this bug:
          
          <rdar://problem/3928250> REGRESSION (Mail): Typing style lost after hitting return key
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertLineBreakCommand::preservesTypingStyle): Now implemented, returning yes for this command.
          (khtml::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): Initialize new typing style member variable.
          (khtml::InsertParagraphSeparatorCommand::~InsertParagraphSeparatorCommand): Deref new typing style member variable.
          (khtml::InsertParagraphSeparatorCommand::preservesTypingStyle): Now implemented, returning yes for this command.
          (khtml::InsertParagraphSeparatorCommand::setFullTypingStyleBeforeInsertion): New function to set the typing style
          (khtml::InsertParagraphSeparatorCommand::calculateAndSetTypingStyleAfterInsertion): Function called after the <p>
          insertion is done. This function diffs the style created in setFullTypingStyleBeforeInsertion() with the style
          of the new <p> and only sets those styles needed to preserve the style in effect before the insertion.
          (khtml::InsertParagraphSeparatorCommand::doApply): Call new functions.
          (khtml::TypingCommand::preservesTypingStyle): Now yes for inserting line breaks and paragraphs.
           * khtml/editing/htmlediting.h: Declare new functions.
  
  2004-12-25  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Hyatt.
  
  	Fixed: <rdar://problem/3505072> hang in KHTMLParser::parseToken (consulting.soroos.net)
  	
          * khtml/html/dtd.cpp: <label> needed a much higher priority such that it will close block elements.  Malformed HTML (ugh) is the only reason why we need to do this. 
  
  2004-12-23  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - re-fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
  
          * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
          some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::debugPosition): Use nodeName rather than getTagName, since the latter works for
          per-document tags and is just better all around for things like the document.
          (khtml::debugNode): Ditto.
          * khtml/editing/selection.cpp: (khtml::Selection::debugPosition): Ditto.
          * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::debugPosition): Ditto.
          * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Ditto.
          * khtml/xml/dom_position.cpp: (DOM::Position::debugPosition): Ditto.
  
          * khtml/html/dtd.cpp: (DOM::checkChild): Use ID_LAST_TAG rather than 1000 for the check that allows
          non-HTML elements to be nested as desired.
  
          * khtml/html/htmlparser.h: Change forbidden tag array to be allocated in the object rather than on
          the heap. Also use ID_LAST_TAG for the array size; the old code used ID_CLOSE_TAG which is now a
          much larger number.
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::KHTMLParser): Remove code that creates the forbidden tag array on the heap; makes more
          sense to just have the array be a member so we don't have to use new and delete on it. Also needed
          to eliminate code that used ID_CLOSE_TAG for an array size.
          (KHTMLParser::~KHTMLParser): Remove code that deletes the forbidden tag array. Also changed the code
          that manages isindex to use deref instead of delete.
          (KHTMLParser::reset): Use safer sizeof for clearing the forbidden tag array. Old code had the
          mistake of using ID_CLOSE_TAG for the array size too.
          (KHTMLParser::parseToken): Removed code that checks for bogus tags; it's not clear why it was ever
          there and it would prevent custom tags from working. Added range check before using the forbidden
          tag array with the token ID since custom tags will use index values past the end of the array.
          (KHTMLParser::getElement): Removed most of the code that makes an element by ID; now the work is done
          inside the DocumentImpl createHTMLElement. Any code that needs to be different than a dynamic
          createElement call is still here. Last time I left out a few form element types from this switch;
          fixed now.
          * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): Call the tagId function in the
          document if getTagID fails; this creates a unique per-document ID.
  
          * khtml/misc/htmlhashes.h: Changed return types to unsigned short.
          * khtml/misc/htmlhashes.cpp:
          (khtml::getTagID): Changed return type to unsigned short.
          (khtml::getAttrID): Ditto.
  
          * khtml/misc/htmltags.c: Regenerated.
          * khtml/misc/htmltags.h: Regenerated.
  
          * khtml/misc/maketags: Changed the generated constants to use "const unsigned short" instead of "#define".
          Changed ID_CLOSE_TAG to be a fixed value of 32000 rather than being just past the IDs of the HTML tags.
          Also rewrote getTagName to work with the new scheme.
  
          * khtml/xml/dom_docimpl.h: Added overload of createHTMLElement, made it non-virtual since it's not overriden.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createHTMLElement): Refactored into two separate functions, one that takes the tag ID.
          Also updated for a few tags that the parser handled but this did not.
  
          * kwq/KWQRenderTreeDebug.cpp:
          (getTagName): Added. Works for custom nodes, because it calls nodeName rather than using getTagName on
          the tag ID directly, which only works for standard nodes.
          (operator<<): Update to call getTagName.
          (nodePositionRelativeToRoot): Ditto.
          (writeSelection): Ditto.
  
  === Safari-177 ===
  
  2004-12-22  Darin Adler  <darin at apple.com>
  
          - rolled out my custom tag name change -- it broke amazon.com
  
          * khtml/css/cssstyleselector.cpp:
          * khtml/editing/htmlediting.cpp:
          * khtml/editing/selection.cpp:
          * khtml/editing/visible_position.cpp:
          * khtml/html/dtd.cpp:
          * khtml/html/htmlparser.cpp:
          * khtml/html/htmlparser.h:
          * khtml/html/htmltokenizer.cpp:
          * khtml/misc/htmlhashes.cpp:
          * khtml/misc/htmlhashes.h:
          * khtml/misc/htmltags.c:
          * khtml/misc/htmltags.h:
          * khtml/misc/maketags:
          * khtml/xml/dom_docimpl.cpp:
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          * khtml/xml/dom_position.cpp:
          * kwq/KWQRenderTreeDebug.cpp:
  
  2004-12-22  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin Adler.
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::validate):
          The selecting/deselecting bad behavior is because the Selection code that expands by words
          had an inaccurate test for being at the end of the document (where double-clicking needs
          to select the last word).  Fixed that check.
  
  2004-12-22  Adele Amchan  <adele at apple.com>
  
          Reviewed by Chris.
  
          Fix for <rdar://problem/3911650> tabs at safeway.com stop working after a while
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::scrollToAnchor): removed call to cancelRedirection 
            so that we match Firefox and WinIE behavior.
  
  2004-12-22  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
  
          * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
          some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::debugPosition): Use nodeName rather than getTagName, since the latter works for
          per-document tags and is just better all around for things like the document.
          (khtml::debugNode): Ditto.
          * khtml/editing/selection.cpp: (khtml::Selection::debugPosition): Ditto.
          * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::debugPosition): Ditto.
          * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Ditto.
          * khtml/xml/dom_position.cpp: (DOM::Position::debugPosition): Ditto.
  
          * khtml/html/dtd.cpp: (DOM::checkChild): Use ID_LAST_TAG rather than 1000 for the check that allows
          non-HTML elements to be nested as desired.
  
          * khtml/html/htmlparser.h: Change forbidden tag array to be allocated in the object rather than on
          the heap. Also use ID_LAST_TAG for the array size; the old code used ID_CLOSE_TAG which is now a
          much larger number.
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::KHTMLParser): Remove code that creates the forbidden tag array on the heap; makes more
          sense to just have the array be a member so we don't have to use new and delete on it. Also needed
          to eliminate code that used ID_CLOSE_TAG for an array size.
          (KHTMLParser::~KHTMLParser): Remove code that deletes the forbidden tag array. Also changed the code
          that manages isindex to use deref instead of delete.
          (KHTMLParser::reset): Use safer sizeof for clearing the forbidden tag array. Old code had the
          mistake of using ID_CLOSE_TAG for the array size too.
          (KHTMLParser::parseToken): Removed code that checks for bogus tags; it's not clear why it was ever
          there and it would prevent custom tags from working. Added range check before using the forbidden
          tag array with the token ID since custom tags will use index values past the end of the array.
          (KHTMLParser::getElement): Removed most of the code that makes an element by ID; now the work is done
          inside the DocumentImpl createHTMLElement. Any code that needs to be different than a dynamic
          createElement call is still here.
          * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): Call the tagId function in the
          document if getTagID fails; this creates a unique per-document ID.
  
          * khtml/misc/htmlhashes.h: Changed return types to unsigned short.
          * khtml/misc/htmlhashes.cpp:
          (khtml::getTagID): Changed return type to unsigned short.
          (khtml::getAttrID): Ditto.
  
          * khtml/misc/htmltags.c: Regenerated.
          * khtml/misc/htmltags.h: Regenerated.
  
          * khtml/misc/maketags: Changed the generated constants to use "const unsigned short" instead of "#define".
          Changed ID_CLOSE_TAG to be a fixed value of 32000 rather than being just past the IDs of the HTML tags.
          Also rewrote getTagName to work with the new scheme.
  
          * khtml/xml/dom_docimpl.h: Added overload of createHTMLElement, made it non-virtual since it's not overriden.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createHTMLElement): Refactored into two separate functions, one that takes the tag ID.
          Also updated for a few tags that the parser handled but this did not.
  
          * kwq/KWQRenderTreeDebug.cpp:
          (getTagName): Added. Works for custom nodes, because it calls nodeName rather than using getTagName on
          the tag ID directly, which only works for standard nodes.
          (operator<<): Update to call getTagName.
          (nodePositionRelativeToRoot): Ditto.
          (writeSelection): Ditto.
  
  2004-12-21  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken Kocienda.
  
          <rdar://problem/3924934> REGRESSION: double click at end of line selects start of next line
  
          Problem was the TextIterator was not handling exitNode() from a P block properly.
          
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::TextIterator):
          Add new param that specifies whether the iterator is for content or for searching.
          Search iterators do not prevent newlines at the beginning.
          (khtml::TextIterator::advance):
          Added some comments.
          (khtml::TextIterator::handleTextNode):
          Added some comments.
          (khtml::TextIterator::exitNode):
          Emit newline for P (and other) blocks with position following the block, instead of the m_lastTextNode.
          (khtml::TextIterator::emitCharacter):
          Added some comments.
          (khtml::TextIterator::range):
          Added some comments.
          (khtml::CharacterIterator::CharacterIterator):
          Specify search type TextIterator.
          (khtml::CharacterIterator::advance):
          * khtml/editing/visible_text.h:
          (khtml::):
          Add new TextIterator::TextIterator param that specifies whether the iterator is for content or for searching.
          * khtml/editing/visible_units.cpp:
          (khtml::nextWordBoundary):
          Specify search type TextIterator.
  
  2004-12-21  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken Kocienda.
  
          <rdar://problem/3924695> REGRESSION (Mail): double-clicking past end of line shows no selection, should select to EOL
          
          Problem was that RenderText::setSelectionState did not handle the SelectionStart case where start and end are the end of the line.
          Fixed by pretending the start == end-1 in that situation, as long as end > 0.
          
          * khtml/rendering/render_text.cpp:
          (RenderText::setSelectionState)
  
  2004-12-21  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3929187> WebKit needs to restrict access to certain window operations by domain
          
  	* khtml/ecma/kjs_window.cpp:
          (Window::get): Change most window functions to be restricted by
  	XSS domain check.
  
  2004-12-21  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3928305> selecting an entire line and typing over causes new inserted text at top of document
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent): New function to detect case
          formerly undetected and unhandled. This is the crux of the bug fix.
          (khtml::DeleteSelectionCommand::doApply): Call insertPlaceholderForAncestorBlockContent() during
          execution of command.
          * khtml/editing/htmlediting.h: Declare new function.
          * layout-tests/editing/deleting/delete-3928305-fix-expected.txt: Added.
          * layout-tests/editing/deleting/delete-3928305-fix.html: Added.
  
  2004-12-21  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Note to self: Must compile code before
          checking in (aka must return false from function returning bool).
  
  2004-12-21  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
          
          Fix for this bug:
          
          <rdar://problem/3927752> Crash in khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded(DOM::NodeImpl*)
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::insertBlockPlaceholderIfNeeded): Added some null checks.
          (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Ditto.
  
  2004-12-21  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplacementFragment::mergeStartNode): Refine concept of how this node is found based on
          further experiements.
          (khtml::ReplaceSelectionCommand::doApply): Add a special case for determining merges that need to
          be done if the insertion point is in an empty block.
          * layout-tests/editing/pasteboard/paste-text-012-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-012.html: Added.
          * layout-tests/editing/pasteboard/paste-text-013-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-013.html: Added.
          * layout-tests/editing/pasteboard/paste-text-014-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-014.html: Added.
  
  2004-12-21  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3899133> text search in a Safari window takes a very long time on Tiger updates page (and some other pages)
  
          * khtml/editing/visible_text.h: Add an "offset base node" parameter to emitCharacter, and also
          add a field to track it. Must make a few things mutable so we can update them in the range accessor.
          * khtml/editing/visible_text.cpp:
          (khtml::TextIterator::advance): Pass in base node and offsets rather than computing actual offsets
          using the node's index. We only compute the node index if actually asked for the range.
          (khtml::TextIterator::handleTextNode): Pass 0 for base node and set base node to 0 when setting
          up the offsets.
          (khtml::TextIterator::handleTextBox): Ditto.
          (khtml::TextIterator::handleReplacedElement): Pass base node and set base node instead of calling
          nodeIndex.
          (khtml::TextIterator::handleNonTextNode): Pass 0 for offset.
          (khtml::TextIterator::exitNode): More of the same.
          (khtml::TextIterator::emitCharacter): Ditto.
          (khtml::TextIterator::range): If an offset base node is stored, then get its node index, and then
          add that in to the offsets. Doing the work here guarantees it's done only once when doing a text search.
  
          - another small fix
  
          * khtml/khtml_part.cpp: Removed SPEED_DEBUG define. Not sure why it was on.
  
  === Safari-176 ===
  
  2004-12-20  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::moveNodesAfterNode): My one-liner for this bug introduced layout test
          regressions: <rdar://problem/3926142> REGRESSION (Mail): Deleting text decreases quote level
          Rolling out until I can develop a real fix.
  
  2004-12-20  David Harrison  <harrison at apple.com>
  
          Reviewed by Dave Hyatt.
          
          Initial checkin of AXTextMarkerRef support.
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::updateSelection):
          (DocumentImpl::setFocusNode):
          * kwq/KWQAccObject.h:
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject detach]):
          (-[KWQAccObject anchorElement]):
          (-[KWQAccObject addChildrenToArray:]):
          (-[KWQAccObject accessibilityAttributeNames]):
          (-[KWQAccObject accessibilityActionDescription:]):
          (-[KWQAccObject accessibilityPerformAction:]):
          (-[KWQAccObject textMarkerRangeFromMarkers:andEndMarker:]):
          (-[KWQAccObject textMarkerForVisiblePosition:]):
          (-[KWQAccObject visiblePositionForTextMarker:]):
          (-[KWQAccObject AXTextMarkerRangeCopyStartMarkerWrapper:]):
          (-[KWQAccObject AXTextMarkerRangeCopyEndMarkerWrapper:]):
          (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]):
          (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          (-[KWQAccObject accessibilityParameterizedAttributeNames]):
          (-[KWQAccObject textMarkerRangeFromVisiblePositions:andEndPos:]):
          (-[KWQAccObject getSelectedTextMarkerRange]):
          (-[KWQAccObject doAXLineForTextMarker:]):
          (-[KWQAccObject doAXTextMarkerRangeForLine:]):
          (-[KWQAccObject doAXStringForTextMarkerRange:]):
          (-[KWQAccObject doAXNextTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXPreviousTextMarkerForTextMarker:]):
          (-[KWQAccObject doAXLeftWordTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXRightWordTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
          (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
          (-[KWQAccObject accessibilityFocusedUIElement]):
          (-[KWQAccObject clearChildren]):
          (-[KWQAccObject accObjectID]):
          (-[KWQAccObject setAccObjectID:]):
          (-[KWQAccObject removeAccObjectID]):
          * kwq/KWQAccObjectCache.h:
          * kwq/KWQAccObjectCache.mm:
          (KWQAccObjectCache::KWQAccObjectCache):
          (KWQAccObjectCache::~KWQAccObjectCache):
          (KWQAccObjectCache::getAccObjectID):
          (KWQAccObjectCache::removeAccObjectID):
          (KWQAccObjectCache::textMarkerForVisiblePosition):
          (KWQAccObjectCache::visiblePositionForTextMarker):
  
  2004-12-19  Darin Adler  <darin at apple.com>
  
          * kwq/KWQFoundationExtras.h: (KWQCFAutorelease): Added nil check.
  
  2004-12-19  Darin Adler  <darin at apple.com>
  
          Reviewed by Kevin.
  
          - a garbage collection fix
  
          * kwq/KWQFoundationExtras.h: (KWQCFAutorelease): Added a more-extensive comment and fixed the BUILDING_ON_PANTHER
          #ifndef to use #if (in practice, either is OK).
          * kwq/KWQKURL.mm: (KURL::getNSURL): Use KWQCFAutorelease instead of autorelease.
  
  2004-12-17  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3923255, specified percentage heights of divs with overflow auto inside tables not honored.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcPercentageHeight):
          * khtml/rendering/render_table.cpp:
          (RenderTableSection::layoutRows):
  
  2004-12-17  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken Kocienda.
  
          <rdar://problem/3924930> REGRESSION: triple click does not select to end of line
          
          * khtml/editing/visible_units.cpp:
          (khtml::endOfParagraph):
          When includeLineBreak is true, allow traversal to next node after enclosingBlockFlowElement.
  
  2004-12-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Vicki
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Missed deleting some now-obsolete expcetion
          codes when I added the createBreakElement() function.
  
  2004-12-17  Richard Williamson   <rjw at apple.com>
  
  	Set the floor of max cacheable object size to 40K.  This restores
  	the long standing floor.  Lower floor deleteriously impacts the PLT.
          Reviewed by Hyatt.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::checkCompleted):
          * khtml/misc/loader.cpp:
          (Cache::setSize):
  
  2004-12-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3926142> REGRESSION (Mail): Deleting text decreases quote level
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::moveNodesAfterNode): Stop merging nodes when a <br> is hit.
          Formerly checked only for block boundary.
  
  2004-12-17  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
  		Add KWQCFAutorelease for autoreleasing CF objects.
          * kwq/KWQFoundationExtras.h:
          (KWQCFAutorelease):
          New.
  
  2004-12-17  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
  
  		Fix GC compatibility in getNSString.
  
          * kwq/KWQString.mm:
          (QString::getNSString):
  		Use NSString allocator instead of CFString, so that autorelease works under GC.
  
  2004-12-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3890973> REGRESSION (Mail): Deleting reorders remaining text
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::moveNodesAfterNode): Added check to ensure that moving content will not
          move it after the <body> element.
  
  2004-12-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
          
          Added new layout tests covering cases from recent bug fixes.
  
          * layout-tests/editing/inserting/insert-div-018-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-018.html: Added.
          * layout-tests/editing/inserting/insert-div-019-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-019.html: Added.
          * layout-tests/editing/inserting/insert-div-020-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-020.html: Added.
          * layout-tests/editing/inserting/insert-div-021-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-021.html: Added.
  
  2004-12-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          Changes in layout resulting from giving <p> elements no margin rather than 0.1em margin.
  
          * layout-tests/editing/inserting/insert-div-013-expected.txt
          * layout-tests/editing/inserting/insert-div-014-expected.txt
  
  2004-12-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3925317> Increase quote in email and with cursor below the quote the new line appears above the quote
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply):
          * khtml/editing/visible_position.cpp: Refine rules for whether to use the starting node or the starting
          block as the reference node for the insertion of the new block.
          (khtml::isLastVisiblePositionInBlock): Tweak rules again. Descendants of following blocks should answer true.
          I worked this all out on the whiteboard this time. This should be the last tweak.
  
  2004-12-17  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Ken.
  
  	Fixed <rdar://problem/3824438> Need a clean way for Dashboard to detect when an XML parsing error occurs
  
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::XMLTokenizer::insertErrorMessageBlock): In the xml error report, instead of a generic <div>, use <parsererror> to match Mozilla.
  
  2004-12-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          Fix for this bug:
          
          <rdar://problem/3924888> REGRESSION (Mail): Hitting return key at end of line does not insert visible newline
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply): Tweaked code I added just before to fix 3924486, so that
          it checks the downstream node for the starting position.
  
  2004-12-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          Added new createBreakElement() function that makes creating a <br> element a one-liner.
          Converted all the code that used to call the DocumentImpl, and dealt with the exceptionCode,
          over to this new helper.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::moveNodesAfterNode): Now uses new helper function.
          (khtml::InsertLineBreakCommand::doApply): Ditto.
          (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Ditto.
          (khtml::ReplaceSelectionCommand::doApply): Ditto.
          (khtml::createBreakElement): New helper.
          * khtml/editing/htmlediting.h: Ditto.
  
  2004-12-16  David Hyatt  <hyatt at apple.com>
  
  	Fix a bug where vertical-align values that depended on their parent's value went crazy if the parent was
  	vertical-align top or bottom.  The bug is 3771007, bankofamerica's ebills page.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_object.cpp:
          (RenderObject::getVerticalPosition):
  
  2004-12-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for these bugs:
          
          <rdar://problem/3924486> REGRESSION (Mail): Hitting return key does not insert visible newline
          <rdar://problem/3924579> REGRESSION (Mail): After deleting, hitting return key does not insert visible newline
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply): For the first bug, detect when inserting a <p> will
          make a visible <br> collapse. For the second bug, move the code that inserts the new <p> after
          a check which may move the node used as the reference node for the insertion. Also change this code to
          insert the <p> after the last sibling of the starting position, to move it past the nodes we're going
          to want to shift into the new <p>.
  
  2004-12-16  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - use <p> elements rather than <br> when pasting plain text; also use margin of 0 rather than 0.1 em
            after talking this over with Dave and Ken
  
          * khtml/editing/htmlediting.h: Added createDefaultParagraphElement and createBlockPlaceholderElement.
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::insertBlockPlaceholderIfNeeded): Use new createBlockPlaceholderElement
          helper so this can share code with the plain-text conversion code.
          (khtml::InsertParagraphSeparatorCommand::createParagraphElement): Use new createDefaultParagraphElement
          helper so this can share code with the plain-text conversion code.
          (khtml::createDefaultParagraphElement): Added.
          (khtml::createBlockPlaceholderElement): Added.
  
          * khtml/editing/markup.cpp: (khtml::createFragmentFromText): Use paragraphs rather than
          <br> elements for pasting plain text.
  
          - regenerated these files with the newer gperf
  
          * khtml/css/cssproperties.c: Regenerated.
          * khtml/css/cssvalues.c: Regenerated.
          * khtml/misc/htmlattrs.c: Regenerated.
          * khtml/misc/htmltags.c: Regenerated.
  
  2004-12-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3924291> REGRESSION (Mail): Crash deleting content following a <p> element
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::enclosingInlineElement): Fixed problem in this function where recursive search for
          parent that is not an inline would skip past previous siblings of nodes which were blocks. Now
          it stops looking in this situation. This problem eventually caused the delete code to try to 
          merge a node under a descendent.
  
  2004-12-16  Adele Amchan  <adele at apple.com>
  
          Change by Richard, reviewed by me.
  
  	Fix for: <rdar://problem/3923983> background image decoding prevents page with 0Kb image from finishing to load
  
          * khtml/misc/loader.cpp: (CachedImage::data): Added call to notifyFinished so the 0Kb image case finishes loading.
  
  2004-12-16  Adele Amchan  <adele at apple.com>
  
          Reviewed by Chris.
  
          Fix for: <rdar://problem/3534824> VIP: some navigation links on safeway.com don't work due to a JavaScript quirk
  
          Added a call to ObjectImp::get before Window::get just returns Undefined.  
          This was preventing us from getting the toString function from a Window object.
  
          * khtml/ecma/kjs_window.cpp: (Window::get):
  
  2004-12-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
          
          Fix for this bug:
          
          <rdar://problem/3918351> REGRESSION (Mail, 173-175+): Return before first char of line leaves insertion point in wrong place
          
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply): Basically, did a rewrite of this function
          to do a better job than it was doing before. Added several test cases to prove I am on a 
          better track.
          * khtml/editing/visible_position.cpp:
          (khtml::isFirstVisiblePositionInBlock): Tweaked the rules a bit to fix an issue very similar to the
          leaving-the-bar-node case problem I just fixed in a recent checkin (relevant markup: <p>foo</p>bar).
          This function was returning true for the first position in "bar". Wrong. Also tightened up other 
          rule: Should not report true when relationship between blocks cannot be determined.
          (khtml::isLastVisiblePositionInBlock): Tightened up rule as above: Should not report true 
          when relationship between blocks cannot be determined.
          * layout-tests/editing/inserting/insert-div-010-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-010.html: Added.
          * layout-tests/editing/inserting/insert-div-011-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-011.html: Added.
          * layout-tests/editing/inserting/insert-div-012-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-012.html: Added.
          * layout-tests/editing/inserting/insert-div-013-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-013.html: Added.
          * layout-tests/editing/inserting/insert-div-014-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-014.html: Added.
          * layout-tests/editing/inserting/insert-div-015-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-015.html: Added.
          * layout-tests/editing/inserting/insert-div-016-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-016.html: Added.
          * layout-tests/editing/inserting/insert-div-017-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-017.html: Added.
              
  2004-12-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
          
          Added a layout test based on my last checkin.
  
          * layout-tests/editing/selection/move-by-word-001-expected.txt: Added.
          * layout-tests/editing/selection/move-by-word-001.html: Added.
  
  2004-12-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3917929> REGRESSION (Mail): Command-left-arrow leaves insertion point too high after specific steps
  
          * khtml/editing/visible_text.cpp:
          (khtml::SimplifiedBackwardsTextIterator::advance): Add new check for leaving a text node and iterating
          backwards into a different block that is an descendent of the block containing the text node (as in leaving 
          the "bar" node in this example: <p>foo</p>bar).
          (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode): Call new emitNewlineForBROrText helper.
          (khtml::SimplifiedBackwardsTextIterator::emitNewlineForBROrText): Factor out code from handleNonTextNode, since
          it is called from there, and now also from advance().
  
  2004-12-15  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
          
          - fixed problem where plain-text would put a blank line between each <p> even when they have no margins
  
          * khtml/editing/visible_text.cpp: (khtml::TextIterator::exitNode): Add more checks and only set the
          "add one more newline" flag if the margin is sufficient. A more complete fix would ignore the node
          type altogether and use the render tree instead.
  
  2004-12-14  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken.
          
          - rest of WebCore fix for <rdar://problem/3790011> undoable operations all say "Undo" 
          in the menu, no specific action names
  
          * khtml/editing/edit_actions.h: new header, contains EditAction enum
          (renamed from HTMLEditAction, formerly in htmlediting.h)
  
          * ForwardingHeaders/editing/edit_actions.h: new forwarding header
          
          * khtml/editing/htmlediting.h:
          removed HTMLEditAction enum in favor of including edit_actions.h; added khtml::
          namespace to EditAction usages; added m_editingAction ivar to ApplyStyleCommand
  
          * khtml/editing/htmlediting.cpp:
          (khtml::EditCommandPtr::editingAction):
          update for enum name change
          (khtml::EditCommand::editingAction):
          ditto
          (khtml::ApplyStyleCommand::ApplyStyleCommand):
          added editingAction parameter to this constructor
          (khtml::ApplyStyleCommand::editingAction):
          return new ivar
          (khtml::DeleteSelectionCommand::editingAction):
          update for enum name change
          (khtml::MoveSelectionCommand::editingAction):
          ditto
          (khtml::TypingCommand::editingAction):
          ditto
          (khtml::ReplaceSelectionCommand::editingAction):
          ditto
          
          * khtml/khtml_part.h:
          added EditAction parameter to applyStyle and computeAndSetTypingStyle
          * khtml/khtml_part.cpp:
          (KHTMLPart::computeAndSetTypingStyle):
          added EditAction parameter
          (KHTMLPart::applyStyle):
          ditto
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::registerCommandForUndoOrRedo):
          do the cast from EditAction to WebUndoAction a different way to match other code
          
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setTypingStyle:withUndoAction:]):
          added WebUndoAction parameter, passed into ApplyStyleCommand constructor
          (-[WebCoreBridge applyStyle:withUndoAction:]):
          ditto
  
          * WebCore.pbproj/project.pbxproj:
          updated for new files
  
  2004-12-14  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3562458, rowspan and colspan converted to ints so that large values will work for them.  Remove
  	the ridiculous 1024 limit on the span values.
  
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableCellElementImpl::parseHTMLAttribute):
          * khtml/rendering/render_table.cpp:
          (RenderTableCell::collapsedBottomBorder):
          * khtml/rendering/render_table.h:
          (khtml::RenderTableCell::colSpan):
          (khtml::RenderTableCell::setColSpan):
          (khtml::RenderTableCell::rowSpan):
          (khtml::RenderTableCell::setRowSpan):
          (khtml::RenderTableCol::span):
          (khtml::RenderTableCol::setSpan):
  
  2004-12-14  David Hyatt  <hyatt at apple.com>
  
  	Make sure <col> and <colgroup> can have spans updated dynamically as well.
  	
          Reviewed by rjw
  
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableColElementImpl::parseHTMLAttribute):
          * khtml/rendering/render_table.cpp:
          (RenderTableCell::updateFromElement):
          (RenderTableCol::updateFromElement):
  
  2004-12-14  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3833123, setting a cell's colspan does not update rendering like it should.
  	
          Reviewed by rjw
  
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableCellElementImpl::parseHTMLAttribute):
          * khtml/rendering/render_table.cpp:
          (RenderTableCell::RenderTableCell):
          (RenderTableCell::updateFromElement):
  
  2004-12-14  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3864536> crash copying text from other apps and pasting in a sticky in dashboard
  
          Reviewed by hyatt.
  
          * khtml/editing/markup.cpp:
          (khtml::createFragmentFromText): ref and deref the fragment since calling appendChild can completely deref it
  
  2004-12-14  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3785211. Make sure to do a layout with the old position before doing a layout after changing to the new position.
  	This is actually a regression from my positioned object DHTML optimization.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_object.cpp:
          (RenderObject::setStyle):
  
  2004-12-14  David Hyatt  <hyatt at apple.com>
  
  	Make sure the class attribute works when newlines are present in the attribute.
  
          Reviewed by kocienda
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLNamedAttrMapImpl::parseClassAttribute):
  
  2004-12-14  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3724938, float element is duplicated and paints twice.  The logic for when to paint floats was
  	actually fairly screwed up.  This patch simplifies the logic and makes addOverhangingFloats easier to
  	read by splitting it into two separate functions.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlockChildren):
          (khtml::RenderBlock::clearFloats):
          (khtml::RenderBlock::addOverhangingFloats):
          (khtml::RenderBlock::addIntrudingFloats):
          * khtml/rendering/render_block.h:
  
  2004-12-14  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken.
          
          - added Undo action names for Cut, Paste, and Drag
  
          * khtml/editing/htmlediting.h:
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::editingAction):
          overridden to return HTMLEditActionCut
          (khtml::MoveSelectionCommand::editingAction):
          overridden to return HTMLEditActionDrag
          (khtml::ReplaceSelectionCommand::editingAction):
          overridden to return HTMLEditActionPaste
  
  2004-12-14  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken.
          
          - architecture for WebCore part of fix for <rdar://problem/3790011> undoable operations all say "Undo" in the menu, 
          no specific action names
            
          The remaining step is to make each EditCommand subclass override editingAction() to return an
          appropriate value. (Unfortunately the mapping between subclass and user-distinguishable action
          is not completely straightforward, so this next step isn't trivial.)
  
          * khtml/editing/htmlediting.h:
          new enum for HTMLEditAction
  
          * khtml/editing/htmlediting.cpp:
          (khtml::EditCommandPtr::editingAction):
          new method, calls through to EditCommand
          (khtml::EditCommand::editingAction):
          new method for subclasses to override, returns HTMLEditActionUnspecified at this level
          (khtml::TypingCommand::editingAction):
          proof of concept override, returns HTMLEditActionTyping
                  
          * kwq/KWQKHTMLPart.h:
          declare new private bottleneck method registerCommandForUndoOrRedo
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::registerCommandForUndoOrRedo):
          new bottleneck method to reduce code duplication; now calls over the bridge
          to get the localized string to use for the Undo action name
          (KWQKHTMLPart::registerCommandForUndo):
          now calls new bottleneck method
          (KWQKHTMLPart::registerCommandForRedo):
          now calls new bottleneck method
          
          * kwq/WebCoreBridge.h:
          new enum for WebUndoAction, maps directly to HTMLEditAction.
          Declaration of nameForUndoAction:
  
  2004-12-14  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - added a bunch of missing nil checks; our old version of inherits used to work for nil (by accident)
  
          * khtml/rendering/render_frames.cpp:
          (RenderPart::~RenderPart): Check widget for nil.
          (RenderPart::setWidget): Ditto.
          (RenderFrame::slotViewCleared): Ditto.
          (RenderPartObject::slotViewCleared): Ditto.
  
  2004-12-13  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - moved markup-related functions into new sources files in the editing directory
          - removed all of the uses of dynamic_cast, preparing to turn off RTTI to make our code smaller and slightly faster
  
          * ForwardingHeaders/editing/markup.h: Added.
          * khtml/editing/markup.h: Added.
          * khtml/editing/markup.cpp: Added.
  
          * WebCore.pbproj/project.pbxproj: Added markup.h/cpp.
  
          * khtml/dom/dom_node.cpp: (Node::toHTML): Call createMarkup since there's no toHTML in NodeImpl any more.
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::innerHTML): Changed to call createMarkup.
          (HTMLElementImpl::outerHTML): Ditto.
  
          * khtml/ecma/kjs_window.cpp:
          (Window::retrieveWindow): Comment out assert that uses dynamic_cast.
          (Window::retrieveActive): Ditto.
  
          * khtml/editing/htmlediting.h: Added forward class declaration needed now that I removed one elsewhere.
          * khtml/xml/dom_docimpl.h: Ditto.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::slotDebugDOMTree): Use createMarkup instead of toHTML.
          (KHTMLPart::processObjectRequest): Use inherits instead of dynamic_cast.
  
          * khtml/rendering/render_image.cpp: (RenderImage::paint): Add an explicit QChar conversion so this code
          still works even with the additional replace overloads added to QString.
          * kwq/KWQTextCodec.mm: (QTextCodec::fromUnicode): Ditto.
  
          * khtml/rendering/render_object.h: Removed the version of arenaDelete that does not take an object
          base pointer, because it used dynamic_cast in its implementation. Made the other version public.
          * khtml/rendering/render_object.cpp: Ditto.
          * khtml/rendering/render_replaced.cpp: (RenderWidget::deref): Pass object base pointer to arenaDelete.
  
          * khtml/xml/dom2_rangeimpl.h: Removed extra parameters from toHTML, and unneeded includes and declarations.
          * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::toHTML): Changed to call createMarkup, and moved all
          the support code into markup.cpp.
  
          * khtml/xml/dom_nodeimpl.h: Moved toHTML and related functions into markup.cpp.
          * khtml/xml/dom_nodeimpl.cpp: Ditto.
  
          * khtml/xml/dom_position.cpp:
          (DOM::startPosition): Implemented the version of this that takes a RangeImpl. Also added null checks
          so these return null positions rather than raising exceptions.
          (DOM::endPosition): Ditto.
  
          * khtml/khtmlview.h: Added an APPLE_CHANGES function so inherits can detect this class without dynamic_cast.
          * kwq/KWQFrame.h: Ditto.
          * kwq/KWQFrame.mm: (QFrame::isQFrame): Ditto.
          * kwq/KWQKPartsPart.h: Ditto.
          * kwq/KWQKPartsPart.mm: (KParts::ReadOnlyPart::isKPartsReadOnlyPart): Ditto.
          * kwq/KWQScrollView.h: Ditto.
          * kwq/KWQScrollView.mm: (QScrollView::isQScrollView): Ditto.
          * kwq/KWQKHTMLPart.h: Ditto.
          * kwq/KWQKHTMLPart.mm:
          (KHTMLView::isKHTMLView): Ditto.
          (KWQKHTMLPart::setTitle): Added an explicit QChar conversion so this code still works even with the additional
          replace overloads added to QString.
          (KWQKHTMLPart::setStatusBarText): Ditto.
          (KWQKHTMLPart::runJavaScriptAlert): Ditto.
          (KWQKHTMLPart::runJavaScriptConfirm): Ditto.
          (KWQKHTMLPart::runJavaScriptPrompt): Ditto.
          (KWQKHTMLPart::attributedString): Ditto.
          (KWQKHTMLPart::isCharacterSmartReplaceExempt): Ditto.
          (KWQKHTMLPart::isKHTMLPart): That dynamic_cast thing (see above).
  
          * kwq/KWQObject.h: Added virtual methods for the few cases where we need dynamic_cast-like behavior.
          * kwq/KWQObject.mm:
          (QObject::inherits): Changed to not use dynamic cast.
          (QObject::isKHTMLPart): Added. Returns false.
          (QObject::isKHTMLView): Ditto.
          (QObject::isKPartsReadOnlyPart): Ditto.
          (QObject::isQFrame): Ditto.
          (QObject::isQScrollView): Ditto.
  
          * kwq/KWQRenderTreeDebug.cpp:
          (write): Changed to use inherits rather than dynamic_cast.
          (writeSelection): Ditto.
  
          * kwq/KWQSlot.mm: (KWQSlot::call): Call through to the version with just a job pointer parameter rather
          than going straight on to the "no parameters at all" version.
  
          * kwq/KWQString.h:
          * kwq/KWQString.mm: (QString::replace): Added overloads.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge markupStringFromNode:nodes:]): Changed to call functions in markup.h.
          (-[WebCoreBridge markupStringFromRange:nodes:]): Ditto.
          (-[WebCoreBridge selectedString]): Added an explicit QChar conversion so this code still works even with
          the additional replace overloads added to QString.
          (-[WebCoreBridge stringForRange:]): Ditto.
          (-[WebCoreBridge copyDOMNode:copier:]): Changed to call functions in markup.h.
          (-[WebCoreBridge elementAtPoint:]): QChar conversion.
          (-[WebCoreBridge documentFragmentWithMarkupString:baseURLString:]): Changed to call functions in markup.h.
          (-[WebCoreBridge documentFragmentWithText:]): Changed to call functions in markup.h.
  
  2004-12-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3917956> REGRESSION (Mail): pasting can leave insertion point inside pasted text
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): Fix coding mistake. Calculations of bool flag based on 
          leading and trailing whitespace positions was reversed! I must have introduced this error recently
          when changing around this code.
  
  2004-12-13  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3915787, macobserver doesn't paint.  floatRect() needed to be const in the base class.  Also hit-testing
  	and painting was using the wrong rect when setting up the x/y of the rect.
  	
          Reviewed by mjs
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paint):
          (khtml::RenderBlock::nodeAtPoint):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::floatRect):
  
  2004-12-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3917863> REGRESSION (Mail): pasting two lines of plain text copied from an RTF document results in two styles
  
          Code to figuire out the end node to merge was missing the font tag in the second paragraph
          written out by AppKit convert-to-HTML function. I refined the algorithm to be smarter.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplacementFragment::mergeEndNode): Refine algorithm used to walk through the fragment being pasted
          looking for the node that is the last inline in the last block of the fragment. The old algorithm was 
          insufficiently powerful.
          (khtml::ReplacementFragment::enclosingBlock): New helper function.
          * khtml/editing/htmlediting.h: Add declaration for new helper function.
          * layout-tests/editing/pasteboard/paste-text-011-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-011.html: Added.
  
  2004-12-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          WebCore side of fix for this bug:
          
          <rdar://problem/3768372> REGRESSION (Mail): paste of text ending in whitespace loses whitespace
  
          Note that we are coordinating with Doug Davidson on the AppKit team to make a complete fix for this
          bug. This change involves our half of the needed changes.
          
          Note that a lot of this change has to do with changing code to use a <br> element instead of
          a comment node as the mechanism to annotate HTML with information used to fix the bug. In some
          other places, code to handle comments in markup can be removed since we do not use comments for
          such annotations after this change.
  
          * khtml/editing/htmlediting.cpp: Remove isComment() helper; no longer needed.
          (khtml::ReplacementFragment::ReplacementFragment): Change m_hasInterchangeNewlineComment name to m_hasInterchangeNewline.
          (khtml::ReplacementFragment::isInterchangeNewlineNode): Name changed from isInterchangeNewlineComment.
          (khtml::ReplacementFragment::isInterchangeConvertedSpaceSpan): Local variable name convertedSpaceSpanClass changed to
          convertedSpaceSpanClassString to match other uses of the idiom used here.
          (khtml::ReplaceSelectionCommand::doApply): Change hasInterchangeNewlineComment() name to hasInterchangeNewline().
          * khtml/editing/htmlediting.h: Change names as noted in .cpp file. Remove isComment() helper; no longer needed.
          (khtml::ReplacementFragment::hasInterchangeNewline):  Change hasInterchangeNewlineComment() name to hasInterchangeNewline().
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::createContextualFragment): No longer has includeCommentsInDOM flag; no longer needed as we do not
          annotate fragments with comments any longer.
          * khtml/html/html_elementimpl.h: Ditto.
          * khtml/xml/dom2_rangeimpl.cpp: Remove addCommentToHTMLMarkup() helper. No longer needed.
          (DOM::interchangeNewlineMarkupString): New helper to return <br> element markup we use to annotate content for interchange.
          (DOM::RangeImpl::toHTML): No longer uses addCommentToHTMLMarkup; now calls interchangeNewlineMarkupString(). Remove
          spurious semi-colon.
          * khtml/xml/dom2_rangeimpl.h: Remove obsolete addCommentToHTMLMarkup() function and EAddToMarkup enum.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge documentFragmentWithMarkupString:baseURLString:]): No longer pass bool to ask for including comments
          in DOM when calling createContextualFragment().
  
  2004-12-10  John Sullivan  <sullivan at apple.com>
  
          fixed deployment build bustage that John Louch ran into
  
          * kwq/KWQTextEdit.mm:
          (QTextEdit::setScrollBarModes):
          move bool declaration inside exception-handling block to avoid obscure
          compiler error
  
  2004-12-10  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Richard.
  
  	<rdar://problem/3907484> REGRESSION (125-173): crash when KWQTextField is dealloc'ed while setting focus (profoundlearning.com)
  	
          * kwq/KWQWidget.mm:
          (QWidget::setFocus): Handle the case where setting focus removed
  	us from the superview - this can happen due to style changes on
  	focus change.
  
  2004-12-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3915008> REGRESSION (Mail): Too much white space between lines separated by carriage returns
  
          There are a number of interesting things we could do to fix this bug, including SPI and involving
          the WebKit delegate, etc., however it seems reasonable to start with a hard-coded default that
          will fix the bug in the general case until such time as we can come up with more specific
          solutions. 
          
          So, I added a helper method to create <p> elements with an inline style that sets top and bottom margins
          to 0.1em.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::createParagraphElement): New factory method to create
          paragraph elements to insert. Also adds style information to keep the <p> from having "too-big" margins.
          (khtml::InsertParagraphSeparatorCommand::doApply): Call new factory method.
          * khtml/editing/htmlediting.h: Add createParagraphElement() declaration.
  
  2004-12-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Hyatt.
  
          - fixed <rdar://problem/3910419> setting style={overflow:hidden} for <textarea> does not prevent appearance of scrollbars
  
          * khtml/rendering/render_form.h: Remove now-unneeded wrap parameter.
          * khtml/rendering/render_form.cpp:
          (RenderSubmitButton::rawText): Convert to QChar explicitly.
          (RenderLineEdit::updateFromElement): Ditto.
          (RenderLineEdit::slotTextChanged): Ditto.
          (RenderSelect::updateFromElement): Ditto.
          (TextAreaWidget::TextAreaWidget): Moved out most of the initialization since it's not something
          that requires a derived class. Now we don't use this class at all for WebCore, but they still
          have it for KDE.
          (TextAreaWidget::event): Moved out the ifdefs.
          (RenderTextArea::RenderTextArea): Moved setting code from TextAreaWidget here. Put a bunch that
          we don't need at all inside !APPLE_CHANGES, and removed the setting for scroll bars, since that's
          now done in setStyle.
          (RenderTextArea::handleFocusOut): Use type QTextEdit instead of TextAreaWidget since that's all
          that's needed and WebCore no longer has TextAreaWidget.
          (RenderTextArea::calcMinMaxWidth): Ditto.
          (RenderTextArea::setStyle): Add code to set scroll bar modes based on wrap setting combined with
          overflow style.
          (RenderTextArea::updateFromElement): Use type QTextEdit.
          (RenderTextArea::text): Ditto.
          (RenderTextArea::select): Ditto.
  
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea _configureTextViewForWordWrapMode]): Don't set horizontal scroller visibility here,
          since it's now handled by QTextEdit.
          (-[KWQTextArea initWithFrame:]): Don't set vertical scroller visibility or scroller auto-hiding.
  
          * kwq/KWQTextEdit.h: Add setScrollBarModes function to be used instead of separate setter for
          the horizontal and vertical mode; needed because AppKit switches "autohide" for both at once.
          * kwq/KWQTextEdit.mm: (QTextEdit::setScrollBarModes): Added.
  
  2004-12-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/3915047> HItting return in empty document inserts <p> but 
          insertion point does not move
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply): The issue is that the
          code to insert the <p> element for the return is not detecting the fact
          that the document is empty. Inserting a <p> into an empty body will not
          "add a new line" as the user expects. With this change, we'll add a second 
          <p> when the root editable element has no rendered kids.
  
  2004-12-10  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3912979> REGRESSION (125-173): repro crash in HTMLCollectionImpl code (www.clubtravel.ie)
  
          * khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::traverseNextItem): Pass base when traversing
  	the initial one step, otherwise we might inadvertantly step
  	outside the collection base, thereby causing assertion failures or
  	other badness later.
  
  2004-12-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply): There is a starting block which is supposed to 
          act as the root node for this operation. However, a loop was incorrectly coded, and a parent node
          search could escape this node. Also, one other piece to code to move nodes to the new <p> element
          should do nothing if the starting point for the selection is itself the starting block.
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Similar changes, in spirit, to the above
          function, though the names and concepts are slightly different.
  
  2004-12-10  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	<rdar://problem/3907705> REGRESSION (172-173): DHTML menus are broken at hrweb.apple.com
          
  	* khtml/dom/html_document.cpp:
          (HTMLDocument::nameableItems): New method, wrapper for HTMLCollection creation.
          * khtml/dom/html_document.h:
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::tryGet): use doc.nameableItems(), not doc.all()!
          * khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::traverseNextItem): Added new DOC_NAMEABLE_ITEMS type, this represents
  	the items that can be accessed directly as a document propery, in particular forms, images,
  	objects, applets and embeds.
          (HTMLCollectionImpl::updateNameCache): Fix some nameCache/idCache confusion.
          (HTMLFormCollectionImpl::updateNameCache): Ditto.
          * khtml/html/html_miscimpl.h:
          (DOM::HTMLCollectionImpl::): Added new type.
  
  2004-12-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3914779> REGRESSION (Mail): Cannot arrow navigate to position before last character on text-wrapped line
  
          * khtml/rendering/render_text.cpp:
          (RenderText::caretRect): Code was not detecting space at the end of a line correctly. Now it does.
  
  2004-12-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
  
          <rdar://problem/3914755> REGRESSION (Mail): Insertion point disappears after pasting paragraph
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): Selection could end up in a "placeholder" node
          that was removed from the document when pasting. This caused the disappearance. Now this
          is detected, and the selection is shifted to a node that is in the document.
  
  2004-12-09  Richard Williamson   <rjw at apple.com>
  
  	Check to disable threaded decoding during
  	layout tests wasn't invoking function, just checking address of 
  	function, which would always return true.
  	
          * kwq/WebCoreImageRendererFactory.m:
          (+[WebCoreImageRendererFactory shouldUseThreadedDecoding]):
  
  2004-12-09  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3892686, left/top overflow was not being propagated properly up to containing blocks because of a math
  	error.
  
  	Also fix a bug I noticed on the same page where relative position offsets were not being added in properly for
  	all inlines when repainting.
  	
          Reviewed by rjw
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlockChildren):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::getAbsoluteRepaintRect):
  
  2004-12-09  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3867545, finance.yahoo.com lays out incorrectly.  Add a quirk that will prevent tables from moving
  	down below floats when there is insufficient space.  Instead we will match Gecko and just spill out of the
  	containing block to the right.  This appears to be the more common desired behavior, despite being wrong.
  	WinIE sometimes wraps and sometimes doesn't, but it's really hard for us to match its inconsistency.
  	
          Reviewed by john
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::getClearDelta):
          * layout-tests/apple-only/base/www.cnn.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/fast/block/margin-collapse/102-expected.txt:
          * layout-tests/fast/block/margin-collapse/102.html:
  
  2004-12-09  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3914078> worldclock crashing gc related
  
  	Use ProtectedValue for Context2D instance members.
  
          Reviewed by Maciej.
  
          * khtml/ecma/kjs_html.h:
  
  2004-12-09  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Dave.
          
          - fixed <rdar://problem/3731099> Move AXTitle string for image elements to AXDescription
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject title]): moved image alt tag code out of here
          (-[KWQAccObject accessibilityDescription]): moved image alt tag code into this new method
          (-[KWQAccObject accessibilityAttributeNames]): include AXDescription in the set of attributes
          that ordinary elements return; this means that ordinary elements that aren't images will return
          a nil description, which isn't ideal, but is in keeping with the way the rest of these attributes
          work here.
          (-[KWQAccObject accessibilityAttributeValue:]):
          call accessibilityDescription when asked for AXDescription
  
  2004-12-09  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Fix for this bug:
          
          <rdar://problem/3910425> REGRESSION (Mail): Crash in ReplaceSelectionCommand; selection is empty, leading to null deref
  
          * khtml/editing/htmlediting.cpp:
          (khtml::MoveSelectionCommand::doApply): The node representing the destination for the move may have
          been deleted. If this is the case, set the destination to the node the delete command provides in
          its ending selection.
  
  === Safari-175 ===
  
  2004-12-09  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
          
          Fix for this bug:
          
          <rdar://problem/3912841> REGRESSION (173-TOT): Some images report 0x0 dimensions on layout tests, causes spurious test failures
  
          The new threaded image decoding capability can throw off layout tests. The issue is that the decoding
          callback may not be delivered before the program asks for the dimensions of an image in order to
          wrote the layout dimensions. More generally, I think we need to ensure that there are no races in
          layout tests, so I have added a flag to the render tree debug code that we can set when debugging.
  
          * kwq/KWQRenderTreeDebug.cpp:
          (debuggingRenderTree): New function. Returns flag which tells whether the program is debugging the render tree.
          (externalRepresentation): Sets debuggingRenderTree flag to true;
          * kwq/KWQRenderTreeDebug.h:
          * kwq/WebCoreImageRendererFactory.m:
          (+[WebCoreImageRendererFactory shouldUseThreadedDecoding]): Checks debuggingRenderTree flag and will not
          do threaded decoding in any case if the flag is set.
  
  2004-12-09  Chris Blumenberg  <cblu at apple.com>
  
  	Fix for busting XMLHTTPRequest.
  
          Reviewed by kocienda.
  
          * khtml/misc/loader.cpp:
          (Loader::servePendingRequests): pass true for deliverAllData
          * kwq/KWQKJob.h:
          (KIO::get): take deliverAllData param
          (KIO::http_post): ditto
          * kwq/KWQKJobClasses.h:
          * kwq/KWQKJobClasses.mm:
          (KIO::TransferJob::TransferJob): if deliverAllData, create signal with data param
          (KIO::TransferJob::emitResult): if deliverAllData, call signal with data param
  
  2004-12-09  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          <rdar://problem/3911011> REGRESSION (Mail): Spaces at end of line causing word wrap lost when copied/pasted
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::renderedText): Fixed the code so that spaces at the end of lines are not skipped.
  
  2004-12-07  Richard Williamson   <rjw at apple.com>
  
  	Support threaded image decoding on machines w/ > 2 CPUs.
  
          Reviewed by Maciej and Chris.
  
          * khtml/misc/loader.cpp:
          (CachedImageCallback::notifyUpdate):
          (CachedImageCallback::notifyFinished):
          (CachedImageCallback::notifyDecodingError):
          (CachedImageCallback::handleError):
          (CachedImageCallback::clear):
          (CachedImage::CachedImage):
          (CachedImage::clear):
          (CachedImage::data):
          (CachedImage::checkNotify):
          (Loader::servePendingRequests):
          (Loader::slotFinished):
          (Loader::numRequests):
          (Loader::cancelRequests):
          (Loader::removeBackgroundDecodingRequest):
          * khtml/misc/loader.h:
          (khtml::CachedImageCallback::CachedImageCallback):
          (khtml::CachedImageCallback::ref):
          (khtml::CachedImageCallback::deref):
          (khtml::CachedImage::decoderCallback):
          * khtml/rendering/render_object.cpp:
          (RenderObject::setPixmap):
          * kwq/KWQPixmap.h:
          * kwq/KWQPixmap.mm:
          (-[WebImageCallback initWithCallback:khtml::]):
          (-[WebImageCallback _commonTermination]):
          (-[WebImageCallback dealloc]):
          (-[WebImageCallback finalize]):
          (-[WebImageCallback notify]):
          (-[WebImageCallback setImageSourceStatus:]):
          (-[WebImageCallback status]):
          (QPixmap::shouldUseThreadedDecoding):
          (QPixmap::receivedData):
          * kwq/WebCoreImageRenderer.h:
          * kwq/WebCoreImageRendererFactory.h:
          * kwq/WebCoreImageRendererFactory.m:
          (+[WebCoreImageRendererFactory shouldUseThreadedDecoding]):
          (+[WebCoreImageRendererFactory setShouldUseThreadedDecoding:]):
  
  2004-12-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Fix a problem with my
          change in thei code yesterday. Call to insertBlockPlaceholderIfNeeded() must be done
          after new block has been inserted, otherwise a crash can result. Shuffle down call 
          to insertBlockPlaceholderIfNeeded() a couple of lines (where the node is inserted), 
          and all is good.
  
  2004-12-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3907422> REGRESSION (Mail): Pasting quoted content can place content after body element
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): Detect when the body element is the "reference block" used
          for determining the location for inserting content. Do not allow an insert before or after if the
          reference block is the body. Perform insertNodeAt(0) and appendNode, respectively, in the block-is-body case.
          * layout-tests/editing/inserting/insert-3907422-fix-expected.txt: Added.
          * layout-tests/editing/inserting/insert-3907422-fix.html: Added.
  
  2004-12-07  Darin Adler  <darin at apple.com>
  
          Reviewed by Don.
  
          - fixed <rdar://problem/3908701> REGRESSION: Cursor does not change to "hand" over active links
  
          * kwq/KWQEvent.mm: (positionForEvent): Add NSMouseMoved to list of events that have mouse location.
  
  2004-12-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Changed name of constant from KHTMLInterchangeNewline to AppleInterchangeNewline.
          I discussed this with Hyatt and he agreed that going with "Apple" names was OK.
  
          * khtml/editing/html_interchange.h: Name change, as described above.
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplacementFragment::isInterchangeNewlineComment): Ditto.
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::toHTML): Ditto.
  
  2004-12-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
          
          Added a couple more layout tests.
  
          * layout-tests/editing/deleting/delete-line-013-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-013.html: Added.
          * layout-tests/editing/deleting/delete-line-014-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-014.html: Added.
  
  2004-12-06  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Hyatt.
  
  	- fixed <rdar://problem/3906974> assertion failure in QWidget::beforeMouseDown clicking on <select multiple>
          
  	* kwq/KWQListBox.mm:
          (QListBox::QListBox): Initialize KWQListBoxScrollView with this.
          (-[KWQListBoxScrollView initWithListBox:]): Make this class a KWQWidgetHolder.
          (-[KWQListBoxScrollView widget]): See above.
          (-[KWQTableView mouseDown:]): Pass outerView rather than self to beforeMouseDown and
  	afterMouseDown, to avoid triggering an assertion failure.
  
  2004-12-06  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3615411, the linesAppended optimization was old and broken, and it's easier with the new code fixes
  	made by me, kocienda and harrison to just remove it.
  	
          Reviewed by mjs
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
          * khtml/rendering/render_block.cpp:
          (khtml:::RenderFlow):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::dirtyLinesFromChangedChild):
  
  2004-12-06  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3787133, some web pages print with many blank pages.  Make sure to use the real page print rect and
  	not a damage rect that can be changed when intersected with the clip regions of the web page.
  	
          Reviewed by john
  
          * khtml/rendering/render_canvas.h:
          (khtml::RenderCanvas::printRect):
          (khtml::RenderCanvas::setPrintRect):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::paintLines):
          * khtml/rendering/render_list.cpp:
          (RenderListMarker::paint):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::adjustPageHeight):
  
  2004-12-06  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken Kocienda and Dave Hyatt (OOPS!).
  
  		<rdar://problem/3849947> Typing after pasting line does not appear until after window resize.
  		
  		
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::dirtyLinesFromChangedChild):
  		Dirty the line above because new child can inval the cached line break position of previous line.
  
  2004-12-06  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3254464, radio buttons do not work for quiz on netscape.com.  Left/top overflow needed to be implemented.
  	This also fixes 3106907, link hover color only partially set on rollover and the more general architecture bug
  	3126929, handle top/left overflow.
  
  	This patch also fixes 3902891, scroll bar of position:fixed content moves when a page is scrolled.
  
  	Finally, the Emerson regression 3869718 (error involving computing the rightmost/lowest position of overflow:auto
  	regions and web pages) has been fixed.
  	
          Reviewed by mjs
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::computeHorizontalPositionsForLine):
          (khtml::RenderBlock::checkLinesForOverflow):
          * khtml/rendering/render_block.cpp:
          (khtml:::RenderFlow):
          (khtml::RenderBlock::overflowHeight):
          (khtml::RenderBlock::overflowWidth):
          (khtml::RenderBlock::overflowLeft):
          (khtml::RenderBlock::overflowTop):
          (khtml::RenderBlock::overflowRect):
          (khtml::RenderBlock::layoutBlock):
          (khtml::RenderBlock::layoutBlockChildren):
          (khtml::RenderBlock::paint):
          (khtml::RenderBlock::floatRect):
          (khtml::RenderBlock::lowestPosition):
          (khtml::RenderBlock::rightmostPosition):
          (khtml::RenderBlock::leftmostPosition):
          (khtml::RenderBlock::nodeAtPoint):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_box.h:
          (khtml::RenderBox::borderBox):
          (khtml::RenderBox::borderTopExtra):
          (khtml::RenderBox::borderBottomExtra):
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::paintScrollbars):
          (mustExamineRenderer):
          (RenderLayer::intersectsDamageRect):
          (RenderLayer::containsPoint):
          * khtml/rendering/render_line.cpp:
          (khtml::InlineFlowBox::placeBoxesHorizontally):
          (khtml::InlineFlowBox::verticallyAlignBoxes):
          * khtml/rendering/render_line.h:
          (khtml::InlineBox::leftOverflow):
          (khtml::InlineBox::rightOverflow):
          (khtml::InlineFlowBox::setVerticalOverflowPositions):
          (khtml::RootInlineBox::RootInlineBox):
          (khtml::RootInlineBox::leftOverflow):
          (khtml::RootInlineBox::rightOverflow):
          (khtml::RootInlineBox::setVerticalOverflowPositions):
          (khtml::RootInlineBox::setHorizontalOverflowPositions):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::borderBox):
          (khtml::RenderObject::overflowLeft):
          (khtml::RenderObject::overflowTop):
          (khtml::RenderObject::overflowRect):
          (khtml::RenderObject::floatRect):
          * khtml/rendering/render_table.cpp:
          (RenderTable::layout):
          (RenderTable::paint):
          (RenderTable::paintBoxDecorations):
          (RenderTable::calcMinMaxWidth):
          * khtml/rendering/render_table.h:
          (khtml::RenderTableCell::borderTopExtra):
          (khtml::RenderTableCell::borderBottomExtra):
          * kwq/KWQRect.h:
          * kwq/KWQRect.mm:
          (QRect::inflate):
  
  2004-12-06  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fixed <rdar://problem/3903797> scripts can cause other frames/windows to execute arbitrary script using javascript: URLs
          
  	I changed all unprotected places that can navigate a different
  	window or frame from script to check for a javascript: URL, and if
  	found, to check for safety using cross-site-script rules. 
  
  	I considered a few other possible exploits and made no change:
  
  	- document.location is already protected because the document
  	object itself is protected
  
  	- frame.src, frame.location, iframe.src and targetted links are
  	all safe because setting the URL of a frame to a javascript: URL
  	executes the script in the context of the parent
  
  	* khtml/ecma/kjs_window.cpp:
          (WindowFunc::tryCall):
          (Location::put):
          (LocationFunc::tryCall):
  
  2004-12-06  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Maciej
  
          Fix for this bug:
          
          <rdar://problem/3890955> 8A314: Forward delete sometimes fails to delete the selected quoted text
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete): Fixed bonehead coding mistake in the
          check for one of the special cases being checked for in this function. The specific case 
          intends to check for a selection that is only a <br> after a block ends (as in </div><br>). If it
          sees such markup, it deletes only the <br> and bails. However, this code would run in *any*
          case where a selection ended in a <br> after a block and would not delete any part of the
          selection preceding the <br>. Bad. I have tightened the check to see that only a <br> is
          selected.
  
          Fixing the bug above was accomplished with an additional call to DOM::Position::downstream. This
          new use of the function exposed this bug:
          
          <rdar://problem/3907666> Incorrectly coded loop in Position::downstream can lead to infinite loop
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::downstream): I am ashamed of my first cut at this. Rewrote the loop so it does 
          not have this fatal flaw. It is a much better design as well.
          
          * layout-tests/editing/deleting/delete-3800834-fix-expected.txt: Changes made this test
          have what I consider to be a better result. Going with it.
  
  2004-12-06  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3871718> REGRESSION (125-168): text marked bold with font that does not have bold variant copies as non-bold
  
          Reviewed by hyatt.
  
          * kwq/DOM.mm:
          (-[DOMElement _font]): new SPI for AppKit
          * kwq/DOMPrivate.h:
  
  2004-12-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3906327> Select All of a large document is slow (>15 secs on my machine for attached specimen)
  
          * kwq/KWQScrollView.mm: (QScrollView::updateContents): Intersect with visibleRect before calling through
          to NSView to dirty; NSView could also be more efficient in this case (I filed 3906343).
  
  2004-12-06  John Sullivan  <sullivan at apple.com>
  
          Darin found what appears to be the real leak that we were falsely blaming
          on the 'leaks' tool (3880245). I made the change, and ran layout tests and PLT to make
          sure nothing barfed.
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          call clearProperties() instead of just setting numParsedProperties to 0
          (CSSParser::parseDeclaration):
          ditto
          (CSSParser::createStyleDeclaration):
          ditto
  
  2004-12-06  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
          
          New layout tests.
  
          * layout-tests/editing/inserting/insert-div-001-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-001.html: Added.
          * layout-tests/editing/inserting/insert-div-002-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-002.html: Added.
          * layout-tests/editing/inserting/insert-div-003-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-003.html: Added.
          * layout-tests/editing/inserting/insert-div-004-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-004.html: Added.
          * layout-tests/editing/inserting/insert-div-005-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-005.html: Added.
          * layout-tests/editing/inserting/insert-div-006-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-006.html: Added.
          * layout-tests/editing/inserting/insert-div-007-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-007.html: Added.
          * layout-tests/editing/inserting/insert-div-008-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-008.html: Added.
          * layout-tests/editing/inserting/insert-div-009-expected.txt: Added.
          * layout-tests/editing/inserting/insert-div-009.html: Added.
  
  2004-12-06  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Fix for this bug:
          
          <rdar://problem/3906948> REGRESSION (Mail): Insert paragraph code can make the insertion point "stick" in place.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::doApply): Call insertBlockPlaceholderIfNeeded(), passing block
          being added to this function. This ensures that the added block has a height.
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Ditto.
  
  2004-12-06  Ken Kocienda  <kocienda at apple.com>
   
          Reviewed by John
          
          * khtml/dom/dom_string.cpp:
          (DOM::DOMString::substring): Expose method already on DOMStrimgImpl.
          * khtml/dom/dom_string.h: Ditto.
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::rebalanceWhitespace): New helper to create and execute a
          RebalanceWhitespaceCommand instance.
          (khtml::DeleteSelectionCommand::doApply): Call rebalanceWhitespace() after running command.
          (khtml::InsertLineBreakCommand::doApply): Ditto.
          (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Ditto.
          (khtml::InsertTextCommand::input): Ditto.
          (khtml::RebalanceWhitespaceCommand::RebalanceWhitespaceCommand): New command.
          (khtml::RebalanceWhitespaceCommand::~RebalanceWhitespaceCommand): Ditto.
          (khtml::RebalanceWhitespaceCommand::doApply): Ditto.
          (khtml::RebalanceWhitespaceCommand::doUnapply): Ditto.
          (khtml::RebalanceWhitespaceCommand::preservesTypingStyle): Ditto.
          (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Ditto.
          * khtml/editing/htmlediting.h: Ditto.
          (khtml::RebalanceWhitespaceCommand::): Ditto.
  
  2004-12-05  Darin Adler  <darin at apple.com>
  
          - fixed small problem in my check-in from yesterday
  
          * kwq/KWQEvent.mm:
          (positionForEvent): Get location from event without raising exception if it's the wrong type.
          (clickCountForEvent): Same, for clickCount.
          (QMouseEvent::QMouseEvent): Use the new helper functions so this can be constructed even with
          the wrong type of NSEvent. Required for cases where a keyboard event causes a "click" and we need
          to synthesize a QMouseEvent for KHTML internal use, using the key down NSEvent.
  
  2004-12-04  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3878329> REGRESSION (169-170): colors are wrong for my.yahoo.com due to CSS background parsing changes
  
          * khtml/css/cssparser.cpp: (CSSParser::parseBackgroundShorthand): Changed function so it doesn't rely on the position
          attribute being at the end of the array and then moved position attribute before color attribute so it takes precedence.
          Since "0" can be both the X coordinate of a position and a legal color (meaning black), we need to do position first.
  
          - fixed <rdar://problem/3760869> click events for input type=button or type=checkbox don't have flags like shiftKey set
  
          * khtml/rendering/render_form.h: Remove unused RenderFormElement fields.
          * khtml/rendering/render_form.cpp:
          (RenderFormElement::RenderFormElement): Take out code to set a bunch of unused fields.
          (RenderFormElement::slotClicked): Change to create the QMouseEvent from the actual mouse event rather than
          creating it with all the flags set to 0, using the new QMouseEvent constructor that does so.
  
          * kwq/KWQEvent.h: Added constructor that takes no parameters which uses the current event from AppKit.
          Made the click count getter const and added an isDoubleClick that matches the logic used elsewhere.
          Added a fixState helper method so the constructors can save code.
          * kwq/KWQEvent.mm:
          (QMouseEvent::QMouseEvent): Factored out the state-fixing code that was in the two existing constructors
          and added a third constructor that uses the "current event" from AppKit (used above).
          (QMouseEvent::fixState): Compute state and click count based on event type.
  
          - fixed first symptom of <rdar://problem/3830936> REGRESSION (125-165): crash due to null font family, hang at changeforamerica.com
  
          * kwq/KWQFontFamily.mm: (KWQFontFamily::getNSFamily): Handle empty strings specially so we don't run into trouble when
          the family name is a null string. This prevents the crash, but there are still other problems that may have the same
          underlying cause in CSS.
  
          - fixed <rdar://problem/3829808> Safari crashes when adding a DOM node that was removed from an XMLHTTP request result
  
          * khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::insertedIntoDocument):
          Added nil check before calling scheduleRelayout. This is new code so the nil-dereference is a recent regression.
  
  2004-12-03  Chris Blumenberg  <cblu at apple.com>
  
  	New fixes for:
  	<rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
  	<rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
  	<rdar://problem/3903173> REGRESSION (172-TOT): assertion failure and crash in slotAllData logging into hotmail account
  	<rdar://problem/3902749> REGRESSION (Tiger): missing image symbol does not appear
  
          Reviewed by darin, rjw, kocienda.
  
          * khtml/misc/loader.cpp:
          (CachedObject::~CachedObject):
          (CachedCSSStyleSheet::checkNotify):
          (Loader::servePendingRequests):
          (Loader::slotFinished):
          (Loader::slotReceivedResponse):
          (Cache::requestImage):
          (Cache::requestScript):
          * khtml/misc/loader.h:
          (khtml::CachedObject::CachedObject):
          (khtml::CachedObject::response):
          (khtml::CachedObject::allData):
          * kwq/KWQKJobClasses.h:
          * kwq/KWQKJobClasses.mm:
          (KIO::TransferJobPrivate::TransferJobPrivate):
          (KIO::TransferJobPrivate::~TransferJobPrivate):
          (KIO::TransferJob::TransferJob):
          (KIO::TransferJob::assembleResponseHeaders):
          (KIO::TransferJob::retrieveCharset):
          (KIO::TransferJob::emitResult):
          (KIO::TransferJob::emitReceivedResponse):
          * kwq/KWQLoader.h:
          * kwq/KWQLoader.mm:
          (KWQHeaderStringFromDictionary):
          (KWQCheckCacheObjectStatus):
          (KWQIsResponseURLEqualToURL):
          (KWQResponseURL):
          (KWQResponseMIMEType):
          (KWQCacheObjectExpiresTime):
          (khtml::CachedObject::setResponse):
          (khtml::CachedObject::setAllData):
          * kwq/KWQPixmap.h:
          * kwq/KWQPixmap.mm:
          (QPixmap::QPixmap):
          * kwq/KWQResourceLoader.mm:
          (-[KWQResourceLoader finishJobAndHandle:]):
          (-[KWQResourceLoader cancel]):
          (-[KWQResourceLoader reportError]):
          (-[KWQResourceLoader finishWithData:]):
          * kwq/KWQSignal.h:
          * kwq/KWQSignal.mm:
          (KWQSignal::call):
          * kwq/KWQSlot.h:
          * kwq/KWQSlot.mm:
          (KWQSlot::KWQSlot):
          (KWQSlot::call):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreResourceLoader.h:
  
  2004-12-04  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3876093> REGRESSION (166-167): Setting slider control's value from JavaScript has no effect (breaks RSS)
  
          * khtml/rendering/render_form.cpp:
          (RenderSlider::updateFromElement): Call setValue to update the value of the DOM element rather than
          modifying the m_value data member directly. We don't use m_value at all for sliders now, and in fact
          the code relies on the fact that m_value is null. Setting m_value to a non-null value was causing the bug.
          (RenderSlider::slotSliderValueChanged): Ditto.
  
  2004-12-03  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken.
          
          - fixed <rdar://problem/3889411> REGRESSION (125-172): repro crash in 
          khtml::BackgroundLayer::cullEmptyLayers
  
          * khtml/rendering/render_style.cpp:
          (BackgroundLayer::cullEmptyLayers):
          added missing nil check
  
  === Safari-173 ===
  
  2004-12-03  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          Roll out some recent changes by Chris that caused a performance regression.
          Fix is in hand, but it is a little risky this close to a submission. So,
          we have decided to roll back the change with the regression and roll in
          the new code after we submit.
  
          * khtml/css/cssproperties.c:
          (hash_prop):
          (findProp):
          * khtml/css/cssvalues.c:
          (hash_val):
          (findValue):
          * khtml/misc/htmlattrs.c:
          (hash_attr):
          (findAttr):
          * khtml/misc/htmltags.c:
          (hash_tag):
          (findTag):
          * khtml/misc/loader.cpp:
          (CachedObject::~CachedObject):
          (CachedObject::setResponse):
          (CachedCSSStyleSheet::checkNotify):
          (Loader::servePendingRequests):
          (Loader::slotFinished):
          (Loader::slotReceivedResponse):
          (Cache::requestImage):
          (Cache::requestScript):
          * khtml/misc/loader.h:
          (khtml::CachedObject::CachedObject):
          (khtml::CachedObject::response):
          * kwq/KWQKJobClasses.h:
          * kwq/KWQKJobClasses.mm:
          (KIO::TransferJobPrivate::TransferJobPrivate):
          (KIO::TransferJobPrivate::~TransferJobPrivate):
          (KIO::TransferJob::TransferJob):
          (KIO::TransferJob::assembleResponseHeaders):
          (KIO::TransferJob::retrieveCharset):
          (KIO::TransferJob::emitResult):
          (KIO::TransferJob::emitReceivedResponse):
          * kwq/KWQLoader.h:
          * kwq/KWQLoader.mm:
          (KWQHeaderStringFromDictionary):
          (KWQCheckCacheObjectStatus):
          (KWQRetainResponse):
          (KWQReleaseResponse):
          (KWQIsResponseURLEqualToURL):
          (KWQResponseURL):
          (KWQResponseMIMEType):
          (KWQResponseTextEncodingName):
          (KWQResponseHeaderString):
          (KWQCacheObjectExpiresTime):
          (KWQLoader::KWQLoader):
          * kwq/KWQPixmap.h:
          * kwq/KWQPixmap.mm:
          (QPixmap::QPixmap):
          * kwq/KWQResourceLoader.mm:
          (-[KWQResourceLoader finishJobAndHandle]):
          (-[KWQResourceLoader cancel]):
          (-[KWQResourceLoader reportError]):
          (-[KWQResourceLoader finish]):
          * kwq/KWQSignal.h:
          * kwq/KWQSignal.mm:
          (KWQSignal::call):
          * kwq/KWQSlot.h:
          * kwq/KWQSlot.mm:
          (KWQSlot::KWQSlot):
          (KWQSlot::call):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreResourceLoader.h:
  
  2004-12-03  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Chris.
          
          - fixed <rdar://problem/3903990> can't tab to all items on www.google.com any more (other pages too?)
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::nextKeyViewInFrameHierarchy):
          when checking whether we moved the focus to another view, make sure we didn't "move" it to
          our documentView, because that's no move at all.
  
  2004-12-03  Darin Adler  <darin at apple.com>
  
          Reviewed by Vicki.
  
          - fixed <rdar://problem/3901109> REGRESSION (171-172): repro crash in DOM::NodeImpl::setChanged at chick-fil-a.com
  
          * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::CSSMutableStyleDeclarationImpl):
          Added missing initialization for base class and node pointer.
  
          - fixed a few places that could leave dangling node pointers
  
          * khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::~HTMLBodyElementImpl):
          Clear out the node pointer when the node is destroyed.
          * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::~HTMLElementImpl): Ditto.
  
  2004-12-03  Chris Blumenberg  <cblu at apple.com>
  
  	Fix for performance regression. My original patch added a signal for passing the data of a resource to its WebCore cache object. This patch passes the data with the preexisting "finished" symbol so we make less calls. 
  	Fixed: <rdar://problem/3903173> REGRESSION (172-TOT): assertion failure and crash in slotAllData logging into hotmail account
  
          Reviewed by rjw.
  
          * khtml/misc/loader.cpp:
          (Loader::servePendingRequests): pass data param to slotFinished, removed allData signal
          (Loader::slotFinished): take data param
          * khtml/misc/loader.h:
          * kwq/KWQKJobClasses.h:
          * kwq/KWQKJobClasses.mm:
          (KIO::TransferJob::TransferJob): have m_result take a data param, removed m_allData
          (KIO::TransferJob::emitResult): take data param and pass it
          * kwq/KWQResourceLoader.mm:
          (-[KWQResourceLoader finishJobAndHandle:]): take data param and pass it
          (-[KWQResourceLoader cancel]): pass nil for data
          (-[KWQResourceLoader reportError]): ditto
          (-[KWQResourceLoader finishWithData:]): pass data
          * kwq/KWQSlot.mm:
          (KWQSlot::KWQSlot): pass data param to slotFinished
          (KWQSlot::call): added support for slotFinished_Loader, removed slotAllData
  
  2004-12-03  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Did some clean up in the Position class as a result of trying to write some new layout
          tests and discovering a bug along the way.
  
          I removed these three functions from the Position class:
          
          1. bool isFirstRenderedPositionOnLine() const;
          2. bool isLastRenderedPositionOnLine() const;
          3. static bool renderersOnDifferentLine(RenderObject *r1, long o1, RenderObject *r2, long o2);
          4. bool inFirstEditableInRootEditableElement() const;
  
          The first two have replacements in the VisiblePosition class, and some code has been
          moved to use these new variants. The third function was a helper used only by these
          first two function, and can be removed as well. The fourth function was not used by anyone.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertTextCommand::input): Change over to use VisiblePosition isFirstVisiblePositionOnLine().
          * khtml/editing/visible_position.cpp:
          (khtml::visiblePositionsOnDifferentLines): Added an additional check for blocks to this function.
          Incorrect results were being returned when asking about positions at the starts of blocks.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousCharacterPosition): Change over to use VisiblePosition isFirstVisiblePositionOnLine().
          (DOM::Position::nextCharacterPosition): Change over to use VisiblePosition isLastVisiblePositionOnLine().
          (DOM::Position::rendersInDifferentPosition): Removed use of #3 helper in a log message. We can live without it.
          * khtml/xml/dom_position.h: Update header for deletions.
  
  2004-12-03  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Terminology change in execCommand command identifiers. Specifically, the name of 
          "InsertNewline" command has been changed to "InsertLineBreak". This matches the 
          terminology used by AppKit. It is also more accurate, since the insertion of a
          "br" element is what the command does. The inspiration for this change is so the 
          -insertNewline AppKit method can be mapped to insert a new "div" element in 
          a document and avoid ambiguity with what the javascript editing command does.
          
          * khtml/editing/jsediting.cpp
          * layout-tests/editing/deleting/delete-tab-004.html
          * layout-tests/editing/editing.js
          * layout-tests/editing/inserting/insert-3654864-fix.html
          * layout-tests/editing/inserting/insert-3659587-fix.html
          * layout-tests/editing/inserting/insert-3775316-fix.html
          * layout-tests/editing/inserting/insert-3800346-fix.html
          * layout-tests/editing/inserting/insert-br-001.html
          * layout-tests/editing/inserting/insert-br-002.html
          * layout-tests/editing/inserting/insert-br-003.html
          * layout-tests/editing/inserting/insert-br-004.html
          * layout-tests/editing/inserting/insert-br-005.html
          * layout-tests/editing/inserting/insert-br-006.html
          * layout-tests/editing/inserting/insert-br-007.html
          * layout-tests/editing/inserting/insert-br-008.html
          * layout-tests/editing/inserting/insert-tab-004.html
          * layout-tests/editing/inserting/insert-text-with-newlines.html
          * layout-tests/editing/pasteboard/paste-text-010.html
  
  2004-12-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3786362> REGRESSION (Mail): pasted text loses one newline
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertLineBreakCommand::doApply): Added check for strict mode before adding an extra br element
          at the end of a block. This is only necessary in quirks mode. Also, lower-case "br" used to make element.
          (khtml::ReplaceSelectionCommand::doApply): If the replacement adds a br element as the last element
          in a block and the document is in quirks mode, add an additional br to make the one in the 
          replacement content show up. This turns out to be much the same logic as is done in InsertLineBreakCommand.
          * layout-tests/editing/inserting/insert-3786362-fix-expected.txt: Added.
          * layout-tests/editing/inserting/insert-3786362-fix.html: Added.
  
  2004-12-02  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3841332> REGRESSION (125.9-167u): repro crash in -[KWQPageState invalidate] involving .Mac images
  
  	Ensure that the document is cleared when leaving a non-HTML page.  This ensures that
  	the b/f cache won't incorrectly trash the previous state when restoring.
  
          Reviewed by John.
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge openURL:reload:contentType:refresh:lastModified:pageCache:]):
          (-[WebCoreBridge canCachePage]):
          (-[WebCoreBridge clear]):
  
  2004-12-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Richard
  
          Fix for this bug:
          
          <rdar://problem/3857775> 8A293: Mail.app crashes converting copy-pasted text into plain text
  
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::commonAncestorContainer): Return the document element if no common ancestor container
          was found. This can happen in cases where the DOM was built from malformed markup (as in the case
          of this bug where there is content after the body tag). Did a little code clean up as well.
          (DOM::RangeImpl::compareBoundaryPoints): Made code more robust by adding some null checks.
  
  2004-12-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          Fix for this bug:
          
          <rdar://problem/3668157> REGRESSION (Mail): shift-click deselects when selection was created right-to-left
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::handleMousePressEventSingleClick): Use RangeImpl::compareBoundaryPoints
          to figure out which end of the selection to extend.
  
  2004-12-02  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken Kocienda.
  
  		<rdar://problem/3834917> REGRESSION (Mail): double-clicking blank line selects end of previous line
  		Fixed originally reported bug plus the case of double-clicking whitespace at the beginning of a line, which has a similar result.
  
          * khtml/editing/visible_text.cpp:
          (khtml::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
          (khtml::SimplifiedBackwardsTextIterator::handleTextNode):
          (khtml::SimplifiedBackwardsTextIterator::handleReplacedElement):
          (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode):
          (khtml::SimplifiedBackwardsTextIterator::emitCharacter):
          Distinguish BR from whitespace.
          * khtml/editing/visible_text.h:
          Distinguish BR from whitespace.
          * khtml/editing/visible_units.cpp:
          (khtml::previousWordBoundary):
          Use UPSTREAM visible position now that SimplifiedBackwardsTextIterator distinguishes BR from whitespace.  Otherwise, double-clicking at end of line would result in caret selection at start of next line. 
  
  2004-12-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3900996> Crash dragging past end of contentEditable DIV, at DOM::RangeImpl::pastEndNode() const + 24
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::equivalentRangeCompliantPosition): Fixed this function so that it constrains the offset
          of the position to be >= 0 and <= number of kids of its node. Not doing this constraining led to a DOM
          exception trying to use a Position returned from this function to set the boundary point of a Range (which
          eventually led to the crash). Since this crash happened, it seems like this function was failing in its
          contract to return a range-compliant position, hence the need for this fix.
  
  2004-12-01  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          Moving code only.
  
          * khtml/editing/htmlediting.cpp: Move ReplaceSelectionCommand into alphabetical order with
          regard to other editing commands. The class had a name change ages ago, and it was never
          moved.
          * khtml/editing/htmlediting.h: Ditto.
  
  2004-12-01  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Some improvements for paste, including some new code to annotate
          whitespace when writing to the pasteboard to ensure that the meaning
          of the markup on the pasteboard is unambiguous.
          
          There is also new code for reading this annotated markup from the pasteboard,
          removing the nodes that were added only to prevent ambiguity.
  
          * WebCore.pbproj/project.pbxproj: Added html_interchange.h and html_interchange.cpp files.
          The header should have been added earlier, but I did not do so.
          * khtml/editing/html_interchange.cpp: Added.
          (convertHTMLTextToInterchangeFormat):
          * khtml/editing/html_interchange.h: Added some new constants for use with whitespace annotations.
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplacementFragment::ReplacementFragment): Now looks for and removes annotations added for whitespace.
          Also fixed a bug in the code that counts blocks in a fragment.
          (khtml::ReplacementFragment::isInterchangeConvertedSpaceSpan): New helper. Recognizes annotation spans.
          (khtml::ReplacementFragment::insertNodeBefore): New helper.
          (khtml::ReplaceSelectionCommand::doApply): Fixed a bug in the code that sets the start position
          for the replacement after deleting. This was causing a bug when pasting at the end of a block.
          * khtml/editing/htmlediting.h: Add some new declarations.
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::toHTML): Calls to startMarkup now pass true for the new annotate flag.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::stringValueForRange): New helper.
          (NodeImpl::renderedText): New helper to return only the rendered text in a node.
          (NodeImpl::startMarkup): Now takes an additional flag to control whether interchange annotations
          should be added. Called by the paste code.
          * khtml/xml/dom_nodeimpl.h: Added and modified function declarations.
  
          New test to check the khtml::ReplaceSelectionCommand::doApply fix.
          * layout-tests/editing/pasteboard/paste-text-010-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-010.html: Added.
  
  2004-11-30  Chris Blumenberg  <cblu at apple.com>
  
          * ChangeLog: removed conflict marker
  
  2004-11-30  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed:
  	<rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
  	<rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
  
          Reviewed by darin.
  
          * khtml/misc/loader.cpp:
          (CachedObject::~CachedObject): release m_allData
          (CachedObject::setAllData): new
          (Loader::servePendingRequests): connect slotAllData
          (Loader::slotAllData): new
          (Cache::requestImage): tweak
          * khtml/misc/loader.h:
          (khtml::CachedObject::CachedObject): set allData to 0
          (khtml::CachedObject::allData): new
          * kwq/KWQKJobClasses.h:
          * kwq/KWQKJobClasses.mm:
          (KIO::TransferJob::TransferJob): set m_allData
          (KIO::TransferJob::emitAllData): new
          * kwq/KWQLoader.mm:
          (KWQCheckCacheObjectStatus): pass WebKit the data instead of the length of the resource
          * kwq/KWQResourceLoader.mm:
          (-[KWQResourceLoader finishWithData:]): renamed to pass all data for the resource
          * kwq/KWQSlot.mm:
          (KWQSlot::KWQSlot): support for slotAllData
          (KWQSlot::call):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreResourceLoader.h:
  
  2004-11-30  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  2004-11-30  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3805311> REGRESSION (159-163): onload in dynamically written document not called (causes blank search page at Japanese EPP site, many others)
  
          * khtml/khtml_part.cpp:
  	(KHTMLPart::begin): call setParsing on document here after opening
  	- from now on we'll only set parsing to true for a document open
  	caused by page loading, not a programmatic one.
  	* khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::open): don't setParsing to true here any more.
  
  2004-11-30  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fix recent regression from collection perf fixes.
  	
          * khtml/html/html_miscimpl.cpp:
          (HTMLFormCollectionImpl::updateNameCache): Look up the name
  	attribute in the name cache, not the id cache (d'oh!)
  
  2004-11-30  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - rolled in a KDE fix for a problem that may underlie a number of crashes
  
          * khtml/xml/dom2_rangeimpl.cpp: (RangeImpl::compareBoundaryPoints): Rolled in a change from
          the KDE guys to fix a subtle problem. Code said "n = n =".
  
          - rolled in a KDE fix for a containingBlock crash
  
          * khtml/rendering/render_object.cpp: Roll in a change from KDE that adds frameset to the list of
          elements that can not be a containingBlock. They said this fixes a crash, although I did not look
          into that further.
  
          - fixed <rdar://problem/3884660> 8A305: Repro crash in QScrollBar::setValue (affects Safari RSS)
  
          * kwq/KWQButton.mm:
          (-[KWQButton initWithQButton:]): Set up target and action here instead of in caller.
          (-[KWQButton detachQButton]): Added.
          (-[KWQButton sendConsumedMouseUpIfNeeded]): Check button for nil instead of checking target.
          (-[KWQButton mouseDown:]): Add calls to QWidget::beforeMouseDown/afterMouseDown.
          (-[KWQButton widget]): Added.
          (-[KWQButton becomeFirstResponder]): Added check to handle when button is 0.
          (-[KWQButton resignFirstResponder]): Ditto.
          (-[KWQButton canBecomeKeyView]): Ditto.
          (QButton::QButton): Remove target and action setup; handled in KWQButton now.
          (QButton::~QButton): Call detachQButton instead of setTarget:nil.
  
          * kwq/KWQComboBox.mm:
          (QComboBox::~QComboBox): Call detachQComboBox.
          (-[KWQPopUpButtonCell detachQComboBox]): Added.
          (-[KWQPopUpButtonCell trackMouse:inRect:ofView:untilMouseUp:]): Handle case where box is 0.
          (-[KWQPopUpButtonCell setHighlighted:]): Ditto.
          (-[KWQPopUpButton action:]): Ditto.
          (-[KWQPopUpButton widget]): Tweaked.
          (-[KWQPopUpButton mouseDown:]): Added. Calls QWidget::beforeMouseDown/afterMouseDown.
          (-[KWQPopUpButton becomeFirstResponder]): Handle case where widget is 0.
          (-[KWQPopUpButton resignFirstResponder]): Ditto.
          (-[KWQPopUpButton canBecomeKeyView]): Ditto.
  
          * kwq/KWQLineEdit.mm: (QLineEdit::~QLineEdit): Updated to use new detachQLineEdit name.
  
          * kwq/KWQListBox.mm:
          (-[KWQTableView mouseDown:]): Added. Calls QWidget::beforeMouseDown/afterMouseDown.
  
          * kwq/KWQScrollBar.h: Removed m_scroller field.
          * kwq/KWQScrollBar.mm:
          (-[KWQScrollBar initWithQScrollBar:]): Rearranged a little bit.
          (-[KWQScrollBar detachQScrollBar]): Added.
          (-[KWQScrollBar widget]): Added.
          (-[KWQScrollBar mouseDown:]): Added.  Calls QWidget::beforeMouseDown and afterMouseDown.
          (QScrollBar::QScrollBar): Changed to no longer set m_scroller.
          (QScrollBar::~QScrollBar): Changed to call detachQScrollBar. No longer calls removeFromSuperview.
          (QScrollBar::setValue): Chagned to use getView instad of m_scrollBar.
          (QScrollBar::setKnobProportion): Ditto.
          (QScrollBar::scrollbarHit): Ditto.
  
          * kwq/KWQScrollView.mm:
          (QScrollView::addChild): Changed to call QWidget to add to superview to accomodate the
          hack where we don't remove right away when doing mouse tracking.
          (QScrollView::removeChild): Changed to call QWidget to remove from superview to accomodate
          the hack where we don't add right away when doing mouse tracking.
  
          * kwq/KWQSlider.h: Added destructor.
          * kwq/KWQSlider.mm:
          (-[KWQSlider initWithQSlider:]): Tweaked a little.
          (-[KWQSlider detachQSlider]): Added.
          (-[KWQSlider mouseDown:]): Added call to QWidget::beforeMouseDown/afterMouseDown.
          (-[KWQSlider widget]): Added.
          (QSlider::~QSlider): Added. Calls detachQSlider.
  
          * kwq/KWQTextArea.h: Added detachQTextEdit method.
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea detachQTextEdit]): Added.
          (-[KWQTextArea textDidChange:]): Added check for widget of 0.
          (-[KWQTextArea becomeFirstResponder]): Ditto.
          (-[KWQTextArea nextKeyView]): Ditto.
          (-[KWQTextArea previousKeyView]): Ditto.
          (-[KWQTextArea drawRect:]): Ditto.
          (-[KWQTextAreaTextView insertTab:]): Ditto.
          (-[KWQTextAreaTextView insertBacktab:]): Ditto.
          (-[KWQTextAreaTextView shouldDrawInsertionPoint]): Ditto.
          (-[KWQTextAreaTextView selectedTextAttributes]): Ditto.
          (-[KWQTextAreaTextView mouseDown:]): Ditto.
          (-[KWQTextAreaTextView keyDown:]): Ditto.
          (-[KWQTextAreaTextView keyUp:]): Ditto.
  
          * kwq/KWQTextEdit.h: Added ~QTextEdit.
          * kwq/KWQTextEdit.mm: (QTextEdit::~QTextEdit): Added. Calls detachQTextEdit.
  
          * kwq/KWQTextField.h: Changed invalidate to detachQLineEdit.
          * kwq/KWQTextField.mm: (-[KWQTextFieldController detachQLineEdit]): Changed.
  
          * kwq/KWQWidget.h: Added addToSuperview/removeFromSuperview for use from QScrollView.
          Added beforeMouseDown and afterMouseDown for use in widget implementations.
          Removed unused hasMouseTracking function.
          * kwq/KWQWidget.mm:
          (QWidget::QWidget): Initialize two new fields.
          (QWidget::~QWidget): Added code to remove view when widget is destroyed.
          (QWidget::getOuterView): Remove unneeded exception blocking since we're just caling superview.
          (QWidget::addToSuperview): Added.
          (QWidget::removeFromSuperview): Added.
          (QWidget::beforeMouseDown): Added.
          (QWidget::afterMouseDown): Added.
  
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::setHasHorizontalScrollbar): Remove parent parameter; let addChild call addSubview:.
          (RenderLayer::setHasVerticalScrollbar): Ditto.
  
  2004-11-30  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3863031> REGRESSION (Mail): caret continues flashing while mouse is down
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::timerEvent): Add a check for whether the mouse is down. Keep the caret drawn
          with no blink if it is.
  
  2004-11-30  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3861602> cursor gets lost trying to backspace to delete a form control
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::setFocusNodeIfNeeded): This function would clear the selection if a <button>
          or <input type=image> was checked for focus since these elements are keyboard-focusable,
          but not mouse focusable. Also, this function did not work hard enough to set the focused
          node, and was content to clear it if the first element checked failed the test, rather
          than looking more at parents. This would have the effect of clearing, then resetting the
          focus on a DIV containing a button or image with content on either side of it in the
          process of arrowing over such content.
  
  2004-11-30  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): Fix smart replace, which I (knowingly) broke with yesterday's checkin.
          Also, call updateLayout() in one more place to prevent stale information being returned from caretMaxOffset().
          * khtml/khtml_part.cpp:
          (KHTMLPart::isCharacterSmartReplaceExempt): Make this virtual and always return true. This gets rid of an
          ugly APPLE_CHANGES block and use of KWQ(part) in ReplaceSelectionCommand.
          * khtml/khtml_part.h: To help out with the isCharacterSmartReplaceExempt cleanup, add declaration.
          * kwq/KWQKHTMLPart.h: To help out with the isCharacterSmartReplaceExempt cleanup, make 
          isCharacterSmartReplaceExempt virtual.
  
  2004-11-30  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplacementFragment::mergeEndNode): Fixed one-line coding mistake that created an endless loop.
          Seemed simple enough to land without review.
  
  2004-11-29  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
      
          Rewrite of paste code (specifically the ReplaceSelectionCommand class). Many more cases
          are handled correctly now, including selections that span multiple blocks, and cases
          where content on the pasteboard ends in newlines (or what appear to be newlines to a
          user, really block ends or BRs). I also made one small, but important change in the 
          copy code to annotate the markup written to the pasteboard to support these selections 
          ending in newlines.
  
          New header that defines a couple of constants used in copying and pasting.
  
          * ForwardingHeaders/editing/html_interchange.h: Added.
          * khtml/editing/html_interchange.h: Added.
          
          Rewrite of the ReplaceSelectionCommand. There are several new helper functions, as well
          as a new helper class, ReplacementFragment, which encapsulates information and functions
          pertaining to a document fragment that is being inserted into a document.
          
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplacementFragment::ReplacementFragment):
          (khtml::ReplacementFragment::~ReplacementFragment):
          (khtml::ReplacementFragment::firstChild): Simple accessor.
          (khtml::ReplacementFragment::lastChild): Ditto.
          (khtml::ReplacementFragment::mergeStartNode): Looks at the nodes in a fragment and determines
          the starting node to use for merging into the block containing the start of the selection.
          (khtml::ReplacementFragment::mergeEndNode): Same as above, but for the end of the selection.
          (khtml::ReplacementFragment::pruneEmptyNodes): Simple helper.
          (khtml::ReplacementFragment::isInterchangeNewlineComment): Determines if a node is the
          special annotation comment added in by the copy code.
          (khtml::ReplacementFragment::removeNode): Simple helper.
          (khtml::isComment): Simple helper.
          (khtml::isProbablyBlock): Determines if a node is of a type that is usually rendered as a block.
          I would like to do better than this some day, but this check will hold us until I can do better.
          (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand):
          (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand):
          (khtml::ReplaceSelectionCommand::doApply):
          (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Figures out the right ending selection.
          * khtml/editing/htmlediting.h: Declarations for the new ReplacementFragment class.
          (khtml::ReplacementFragment::root):
          (khtml::ReplacementFragment::type):
          (khtml::ReplacementFragment::isEmpty):
          (khtml::ReplacementFragment::isSingleTextNode):
          (khtml::ReplacementFragment::isTreeFragment):
          (khtml::ReplacementFragment::hasMoreThanOneBlock):
          (khtml::ReplacementFragment::hasLogicalNewlineAtEnd):
          
          This smaller set of changes markup generation to add the newline annotation described in the
          comment at the start of this entry.
          
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::addCommentToHTMLMarkup): Simple helper.
          (DOM::RangeImpl::toHTML): Added new EAnnotateForInterchange default argument to control whether
          comment annotations are added to the markup generated.
          * khtml/xml/dom2_rangeimpl.h: Add some new declarations.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge markupStringFromRange:nodes:]): Request that markup resulting from call to 
          DOM::RangeImpl::toHTML uses annotations when generating.
          
          New tests.        
  
          * layout-tests/editing/pasteboard/paste-text-001-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-001.html: Added.
          * layout-tests/editing/pasteboard/paste-text-002-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-002.html: Added.
          * layout-tests/editing/pasteboard/paste-text-003-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-003.html: Added.
          * layout-tests/editing/pasteboard/paste-text-004-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-004.html: Added.
          * layout-tests/editing/pasteboard/paste-text-005-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-005.html: Added.
          * layout-tests/editing/pasteboard/paste-text-006-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-006.html: Added.
          * layout-tests/editing/pasteboard/paste-text-007-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-007.html: Added.
          * layout-tests/editing/pasteboard/paste-text-008-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-008.html: Added.
          * layout-tests/editing/pasteboard/paste-text-009-expected.txt: Added.
          * layout-tests/editing/pasteboard/paste-text-009.html: Added.
  
  2004-11-29  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Made two small changes that make it possible for comments to have DOM nodes made for them
          when pasting. This relies on some earlier work I did some days ago.
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::startMarkup): Get the string from the comment.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge documentFragmentWithMarkupString:baseURLString:]): Did some very minor
          rearranging. Now passes a flag when creating a contextual fragment, requesting that comments
          be included in the DOM.
  
  2004-11-29  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Added some new helpers to the VisiblePosition class. I will begin to use these when I check in
          my improved paste code.
  
          * khtml/editing/visible_position.cpp:
          (khtml::blockRelationship)
          (khtml::visiblePositionsInDifferentBlocks)
          (khtml::isFirstVisiblePositionInBlock)
          (khtml::isFirstVisiblePositionInNode)
          (khtml::isLastVisiblePositionInBlock)
          * khtml/editing/visible_position.h
  
  2004-11-29  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::downstream): Fix a bug in downstream that prevented a call with DoNotStayInBlock
          specified from obeying that directive. The old code would stop at an outer block boundary in
          the case where that block had a block as its first child. The correct behavior is to drill into
          that inner block (and continue on drilling down, if possible), to find the correct position.
  
  2004-11-29  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Small improvements to the node-display debugging helpers.
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::displayTree): Make the rootNode be this if there is no rootEditableElement.
          * khtml/xml/dom_nodeimpl.h: Make displayNode take a default argument of "" for its string.
  
  2004-11-29  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::handleGeneralDelete): The downstream position in this function 
          may need to be adjusted when deleting text off the front part of a text node. This fixes a problem 
          I discovered while improving the paste command, where the insertion poitn wound up in the wrong
          place after the delete. 
  
  2004-11-29  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Add a new helper function to insert a paragraph separator. Will be used in my
          upcoming paste improvments.
  
          * khtml/editing/htmlediting.cpp: Added function
          (khtml::CompositeEditCommand::insertParagraphSeparator)
          * khtml/editing/htmlediting.h: Ditto.
  
  2004-11-23  David Harrison  <harrison at apple.com>
  
          Added various comments.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::StyleChange::init):
          (khtml::ApplyStyleCommand::doApply):
          (khtml::ApplyStyleCommand::applyBlockStyle):
          (khtml::ApplyStyleCommand::applyInlineStyle):
  
  2004-11-23  David Hyatt  <hyatt at apple.com>
  
  	Hit testing in table cells with top/bottom space from vertical alignment didn't work.  I forgot about the
  	super-secret yPos() lie that table cells do.  Use m_y instead of yPos().
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::nodeAtPoint):
  
  2004-11-22  David Hyatt  <hyatt at apple.com>
  
  	Make sure you can use document.createElement to make a <canvas> element.
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createHTMLElement):
  
  2004-11-22  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	<rdar://problem/3492044> performing JavaScript operations on form elements is slower than WinIE (HTMLFormCollection)
  	<rdar://problem/3489679> selecting an item on the Apache bugzilla query page is very slow (HTMLFormCollection)
  	<rdar://problem/3477810> checking 80 check boxes with JavaScript is 10x slower than in IE (HTMLFormCollection)
  	<rdar://problem/3760962> JavaScript that toggles checkboxes is slow (HTMLCollection,HTMLFormCollection)
          
  	* khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::tryGet):
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::HTMLFormElementImpl):
          (DOM::HTMLFormElementImpl::~HTMLFormElementImpl):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::HTMLCollectionImpl):
          (HTMLCollectionImpl::~HTMLCollectionImpl):
          (HTMLCollectionImpl::CollectionInfo::CollectionInfo):
          (HTMLCollectionImpl::CollectionInfo::reset):
          (HTMLCollectionImpl::resetCollectionInfo):
          (HTMLCollectionImpl::checkForNameMatch):
          (appendToVector):
          (HTMLCollectionImpl::updateNameCache):
          (HTMLCollectionImpl::namedItems):
          (HTMLFormCollectionImpl::HTMLFormCollectionImpl):
          (HTMLFormCollectionImpl::~HTMLFormCollectionImpl):
          (HTMLFormCollectionImpl::item):
          (HTMLFormCollectionImpl::updateNameCache):
          * khtml/html/html_miscimpl.h:
  
  2004-11-22  David Hyatt  <hyatt at apple.com>
  
  	Improve the WebCore cache so that the maximum cacheable object size is scaled based off the total cache
  	size.
  	
          Reviewed by mjs
  
          * khtml/misc/loader.cpp:
          (CachedObject::finish):
          (Cache::flush):
          (Cache::setSize):
          * khtml/misc/loader.h:
          (khtml::Cache::maxCacheableObjectSize):
  
  2004-11-22  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3673381, huge directory listing so slow it seems like a hang.  Rework painting and hit testing so that
  	it crawls the line box tree instead of the render tree.  This allows more precise intersection/containment testing
  	that lets us short circuit earlier when painting and hit testing.
  	
          Reviewed by mjs
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::isPointInsideSelection):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paint):
          (khtml::RenderBlock::paintChildren):
          (khtml::RenderBlock::paintObject):
          (khtml::RenderBlock::paintFloats):
          (khtml::RenderBlock::nodeAtPoint):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_box.cpp:
          (RenderBox::nodeAtPoint):
          * khtml/rendering/render_box.h:
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::paint):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::paintLines):
          (RenderFlow::hitTestLines):
          (RenderFlow::caretRect):
          (RenderFlow::addFocusRingRects):
          (RenderFlow::paintFocusRing):
          (RenderFlow::paintOutlines):
          (RenderFlow::paintOutlineForLine):
          * khtml/rendering/render_flow.h:
          * khtml/rendering/render_frames.cpp:
          (RenderFrameSet::nodeAtPoint):
          * khtml/rendering/render_frames.h:
          * khtml/rendering/render_image.cpp:
          (RenderImage::nodeAtPoint):
          * khtml/rendering/render_image.h:
          * khtml/rendering/render_inline.cpp:
          (RenderInline::paint):
          (RenderInline::nodeAtPoint):
          * khtml/rendering/render_inline.h:
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::paintLayer):
          (RenderLayer::hitTest):
          (RenderLayer::hitTestLayer):
          * khtml/rendering/render_layer.h:
          * khtml/rendering/render_line.cpp:
          (khtml::InlineBox::paint):
          (khtml::InlineBox::nodeAtPoint):
          (khtml::InlineFlowBox::flowObject):
          (khtml::InlineFlowBox::nodeAtPoint):
          (khtml::InlineFlowBox::paint):
          (khtml::InlineFlowBox::paintBackgrounds):
          (khtml::InlineFlowBox::paintBackground):
          (khtml::InlineFlowBox::paintBackgroundAndBorder):
          (khtml::InlineFlowBox::paintDecorations):
          (khtml::EllipsisBox::paint):
          (khtml::EllipsisBox::nodeAtPoint):
          (khtml::RootInlineBox::paintEllipsisBox):
          (khtml::RootInlineBox::paint):
          (khtml::RootInlineBox::nodeAtPoint):
          * khtml/rendering/render_line.h:
          (khtml::InlineRunBox::paintBackgroundAndBorder):
          * khtml/rendering/render_object.cpp:
          (RenderObject::hitTest):
          (RenderObject::setInnerNode):
          (RenderObject::nodeAtPoint):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::PaintInfo::PaintInfo):
          (khtml::RenderObject::PaintInfo::~PaintInfo):
          (khtml::RenderObject::paintingRootForChildren):
          (khtml::RenderObject::shouldPaintWithinRoot):
          * khtml/rendering/render_table.cpp:
          (RenderTable::layout):
          (RenderTable::paint):
          * khtml/rendering/render_text.cpp:
          (simpleDifferenceBetweenColors):
          (correctedTextColor):
          (InlineTextBox::nodeAtPoint):
          (InlineTextBox::paint):
          (InlineTextBox::selectionStartEnd):
          (InlineTextBox::paintSelection):
          (InlineTextBox::paintMarkedTextBackground):
          (InlineTextBox::paintDecoration):
          (RenderText::posOfChar):
          * khtml/rendering/render_text.h:
          (khtml::RenderText::paint):
          (khtml::RenderText::layout):
          (khtml::RenderText::nodeAtPoint):
          * khtml/xml/dom2_eventsimpl.cpp:
          (MouseEventImpl::computeLayerPos):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::prepareMouseEvent):
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityHitTest:]):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::scrollOverflowWithScrollWheelEvent):
          (KWQKHTMLPart::eventMayStartDrag):
          (KWQKHTMLPart::khtmlMouseMoveEvent):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge elementAtPoint:]):
          (-[WebCoreBridge _positionForPoint:]):
  
  2004-11-22  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	<rdar://problem/3890961> selecting an item on the Apache bugzilla query page can be sped up 10% (HTMLFormCollection)
  	<rdar://problem/3890958> JavaScript that toggles checkboxes can be improved 73% (HTMLCollection,HTMLFormCollection)
  
  	This avoids the O(N^2) penalty for named item traversal for form collections.
  
  	It also combines the item traversal logic for all non-form
  	collection operations into a single traverseNextItem
  	function. This avoids having 5 copies of the big switch statement
  	for this.
  
  	Also fixed a bug that prevented the last form element from being removed properly.
          
          * khtml/html/html_formimpl.cpp:
          (DOM::removeFromVector):
  	* khtml/dom/html_misc.cpp:
          (HTMLCollection::namedItems):
          * khtml/dom/html_misc.h:
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLCollection::getNamedItems):
          * khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::traverseNextItem):
          (HTMLCollectionImpl::calcLength):
          (HTMLCollectionImpl::length):
          (HTMLCollectionImpl::item):
          (HTMLCollectionImpl::nextItem):
          (HTMLCollectionImpl::checkForNameMatch):
          (HTMLCollectionImpl::namedItem):
          (HTMLCollectionImpl::namedItems):
          (HTMLCollectionImpl::nextNamedItem):
          (HTMLFormCollectionImpl::calcLength):
          (HTMLFormCollectionImpl::namedItem):
          (HTMLFormCollectionImpl::nextNamedItem):
          (HTMLFormCollectionImpl::namedItems):
          * khtml/html/html_miscimpl.h:
  
  2004-11-22  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Change around the way we block the Javascript "Paste" command identifier from
          being available. Formerly, this was done with an ifdef we never compiled in.
          Now, this is done with a couple of cheap runtime checks. The advantage is that
          we can now compile this command into development builds, and still yet switch
          on the command in deployment builds through the use of WebCore SPI so we can
          write and run layout tests with all of our builds.
  
          * khtml/editing/jsediting.cpp:
          (DOM::JSEditor::queryCommandSupported): Checks state of paste command in case
          command being queried is the paste command. 
          (DOM::JSEditor::setSupportsPasteCommand): New SPI to turn on paste command.
          * khtml/editing/jsediting.h: Ditto.
          * khtml/khtml_part.cpp:
          (KHTMLPart::pasteFromPasteboard): Added.
          (KHTMLPart::canPaste): Added.
          * kwq/KWQKHTMLPart.mm:
          (KHTMLPart::canPaste): Added.
          * kwq/KWQRenderTreeDebug.cpp:
          (externalRepresentation): Turn on paste command.
          * kwq/WebCoreBridge.h: Add canPaste call so WebKit can fill in the answer.
  
  2004-11-21  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Richard.
  
  	<rdar://problem/3889655> HTMLCollectionImpl should use traverseNextNode to improve speed and save recursion
          
  	* khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::calcLength):
          (HTMLCollectionImpl::getItem):
          (HTMLCollectionImpl::item):
          (HTMLCollectionImpl::nextItem):
          (HTMLCollectionImpl::getNamedItem):
          (HTMLCollectionImpl::namedItem):
          (HTMLCollectionImpl::nextNamedItemInternal):
          (HTMLFormCollectionImpl::nextNamedItemInternal):
  
  2004-11-19  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3482935> JavaScript so slow it seems like a hang (hrweb.apple.com) (HTMLCollection?)
  	<rdar://problem/3759149> PeopleSoft page in Safari twice as slow as Mozilla engine (HTMLFormCollection)
  	<rdar://problem/3888368> selecting an item on the Apache bugzilla query page can be improved 95% (HTMLFormCollection)
  
  	Many optimizations to HTMLFormCollection. Iterating it should not
  	be N^2 any more, though finding items by name could still be.
  	
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::~HTMLFormElementImpl):
          (DOM::HTMLFormElementImpl::length):
          (DOM::HTMLFormElementImpl::submitClick):
          (DOM::HTMLFormElementImpl::formData):
          (DOM::HTMLFormElementImpl::submit):
          (DOM::HTMLFormElementImpl::reset):
          (DOM::HTMLFormElementImpl::radioClicked):
          (DOM::appendToVector):
          (DOM::removeFromVector):
          (DOM::HTMLFormElementImpl::registerFormElement):
          (DOM::HTMLFormElementImpl::removeFormElement):
          (DOM::HTMLFormElementImpl::makeFormElementDormant):
          (DOM::HTMLFormElementImpl::registerImgElement):
          (DOM::HTMLFormElementImpl::removeImgElement):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_miscimpl.cpp:
          (HTMLFormCollectionImpl::FormCollectionInfo::FormCollectionInfo):
          (void::HTMLFormCollectionImpl::FormCollectionInfo::reset):
          (HTMLFormCollectionImpl::resetCollectionInfo):
          (HTMLFormCollectionImpl::calcLength):
          (HTMLFormCollectionImpl::item):
          (HTMLFormCollectionImpl::getNamedItem):
          (HTMLFormCollectionImpl::getNamedFormItem):
          (HTMLFormCollectionImpl::firstItem):
          (HTMLFormCollectionImpl::nextItem):
          * khtml/html/html_miscimpl.h:
          (DOM::HTMLFormCollectionImpl::~HTMLFormCollectionImpl):
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::setAttribute):
          (ElementImpl::setAttributeMap):
          * kwq/KWQPtrVector.h:
          (QPtrVector::findRef):
          * kwq/KWQVectorImpl.h:
          * kwq/KWQVectorImpl.mm:
          (KWQVectorImpl::findRef):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge elementWithName:inForm:]):
          (-[WebCoreBridge controlsInForm:]):
  
  2004-11-19  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken and Darin.
  
          <rdar://problem/3856215> Cannot remove bold from the beginning of a message
  
          Problem is that KHTMLPart::computeAndSetTypingStyle always looked upstream
          for the existing style, but in this case (hitting cmd-B with caret at top of
          file) there is nothing upstream.  Changed this to use the VisiblePosition
          deepEquivalent instead.
          
          * khtml/khtml_part.cpp:
          (KHTMLPart::computeAndSetTypingStyle):
  
  === Safari-172 ===
  
  2004-11-19  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3864151> REGRESSION (125-167): Chrysler.com never stops loading
  	
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::close): Don't fire the onload handler if there is a
  	redirect pending. This is a very long-standing bug that was masked
  	by our previously incorrect redirect logic. It used to be that an
  	older redirect would always win. Recently we changed things so
  	that a newer redirect would win, but a script that causes a
  	redirect would stop parsing once complete (so if there are two
  	redirects in the same script, the latter wins). However, we should
  	have also prevented onload in this case. Testing with other
  	browsers shows that onload handlers do not run at all when there
  	is a pending redirect.
  
  2004-11-19  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Fix some object lifetime issues in these two commands. This fixes some crashes
          I am seeing in some new code I am working on, but have not yet reproduced otherwise.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertParagraphSeparatorCommand::~InsertParagraphSeparatorCommand): No longer deref nodes
          in the ancestor list. They are not ref'ed when put on list. D'uh.
          (khtml::InsertParagraphSeparatorCommand::doApply): Ref all cloned nodes that are created by the command
          before putting them on the cloned nodes list. This are still deref'ed in the destructor.
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::~InsertParagraphSeparatorInQuotedContentCommand): Ditto
          destructor comment.
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Ditto doApply comment.
  
  2004-11-19  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Fix for this bug:
          
          <rdar://problem/3655241> setTypingStyle: does not set the real typing style, and typingStyle does not return it
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::computeAndSetTypingStyle): New helper that does the work of reducing a passed-in style
          declaration given the current selection, and then sets the minimum necessary style as the typing
          style on the part.
          (KHTMLPart::applyStyle): Call new computeAndSetTypingStyle. The guts of computeAndSetTypingStyle used
          to be here in the selection-as-caret case. But now [WebCoreBridge setTypingStyle:] needs this code
          as well.
          * khtml/khtml_part.h: Declare new computeAndSetTypingStyle() function.
          * kwq/WebCoreBridge.h: Declare new typingStyle and setTypingStyle: methods.
          * kwq/WebCoreBridge.mm: 
          (-[WebCoreBridge typingStyle]): Calls through to the part to retrieve the typing style.
          (-[WebCoreBridge setTypingStyle:]): Calls through to the part to set the typing style.
  
  2004-11-18  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
          
          Back out part of Darin's fix for <rdar://problem/3885729>, because the new exception gets triggered
          by Mail.app. Filed <rdar://problem/3886832> against Mail.app.
  
          * kwq/DOM-CSS.mm:
          (-[DOMCSSStyleDeclaration setProperty:::]):
  
  2004-11-18  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3587481> Bug Reporter Login Page: Password AutoFill does not work reliably
  
          Reviewed by john.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::currentForm): just return the current form, don't scan the entire document looking for a form if there is no current form
  
  2004-11-18  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Chris.
  
  	- fix recursive item traversal, use traverseNextNode() instead of
  	the buggy hand-rolled traversal.
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeListImpl::recursiveItem):
  
  2004-11-17  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3885744> crash with XMLHttpRequest test page (reported by KDE folks)
  
          * khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::slotFinished):
          Rolled in fix from KDE; make sure to set job to 0 before calling changeState.
  
          - fixed <rdar://problem/3885729> attempting to modify a computed style does nothing, but should raise a DOM exception
          - fixed <rdar://problem/3885731> style declarations use too many malloc blocks; switch to QValueList
          - fixed <rdar://problem/3885739> DOM::NodeImpl accessor in DOM::Node class is hot; should be inlined
          - changed NodeImpl calls like replaceChild to always ref/deref the parameter; this is a better way to fix
            an entire category of leaks we have been fixing one by one recently
          - changed computed styles so they hold a reference to the DOM node; the old code could end up with a
            stale RenderObject pointer, although I never saw it do that in practice
          - implemented the length and item methods for computed styles
          - implemented querying additional properties in computed styles (29 more)
  
          * khtml/khtml_part.h: Update forward declaration of CSSMutableStyleDeclarationImpl since it's
          now a separate class rather than a typedef. Changed the parameter type of setTypingStyle to
          take a mutable style.
          * khtml/khtml_part.cpp:
          (KHTMLPart::setTypingStyle): Change parameter to take a mutable style.
          (KHTMLPart::applyStyle): Add code to make a mutable style in case we are passed
          a computed style; also change some types to mutable style.
          (updateState): Update iteration of CSSProperty objects in a style declaration to use
          the new valuesIterator interface.
          (KHTMLPart::selectionHasStyle): Add a call to makeMutable.
          (KHTMLPart::selectionStartHasStyle): Add call to makeMutable and update iteration.
          (editingStyle): Change type to mutable style, and simplify the style-creation calls,
          including accomodating the exception code that setCssText has now.
          (KHTMLPart::applyEditingStyleToElement): Change types to mutable style.
          (KHTMLPart::removeEditingStyleFromElement): Change code to call setChanged only if removing
          the style attributes really was a change, although it's not an important optimization it's
          good to do it right.
  
          * khtml/css/css_base.h: Remove unneeded setParsedValue method.
          * khtml/css/css_base.cpp: Remove unneeded setParsedValue method. All the places that were
          calling it were already removing the old property explicitly, so the code in here to remove
          the property again was redundant.
  
          * khtml/css/css_computedstyle.h: Updated virtual functions for changes to parameters in base class.
          Moved all the "set"-type functions so they are private. Store a node pointer instead of a renderer.
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::CSSComputedStyleDeclarationImpl): Hold a reference to
          the node we compute style for, so we don't end up with a pointer to a deallocated RenderObject.
          Before we had no guarantee the object would outlast us.
          (DOM::CSSComputedStyleDeclarationImpl::setCssText): Add exception parameter, and set the
          exception to NO_MODIFICATION_ALLOWED_ERR.
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Update to use node pointer rather
          than renderer pointer. Added implementation for box-align, box-direction, box-flex, box-flex-group,
          box-lines, box-ordinal-group, box-orient, box-pack, caption-side, clear, cursor, direction,
          list-style-image, list-style-position, list-style-type, marquee-direction, marquee-repetition,
          marquee-style, user-modify, opacity, orphans, outline-style, page-break-after, page-break-before,
          page-break-inside, position, unicode-bidi, widows, z-index.
          (DOM::CSSComputedStyleDeclarationImpl::removeProperty): Add exception parameter, and set the
          exception to NO_MODIFICATION_ALLOWED_ERR.
          (DOM::CSSComputedStyleDeclarationImpl::setProperty): Ditto.
          (DOM::CSSComputedStyleDeclarationImpl::length): Implemented.
          (DOM::CSSComputedStyleDeclarationImpl::item): Implemented, calls getPropertyValue.
          (DOM::CSSComputedStyleDeclarationImpl::copyInheritableProperties): Changed return type to
          CSSMutableStyleDeclarationImpl.
          (DOM::CSSComputedStyleDeclarationImpl::copy): Added.
          (DOM::CSSComputedStyleDeclarationImpl::makeMutable): Added.
  
          * khtml/css/css_ruleimpl.h: Update forward declaration of CSSMutableStyleDeclarationImpl since it's
          now a separate class rather than a typedef.
          * khtml/css/cssparser.h: Ditto.
  
          * khtml/css/css_valueimpl.h: Refactor CSSStyleDeclarationImpl into two classes. New derived class
          CSSMutableStyleDeclarationImpl has the guts, and the base class has only some virtual functions.
          Removed a bunch of redundant stuff from other classes in this file too.
          (DOM::DashboardRegionImpl::setNext): Ref new before deref'ing old to handle the set-to-same case.
          (DOM::CSSProperty::CSSProperty): Added new overload so you can create a CSSProperty with initial values.
          (DOM::CSSProperty::operator=): Added.
          (DOM::CSSProperty::setValue): Use ref-before-deref pattern to simplify slightly.
  
          * khtml/css/css_valueimpl.cpp:
          (DOM::CSSStyleDeclarationImpl::CSSStyleDeclarationImpl): Remove uneeded things.
          (DOM::CSSStyleDeclarationImpl::isStyleDeclaration): Put here now that it's no longer inline.
          (DOM::CSSMutableStyleDeclarationImpl::CSSMutableStyleDeclarationImpl): Added.
          (DOM::CSSMutableStyleDeclarationImpl::operator=): Added.
          (DOM::CSSMutableStyleDeclarationImpl::~CSSMutableStyleDeclarationImpl): Updated.
          (DOM::CSSMutableStyleDeclarationImpl::getPropertyValue): Removed now-uneeded check.
          (DOM::CSSMutableStyleDeclarationImpl::get4Values): Moved here from base class.
          (DOM::CSSMutableStyleDeclarationImpl::getShortHandValue): Ditto.
          (DOM::CSSMutableStyleDeclarationImpl::getPropertyCSSValue): Update to use QValueList instead of QPtrList.
          (DOM::CSSMutableStyleDeclarationImpl::removeProperty): Added exception parameter, updated for QValueList.
          (DOM::CSSMutableStyleDeclarationImpl::setChanged): Moved here from base class.
          (DOM::CSSMutableStyleDeclarationImpl::getPropertyPriority): Update to use QValueList.
          (DOM::CSSMutableStyleDeclarationImpl::setProperty): Added more overloads to match new parameters.
          (DOM::CSSMutableStyleDeclarationImpl::setStringProperty): Update to use QValueList.
          (DOM::CSSMutableStyleDeclarationImpl::setImageProperty): Ditto.
          (DOM::CSSMutableStyleDeclarationImpl::parseProperty): Remove unneeded initialization code due to QValueList.
          (DOM::CSSMutableStyleDeclarationImpl::addParsedProperties): Added.
          (DOM::CSSMutableStyleDeclarationImpl::setLengthProperty): Moved here from base class.
          (DOM::CSSMutableStyleDeclarationImpl::length): Update to use QValueList.
          (DOM::CSSMutableStyleDeclarationImpl::item): Moved here from base class.
          (DOM::CSSMutableStyleDeclarationImpl::cssText): Return empty string rather than null string when there are
          no styles in the list. Update to use QValueList.
          (DOM::CSSMutableStyleDeclarationImpl::setCssText): Update to use QValueList and to take an exceptionCode
          parameter and set it.
          (DOM::CSSMutableStyleDeclarationImpl::merge): Update to use QValueList.
          (DOM::CSSStyleDeclarationImpl::diff): Update to use QValueList.
          (DOM::CSSMutableStyleDeclarationImpl::copyBlockProperties): Moved here from base class. Change return type.
          (DOM::CSSStyleDeclarationImpl::copyPropertiesInSet): Update to use QValueList and use stack, not new/delete.
          (DOM::CSSMutableStyleDeclarationImpl::makeMutable): Added.
          (DOM::CSSMutableStyleDeclarationImpl::copy): Added.
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue): Changed to use addParsedProperties.
          (CSSParser::parseDeclaration): Ditto.
          (CSSParser::createStyleDeclaration): Use new constructor to create declaration in a more efficient manner.
  
          * khtml/css/cssproperties.in: Removed unused font-size-adjust and -khtml-flow-mode.
          * khtml/css/cssproperties.c: Regenerated.
          * khtml/css/cssproperties.h: Regenerated.
  
          * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyDeclarations):
          Updated to use QValueList interface to CSSMutableStyleDeclarationImpl.
  
          * khtml/dom/css_value.cpp:
          (DOM::CSSStyleDeclaration::cssText): Removed unneeded cast.
          (DOM::CSSStyleDeclaration::setCssText): Added exception code handling.
          (DOM::CSSStyleDeclaration::getPropertyValue): Changed to call getPropertyValue directly instead of
          first doing getPropertyCSSValue and then doing cssText.
          (DOM::CSSStyleDeclaration::getPropertyCSSValue): Removed unneeded cast.
          (DOM::CSSStyleDeclaration::removeProperty): Added exception code handling. 
          (DOM::CSSStyleDeclaration::setProperty): Added exception code handling.
          (DOM::CSSStyleDeclaration::length): Removed unneeded cast.
          (DOM::CSSStyleDeclaration::item): Removed unneeded cast.
          (DOM::CSSStyleDeclaration::parentRule): Removed unneeded cast.
          (DOM::CSSValue::setCssText): Removed strange non-implementation (still not implemented).
  
          * khtml/dom/dom_node.h: Made isNull and handle functions inline.
          * khtml/dom/dom_node.cpp: Ditto.
  
          * khtml/editing/htmlediting.h: Change some types to mutable style.
          * khtml/editing/htmlediting.cpp:
          (khtml::EditCommandPtr::typingStyle): Change return type to mutable style.
          (khtml::EditCommandPtr::setTypingStyle): Change parameter to mutable style.
          (khtml::StyleChange::init): Convert parameter to mutable style. Update to use QValueList.
          (khtml::EditCommand::assignTypingStyle): Change parameter to mutable type.
          (khtml::EditCommand::setTypingStyle): Ditto.
          (khtml::ApplyStyleCommand::ApplyStyleCommand): Convert parameter to mutable style.
          (khtml::ApplyStyleCommand::doApply): Change local variables to mutable style.
          (khtml::ApplyStyleCommand::applyBlockStyle): Change parameter to mutable style.
          (khtml::ApplyStyleCommand::applyInlineStyle): Ditto.
          (khtml::ApplyStyleCommand::isHTMLStyleNode): Ditto.
          (khtml::ApplyStyleCommand::removeCSSStyle): Ditto. Also update to use QValueList.
          (khtml::ApplyStyleCommand::removeBlockStyle): Change parameter to mutable style.
          (khtml::ApplyStyleCommand::removeInlineStyle): Ditto.
          (khtml::ApplyStyleCommand::addBlockStyleIfNeeded): Ditto.
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): Ditto.
          (khtml::InsertLineBreakCommand::doApply): Convert locals to mutable style.
          (khtml::InsertTextCommand::prepareForTextInsertion): Ditto.
          (khtml::RemoveCSSPropertyCommand::RemoveCSSPropertyCommand): Convert parameter to mutable style.
  
          * khtml/editing/jsediting.cpp: Convert types to mutable styles where we create styles.
          * khtml/html/html_baseimpl.h: Change type to mutable style.
          * khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::createLinkDecl): Ditto.
  
          * khtml/html/html_elementimpl.h: Make CSSMappedAttributeDeclarationImpl use the mutable style
          class as a base class, and change types to mutable style as needed.
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::createInlineStyleDecl): Change type to mutable style.
          (HTMLElementImpl::parseHTMLAttribute): Call parseProperty method.
          (HTMLElementImpl::getInlineStyleDecl): Change type to mutable style.
          (HTMLElementImpl::additionalAttributeStyleDecl): Ditto.
          (HTMLElementImpl::createContextualFragment): Add ref/deref to fix potential node leak.
          (HTMLElementImpl::setInnerHTML): Remove ref/deref pair because this leak is now fixed by changes
          to appendChild.
          (HTMLElementImpl::setOuterHTML): Remove ref/deref pair because this leak is now fixed by changes
          to replaceChild.
  
          * khtml/html/html_tableimpl.h: Change types to mutable style.
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableElementImpl::additionalAttributeStyleDecl): Change type to mutable style.
          (HTMLTableElementImpl::getSharedCellDecl): Change type to mutable style.
          (HTMLTableCellElementImpl::additionalAttributeStyleDecl): Change type to mutable style.
  
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::parseToken): Use a local variable to protect the node by ref'ing it. This is better
          than using an explicit delete to make the node go away, and is required for compatibility with the
          changes to the NodeImpl functions.
          (KHTMLParser::insertNode): Ditto.
          (KHTMLParser::createHead): Get rid of explicit delete, no longer needed because of changes to
          the NodeImpl functions.
  
          * khtml/xml/dom_docimpl.cpp: (DocumentImpl::createCSSStyleDeclaration): Call simpler constructor
          now that there's no need to make the property list explictly.
  
          * kwq/DOM-CSS.mm:
          (-[DOMCSSStyleDeclaration setCssText:]): Raise exception when appropriate.
          (-[DOMCSSStyleDeclaration removeProperty:]): Ditto.
          (-[DOMCSSStyleDeclaration setProperty:::]): Dito.
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::insertBefore): Always do a ref/deref, so callers don't have to worry about whether the
          function succeeded or not for ownership purposes.
          (NodeImpl::replaceChild): Ditto.
          (NodeImpl::appendChild): Ditto.
          (NodeBaseImpl::insertBefore): Ditto.
          (NodeBaseImpl::replaceChild): Ditto.
          (NodeBaseImpl::appendChild): Ditto.
          (NodeBaseImpl::addChild): Ditto.
  
          * WebCore-tests.exp: Removed CSSStyleDeclaration::length; not sure why it was in here.
          * WebCore-combined.exp: Regenerated.
  
  2004-11-18  Maciej Stachowiak  <mjs at apple.com>
  
          still even more build fixing
  
          * khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::resetCollectionInfo):
  
  2004-11-18  Maciej Stachowiak  <mjs at apple.com>
  
          more build fixing
  
          * khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::resetCollectionInfo):
  
  2004-11-18  Maciej Stachowiak  <mjs at apple.com>
  
          Fixed build problem.
  
          * khtml/html/html_miscimpl.h:
          (DOM::HTMLCollectionImpl::CollectionInfo::CollectionInfo): it's haslength, not hasLenght.
  
  2004-11-18  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	- merged and cleaned up HTMLCollection and HTMLFormCollection speedups from konqueror
  
  	<rdar://problem/3822992> VIP: Program listings pages at directv.com take a really long time to load [HTMLCollection]
  	<rdar://problem/3701991> Safari unresponsive loading (www.maxim-ic.com) (HTMLCollection)
  
  	This is also a start on fixing 5 other bugs, but those need additional work to make
  	HTMLFormCollection fast.
  
          * khtml/html/html_documentimpl.h:
          (DOM::HTMLDocumentImpl::collectionInfo):
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::~HTMLFormElementImpl):
          (DOM::HTMLFormElementImpl::isURLAttribute):
          (DOM::HTMLFormElementImpl::registerImgElement):
          (DOM::HTMLFormElementImpl::removeImgElement):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageElementImpl::HTMLImageElementImpl):
          (HTMLImageElementImpl::~HTMLImageElementImpl):
          * khtml/html/html_imageimpl.h:
          * khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::HTMLCollectionImpl):
          (HTMLCollectionImpl::~HTMLCollectionImpl):
          (HTMLCollectionImpl::updateCollectionInfo):
          (HTMLCollectionImpl::length):
          (HTMLCollectionImpl::item):
          (HTMLCollectionImpl::firstItem):
          (HTMLCollectionImpl::nextItem):
          (HTMLCollectionImpl::namedItem):
          (HTMLCollectionImpl::nextNamedItemInternal):
          (HTMLFormCollectionImpl::getNamedFormItem):
          * khtml/html/html_miscimpl.h:
          (DOM::HTMLCollectionImpl::):
          (DOM::HTMLCollectionImpl::CollectionInfo::CollectionInfo):
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::getElement):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::incDOMTreeVersion):
          (DOM::DocumentImpl::domTreeVersion):
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::attach):
          (NodeImpl::detach):
  
  2004-11-18  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Chris.
  
  	fixed: <rdar://problem/3841842> getPropertyID expensive
  
          * kwq/DOM-CSS.mm:
          (getPropertyID): avoid unnecessary memory allocations by using a fixed-sized stack based buffer.
  
  2004-11-17  David Hyatt  <hyatt at apple.com>
  
  	Improve responsiveness by being willing to break out of the tokenizer.  (This patch was landed already
  	and subsequently backed out).
  	
          Reviewed by kocienda
  
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::insertedIntoDocument):
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::reset):
          (khtml::HTMLTokenizer::scriptHandler):
          (khtml::HTMLTokenizer::scriptExecution):
          (khtml::HTMLTokenizer::write):
          (khtml::HTMLTokenizer::continueProcessing):
          (khtml::HTMLTokenizer::timerEvent):
          (khtml::HTMLTokenizer::notifyFinished):
          * khtml/html/htmltokenizer.h:
          * khtml/khtmlview.cpp:
          (KHTMLViewPrivate::KHTMLViewPrivate):
          (KHTMLViewPrivate::reset):
          (KHTMLView::clear):
          (KHTMLView::layout):
          (KHTMLView::timerEvent):
          (KHTMLView::scheduleRelayout):
          (KHTMLView::layoutPending):
          (KHTMLView::haveDelayedLayoutScheduled):
          (KHTMLView::unscheduleRelayout):
          * khtml/khtmlview.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::close):
          (DocumentImpl::setParsing):
          (DocumentImpl::shouldScheduleLayout):
          (DocumentImpl::minimumLayoutDelay):
          (DocumentImpl::write):
          (DocumentImpl::finishParsing):
          (DocumentImpl::stylesheetLoaded):
          (DocumentImpl::updateStyleSelector):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::parsing):
          * kwq/KWQDateTime.mm:
          (KWQUIEventTime::uiEventPending):
  
  2004-11-17  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken Kocienda.
          
          Make sure previousLineStart is non-null before calling compareBoundaryPoints.
          Treat null case as meaning no post-move merge is needed.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData):
  
  2004-11-17  David Harrison  <harrison at apple.com>
          
          Added displayNode and displayTree methods for debugging.  Fixed comment typo in dispatchChildRemovalEvents.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::displayNode):
          (NodeImpl::displayTree):
          (NodeBaseImpl::dispatchChildRemovalEvents):
          * khtml/xml/dom_nodeimpl.h:
  
  2004-11-16  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Richard.
          
          - fixed <rdar://problem/3881929> 32 byte leak in editingStyle() in KHTMLPart (one-time only)
  
          * khtml/khtml_part.cpp:
          (editingStyle):
          delete the list we created when we're done with it
  
  2004-11-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
          
          It is unwise to use the QPtrList autodelete feature on shared objects like DOM nodes.
          Instead, I replaced this with a helper function that derefs DOM nodes stored in a 
          QPtrList when the list goes out of scope.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::derefNodesInList): New helper to deref DOM nodes stored in a QPtrList.
          (khtml::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): No longer set lists to autodelete.
          (khtml::InsertParagraphSeparatorCommand::~InsertParagraphSeparatorCommand): Call new derefNodesInList helper.
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::InsertParagraphSeparatorInQuotedContentCommand):  
          No longer set lists to autodelete.
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::~InsertParagraphSeparatorInQuotedContentCommand):
           Call new derefNodesInList helper.
          * khtml/editing/htmlediting.h: Add virtual destructor for InsertParagraphSeparatorCommand. It had no need
          of one before, but now it does.
  
  2004-11-15  David Harrison  <harrison at apple.com>
  
          Reviewed by Chris and Darin.
          
          <rdar://problem/3880304> Non-linear performance hit for style changes
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::traverseNextNode):
          (NodeImpl::traverseNextSibling):
          (NodeImpl::traversePreviousNodePostOrder):
          Return 0 rather than traversing beyond stayWithin when this == stayWithin.
          Add asserts that stayWithin is an ancestor of the returned node.
  
  2004-11-15  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3880036> Many leaks from CSSComputedStyleDeclarationImpl::getPropertyCSSValue, seen in Mail and Blot
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyValue): Ref and deref the value returned from getPropertyCSSValue,
          since there's no guarantee it's already ref'd.
          * khtml/css/css_valueimpl.cpp:
          (CSSStyleDeclarationImpl::getPropertyValue): Wrap result in a CSSValue to ref/deref.
          (CSSStyleDeclarationImpl::get4Values): Ref/deref explicitly.
          (CSSStyleDeclarationImpl::getShortHandValue): Ditto.
          (CSSStyleDeclarationImpl::merge): Ditto.
          (CSSStyleDeclarationImpl::diff): Ditto.
          * khtml/editing/htmlediting.cpp:
          (khtml::StyleChange::currentlyHasStyle): Ditto.
          (khtml::ApplyStyleCommand::removeCSSStyle): Ditto.
          * khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::parseHTMLAttribute): Ditto.
          * khtml/html/html_tableimpl.cpp: (HTMLTableElementImpl::parseHTMLAttribute): Ditto.
  
  2004-11-15  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          Use separate mutable style and computed style types as appropriate.
          For now this should have no effect, but it prepares us for refactoring later.
          Also remove some unnecessary "DOM::" prefixes and in one case factor out
          some shared code.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::typingStyle):
          (KHTMLPart::setTypingStyle):
          (updateState):
          (KHTMLPart::selectionHasStyle):
          (KHTMLPart::selectionStartHasStyle):
          (KHTMLPart::selectionComputedStyle):
          * khtml/khtml_part.h:
          * khtml/khtmlpart_p.h:
  
          * khtml/css/css_base.h:
          * khtml/css/css_ruleimpl.cpp:
          (CSSStyleRuleImpl::setDeclaration):
          * khtml/css/css_ruleimpl.h:
          (DOM::CSSFontFaceRuleImpl::style):
          (DOM::CSSPageRuleImpl::style):
          (DOM::CSSStyleRuleImpl::style):
          (DOM::CSSStyleRuleImpl::declaration):
          * khtml/css/css_valueimpl.h:
          (DOM::CSSPrimitiveValueImpl::):
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          (CSSParser::parseColor):
          (CSSParser::parseDeclaration):
          (CSSParser::createStyleDeclaration):
          * khtml/css/cssparser.h:
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::addMatchedDeclaration):
          (khtml::CSSStyleSelector::matchRulesForList):
          (khtml::CSSStyleSelector::styleForElement):
          (khtml::CSSStyleSelector::applyDeclarations):
          * khtml/css/cssstyleselector.h:
          * khtml/css/parser.cpp:
          * khtml/css/parser.y:
          * khtml/dom/css_rule.h:
          * khtml/dom/css_stylesheet.h:
          * khtml/dom/css_value.h:
          * khtml/dom/dom2_views.cpp:
          * khtml/xml/dom2_viewsimpl.cpp:
          (DOM::AbstractViewImpl::getComputedStyle):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::importNode):
          (DocumentImpl::setStyleSheet):
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_xmlimpl.cpp:
          (DOM::ProcessingInstructionImpl::setStyleSheet):
          * khtml/xml/dom_xmlimpl.h:
  
          * khtml/dom/css_value.cpp:
          (DOM::throwException): Added.
          (DOM::CSSStyleDeclaration::setCssText): Call throwException, but always on 0 for now.
          The real thing is coming with the next change to refactor.
          (DOM::CSSPrimitiveValue::setFloatValue): Call throwException.
          (DOM::CSSPrimitiveValue::setStringValue): Ditto.
  
  2004-11-15  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3878489> REGRESSION: modifying attribute of <textarea> blows away edited text (breaks simplemachines.org forum)
  
          * khtml/xml/dom_nodeimpl.h: Added boolean "children changed" parameter to
          dispatchSubtreeModifiedEvent, so it can be called in cases where only the
          node's attributes changed without sending a misleading childrenChanged call,
          but the childrenChanged call can happen at the exact right moment.
          * khtml/xml/dom_nodeimpl.cpp: Removed some uneeded "DOM::".
          (NodeImpl::dispatchSubtreeModifiedEvent): Only call "children changed" if
          the boolean true is passed in.
  
          * khtml/xml/dom_elementimpl.cpp:
          (NamedAttrMapImpl::addAttribute): Pass false for "children changed".
          (NamedAttrMapImpl::removeAttribute): Ditto.
  
  2004-11-15  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken.
          
          - fixed <rdar://problem/3880075> leak in CSSStyleDeclarationImpl::copyPropertiesInSet, 
          seen often in Mail and Blot
  
          * khtml/css/css_valueimpl.cpp:
          (CSSStyleDeclarationImpl::copyPropertiesInSet):
          delete temporary list after we're done using it
  
  2004-11-15  Richard Williamson   <rjw at apple.com>
  
  	Fixed leak (3879883) that John found.  Early return leaked
  	allocated instance.
  
          Reviewed by John.
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
  
  2004-11-15  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3879569> Many leaks in EditCommand mechanism, seen in Mail
  
          Fixed a couple of object lifetime issues. The EditCommand class used to hold an
          EditCommandPtr to its parent, but this caused a a reference cycle in composite 
          commands as the children held a ref to their parent. Now, the parent variable
          is a non-retained reference to an EditCommand *. It would be nice to have a 
          weak reference to the parent or even override deref in composite commands (but I
          can't since deref() is not virtual). However, this should be OK since any
          dangling parent pointer is a sign of a bigger object lifetime problem that
          would need to be addressed anyway.
  
          * khtml/css/css_valueimpl.cpp:
          (CSSStyleDeclarationImpl::CSSStyleDeclarationImpl): Fix bug in constructor that takes a 
          QPtrList<CSSProperty> *. List values must be copied into newly-allocated list, rather than
          just assigning the list variable passed in to the local list variable, or the list will be 
          double-deleted.
          * khtml/editing/htmlediting.cpp:
          (khtml::EditCommand::setStartingSelection): No longer call get(). m_parent is no longer a smart pointer.
          (khtml::EditCommand::setEndingSelection): Ditto.
          (khtml::EditCommand::assignTypingStyle): Short-circuit if passed in style is identical to current style.
          Unrelated to the change, but saves some ref's and deref's.
          (khtml::EditCommand::setTypingStyle): No longer call get(). m_parent is no longer a smart pointer.
          * khtml/editing/htmlediting.h: Change m_parent to a EditCommand *. Was an EditCommandPtr. Using an
          EditCommandPtr caused a reference cycle in composite commands as the children held a ref to their parent.
          (khtml::EditCommand::parent): No longer call get(). m_parent is no longer a smart pointer.
  
  2004-11-15  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	<rdar://problem/3807080> Safari so slow it seems like a hang accessing a page on an IBM website
  	
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeListImpl::NodeListImpl): Initialize isItemCacheValid, renamed isCacheValid to
  	isLengthCacheValid.
          (NodeListImpl::recursiveLength): Adjusted for rename.
          (NodeListImpl::recursiveItem): Cache the last item accessed and its offset.
  	If the same offset is looked up again, just return it, otherwise, if looking up
  	a later offset, start at the last item and proceed from there.
          (NodeListImpl::itemById): Apply the special document optimization to all
  	nodes that are either a document or in a document - just walk up to make
  	sure the node found by ID has the root node as an ancestor.
          (NodeListImpl::rootNodeSubtreeModified): Adjust both cache bits.
          * khtml/xml/dom_nodeimpl.h: Prototype new stuff.
  
  2004-11-15  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken.
          
          - fixed <rdar://problem/3879539> leak of NSString after pasting into editable HTML (e.g. Mail)
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::documentFragmentWithText):
          release mutable copy of string after we're done using it
  
  2004-11-14  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by mjs.
  
  	fixed: <rdar://problem/3823038> LEAK: huge leak in DOM::HTMLElementImpl::createContextualFragment(DOM::DOMString const&, bool)
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::setInnerHTML): uses the ref counting system to deallocate fragments instead of explicitly invoking a destructor.
          (HTMLElementImpl::setOuterHTML): function is responsible for derefing the fragment prior to returning. Now it does.
  
  2004-11-13  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	<rdar://problem/3878766> VIP: Program listings pages at directv.com takes 75% of time traversing NodeLists
  
          * khtml/dom/dom_node.cpp:
          (NodeList::itemById): New method, just forward to impl.
          * khtml/dom/dom_node.h: Prototype it.
          * khtml/ecma/kjs_dom.cpp:
          (DOMNodeList::tryGet): Instead of looping over the whole list to do by-id access,
  	let the NodeList do it. The NodeList might be able to do it more efficiently.
          * khtml/xml/dom_nodeimpl.cpp:
  	(NodeListImpl::itemById): Optimize for the case where the NodeList
  	covers the whole document. In this case, just use getElementById,
  	then check that the element satisfies the list criteria.
          (ChildNodeListImpl::nodeMatches): Return true only if the node is our child.
          (TagNodeListImpl::TagNodeListImpl): Irrelevant change to reformat initializers.
          * khtml/xml/dom_nodeimpl.h:
  
  2004-11-12  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Gramps.
  
  	- fixed another bug in the last checkin, isCacheValid was unitialized, resulting in
  	sometimes using a huge bogus length value.
  	
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeListImpl::NodeListImpl): Initialize isCacheValid.
  
  2004-11-12  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed an infinite loop in that last check-in
  
          * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::notifyLocalNodeListsSubtreeModified):
          Added a ++i to the loop so it won't get stuck on the first element in the list.
  
  2004-11-12  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	- fixed <rdar://problem/3878183> Safari is 77% slower than it should be on a page on an IBM website due to NodeListImpl length
          
  	I fixed this by changing NodeLists to cache their length, but
  	invalidate it whenever there is a change in the DOM subtree at
  	which they are rooted. This makes NodeListImpl::recursiveLength()
  	drop completely off the profile, since we were repeatedly getting
  	a length for the same NodeList over and over.
  	
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::NodeImpl):
          (NodeImpl::~NodeImpl):
          (NodeImpl::registerNodeList):
          (NodeImpl::unregisterNodeList):
          (NodeImpl::notifyLocalNodeListsSubtreeModified):
          (NodeImpl::notifyNodeListsSubtreeModified):
          (NodeImpl::dispatchSubtreeModifiedEvent):
          (NodeListImpl::NodeListImpl):
          (NodeListImpl::~NodeListImpl):
          (NodeListImpl::recursiveLength):
          (NodeListImpl::recursiveItem):
          (NodeListImpl::rootNodeSubtreeModified):
          (ChildNodeListImpl::ChildNodeListImpl):
          (ChildNodeListImpl::length):
          (ChildNodeListImpl::item):
          (TagNodeListImpl::TagNodeListImpl):
          (TagNodeListImpl::length):
          (TagNodeListImpl::item):
          (NameNodeListImpl::NameNodeListImpl):
          (NameNodeListImpl::length):
          (NameNodeListImpl::item):
          * khtml/xml/dom_nodeimpl.h:
  
  2004-11-12  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - various small cleanups
  
          * khtml/xml/dom_docimpl.h: Added policyBaseURL and setPolicyBaseURL.
          * khtml/html/html_documentimpl.h: Removed policyBaseURL and setPolicyBaseURL.
  
          * khtml/xml/xml_tokenizer.h: Marked isWaitingForScripts const.
          * khtml/xml/xml_tokenizer.cpp: (khtml::XMLTokenizer::isWaitingForScripts): Marked const.
          * khtml/html/htmltokenizer.h: Marked isWaitingForScripts const.
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::isWaitingForScripts): Marked const.
          (khtml::HTMLTokenizer::setOnHold): Took out extraneous line of code.
  
          * khtml/khtml_part.h: Removed docImpl function.
          * khtml/khtml_part.cpp: Ditto.
  
          * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close): Simplified code that implements
          the "redirect during onload" optimization. Now uses isScheduledLocationChangePending.
  
          * kwq/KWQKHTMLPart.h: Removed now-unused _firstResponderAtMouseDownTime.
          * kwq/KWQKHTMLPart.mm: Removed _firstResponderAtMouseDownTime (forgot to land this
          part of the change last time, which is why the build broke).
          (KWQKHTMLPart::updatePolicyBaseURL): Use xmlDocImpl instead of docImpl.
          (KWQKHTMLPart::setPolicyBaseURL): Ditto.
          (KWQKHTMLPart::keyEvent): Ditto.
          (KWQKHTMLPart::dispatchCPPEvent): Ditto.
          (KWQKHTMLPart::bodyBackgroundColor): Ditto.
  
  2004-11-12  Chris Blumenberg  <cblu at apple.com>
  
  	<rdar://problem/3843312> REGRESSION: Tabbing into content area puts insertion point at start, should go to where it last was
  
          Reviewed by rjw.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::nextKeyViewInFrameHierarchy): only blow away selection when another view is focused
  
  === Safari-171 ===
  
  2004-11-12  Darin Adler  <darin at apple.com>
  
          Reviewed by Kevin.
  
          - fixed a couple places that would not work for XML documents
  
          * khtml/ecma/kjs_window.cpp:
          (Window::isSafeScript): Use xmlDocImpl instead of docImpl, since the function we're using
          is present on the base class.
          (WindowFunc::tryCall): More of the same.
  
  2004-11-12  Darin Adler  <darin at apple.com>
  
          - land versions of these files generated by the newer gperf
  
          People building on Panther will continue to see these files modified.
          A workaround would be to install the newer gperf on our Tiger build machines.
  
          * khtml/css/cssproperties.c: Regenerated.
          * khtml/css/cssvalues.c: Regenerated.
          * khtml/html/doctypes.cpp: Regenerated.
          * khtml/html/kentities.c: Regenerated.
          * khtml/misc/htmlattrs.c: Regenerated.
          * khtml/misc/htmltags.c: Regenerated.
          * kwq/KWQColorData.c: Regenerated.
  
  2004-11-11  Richard Williamson   <rjw at apple.com>
  	
          Fix build horkage from previous checkin.
  		
          * kwq/KWQKHTMLPart.h:
  
  2004-11-11  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3846152> REGRESSION (125-166): can't drag text out of <input type=text> fields
  
          * kwq/WebCoreBridge.h: Added wasFirstResponderAtMouseDownTime: method.
  
          * kwq/KWQKHTMLPart.h: Removed _firstResponderAtMouseDownTime.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Use the new wasFirstResponderAtMouseDownTime:
          method on the bridge instead of _firstResponderAtMouseDownTime. This will return YES for the case where
          we started with the NSTextField as first responder, and then took focus away and gave it back, which
          makes dragging text work again.
          (KWQKHTMLPart::mouseDown): Removed code to set _firstResponderAtMouseDownTime.
  
  2004-11-11  David Hyatt  <hyatt at apple.com>
  
  	Disable the tokenizer deferral, since it hurts the PLT by 3% or so.
  	
          Reviewed by vicki
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::continueProcessing):
  
  2004-11-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Maciej
  
          * khtml/editing/htmlediting.cpp:
          (khtml::InsertLineBreakCommand::doApply): Use new isLastVisiblePositionInBlock() helper instead
          of old isLastInBlock() member function on VisiblePosition. This is a cosmetic change in keeping
          with the prevailing style for the VisiblePosition class.
          * khtml/editing/htmlediting.h: Move isLastVisiblePositionInNode() function to visible_position.[cpp|h] files. 
          * khtml/editing/visible_position.cpp: Removed isLastInBlock() helper. Renamed to isLastVisiblePositionInBlock().
          (khtml::visiblePositionsInDifferentBlocks): New helper method.
          (khtml::isLastVisiblePositionInBlock): Ditto.
          (khtml::isLastVisiblePositionInNode): Ditto.
          * khtml/editing/visible_position.h: Add declarations for new functions.
  
  2004-11-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::deleteInsignificantText): Call new compareBoundaryPoints convenience.
          (khtml::ApplyStyleCommand::removeBlockStyle): Ditto.
          (khtml::ApplyStyleCommand::removeInlineStyle): Ditto.
          (khtml::ApplyStyleCommand::nodeFullySelected): Ditto.
          (khtml::DeleteSelectionCommand::initializePositionData): Ditto.
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::compareBoundaryPoints): New convenience variant of this function which takes two Position objects.
          * khtml/xml/dom2_rangeimpl.h: Ditto.
  
  2004-11-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Some improvements to deleting when complete lines are selected.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData): Detect when the line containing
          the end of a selection is fully selected. Turn off block merging in this case.
          (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete): Fix a bug in the check for
          whether a BR immediately followed a block. The old code could erroneously skip nodes.
          (khtml::DeleteSelectionCommand::handleGeneralDelete): Add a case for when the entire
          start block is selected. This new code will now delete this block in one call, rather
          than iterating over each child.
          * khtml/editing/visible_position.cpp:
          (khtml::visiblePositionsOnDifferentLines): New helper called in initializePositionData()
          to do the work mentioned above in the comment for that function.
          (khtml::isFirstVisiblePositionOnLine): Ditto.
          (khtml::isLastVisiblePositionOnLine): Ditto.
          * khtml/editing/visible_position.h: Add new functions.
          * layout-tests/editing/deleting/delete-line-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-001.html: Added.
          * layout-tests/editing/deleting/delete-line-002-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-002.html: Added.
          * layout-tests/editing/deleting/delete-line-003-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-003.html: Added.
          * layout-tests/editing/deleting/delete-line-004-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-004.html: Added.
          * layout-tests/editing/deleting/delete-line-005-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-005.html: Added.
          * layout-tests/editing/deleting/delete-line-006-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-006.html: Added.
          * layout-tests/editing/deleting/delete-line-007-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-007.html: Added.
          * layout-tests/editing/deleting/delete-line-008-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-008.html: Added.
          * layout-tests/editing/deleting/delete-line-009-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-009.html: Added.
          * layout-tests/editing/deleting/delete-line-010-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-010.html: Added.
          * layout-tests/editing/deleting/delete-line-011-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-011.html: Added.
          * layout-tests/editing/deleting/delete-line-012-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-012.html: Added.
  
  2004-11-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Adele
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData): Add some comments and a new piece of debugging output.
  
  2004-11-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for these bugs:
  
          <rdar://problem/3875618> REGRESSION (Mail): Hitting down arrow with full line selected skips line (br case)
          <rdar://problem/3875641> REGRESSION (Mail): Hitting down arrow with full line selected skips line (div case)
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::modifyMovingRightForward): Fixed by juggling the position as the starting point for
          the next line position when necessary.
          * layout-tests/editing/selection/move-3875618-fix-expected.txt: Added.
          * layout-tests/editing/selection/move-3875618-fix.html: Added.
          * layout-tests/editing/selection/move-3875641-fix-expected.txt: Added.
          * layout-tests/editing/selection/move-3875641-fix.html: Added.
  
  2004-11-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Improved some function names, at John's urging. No changes to the
          functions themselves.
          
          canPerformSpecialCaseAllContentDelete() --> handleSpecialCaseAllContentDelete()
          canPerformSpecialCaseBRDelete() --> handleSpecialCaseBRDelete()
          performGeneralDelete() --> handleGeneralDelete()
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::handleSpecialCaseAllContentDelete)
          (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete)
          (khtml::DeleteSelectionCommand::handleGeneralDelete)
          (khtml::DeleteSelectionCommand::doApply)
          * khtml/editing/htmlediting.h
  
  2004-11-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
          
          Updated some layout test results that changed as a result of my last checking.
          Added a new test that has been in my tree for a few days.
  
          * layout-tests/editing/deleting/delete-3775172-fix-expected.txt:
          * layout-tests/editing/deleting/delete-3800834-fix-expected.txt:
          * layout-tests/editing/inserting/insert-3851164-fix-expected.txt: Added.
          * layout-tests/editing/inserting/insert-3851164-fix.html: Added.
  
  2004-11-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          * khtml/editing/htmlediting.cpp:
          (khtml::debugNode): New debugging helper.
          (khtml::DeleteSelectionCommand::initializePositionData): No longer call obsoleted
          startPositionForDelete() and endPositionForDelete() functions. Just use the 
          m_selectionToDelete object to determine start and end positions for the delete.
          (khtml::DeleteSelectionCommand::canPerformSpecialCaseAllContentDelete): New
          function that creates a special case for deleting all the content in a root
          editable element.
          (khtml::DeleteSelectionCommand::doApply): Call canPerformSpecialCaseAllContentDelete()
          function before BR special case and the general case delete functions.
          * khtml/editing/htmlediting.h: Updated for changed functions.
  
  2004-11-10  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by mjs.
  	
          Fixed <rdar://problem/3875011> DOMNodeList::tryGet() performs unnecessary (and expensive) dom tree traversals. Improved a loop from 2-n-squared to just n-squared.  
  
          * khtml/ecma/kjs_dom.cpp:
          (DOMNodeList::tryGet): Got rid of an unnecessary node traversal. 
  
  2004-11-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::initializePositionData): Move position adjustments for
          smart delete from the two functions below to here. There was an unnecessary double 
          calculation of the leading and trailing whitespace positions. Also refined the trailing
          case so it only acts when the leading position is null (which seems to match TextEdit in
          my tests). Also removed some unnecessary copying of Position objects.
          (khtml::DeleteSelectionCommand::startPositionForDelete): Move out smart delete adjustment
          from here.
          (khtml::DeleteSelectionCommand::endPositionForDelete): Ditto.
  
  2004-11-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          (khtml::DeleteSelectionCommand::performGeneralDelete): Add some more comments to
          make things more clear.
          * khtml/editing/selection.cpp:
          (khtml::Selection::toRange): Fixed the upstream and downstream calls so that the 
          resulting positions do not cross block boundaries. This was a bug and caused some
          delete problems when whole blocks were selected. I will be addressing that issue
          more fully in upcoming changes.
  
  2004-11-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Some cleanups and fixes in upstream and downstream functions. 
          
          Removed redundant checks for isBlockFlow() when calling enclosingBlockFlowElement(). 
          Blocks do not need to skip the call to enclosingBlockFlowElement() for fear that the 
          block's enclosing block will be returned. 
          
          Remove code from upstream that confined the serach to block boundaries outside of
          the code which runs in the StayInBlock case. This code was redundant, and caused
          incorrect results to be returned in the DoNotStayInBlock case.
          
          In downstream, the check for crossing into a new block should use the equivalentDeepPosition()
          node, not the the this pointer's node.
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::upstream)
          (DOM::Position::downstream)
  
  2004-11-09  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3873234, Safari UI is unresponsive when parsing multiple HTML docs and 3873233, Safari hangs when
          loading large local files.
  	
          Reviewed by mjs
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::HTMLTokenizer):
          (khtml::HTMLTokenizer::reset):
          (khtml::HTMLTokenizer::write):
          (khtml::HTMLTokenizer::stopped):
          (khtml::HTMLTokenizer::processingData):
          (khtml::HTMLTokenizer::continueProcessing):
          (khtml::HTMLTokenizer::timerEvent):
          (khtml::HTMLTokenizer::allDataProcessed):
          (khtml::HTMLTokenizer::end):
          (khtml::HTMLTokenizer::finish):
          (khtml::HTMLTokenizer::notifyFinished):
          * khtml/html/htmltokenizer.h:
          * khtml/khtml_part.cpp:
          (KHTMLPart::slotFinished):
          (KHTMLPart::end):
          (KHTMLPart::stop):
          * khtml/khtml_part.h:
          (KHTMLPart::tokenizerProcessedData):
          * khtml/khtmlview.cpp:
          * khtml/xml/dom_docimpl.cpp:
          * khtml/xml/xml_tokenizer.h:
          (khtml::Tokenizer::stopped):
          (khtml::Tokenizer::processingData):
          * kwq/KWQDateTime.h:
          * kwq/KWQDateTime.mm:
          (QDateTime::secsTo):
          (KWQUIEventTime::uiEventPending):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::tokenizerProcessedData):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge stop]):
          (-[WebCoreBridge numPendingOrLoadingRequests]):
          (-[WebCoreBridge doneProcessingData]):
  
  2004-11-09  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken Kocienda.
  
  		<rdar://problem/3865837> Wrong text style after delete to start of document
  		
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::saveTypingStyleState):
          Sample computedStyle of m_selectionToDelete.start instead of m_downstreamStart.
  
  2004-11-09  Richard Williamson   <rjw at apple.com>
  
          Fixed <rdar://problem/3872440> NSTimer prematurely released.
  
          Reviewed by Darin.
  
          * kwq/KWQTimer.mm:
          (QTimer::fire):
          * kwq/KWQWidget.mm:
          (QWidget::paint):
  
  2004-11-09  Chris Blumenberg  <cblu at apple.com>
  
          Reviewed by vicki.
  
          * WebCore.pbproj/project.pbxproj: explicitly link against libxml2.2.6.14.dylib since the version number has been bumped
  
  2004-11-08  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken Kocienda.
  
  		<rdar://problem/3865854> Deleting first line deletes all lines
  		
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::performGeneralDelete):
          Problem was that the code that deletes fully selected m_downstreamEnd.node() by deleting one
          of its ancestors, failed to end the loop that deletes all fully selected nodes.  Also,
          fixed this code to clear m_trailingWhitespaceValid.  Also removed dead m_endingPosition
          update because it is handled in calculateEndingPosition now.
          * layout-tests/editing/deleting/delete-3865854-fix-expected.txt: Added.
          * layout-tests/editing/deleting/delete-3865854-fix.html: Added.
  
  2004-11-08  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::createContextualFragment): Now takes flag to control whether comments
          are added to the DOM.
          * khtml/html/html_elementimpl.h: Ditto.
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::KHTMLParser): Ditto.
          (KHTMLParser::getElement): Remove ifdef for comment processing. Replace with flag check.
          * khtml/html/htmlparser.h: Add flag to constructor so callers can request comment nodes.
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::HTMLTokenizer): Add flag to constructor so callers can request comment nodes.
          (khtml::HTMLTokenizer::parseComment): Fix code to handle parsing out comment text correctly.
          There were a couple of indexing errors that resulted in the comment text containing part of the 
          comment markers.
          (khtml::HTMLTokenizer::processToken): Don't let token id be reset to ID_TEXT if token is a comment.
          * khtml/html/htmltokenizer.h:  Add flag to constructor so callers can request comment nodes.
  
  2004-11-08  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3870907> WebCore unnecessary links against JavaVM and Security
  
          Reviewed by darin.
  
          * WebCore.pbproj/project.pbxproj: stop unnecessary linking
          * khtml/html/html_objectimpl.h: don't unnecessarily include JavaVM header
          * kwq/KWQKHTMLPart.h: ditto
  
  2004-11-08  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3825966> 8A274 Safari crashes closing window: QTimer::fire() with MallocStackLogging and MallocScribble enabled
  
          * kwq/KWQTimer.mm: (QTimer::fire): Rearrange so we don't access the QTimer object after calling code
          that possibly deletes the QTimer.
  
  2004-11-08  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3783904> Return key behavior is confusingly different between popup menus and autofill menus
  
          Reviewed by john.
  
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldController textView:shouldHandleEvent:]): let the bridge have a crack at the event so that it can swallow the newline if it wants to
          * kwq/WebCoreBridge.h:
  
  2004-11-08  David Harrison  <harrison at apple.com>
  
          Reviewed by Darin.
          
          Renamed NodeImpl::enclosingNonBlockFlowElement to NodeImpl::enclosingInlineElement, per Hyatt.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::moveNodesAfterNode):
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::enclosingInlineElement):
          * khtml/xml/dom_nodeimpl.h:
  
  2004-11-05  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3838413> REGRESSION (Mail): "Smart" word paste adds spaces before/after special characters
  
          Reviewed by rjw.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ReplaceSelectionCommand::doApply): call isCharacterSmartReplaceExempt on the part to see if a space should be inserted
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::character): new, returns the character for the position
          * khtml/editing/visible_position.h:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::isCharacterSmartReplaceExempt): new, calls the bridge
          * kwq/WebCoreBridge.h:
  
  === Safari-170 ===
  
  2004-11-05  Adele Amchan  <adele at apple.com>
  
          Reviewed by Darin
  
  	Fix for <rdar://problem/3854383> REGRESSION(166-168) input fields show black background when background color is set to transparent
  	and a workaround for displaying transparent backgrounds for textareas.
  
          * kwq/KWQLineEdit.mm: (QLineEdit::setPalette): If the background color is transparent (we check the alpha value) then we set the background to white
          * kwq/KWQTextEdit.mm: (QTextEdit::setPalette): If the background color is transparent, then we don't draw the background
          * kwq/KWQTextArea.mm: (-[KWQTextArea setDrawsBackground:]): added setDrawsBackground function which calls setDrawsBackground on the super class, 
            on the contentView, and on the textView.
  
  2004-11-04  David Hyatt  <hyatt at apple.com>
  
  	Fix for relpositioned inlines.  This was reviewed a long time ago, but I can't recall who reviewed it (either
  	darin or ken).
  	
          Reviewed by darin or ken
  
          * khtml/rendering/bidi.cpp:
          (khtml::appendRunsForObject):
          (khtml::RenderBlock::skipWhitespace):
          (khtml::RenderBlock::findNextLineBreak):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::lowestPosition):
          (khtml::RenderBlock::rightmostPosition):
          (khtml::RenderBlock::leftmostPosition):
          * khtml/rendering/render_box.cpp:
          (RenderBox::position):
          * khtml/rendering/render_box.h:
          (khtml::RenderBox::staticX):
          (khtml::RenderBox::staticY):
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::updateLayerPosition):
          (RenderLayer::convertToLayerCoords):
          * khtml/rendering/render_line.cpp:
          (khtml::InlineFlowBox::placeBoxesHorizontally):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::staticX):
          (khtml::RenderObject::staticY):
  
  	Finish turning on XSLT.  Make sure child stylesheets can load.
  	
          * khtml/xsl/xslt_processorimpl.cpp:
          (DOM::stylesheetLoadFunc):
          (DOM::XSLTProcessorImpl::transformDocument):
  
  2004-11-04  David Hyatt  <hyatt at apple.com>
  
  	Implement CSS3 support for multiple backgrounds.  Also fix a bug with background propagation so that it only
  	happens (from the <body> to the root) for HTML documents.  Fixed background-position to handle a mixture of
  	keyword and length values.
  
          Reviewed by darin
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          (CSSParser::addBackgroundValue):
          (CSSParser::parseBackgroundShorthand):
          (CSSParser::parseBackgroundColor):
          (CSSParser::parseBackgroundImage):
          (CSSParser::parseBackgroundPositionXY):
          (CSSParser::parseBackgroundPosition):
          (CSSParser::parseBackgroundProperty):
          (CSSParser::parseColorFromValue):
          * khtml/css/cssparser.h:
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::adjustRenderStyle):
          (khtml::CSSStyleSelector::applyProperty):
          (khtml::CSSStyleSelector::mapBackgroundAttachment):
          (khtml::CSSStyleSelector::mapBackgroundImage):
          (khtml::CSSStyleSelector::mapBackgroundRepeat):
          (khtml::CSSStyleSelector::mapBackgroundXPosition):
          (khtml::CSSStyleSelector::mapBackgroundYPosition):
          * khtml/css/cssstyleselector.h:
          * khtml/rendering/render_box.cpp:
          (RenderBox::paintRootBoxDecorations):
          (RenderBox::paintBoxDecorations):
          (RenderBox::paintBackgrounds):
          (RenderBox::paintBackground):
          (RenderBox::paintBackgroundExtended):
          * khtml/rendering/render_box.h:
          * khtml/rendering/render_form.cpp:
          (RenderFieldset::paintBoxDecorations):
          * khtml/rendering/render_line.cpp:
          (khtml::InlineFlowBox::paintBackgrounds):
          (khtml::InlineFlowBox::paintBackground):
          (khtml::InlineFlowBox::paintBackgroundAndBorder):
          * khtml/rendering/render_line.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::setStyle):
          (RenderObject::updateBackgroundImages):
          (RenderObject::getVerticalPosition):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::paintBackgroundExtended):
          * khtml/rendering/render_style.cpp:
          (m_next):
          (BackgroundLayer::BackgroundLayer):
          (BackgroundLayer::~BackgroundLayer):
          (BackgroundLayer::operator=):
          (BackgroundLayer::operator==):
          (BackgroundLayer::fillUnsetProperties):
          (BackgroundLayer::cullEmptyLayers):
          (StyleBackgroundData::StyleBackgroundData):
          (StyleBackgroundData::operator==):
          (RenderStyle::diff):
          (RenderStyle::adjustBackgroundLayers):
          * khtml/rendering/render_style.h:
          (khtml::OutlineValue::operator==):
          (khtml::OutlineValue::operator!=):
          (khtml::BackgroundLayer::backgroundImage):
          (khtml::BackgroundLayer::backgroundXPosition):
          (khtml::BackgroundLayer::backgroundYPosition):
          (khtml::BackgroundLayer::backgroundAttachment):
          (khtml::BackgroundLayer::backgroundRepeat):
          (khtml::BackgroundLayer::next):
          (khtml::BackgroundLayer::isBackgroundImageSet):
          (khtml::BackgroundLayer::isBackgroundXPositionSet):
          (khtml::BackgroundLayer::isBackgroundYPositionSet):
          (khtml::BackgroundLayer::isBackgroundAttachmentSet):
          (khtml::BackgroundLayer::isBackgroundRepeatSet):
          (khtml::BackgroundLayer::setBackgroundImage):
          (khtml::BackgroundLayer::setBackgroundXPosition):
          (khtml::BackgroundLayer::setBackgroundYPosition):
          (khtml::BackgroundLayer::setBackgroundAttachment):
          (khtml::BackgroundLayer::setBackgroundRepeat):
          (khtml::BackgroundLayer::clearBackgroundImage):
          (khtml::BackgroundLayer::clearBackgroundXPosition):
          (khtml::BackgroundLayer::clearBackgroundYPosition):
          (khtml::BackgroundLayer::clearBackgroundAttachment):
          (khtml::BackgroundLayer::clearBackgroundRepeat):
          (khtml::BackgroundLayer::setNext):
          (khtml::BackgroundLayer::operator!=):
          (khtml::BackgroundLayer::containsImage):
          (khtml::BackgroundLayer::hasImage):
          (khtml::BackgroundLayer::hasFixedImage):
          (khtml::RenderStyle::setBitDefaults):
          (khtml::RenderStyle::hasBackground):
          (khtml::RenderStyle::hasFixedBackgroundImage):
          (khtml::RenderStyle::outlineWidth):
          (khtml::RenderStyle::outlineStyle):
          (khtml::RenderStyle::outlineStyleIsAuto):
          (khtml::RenderStyle::outlineColor):
          (khtml::RenderStyle::backgroundColor):
          (khtml::RenderStyle::backgroundImage):
          (khtml::RenderStyle::backgroundRepeat):
          (khtml::RenderStyle::backgroundAttachment):
          (khtml::RenderStyle::backgroundXPosition):
          (khtml::RenderStyle::backgroundYPosition):
          (khtml::RenderStyle::accessBackgroundLayers):
          (khtml::RenderStyle::backgroundLayers):
          (khtml::RenderStyle::outlineOffset):
          (khtml::RenderStyle::resetOutline):
          (khtml::RenderStyle::setBackgroundColor):
          (khtml::RenderStyle::setOutlineWidth):
          (khtml::RenderStyle::setOutlineStyle):
          (khtml::RenderStyle::setOutlineColor):
          (khtml::RenderStyle::clearBackgroundLayers):
          (khtml::RenderStyle::inheritBackgroundLayers):
          (khtml::RenderStyle::setOutlineOffset):
          * khtml/rendering/render_table.cpp:
          (RenderTable::paintBoxDecorations):
          (RenderTableCell::paintBoxDecorations):
  
  2004-11-04  David Hyatt  <hyatt at apple.com>
  
  	Make sure the text decoder returns empty strings rather than null strings when the utf8 char ptr is non-null.
  	Ensures that <a href=""> works with libxml (which returns data in utf-8 buffers).
  
          Reviewed by darin
  
          * kwq/KWQTextCodec.mm:
          (KWQTextDecoder::convertLatin1):
          (KWQTextDecoder::convertUTF16):
          (KWQTextDecoder::convertUsingTEC):
          (KWQTextDecoder::toUnicode):
  
  2004-11-04  David Hyatt  <hyatt at apple.com>
  
  	Make sure line-height returns the correct value for normal.
  	
          Reviewed by darin
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
  
  2004-11-04  David Harrison  <harrison at apple.com>
  
          Reviewed by Ken Kocienda.
  
  		<rdar://problem/3857753> REGRESSION (Mail): Delete incorrectly causes text to take on new style
  		
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::moveNodesAfterNode): Fixed to move entire source subtree (up
          to, but not including, the enclosingBlockFlowElement) rather than just the source element.
          Fixed to insert after the destination subtree, rather than the destination element.  Handles
          edge case of deleting back to the top of the tree, where there is nothing left to insert after.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::enclosingNonBlockFlowElement): New method to support moveNodesAfterNode changes.
          * khtml/xml/dom_nodeimpl.h: Declare NodeImpl::enclosingNonBlockFlowElement
          * layout-tests/editing/deleting/delete-3857753-fix-expected.txt: Added.
          * layout-tests/editing/deleting/delete-3857753-fix.html: Added.
  
  2004-11-03  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
          
          More layout tests.
  
          * layout-tests/editing/deleting/delete-br-008-expected.txt: Added.
          * layout-tests/editing/deleting/delete-br-008.html: Added.
          * layout-tests/editing/deleting/delete-br-009-expected.txt: Added.
          * layout-tests/editing/deleting/delete-br-009.html: Added.
          * layout-tests/editing/deleting/delete-br-010-expected.txt: Added.
          * layout-tests/editing/deleting/delete-br-010.html: Added.
  
  2004-11-03  Maciej Stachowiak  <mjs at apple.com>
  
          Fix by Yasuo Kida, reviewed by me.
  
  	<rdar://problem/3819004> REGRESSION (Mail): Can't move cursor / delete character after deleting the active input area
          
  	* kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::setMarkedTextRange): Treat a collapsed range the
  	same as a nil range - setting an empty marked range should clear
  	the marked range entirely.
  
  2004-11-02  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave Hyatt (when I originally coded it).
  
  	WebCore part of fix for:
  
  	<rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
  	
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge firstRectForDOMRange:]): New method to compute the rect for a
  	DOMRange, or if the range is split into multiple lines, the rect for the part on
  	the first line only.
  	
          * khtml/rendering/render_object.cpp:
          (RenderObject::caretRect): Added extraWidthToEndOfLine parameter and ditto
  	for the overrides below.
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_box.cpp:
          (RenderBox::caretRect):
          * khtml/rendering/render_box.h:
          * khtml/rendering/render_br.cpp:
          (RenderBR::caretRect):
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::caretRect):
          * khtml/rendering/render_flow.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::caretRect):
  
  2004-11-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Implemented command to insert a block in response to typing a return key (even though
          I am not turning that on by default with this patch....that will come later). 
          
          This new command is called InsertParagraphSeparatorCommand.
          
          Reworked the command and function names associated with inserting content into a 
          document. Before this patch, there were inputXXX and insertXXX variants, with the
          former used for more high-level actions and the latter used for lower-level stuff.
          However, this was confusing as the AppKit uses insertXXX for everything. This resulted
          in an insertXXX command going through an inputXXX WebCore step and then finally to an
          insertXXX WebCore step. To make this less confusing, I have changes all the names to
          be insertXXX, and modified the lower-level operations so that it is clear what they do.
          
          * khtml/editing/htmlediting.cpp:
          (khtml::EditCommandPtr::isInsertTextCommand): Name change.
          (khtml::EditCommand::isInsertTextCommand): Ditto.
          (khtml::CompositeEditCommand::inputText): Ditto.
          (khtml::CompositeEditCommand::insertTextIntoNode): Ditto.
          (khtml::CompositeEditCommand::deleteTextFromNode): Ditto.
          (khtml::CompositeEditCommand::replaceTextInNode): Ditto.
          (khtml::CompositeEditCommand::deleteInsignificantText): Name changes in implementation.
          (khtml::CompositeEditCommand::isLastVisiblePositionInNode): Ditto.
          (khtml::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand): Class name change, was DeleteTextCommand.
          (khtml::DeleteFromTextNodeCommand::~DeleteFromTextNodeCommand): Ditto.
          (khtml::DeleteFromTextNodeCommand::doApply): Ditto.
          (khtml::DeleteFromTextNodeCommand::doUnapply): Ditto.
          (khtml::DeleteSelectionCommand::performGeneralDelete): Ditto.
          (khtml::DeleteSelectionCommand::fixupWhitespace): Ditto.
          (khtml::DeleteSelectionCommand::moveNodesAfterNode): Ditto.
          (khtml::InsertIntoTextNode::InsertIntoTextNode): Class name change.
          (khtml::InsertIntoTextNode::~InsertIntoTextNode): Ditto.
          (khtml::InsertIntoTextNode::doApply): Ditto.
          (khtml::InsertIntoTextNode::doUnapply): Ditto.
          (khtml::InsertLineBreakCommand::InsertLineBreakCommand): Class name change, was InsertNewlineCommand.
          (khtml::InsertLineBreakCommand::insertNodeAfterPosition):
          (khtml::InsertLineBreakCommand::insertNodeBeforePosition):
          (khtml::InsertLineBreakCommand::doApply):
          (khtml::InsertNodeBeforeCommand::InsertNodeBeforeCommand): Code moved. No changes.
          (khtml::InsertNodeBeforeCommand::~InsertNodeBeforeCommand): Ditto.
          (khtml::InsertNodeBeforeCommand::doApply): Ditto.
          (khtml::InsertNodeBeforeCommand::doUnapply): Ditto.
          (khtml::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): New command.
          (khtml::InsertParagraphSeparatorCommand::doApply):
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::InsertParagraphSeparatorInQuotedContentCommand):
          Class name change, was InsertNewlineCommandInQuotedContentCommand.
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::~InsertParagraphSeparatorInQuotedContentCommand): Ditto.
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::isMailBlockquote): Ditto.
          (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Ditto.
          (khtml::InsertTextCommand::InsertTextCommand): Class name change, was InputTextCommand.
          (khtml::InsertTextCommand::doApply): Ditto.
          (khtml::InsertTextCommand::deleteCharacter): Ditto.
          (khtml::InsertTextCommand::prepareForTextInsertion): Ditto.
          (khtml::InsertTextCommand::input): Ditto.
          (khtml::InsertTextCommand::insertSpace): Ditto.
          (khtml::InsertTextCommand::isInsertTextCommand): Ditto.
          (khtml::TypingCommand::insertLineBreak): Name change, was insertNewline.
          (khtml::TypingCommand::insertParagraphSeparatorInQuotedContent): Name change, was insertNewlineInQuotedContent.
          (khtml::TypingCommand::insertParagraphSeparator): New function.
          (khtml::TypingCommand::doApply): Name changes, as above.
          (khtml::TypingCommand::insertText): Ditto.
          (khtml::TypingCommand::deleteKeyPressed): Ditto.
          (khtml::TypingCommand::preservesTypingStyle): Ditto.
          * khtml/editing/htmlediting.h:
          (khtml::DeleteFromTextNodeCommand::node): Name change.
          (khtml::DeleteFromTextNodeCommand::offset): Ditto.
          (khtml::DeleteFromTextNodeCommand::count): Ditto.
          (khtml::InsertIntoTextNode::text): Ditto.
          (khtml::InsertNodeBeforeCommand::insertChild): Ditto.
          (khtml::InsertNodeBeforeCommand::refChild): Ditto.
          (khtml::TypingCommand::): Ditto.
          * khtml/editing/jsediting.cpp: Name changes, as above.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge insertLineBreak]): Name change, was insertNewline.
          (-[WebCoreBridge insertParagraphSeparator]): New function.
          (-[WebCoreBridge insertParagraphSeparatorInQuotedContent]): Name change, was insertNewlineInQuotedContent.
  
  2004-11-01  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by rjw.
  
  	fixed <rdar://problem/3681094> Crash in KJS::WindowFunc::tryCall with application/xhtml+xml Content-Type
  	once and for all. 
  
          * khtml/ecma/kjs_window.cpp:
          (WindowFunc::tryCall): Added a nil check in the case of an empty document lacking a baseURL().
  
  2004-11-01  Darin Adler  <darin at apple.com>
  
          Reviewed by Hyatt.
  
          - fixed <rdar://problem/3859381> REGRESSION (167-168): text in form fields should not use body's text color
  
          * khtml/css/html4.css: Use color: initial for textarea and related ones.
  
  2004-11-01  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3775920> REGRESSION (Mail): Centering doesn't work in HTML mail
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::copyInheritableProperties): Factor out the 
          implementation here into new copyPropertiesInSet helper. This now calls the
          generalized copyPropertiesInSet function with the arguments needed to make copying
          inheritable work.
          * khtml/css/css_computedstyle.h:
          * khtml/css/css_valueimpl.cpp:
          (CSSStyleDeclarationImpl::diff): Move this function here from css_computedstyle.cpp.
          In order to do apply block properties, "regular" style declarations need to do style
          diffs as well.
          (CSSStyleDeclarationImpl::copyBlockProperties): New helper. Just like copyInheritableProperties
          except that it uses a different set of properties that apply only to blocks.
          (CSSStyleDeclarationImpl::copyPropertiesInSet): New helper that looks at a style declaration
          and copies out those properties listed in a pre-defined set.
          * khtml/css/css_valueimpl.h:
          * khtml/editing/htmlediting.cpp:
          (khtml::StyleChange::StyleChange): Modified to work with style changes that apply to a whole
          block, factoring out some of the special case code that should now only run in the inline case.
          (khtml::StyleChange::init): Factored out the code that now is in checkForLegacyHTMLStyleChange.
          (khtml::StyleChange::checkForLegacyHTMLStyleChange): New helper for case where we want
          special handling for "legacy" HTML styles like <B> and <I>.
          (khtml::ApplyStyleCommand::doApply): Much refactoring in this class to divide up the work of
          style changes into different kinds. CSS specifies certain properties only apply to certain
          element types. This set of changes now recognizes two such separate cases: styles that apply
          to blocks, and styles that apply to inlines.
          (khtml::ApplyStyleCommand::applyBlockStyle): New function to handle apply styles to whole blocks.
          (khtml::ApplyStyleCommand::applyInlineStyle): New function to handle apply styles to inlines.
          (khtml::ApplyStyleCommand::isHTMLStyleNode): Is now passed a CSSStyleDeclarationImpl to work
          with rather than working on the CSSStyleDeclarationImpl member variable of the class. This is
          done so that the function can be passed a portion of the styles being applied so that block styles
          and inline styles can be handled separately.
          (khtml::ApplyStyleCommand::removeCSSStyle): Ditto.
          (khtml::ApplyStyleCommand::removeBlockStyle): New function to handle removing styles from whole blocks.
          (khtml::ApplyStyleCommand::removeInlineStyle): New function to removing styles from inlines.
          (khtml::ApplyStyleCommand::addBlockStyleIfNeeded): New function to handle applying style to whole blocks.
          (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): New function to handle applying style to inlines.
          * khtml/editing/htmlediting.h:
          (khtml::StyleChange::): Changed as described above.
          (khtml::StyleChange::usesLegacyStyles):
          (khtml::EditCommand::setEndingSelectionNeedsLayout): New function to that tells the ending selection
          it needs to layout, even though it has not changed position in the DOM. For instance, this is needed 
          when text align changes.
          * khtml/khtml_part.cpp:
          (KHTMLPart::setTypingStyle): Put in an early bail-out in the case where the current style matches
          the passed-in argument.
          (KHTMLPart::applyStyle): Modify this function so that block styles are applied when the selection
          is a caret. Formerly, this just set typing style and made no visible changes to the document.
  
          New tests.
  
          * layout-tests/editing/editing.js: Added some glue to change text align.
          * layout-tests/editing/style/block-style-001-expected.txt: Added.
          * layout-tests/editing/style/block-style-001.html: Added.
          * layout-tests/editing/style/block-style-002-expected.txt: Added.
          * layout-tests/editing/style/block-style-002.html: Added.
          * layout-tests/editing/style/block-style-003-expected.txt: Added.
          * layout-tests/editing/style/block-style-003.html: Added.
  
  === Safari-169 ===
  
  2004-10-29  Darin Adler  <darin at apple.com>
  
          Reviewed by Kevin.
  
          - fixed <rdar://problem/3751619> Safari crash in khtml::CircularSearchBuffer::append(QChar const&)
  
          * khtml/editing/visible_text.cpp: (khtml::findPlainText): Fix exit condition to check for break
          before advancing one character; before it did it backwards.
  
  2004-10-29  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3853262> REGRESSION(166-168) gmail gets blank page when loading
  
          Reviewed by kocienda, adele.
  
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget): remove infinite frame recursion check for iframes
  
  2004-10-29  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris.
  
          - fixed <rdar://problem/3857395> clicking on calendar in Apple Travel site crashes Safari in invalidateClick (getthere.net)
  
          * khtml/khtmlview.cpp:
          (KHTMLView::viewportMousePressEvent): Use a SharedPtr<KHTMLView> to make sure the KHTMLView is not
          deleted before this function finishes running.
          (KHTMLView::viewportMouseDoubleClickEvent): Ditto.
          (KHTMLView::viewportMouseReleaseEvent): Ditto.
          (KHTMLView::dispatchMouseEvent): Removed ref/deref pairs that aren't needed since dispatchEvent
          is guaranteed to do ref/deref as needed.
  
          * kwq/KWQObject.mm: (QObject::startTimer): Fixed a comment.
  
  2004-10-28  Chris Blumenberg  <cblu at apple.com>
  
  	Enabled XSLT on Panther. See intrigue mail for compiling instructions.
  
          Reviewed by darin.
  
          * WebCore.pbproj/project.pbxproj: link against xslt unconditionally, link against specific version of libxml on Panther
          * WebCorePrefix.h: always use XSLT
  
  2004-10-28  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          Fix for these bugs:
          
          <rdar://problem/3854848> Tiger Mail Crash in WebCore - khtml::CompositeEditCommand::insertNodeAfter
          <rdar://problem/3803832> REGRESSION (Mail): incorrect behavior after Return + Delete in quoted text
          
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::DeleteSelectionCommand): Added node pointer class members 
          to initialization list, zeroing them out.
          (khtml::DeleteSelectionCommand::canPerformSpecialCaseBRDelete): New special-case helper to
          handle a delete of content in special cases where the only thing selected is a BR. This
          code path is much simpler than the newly-named performGeneralDelete, and detects when no
          content merging should be done between blocks. This aspect of the change fixes 3854848.
          One of the special cases added fixes 3803832.
          (khtml::DeleteSelectionCommand::performGeneralDelete): Renamed, from performDelete.
          (khtml::DeleteSelectionCommand::moveNodesAfterNode): Made this helper be a no-arg function, just
          like the other helpers in this class.
          (khtml::DeleteSelectionCommand::clearTransientState): Fix cut and paste error in deref code.
          (khtml::DeleteSelectionCommand::doApply): Updated for changed helpers.
          * khtml/editing/htmlediting.h: Added new helper and changed an old one.
  
  2004-10-28  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3856913> Panther-only crash in QString code copying front page of store.apple.com
  
          Reviewed by darin.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::attributedString): check that the renderer is a list item before making list item calls on it
  
  2004-10-28  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Harrison
  
          Reorganization of delete command functionality so that doApply is not
          several hundred lines long. This is not a squeaky-clean cleanup, but
          it is a step in the right direction. No functionality changes.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::DeleteSelectionCommand):
          (khtml::DeleteSelectionCommand::initializePositionData): New helper.
          (khtml::DeleteSelectionCommand::saveTypingStyleState): Ditto.
          (khtml::DeleteSelectionCommand::performDelete): Ditto.
          (khtml::DeleteSelectionCommand::fixupWhitespace): Ditto.
          (khtml::DeleteSelectionCommand::moveNodesAfterNode): Ditto.
          (khtml::DeleteSelectionCommand::calculateEndingPosition): Ditto.
          (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Ditto.
          (khtml::DeleteSelectionCommand::clearTransientState): Ditto.
          (khtml::DeleteSelectionCommand::doApply): Factor out code into new helpers.
          * khtml/editing/htmlediting.h:
  
  2004-10-28  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::DeleteSelectionCommand): Typo in initializer caused
          new mergeBlocksAfterDelete flag to be set improperly, causing layout regressions.
  
  2004-10-27  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::deleteSelection): Added new mergeBlocksAfterDelete flag to control
          whether content not in the block containing the start of the selection is moved to that block
          after the selection is deleted.
          (khtml::DeleteSelectionCommand::DeleteSelectionCommand): Ditto.
          (khtml::DeleteSelectionCommand::doApply): Ditto.
          (khtml::InputNewlineInQuotedContentCommand::InputNewlineInQuotedContentCommand): New command
          to handle the case of inserting a newline when in quoted content in Mail.
          (khtml::InputNewlineInQuotedContentCommand::~InputNewlineInQuotedContentCommand): Ditto.
          (khtml::InputNewlineInQuotedContentCommand::isMailBlockquote): Ditto.
          (khtml::InputNewlineInQuotedContentCommand::isLastVisiblePositionInBlockquote): Ditto.
          (khtml::InputNewlineInQuotedContentCommand::doApply): Ditto.
          (khtml::TypingCommand::insertNewlineInQuotedContent): Support for new newline command.
          (khtml::TypingCommand::doApply): Ditto.
          (khtml::TypingCommand::preservesTypingStyle): Ditto.
          * khtml/editing/htmlediting.h: Add new delclarations.
          (khtml::TypingCommand::): Ditto.
          * kwq/WebCoreBridge.h: Added new bridge method called from WebKit.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge insertNewlineInQuotedContent]): Ditto.
  
  2004-10-26  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3774243> page up/down, arrow up/down, etc in Safari RSS should scroll main content
  
          Reviewed by dave.
  
          * khtml/ecma/kjs_dom.cpp:
          (DOMElementProtoFunc::tryCall): added scrollByLines and scrollByPages to HTML element for Safari RSS
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMElement::):
          * khtml/ecma/kjs_dom.lut.h:
          (KJS::):
  
  2004-10-26  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3848214, deleting a partial word left a repaint artifact if the partial word was pulled back onto
  	the previous line.
  	
          Reviewed by kocienda
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
  
  2004-10-26  David Hyatt  <hyatt at apple.com>
  
  	Convert selectionRect() from using a list to a dict and patch it to be like setSelection.  It was still trying
  	to use the old dirty bit optimization (which had been removed), and so it was pathologically slow on large documents.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::selectionRect):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::hasSelectedChildren):
  
  2004-10-26  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Fix for this bug::
          
          <rdar://problem/3851164> mail crashed when I pasted a large amount of text into a reply
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): This now returns bool to
          let the caller know if a placeholder was removed.
          (khtml::ReplaceSelectionCommand::doApply): Use the bool return value from the call to
          removeBlockPlaceholderIfNeeded. If true, shift the selection to the now-empty block. In
          some cases, the selection was still set on the removed BR, and this was the cause of the
          crash.
          * khtml/editing/htmlediting.h: Change removeBlockPlaceholderIfNeeded return type.
  
  2004-10-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris.
  
          - fixed <rdar://problem/3851301> leak of one NSCFDictionary for each XMLHttpRequest issued
  
          * kwq/KWQLoader.mm: (KWQServeSynchronousRequest): Add a release.
  
  2004-10-26  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::deleteInsignificantText): Do not call replaceText
          with a zero-length string. That triggers an assert. Call deleteText instead, 
          using the same indices that are passed to replaceText.
          
          Cleaned up the asserts in these three functions below, making them
          more consistent. This is not needed for the fix, but I tripped over
          these in the course of debugging.
          
          (khtml::InsertTextCommand::InsertTextCommand):
          (khtml::InsertTextCommand::doApply):
          (khtml::InsertTextCommand::doUnapply):
  
  2004-10-25  Adele Amchan <adele at apple.com>
  
          Reviewed by Darin.
  
          * khtml/xml/dom_docimpl.cpp: (DocumentImpl::inDesignMode): made inDesignMode const
          * khtml/xml/dom_docimpl.h:
  
  2004-10-25  Adele Amchan  <adele at apple.com>
  
          Reviewed by me, code change by Darin.
  
          * khtml/xml/dom_docimpl.cpp: Moved design mode code outside the XSLT ifdef.
  
  2004-10-25  Ken Kocienda  <kocienda at apple.com>
  
          Oops. These two test results changed with my last checkin, for the better.
  
          * layout-tests/editing/deleting/delete-3800834-fix-expected.txt
          * layout-tests/editing/inserting/insert-3775316-fix-expected.txt
  
  2004-10-25  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          Fix for this bug:
          
          <rdar://problem/3820349> REGRESSION (Mail): select all, delete does not always delete everything
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::startPositionForDelete): New helper that determines when to
          expand the selection outwards when the selection is on the visible boundary of a root
          editable element. This fixes the bug. Note that this function also contains a little code
          I factored out of doApply: it also takes care of adjusting the selection in the smart delete case.
          (khtml::DeleteSelectionCommand::endPositionForDelete): Ditto.
          (khtml::DeleteSelectionCommand::doApply): Call new helpers. Refactored out the code as described.
          * khtml/editing/htmlediting.h: Declare new helpers.
          * layout-tests/editing/deleting/delete-select-all-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-select-all-001.html: Added.
          * layout-tests/editing/deleting/delete-select-all-002-expected.txt: Added.
          * layout-tests/editing/deleting/delete-select-all-002.html: Added.
          * layout-tests/editing/deleting/delete-select-all-003-expected.txt: Added.
          * layout-tests/editing/deleting/delete-select-all-003.html: Added.
  
  2004-10-25  Ken Kocienda  <kocienda at apple.com>
  
          Added some more editing layout tests.
  
          * layout-tests/editing/deleting/delete-ws-fixup-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-ws-fixup-001.html: Added.
          * layout-tests/editing/deleting/delete-ws-fixup-002-expected.txt: Added.
          * layout-tests/editing/deleting/delete-ws-fixup-002.html: Added.
          * layout-tests/editing/deleting/delete-ws-fixup-003-expected.txt: Added.
          * layout-tests/editing/deleting/delete-ws-fixup-003.html: Added.
          * layout-tests/editing/deleting/delete-ws-fixup-004-expected.txt: Added.
          * layout-tests/editing/deleting/delete-ws-fixup-004.html: Added.
          * layout-tests/editing/inserting/typing-003-expected.txt: Added.
          * layout-tests/editing/inserting/typing-003.html: Added.
  
  2004-10-25  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::findNextLineBreak): I did not get my fix for 3848343 and 3848224
          yesterday quite right: words that should have been placed on the next line were instead
          appearing on the line before, beyond the right margin. This was a one-word only error
          based on moving the line break object when it should have stayed put. Here is the rule:
          The line break object only moves to after the whitespace on the end of a line if that 
          whitespace caused line overflow when its width is added in.
  
  2004-10-25  Adele Amchan  <adele at apple.com>
  
          Reviewed by Darin.
   
          Fix for <rdar://problem/3619890> Feature request: designMode        
  
          This change implements the designMode property of a document.  This is an IE property that is also supported by Mozilla.  
          This will enable more JS editing compatibility.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::tryGet): added case for designMode
          (KJS::HTMLDocument::putValue): added case for designMode
          * khtml/ecma/kjs_html.lut.h: (KJS::): regenerated
          * khtml/khtml_part.cpp: (KHTMLPart::isContentEditable): Now returns designMode value
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl): initialize m_designMode member variable
          (DocumentImpl::setDesignMode): added function to assign m_designMode value
          (DocumentImpl::getDesignMode): return m_designMode value
          (DocumentImpl::inDesignMode): if designMode is inherited, this will find the appropriate parent document designMode and return that value. 
              Otherwise, it will just return the m_designMode value.
          (DocumentImpl::parentDocument):
          * khtml/xml/dom_docimpl.h: (DOM::DocumentImpl::): added InheritedBool enum, prototypes, and m_designMode member variable.
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::isContentEditable): added check for isContentEditable function in KHTMLPart
  
  2004-10-22  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3844662> REGRESSION (Mail): Style changes can affect adjacent, unselected text
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::doApply): Move end position downstream to be sure we remove style from
          everything that could be affected.
          (khtml::ApplyStyleCommand::removeCSSStyle): Comma in intended function call was outside the
          braces, making it act as a comma operator, with a zero value as the right value!!! This made
          an important check always fail!!! It turns out that we do not want the constant at all, since
          that constant is only needed when checking a computed style, not an inline style as is being
          done here.
          (khtml::ApplyStyleCommand::removeStyle): Call nodeFullySelected with new interface.
          (khtml::ApplyStyleCommand::nodeFullySelected): Change interface and implementation to rely on
          RangeImpl::compareBoundaryPoints to perform the required check.
          * khtml/editing/htmlediting.h: Changed nodeFullySelected function interface.
  
  2004-10-22  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Fix for this bugs:
          
          <rdar://problem/3848343> REGRESSION (Mail, 166-168u): Typed text after space at end of line before block quote does not appear
          <rdar://problem/3848224> REGRESSION (Mail): space typed at end of line vanishes after typing next character
      
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::findNextLineBreak): When the khtmlLineBreak is in AFTER_WHITE_SPACE mode, as
          it is when we are editing, add in the space of the current character when calculating the width
          of committed plus uncommitted characters. If this value exceeds the width of the line, move up
          the line break object and call skipWhitespace to move past the end of the whitespace.
  
  === Safari-168 ===
  
  2004-10-22  Ken Kocienda  <kocienda at apple.com>
  
          * WebCore.pbproj/project.pbxproj:
           Add GCC_ENABLE_OBJC_GC and GCC_FAST_OBJC_DISPATCH flags.
  
  2004-10-21  David Hyatt  <hyatt at apple.com>
  
          Reviewed by darin
  	
  	Clean up the inline run function so that it doesn't return incorrect answers when making children non-inline.
  	
  	<rdar://problem/3848724> REGRESSION (166-168u): RenderText::layout called, firing assertion that kills Mail
  	<rdar://problem/3848357> RenderText::layout called, firing assertion that kills Safari (www.apple.com/downloads/macosx)
  	
          * khtml/rendering/render_block.cpp:
          (khtml::getInlineRun):
          (khtml::RenderBlock::makeChildrenNonInline):
  
  2004-10-21  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3810389, crash because of continuation() craziness.  Revert back to the old behavior of
  	making sure that all line boxes get deleted and recreated when inlines are split because of a block.
  	
          Reviewed darin
  
          * khtml/rendering/render_inline.cpp:
          (RenderInline::splitFlow):
  
  2004-10-21  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
          
          Significant improvement to the way that whitespace is handled during editing.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::deleteInsignificantText): New functions (there are actually
          two being added with this name) that delete "insignificant" unrendered text.
          (khtml::CompositeEditCommand::deleteInsignificantTextDownstream): Takes a position,
          calculates the downstream position to use as the endpoint for the deletion, and
          then calls deleteInsignificantText with this start and end.
          (khtml::DeleteSelectionCommand::doApply): Call new deleteInsignificantTextDownstream function.
          (khtml::InputNewlineCommand::doApply): Ditto.
          (khtml::InputTextCommand::input): Ditto.
          * khtml/editing/htmlediting.h: Add new declarations.
          
          Modified layout test results:
          * layout-tests/editing/deleting/delete-block-merge-contents-016-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-017-expected.txt:
          * layout-tests/editing/deleting/delete-contiguous-ws-001-expected.txt:
          * layout-tests/editing/deleting/delete-selection-001-expected.txt:
          * layout-tests/editing/deleting/delete-tab-001-expected.txt:
          * layout-tests/editing/deleting/delete-tab-004-expected.txt:
          * layout-tests/editing/deleting/delete-trailing-ws-001-expected.txt:
          * layout-tests/editing/inserting/insert-3659587-fix-expected.txt:
          * layout-tests/editing/inserting/insert-3775316-fix-expected.txt:
          * layout-tests/editing/inserting/insert-3778059-fix-expected.txt:
          * layout-tests/editing/inserting/insert-br-001-expected.txt:
          * layout-tests/editing/inserting/insert-br-004-expected.txt:
          * layout-tests/editing/inserting/insert-br-005-expected.txt:
          * layout-tests/editing/inserting/insert-br-006-expected.txt:
          * layout-tests/editing/inserting/insert-tab-001-expected.txt:
          * layout-tests/editing/inserting/insert-tab-002-expected.txt:
          * layout-tests/editing/inserting/insert-tab-004-expected.txt:
          * layout-tests/editing/inserting/insert-text-with-newlines-expected.txt:
          * layout-tests/editing/inserting/typing-001-expected.txt:
          * layout-tests/editing/inserting/typing-around-br-001-expected.txt:
          * layout-tests/editing/inserting/typing-around-image-001-expected.txt:
          * layout-tests/editing/style/typing-style-003-expected.txt:
          * layout-tests/editing/undo/redo-typing-001-expected.txt:
          * layout-tests/editing/undo/undo-typing-001-expected.txt:
  
  2004-10-21  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3847054, assertion failure in RenderText::layout() on news.com page.  Fix getInlineRun so that
  	it no longer breaks early (thus causing some children not to get properly wrapped by anonymous blocks).
  	
          Reviewed by darin
  
          * khtml/rendering/render_block.cpp:
          (khtml::getInlineRun):
  
  2004-10-20  David Hyatt  <hyatt at apple.com>
  
  	Add better dumping of overflow information for scrolling regions.
  
  	Fix for 3726524, crash in updateLayerPosition.  Make sure anonymous elements properly remove themselves
  	from the render tree so that layers and so forth are cleaned up.
  	
          Reviewed by darin
  
          * khtml/rendering/render_container.cpp:
          (RenderContainer::detach):
          * khtml/rendering/render_layer.h:
          (khtml::RenderLayer::scrollXOffset):
          (khtml::RenderLayer::scrollYOffset):
          * kwq/KWQRenderTreeDebug.cpp:
          (write):
  
  2004-10-20  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3791146, make sure all lines are checked when computing overflow.
  	
          Reviewed by kocienda
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::computeHorizontalPositionsForLine):
          (khtml::RenderBlock::layoutInlineChildren):
          (khtml::RenderBlock::findNextLineBreak):
          (khtml::RenderBlock::checkLinesForOverflow):
          * khtml/rendering/render_block.h:
  
  2004-10-20  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3790936, make the unicode-breaking on the layout tests match Panther.
  	
          Reviewed by kocienda
  
          * khtml/rendering/break_lines.cpp:
          (khtml::isBreakable):
  
  2004-10-20  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3317107> text input fields and text areas don't respect background color and text color CSS properties
  
          * khtml/rendering/render_form.cpp: (RenderFormElement::updateFromElement):
          Create a palette with the background and foreground colors in it and set it on the widget.
  
          * khtml/rendering/render_style.h: (khtml::StyleVisualData::operator==): No palette to compare
          with APPLE_CHANGES. Removed palette and palette-related function members.
          * khtml/rendering/render_style.cpp:
          (StyleVisualData::StyleVisualData): No palette to initialize with APPLE_CHANGES.
          (RenderStyle::diff): No palette to compare.
  
          * kwq/KWQLineEdit.h: Added setPalette override. Made text function const.
          * kwq/KWQLineEdit.mm:
          (QLineEdit::setPalette): Added. Sets foreground and background color based on palette.
          (QLineEdit::text): Made const.
  
          * kwq/KWQTextEdit.h: Added setPalette override.
          * kwq/KWQTextEdit.mm: (QTextEdit::setPalette): Added. Sets foreground and background color
          based on palette.
  
          * kwq/KWQPalette.h: Removed most things, leaving only background and foreground colors
          per color group, and only a single color group per palette.
          * kwq/KWQColorGroup.mm: Removed.
          * kwq/KWQPalette.mm: Removed.
          * WebCore.pbproj/project.pbxproj: Removed KWQColorGroup.mm and KWQPalette.mm.
  
          * kwq/KWQApplication.h: Removed unused palette function.
          * kwq/KWQApplication.mm: Ditto.
  
          * kwq/KWQWidget.h: Removed unsetPalette.
          * kwq/KWQWidget.mm: Ditto.
  
          - fixed storage leak
  
          * khtml/html/html_formimpl.cpp: (DOM::HTMLGenericFormElementImpl::~HTMLGenericFormElementImpl):
          Roll in storage leak fix from KDE guys.
  
  2004-10-19  David Hyatt  <hyatt at apple.com>
  
          Reviewed by kocienda
  
  	More cleanup of block layout.  Eliminates the separate step for tables that dont fit on a line with a float
  	and consolidates it with clearing.
  
  	Also patch dom_textimpl.cpp to reduce further the # of RenderTexts created.
  	
          * khtml/rendering/render_block.cpp:
          (khtml::getInlineRun):
          (khtml::RenderBlock::layoutBlock):
          (khtml::RenderBlock::adjustFloatingBlock):
          (khtml::RenderBlock::collapseMargins):
          (khtml::RenderBlock::clearFloatsIfNeeded):
          (khtml::RenderBlock::estimateVerticalPosition):
          (khtml::RenderBlock::layoutBlockChildren):
          (khtml::RenderBlock::markAllDescendantsWithFloatsForLayout):
          (khtml::RenderBlock::getClearDelta):
          (khtml::RenderBlock::calcBlockMinMaxWidth):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_frames.cpp:
          (RenderFrameSet::layout):
          * khtml/xml/dom_textimpl.cpp:
          (TextImpl::rendererIsNeeded):
  
          Fix for 3841060, regression with * in frames.  Reviewed by kocienda.
  	
  	* layout-tests/fast/frames/002-expected.txt: Added.
          * layout-tests/fast/frames/002.html: Added.
  
   2004-10-19  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - follow-on to my fix yesterday, which broke a layout test because I rolled out a fix that Maciej had done
  
          * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::write): Need to check the actual queue of external
          scripts being loaded here. If the current code being run is the external script itself, then we don't want
          to defer parsing. But loadingExtScript has to stay true until after the script runs. The old code would
          assume that any time we're running a script there's no need to look at loadingExtScript, but that was also
          wrong since there can be a script loading in that case too. Layout tests check for both problems.
  
          * layout-tests/fast/tokenizer/external-script-document-write-expected.txt: Added.
          * layout-tests/fast/tokenizer/external-script-document-write.html: Added.
          * layout-tests/fast/tokenizer/resources/external-script-document-write.js: Added.
  
          * layout-tests/fast/tokenizer/004.html: Fixed line endings (were CR, should be LF).
  
  2004-10-18  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave Hyatt.
  
          - fixed <rdar://problem/3807234> REGRESSION (152-153): can't get element by ID that was just written with document.write in separate JS file (lacoccinelle.net)
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::scriptHandler): Use !isEmpty instead of count != 0, since it's cheaper.
          (khtml::HTMLTokenizer::write): Roll back to the old version of the check here. The fix is that
          we only want to look at loadingExtScript if m_executingScript is 0.
  
  2004-10-18  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3840907> textedit doesn't render italic or bold text in html documents
  
          * khtml/css/css_valueimpl.cpp:
          (CSSPrimitiveValueImpl::getStringValue): This function did not return string values for idents.
          Also changed the return value to be DOMString, rather than DOMStringImpl, to deal with the 
          lifecycle issues associated with creating a string to be returned in the ident case.
          * khtml/css/css_valueimpl.h: Change getStringValue to return DOMString rather than DOMStringImpl.
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty): Two calls of getStringValue needed updating.
  
  2004-10-18  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3770135> hang loading page with EMBED tag pointing to same page (tridentantennas.co.uk)
  
          Reviewed by kocienda.
  
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget): use completeURL before comparing the URL of the plug-in with the base URL of the document when avoiding frame recursion
  
  2004-10-15  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3841774> would like to get NSColor from DOM-CSS
  
          Reviewed by john.
  
          * kwq/DOM-CSS.mm:
          (-[DOMRGBColor _color]): new, returns getNSColor on KWQColor
          * kwq/DOMPrivate.h:
  
  2004-10-15  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::skipNonBreakingSpace): Also need to forego the
          skipping after a clean line break, in addition to the cases already 
          checked for.
          * layout-tests/editing/inserting/insert-br-007-expected.txt: Added.
          * layout-tests/editing/inserting/insert-br-007.html: Added.
          * layout-tests/editing/inserting/insert-br-008-expected.txt: Added.
          * layout-tests/editing/inserting/insert-br-008.html: Added.
  
  === Safari-167 ===
  
  2004-10-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3839989> REGRESSION (Mail): Left arrow does nothing after inserting attachment
  
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::deepEquivalent): Remove code that attempted to bridge old-style
          position code to new-style VisiblePosition code. In retrospect, this code was misguided.
          Since we do a good job of insulating external code from the internal workings of 
          VisiblePosition, the "hop ahead" being done here was not doing anyone any real good, and
          in the case of this bug, was doing harm. Simply removing this code makes the bug
          go away and does not cause any editing layout test regresssions.
  
  2004-10-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/rendering/bidi.cpp:
          (khtml::skipNonBreakingSpace): New helper.
          (khtml::RenderBlock::skipWhitespace): Do not skip non-breaking spaces that are
          at the start of a block. This was preventing users from typing spaces in empty
          documents.
          * layout-tests/editing/inserting/insert-space-in-empty-doc-expected.txt: Added.
          * layout-tests/editing/inserting/insert-space-in-empty-doc.html: Added.
  
  2004-10-14  Adele Amchan  <adele at apple.com>
  
          Reviewed by Darin and Ken.
  
  	fix for <rdar://problem/3821070> null de-ref in DelectSelectionCommand::doApply()
  
          This change shifts some code around so that the code that determines what typing style
          is in effect is called before deleteUnrenderedText is called.  Two asserts are also added
          to ensure that start and end nodes of the selection are in the document.
  
          * khtml/editing/htmlediting.cpp: (khtml::DeleteSelectionCommand::doApply):
  
  2004-10-14  Adele Amchan  <adele at apple.com>
  
          Reviewed by Ken
  	
  	This change makes these three functions virtual so that the work is being done in KWQHTMLPart 
          instead of khtml_part, eliminating the need for the "#if APPLE_CHANGES" statements in the khtml code.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::shouldBeginEditing):
          (KHTMLPart::shouldEndEditing):
          (KHTMLPart::isContentEditable):
          * khtml/khtml_part.h:
          * kwq/KWQKHTMLPart.h:
  
  2004-10-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Final fix for these bugs:
          
          <rdar://problem/3806306> HTML editing puts spaces at start of line
          <rdar://problem/3814252> HTML editing groups space with word causing wrapping
  
          This change sets some new CSS properties that have been added to WebCore to 
          enable whitespace-handling and line-breaking features that make WebView work
          more like a text editor.
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty): Add and remove special editing CSS properties 
          based on property value.
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::setContentEditable): Add and remove special editing CSS properties 
          based on attribute value.
          * khtml/khtml_part.cpp:
          (KHTMLPart::applyEditingStyleToBodyElement): New helper. Calls applyEditingStyleToElement on
          body element.
          (KHTMLPart::removeEditingStyleFromBodyElement): New helper. Calls removeEditingStyleFromElement on
          body element.
          (KHTMLPart::applyEditingStyleToElement): Adds special editing CSS properties to passed in element.
          (KHTMLPart::removeEditingStyleFromElement): Removes special editing CSS properties from passed in element.
          * khtml/khtml_part.h: Add new declarations.
          * kwq/WebCoreBridge.h: Ditto.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge applyEditingStyleToBodyElement]): Call through to similarly-named function on KHTMLPart.
          (-[WebCoreBridge removeEditingStyleFromBodyElement]): Ditto.
          (-[WebCoreBridge applyEditingStyleToElement:]): Ditto.
          (-[WebCoreBridge removeEditingStyleFromElement:]): Ditto.
  
  2004-10-14  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken.
          
          - fixed <rdar://problem/3840052> Crash in removeBlockPlaceholderIfNeeded attaching file to empty document
  
          * khtml/editing/htmlediting.cpp:
          (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded):
          needed a nil check to handle empty document case
  
  2004-10-13  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	<rdar://problem/3824626> Change to do colormatching for DeviceRGB colorspace causes ~11% Safari slowdown
          
  	- I fixed this by turning off all colormatching for WebKit
  	content. We might turn it back on later. For now, it's possible to
  	turn it on temporarily by defining COLORMATCH_EVERYTHING.
  	
  	* WebCorePrefix.h:
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          (Context2D::colorRefFromValue):
          (Gradient::getShading):
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::createDrawingContext):
          * kwq/KWQColor.mm:
          (QColor::getNSColor):
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (CGColorFromNSColor):
          (QPainter::selectedTextBackgroundColor):
          (QPainter::rgbColorSpace):
          (QPainter::grayColorSpace):
          (QPainter::cmykColorSpace):
          * kwq/WebCoreGraphicsBridge.h:
          * kwq/WebCoreGraphicsBridge.m:
          (-[WebCoreGraphicsBridge createRGBColorSpace]):
          (-[WebCoreGraphicsBridge createGrayColorSpace]):
          (-[WebCoreGraphicsBridge createCMYKColorSpace]):
  
  2004-10-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/css/css_valueimpl.cpp:
          (CSSStyleDeclarationImpl::merge): A little cleanup. Also, make sure m_lstValues
          is non-null before appending.
  
  2004-10-13  Ken Kocienda  <kocienda at apple.com>
  
          Update expected results for improved behavior as a result of fix to 3816768.
      
          * layout-tests/editing/deleting/delete-3775172-fix-expected.txt
          * layout-tests/editing/deleting/delete-3800834-fix-expected.txt
          * layout-tests/editing/deleting/delete-block-merge-contents-002-expected.txt
  
  2004-10-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Richard
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Add support to computed style
          for getting -khtml-line-break and -khml-nbsp-mode.
  
  2004-10-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3816768> REGRESSION (Mail): Deleting last character in block incorrectly 
          moves caret out of block.
  
          The issue here is that an empty block with no explicit height set by style collapses
          to zero height, and does so immediately after the last bit of content is removed from
          it (as a result of deleting text with the delete key for instance). Since zero-height
          blocks are not eligible caret positions, the caret jumped to the closest eligible spot.
          
          The fix is to detect when a block has not been removed itself, but has had all its 
          contents removed. In this case, a BR element is placed in the block, one that is
          specially marked as a placeholder. Later, if the block ever receives content, this
          placeholder is removed.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::blockPlaceholerClassString): String which acts as a placeholder marker class.
          (khtml::CompositeEditCommand::insertBlockPlaceholderIfNeeded): Adds a placeholder BR if needed.
          (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Removes a placeholder BR if needed.
          (khtml::DeleteSelectionCommand::moveNodesAfterNode): Call removeBlockPlaceholderIfNeeded.
          Also, do some cleanup on some old, crufty code in the move logic that is just so clearly wrong 
          (it's very clear that we needs to be able to move more than just text nodes). This may expose
          bugs, but these bugs needs to be filed and fixed, not ducked. Besides, undoing this silliness
          made the test case in the bug work.
          (khtml::DeleteSelectionCommand::doApply): Call insertBlockPlaceholderIfNeeded and
          removeBlockPlaceholderIfNeeded.
          (khtml::InputTextCommand::input): Call removeBlockPlaceholderIfNeeded.
          (khtml::ReplaceSelectionCommand::doApply): Call removeBlockPlaceholderIfNeeded.
          * khtml/editing/htmlediting.h: Declare new functions.
  
  2004-10-13  Richard Williamson   <rjw at apple.com>
  
          Added support for -apple-dashboard-region:none.  And fixed
  	a few computed style problems.
  
          Fixed <rdar://problem/3833532> -apple-dashboard-region: none; is needed
          Reviewed by Hyatt.
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
          * khtml/css/css_valueimpl.cpp:
          (CSSPrimitiveValueImpl::cssText):
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          (CSSParser::parseDashboardRegions):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/rendering/render_style.cpp:
          (RenderStyle::noneDashboardRegions):
          * khtml/rendering/render_style.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::dashboardRegionsDictionary):
  
  2004-10-13  David Hyatt  <hyatt at apple.com>
  
  	Rework block layout to clean it up and simplify it (r=kocienda).  
  
  	Also fixing the style sharing bug (r=mjs).
  	
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::MarginInfo::MarginInfo):
          (khtml::RenderBlock::layoutBlock):
          (khtml::RenderBlock::adjustPositionedBlock):
          (khtml::RenderBlock::adjustFloatingBlock):
          (khtml::RenderBlock::handleSpecialChild):
          (khtml::RenderBlock::handleFloatingOrPositionedChild):
          (khtml::RenderBlock::handleCompactChild):
          (khtml::RenderBlock::insertCompactIfNeeded):
          (khtml::RenderBlock::handleRunInChild):
          (khtml::RenderBlock::collapseMargins):
          (khtml::RenderBlock::clearFloatsIfNeeded):
          (khtml::RenderBlock::estimateVerticalPosition):
          (khtml::RenderBlock::determineHorizontalPosition):
          (khtml::RenderBlock::setCollapsedBottomMargin):
          (khtml::RenderBlock::adjustChildIfOverhangingFloatsExist):
          (khtml::RenderBlock::handleBottomOfBlock):
          (khtml::RenderBlock::layoutBlockChildren):
          (khtml::RenderBlock::getAbsoluteRepaintRectIncludingFloats):
          (khtml::RenderBlock::addOverHangingFloats):
          * khtml/rendering/render_block.h:
          (khtml::RenderBlock::maxTopMargin):
          (khtml::RenderBlock::maxBottomMargin):
          (khtml::RenderBlock::CompactInfo::compact):
          (khtml::RenderBlock::CompactInfo::block):
          (khtml::RenderBlock::CompactInfo::matches):
          (khtml::RenderBlock::CompactInfo::clear):
          (khtml::RenderBlock::CompactInfo::set):
          (khtml::RenderBlock::CompactInfo::CompactInfo):
          (khtml::RenderBlock::MarginInfo::setAtTopOfBlock):
          (khtml::RenderBlock::MarginInfo::setAtBottomOfBlock):
          (khtml::RenderBlock::MarginInfo::clearMargin):
          (khtml::RenderBlock::MarginInfo::setSelfCollapsingBlockClearedFloat):
          (khtml::RenderBlock::MarginInfo::setTopQuirk):
          (khtml::RenderBlock::MarginInfo::setBottomQuirk):
          (khtml::RenderBlock::MarginInfo::setDeterminedTopQuirk):
          (khtml::RenderBlock::MarginInfo::setPosMargin):
          (khtml::RenderBlock::MarginInfo::setNegMargin):
          (khtml::RenderBlock::MarginInfo::setPosMarginIfLarger):
          (khtml::RenderBlock::MarginInfo::setNegMarginIfLarger):
          (khtml::RenderBlock::MarginInfo::setMargin):
          (khtml::RenderBlock::MarginInfo::atTopOfBlock):
          (khtml::RenderBlock::MarginInfo::canCollapseWithTop):
          (khtml::RenderBlock::MarginInfo::canCollapseWithBottom):
          (khtml::RenderBlock::MarginInfo::canCollapseTopWithChildren):
          (khtml::RenderBlock::MarginInfo::canCollapseBottomWithChildren):
          (khtml::RenderBlock::MarginInfo::selfCollapsingBlockClearedFloat):
          (khtml::RenderBlock::MarginInfo::quirkContainer):
          (khtml::RenderBlock::MarginInfo::determinedTopQuirk):
          (khtml::RenderBlock::MarginInfo::topQuirk):
          (khtml::RenderBlock::MarginInfo::bottomQuirk):
          (khtml::RenderBlock::MarginInfo::posMargin):
          (khtml::RenderBlock::MarginInfo::negMargin):
          (khtml::RenderBlock::MarginInfo::margin):
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcAbsoluteVertical):
          * khtml/rendering/render_box.h:
          (khtml::RenderBox::marginTop):
          (khtml::RenderBox::marginBottom):
          (khtml::RenderBox::marginLeft):
          (khtml::RenderBox::marginRight):
          * khtml/rendering/render_image.cpp:
          (RenderImage::setImage):
          * khtml/rendering/render_object.cpp:
          (RenderObject::sizesToMaxWidth):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::collapsedMarginTop):
          (khtml::RenderObject::collapsedMarginBottom):
          (khtml::RenderObject::maxTopMargin):
          (khtml::RenderObject::maxBottomMargin):
          (khtml::RenderObject::marginTop):
          (khtml::RenderObject::marginBottom):
          (khtml::RenderObject::marginLeft):
          (khtml::RenderObject::marginRight):
          * khtml/rendering/render_text.h:
          (khtml::RenderText::marginLeft):
          (khtml::RenderText::marginRight):
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::recalcStyle):
  
  2004-10-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3836158> REGRESSION (Mail): command-right-arrow moves to beginning of next line
  
          * khtml/editing/selection.cpp:
          (khtml::endOfLastRunAt): Do not let the end of the last run on a line be a BR.
          This will make it seem like the run ends on the next line.
  
  2004-10-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3836986> Delete code removes elements of table structure; can result in very broken-looking web pages
  
          * khtml/editing/htmlediting.cpp:
          (khtml::isTableStructureNode): New helper. Determines whether a node is a table cell,
          row, section, or column.
          (khtml::CompositeEditCommand::removeFullySelectedNode): New helper that recurses into elements
          of table structure when doing deletes, rather than deleting the structure elements themselves.
          (khtml::DeleteSelectionCommand::moveNodesAfterNode): Do not move content between elements
          of table structure. We may want to revisit this some day, but this seems like the best behavior
          to me now.
          (khtml::DeleteSelectionCommand::doApply): Call removeFullySelectedNode instead of removeNode
          where needed.
          * khtml/editing/htmlediting.h: Add declarations for new functions.
  
  2004-10-12  Richard Williamson   <rjw at apple.com>
  
          Fixed access to DOM object via WebScriptObject API.
          The execution context for DOM objects wasn't being found.	
          <rdar://problem/3831372> The valueForKey method for @"offsetLeft" on a paragraph element causes a crash.
          Reviewed by Chris
  
          Fixed <rdar://problem/3831063> regions use left offset instead of top offset
  	Reviewed by John
  
          * khtml/khtml_part.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::addDashboardRegions):
          * kwq/DOM.mm:
          (-[DOMNode isContentEditable]):
          (-[DOMNode KJS::Bindings::]):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::executionContextForDOM):
  
  2004-10-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
  
          <rdar://problem/3834779> Mail crashes when editing HTML message - khtml::Selection::layout()
      
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::styleForSelectionStart): Table code seems to be more robust when the call to
          insert our style-checking node is done with an appendChild rather than an insertBefore. Note 
          that this table-related problem was exposed by fixing Selection::layout(), which I did
          yesterday. This change simply improves things even more so that we do not crash in the
          scenario described in the bug.
  
  2004-10-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          This is a partial fix to this bug:
          
          <rdar://problem/3832886> increase quote level on new mail document leads to immediate 
          crash in caret painting code
          
          To eliminate the bad behavior for good, I have done some investigations in Mail code,
          and I have sent a suggested code change on to Grant. Basically, Mail can't add empty
          blocks (like blockquote elements used for quoting) to documents without giving those 
          blocks some content (so they have a height).
  
          I added some other crash protections below.
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::layout): Check for non-null position after calls to VisiblePosition, since
          the VisiblePosition constructors may fail to find a visible spot in the document. Also, add
          a couple position-has-renderer assertion checks.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::styleForSelectionStart): Take out pos.isNotNull() assertion since VisiblePosition
          may not yield a position. This assertion is a holdover from before we had VisiblePosition.
          (KWQKHTMLPart::fontForSelection): Rearrange the code a little to deal with possible null results from
          calls to helpers.
  
  2004-10-11  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3834230> empty table can result in division by 0
  
          * khtml/rendering/render_table.cpp: (RenderTableSection::layoutRows):
          Added 0 check; rolled in from KDE.
  
  2004-10-11  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3818712> form checkbox value property is read only
  
          The underlying problem was that we were storing two separate values for all
          form elements; one for the value property (JavaScript) and the other for the
          value attribute (DOM). This is a good idea for text input, but not for other types.
  
          * khtml/html/html_formimpl.h: Changed setValue to take a const DOMString reference.
          Added private storesValueSeparateFromAttribute function.
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLInputElementImpl::setType): Handle type changes, including detaching and re-attaching
          if type changed, and moving value from m_value to ATTR_VALUE and vice versa.
          (DOM::HTMLInputElementImpl::type): Added a case for ISINDEX and moved the default out of the
          switch so that we will get a warning if a type is left out.
          (DOM::HTMLInputElementImpl::parseHTMLAttribute): Tweaked comment format.
          (DOM::HTMLInputElementImpl::reset): Changed to only nuke the value if the value property is stored
          separately from the attribute. Otherwise, we just want to lave it alone
          (DOM::HTMLInputElementImpl::value): Changed to always use m_value if it's not null, then fall back
          on the attribute, and finally fall back to the "on" for the checkbox only if both are null.
          (DOM::HTMLInputElementImpl::setValue): Changed to set the attribute unless the value property is
          supposed to be stored separate from the attribute.
          (DOM::HTMLInputElementImpl::storesValueSeparateFromAttribute): Added. Returns true for text-type
          input elements, and false for the others.
  
  2004-10-11  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3296652> checkbox input type does not respond to onchange
  
          * khtml/rendering/render_form.cpp:
          (RenderFormElement::updateFromElement): Some new code, commented out, for form element colors.
          (RenderCheckBox::slotStateChanged): Added call to onChange.
  
  2004-10-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Finish selection affinity implementation. This includes code to set the
          affinity correctly when clicking with the mouse, and clearing the
          affinity when altering the selection using any of the Selection object
          mutation functions.
  
          Each instance of the positionForCoordinates, inlineBox and caretRect 
          functions have been changed to include an EAffinity argument to give results
          which take this bit into account.
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::init): Default affinity is now UPSTREAM, to match AppKit.
          (khtml::Selection::modifyAffinity): New function to compute affinity based on
          modification constants.
          (khtml::Selection::moveTo): Reset affinity to UPSTREAM.
          (khtml::Selection::modifyExtendingRightForward): Ditto.
          (khtml::Selection::modifyMovingRightForward): Ditto.
          (khtml::Selection::modifyExtendingLeftBackward): Ditto.
          (khtml::Selection::modifyMovingLeftBackward): Ditto.
          (khtml::Selection::modify): Support saving, restoring, and then calculating new
          affinity value as needed. 
          (khtml::Selection::xPosForVerticalArrowNavigation):
          (khtml::Selection::clear): Reset affinity to UPSTREAM.
          (khtml::Selection::setBase): Ditto.
          (khtml::Selection::setExtent): Ditto.
          (khtml::Selection::setBaseAndExtent): Ditto.
          (khtml::Selection::layout): Pass affinity to caretRect().
          (khtml::Selection::validate): Pass along affinity parameter to new functions that
          require it.
          (khtml::startOfFirstRunAt): Changed the way that the y-coordinate search is done, to
          keep this code working with changes made in selectionForLine().
          (khtml::endOfLastRunAt): Ditto.
          (khtml::selectionForLine): Make this function work for all renderers, not just text
          renderers.
          * khtml/editing/selection.h:
          (khtml::operator==): Consider affinity in equality check.
          * khtml/editing/visible_units.cpp:
          (khtml::previousLinePosition): Pass affinity argument to function so it can take this 
          information into account while processing.
          (khtml::nextLinePosition): Ditto.
          (khtml::previousParagraphPosition): Ditto.
          (khtml::nextParagraphPosition): Ditto.
          * khtml/editing/visible_units.h: Ditto, for each of the functions listed.
          * khtml/khtml_events.cpp:
          (khtml::MouseEvent::offset): Rework code to remove dependence on NodeImpl::positionForCoordinates,
          as this function is being removed.
          * khtml/khtml_part.cpp:
          (KHTMLPart::isPointInsideSelection): Ditto.
          (KHTMLPart::selectClosestWordFromMouseEvent): Ditto.
          (KHTMLPart::handleMousePressEventTripleClick): Ditto.
          (KHTMLPart::handleMousePressEventSingleClick): Ditto. Plus, pass affinity argument in
          call to positionForCoordinates, and set resulting affinity on the selection.
          (KHTMLPart::handleMouseMoveEventSelection): Rework code to remove dependence on 
          NodeImpl::positionForCoordinates, as this function is being removed.
          (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::positionForCoordinates): Now takes an affinity argument.
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_box.cpp:
          (RenderBox::caretRect): Ditto.
          * khtml/rendering/render_box.h:
          * khtml/rendering/render_br.cpp:
          (RenderBR::positionForCoordinates): Ditto.
          (RenderBR::caretRect): Ditto.
          (RenderBR::inlineBox): Ditto.
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_container.cpp:
          (RenderContainer::positionForCoordinates): Ditto.
          * khtml/rendering/render_container.h:
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::caretRect): Ditto.
          * khtml/rendering/render_flow.h:
          * khtml/rendering/render_inline.cpp:
          (RenderInline::positionForCoordinates): Ditto.
          * khtml/rendering/render_inline.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::caretRect): Ditto.
          (RenderObject::positionForCoordinates): Ditto.
          (RenderObject::inlineBox): Ditto.
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::positionForCoordinates): Ditto.
          * khtml/rendering/render_replaced.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::positionForCoordinates): Ditto.
          (firstRendererOnNextLine): New helper used by caretRect().
          (RenderText::caretRect): Now takes an affinity argument.
          (RenderText::inlineBox): Ditto.
          * khtml/rendering/render_text.h:
          * khtml/xml/dom_nodeimpl.cpp: Remove positionForCoordinates helper.
          * khtml/xml/dom_nodeimpl.h: Ditto.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousLinePosition): Now takes an affinity argument.
          (DOM::Position::nextLinePosition): Ditto.
          * khtml/xml/dom_position.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge caretRectAtNode:offset:affinity:]): Ditto.
          (-[WebCoreBridge setSelectedDOMRange:affinity:]): Ditto.
          (-[WebCoreBridge _positionForPoint:]): Rework code to remove dependence on 
          NodeImpl::positionForCoordinates, as this function is being removed.
  
  2004-10-11  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3670280> scroll position on overflowed textareas resets when leaving the tab
  
          * kwq/KWQTextArea.mm: (-[KWQTextAreaTextView becomeFirstResponder]):
          Scroll to reveal the text area, don't scroll to reveal the text view itself.
          Scrolling the text view ended up putting it at the top left, regardless of
          where the insertion point is.
  
  2004-10-11  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3831546> More text is copied than is visually selected
  
          The bug here is that upstream was moving a position too far.
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::upstream): Use the "deep equivalent" node rather than the original node passed
          in for various checks. Also use local variables a bit more for slightly more efficiency.
          (DOM::Position::downstream): Ditto.
  
  2004-10-11  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3833841> adding an event listener for keypress events does not work
  
          * khtml/xml/dom2_eventsimpl.h: Added numEventIds and made typeToId take a const DOMString &.
          * khtml/xml/dom2_eventsimpl.cpp:
          (EventImpl::typeToId): Changed to use table. Added "keypress", otherwise, the same as before.
          (EventImpl::idToType): Changed to use table.
  
  2004-10-10  John Sullivan  <sullivan at apple.com>
  
          - fixed <rdar://problem/3664375> repro crash in -[KWQAccObject accessibilityAttributeNames]
  
          (-[KWQAccObject accessibilityActionNames]):
          check for nil m_renderer
  
  2004-10-09  Darin Adler  <darin at apple.com>
  
          Reviewed by Kevin.
  
          - fixed <rdar://problem/3828147> REGRESSION: textareas with wrap="off" show their contents in a thin vertical line of text
  
          * kwq/KWQTextArea.h: Added setTextColor and setBackgroundColor methods. This is really for another fix
          I'm landing later, but it does no harm to add these now.
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea _configureTextViewForWordWrapMode]): Set the container size after changing the flag that
          determines if the width tracks the text view. Otherwise, we won't successfully set the width in the case
          where we don't want it to track the text view. This caused the bug. 
          (-[KWQTextArea _createTextView]): Remove unneeded call to setMaxSize. The above method already does that.
          (-[KWQTextArea setTextColor:]): Added.
          (-[KWQTextArea setBackgroundColor:]): Added.
  
  2004-10-09  Darin Adler  <darin at apple.com>
  
          Reviewed by Adele.
  
          - fixed <rdar://problem/3829452> REGRESSION (156-157): onload handler doesn't run on page with meta refresh of 0 duration (new Apple start page)
  
          The fix for <rdar://problem/3773150> made it so <meta> redirects prevent tokenizing the rest of the page.
          This is incorrect; the reason the JavaScript-triggered loads prevent tokenizing is that they take place
          "right away" in other browsers, but that is not true of <meta> redirect. We fixed this by using a separate
          call for <meta> redirect and not preventing tokenizing when that's in effect.
  
          * khtml/khtml_part.h: Removed userGesture parameter from scheduleRedirection. Renamed
          isImmediateRedirectPending to isScheduledLocationChangePending. Added scheduleLocationChange.
          * khtml/khtml_part.cpp:
          (KHTMLPart::openURL): Updated for new constant name.
          (KHTMLPart::scheduleRedirection): Removed now-unneeded userGesture parameter, and removed code that
          does the special case for redirection during load; a <meta> refresh can never be one of those special
          redirects during a load because it redirects the frame itself, not another frame. Also tightened up
          the logic by always stopping the redirect timer even if we aren't restarting it.
          (KHTMLPart::scheduleLocationChange): Added. Like scheduleRedirection, but with a different constant
          so we can tell it apart and always a delay of 0. The "redirection during load" case was moved in here
          and renamed to locationChangeScheduledDuringLoad.
          (KHTMLPart::isScheduledLocationChangePending): Renamed from isImmediateRedirectPending. This now
          returns true only for location changes and history navigation, not <meta> redirects.
          (KHTMLPart::scheduleHistoryNavigation): Tightened up logic to do the stop() outside the if as above,
          and got rid of a silly timer delay computation that always resulted in 0.
  
          * khtml/khtmlpart_p.h: Added a new value to the RedirectionScheduled enum for scheduleLocationChange
          and also renamed one of the existing values.
  
          * khtml/html/htmltokenizer.cpp: (HTMLTokenizer::write): Changed to use isScheduledLocationChangePending instead
          of isImmediateRedirectPending, because we do want to continue tokenizing if it's actually a redirect.
  
          * khtml/ecma/kjs_html.cpp: (KJS::HTMLDocument::putValue): Changed to call the new scheduleLocationChange
          instead of calling scheduleRedirection with delay of 0.
          * khtml/ecma/kjs_window.cpp:
          (Window::put): Ditto.
          (WindowFunc::tryCall): Ditto.
          (Location::put): Ditto.
          (LocationFunc::tryCall): Ditto.
  
  2004-10-09  Darin Adler  <darin at apple.com>
  
          Reviewed by Kevin.
  
          - fixed <rdar://problem/3658277> REGRESSION (1.1-1.2): form submission should either not simulate a click at all or use (0,0) the way Mozilla does
  
          * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::click): Use 0,0 for the coordinates.
  
  2004-10-09  Darin Adler  <darin at apple.com>
  
          Reviewed by Kevin.
  
          - fixed <rdar://problem/3804665> REGRESSION: WebCore framework now has many init routines
  
          * khtml/xml/dom_nodeimpl.h: Changed anyQName declaration to not use the inline function
          makeId. Surprisingly, the inline function was not "constant-folded" and we ended up with
          a copy of the function in each file as an init routine for the framework.
  
          * khtml/ecma/kjs_html.cpp: (Gradient::colorStops): Get rid of initialized ColorStop
          globals; their constructors were showing up as init routines for the framework.
  
          * khtml/rendering/render_style.h: Got rid of inline initialDashboardRegions function.
          * khtml/rendering/render_style.cpp: (RenderStyle::initialDashboardRegions): Made this
          a normal function. When it was an inline function, the constructors for the per-file
          copies of the globals were showing up as init routines for the framework.
  
  2004-10-09  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: 
  	<rdar://problem/3625352> up and down arrow and page up/down keys don't work to scroll overflow:auto/scroll/overlay areas
  	<rdar://problem/3397658> scroll wheel does not work to scroll overflow:auto/scroll/overlay areas (RSS)
  	<rdar://problem/3822027> REGRESSION (Mail): When selection moves out of visible area, should center as NSText does
  
          Reviewed by hyatt, kocienda.
  
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::scroll): new
          * khtml/rendering/render_layer.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::scroll): new
          * khtml/rendering/render_object.h:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::scrollOverflow): new
          (KWQKHTMLPart::scrollOverflowWithScrollWheelEvent): new
          (KWQKHTMLPart::khtmlMousePressEvent): store pressed node so we know where the focus is
          * kwq/KWQScrollBar.h:
          * kwq/KWQScrollBar.mm:
          (QScrollBar::setValue): return a bool
          (QScrollBar::scrollbarHit): ditto
          (QScrollBar::scroll): new
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge scrollOverflowInDirection:granularity:]): new
          (-[WebCoreBridge scrollOverflowWithScrollWheelEvent:]): new
          (-[WebCoreBridge ensureSelectionVisible]): visually center the extent of the selection
  
  2004-10-06  David Hyatt  <hyatt at apple.com>
  
  	Back out style sharing perf fix.
  	
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::locateCousinList):
          (khtml::CSSStyleSelector::canShareStyleWithElement):
          (khtml::CSSStyleSelector::locateSharedStyle):
          * khtml/css/cssstyleselector.h:
          * khtml/html/html_elementimpl.h:
          (DOM::HTMLElementImpl::inlineStyleDecl):
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::recalcStyle):
          * khtml/xml/dom_elementimpl.h:
  
  === Safari-166 ===
  
  2004-10-05  David Hyatt  <hyatt at apple.com>
  
  	Fix a bug in the iteration of locateCousinList and clean up the style sharing stats code.
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::locateCousinList):
          (khtml::CSSStyleSelector::elementsCanShareStyle):
          (khtml::CSSStyleSelector::locateSharedStyle):
          (khtml::CSSStyleSelector::styleForElement):
  
  2004-10-05  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::computeHorizontalPositionsForLine): Fix coding mistake that
          broke layout tests involving compacts.
  
  2004-10-05  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Finish selection affinity implementation. This includes code to set the
          affinity correctly when clicking with the mouse, and clearing the
          affinity when altering the selection using any of the Selection object
          mutation functions.
  
          Each instance of the positionForCoordinates function in the render tree
          has been changed to include an EAffinity argument. It is now the job of this
          function to set the selection affinity.
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::moveTo): Set affinity to DOWNSTREAM.
          (khtml::Selection::modify): Ditto.
          (khtml::Selection::clear): Ditto.
          (khtml::Selection::setBase): Ditto.
          (khtml::Selection::setExtent): Ditto.
          (khtml::Selection::setBaseAndExtent): Ditto.
          * khtml/editing/selection.h:
          (khtml::operator==): Consider affinity in equality check.
          * khtml/khtml_events.cpp:
          (khtml::MouseEvent::offset): Rework code to remove dependence on NodeImpl::positionForCoordinates,
          as this function is being removed.
          * khtml/khtml_part.cpp: 
          (KHTMLPart::isPointInsideSelection): Ditto.
          (KHTMLPart::selectClosestWordFromMouseEvent): Ditto.
          (KHTMLPart::handleMousePressEventTripleClick): Ditto.
          (KHTMLPart::handleMousePressEventSingleClick): Ditto. Plus, pass affinity argument in
          call to positionForCoordinates, and set resulting affinity on the selection.
          (KHTMLPart::handleMouseMoveEventSelection): Rework code to remove dependence on 
          NodeImpl::positionForCoordinates, as this function is being removed.
          (KHTMLPart::khtmlMouseReleaseEvent):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::positionForCoordinates): Changed, as described above.
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_br.cpp:
          (RenderBR::positionForCoordinates): Ditto.
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_container.cpp:
          (RenderContainer::positionForCoordinates): Ditto.
          * khtml/rendering/render_container.h:
          * khtml/rendering/render_inline.cpp:
          (RenderInline::positionForCoordinates): Ditto.
          * khtml/rendering/render_inline.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::positionForCoordinates): Ditto.
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::positionForCoordinates): Ditto.
          * khtml/rendering/render_replaced.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::positionForCoordinates): Ditto.
          * khtml/rendering/render_text.h:
          * khtml/xml/dom_nodeimpl.cpp: Removed positionForCoordinates convenience.
          * khtml/xml/dom_nodeimpl.h: Ditto.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge _positionForPoint:]): Rework code to remove dependence on 
          NodeImpl::positionForCoordinates, as this function is being removed.
  
  2004-10-05  David Hyatt  <hyatt at apple.com>
  
  	Fix style sharing optimization to be fast again.  Go back to using pointer comparisons when looking for
  	cousins to share.
  	
          Reviewed by darin
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::locateCousinList):
          * khtml/rendering/render_object.cpp:
          (RenderObject::setStyleInternal):
          * khtml/rendering/render_object.h:
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::recalcStyle):
  
  2004-10-05  David Hyatt  <hyatt at apple.com>
  
  	Fix lists so that they properly participate in line layout as though they are text (when text bullets are
  	used) and as images (when image bullets are used).
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_list.cpp:
          (RenderListMarker::createInlineBox):
          * khtml/rendering/render_list.h:
          (khtml::ListMarkerBox:::InlineBox):
          (khtml::ListMarkerBox::isText):
  
  2004-10-05  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Recent checkin adding upstreamDeepEquivalent had it backwards. The helper
          we want is downstreamDeepEquivalent, as the deepEquivalent function returns
          an upstream position.
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::layout): DOWNSTREAM case now uses downstreamDeepEquivalent.
          UPSTREAM uses deepEquivalent.
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::downstreamDeepEquivalent): New helper, replacing 
          upstreamDeepEquivalent.
          * khtml/editing/visible_position.h
  
  2004-10-05  David Hyatt  <hyatt at apple.com>
  
  	New selection gap-filling architecture.  Makes the gap-filling much more like NSTextView and puts the responsibility
  	for gap-filling in the block.  Fixes numerous bugs with selection drawing including bidi issues, incorrect old
  	horizontal gap filling, and selection performance issues.
  	
          Reviewed by kocienda
  
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageLoader::notifyFinished):
          * khtml/misc/khtmllayout.h:
          (khtml::GapRects::left):
          (khtml::GapRects::center):
          (khtml::GapRects::right):
          (khtml::GapRects::uniteLeft):
          (khtml::GapRects::uniteCenter):
          (khtml::GapRects::uniteRight):
          (khtml::GapRects::unite):
          (khtml::GapRects::operator QRect):
          (khtml::GapRects::operator==):
          (khtml::GapRects::operator!=):
          * khtml/rendering/font.cpp:
          (Font::drawHighlightForText):
          * khtml/rendering/font.h:
          * khtml/rendering/render_block.cpp:
          (khtml:::RenderFlow):
          (khtml::RenderBlock::removeChild):
          (khtml::RenderBlock::paintObject):
          (khtml::RenderBlock::paintEllipsisBoxes):
          (khtml::RenderBlock::setSelectionState):
          (khtml::RenderBlock::shouldPaintSelectionGaps):
          (khtml::RenderBlock::isSelectionRoot):
          (khtml::RenderBlock::selectionGapRects):
          (khtml::RenderBlock::paintSelection):
          (khtml::RenderBlock::fillSelectionGaps):
          (khtml::RenderBlock::fillInlineSelectionGaps):
          (khtml::RenderBlock::fillBlockSelectionGaps):
          (khtml::RenderBlock::fillHorizontalSelectionGap):
          (khtml::RenderBlock::fillVerticalSelectionGap):
          (khtml::RenderBlock::fillLeftSelectionGap):
          (khtml::RenderBlock::fillRightSelectionGap):
          (khtml::RenderBlock::getHorizontalSelectionGapInfo):
          (khtml::RenderBlock::leftSelectionOffset):
          (khtml::RenderBlock::rightSelectionOffset):
          * khtml/rendering/render_block.h:
          (khtml::RenderBlock::hasSelectedChildren):
          (khtml::RenderBlock::selectionState):
          (khtml::RenderBlock::BlockSelectionInfo::BlockSelectionInfo):
          (khtml::RenderBlock::BlockSelectionInfo::rects):
          (khtml::RenderBlock::BlockSelectionInfo::state):
          (khtml::RenderBlock::BlockSelectionInfo::block):
          (khtml::RenderBlock::selectionRect):
          * khtml/rendering/render_box.cpp:
          (RenderBox::position):
          * khtml/rendering/render_br.cpp:
          (RenderBR::inlineBox):
          * khtml/rendering/render_br.h:
          (khtml::RenderBR::selectionRect):
          (khtml::RenderBR::paint):
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::selectionRect):
          (RenderCanvas::setSelection):
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::paint):
          * khtml/rendering/render_image.cpp:
          (RenderImage::paint):
          * khtml/rendering/render_image.h:
          * khtml/rendering/render_line.cpp:
          (khtml::InlineBox::nextLeafChild):
          (khtml::InlineBox::prevLeafChild):
          (khtml::InlineBox::selectionState):
          (khtml::InlineFlowBox::addToLine):
          (khtml::InlineFlowBox::firstLeafChild):
          (khtml::InlineFlowBox::lastLeafChild):
          (khtml::InlineFlowBox::firstLeafChildAfterBox):
          (khtml::InlineFlowBox::lastLeafChildBeforeBox):
          (khtml::InlineFlowBox::selectionState):
          (khtml::RootInlineBox::fillLineSelectionGap):
          (khtml::RootInlineBox::setHasSelectedChildren):
          (khtml::RootInlineBox::selectionState):
          (khtml::RootInlineBox::firstSelectedBox):
          (khtml::RootInlineBox::lastSelectedBox):
          (khtml::RootInlineBox::selectionTop):
          (khtml::RootInlineBox::block):
          * khtml/rendering/render_line.h:
          (khtml::RootInlineBox::RootInlineBox):
          (khtml::RootInlineBox::hasSelectedChildren):
          (khtml::RootInlineBox::selectionHeight):
          * khtml/rendering/render_object.cpp:
          (RenderObject::selectionColor):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::):
          (khtml::RenderObject::selectionState):
          (khtml::RenderObject::setSelectionState):
          (khtml::RenderObject::selectionRect):
          (khtml::RenderObject::canBeSelectionLeaf):
          (khtml::RenderObject::hasSelectedChildren):
          (khtml::RenderObject::hasDirtySelectionState):
          (khtml::RenderObject::setHasDirtySelectionState):
          (khtml::RenderObject::shouldPaintSelectionGaps):
          (khtml::RenderObject::SelectionInfo::SelectionInfo):
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::RenderReplaced):
          (RenderReplaced::shouldPaint):
          (RenderReplaced::selectionRect):
          (RenderReplaced::setSelectionState):
          (RenderReplaced::selectionColor):
          (RenderWidget::paint):
          (RenderWidget::setSelectionState):
          * khtml/rendering/render_replaced.h:
          (khtml::RenderReplaced::canBeSelectionLeaf):
          (khtml::RenderReplaced::selectionState):
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::checkVerticalPoint):
          (InlineTextBox::isSelected):
          (InlineTextBox::selectionState):
          (InlineTextBox::selectionRect):
          (InlineTextBox::paintSelection):
          (InlineTextBox::paintMarkedTextBackground):
          (RenderText::paint):
          (RenderText::setSelectionState):
          (RenderText::selectionRect):
          * khtml/rendering/render_text.h:
          (khtml::RenderText::canBeSelectionLeaf):
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (QPainter::drawHighlightForText):
          * kwq/KWQPtrDict.h:
          (QPtrDictIterator::toFirst):
          * kwq/KWQRect.mm:
          (QRect::unite):
          * kwq/WebCoreTextRenderer.h:
          * kwq/WebCoreTextRendererFactory.mm:
          (WebCoreInitializeEmptyTextGeometry):
  
  2004-10-05  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
          
          Use the new CSS properties I added with my previous check-in. Also makes
          some changes to caret positioning and drawing to make the proper editing
          end-of-line behavior work correctly.
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::layout): Caret drawing now takes affinity into account
          when deciding where to paint the caret (finally!).
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::previousVisiblePosition): Move off Position::rendersInDifferentPosition
          to determine the result. Use a simpler test involving comparisons between
          downstream positions while iterating. This is cheaper to do and easier to understand.
          (khtml::VisiblePosition::nextVisiblePosition): Ditto.
          * khtml/rendering/bidi.cpp:
          (khtml::BidiIterator::current): Do not return non-breaking spaces for empty
          text renderers and for non-text renderers. Return a null Qchar instead. Returning
          non-breaking spaces was causing errors when the new -khtml-nbsp-mode was set to "space".
          (khtml::RenderBlock::computeHorizontalPositionsForLine): Shrink line boxes that 
          contain with more spaces than can fit on the end of a line.
          (khtml::RenderBlock::skipWhitespace): Factor this out from findNextLineBreak.
          (khtml::RenderBlock::findNextLineBreak): Use new skipWhitespace function. Add
          in code to check and use new CSS properties.
          * khtml/rendering/break_lines.cpp:
          (khtml::isBreakable): Consider a non-breaking space a breakable character based
          on setting of new -khtml-nbsp-mode property.
          * khtml/rendering/break_lines.h: Ditto.
          * khtml/rendering/render_block.h: Declare skipWhitespace function.
          * khtml/rendering/render_text.cpp: 
          (RenderText::caretRect): Do not draw the caret beyond the right edge of the
          window when in white-space normal mode.
  
  2004-10-05  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for these bugs:
          
          In this patch, I add two new CSS properties and their associated behavior.
          This is to support end-of-line and word-wrapping features that match the 
          conventions of text editors.
  
          There are also some other small changes here which begin to lay the groundwork
          for using these new properties to bring about the desired editing behavior.
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue): Add support for new CSS properties.
          * khtml/css/cssproperties.c: Generated file.
          * khtml/css/cssproperties.h: Ditto.
          * khtml/css/cssproperties.in: Add new properties.
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty): Add support for new CSS properties.
          * khtml/css/cssvalues.c: Generated file.
          * khtml/css/cssvalues.h: Ditto.
          * khtml/css/cssvalues.in:  Add support for new CSS properties.
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::upstreamDeepEquivalent): Added new helper.
          * khtml/editing/visible_position.h:
          * khtml/rendering/render_box.cpp:
          (RenderBox::deleteLineBoxWrapper): Zero out inlineBoxWrapper.
          * khtml/rendering/render_replaced.cpp:
          (RenderWidget::detach): Zero out inlineBoxWrapper.
          * khtml/rendering/render_style.cpp:
          (StyleCSS3InheritedData):
          (StyleCSS3InheritedData::operator==): Add support for new CSS properties.
          (RenderStyle::diff): Ditto.
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::nbspMode): Ditto.
          (khtml::RenderStyle::khtmlLineBreak): Ditto.
          (khtml::RenderStyle::setNBSPMode): Ditto.
          (khtml::RenderStyle::setKHTMLLineBreak): Ditto.
          (khtml::RenderStyle::initialNBSPMode): Ditto.
          (khtml::RenderStyle::initialKHTMLLineBreak): Ditto.
  
  2004-10-05  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3673150> Pasting string from clipboard that is longer than input box will accept fails rather than truncating
  
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldFormatter isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:]):
          Wrote a new version of this method that truncates incoming strings rather than rejecting them
          out of hand.
  
  2004-10-04  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3826343> crash in KHTMLParser::setCurrent parsing document fragment (happens in Calendar widget)
  
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::KHTMLParser): Initialized currentIsReferenced to false (fixes bug).
          (KHTMLParser::reset): Use doc() to make code easier to read.
          (KHTMLParser::setCurrent): Ditto.
          (KHTMLParser::parseToken): Ditto.
          (KHTMLParser::insertNode): Ditto.
          (KHTMLParser::getElement): Ditto.
          (KHTMLParser::popOneBlock): Ditto.
  
          - fixed <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window
  
          * kwq/KWQKHTMLPart.h: Added fontAttributesForSelectionStart.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::styleForSelectionStart): Factored out most of fontForSelection.
          (KWQKHTMLPart::fontAttributesForSelectionStart): Added.
          (KWQKHTMLPart::fontAttributesForSelectionStart): Added.
          (KWQKHTMLPart::registerCommandForUndo): Updated for name change (see below).
          (KWQKHTMLPart::registerCommandForRedo): Ditto.
  
          * kwq/WebCoreBridge.h: Added fontAttributesForSelectionStart.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge undoEditing:]): Updated for name change (see below).
          (-[WebCoreBridge redoEditing:]): Ditto.
          (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:]): Got rid of named temporary
          EditCommandPtr variable to make things slightly more terse.
          (-[WebCoreBridge moveSelectionToDragCaret:smartMove:]): Ditto.
          (-[WebCoreBridge deleteSelectionWithSmartDelete:]): Ditto.
          (-[WebCoreBridge fontAttributesForSelectionStart]): Added.
  
          - fix compile on Panther and other cleanup
  
          * khtml/khtml_part.cpp: Removed unneeded include.
          * kwq/KWQEditCommand.h: Got rid of use of "impl" when referring to EditCommand pointers.
          * kwq/KWQEditCommand.mm: Added include so we compile on Panther.
          (-[KWQEditCommand initWithEditCommand:]): Changed name.
          (-[KWQEditCommand dealloc]): Updated for m_impl change to m_command.
          (-[KWQEditCommand finalize]): Ditto.
          (+[KWQEditCommand commandWithEditCommand:]): Changed name.
          (-[KWQEditCommand command]): Changed name.
  
  2004-10-04  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - did a more-robust version of the fix I just landed
  
          * khtml/html/htmlparser.h: Added currentIsReferenced boolean.
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::KHTMLParser): Initializes currentIsReferenced.
          (KHTMLParser::setCurrent): Changed to respect and set currentIsReferenced.
  
  2004-10-04  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3824393> REGRESSION (165-TOT): Crash in KHTMLParser::popOneBlock closing window (bose.com)
  
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::~KHTMLParser): Move call to setCurrent(0) after the call to freeBlock, since freeBlock doesn't
          work well when current is 0, and there's no reason we need to reset the current block first.
          (KHTMLParser::setCurrent): Don't ever hold a reference to the document. This prevents a situation where there
          would be a reference cycle. In the test case from the bug above, this cycle actually happened and resulted
          in a double-delete of the document, tokenizer, and parser.
  
  2004-10-04  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3825429> onclick handler called when mouse down on another element (affects Dashboard Movies widget, test case enclosed)
  
          * khtml/khtmlview.cpp:
          (KHTMLViewPrivate::KHTMLViewPrivate): Initialize the click node to 0.
          (KHTMLViewPrivate::~KHTMLViewPrivate): Deref the click node.
          (KHTMLViewPrivate::reset): Clear the click node.
          (KHTMLView::viewportMousePressEvent): Call invalidateClick when we pass the event to a subframe to
          reduce the chance that we'll hold on to an old click node for a long time. Set the click node to
          the node we we are clicking on.
          (KHTMLView::viewportMouseDoubleClickEvent): Only send a click even if the node is the same one from
          the original click. Call invalidateClick when done to reduce the chance that we'll hold on to an
          old click node for a long time.
          (KHTMLView::invalidateClick): Clear the click node.
          (KHTMLView::viewportMouseReleaseEvent): Only send a click even if the node is the same one from
          the original click. Call invalidateClick when done to reduce the chance that we'll hold on to an
          old click node for a long time.
          (KHTMLView::keyPressEvent): Remove code that sets the originalNode field, which is never used.
  
  2004-10-04  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3825289> REGRESSION (Mail): Crash in fontForSelection in empty window
  
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::previousPosition): Switch to node iteration instead "leaf"
          iteration. I have been wanting to make this change for a long time, but couldn't
          since other code relied on the leaf behavior. That is no longer true. Plus, the
          bug fix requires the new behavior.
          (khtml::VisiblePosition::nextPosition): Ditto.
          (khtml::VisiblePosition::isCandidate): Empty blocks needed a height to be a candidate,
          but we make a special case for the body element. This fixes the bug.
  
  2004-10-04  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3800667> REGRESSION (Mail): double-clicking multiple spaces only selects two spaces
  
          * kwq/KWQTextUtilities.mm: (KWQFindWordBoundary): Moved here from the .cpp file. Changed to use the
          doubleClickAtIndex: method from NSAttributedString rather than using Unicode Utilities.
          * kwq/KWQTextUtilities.cpp: Removed.
          * WebCore.pbproj/project.pbxproj: Removed KWQTextUtilities.cpp.
  
          - fixed a problem that would show up using HTML editing under garbage collection
  
          * kwq/KWQEditCommand.mm: (-[KWQEditCommand finalize]): Fixed a [super dealloc] that should have been a
          [super finalize].
  
          - another small change
  
          * khtml/editing/visible_units.cpp: (khtml::nextWordBoundary): Tweaked a comment.
  
  2004-10-01  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken (or arguably done by Ken, reviewed by Darin).
  
          - fixed <rdar://problem/3823828> REGRESSION (Mail): Clicking past end of any line puts insertion point at beginning of next line
  
          * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::VisiblePosition):
          Check for an offset of 0 and a <br> and use UPSTREAM affinity in that case.
          This is a short term fix for something that needs a better longer-term fix.
  
          - fixed <rdar://problem/3823816> REGRESSION (Mail): double-clicking first word on line also selects previous empty line
  
          * khtml/editing/visible_units.cpp: (khtml::previousWordBoundary): Added a special
          case for <br>. While I'm not sure why this regressed, I'm sure this fix is good.
  
  2004-10-01  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3782117> CrashTracer: ..722 crashes at com.apple.WebCore: DOM::HTMLBodyElementImpl::insertedIntoDocument + 0x2c (AOL website)
  
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::insertedIntoDocument): Check for nil document case.
          (HTMLFrameElementImpl::isURLAllowed): Ditto.
          (HTMLFrameElementImpl::openURL): Ditto.
  
  2004-10-01  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3822218> REGRESSION (164-165): images don't update on rollover on directv.com page
  
          I introduced a major regression where various JavaScript window properties would not be found when I
          fixed bug 3809600.
  
          * khtml/ecma/kjs_window.h: Added hasProperty.
          * khtml/ecma/kjs_window.cpp: (Window::hasProperty): Return true in all the cases where get returns something.
  
  2004-09-30  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3461499> JavaScript function document.open() is buggy with 2nd argument "replace"
  
          Experiments with Firefox indicate that document.open() should not be treated as window.open() unless there
          are more than two parameters. Also, Firefox does not implement the "replace" behavior, so we don't have
          to worry about it either.
  
          * khtml/ecma/kjs_html.cpp: (KJS::HTMLDocFunction::tryCall): Only forward to window if there are more than
          two parameters, rather than if there are more than one.
  
          - fixed <rdar://problem/3672933> oninput is firing at page load time for <input type=range>
  
          * kwq/KWQSlider.mm: (QSlider::setValue): Don't emit a signal here. This follows the usual pattern, where
          a signal is only emitted for changes that are not explicitly requested by the caller.
  
          - fixed <rdar://problem/3821167> leaks of something allocated by recalcStyle after loading altavista page from cvs-base
  
          * khtml/xml/dom_docimpl.cpp: (DocumentImpl::recalcStyle): Ref and deref the style we allocate so it's
          not left floating if setStyle decides not to ref it.
  
          - fixed <rdar://problem/3821172> leak of HTML attribute string after loading the ESPN page from cvs-base
  
          * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseHTMLAttribute): Use the DOMString version of
          the lower() operation so we don't end up leaving a DOMStringImpl * floating if AtomicString decides not
          to ref it.
  
  2004-09-30  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3822330> REGRESSION: crash on launch when homepage is set to about:blank
  	
  	Added nil check.
  	
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::setDisplaysWithFocusAttributes):
  
  2004-09-30  Chris Blumenberg  <cblu at apple.com>
  	
  	Fixed: <rdar://problem/3792822> Safari is calling the Cocoa QuickTime plugin twice for the OBJECT and EMBED tags
  
          Reviewed by hyatt.
  
          * khtml/html/html_objectimpl.cpp:
          (HTMLObjectElementImpl::attach): call dispatchHTMLEvent after updateWidget instead of every time this method is called
          (HTMLObjectElementImpl::recalcStyle): ditto
  
  2004-09-30  Darin Adler  <darin at apple.com>
  
          - rolled out bad image change that caused performance regression
  
          * khtml/rendering/render_image.cpp: (RenderImage::setPixmap):
          Don't reference the new image before doing the assignment.
          This forced an unwanted.
  
  2004-09-30  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me, coded by Darin
  
          - fixed <rdar://problem/3818305> REGRESSION (Mail): Shift + page up has no effect; should modify selection
  
          * khtml/editing/selection.cpp: (khtml::Selection::modify): Fix problem where vertical distance
          was used as a distance threshold, but was a negative number. Now make it positive at the start
          of the function (and make a couple related changes).
  
  2004-09-29  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3779998> bringing window to front or sending to back does not send focus/blur events to JavaScript window object
  
  	The fix has two parts, 1) make onblur and onfocus work for windows, 
          and 2), allow the dashboard to override WebKit's special key/non-key
          behaviors.
  
          Reviewed by Chris.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::setDisplaysWithFocusAttributes):
  
  2004-09-29  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Fix for this bug:
          
          <rdar://problem/3705894> REGRESSION (Mail): if a single word is wider than the window, 
          it doesn't break and just runs off the right side
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Add support for CSS_PROP_WORD_WRAP.
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue): Ditto.
          * khtml/css/cssproperties.c: Generated file.
          * khtml/css/cssproperties.h: Ditto.
          * khtml/css/cssproperties.in: Add word-wrap property.
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty): Add support for CSS_PROP_WORD_WRAP.
          * khtml/css/cssvalues.c: Generated file.
          * khtml/css/cssvalues.h: Ditto.
          * khtml/css/cssvalues.in: Add break-word value.
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::findNextLineBreak): Add code to implement new word wrapping feature.
          * khtml/rendering/render_style.cpp:
          (StyleCSS3InheritedData): Add support for new wordWrap property.
          (StyleCSS3InheritedData::operator==): Ditto.
          (RenderStyle::diff): Ditto.
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::wordWrap): Ditto.
          (khtml::RenderStyle::setWordWrap): Ditto.
          (khtml::RenderStyle::initialWordWrap): Ditto.
  
  2004-09-29  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- consolidated OS version checks into prefix header
  
          * WebCorePrefix.h:
          * khtml/rendering/render_canvasimage.cpp:
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject roleDescription]):
          (-[KWQAccObject accessibilityActionDescription:]):
          * kwq/KWQComboBox.mm:
          (QComboBox::QComboBox):
          * kwq/KWQFoundationExtras.h:
  
  2004-09-29  David Hyatt  <hyatt at apple.com>
  
  	Make sure <br>s always get line boxes.  Also prevent the creation of RenderTexts for whitespace normal/nowrap nodes
  	that follow <br>s.
  	
          Reviewed by kocienda
  
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::isCandidate):
          * khtml/rendering/render_br.cpp:
          (RenderBR::RenderBR):
          (RenderBR::createInlineBox):
          (RenderBR::baselinePosition):
          (RenderBR::lineHeight):
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_line.cpp:
          (khtml::InlineFlowBox::placeBoxesVertically):
          * khtml/rendering/render_line.h:
          (khtml::InlineBox::isText):
          (khtml::InlineFlowBox::addToLine):
          * khtml/rendering/render_text.cpp:
          (RenderText::detach):
          * khtml/rendering/render_text.h:
          (khtml::InlineTextBox:::InlineRunBox):
          (khtml::InlineTextBox::isInlineTextBox):
          (khtml::InlineTextBox::isText):
          (khtml::InlineTextBox::setIsText):
          * khtml/xml/dom_textimpl.cpp:
          (TextImpl::rendererIsNeeded):
          * kwq/KWQRenderTreeDebug.cpp:
          (operator<<):
  
  2004-09-29  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3815895> exception inside fontForSelection causes Mail to abort when selection hits bottom
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::toRange): Use RangeImpl calls to detect exceptions when creating a Range
          from a Selection. Return an empty Range when there is an exception.
  
          Fix for this bug:
          
          <rdar://problem/3817268> REGRESSION (Mail): Window does not scroll when selecting out of 
          visible area of view with arrow keys
  
          * khtml/editing/selection.cpp: Did some name changing. m_needsCaretLayout -> m_needsLayout.
          Added m_expectedVisibleRect which supplies the right rectangle to update when scrolling.
          (khtml::Selection::Selection): m_needsCaretLayout -> m_needsLayout name change.
          (khtml::Selection::init): Handle m_expectedVisibleRect in initialization.
          (khtml::Selection::operator=): Handle m_expectedVisibleRect in assignment.
          (khtml::Selection::setNeedsLayout): m_needsCaretLayout -> m_needsLayout name change.
          (khtml::Selection::layout): Changed name from layoutCaret, since m_expectedVisibleRect
          is also calculated here.
          (khtml::Selection::caretRect): m_needsCaretLayout -> m_needsLayout name change.
          (khtml::Selection::expectedVisibleRect): New. Returns m_expectedVisibleRect, doing a 
          layout if needed.
          (khtml::Selection::needsCaretRepaint): m_needsCaretLayout -> m_needsLayout name change.
          (khtml::Selection::paintCaret): Ditto.
          (khtml::Selection::validate): Ditto.
          * khtml/editing/selection.h: Add m_expectedVisibleRect member variable and 
          expectedVisibleRect accessor.
          * kwq/WebCoreBridge.h: Change name of ensureCaretVisible to ensureSelectionVisible, since
          this is not only about making the caret visible anymore. Now it can reveal the varying
          end of the selection when scrolling with arrow keys.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): ensureCaretVisible to 
          ensureSelectionVisible name change.
          (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Ditto
          (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:]): Ditto
          (-[WebCoreBridge insertNewline]): Ditto
          (-[WebCoreBridge insertText:selectInsertedText:]): Ditto
          (-[WebCoreBridge deleteKeyPressed]): Ditto
          (-[WebCoreBridge ensureSelectionVisible]): Ditto
  
  2004-09-29  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Fix for this bug:
          
          <rdar://problem/3818296> REGRESSION (Mail): centerSelectionInVisibleArea does not work correctly
          
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::centerSelectionInVisibleArea): New function. Handles both caret
          and range selections correctly.
          * kwq/KWQNSViewExtras.h: Add forceCentering boolean to some methods in this file.
          * kwq/KWQNSViewExtras.m: Ditto. This addition has been done since the AppKit 
          method we use to do the centering, -[NSView scrollRectToVisible:],  does not alter 
          the view if the rectangle passed to it is already in view. When forceCentering is
          true, extra math is done to make scrollRectToVisible center the rectangle we want.
          (-[NSView _KWQ_scrollFrameToVisible]): Pass NO for forceCentering in call through to 
          _KWQ_scrollRectToVisible:forceCentering:
          (-[NSView _KWQ_scrollRectToVisible:forceCentering:]): Add forceCentering argument.
          (-[NSView _KWQ_scrollRectToVisible:inView:forceCentering:]): Ditto.
          (-[NSClipView _KWQ_scrollRectToVisible:inView:forceCentering:]): Ditto. Do extra
          math to implement the forceCentering effect.
          * kwq/KWQScrollView.h: Add forceCentering default argument to ensureRectVisibleCentered.
          * kwq/KWQScrollView.mm:
          (QScrollView::ensureRectVisibleCentered): Ditto.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge centerSelectionInVisibleArea]): New function. Call through to KWQKHTMLPart. 
  
  2004-09-28  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: WebArchives begin with "<#document/>"
  
          Reviewed by hyatt.
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::startMarkup): don't return markup if this is a document node, forgot this when factoring this method out from toHTML
  
  2004-09-28  Chris Blumenberg  <cblu at apple.com>
  
  	Removed range parameter from recursive_toHTML and friends since that code path is no longer used.
  	
          Reviewed by mjs.
  
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::toHTML):
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::recursive_toString):
          (NodeImpl::recursive_toHTML):
          * khtml/xml/dom_nodeimpl.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge markupStringFromNode:nodes:]):
  
  2004-09-28  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - improve spell checking so it doesn't unmark and remark as you move the cursor with the arrow
  
          * khtml/editing/htmlediting.h: Remove obsolete markMisspellingsInSelection private function.
          * khtml/editing/htmlediting.cpp:
          (khtml::EditCommand::EditCommand): Blow away the selection when starting an edit command.
          (khtml::EditCommand::apply): Remove code to mark misspellings because that's now done as part
          of blowing away the selection.
          (khtml::EditCommand::unapply): Blow away the selection instead of marking misspellings.
          (khtml::EditCommand::reapply): Ditto.
          (khtml::ReplaceSelectionCommand::doApply): Removed incorrect code that does spell checking
          on inserted text; this doesn't match NSText behavior.
          (khtml::TypingCommand::markMisspellingsAfterTyping): Use markMisspellingsInAdjacentWords
          function for greater clarity on what this actually does.
  
          * khtml/khtml_part.h: Replaced setSelection's "unmarkOldSelection" boolean parameter with a
          "keepTypingStyle" boolean parameter. Removed notifySelectionChanged.
          * khtml/khtml_part.cpp:
          (KHTMLPart::setSelection): Replaced the "unmarkOldSelection" boolean with a new "keepTypingStyle"
          boolean. This is a step on the way to simplifying how this works. Moved the code from the
          notifySelectionChanged function here, since there was no clear line between the two functions.
          (KHTMLPart::clearSelection): Call setSelection rather that having special case code here for
          the case of an empty selection.
          (KHTMLPart::appliedEditing): Remove the explicit "false" for "unmarkOldSelection".
          (KHTMLPart::unappliedEditing): Ditto.
          (KHTMLPart::reappliedEditing): Ditto.
  
          * kwq/KWQKHTMLPart.h: Replaced markMisspellingsInSelection and updateSpellChecking with
          markMisspellings and markMisspellingsInAdjacentWords. Added parameters to respondToChangedSelection.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::markMisspellingsInAdjacentWords): Added.
          (KWQKHTMLPart::markMisspellings): New name for markMisspellingsInSelection. Simplified logic a
          bit and made it the caller's responsibility to expand the selection passed in to word boundaries.
          (KWQKHTMLPart::respondToChangedSelection): Added parameter that identifies the old selection,
          and changed logic so it won't mark misspellings in a word if the selection still starts in that word.
  
          - implemented empty-cells property in computed style
  
          * khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
          Added code for CSS_PROP_EMPTY_CELLS. I think the HTML converter in AppKit uses this.
  
  2004-09-28  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed n-squared issues with appending to KWQValueListImpl. This fixes the hang in 3794799.
  
          Fixed by Darin, reviewed by me.
  
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::toHTML): tweaks
          * kwq/KWQValueListImpl.mm:
          (KWQValueListImpl::KWQValueListPrivate::KWQValueListPrivate):
          (KWQValueListImpl::KWQValueListPrivate::copyList):
          (KWQValueListImpl::clear):
          (KWQValueListImpl::appendNode):
          (KWQValueListImpl::prependNode):
          (KWQValueListImpl::removeEqualNodes):
          (KWQValueListImpl::containsEqualNodes):
          (KWQValueListImpl::removeIterator):
          (KWQValueListImpl::lastNode):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge nodesFromList:]): use iterator, not at()
  
  2004-09-28  Richard Williamson   <rjw at apple.com>
  
  	More dashboard region changes for John.
  
          <rdar://problem/3817421> add getter for dashboard regions (debugging)
          
          <rdar://problem/3817417> NSScrollView need autoregions for dashboard
          
          <rdar://problem/3817388> should have short form form control regions
          
          <rdar://problem/3817477> visibility does not work with dashboard control regions
  
          Reviewed by Hyatt.
  
          * WebCore-combined.exp:
          * WebCore.exp:
          * khtml/css/cssparser.cpp:
          (skipCommaInDashboardRegion):
          (CSSParser::parseDashboardRegions):
          * khtml/khtmlview.cpp:
          (KHTMLView::updateDashboardRegions):
          * khtml/rendering/render_object.cpp:
          (RenderObject::setStyle):
          (RenderObject::addDashboardRegions):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::setDashboardRegions):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::setDashboardRegionsDirty):
          (DOM::DocumentImpl::dashboardRegionsDirty):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::paint):
          (KWQKHTMLPart::dashboardRegionsDictionary):
          (KWQKHTMLPart::dashboardRegionsChanged):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge dashboardRegions]):
          * kwq/WebDashboardRegion.h:
          * kwq/WebDashboardRegion.m:
          (-[WebDashboardRegion description]):
  
  2004-09-28  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Chris.
  
          - fixed <rdar://problem/3818558> REGRESSION: "Installed Plug-ins" is blank 
          because of <script type="application/x-javascript">
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseTag):
          add "application/x-javascript" to the list of legal scripting types. Mozilla
          accepts this, but WinIE doesn't.
          
          * layout-tests/fast/tokenizer/004.html:
          updated layout test to test some application/xxxx types
  
  2004-09-27  David Hyatt  <hyatt at apple.com>
  
  	Reworked lists to work well with RTL text.  Specifically the following bugs have been fixed:
  
  	(1) All bullets use the same offset constant now (a padding of 7 pixels).  Before, images used 5 and others used 7.
  	(2) Line height now works properly, so that list items with no content aren't squished (and missing the line descent).
  	(3) Punctuation now works correctly with inside and outside style ordered lists in RTL.
  	(4) RTL lists now properly apply padding and margin to the right side rather than the left.  This was done by adding
  	-khtml-margin-start and -khtml-padding-start properties that are just mapped to left/right based off the direction.
  	
          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::applyDeclarations):
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/css/html4.css:
          * khtml/rendering/bidi.cpp:
          (khtml::BidiIterator::direction):
          * khtml/rendering/render_list.cpp:
          (RenderListItem::getAbsoluteRepaintRect):
          (RenderListMarker::paint):
          (RenderListMarker::calcMinMaxWidth):
          (RenderListMarker::lineHeight):
          (RenderListMarker::baselinePosition):
  
  2004-09-28  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
          
          Mark the VisiblePosition taking (Position &, EAffinity=DOWNSTREAM) explicit. Recently, when I added
          the EAffinity argument, I left this constructor implicit. Darin pointed out to me that this is
          undesirable since implicit use of the the constructor involved making the affinity choice, something
          which should be done explicitly.
  
          * khtml/editing/selection.cpp:
          (khtml::Selection::modifyExtendingRightForward): Make explicit use of constructor mentioned above.
          (khtml::Selection::modifyMovingRightForward): Ditto.
          (khtml::Selection::modifyExtendingLeftBackward): Ditto.
          (khtml::Selection::modifyMovingLeftBackward): Ditto.
          (khtml::Selection::modify): Ditto.
          (khtml::Selection::validate): Ditto.
          * khtml/editing/visible_position.h: Make constructor taking (Position &, EAffinity) explicit.
          * khtml/editing/visible_units.cpp: Ditto.
          (khtml::previousWordBoundary): Make explicit use of constructor mentioned above.
          (khtml::nextWordBoundary): Ditto.
          (khtml::previousLinePosition): Ditto.
          (khtml::nextLinePosition): Ditto.
          * kwq/KWQKHTMLPart.mm: Ditto.
          (KWQKHTMLPart::findString): Ditto.
          (KWQKHTMLPart::advanceToNextMisspelling): Ditto.
          (KWQKHTMLPart::markMisspellingsInSelection): Ditto.
          (KWQKHTMLPart::updateSpellChecking): Ditto.
  
  2004-09-28  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed a storage leak discovered by code inspection
  
          * khtml/html/htmlparser.cpp: (KHTMLParser::~KHTMLParser): Call setCurrent(0) to deref
          the parser's current node in the rare case where it still has one.
  
  2004-09-27  David Hyatt  <hyatt at apple.com>
  
  	Don't allow nested headers when only inlines are in between them.  Fixes a hang related to pathological nesting
  	on magicmethodsonline.com.
  	
          Reviewed by darin
  
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::parseToken):
          (KHTMLParser::processCloseTag):
          (KHTMLParser::isHeaderTag):
          (KHTMLParser::popNestedHeaderTag):
          * khtml/html/htmlparser.h:
  
  2004-09-27  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by John.
  
          * khtml/css/css_base.cpp:
          (CSSSelector::selectorText): changed another ATTR_CLASS case to properly return class selector names. 
  
  2004-09-27  David Hyatt  <hyatt at apple.com>
  
  	Fix style sharing so that it doesn't share when it shouldn't.  Partially fixes 3671516, table cells don't update
  	their color on macosx.apple.com.
  
  	Fix 3521639, iframe mispositioned on bidi page.  Make sure that when the width of a line exceeds the available line
  	width that the spillage out of the block is determined by the direction of the block and not by the text-align value.
  
  	Partial fix for 3762962, make sure the image cells with specified widths but percentage heights don't just get a minwidth
  	of 0.
  
  	Fix for 3533878, framesets that use percentages that add up to a value > 100% should normalize those percentages.
  	
          Reviewed by john
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::locateCousinList):
          (khtml::CSSStyleSelector::elementsCanShareStyle):
          (khtml::CSSStyleSelector::locateSharedStyle):
          * khtml/css/cssstyleselector.h:
          * khtml/html/html_elementimpl.h:
          (DOM::HTMLNamedAttrMapImpl::hasMappedAttributes):
          (DOM::HTMLElementImpl::inlineStyleDecl):
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::computeHorizontalPositionsForLine):
          * khtml/rendering/render_frames.cpp:
          (RenderFrameSet::layout):
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::calcMinMaxWidth):
          * khtml/xml/dom_elementimpl.h:
          (DOM::ElementImpl::inlineStyleDecl):
          (DOM::ElementImpl::hasMappedAttributes):
  
  2004-09-27  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Removed closestRenderedPosition function from Position class and gave this work
          to VisiblePosition instead. However, in order to make the transfer possible,
          VisiblePosition needed upstream and downstream affinities added to its
          constructors. Also moved the EAffinity enum into its own file. Also moved it
          to the khtml namespace.
  
          Updated several functions which used closestRenderedPosition to use VisiblePosition
          instead.
          
          Also deleted Position::equivalentShallowPosition. This was unused.
  
          * ForwardingHeaders/editing/text_affinity.h: Added.
          * ForwardingHeaders/editing/visible_position.h: Added.
          * WebCore.pbproj/project.pbxproj: Added new files.
          * khtml/editing/selection.cpp:
          (khtml::Selection::validate): Use VisiblePosition instead of closestRenderedPosition.
          * khtml/editing/selection.h:
          * khtml/editing/text_affinity.h: Added.
          * khtml/editing/visible_position.cpp:
          (khtml::VisiblePosition::VisiblePosition):
          (khtml::VisiblePosition::initUpstream): New helper for finding upstream visible position.
          (khtml::VisiblePosition::initDownstream): Was old init function that unconditionally did
          downstream checks for visible position. Renamed to describe this more clearly.
          * khtml/editing/visible_position.h:
          * khtml/editing/visible_units.cpp:
          (khtml::previousWordBoundary): Use VisiblePosition instead of closestRenderedPosition.
          (khtml::nextWordBoundary): Use VisiblePosition instead of closestRenderedPosition.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::updateSelection): Use VisiblePosition instead of closestRenderedPosition.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::closestRenderedPosition): Removed.
          * khtml/xml/dom_position.h: Removed two functions mentioned above.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::fontForSelection) Use VisiblePosition instead of closestRenderedPosition.:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setSelectedDOMRange:affinity:]): Use VisiblePosition instead of closestRenderedPosition.
          * layout-tests/editing/deleting/delete-block-merge-contents-012-expected.txt: Updated expected results.
          * layout-tests/editing/deleting/delete-block-merge-contents-017-expected.txt: Ditto.
          * layout-tests/editing/deleting/delete-contiguous-ws-001-expected.txt: Ditto.
          * layout-tests/editing/selection/move-by-character-004-expected.txt: Ditto.
  
  2004-09-27  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin and Maciej
  
          Removed EditCommand smart pointer wrappers from htmlediting.cpp/.h, save for the one
          at the root of the hierarchy, and this one has been renamed EditCommandPtr. Renamed
          each of the XXXCommandImpl classes, removing the Impl suffix from each, and rolled
          these into the htmlediting.cpp/.h files. The htmlediting_impl.cpp/.h files have
          been emptied and are being removed.
  
          For the remainder of files, perform the mechanical changes necessary to make everything
          compile and run as before.
  
          * WebCore.pbproj/project.pbxproj
          * khtml/editing/htmlediting.cpp
          * khtml/editing/htmlediting.h
          * khtml/editing/htmlediting_impl.cpp: Removed.
          * khtml/editing/htmlediting_impl.h: Removed.
          * khtml/editing/jsediting.cpp
          * khtml/khtml_part.cpp
          (KHTMLPart::openURL)
          (KHTMLPart::lastEditCommand)
          (KHTMLPart::appliedEditing)
          (KHTMLPart::unappliedEditing)
          (KHTMLPart::reappliedEditing)
          (KHTMLPart::applyStyle):
          * khtml/khtml_part.h
          * khtml/khtmlpart_p.h
          * kwq/KWQEditCommand.h
          * kwq/KWQEditCommand.mm
          (-[KWQEditCommand initWithEditCommandImpl:])
          (+[KWQEditCommand commandWithEditCommandImpl:])
          (-[KWQEditCommand impl])
          * kwq/KWQKHTMLPart.h
          * kwq/KWQKHTMLPart.mm
          (KWQKHTMLPart::registerCommandForUndo)
          (KWQKHTMLPart::registerCommandForRedo)
          * kwq/WebCoreBridge.mm
          (-[WebCoreBridge undoEditing:])
          (-[WebCoreBridge redoEditing:])
          (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:])
          (-[WebCoreBridge moveSelectionToDragCaret:smartMove:])
          (-[WebCoreBridge deleteSelectionWithSmartDelete:])
  
  2004-09-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3816170> image.width/height not available from Image objects (works in Firefox)
  
          * khtml/ecma/kjs_html.h: Added width and height.
          * khtml/ecma/kjs_html.cpp: (Image::getValueProperty): Added width and height.
          * khtml/ecma/kjs_html.lut.h: Regenerated.
  
          - unrelated change; changed ordering of use count manipulation just in case we decide some day to do
            something when the use count hits 0
  
          * khtml/rendering/render_image.cpp: (RenderImage::setPixmap): Increment use count on new object before
          decrementing use count on old object.
  
  2004-09-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Kevin.
  
          - fixed <rdar://problem/3812771> document.implementation.hasFeature returns false for a lot of features we implement
  
          * khtml/xml/dom_docimpl.cpp: (DOMImplementationImpl::hasFeature): Added all the DOM features that we implemented
          as part of the HTML editing work.
  
          * khtml/dom/dom_node.cpp: (Node::isSupported): Changed this to call DOMImplementationImpl::hasFeature to share
          code. Later this might need to be different per-node, but at the moment that does not seem to be so.
  
          * khtml/ecma/kjs_dom.cpp:
          (DOMNodeProtoFunc::tryCall): Pass a null string if the parameter is omitted, undefined, or null. This is better than
          having a special case for the string "null" in the DOM implementation.
          (DOMDOMImplementationProtoFunc::tryCall): Ditto.
  
          - fixed <rdar://problem/3814605> REGRESSION: fast/table/039 layout test is failing due to extra trailing whitespace in innerText        
  
          * khtml/editing/visible_text.cpp: (khtml::TextIterator::advance): Check for the case where we are at the end of
          iteration, and don't call exitNode in that case. This prevents us from getting some unwanted trailing \n characters.
  
          - fixed <rdar://problem/3813253> method cloneNode() does not clone dynamically-set style attributes correctly
  
          * khtml/html/html_elementimpl.h: Added cloneNode override.
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::cloneNode): Added. Copies m_inlineStyleDecl.
          (HTMLElementImpl::parseHTMLAttribute): Changed to use getInlineStyleDecl().
          (HTMLElementImpl::innerText): Changed to do the same thing with fewer lines of code.
          (HTMLElementImpl::outerText): Tweaked comment.
  
          - other cleanup
  
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::cloneNode): Removed an uneeded type cast.
          (XMLElementImpl::cloneNode): Ditto.
  
  2004-09-24  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Maciej.
  
  	<rdar://problem/3799334> DIG: Safari does not properly return style names [DigCSS.htm]
  
          * khtml/css/css_base.cpp:
          (CSSSelector::selectorText): Properly returns Class Selector names.  
  	Before we would get *[CLASS"foo"] instead of .foo
  
  2004-09-24  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3814660> REGRESSION (8A200-8A259): Select All has no effect on livepage.apple.com
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::updateSelection): Move the selection start and end to rendered positions
          before passing off to the RenderCanvas for drawing.
          * layout-tests/editing/selection/select-all-004-expected.txt: Added.
          * layout-tests/editing/selection/select-all-004.html: Added.
  
  2004-09-24  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Maciej.
          
          - fixed <rdar://problem/3528339> Turn on full keyboard access shows 
          invisible <input> elements
  
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLGenericFormElementImpl::isFocusable):
          reject elements that have zero width or height, even if they aren't hidden
  
  2004-09-24  Maciej Stachowiak  <mjs at apple.com>
  
  	- fixed deployment build
  
          Reviewed by Ken.
  
          * khtml/dom/dom_string.cpp: put implementation of ascii() in #ifdef !NDEBUG
  	to match prototype.
  
  2004-09-24  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3800316, test 37 for tables is failing on the layout tests.  Make sure we don't incorrectly match
  	non-HTML elements with HTML tag selectors in CSS.
  	
          Reviewed by rjw
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::checkOneSelector):
  
  2004-09-23  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3601920, CSS "tabs" not switching properly on zen garden design.  Improve the repainting to account
  	for layer changes of z-index that necessitate an invalidation.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_object.cpp:
          (RenderObject::setStyle):
          * khtml/rendering/render_style.cpp:
          (RenderStyle::diff):
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::):
  
  2004-09-24  Chris Blumenberg  <cblu at apple.com>
  
  	Made markup copying 5 times faster. Unfortunately, this still doesn't fix:
  	<rdar://problem/3794799> Tiger8A252: copying a bunch o' text is so slow it seems like a hang
  
          Reviewed by rjw.
  
          * khtml/dom/dom_string.h:
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::toHTML): serialize the range by iterating through the range
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::startMarkup): new, factored out from recursive_toString
          (NodeImpl::endMarkup): ditto
          (NodeImpl::recursive_toString): call factored out methods
          * khtml/xml/dom_nodeimpl.h:
  
  === Safari-165 ===
  
  2004-09-24  Ken Kocienda  <kocienda at apple.com>
  
          Hyatt made an improvement in the render tree which caused the results
          to get a little thinner.
  
          * layout-tests/editing/deleting/delete-block-merge-contents-001-expected.txt
          * layout-tests/editing/deleting/delete-block-merge-contents-008-expected.txt
  
  2004-09-24  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Fix for this bug:
          
          <rdar://problem/3812939> REGRESSION: move-between-blocks-no-001 editing layout test fails in DeleteSelectionCommandImpl
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::removeChild): Hyatt said this regression was caused by a bad merge. 
          Found by code inspection.
  
  2004-09-23  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Maciej.
          
          - fixed <rdar://problem/3551850> hang caused by interpreting bad javascript 
          guarded by a deliberately bogus "language" attribute (www.riibe.com)
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseTag):
          Check for language attribute of <script> tag in a way that matches WinIE.
          Previously we were far too permissive.
  
  2004-09-23  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3685234 and 3548444, the x-offset for frame borders was off by 1 pixel, causing mojibake to occur when
  	repainting happened.
  
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::repaintViewRectangle):
  
  2004-09-23  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3813271> dashboard-region-circle and dashboard-region-rectangle should be collapsed into dashboard-region
  	Fixed <rdar://problem/3813289> dashboard regions need to correctly account for overflow/scrolling
  
          Reviewed by Chris.
  
          * khtml/css/css_valueimpl.cpp:
          (CSSPrimitiveValueImpl::cssText):
          * khtml/css/css_valueimpl.h:
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          (skipCommaInDashboardRegion):
          (CSSParser::parseDashboardRegions):
          * khtml/khtmlview.cpp:
          (KHTMLView::layout):
          (KHTMLView::updateDashboardRegions):
          * khtml/khtmlview.h:
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::scrollToOffset):
          * khtml/rendering/render_object.cpp:
          (RenderObject::addDashboardRegions):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::dashboardRegionsChanged):
          * kwq/WebDashboardRegion.h:
          * kwq/WebDashboardRegion.m:
          (-[WebDashboardRegion initWithRect:clip:type:]):
          (-[WebDashboardRegion dashboardRegionClip]):
          (-[WebDashboardRegion description]):
  
  2004-09-23  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Richard
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::inRenderedContent): Make the "empty block" check the same as the one
          use in visible position. This fixes a recent regression which broke up and down
          arrowing between blocks with an empty block in between.
  
  2004-09-23  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3685235> REGRESSION (Mail): links are not properly editable
          
  	* khtml/html/html_inlineimpl.cpp:
          (HTMLAnchorElementImpl::isFocusable): If this element is editable, then follow
  	the normal focus rules so the link does not swallow focus when you arrow key
  	or drag-select into it.
  
  2004-09-23  Darin Adler  <darin at apple.com>
  
          - added test for the DOM::Range bug fixed recently
  
          * layout-tests/fast/dom/clone-contents-0-end-offset-expected.txt: Added.
          * layout-tests/fast/dom/clone-contents-0-end-offset.html: Added.
  
  2004-09-23  David Hyatt  <hyatt at apple.com>
  
  	Fix for hitlist bug, crash when deleting.  
  
  	Also fix repaint bug when inlines are inside overflow:auto/scroll regions.
  	
          Reviewed by kocienda
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteSelectionCommandImpl::DeleteSelectionCommandImpl):
          (khtml::DeleteSelectionCommandImpl::doApply):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::removeChild):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::getAbsoluteRepaintRect):
  
  2004-09-23  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3527840> reproducible crash at johnbrown.v32.qikker.com 
          (nil-deref in NodeImpl::dispatchEvent)
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::dispatchEvent):
          guard against document or document->document() being nil
  
  2004-09-23  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - added new VisibleRange class; not used yet
  
          * WebCore.pbproj/project.pbxproj: Added visible_range.h and visible_range.cpp.
          * khtml/editing/visible_range.cpp: Added.
          * khtml/editing/visible_range.h: Added.
  
          - tweaks
  
          * kwq/WebCoreBridge.mm: (-[WebCoreBridge alterCurrentSelection:direction:granularity:]):
          Use switch statement instead of if statement so we get a warning if we ever add a new
          granularity.
  
          * khtml/editing/selection.h: khtml, not DOM, namespace
          * khtml/editing/visible_position.h: Ditto.
  
  2004-09-23  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3812758> 8S266: attaching mutation events to an editable div crashes Safari
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::dispatchEvent): Added ref/deref so this works if passed a "floating" event object.
          (NodeImpl::dispatchGenericEvent): Ditto.
          (NodeImpl::dispatchHTMLEvent): Removed unneeded ref/deref now that dispatchEvent takes care of it.
          (NodeImpl::dispatchMouseEvent): Ditto.
          (NodeImpl::dispatchUIEvent): Ditto.
  
  2004-09-23  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed some minor mistakes discovered by code inspection
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::setSelection): Changed to not grab focus if clearing the selection.
          Grabbing focus when we get the selection is also probably something that should be
          conditional, since you can use a WebView in a mode where it can have selection even
          when not first responder, ala NSTextView.
          (KHTMLPart::setCaretVisible): Changed to not grab focus if making the caret invisible.
          Not sure if it's ever important to grab focus when making the caret visible, but by
          code inspection it seemed that was unlikely to do harm.
  
  2004-09-23  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3790595> "ERROR: unimplemented propertyID: 97" logged to console when copying selection (table-layout)
  
          * khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
          Added CSS_PROP_TABLE_LAYOUT case.
  
  2004-09-23  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3809600> REGRESSION: text in search field doesn't disappear when clicked at developer.apple.com
  
          Reversing the order of scope caused us to get and set too many properties in the window
          object; in the case of this bug setting value ended up setting a window.value property
          instead of the value of the <input> element.
  
          * khtml/ecma/kjs_window.h: Removed bogus hasProperty function that always returns true.
          Testing shows that MacIE and Gecko match our behavior when we remove this, despite the
          "need this to match IE behavior" comment in the file, which I believe is incorrect.
          * khtml/ecma/kjs_window.cpp: Ditto.
  
  2004-09-23  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3812471> -[DOMRange cloneContents] clones too much in some cases where endOffset is 0
  
          * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::processContents): Added some nil
          checks to prevent this function from crashing if offsets are greater than the
          number of child nodes. Added a special case for offset 0 in one case that has a loop
          that won't work correctly for that case.
  
  2004-09-23  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3811890> when selecting and moving the caret, some words aren't spell-checked (test case included)
  
          This was mostly fixed by changes I made recently, but using the test case in the bug
          I discovered one regression I introduced and another problem that wasn't fixed yet.
          This change fixes both.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::markMisspellingsInSelection): Removed unneeded inRenderedContent() check. It was returning false
          in cases involving a <br> at the end of line, and the check isn't all that helpful now that we use VisiblePosition,
          which takes care of that sort of thing for you. Changed code to determine the range to check to use the two
          different flavors of word boundary to expand to words we touch in both directions.
          (KWQKHTMLPart::updateSpellChecking): Changed to use the same logic about word boundaries. By being consistent,
          the anomalies reported in the bug report go away.
  
  2004-09-23  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3811584> REGRESSION (85-125): iframe.document undefined in function called from button onclick; works from img onclick
  
          Since we are doing a bit less "defers callbacks" work, when testing I ran into this code path.
  
          * khtml/xml/dom2_eventsimpl.cpp: (MouseEventImpl::computeLayerPos): Check for document without renderer.
  
  2004-09-23  Darin Adler  <darin at apple.com>
  
          - checked in a new file I forgot
  
          * khtml/editing/text_granularity.h: Added.
  
  2004-09-22  Darin Adler  <darin at apple.com>
  
          - renamed
  
              DOM::CaretPosition -> khtml::VisibleRange
              DOM::Selection     -> khtml::Selection
  
          - moved all the functions in visible_units.h from DOM to khtml namespace
          - moved the one thing from Selection that KHTMLPart uses into its own header
  
          * WebCore.pbproj/project.pbxproj: Added text_granularity.h.
  
          * ForwardingHeaders/editing/selection.h: Added.
          * WebCore-combined.exp: Regenerated.
          * WebCore-tests.exp: Updated symbol for DOM::Selection debugging.
  
          * khtml/ecma/kjs_window.cpp: Update names and namespaces.
          * khtml/editing/htmlediting.cpp: Ditto.
          * khtml/editing/htmlediting.h: Ditto.
          * khtml/editing/htmlediting_impl.cpp: Ditto.
          * khtml/editing/htmlediting_impl.h: Ditto.
          * khtml/editing/jsediting.cpp: Ditto.
          * khtml/editing/selection.cpp: Ditto.
          * khtml/editing/selection.h: Ditto.
          * khtml/editing/visible_position.cpp: Ditto.
          * khtml/editing/visible_position.h: Ditto.
          * khtml/editing/visible_text.h: Ditto.
          * khtml/editing/visible_units.cpp: Ditto.
          * khtml/editing/visible_units.h: Ditto.
          * khtml/khtml_part.cpp: Ditto.
          * khtml/khtml_part.h: Ditto.
          * khtml/khtmlpart_p.h: Ditto.
          * khtml/rendering/render_block.cpp: Ditto.
          * khtml/xml/dom_docimpl.h: Ditto.
          * khtml/xml/dom_nodeimpl.cpp: Ditto.
          * kwq/KWQKHTMLPart.h: Ditto.
          * kwq/KWQKHTMLPart.mm: Ditto.
          * kwq/KWQRenderTreeDebug.cpp: Ditto.
          * kwq/WebCoreBridge.mm: Ditto.
  
  2004-09-22  Darin Adler  <darin at apple.com>
  
          * ForwardingHeaders/*: Use import instead of include.
  
  2004-09-22  Darin Adler  <darin at apple.com>
  
          - renamed these files:
  
              misc/khtml_text_operations.h   -> editing/visible_text.h
              misc/khtml_text_operations.cpp -> editing/visible_text.cpp
              xml/dom_caretposition.cpp      -> editing/visible_position.cpp
              xml/dom_caretposition.h        -> editing/visible_position.h
              xml/dom_selection.cpp          -> editing/selection.cpp
              xml/dom_selection.h            -> editing/selection.h
  
          - broke out the word/line/paragraph part of visible_position.h into visible_units.h
          - removed some unnecessary includes from some header files to reduce the number of
            files that trigger "building the world"
  
          * WebCore.pbproj/project.pbxproj: Added the files under new names, removed the old ones.
  
          * ForwardingHeaders/editing/jsediting.h: Added.
          * ForwardingHeaders/editing/visible_text.h: Added.
          * ForwardingHeaders/misc/khtml_text_operations.h: Removed.
          * ForwardingHeaders/xml/dom_caretposition.h: Removed.
          * ForwardingHeaders/xml/dom_selection.h: Removed.
  
          * khtml/ecma/kjs_window.cpp: Updated or removed #include lines.
          * khtml/editing/htmlediting.cpp: Ditto.
          * khtml/editing/htmlediting.h: Ditto.
          * khtml/editing/htmlediting_impl.cpp: Ditto.
          * khtml/editing/htmlediting_impl.h: Ditto.
          * khtml/editing/jsediting.cpp: Ditto.
          * khtml/editing/selection.cpp: Ditto.
          * khtml/editing/selection.h: Ditto.
          * khtml/editing/visible_position.cpp: Ditto.
          * khtml/editing/visible_position.h: Ditto.
          * khtml/editing/visible_text.cpp: Ditto.
          * khtml/editing/visible_text.h: Ditto.
          * khtml/editing/visible_units.cpp: Added.
          * khtml/editing/visible_units.h: Added.
          * khtml/html/html_elementimpl.cpp: Updated or removed #include lines.
          * khtml/khtml_part.cpp: Ditto.
          * khtml/khtml_part.h: Ditto.
          * khtml/khtmlpart_p.h: Ditto.
          * khtml/khtmlview.cpp: Ditto.
          * khtml/misc/khtml_text_operations.cpp: Removed.
          * khtml/misc/khtml_text_operations.h: Removed.
          * khtml/rendering/render_block.cpp: Updated or removed #include lines.
          * khtml/xml/dom2_rangeimpl.cpp: Ditto.
          * khtml/xml/dom_caretposition.cpp: Removed.
          * khtml/xml/dom_caretposition.h: Removed.
          * khtml/xml/dom_docimpl.cpp: Updated or removed #include lines.
          * khtml/xml/dom_docimpl.h: Ditto.
          * khtml/xml/dom_elementimpl.cpp: Ditto.
          * khtml/xml/dom_nodeimpl.cpp: Ditto.
          * khtml/xml/dom_position.cpp: Ditto.
          * khtml/xml/dom_selection.cpp: Removed.
          * khtml/xml/dom_selection.h: Removed.
          * kwq/KWQKHTMLPart.mm: Updated or removed #include lines.
          * kwq/KWQKHTMLPart.h: Ditto.
          * kwq/KWQRenderTreeDebug.cpp: Ditto.
          * kwq/WebCoreBridge.mm: Ditto.
  
  2004-09-22  Richard Williamson   <rjw at apple.com>
  	
  	Pass dashboard regions up to WebKit.
  	
  	Don't collect regions from RenderTexts.
  
  	Made more args and return types references to avoid
  	copying value lists.
  
          Reviewed by Hyatt.
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/khtmlview.cpp:
          (KHTMLView::layout):
          * khtml/rendering/render_object.cpp:
          (RenderObject::collectDashboardRegions):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::dashboardRegions):
          (DocumentImpl::setDashboardRegions):
          * khtml/xml/dom_docimpl.h:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::didFirstLayout):
          (KWQKHTMLPart::dashboardRegionsChanged):
          * kwq/WebCoreBridge.h:
          * kwq/WebDashboardRegion.h: Added.
          * kwq/WebDashboardRegion.m: Added.
          (-[WebDashboardRegion initWithRect:type:]):
          (-[WebDashboardRegion copyWithZone:]):
          (-[WebDashboardRegion dashboardRegionRect]):
          (-[WebDashboardRegion dashboardRegionType]):
          (-[WebDashboardRegion description]):
  
  2004-09-22  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this hitlist bug:
          
          <rdar://problem/3805486> REGRESSION (Mail): Empty block elements can cause the caret to get "stuck" in one spot
  
          * khtml/xml/dom_caretposition.cpp:
          (DOM::CaretPosition::isCandidate): You can no longer caret into empty blocks with no height.
          Also did a little clean up in this function.
          * layout-tests/editing/deleting/delete-3800834-fix-expected.txt: Regenerated expected results. 
          This test was actually failing and had bogus results checked in!
          * layout-tests/editing/selection/select-all-003-expected.txt: Regenerated expected results.
  
  2004-09-22  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3812091> REGRESSION (Mail): double-clicked word is not smart inserted on drag
  
          Reviewed by john.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::MoveSelectionCommand::MoveSelectionCommand): take smartMove arg
          * khtml/editing/htmlediting.h:
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::CompositeEditCommandImpl::deleteSelection): take smartDelete arg
          (khtml::MoveSelectionCommandImpl::MoveSelectionCommandImpl): take smartMove arg
          (khtml::MoveSelectionCommandImpl::doApply): pass smartMove for smartDelete and smartReplace
          * khtml/editing/htmlediting_impl.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge moveSelectionToDragCaret:smartMove:]): take smartMove arg
  
  2004-09-22  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): New overloaded 
  	version of this function, one that takes a flag to determine whether to
  	perform a document updateLayout() call before querying the style system.
          * khtml/css/css_computedstyle.h:
          (DOM::EUpdateLayout): Give a symbolic constant to true/false for the 
  	purpose of the new call to getPropertyCSSValue.
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::StyleChange::currentlyHasStyle): Pass DoNotUpdateLayout to call to
  	getPropertyCSSValue.
          (khtml::CompositeEditCommandImpl::applyTypingStyle): Add in top-level calls
  	to updateLayout before doing style changes that now do not update styles
  	themselves.
          (khtml::ApplyStyleCommandImpl::doApply): Ditto.
          (khtml::ApplyStyleCommandImpl::removeCSSStyle): Pass DoNotUpdateLayout to call to
          getPropertyCSSValue.
          (khtml::DeleteSelectionCommandImpl::computeTypingStyle): Remove this dead code.
          * khtml/editing/htmlediting_impl.h: Ditto.
  
  2004-09-22  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          * WebCore.pbproj/project.pbxproj: New files added.
          * khtml/khtml_part.cpp:
          (KHTMLPart::clearSelection): No longer calls setFocusIfNeeded.
          (KHTMLPart::slotClearSelection): Merged old implementation from this function to
          clearSelection. Now just calls clearSelection. Also put in !APPLE_CHANGES since
          we do not call it.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::setFocusNode): Add some code to determine when setting the focus should
          clear the selection.
          * kwq/KWQWidget.mm:
          (QWidget::hasFocus): Call _webcore_effectiveFirstResponder to get view to check for focus.
          (QWidget::setFocus): Ditto.
          * kwq/WebCoreBridge.mm: 
          (-[WebCoreBridge deselectText]): Called slotClearSelection and should have been. Now calls
          clearSelection.
          * kwq/WebCoreView.h: Added.
          * kwq/WebCoreView.m: Added.
          (-[NSView _webcore_effectiveFirstResponder]): New method to yield the correct responder
          to check for firstResponder-ness before calling makeFirstResonder. This helps to prevent 
          unwanted firstResponder switching.
          (-[NSClipView _webcore_effectiveFirstResponder]): Ditto.
          (-[NSScrollView _webcore_effectiveFirstResponder]): Ditto.
  
  2004-09-21  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3805137> REGRESSION: Cannot search on pricetool.com
  
          The problem here is that residual style handling can cause an
  	element associated with a misnested form to lose the association,
  	because it can become detached and then reattached in this
  	case. So we need to maintain the association.
  	
          * khtml/html/html_formimpl.h: Added list of dormant elements to form,
  	and dormant bit to generic form element.
  	* khtml/html/html_formimpl.cpp:
          (DOM::HTMLFormElementImpl::~HTMLFormElementImpl): Clear m_form field for
  	dormant elements too.
          (DOM::HTMLFormElementImpl::registerFormElement): Remove from dormant list
  	in addition to adding to main list.
          (DOM::HTMLFormElementImpl::removeFormElement): Remove from both lists.
          (DOM::HTMLFormElementImpl::makeFormElementDormant): New method, remove from
  	main list, add to dormant list.
          (DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl): Initialize
  	dormant bit to false.
          (DOM::HTMLGenericFormElementImpl::insertedIntoDocument): If the element is
  	dormant and has a form, re-register it and clear the dormant bit.
          (DOM::HTMLGenericFormElementImpl::removedFromDocument): If the document has
  	a form, tell the form it is dormant and set the dormant bit.
  
  2004-09-22  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3811187> REGRESSION (Mail): Control-click past end of document does not spell check last word
  
          Reviewed by kocienda.
  
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::validate): if at the end of the document, expand to the left.
  
  2004-09-22  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken and John.
  
  	<rdar://problem/3759228> REGRESSION (Mail): stray characters when entering text via input method right after newline
          
  	* khtml/editing/htmlediting_impl.cpp:
          (khtml::CompositeEditCommandImpl::inputText): Add an optional 
  	selectInsertedText parameter.
          (khtml::ReplaceSelectionCommandImpl::doApply): Let the inputText operation
  	select the text when inserting plain text, because it already knows all the right
  	information to do so, and this function doesn't (sometimes text is inserted
  	before the start of the old selection, not after!)
          * khtml/editing/htmlediting_impl.h:
  
  2004-09-22  Richard Williamson   <rjw at apple.com>
  
  	More tweaks to dashboard regions.
  
  	Move dashboard regions list into css3NonInheritedData so it will be shared
  	by all styles that don't modify the empty region list.
  
  	Make the initial value for dashboard region list a static to minimize allocations
  	of empty lists.
  
  	Make marquee and flex style accessor functions const.
  
          Reviewed by Hyatt.
  
          * khtml/rendering/render_style.cpp:
          (RenderStyle::diff):
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::opacity):
          (khtml::RenderStyle::boxAlign):
          (khtml::RenderStyle::boxDirection):
          (khtml::RenderStyle::boxFlexGroup):
          (khtml::RenderStyle::boxOrdinalGroup):
          (khtml::RenderStyle::boxOrient):
          (khtml::RenderStyle::boxPack):
          (khtml::RenderStyle::marqueeIncrement):
          (khtml::RenderStyle::marqueeSpeed):
          (khtml::RenderStyle::marqueeLoopCount):
          (khtml::RenderStyle::marqueeBehavior):
          (khtml::RenderStyle::marqueeDirection):
          (khtml::RenderStyle::dashboardRegions):
          (khtml::RenderStyle::setDashboardRegions):
          (khtml::RenderStyle::setDashboardRegion):
          (khtml::RenderStyle::initialDashboardRegions):
  
  2004-09-22  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3802766, entire view redrawn in Blot while typing.  Don't needlessly create text nodes just to find
  	out the font for the caret position.
  	
          Reviewed by darin
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::fontForSelection):
  
  2004-09-21  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed:
  	<rdar://problem/3735071> REGRESSION (Mail): WebCore Editing must do smart paste
  	<rdar://problem/3799163> REGRESSION (Mail): Deleting a word doesn't delete whitespace
  
          Reviewed by darin.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::DeleteSelectionCommand::DeleteSelectionCommand): take smartDelete parameter
          (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): take smartReplace parameter
          * khtml/editing/htmlediting.h:
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteSelectionCommandImpl::DeleteSelectionCommandImpl): take smartDelete parameter
          (khtml::DeleteSelectionCommandImpl::doApply): delete whitespace before and after selection if necessary
          (khtml::ReplaceSelectionCommandImpl::ReplaceSelectionCommandImpl): take smartReplace parameter
          (khtml::ReplaceSelectionCommandImpl::doApply): add whitespace before and after the replacement if necessary
          * khtml/editing/htmlediting_impl.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:]): take smartReplace parameter
          (-[WebCoreBridge replaceSelectionWithNode:selectReplacement:smartReplace:]): ditto
          (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:selectReplacement:smartReplace:]): ditto
          (-[WebCoreBridge replaceSelectionWithText:selectReplacement:smartReplace:]): ditto
          (-[WebCoreBridge deleteSelectionWithSmartDelete:]): take smartDelete parameter
  
  2004-09-21  Richard Williamson   <rjw at apple.com>
  
  	More dashboard region work.
  
  	Added support for computed style and cssText for new region property.
  	Added restriction on length types allowed in region functions.
  	Added initial and inheritance support for -apple-dashboard-region.
  
          Reviewed by Hyatt.
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
          * khtml/css/css_valueimpl.cpp:
          (CSSPrimitiveValueImpl::cssText):
          * khtml/css/cssparser.cpp:
          (CSSParser::parseDashboardRegions):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/rendering/render_object.cpp:
          (RenderObject::addDashboardRegions):
          * khtml/rendering/render_style.cpp:
          (RenderStyle::diff):
          * khtml/rendering/render_style.h:
          (khtml::StyleDashboardRegion::operator==):
          (khtml::RenderStyle::dashboardRegions):
          (khtml::RenderStyle::setDashboardRegions):
          (khtml::RenderStyle::initialDashboardRegions):
  
  2004-09-21  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed problem where our updateLayout call ignores pending stylesheets all the time
  
          * khtml/xml/dom_docimpl.h: Added updateLayoutIgnorePendingStylesheets.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::updateLayout): Took out the "ignore pending stylesheets" business here.
          (DocumentImpl::updateLayoutIgnorePendingStylesheets): Put it in here.
  
          * khtml/ecma/kjs_dom.cpp: (DOMNode::getValueProperty): Call the new
          updateLayoutIgnorePendingStylesheets function.
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElement::getValueProperty): Ditto.
          (KJS::HTMLElement::putValue): Ditto.
          * khtml/ecma/kjs_views.cpp: (DOMAbstractViewFunc::tryCall): Ditto.
          * khtml/ecma/kjs_window.cpp:
          (Window::updateLayout): Ditto.
          (Selection::get): Ditto.
          (SelectionFunc::tryCall): Ditto.
  
          * khtml/html/html_imageimpl.h: Add ignorePendingStylesheets boolean parameter.
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageElementImpl::width): Respect new parameter.
          (HTMLImageElementImpl::height): Ditto.
  
          - tweaks
  
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Removed unneeded
          explicit "true" parameter to setSelection.
          (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Ditto.
  
  2004-09-21  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fix crash when pasting text at the end of the document and then doing an undo
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::EditCommandImpl::apply): Call markMisspellingsInSelection before doing
          the editing operation, and we'll tell setSelection not to unmark the old selection.
          Also call updateLayout before calling appliedEditing so DOM operations in the
          code responding to the selection change will work.
          (khtml::EditCommandImpl::unapply): Ditto.
          (khtml::EditCommandImpl::reapply): Ditto.
  
          * khtml/khtml_part.h: Added a third parameter to setSelection to tell it whether
          to unmark the old selection. We must pass false when editing, because the old
          selection might have now-invalid offsets inside it.
          * khtml/khtml_part.cpp:
          (KHTMLPart::setSelection): Add unmarkOldSelection parameter, and respect it.
          (KHTMLPart::appliedEditing): Pass false for unmarkOldSelection.
          (KHTMLPart::unappliedEditing): Ditto.
          (KHTMLPart::reappliedEditing): Ditto.
  
  2004-09-21  Richard Williamson   <rjw at apple.com>
  
          Part 2 of the feature requested in
          <rdar://problem/3752791> Dashboard: Need a better solution for control regions
  	
          This patch actually collections the regions and converts to absolute coordinates.
          Only remaining piece is to pass over the bridge and up the alley to WebKit
          UI delegate.
   
          Reviewed by Ken.
  
          * khtml/css/css_valueimpl.h:
          (DOM::CSSPrimitiveValueImpl::getDashboardRegionValue):
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          (CSSParser::parseDashboardRegions):
          * khtml/css/cssproperties.c:
          * khtml/css/cssproperties.h:
          * khtml/css/cssproperties.in:
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/khtmlview.cpp:
          (KHTMLView::layout):
          * khtml/rendering/render_object.cpp:
          (RenderObject::computeDashboardRegions):
          (RenderObject::addDashboardRegions):
          (RenderObject::collectDashboardRegions):
          * khtml/rendering/render_object.h:
          (khtml::DashboardRegionValue::operator==):
          * khtml/rendering/render_style.cpp:
          * khtml/rendering/render_style.h:
          (khtml::StyleDashboardRegion::):
          (khtml::RenderStyle::dashboardRegions):
          (khtml::RenderStyle::setDashboardRegion):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::updateLayout):
          (DocumentImpl::acceptsEditingFocus):
          (DocumentImpl::dashboardRegions):
          (DocumentImpl::setDashboardRegions):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::hasDashboardRegions):
          (DOM::DocumentImpl::setHasDashboardRegions):
  
  2004-09-21  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Darin.
          
          - WebCore part of fix for <rdar://problem/3618274> REGRESSION (125-135): 
          Option-tab doesn't always work as expected
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::tabsToAllControls):
          reworked logic to match what we promise in the UI; this worked correctly
          before for regular tabbing, but not for option-tabbing.
  
          * kwq/KWQButton.mm:
          (QButton::focusPolicy):
          check tabsToAllControls() rather than just WebCoreKeyboardAccessFull
          
          * kwq/KWQComboBox.mm:
          (QComboBox::focusPolicy):
          ditto
          
          * kwq/KWQFileButton.mm:
          (KWQFileButton::focusPolicy):
          ditto
          
          * kwq/KWQListBox.mm:
          (QListBox::focusPolicy):
          ditto
  
  2004-09-21  John Sullivan  <sullivan at apple.com>
  
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::modify):
          initialize xPos to make compiler happy in deployment builds
  
  2004-09-21  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - some small mechanical improvements to the position and selection classes
  
          * khtml/xml/dom_position.h: Added clear(), startPosition(), and endPosition().
          * khtml/xml/dom_position.cpp:
          (DOM::Position::clear): Added.
          (DOM::startPosition): Added.
          (DOM::endPosition): Added.
  
          * khtml/xml/dom_caretposition.h: Changed m_position to m_deepPosition. Added clear(),
          removed node() and offset().
          * khtml/xml/dom_caretposition.cpp:
          (DOM::CaretPosition::init): Updated for name change of m_position to m_deepPosition.
          (DOM::CaretPosition::isLastInBlock): Ditto.
          (DOM::CaretPosition::next): Ditto.
          (DOM::CaretPosition::previous): Ditto.
          (DOM::CaretPosition::debugPosition): Ditto.
          (DOM::CaretPosition::formatForDebugger): Ditto.
  
          * khtml/xml/dom_selection.h: Remove setStart, setEnd, setStartAndEnd, rangeStart, rangeEnd,
          and all the assignXXX functions.
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::Selection): Wean from assign functions, get and set data members directly.
          (DOM::Selection::init): Don't clear base, extent, start, and end, since they have constructors.
          (DOM::Selection::operator=): Wean from assign functions, get and set data members directly.
          (DOM::Selection::moveTo): Ditto.
          (DOM::Selection::setModifyBias): Ditto.
          (DOM::Selection::modifyExtendingRightForward): Ditto.
          (DOM::Selection::modifyMovingRightForward): Ditto.
          (DOM::Selection::modifyExtendingLeftBackward): Ditto.
          (DOM::Selection::modifyMovingLeftBackward): Ditto.
          (DOM::Selection::modify): Ditto.
          (DOM::Selection::xPosForVerticalArrowNavigation): Ditto.
          (DOM::Selection::clear): Ditto.
          (DOM::Selection::setBase): Ditto.
          (DOM::Selection::setExtent): Ditto.
          (DOM::Selection::setBaseAndExtent): Ditto.
          (DOM::Selection::toRange): Ditto.
          (DOM::Selection::layoutCaret): Ditto.
          (DOM::Selection::needsCaretRepaint): Ditto.
          (DOM::Selection::validate): Ditto.
          (DOM::Selection::debugRenderer): Ditto.
          (DOM::Selection::debugPosition): Ditto.
          (DOM::Selection::end):
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::advanceToNextMisspelling): Tweaked whitespace.
  
  2004-09-21  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3647229> Safari does not play inline Windows Media Content on some sites (miggy.net and ministryofsound.com)
  
          Reviewed by john.
  
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget): when no MIME type is specified map from the WMP CLASSID to the WMP MIME type, look for the URL of the content in the URL PARAM tag
  
  2004-09-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed regression from my recent check-in where misspelled words do not get unmarked when moving the caret
          - changed CaretPosition to hold a Position instead of a node and offset
          - renamed isEmpty to isNull, etc.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::jumpToSelection): Updated for name changes.
          (KWQKHTMLPart::advanceToNextMisspelling): Ditto.
          (KWQKHTMLPart::fontForSelection): Ditto.
          (KWQKHTMLPart::setDisplaysWithFocusAttributes): Ditto.
          (KWQKHTMLPart::markMisspellingsInSelection): Ditto.
          (KWQKHTMLPart::updateSpellChecking): Fixed bug by using LeftWordIfOnBoundary.
  
          * khtml/xml/dom_position.h: Updated for name changes.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::element): Change to not use a separate null check.
          (DOM::Position::computedStyle): Updated for name changes.
          (DOM::Position::previousCharacterPosition): Ditto.
          (DOM::Position::nextCharacterPosition): Ditto.
          (DOM::Position::equivalentRangeCompliantPosition): Ditto.
          (DOM::Position::equivalentShallowPosition): Ditto.
          (DOM::Position::equivalentDeepPosition): Ditto.
          (DOM::Position::closestRenderedPosition): Ditto.
          (DOM::Position::inRenderedContent): Ditto.
          (DOM::Position::inRenderedText): Ditto.
          (DOM::Position::isRenderedCharacter): Ditto.
          (DOM::Position::rendersInDifferentPosition): Ditto.
          (DOM::Position::isFirstRenderedPositionOnLine): Ditto.
          (DOM::Position::isLastRenderedPositionOnLine): Ditto.
          (DOM::Position::inFirstEditableInRootEditableElement): Ditto.
          (DOM::Position::leadingWhitespacePosition): Ditto.
          (DOM::Position::trailingWhitespacePosition): Ditto.
          (DOM::Position::debugPosition): Ditto.
          (DOM::Position::formatForDebugger): Ditto.
  
          * khtml/xml/dom_caretposition.h: Change to use m_position, and change names.
          * khtml/xml/dom_caretposition.cpp:
          (DOM::CaretPosition::CaretPosition): Remove code to set up m_node.
          (DOM::CaretPosition::init): Set m_position directly.
          (DOM::CaretPosition::isLastInBlock): Updated for name changes.
          (DOM::CaretPosition::next): Set m_position directly.
          (DOM::CaretPosition::previous): Set m_position directly.
          (DOM::CaretPosition::previousCaretPosition): Updated for name changes.
          (DOM::CaretPosition::nextCaretPosition): Ditto.
          (DOM::CaretPosition::previousPosition): Ditto.
          (DOM::CaretPosition::nextPosition): Ditto.
          (DOM::CaretPosition::atStart): Ditto.
          (DOM::CaretPosition::atEnd): Ditto.
          (DOM::CaretPosition::isCandidate): Ditto.
          (DOM::CaretPosition::debugPosition): Ditto.
          (DOM::CaretPosition::formatForDebugger): Ditto.
          (DOM::startOfWord): Ditto.
          (DOM::endOfWord): Ditto.
          (DOM::previousParagraphPosition): Ditto.
          (DOM::nextParagraphPosition): Ditto.
  
          * khtml/xml/dom_selection.h: Updated names. Added isCaret and isRange.
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::modifyMovingRightForward): Updated for name changes.
          (DOM::Selection::modifyMovingLeftBackward): Ditto.
          (DOM::Selection::modify): Ditto.
          (DOM::Selection::expandUsingGranularity): Ditto.
          (DOM::Selection::xPosForVerticalArrowNavigation): Ditto.
          (DOM::Selection::toRange): Ditto.
          (DOM::Selection::layoutCaret): Ditto.
          (DOM::Selection::needsCaretRepaint): Ditto.
          (DOM::Selection::validate): Ditto.
          (DOM::startOfFirstRunAt): Ditto.
          (DOM::endOfLastRunAt): Ditto.
          (DOM::selectionForLine): Ditto.
          (DOM::Selection::formatForDebugger): Ditto.
  
          * khtml/ecma/kjs_window.cpp:
          (Selection::get): Updated for name changes.
          (Selection::toString): Ditto.
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::debugPosition): Ditto.
          (khtml::StyleChange::init): Ditto.
          (khtml::StyleChange::currentlyHasStyle): Ditto.
          (khtml::CompositeEditCommandImpl::deleteSelection): Ditto.
          (khtml::CompositeEditCommandImpl::deleteUnrenderedText): Ditto.
          (khtml::ApplyStyleCommandImpl::doApply): Ditto.
          (khtml::DeleteSelectionCommandImpl::doApply): Ditto.
          (khtml::InputNewlineCommandImpl::doApply): Ditto.
          (khtml::InputTextCommandImpl::prepareForTextInsertion): Ditto.
          (khtml::InputTextCommandImpl::input): Ditto.
          (khtml::ReplaceSelectionCommandImpl::doApply): Ditto.
          (khtml::MoveSelectionCommandImpl::doApply): Ditto.
          (khtml::TypingCommandImpl::doApply): Ditto.
          (khtml::TypingCommandImpl::markMisspellingsAfterTyping): Ditto.
          (khtml::TypingCommandImpl::issueCommandForDeleteKey): Ditto.
          * khtml/editing/jsediting.cpp:
          (enabledAnySelection): Ditto.
          (enabledRangeSelection): Ditto.
          * khtml/khtml_part.cpp:
          (KHTMLPart::hasSelection): Ditto.
          (KHTMLPart::setFocusNodeIfNeeded): Ditto.
          (KHTMLPart::selectionLayoutChanged): Ditto.
          (KHTMLPart::timerEvent): Ditto.
          (KHTMLPart::isPointInsideSelection): Ditto.
          (KHTMLPart::selectClosestWordFromMouseEvent): Ditto.
          (KHTMLPart::handleMousePressEventTripleClick): Ditto.
          (KHTMLPart::handleMousePressEventSingleClick): Ditto.
          (KHTMLPart::handleMouseMoveEventSelection): Ditto.
          (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
          (KHTMLPart::selectionHasStyle): Ditto.
          (KHTMLPart::selectionComputedStyle): Ditto.
          * khtml/xml/dom_docimpl.cpp: (DocumentImpl::updateSelection): Ditto.
          * khtml/xml/dom_positioniterator.cpp:
          (DOM::PositionIterator::peekPrevious): Ditto.
          (DOM::PositionIterator::peekNext): Ditto.
          (DOM::PositionIterator::atStart): Ditto.
          (DOM::PositionIterator::atEnd): Ditto.
          * khtml/xml/dom_positioniterator.h:
          (DOM::PositionIterator::isEmpty): Ditto.
          * kwq/KWQRenderTreeDebug.cpp:
          (writeSelection): Ditto.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge editableDOMRangeForPoint:]): Ditto.
          (-[WebCoreBridge deleteSelection]): Ditto.
          (-[WebCoreBridge ensureCaretVisible]): Ditto.
          (-[WebCoreBridge rangeOfCharactersAroundCaret]): Ditto.
  
  2004-09-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3808073> find is broken
  
          * khtml/misc/khtml_text_operations.h: Add m_pastEndNode and change name of m_endNode to
          m_endContainer to more accurately reflect its purpose.
          * khtml/misc/khtml_text_operations.cpp:
          (khtml::TextIterator::TextIterator): Use pastEnd() for end of iteration, and change to
          handle bad ranges better: just return an empty iterator instead of raising an exception.
          (khtml::TextIterator::advance): Change to use m_pastEndNode to detect the end of iteration.
          (khtml::TextIterator::handleTextNode): Update for name change.
          (khtml::TextIterator::handleTextBox): Ditto.
          (khtml::TextIterator::range): Handle case where m_endContainer is nil.
  
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::surroundContents): Use offsetInCharacters.
          (DOM::RangeImpl::startNode): Added check for nil start container and use offsetInCharacters.
          (DOM::RangeImpl::pastEndNode): Ditto.
  
  2004-09-20  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3781290> REGRESSION (Mail): Crash in ReplaceSelectionCommandImpl attaching file to new message
  
          Reviewed by kocienda.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::setSelection): setFocusNodeIfNeeded now works on the current selection so call setFocusNodeIfNeeded after setting the selection
          (KHTMLPart::clearSelection): don't call setFocusNodeIfNeeded with the current selection
          (KHTMLPart::setCaretVisible): ditto
          (KHTMLPart::setFocusNodeIfNeeded): do nothing if the part isn't focused, work with the current selection
          * khtml/khtml_part.h:
          * khtml/khtmlpart_p.h:
          (KHTMLPartPrivate::KHTMLPartPrivate): added m_isFocused
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::KWQKHTMLPart): removed _displaysWithFocusAttributes this is replaced by m_isFocused
          (KWQKHTMLPart::setSelectionFromNone): new, code factored out from setDisplaysWithFocusAttributes
          (KWQKHTMLPart::setDisplaysWithFocusAttributes): call setSelectionFromNone
          (KWQKHTMLPart::displaysWithFocusAttributes): now returns m_isFocused
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setSelectionFromNone]): new
  
  2004-09-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed nil-deref happening often in Mail when I delete
  
          * khtml/rendering/render_br.cpp: (RenderBR::selectionRect): Check for nil lastLeafChild.
          Dave may want to figure out why it's nil and do a different fix later.
  
  2004-09-20  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Richard.
  
  	<rdar://problem/3672101> HANG: typing into login field at dws-direkt.deutsche-bank.de (infinite recursion)
          
  	* khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::defaultEventHandler): Copy the list of handlers
  	before firing any of them, in case a handler affects the list of
  	event handlers.
  
  2004-09-20  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed:
  	<rdar://problem/3429921> obey PARAM tags inside of OBJECT tags when necessary
  	<rdar://problem/3515685> Object tag in Java 1.4.1 / Safari doesn't recognize params
  
          Reviewed by darin.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::requestFrame): take 2 parameter arrays rather than 1 which will have to be parsed
          (KHTMLPart::requestObject): ditto
          * khtml/khtml_part.h:
          * khtml/khtmlpart_p.h:
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget): use PARAM tags when there is no EMBED specified
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::createPart): call renamed bridge method
          * kwq/KWQKJavaAppletWidget.mm:
          (KJavaAppletWidget::KJavaAppletWidget): ditto
          * kwq/KWQStringList.h:
          * kwq/KWQStringList.mm:
          (QStringList::getNSArray): return a const array
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge URLWithAttributeString:]): renamed to match API
  
  2004-09-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3655360> REGRESSION (Mail): Ctrl-V emacs key binding, -pageDown: method, unimplemented (and pageUp, and selection-modifying versions)
          - fixed <rdar://problem/3735055> REGRESSION (Mail): WebCore double click rules treat style change as a boundary
          - fixed <rdar://problem/3789939> REGRESSION (Mail): double-clicking on border whitespace selects space plus word before/after
          - fixed <rdar://problem/3792138> REGRESSION (Mail): Spell checker doesn't check current selected word
          - fixed <rdar://problem/3806604> REGRESSION (164): Triple-click sometimes selects extra characters
          - fixed <rdar://problem/3806996> REGRESSION (125-162): Triple-click in <pre> tagged text behaves oddly (leuf.net)
  
          * khtml/xml/dom_caretposition.h: Added a lot of new functions. Removed implicit conversion operator
          that converts from CaretPosition to Position.
          * khtml/xml/dom_caretposition.cpp:
          (DOM::CaretPosition::CaretPosition): Change to call deepEquivalent so it works without the implicit
          Position conversion operator.
          (DOM::CaretPosition::operator=): Ditto.
          (DOM::CaretPosition::next): Ditto.
          (DOM::CaretPosition::previous): Ditto.
          (DOM::CaretPosition::setPosition): Added an assertion.
          (DOM::start): Added.
          (DOM::end): Added.
          (DOM::setStart): Added.
          (DOM::setEnd): Added.
          (DOM::previousWordBoundary): Added.
          (DOM::nextWordBoundary): Added.
          (DOM::startWordBoundary): Added.
          (DOM::startOfWord): Added.
          (DOM::endWordBoundary): Added.
          (DOM::endOfWord): Added.
          (DOM::previousWordPositionBoundary): Added.
          (DOM::previousWordPosition): Added.
          (DOM::nextWordPositionBoundary): Added.
          (DOM::nextWordPosition): Added.
          (DOM::previousLinePosition): Added.
          (DOM::nextLinePosition): Added.
          (DOM::startOfParagraph): Changed function name.
          (DOM::endOfParagraph): Changed function name. Fixed code in includeLineBreak to work around
          the CaretPosition constructor issue for <br>, pass the right parameter for the block flow case,
          and handle <pre> properly.
          (DOM::inSameParagraph): Added.
          (DOM::previousParagraphPosition): Added.
          (DOM::nextParagraphPosition): Added.
  
          * khtml/xml/dom_position.h: Removed a number of functions no longer used; also made some private.
          * khtml/xml/dom_position.cpp: Removed a number of functions no longer used.
  
          * khtml/xml/dom_selection.h: Replaced DOCUMENT with DOCUMENT_BOUNDARY. Added overloads of lots
          of functions that take CaretPosition directly. Added overload of modify that takes a parameter
          for vertical distance to help implement pageDown: and friends. Replaced getRepaintRect with
          two new functions named caretRect and caretRepaintRect. Removed nodeIsBeforeNode.
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::Selection): Added constructor that takes two CaretPosition objects.
          (DOM::Selection::setModifyBias): Added. Helper function.
          (DOM::Selection::modifyExtendingRightForward): Don't set modify bias, since that's now the caller's
          responsibility. Reimplement WORD and LINE in terms of new CaretPosition functions. Implement PARAGRAPH
          and change PARAGRAPH_BOUNDARY to use CaretPosition function by its new name.
          (DOM::Selection::modifyMovingRightForward): Ditto.
          (DOM::Selection::modifyExtendingLeftBackward): Ditto.
          (DOM::Selection::modifyMovingLeftBackward): Ditto.
          (DOM::Selection::modify): Call setModifyBias, and use a switch statement instead of if.
          (DOM::caretY): Added. Helper for the new modify function that implements moving a pixel distance,
          used by pageDown: and friends.
          (DOM::Selection::modify): Added.
          (DOM::Selection::toRange): Use RangeImpl::compareBoundaryPoints instead of nodeIsBeforeNode.
          (DOM::Selection::caretRect): Added. Replaces getRepaintRect, but does not add slop.
          (DOM::Selection::caretRepaintRect): Added. Replaces getRepaintRect; still adds slop.
          (DOM::Selection::needsCaretRepaint): Call caretRepaintRect.
          (DOM::Selection::validate): Use RangeImpl::compareBoundaryPoints instead of nodeIsBeforeNode.
          Reimplement WORD to use new CaretPosition functions; this fixes the double-clicking problems.
          Change paragraph calls to use new names.
  
          * ForwardingHeaders/dom/dom_position.h: Removed. This was in the wrong location.
          * khtml/editing/htmlediting.cpp: Fixed include that said "dom/dom_position.h".
          * khtml/editing/htmlediting_impl.cpp: Fixed include that said "dom/dom_position.h".
          (khtml::TypingCommandImpl::markMisspellingsAfterTyping): Rewrote this to use the new CaretPosition
          functions instead of the old Position functions.
  
          * khtml/misc/helper.h: Added const to character pointer parameter. Also put invertedColor inside
          an !APPLE_CHANGES since it doesn't do us any good.
          * khtml/misc/helper.cpp:
          (khtml::findWordBoundary): Added const to character pointer parameter.
          (khtml::nextWordFromIndex): Ditto.
  
          * kwq/KWQTextUtilities.h: Change parameters to const.
          * kwq/KWQTextUtilities.cpp: (KWQFindWordBoundary): Change parameter to const.
          * kwq/KWQTextUtilities.mm: (KWQFindNextWordFromIndex): Change parameter to const.
  
          * khtml/css/cssstyleselector.cpp: Disable code that uses invertedColor when APPLE_CHANGES, since it
          won't work for us.
  
          * khtml/rendering/render_canvas.cpp: (RenderCanvas::setSelection): Added checks for selection end
          so we can set the selection end to nodes that are not leaf nodes and it will still work. Also took
          out bogus firstChild/lastChild loops for the same reason.
  
          * kwq/KWQKHTMLPart.h: Add "start before selection" flag to advanceToNextMisspelling.
          Needed to fix bug with spell checking.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::findString): Changed to use CaretPosition.
          (KWQKHTMLPart::advanceToNextMisspelling): Added code to handle "start before selection" flag
          and changed to use CaretPosition and new helper functions.
          (KWQKHTMLPart::markMisspellingsInSelection): More changes to use CaretPosition.
          (KWQKHTMLPart::updateSpellChecking): Ditto.
  
          * kwq/WebCoreBridge.h: Replaced WebSelectByDocument with WebSelectToDocumentBoundary.
          Added advanceToNextMisspellingStartingJustBeforeSelection,
          rangeByAlteringCurrentSelection:verticalDistance:, and
          alterCurrentSelection:verticalDistance:.
  
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge advanceToNextMisspellingStartingJustBeforeSelection]): Added.
          (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Added case for selecting by
          paragraph to save X position.
          (-[WebCoreBridge rangeByAlteringCurrentSelection:verticalDistance:]): Added.
          (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Added.
          (-[WebCoreBridge ensureCaretVisible]): Call caretRect instead of getRepaintRect.
  
  2004-09-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - cleaned up DOM::RangeImpl a little so compareBoundaryPoints can be used outside the class
  
          * khtml/xml/dom2_rangeimpl.h: Added const to many of the member functions and made the
          compareBoundaryPoints that works on parameters be a const member function.
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::commonAncestorContainer): Added const.
          (DOM::RangeImpl::compareBoundaryPoints): Added const.
          (DOM::RangeImpl::boundaryPointsValid): Added const, and wrote cleaner version.
          (DOM::RangeImpl::insertNode): Simplified by calling containedByReadOnly.
          (DOM::RangeImpl::toString): Added const.
          (DOM::RangeImpl::toHTML): Added const.
          (DOM::RangeImpl::createContextualFragment): Added const.
          (DOM::RangeImpl::cloneRange): Added const.
          (DOM::RangeImpl::surroundContents): Simplified by calling containedByReadOnly.
  
  2004-09-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3806990> REGRESSION (125-162): Crash on Select All at http://leuf.net/cgi/wikidn?PerlConvertEolScript
  
          * khtml/rendering/render_replaced.cpp: (RenderWidget::setSelectionState): Added nil check for the
          widget.
  
  2004-09-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3773740> calling addEventListener on a frame that hasn't loaded yet crashes
  
          * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Add nil checks for the document.
          The nil check prevents the crash but there's still a bug here; I filed 3807059 about that.
  
  2004-09-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed problem where up and down arrow keys are not preserving X position
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::selectionLayoutChanged): Moved code to clear m_xPosForVerticalArrowNavigation out of here.
          (KHTMLPart::notifySelectionChanged): Moved it into here.
  
  2004-09-18  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3805627> -[DOMRange _text] sometimes includes all text to the end of the document for certain ranges
  
          * khtml/misc/khtml_text_operations.cpp: (khtml::TextIterator::advance):
          Correctly handle the case when we are already on m_endNode. The concept here is that
          m_endNode is a node you must never "leave" when iterating.
  
  === Safari-164 ===
  
  2004-09-17  Ken Kocienda  <kocienda at apple.com>
  
          * layout-tests/editing/selection/unrendered-004-expected.txt: Updated expected results.
  
  2004-09-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/3780245> REGRESSION (Mail): some lines are skipped when doing arrow navigation
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousLinePosition): One-line fix. Make sure that BRs at the end of blocks
          are not skipped.
  
  2004-09-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/3805594> REGRESSION (Mail): Second return key stroke does not work when first was in blockquote
  
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::toRange): Code to convert caret positions moved the position upstream
          before making a range-compliant position, but erroneously would allow the position
          to cross blocks. Now it will no longer do so.
  
  2004-09-16  Richard Williamson   <rjw at apple.com>
  
          Part 1 of the feature requested in
          <rdar://problem/3752791> Dashboard: Need a better solution for control regions
  
          This patch implements the CSS parsing necessary for dashboard regions.  
          Here's an example of the syntax we support:
  
          <style>
          #aDiv {
              -apple-dashboard-region:
                  dashboard-region-circle(control 0 0 80 0)
                  dashboard-region-rectangle(control,20,0,20,0)
                  dashboard-region-circle(control 80 0 0 0); 
          }
          </style>
  
  
  	Part 2 will determine the appropriate regions.
  
          Reviewed by Chris.
  
          * khtml/css/css_valueimpl.cpp:
          (CSSPrimitiveValueImpl::CSSPrimitiveValueImpl):
          * khtml/css/css_valueimpl.h:
          (DOM::CSSPrimitiveValueImpl::):
          (DOM::DashboardRegionImpl::DashboardRegionImpl):
          (DOM::DashboardRegionImpl::~DashboardRegionImpl):
          (DOM::DashboardRegionImpl::setNext):
          (DOM::DashboardRegionImpl::setLabel):
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          (CSSParser::parseContent):
          (skipCommaInDashboardRegion):
          (CSSParser::parseDashboardRegions):
          * khtml/css/cssparser.h:
          * khtml/css/cssproperties.c:
          (hash_prop):
          (findProp):
          * khtml/css/cssproperties.h:
          * khtml/css/cssproperties.in:
          * khtml/dom/css_value.h:
          (DOM::CSSPrimitiveValue::):
  
  2004-09-16  Darin Adler  <darin at apple.com>
  
          - fixed caret-drawing regression from my last patch
  
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::xPosForVerticalArrowNavigation): Pass false, meaning "vertical line caret"
          rather than true meaning "big box for overtyping".
          (DOM::Selection::layoutCaret): Ditto.
  
  2004-09-16  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3803280> crash in selectAll on page with no contents
  
          * khtml/khtml_part.cpp: (KHTMLPart::selectAll): Handle case of 0 for documentElement().
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousWordPosition): Ditto.
          (DOM::Position::nextWordPosition): Ditto.
  
          - cleaned up caret code
          - changed DOM::Selection to use CaretPosition more
  
          * khtml/rendering/render_box.cpp: (RenderBox::caretRect): Change to use empty rectangles
          instead of an X value of -1 to mean no rectangle.
          * khtml/rendering/render_image.cpp: (RenderImage::selectionRect): Take advantage of the
          fixed QRect constructor.
          * khtml/rendering/render_object.cpp: (RenderObject::caretRect): Change to use empty
          rectangle instead of an X value of -1 to mean no rectangle.
          * khtml/rendering/render_text.cpp: (RenderText::caretRect): Cleaned up, and changed to use
          an empty rectangle instead of an X value of -1 to mean no rectangle.
  
          * khtml/xml/dom_caretposition.h: Made conversion from Position to CaretPosition something you
          can do implicitly, since it's an unambiguous conversion. Conversion in the other direction
          needs to be done explicitly. Moved EIncludeLineBreak here, and added startParagraphBoundary
          and endParagraphBoundary functions.
          * khtml/xml/dom_caretposition.cpp:
          (DOM::startParagraphBoundary): Added. Replaces, and made from, member function of DOM::Position.
          (DOM::endParagraphBoundary): Ditto.
  
          * khtml/xml/dom_position.h: Removed EIncludeLineBreak and startParagraphBoundary and
          endParagraphBoundary.
          * khtml/xml/dom_position.cpp: Removed startParagraphBoundary and endParagraphBoundary.
  
          * khtml/xml/dom_selection.h: Use CaretPosition instead of Position in a few places.
          Use a QRect for the caret rect. Change nodeIsBeforeNode to be a static member function.
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::Selection): Change caret to store QRect instead of 3 separate fields.
          (DOM::Selection::init): Ditto.
          (DOM::Selection::operator=): Ditto.
          (DOM::Selection::modifyExtendingRightForward): Change to use CaretPosition instead of Position.
          Check for 0.
          (DOM::Selection::modifyMovingRightForward): Ditto. Check for 0.
          (DOM::Selection::modifyExtendingLeftBackward): Ditto.
          (DOM::Selection::modifyMovingLeftBackward): Ditto.
          (DOM::Selection::modify): Ditto.
          (DOM::Selection::layoutCaret): Change to use a QRect for the caret rect, and use an empty
          one to mean no rectangle.
          (DOM::Selection::getRepaintRect): Ditto.
          (DOM::Selection::paintCaret): Ditto.
          (DOM::Selection::validate): Change to use CaretPosition instead of Position. Also fixed
          PARAGRAPH_BOUNDARY, which was broken and doing the same thing as PARAGRAPH before, but
          it's not really used so that didn't matter. Check for 0.
          (DOM::Selection::nodeIsBeforeNode): Tightened up a bit and added some FIXMEs. This function
          has a number of problems and should probably be discarded in favor of the DOMStringImpl
          method that does the same thing.
  
  2004-09-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Fix for this bug:
          
          <rdar://problem/3787168> REGRESSION (Mail): Deleting text from the beginning of a quoted range removes the quoting from the rest
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteSelectionCommandImpl::moveNodesAfterNode): Only move the text nodes (and their siblings) when
          doing this move between blocks. This serves to mimic NSText behavior very well.
  
  2004-09-15  Darin Adler  <darin at apple.com>
  
          - fixed Panther build
  
          * kwq/KWQAccObject.mm: (-[KWQAccObject accessibilityActionDescription:]): Fixed backwards
          check in #if that was compiling the code on Panther only rather than Tiger only.
  
  2004-09-15  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed lockFocus exception I observed; perhaps not a real issue in the field due to exception blocking
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::imageFromRect): Put most of the function inside a
          big if statement to avoid the exception we get from lockFocus otherwise.
  
  2004-09-15  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed <rdar://problem/3786467> REGRESSION (Mail): Reproducible crash replying to an HTML message when your preference is for plain text composing.
  
          * khtml/rendering/render_block.h: Remove removeChildrenFromLineBoxes.
          * khtml/rendering/render_block.cpp: (khtml::RenderBlock::removeChild): Remove calls
          to removeChildrenFromLineBoxes which was the old way of working around this.
          * khtml/rendering/render_flow.cpp: (RenderFlow::detach): Add comments and code to handle
          removing children from line boxes we are about to delete.
  
  2004-09-15  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3781561> REGRESSION (Mail): typing in Mail became suddenly really sluggish (substitute font code)
  
  	A DocumentMarker may begin before the InLineBox that includes
  	it.  Ensure that we correctly handle that case.  The paintMarker()
  	method and code that calls it could do with some cleanup to
  	make it clearer how all the cases are handled, i.e. marker
  	within box, or intersecting beginning or end of box.
  
          Reviewed by Darin.
  
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::paintMarker):  Minimal change to ensure that we
  	handle the case of marker starting before box.
  
  2004-09-15  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - get rid of some of the localizable strings in here; we still have to figure out
            how we're going to localize the last few role descriptions
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject roleDescription]): Use NSAccessibilityRoleDescription for most
          descriptions instead of a hard-coded string (inside the UI_STRING placeholder).
          (-[KWQAccObject accessibilityActionDescription:]): Same thing, with NSAccessibilityActionDescription.
  
  2004-09-15  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - did some QRect-related changes to facilitate later bug fixing
  
          * kwq/KWQPainter.h: Added fillRect overload that takes QRect to match the real Qt one.
          * kwq/KWQPainter.mm: (QPainter::fillRect): Added overload that takes QRect.
  
          * kwq/KWQRect.mm: (QRect::QRect): Change default constructed QRect to have a width and
          height of 0 rather than 1. Contrary to what we believed earlier, this is what Qt does.
  
  2004-09-15  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3799512> REGRESSION (Mail): caret flashes 1 pixel too far to the left
  
          * khtml/rendering/render_text.cpp: (RenderText::caretRect): Added one to the horizontal position
          of the caret rect.
  
  2004-09-15  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteSelectionCommandImpl::doApply): The whitespace fixup code
          that makes sure proper whitespace renders after deletion was getting confused
          in cases where the deletion merged blocks. Basically, I needed to move some
          whitespace fixup code so it runs before deleting in the case where blocks
          need to be merged. It used to run after, and was getting confused by
          whitespace left over at the ends of the block after the deletion.
          * layout-tests/editing/deleting/delete-block-merge-contents-012-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-012.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-013-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-013.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-014-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-014.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-015-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-015.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-016-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-016.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-017-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-017.html: Added.
  
  2004-09-15  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteSelectionCommandImpl::moveNodesAfterNode): Renamed from moveNodesToBlock.
          Just some simplification and cleanup in this function.
          (khtml::DeleteSelectionCommandImpl::doApply): Remove a hunk of start-of-block code I thought
          I was going to get around to improving and refining. However, I no longer need this case.
          * khtml/editing/htmlediting_impl.h: Function name change.
  
  2004-09-14  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - added method for fix to <rdar://problem/3788894> REGRESSION (Mail): ctrl-t emacs key binding does not work (transpose)
  
          * kwq/WebCoreBridge.h: Added rangeOfCharactersAroundCaret.
          * kwq/WebCoreBridge.mm: (-[WebCoreBridge rangeOfCharactersAroundCaret]): Added.
  
          * khtml/xml/dom_caretposition.h: Added range function to make a Range from two CaretPosition objects.
          * khtml/xml/dom_caretposition.cpp:
          (DOM::CaretPosition::rangeCompliantEquivalent): Fixed a bug in this that caused it to screw up
          ranges in text nodes. Also changed it to use offset 0 as Ken and I discussed.
          (DOM::range): Added.
  
          * kwq/DOM.mm: (-[DOMRange description]): Added.
  
  2004-09-14  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3786986> REGRESSION: TEXTAREAs have extra wide right margins where the scrollbars used to be
  
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea _updateTextViewWidth]): Renamed from _frameSizeChanged. Now uses the width of
          the size from the contentSize method rather than trying to compute a size.
          (-[KWQTextArea initWithFrame:]): Call method by new name.
          (-[KWQTextArea tile]): Override this instead of setFrame: to adjust the size as the size of
          the text area changes.
  
  2004-09-14  Chris Blumenberg  <cblu at apple.com>
  
  	Backed out my changes to these files. They were not meant to be checked. (I'm having a bad CVS day)
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:]):
          (-[WebCoreBridge replaceSelectionWithNode:selectReplacement:]):
          (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:selectReplacement:]):
          (-[WebCoreBridge replaceSelectionWithText:selectReplacement:]):
  
  2004-09-14  David Hyatt  <hyatt at apple.com>
  
  	Fix the crash in the layout tests caused by my recent selection changes.  Simply eliminate the buggy
  	selection border setting code and let isSelectionBorder be implemented in terms of the SelectionState.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::setSelection):
          * khtml/rendering/render_object.cpp:
          (RenderObject::RenderObject):
          (RenderObject::container):
          (RenderObject::isSelectionBorder):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::minMaxKnown):
          (khtml::RenderObject::setReplaced):
  
  2004-09-14  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3778680> REGRESSION: plug-in content sometimes doesn't show up
  
          Reviewed by dave.
  
          * khtml/html/html_objectimpl.cpp:
          (HTMLObjectElementImpl::parseHTMLAttribute): set needWidgetUpdate to true only if there is a renderer
          (HTMLObjectElementImpl::attach): if needWidgetUpdate is true, call updateWidget
  
  2004-09-14  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- fixed <rdar://problem/3800315> encode-URI-test layout test is failing
  	- updated escape/encodeURI layout test to match our new, more
  	compatible behavior.
  
          * layout-tests/fast/js/global/encode-URI-test.html:
  
  2004-09-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Richard
  
          Fix for this bug:
          
          <rdar://problem/3800834> REGRESSION (Mail): Can't delete backwards past quoted text using HTML editing
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::TypingCommandImpl::issueCommandForDeleteKey): Use CaretPosition class to get superior
          smarts about the selection to delete in the "start of block" case. This fixes the bug.
          While I was in the neighborhood, I cleaned up this function a bit.
          * layout-tests/editing/deleting/delete-3800834-fix-expected.txt: Added.
          * layout-tests/editing/deleting/delete-3800834-fix.html: Added.
  
  2004-09-14  Ken Kocienda  <kocienda at apple.com>
  
          * khtml/css/parser.cpp: Did not regenerate this file from parser.y before last checkin.
  
  2004-09-14  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed typos in last check-in.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::selectClosestWordFromMouseEvent):
          (KHTMLPart::handleMousePressEventDoubleClick):
          * khtml/khtml_part.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::sendContextMenuEvent):
  
  2004-09-09  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3667862, regression where dragging of selection became really slow.  This patch completely rewrites
  	selection painting and drawing so that the enclosing rect is much more snug.  The containing block rect is no
  	longer used at all.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::selectionRect):
          (getSelectionInfo):
          (RenderCanvas::setSelection):
          (RenderCanvas::clearSelection):
          * khtml/rendering/render_canvas.h:
          * khtml/rendering/render_container.cpp:
          (RenderContainer::removeChildNode):
          * khtml/rendering/render_image.cpp:
          (RenderImage::selectionRect):
          (RenderImage::selectionTintColor):
          (RenderImage::paint):
          * khtml/rendering/render_image.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::selectionStartEnd):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::selectionRect):
          (khtml::RenderObject::SelectionInfo::object):
          (khtml::RenderObject::SelectionInfo::rect):
          (khtml::RenderObject::SelectionInfo::state):
          (khtml::RenderObject::SelectionInfo::SelectionInfo):
          (khtml::RenderObject::SelectionInfo::m_state):
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::textObject):
          (InlineTextBox::selectionRect):
          (InlineTextBox::paintSelection):
          (RenderText::getAbsoluteRepaintRect):
          (RenderText::selectionRect):
          * khtml/rendering/render_text.h:
          * kwq/KWQPainter.mm:
          (getBlendedColorComponent):
          (QPainter::selectedTextBackgroundColor):
  
  2004-09-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3794376> vertical formatting lines that show quote level are missing
  
          Rolling out change Dave made to fix 3787686. It turns out that we do not want this
          change, as it does not appear to have any effect on the bug. In addition, it caused
          the regression in quote bar behavior.
  
          * khtml/css/parser.cp
          * khtml/css/parser.y
  
  2004-09-14  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: Control-click shouldn't cause deselect when clicking selection.
  
          Reviewed by rjw.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::sendContextMenuEvent): don't attempt to select the closest word when the selection is clicked
  
  2004-09-14  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed badness that my last patch caused. Because there was a conflict, my last patch added stuff that darin had just removed.
  
          Reviewed by darin.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::sendContextMenuEvent): don't call deref on the view
  
  2004-09-14  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3783595> REGRESSION (Mail): control-click does not select closest word
  
          Reviewed by kocienda.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::selectionGranularity): new getter, need this for an upcoming patch
          (KHTMLPart::selectClosetWordFromMouseEvent): new, factored from handleMousePressEventDoubleClick
          (KHTMLPart::handleMousePressEventDoubleClick): call selectClosetWordFromMouseEvent
          * khtml/khtml_part.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::sendContextMenuEvent): call selectClosetWordFromMouseEvent if nothing swallows the event
  
  2004-09-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3800346> Inserting newline in BR after block not working
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::InputNewlineCommandImpl::doApply): The code to insert the "extra" BR at the end
          of blocks (hack done to make BRs show up when they appear at the ends of blocks) did not
          cover this one quirky case where the insertion point can be placed in a BR at the end of 
          a block that does actually render. Now the input newline code can handle this addtional
          case.
          * layout-tests/editing/selection/insert-3800346-fix-expected.txt: Added.
          * layout-tests/editing/selection/insert-3800346-fix.html: Added.
  
  2004-09-14  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3479392> REGRESSION (Mail): select all does not select all at some pages
  
          * khtml/xml/dom_caretposition.cpp: (DOM::CaretPosition::deepEquivalent):
          Use caretMaxOffset instead of maxOffset when descending to the last node.
          Also change around the function a bit.
  
  2004-09-13  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3710123> Loading iframe that replaces content in the parent document crashes Safari (Oracle Portal)
  
          This is a more complete fix, but it requires the previous attempt at a fix for this same
          bug below, because this is only the "don't destroy the KHTMLPart" portion; other fixes are
          still needed to survive shutdown of the part.
  
          * khtml/ecma/kjs_proxy.cpp: (KJSProxyImpl::interpreter): Call the new keepAlive method.
          This is called whenever we're about to use an interpreter to run some JavaScript, and
          it's JavaScript that might destroy the part, hence the interpreter.
  
          * khtml/khtml_part.h: Added keepAlive() and slotEndLifeSupport() member functions.
          * khtml/khtmlpart_p.h: Added m_lifeSupportTimer.
          * khtml/khtml_part.cpp:
          (KHTMLPart::init): Connects m_lifeSupportTimer to slotEndLifeSupport.
          (KHTMLPart::write): Removed old attempt to work around this issue.
          (KHTMLPart::end): Ditto.
          (KHTMLPart::keepAlive): Added. References the part, then sets up a one-shot timer.
          (KHTMLPart::slotEndLifeSupport): Added. Stops the timer and then removes the reference
          from the part, possibly destroying it.
  
          * kwq/KWQSlot.mm:
          (KWQSlot::KWQSlot): Added the new slot to the list of slots.
          (KWQSlot::call): Ditto.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::sendResizeEvent): Removed an old attempt to work around this same issue.
          (KWQKHTMLPart::mouseDown): Ditto.
          (KWQKHTMLPart::mouseDragged): Ditto.
          (KWQKHTMLPart::mouseUp): Ditto.
          (KWQKHTMLPart::mouseMoved): Ditto.
          (KWQKHTMLPart::sendContextMenuEvent): Ditto.
  
  2004-09-13  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed regression caused by change earlier today
  
          * khtml/xml/dom_selection.cpp: (DOM::Selection::modifyExtendingRightForward):
          Use CaretPosition for CHARACTER, not WORD.
  
  2004-09-13  Darin Adler  <darin at apple.com>
  
          Reviewed by Kevin.
  
          - fixed <rdar://problem/3798453> DIG failure: getting variable with same name as DOM element attribute gets attribute value instead
  
          * khtml/ecma/kjs_events.cpp: (JSEventListener::handleEvent): When adding current target and
          other event handler scope, put it below the existing scope chain. This ensures that things
          found in the function's scope will come before the event handler, as in other browsers.
  
  2004-09-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
          
          Fix for this bug:
          
          <rdar://problem/3798346> REGRESSION (125-162): crash pushing down arrow key on KLM.com site
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::nextLinePosition): This function was being called in a case where it was not expected
          until we traced the code. It has to do with some deeper issues associated with handling arrow keys, 
          resulting in the editing arrow-down code running in a case where we are not editing. I discussed this 
          with Darin, and we decided to handle the broader issues at a later date. The fix I am checking in
          here to fix the bug is merely avoiding a null-deref.
  
  2004-09-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3784840> REGRESSION (Mail): Text is inserted in the wrong place after changing typing style
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::InputTextCommandImpl::prepareForTextInsertion): Code to handle typing style did not
          check to see if the reference node used for the DOM node insertion operation was a block.
          If it is, then the new node containing the new editing style now is inserted at the start of the block,
          instead of after it.
  
  2004-09-13  Ken Kocienda  <kocienda at apple.com>
  
          Added a couple new layout tests to cover recent changes.
  
          * layout-tests/editing/editing.js: Added some new functions to do by-word selection movement.
          * layout-tests/editing/selection/move-backwords-by-word-001-expected.txt: Added.
          * layout-tests/editing/selection/move-backwords-by-word-001.html: Added.
          * layout-tests/editing/selection/selection-3748164-fix-expected.txt: Added.
          * layout-tests/editing/selection/selection-3748164-fix.html: Added.
  
  2004-09-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3765519> REGRESSION (Mail): word movement goes too far upstream at start of line
          
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousWordPosition): Use downstream position here when making final placement of caret. 
  
  2004-09-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Various editing improvements, many focused on the improvements made possible by the
          new CaretPosition class.
          
          Includes fixes for these bugs:
          
          <rdar://problem/3748164> REGRESSION (Mail): Arrow navigation in typical mail message can result in stuck caret
          <rdar://problem/3782062> REGRESSION (Mail): option-delete can delete almost all of a message when it has trouble finding a word
          <rdar://problem/3790456> triple click does not select entire paragraph (folklore.org)
  
          * WebCore.pbproj/project.pbxproj: Added CaretPosition class files.
          * khtml/dom/dom2_range.h:
          (DOM::offsetInCharacters): Moved this helper here from khtml_text_operations.cpp. This
          function helps to determine how to interpret the offsets used in DOM Ranges.
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::InputNewlineCommandImpl::doApply): Use CaretPosition class to make "end-of-block" determination.
          Also, fix a caret placement glitch in "case 1" in the code: Place the caret in the node after the inserted
          BR. This makes it show up in the right place.
          * khtml/khtml_part.cpp:
          (KHTMLPart::handleMousePressEventDoubleClick): Don't limit double-click and triple-click handling only to text nodes.
          (KHTMLPart::handleMousePressEventTripleClick): Ditto.
          (KHTMLPart::selectAll): Use CaretPosition class to implement improved selectAll.
          * khtml/misc/khtml_text_operations.cpp:
          (khtml::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Make a fix to the initial state setting of
          m_handledChildren. This is true if the offset into the end node is 0, meaning that we do not want to descend
          into its children at all.
          * khtml/xml/dom_caretposition.cpp: Added.
          * khtml/xml/dom_caretposition.h: Added.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::traverseNextNode): Fix bugs with the stayWithin implementation. We could miss nodes we want to test
          due to an erroneous check of stayWithin when no such check is needed.
          (NodeImpl::traverseNextSibling): Ditto.
          (NodeImpl::traversePreviousNodePostOrder): Ditto.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::Position): Remove spurious semi-colon.
          (DOM::Position::upstream): Move incoming Position to its equivalentDeepPosition. This is part of the transition
          that will make this code work better with increased use of CaretPosition.
          (DOM::Position::downstream): Ditto.
          (DOM::Position::atStartOfContainingEditableBlock): Removed. Dead code; was not being called.
          (DOM::Position::atStartOfRootEditableElement): Removed. Dead code; was not being called.
          (DOM::Position::isLastRenderedPositionInEditableBlock): Removed. Replaced with calls to CaretPosition class.
          (DOM::Position::inLastEditableInRootEditableElement): Removed. Dead code; was not being called.
          (DOM::Position::inFirstEditableInRootEditableElement): Removed. Was only being called by other code that has been removed.
          * khtml/xml/dom_position.h:
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::modifyExtendingRightForward): Moved implementation of CHARACTER case to use CaretPosition class instead
          of Position class helpers.
          (DOM::Selection::modifyMovingRightForward): Ditto.
          (DOM::Selection::modifyExtendingLeftBackward): Ditto.
          (DOM::Selection::modifyMovingLeftBackward): Ditto.
          (DOM::Selection::validate): Made simplifications in code that used to call a concoction of Position class helpers to
          do the right thing. Now calls CaretPosition equivalents.
  
  2004-09-13  Ken Kocienda  <kocienda at apple.com>
  
          This test was broken. The result is that it was not testing what it was supposed to 
          be testing. I fixed the test and updated the expected results.
  
          * layout-tests/editing/selection/move-between-blocks-no-001-expected.txt
          * layout-tests/editing/selection/move-between-blocks-no-001.html
  
  2004-09-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for these bugs:
          
          <rdar://problem/3784835> REGRESSION (Mail): crash in DOM::ElementImpl::tagName inside delete text command code while editing a Mail message
          <rdar://problem/3788015> REGRESSION (Mail): Crash deleting before a blockquote
          <rdar://problem/3796366> REGRESSION (Mail): Crash Mail by deleting the right line from pasted HTML
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteSelectionCommandImpl::doApply): All of these bugs are due to the same problem. When I
          made the delete command run even when the text is a caret (to make block merges work right when the
          caret is at the start of a block), I failed to handle one case when there might be no text to 
          delete. This resulted in a call to the DeleteTextCommand with a zero-length deletion request.
          This is not supported. Now, I have added an additional test in this one place in the code that
          was causing all these failures.
  
  2004-09-12  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3797758> REGRESSION (155-156): Cannot tab between input fields at switchboard.com
  
          * kwq/KWQLineEdit.mm: (QLineEdit::selectAll): Use setFocus() instead of calling makeFirstResponder
          directly since it handles the case where the field editor has focus.
  
  2004-09-12  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3792082> zero character codes in UTF-16 input cause crash
  
          * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertUTF16): Fixed code that was using the wrong variable
          to decrement the input length, causing buffer overrun.
  
  2004-09-12  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3798240> computed style error log messages seen with numbers in the range 74-77
  
          * khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
          Added implementations for CSS_PROP__KHTML_MARQUEE_INCREMENT, CSS_PROP_MAX_HEIGHT, CSS_PROP_MAX_WIDTH,
          CSS_PROP_MIN_HEIGHT, CSS_PROP_MIN_WIDTH, and CSS_PROP_VISIBILITY.
  
  2004-09-12  Darin Adler  <darin at apple.com>
  
          * layout-tests/css1/text_properties/text-transform-expected.txt: Removed unused test result.
  
  2004-09-11  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3787208> can't log in to SAP SDN site (JS parse error)
  
          * kwq/KWQKURL.mm:
          (KURL::decode_string): Check for find result >= 0 instead of >0,
  	to handle case of first character in a string being encoded.
  
  2004-09-09  Chris Blumenberg  <cblu at apple.com>
  
  	Support for: <rdar://problem/3795485> debug menu item to enable RSS animation on first layout
  
          Reviewed by rjw.
  
          * khtml/khtml_part.h:
          (KHTMLPart::didFirstLayout): new
          * khtml/khtmlview.cpp:
          (KHTMLView::layout): call didFirstLayout
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::didFirstLayout): new
          * kwq/WebCoreBridge.h:
  
  === Safari-163 ===
  
  2004-09-09  Maciej Stachowiak  <mjs at apple.com>
  
          - roll out the last change, it appears to cause a performance regression
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::caretRect):
          * khtml/rendering/render_box.h:
          * khtml/rendering/render_br.cpp:
          (RenderBR::caretRect):
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::caretRect):
          * khtml/rendering/render_flow.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::caretRect):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::caretRect):
          * khtml/rendering/render_text.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
  
  2004-09-08  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	WebCore part of fix for:
  	
  	<rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
  	
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge firstRectForDOMRange:]): New method to compute the rect for a
  	DOMRange, or if the range is split into multiple lines, the rect for the part on
  	the first line only.
  	
          * khtml/rendering/render_object.cpp:
          (RenderObject::caretRect): Added extraWidthToEndOfLine parameter and ditto
  	for the overrides below.
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_box.cpp:
          (RenderBox::caretRect):
          * khtml/rendering/render_box.h:
          * khtml/rendering/render_br.cpp:
          (RenderBR::caretRect):
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::caretRect):
          * khtml/rendering/render_flow.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::caretRect):
  
  2004-09-06  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3790526> mark-related methods not implemented (needed for people with them in their key bindings files)
  
          * khtml/khtml_part.h: Added mark and setMark.
          * khtml/khtmlpart_p.h: Added m_mark.
          * khtml/khtml_part.cpp:
          (KHTMLPart::mark): Added.
          (KHTMLPart::setMark): Added.
  
          * kwq/KWQKHTMLPart.h: Change name of markedRange to markedTextRange to decrease
          the change it will be confused with the mark.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::clear): Update for name change.
          (KWQKHTMLPart::markedTextRange): Ditto.
          (KWQKHTMLPart::setMarkedTextRange): Ditto.
  
          * khtml/rendering/render_text.cpp: (RenderText::paint): Update for name change.
  
          * kwq/WebCoreBridge.h: Remove setSelectionFrom, selectionStart, selectionStartOffset,
          selectionEnd, selectionEndOffset, and clearMarkedDOMRange. Renamed setMarkedDOMRange
          to setMarkedTextDOMRange and markedDOMRange to markedTextDOMRange. Added setMarkDOMRange
          and markDOMRange for the Emacs "mark".
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setMarkDOMRange:]): Added.
          (-[WebCoreBridge markDOMRange]): Added.
          (-[WebCoreBridge setMarkedTextDOMRange:]): Renamed.
          (-[WebCoreBridge markedTextDOMRange]): Renamed.
  
          * khtml/xml/dom_selection.cpp: (DOM::Selection::validate): Make paragraph positions
          canonical by using deep rendered positions. Maybe someday this won't be an ad hoc
          decision any more.
  
          * khtml/xml/dom_nodeimpl.cpp: (NodeBaseImpl::removeChildren): Use ref and deref
          rather than the unconventional check for 0 refCount. This makes us a bit more
          robust against a node going away partway through the removal process.
  
          * WebCore.pbproj/project.pbxproj: Update MACOSX_DEPLOYMENT_TARGET to 10.3.
  
  2004-09-08  Maciej Stachowiak  <mjs at apple.com>
  
          - fixed deployment build problems noticed by Grant
  
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::caretRect):
          * khtml/rendering/render_text.cpp:
          (RenderText::caretRect):
  
  2004-09-08  David Hyatt  <hyatt at apple.com>
  
  	Fix XML so that elements with no namespace never make HTML elements (when their names coincidentally match).
  	
          Reviewed by rjw
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createElementNS):
  
  2004-09-07  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- renamed caretPos to caretRect and made it return a QRect instead
  	of taking four out parameters by reference.
  	
          * khtml/rendering/render_box.cpp:
          (RenderBox::caretRect):
          * khtml/rendering/render_box.h:
          * khtml/rendering/render_br.cpp:
          (RenderBR::caretRect):
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::caretRect):
          * khtml/rendering/render_flow.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::caretRect):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::caretRect):
          * khtml/rendering/render_text.h:
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::xPosForVerticalArrowNavigation):
          (DOM::Selection::layoutCaret):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge caretRectAtNode:offset:]):
  
  2004-09-07  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	<rdar://problem/3759209> REGRESSION (Mail): assertion failure when all of marked text deleted at start of document
  	
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::setMarkedRange): Allow any empty range, even if
  	it's not in a text node, since in this case it won't matter and
  	weird things can happen when all marked text is removed, there
  	might not be any text nodes.
  
  2004-09-07  David Hyatt  <hyatt at apple.com>
  
  	Initial text-decoration CSS3 work for editing.  Just gets the properties and values parsed.
  	
          Reviewed by darin
  
          * 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::adjustRenderStyle):
          * khtml/css/cssvalues.c:
          (hash_val):
          (findValue):
          * khtml/css/cssvalues.h:
          * khtml/css/cssvalues.in:
  
  2004-09-06  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin and Ken.
  
  	<rdar://problem/3655568> window.open fails when URL contains trailing space
  
          * kwq/KWQKURL.mm:
          (KURL::KURL): Strip trailing and leading space when resolving relative URLs in all
  	cases, instead of just leading in the non-absolute case as before.
  
  	- refactored KURL constructor to put more work in separate
  	functions and also to change static methods to static functions,
  	to avoid having to change the header when only changing helper
  	functions that do not affect the KURL API (since KURL.h is widely
  	included).
  	
          * kwq/KWQKURL.mm:
          (encodeHostname):
          (findHostnamesInMailToURL):
          (findHostnameInHierarchicalURL):
          (encodeHostnames):
          (encodeRelativeString):
          (substituteBackslashes):
  	* kwq/KWQKURL.h:
  
  	- add missing include of qvaluelist.h
  
          * khtml/ecma/kjs_dom.h:
  
  2004-09-06  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3512066> REGRESSION (Mail): Select All highlights only part of the content, though all is copied
          - fixed <rdar://problem/3157025> REGRESSION (Mail): Should select paragraph instead of line on triple-click
          - fixed <rdar://problem/3735048> REGRESSION (Mail): HTML editing must select newline on triple click
          - fixed <rdar://problem/3788872> REGRESSION (Mail): ctrl-a emacs key binding does not work (move to start of paragraph)
          - fixed <rdar://problem/3788881> REGRESSION (Mail): ctrl-e emacs key binding does not work (move to end of paragraph)
          - fixed <rdar://problem/3789931> REGRESSION (Mail): typing style lost when you backspace
          - added code to select inserted text to help WebKit implement yankAndSelect:
          - did some clean-up on editing commands code
          
          * khtml/khtml_part.cpp:
          (KHTMLPart::handleMousePressEventTripleClick): Expand to a paragraph, not a line.
          (KHTMLPart::selectAll): Remove a lot of unneeded code and just expand to document using Selection.
          (KHTMLPart::selectionHasStyle): Remove check that limited us to only HTML elements, and add
          a check for nil. Together, these two changes fix a few cases I ran into during testing.
  
          * khtml/rendering/render_canvas.cpp: (RenderCanvas::setSelection): Fix test that was checking if
          the old selection spanned multiple objects when it really should have checked whether the new
          new selection spans multiple objects. This caused the select all redraw bug.
  
          * khtml/editing/htmlediting.h: Fixed indenting. Remove command IDs, replacing them with a couple
          of specific type checking methods, and SharedCommandImpl, using EditCommandImpl directly instead.
          Got rid of virtual functions, since the command objects have no data members other than the ones
          inherited from SharedPtr. Removed explicit copy constructors and destructors. Removed unneeded
          empty constructors. Removed inline directives that were having no effect. Added some boolean
          selectInsertedText parameter to some commands. Made almost all member functions const, because
          the const here applies to the command object which is a smart pointer, not the pointed-to
          command implementation object.
          * khtml/editing/htmlediting.cpp:
          (khtml::EditCommand::EditCommand): Changed since SharedPtr is now a pointer to EditCommandImpl.
          (khtml::EditCommand::operator=): Added. By defining this explicitly, we don't need the class
          that we are pointing to defined in the header, which lets us get rid of SharedCommandImpl.
          (khtml::EditCommand::isInputTextCommand): Added.
          (khtml::EditCommand::isTypingCommand): Added.
          (khtml::EditCommand::setParent): Updated since EditCommandImpl.setParent takes an impl pointer now.
          (khtml::EditCommand::handle): Removed, since it's identical to get().
          (khtml::InputTextCommand::input): Added selectInsertedText parameter.
          (khtml::TypingCommand::TypingCommand): Ditto.
          (khtml::TypingCommand::insertText): Ditto.
          (khtml::TypingCommand::isOpenForMoreTypingCommand): Use isTypingCommand instead of commandID.
          (khtml::TypingCommand::closeTyping): Change parameter type to const reference.
  
          * khtml/editing/htmlediting_impl.h: Made StyleChange functions be const member functions.
          Changed parent() and setParent() to take and return EditCommandImpl pointers and be inlined.
          Added virtual isInputTextCommand, isTypingCommand, and preservesTypingStyle functions.
          Removed commandID functions and unneeded explicit destructors. Removed unneeded doApply
          function declaration in CompositeEditCommandImpl. Changed type of applyTypingStyle to return
          a node, not necessarily an element. Removed private execute function from InputTextCommandImpl.
          Added selectInsertedText to InputTextCommandImpl's input function and TypingCommandImpl's constructor
          and insertText function.
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::StyleChange::StyleChange): Don't bother initializing the booleans since init handles that.
          (khtml::StyleChange::init): Added code to strip whitespace, and tweaked how the function does its job.
          (khtml::StyleChange::currentlyHasStyle): Added a check for null value, which can happen for properties
          where we don't have computed style implemented yet.
          (khtml::EditCommandImpl::EditCommandImpl): Updated since there is no SharedCommandImpl any more.
          (khtml::EditCommandImpl::apply): Call new preservesTypingStyle function rather than checking
          the command ID. This preserves typing style when deleting with the keyboard.
          (khtml::EditCommandImpl::setStartingSelection): Changed since parent is now a EditCommandImpl.
          Also rewrote to use for loop so it's simpler-looking.
          (khtml::EditCommandImpl::setEndingSelection): Ditto.
          (khtml::EditCommandImpl::setTypingStyle): Ditto.
          (khtml::EditCommandImpl::preservesTypingStyle): Added. Returns false.
          (khtml::EditCommandImpl::isInputTextCommand): Added. Returns false.
          (khtml::EditCommandImpl::isTypingCommand): Added. Returns false.
          (khtml::CompositeEditCommandImpl::applyTypingStyle): Changed this function to return a node rather
          than an element. Also change it so it returns the child as-is if the style change has nothing in it.
          (khtml::AppendNodeCommandImpl::~AppendNodeCommandImpl): Removed unneeded null checks.
          (khtml::DeleteSelectionCommandImpl::preservesTypingStyle): Added. Returns true.
          (khtml::DeleteTextCommandImpl::~DeleteTextCommandImpl): Removed unneeded null checks.
          (khtml::InputTextCommandImpl::input): Renamed execute function to input and got rid of the additional
          level of indirection, since it was the only caller. Added selectInsertedText parameter and changed
          the code so it will respect it.
          (khtml::InputTextCommandImpl::isInputTextCommand): Added. Returns true.
          (khtml::InsertNodeBeforeCommandImpl::~InsertNodeBeforeCommandImpl): Removed unneeded null checks.
          (khtml::JoinTextNodesCommandImpl::~JoinTextNodesCommandImpl): Ditto.
          (khtml::MoveSelectionCommandImpl::MoveSelectionCommandImpl): Hold a reference to the fragment
          while the command exists.
          (khtml::MoveSelectionCommandImpl::~MoveSelectionCommandImpl): Release the fragment.
          (khtml::RemoveNodeCommandImpl::~RemoveNodeCommandImpl): Remove unneeded null checks.
          (khtml::RemoveNodeCommandImpl::doUnapply): Take advantage of defined behavior of insertBefore when
          the node to insert before is 0 (means the same thing as appendChild).
          (khtml::RemoveNodePreservingChildrenCommandImpl::~RemoveNodePreservingChildrenCommandImpl):
          Remove unneeded null check.
          (khtml::ReplaceSelectionCommandImpl::ReplaceSelectionCommandImpl): Hold a reference to the fragment
          while the command exists.
          (khtml::ReplaceSelectionCommandImpl::~ReplaceSelectionCommandImpl): Release the fragment.
          (khtml::SetNodeAttributeCommandImpl::~SetNodeAttributeCommandImpl): Remove unneeded null check.
          (khtml::SplitTextNodeCommandImpl::~SplitTextNodeCommandImpl): Remove unneeded null check.
          (khtml::TypingCommandImpl::TypingCommandImpl): Added selectInsertedText parameter.
          (khtml::TypingCommandImpl::doApply): Pass along selectInsertedText parameter.
          (khtml::TypingCommandImpl::insertText): Ditto.
          (khtml::TypingCommandImpl::preservesTypingStyle): Added. Returns true for DeleteKey.
          (khtml::TypingCommandImpl::isTypingCommand): Added. Returns true.
  
          * khtml/editing/jsediting.cpp: Add a cut at implementing the underline command. May not work
          perfectly yet because text-decoration is not inherited the way, say, font-weight is.
  
          * khtml/xml/dom_selection.h: Removed some unneeded friend declarations for comparison operators
          that use only public members. Added PARAGRAPH_BOUNDARY.
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::modifyExtendingRightForward): Implemented paragraph boundary case, simplified line
          boundary case (by changing parameter types and function names, not the algorithm), and made
          paragraph case fall into line case for now.
          (DOM::Selection::modifyMovingRightForward): Ditto.
          (DOM::Selection::modifyExtendingLeftBackward): Ditto.
          (DOM::Selection::modifyMovingLeftBackward): Ditto.
          (DOM::Selection::validate): Implemented paragraph case and paragraph boundary case, simplified the
          line case as above and also fixed the document case.
          (DOM::startOfFirstRunAt): Changed to use DOM::Position instead of node
          offset pairs. Also renamed and got rid of separate bool to indicate "not found".
          (DOM::endOfLastRunAt): Ditto.
          (DOM::selectionForLine): Ditto.
  
          * khtml/xml/dom_position.h: Added startParagraphBoundary and endParagraphBoundary.
          Also used enums instead of bools in a couple of places. Removed some unneeded friend
          declarations for comparison operators that use only public members.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::Position): Coding style tweak.
          (DOM::Position::startParagraphBoundary): Added.
          (DOM::Position::endParagraphBoundary): Added.
          (DOM::Position::upstream): Use enum parameter instead of bool.
          (DOM::Position::downstream): Ditto.
          (DOM::Position::rendersOnSameLine): Removed unused function. Noticed some backwards logic
          here, and removed it rather than fixing it.
  
          * khtml/xml/dom_nodeimpl.h: Added traversePreviousNodePostOrder.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::traversePreviousNodePostOrder): Added. For some uses, this function is more analogous
          to traverseNextNode in reverse than traversePreviousNode, which does a backwards pre-order traversal.
  
          * kwq/WebCoreBridge.h: Replaced fontForCurrentPosition method with fontForSelection:, added
          selectInsertedText parameter to insertText method, and added selectionStartHasStyle: method.
          Add WebSelectToParagraphBoundary.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setSelectedDOMRange:affinity:]): Added workaround for bug where isRenderedContent
          returns false for <br> elements at the ends of lines.
          (-[WebCoreBridge insertText:selectInsertedText:]): Added selectInsertedText parameter, passing it
          along to TypingCommand::insertText.
          (-[WebCoreBridge selectionStartHasStyle:]): Added. Calls code in the part that does the real work.
          (-[WebCoreBridge fontForSelection:]): Ditto.
  
          * kwq/KWQKHTMLPart.h: Renamed fontForCurrentPosition to fontForSelection, and added a feature
          where it tells us whether there are multiple fonts in the selection or not.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::fontForSelection): Rewrote this to be a bit simpler, and added code to detect
          whether there are multiple fonts in the selection.
          (KWQKHTMLPart::didTellBridgeAboutLoad): Use a global character rather than a bad pointer here.
          Better not to rely on undefined behavior.
          (KWQKHTMLPart::documentFragmentWithText): Use lowercase HTML. I believe this works better when
          the document is XML, and we should probably visit all callers and change them.
          (KWQKHTMLPart::registerCommandForUndo): Call get() instead of handle().
          (KWQKHTMLPart::registerCommandForRedo): Call get() instead of handle().
  
          * khtml/misc/shared.h: Added a private, non-implemented copy constructor and assignment
          operator to Shared<> and TreeShared<> to prevent copying reference counts by accident.
          * khtml/rendering/render_style.h: Get rid of Shared<BorderData>, since it's not used that way.
          This makes BorderData smaller, and allows it to compile with the change to Shared<>.
          * khtml/xml/dom_docimpl.h: Remove unneeded copy constructor on DocumentFragmentImpl,
          which ran afoul of the change to Shared<> and was unused.
          * khtml/xml/dom_docimpl.cpp: Ditto.
          * khtml/xml/dom_stringimpl.cpp:
          (DOM::DOMStringImpl::empty): Changed code around so it doesn't run afoul of the change to
          Shared<>. The old code was copying a DOMStringImpl.
          (DOM::DOMStringImpl::ascii): Added code to null-terminate the string buffer.
  
  2004-09-06  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - improved computed style code and implemented text-decoration and text-shadow (needed for, e.g., underline)
  
          * khtml/css/css_computedstyle.cpp:
          Added CSS_PROP_TEXT_DECORATION to the InheritableProperties array for now even though it's
          not inheritable. This makes underline work in some cases for typing style. We may decide to
          take it back out again after further consideration.
          (DOM::valueForLength): Use IDs in primitive values rather than strings.
          (DOM::valueForBorderStyle): Ditto, also renamed this.
          (DOM::valueForTextAlign): More of the same.
          (DOM::valueForShadow): Added this function.
          (DOM::CSSComputedStyleDeclarationImpl::getPositionOffsetValue): More IDs in primitive values.
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Changed all the cases to use
          IDs instead of strings in primitive values. Also put the style in a local variable for
          better code size and smaller source code too. Added implementation for CSS_PROP_TEXT_DECORATION
          and CSS_PROP_TEXT_SHADOW.
  
          * khtml/css/css_valueimpl.cpp:
          (CSSValueListImpl::cssText): Put commas between list elements.
          (CSSPrimitiveValueImpl::cssText): Fixed some messed up indenting and removed an unneeded
          default case that would just prevent a warning if we ever have an unhandled enum value.
  
  2004-09-06  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - did some clean-up on form data code
  
          * khtml/misc/formdata.h: Added more public functions as suggested by Chris when he reviewed
          this class.
          * khtml/misc/formdata.cpp: (khtml::FormData::appendFile): Added. Will be needed soon.
          * kwq/KWQFormData.mm: (arrayFromFormData): Use new cleaned-up FormData API.
  
  2004-09-06  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          * kwq/DOM-CSS.mm: (-[DOMCSSStyleDeclaration description]): Use cssText in the description
          so it's easier to see in the debugger.
  
  2004-09-06  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          * khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::send): Remove uneeded QCString copy.
  
  2004-09-04  Richard Williamson   <rjw at apple.com>
  
          Fix build problem on panther.
  
          * khtml/ecma/kjs_html.cpp:
          * khtml/rendering/render_canvasimage.h:
  
  2004-09-03  David Hyatt  <hyatt at apple.com>
  
  	Simple tweak to background-attachment.  Don't apply the slow repaint flag until after the whole style has been
  	resolved, since while cascading someone may set the attachment to fixed but later override with scroll.
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::adjustRenderStyle):
          (khtml::CSSStyleSelector::applyProperty):
  
  2004-09-03  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3781001>: redirection of URL via resource load delegate does not correctly set base URL for subsequent loads
  
  	Ensure that stylesheets have the correct URL when request
  	is redirected.
  
          Reviewed by Maciej.
  
          * khtml/misc/loader.cpp:
          (CachedCSSStyleSheet::checkNotify):
          * kwq/KWQLoader.h:
          * kwq/KWQLoader.mm:
          (KWQIsResponseURLEqualToURL):
          (KWQResponseURL):
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
  	Compare parameter count with == instead of <=.
  
  2004-09-03  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3779083, deleting large amount of text is really slow.  Don't use NodeLists in editing remove commands.
  	
          Reviewed by darin
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::RemoveNodeCommandImpl::RemoveNodeCommandImpl):
          (khtml::RemoveNodePreservingChildrenCommandImpl::doApply):
  
  2004-09-03  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3714501> REGRESSION (125.8-8A162): Chinese words display as garbage in search results (www.sz.net.cn)
  
          * khtml/ecma/kjs_html.cpp: (KJS::HTMLDocument::putValue): Resolve URL using the document method
          that passes the codec rather than calling the KURL constructor directly.
  
  2004-09-03  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3788409> can't create or clone an embed element
  
          Reviewed by rjw.
  
          * khtml/html/htmlparser.cpp: added fixme about sharing code
          * khtml/xml/dom_docimpl.cpp: ditto
          (DocumentImpl::createHTMLElement): create and return a HTMLEmbedElementImpl
  
  2004-09-03  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris.
  
          - fixed <rdar://problem/3410112> filename with non-ASCII name for <input type=file> should be sent in the page's encoding
  
          * khtml/html/html_formimpl.cpp: (DOM::HTMLFormElementImpl::formData):
          Encode filename using the codec rather than doing the &# dance. It turns out that Mozilla
          only does the &# thing under certain circumstances that are not important. Always encoding
          the filename is almost certainly better behavior, and will fix many serious problems for
          Japanese and Korean users and websites.
  
  2004-09-03  Richard Williamson   <rjw at apple.com>
  
  	Made drawImage() in <canvas> compliant with whatwg spec.
  	
          Reviewed by John.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          * khtml/html/html_imageimpl.h:
          (DOM::HTMLImageElementImpl::pixmap):
  
  2004-09-03  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3787686, CSS parser should do case-sensitive matching of ids and attributes only in strict mode
  	(and not whenever you have an HTML document).
  	
          Reviewed by john
  
          * khtml/css/parser.cpp:
          * khtml/css/parser.y:
  
  === Safari-162 ===
  
  2004-09-03  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - <rdar://problem/3788040> REGRESSION: text that i type into a textarea disappears when i tab out of the textarea
  
          * kwq/KWQTextArea.mm: (-[KWQTextArea textDidChange:]): Bring back an unconditional version of
          this method. Earlier, we deleted this method, but we should have instead removed the check.
  
  2004-09-02  David Hyatt  <hyatt at apple.com>
  
  	Swap RenderBox and RenderContainer.  Make leaf RenderObjects actually derive off of RenderBox instead.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::addChildToFlow):
          * khtml/rendering/render_box.cpp:
          (RenderBox::RenderBox):
          (RenderBox::detach):
          * khtml/rendering/render_box.h:
          * khtml/rendering/render_container.cpp:
          (RenderContainer::RenderContainer):
          (RenderContainer::detach):
          * khtml/rendering/render_container.h:
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::detach):
          (RenderFlow::dirtyLineBoxes):
          (RenderFlow::createInlineBox):
          (RenderFlow::getAbsoluteRepaintRect):
          (RenderFlow::lowestPosition):
          (RenderFlow::rightmostPosition):
          (RenderFlow::leftmostPosition):
          (RenderFlow::caretPos):
          * khtml/rendering/render_flow.h:
          (khtml::RenderFlow::RenderFlow):
          * khtml/rendering/render_frames.cpp:
          (RenderFrameSet::RenderFrameSet):
          (RenderFrameSet::nodeAtPoint):
          (RenderFrameSet::dump):
          * khtml/rendering/render_frames.h:
          * khtml/rendering/render_inline.cpp:
          (RenderInline::addChildToFlow):
          * khtml/rendering/render_replaced.cpp:
          * khtml/rendering/render_replaced.h:
          (khtml::RenderReplaced::setIntrinsicHeight):
          * khtml/rendering/render_table.cpp:
          (RenderTableSection::RenderTableSection):
          (RenderTableSection::detach):
          (RenderTableSection::setStyle):
          * khtml/rendering/render_table.h:
  
  2004-09-02  Ken Kocienda  <kocienda at apple.com>
  
          * khtml/editing/htmlediting_impl.h: Fix some inconsistent use of whitespace. No code change.
  
  2004-09-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3786848> REGRESSION (Mail): Typing styles and font panel updates broken
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::inRenderedContent): Check for inlines that can have kids is wrong.
          I busted this the other day when making the PositionIterator class iterate over
          all nodes and not just leaves of the DOM tree.
          
          Update all the following functions. These use the PositionIterator class, but still 
          only want to consider leaf nodes.
          
          (DOM::Position::isFirstRenderedPositionOnLine)
          (DOM::Position::isLastRenderedPositionOnLine)
          (DOM::Position::isLastRenderedPositionInEditableBlock)
          (DOM::Position::inFirstEditableInRootEditableElement)
          (DOM::Position::inLastEditableInRootEditableElement)
          (DOM::Position::inFirstEditableInContainingEditableBlock)
          (DOM::Position::inLastEditableInContainingEditableBlock)
  
  2004-09-02  Richard Williamson   <rjw at apple.com>
  
  	Support for patterns in <canvas>
  
          Reviewed by Hyatt.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          (Context2D::putValue):
          (drawPattern):
          (ImagePattern::ImagePattern):
          (ImagePattern::~ImagePattern):
          * khtml/ecma/kjs_html.h:
          (KJS::ImagePattern::getPattern):
          (KJS::ImagePattern::pixmap):
          * kwq/KWQPixmap.h:
          * kwq/KWQPixmap.mm:
          (QPixmap::imageRef):
          * kwq/WebCoreImageRenderer.h:
  
  2004-09-01  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3769409, a regression from 10.3.4 to 10.3.5 involving <colgroup>s in malformed HTML.
  	
          Reviewed by mjs
  
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::insertNode):
  
  2004-09-01  David Hyatt  <hyatt at apple.com>
  
  	Fix for the <colgroup> crasher.  Make sure adding to an anonymous box just returns immediately. Also eliminate
  	all the redundant setPos -500000 calls, since we don't need those at all.
  	
          Reviewed by john
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::addChildToFlow):
          (khtml::RenderBlock::makeChildrenNonInline):
          * khtml/rendering/render_inline.cpp:
          (RenderInline::splitFlow):
  
  2004-09-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for these bugs:
          
          <rdar://problem/3729219> REGRESSION (Mail): Caret placement and navigation not working correctly at yahoo.com
          <rdar://problem/3758606> REGRESSION (Mail): Deletions across DIV elements is broken
          <rdar://problem/3784810> REGRESSION (Mail): delete at beginning of line instead deletes to the end of the document (simple reduced test)
  
          I made some very big improvements to the code which handles deletions of selections
          which span more than one block.
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::CompositeEditCommandImpl::deleteUnrenderedText): An new, overloaded version of this
          function which works on a NodeImpl. The code in this function fell out of some refactoring
          I did in the function with the same name which takes a Position as an argument.
          (khtml::DeleteSelectionCommandImpl::moveNodesToBlock): New function. This new logic provides
          the smarts to fix the bugs listed above and greatly improves the code to perform deleting 
          selections which span more than one block.
          (khtml::DeleteSelectionCommandImpl::doApply): Several changes. Constrain downstream positions
          so that they stay in the current block. This was a mistake before I think. Add code to detect
          when the insertion point is a caret at the start of a block. This is a special-case of a
          cross-block selection. Change the end-of-deletion-fixup case to operate on the downstreamEnd
          position of the selection rather than the upstream. This is more logical. Refine the block 
          merge logic to handle more cases, like dealing with whitespace. 
          * khtml/editing/htmlediting_impl.h: Associated header file changes.
          * khtml/xml/dom_nodeimpl.cpp: 
          (NodeImpl::rootEditableElement): Add code to clamp the return value to the body element.
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::validate): Make selection canonicalizations stay in the current block.
          * layout-tests/editing/deleting/delete-block-merge-contents-001-expected.txt:
          * layout-tests/editing/deleting/delete-block-merge-contents-001.html:
          * layout-tests/editing/deleting/delete-block-merge-contents-002-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-002.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-003-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-003.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-004-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-004.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-005-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-005.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-006-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-006.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-007-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-007.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-008-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-008.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-009-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-009.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-010-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-010.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-011-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-011.html: Added.
          * layout-tests/editing/inserting/insert-3654864-fix-expected.txt: Updated with new results.
          * layout-tests/editing/inserting/insert-3654864-fix.html: Updated test to deal better with
          improved select all behavior.
          * layout-tests/editing/selection/select-all-003-expected.txt: Updated with new results.
  
  2004-09-01  Richard Williamson   <rjw at apple.com>
  
  	Fixed panther build glitch.
  
          Reviewed by Ken.
  
          * khtml/ecma/kjs_html.cpp:
  
  2004-09-01  Richard Williamson   <rjw at apple.com>
  
  	Finished implementation of gradient support in <canvas>.
  
          Reviewed by John.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElementFunction::tryCall):
          (isGradient):
          (isImagePattern):
          (KJS::Context2DFunction::tryCall):
          (Context2D::putValue):
          (Context2D::Context2D):
          (KJS::GradientFunction::tryCall):
          (gradientCallback):
          (Gradient::commonInit):
          (Gradient::Gradient):
          (Gradient::~Gradient):
          (Gradient::getShading):
          (Gradient::addColorStop):
          (sortStops):
          (Gradient::colorStops):
          * khtml/ecma/kjs_html.h:
          (KJS::ColorStop::ColorStop):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
  
  2004-09-01  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3784686, hidden links still active.  Make sure text nodes exclude themselves from nodeAtPoint checks
  	when hidden.
  	
          * khtml/rendering/render_text.cpp:
          (RenderText::nodeAtPoint):
  
  2004-08-31  David Hyatt  <hyatt at apple.com>
  
  	Fixes for 3761411 and 3782201.  This patch makes two changes to percentage heights.  First it makes sure that
  	replaced elements always flex inside a cell (unlike blocks and tables, which do so only sometimes under bizarre
  	conditions that are still being guessed at by me).  The second fix is a recognition that empty tables do not
  	actually honor their heights, and so it is a mistake to try to flex them.
  	
          Reviewed by mjs
  
          * khtml/rendering/render_table.cpp:
          (RenderTableSection::layoutRows):
          * khtml/rendering/render_table.h:
          (khtml::RenderTable::hasSections):
  
  2004-08-31  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
      
          Fix for this bug:
          
          <rdar://problem/3781572> can't paste text in replied message view
  
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::toHTML): Copying text placed in an anonymous block was failing
          since the code in here depending on the text node's containing block having an
          element, which it won't. In fact, using containing block is wrong anyway, since
          positioned elements can have containing blocks far from where they live in the
          tree. This "move up to block check" should use the more DOM-wise enclosingBlockFlowElement()
          in NodeImpl.
  
  2004-08-30  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3742585, sony dhtml menus wrong size.  The percentage table height algorithm was wrong.  This patch
  	unifies the table percentage height algorithm with the block percentage height algorithm and fixes bugs in
  	both.
  	
          Reviewed by john
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcPercentageHeight):
          * khtml/rendering/render_table.cpp:
          (RenderTable::layout):
  
  2004-08-31  Ken Kocienda  <kocienda at apple.com>
  
          Added more editing layout tests.
  
          * layout-tests/editing/deleting/delete-tab-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-tab-001.html: Added.
          * layout-tests/editing/deleting/delete-tab-002-expected.txt: Added.
          * layout-tests/editing/deleting/delete-tab-002.html: Added.
          * layout-tests/editing/deleting/delete-tab-003-expected.txt: Added.
          * layout-tests/editing/deleting/delete-tab-003.html: Added.
          * layout-tests/editing/deleting/delete-tab-004-expected.txt: Added.
          * layout-tests/editing/deleting/delete-tab-004.html: Added.
          * layout-tests/editing/editing.js: Fixed a little bug in one of the "delayed" commands.
          * layout-tests/editing/inserting/insert-tab-001-expected.txt: Added.
          * layout-tests/editing/inserting/insert-tab-001.html: Added.
          * layout-tests/editing/inserting/insert-tab-002-expected.txt: Added.
          * layout-tests/editing/inserting/insert-tab-002.html: Added.
          * layout-tests/editing/inserting/insert-tab-003-expected.txt: Added.
          * layout-tests/editing/inserting/insert-tab-003.html: Added.
          * layout-tests/editing/inserting/insert-tab-004-expected.txt: Added.
          * layout-tests/editing/inserting/insert-tab-004.html: Added.
  
  2004-08-31  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3782521> Typing newline at start of block does not work
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::InputNewlineCommandImpl::doApply): Change handling of case to insert
          newline at the start of a block.
          * layout-tests/editing/inserting/insert-br-006-expected.txt: Updated layout test with
          new results.
  
  2004-08-31  Ken Kocienda  <kocienda at apple.com>
  
          Checked in incorrect results for these tests. There are the right ones.
  
          * layout-tests/editing/deleting/collapse-whitespace-3587601-fix-expected.txt
          * layout-tests/editing/selection/move-by-line-001-expected.txt
  
  2004-08-31  Ken Kocienda  <kocienda at apple.com>
  
          Added more editing layout tests.
  
          * layout-tests/editing/deleting/collapse-whitespace-3587601-fix-expected.txt: Added.
          * layout-tests/editing/deleting/collapse-whitespace-3587601-fix.html: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-merge-contents-001.html: Added.
          * layout-tests/editing/editing.js: Added some more navigation commands.
          * layout-tests/editing/inserting/insert-3778059-fix-expected.txt: Added.
          * layout-tests/editing/inserting/insert-3778059-fix.html: Added.
          * layout-tests/editing/selection/move-by-line-001-expected.txt: Added.
          * layout-tests/editing/selection/move-by-line-001.html: Added.
          * layout-tests/editing/style/typing-style-003-expected.txt: Added.
          * layout-tests/editing/style/typing-style-003.html: Added.
  
  2004-08-31  Ken Kocienda  <kocienda at apple.com>
  
          Added more editing layout tests. Renamed some others.
  
          * layout-tests/editing/inserting/insert-br-001-expected.txt: Added.
          * layout-tests/editing/inserting/insert-br-001.html: Added.
          * layout-tests/editing/inserting/insert-br-002-expected.txt: Added.
          * layout-tests/editing/inserting/insert-br-002.html: Added.
          * layout-tests/editing/inserting/insert-br-003-expected.txt: Added.
          * layout-tests/editing/inserting/insert-br-003.html: Added.
          * layout-tests/editing/inserting/insert-br-004-expected.txt: Added.
          * layout-tests/editing/inserting/insert-br-004.html: Added.
          * layout-tests/editing/inserting/insert-br-005-expected.txt: Added.
          * layout-tests/editing/inserting/insert-br-005.html: Added.
          * layout-tests/editing/inserting/insert-br-006-expected.txt: Added.
          * layout-tests/editing/inserting/insert-br-006.html: Added.
          * layout-tests/editing/inserting/insert-br-case1-expected.txt: Removed.
          * layout-tests/editing/inserting/insert-br-case1.html: Removed.
          * layout-tests/editing/inserting/insert-br-case2-expected.txt: Removed.
          * layout-tests/editing/inserting/insert-br-case2.html: Removed.
          * layout-tests/editing/inserting/insert-br-case3-expected.txt: Removed.
          * layout-tests/editing/inserting/insert-br-case3.html: Removed.
          * layout-tests/editing/inserting/insert-br-case6-expected.txt: Removed.
          * layout-tests/editing/inserting/insert-br-case6.html: Removed.
          * layout-tests/editing/inserting/insert-text-with-newlines-expected.txt: Added.
          * layout-tests/editing/inserting/insert-text-with-newlines.html: Added.
  
  2004-08-31  Ken Kocienda  <kocienda at apple.com>
  
          * layout-tests/editing/editing.js: Modified typeCharacterCommand so it can accept a character
          as an argument.
  
  2004-08-31  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for these bugs:
  
          <rdar://problem/3777629> REGRESSION (Mail): can't delete blank lines in quoted text in HTML mail replies
          <rdar://problem/3780309> REGRESSION (Mail): can't delete past an empty span in a particular test case
          <rdar://problem/3780315> REGRESSION (Mail): right arrow works incorrectly in a particular test case with an empty span
          <rdar://problem/3780320> REGRESSION (Mail): left arrow works incorrectly in a particular test case with an empty span
          <rdar://problem/3780336> REGRESSION (Mail): down arrow fails in a reduction of a Mail reply test case (seems to be inside a span)
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::upstream): If this position's node is a block, use it for the StayInBlock case, not the block's
          enclosing block.
          (DOM::Position::downstream): Ditto.
          (DOM::Position::inRenderedContent): Refine the case for non-text nodes. This was erroneously returning true
          for any empty element (like <span></span>).
          * khtml/xml/dom_positioniterator.cpp: Change the following four functions to consider all nodes, not just
          leaves of the DOM tree. This is a step towards making this iteration less cranky and unpredictable, and
          was necessary to do now to keep the inRenderedContent() change above from breaking editign layout tests.
          (DOM::PositionIterator::peekPrevious)
          (DOM::PositionIterator::peekNext)
          (DOM::PositionIterator::atStart)
          (DOM::PositionIterator::atEnd)
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::fontForCurrentPosition): Check that the position being checked is an element and that the
          element is in rendered content. I ran across some null-check failures while I was coding this fix, and
          the additions seem prudent.
          
          Updated these layout tests with new results.
          
          * layout-tests/editing/deleting/delete-3608430-fix-expected.txt:
          * layout-tests/editing/deleting/delete-3775172-fix-expected.txt:
          * layout-tests/editing/deleting/delete-block-contents-001-expected.txt:
          * layout-tests/editing/deleting/delete-block-contents-002-expected.txt:
          * layout-tests/editing/deleting/delete-block-contents-003-expected.txt:
          * layout-tests/editing/deleting/delete-image-004-expected.txt:
          * layout-tests/editing/deleting/delete-trailing-ws-001-expected.txt:
          * layout-tests/editing/editing.js:
          * layout-tests/editing/execCommand/boldSelection-expected.txt:
          * layout-tests/editing/execCommand/italicizeByCharacter-expected.txt:
          * layout-tests/editing/execCommand/modifyForeColorByCharacter-expected.txt:
          * layout-tests/editing/execCommand/print-expected.txt:
          * layout-tests/editing/execCommand/selectAll-expected.txt:
          * layout-tests/editing/selection/extend-by-character-002-expected.txt:
          * layout-tests/editing/selection/extend-by-character-004-expected.txt:
          * layout-tests/editing/selection/extend-by-character-005-expected.txt:
          * layout-tests/editing/selection/extend-by-character-006-expected.txt:
          * layout-tests/editing/selection/select-all-001-expected.txt:
          * layout-tests/editing/selection/select-all-002-expected.txt:
          * layout-tests/editing/selection/select-all-003-expected.txt:
  
  2004-08-30  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3637519> REGRESSION (125-128): unrepro crash in QListBox::sizeForNumberOfLines at istweb.apple.com
  
          * kwq/KWQListBox.h: Added a clearCachedTextRenderers function.
          * kwq/KWQListBox.mm:
          (itemTextRenderer): Change to use globals that are outside the function, and added retain calls.
          (groupLabelTextRenderer): Ditto.
          (QListBox::clearCachedTextRenderers): Release global text renderers and nil out the globals.
  
          * kwq/WebCoreBridge.h: Removed updateAllViews; not needed any more.
          * kwq/WebCoreBridge.mm: Ditto.
  
          * kwq/WebCoreTextRendererFactory.h: Added a clearCaches method.
          * kwq/WebCoreTextRendererFactory.mm:
          (-[WebCoreTextRendererFactory clearCaches]): Added. Tells all the views to repaint after clearing the cached
          text renderers from KWQListBox. To be more elegant, we could generalize the KWQListBox trick, but for now why bother?
  
          * kwq/WebCoreTextRendererFactory.m: Removed. I needed to put some C++ code in here, so changed the extension to .mm.
          * WebCore.pbproj/project.pbxproj: Removed WebCoreTextRendererFactory.m, and added WebCoreTextRendererFactory.mm.
  
  2004-08-30  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3528538> can paste a Return character into the Search field at amazon.com, other browsers won't
  
          * kwq/KWQTextField.mm: (-[KWQTextFieldController controlTextDidChange:]):
          Truncate text before the first line break.
  
  2004-08-30  Darin Adler  <darin at apple.com>
  
          * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertOneChunkUsingTEC):
          Added some more assertions I used to track down what looks like a TEC bug.
  
  2004-08-30  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3779122> No accesskey support on LABEL element
  
          * khtml/html/html_formimpl.h: Change type of m_currValue to DOMString. Should have been done
          as part of my form data check-in, but harmless to do now. Add accessKeyAction function for
          HTMLLabelElementImpl.
          * khtml/html/html_formimpl.cpp:
          (DOM::HTMLButtonElementImpl::parseHTMLAttribute): Remove conversion of DOMString to QString
          for m_currValue.
          (DOM::HTMLLabelElementImpl::formElement): If there's no "for" attribute, search children for
          the first control.
          (DOM::HTMLLabelElementImpl::accessKeyAction): Forward the accesskey action to the formElement.
  
  2004-08-30  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed <rdar://problem/3303968> final newline character omitted from <textarea> when parsing a new page
  
          * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::processListing): Handle newline pending
          cases as well as space and tab pending spaces at the end of this function. This seems right for
          both scripts and text areas; it's not clear why omittiing the LF is ever needed. Tested by running
          all the layout tests; no regressions.
  
          - fixed <rdar://problem/3552736> word wrapped text fields that blur/focus when you type move the insertion point strangely (vtext.com)
  
          * khtml/rendering/render_form.cpp: (RenderTextArea::updateFromElement): Call text() instead of
          calling widget->text() directly. This prevents this function from running in cases where the
          text didn't really change for text areas in wrap mode.
  
  2004-08-30  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - got rid of ERROR message when running layout tests by implementing text-transform in computed style
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::numberAsString): Added. Helper that returns "1" rather then "1.0" for integer values.
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Fixed use of tabs instead of
          spaces. Fixed switch statements so they don't use default so we get errors if we leave
          a case out. Changed callers to use numberAsString instead of QString::number. Added implementation
          of CSS_PROP_TEXT_TRANSFORM. Added code to prevent falling through to next property when no item
          in a switch statement matches.
  
  2004-08-30  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris.
  
          - did work to prepare for uploading files incrementally when submitting forms
  
          * khtml/misc/formdata.h: Added. Class for holding form data inside WebCore.
          * khtml/misc/formdata.cpp: Added.
  
          * khtml/html/html_formimpl.h: Added the FormDataList type, changed the formData function parameters
          and made it private, renamed the encoding method to appendFormData and changed the parameters around.
          * khtml/html/html_formimpl.cpp:
          (DOM::FormDataList): Added. Class that replaces the old use of QValueList<QCString> for form data.
          Later we'll change it to accomodate filenames too.
          (DOM::HTMLFormElementImpl::formData): Changed code to use FormDataList intsead of the old encodingList.
          Also changed to return the "OK" result as the function result and put the form data into something
          passed as an "out" parameter; the old way was the other way around.
          (DOM::HTMLFormElementImpl::submit): Change to use FormData rather than a QByteArray when getting the
          form data to submit.
          (DOM::HTMLButtonElementImpl::appendFormData): Rename from encoding, and use the new appendData function
          instead of the old way of doing += to put data on the list.
          (DOM::HTMLInputElementImpl::appendFormData): Ditto.
          (DOM::HTMLSelectElementImpl::appendFormData): Ditto.
          (DOM::HTMLKeygenElementImpl::appendFormData): Ditto.
          (DOM::HTMLTextAreaElementImpl::appendFormData): Ditto.
          (DOM::FormDataList::FormDataList): Added.
          (DOM::FormDataList::appendString): Added.
          (DOM::FormDataList::begin): Added.
          (DOM::FormDataList::end): Added.
  
          * khtml/khtml_part.h: Changed the type of the submitForm parameter to FormData instead of QByteArray.
          * khtml/khtmlpart_p.h: Changed the type of the submitFormData data member to FormData instead of QByteArray.
          * khtml/khtml_part.cpp: (KHTMLPart::submitForm): Called the new flattenToString function in all the
          code that handles mailto forms. Called the new flatten function in the non-Apple code path.
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::submitForm): Pass NSArray for form data instead of NSData.
  
          * kwq/KWQKJob.h: Use FormData instead of QByteArray. A couple other small cleanups.
          * kwq/KWQKJobClasses.h: Ditto.
          * kwq/KWQKJobClasses.mm:
          (KIO::TransferJobPrivate::TransferJobPrivate): Ditto.
          (KIO::TransferJob::TransferJob): Ditto.
          (KIO::TransferJob::postData): Ditto.
          * kwq/KWQKPartsBrowserExtension.h: Ditto.
          * kwq/KWQLoader.mm:
          (KWQServeRequest): Ditto.
          (KWQServeSynchronousRequest): Ditto.
  
          * kwq/KWQFormData.h: Added. A function to convert KHTML form data into an NSArray for communication
          with the WebKit side.
          * kwq/KWQFormData.mm: Added.
  
          * kwq/WebCoreBridge.h: Pass NSArray instead of NSData for form data.
  
          * kwq/KWQArrayImpl.h: Added a detach member function. The old version would do unnecessary work when
          detach was called on an array that had exactly one reference.
          * kwq/KWQArrayImpl.mm: (KWQArrayImpl::detach): Added.
          * kwq/KWQMemArray.h: (QMemArray::detach): Call through to KWQArrayImpl.
  
          * kwq/KWQValueList.h:
          (QValueList::first): Added overload for non-const.
          (QValueList::last): Ditto.
  
          * ForwardingHeaders/misc/formdata.h: Added.
          * WebCore.pbproj/project.pbxproj: Added formdata.h, formdata.cpp, KWQFormData.h, and KWQFormData.cpp.
  
          * WebCore-tests.exp: Updated for changes to QValueList, and re-sorted.
          * WebCore-combined.exp: Regenerated.
  
  2004-08-30  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - improved multiple submit logic in preparation for making command-click on a form
            button load a form in another frame
  
          * kwq/KWQKHTMLPart.h: Added const to a bunch of member functions for cleanup.
          Added prepareForUserAction member function.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::submitForm): Simplified logic and removed special case for "http" and "https".
          (KWQKHTMLPart::renderer): Added const.
          (KWQKHTMLPart::keyEvent): Added call to prepareForUserAction.
          (KWQKHTMLPart::lastEventIsMouseUp): Added const.
          (KWQKHTMLPart::eventMayStartDrag): Added const.
          (KWQKHTMLPart::mouseDown): Added call to prepareForUserAction.
          (KWQKHTMLPart::overrideMediaType): Added const.
          (KWQKHTMLPart::canGoBackOrForward): Added const.
          (KWQKHTMLPart::prepareForUserAction): Added. Clears _submittedFormURL.
          * kwq/KWQAccObject.mm: (-[KWQAccObject accessibilityPerformAction:]): Added call to prepareForUserAction.
  
  2004-08-30  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
  
          <rdar://problem/3762231> REGRESSION (Mail): tab key inserts a single space
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::isTab): New helper. Checks a DOMString to see if it is one character and
          that character is a tab.
          (khtml::InputTextCommandImpl::execute): Trap tabs before handling insertion of
          other kinds of whitespace. Treat a tab like four spaces. Rearrange the code to
          update the ending position after the text insertion to cover the new tab case
          where the amount of advance is not the same as the number of character in the
          passed-in DOMString (i.e. tabs expand to four characters).
          
  2004-08-27  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          Fix for this bug:
          
          <rdar://problem/3779706> plain text on pasteboard loses indentation when pasted into Blot
  
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::documentFragmentWithText): New function that takes over the code from
          KWQKHTMLPart and improves it to handle converting tabs and spaces for suitable
          display in HTML.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge documentFragmentWithText:]): Move smarts from here to KWQKHTMLPart.
  
  2004-08-27  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3778314> REGRESSION: Can't proceed to survey questions on Lominger's Apple website
  
  	Because we will stop parsing when there is a pending redirection,
  	avoid setting one if no navigation would actually take place
  	because the number of steps is out of range.
  	
          * khtml/khtml_part.cpp:
          (KHTMLPart::scheduleHistoryNavigation):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::canGoBackOrForward):
          * kwq/KWQKPartsBrowserInterface.h:
          * kwq/WebCoreBridge.h:
  
  2004-08-27  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Chris.
  
  	- fixed <rdar://problem/3778043> REGRESSION: innerHTML is broken, breaks automated iBench testing
  	- also fixed outerHTML, which would spill over past the node for whch it was supposed to get HTML
  	
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::outerHTML):
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::toHTML):
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::toHTML):
          (NodeImpl::recursive_toString):
          (NodeImpl::recursive_toHTML):
          * khtml/xml/dom_nodeimpl.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge markupStringFromNode:nodes:]):
  
  	- added new layout tests to cover the problems I fixed
          
  	* layout-tests/fast/innerHTML/001-expected.txt: Added.
          * layout-tests/fast/innerHTML/001.html: Added.
          * layout-tests/fast/innerHTML/002-expected.txt: Added.
          * layout-tests/fast/innerHTML/002.html: Added.
          * layout-tests/fast/innerHTML/003-expected.txt: Added.
          * layout-tests/fast/innerHTML/003.html: Added.
  
  2004-08-27  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3739239, getComputedStyle of top not being implemented broke a site that checked for it.
  	
          Reviewed by kocienda
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::valueForLength):
          (DOM::CSSComputedStyleDeclarationImpl::getPositionOffsetValue):
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
          * khtml/css/css_computedstyle.h:
  
  2004-08-27  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken.
          
          Tweaked option-tab handling to match good suggestion from Tim Omernick of OmniWeb
  
          * kwq/KWQTextArea.mm:
          removed override of textDidChange:
          (-[KWQTextAreaTextView keyDown:]):
          moved option-tab handling that was in textDidChange to here. Rearranged existing code
          a little for clarity.
  
  2004-08-27  Adele Amchan  <adele at apple.com>
  
          Reviewed by Darin.
  
  	Fix for:
  	<rdar://problem/3689949> Provide contentWindow access on an iframe
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElement::getValueProperty): added cases for contentWindow for frames and iframes
          * khtml/ecma/kjs_html.h: added contentWindow to the list of properties for frames and iframes
          * khtml/ecma/kjs_html.lut.h: regenerated file
          * khtml/html/html_baseimpl.cpp:
          (HTMLFrameElementImpl::contentPart): factored out old contentDocument code to return KHTMLPart for frame
          (HTMLFrameElementImpl::contentDocument): now just gets the contentDocument from contentPart
          * khtml/html/html_baseimpl.h: added declaration for contentPart
  
  === Safari-161 ===
  
  2004-08-27  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/3778059> Odd behaviour when editing between blockquote elements
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::CompositeEditCommandImpl::deleteUnrenderedText): This function should not move
          the selection out of the current block, ever. This is exactly what the bug reported.
          What was I thinking? Now, the code looks at the passed-in position and then the equivalent
          upstream and downstream positions to see if the selection can be placed there after the
          delete, and settles on the block containing the passed-in position as a fallback.
          * layout-tests/editing/inserting/insert-3778059-fix-expected.txt: Added.
          * layout-tests/editing/inserting/insert-3778059-fix.html: Added.
  
  2004-08-26  Richard Williamson   <rjw at apple.com>
  
          Boiler plate for canvas gradients and patterns.
  
          Reviewed by John.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          (Context2D::tryPut):
          (Context2D::~Context2D):
          (KJS::GradientFunction::tryCall):
          (Gradient::Gradient):
          (Gradient::tryGet):
          (Gradient::getValueProperty):
          (Gradient::tryPut):
          (Gradient::putValue):
          (Gradient::~Gradient):
          (ImagePattern::ImagePattern):
          (ImagePattern::tryGet):
          (ImagePattern::getValueProperty):
          (ImagePattern::tryPut):
          (ImagePattern::putValue):
          (ImagePattern::~ImagePattern):
          * khtml/ecma/kjs_html.h:
          (KJS::Gradient::toBoolean):
          (KJS::Gradient::classInfo):
          (KJS::Gradient::):
          (KJS::ImagePattern::toBoolean):
          (KJS::ImagePattern::classInfo):
          (KJS::ImagePattern::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
  
  2004-08-26  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3777899> REGRESSION (Mail): only first of several misspelled words separated by 
          carriage returns is marked
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::TypingCommandImpl::markMisspellingsAfterTyping): Give the spellchecker a slightly larger 
          selection to work with while typing. This should preclude bugs of this type.
  
  2004-08-26  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
          
          Fix for this bug:
          
          <rdar://problem/3777804> Deleting all content in a document can result in giant tall-as-window insertion point
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::caretPos): Always use the font height for calculating the caret height in 
          non-replaced elements (like blocks), rather than the height of the box.
  
  2004-08-26  Ken Kocienda  <kocienda at apple.com>
  
          Silly me. Forgot to add this file before.
  
          * layout-tests/editing/inserting/insert-3775316-fix-expected.txt: Added.
  
  2004-08-26  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3777172, crash from nested colgroup.  Don't allow nested table sections or col groups.
  	
          Reviewed by darin
  
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::insertNode):
  
  2004-08-26  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3775316> document sprouts an extra newline character at the end
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::InputNewlineCommandImpl::doApply): There was in insufficient check
          in the code which adds extra BR elements at the ends of blocks, which we do 
          to work around the fact that BR elements, when they are the last element in a
          block, do not render. Now the code sees whether there already is one of these
          extra BR's in the document and won't add and "extra" extra. 
          * layout-tests/editing/inserting/insert-3775316-fix.html: Added.
  
  2004-08-26  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3710721 and 3504114, crashes because of bad ownership model for list markers.
  	
          Reviewed by mjs
  
          * khtml/rendering/render_container.cpp:
          (RenderContainer::detach):
          * khtml/rendering/render_list.cpp:
          (RenderListItem::setStyle):
          (RenderListItem::detach):
          (RenderListItem::updateMarkerLocation):
          * khtml/rendering/render_list.h:
  
  2004-08-26  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::ApplyStyleCommandImpl::doApply): Remove the StayInBlock modifier from the
          call to upstream when passing the start position to removeStyle(). This makes the
          start position sufficiently upstream so that all relevant style tags are removed.
          (khtml::ApplyStyleCommandImpl::removeStyle): Pass the start position to nodeFullySelected.
          (khtml::ApplyStyleCommandImpl::nodeFullySelected): Change interface so start position
          for calculation is passed in, rather than recalculating it every time.
          * khtml/editing/htmlediting_impl.h: nodeFullySelected interface change.
          * khtml/xml/dom_position.h: Add a comment about the working of upstream() and
          downstream().
  
  2004-08-26  Ken Kocienda  <kocienda at apple.com>
  
          Fix garbled contenteditable attribute. I must have checked
          this in with a typo.
  
          * layout-tests/editing/deleting/delete-3775172-fix.html
  
  2004-08-25  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by John and Maciej.
  
  	- Fixes SAP bug <rdar://problem/3751295> Personalize link at the
   	top gives an error in the pop-up window. 
  
          * khtml/ecma/kjs_window.cpp:
          (WindowFunc::tryCall): Passes a referrer to KHTMLPart::begin() 
  
  2004-08-25  Richard Williamson   <rjw at apple.com>
  
  	Updated to <canvas> API to match the spec.  (Still need
  	to implement gradients and patterns.)
  
          Reviewed by Ken.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          (Context2D::getValueProperty):
          (Context2D::drawingContext):
          (Context2D::colorRefFromValue):
          (Context2D::colorFromValue):
          (Context2D::setShadow):
          (Context2D::putValue):
          (Context2D::save):
          (Context2D::restore):
          (Context2D::Context2D):
          * khtml/ecma/kjs_html.h:
          (KJS::Context2D::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
  
  2004-08-25  Ken Kocienda  <kocienda at apple.com>
  
          * layout-tests/editing/deleting/delete-3775172-fix.html: Wrong version of test checked in
          a moment ago.
  
  2004-08-25  Ken Kocienda  <kocienda at apple.com>
  
          Added test case for <rdar://problem/3775172> Blot crashes after typing one character then deleting it
  
          * layout-tests/editing/deleting/delete-3775172-fix-expected.txt: Added.
          * layout-tests/editing/deleting/delete-3775172-fix.html: Added.
  
  2004-08-25  Ken Kocienda  <kocienda at apple.com>
  
          * layout-tests/editing/style/style-3690704-fix-expected.txt: Fewer styling spans added
          on this test as a result of the previously-checked-in fix.
  
  2004-08-25  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3775214> BR elements cause unnecessary spans to be added when applying style
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::ApplyStyleCommandImpl::doApply): BR elements can be grouped more liberally with other nodes
          now in the iteration when attempting to find nodes that can be styled together with one span.
          * layout-tests/editing/style/style-3690704-fix-expected.txt: Updated with new results after
          bug fix.
  
  2004-08-25  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3775172> Blot crashes after typing one character then deleting it
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Bail early if the element
          being queried does not have a renderer or that renderer does not have a style. Prevents
          a crash in the cases that it does not.
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteSelectionCommandImpl::doApply): Add one more case to deleting when the
          start and end nodes are different. If the downstream end node is the last node in the
          block, then it may need to be deleted completely. Before this patch, the code
          erroneously assumed that any deletion in this node had to be trimming of a text node.
          This was asserted, and the description in 3775172 shows a simple case where this assertion
          does not hold. The additional case and associated checks now make it all better.
          * layout-tests/editing/deleting/delete-3775172-fix.html: Added.
  
  2004-08-25  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3365086, large tables crash Safari.  Make sure to use ints rather than shorts for row and column
  	counts.  Also fix a pathological array resize scenario for tables as rows are added.
  	
          Reviewed by darin
  
          * khtml/rendering/render_table.cpp:
          (RenderTable::splitColumn):
          (RenderTable::appendColumn):
          (RenderTableSection::RenderTableSection):
          (RenderTableSection::ensureRows):
          (RenderTableSection::setCellWidths):
          (RenderTableSection::calcRowHeight):
          (RenderTableSection::layoutRows):
          (RenderTableSection::paint):
          (RenderTableSection::recalcCells):
          (RenderTableSection::clearGrid):
          * khtml/rendering/render_table.h:
          (khtml::RenderTableSection::numRows):
  
  2004-08-25  David Hyatt  <hyatt at apple.com>
  
  	To save memory in the common case, move the margin***Collapse variables into the CSS3 struct instead of
  	bloating the surround struct.
  	
          * khtml/rendering/render_style.cpp:
          (StyleSurroundData::StyleSurroundData):
          (StyleSurroundData::operator==):
          (marginBottomCollapse):
          (StyleCSS3NonInheritedData::operator==):
          (RenderStyle::diff):
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::marginTopCollapse):
          (khtml::RenderStyle::marginBottomCollapse):
          (khtml::RenderStyle::setMarginTopCollapse):
          (khtml::RenderStyle::setMarginBottomCollapse):
  
  2004-08-25  David Hyatt  <hyatt at apple.com>
  
  	Fix the "extra space in TypePad blogs" Emerson problem by adding the ability to collapse away margins.
  	Also added support for explicitly preventing margin collapsing.
  	
          Reviewed by mjs
  
          * 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:
          (hash_val):
          (findValue):
          * khtml/css/cssvalues.h:
          * khtml/css/cssvalues.in:
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::isSelfCollapsingBlock):
          (khtml::RenderBlock::layoutBlockChildren):
          * khtml/rendering/render_style.cpp:
          (StyleSurroundData::StyleSurroundData):
          (StyleSurroundData::operator==):
          (RenderStyle::diff):
          * khtml/rendering/render_style.h:
          (khtml::):
          (khtml::RenderStyle::marginTopCollapse):
          (khtml::RenderStyle::marginBottomCollapse):
          (khtml::RenderStyle::setMarginTopCollapse):
          (khtml::RenderStyle::setMarginBottomCollapse):
          (khtml::RenderStyle::initialMarginTopCollapse):
          (khtml::RenderStyle::initialMarginBottomCollapse):
  
  2004-08-24  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Improved the ability of the bridge to report selection state.     
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::TypingCommandImpl::doApply): Bail when there is no selection.
          * kwq/WebCoreBridge.h: Added an enum to report selection state. These constants
          mirror those used in DOM::Selection.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge selectionState]): Replacement for haveSelection. Returns a value 
          from an enum telling whether the selection is in the None, Caret, or Range state, 
          rather than just true/false for the Range state as it did before.
  
  2004-08-24  David Hyatt  <hyatt at apple.com>
  
  	Make sure the ifdef XSLT is present for Panther.
  	
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::XMLTokenizer::insertErrorMessageBlock):
  
  2004-08-24  David Hyatt  <hyatt at apple.com>
  
  	Polish the XML error message so that it indicates when a document is the result of an XSL transformation
  	when reporting line/col #s.
  	
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::applyXSLTransform):
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::XMLTokenizer::insertErrorMessageBlock):
          * khtml/xsl/xslt_processorimpl.cpp:
          (DOM::XSLTProcessorImpl::documentFromXMLDocPtr):
  
  2004-08-24  David Hyatt  <hyatt at apple.com>
  
  	Add support for Atom and RSS MIME types to the set of XML types.
  	
          Reviewed by rjw
  
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::getValueProperty):
          * khtml/khtml_part.cpp:
          (KHTMLPart::begin):
          * khtml/misc/loader.cpp:
          (CachedXSLStyleSheet::CachedXSLStyleSheet):
          (CachedXBLDocument::CachedXBLDocument):
          * khtml/xml/dom_xmlimpl.cpp:
          (DOM::ProcessingInstructionImpl::checkStyleSheet):
  
  2004-08-24  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3746447> hang loading geocities.com/cinemaorchestra
  
          Reviewed by john.
  
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget): do nothing if the src URL is the same as the part's URL
  
  2004-08-24  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          Fix for this bug:
          
          <rdar://problem/3773564> REGRESSION (125-159): Code to remove HTML styles before applying new HTML styles is broken
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::ApplyStyleCommandImpl::doApply): Unrelated change to constrain downstream position of selection
          start to block boundaries. This is a new feature of the downstream function and I missed this usage
          when adding the feature.
          (khtml::ApplyStyleCommandImpl::removeCSSStyle): There once was code to remove style attributes from spans
          which became emptied as a result of removing CSS properties, but I do not see such code in the 
          tree any more. A quick review of the ChangeLog did not reveal anything. I do not remember making such
          a change myself...
          
          In any case, I have restored logic to prune out styling spans we insert if the process of 
          removing styles caused a span-plus-styles node to become emptied of markup which changes the style
          of its contents. This fixes the bug.
  
  2004-08-24  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3765535> paste of text with newlines into text with newlines results in broken doc, crash
          
          This is a "belt and suspenders" fix. The issue is with the paste code path which was creating
          zero-length DOM text nodes when a selection being pasted ended with a newline. The normal
          code path for parsing HTML does not allow this, but the code to convert newlines to BR's 
          during paste was creating such nodes. This will no longer happen.
          
          In the case where someone inserts such zero-length nodes using the DOM API, the render tree
          will no longer create render objects for these nodes, and it was these empty render text 
          nodes that was confusing the code doing editing navigation.
  
          * khtml/xml/dom_textimpl.cpp:
          (CharacterDataImpl::rendererIsNeeded): Do not create renderers for zero-length DOM text nodes.
          * khtml/xml/dom_textimpl.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge documentFragmentWithText:]): Do not insert zero-length DOM text nodes as part
          of converting line-end sequences to BR's.
  
  2004-08-23  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Richard.
  
  	- reduce cost of innerHTML from O(N^2) to O(N*D) where N is the
  	number of nodes and D is the maximum DOM tree depth.
  	
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::recursive_toString): New static helper method for
  	recursive_toHTML - this is recursive for children but iterative
  	for siblings.
          (NodeImpl::recursive_toHTML): Call the helper with this as the
  	first argument.
          * khtml/xml/dom_nodeimpl.h:
  
  2004-08-23  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3558334. 
  
  	Init the encodedURL explicitly for CSSStyleSelectors.  Construction time was too early to be passing in the
  	document m_url, since it doesn't get set during construction.
  
  	Fix for 3769643, crash on vancouverblast.org.
  	
          Reviewed by darin
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::CSSStyleSelector):
          (khtml::CSSStyleSelector::init):
          (khtml::CSSStyleSelector::setEncodedURL):
          * khtml/css/cssstyleselector.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::setURL):
          (DocumentImpl::recalcStyleSelector):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::URL):
  
  2004-08-23  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Maciej.
  
  	- fixed rdar://problem/3681094> Crash in KJS::WindowFunc::tryCall 	with application/xhtml+xml Content-Type
          * khtml/ecma/kjs_window.cpp:
          (WindowFunc::tryCall): since this is an xml document, we get the
  	domain from the xmlDocImpl(), not docImpl().
  
  2004-08-23  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3771426> assertion failed due to reentering dispatchImageLoadEventsNow
          
  	* khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::dispatchImageLoadEventsNow): Avoid re-entering this
  	function, since it uses a data member for the copy of the list of events
  	to be dispatched.
  
  2004-08-23  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3770306> XMLHttpRequest does not honor character set encoding
  
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::slotData): Get encoding from the transfer job.
          * kwq/KWQKJobClasses.h:
          * kwq/KWQKJobClasses.mm:
          (KIO::TransferJobPrivate::TransferJobPrivate): Added retrievedCharset
  	flag.
          (KIO::TransferJob::retrieveCharset): New method, gets the charset
  	from the response.
          (KIO::TransferJob::queryMetaData): Handle charset.
          (KIO::TransferJob::emitReceivedResponse): Clear retreivedCharset flag.
          * kwq/KWQLoader.h:
          * kwq/KWQLoader.mm:
          (KWQResponseTextEncodingName): New function, gets the encoding from the response.
  
  2004-08-23  David Hyatt  <hyatt at apple.com>
  
  	Apply leo's fix to marquees.
  	
          Reviewed by hyatt
  
          * khtml/rendering/render_layer.cpp:
          (Marquee::start):
  
  2004-08-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - added an ascii() member function to DOMString and DOMStringImpl to help debugging
  
          * khtml/dom/dom_string.h: Add ascii member function for debugging.
          * khtml/dom/dom_string.cpp: (DOM::DOMString::ascii): Added. Calls through to DOMStringImpl::ascii.
          * khtml/xml/dom_stringimpl.h: Add ascii member function for debugging.
          * khtml/xml/dom_stringimpl.cpp: (DOM::DOMStringImpl::ascii): Added. Makes a new buffer and puts
          a simple ASCII version in it. Maybe make it better about characters outside the 0x20-0x7E range
          some day, but for now this is way better than what we had before.
  
  2004-08-20  David Hyatt  <hyatt at apple.com>
  
  	Divorce the notion of a marquee being stopped from JS from the notion of being suspended by the back/forward cache.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElementFunction::tryCall):
          * khtml/rendering/render_layer.cpp:
          (m_direction):
          (Marquee::start):
          (Marquee::stop):
          (Marquee::updateMarqueePosition):
          * khtml/rendering/render_layer.h:
  
  2004-08-20  Richard Williamson   <rjw at apple.com>
  
          Implemented new JNI abstraction.  We no longer invoke Java methods
          directly with JNI, rather we call into the plugin.  This allows the
          plugin to dispatch the call to the appropriate VM thread.  This
          change should (will?) fix a whole class of threading related problems with
          the Java VM.
  
          Reviewed by Hyatt.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::getAppletInstanceForView):
          * kwq/WebCoreBridge.mm:
          (rootForView):
          (-[WebCoreBridge executionContextForView:]):
  
  2004-08-19  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	More text paint cleanup. Separated the background and foreground
  	passes instead of doing a weird for loop thing. Eliminated
  	redundant if conditions. Added comments.
  
          * khtml/rendering/render_text.cpp:
          (RenderText::paint):
  
  2004-08-19  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::): Changed CopyProperties constant to InheritableProperties. This reflects the
          name change of copy() to copyInheritableProperties()
          (DOM::CSSComputedStyleDeclarationImpl::copyInheritableProperties: Renamed from copy().
          Now just copies those properties which can be inherited.
          (DOM::CSSComputedStyleDeclarationImpl::diff): Add a couple null checks.
          * khtml/css/css_computedstyle.h: copyInheritableProperties name change. No longer needs to be virtual.
          * khtml/css/css_valueimpl.cpp: Removed unneeded copy() function from CSSStyleDeclarationImpl.
          * khtml/css/css_valueimpl.h: Ditto.
          * khtml/editing/htmlediting.cpp:
          (khtml::EditCommand::typingStyle): Added.
          (khtml::EditCommand::setTypingStyle): Added.
          * khtml/editing/htmlediting.h:
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::StyleChange::currentlyHasStyle): Fix leak of computed style used in this function.
          (khtml::EditCommandImpl::EditCommandImpl): Initialize m_typingStyle.
          (khtml::EditCommandImpl::~EditCommandImpl): Deref m_typingStyle.
          (khtml::EditCommandImpl::assignTypingStyle): New helper used in setting typing style.
          (khtml::EditCommandImpl::setTypingStyle): New setter.
          (khtml::DeleteSelectionCommandImpl::doApply): Use new method for managing typing style.
          * khtml/editing/htmlediting_impl.h:
          (khtml::EditCommandImpl::typingStyle): New accessor.
          * khtml/khtml_part.cpp:
          (KHTMLPart::appliedEditing): Restores typing style from command after setting selection.
          (KHTMLPart::applyStyle): Does a diff between the current style and the style of the caret.
          * khtml/khtml_part.h:
          * khtml/xml/dom_position.cpp:
          (DOM::Position::computedStyle): Now returns a CSSComputedStyleDeclarationImpl instead of a plain
          CSSStyleDeclarationImpl.
          * khtml/xml/dom_position.h:
          * layout-tests/editing/style/style-3681552-fix-002-expected.txt:
  
  2004-08-20  Trey Matteson  <trey at apple.com>
  
  	3655407 - Editing: -complete: method unimplemented (WebKit editing API)
  
  	One new support routine here.
  
          Reviewed by John
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge caretRectAtNode:offset:]):  New routine.
          (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]):
  	Fixed former misleading method name.
  
  2004-08-20  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Trey
  
          Fix for this bug:
          
          <rdar://problem/3768378> crash typing newline in Blot
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::InputNewlineCommandImpl::doApply): Adding an assert in a recent change
          showed up that inserting newlines that was not being handled correctly for the 
          case described in the bug. I added a new case to handle inserting BR's when
          at the caret max offset for a node, and this new code runs instead of the
          fall-through case that should not have been running and triggered the assert.
          * layout-tests/editing/inserting/insert-br-case2-expected.txt: Regenerated results.
          * layout-tests/editing/inserting/insert-br-case6-expected.txt: Added.
          * layout-tests/editing/inserting/insert-br-case6.html: Added.
  
  2004-08-20  Trey Matteson  <trey at apple.com>
  
          Fixing: Spellchecker called once or twice for every char typed.
  
          Reviewed by Ken
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::setSelection):  Don't do any spell checking if we're typing (it's done
          elsewhere, in markMisspellingsAfterTyping)
   
  2004-08-19  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fixed <rdar://problem/3549369> Crash at www.e1.ru in HTMLTokenizer::notifyFinished
  
  	Probably also fixed the following likely duplicates:
  
  	<rdar://problem/3503938> Safari crashed opening many tabs (HTMLTokenizer::notifyFinished(khtml::CachedObject*))
  	<rdar://problem/3566332> CrashTracer: ..405 crashes at com.apple.WebCore: QString::QString[unified] + 0x5c
  	<rdar://problem/3703964> CrashTracer: ...86 crashes at com.apple.WebCore: QString::QString[unified] + 0x5c
  	<rdar://problem/3703969> CrashTracer: ..234 crashes at com.apple.WebCore: HTMLTokenizer::notifyFinished + 0x1c8
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::open): call setParsing(true), because we need to know we are once again
  	parsing when we re-open a document that has previously completed loading.
  
  2004-08-19  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave and Darin.
  
          * khtml/rendering/render_text.cpp:
          (RenderText::paint): Split apple and non-apple code paths to allow further cleanup.
  
  2004-08-19  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed <rdar://problem/3767274> crash in partForWidget inside setFocus (test page attached)
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::nextKeyViewInFrame): Remove code to do position
          the widget; no longer needed since we reworked how widgets get their positions.
          * kwq/KWQWidget.mm: (QWidget::setFocus): Ditto. This was the one that caused the bug.
  
  2004-08-19  David Hyatt  <hyatt at apple.com>
  
  	Fix crash when text is contained inside a table-colgroup.
  	
          Reviewed by john
  
          * khtml/xml/dom_textimpl.cpp:
          (TextImpl::rendererIsNeeded):
  
  2004-08-19  Trey Matteson  <trey at apple.com>
  
  	Unexpected errors hit while finding word boundaries, leading to crash.
  
          Reviewed by Ken.
  
          * kwq/KWQTextUtilities.cpp:
          (KWQFindWordBoundary):  Don't call UCFindTextBreak with edge cases it thinks
  	are param errors, and pass correct mask for forward case.  Also fix off-by-one
  	crashers in fallback code.
  
  2004-08-19  David Hyatt  <hyatt at apple.com>
  
  	Make XSLT imports/includes work.  This code has to be turned off until the newer version of libxslt is
  	available.
  	
          Reviewed by kocienda
  
          * khtml/css/css_ruleimpl.cpp:
          (CSSImportRuleImpl::init):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::~DocumentImpl):
          (DocumentImpl::applyXSLTransform):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::setTransformSource):
          (DOM::DocumentImpl::transformSource):
          * khtml/xml/dom_xmlimpl.cpp:
          (DOM::ProcessingInstructionImpl::checkStyleSheet):
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::matchFunc):
          (khtml::openFunc):
          (khtml::readFunc):
          (khtml::writeFunc):
          (khtml::createQStringParser):
          (khtml::XMLTokenizer::setTransformSource):
          * khtml/xsl/xsl_stylesheetimpl.cpp:
          (DOM::XSLStyleSheetImpl::XSLStyleSheetImpl):
          (DOM::XSLStyleSheetImpl::~XSLStyleSheetImpl):
          (DOM::XSLStyleSheetImpl::isLoading):
          (DOM::XSLStyleSheetImpl::clearDocuments):
          (DOM::XSLStyleSheetImpl::parseString):
          (DOM::XSLStyleSheetImpl::loadChildSheets):
          (DOM::XSLStyleSheetImpl::loadChildSheet):
          (DOM::XSLImportRuleImpl::parentStyleSheet):
          (DOM::XSLStyleSheetImpl::compileStyleSheet):
          (DOM::XSLStyleSheetImpl::locateStylesheetSubResource):
          (DOM::XSLImportRuleImpl::XSLImportRuleImpl):
          (DOM::XSLImportRuleImpl::~XSLImportRuleImpl):
          (DOM::XSLImportRuleImpl::setStyleSheet):
          (DOM::XSLImportRuleImpl::isLoading):
          (DOM::XSLImportRuleImpl::loadSheet):
          * khtml/xsl/xsl_stylesheetimpl.h:
          (DOM::XSLStyleSheetImpl::setOwnerDocument):
          (DOM::XSLStyleSheetImpl::setDocument):
          (DOM::XSLStyleSheetImpl::markAsProcessed):
          (DOM::XSLStyleSheetImpl::processed):
          (DOM::XSLImportRuleImpl::href):
          (DOM::XSLImportRuleImpl::styleSheet):
          (DOM::XSLImportRuleImpl::isImportRule):
          * khtml/xsl/xslt_processorimpl.cpp:
          (DOM::m_sourceDocument):
          (DOM::stylesheetLoadFunc):
          (DOM::XSLTProcessorImpl::transformDocument):
          * khtml/xsl/xslt_processorimpl.h:
  
  === Safari-158 ===
  
  2004-08-18  Trey Matteson  <trey at apple.com>
  
  	3765958	- downstreamPosition() can hit infinite loop when at end of doc
  	
  	The problem was that I had a position that was after the maximum position in the text
  	node, because it was the old caret position before a backspace was processed.  Later
  	I happened to call downstream() on that position, and hit the bug.  Fix is to consider
  	a position past the end point of its node if it is *greater than* or equal to its max offset.
  		 	
          Reviewed by Ken.
  
          * khtml/xml/dom_positioniterator.cpp:
          (DOM::PositionIterator::atEnd):
  
  2004-08-18  David Hyatt  <hyatt at apple.com>
  
          - did WebCore part of <rdar://problem/3682969> SLIDER: absolute left position of slider should be headline only
  
  	Make the header overlap the footer in the zero-line case.  Changes to Emerson's template will ensure the
  	header draws over the footer.
  	
          Reviewed by darin
  
          * khtml/rendering/render_block.cpp:
          (khtml::getHeightForLineCount):
  
  2004-08-18  Richard Williamson   <rjw at apple.com>
  
          Replace horrible pollForAppletInView: with new
          webPlugInGetApplet.  The details of how the applet instance
          is provided now belong to the Java team.  Yeh.
  		
          Reviewed by Chris.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::getAppletInstanceForView):
          * kwq/WebCoreBridge.h:
  
  2004-08-18  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3692199> 8A146: Safari crashes in toHTMLWithOptions, selection with no renderer (various sites)
  
          Reviewed by trey.
  
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::toHTML): renamed, don't assume that nodes of the range had renderers, use the common ancestor of the range as the root
          * khtml/xml/dom2_rangeimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::recursive_toHTML): renamed, removed code that determines whether to include the root in the HTML, leave this up to the caller
          * khtml/xml/dom_nodeimpl.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge markupStringFromNode:nodes:]): call renamed methods
          (-[WebCoreBridge markupStringFromRange:nodes:]): ditto
  
  2004-08-18  Ken Kocienda  <kocienda at apple.com>
  
          * khtml/css/css_valueimpl.cpp:
          (CSSStyleDeclarationImpl::copy): Roll back silly last minute change that broke this code.
          Note to self: read code before making changes to it.
  
  2004-08-18  Ken Kocienda  <kocienda at apple.com>
  
          Coded by Darin and Ken
  
          * khtml/css/css_computedstyle.cpp: Added CopyProperties static array. This contains
          the properties we implement that we also want to copy in the new
          CSSComputedStyleDeclarationImpl::copy described below.
          (DOM::CSSComputedStyleDeclarationImpl::copy): New function. In this class, copies the
          computed values of all the properties listed in CopyProperties. In essence, this makes
          a freeze-dired version of a computed style.
          (DOM::CSSComputedStyleDeclarationImpl::diff): Removes every property from the passed-in 
          CSSStyleDeclarationImpl that is also in the computed style.
          * khtml/css/css_computedstyle.h:
          * khtml/css/css_valueimpl.cpp:
          (CSSStyleDeclarationImpl::copy): New function. In this class, the copy operation is
          straightforward. Returns a copy that will be unchanged when the original changes.
          * khtml/css/css_valueimpl.h:
          (DOM::CSSStyleDeclarationImpl::values): Added a accessor suitable for use when the 
          CSSStyleDeclarationImpl is const.
  
  2004-08-17  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3703768> CrashTracer: ...50 crashes at com.apple.WebCore: KHTMLPart::xmlDocImpl const + 0
  	
          * khtml/khtmlview.cpp:
          (KHTMLView::viewportMouseMoveEvent): Add a nil check and an
  	assertion for m_part being null. It seems impossible for this to
  	happen, so we want to debug it ourselves, but in the meantime,
  	let's try to avoid causing crashes for our users.
  
  2004-08-17  David Hyatt  <hyatt at apple.com>
  
  	Fix the line truncation function for Emerson so that at the far left setting of the slider, only the header
  	is visible.
  	
          Reviewed by darin
  
          * khtml/rendering/render_block.cpp:
          (khtml::getHeightForLineCount):
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::layoutVerticalBox):
  
  2004-08-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Rewrite of the command that deletes a selection. I deleted great 
          big swaths of bug-ridden code to accomplish this and replaced it
          with code that is much cleaner and smarter.
          
          Also, renamed equivalentUpstreamPosition and equivalentDownstreamPosition to
          upstream to downstream, respectively.
          
          Added a couple of new helper methods.
          
          * khtml/editing/htmlediting.cpp: DeleteCollapsibleWhitespaceCommand and
          RemoveNodeAndPruneCommand now obsolete. A huge win.
          * khtml/editing/htmlediting.h: Ditto.
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::debugPosition): Fix printf which had a placeholder, but no argument passed in the varargs.
          (khtml::CompositeEditCommandImpl::deleteUnrenderedText): New helper. Much simplified and cleaner
          version of 
          (khtml::ApplyStyleCommandImpl::doApply): upstream/downstream name change
          (khtml::ApplyStyleCommandImpl::nodeFullySelected):  upstream/downstream name change
          (khtml::DeleteSelectionCommandImpl::doApply):  upstream/downstream name change
          (khtml::DeleteTextCommandImpl::DeleteTextCommandImpl): Add an assert to check that the
          passed offset is less than the length of the text node.
          (khtml::InputNewlineCommandImpl::insertNodeAfterPosition): upstream/downstream name change
          (khtml::InputNewlineCommandImpl::insertNodeBeforePosition): upstream/downstream name change
          (khtml::InputNewlineCommandImpl::doApply): upstream/downstream name change
          (khtml::InputTextCommandImpl::prepareForTextInsertion): upstream/downstream name change
          (khtml::InputTextCommandImpl::execute): upstream/downstream name change
          (khtml::InputTextCommandImpl::insertSpace): upstream/downstream name change
          (khtml::ReplaceSelectionCommandImpl::doApply): upstream/downstream name change
          (khtml::TypingCommandImpl::issueCommandForDeleteKey): upstream/downstream name change
          (khtml::TypingCommandImpl::deleteKeyPressed):
          * khtml/editing/htmlediting_impl.h:
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousWordBoundary):
          (DOM::Position::nextWordBoundary):
          (DOM::Position::upstream):
          (DOM::Position::downstream):
          (DOM::Position::inRenderedText): Add null check.
          (DOM::Position::isRenderedCharacter): New helper.
          (DOM::isWS): New helper in this file.
          (DOM::Position::leadingWhitespacePosition): New helper. Factored out from htmlediting_impl.cpp.
          (DOM::Position::trailingWhitespacePosition): Ditto.
          (DOM::Position::debugPosition): Add null check.
          * khtml/xml/dom_position.h:
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::toRange): upstream/downstream name change
          (DOM::Selection::validate): upstream/downstream name change
          (DOM::Selection::debugPosition): upstream/downstream name change
          * layout-tests/editing/deleting/delete-block-contents-003-expected.txt: Updated tests with new expected results.
          * layout-tests/editing/deleting/delete-contiguous-ws-001-expected.txt: Ditto.
          * layout-tests/editing/deleting/delete-selection-001-expected.txt: Ditto.
          * layout-tests/editing/deleting/delete-trailing-ws-001-expected.txt: Ditto.
          * layout-tests/editing/inserting/insert-br-case1-expected.txt: Ditto.
          * layout-tests/editing/inserting/insert-br-case2-expected.txt: Ditto.
          * layout-tests/editing/style/style-3681552-fix-002-expected.txt: Ditto.
  
  2004-08-17  Trey Matteson  <trey at apple.com>
  
  	Various spelling fixes.
  
          Reviewed by Ken.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::setSelection): No misspellings in the spelling code comments
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::removeMarker):  Repaint if doc changes.  Sometimes the markers
  	were not being erased when you clicked in a word.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousWordBoundary):  Small optimization.  Bail after first
  	try if the second try will not come out any different.
          (DOM::Position::nextWordBoundary):  Ditto
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::markMisspellingsInSelection):  Comment.
  
  2004-08-17  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3689700> crash loading page; stoxx.com (works in IE and Firefox)
  
          * khtml/khtml_part.h: Make completeURL public.
          * kwq/KWQKJavaAppletWidget.mm: (KJavaAppletWidget::KJavaAppletWidget): Complete the base URL
          before passing it across the bridge. This sidesteps the crashing bug in CFURL, filed as
          '<rdar://problem/3764632> CFURLCreateAbsoluteURLWithBytes crashes if passed the string "../.."'
          and also is obviously correct behavior that may fix other sites too.
  
          - fixed <rdar://problem/3547725> Crashes at csuohio.edu, list box vs. mouse event problem (Spoof No Fix)
  
          * kwq/KWQListBox.mm:
          (QListBox::~QListBox): Nil out the pointer from the KWQTableView back to the widget by calling
          a new detach method.
          (-[KWQTableView detach]): Set the pointer to the QListBox to 0. Also set the delegate and data
          source to nil, so we don't need nil checks in delegate and data source methods.
          (-[KWQTableView mouseDown:]): Add nil check.
          (-[KWQTableView keyDown:]): Add nil check.
          (-[KWQTableView keyUp:]): Add nil check.
          (-[KWQTableView becomeFirstResponder]): Add nil check.
          (-[KWQTableView resignFirstResponder]): Add nil check.
          (-[KWQTableView canBecomeKeyView]): Add nil check.
          (-[KWQTableView tableViewSelectionDidChange:]): Add nil checks, even though this is a delegate
          callback, to handle cases where calls to JavaScript result in the QListBox going away partway
          through.
          (-[KWQTableView drawRow:clipRect:]): Add nil check.
          (-[KWQTableView _accessibilityTableCell:tableColumn:]): Add nil check.
  
  2004-08-17  Trey Matteson  <trey at apple.com>
  
  	Fix ASSERT in spelling marker management.
  
          Reviewed by John.
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::shiftMarkers):  Use assert instead of ASSERT.
  	Tweak test to allow for a start position of 0.
  
  2004-08-17  Trey Matteson  <trey at apple.com>
  
  	3764147 - failure of subframe to load leaves links in parent doc broken
  
          Reviewed by Maciej.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::childBegin):  New method to mark part as not complete.
          (KHTMLPart::processObjectRequest):  Mark child part imcomplete, so if we
  	later get a failure on load it won't think it's already complete and do nothing.
          * khtml/khtml_part.h:
  
  === Safari-157 ===
  
  2004-08-16  David Hyatt  <hyatt at apple.com>
  
  	Fix the #define.  I had it all backwards.
  	
          * WebCorePrefix.h:
  
  2004-08-16  David Hyatt  <hyatt at apple.com>
  
  	Land initial support for XSLT using xml-stylesheet PIs.
  	
          * WebCore.pbproj/project.pbxproj:
          * khtml/khtml_part.cpp:
          (KHTMLPart::replaceDocImpl):
          * khtml/khtml_part.h:
          * khtml/khtmlview.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::~DocumentImpl):
          (DocumentImpl::recalcStyleSelector):
          (DocumentImpl::applyXSLTransform):
          (DocumentImpl::setTransformSourceDocument):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::setTransformSource):
          (DOM::DocumentImpl::transformSource):
          (DOM::DocumentImpl::transformSourceDocument):
          * khtml/xml/dom_xmlimpl.cpp:
          (DOM::ProcessingInstructionImpl::checkStyleSheet):
          * khtml/xml/dom_xmlimpl.h:
          (DOM::ProcessingInstructionImpl::isXSL):
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::matchFunc):
          (khtml::openFunc):
          (khtml::createQStringParser):
          (khtml::XMLTokenizer::processingInstruction):
          (khtml::XMLTokenizer::finish):
          (khtml::XMLTokenizer::setTransformSource):
          * khtml/xml/xml_tokenizer.h:
          (khtml::Tokenizer::setTransformSource):
          * khtml/xml/xsl_stylesheetimpl.cpp: Removed.
          * khtml/xml/xsl_stylesheetimpl.h: Removed.
          * khtml/xsl/xsl_stylesheetimpl.cpp: Added.
          (DOM::XSLStyleSheetImpl::XSLStyleSheetImpl):
          (DOM::XSLStyleSheetImpl::~XSLStyleSheetImpl):
          (DOM::XSLStyleSheetImpl::isLoading):
          (DOM::XSLStyleSheetImpl::checkLoaded):
          (DOM::XSLStyleSheetImpl::docLoader):
          (DOM::XSLStyleSheetImpl::parseString):
          * khtml/xsl/xsl_stylesheetimpl.h: Added.
          (DOM::XSLStyleSheetImpl::isXSLStyleSheet):
          (DOM::XSLStyleSheetImpl::type):
          (DOM::XSLStyleSheetImpl::ownerDocument):
          (DOM::XSLStyleSheetImpl::document):
          (DOM::XSLStyleSheetImpl::clearDocument):
          * khtml/xsl/xslt_processorimpl.cpp: Added.
          (DOM::m_sourceDocument):
          (DOM::XSLTProcessorImpl::~XSLTProcessorImpl):
          (DOM::XSLTProcessorImpl::transformDocument):
          (DOM::bufferWrite):
          (DOM::XSLTProcessorImpl::addToResult):
          (DOM::XSLTProcessorImpl::documentFromXMLDocPtr):
          * khtml/xsl/xslt_processorimpl.h: Added.
  
  2004-08-16  Maciej Stachowiak  <mjs at apple.com>
  
          Fix build.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::isImmediateRedirectPending):
  
  2004-08-16  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3704339> Context2D forces integer positions in drawImage
  
  	Use floats instead of ints to draw images.
  
          Reviewed by Ken.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (QPainter::drawPixmap):
          (QPainter::drawFloatPixmap):
  
  2004-08-13  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- fixed <rdar://problem/3752509> Pop up windows not showing up within SAP's BW Module (changing location.href on new window created by window.open)
  	
  	(actually the previous fix for this bug was mostly correct, but
  	this additional change is needed to avoid the regression in
  	<rdar://problem/3751025> REGRESSION: website rejects Safari 125.9
  	as "need to upgrade to IE 6", but didn't reject 125.8
  
  	So if merging for a software update, make sure to include both
  	this and the previous fix.
  	
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::write): When there is an immediate reidrect pending,
  	make sure to stop tokenizing, because we need to make sure no further
  	script tags are processed beyond the one that triggered the redirect.
          * khtml/khtml_part.cpp:
          (KHTMLPart::isImmediateRedirectPending): New method to allow
  	checking if a redirect is pending.
  	* khtml/khtml_part.h:
  
  2004-08-15  David Hyatt  <hyatt at apple.com>
  
          - fixed <rdar://problem/3760508> REGRESSION (154-155): No text in textarea
  
  	Fix the blank textarea problem by ensuring that any change to a <textarea>'s DOM children causes the form control
  	to resync with the DOM.  This behavior matches WinIE.
  	
          Reviewed by kocienda
  
          * khtml/html/html_formimpl.cpp:
          (HTMLTextAreaElementImpl::childrenChanged):
          * khtml/html/html_formimpl.h:
  
  2004-08-13  Trey Matteson  <trey at apple.com>
  
  	3761794 Slider doesn't call onmouseup handler
  
          Reviewed by Hyatt
  
          * khtml/rendering/render_form.cpp:
          (RenderSlider::RenderSlider):  Listen for signal.
          (RenderSlider::slotClicked):  Pass to superclass.
          * khtml/rendering/render_form.h:
          * kwq/KWQSlider.h:
          * kwq/KWQSlider.mm:
          (-[KWQSlider mouseDown:]):  Generate mouseUp and clicked events,
  	since AK consumes the mouseUp event in a modal tracking loop.
          (QSlider::QSlider):  Make signal.
          (QSlider::clicked):  Send signal.
  
  2004-08-12  Trey Matteson  <trey at apple.com>
  
  	3761329 - query result links all dead in ingrammicro.com (sometimes)
  	3761328 - links in some docs dead when doc is loaded from WebArchive
  
  	Make sure to get part to completed state when end is called,
  	even if we have no doc.  See WebKit changelog for more info.
  
          Reviewed by Richard and Darin.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::end):
  
  2004-08-13  Trey Matteson  <trey at apple.com>
  
          3761098 - red dotted underline for misspelled words shows up in drag image
  
          Reviewed by Ken
  
          * khtml/rendering/render_text.cpp:
          (RenderText::paint):  Don't draw misspelling when creating selection image.
  
  2004-08-12  Richard Williamson   <rjw at apple.com>
  
  	Bring npruntime.h and friends closer to compliance with
  	latest spec.
  
          Reviewed by Maciej.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::windowScriptNPObject):
  
  2004-08-12  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Richard.
  
  	<rdar://problem/3245706> URLs with backslashes instead of slashes work on WinIE; should work on Safari (SAP)
  	<rdar://problem/3506429> <BASE> tag containing backslash is breaking images with absolute URLs
  	
          * kwq/KWQKURL.mm:
          (substituteBackslashes): Helper method
          (KURL::KURL): If the URL contains any backslashes, substitute all
  	that appear before the query or fragment.
  
  2004-08-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          Fix for this bug:
          
          <rdar://problem/3761014> command-down-arrow takes you to start of document instead of end of document
  
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::modifyExtendingRightForward): Code used to assume, incorrectly, that index 1 of the
          document element was beyond the last node in the document. But this is not true, since the document
          element is the HTML element (generally). Instead, move to the index equal to the number of children
          of the document element. This puts us past everything.
          (DOM::Selection::modifyMovingRightForward): Ditto.
  
  2004-08-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Trey
  
          Fix for this bug:
          
          <rdar://problem/3695446> shift-down-arrow on last line of editable text should select to end of document
          
          Detect when current position is on first or last line and move to the
          start or end of that line, respectively.
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousLinePosition)
          (DOM::Position::nextLinePosition)
  
  === Safari-156 ===
  
  2004-08-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Some consolidation in style application code.
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::StyleChange::StyleChange): Made this a full-on class and added a couple of 
          members and a constructors to make a StyleChange from a CSSStyleDeclarationImpl, as
          well as from a CSSStyleDeclarationImpl and a Position.
          (khtml::StyleChange::init): Common init function for StyleChange constructors.
          (khtml::StyleChange::currentlyHasStyle): Moved this here from ApplyStyleCommandImpl.
          (khtml::CompositeEditCommandImpl::applyTypingStyle): Tweak to adjust to new StyleChange
          interface.
          (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Ditto.
          * khtml/editing/htmlediting_impl.h:
          (khtml::StyleChange::StyleChange):
          (khtml::StyleChange::cssStyle): New accessor.
          (khtml::StyleChange::applyBold): Ditto.
          (khtml::StyleChange::applyItalic): Ditto.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::computedStyle): New helper.
          * khtml/xml/dom_position.h: Ditto.
  
  2004-08-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          <rdar://problem/3751098> HTML email has one set of SPAN tags per character in the message
          
          Progress on this bug:
          <rdar://problem/3755562> Typing styles do not use same tag application conventions as font and color panel
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::CompositeEditCommandImpl::applyTypingStyle): Name changed from createTypingStyleElement.
          Also, interface changed to take the node to which the typing style is to be applied. 
          This makes it easier to apply what may be up to three levels of nested tags to get the 
          desired style (<B>, <I>, and <SPAN STYLE="">).
          Also, Borrow some of the style change smarts from ApplyStyleCommandImpl to use bold and
          italic tags for applying styles when that is apprpriate. This creates on opportunity to
          factor the code to do this so that this function and the ApplyStyleCommandImpl class can
          share the implementation. I will follow up with a change to do that after landing this
          change. Some future code factoring could be done here to bring together some similar code
          into one place.
          (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Add comment about code factoring work.
          (khtml::ApplyStyleCommandImpl::computeStyleChange): StyleChange struct no longer a member of the
          ApplyStyleCommandImpl class. CompositeEditCommandImpl needs it now in its applyTypingStyle()
          function.
          (khtml::InputNewlineCommandImpl::doApply): Pass along node to style to applyTypingStyle.
          (khtml::InputTextCommandImpl::prepareForTextInsertion): Ditto.
          * khtml/editing/htmlediting_impl.h:
          (khtml::StyleChange::StyleChange): Pull this struct out of ApplyStyleCommandImpl so 
          CompositeEditCommandImpl can use it.
          * khtml/khtml_part.cpp:
          (KHTMLPart::notifySelectionChanged): Always clear typing style when the selection
          changes, not only when closing typing. This fixes 3751098.
          
          These three tests actually had results that treated the buggy behavior as correct!
          
          * layout-tests/editing/style/style-3681552-fix-001-expected.txt
          * layout-tests/editing/style/style-3681552-fix-002-expected.txt
          * layout-tests/editing/style/typing-style-002-expected.txt
  
  2004-08-12  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3740485> Repro crash involving replacing content that includes form field
  
          * kwq/KWQLineEdit.mm: (QLineEdit::selectAll): Since this function calls selectText: which has a side
          effect of making the text field be first responder, call to bridge first to make it first responder.
          The bridge version lets WebHTMLView know we are changing the responder, avoiding some unpleasantness
          because it sets the "changing focus programmatically" flag. Without that flag set, we were getting
          an additional setFocusNode(0) call, which is unnecessary and incorrect.
  
  2004-08-12  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3758756> copying text selected with down arrow results in all text to end of document
  
          * khtml/xml/dom2_rangeimpl.h: Make startNode and pastEndNode public.
          * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::pastEndNode): Fix bug where this would return
          one node too far in the case where the end container was not a text node.
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::recursive_toHTMLWithOptions): Rewrite loop, using startNode and pastEndNode,
          to fix bug where it would run past the end node, including too many nodes in the generated
          HTML. Nice side benefit: easier to read the code.
  
  2004-08-11  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3758216> PARENTAL: buttons on parental controls page only work once
  
          Reviewed by john.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::submitForm): prevent a form from being submitted more than once only if it uses a scheme of http or https
  
  2004-08-11  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3715878> 8A162: connect.apple.com password field showed in cleartext
  
          * kwq/KWQTextField.mm: (-[KWQSecureTextField textDidEndEditing:]):
          Enhanced workaround for shifting focus from one secure text field to another so that it works
          even for the case of shifting focus from a secure text field back to itself.
  
  2004-08-11  Ken Kocienda  <kocienda at apple.com>
  
          Missed adding this file before.
  
          * kwq/KWQTextUtilities.mm: Added.
          (KWQFindNextWordFromIndex):
  
  2004-08-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Trey
  
          Efficiency improvements on string manipulations in these two new function
          implementations. Use the versions of QString append/prepend that take
          (QChar *c, uint length) instead of creating new strings each time.
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousWordPosition): Changed, as described above.
          (DOM::Position::nextWordPosition): Ditto.
  
  2004-08-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          <rdar://problem/3675812> Moving a word at a time does not use the correct conception of "word"
          
          I have implemented versions of previousWordPosition and nextWordPosition that are now
          different than previousWordBoundary and nextWordBoundary. The behavior of the new
          functions attempts to match what Cocoa does as closely as it can. Let the bug filing begin! 
  
          * WebCore.pbproj/project.pbxproj: Added KWQTextUtilities.mm
          * khtml/misc/helper.cpp:
          (khtml::nextWordFromIndex): Glue to call through to KWQFindNextWordFromIndex.
          * khtml/misc/helper.h: Declare the function above.
          * khtml/misc/khtml_text_operations.cpp: Added SimplifiedBackwardsTextIterator class.
          (khtml::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): New
          (khtml::SimplifiedBackwardsTextIterator::advance): Ditto.
          (khtml::SimplifiedBackwardsTextIterator::handleTextNode): Ditto.
          (khtml::SimplifiedBackwardsTextIterator::handleReplacedElement): Ditto.
          (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode): Ditto.
          (khtml::SimplifiedBackwardsTextIterator::exitNode): Ditto.
          (khtml::SimplifiedBackwardsTextIterator::emitCharacter): Ditto.
          (khtml::SimplifiedBackwardsTextIterator::range): Ditto.
          * khtml/misc/khtml_text_operations.h:
          (khtml::SimplifiedBackwardsTextIterator::atEnd): Ditto.
          (khtml::SimplifiedBackwardsTextIterator::length): Ditto.
          (khtml::SimplifiedBackwardsTextIterator::characters): Ditto.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousWordBoundary): Updated to gather appropriate text and call through to
          AppKit to perform the same calculations NSText uses.
          (DOM::Position::nextWordBoundary): Ditto.
          (DOM::Position::previousWordPosition): Unrelated change to fix case where the function could get "stuck".
          (DOM::Position::nextWordPosition): Ditto
          (DOM::Position::equivalentDeepPosition): Changed to look backwards if the position's offset is equal
          to the number of child nodes it has. This handles more cases correctly, like when the position is
          gives as one beyond the end of a document element's last child.
          * kwq/KWQTextUtilities.h: Declared KWQFindNextWordFromIndex.
          * kwq/KWQTextUtilities.mm: Added.
          (KWQFindNextWordFromIndex): New function.
  
  2004-08-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3732702> crash in CSSComputedStyleDeclarationImpl running devtools.com editing sample code
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::selectionComputedStyle): Added a null check.
  
  2004-08-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Trey.
  
          - fixed <rdar://problem/3710123> Loading iframe that replaces content in the parent document crashes Safari
  
          I fixed three problems:
  
              1) script interpreter destroyed while it was interpreting scripts, caused random havoc
              2) code trying to get to view after view was detached from part, caused nil-deref
              3) signals sent to parent after child was no longer in the parent's frames list, caused nil-deref
  
          Now the test page works fine. Hope the real sites do too.
  
          * khtml/khtml_part.h: Add connectChild and disconnectChild helper functions (private).
          * khtml/khtml_part.cpp:
          (KHTMLPart::clear): Call disconnectChild on each frame as we detach it (see below).
          (KHTMLPart::end): Ref the part at the start, and deref the part at the end, of this function.
          Otherwise, we can end up destroying the part, and hence the interpreter, inside a script that
          the interpreter itself is running.
          (KHTMLPart::slotFinishedParsing): Add another check for a nil m_view, after the call to
          checkCompleted.
          (KHTMLPart::checkCompleted): Remove bogus if statement with empty body.
          (KHTMLPart::processObjectRequest): Call disconnectChild to disconnect the child <-> parent signals of the
          old child that the new one is replacing, and connectChild to connect the signals (nicer factoring).
          (KHTMLPart::slotChildCompleted): Fixed up a confusing boolean if/expression to be simpler. Not related to
          the bug fix, but an earlier version of the fix had changes in this function.
          (KHTMLPart::connectChild): Added. Connects the appropriate signals for a child frame.
          (KHTMLPart::disconnectChild): Added. Disconnects the same signals that connectChild connects.
  
          * kwq/KWQKHTMLPart.mm: (KHTMLPart::frameDetached): Added a call to disconnectChild before removing the
          child from the frames list.
  
  2004-08-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Trey.
  
  	WebCore part of:
  
  	- made basic marked text highlighting work to complete basic level of <rdar://problem/3704359> input method support not yet implemented for HTML editing
  
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setMarkedDOMRange:]): Added this new call to support storing
  	a marked range in WebCore. The provided DOMRange must start and end in the same
  	node, which must be a text node.
          (-[WebCoreBridge markedDOMRange]): New call to get the marked range. 
          (-[WebCoreBridge clearMarkedDOMRange]): New call to clear the marked range.
          * kwq/WebCoreBridge.h: Prototype new methods.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::markedRange): Implementation of WebCore call above.
          (KWQKHTMLPart::setMarkedRange): Implementation of WebCore call above -
  	store the marked range, and repaint new and old nodes if needed.
          (KWQKHTMLPart::clear): Clear marked range.
          * kwq/KWQKHTMLPart.h: Prototype new methods.
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::paintMarkedTextBackground): New method to paint the background
  	for marked text, modeled on paintSelection.
  	(RenderText::paint): Optionally handle painting marked text
  	background as well as selection background in the marked text
  	pass.
          * khtml/rendering/render_text.h: Prototype new method.
  
  2004-08-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - switch PCRE to do UTF-16 directly instead of converting to/from UTF-8 for speed
  
          * kwq/KWQRegExp.mm:
          (QRegExp::KWQRegExpPrivate::compile): Null-terminate the pattern and pass it.
          (QRegExp::match): Use the 16-bit string directly, no need to convert to UTF-8.
  
  2004-08-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - minor cleanup
  
          * khtml/editing/jsediting.cpp: Capitalize command names to match Windows.
          The dictionary lookup is case insensitive.
  
          * kwq/KWQFoundationExtras.h: Remove inaccurate comment.
  
  2004-08-10  Trey Matteson  <trey at apple.com>
  
  	3757094 - crash spell checking after a paste
  
          Reviewed by Ken
  
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::paintSelection):  Add nil check.
  
  2004-08-09  Trey Matteson  <trey at apple.com>
  
  	3756195 - spell checking leaves misspelling marker behind after bad word is deleted
  	... and other follow-on spell check fixes
  
          Reviewed by Ken
  
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::paintMarker):  Close inspection shows we were drawing the 
  	misspelling marker one pixel lower than AK, and one pixel outside the selection
  	rect we draw, in the case of Times-16.  So move it up one.  Still not an exact
  	match for AK, but less bad.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::removeMarker):  Track whether we make any changes, so we only
  	repaint if something actually changed.
          (DocumentImpl::removeAllMarkers):  New utility.
          (DocumentImpl::removeAllMarkers):  Use clear() instead of (errant)
  	hand-rolled loop to empty array.
          (DocumentImpl::shiftMarkers):  Track whether we make any changes, so we only
  	repaint if something actually changed.
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_textimpl.cpp:
          (CharacterDataImpl::deleteData):  Along with shifting existing markers around,
  	remove any markers in the deleted range.  Fixes 3756195.
          (CharacterDataImpl::replaceData):  Ditto for the replaced range.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::updateSpellChecking): comment
  
  2004-08-08  Trey Matteson  <trey at apple.com>
  
  	3745023 - Safari crashes trying to access anchor while downloading
  
  	I bet this is behind a few other crashers as well.  In this bug the start of the
  	download leaves a KWQPageState hanging around, and when that is freed it damages
  	the part and view.  If you're still using that page, you're dead.
  
  	The fix is to properly invalidate the PageState when we receive an error before
  	reaching WebFrameCommitted state.  Normally this happens when a page is reheated
  	from the PageState, but in this case we never manage to leave the page to begin
  	with, although we've already created the PageState.
  
  	Other errors besides the synthetic one download generates would have caused similar
  	crashing.  Another example would be clicking on a second link before the load
  	caused by clicking on the first link reached committed state.
  
          Reviewed by Richard
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge didNotOpenURL:pageCache:]):  Invalidate the pageCache state
  	when a load doesn't get off the ground.
  
  2004-08-06  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Maciej
  
          Finish off spellchecking support to HTML editing. Includes work to
          enable continuous spellchecking.
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::EditCommandImpl::markMisspellingsInSelection): Basically, a one-liner convenience to
          make the call over to the KWQKHTMLPart.
          (khtml::ReplaceSelectionCommandImpl::doApply): Did some rearranging of code so that the
          inserted content can be spell-checked. The function is basically the same, except for
          the addition of calls to markMisspellingsInSelection.
          (khtml::TypingCommandImpl::markMisspellingsAfterTyping): New function. Takes a look at the
          selection that results after typing and determines whether it needs to spellcheck. 
          Since the word containing the current selection is never marked, this does a check to
          see if typing made a new word that is not in the current selection. Basically, you
          get this by being at the end of a word and typing a space.
          (khtml::TypingCommandImpl::typingAddedToOpenCommand): Call markMisspellingsAfterTyping.
          * khtml/editing/htmlediting_impl.h: Add new function declarations.
           * khtml/khtml_part.cpp:
          (KHTMLPart::setSelection): Since spell checks are updated when the selection changes, 
          and every selection change passes through here, this is a good place to put the call 
          to the spellchecker.
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::paintMarker): Remove temporary misspelling line drawing code. Replace with
          call that does AppKit-style drawing. Fix up some comments.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::addMarker): Repaint the node that had the marker added. This makes it show 
          up on setting it.
          (DocumentImpl::removeMarker): Ditto.
          (DocumentImpl::removeAllMarkers): New function. Convenience for clearing all markers.
          Used when not in continuous spellchecking mode.
          (DocumentImpl::shiftMarkers): Moves markers in response to changes in a node's contents.
          This shifts the marker offsets by a given amount. This keeps the markers in the right
          place when a user types in a node with markers already set on it.
          * khtml/xml/dom_docimpl.h: Added new functions. Removed unnecessary enum qualifier from some
          declarations.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousWordBoundary): This function was susceptible to endless loops...and
          needlessly so. Basically, if the current position is at a word boundary, run the code again
          to find the previous word boundary.
          (DOM::Position::nextWordBoundary): Same as above, but for next word boundary.
          * khtml/xml/dom_textimpl.cpp:
          (CharacterDataImpl::setData): Call shiftMarkers to update markers when this node changes.
          (CharacterDataImpl::insertData): Ditto.
          (CharacterDataImpl::deleteData): Ditto.
          (CharacterDataImpl::replaceData): Ditto.
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::advanceToNextMisspelling):
          (KWQKHTMLPart::markMisspellingsInSelection):
          (KWQKHTMLPart::updateSpellChecking):
          (KWQKHTMLPart::respondToChangedSelection):
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (QPainter::drawLineForMisspelling): New function. Call over to WebKit to do the drawing.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Pass markMisspellings flag to
          setSelection call. 
          * kwq/WebCoreTextRenderer.h:
  
  === Safari-155 ===
  
  2004-08-05  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3752542, stack overflow that crashes Safari at www.dr.dk.  This bug is a regression caused by a fix that
  	attempted to repair <caption> behavior to make it behave like Panther.  This fix was incorrect, and in addition
  	even our <caption> behavior on Panther was incorrect.
  
  	The patch that fixes this bug also makes <caption> handling work when <caption>s are contained inside a <td>, a <tr>,
  	a <th>, or various table section tags (<tbody>, <tfoot>, <thead>).  The <caption> is pulled out and inserted just before
  	the relevant ancestor table section.  This behavior matches other browsers.
  	
          Reviewed by mjs
  
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::insertNode):
  
  2004-08-04  David Hyatt  <hyatt at apple.com>
  
  	The top-level XSL sheet is now loaded and shows up in the activity window.  It is not yet parsed.
  	
          Reviewed by kocienda
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/css/css_base.h:
          (DOM::StyleBaseImpl::isXSLStyleSheet):
          * khtml/css/css_stylesheetimpl.cpp:
          (CSSStyleSheetImpl::CSSStyleSheetImpl):
          * khtml/css/css_stylesheetimpl.h:
          (DOM::StyleSheetImpl::isLoading):
          * khtml/misc/loader.cpp:
          * khtml/xml/dom_xmlimpl.cpp:
          (DOM::ProcessingInstructionImpl::ProcessingInstructionImpl):
          (DOM::ProcessingInstructionImpl::checkStyleSheet):
          (DOM::ProcessingInstructionImpl::sheet):
          (DOM::ProcessingInstructionImpl::isLoading):
          (DOM::ProcessingInstructionImpl::setStyleSheet):
          * khtml/xml/dom_xmlimpl.h:
  
  2004-08-04  David Hyatt  <hyatt at apple.com>
  
  	Add XSL Stylesheets to the WebCore cache.
  	
          Reviewed by kocienda
  
          * khtml/misc/loader.cpp:
          (CachedXSLStyleSheet::CachedXSLStyleSheet):
          (CachedXSLStyleSheet::ref):
          (CachedXSLStyleSheet::deref):
          (CachedXSLStyleSheet::data):
          (CachedXSLStyleSheet::checkNotify):
          (CachedXSLStyleSheet::error):
          (DocLoader::requestXSLStyleSheet):
          (Cache::requestXSLStyleSheet):
          (Cache::getStatistics):
          * khtml/misc/loader.h:
          (khtml::CachedObject::):
          (khtml::CachedXSLStyleSheet::sheet):
          (khtml::CachedXSLStyleSheet::schedule):
  
  2004-08-03  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Changes to improve our handling of object tags during editing, including
          fixing this bug:
          
          <rdar://problem/3744533> Problem editing <OBJECT> elements displayed by WebPlugIns 
  
          Part of the fix for this bug involves removing the close() function from render objects.
          It was decided that this code was no longer needed, as the work it did could be moved
          to other, more modern, places.
  
          Fixed this bug:
          
          <rdar://problem/3748537> crash due to nil node passed into parentNode in computeTypingStyle deleting text
  
          Finally, I filed and fixed this bug I discovered while fixing the one above:
          
          <rdar://problem/3749338> Select-all + delete leaves editing view without blinking caret
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteSelectionCommandImpl::computeTypingStyle): Fix for 3748537. Put in some more null
          checks. Bail, returning 0 for typing style if any null checks yield a null.
          (khtml::DeleteSelectionCommandImpl::doApply): Fix for 3749338. A removeNodeAndPrune call may wind
          up deleting the node where we calculated that we wanted to put the selection after deleting.
          If this happens, move this ending selection to a sensible alternative.
          (khtml::RemoveNodeAndPruneCommandImpl::doApply): Call previousNodeConsideringAtomicNodes instead 
          of traversePreviousNode when doing the prune.
          * khtml/html/html_objectimpl.cpp:
          (HTMLObjectElementImpl::attach): Part of the fix for 3744533.
          (HTMLObjectElementImpl::recalcStyle): Change old strcmp check for type of renderer to be a call
          to canRenderImageType.
          (HTMLObjectElementImpl::childrenChanged): New function. Helps to keep object tags up to date 
          as their children change. This also will help to make object tags respond properly to having their
          params changed by DOM calls.
          * khtml/html/html_objectimpl.h: Cosmetic change.
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::insertNode): Remove call to obsolete closeRenderer() function.
          (KHTMLParser::popOneBlock): Ditto.
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::makeChildrenNonInline): Remove call to obsolete close() function.
          * khtml/rendering/render_container.cpp:
          (RenderContainer::updatePseudoChild): Ditto.
          * khtml/rendering/render_form.cpp: Remove obsolete close() function.
          * khtml/rendering/render_form.h: Ditto.
          * khtml/rendering/render_frames.cpp: Ditto.
          * khtml/rendering/render_frames.h: Ditto.
          * khtml/rendering/render_inline.cpp:
          (RenderInline::splitFlow): Remove calls to obsolete close() function.
          * khtml/rendering/render_object.h: Remove obsolete close() function.
          * khtml/rendering/render_table.cpp:
          (RenderTableCell::layout): Ditto.
          * khtml/rendering/render_table.h: Ditto.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::closeInternal): Remove call to obsolete close() function.
          * khtml/xml/dom_nodeimpl.cpp: Remove obsolete m_rendererNeedsClose initialization.
          (NodeImpl::NodeImpl): Remove obsolete closeRenderer() function.
          (NodeImpl::attach): Remove call to obsolete close() function.
          (NodeImpl::isAtomicNode): New function. Helps to fix 3744533. Determines if a node should
          be treated as an atomic node for the purposes of editing.
          (NodeImpl::previousNodeConsideringAtomicNodes): New helper to traverse tree taking atomic nodes
          into account.
          (NodeImpl::nextNodeConsideringAtomicNodes): Ditto.
          (NodeImpl::previousLeafNode): Now calls nextNodeConsideringAtomicNodes to iterate. This helps to 
          prevent deleting PARAM tag portions of object tags erroneously.
          (NodeImpl::nextLeafNode): Ditto.
          * khtml/xml/dom_nodeimpl.h: Removed m_rendererNeedsClose bit. Added declarations for new functions.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::equivalentDeepPosition): Now takes atomic nodes into account as it drills down into the
          tree.
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::XMLTokenizer::endElement): Remove call to obsolete closeRenderer() function.
  
  2004-08-03  David Hyatt  <hyatt at apple.com>
  
  	Add the deprecated text/xsl MIME type (introduced by Internet Explorer 5) as an acceptable MIME type for XML
  	documents.
  	
          Reviewed by john
  
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::getValueProperty):
          * khtml/khtml_part.cpp:
          (KHTMLPart::begin):
          * khtml/misc/loader.cpp:
          (CachedXBLDocument::CachedXBLDocument):
  
  2004-08-03  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	- remove assertions that asserted text is non-empty, just avoid
  	doing anything for the empty case; this is needed because input
  	methods like to insert empty text in various cases.
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::InsertTextCommandImpl::InsertTextCommandImpl):
          (khtml::InsertTextCommandImpl::doApply):
          (khtml::InsertTextCommandImpl::doUnapply):
  
  2004-08-03  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3740937> ER: A way to turn a DOMRange into text (equivalent of -innerText)
  
          * khtml/xml/dom2_rangeimpl.h: Added text function. Like innerText, but on a range.
          * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::text): Added.
  
          * kwq/DOM.mm: (-[DOMRange _text]): Added. Calls DOM::RangeImpl::text.
          * kwq/DOMPrivate.h: Added.
  
          * WebCore.pbproj/project.pbxproj: Added DOMPrivate.h, an internal header (private in WebKit, internal here).
  
  2004-08-02  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Darin.
          
          WebCore part of fix for <rdar://problem/3631868> NSToolbar adoption: 
          Tab key should cycle around toolbar and page content
  
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge nextKeyViewInsideWebFrameViews]):
          Made this method start looking from the current focus node. This won't
          affect any existing callers because there were no existing callers.
          (-[WebCoreBridge previousKeyViewInsideWebFrameViews]):
          ditto
  
  2004-08-02  David Hyatt  <hyatt at apple.com>
  
  	Create a #define for XSLT support that at the moment will only be enabled on Tiger.
  	
          Reviewed by kocienda
  
          * WebCorePrefix.h:
  
  2004-08-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3747945> Deleting replaced element can cause crash
  
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::layoutCaret): The crux of the problem is that
          the caret drawing code tries to draw the caret at the image
          offset after it has been removed from the document. So, make
          sure the start node for the selection is in the document before
          trying to lay out the caret using that node.
  
  2004-07-31  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          <rdar://problem/3745498> HTMLCompose: Can't edit new empty message (and typing eventually crashes)
          <rdar://problem/3746408> HTMLCompose: cannot type in message body of new messages (and tabbing causes a crash.)
          
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::setDisplaysWithFocusAttributes): Add in some smarts to look around for
          a good place to put the caret if focus is turning "on", the part is contentEditable,
          and it does not currently have a selection. This has the effect of flashing the caret 
          in a contentEditable view automatically without requiring the programmer to set a 
          selection explicitly. This also fixes the bug listed above. Both are cases where the
          bad behavior happened since the editing code tried to process input without an active 
          selection. I always took the extra step of setting the selection explicitly when
          opening new windows in programs like Blot, but it seems silly to require developers to
          do this in general. With this patch, they no longer need to.
  
  2004-07-30  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3745498> HTMLCompose: Can't edit new empty message (and typing eventually crashes)
  
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::layoutCaret): Don't bail when the start position of the selection is not in rendered
          content. The validate() bottleneck function will do all it can to make sure that the start is
          moved to rendered content if at all possible before this function runs. If no rendered position can
          be found, like in the case of an empty body element, we still want to flash the caret there.
          (DOM::Selection::validate): Look for rendered positions for the base and extent, but save off the
          base before making this move, and set the selection to the enclosing block flow element of this
          original base if no rendered positions can be found. This has the effect of flashing the caret 
          someplace in an editable block, even if it does not contain any rendered content.
  
  2004-07-30  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix a large number of editing layout test regressions.
  
          * khtml/misc/khtml_text_operations.cpp:
          (khtml::TextIterator::TextIterator): Use a new way to compute the end offset of a node for
          purposes of text iteration. The end offset is either child count of a node with children,
          or the maxOffset() of a node that does not.
          * khtml/xml/dom_nodeimpl.cpp: Remove maxOffset() implementation from NodeBaseImpl. This 
          conflicted with the usage of this function that is needed for editing.
          * khtml/xml/dom_nodeimpl.h: Ditto.
  
  2004-07-30  Trey Matteson  <trey at apple.com>
  
  	Next steps for spell checking:  We have data structures for the marked pieces of
  	text and the smarts to draw them (although at this point, they just get a green
  	underline instead of using the real AppKit pattern.)
  
  	Note we don't call this code outside of development, since at this point I suspect
  	it could be made to crash by mixing spelling and editing. 
  
          Reviewed by Ken.
  
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::paintMarker):  Paint one marker's intersection with a text run
          (RenderText::paint):  Find intersections of all markers and runs, call paintMarker
          * khtml/rendering/render_text.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::addMarker):  Adds a marker to a DOM Range.
          (DocumentImpl::removeMarker):  Removes a marker from a DOM Range.
          (DocumentImpl::addMarker):  Adds a marker to a single DOM Node, merging previous
  	markers as needed.
          (DocumentImpl::removeMarker):  Removes a marker from a single DOM Node, breaking
  	up previous markers as needed.
          (DocumentImpl::markersForNode):  Return markers for a Node.
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentMarker::):  New marker struct
          (DOM::DocumentMarker::operator == ):
          (DOM::DocumentMarker::operator != ):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::advanceToNextMisspelling):  Mark misspelled ranges when we find them.
  	Debug only for now.
  
  2004-07-29  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3745808> Seed: WebKit: Table's caption broken
  	
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::insertNode): When a caption appears in an illegal
  	place in a table, pop blocks until we hit a place where it's
  	allowed.
  
  === Safari-154 ===
  
  2004-07-29  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - added constants for motion across entire document for use in operations like
            move to beginning of document
  
          * khtml/xml/dom_selection.h: Added DOCUMENT to ETextGranularity.
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::modifyExtendingRightForward): Added case for DOCUMENT.
          (DOM::Selection::modifyMovingRightForward): Added case for DOCUMENT.
          (DOM::Selection::modifyExtendingLeftBackward): Added case for DOCUMENT.
          (DOM::Selection::modifyMovingLeftBackward): Added case for DOCUMENT.
          (DOM::Selection::validate): Changed if statements into switch statement,
          added case for DOCUMENT.
  
          * kwq/WebCoreBridge.h: Added WebCoreBridge to WebSelectionGranularity.
  
  2004-07-28  Trey Matteson  <trey at apple.com>
  
  	Small refinement of last checkin.  The text iterators now return reasonable values
  	for range() when atEnd, which gets rid of special cases and pitfalls in the client.
  
          Reviewed by Ken.
  
          * khtml/misc/khtml_text_operations.cpp:
          (khtml::TextIterator::TextIterator):  Set endOffset to a valid value instead of
  	using LONG_MAX.
          (khtml::TextIterator::range):  Implement when atEnd.
          (khtml::CharacterIterator::range):  Don't massage result when atEnd.
          (khtml::WordAwareIterator::WordAwareIterator):  Now that this is fixed, we no
  	longer need this special case.
          (khtml::WordAwareIterator::advance):  Always set range, even when atEnd, now that
  	TextIterator::range() always works.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::childNodeCount):  Made const
          (NodeBaseImpl::maxOffset):  Add missing implementation
          * khtml/xml/dom_nodeimpl.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::advanceToNextMisspelling):  Get rid of special cases, always call
  	range on our iterator even when it is atEnd.
  
  2004-07-28  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Trey.
  
  	<rdar://problem/3678534> controls on page at http://help.sap.com don't work properly
  
          To fix this I implemented the various JavaScript BarInfo properties in JavaScript.
  	
  	* khtml/ecma/kjs_window.cpp:
          (Window::Window):
          (Window::locationbar):
          (Window::menubar):
          (Window::personalbar):
          (Window::statusbar):
          (Window::toolbar):
          (Window::scrollbars):
          (Window::mark):
          (Window::get):
          (SelectionFunc::tryCall):
          (BarInfo::BarInfo):
          (BarInfo::~BarInfo):
          (BarInfo::get):
          (BarInfo::put):
          * khtml/ecma/kjs_window.h:
          (KJS::Window::):
          (KJS::BarInfo::):
          (KJS::BarInfo::part):
          (KJS::BarInfo::classInfo):
          * khtml/ecma/kjs_window.lut.h:
          (KJS::):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::locationbarVisible):
          (KWQKHTMLPart::menubarVisible):
          (KWQKHTMLPart::personalbarVisible):
          (KWQKHTMLPart::scrollbarsVisible):
          (KWQKHTMLPart::statusbarVisible):
          (KWQKHTMLPart::toolbarVisible):
  
  2004-07-28  Ken Kocienda  <kocienda at apple.com>
  
          Added more layout tests.
  
          * layout-tests/editing/style/style-3681552-fix-001-expected.txt: Added.
          * layout-tests/editing/style/style-3681552-fix-001.html: Added.
          * layout-tests/editing/style/style-3681552-fix-002-expected.txt: Added.
          * layout-tests/editing/style/style-3681552-fix-002.html: Added.
          * layout-tests/editing/style/style-3690704-fix-expected.txt: Added.
          * layout-tests/editing/style/style-3690704-fix.html: Added.
          * layout-tests/editing/style/typing-style-001-expected.txt: Added.
          * layout-tests/editing/style/typing-style-001.html: Added.
          * layout-tests/editing/style/typing-style-002-expected.txt: Added.
          * layout-tests/editing/style/typing-style-002.html: Added.
  
  2004-07-28  Ken Kocienda  <kocienda at apple.com>
  
          Added some layout tests.
  
          * layout-tests/editing/selection/select-all-001-expected.txt: Added.
          * layout-tests/editing/selection/select-all-001.html: Added.
          * layout-tests/editing/selection/select-all-002-expected.txt: Added.
          * layout-tests/editing/selection/select-all-002.html: Added.
          * layout-tests/editing/selection/select-all-003-expected.txt: Added.
          * layout-tests/editing/selection/select-all-003.html: Added.
  
  2004-07-28  Trey Matteson  <trey at apple.com>
  
  	Spellchecking, Part I.  Basic spellcheck is working.  Spelling panel is hooked up.
  
  	At this point, no special marking of misspellings, no grammar check, no context
  	menu integration, no "check continually" mode.
  
  	Much of the TextIterator and CharacterIterator interface got published outside
  	of khtml_text_operations.cpp, with a little API rationalizing.
  
          Reviewed by Ken.
  
          * khtml/misc/khtml_text_operations.cpp:
          (khtml::TextIterator::range):  Name changes.
          (khtml::CharacterIterator::CharacterIterator):  Ditto.
          (khtml::CharacterIterator::range):  Ditto.
          (khtml::CharacterIterator::advance):  Ditto.
          (khtml::CharacterIterator::string):  New method to consume chars into a string.
          (khtml::WordAwareIterator::WordAwareIterator):  New class that iterates over
  	the text respecting word boundaries.
          (khtml::WordAwareIterator::advance):
          (khtml::WordAwareIterator::length):
          (khtml::WordAwareIterator::characters):
          (khtml::plainText):  Name changes.
          (khtml::findPlainText):  Ditto.
  
  	API moved from cpp to header file.
          * khtml/misc/khtml_text_operations.h:
          (khtml::TextIterator::atEnd):
          (khtml::TextIterator::length):
          (khtml::TextIterator::characters):
          (khtml::CharacterIterator::atBreak):
          (khtml::CharacterIterator::atEnd):
          (khtml::CharacterIterator::length):
          (khtml::CharacterIterator::characters):
          (khtml::CharacterIterator::characterOffset):
          (khtml::WordAwareIterator::atEnd):
          (khtml::WordAwareIterator::range):
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousWordBoundary):  New name for the old routine.  This routines semantics
  	match the current behavior of this code.
          (DOM::Position::nextWordBoundary):  Ditto.
          (DOM::Position::previousWordPosition):  Call old code with the new name.  When we fix
  	word advancement, this routine will have its own impl.
          (DOM::Position::nextWordPosition):  Ditto.
          * khtml/xml/dom_position.h:
          * khtml/xml/dom_selection.h:
          (DOM::Selection::rangeStart):  New convenience methods
          (DOM::Selection::rangeEnd):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::findString):  Ensure we use range-compatible positions.
          (KWQKHTMLPart::advanceToNextMisspelling):  Brand new.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge advanceToNextMisspelling]):  Typical bridge glue.
  
  2004-07-28  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Maciej
          
          Fixed this bug:
          
          <rdar://problem/3690704> marking partly bold text italic across blocks wrongly extends the bold section
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::ApplyStyleCommandImpl::doApply): Fixed loop that gathers up groups of nodes to
          pass off to the function that applies styles. While this is meant to be conservative in
          order to leave the DOM well-formed in all cases, it contained an error where the set
          of nodes to be styled together erroneously could include a node that was meant for 
          the next set. Fixed.
          (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Unrelated change to remove DOM:: scope
          resolution qualifier. Unneeded here.
  
  2004-07-28  Darin Adler  <darin at apple.com>
  
          Reviewed by Trey.
  
          - fixed <rdar://problem/3658471> REGRESSION: Node.appendChild( ) fails when parent already contains that child
  
          * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::isAncestor): Restore the original meaning of this function.
          It returns true if the parameter is an ancestor of this, but had been changed to return true if this
          is an ancestor of the parameter. However, we do retain one change we made at the same time, which is
          that it does not consider a node an ancestor of itself.
  
          * khtml/editing/htmlediting_impl.cpp: (khtml::ApplyStyleCommandImpl::nodeFullySelected):
          * khtml/xml/dom2_traversalimpl.cpp: (DOM::NodeIteratorImpl::notifyBeforeNodeRemoval):
          Reverse parameters for callers who wanted the new meaning of isAncestor, with care to not use it in
          any cases where the pointer might be 0.
  
          * khtml/xml/dom_nodeimpl.h: Added const to the parameter to make things more symmetric and allow the
          new uses to all compile.
  
  2004-07-28  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/3681552> html editing needs to preserve typing font when replacing selection
  
          * khtml/css/css_valueimpl.cpp:
          (CSSStyleDeclarationImpl::merge): New helper that merges styles together. Helpful for
          dealing with typing styles.
          * khtml/css/css_valueimpl.h:
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteSelectionCommandImpl::computeTypingStyle): New helper that updates the
          typing style based on the current selection. This is a convenient bottleneck for all
          the code that needs to worry about typing style.
          (khtml::DeleteSelectionCommandImpl::doApply): Update typing style before doing the delete.
          (khtml::InputNewlineCommandImpl::doApply): No need to redeclare exceptionCode local.
          Improve comments. 
          (khtml::InputTextCommandImpl::prepareForTextInsertion): Remove unneeded complication when 
          figuring out where to insert style node. Not even sure what I was trying to do here, but
          it does not seem to be needed any more.
          (khtml::InputTextCommandImpl::execute): Remove unneeded comment.
          * khtml/editing/htmlediting_impl.h: Declare new computeTypingStyle helper.
          * khtml/khtml_part.cpp:
          (KHTMLPart::setCaretVisible): Call selectionLayoutChanged instead of notifySelectionChanged
          in this function. The selection did not change simply by calling this function, but it
          does need a layout.
          (KHTMLPart::notifySelectionChanged): Treat clearing the typing style much like closing typing,
          instead of clearing it unconditionally.
          (KHTMLPart::applyStyle): In the case where the current selection is a caret, merge the
          style being applied with any current typing style that already exists.
  
  2004-07-28  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3711080> REGRESSION (125-146): form fields have shrunk by 1 pixel, and now clip descenders
  
          * kwq/KWQLineEdit.mm: (QLineEdit::sizeForCharacterWidth):
          Compute the size without ever calling cellSize. After talking with Andrew Platzer,
          we decided that hard-coding the size of the borders of a text field was the best
          way for WebCore to handle this.
  
  2004-07-28  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3743204> REGRESSION: crash at startribune.com in InlineBox::root()
  
          * khtml/rendering/render_flow.cpp: (RenderFlow::dirtyLinesFromChangedChild):
          Added a check for nil.
  
  2004-07-27  Darin Adler  <darin at apple.com>
  
          Reviewed by Trey.
  
          - fixed <rdar://problem/3743138> opaque colors come out of getComputedStyle as "rgba", transparent ones as "rgb"
  
          * khtml/css/css_valueimpl.cpp: (CSSPrimitiveValueImpl::cssText): Use "rgb" rather than
          "rgba" when alpha is 0xFF, not when alpha is 0.
  
  2004-07-27  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Fixed the problem where BR elements on lines by themselves don't paint when selected.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::selectAll): Related fix. Include BR's when figuring out what "all" is.
          * khtml/rendering/render_br.cpp:
          (RenderBR::paint): New function implementation. Teach BR's how to paint selections.
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_text.cpp: 
          (InlineTextBox::paintSelection): Fix some geometry calculations to be more readable (i.e. don't
          reuse function argument as a local). Also, improve the logic for determining whether to 
          extend the selection to block boundaries.
          (RenderText::paint): Remove extendSelection argument from paintSelection. The logic to figure out
          extensions is now fully contained in paintSelection.
          * khtml/rendering/render_text.h:
  
  2004-07-27  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3665211 (again).  Make sure not to leave child line boxes pointing to deleted ancestor line boxes.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::removeChild):
  
  2004-07-26  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: WebView scrolls to the top after making an editing change via drag & drop
  
          Fixed by Ken, reviewed by me.
  
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge ensureCaretVisible]): do nothing if the selection is not a caret
  
  === Safari-153 ===
  
  2004-07-26  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3740855> REGRESSION: Flash incorrectly positioned at macromedia.com
          
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::scriptExecution): Do the prepending-src
  	trick as for inline script execution.
  
  	Added new layout tests covering this and other recent tokenizer
  	bugs.
  	
          * layout-tests/fast/tokenizer/001-expected.txt: Added.
          * layout-tests/fast/tokenizer/001.html: Added.
          * layout-tests/fast/tokenizer/002-expected.txt: Added.
          * layout-tests/fast/tokenizer/002.html: Added.
          * layout-tests/fast/tokenizer/003-expected.txt: Added.
          * layout-tests/fast/tokenizer/003.html: Added.
          * layout-tests/fast/tokenizer/resources/003-script.js: Added.
  
  2004-07-23  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Trey
  
          Fix for this bug:
          
          <rdar://problem/3738920> Caret blinks in inactive window
  
          As part of the fix, I cleaned up the way we handle special drawing that needs
          to be done in the HTML view that is first responder in the key window (e.g the
          drawing of text selection highlight and caret blinking).
  
          * khtml/khtml_part.cpp: Removed setCaretVisible function. Updating caret visibility
          is now done in setDisplaysWithFocusAttributes, described below.
          * khtml/khtml_part.h: Ditto.
          * khtml/khtmlpart_p.h:
          (KHTMLPartPrivate::KHTMLPartPrivate): m_caretVisible now defaults to false. This prevents
          the caret from blinking when an app is started from the command line and remains in the
          background.
          * khtml/khtmlview.cpp:
          (KHTMLView::focusInEvent): Remove caret code from here. Not needed.
          (KHTMLView::focusOutEvent): Ditto.
          * kwq/KWQKHTMLPart.h:
          (KWQKHTMLPart::displaysWithFocusAttributes): New accessor to return cached value to other code
          in WebCore.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::KWQKHTMLPart):
          (KWQKHTMLPart::setDisplaysWithFocusAttributes): Renamed from setShowsFirstResponder and modified
          to do the display updating in a clearer way....and now has comments!
          * kwq/WebCoreBridge.h: Remove several obsolete functions that use to try to do the work of the new
          setDisplaysWithFocusAttributes function (and did so less well).
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge drawRect:]): Now calls displaysWithFocusAttributes to figure out how to draw the
          text selection background.
          (-[WebCoreBridge setDisplaysWithFocusAttributes:]): Calls through to setDisplaysWithFocusAttributes in 
          KWQKHTMLPart.
          (-[WebCoreBridge selectionColor]): Flipped the value of this ternary expression to accommodate the
          change from usesInactiveTextBackgroundColor to setDisplaysWithFocusAttributes.
          (-[WebCoreBridge setCaretVisible:]): Removed.
  
  2004-07-23  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3691569> REGRESSION (142): cmd-shift-clicking on a link 
          now also extends selection (even if there wasn't one before)
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::handleMousePressEventSingleClick):
          Uh, duh. Got a ! wrong last time somehow, so it did even more the wrong thing
          than ever. I did test this before, so my best guess is an accidental undo or
          something before committing.
  
  2004-07-23  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3735084 and 3737209, when you can find no line boxes in your previous sibling, the line box to dirty
  	should be the *first* line box and not the last.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::dirtyLinesFromChangedChild):
  
  2004-07-23  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::validate): Not exactly a fix of anything per se, but more of a refinement
          of how selection validation works. The idea is to let the selection validation process
          end up with an empty selection given real DOM position inputs if the validation code
          cannot find a rendered position. Since selection is all about display, this makes sense.
          Currently, the code will allow the selection to be placed in a location that is not
          rendered, and this does nobody any good, as it can lead to bugs like accepting key input
          in a div that is set to display:none.
  
  2004-07-23  Ken Kocienda  <kocienda at apple.com>
  
          Updated layout tests with new expected results.
  
          * layout-tests/editing/execCommand/boldSelection-expected.txt
          * layout-tests/editing/selection/extend-by-character-001-expected.txt
          * layout-tests/editing/selection/extend-by-character-003-expected.txt
          * layout-tests/editing/selection/unrendered-005-expected.txt
  
  2004-07-22  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Kevin.
  
  	<rdar://problem/3725467> REGRESSION(140-142) nothing displayed at http://Ye-Olde-Movies.tripod.com
  	<rdar://problem/3599494> REGRESSION (100-125): Frame does not refresh until user clicks on browser.
  	
          * khtml/rendering/render_frames.cpp:
          (RenderFrameSet::layout): When returning early because there are
  	no children, make sure to mark self as no longer needing
  	layout. Otherwise, when children are added, we'll fail to
  	propagate childrenNeedLayout to our own parent! This is almost
  	certainly a long-standing bug that was just masked by our old
  	layout tomfoolery.
  
  2004-07-22  Kevin Decker  <kdecker at apple.com>
  
  	Reviewed by Darin
  
  	Fixed <rdar://problem/3682340> (error console does not include source urls or line numbers of event exceptions).
  
          * khtml/ecma/kjs_events.cpp:
          (JSLazyEventListener::JSLazyEventListener):
          (JSLazyEventListener::parseCode):
          * khtml/ecma/kjs_events.h:
          * khtml/ecma/kjs_proxy.cpp:
          (KJSProxyImpl::createHTMLEventHandler):
          * khtml/ecma/kjs_window.cpp:
          (Window::getJSLazyEventListener):
          * khtml/ecma/kjs_window.h:
  
  2004-07-22  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
  
          <rdar://problem/3724344> Bolding and unbolding creates extraneous tags
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::ApplyStyleCommandImpl::doApply): Move the start of the selection upstream
          before calling removeStyle. This makes sure we remove all styles that could apply to the 
          selection, and not just ones in from the start position of the selection passed to us. 
          This fixes the bug.
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::validate): Related fix to "constrain" the selection to be the 
          smallest equivalent range of nodes, in effect making a "canonical" version of the
          selection. While this is not strictly necessary to fix the bug, it is a step I have been 
          wanting to take this step for a long time, and some recent improvements made it 
          possible for me to do now in just two lines of code.
  
  2004-07-22  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3711264> difficult (impossible?) to get cursor in an editable webview containing only tags
  
          * khtml/rendering/render_container.cpp:
          (RenderContainer::positionForCoordinates): Don't assume you can pass off
          the check to a first child if there is one, since the child can be an element
          we do not want to place the caret in, like a table row with no cells (the case
          in the bug above). So now, we iterate of the renderer's children looking for
          the closest one, but only consider those renderers which either have children
          themselves, or are render block flows or are render inlines. 
  
  2004-07-22  Darin Adler  <darin at apple.com>
  
          - remove a bunch of now-unused code
  
          * ForwardingHeaders/qxml.h: Removed.
          * kwq/KWQXmlAttributes.h: Removed.
          * kwq/KWQXmlAttributes.mm: Removed.
          * kwq/KWQXmlDefaultHandler.h: Removed.
          * kwq/KWQXmlDefaultHandler.mm: Removed.
          * kwq/KWQXmlSimpleReader.h: Removed.
          * kwq/KWQXmlSimpleReader.mm: Removed.
  
  2004-07-22  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - got rid of QXml classes and changed XML parsing to use libxml directly
  
          This is the first step toward more direct use of libxml and libxslt.
          Dave is planning to build on this to implement XSLT and to improve our handling
          of XML documents (faster and more feature complete, including DTDs).
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::createContextualFragment):
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::HTMLTokenizer):
          * khtml/html/htmltokenizer.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createTokenizer):
          (DocumentImpl::open):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::tokenizer):
          * khtml/xml/dom_xmlimpl.cpp:
          (DOM::ProcessingInstructionImpl::checkStyleSheet):
          * khtml/xml/dom_xmlimpl.h:
          * khtml/xml/xml_tokenizer.h:
          * khtml/xml/xml_tokenizer.cpp: Redid this all to use libxml directly.
  
          * WebCore.pbproj/project.pbxproj: Removed a bunch of files.
  
  2004-07-21  Trey Matteson  <trey at apple.com>
  
  	DHTML dragging should use UTI for MIME-pboard type conversion
  
          Reviewed by Ken
  
          * kwq/KWQClipboard.mm:
          (cocoaTypeFromMIMEType):  Use UTI, except for cases we need to hardwire.  Only cut off
  	MIME args following a semi-colon for text/plain.
          (MIMETypeFromCocoaType): Use UTI, except for cases we need to hardwire.  
          (KWQClipboard::types):  Filter out ancient NSAsciiPboardType so DHTML never sees this cruft.
  
  2004-07-21  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Trey
  
          Remove handling of HTML editing key events from WebCore.
          This now happens in WebKit if an event passes all the
          way through WebCore without being handled by the DOM.
  
          In each case below, function were removed, as their
          only purpose was to handle editing key events.
  
          * khtml/xml/dom_elementimpl.cpp
          * khtml/xml/dom_elementimpl.h
          * kwq/KWQKHTMLPart.h
          * kwq/KWQKHTMLPart.mm
          * kwq/WebCoreBridge.h
  
  2004-07-21  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::modifyExtendingRightForward): Add LINE_BOUNDARY case to the switch statement in this
          function. Use the startAndEndLineNodesIncludingNode helper which already existed to get the right
          position.
          (DOM::Selection::modifyMovingRightForward): Ditto
          (DOM::Selection::modifyExtendingLeftBackward): Ditto
          (DOM::Selection::modifyMovingLeftBackward): Ditto
          * khtml/xml/dom_selection.h: 
          (DOM::Selection::): Add LINE_BOUNDARY constant to ETextGranularity enum. This
          specifies a new kind of movement that we need to implement the "move-to beggining/end of line"
          behavior which AppKit binds to cmd+left/right arrow keys.
          * kwq/WebCoreBridge.h: Add WebSelectToLineBoundary constant. This matches
  
  2004-07-20  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3714434, user stylesheet is always parsed in strict mode, when it should honor the document's setting.
  	
          Reviewed by john
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::CSSStyleSelector):
  
  2004-07-20  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Richard
  
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::defaultEventHandler): No longer check whether
          the command key is modifying the key event. This check is
          now done elsewhere in the code. See the WebKit checkin that
          added the _web_keyBindingManagerHasBinding method to 
          WebNSEventExtras.
  
  2004-07-20  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed:
  	<rdar://problem/3580589> REGRESSION (1.1-1.2): can't open a new window for an image that has not loaded
  	<rdar://problem/3612691> Missing image icons (blue ?) lack context menu
  
          Reviewed by john.
  
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge elementAtPoint:]): if there is no image, put the image URL on the element anyway
  
  2004-07-20  David Hyatt  <hyatt at apple.com>
  
  	Fix for alt text not working on images.
  	
          Reviewed by john
  
          * khtml/rendering/render_image.cpp:
          (RenderImage::RenderImage):
          (RenderImage::setPixmap):
          (RenderImage::paint):
          (RenderImage::calcReplacedWidth):
          (RenderImage::calcReplacedHeight):
  
  2004-07-20  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	<rdar://problem/3720111> REGRESSION(125-152): map fails to load depending on banner ad; weather.com (works in IE and Firefox)
  	
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::begin): Initialize currentPrependingSrc.
          (khtml::HTMLTokenizer::scriptHandler): Store a pointer to the currently
  	active prependingSrc variable on the stack, the better to handle weird cases
  	of scripts writing out additional script tags and so forth.
          (khtml::HTMLTokenizer::write): Deal with the above.
          * khtml/html/htmltokenizer.h: Declare new member field.
  
  2004-07-20  David Hyatt  <hyatt at apple.com>
  
  	Fix for layer positioning error that occurs when absolute positioned blocks are inside static positioned overflow:auto
  	elements.
  	
          Reviewed by john
  
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::updateLayerPosition):
  
  2004-07-20  Trey Matteson  <trey at apple.com>
  
  	3705624	REGRESSION: can't rearrange photos on homepage.mac.com album
  
  	A subtle problem stemming from some interaction between focus handing and
  	event propagation.  We previously made it so when a focus shift fails we
  	don't propagate the event to KHTML.  The fix is to get rid of the inverse
  	effect, so now even if a focus shift succeeds, we don't propagate to KHTML if
  	the page already canceled default behavior.
  
  	In this specific case, the page is cancelling default behavior since it
  	does its own dragging, and the bug was our new system dragging was
  	kicking in.
  
          Reviewed by Ken.
  
          * khtml/khtmlview.cpp:
          (KHTMLView::dispatchMouseEvent):  What he said.
  
  2004-07-20  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/3695240> pasting plain text with newlines in it turns them into spaces
  
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge documentFragmentWithText:]): Refine this function to be smart about converting
          line endings into BR elements.
  
  2004-07-20  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3707505> HTMLCompose: blinking cursor in both an address text field and the message body
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::setCaretVisible): This method renamed from setSelectionVisible. Since it really only operates
          on the caret, this seems like a better name.
          * khtml/khtml_part.h:
          * khtml/khtmlview.cpp:
          (KHTMLView::focusInEvent): Call setCaretVisible(true)
          (KHTMLView::focusOutEvent): Call setCaretVisible(false)
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::setShowsFirstResponder): Name change: setSelectionVisible becomes setCaretVisible.
          * kwq/WebCoreBridge.h: Expose setCaretVisible as a bridge method.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setCaretVisible:]): Ditto.
  
  2004-07-19  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Trey.
  
  	<rdar://problem/3721428> REGRESSION (125.8-146): external javascript statements produce extra garbage character (sina.com)
          
  	* khtml/misc/stringit.h:
          (khtml::TokenizerSubstring::TokenizerSubstring): For the apple branch, use the new
  	stableUnicode() method to get the unicode pointer.
          * kwq/KWQString.h:
          * kwq/KWQString.mm:
          (QString::detachIfInternal): Reorganize this to be a bit less wacky about refcounts.
  	It does not leave around a zombie internal data handle but rather destroys it right away,
  	and leaves the object pointing to the new handle (which it can then deref). This makes
  	the code more clear.
          (QString::~QString): Simplify.
          (QString::stableUnicode): New method that detaches a copy of the KWQStringData if it
  	is internal to a string besides this one. This guarantees that if you get the unicode()
  	pointer, it won't go bad so long as this string is still alive.
  
  2004-07-19  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3715117, crash from a bug in removeChildren.  Clean up node removal and fix an n-squared removal
  	bug.  Also clean up checks in removeChild and in the dispatch of removedFromDocument mutation events to
  	make node removal more efficient.
  	
          Reviewed by kocienda
  
          * khtml/xml/dom_nodeimpl.cpp:
  
  2004-07-19  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Trey.
          
          - fixed <rdar://problem/3141150> can't undo in form textarea fields
  
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea _createTextView]):
          call setAllowsUndo:YES. My, wasn't this easy?
  
  2004-07-19  David Hyatt  <hyatt at apple.com>
  
  	Merge @import fix for CSS1 test suite from Stephan Kulow.
  	
          Reviewed by hyatt
  
          * khtml/css/parser.cpp:
          * khtml/css/parser.y:
          * layout-tests/css1/basic/containment-expected.txt:
  
  2004-07-19  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3718697, crash clicking on JS tab at alaskaair.com.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::detach):
          (RenderFlow::dirtyLinesFromChangedChild):
          * khtml/rendering/render_flow.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::dirtyLinesFromChangedChild):
          * khtml/rendering/render_object.h:
  
  2004-07-16  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3726471, need to ensure that it's safe to do updateRendering from within layout, since isContentEditable
  	relies on it.  The fix is to just recalcStyle up front before beginning the layout, so that all of our renderobjects
  	will be up-to-date.
  	
          Reviewed by john
  
          * khtml/khtmlview.cpp:
          (KHTMLView::layout):
  
  2004-07-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3722153> Random crash while typing (DOM::NodeImpl::parentNode (this=0x0))
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteSelectionCommandImpl::doApply): This check merely makes the code
          more robust. I do not understand how Grant ended up with null start or end 
          blocks in the case of his bug report, but by adding two null checks, the code is 
          now hardened a bit in case it happens again.
  
  2004-07-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for these bugs:
  
          <rdar://problem/3730785> Crash when arrow navigation goes to empty table cell
          <rdar://problem/3730790> Caret does not blink when placed in empty table cell
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paintObject): Caret node's renderer might be this block, so
          don't block the painting of the caret in this case. This was the case in 3730790.
          We had the right geometry for the caret but blocked its painting. 
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousLinePosition): Rework the logic here. This function asserted
          that the new position we would navigate to had a line box, but empty table cells, for
          instance will not. So, deal with this situation as well. The end result is a 
          function that worked like it did before in cases where the previous line position has
          a line box, but now also will allow navigation to work when it does not.
          (DOM::Position::nextLinePosition): Ditto.
  
  2004-07-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3687216> editable inline causes crash when focused
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::relinquishesEditingFocus): Add null check for rootEditableElement.
          (DocumentImpl::acceptsEditingFocus): Ditto.
  
  2004-07-16  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3709337, crash when using display: compact.  Need to make sure that the isCompact() check in bidi.cpp is
  	also checking for RenderBlocks, since otherwise you match text nodes (and that's just wrong).
  	
          Reviewed by kocienda
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
  
  === Safari-152 ===
  
  2004-07-15  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3625611, images offset on first visit to page.  The method for determining the last clean line was
  	flawed and would incorrectly miss dirty lines that occurred after the first clean line.
  	
          Reviewed by john
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::determineEndPosition):
  
  2004-07-15  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          <rdar://problem/3587601> reproducible assertion failure in Blot deleting text, then image at Yahoo.com
          
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteCollapsibleWhitespaceCommandImpl::deleteWhitespace): Relax assertion
          that nodes are text nodes during the walk of eligible nodes that could possibly be
          deleted. Change the assertion to an conditional check for text nodes. We may have 
          unrendered nodes in the mix here (as is the case in the bug where the assertion
          failed on an AREA element), and the conditional check is sufficient to
          skip them while leaving the delete logic we want unperturbed. 
  
  2004-07-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paintObject): Add null check on DOM node before
          asking if it is contentEditable.
  
  2004-07-14  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3595073, setting innerHTML on a <table> should work.
  	
          Reviewed by rjw
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::createContextualFragment):
  
  2004-07-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Updated these layout tests as a result of the last patch.
          These results are better.
  
          * layout-tests/editing/execCommand/selectAll-expected.txt
          * layout-tests/editing/selection/extend-by-character-006-expected.txt
          * layout-tests/editing/selection/unrendered-001-expected.txt
          * layout-tests/editing/selection/unrendered-003-expected.txt
  
  2004-07-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/rendering/render_block.cpp: 
          (khtml::RenderBlock::paintObject): Change back to start() from caretPosition().
          Since the policy is now to move the selection to rendered content, if possible,
          when the selection is set, there is no longer any reason to have the additional
          caretPosition() function to store where the caret should be drawn.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::updateSelection): No longer any need to call closestRenderedPosition here.
          This is done in Selection::validate.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::closestRenderedPosition): Improved algorithm. Now much simpler.
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::Selection): caretPosition() and m_caretPosition now obsolete.
          (DOM::Selection::init): Ditto.
          (DOM::Selection::modifyExtendingRightForward): No longer any need to call 
          closestRenderedPosition here. This is done in Selection::validate.
          (DOM::Selection::modifyMovingRightForward): Ditto.
          (DOM::Selection::modifyExtendingLeftBackward): Ditto.
          (DOM::Selection::modifyMovingLeftBackward): Ditto.
          (DOM::Selection::layoutCaret): Ditto.
          (DOM::Selection::validate): Add code to move the selection to rendered content if possible.
          * khtml/xml/dom_selection.h: caretPosition() and m_caretPosition now obsolete.
  
  2004-07-14  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3716082, assert when you dynamically remove float or position styles.
  	
          Reviewed by kevin
  
          * khtml/rendering/render_object.cpp:
          (RenderObject::setStyle):
  
  2004-07-14  David Hyatt  <hyatt at apple.com>
  
  	Fix for various table regressions (malumovies.com and cityofheroes.gameamp.com) involving bungling of
  	percentage heights.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcPercentageHeight):
          (RenderBox::availableHeightUsing):
          * khtml/rendering/render_table.cpp:
          (RenderTable::layout):
          (RenderTableSection::calcRowHeight):
          (RenderTableSection::layoutRows):
          (RenderTableCell::updateFromElement):
          * khtml/rendering/render_table.h:
  
  2004-07-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::equivalentDeepPosition): New helper function to improve selection handling.
          Soon, I plan to land some changes that use this new function.
          * khtml/xml/dom_position.h:
  
  2004-07-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Vicki
  
          * WebCore-combined.exp: Added QString.at symbol to tests exports to facilitate debugging
          data formatting change that is to come.
          * WebCore-tests.exp:
          
  2004-07-13  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken.
          
          - fixed <rdar://problem/3705500> REGRESSION (125.8-146): Cmd-E on an 
          HTML page puts a trailing space on Find pasteboard
  
          * khtml/misc/khtml_text_operations.cpp:
          (khtml::TextIterator::handleTextBox):
          In the case where a subrun doesn't extend to the end of the text box,
          the well-commented code was supposed to return from this routine, but
          the wrong variable was being compared. This would send us through another
          pass of the loop, which would end up worrying about collapsed space at the
          end of the current box, even though we only cared about the beginning of the
          current box.
  
  2004-07-12  Richard Williamson   <rjw at apple.com>
  
  	Fixed 3717982.  Implemented navigator.language!
  
          Reviewed by John.
  
          * khtml/ecma/kjs_navigator.cpp:
          (Navigator::getValueProperty):
  
  2004-07-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/xml/dom_position.cpp:
          (DOM::Position::inRenderedContent): I broke selection drawing with my last patch. This 
          function is now used in selection drawing, and it was making an unneeded check to see
          that content was editable to answer whether or not is was rendered. Bad. Fixed.
  
  2004-07-12  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3621138, crash on hrweb.apple.com.  Make sure that in the case where objects get pulled up from merging
  	blocks that we just delete all line boxes.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::removeChild):
  
  2004-07-10  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3706080>: (REGRESSION (125.8-147u): Nested <ul> do not display bullets)
  	<rdar://problem/3676376>: (Second level bullets not printed when printing Xcode release notes)
  	
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (CGColorFromNSColor):
          (QPainter::drawEllipse):
          (QPainter::setShadow):
  
  2004-07-12  Ken Kocienda  <kocienda at apple.com>
  
          Added new editing-related layout tests
  
          * layout-tests/editing/deleting/delete-after-span-ws-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-after-span-ws-001.html: Added.
          * layout-tests/editing/deleting/delete-after-span-ws-002-expected.txt: Added.
          * layout-tests/editing/deleting/delete-after-span-ws-002.html: Added.
          * layout-tests/editing/deleting/delete-after-span-ws-003-expected.txt: Added.
          * layout-tests/editing/deleting/delete-after-span-ws-003.html: Added.
          * layout-tests/editing/selection/unrendered-001-expected.txt: Added.
          * layout-tests/editing/selection/unrendered-001.html: Added.
          * layout-tests/editing/selection/unrendered-002-expected.txt: Added.
          * layout-tests/editing/selection/unrendered-002.html: Added.
          * layout-tests/editing/selection/unrendered-003-expected.txt: Added.
          * layout-tests/editing/selection/unrendered-003.html: Added.
          * layout-tests/editing/selection/unrendered-004-expected.txt: Added.
          * layout-tests/editing/selection/unrendered-004.html: Added.
          * layout-tests/editing/selection/unrendered-005-expected.txt: Added.
          * layout-tests/editing/selection/unrendered-005.html: Added.
          * layout-tests/traversal/node-iterator-008-expected.txt: Added.
          * layout-tests/traversal/node-iterator-008.html: Added.
          * layout-tests/traversal/tree-walker-005-expected.txt: Added.
          * layout-tests/traversal/tree-walker-005.html: Added.
  
  2004-07-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fixes for these bugs:
          
          <rdar://problem/3723359> Extending then "unextending" selection with arrow keys should draw caret but doesn't
          <rdar://problem/3724626> White-space deletion code deletes wrong character when space follows span
          
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteSelectionCommandImpl::doApply): Modify special-case white-space deletion code so it runs
          only in the special case. It was throwing its net too widely, catching the case described in 3724626.
          By tightening up the special-case white-space deletion, and allowing the more general-purpose code to run,
          the bug is fixed.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::updateSelection): Use recently-added closestRenderedPosition helper in Position class
          to figure out the start and end positions for selection drawing.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::equivalentUpstreamPosition): Added code to handle white-space that causes line breaks.
          (DOM::Position::equivalentDownstreamPosition): Ditto.
          (DOM::Position::closestRenderedPosition): Trap empty selections at function entry, return *this.
          (DOM::Position::isFirstRenderedPositionOnLine): Can't be first rendered position on line if not rendered.
          Add check for this.
          (DOM::Position::isLastRenderedPositionOnLine): Ditto, but s/first/last/
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::validate): A selection is in caret state if the start and end are equal *or* equivalent.
          The equivalence case is new, and fixes 3723359.
  
  2004-07-09  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Hyatt.
          
          fixes the width:auto problem in
          <rdar://problem/3698344> REGRESSION (143?-144): macrumors.com tabs are compressed and illegible
          
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty):
  
  2004-07-09  Ken Kocienda  <kocienda at apple.com>
  
          Updated some layout test results.
  
          * layout-tests/editing/deleting/delete-image-004-expected.txt:
          * layout-tests/editing/selection/extend-by-character-006-expected.txt:
  
  2004-07-09  Chris Blumenberg  <cblu at apple.com>
  
  	Allowed my change for 3715785 to compile on Jaguar.
  
          Reviewed by kocienda.
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge domain]): new, allows access to the domain without using the DOM API which doesn't exist on Jaguar
  
  2004-07-09  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Some improvements to fix:
          
          <rdar://problem/3723111> Caret not drawn when selection set to unrendered content
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::TypingCommandImpl::issueCommandForDeleteKey): Adjust selection to delete if
          selected position is not rendered.
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paintObject): Use new caretPosition() function on Selection to
          figure out whether to paint.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousCharacterPosition): Now correctly deals with a start
          position that is not rendered.
          (DOM::Position::nextCharacterPosition): Ditto.
          (DOM::Position::closestRenderedPosition): New helper.
          * khtml/xml/dom_position.h:
          (DOM::): Moved in EAffinity from Selection header. Now used in closestRenderedPosition function.
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::Selection): Added new m_caretPosition member. This is the position of the caret
          after a caret layout. This may be different from start or end if start and end are not rendered. 
          (DOM::Selection::init):
          (DOM::Selection::modifyExtendingRightForward): New helper to clean up modify() and make it more readble.
          (DOM::Selection::modifyMovingRightForward): Ditto.
          (DOM::Selection::modifyExtendingLeftBackward): Ditto.
          (DOM::Selection::modifyMovingLeftBackward): Ditto.
          (DOM::Selection::modify): Use new helpers to make this more readble.
          (DOM::Selection::layoutCaret): Uses new closestRenderedPosition helper to place the caret if in unrendered
          content.
          (DOM::Selection::paintCaret): Remove moveToRenderedContent. obsolete.
          * khtml/xml/dom_selection.h:
          (DOM::Selection::caretPosition): New accessor.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setSelectedDOMRange:affinity:]): EAffinity no longer a member enum of Selection class.
  
  2004-07-08  David Hyatt  <hyatt at apple.com>
  
  	Fix for the table layout test that failed because of a change in how innerText worked.  We need to do
  	updateLayout now when using innerText, since the method has been changed to use line boxes in the render tree
  	that might otherwise be out of date.
  	
          Reviewed by kocienda
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::innerText):
  
  2004-07-08  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Ken.
          
          - fixed <rdar://problem/3691569> REGRESSION (142): cmd-shift-clicking on a link 
          now also extends selection (even if there wasn't one before)
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::handleMousePressEventSingleClick):
          if there's a URL associated with the event, don't extend the selection
  
  2004-07-08  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Vicki
  
          Added some helper functions which provide strings to display in the 
          Xcode debugger's variable inspector window. These functions are called
          from the LabyrinthDataFormatter debugger plugin I just checked in to 
          the Labyrinth/Tools directory.
          
          Note that these functions are compiled in on Development builds only.
  
          * WebCore-combined.exp:
          * WebCore-tests.exp: Export all the formatForDebugger symbols so the
          debugger program can link with them.
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::formatForDebugger):
          * khtml/xml/dom2_rangeimpl.h:
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::formatForDebugger):
          * khtml/xml/dom_elementimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          * khtml/xml/dom_nodeimpl.h:
          * khtml/xml/dom_position.cpp:
          (DOM::Position::formatForDebugger):
          * khtml/xml/dom_position.h:
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::formatForDebugger):
          * khtml/xml/dom_selection.h:
          * khtml/xml/dom_textimpl.cpp:
          (TextImpl::formatForDebugger):
          * khtml/xml/dom_textimpl.h:
  
  2004-07-08  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Vicki.
          
          - fixed <rdar://problem/3721544> crash increasing font size; 
          entrezeroetun.com (works in IE and Firefox)
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::updateFirstLetter):
          Check for nil originalString() before dereffing
  
  2004-07-08  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3721453, CSS3 initial property caused crashes because the macros were not written correctly.
  	
          Reviewed by john
  
          * khtml/css/cssstyleselector.cpp:
  
  === Safari-151 ===
  
  2004-07-07  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3712133, crash from first-line pseudo-style use.
  	
          Reviewed by kocienda
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::styleForElement):
          * khtml/css/cssstyleselector.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::getPseudoStyle):
  
  2004-07-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3716479> calling setInnerHTML during a webViewDidChange delegate call causes a crash
          
          The fix involves some rearrangement of code in TypingCommand and TypingCommandImpl.
          Formerly, new TypingCommands would apply themselves (which was a no-op) and then
          do their action in some code a way different than other commands. This type of command
          application is different than for all other commands since TypingCommands can be coalesced.
          The crash occurred as a result of the "no-op" TypingCommand having the unconsidered
          consequence of causing editing delegate notifications to be sent before the command 
          has actually run. This change takes a small step towards making TypingCommandImpl function like
          other commands, where the command work is done in doApply. This makes the notification
          happen in the right order.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::TypingCommand::TypingCommand):
          (khtml::TypingCommand::insertText):
          (khtml::TypingCommand::insertNewline):
          (khtml::TypingCommand::deleteKeyPressed):
          * khtml/editing/htmlediting.h:
          (khtml::TypingCommand::):
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::TypingCommandImpl::TypingCommandImpl):
          (khtml::TypingCommandImpl::doApply):
          * khtml/editing/htmlediting_impl.h:
  
  2004-07-06  Ken Kocienda  <kocienda at apple.com>
  
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableElementImpl::addChild): Added a better comment in the
          code I just checked in a few minutes ago.
  
  2004-07-06  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Fix for this bug:
          
          <rdar://problem/3672377> assertion failure in AppendNodeCommandImpl::doApply 
          due to non-0 exception code trying to insert a DIV markup string
          
          The solution was to revert to the code that was rolled out, and removing
          the child checks from NodeImpl::checkAddChild. However, this time, I added
          code very similar to this check into the code that runs while HTML is 
          being parsed to build up tables. This code relies on child-add failure
          to ensure the proper construction of well-formed tables (as gross as that
          sounds), so the check needs to be retained there. No other code seems to
          be so affected. Layout tests are unchanged by this patch.
  
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableElementImpl::addChild):
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::checkAddChild):
  
  2004-07-06  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
          
          Simple change. I switched the arguments of the appendNode helper function
          and the AppendNodeCommand and AppendNodeCommandImpl classes. The node to 
          insert now comes before the parent node in the argument list. I did this
          to make this function match the convention of others in the HTML editing code.
          This was the only one that was "different" in the way that it ordered arguments.
          As a result, I was always looking to see that I was passing things in the right
          order.
          
          * khtml/editing/htmlediting.cpp:
          (khtml::AppendNodeCommand::AppendNodeCommand):
          (khtml::AppendNodeCommand::appendChild):
          (khtml::AppendNodeCommand::parentNode):
          * khtml/editing/htmlediting.h:
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::CompositeEditCommandImpl::insertNodeAfter):
          (khtml::CompositeEditCommandImpl::insertNodeAt):
          (khtml::CompositeEditCommandImpl::appendNode):
          (khtml::AppendNodeCommandImpl::AppendNodeCommandImpl):
          (khtml::AppendNodeCommandImpl::~AppendNodeCommandImpl):
          (khtml::AppendNodeCommandImpl::doApply):
          (khtml::AppendNodeCommandImpl::doUnapply):
          (khtml::ApplyStyleCommandImpl::surroundNodeRangeWithElement):
          (khtml::DeleteSelectionCommandImpl::doApply):
          (khtml::InputNewlineCommandImpl::insertNodeAfterPosition):
          (khtml::InputNewlineCommandImpl::insertNodeBeforePosition):
          (khtml::InputTextCommandImpl::prepareForTextInsertion):
          * khtml/editing/htmlediting_impl.h:
          (khtml::AppendNodeCommandImpl::parentNode):
  
  2004-07-06  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Trey
  
          Fixed several problems with traversal classes. For one, NodeIterators treat
          FILTER_REJECT and FILTER_SKIP the same, since it treats the DOM tree as a
          flat collection of nodes free of hierarchy. The code before this change did
          not do this correctly. It sure pays to go back and read the specs. :)
          
          Also, the code to traverse from node to node when filters were applied was
          not working correctly. My first attemmpt to implement this was just plain
          buggy, as I discovered when I tried to write tests for my WWDC talk. I have
          settled on an implementation which is much simpler and worked for all the
          tests I threw at it. 
  
          * khtml/xml/dom2_traversalimpl.cpp:
          (DOM::NodeIteratorImpl::findNextNode):
          (DOM::NodeIteratorImpl::nextNode):
          (DOM::NodeIteratorImpl::findPreviousNode):
          (DOM::NodeIteratorImpl::previousNode):
          (DOM::TreeWalkerImpl::parentNode):
          (DOM::TreeWalkerImpl::firstChild):
          (DOM::TreeWalkerImpl::lastChild):
          (DOM::TreeWalkerImpl::previousSibling):
          (DOM::TreeWalkerImpl::nextSibling):
          (DOM::TreeWalkerImpl::previousNode):
          (DOM::TreeWalkerImpl::nextNode):
          (DOM::TreeWalkerImpl::ancestorRejected):
          * khtml/xml/dom2_traversalimpl.h:
  
  2004-07-06  Vicki Murley  <vicki at apple.com>
  
          Reviewed by kocienda.
  
  	- added backColorCommand, foreColorCommand, fontNameCommand, 
  	and fontSizeCommand
    
          * layout-tests/editing/editing.js:
  
  2004-07-06  Trey Matteson  <trey at apple.com>
  
  	3716053 - www.theage.com.au has extra back/forward items due to ads
  
  	This turned out to be easily fixed by generalizing the fix to 3438441.  We prevent
  	addition to the b/f list not just during an onload event, but during any non-user
  	gesture, which includes top level script executing.
  
          Reviewed by Richard.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::openURL):  Only real change - prevent adding to b/f list if not
  	a user gesture.
          (KWQKHTMLPart::openURLRequest):  Rename "onLoadEvent" to "userGesture", swap sense
          (KWQKHTMLPart::submitForm):  Ditto
          (KWQKHTMLPart::urlSelected): Ditto
          * kwq/KWQKHTMLPartBrowserExtension.mm:
          (KHTMLPartBrowserExtension::createNewWindow):  Ditto
          * kwq/WebCoreBridge.h:
  
  2004-07-02  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed half of <rdar://problem/3709244> utf-8 meta tag not parsed when page title contains angle brackets or if </meta> tag used
  
          * khtml/misc/decoder.cpp: (Decoder::decode): Allow </meta> tags without deciding we
          are done with the header.
  
  2004-06-30  Trey Matteson  <trey at apple.com>
  
  	Dragging within a web view should be allowed to start when the window isn't key.
  
  	A few months ago, Chris made this work, but it relied on the fact that all dragging
  	was done in WebKit.  When WebCore got involved in dragging, it was broken.  Now we
  	have a new scheme that gets it working again that properly involves WebCore.
  
  	The general idea is that when AK asks us whether to accept the first mouse and do
  	"delayed window ordering", we must consult WC to see if we might start a drag.  In
  	addition, instead of these drags in non-active windows being started as a special
  	case in WK, they go through the normal WK-WC drag machinery.
  
          Reviewed by John.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::shouldDragAutoNode):  New x,y args.
          * khtml/khtml_part.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::draggableNode):  Pass through new x,y args.
          * khtml/rendering/render_object.h:
          * kwq/KWQKHTMLPart.h:
          (KWQKHTMLPart::setActivationEventNumber):  New setter.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::KWQKHTMLPart):  Init new ivar.
          (KWQKHTMLPart::eventMayStartDrag):  New routine that checks if we might start
  	a drag in response to a mouseDown.
          (KWQKHTMLPart::khtmlMouseMoveEvent):  Pass x,y to the routine that finds a draggable
  	node.  This eventually gets back up to WK's _mayStartDragAtEventLocation:.
  	Delay requirement when dragging the selection now implemented here.
          (KWQKHTMLPart::khtmlMouseReleaseEvent):  Must avoid changing the selection if we
  	wind up here as part of the first click in a window (because we started handling
  	the click to possible start a drag, but that never came through).
          (KWQKHTMLPart::mouseDown): Save away event timestamp.
          (KWQKHTMLPart::shouldDragAutoNode):  Pass location up to WK instead of the
  	most recent event we stashed.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setActivationEventNumber:]):  Trivial glue.
          (-[WebCoreBridge eventMayStartDrag:]):  Ditto.
  
  2004-06-29  Trey Matteson  <trey at apple.com>
  
  	Need to tighten up JS error checking for requesting drag props
  	in the wrong cases.
  
          Reviewed by John.
  
          * khtml/ecma/kjs_events.cpp:
          (Clipboard::getValueProperty):  Assert if someone somehow set
  	dropEffect or effectAllowed and it's a copy/paste clipboard
  	instead of a dragging clipboard.
          (Clipboard::putValue):  Don't let anyone set dropEffect or
  	effectAllowed on a copy/paste clipboard.
          (ClipboardProtoFunc::tryCall):  Disallow setting dragImage on
  	a copy/paste clipboard.
  
  2004-06-29  Trey Matteson  <trey at apple.com>
  
  	DHTML dragging - source should have access to the operation chosen
  	by the destination.
  
          Reviewed by John
  
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::dragSourceEndedAt):  Set the destination's operation
  	on the clipboard.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge dragExitedWithDraggingInfo:]):  For completeness
  	we set the source op for the ondragexit event.
          (-[WebCoreBridge concludeDragForDraggingInfo:]):  Ditto for the
  	drop event.
          (-[WebCoreBridge dragSourceEndedAt:operation:]):  Pass through of operation.
  
  2004-06-24  Trey Matteson  <trey at apple.com>
  
  	3710422 - REGRESSION: Safari crashes trying to send onbeforecut event at about://blank
  
  	Simple fix - don't try to send the event to the body element if we have no body element.
  
          Reviewed by John
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::dispatchCPPEvent):
  
  2004-06-24  Trey Matteson  <trey at apple.com>
  
  	3704950	drag image in DB ConfigBar has horizontal graphics turd	WebCore JavaScript
  
  	When we generate a drag image (or a selection image too, for that matter) we
  	translate the CTM using a CG call.  Later, WebImageRenderer adjusts the pattern
  	phase based on the CTM of the focused view, which doesn't include our translate.
  	So we must inform WebKit about the additional phase adjustment.
  
          Reviewed by Richard
  
          * kwq/KWQKHTMLPart.mm:  Tell WebKit about the phase adjustment.
          (KWQKHTMLPart::imageFromRect):
          * kwq/WebCoreGraphicsBridge.h:
          * kwq/WebCoreGraphicsBridge.m:
          (-[WebCoreGraphicsBridge setAdditionalPatternPhase:]):  New routine to receive
  	the phase adjustment.
  
  2004-06-24  Trey Matteson  <trey at apple.com>
  
  	3679986 - screenX and screenY are flipped and relative to the bottom left of the WebView, rather than the screen
  	3699510 - synthesized click events have bogus screen coords
  
          Reviewed by Darin.
  
          * khtml/khtmlview.cpp:
          (KHTMLView::dispatchDragEvent):  Generate screen coords for drag events using new func.
          (KHTMLView::dispatchMouseEvent):   Ditto.
          * khtml/khtmlview.h:
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::dispatchMouseEvent):  Comment tricky semantics.
  	Calc screen coords in apple-specific way.
          * kwq/KWQKHTMLView.mm:
          (KHTMLView::viewportToGlobal):  Passthrough to window widget.
          * kwq/KWQScrollView.mm:
          * kwq/KWQWindowWidget.h:
          * kwq/KWQWindowWidget.mm:
          (KWQWindowWidget::mapToGlobal):  Call former code factored to new method below.
          (KWQWindowWidget::viewportToGlobal):  New method to convert "viewport" (which for us
  	really means NSWindow coords) to screen coords.
  
  2004-06-24  Trey Matteson  <trey at apple.com>
  
  	3693420 - onbeforecut and onbeforepaste need real implementaion
  
          Reviewed by Chris.
  
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::mayCut):  Dispatch event to DHTML.
          (KWQKHTMLPart::mayCopy):  Ditto
          (KWQKHTMLPart::mayPaste):  Ditto
          (KWQKHTMLPart::tryCut):  No more need to send fake onbefore event
          (KWQKHTMLPart::tryCopy):  Ditto
          (KWQKHTMLPart::tryPaste): Ditto
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge mayDHTMLCut]):  Standard glue
          (-[WebCoreBridge mayDHTMLCopy]):  Ditto
          (-[WebCoreBridge mayDHTMLPaste]):  Ditto
  
  2004-06-24  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3709385> Find on page doesn't find a string at the very end of the file
  
          * khtml/misc/khtml_text_operations.cpp: (khtml::findPlainText): Rearrange loop to avoid an early
          exit once we have all the characters we need, but are at the end of the range we are searching.
  
          - fixed <rdar://problem/3102271>: (text areas have scroll bars even when they don't need them)
          - fixed <rdar://problem/3665430>: (horizontal scroll bar of text area does not show, even when text is wide in "no wrap" mode)
  
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea _configureTextViewForWordWrapMode]): Added. Helper method that sets up the
          view for a new word wrap mode.
          (-[KWQTextArea _createTextView]): Moved much of the code inside _configureTextViewForWordWrapMode.
          (-[KWQTextArea _frameSizeChanged]): Added. Method shared by setFrame: and initWithFrame: to
          avoid duplicate code that was there before. The old code also had redundant code to update
          the text container size, but NSText handles that automatically.
          (-[KWQTextArea initWithFrame:]): Set wrap to YES by default, which is the key to fixing bug 3665430.
          Call setAutohidesScrollers:YES, which fixes bug 3102271. Also call the new _frameSizeChanged method.
          (-[KWQTextArea setWordWrap:]): Call _configureTextViewForWordWrapMode instead of trying
          to do the work here. The old version did both too little and too much.
          (-[KWQTextArea setFrame:]): Call _frameSizeChanged instead of trying to do the work here.
          The old version did both too little and too much.
  
  2004-06-24  John Sullivan  <sullivan at apple.com>
  
          Darin made this change on my machine; I reviewed it.
          
          - fixed <rdar://problem/3698333> Find on page doesn't find a particular string 
          with a newline in the source
  
          * khtml/misc/khtml_text_operations.cpp:
          (khtml::TextIterator::handleTextBox):
          Clear m_lastTextNodeEndedWithCollapsedSpace after taking it into account.
  
  2004-06-23  Richard Williamson   <rjw at apple.com>
  
  	Implemented changes for latest npruntime.h.
  
          Reviewed by Chris.
  
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::KWQKHTMLPart):
          (KWQKHTMLPart::windowScriptNPObject):
          (KWQKHTMLPart::getEmbedInstanceForView):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge windowScriptObject]):
          (-[WebCoreBridge windowScriptNPObject]):
  
  2004-06-22  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3707162>: accessing embeds[] plug-in interface may crash
  
  	embedInstance was uninitialized.
  
          Reviewed by Chris.
  
          * khtml/html/html_objectimpl.cpp:
          (HTMLEmbedElementImpl::HTMLEmbedElementImpl):
  
  2004-06-18  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Darin
          
          - fixed <rdar://problem/3534851> Pop up windows not showing up within SAP's 
          BW Module (changing location.href on new window created by window.open)
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::scheduleRedirection):
          allow new redirect to win if delay <= current delay, not just <
  
  === WebCore-146.1 ===
  
  2004-06-18  Trey Matteson  <trey at apple.com>
  
  	3702053 - DHTML dragging destination can't control the cursor (by setting the drop operation)
  
  	Fallout from security work, but an easy fix.
  
          Reviewed by Darin
  
          * kwq/KWQClipboard.mm:
          (KWQClipboard::setDropEffect):  Allow dest side to set dropEffect.
  
  2004-06-18  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - re-fixed <rdar://problem/3701893> show expert preferences notes in xcode causes crash (in EllipsisBox code)
  
          * khtml/rendering/render_block.cpp: (khtml::RenderBlock::paintEllipsisBoxes):
          Check !isInlineFlow rather than checking hasMarkupTruncation. Otherwise, we break
          plain old non-markup truncation.
  
  2004-06-18  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3701893> show expert preferences notes in xcode causes crash (in EllipsisBox code)
  
          * khtml/rendering/render_block.cpp: (khtml::RenderBlock::paintEllipsisBoxes):
          Only walk the ellipsis list if hasMarkupTruncation is true.
  
  === Safari-146 ===
  
  2004-06-17  Richard Williamson   <rjw at apple.com>
  
  	Fixed <rdar://problem/3698867> setting the canvas or parent to display:none and updating the causes a nil-deref
  
  	Ensured that we have a renderer before rendering.
  
          Reviewed by John.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
  
  2004-06-17  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3674601, "Read More..." links should trail articles in Emerson.
  	
          Reviewed by darin
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
          (khtml::RenderBlock::deleteEllipsisLineBoxes):
          (khtml::RenderBlock::checkLinesForTextOverflow):
          * khtml/rendering/render_block.cpp:
          (khtml:::RenderFlow):
          (khtml::RenderBlock::paintEllipsisBoxes):
          (khtml::RenderBlock::nodeAtPoint):
          (khtml::shouldCheckLines):
          (khtml::getLineAtIndex):
          (khtml::getHeightForLineCount):
          (khtml::RenderBlock::lineAtIndex):
          (khtml::RenderBlock::lineCount):
          (khtml::RenderBlock::heightForLineCount):
          (khtml::RenderBlock::clearTruncation):
          * khtml/rendering/render_block.h:
          (khtml::RenderBlock::setHasMarkupTruncation):
          (khtml::RenderBlock::hasMarkupTruncation):
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::layoutVerticalBox):
          * khtml/rendering/render_line.cpp:
          (khtml::EllipsisBox::m_str):
          (khtml::InlineBox::adjustPosition):
          (khtml::InlineFlowBox::adjustPosition):
          (khtml::InlineFlowBox::clearTruncation):
          (khtml::EllipsisBox::paint):
          (khtml::EllipsisBox::nodeAtPoint):
          (khtml::RootInlineBox::clearTruncation):
          (khtml::RootInlineBox::placeEllipsis):
          (khtml::RootInlineBox::paintEllipsisBox):
          (khtml::RootInlineBox::hitTestEllipsisBox):
          (khtml::RootInlineBox::adjustPosition):
          (khtml::RootInlineBox::childRemoved):
          * khtml/rendering/render_line.h:
          (khtml::InlineBox::clearTruncation):
          * khtml/rendering/render_text.cpp:
          * khtml/rendering/render_text.h:
          (khtml::InlineTextBox::clearTruncation):
  
  2004-06-17  Trey Matteson  <trey at apple.com>
  
  	3698514 - coordinates in ondragstart and ondrag events are wrong
  
  	This part fixes the ondragstart coords.  We salt away the window-based mouseDown
  	location, since we need that when we dispatch the ondragstart event.  Previously
  	we were errantly using a mouseDown point that had already been converted to view
  	coords, and then the dispatch converted it again.
  
          Reviewed by Maciej.
  
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::khtmlMouseMoveEvent):  Use window based mouse event coords to dispatch event.
          (KWQKHTMLPart::mouseDown):  Save window based mouse event coords .
  
  2004-06-16  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3596620, implement a subset of CSS3 text truncation for Emerson.
  	
          Reviewed by mjs
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::checkLinesForTextOverflow):
          * khtml/rendering/font.cpp:
          (Font::checkSelectionPoint):
          * khtml/rendering/font.h:
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paintObject):
          (khtml::RenderBlock::paintFloats):
          (khtml::RenderBlock::paintEllipsisBoxes):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_line.cpp:
          (InlineBox::canAccommodateEllipsis):
          (InlineBox::placeEllipsisBox):
          (InlineFlowBox::paintDecorations):
          (InlineFlowBox::placeEllipsisBox):
          (EllipsisBox::paint):
          (RootInlineBox::placeEllipsis):
          (RootInlineBox::placeEllipsisBox):
          * khtml/rendering/render_line.h:
          (khtml::EllipsisBox::m_str):
          (khtml::RootInlineBox::ellipsisBox):
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::placeEllipsisBox):
          (InlineTextBox::paintDecoration):
          (InlineTextBox::offsetForPosition):
          (RenderText::positionForCoordinates):
          (RenderText::paint):
          * khtml/rendering/render_text.h:
          * kwq/KWQFontMetrics.h:
          * kwq/KWQFontMetrics.mm:
          (QFontMetrics::checkSelectionPoint):
          * kwq/WebCoreTextRenderer.h:
  
  === WebCore-145.1 ===
  
  2004-06-16  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3697602> REGRESSION (144.2-TOT) Selection highlight does not draw
  
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::setSelection):
  
  === Safari-145 ===
  
  2004-06-16  Richard Williamson   <rjw at apple.com>
  
  	Fixed 3695730:  Added support for embeds[], much like
  	applets[], to allow access to a plugin's exported interface.
  
          Reviewed by Chris.
  
          * khtml/dom/html_document.cpp:
          (HTMLDocument::embeds):
          * khtml/dom/html_document.h:
          * khtml/ecma/kjs_dom.cpp:
          (KJS::getRuntimeObject):
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::tryGet):
          (KJS::HTMLElement::tryGet):
          (KJS::HTMLCollection::tryGet):
          (KJS::HTMLCollection::getNamedItems):
          * khtml/ecma/kjs_html.h:
          (KJS::HTMLDocument::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
          * khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::calcLength):
          (HTMLCollectionImpl::getItem):
          (HTMLCollectionImpl::getNamedItem):
          * khtml/html/html_miscimpl.h:
          (DOM::HTMLCollectionImpl::):
          * khtml/html/html_objectimpl.cpp:
          (HTMLEmbedElementImpl::getEmbedInstance):
          * khtml/html/html_objectimpl.h:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::getEmbedInstanceForView):
  
  2004-06-15  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	<rdar://problem/3695907>: (can't enable selection inside parent where it is disabled via CSS)
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue): 
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/rendering/render_object.cpp:
          (RenderObject::shouldSelect):
          * khtml/rendering/render_style.h:
          (khtml::):
          (khtml::RenderStyle::userSelect):
          (khtml::RenderStyle::setUserSelect):
          (khtml::RenderStyle::initialUserSelect):
  
  2004-06-15  David Hyatt  <hyatt at apple.com>
  
  	Initial impl of the EllipsisBox.  This code just gets the box created and gets it placed vertically.  The next
  	stage will be to position the box horizontally as well.
  	
          Reviewed by trey
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::checkLinesForTextOverflow):
          * khtml/rendering/render_line.cpp:
          (RootInlineBox::placeEllipsis):
          * khtml/rendering/render_line.h:
          (khtml::EllipsisBox::m_str):
  
  2004-06-15  David Hyatt  <hyatt at apple.com>
  
  	Implement canAccommodateEllipsis.  The basic idea is that everything on a line will allow an ellipsis to be
  	drawn on top of it unless it's a replaced element.  Then, if the replaced element overlaps, the ellipsis won't
  	be allowed.
  	
          Reviewed by john
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::checkLinesForTextOverflow):
          * khtml/rendering/render_line.cpp:
          (InlineBox::closestLeafChildForXPos):
          (InlineBox::canAccommodateEllipsis):
          (InlineFlowBox::canAccommodateEllipsis):
          (RootInlineBox::canAccommodateEllipsis):
          * khtml/rendering/render_line.h:
  
  2004-06-15  Vicki Murley <vicki at apple.com>
  
  	- added a few layout tests, rdar://3694510
  
          * layout-tests/editing/deleting/delete-image-004-expected.txt: Added.
          * layout-tests/editing/deleting/delete-image-004.html: Added.
          * layout-tests/editing/selection/extend-by-character-006-expected.txt: Added.
          * layout-tests/editing/selection/extend-by-character-006.html: Added.
  
  2004-06-15  Trey Matteson  <trey at apple.com>
  
  	Dragging tweak:  We pass the mouse down coords instead of the
  	latest mouse drag coords to the ondragstart event.  This makes it
  	easy for the client to figure the correct drag image offset,
  	whereas the mouse drag location is next to useless for that.
  
          Reviewed by Louch
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::khtmlMouseMoveEvent):
  
  2004-06-15  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3685236>: (Safari does not support onselectstart event handler)
  
          * khtml/ecma/kjs_dom.cpp:
          (DOMNode::getValueProperty):
          (DOMNode::putValue):
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMNode::):
          * khtml/ecma/kjs_dom.lut.h:
          (KJS::):
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::parseHTMLAttribute):
          * khtml/misc/htmlattrs.c:
          (hash_attr):
          (findAttr):
          * khtml/misc/htmlattrs.h:
          * khtml/misc/htmlattrs.in:
          * khtml/rendering/render_object.cpp:
          (RenderObject::shouldSelect):
          * khtml/xml/dom2_eventsimpl.cpp:
          (EventImpl::typeToId):
          (EventImpl::idToType):
          * khtml/xml/dom2_eventsimpl.h:
          (DOM::EventImpl::):
  
  2004-06-15  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	Fix crash with last checkin.
  
          * khtml/ecma/kjs_binding.cpp:
          (ScriptInterpreter::domObjectsPerDocument): check the same
  	property we want to initialize.
  
  2004-06-15  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3685309>: (properties not shared for JS wrappers of same DOM object, accessed from different frames)
  
          * khtml/ecma/kjs_binding.cpp:
          (ScriptInterpreter::domObjects):
          (ScriptInterpreter::domObjectsPerDocument):
          (ScriptInterpreter::ScriptInterpreter):
          (ScriptInterpreter::forgetDOMObject):
          (ScriptInterpreter::getDOMObjectForDocument):
          (ScriptInterpreter::putDOMObjectForDocument):
          (ScriptInterpreter::deleteDOMObjectsForDocument):
          (ScriptInterpreter::mark):
          (ScriptInterpreter::forgetDOMObjectsForDocument):
          (ScriptInterpreter::updateDOMObjectDocument):
          * khtml/ecma/kjs_binding.h:
          (KJS::ScriptInterpreter::getDOMObject):
          (KJS::ScriptInterpreter::putDOMObject):
          (KJS::ScriptInterpreter::deleteDOMObject):
  
  2004-06-15  Darin Adler  <darin at apple.com>
  
          - rolled out Ken's fix for <rdar://problem/3672377> assertion failure in AppendNodeCommandImpl::doApply due to non-0 exception code trying to insert a DIV markup string
            (it was making most layout tests fail)
  
          * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkAddChild): Rolled check back in.
  
  2004-06-15  David Hyatt  <hyatt at apple.com>
  
  	Add a truncation variable to text run boxes that will eventually be used to know how to cut out some of the glyphs when
  	rendering.
  	
          Reviewed by darin
  
          * khtml/rendering/render_text.cpp:
          (RenderText::clearTextOverflowTruncation):
          * khtml/rendering/render_text.h:
          (khtml::InlineTextBox:::InlineRunBox):
          (khtml::InlineTextBox::clearTruncation):
  
  2004-06-14  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed some things for GC that Patrick missed, or that happened after the branch
  
          * kwq/DOM-CSS.mm:
          (-[DOMStyleSheet finalize]): Added.
          (-[DOMStyleSheetList finalize]): Added.
          (-[DOMCSSStyleSheet finalize]): Added.
          (-[DOMMediaList finalize]): Added.
          (-[DOMCSSRuleList finalize]): Added.
          (-[DOMCSSRule finalize]): Added.
          (-[DOMCSSStyleDeclaration finalize]): Added.
          (-[DOMCSSValue finalize]): Added.
          (-[DOMRGBColor finalize]): Added.
          (-[DOMRect finalize]): Added.
          (-[DOMCounter finalize]): Added.
          * kwq/DOM.mm:
          (-[DOMObject finalize]): Added.
          (-[DOMNode finalize]): Added.
          (-[DOMNamedNodeMap finalize]): Added.
          (-[DOMNodeList finalize]): Added.
          (-[DOMImplementation finalize]): Added.
          (-[DOMRange finalize]): Added.
          (-[DOMNodeFilter finalize]): Added.
          (-[DOMNodeIterator finalize]): Added.
          (-[DOMTreeWalker dealloc]): Removed unneeded nil check.
          (-[DOMTreeWalker finalize]): Added.
          * kwq/DOMHTML.mm:
          (-[DOMHTMLCollection finalize]): Added.
          (-[DOMHTMLOptionsCollection finalize]): Added.
          * kwq/KWQClipboard.mm:
          (KWQClipboard::KWQClipboard): Use KWQRetain instead of retain.
          (KWQClipboard::~KWQClipboard): Use KWQRelease instead of release.
          * kwq/KWQEditCommand.mm:
          (-[KWQEditCommand finalize]): Added.
          * kwq/KWQFont.mm:
          (QFont::~QFont): Use KWQRelease instead of release.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::keyEvent): Use KWQRetain instead of retain, and KWQRelease instead of release.
          (KWQKHTMLPart::mouseDown): Use KWQRetain instead of retain, and KWQRelease instead of release.
          (KWQKHTMLPart::mouseDragged): Use KWQRetain instead of retain, and KWQRelease instead of release.
          (KWQKHTMLPart::mouseUp): Use KWQRetain instead of retain, and KWQRelease instead of release.
          (KWQKHTMLPart::mouseMoved): Use KWQRetain instead of retain, and KWQRelease instead of release.
          (KWQKHTMLPart::sendContextMenuEvent): Use KWQRetain instead of retain, and KWQRelease instead of release.
          * kwq/KWQPageState.mm:
          (-[KWQPageState finalize]): Added. Filed <rdar://problem/3694163> about the fact that this is not right.
          * kwq/KWQTimer.mm:
          (-[KWQSingleShotTimerTarget finalize]): Added.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge finalize]): Added. Filed <rdar://problem/3694165> about the fact that this is not right.
  
  2004-06-15  David Hyatt  <hyatt at apple.com>
  
  	Initial work on text truncation.  Working top-down, I think I've made all the changes I will need to bidi.cpp
  	and to the block code itself.  The rest of the code can be concentrated in the render_line and render_text files.
  	
          Reviewed by darin
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
          (khtml::RenderBlock::findNextLineBreak):
          (khtml::RenderBlock::deleteEllipsisLineBoxes):
          (khtml::RenderBlock::checkLinesForTextOverflow):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_line.cpp:
          (RootInlineBox::detach):
          (RootInlineBox::detachEllipsisBox):
          (RootInlineBox::canAccommodateEllipsis):
          (RootInlineBox::placeEllipsis):
          * khtml/rendering/render_line.h:
          (khtml::RootInlineBox::RootInlineBox):
          * khtml/rendering/render_text.cpp:
          (RenderText::clearTextOverflowTruncation):
          * khtml/rendering/render_text.h:
  
  2004-06-14  Trey Matteson  <trey at apple.com>
  
  	3692690 - REGRESSION: canceling drag from WebView cause link to load
  	Just need to take extra care to cancel any click handling in
  	all cases once we're committed to doing the drag.
  
          Reviewed by Darin.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::khtmlMouseMoveEvent):  Call invalidateClick once
  	we're past the hysteresis point, and definitely going to try
  	to start a drag and drop.
  
  2004-06-14  Darin Adler  <darin at apple.com>
  
          - fixed crash on boot
  
          * kwq/KWQFoundationExtras.h: (KWQRetainNSRelease):
          Fixed return value of this method; was uninitialized.
  
  2004-06-14  Trey Matteson  <trey at apple.com>
  
  	Dashboard wants access to pastboard data during the drag gesture.
  
  	We address this need be allowing docs that are local files to access the
  	pasteboard data during a drag, while other pages can only get at the types
  	list until the drop happens.  This is deemed safe because local files already
  	have such broad super powers.
  
          Reviewed by Maciej.
  
          * kwq/KWQKURL.h:
          * kwq/KWQKURL.mm:
          (KURL::isLocalFile):  Implement this QT method to look for the file scheme.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge dragOperationForDraggingInfo:]):  Use more relaxed clipboard
  	security for local file pages.
          (-[WebCoreBridge dragExitedWithDraggingInfo:]):  Ditto.
  
  2004-06-14  Darin Adler  <darin at apple.com>
  
          Reviewed by me, code changes by Patrick Beard.
  
          - fixed <rdar://problem/3671507>: (WebKit should adopt GC changes and compile with GC enabled)
  
          * WebCore.pbproj/project.pbxproj: Added KWQFoundationExtras.h.
          * kwq/KWQFoundationExtras.h: Added.
          (KWQRetain): Cover for CFRetain that is tolerant of nil.
          (KWQRelease): Cover for CFRelease that is tolerant of nil.
          (KWQRetainNSRelease): Combination of a CFRetain and an -[NSObject release] that is tolerant of nil.
          Also includes a declaration of finalize so we can call [super finalize] without warnings on Panther.
  
          * kwq/DOM.mm:
          (ObjCNodeFilterCondition::ObjCNodeFilterCondition): Use CFRetain instead of retain.
          (ObjCNodeFilterCondition::~ObjCNodeFilterCondition): Use CFRelease instead of release.
          * kwq/KWQComboBox.mm:
          (QComboBox::~QComboBox): Use KWQRelease instead of release.
          (QComboBox::setFont): Use KWQRelease instead of release.
          (QComboBox::labelFont): Use KWQRetain instead of retain.
          * kwq/KWQCursor.mm:
          (QCursor::QCursor): Use KWQRetain instead of retain.
          (QCursor::~QCursor): Use KWQRelease instead of release.
          (QCursor::operator=): More of the same.
          * kwq/KWQFileButton.mm:
          (KWQFileButton::KWQFileButton): Use KWQRetainNSRelease to retain a newly-allocated object.
          (KWQFileButton::~KWQFileButton): Use CFRelease instead of release.
          * kwq/KWQFont.mm:
          (QFont::QFont): Use KWQRetain instead of retain.
          (QFont::operator=): More of the same.
          (QFont::setFamily): Use KWQRelease instead of release.
          (QFont::setFirstFamily): Use KWQRelease instead of release.
          (QFont::setPixelSize): Use KWQRelease instead of release.
          (QFont::setWeight): Use KWQRelease instead of release.
          (QFont::setItalic): Use KWQRelease instead of release.
          (QFont::getNSFont): Use KWQRetain instead of retain.
          * kwq/KWQFontMetrics.mm:
          (QFontMetricsPrivate::~QFontMetricsPrivate): Use KWQRelease instead of release.
          (QFontMetricsPrivate::getRenderer): Use KWQRetain instead of retain.
          (QFontMetricsPrivate::setFont): Use KWQRelease instead of release.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::~KWQKHTMLPart): Use KWQRelease instead of release.
          (KWQKHTMLPart::clearRecordedFormValues): Use KWQRelease instead of release.
          (KWQKHTMLPart::recordFormValue): Use KWQRetainNSRelease and use KWQRetain instead of retain.
          (KWQKHTMLPart::windowScriptObject): Use KWQRetainNSRelease.
          * kwq/KWQKJobClasses.mm:
          (KIO::TransferJobPrivate::TransferJobPrivate): Use KWQRetainNSRelease.
          (KIO::TransferJobPrivate::~TransferJobPrivate): Use KWQRelease instead of release.
          (KIO::TransferJob::setLoader): More of the same.
          * kwq/KWQLoader.mm:
          (KWQRetainResponse): Use KWQRetain instead of retain.
          (KWQReleaseResponse): Use KWQRelease instead of release.
          * kwq/KWQPainter.mm:
          (QPainterPrivate::~QPainterPrivate): Use KWQRelease instead of release.
          (QPainter::_updateRenderer): More of the same.
          (QPainter::initFocusRing): Use KWQRetainNSRelease.
          (QPainter::clearFocusRing): Use KWQRelease instead of release.
          * kwq/KWQPixmap.mm:
          (QPixmap::QPixmap): Use KWQRetain instead of retain.
          (QPixmap::~QPixmap): Use KWQRelease instead of release.
          (QPixmap::receivedData): Use KWQRetain instead of retain.
          (QPixmap::resize): Use KWQRetainNSRelease and use KWQRelease instead of release.
          (QPixmap::operator=): More of the same.
          * kwq/KWQRegion.mm:
          (QRegion::QRegion): Use KWQRetain instead of retain.
          (QRegion::~QRegion): Use KWQRelease instead of release.
          (QRegion::operator=): More of the same.
          * kwq/KWQTimer.mm:
          (QTimer::start): Use KWQRetain instead of retain.
          (QTimer::stop): Use KWQRelease instead of release.
          (QTimer::fire): Use KWQRelease instead of release.
          * kwq/KWQWidget.mm:
          (QWidget::QWidget): Use KWQRetain instead of retain.
          (QWidget::~QWidget): Use KWQRelease instead of release.
          (QWidget::setView): More of the same.
          * kwq/WebCoreSettings.mm: (-[WebCoreSettings finalize]):
          Delete the storage here, as well as in dealloc.
  
  2004-06-14  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Trey.
  
  	<rdar://problem/3693818>: (Safari should use CG calls for circle drawing for better performance)
  
  	* kwq/KWQPainter.mm:
          (QPainter::drawEllipse): Use CG calls instead of NS calls for faster circle drawing.
          (QPainter::drawArc): Ditto.
  
  2004-06-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Vicki
  
          Fix for this bug:
          
          <rdar://problem/3690115> Crash deleting text out of iChat's profile (an editable Webview)
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::isFocusable): Added null-check of parent node before deref'ing it.
  
  2004-06-14  Trey Matteson  <trey at apple.com>
  
  	Two tweaks to recently added "drag" pseudo-class, as suggested by
  	Dave.  The class is renamed to "-khtml-drag", and we update layout
  	when using it, instead of only updating styles.
  
          Reviewed by hyatt.
  
          * khtml/css/css_base.cpp:
          (CSSSelector::extractPseudoType):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::snapshotDragImage):
  
  2004-06-13  Trey Matteson  <trey at apple.com>
  
  	Support for DHTML cut/copy/paste.  We now support oncut, oncopy, onpaste.  The events
  	are sent to the first node in the selection, or else the body.  Current holes are
  	that we do not send events for operations in text fields or text areas (because it
  	is hard to get the right hooks into the AppKit).
  
  	We also send onbeforecut, onbeforecopy, onbeforepaste before the other events, which
  	isn't really WinIE compatible, but is close.  WinIE uses these to enable cut/paste
  	menu items in its UI.  DB doesn't need this for now.
  
          Reviewed by Chris
  
          * khtml/ecma/kjs_dom.cpp:
          (DOMNode::getValueProperty):  Boilerplate for new events
          (DOMNode::putValue):    Boilerplate for new events
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMNode::):    Boilerplate for new events
          * khtml/ecma/kjs_dom.lut.h:
          * khtml/ecma/kjs_events.cpp:
          (DOMEvent::DOMEvent): "dataTransfer" and "clipboardData" properties are conditionally
  	defined on DOMEvent, depending on if the event is a dragging or clipboard event.
          (DOMMouseEvent::mark):  Pass mark along to any clipboard object we have.
          (DOMEvent::getValueProperty):  Return "dataTransfer" or "clipboardData".
          (DOMMouseEvent::getValueProperty):  Returning "dataTransfer" now handled by
  	the superclass.
          * khtml/ecma/kjs_events.h:
          (KJS::DOMEvent::):
          (KJS::DOMMouseEvent::DOMMouseEvent):
          (KJS::DOMMouseEvent::):
          (KJS::DOMMouseEvent::toMouseEvent):
          * khtml/ecma/kjs_events.lut.h:
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::parseHTMLAttribute):  Boilerplate for new events
          * khtml/misc/htmlattrs.c:
          * khtml/misc/htmlattrs.h:
          * khtml/misc/htmlattrs.in:  Boilerplate for new events
          * khtml/xml/dom2_eventsimpl.cpp:
          (EventImpl::typeToId):  Boilerplate for new events
          (EventImpl::idToType):  Boilerplate for new events
          (EventImpl::isDragEvent):  New utility
          (EventImpl::isClipboardEvent):  New utility
          (MouseEventImpl::isDragEvent):  New utility
          (ClipboardEventImpl::ClipboardEventImpl):  ref optional clipboard
          (ClipboardEventImpl::~ClipboardEventImpl):  deref optional clipboard
          (ClipboardEventImpl::isClipboardEvent):  New utility
          * khtml/xml/dom2_eventsimpl.h:
          (DOM::EventImpl::):  Boilerplate for new events
          (DOM::ClipboardEventImpl::clipboard):
          * kwq/KWQClipboard.h:  Monkey business so this file is includable in C++.
          * kwq/KWQClipboard.mm:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::dispatchCPPEvent):  Send one of the new events.
          (KWQKHTMLPart::tryCut):  Declare pasteboard types, send cut events.
          (KWQKHTMLPart::tryCopy):  Declare pasteboard types, send copy events.
          (KWQKHTMLPart::tryPaste):  Send paste events.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge tryDHTMLCut]):  Pass through to part
          (-[WebCoreBridge tryDHTMLCopy]):  Ditto
          (-[WebCoreBridge tryDHTMLPaste]):  Ditto
  
  2004-06-14  Trey Matteson  <trey at apple.com>
  
  	A new CSS pseudo-class ".drag" is added.  Analogous to the "hover" class,
  	this class determines styles used while an element is generating a drag
  	image.
  
          Reviewed by hyatt.
  
          * khtml/css/css_base.cpp:
          (CSSSelector::extractPseudoType):  Boilerplate for adding new class.
          * khtml/css/css_base.h:  Boilerplate for adding new class.
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::checkOneSelector):  Match new class against
  	elements being dragged.
          * khtml/css/cssstyleselector.h:
          (khtml::StyleSelector::):  Boilerplate for adding new class.
          * khtml/rendering/render_object.cpp:
          (RenderObject::RenderObject):  Init new member.
          (RenderObject::isDragging):  Return whether this object is being dragged.
          (RenderObject::updateDragState):  Paint us an all children with a new dragged state.
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_style.h: Boilerplate for adding new class.
          (khtml::RenderStyle::NonInheritedFlags::operator==):
          (khtml::RenderStyle::setBitDefaults):
          (khtml::RenderStyle::affectedByDragRules):
          (khtml::RenderStyle::setAffectedByDragRules):
          * kwq/KWQClipboard.mm:
          (KWQClipboard::dragNSImage):  Method rename.
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::snapshotDragImage):  Mark the element as being dragged before
  	we snapshot it, so new style class will apply.
  
  2004-06-14  Ken Kocienda  <kocienda at apple.com>
  
          Added a few more editing-related layout tests.
  
          * layout-tests/editing/inserting/insert-3654864-fix-expected.txt: Added.
          * layout-tests/editing/inserting/insert-3654864-fix.html: Added.
          * layout-tests/editing/inserting/insert-3659587-fix-expected.txt: Added.
          * layout-tests/editing/inserting/insert-3659587-fix.html: Added.
          * layout-tests/editing/inserting/insert-after-delete-001-expected.txt: Added.
          * layout-tests/editing/inserting/insert-after-delete-001.html: Added.
          * layout-tests/editing/inserting/insert-br-case1-expected.txt: Added.
          * layout-tests/editing/inserting/insert-br-case1.html: Added.
          * layout-tests/editing/inserting/insert-br-case2-expected.txt: Added.
          * layout-tests/editing/inserting/insert-br-case2.html: Added.
          * layout-tests/editing/inserting/insert-br-case3-expected.txt: Added.
          * layout-tests/editing/inserting/insert-br-case3.html: Added.
  
  2004-06-14  Ken Kocienda  <kocienda at apple.com>
  
          Regarding the bug below, removing some tests since we have removed the execCommand("paste") 
          feature, at least for now.
  
          <rdar://problem/3684792>: (JavaScript execCommand("paste") presents security issues)
  
          * layout-tests/editing/pasteboard/copy-paste-text-001-expected.txt: Removed.
          * layout-tests/editing/pasteboard/copy-paste-text-001.html: Removed.
          * layout-tests/editing/pasteboard/cut-paste-text-002-expected.txt: Removed.
          * layout-tests/editing/pasteboard/cut-paste-text-002.html: Removed.
  
  2004-06-14  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/3672377> assertion failure in AppendNodeCommandImpl::doApply due to non-0 exception code trying to insert a DIV markup string
          
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::checkAddChild): This function was being too strict in disallowing certain nodes
          to be added as other child nodes, applying rules we typically use for parsing. However,
          those parsing rules are primarily for dealing with "bad" HTML, and should not be
          applied to programmatic DOM operations. The fix involves removing calls to childAllowed().
  
  2004-06-12  Trey Matteson  <trey at apple.com>
  
  	The drag image may be updated during a DHTML drag.  This includes updating
  	from a Timer instead of a drag event handler.  In addition, an arbitrary
  	element can be set as the one to snapshot for the drag image.
  
          Reviewed by John
  
          * khtml/ecma/kjs_events.cpp:
          (ClipboardProtoFunc::tryCall):  setDragImage accepts a node.  Previously,
  	it had to be an Image object.
          * khtml/rendering/render_object.cpp:
          (RenderObject::paintingRootRect):  Also returns top element's rect.
          * khtml/rendering/render_object.h:
          * khtml/xml/dom2_eventsimpl.h:
          * kwq/KWQClipboard.h:  New security mode where image is still writable, but
  	pasteboard is not.
          (KWQClipboard::):
          (KWQClipboard::setDragHasStarted):
          * kwq/KWQClipboard.mm:
          (KWQClipboard::KWQClipboard):    Part may be passed.  Needed in the source
  	case to generate an image from an element.
          (KWQClipboard::setAccessPolicy):  New, replaces former becomeNumb method
  	which wasn't flexible enough.
          (KWQClipboard::accessPolicy):  New getter.
          (KWQClipboard::dragImage):  No change, diff confusion.
          (KWQClipboard::setDragImage):  Call new helper, below.
          (KWQClipboard::dragImageElement):  New, return any element set.
          (KWQClipboard::setDragImageElement):  New, call new helper.
          (KWQClipboard::setDragImage):  New helper, set the image via either a
  	pixmap or an element to snapshot, pushes the result to WebKit if we've
  	already started the drag.
          (KWQClipboard::dragNSImage):  Generate an NSImage and mouse offset, no
  	matter how the drag image was set (Image or element).
          * kwq/KWQKHTMLPart.h:  A single clipboard is kept over the life of a
  	source drag instead of making one for each event.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::KWQKHTMLPart):  Init clipboard.
          (KWQKHTMLPart::~KWQKHTMLPart):  Free clipboard.
          (KWQKHTMLPart::freeClipboard):  New helper.
          (KWQKHTMLPart::dispatchDragSrcEvent):  Most code moved to caller.
          (KWQKHTMLPart::khtmlMouseMoveEvent):  Make clipboard for this drag session.
  	Init clipboard to make an image from the dragSource element.  Mark the
  	drag as having started.
          (KWQKHTMLPart::dragSourceMovedTo):  Clipboard will update WK with any new
  	drag image, so we don't need to.
          (KWQKHTMLPart::dragSourceEndedAt):  Ditto.
          (KWQKHTMLPart::elementImage):  Also return element rect.
          * kwq/WebCoreBridge.h:  Glue moved to WebCoreGraphicsBridge.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge dragOperationForDraggingInfo:]):  Use new method.
          (-[WebCoreBridge dragExitedWithDraggingInfo:]):  Ditto
          (-[WebCoreBridge concludeDragForDraggingInfo:]):  Ditto
          * kwq/WebCoreGraphicsBridge.h:
          * kwq/WebCoreGraphicsBridge.m:
          (-[WebCoreGraphicsBridge setDraggingImage:at:]):  Glue moved from WebBridge
  
  2004-06-11  Chris Blumenberg  <cblu at apple.com>
  
  	Support for WebKit drag & drop API.
  
          Reviewed by trey.
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge _positionForPoint:]): new
          (-[WebCoreBridge moveDragCaretToPoint:]): call _positionForPoint
          (-[WebCoreBridge editableDOMRangeForPoint:]): new
  
  2004-06-11  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed <rdar://problem/3645846>: (REGRESSION: Stuck "Loading" when logging into Google's Gmail on newer versions of Safari)
  
          * khtml/html/html_baseimpl.cpp: (HTMLFrameElementImpl::parseHTMLAttribute):
          Call through to base class for ATTR_ID so the "has ID" bit gets set.
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageElementImpl::parseHTMLAttribute): Move ATTR_COMPOSITE code up and out of the way so
          it doesn't screw up ATTR_ID parsing.
          (HTMLMapElementImpl::parseHTMLAttribute): Call through to base class for ATTR_ID
          so the "has ID" bit gets set.
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::parseHTMLAttribute): Remove ATTR_ID case; not needed.
          (HTMLParamElementImpl::parseHTMLAttribute): Call through to base class for ATTR_ID
          so the "has ID" bit gets set.
  
  2004-06-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3659587>: "when typing in Blot, bold style does not carry over to next line after pressing 'return'"
  
          Did some work to improve the insert newline command. The refinement is to insert the newline
          at the upstream position of the caret, ensuring that the newline takes on the 
          appropriate style, and does not let the caret "escape" from an element that is
          conferring style.
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::InputNewlineCommandImpl::insertNodeAfterPosition): New helper. Adds smarts about adding
          newlines when the selection is a caret in a block.
          (khtml::InputNewlineCommandImpl::insertNodeBeforePosition): Ditto.
          (khtml::InputNewlineCommandImpl::doApply): Simplified cases. One case in the code could not
          happen.
          * khtml/editing/htmlediting_impl.h:
  
          Fix for this bug:
      
          <rdar://problem/3654864>: "Pasting content at start of line places it at end of previous line"
  
          (khtml::InputTextCommandImpl::prepareForTextInsertion): Simple code mistake. Content was indeed
          being added to the line before. Fixed to add new content after the line break.
  
  2004-07-10  Trey Matteson  <trey at apple.com>
  
  	Prep work for latest delegate API for dragging.  In addition, I also straightened out all
  	the cases of DHTML setting a drag image or setting pasteboard data, and how that would
  	override WebKit's default behavior (which follows how WinIE does things).
  
          Reviewed by Chris.
  
          * khtml/rendering/render_object.cpp:
          (RenderObject::draggableNode):  Obey new params for whether a DHTML or UserAgent (i.e.,
  	WebKit) drag source is allowed.
          * khtml/rendering/render_object.h:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::dispatchDragSrcEvent):  Setting pasteboard data was moved out of here, now
  	caller's responsibility.
          (KWQKHTMLPart::khtmlMouseMoveEvent):  Ask bridge for allowable drag actions (DHTML vs UA).
  	Only send drag events if DHTML is allowed.  Only generate a drag image if the source is
  	a DHTML element.  Note whether event handler set any pasteboard	data, and pass that fact
  	to WebKit.
          (KWQKHTMLPart::dragSourceMovedTo): Only send drag events if DHTML is allowed.  
          (KWQKHTMLPart::dragSourceEndedAt): Only send drag events if DHTML is allowed.  
          * kwq/WebCoreBridge.h:
  
  2004-06-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Trey
  
          Lay some groundwork for better testing of inserting newlines. Layout
          tests that use this new code will be coming soon.
  
          * khtml/editing/jsediting.cpp: Add commands for bold and inserting newlines.
          * layout-tests/editing/editing.js: Added new insertNewline command.
          which calls through to TypingCommand::insertNewline. There was no way to get
          to this command from JS before this addition.
  
  2004-06-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Javascript execCommand system wants to use case-insensitive QDict.
          The interface for QDict offers this feature, but it was never implemented.
          Now it is.
  
          * kwq/KWQDictImpl.h: Declare bool to store case-sensitive bit.
          * kwq/KWQDictImpl.mm:
          (KWQDictImpl::KWQDictImpl): No longer drops caseSensitive on the floor; stores
          it in instance variable.
          (KWQDictImpl::insert): Make lowercase version of key for operation, if necessary.
          (KWQDictImpl::remove): Ditto.
          (KWQDictImpl::find): Ditto.
          (KWQDictIteratorImpl::currentStringKey): Whitespace cleanup.
  
  === Safari-144 ===
  
  2004-06-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for this bug:
          
          <rdar://problem/3654850>: "Style changes do not work across blocks"
          
          Now, applying styles works across blocks. I did quite a bit
          of internal redsign on the member functions of this class to
          make this work. As a bonus, from an architectural standpoint,
          all style changes are now done "in place". There is no more
          copying of content in order to perform style changes.
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::ApplyStyleCommandImpl::doApply):
          (khtml::ApplyStyleCommandImpl::removeHTMLStyleNode):
          (khtml::ApplyStyleCommandImpl::removeCSSStyle):
          (khtml::ApplyStyleCommandImpl::removeStyle):
          (khtml::ApplyStyleCommandImpl::nodeFullySelected):
          (khtml::ApplyStyleCommandImpl::splitTextAtStartIfNeeded):
          (khtml::ApplyStyleCommandImpl::splitTextAtEndIfNeeded):
          (khtml::ApplyStyleCommandImpl::surroundNodeRangeWithElement):
          (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded):
          (khtml::ApplyStyleCommandImpl::positionInsertionPoint):
          * khtml/editing/htmlediting_impl.h:
  
  2004-06-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - filled out execCommand a lot more
          - fixed <rdar://problem/3685231>: (execCommand italic is not implemented)
          - fixed <rdar://problem/3685232>: (execCommand bold is not implemented)
          - fixed <rdar://problem/3675899>: (Make queryCommandIndeterm work as specified in the Javascript execCommand Compatibility Plan)
          - fixed <rdar://problem/3675901>: (Make queryCommandState work as specified in the Javascript execCommand Compatibility Plan)
          - fixed <rdar://problem/3675904>: (Make queryCommandValue work as specified in the Javascript execCommand Compatibility Plan)
  
          * khtml/editing/jsediting.cpp:
          (DOM::JSEditor::queryCommandIndeterm): Changed to use KHTMLPart::TriState instead of CommandState.
          (DOM::JSEditor::queryCommandState): Ditto.
          (execStyleChange): Changed to use KHTMLPart::applyStyle.
          (stateStyle): Used KHTMLPart::selectionHasStyle for this.
          (selectionStartHasStyle): Use KHTMLPart::selectionStartHasStyle for this.
          (valueStyle): Used KHTMLPart::selectionStartStylePropertyValue for this.
          (execBold): Implemented toggling, using selectionStartHasStyle.
          (execItalic): Implemented toggling, using selectionStartHasStyle.
          (execPrint): Implemented.
          (enabledRedo): Implemented, using canRedo.
          (enabledUndo): Implemented, using canUndo.
          (stateNone): Renamed from stateNo.
          (valueBackColor): Implemented, using valueStyle.
          (valueFontName): Implemented, using valueStyle.
          (valueFontSize): Implemented, using valueStyle.
          (valueForeColor): Implemented, using valueStyle.
          (valueFontSize): Implemented, using valueStyle.
  
          * khtml/khtml_part.h: Added editing operations.
          * khtml/khtml_part.cpp:
          (KHTMLPart::copyToPasteboard): Added.
          (KHTMLPart::cutToPasteboard): Added.
          (KHTMLPart::redo): Added.
          (KHTMLPart::undo): Added.
          (KHTMLPart::applyStyle): Added.
          (updateState): Added.
          (KHTMLPart::selectionHasStyle): Added.
          (KHTMLPart::selectionStartHasStyle): Added.
          (KHTMLPart::selectionStartStylePropertyValue): Added.
          (KHTMLPart::selectionComputedStyle): Added.
          (KHTMLPart::print): Added.
  
          * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Call print() on plain old part, not KWQ(part).
  
          * kwq/KWQKHTMLPart.h: Removed print(), added _haveUndoRedoOperations.
          * kwq/KWQKHTMLPart.mm:
          (KHTMLPart::print): Moved from KWQKHTMLPart to KHTMLPart.
          (KWQKHTMLPart::registerCommandForUndo): Moved code here from bridge.
          (KWQKHTMLPart::registerCommandForRedo): Moved code here from bridge.
          (KWQKHTMLPart::clearUndoRedoOperations): Moved code here from bridge.
          (KWQKHTMLPart::issueUndoCommand): Moved code here from bridge.
          (KWQKHTMLPart::issueRedoCommand): Moved code here from bridge.
          (KWQKHTMLPart::issuePasteCommand): Moved code here from bridge.
          (KHTMLPart::canUndo): Added.
          (KHTMLPart::canRedo): Added.
  
          * kwq/WebCoreBridge.h: Added undoManager, removed undo-related methods.
          * kwq/WebCoreBridge.mm: (-[WebCoreBridge applyStyle:]): Changed to call
          KHTMLPart::applyStyle.
  
          * WebCore.pbproj/.cvsignore: Updated for new Xcode files.
  
  2004-06-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	<rdar://problem/3671555>: Blot scrolls to the top every time you type
  	
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::getRepaintRect): If the caret position is invalid, recompute it.
  
  2004-06-09  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3607091, implement a style that prevents zoom and min font size from taking effect.
  	The name of the new style is "-apple-text-size-adjust" with values of "none" and "auto."  The default
  	is "auto."
  	
          Reviewed by mjs
  
          * 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::styleForElement):
          (khtml::CSSStyleSelector::pseudoStyleForElement):
          (khtml::CSSStyleSelector::applyDeclarations):
          (khtml::CSSStyleSelector::applyProperty):
          (khtml::CSSStyleSelector::checkForTextSizeAdjust):
          * khtml/css/cssstyleselector.h:
          * khtml/rendering/render_style.cpp:
          (textSizeAdjust):
          (StyleCSS3InheritedData):
          (StyleCSS3InheritedData::operator==):
          (RenderStyle::diff):
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::lineClamp):
          (khtml::RenderStyle::textSizeAdjust):
          (khtml::RenderStyle::setTextSizeAdjust):
          (khtml::RenderStyle::initialTextSizeAdjust):
  
  2004-06-09  David Hyatt  <hyatt at apple.com>
  
  	Implement parsing and setting of the text-overflow CSS3 property.
  	
          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::applyProperty):
          * khtml/css/cssvalues.c:
          (hash_val):
          (findValue):
          * khtml/css/cssvalues.h:
          * khtml/css/cssvalues.in:
          * khtml/rendering/render_style.cpp:
          (textOverflow):
          (StyleCSS3NonInheritedData::operator==):
          (RenderStyle::diff):
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::textOverflow):
          (khtml::RenderStyle::setTextOverflow):
          (khtml::RenderStyle::initialTextOverflow):
  
  2004-06-09  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3678031, implement better flexing for Emerson headers.  This involved adding support for max-width: intrinsic,
  	fixing the box layout algorithm to properly deal with max-widths, and implementing support for baseline alignment
  	so that boxes can be aligned vertically along their interior baselines.
  	
          Reviewed by kocienda
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          (CSSParser::parseShadow):
          * khtml/css/cssparser.h:
          * 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:
          (hash_val):
          (findValue):
          * khtml/css/cssvalues.h:
          * khtml/css/cssvalues.in:
          * khtml/misc/khtmllayout.h:
          (khtml::):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::baselinePosition):
          (khtml::RenderBlock::getBaselineOfFirstLineBox):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_box.cpp:
          (RenderBox::RenderBox):
          (RenderBox::overrideWidth):
          (RenderBox::overrideHeight):
          (RenderBox::calcWidth):
          (RenderBox::calcHeight):
          * khtml/rendering/render_box.h:
          (khtml::RenderBox::overrideSize):
          (khtml::RenderBox::setOverrideSize):
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::calcMinMaxWidth):
          (khtml::RenderFlexibleBox::layoutBlock):
          (khtml::RenderFlexibleBox::layoutHorizontalBox):
          (khtml::RenderFlexibleBox::layoutVerticalBox):
          (khtml::RenderFlexibleBox::placeChild):
          (khtml::RenderFlexibleBox::allowedChildFlex):
          * khtml/rendering/render_flexbox.h:
          * khtml/rendering/render_image.cpp:
          (RenderImage::isWidthSpecified):
          (RenderImage::isHeightSpecified):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::getBaselineOfFirstLineBox):
          (khtml::RenderObject::overrideSize):
          (khtml::RenderObject::overrideWidth):
          (khtml::RenderObject::overrideHeight):
          (khtml::RenderObject::setOverrideSize):
          * khtml/rendering/render_style.cpp:
          (StyleFlexibleBoxData::StyleFlexibleBoxData):
          (StyleFlexibleBoxData::operator==):
          (ShadowData::operator==):
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::boxPack):
          (khtml::RenderStyle::setBoxPack):
          * khtml/rendering/table_layout.cpp:
          (AutoTableLayout::layout):
  
  2004-06-09  Richard Williamson   <rjw at apple.com>
  
  	Added support for drawing un-rasterized transformed PDFs.
  
          Reviewed by John.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
  
  2004-06-09  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - implemented still more execCommand commands
  
          * khtml/editing/jsediting.cpp: Added a lot more commands, and reformatted a bit.
  
  2004-06-08  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - implemented a bunch more execCommand commands
          - fixed <rdar://problem/3684792>: (JavaScript execCommand("paste") presents security issues)
          - fixed <rdar://problem/3675898>: (Make queryCommandEnabled work as specified in the Javascript execCommand Compatibility Plan)
          - fixed <rdar://problem/3675903>: (Make queryCommandSupported work as specified in the Javascript execCommand Compatibility Plan)
          - about half of <rdar://problem/3685231>: (execCommand italic is not implemented)
          - about half of <rdar://problem/3685232>: (execCommand bold is not implemented)
  
          * khtml/editing/jsediting.h: Made constructor inline. Deleted a few unneeded member functions
          that are now just private functions inside jsediting.cpp.
  
          * khtml/editing/jsediting.cpp:
          (commandImp): Changed this around, so the dictionary is a static local to this function,
          and initialized with C++ "first time initialization" rule.
          (DOM::JSEditor::execCommand): Got rid of special case for 0 for function pointer and added const.
          (DOM::JSEditor::queryCommandEnabled): Ditto.
          (DOM::JSEditor::queryCommandIndeterm): Got rid of special case for 0 for function pointer, added const,
          and use a common three-state state function rather than a separate "indeterm" function.
          (DOM::JSEditor::queryCommandState): Ditto.
          (DOM::JSEditor::queryCommandValue): More of the same.
          (execNotImplemented): Added. Used for unimplemented commands; there are only a few left.
          (execCopy): Renamed.
          (execCut): Renamed.
          (execDelete): Renamed.
          (execInsertText): Renamed.
          (execPaste): Renamed, and disabled.
          (execRedo): Renamed.
          (execSelectAll): Renamed.
          (execUndo): Renamed.
          (execStyleChange): Added. Helper function for commands that are style changes.
          (execBold): Added.
          (execItalic): Added.
          (execJustifyCenter): Added.
          (execJustifyFull): Added.
          (execJustifyLeft): Added.
          (execJustifyRight): Added.
          (execSubscript): Added.
          (execSuperscript): Added.
          (execUnselect): Added.
          (stateNotImplemented): Added. Used for unimplemented state queries; there are a few left.
          (noState): Added.
          (valueNotImplemented): Added. Used for unimplemented value queries; there are a few left.
          (nullStringValue): Added.
          (createCommandDictionary): Changed the initDict function into this function. Added implementations
          for many commands and condensed format so it's easier to work with.
  
  2004-06-08  Darin Adler  <darin at apple.com>
  
          Reviewed by Vicki.
  
          - our part of fix to <rdar://problem/3629334>: (REGRESSION (Tiger): titles on pop-ups menus are truncated and show ellipses)
  
          * kwq/KWQComboBox.mm: (QComboBox::QComboBox): Call setLineBreakMode:NSLineBreakByClipping.
          In the current version of Tiger I am using, this is not implemented yet.
  
          - a couple of other unrelated changes
  
          * khtml/rendering/render_form.cpp: (RenderTextArea::calcMinMaxWidth): Put a little more code
          inside the APPLE_CHANGES ifdef.
          * kwq/KWQTextEdit.h: Remove unused setTabStopWidth function, and make empty setTextFormat
          function an inline for slightly smaller code size.
          * kwq/KWQTextEdit.mm: Ditto.
          * kwq/KWQTextField.mm: Update copyright date.
  
  2004-06-08  Trey Matteson  <trey at apple.com>
  
  	A DHTML drag source can now change the dragging image during the drag.  Currently
  	it may only be set to a static image.
  
          Reviewed by John
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::dragSourceMovedTo):  If the ondrag event handler set an image,
  	pass it to WebKit.
          * kwq/WebCoreBridge.h:
  
  2004-06-08  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Changes to the selection state for these tests as a result of my previous
          checkin. The changes are minor to a couple of offsets. I looked at the
          changes and approve them.
  
          * layout-tests/editing/deleting/delete-block-contents-001-expected.txt
          * layout-tests/editing/deleting/delete-block-contents-002-expected.txt
          * layout-tests/editing/deleting/delete-block-contents-003-expected.txt
  
  2004-06-08  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
  
          <rdar://problem/3654841>: "Hitting delete key with start of block selected 
          does not merge content with preceding block"
  
          Selections that span blocks now work correctly for deleting the selection and inserting
          over the selection. The largest part of the change is adding a new field to the 
          RemoveNodeAndPruneCommand and its impl version. This was done since the starting block
          for a multi-block selection should always be preserved when deleting, and this was
          a convenient way to express this using the code structure already in place.
          
          * khtml/editing/htmlediting.cpp:
          (khtml::RemoveNodeAndPruneCommand::RemoveNodeAndPruneCommand): Modify this command to 
          take two nodes: the node to remove and a node to stop at when pruning back up the tree.
          (khtml::RemoveNodeAndPruneCommand::pruneNode): New accessor, replaces old node() accessor.
          (khtml::RemoveNodeAndPruneCommand::stopNode): New accessor for additional feature described 
          above.
          * khtml/editing/htmlediting.h:
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::shouldPruneNode): blow flow renderers can now be deleted, but not if they are a 
          rootEditableElement.
          (khtml::CompositeEditCommandImpl::removeNodeAndPrune): Pass new stopNode param and change the
          name of the existing node argument to pruneNode to distinguish it.
          (khtml::DeleteSelectionCommandImpl::doApply): Pass the block containing the start of the
          selection to removeNodeAndPrune in each case. Also, add one little loop to move all
          the content from the block containing the end of the selection if that block is different
          than the start block.
          (khtml::RemoveNodeAndPruneCommandImpl::RemoveNodeAndPruneCommandImpl): Implement the
          pruneNode/stopNode design already described.
          (khtml::RemoveNodeAndPruneCommandImpl::~RemoveNodeAndPruneCommandImpl): Manage the
          lifecycle of stopNode.
          (khtml::RemoveNodeAndPruneCommandImpl::doApply): Add a check to stop at the stop
          node while pruning.
          * khtml/editing/htmlediting_impl.h:
          (khtml::RemoveNodeAndPruneCommandImpl::pruneNode): New accessor.
          (khtml::RemoveNodeAndPruneCommandImpl::stopNode): Ditto.
  
  2004-06-07  Trey Matteson  <trey at apple.com>
  
  	Clipboard access during DHTML dragging is made secure.
  
          Reviewed by John.
  
          * kwq/KWQClipboard.h:
          (KWQClipboard::):
          * kwq/KWQClipboard.mm:
          (KWQClipboard::KWQClipboard):    Init new policy and changeCount members.
          (KWQClipboard::becomeNumb):  Set policy to numb.
          (KWQClipboard::clearData):   Check policy.
          (KWQClipboard::clearAllData):   Check policy.
          (KWQClipboard::getData):   Check policy and changeCount.
          (KWQClipboard::setData):   Check policy.
          (KWQClipboard::types):   Check policy and ChangeCount.
          (KWQClipboard::setDragLocation):   Check policy.
          (KWQClipboard::setDragImage):   Check policy.
          (KWQClipboard::setDropEffect):   Check policy.
          (KWQClipboard::setEffectAllowed):   Check policy.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::dispatchDragSrcEvent):  Set policy when creating clipboard,
  	and numb-ify it when we're done.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge dragOperationForDraggingInfo:]): Set policy when creating clipboard,
  	and numb-ify it when we're done.
          (-[WebCoreBridge dragExitedWithDraggingInfo:]):  Ditto
          (-[WebCoreBridge concludeDragForDraggingInfo:]):  Ditto
  
  2004-06-08  Ken Kocienda  <kocienda at apple.com>
  
          * khtml/editing/jsediting.cpp:
          (DOM::EditorCommand::): Stray capital letter in "selectAll" command static
          initializer prevented the command from ever working since the command
          strings are lower-cased when trying to find a match, but not when they
          are inserted into the dictionary. This is a one character change to make
          the string "selectall" in the initializer.
  
  2004-06-07  Trey Matteson  <trey at apple.com>
  
  	WebCore will now generate a default drag image when an element serves as a drag
  	source.  The basic idea is the image contains the element and all its children.
  
  	As for the implementation, instead of adding a new paintAction I added a new
  	field to the paintInfo struct, "paintingRoot".  If this field is set, painting will
  	only paint that root's descendants.
  
  	Some code also moved from the bridge to the part, to be available within WebCore.
  
          Reviewed by hyatt.
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paintObject):  Pass along paintingRoot to kids.
          (khtml::RenderBlock::paintFloats):  Pass along paintingRoot to kids.
          * khtml/rendering/render_box.cpp:
          (RenderBox::paintBoxDecorations):  Test paintingRoot before painting.
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::paint):    Test paintingRoot before painting.
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::paintLineBoxBackgroundBorder):    Test paintingRoot before painting.
          (RenderFlow::paintLineBoxDecorations):    Test paintingRoot before painting.
          * khtml/rendering/render_image.cpp:
          (RenderImage::paint):    Test paintingRoot before painting.
          * khtml/rendering/render_inline.cpp:
          (RenderInline::paint):    Pass along paintingRoot to kids.
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::paint):   Pass along paintingRoot to kids.
          (RenderLayer:: paintLayer):  Pass along paintingRoot to kids.  Test if we are within the
  	paintingRoot to decide whether to pass the root to our renderer.
          * khtml/rendering/render_layer.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::hasAncestor):  New utility.
          (RenderObject::absoluteBoundingBoxRect): Helper for paintingRootRect
          (RenderObject::addAbsoluteRectForLayer):  Helper for paintingRootRect
          (RenderObject::paintingRootRect):  Return rect that will be painted if we are
  	the painting root.
          (RenderObject::draggableNode):  Add test to avoid rare NULL ptr crash.
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::PaintInfo::PaintInfo):  Add paintingRoot field.
          (khtml::RenderObject::paintingRootForChildren):  New utility.  Return the current
  	paintingRoot, or nil if we are the root (so kids draw normally).
          (khtml::RenderObject::shouldPaintWithinRoot):  New utility.  We can paint if we
  	are the paintingRoot, or no root is set.
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::shouldPaint):  Pass along paintingRoot to kids.
          * khtml/rendering/render_table.cpp:
          (RenderTable::paint):   Pass along paintingRoot to kids.
          * khtml/rendering/render_text.cpp:
          (RenderText::paint):  Test paintingRoot before painting.
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::KWQKHTMLPart):  Init new _elementToDraw member.
          (KWQKHTMLPart::paint):  Generalized to handle cases of painting selection or a
  	given element.
          (KWQKHTMLPart::khtmlMouseMoveEvent):  Make a default image if dragSrc didn't
  	provide one.
          (KWQKHTMLPart::selectionRect):  Moved from bridge.
          (KWQKHTMLPart::visibleSelectionRect):  Ditto.
          (KWQKHTMLPart::imageFromRect):  Newly factored code, from bridge.
          (KWQKHTMLPart::selectionImage):  Moved from bridge, wrapper around imageFromRect.
          (KWQKHTMLPart::elementImage):  New method, wrapper around imageFromRect.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge drawRect:withPainter:]):  Just call part to draw.
          (-[WebCoreBridge visibleSelectionRect]):  Guts moved to part.
          (-[WebCoreBridge selectionImage]):  Ditto.
  
  2004-06-07  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris.
  
          - fixed <rdar://problem/3682821>: (setTimeout fails when additional parameters are used and timeout function is a string)
  
          * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Ignore excess arguments instead
          of rejecting the argument list for window.scrollBy, scroll, scrollTo, moveBy, moveTo,
          resizeBy, resizeTo, and setTimeout (when the timeout is a string rather than an object).
  
          - did a refinement of JSEditor to be slightly more efficient, and not have to edit
            both the .cpp file and the .h when adding more implementation
  
          * khtml/khtml_part.h: Hack so we can get to the docImpl and xmlDocImpl without being a friend.
          * khtml/editing/jsediting.h: Simplified a bit.
          * khtml/editing/jsediting.cpp: Redid to use a table, and simplified a bit.
  
  2004-06-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for this bug:
          
          <rdar://problem/3682354>: "Typing style does not work yet"
          
          Did the final hook-up of support that has landed in the tree in the
          recent past as part of ongoing style-application work.
          
          For the most part, this patch modifies the InputNewlineCommandImpl and
          InputTextCommandImpl commands to insert a styling span when there is
          a typing style active. 
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::CompositeEditCommandImpl::createTypingStyleElement): Helper
          shared by the two commands modified.
          (khtml::InputNewlineCommandImpl::doApply): Create a styling span if the
          part has a typing style. Maintain a nodeToInsert local variable, which is
          either the break to insert or a styling span containing the break. Also,
          remove some utterly bogus derefs. They are just plain wrong.
          (khtml::InputTextCommandImpl::InputTextCommandImpl): Don't need to keep
          m_insertedTextNode. The composite commands this command uses will keep
          track of that object's lifetime. We do not need to do that here.
          (khtml::InputTextCommandImpl::~InputTextCommandImpl): No longer need 
          to deref obsolete m_insertedTextNode.
          (khtml::InputTextCommandImpl::prepareForTextInsertion): Handle the case
          where a styling span needs to be added.
          (khtml::TypingCommandImpl::insertText): Create a new InputTextCommand when
          there is an active typping style.
          * khtml/editing/htmlediting_impl.h: Declare createTypingStyleElement helper.
          Remove m_insertedTextNode from InputTextCommandImpl.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge applyStyle:]): Swicth on the state of the selection, calling
          setTypingStyle when a caret and ApplyStyleCommand when a range.
  
  2004-06-07  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          * khtml/editing/jsediting.h: Elide some unnecessary namespace prefixes.
          * khtml/editing/jsediting.cpp: Make typed constants instead of macros.
          (DOM::JSEditor::commandDict): Elide unnecessary namespace prefix.
          (DOM::JSEditor::execCommand): Remove xxxNotImplemented functions; just return false instead.
          (DOM::JSEditor::queryCommandEnabled): Ditto.
          (DOM::JSEditor::queryCommandIndeterm): Ditto.
          (DOM::JSEditor::queryCommandState): Ditto.
          (DOM::JSEditor::queryCommandSupported): Ditto.
          (DOM::JSEditor::queryCommandValue): Ditto.
  
  2004-06-05  Trey Matteson  <trey at apple.com>
  
  	As agreed with Hyatt and Louch, do not post incoming dragging events
  	to text nodes.
  
          Reviewed by Maciej
  
          * khtml/khtmlview.cpp:
          (KHTMLView::updateDragAndDrop):  For any drag target that is a text node,
  	use its parent instead.
  
  2004-06-03  Trey Matteson  <trey at apple.com>
  
  	DHTML dragging uses the Cocoa NSDragOperation on both the source and dest ends.
  
  	In addition, I caught a prime gaffe where I had used "dropAllowed" instead of "effectAllowed"
  	for that particular WinIE property.  That is renamed throughout.
  
          Reviewed by rjw
  
          * khtml/ecma/kjs_events.cpp:
          (stringOrUndefined):  New little helper.
          (Clipboard::getValueProperty):  Return Undefined if dropEffect or effectAllowed are not set.
          (Clipboard::putValue):  Rename.
          * khtml/ecma/kjs_events.h:
          (KJS::Clipboard::):  Rename.
          * khtml/ecma/kjs_events.lut.h:
          * khtml/xml/dom2_eventsimpl.h:  Rename.
          * kwq/KWQClipboard.h: Rename, add access to Cocoa drag op.
          * kwq/KWQClipboard.mm:
          (KWQClipboard::dropEffect):   These 4 just moved in the file.
          (KWQClipboard::setDropEffect):
          (KWQClipboard::effectAllowed):
          (KWQClipboard::setEffectAllowed):
          (cocoaOpFromIEOp):  Convert from an IE operation string to a Cocoa DragOp
          (IEOpFromCocoaOp):  and vice-versa
          (KWQClipboard::sourceOperation):  Return effectAllowed, converted to a NSDragOp
          (KWQClipboard::destinationOperation):  Return dropEffect, converted to a NSDragOp
          (KWQClipboard::setSourceOperation):  Set effectAllowed, using a Cocoa value
          (KWQClipboard::setDestinationOperation):  Set dropEffect, using a Cocoa value
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::dispatchDragSrcEvent):  Return the drag op specified by the source element.
          (KWQKHTMLPart::khtmlMouseMoveEvent):  Pass our drag op up to WebKit.
          (KWQKHTMLPart::dragSourceMovedTo):  Pass NULL for new arg.
          (KWQKHTMLPart::dragSourceEndedAt):  Ditto
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge dragOperationForDraggingInfo:]):  Set the incoming dragOp onto the clipboard
  	so DHTML can access it.  In addition, validate whatever op DHTML returns so we play well
  	with Cocoa.
  
  2004-06-04  David Hyatt  <hyatt at apple.com>
  
  	Add support for auto values in flex transitions.  Add support for mapping the back end values to
  	front end values.  Next it's time to actually try to use this stuff in render_flexbox.
  	
          Reviewed by darin
  
          * khtml/css/css_valueimpl.cpp:
          (length):
          * khtml/css/css_valueimpl.h:
          (DOM::FlexGroupTransitionValueImpl::isAuto):
          * khtml/css/cssparser.cpp:
          (FlexGroupTransitionParseContext::length):
          (FlexGroupTransitionParseContext::commitAutoValue):
          (FlexGroupTransitionParseContext::commitValue):
          (CSSParser::parseFlexGroupTransition):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/rendering/render_style.cpp:
          (FlexGroupTransitionData::operator==):
          * khtml/rendering/render_style.h:
          (khtml::FlexGroupTransitionData::next):
          (khtml::FlexGroupTransitionData::isAuto):
  
  === Safari-143 ===
  
  2004-06-04  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Dave.
  
          - kwq/KWQKHTMLPart.mm: addMessagetoConsole places sourceURL in the dictionary
          - khtml/xml/dom_docimpl.cpp: right now, we don't have a way to get a url,
            so we leave this blank
          - khtml/ecma/kjs_window.cpp: still need to get the real line number and sourceURL
          - khtml/ecma/kjs_proxy.cpp: now passing the sourceURL to addMessageToConsole
          - khtml/ecma/kjs_events.cpp: still need to grab an accurate line number and sourceURL
          
          * khtml/ecma/kjs_events.cpp:
          (JSEventListener::handleEvent):
          (JSLazyEventListener::handleEvent):
          * khtml/ecma/kjs_proxy.cpp:
          (KJSProxyImpl::evaluate):
          * khtml/ecma/kjs_window.cpp:
          (Window::isSafeScript):
          (ScheduledAction::execute):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::open):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::addMessageToConsole):
  
  2004-06-04  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix a comical little bug where the style-applying code did not take into
          account deleting content from the start of a block. After the deletion, 
          the caret is placed in the node before the deleted content and so 
          inserting a styled fragment after the deletion position works great.
          The problem is that if the selectionis at the start of a block, there
          is no "position before the deletion" and the caret is placed in the new
          first child of the block. Inserting the styled content after this 
          node is just plain wrong. Now, this case is handled correctly, and the
          styled content is inserted in the proper position.
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::ApplyStyleCommandImpl::insertFragment):
  
  2004-06-04  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren): Only add additional line height
          in for root editable elements. This helps to keep layout from deviating too
          much from the intended page layout, but still gives an empty document a line
          in which it can blink the caret.
  
  2004-06-04  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Made some progress on this set of related bugs:
          
          <rdar://problem/3675867>: "Make execCommand work as specified in the Javascript execCommand Compatibility Plan"
          <rdar://problem/3675898>: "Make queryCommandEnabled work as specified in the Javascript execCommand Compatibility Plan"
          <rdar://problem/3675899>: "Make queryCommandIndeterm work as specified in the Javascript execCommand Compatibility Plan"
          <rdar://problem/3675901>: "Make queryCommandState work as specified in the Javascript execCommand Compatibility Plan"
          <rdar://problem/3675903>: "Make queryCommandSupported work as specified in the Javascript execCommand Compatibility Plan"
          <rdar://problem/3675904>: "Make queryCommandValue work as specified in the Javascript execCommand Compatibility Plan"
          
          I did several things to move the ahead with the plan:
          
          1. The latter five methods did not appear in the tree at all. Now they do, although
          
          2. I removed the implementation for these editing methods from dom_docimpl.cpp, and moved
             them out to new js_editing.cpp/js_editing.h files. The remaining code in dom_docimpl.cpp
             is glue to call over to the new JSEditor object defined in the new files.
             
          3. For a couple of the command implementations in js_editing.cpp, I made a stab at returning sensible values.
             For others, I just return place-holder values. I have added some comments to describe what has been done and
             what still needs to be done. 
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/dom/dom_doc.cpp: Add call-overs for these methods.
          (DOM::Document::queryCommandEnabled):
          (DOM::Document::queryCommandIndeterm):
          (DOM::Document::queryCommandState):
          (DOM::Document::queryCommandSupported):
          (DOM::Document::queryCommandValue):
          * khtml/dom/dom_doc.h:
          * khtml/ecma/kjs_dom.cpp: Add queryCommandXXX terminology.
          (DOMDocumentProtoFunc::tryCall):
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMDocument::):
          * khtml/ecma/kjs_dom.lut.h:
          (KJS::):
          * khtml/editing/jsediting.cpp: Added. This file implements the guts of editing-related JS methods.
          (DOM::execCommandNotImplemented):
          (DOM::queryBoolNotImplemented):
          (DOM::queryValueNotImplemented):
          (DOM::JSEditor::commandDict):
          (DOM::JSEditor::JSEditor):
          (DOM::JSEditor::~JSEditor):
          (DOM::JSEditor::commandIdentifier):
          (DOM::JSEditor::addCommand):
          (DOM::JSEditor::initDict):
          (DOM::JSEditor::execCommand):
          (DOM::JSEditor::queryCommandEnabled):
          (DOM::JSEditor::queryCommandIndeterm):
          (DOM::JSEditor::queryCommandState):
          (DOM::JSEditor::queryCommandSupported):
          (DOM::JSEditor::queryCommandValue):
          (DOM::JSEditor::execCommandCopy):
          (DOM::JSEditor::execCommandCut):
          (DOM::JSEditor::execCommandDelete):
          (DOM::JSEditor::execCommandInsertText):
          (DOM::JSEditor::execCommandPaste):
          (DOM::JSEditor::execCommandRedo):
          (DOM::JSEditor::execCommandSelectAll):
          (DOM::JSEditor::execCommandUndo):
          (DOM::JSEditor::enabledIfPartNotNull):
          (DOM::JSEditor::enabledIfSelectionNotEmpty):
          (DOM::JSEditor::enabledIfSelectionIsRange):
          (DOM::JSEditor::commandSupported):
          * khtml/editing/jsediting.h: Added.
          (DOM::JSEditor::CommandIdentifier::CommandIdentifier):
          (DOM::JSEditor::document):
          (DOM::JSEditor::part):
          * khtml/xml/dom_docimpl.cpp: Rework JS editing support into glue that calls over into new JSEditor object.
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::~DocumentImpl):
          (DocumentImpl::jsEditor):
          (DocumentImpl::execCommand):
          (DocumentImpl::queryCommandEnabled):
          (DocumentImpl::queryCommandIndeterm):
          (DocumentImpl::queryCommandState):
          (DocumentImpl::queryCommandSupported):
          (DocumentImpl::queryCommandValue):
          * khtml/xml/dom_docimpl.h:
  
  2004-06-03  Richard Williamson   <rjw at apple.com>
  
  	Added setCompositeOperation method to Context2D.
  	Actually pass composite operation to drawPixmap (instead of 1).
  
          Reviewed by jay lo.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          * khtml/ecma/kjs_html.h:
          (KJS::Context2D::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (QPainter::compositeOperatorFromString):
          (QPainter::drawPixmap):
  
  2004-06-03  David Hyatt  <hyatt at apple.com>
  
  	Add support for box-flex-group-transition (whew!), a new property that is going to enable some incredibly
  	complicated flexing layouts in HTML.
  
  	This is Stage 1 - wire up the CSS property and make it get parsed into front-end data.  Nobody actually looks
  	at this data yet.
  	
          Reviewed by darin
  
          * khtml/css/css_valueimpl.cpp:
          (CSSInheritedValueImpl::cssText):
          (ShadowValueImpl::cssText):
          (length):
          (FlexGroupTransitionValueImpl::~FlexGroupTransitionValueImpl):
          (FlexGroupTransitionValueImpl::cssText):
          * khtml/css/css_valueimpl.h:
          (DOM::FlexGroupTransitionValueImpl::cssValueType):
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          (CSSParser::parseShadow):
          (FlexGroupTransitionParseContext::length):
          (FlexGroupTransitionParseContext::~FlexGroupTransitionParseContext):
          (FlexGroupTransitionParseContext::failed):
          (FlexGroupTransitionParseContext::allowGroup):
          (FlexGroupTransitionParseContext::commitGroup):
          (FlexGroupTransitionParseContext::commitSlash):
          (FlexGroupTransitionParseContext::commitLength):
          (FlexGroupTransitionParseContext::commitValue):
          (CSSParser::parseFlexGroupTransition):
          * khtml/css/cssparser.h:
          * khtml/css/cssproperties.c:
          (hash_prop):
          (findProp):
          * khtml/css/cssproperties.h:
          * khtml/css/cssproperties.in:
          * khtml/rendering/render_style.cpp:
          (StyleFlexibleBoxData::StyleFlexibleBoxData):
          (StyleFlexibleBoxData::operator==):
          (StyleFlexibleBoxData::transitionDataEquivalent):
          (StyleCSS3InheritedData::operator==):
          (StyleCSS3InheritedData::shadowDataEquivalent):
          (ShadowData::operator==):
          (RenderStyle::setBoxFlexGroupTransition):
          (length):
          (FlexGroupTransitionData::operator==):
          * khtml/rendering/render_style.h:
          (khtml::FlexGroupTransitionData::next):
          (khtml::FlexGroupTransitionData::~FlexGroupTransitionData):
          (khtml::FlexGroupTransitionData::operator!=):
          (khtml::StyleFlexibleBoxData::~StyleFlexibleBoxData):
          (khtml::RenderStyle::boxFlexGroupTransition):
  
  2004-06-03  Richard Williamson   <rjw at apple.com>
  
  	Add extra sanity check to Image parameter of drawImage...
  
          Reviewed by Hyatt.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
  
  2004-06-02  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3673931, negative margins on objects that dodge floats not handled correctly.
  	
          Reviewed by darin
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlockChildren):
  
  2004-06-03  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Fix for layout regression I caused when fixing:
  
          <rdar://problem/3668619>: "REGRESSION: text placed on pasteboard by WebKit is offset by one character"
  
          Extra height is added to empty blocks that are editable, so we can click to place
          the caret in them. This extra height was erroneously being added to non-editable
          blocks as a result of my earlier change. After looking at this and doing some
          code review, there are the following changes:
          
          Change away from "containingBlock" terminology in the NodeImpl class. The
          operation we are doing in NodeImpl is not the same as what is done in CSS
          when it uses the term "containingBlock" so:
              containingBlock changes to enclosingBlockFlowElement, and
              rootEditableBlock changes to rootEditableElement
          
          The vast majority of changes here are to make these name changes. The other
          significant piece of work, and the fix for the regression, is to change 
          bidi.cpp to only include this extra line height if a block is empty
          and is content-editable.    
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::leadingWhitespacePosition):
          (khtml::trailingWhitespacePosition):
          (khtml::DeleteSelectionCommandImpl::doApply):
          (khtml::InputNewlineCommandImpl::doApply):
          (khtml::RemoveNodeAndPruneCommandImpl::doApply):
          (khtml::TypingCommandImpl::issueCommandForDeleteKey):
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::relinquishesEditingFocus):
          (DocumentImpl::acceptsEditingFocus):
          * khtml/xml/dom_nodeimpl.cpp:
          * khtml/xml/dom_nodeimpl.h:
          * khtml/xml/dom_position.cpp:
          (DOM::Position::equivalentLeafPosition):
          (DOM::Position::previousCharacterPosition):
          (DOM::Position::nextCharacterPosition):
          (DOM::Position::previousLinePosition):
          (DOM::Position::nextLinePosition):
          (DOM::Position::equivalentUpstreamPosition):
          (DOM::Position::equivalentDownstreamPosition):
          (DOM::Position::atStartOfRootEditableElement):
          (DOM::Position::inRenderedContent):
          (DOM::Position::rendersOnSameLine):
          (DOM::Position::rendersInDifferentPosition):
          (DOM::Position::isLastRenderedPositionInEditableBlock):
          (DOM::Position::inFirstEditableInRootEditableElement):
          (DOM::Position::inLastEditableInRootEditableElement):
          (DOM::Position::inFirstEditableInContainingEditableBlock):
          (DOM::Position::inLastEditableInContainingEditableBlock):
          * khtml/xml/dom_position.h:
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::moveToRenderedContent):
  
  2004-06-02  Trey Matteson  <trey at apple.com>
  
  	Added types property to JS clipboard object.
  
          Reviewed by Richard.
  
          * khtml/ecma/kjs_events.cpp:
          (Clipboard::getValueProperty):  Create JS array for strings coming from the clipboard impl.
          * khtml/ecma/kjs_events.h:
          (KJS::Clipboard::):
          * khtml/ecma/kjs_events.lut.h:
          * kwq/KWQClipboard.mm:
          (MIMETypeFromCocoaType):  New helper routine to map types.
          (KWQClipboard::types):  Implement based on NSPasteboard's types.
  
  2004-06-02  Richard Williamson   <rjw at apple.com>
  
  	Corrected typo ID_IMG should have been ID_CANVAS when
  	checking for the canvas composite operator.
  
          Reviewed by Ken.
  
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::paint):
  
  2004-06-02  Richard Williamson   <rjw at apple.com>
  
  	Correctly size the <CANVAS> if margins, borders, or
  	padding is added.
  
          Reviewed by Trey.
  
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::createDrawingContext):
  
  2004-06-01  Trey Matteson  <trey at apple.com>
  
  	First cut at the source side of DHTML dragging.  Following IE, new events are added:
  	ondragstart, ondrag, ondragend.  The recently added CSS property -khtml-user-drag can
  	be used to make an element draggable.  event.dataTransfer.setDragImage(ImageObject,x,y)
  	can be used from ondragstart to set a static image for the dragImage.  x,y is the location
  	of the mouse within the image from the upper right corner.  clipboard methods setdata
  	and cleardata are implemented.
  
          Reviewed by hyatt.
  
          * khtml/ecma/kjs_dom.cpp:
          (DOMNode::getValueProperty):  Boilerplate for new events
          (DOMNode::putValue):  Boilerplate for new events
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMNode::):   Boilerplate for new events
          * khtml/ecma/kjs_dom.lut.h:
          * khtml/ecma/kjs_events.cpp:
          (DOMMouseEvent::getValueProperty):  Return undefined for clipboard when its not a drag event.
          (ClipboardProtoFunc::tryCall):  setDragImage glue to clipboard routine.
          * khtml/ecma/kjs_events.h:
          (KJS::Clipboard::):
          * khtml/ecma/kjs_events.lut.h:
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::parseHTMLAttribute):  Boilerplate for new events
          * khtml/khtml_part.cpp:
          (KHTMLPart::shouldDragAutoNode):  Empty impl of new method, where UA determines
  	draggability for events with -khtml-user-drag=auto
          * khtml/khtml_part.h:
          * khtml/misc/htmlattrs.c:
          * khtml/misc/htmlattrs.h:
          * khtml/misc/htmlattrs.in:  Boilerplate for new events
          * khtml/rendering/render_object.cpp:
          (RenderObject::draggableNode):  Find the node or parent node which might be dragged.
          * khtml/rendering/render_object.h:
          * khtml/xml/dom2_eventsimpl.cpp:
          (EventImpl::typeToId):  Boilerplate for new events
          (EventImpl::idToType):  Boilerplate for new events
          * khtml/xml/dom2_eventsimpl.h:
          (DOM::EventImpl::):  Boilerplate for new events
          * kwq/KWQClipboard.h:
          * kwq/KWQClipboard.mm:
          (KWQClipboard::clearData):  Implemented to call NSPasteboard
          (KWQClipboard::clearAllData): ditto
          (KWQClipboard::getData):  fix corner case that came up testing
          (KWQClipboard::setData):  Implemented to call NSPasteboard
          (KWQClipboard::dragLocation):  Simple setter/getters
          (KWQClipboard::setDragLocation):
          (KWQClipboard::dragImage):
          (KWQClipboard::setDragImage):
          (KWQClipboard::dragNSImage):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::KWQKHTMLPart): init new member var
          (KWQKHTMLPart::dragHysteresisExceeded):  Hysteresis moved here from WebKit
          (KWQKHTMLPart::dispatchDragSrcEvent):  Send a dragging event to the current dragSource
          (KWQKHTMLPart::khtmlMouseMoveEvent):  Initiate dragging, now including consulting DHTML,
  	hysteresis and sending ondragstart.
          (KWQKHTMLPart::dragSourceMovedTo):  simple passthrough
          (KWQKHTMLPart::dragSourceEndedAt):  simple passthrough
          (KWQKHTMLPart::mouseDown):  salt away _mouseDownX, _mouseDownY
          (KWQKHTMLPart::shouldDragAutoNode):  Called for -khtml-user-drag=auto.  We just call
  	out to WebKit.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge dragSourceMovedTo:]):  New glue to drive new dragging events.
          (-[WebCoreBridge dragSourceEndedAt:operation:]):
  
  2004-06-02  Ken Kocienda  <kocienda at apple.com>
  
          Finish off name change from previous check-in by changing dom_edititerator
          file names to dom_positioniterator. Files copied and renamed in repository.
          Includes updated as needed.
  
          * ForwardingHeaders/xml/dom_edititerator.h: Removed.
          * ForwardingHeaders/xml/dom_positioniterator.h: Added.
          * WebCore.pbproj/project.pbxproj:
          * khtml/editing/htmlediting_impl.cpp:
          * khtml/xml/dom_edititerator.cpp: Removed.
          * khtml/xml/dom_edititerator.h: Removed.
          * khtml/xml/dom_position.cpp:
          * khtml/xml/dom_positioniterator.cpp: Added.
          (DOM::PositionIterator::peekPrevious):
          (DOM::PositionIterator::peekNext):
          (DOM::PositionIterator::atStart):
          (DOM::PositionIterator::atEnd):
          * khtml/xml/dom_positioniterator.h: Added.
          (DOM::PositionIterator::PositionIterator):
          (DOM::PositionIterator::current):
          (DOM::PositionIterator::previous):
          (DOM::PositionIterator::next):
          (DOM::PositionIterator::setPosition):
          (DOM::PositionIterator::isEmpty):
          * khtml/xml/dom_selection.cpp:
  
  2004-06-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Probable fix for this bug:
          
          <rdar://problem/3668619>: "REGRESSION: text placed on pasteboard by WebKit is offset by one character"
          
          I could not reproduce the bug myself, which is why I call the fix
          as probable.
          
          Darin and I did some code inspection and found some problems
          with the equivalentUpstreamPosition and
          equivalentDownstreamPosition functions on DOM::Position and how
          these functions dealt with changing from editable to
          non-editable content. As a result of these discoveries, I went
          over this code and the helpers and functions which support them,
          and made some corrections and simplifications. The big changes
          are as follows:
          
          1. Rename EditIterator class to PositionIterator. This class needs
          to run code for selections in non-editable content, so the name
          change is appropriate.
          
          2. Change containingEditableBlock to containingBlock. It turns out
          that none of the editing code relies on the distinction between
          editable blocks and non-editable blocks. The important distinction
          is the block boundary. The notion of rootEditableBlock remains.
           
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteCollapsibleWhitespaceCommandImpl::deleteWhitespace): PositionIterator name change.
          (khtml::DeleteSelectionCommandImpl::joinTextNodesWithSameStyle): Ditto.
          (khtml::DeleteSelectionCommandImpl::containsOnlyWhitespace): Ditto.
          (khtml::DeleteSelectionCommandImpl::doApply): Ditto.
          (khtml::InputNewlineCommandImpl::doApply): Ditto.
          (khtml::RemoveNodeAndPruneCommandImpl::doApply): Ditto.
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren): Ditto.
          * khtml/xml/dom_edititerator.cpp:
          (DOM::PositionIterator::peekPrevious): Call for previousLeafNode instead of previousEditable.
          Editable check is not appropriate as this class is used for non-editable content.
          (DOM::PositionIterator::peekNext): Call nextLeafNode instead of nextEditable, as above.
          (DOM::PositionIterator::atStart): Call for previousLeafNode instead of previousEditable, as above.
          (DOM::PositionIterator::atEnd): Call nextLeafNode instead of nextEditable, as above.
          * khtml/xml/dom_edititerator.h:
          (DOM::PositionIterator::PositionIterator): PositionIterator name change. Remove unused and unneeded constructors.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::previousEditable): Simplify. Rely on previousLeafNode as a helper.
          (NodeImpl::nextEditable): Ditto, but rely on nextLeafNode.
          (NodeImpl::previousLeafNode): Remove tree-walking code. Rely on traversePreviousNode as a helper.
          (NodeImpl::nextLeafNode): Ditto, but rely on traverseNextNode.
          (NodeImpl::containingBlock): Renamed replacement for containingEditableBlock.
          (NodeImpl::inSameContainingEditableBlock): Call renamed containingBlock.
          * khtml/xml/dom_nodeimpl.h:
          * khtml/xml/dom_position.cpp:
          (DOM::Position::previousCharacterPosition): Various name changes, as described above.
          (DOM::Position::nextCharacterPosition): Ditto.
          (DOM::Position::previousWordPosition): Ditto.
          (DOM::Position::nextWordPosition): Ditto.
          (DOM::Position::previousLinePosition): Ditto.
          (DOM::Position::nextLinePosition): Ditto.
          (DOM::Position::equivalentUpstreamPosition): Remove bogus check for editable node in loop. Perform
          improved block-crossing check at start of loop which works for editable and non-editable content.
          This is the crux of the fix for the bug.
          (DOM::Position::equivalentDownstreamPosition): Ditto.
          (DOM::Position::inRenderedContent): Various name changes, as described above.
          (DOM::Position::rendersOnSameLine): Ditto.
          (DOM::Position::rendersInDifferentPosition): Ditto.
          (DOM::Position::isFirstRenderedPositionOnLine): Ditto.
          (DOM::Position::isLastRenderedPositionOnLine): Ditto.
          (DOM::Position::isLastRenderedPositionInEditableBlock): Ditto.
          (DOM::Position::inFirstEditableInRootEditableBlock): Ditto.
          (DOM::Position::inLastEditableInRootEditableBlock): Ditto.
          (DOM::Position::inFirstEditableInContainingEditableBlock): Ditto.
          (DOM::Position::inLastEditableInContainingEditableBlock): Ditto.
  
  2004-06-01  Richard Williamson   <rjw at apple.com>
  
          Fixed deployment build warning.
  
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::paint):
  
  2004-06-01  Richard Williamson   <rjw at apple.com>
  
          Added support for composite attribute to <CANVAS>
          Added support for drawImage and drawImageFromRect to <CANVAS>, i.e.:
  
              <html>
              <head>
              <script>
              
              var img = new Image(600,600);
              
              function drawImage()
              {
                      var aCanvas = document.getElementById ("canvas1");
                      var context = aCanvas.getContext("context-2d");
                      context.drawImage (img, 0, 0, 600, 600, "copy");
              }
              
              img.onload = drawImage;
              img.src = "http://www.google.com/images/logo.gif";
              
              </script>
              </head>
              <body>
              <canvas id="canvas1" width=600 height=600>
              </body>
              <html>
  
          Reviewed by Trey.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          (Context2D::Context2D):
          * khtml/ecma/kjs_html.h:
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::paint):
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (QPainter::getCompositeOperation):
          (QPainter::setCompositeOperation):
          (QPainter::drawPixmap):
          (QPainter::drawTiledPixmap):
          * kwq/KWQPixmap.h:
          * kwq/KWQPixmap.mm:
          (QPixmap::flushRasterCache):
          * kwq/WebCoreImageRenderer.h:
          * kwq/WebCoreImageRendererFactory.h:
  
  2004-06-01  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Fix for these bugs:
          
          <rdar://problem/3655028>: "Text styles have hard-coded values making bold the only supported text style"
          <rdar://problem/3656969>: "HTML Editing: Font panel doesn't work"
  
          * khtml/css/css_valueimpl.cpp:
          (FontFamilyValueImpl::cssText): Added implementation for this subclass. Returns parsedFontName.  
          * khtml/css/css_valueimpl.h: Declare cssText() on FontFamilyValueImpl.
          (DOM::CSSProperty::value):
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::ApplyStyleCommand): Changed signature to take a CSSStyleDeclarationImpl.
          (khtml::ApplyStyleCommand::style): Added accessor.
          * khtml/editing/htmlediting.h: Changed constructor signature to take a CSSStyleDeclarationImpl.
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::styleSpanClassString): Added helper to return attribute used to tag spans we add to apply styles.
          (khtml::ApplyStyleCommandImpl::ApplyStyleCommandImpl): Ref style passed in.
          (khtml::ApplyStyleCommandImpl::~ApplyStyleCommandImpl): Deref style passed in.
          (khtml::ApplyStyleCommandImpl::doApply): m_removingStyle is obsolete. Removed.
          (khtml::ApplyStyleCommandImpl::isHTMLStyleNode): Now checks all properties in the object's declaration.
          (khtml::ApplyStyleCommandImpl::removeCSSStyle): Again, now is multi-property-savvy. Will now remove an empty span
          if we added it.
          (khtml::ApplyStyleCommandImpl::currentlyHasStyle): Replaced, bold-only code with code that can handle all styles.
          (khtml::ApplyStyleCommandImpl::computeStyleChange): Helper which helps to determine whether we want to apply
          HTML-style markup for bold and italic, and gathers up all style changes that need to be done.
          (khtml::ApplyStyleCommandImpl::positionInsertionPoint): Added comment explaining possible optimization that might be
          done in the future.
          (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Significant reworking; now handles applying multiple styles.
          (khtml::ApplyStyleCommandImpl::cloneSelection): Assert fragment has at least one child. Don't want to work
          on empty fragments.
          (khtml::ApplyStyleCommandImpl::surroundContentsWithElement): New helper.
          (khtml::RemoveCSSPropertyCommandImpl::~RemoveCSSPropertyCommandImpl): Juggle asserts and lifecycle methods to be
          more like other commands.
          (khtml::RemoveCSSPropertyCommandImpl::doApply): Ditto.
          (khtml::RemoveNodeAttributeCommandImpl::~RemoveNodeAttributeCommandImpl): Ditto.
          (khtml::RemoveNodeAttributeCommandImpl::doApply):Ditto.
          * khtml/editing/htmlediting_impl.h:
          (khtml::ApplyStyleCommandImpl::style): Added.
          (khtml::ApplyStyleCommandImpl::StyleChange::StyleChange): Added.
          * kwq/DOM-CSS.mm:
          (-[DOMCSSStyleDeclaration setProperty:::]): Fix problem where passing an empty NSString to a function expecting a boolean
          made all properties important priority.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge applyStyle:]): Remove provisional code and comment. Now pass along style, following the intended design.
  
  2004-06-01  Chris Blumenberg  <cblu at apple.com>
  
          Reviewed by kocienda.
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge dragCaretDOMRange]): new, lets WebKit pass the drag caret DOM range to the editing delegate
  
  2004-05-28  John Louch  <ouch at apple.com>
  
          Reviewed by gramps.
  
          - removed setShadowWithColor and change setShadow to work with optional attributes
            it follows the same rules as setFill/StrokeColor
          - Fixed bug in setFillColor and setStrokeColor for CMYK colors (missing break in case).
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          * khtml/ecma/kjs_html.h:
          (KJS::Context2D::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
  
  2004-05-28  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - various editing-related improvements
  
          * khtml/xml/dom_selection.h: Removed UP and DOWN directions, and added PARAGRAPH granularity.
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::modify): Got rid of the UP and DOWN directions, and made movement
          between lines happen when granularity is LINE. Added a new unimplemented granularity:
          PARAGRAPH.
          (DOM::Selection::validate): Remove some unneeded APPLE_CHANGES. The code need not be ifdef'd.
          (DOM::Selection::debugPosition): Ditto.
  
          * kwq/WebCoreBridge.h: Removed WebSelectUp and WebSelectDown, and added WebSelectByParagraph.
          Added stringForRange: and selectedDOMRangeWithGranularity:, and renamed replaceSelectionWithNewline
          to insertNewline because it has the insertText: semantic, not the replaceSelectionWithText: one.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge stringForRange:]): Added.
          (-[WebCoreBridge selectedDOMRangeWithGranularity:]): Added.
          (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Updated code to understand
          that vertical movement is based on granularity now, not direction.
          (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:]): Moved an ensureCaretVisible
          from the WebKit down here. I think perhaps this should go down even further in WebCore.
          (-[WebCoreBridge insertNewline]): Renamed, and moved ensureCaretVisible here.
          (-[WebCoreBridge insertText:]): Moved ensureCaretVisible here.
          (-[WebCoreBridge deleteKeyPressed]): Moved ensureCaretVisible here.
  
          * khtml/xml/dom_position.cpp: Some ifdef tweaks.
  
          * khtml/misc/helper.cpp: Namespace and formatting tweaks.
          * khtml/misc/helper.h: Removed some unused stuff.
  
          * khtml/dom/dom2_range.h: Make range constructor public so that anyone with
          a RangeImpl can easily make a Range.
  
  2004-05-28  Richard Williamson   <rjw at apple.com>
  
  	setStrokeColor and setFillColor now support
  	old school web color string, oswcs+alpha, gray, gray+alpha,
  	rgba, and cmyka.
  
          Reviewed by jay-lo.
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseColor):
          (CSSParser::parseColorFromValue):
          * khtml/css/cssparser.h: Made parseColor static public class method
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
  
  2004-05-28  David Hyatt  <hyatt at apple.com>
  
  	Implement -khtml-user-select and add support for the property -khtml-user-drag (although someone will still
  	need to wire it up).
  	
          Reviewed by rjw
  
          * 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:
          (hash_val):
          (findValue):
          * khtml/css/cssvalues.h:
          * khtml/css/cssvalues.in:
          * khtml/khtml_part.cpp:
          (KHTMLPart::handleMousePressEventDoubleClick):
          (KHTMLPart::handleMousePressEventTripleClick):
          (KHTMLPart::handleMousePressEventSingleClick):
          (KHTMLPart::handleMouseMoveEventSelection):
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::setSelection):
          * khtml/rendering/render_object.cpp:
          (RenderObject::shouldSelect):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_style.cpp:
          (userSelect):
          (StyleCSS3NonInheritedData::operator==):
          (RenderStyle::diff):
          * khtml/rendering/render_style.h:
          (khtml::):
          (khtml::RenderStyle::userDrag):
          (khtml::RenderStyle::userSelect):
          (khtml::RenderStyle::setUserDrag):
          (khtml::RenderStyle::setUserSelect):
          (khtml::RenderStyle::initialUserDrag):
          (khtml::RenderStyle::initialUserSelect):
  
  2004-05-28  John Louch  <set EMAIL_ADDRESS environment variable>
  	added addArc and clip path routines.
  
          Reviewed by sullivan.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          * khtml/ecma/kjs_html.h:
          (KJS::Context2D::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
  
  2004-05-28  John Louch  <ouch at apple.com>
  
  	Added addArcToPoint and addRect path routines.
  
          Reviewed by sullivan.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          * khtml/ecma/kjs_html.h:
          (KJS::Context2D::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
  
  2004-05-27  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::toRange): Add call to update document layout before returning a Range.
          This is done to ensure recently-done editing changes are reflected in the calculation
          of the Range. This change solves a specific problem with updating the font panel, where
          the wrong Range was used, resulting in an incorrect font. Also, defer converting 
          positions to be range-compliant positions. The nodeIsBeforeNode function is not 
          range-compliant-position-savvy.
  
  2004-05-27  Kevin Decker  <kdecker at apple.com>
  
          Reviewed by Ken.
          
          - added support for the new JavaScript error console
          - error messages are now wired directly to the bridge
          - revised generated error message content
          
          * khtml/ecma/kjs_events.cpp:
          (JSEventListener::handleEvent):
          * khtml/ecma/kjs_proxy.cpp:
          (KJSProxyImpl::evaluate):
          * khtml/ecma/kjs_window.cpp:
          (Window::isSafeScript):
          (ScheduledAction::execute):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::addMessageToConsole):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
  
  2004-05-27  Trey Matteson  <trey at apple.com>
  
  	Two dragging tweaks:  ondragleave events are sent before ondragenter events when
  	going across element boundaries, to match WinIE.
  	For compatibility with WinIE, we honor MIME types of "Text" and "URL".
  
          Reviewed by rjw.
  
          * khtml/khtmlview.cpp:
          (KHTMLView::updateDragAndDrop):
          * kwq/KWQClipboard.mm:
          (cocoaTypeFromMIMEType):
  
  === Safari-142 ===
  
  2004-05-27  Vicki Murley <vicki at apple.com>
  
          Reviewed by Darin.
  
  	- Fix Tiger build failure.  Rename constant "S" to "WHITESPACE",
  	and change all instances of S to WHITESPACE.
  
          * khtml/css/cssparser.cpp:
          (DOM::CSSParser::lex): S to WHITESPACE
          * khtml/css/parser.cpp: regenerated file
          * khtml/css/parser.h: regenerated file
          * khtml/css/parser.y: S to WHITESPACE
          * khtml/css/tokenizer.cpp: regenerated file
          * khtml/css/tokenizer.flex: S to WHITESPACE
  
  2004-05-27  John Louch  <set EMAIL_ADDRESS environment variable>
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          * khtml/ecma/kjs_html.h:
          (KJS::Context2D::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
  
  2004-05-27  Trey Matteson  <trey at apple.com>
  
   	First cut at DHTML dragging, destination side.  Dragging text, files
          and URLs onto elements works.  Type conversion from NSPasteboard to
  	MIME types is hardwired.  No JS access yet to modifier keys, or
  	drag operations mask.
  
  	Per IE's dragging API, we have the new DOM events ondragenter,
  	ondragover, ondragleave and ondrop.
  	We also have an event.dataTransfer object providing access to the
  	NSPasteboard bearing the incoming data.
  
          Reviewed by rjw.
  
          * WebCore.pbproj/project.pbxproj:  add 2 new files.
          * khtml/ecma/kjs_dom.cpp:
          (DOMNode::getValueProperty):  JS access to ondragenter and pals
          (DOMNode::putValue):  Ditto
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMNode::):  New attr enum values.
          * khtml/ecma/kjs_dom.lut.h:
          (KJS::):
          * khtml/ecma/kjs_events.cpp:
          (DOMMouseEvent::mark):  Pass along mark to dataTransfer we hold.
          (DOMMouseEvent::getValueProperty):  Create and return dataTransfer.
          (Clipboard::Clipboard):  New class exposed in JS.
          (Clipboard::~Clipboard):
          (Clipboard::tryGet):  Boilerplate.
          (Clipboard::getValueProperty):  Return the clipboard's props.
          (Clipboard::tryPut):  Boilerplate.
          (Clipboard::putValue):  Set the clipboard's props.
          (ClipboardProtoFunc::tryCall): Implement clipboard's funcs.
          * khtml/ecma/kjs_events.h:
          (KJS::DOMMouseEvent::DOMMouseEvent):  Init clipboard ptr.
          (KJS::DOMMouseEvent::):
          (KJS::Clipboard::toBoolean):
          (KJS::Clipboard::classInfo):
          (KJS::Clipboard::):
          * khtml/ecma/kjs_events.lut.h:
          (KJS::):
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::parseHTMLAttribute):  Enable setting ondragenter
  	and friends as html attributes.
          * khtml/khtmlview.cpp:
          (KHTMLView::dispatchDragEvent):  Send a drag related event to the DOM.
          (KHTMLView::updateDragAndDrop):  Handle a dragenter or dragupdate.
          (KHTMLView::cancelDragAndDrop):  Handle a dragexit.
          (KHTMLView::performDragAndDrop):  Handle an actual drop.
          * khtml/khtmlview.h:
          * khtml/misc/htmlattrs.c:  Generated code.
          * khtml/misc/htmlattrs.h:  Generated code.
          * khtml/misc/htmlattrs.in:  Add ondragenter, etc
          * khtml/xml/dom2_eventsimpl.cpp:
          (EventImpl::typeToId):  Handle new event types for dragging.
          (EventImpl::idToType):  Ditto.
          (MouseEventImpl::MouseEventImpl):  Init new clipboard ptr.
          (MouseEventImpl::~MouseEventImpl):  Deref clipboard.
          (ClipboardImpl::ClipboardImpl):
          (ClipboardImpl::~ClipboardImpl):
          * khtml/xml/dom2_eventsimpl.h:
          (DOM::EventImpl::):  New event enums.
          (DOM::MouseEventImpl::clipboard):
          * kwq/KWQClipboard.h: Added.
          * kwq/KWQClipboard.mm: Added.
          (KWQClipboard::KWQClipboard):
          (KWQClipboard::~KWQClipboard):
          (KWQClipboard::isForDragging): Trivial getter/setters.
          (KWQClipboard::dropEffect):
          (KWQClipboard::setDropEffect):
          (KWQClipboard::dropAllowed):
          (KWQClipboard::setDropAllowed):
          (cocoaTypeFromMIMEType):  Convert MIME pboard type to Cocoa type.
          (KWQClipboard::clearData):  OSX specific clipboard impl. of IE func
          (KWQClipboard::clearAllData):   Ditto
          (KWQClipboard::getData): Ditto
          (KWQClipboard::setData): Ditto
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge dragOperationForDraggingInfo:]):  Passthrough from WebKit to khtmlpart
          (-[WebCoreBridge dragExitedWithDraggingInfo:]):  Ditto
          (-[WebCoreBridge concludeDragForDraggingInfo:]): Ditto
  
  2004-05-27  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Gramps
  
          * kwq/KWQKHTMLPart.h: Declare new fontForCurrentPosition helper.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::fontForCurrentPosition): Determines the "current font" in the way that Cocoa
          does. Either the font of the character before the caret, when the selection is a caret, or
          the font of the first character selected, when the selection is a range.
          * kwq/WebCoreBridge.h: Declare bridge method so this can be called from WebKit.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge fontForCurrentPosition]): Calls through to fontForCurrentPosition on KWQKHTMLPart.
  
  2004-05-27  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Gramps
          
          Adds a typing style member variable to khtml part.
          This patch adds basic life-cycle management and 
          accessors. In addition, one essential piece of
          behavior has been added: Clearing the typing style
          whenever the selection changes.
  
          Follow-on work will make this typing style a fully 
          functional part of applying styles to text while typing.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::notifySelectionChanged): Clear typing style.
          (KHTMLPart::typingStyle): Getter.
          (KHTMLPart::setTypingStyle): Setter.
          (KHTMLPart::clearTypingStyle): Convenience. Sets to 0.
          * khtml/khtml_part.h: Function declarations.
          * khtml/khtmlpart_p.h:
          (KHTMLPartPrivate::KHTMLPartPrivate): Initialize member variable.
          (KHTMLPartPrivate::~KHTMLPartPrivate): Deref if necessary.
  
  2004-05-27  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Gramps
  
          Add helper to get the DOM element for a Position.
          
          * khtml/xml/dom_position.cpp:
          (DOM::Position::element): Returns the Position's node if it is an element, or
          the first ancestor of the node that is an element. Returns 0 if node is not
          an element and has no parent that is an element.
          * khtml/xml/dom_position.h: Added declaration.
  
  2004-05-27  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - moved to new symlink technique for embedding frameworks
  
          * WebCore.pbproj/project.pbxproj: Get rid of embed-frameworks build step
          because we don't need it any more.
  
  2004-05-27  Darin Adler  <darin at apple.com>
  
          - fixed bug where all pages with images would cause a crash
          - fixed Deployment build
  
          * kwq/KWQPainter.mm: (QPainter::drawPixmap): Put #if 0 around placeholder code
          for setting up the graphics context.
  
  2004-05-26  Richard Williamson   <rjw at apple.com>
  
  	Added shadow support (w/ Louch).
  	Added infrastructure for drawing images.
  
  	New context methods:
  
  	setShadow
  	setShadowWithColor
  	clearShadow
  
  	Reviewed by me and Louch.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          * khtml/ecma/kjs_html.h:
          (KJS::Image::image):
          (KJS::Context2D::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (QPainter::drawPixmap):
  
  2004-05-26  Richard Williamson   <rjw at apple.com>
  
  	Fixed build snafu.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::Context2DFunction::tryCall):
          * khtml/ecma/kjs_html.h:
          (KJS::Context2D::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
  
  2004-05-26  Richard Williamson   <rjw at apple.com>
  
  	Part 2 of the new <CANVAS> tag implementation.  This adds the 
  	basic machinery and draw operations for the <CANVAS> tag.  Pretty cool.  
  
          function drawLine() {
  	    var canvas1 = document.getElementById ("canvas1");
  	    var context = canvas1.getContext("context-2d");
  
  	    context.setStrokeColor ("red");
  	    context.setLineWidth (10);
  	    context.beginPath();
  	    context.moveToPoint (0,0);
  	    context.addLineToPoint (400,400);
  	    context.strokePath();
          }
  
          ...
  
          <canvas id="canvas1" width="400" height="400">
  
  Currently supported operations on the 2D context are:
  
  Save, Restore,
  Scale, Rotate, Translate,
  BeginPath, ClosePath,
  SetStrokeColor, SetFillColor, SetLineWidth, SetLineCap, SetLineJoin, SetMiterLimit,
  FillPath, StrokePath,
  MoveToPoint, AddLineToPoint, AddQuadraticCurveToPoint, AddBezierCurveToPoint,
  ClearRect
  
  	More to come.
  
          Reviewed by Dave.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElementFunction::tryCall):
          (KJS::Context2DFunction::tryCall):
          (Context2D::tryGet):
          (Context2D::getValueProperty):
          (Context2D::tryPut):
          (Context2D::putValue):
          (Context2D::Context2D):
          (Context2D::~Context2D):
          * khtml/ecma/kjs_html.h:
          (KJS::Context2D::toBoolean):
          (KJS::Context2D::classInfo):
          (KJS::Context2D::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
          * khtml/html/html_canvasimpl.cpp:
          (HTMLCanvasElementImpl::HTMLCanvasElementImpl):
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::getElement):
          * khtml/rendering/render_canvasimage.cpp:
          (RenderCanvasImage::RenderCanvasImage):
          (RenderCanvasImage::~RenderCanvasImage):
          (RenderCanvasImage::createDrawingContext):
          (RenderCanvasImage::drawingContext):
          (RenderCanvasImage::setNeedsImageUpdate):
          (RenderCanvasImage::updateDrawnImage):
          (RenderCanvasImage::drawnImage):
          (RenderCanvasImage::paint):
          (RenderCanvasImage::layout):
          * khtml/rendering/render_canvasimage.h:
          * khtml/rendering/render_image.cpp:
          (RenderImage::paint):
          * khtml/rendering/render_image.h:
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::shouldPaint):
          (RenderWidget::paint):
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (QPainter::currentContext):
  
  2004-05-26  Darin Adler  <darin at apple.com>
  
          - fixed warning that prevents Deployment build from compiling
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMousePressEvent):
          Moved use of single-click boolean outside the scope of the "block exceptions" macros.
  
  2004-05-25  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed a regression where selections that were created via double or triple were not draggable.
  
          Reviewed by darin.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::khtmlMousePressEvent): if the click count is greater than 1, don't allow drags
          (KWQKHTMLPart::khtmlMouseMoveEvent): allow drags to occur even if the selection was originally created via double or triple click
  
  2004-05-25  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed regression where undoing typing would undo character-by-character.
  
          Reviewed by kocienda.
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge insertText:]): new, this method used to be replaceSelectionWithText, but replaceSelectionWithText now is one operation whereas calls to insertText: are coalesced
  
  2004-05-25  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Change postDidChangeSelectionNotification and postDidChangeNotification tp
          respondToChangedSelection and respondToChangedContents, respectively, to
          account for the fact that we do work in these calls other than post a
          notification.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::notifySelectionChanged): Use new names.
          (KHTMLPart::appliedEditing): Ditto.
          (KHTMLPart::unappliedEditing): Ditto.
          (KHTMLPart::reappliedEditing): Ditto.
          * kwq/KWQKHTMLPart.h: Change name of functions as described.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::respondToChangedSelection): Ditto.
          (KWQKHTMLPart::respondToChangedContents): Ditto.
          * kwq/WebCoreBridge.h: Ditto.
  
  2004-05-25  Maciej Stachowiak  <mjs at apple.com>
  
          Fixed build.
  
          * ForwardingHeaders/misc/khtml_text_operations.h: Added.
  
  2004-05-25  Richard Williamson   <rjw at apple.com>
  
  	Part 1 of the new <CANVAS> tag implementation.  This patch
  	adds the boiler plate for the new element.
  
          Reviewed by Dave.
  
          * ForwardingHeaders/html/html_canvasimpl.h: Added.
          * ForwardingHeaders/rendering/render_canvasimage.h: Added.
          * WebCore.pbproj/project.pbxproj:
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElement::classInfo):
          (KJS::HTMLElementFunction::tryCall):
          * khtml/ecma/kjs_html.h:
          (KJS::HTMLElement::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
          * khtml/html/dtd.cpp:
          (DOM::checkChild):
          * khtml/html/html_canvasimpl.cpp: Added.
          (HTMLCanvasElementImpl::HTMLCanvasElementImpl):
          (HTMLCanvasElementImpl::~HTMLCanvasElementImpl):
          (HTMLCanvasElementImpl::id):
          (HTMLCanvasElementImpl::mapToEntry):
          (HTMLCanvasElementImpl::parseHTMLAttribute):
          (HTMLCanvasElementImpl::createRenderer):
          (HTMLCanvasElementImpl::attach):
          (HTMLCanvasElementImpl::detach):
          (HTMLCanvasElementImpl::isURLAttribute):
          * khtml/html/html_canvasimpl.h: Added.
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::getElement):
          * khtml/misc/htmltags.c:
          (hash_tag):
          (findTag):
          * khtml/misc/htmltags.h:
          * khtml/misc/htmltags.in:
          * khtml/rendering/render_canvasimage.cpp: Added.
          (RenderCanvasImage::RenderCanvasImage):
          (RenderCanvasImage::~RenderCanvasImage):
          (RenderCanvasImage::paint):
          (RenderCanvasImage::layout):
          * khtml/rendering/render_canvasimage.h: Added.
          (khtml::RenderCanvasImage::renderName):
          (khtml::RenderCanvasImage::element):
  
  2004-05-25  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3546418>: (when dragging text within an editable HTML doc, the selection should be moved not copied)
  
          Reviewed by kocienda.
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::MoveSelectionCommandImpl::doApply): implemented
          * khtml/khtml_part.cpp:
          (KHTMLPart::setDragCaret): make the old drag cursor rect dirty
          * khtml/khtml_part.h:
  
  2004-05-25  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fixed <rdar://problem/3657363>: (Editing: export innerText, innerHTML, outerText, outerHTML and setters to Objective-C)
  	- partial fix for <rdar://problem/3656706>: (Fix innerText and setInnerText DOM extensions)
  	
          * khtml/html/html_elementimpl.cpp:
  	(HTMLElementImpl::innerText): Use plainText() to make the text, to
  	match other browsers.
          (HTMLElementImpl::outerText): Extended comment.
          * khtml/misc/khtml_text_operations.h:
          * kwq/DOMExtensions.h:
          * kwq/DOMHTML.mm:
          (-[DOMHTMLElement outerText]): Added new ObjC wrapper for this.
          (-[DOMHTMLElement setOuterText:]): Ditto.
  
  2004-05-25  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
          
          Defer setting the selection to delete when none has been passed in to the
          time that the command is run. This fixes a problem where a command nested
          in a composite was not correctly picking up the right selection to begin
          its work. Now, the command will correctly use the ending selection of
          its parent when no selection has been passed in.
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::DeleteCollapsibleWhitespaceCommandImpl::DeleteCollapsibleWhitespaceCommandImpl):
          (khtml::DeleteCollapsibleWhitespaceCommandImpl::doApply):
          (khtml::DeleteSelectionCommandImpl::DeleteSelectionCommandImpl):
          (khtml::DeleteSelectionCommandImpl::doApply):
          * khtml/editing/htmlediting_impl.h:
  
  2004-05-24  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	Added a new simple layout test for outerText.
  
          * layout-tests/fast/dom/outerText-expected.txt: Added.
          * layout-tests/fast/dom/outerText.html: Added.
  
  2004-05-24  Darin Adler  <darin at apple.com>
  
          Reviewed by Vicki.
  
          - fixed <rdar://problem/3665813>: (iBench is crashing in TOT)
  
          * khtml/html/html_formimpl.cpp: (HTMLSelectElementImpl::HTMLSelectElementImpl):
          Initialize m_options to 0.
  
  2004-05-24  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Richard
  
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::toRange): Improved the code to return ranges that are
          convenient to use by WebKit code which needs to perform text-editor-like
          operations with ranges. Comments in the code describe this behavior.
          (DOM::Selection::nodeIsBeforeNode): Make this method const.
          * khtml/xml/dom_selection.h: Ditto.
  
  2004-05-24  Chris Blumenberg  <cblu at apple.com>
  
  	Improved editing via drag.
  
          Reviewed by kocienda.
  
          * khtml/editing/htmlediting.cpp: Renamed PasteMarkupCommand to ReplaceSelectionCommand
          (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand):
          (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand):
          (khtml::ReplaceSelectionCommand::impl):
          (khtml::MoveSelectionCommand::MoveSelectionCommand):
          (khtml::MoveSelectionCommand::~MoveSelectionCommand):
          (khtml::MoveSelectionCommand::impl):
          * khtml/editing/htmlediting.h:
          (khtml::):
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::ReplaceSelectionCommandImpl::ReplaceSelectionCommandImpl):
          (khtml::ReplaceSelectionCommandImpl::~ReplaceSelectionCommandImpl):
          (khtml::ReplaceSelectionCommandImpl::commandID):
          (khtml::ReplaceSelectionCommandImpl::doApply):
          (khtml::MoveSelectionCommandImpl::MoveSelectionCommandImpl): new command
          (khtml::MoveSelectionCommandImpl::~MoveSelectionCommandImpl):
          (khtml::MoveSelectionCommandImpl::commandID):
          (khtml::MoveSelectionCommandImpl::doApply):
          * khtml/editing/htmlediting_impl.h:
          * khtml/khtml_part.cpp:
          (KHTMLPart::dragCaret): new
          (KHTMLPart::setDragCaret): new
          (KHTMLPart::notifyDragCaretChanged): new
          (KHTMLPart::paintDragCaret): new
          * khtml/khtml_part.h:
          * khtml/khtmlpart_p.h:
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paintObject): paint the drag caret
          * kwq/DOM.mm:
          (+[DOMDocumentFragment _documentFragmentWithImpl:]): made internally available
          (-[DOMDocumentFragment _fragmentImpl]):
          * kwq/DOMInternal.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge documentFragmentWithMarkupString:baseURLString:]): new
          (-[WebCoreBridge documentFragmentWithText:]): new
          (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:]): new
          (-[WebCoreBridge replaceSelectionWithNode:selectReplacement:]): renamed to take the selectReplacement BOOL
          (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:selectReplacement:]): ditto
          (-[WebCoreBridge replaceSelectionWithText:selectReplacement:]): ditto
          (-[WebCoreBridge replaceSelectionWithNewline]): moved
          (-[WebCoreBridge setSelectionToDragCaret]): new
          (-[WebCoreBridge moveSelectionToDragCaret:]): new
          (-[WebCoreBridge moveDragCaretToPoint:]): set the drag caret, not the selection
          (-[WebCoreBridge removeDragCaret]): new
  
  2004-05-24  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
          
          Fixed some life-cycle issues with node iterators and detaching. Big deal is
          to detach in DOMNodeIterator dealloc. Otherwise, NodeIterators created from
          obj-c leak.
  
          * khtml/xml/dom2_traversalimpl.cpp:
          (DOM::NodeIteratorImpl::detach): Only detach if not yet detached.
          * khtml/xml/dom2_traversalimpl.h:
          (DOM::NodeIteratorImpl::setDetached): New convenience.
          * kwq/DOM.mm:
          (-[DOMNodeIterator dealloc]): Detach here, if not yet detached; fixes leak.
  
  2004-05-24  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyValue): Fixed to return the property value, 
          as it should, instead of the whole property, as it was doing before.
  
  2004-05-23  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3259919>: (Shift click should extend selection)
  
          * khtml/khtmlpart_p.h: Renamed m_textElement to m_selectionGranularity and
          m_mouseMovedSinceLastMousePress to m_beganSelectingText.
          * khtml/khtml_part.cpp:
          (KHTMLPart::handleMousePressEventDoubleClick): Set m_beganSelectingText if the double-click
          began selecting text.
          (KHTMLPart::handleMousePressEventTripleClick): Ditto.
          (KHTMLPart::handleMousePressEventSingleClick): Added code to extend selection if shift is down.
          (KHTMLPart::khtmlMousePressEvent): Remove code that sets the selection granularity to
          "by character". We only want to do that if we start selecting with a single click.
          Otherwise we want to leave the selection granularity alone.
          (KHTMLPart::khtmlMouseReleaseEvent): Change the code that clears the selection on a plain old
          click to check the m_beganSelectingText boolean so it won't run when you shift-click, for example.
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMouseMoveEvent): Updated for m_textElement
          name change.
  
  2004-05-22  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - went through things marked "unimplemented" or "not implemented" and removed
            or implemented as many as possible
  
          * kwq/DOM.mm: (-[DOMNode dispatchEvent:]): Implemented.
          Also moved DOMAbstractView and DOMDocumentView into DOMViews.mm.
          * kwq/DOM-CSS.mm: (-[DOMDocument getComputedStyle::]): Implemented.
  
          * kwq/DOMEventsInternal.h: Added.
          * kwq/DOMEvents.mm:
          (-[DOMEvent type]): Implemented.
          (-[DOMEvent target]): Implemented.
          (-[DOMEvent currentTarget]): Implemented.
          (-[DOMEvent eventPhase]): Implemented.
          (-[DOMEvent bubbles]): Implemented.
          (-[DOMEvent cancelable]): Implemented.
          (-[DOMEvent timeStamp]): Implemented.
          (-[DOMEvent stopPropagation]): Implemented.
          (-[DOMEvent preventDefault]): Implemented.
          (-[DOMEvent initEvent:::]): Implemented.
          (-[DOMEvent _eventImpl]): Added.
          (-[DOMEvent _initWithEventImpl:]): Added.
          (+[DOMEvent _eventWithImpl:]): Added.
          (-[DOMMouseEvent _mouseEventImpl]): Added.
          (-[DOMMouseEvent screenX]): Implemented.
          (-[DOMMouseEvent screenY]): Implemented.
          (-[DOMMouseEvent clientX]): Implemented.
          (-[DOMMouseEvent clientY]): Implemented.
          (-[DOMMouseEvent ctrlKey]): Implemented.
          (-[DOMMouseEvent shiftKey]): Implemented.
          (-[DOMMouseEvent altKey]): Implemented.
          (-[DOMMouseEvent metaKey]): Implemented.
          (-[DOMMouseEvent button]): Implemented.
          (-[DOMMouseEvent relatedTarget]): Implemented.
          (-[DOMMouseEvent initMouseEvent:::::::::::::::]): Implemented.
          (-[DOMMutationEvent _mutationEventImpl]): Added.
          (-[DOMMutationEvent relatedNode]): Implemented.
          (-[DOMMutationEvent prevValue]): Implemented.
          (-[DOMMutationEvent newValue]): Implemented.
          (-[DOMMutationEvent attrName]): Implemented.
          (-[DOMMutationEvent attrChange]): Implemented.
          (-[DOMMutationEvent initMutationEvent::::::::]):
          (-[DOMUIEvent _UIEventImpl]): Added.
          (-[DOMUIEvent view]): Implemented.
          (-[DOMUIEvent detail]): Implemented.
          (-[DOMUIEvent initUIEvent:::::]): Implemented.
          (-[DOMDocument createEvent:]): Implemented.
  
          * kwq/DOMHTMLInternal.h: Added.
          * kwq/DOMHTML.mm:
          (+[DOMHTMLOptionsCollection _optionsCollectionWithImpl:]): Added.
          (-[DOMHTMLOptionsCollection length]): Implemented.
          (-[DOMHTMLOptionsCollection setLength:]): Implemented.
          (-[DOMHTMLOptionsCollection item:]): Implemented.
          (-[DOMHTMLOptionsCollection namedItem:]): Implemented.
          (-[DOMHTMLSelectElement options]): Implemented.
  
          * kwq/DOMViews.h: Changed DOMDocumentView to be a category on DOMDocument
          rather than a separate class.
          * kwq/DOMViewsInternal.h: Added.
          * kwq/DOMViews.mm: Added.
          (-[DOMAbstractView document]): Implemnted.
          (-[DOMAbstractView _abstractViewImpl]): Added.
          (-[DOMAbstractView _initWithAbstractViewImpl:]): Added.
          (+[DOMAbstractView _abstractViewWithImpl:]): Added.
          (-[DOMDocument defaultView]): Implemented.
  
          * khtml/dom/dom2_views.h: Made AbstractView constructor public to allow creation in
          the bindings. Would not be necessary if the impl classes were used consistently.
  
          * khtml/html/html_formimpl.h: Added options() function to HTMLSelectElementImpl.
          Added HTMLOptionsCollectionImpl class.
          * khtml/html/html_formimpl.cpp:
          (HTMLSelectElementImpl::~HTMLSelectElementImpl): Added code to detach and deref the
          options collection.
          (HTMLSelectElementImpl::options): Create an options collection if needed.
          (HTMLOptionsCollectionImpl::length): Added. Not yet implemented.
          (HTMLOptionsCollectionImpl::setLength): Ditto.
          (HTMLOptionsCollectionImpl::item): Ditto.
          (HTMLOptionsCollectionImpl::namedItem): Ditto.
  
          * khtml/khtmlview.h: Move unused focusNextPrevChild virtual function inside !APPLE_CHANGES.
          * khtml/khtmlview.cpp: Put the tp, paintBuffer, and formCompletions fields entirely
          inside !APPLE_CHANGES. Also made QT_NO_TOOLTIP entirely disable the tooltip field.
          Also put focusNextPrevChild and formCompletionItems functions inside !APPLE_CHANGES.
  
          * khtml/rendering/render_text.h: Removed unused isFixedWidthFont member function.
          * khtml/rendering/render_text.cpp: Ditto.
  
          * kwq/KWQCursor.h: Removed unused pos member function.
          * kwq/KWQCursor.mm: Ditto.
  
          * kwq/KWQFontMetrics.h: Removed unused rightBearing and leftBearing member functions.
          * kwq/KWQFontMetrics.mm: Ditto.
  
          * kwq/KWQKComboBox.h: Removed KCompletionBase as a base class.
  
          * kwq/KWQKConfigBase.h: Removed unused readBoolEntry, writeEntry, and readListEntry
          member functions.
          * kwq/KWQKConfigBase.mm: Ditto.
          (KConfig::readEntry): Improved "not implemented" message to indicate which key is uinimplemented.
          (KConfig::readNumEntry): Ditto.
          (KConfig::readUnsignedNumEntry): Ditto.
  
          * kwq/KWQKLineEdit.h: Removed everything, since all the KLineEdit stuff was unused.
          Changed KLineEdit to just be a typedef for QLineEdit.
  
          * kwq/KWQSlot.mm: Removed slotAutoScroll.
          (KWQSlot::KWQSlot): And from here.
          (KWQSlot::call): And from here.
  
          * kwq/KWQTextStream.h: Removed unused QTextOStream and QTextIStream.
          * kwq/KWQTextStream.mm: Removed unused QTextIStream function. Also made buffer sizes larger
          so we don't have any problems on 64-bit systems. 10 bytes might not be long enough to sprintf an
          integer or a long or a pointer, but 100 bytes surely will.
  
          * kwq/KWQWidget.h: Removed unused focusNextPrevChild.
          * kwq/KWQWidget.mm: Ditto.
  
          * WebCore.pbproj/project.pbxproj: Removed some files, added others.
  
          * ForwardingHeaders/kcompletionbox.h: Emptied out, no KWQKCompletionBox.h any more.
          * ForwardingHeaders/kiconloader.h: Emptied out, no KWQKIconLoader.h any more.
          * ForwardingHeaders/kmimetype.h: Emptied out, no KWQKMimeType.h any more.
          * ForwardingHeaders/ksimpleconfig.h: Emptied out, no KWQKSimpleConfig.h any more.
          * ForwardingHeaders/qfontinfo.h: Emptied out, no KWQFontInfo.h any more.
          * ForwardingHeaders/qtooltip.h: Replaced with define of QT_NO_TOOLTIP, no
          KWQToolTip.h any more.
  
          * kwq/KWQCompletion.h: Removed.
          * kwq/KWQCompletion.mm: Removed.
          * kwq/KWQFontInfo.h: Removed.
          * kwq/KWQFontInfo.mm: Removed.
          * kwq/KWQKCompletionBox.h: Removed.
          * kwq/KWQKIconLoader.h: Removed.
          * kwq/KWQKIconLoader.mm: Removed.
          * kwq/KWQKMimeType.h: Removed.
          * kwq/KWQKMimeType.mm: Removed.
          * kwq/KWQKSimpleConfig.h: Removed.
          * kwq/KWQKSimpleConfig.mm: Removed.
          * kwq/KWQToolTip.h: Removed.
  
  2004-05-21  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3663659>: (result of toString mistakenly includes all subsequent sibling content)
  
          * khtml/xml/dom2_rangeimpl.h: Added private startNode() and pastEndNode() functions.
          * khtml/xml/dom2_rangeimpl.cpp:
          (DOM::RangeImpl::toString): Rewrote to use startNode(), pastEndNode(), and traverseNextNode().
          The old code here was wrong, and it was easier to rewrite than fix.
          (DOM::RangeImpl::checkDeleteExtract): Extracted the logic to compute the start node and the past-end
          node into separate functions.
          (DOM::RangeImpl::startNode): Added. Started with code extracted from checkDeleteExtract, but then
          also fixed bugs by using the new traverseNextSibling. The old code handled cases where the offset was
          past the last child in a container incorrectly.
          (DOM::RangeImpl::pastEndNode): Added. Started with code extracted from checkDeleteExtract, but then
          also fixed bugs by using the new traverseNextSibling. The old code hanlded cases where the offset was
          past the last child in a container incorrectly, and also iterated one node too few in cases where the
          end contaier was a text node.
  
          * khtml/xml/dom2_traversalimpl.h: Removed a bunch of unused and unneeded member functions.
  
          * khtml/xml/dom_nodeimpl.h: Added traverseNextSibling.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::traverseNextNode): Reformatted the code a little bit.
          (NodeImpl::traverseNextSibling): Added. Like traverseNextNode except it starts after the node's children
          instead of starting at the beginning of the first child.
  
  2004-05-21  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Trey.
  
  	<rdar://problem/3656722>: Implement outerText and setOuterText DOM extensions
          
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::outerText): Return same value as innerText().
          (HTMLElementImpl::setInnerText): Fix comment.
          (HTMLElementImpl::setOuterText): Replace node with text, merge neighboring text nodes.
          * khtml/html/html_elementimpl.h: Prototype new methods.
  	* khtml/dom/html_element.cpp:
          (HTMLElement::outerText): Hook up to impl.
          (HTMLElement::setOuterText): Ditto.
          * khtml/dom/html_element.h: Prototype new methods.
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElement::getValueProperty): Glue up outerText.
          (KJS::HTMLElement::putValue): Ditto. 
          * khtml/ecma/kjs_html.h: Added new enum value.
          * khtml/ecma/kjs_html.lut.h:
          (KJS::): Regenerated.
  
  2004-05-21  Richard Williamson   <rjw at apple.com>
  
          Removed _bindObject:forFrame: SPI.
          
          Reviewed by Chris.
  
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
  
  2004-05-21  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3663644, repaints don't occur when the .innerHTML of a positioned element is changed.
  	
          Reviewed by john
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
          * khtml/rendering/render_layer.h:
          (khtml::RenderLayer::repaintRect):
  
  === Safari-141 ===
  
  2004-05-21  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken and Chris.
  
          - fixed <rdar://problem/3656948>: (markup strings that contain <html> and <body> elements don't work, producing nothing)
  
          * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::createContextualFragment):
          Changed things around so that nodes are removed from their parent node before 
  
  2004-05-21  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken and Chris.
  
          - fixed part of <rdar://problem/3656948>: (HTML Editing: -[WebView replaceSelectionWithMarkupString:] doesn't seem to work)
  
          * khtml/editing/htmlediting_impl.cpp: (khtml::PasteMarkupCommandImpl::doApply):
          Changed code to handle case where contextual fragment parses to nothing without crashing.
  
  2004-05-21  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          * kwq/DOM-CSS.mm: Change DOMCSSStyleDeclaration methods to use strings with dash-separators in them
          rather than interCaps.
  
  2004-05-21  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3090663>: (scroll to top of page when anchor is "#top" or "#")
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::gotoAnchor): Detect anchor by checking for non-null, not non-empty, because an
          empty anchor is not the same as no anchor.
          (KHTMLPart::gotoAnchor): Add special case for anchors named "" and "top" (case insensitive),
          to scroll to the top left of the frame to match what WinIE and Mozilla do.
          (KHTMLPart::checkCompleted): Check for non-null here too for consistency.
  
          * kwq/KWQKURL.mm:
          (KURL::ref): Change check so that we return empty, not null, if there's an empty ref,
          as opposed to no ref.
          (KURL::hasRef): Return true if there's an empty ref, as opposed to no ref.
          (KURL::parse): Preserve an empty fragment when parsing.
  
  2004-05-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3575385>: (multiple radio buttons checked when arriving at sites (poll at www.1170kfaq.com, many others))
  
          * khtml/html/html_formimpl.cpp:
          (HTMLInputElementImpl::parseHTMLAttribute): Use setChecked to set the default value if we are still in
          "use default checked" mode. That way, other radio buttons will be unchecked properly and the proper
          changed methods will be dispatched.
          (HTMLInputElementImpl::reset): Ditto.
          * khtml/html/html_formimpl.h: (DOM::HTMLInputElementImpl::checked): Changed to just return m_checked.
          The m_useDefaultChecked flag is now only really looked at when you parse a checked attribute; that's
          because m_checked and m_defaultChecked are kept equal as long as m_useDefaultChecked is true.
  
          * khtml/xml/dom_nodeimpl.h: Removed an unnecessary virtual, to make code a little smaller and faster.
  
  2004-05-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris.
  
          - fixed <rdar://problem/3662383>: (REGRESSION: drag slide-back sometimes causes link to load)
          - fixed <rdar://problem/3662556>: (REGRESSION: letting up mouse while dragging over link activates the link)
  
          * khtml/khtmlview.h: Added invalidateClick.
          * khtml/khtmlview.cpp: (KHTMLView::invalidateClick): Added. Sets clickCount to 0.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::matchLabelsAgainstElement): Changed a string replace to a character replace for slightly
          faster code and smaller code size.
          (KWQKHTMLPart::khtmlMouseMoveEvent): Call invalidateClick at the appropriate times. To do this correctly,
          had to add a boolean result to handleMouseDragged: so I can tell if a drag started or not (due to hysteresis).
          (KWQKHTMLPart::attributedString): Changed a string append to a character append for slightly faster code
          and smaller code size.
  
          * kwq/WebCoreBridge.h: Added BOOL result to handleMouseDragged:.
  
          Reviewed by Dave.
  
          - handle rules with empty bodies properly
  
          * khtml/css/parser.y: Remove bogus check for empty body that prevents the rule
          from being created.
          * khtml/css/parser.cpp: Regenerated.
  
  2004-05-20  David Hyatt  <hyatt at apple.com>
  
  	Revise the patch for incorrect caret positions when brs get deleted.  It can be even simpler.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::dirtyLinesFromChangedChild):
          * khtml/rendering/render_text.cpp:
          (RenderText::detach):
  
  2004-05-20  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3629816, caret in wrong position when deleting <br>s on lines by themselves or when moving <br>s
  	on lines by themselves.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::detach):
          * khtml/rendering/render_br.cpp:
          (RenderBR::setPos):
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::dirtyLinesFromChangedChild):
  
  2004-05-20  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Provide the methods to glue the WebView's editing delegate so that these methods work:
          
          <rdar://problem/3655316>: "Editing: -webViewShouldBeginEditing:inDOMRange: method unimplemented (WebKit editing API)"
          <rdar://problem/3655317>: "Editing: -webViewShouldEndEditing:inDOMRange: method unimplemented (WebKit editing API)"
  
          While I was in the neighborhood and working on understanding focus shifts, I fixed this bug as well:
          
          <rdar://problem/3645154>: "contentEditable div receives focus and blur twice when focus changes to new element"
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::invalidateSelection): Do not move focus in this function. That is just a mistake. This function
          is all about redraw.
          (KHTMLPart::selectionLayoutChanged): New function. Factor out the redraw parts of notifySelectionChanged so
          that invalidateSelection can call it.
          (KHTMLPart::notifySelectionChanged): Call selectionLayoutChanged now that the redraw parts have been
          factored out.
          (KHTMLPart::shouldBeginEditing): New function that calls through to the KWQKHTMLPart in an APPLE_CHANGES
          block. This is part of the code path that will eventually The WebView's delegate to ask the
          shouldBeginEditing question. 
          (KHTMLPart::shouldEndEditing): Ditto, except the question is about shouldEndEditing.
          * khtml/khtml_part.h:
          * khtml/khtmlview.cpp:
          (KHTMLView::dispatchMouseEvent): Now looks at the boolean value returned from DocumentImpl::setFocusNode 
          (described below). If the focus shift was blocked, swallow the mouse event.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::relinquishesEditingFocus): Part of the WebView's delegation call chain described above.
          (DocumentImpl::acceptsEditingFocus): Ditto.
          (DocumentImpl::setFocusNode): Many improvements. Now handles WebView delegation and switching focus
          in the handlers called as a result of the DOM events that this function calls. Also now returns a 
          boolean to say whether the attempt to set focus was blocked by a handler or by the WebView's delegate.
          * khtml/xml/dom_docimpl.h:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::shouldBeginEditing): More WebView's delegation glue.
          (KWQKHTMLPart::shouldEndEditing): Ditto.
          * kwq/WebCoreBridge.h:
  
  2004-05-20  Richard Williamson   <rjw at apple.com>
  
          * kwq/DOM.mm:
          (-[DOMObject _init]):
          * kwq/DOMInternal.mm:
          (-[WebScriptObject _init]):
          (-[WebScriptObject _initializeScriptDOMNodeImp]):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::KWQKHTMLPart):
          (KWQKHTMLPart::bindingRootObject):
          (KWQKHTMLPart::windowScriptObject):
  
  2004-05-20  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3661918>: "repro nil-deref in RenderImage::paint (www.codepoetry.net)"
  
          * khtml/rendering/render_image.cpp: (RenderImage::paint): Check renderer pointer to see if it's
          nil before dereferencing it.
  
          - fixed <rdar://problem/3658455>: "readFromData:options:documentAttributes: crashes when passed page without a body (in WebKit mode)"
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::bodyBackgroundColor): Check renderer pointer to see if it's
          nil before dereferencing it.
  
          - fixed <rdar://problem/2948112>: "implement addRule for JavaScript for style sheets"
  
          * khtml/dom/css_stylesheet.h: Added addRule.
          * khtml/dom/css_stylesheet.cpp: (CSSStyleSheet::addRule): Added.
          * khtml/css/css_stylesheetimpl.h: Added addRule.
          * khtml/css/css_stylesheetimpl.cpp: (CSSStyleSheetImpl::addRule): Added an implementation
          based on the Microsoft documentation. An index of -1 means "at the end of the list".
  
          * khtml/dom/dom_string.h: Changed the string-append operator to be a non-member function
          so it works even if the left side has to undergo type conversion.
          * khtml/dom/dom_string.cpp: (DOM::operator+): Changed implementation to match above.
          Also changed to not use anything private or protected so it doesn't have to be a friend.
  
          * khtml/ecma/kjs_css.h: Added addRule to the list of functions for CSS style sheets.
          * khtml/ecma/kjs_css.cpp: (DOMCSSStyleSheetProtoFunc::tryCall): Add support for addRule,
          based on the Microsoft documentation; always returns -1. Also removed unused string conversions.
          * khtml/ecma/kjs_css.lut.h: Regenerated.
  
  2004-05-19  David Hyatt  <hyatt at apple.com>
  
  	Implement support for notification posting to accessibility clients for layouts and loads.
  	
          * khtml/khtmlview.cpp:
          (KHTMLView::layout):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::close):
          * kwq/KWQAccObjectCache.h:
          (KWQAccObjectCache::enableAccessibility):
          (KWQAccObjectCache::accessibilityEnabled):
          * kwq/KWQAccObjectCache.mm:
          (KWQAccObjectCache::accObject):
          (KWQAccObjectCache::setAccObject):
          (KWQAccObjectCache::removeAccObject):
          (KWQAccObjectCache::detach):
          (KWQAccObjectCache::childrenChanged):
          (KWQAccObjectCache::postNotification):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge accessibilityTree]):
  
  2004-05-19  Chris Blumenberg  <cblu at apple.com>
  
  	Tweaks for forthcoming dragging improvements.
  
          Reviewed by john.
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge moveDragCaretToPoint:]): renamed for future reasons, removed text only restrictions
  
  2004-05-19  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt and Darin
  
          Fix for this bug:
          
          <rdar://problem/3643230>: "can't tab out of contentEditable Elements"
  
          * khtml/xml/dom_elementimpl.cpp: Now checks if key event was intercepted by the editing
          key-handler before setting the event as defaultHandled.
          (ElementImpl::defaultEventHandler):
          * kwq/KWQKHTMLPart.h: Name change from editingKeyEvent.
          Also now returns a BOOL to report whether the event was handled or not.
          * kwq/KWQKHTMLPart.mm: 
          (KWQKHTMLPart::interceptEditingKeyEvent): Ditto.
          * kwq/WebCoreBridge.h: Renamed from _editingKeyDown.
  
  2004-05-19  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3655601>: "deleting characters is much slower than inserting them"
  
          Cleaned up the way selections are set in edit commands, and how KHTMLPart is
          notified of these changes. This clears up a number of inefficiencies, including unnecessary repaints
          which were causing the performace problem.
  
          * khtml/editing/htmlediting.cpp: Removed moveToStartingSelection and moveToEndingSelection functions.
          This work is going to be done using another pre-existing communication facility shared by edit commands
          and the part.
          * khtml/editing/htmlediting.h: Ditto.
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::EditCommandImpl::setStartingSelection): Fix coding mistake which caused double recursion while setting
          ancestor values.
          (khtml::EditCommandImpl::setEndingSelection): Ditto.
          (khtml::CompositeEditCommandImpl::doUnapply): No longer calls moveToStartingSelection. Work done in the part now.
          (khtml::CompositeEditCommandImpl::doReapply): No longer calls moveToEndingSelection. Work done in the part now.
          (khtml::TypingCommandImpl::typingAddedToOpenCommand): New function. Provides a hook for
          typing commands to tell the part about additional typing that has been done.
          (khtml::TypingCommandImpl::insertText): Now calls typingAddedToOpenCommand.
          (khtml::TypingCommandImpl::insertNewline): Ditto.
          (khtml::TypingCommandImpl::issueCommandForDeleteKey): Ditto.
          (khtml::TypingCommandImpl::deleteKeyPressed): Ditto.
          * khtml/editing/htmlediting_impl.h: Removed moveToStartingSelection and moveToEndingSelection functions.
          * khtml/khtml_part.cpp:
          (KHTMLPart::setSelection): Modified to take an argument which tells whether the set closes an active
          typing command.
          (KHTMLPart::notifySelectionChanged): Changed endTyping variable to be consistent with "close typing"
          terminology used elsewhere.
          (KHTMLPart::appliedEditing): Now sets the selection using the value of the passed-in command. Added
          an assert for typing cases. Fixed problem where didChangeNotification was not being posted for typing
          changes after the first one.
          (KHTMLPart::unappliedEditing): Now sets the selection using the value of the passed-in command.
          (KHTMLPart::reappliedEditing): Now sets the selection using the value of the passed-in command.
          * khtml/khtml_part.h:
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::clearSelection): Do not call repaint when the selection is a caret.
  
  2004-05-19  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::isContentEditable): Ask if the part is contenteditable.
          True value is treated as an "override" and will short-circuit, returning true.
          * khtml/khtml_part.cpp:
          (KHTMLPart::isContentEditable): Call over bridge. Has the effect of checking the
          isEditable method on the WebView which contains this part.
          * khtml/khtml_part.h: Declare isContentEditable.
          * kwq/KWQKHTMLPart.h: Declare isContentEditable.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::isContentEditable): Call over bridge, as described above.
          * kwq/WebCoreBridge.h: Declare isEditable.
  
  2004-05-19  Darin Adler  <darin at apple.com>
  
          - fixed headers with licenses mangled by Xcode auto-indenting
  
          * kwq/DOMExtensions.h:
          * kwq/KWQAccObject.h:
          * kwq/KWQAccObject.mm:
          * kwq/KWQAccObjectCache.h:
          * kwq/KWQKSSLKeyGen.mm:
          * kwq/KWQScrollBar.mm:
          * kwq/KWQSlider.mm:
          * kwq/WebCoreGraphicsBridge.h:
          * kwq/WebCoreGraphicsBridge.m:
          * kwq/WebCoreKeyGenerator.h:
          * kwq/WebCoreKeyGenerator.m:
  
  2004-05-18  David Hyatt  <hyatt at apple.com>
  
  	Add two new attributes for accessibility that can be polled by the screen reader.  AXLayoutCount indicates
  	the number of layouts that have occurred, and AXLoaded indicates whether or not a page has finished loading.
  	
          * khtml/khtmlview.cpp:
          (KHTMLViewPrivate::reset):
          (KHTMLView::layoutCount):
          (KHTMLView::layout):
          * khtml/khtmlview.h:
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject roleDescription]):
          (-[KWQAccObject accessibilityAttributeNames]):
          (-[KWQAccObject accessibilityAttributeValue:]):
  
  2004-05-18  David Hyatt  <hyatt at apple.com>
  
  	Fix crash when retrieving the AXHelp text.
  	
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject helpText]):
  
  2004-05-18  David Hyatt  <hyatt at apple.com>
  
  	Improve layout scheduling and add instrumentation for debugging layout scheduling
  	
          Reviewed by kocienda
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::slotFinishedParsing):
          (KHTMLPart::checkCompleted):
          * khtml/khtmlview.cpp:
          (KHTMLViewPrivate::KHTMLViewPrivate):
          (KHTMLViewPrivate::reset):
          (KHTMLView::layout):
          (KHTMLView::scheduleRelayout):
          (KHTMLView::haveDelayedLayoutScheduled):
          (KHTMLView::unscheduleRelayout):
          * khtml/khtmlview.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::repaintAfterLayoutIfNeeded):
          * khtml/rendering/render_replaced.cpp:
          (RenderWidget::updateWidgetPositions):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::close):
          (DocumentImpl::setParsing):
          (DocumentImpl::shouldScheduleLayout):
          (DocumentImpl::minimumLayoutDelay):
          (DocumentImpl::elapsedTime):
          (DocumentImpl::finishParsing):
          (DocumentImpl::updateStyleSelector):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::allDataReceived):
          * kwq/KWQDateTime.h:
          * kwq/KWQDateTime.mm:
          (QTime::elapsed):
          * kwq/KWQWidget.mm:
          (QWidget::setFrameGeometry):
  
  2004-05-18  Richard Williamson   <rjw at apple.com>
  
  	Finished implementing support for windowScriptObject.
  
          Reviewed by Maciej.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::begin):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::KWQKHTMLPart):
          (KWQKHTMLPart::~KWQKHTMLPart):
          (KWQKHTMLPart::windowScriptObject):
          * kwq/WebCoreBridge.mm:
          (updateRenderingForBindings):
  
  2004-05-18  Richard Williamson   <rjw at apple.com>
  
  	Added stubs to get the WebScriptObject for the window
  	JS object.
  	
  	Made updateRenderingForBindings more robust when handed a
  	nil root object.  This was causing a crash in DB.  Still need to
  	address root cause of nil root object.
  
          Reviewed by Maciej.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::begin):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::windowScriptObject):
          (KWQKHTMLPart::partClearedInBegin):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (updateRenderingForBindings):
          (-[WebCoreBridge init]):
          (-[WebCoreBridge stringByEvaluatingJavaScriptFromString:]):
          (-[WebCoreBridge windowScriptObject]):
  
  2004-05-17  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	<rdar://problem/3656719>: Implement outerHTML and setOuterHTML DOM extensions
  
  	They were already implemented (by Chris), all that was required
  	was exporting them to JavaScript.
  
          * khtml/dom/html_element.cpp:
          (HTMLElement::outerHTML): Call impl.
          (HTMLElement::setOuterHTML): Ditto.
          * khtml/dom/html_element.h: Prototype new methods.
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElement::getValueProperty): Add OuterHTML.
          (KJS::HTMLElement::putValue): Add OuterHTML.
          * khtml/ecma/kjs_html.h: Add new enum values.
          * khtml/ecma/kjs_html.lut.h: Regenerated.
  
  2004-05-18  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Removed support for designMode attribute, which we will not be supporting for Tiger.
          Removed inEditMode from KHTMLPart. This cached designMode value.
          Removed KHTMLPart::isEditingAtNode function. Asking a node if it is content-editable
          is a suitable replacement.
  
          * khtml/dom/dom_misc.h: Remove TristateFlag enum that was used to track designMode values.
          * khtml/dom/html_document.cpp: Remove designMode and setDesignMode.
          * khtml/dom/html_document.h: Ditto.
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::tryGet): Remove designMode.
          (KJS::HTMLDocument::putValue): Ditto.
          * khtml/ecma/kjs_html.lut.h:
          (KJS::): Ditto.
          * khtml/html/html_documentimpl.cpp: Remove designMode and setDesignMode.
          * khtml/html/html_documentimpl.h: Ditto.
          * khtml/khtml_part.cpp: Remove setEditMode, editMode, inEditMode, and isEditingAtNode.
          * khtml/khtml_part.h: Ditto.
          * khtml/khtmlpart_p.h: Remove m_inEditMode variable.
          (KHTMLPartPrivate::KHTMLPartPrivate):
          * khtml/khtmlview.cpp:
          (KHTMLView::focusNextPrevNode): Change over one use in tree of isEditingAtNode to use
          isContentEditable instead. isContentEditable will be modified in future patch to handle
          whether the per-part switch has been thrown to override whether something is editable or not.
  
  2004-05-17  Richard Williamson   <rjw at apple.com>
  
  	Implemented new API for WebScriptObject.
  	Fixed <rdar://problem/3657145>: (objc to javascript method calls do not cause updates.)
  
          Reviewed by Hyatt.
  
          * kwq/WebCoreBridge.mm:
          (updateRenderingForBindings):
          (-[WebCoreBridge init]):
  
  2004-05-14  Vicki Murley  <vicki at apple.com>
  
          Reviewed by mjs.
   
  	<rdar://problem/3642427>: framework marketing number should be 2.0 for DoubleBarrel release
  
          * WebCore.pbproj/project.pbxproj: change CFBundleShortVersionString to 2.0
  
  2004-05-14  Darin Adler  <darin at apple.com>
  
          Reviewed by Darin, coded by Maciej.
  
          - fixed extra repaints when doing auto-fill checks on all pages that have pop-up buttons
  
          * kwq/KWQComboBox.mm:
          (QComboBox::populateMenu): Set the populating-menu flag and clear it when done.
          (-[KWQPopUpButton setPopulatingMenu:]): Added. Sets flag.
          (-[KWQPopUpButton setNeedsDisplayInRect:]): Do nothing if the flag is set.
  
  2004-05-14  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed <rdar://problem/3650026>: "background property doesn't work right on webdevtips.com due to background:inherit"
  
          * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyDeclarations):
          Added CSS_PROP_BACKGROUND to the list of properties that must be applied in the first pass.
  
  === Safari-140 ===
  
  2004-05-13  David Hyatt  <hyatt at apple.com>
  
  	Fix image loading for <input type=image> and <object>.  Make sure it works dynamically and make sure
  	the renderer is properly null-checked at attach time.
  	
          Reviewed by darin
  
          * khtml/html/html_formimpl.cpp:
          (HTMLInputElementImpl::HTMLInputElementImpl):
          (HTMLInputElementImpl::~HTMLInputElementImpl):
          (HTMLInputElementImpl::parseHTMLAttribute):
          (HTMLInputElementImpl::attach):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_objectimpl.cpp:
          (HTMLObjectElementImpl::HTMLObjectElementImpl):
          (HTMLObjectElementImpl::~HTMLObjectElementImpl):
          (HTMLObjectElementImpl::parseHTMLAttribute):
          (HTMLObjectElementImpl::attach):
          * khtml/html/html_objectimpl.h:
  
  2004-05-14  Chris Blumenberg  <cblu at apple.com>
  
  	- Made DOMEventTarget a formal protocol that is implemented by DOMNode
  	- Made DOMEventListener a formal protocol that any object can implement
  
          Reviewed by kocienda.
  
          * kwq/DOMCore.h:
          * kwq/DOMEvents.h:
  
  2004-05-13  Richard Williamson   <rjw at apple.com>
  
  	Removed vestigial isSelected method.
  
          Reviewed by Chris.
  
          * kwq/KWQWidget.h:
          * kwq/KWQWidget.mm:
          (QWidget::setIsSelected):
          * kwq/WebCoreBridge.h:
  
  2004-05-13  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3616555>: (API: Make DOM extensions and WebKit DOM operations public)
  
          Reviewed by rjw.
  
          * kwq/DOM.h: added DOMExtensions.h
          * kwq/DOMHTML.h: renamed frame on DOMHTMLTableElement to frameBorders to avoid NSView conflicts
          * kwq/DOMHTML.mm:
          (-[DOMHTMLTableElement frameBorders]):
          (-[DOMHTMLTableElement setFrameBorders:]):
  
  2004-05-13  Richard Williamson   <rjw at apple.com>
  
  	Changed imports of all DOM headers.  DOM headers
  	should be imported using the normal #import <WebCore/foo.h>,
  	they import is modified when copied to WebKit.
  
          Reviewed by Chris.
  
          * ChangeLog:
          * kwq/DOM.h:
          * kwq/DOMCSS.h:
          * kwq/DOMCore.h:
          * kwq/DOMEvents.h:
          * kwq/DOMExtensions.h:
          * kwq/DOMHTML.h:
          * kwq/DOMInternal.h:
          * kwq/DOMRange.h:
          * kwq/DOMStylesheets.h:
          * kwq/DOMTraversal.h:
          * kwq/DOMViews.h:
  
  2004-05-13  Ken Kocienda  <kocienda at apple.com>
  
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Fix deployment
          build bustage. Uninitialized variable.
  
  2004-05-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Implemented first cut at text style change code.
  
          * khtml/editing/htmlediting.cpp:
          (khtml::ApplyStyleCommand::ApplyStyleCommand):
          (khtml::ApplyStyleCommand::~ApplyStyleCommand):
          (khtml::ApplyStyleCommand::impl):
          (khtml::RemoveCSSPropertyCommand::RemoveCSSPropertyCommand):
          (khtml::RemoveCSSPropertyCommand::~RemoveCSSPropertyCommand):
          (khtml::RemoveCSSPropertyCommand::impl):
          (khtml::RemoveCSSPropertyCommand::styleDeclaration):
          (khtml::RemoveCSSPropertyCommand::property):
          (khtml::RemoveNodeAttributeCommand::RemoveNodeAttributeCommand):
          (khtml::RemoveNodeAttributeCommand::~RemoveNodeAttributeCommand):
          (khtml::RemoveNodeAttributeCommand::impl):
          (khtml::RemoveNodeAttributeCommand::element):
          (khtml::RemoveNodeAttributeCommand::attribute):
          (khtml::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand):
          (khtml::RemoveNodePreservingChildrenCommand::~RemoveNodePreservingChildrenCommand):
          (khtml::RemoveNodePreservingChildrenCommand::impl):
          (khtml::RemoveNodePreservingChildrenCommand::node):
          (khtml::SetNodeAttributeCommand::SetNodeAttributeCommand):
          (khtml::SetNodeAttributeCommand::~SetNodeAttributeCommand):
          (khtml::SetNodeAttributeCommand::impl):
          (khtml::SetNodeAttributeCommand::element):
          (khtml::SetNodeAttributeCommand::attribute):
          (khtml::SetNodeAttributeCommand::value):
          * khtml/editing/htmlediting.h:
          (khtml::):
          (khtml::ApplyStyleCommand::):
          
          Removed a bunch of unnecessary DOM namespace qualifiers.
          Fixed calls to parent(), which relied on the TreeShared interface to get a parent,
          and changed to the parentNode() DOM Node call, which is more suitable given the
          intention.
          
          * khtml/editing/htmlediting_impl.cpp:
          (khtml::CompositeEditCommandImpl::insertNodeBefore):
          (khtml::CompositeEditCommandImpl::insertNodeAfter):
          (khtml::CompositeEditCommandImpl::appendNode):
          (khtml::CompositeEditCommandImpl::removeNode):
          (khtml::CompositeEditCommandImpl::removeNodeAndPrune):
          (khtml::CompositeEditCommandImpl::removeNodePreservingChildren):
          (khtml::CompositeEditCommandImpl::splitTextNode):
          (khtml::CompositeEditCommandImpl::joinTextNodes):
          (khtml::CompositeEditCommandImpl::insertText):
          (khtml::CompositeEditCommandImpl::deleteText):
          (khtml::CompositeEditCommandImpl::replaceText):
          (khtml::CompositeEditCommandImpl::removeCSSProperty):
          (khtml::CompositeEditCommandImpl::removeNodeAttribute):
          (khtml::CompositeEditCommandImpl::setNodeAttribute):
          
          
          Text style change command implementations.
          There are a couple more parent() -> parentNode() changes in here as well.
          
          (khtml::ApplyStyleCommandImpl::ApplyStyleCommandImpl):
          (khtml::ApplyStyleCommandImpl::~ApplyStyleCommandImpl):
          (khtml::ApplyStyleCommandImpl::commandID):
          (khtml::ApplyStyleCommandImpl::doApply):
          (khtml::ApplyStyleCommandImpl::isHTMLStyleNode):
          (khtml::ApplyStyleCommandImpl::removeHTMLStyleNode):
          (khtml::ApplyStyleCommandImpl::removeCSSStyle):
          (khtml::ApplyStyleCommandImpl::removeCSSProperty):
          (khtml::ApplyStyleCommandImpl::setNodeAttribute):
          (khtml::ApplyStyleCommandImpl::removeNodeAttribute):
          (khtml::ApplyStyleCommandImpl::removeNodePreservingChildren):
          (khtml::ApplyStyleCommandImpl::mustExlicitlyApplyStyle):
          (khtml::ApplyStyleCommandImpl::createExplicitApplyStyleNode):
          (khtml::ApplyStyleCommandImpl::currentlyHasStyle):
          (khtml::ApplyStyleCommandImpl::cssProperty):
          (khtml::ApplyStyleCommandImpl::matchesTargetStyle):
          (khtml::ApplyStyleCommandImpl::positionInsertionPoint):
          (khtml::ApplyStyleCommandImpl::splitTextAtStartIfNeeded):
          (khtml::ApplyStyleCommandImpl::splitTextAtEndIfNeeded):
          (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded):
          (khtml::ApplyStyleCommandImpl::removeStyle):
          (khtml::ApplyStyleCommandImpl::cloneSelection):
          (khtml::ApplyStyleCommandImpl::insertFragment):
          (khtml::ApplyStyleCommandImpl::applyInPlace):
          (khtml::ApplyStyleCommandImpl::applyUsingFragment):
          (khtml::DeleteSelectionCommandImpl::DeleteSelectionCommandImpl):
          (khtml::InsertNodeBeforeCommandImpl::doApply):
          (khtml::InsertNodeBeforeCommandImpl::doUnapply):
          (khtml::JoinTextNodesCommandImpl::doApply):
          (khtml::PasteMarkupCommandImpl::PasteMarkupCommandImpl):
          (khtml::RemoveCSSPropertyCommandImpl::RemoveCSSPropertyCommandImpl):
          (khtml::RemoveCSSPropertyCommandImpl::~RemoveCSSPropertyCommandImpl):
          (khtml::RemoveCSSPropertyCommandImpl::commandID):
          (khtml::RemoveCSSPropertyCommandImpl::doApply):
          (khtml::RemoveCSSPropertyCommandImpl::doUnapply):
          (khtml::RemoveNodeAttributeCommandImpl::RemoveNodeAttributeCommandImpl):
          (khtml::RemoveNodeAttributeCommandImpl::~RemoveNodeAttributeCommandImpl):
          (khtml::RemoveNodeAttributeCommandImpl::commandID):
          (khtml::RemoveNodeAttributeCommandImpl::doApply):
          (khtml::RemoveNodeAttributeCommandImpl::doUnapply):
          (khtml::RemoveNodePreservingChildrenCommandImpl::RemoveNodePreservingChildrenCommandImpl):
          (khtml::RemoveNodePreservingChildrenCommandImpl::~RemoveNodePreservingChildrenCommandImpl):
          (khtml::RemoveNodePreservingChildrenCommandImpl::commandID):
          (khtml::RemoveNodePreservingChildrenCommandImpl::doApply):
          (khtml::SetNodeAttributeCommandImpl::SetNodeAttributeCommandImpl):
          (khtml::SetNodeAttributeCommandImpl::~SetNodeAttributeCommandImpl):
          (khtml::SetNodeAttributeCommandImpl::commandID):
          (khtml::SetNodeAttributeCommandImpl::doApply):
          (khtml::SetNodeAttributeCommandImpl::doUnapply):
          (khtml::SplitTextNodeCommandImpl::doUnapply):
          (khtml::TypingCommandImpl::insertText):
  
  
          Text style change command implementations.
  
          * khtml/editing/htmlediting_impl.h:
          (khtml::ApplyStyleCommandImpl::):
          (khtml::ApplyStyleCommandImpl::removingStyle):
          (khtml::RemoveCSSPropertyCommandImpl::styleDeclaration):
          (khtml::RemoveCSSPropertyCommandImpl::property):
          (khtml::RemoveNodeAttributeCommandImpl::element):
          (khtml::RemoveNodeAttributeCommandImpl::attribute):
          (khtml::RemoveNodePreservingChildrenCommandImpl::node):
          (khtml::SetNodeAttributeCommandImpl::element):
          (khtml::SetNodeAttributeCommandImpl::attribute):
          (khtml::SetNodeAttributeCommandImpl::value):
          
          
          Fixed a bug where the TreeWalker returned the current node instead
          of null when an attempt was made to use the iterator to go to a
          non-existent location.
          
          * khtml/xml/dom2_traversalimpl.cpp:
          (DOM::TreeWalkerImpl::parentNode):
          (DOM::TreeWalkerImpl::firstChild):
          (DOM::TreeWalkerImpl::lastChild):
          (DOM::TreeWalkerImpl::previousSibling):
          (DOM::TreeWalkerImpl::nextSibling):
          (DOM::TreeWalkerImpl::previousNode):
          (DOM::TreeWalkerImpl::nextNode):
          
          
          A convenience.
          
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::hasAttributes):
          * khtml/xml/dom_elementimpl.h:
          
          
          New helpers to begin moving us to using DOM Range-compliant positions in our code.
          
          * khtml/xml/dom_position.cpp:
          (DOM::Position::equivalentRangeCompliantPosition):
          (DOM::Position::equivalentShallowPosition):
          (DOM::Position::inLastEditableInContainingEditableBlock):
          
          
          (DOM::Position::debugPosition): Debugging aid.
          * khtml/xml/dom_position.h:
         
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge applyStyle:]): First bit of wiring up. Some hard-coded temporary code 
          in here will need to be improved soon.
  
  2004-05-12  David Hyatt  <hyatt at apple.com>
  
  	Improve layout scheduling.  Make sure no layouts can be scheduled until over a minimum delay threshold.
  	
          * khtml/khtmlview.cpp:
          (KHTMLView::scheduleRelayout):
          * khtml/rendering/render_frames.cpp:
          (RenderPart::updateWidgetPositions):
          * khtml/rendering/render_text.cpp:
          (RenderText::paint):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::close):
          (DocumentImpl::setParsing):
          (DocumentImpl::shouldScheduleLayout):
          (DocumentImpl::minimumLayoutDelay):
          * khtml/xml/dom_docimpl.h:
  
  2004-05-11  Chris Blumenberg  <cblu at apple.com>
  
  	Support for: <rdar://problem/3616471>: (API: provide way to get from WebFrame to DOMDocument and vice versa)
  
          Reviewed by rjw.
  
          * kwq/DOM.mm:
          (-[DOMDocument _ownerElement]): new
          * kwq/DOMInternal.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge frameElement]): new
  
  2004-05-11  David Hyatt  <hyatt at apple.com>
  
  	Fix makeChildrenNonInline so that it does not wrap floats unless an inline is actually found.
  
          Fix block minmaxwidth to add together contiguous runs of floats.
  
  	Fix the content image loader to not destroy the image when removed from the document.
  
          Reviewed by darin
  	
          * ChangeLog:
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageLoader::~HTMLImageLoader):
          (HTMLImageElementImpl::detach):
          * khtml/html/html_imageimpl.h:
          (DOM::):
          * khtml/html/html_objectimpl.cpp:
          (HTMLObjectElementImpl::createRenderer):
          * khtml/html/html_objectimpl.h:
          * khtml/rendering/render_block.cpp:
          (khtml::getInlineRun):
          (khtml::RenderBlock::calcInlineMinMaxWidth):
          (khtml::RenderBlock::calcBlockMinMaxWidth):
  
  2004-05-06  David Hyatt  <hyatt at apple.com>
  
  	Fix makeChildrenNonInline so that it does not wrap floats unless an inline is actually found.
  
  	Fix block minmaxwidth to add together contiguous runs of floats.
  
  	Fix the content image loader to not destroy the image when removed from the document.
  	
          Reviewed by darin
  
          * khtml/rendering/render_block.cpp:
          (khtml::getInlineRun):
          (khtml::RenderBlock::calcBlockMinMaxWidth):
  
  2004-05-11  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Vicki (fixed by Darin).
  
          * kwq/KWQKSSLKeyGen.h: fix build failure in B&I due to case sensitivity
  
  2004-05-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- avoid redecoding animated images that are only used once for
  	~2.5% iBench speedup (WebCore part of fix)
  
          * khtml/rendering/render_image.cpp:
          (RenderImage::setPixmap): Maintain use count for pixmap.
          (RenderImage::~RenderImage): Likewise.
          * kwq/KWQPixmap.h:
          * kwq/KWQPixmap.mm:
          (QPixmap::increaseUseCount): Call WebCoreImageRenderer
          (QPixmap::decreaseUseCount): Call WebCoreImageRenderer
          * kwq/WebCoreImageRenderer.h: Prototype new protocol methods.
  
  2004-05-10  David Hyatt  <hyatt at apple.com>
  
  	Make sure that when finished parsing if all the right conditions are met, we just go ahead and updateRendering and
  	layout.
  	
          Reviewed by rjw
  	
          * khtml/khtmlview.cpp:
          (KHTMLView::scheduleRelayout):
  
  2004-05-08  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	- some minor performance tweaks that together give .5% or so on
  	the HTML iBench
  	
          * khtml/css/css_valueimpl.h: don't use a bitfield for id and important,
  	unpacking the bitfield is too expensive
          * kwq/KWQArrayImpl.h:
          * kwq/KWQArrayImpl.mm:
          (KWQArrayImpl::at): inline this method because it's so hot
          * kwq/KWQString.mm:
          (allocateHandle): inline this function because it's so hot
          (initializeHandleNodes): move this in the file so above can be inlined
          (allocateNode): ditto
  
  2004-05-10  David Hyatt  <hyatt at apple.com>
  
  	Move image loading to content.
  	
          Reviewed by kocienda
  
          * khtml/html/html_imageimpl.cpp:
          (m_imageComplete):
          (HTMLImageLoader::~HTMLImageLoader):
          (HTMLImageLoader::updateFromElement):
          (HTMLImageLoader::removedFromDocument):
          (HTMLImageLoader::dispatchLoadEvent):
          (HTMLImageLoader::notifyFinished):
          (HTMLImageElementImpl::HTMLImageElementImpl):
          (HTMLImageElementImpl::parseHTMLAttribute):
          (HTMLImageElementImpl::attach):
          (HTMLImageElementImpl::detach):
          (HTMLImageElementImpl::removedFromDocument):
          (HTMLImageElementImpl::currentImage):
          * khtml/html/html_imageimpl.h:
          (DOM::):
          * khtml/html/html_objectimpl.cpp:
          (HTMLObjectElementImpl::HTMLObjectElementImpl):
          (HTMLObjectElementImpl::removedFromDocument):
          (HTMLObjectElementImpl::attach):
          * khtml/html/html_objectimpl.h:
          * khtml/misc/loader.cpp:
          (CachedImage::ref):
          * khtml/rendering/render_image.cpp:
          (RenderImage::RenderImage):
          (RenderImage::setImage):
          (RenderImage::updateAltText):
          * khtml/rendering/render_image.h:
          (khtml::RenderImage::getImage):
          * khtml/rendering/render_object.cpp:
          (RenderObject::canvas):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::dispatchImageLoadEventSoon):
          (DocumentImpl::removeImage):
          (DocumentImpl::dispatchImageLoadEventsNow):
          * khtml/xml/dom_docimpl.h:
  
  2004-05-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Vicki.
  
          - fixed build failure seen in B&I log (due to case sensitive file system?)
  
          * kwq/KWQLoader.h: Include "KWQCString.h" rather than "QCString.h". The latter was
          failing because the forwarding header is called "qcstring.h" and I guess B&I started
          building with a case sensitive file system. I could have changed this to "qcstring.h",
          but it seemed better to use the header's real name since we're inside KWQ here.
  
  2004-05-07  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	- change things around so extremely hot TokenizerString::current()
  	method doesn't have to do any work. It's cheaper to maintain the
  	relevant state than to always compute it.
  	
          * khtml/misc/stringit.h:
          (khtml::TokenizerString::TokenizerString): Initialize m_currentChar
          (khtml::TokenizerString::push): update m_currentChar
          (khtml::TokenizerString::advance): ditto
          (khtml::TokenizerString::current): return m_currentChar
          * khtml/misc/stringit.cpp:
          (khtml::TokenizerString::clear): update m_currentChar
          (khtml::TokenizerString::append): update m_currentChar
          (khtml::TokenizerString::prepend): update m_currentChar
  
  2004-05-07  Don Melton  <gramps at apple.com>
  
          Reviewed by Dave.
  
  	Fixed minor, edge-case regression in KEYGEN RSA logic caused by Dave's
  	"atomic string" patch back in January.
  
          * khtml/html/html_formimpl.cpp:
          (HTMLKeygenElementImpl::encoding):
  
  === Safari-139 ===
  
  2004-05-06  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- two trivial changes for a 1% speedup, thanks to Shark
  	
          * khtml/dom/dom_string.cpp:
          * khtml/dom/dom_string.h:
          (DOM::DOMString::~DOMString): inline this method because it's hot and the
  	function call overhead was very costly.
          * WebCore.pbproj/project.pbxproj: Add -falign-loops=16
  	optimization flag, as suggested by Shark.
  
  2004-05-06  Chris Blumenberg  <cblu at apple.com>
  
  	Added alpha to DOMRGBColor as an extension.
  
          Reviewed by dave.
  
          * kwq/DOM-CSS.mm:
          (-[DOMRGBColor alpha]): new
          * kwq/DOMExtensions.h:
  
  2004-05-05  David Hyatt  <hyatt at apple.com>
  
  	Fix whitespace rendering for brs inside pres. The bug is 3640711.
  	
          Reviewed by kocienda
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
          (khtml::RenderBlock::findNextLineBreak):
  
  2004-04-25  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
          * khtml/ecma/kjs_events.cpp:
          (JSLazyEventListener::parseCode): Make sure to protect the
  	permanent "event" string object.
  
  2004-05-05  David Hyatt  <hyatt at apple.com>
  
  	Fixes for 3637924, 3643356, and 3558513, all crashes in recalcStyle.  Make sure the tree is always in a
  	sane state when removing children while changing .innerHTML.
  	
          Reviewed by darin
  
          * khtml/xml/dom_nodeimpl.cpp:
  
  2004-05-05  David Hyatt  <hyatt at apple.com>
  
  	A collection of fixes.
  
  	(1) Fix a regression from the style sharing landing that made visited and unvisited links accidentally share.
  	(2) Make sure 100% height divs fill the <body> in quirks mode, even if the body has no height specified.
  	(3) Make sure table cell percentage heights exclude border/padding.
  	(4) Make sure that before flexing auto height is used for the contents of the cells.
  	
          Reviewed by darin
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::canShareStyleWithElement):
          (khtml::CSSStyleSelector::locateSharedStyle):
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcPercentageHeight):
          * khtml/rendering/render_table.cpp:
          (RenderTable::layout):
          (RenderTableSection::layoutRows):
  
  2004-05-05  Chris Blumenberg  <cblu at apple.com>
  
  	- DOM Extensions API tweaks
  	- Implemented outerHTML
  
          Reviewed by kocienda.
  
          * WebCore-combined.exp:
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::outerHTML): new
          (HTMLElementImpl::setOuterHTML): mew
          * khtml/html/html_elementimpl.h:
          * kwq/DOMExtensions.h: removed background methods on table and table cell since these are unnecessary conveniences
          * kwq/DOMHTML.mm:
          (-[DOMHTMLElement outerHTML]): new
          (-[DOMHTMLElement setOuterHTML:]): mew
  
  2004-05-04  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3641331, make sure <th> elements don't reset text-align to center if they inherit a specified
  	value.
  
  	Also remove the styles from <abbr> and <acronym>.
  	
          Reviewed by darin
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::adjustRenderStyle):
          * khtml/css/html4.css:
          * khtml/css/quirks.css:
  
  2004-05-04  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Fix for behavior which extends selection drawing to beginning and end of blocks.
          I added this feature a few days ago, but my checks to see if the extension should
          be done was naive: Is first or last item in root line box selected? Clearly this 
          needs to be "selection is *beyond* first or last item in root line box. Done.
  
          * khtml/rendering/render_image.cpp:
          (RenderImage::paint): Add selectionState() == SelectionInside check.
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::paintSelection): Constrain passed-in offsets to be relative to box.
          Use passed-in offsets to check whether selection extends beyond this box. Also, now
          passes in flag to tell whether the whole RenderText has selectionState() == SelectionInside
          (in which case you always want to extend).
          (RenderText::paint): Remove box offset constraining from here. Now done in above function.
          * khtml/rendering/render_text.h: Modify paintSelection interface to add 
          selectionState() == SelectionInside flag.
  
  2004-05-04  Ken Kocienda  <kocienda at apple.com>
  
          Added layout tests for DOM traversal objects.
  
          * layout-tests/traversal/node-iterator-001-expected.txt: Added.
          * layout-tests/traversal/node-iterator-001.html: Added.
          * layout-tests/traversal/node-iterator-002-expected.txt: Added.
          * layout-tests/traversal/node-iterator-002.html: Added.
          * layout-tests/traversal/node-iterator-003-expected.txt: Added.
          * layout-tests/traversal/node-iterator-003.html: Added.
          * layout-tests/traversal/node-iterator-004-expected.txt: Added.
          * layout-tests/traversal/node-iterator-004.html: Added.
          * layout-tests/traversal/node-iterator-005-expected.txt: Added.
          * layout-tests/traversal/node-iterator-005.html: Added.
          * layout-tests/traversal/node-iterator-006-expected.txt: Added.
          * layout-tests/traversal/node-iterator-006.html: Added.
          * layout-tests/traversal/node-iterator-007-expected.txt: Added.
          * layout-tests/traversal/node-iterator-007.html: Added.
          * layout-tests/traversal/traversal.js: Added.
          * layout-tests/traversal/tree-walker-001-expected.txt: Added.
          * layout-tests/traversal/tree-walker-001.html: Added.
          * layout-tests/traversal/tree-walker-002-expected.txt: Added.
          * layout-tests/traversal/tree-walker-002.html: Added.
          * layout-tests/traversal/tree-walker-003-expected.txt: Added.
          * layout-tests/traversal/tree-walker-003.html: Added.
          * layout-tests/traversal/tree-walker-004-expected.txt: Added.
          * layout-tests/traversal/tree-walker-004.html: Added.
  
  2004-05-04  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/xml/dom2_traversalimpl.cpp:
          (DOM::NodeIteratorImpl::nextNode): Change to make NodeIterators behave like the spec in that
          reference node is null until you iterate the first time. 
          (DOM::NodeIteratorImpl::previousNode): Ditto.
  
  2004-05-04  Ken Kocienda  <kocienda at apple.com>
  
          * WebCore.pbproj/project.pbxproj: Backed out unintentional
          change.
  
  2004-05-04  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Implemented DOM traversal objects, NodeIterator and TreeWalker.
  
          * WebCore-combined.exp: Regenerate
          * WebCore.exp: Export DOMNodeFilter protocol
          * khtml/dom/dom2_traversal.cpp: Completed half-done implementation pulled from KDE tree.
          * khtml/dom/dom2_traversal.h: Ditto.
          * khtml/dom/dom_doc.cpp:
          (DOM::Document::createNodeIterator): Ditto.
          (DOM::Document::createTreeWalker): Ditto.
          * khtml/dom/dom_doc.h: Ditto.
          * khtml/ecma/kjs_dom.cpp:
          (DOMDocumentProtoFunc::tryCall): Fix cases that create traversal objects.
          * khtml/ecma/kjs_traversal.cpp:
          (DOMNodeIterator::getValueProperty): Add referenceNode and pointerBeforeReferenceNode
          properties to node interator.
          (DOMTreeWalkerProtoFunc::tryCall): Fix typo where DOMTreeWalker::PreviousNode case called previousSibling function.
          (JSNodeFilterCondition::JSNodeFilterCondition): Implement JS glue class for node filter conditions.
          (JSNodeFilterCondition::acceptNode): Ditto.
          * khtml/ecma/kjs_traversal.h:
          (KJS::DOMNodeIterator::): Add ReferenceNode and PointerBeforeReferenceNode constants.
          * khtml/ecma/kjs_traversal.lut.h:
          (KJS::): Regenerated
          * khtml/xml/dom2_traversalimpl.cpp: Completed half-done implementation pulled from KDE tree.
          * khtml/xml/dom2_traversalimpl.h: Ditto.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createNodeIterator): Ditto.
          (DocumentImpl::createTreeWalker): Ditto.
          * khtml/xml/dom_docimpl.h: Ditto.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::checkAddChild): Patched due to change in isAncestor function. This was the one pre-existing caller.
          (NodeImpl::isAncestor): Changed so that it does not return true for itself: node->isAncestor(node) now returns false.
          * khtml/xml/dom_nodeimpl.h: Made isAncestor const.
          * kwq/DOM.mm: Implemented obj-c glue for traversal objects.
          * kwq/DOMInternal.h: Ditto.
          * kwq/DOMTraversal.h: Ditto.
  
  2004-05-04  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3642252>: "starting to drag a link and then releasing needs to activate the link if you are still over it"
  
          * khtml/khtmlview.cpp:
          (KHTMLView::viewportMouseMoveEvent): Put hysteresis check inside !APPLE_CHANGES because
          the Web Kit does our hysteresis checks.
          (KHTMLView::viewportMouseReleaseEvent): Ditto.
  
          * kwq/KWQApplication.h: Removed startDragDistance and globalStrut; unused.
          * kwq/KWQApplication.mm: Removed the implementations.
          * kwq/KWQPointArray.h: Removed manhattanLength; unused.
          * kwq/KWQPoint.mm:  Removed the implementation.
  
          * WebCore-tests.exp: Removed manhattanLength.
          * WebCore-combined.exp: Regenerated.
  
  2004-05-03  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Nifty hack to work around problem where BR's inserted at the end of a block do not 
          render. Since only the *last* BR has this quirk, insert two when at the end of a block.
          Once done, you can't caret past the last one, so you never insert two again.
  
          * khtml/editing/htmlediting_impl.cpp:
          (InputNewlineCommandImpl::doApply)
  
  2004-05-03  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken
  
          - fixed <rdar://problem/3091531>: "should format copied tables with tabs between cells, spreadsheet-style, for pasting to Excel"
          - fixed <rdar://problem/3110002>: "Find doesn't match across formatting boundaries"
          - fixed <rdar://problem/3640340>: "REGRESSION (136-137): nil-deref in KHTMLPart::setFocusNodeIfNeeded inside triple click code after repeatedly click/drag selecting text"
          - fixed <rdar://problem/3640422>: "too many blank lines between paragraphs in copied text"
  
          * khtml/dom/dom2_range.h: Added == and != operators to DOMRange.
          * khtml/dom/dom2_range.cpp: (DOM::operator==): Added.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::init): Don't call findTextBegin any more; it's now not used at all
          in WebCore.
          (KHTMLPart::clear): Don't call findTextBegin any more. Also don't set up the
          load statistics variables.
          (KHTMLPart::findTextNext): Roll out APPLE_CHANGES; this function is no longer
          used in WebCore any more and instead the entire thing is compiled out.
          (KHTMLPart::text): Reimplement this by calling one of the new text operations. All the interesting
          parts were moved into the TextIterator class.
          (KHTMLPart::setFocusNodeIfNeeded): Add a check for nil; this is the fix for 364030.
  
          * khtml/khtmlpart_p.h: (KHTMLPartPrivate::KHTMLPartPrivate): Put m_findPos,
          m_findNode, m_overURL, m_overURLTarget, m_scrollTimer, m_loadedObjects,
          m_totalObjectCount, and m_jobPercent inside !APPLE_CHANGES.
  
          * khtml/xml/dom_selection.h: Replaced uses of 4-character tabs with spaces.
          (DOM::Selection::Selection): Added a constructor that takes a DOM range.
          (DOM::Selection::operator=): Overloaded operator= for DOM range and position.
          This is slightly more efficient than letting a second Selection object be constructed.
          * khtml/xml/dom_selection.cpp: Replaced uses of 4-character tabs with spaces.
          (DOM::Selection::Selection): Added a constructor that takes a DOM range.
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::findString): Reimplement find so it uses
          the new text operations function for finding.
  
          * khtml/misc/khtml_text_operations.h:
          * khtml/misc/khtml_text_operations.cpp:
          * WebCore.pbproj/project.pbxproj:
          Added new text iterator classes that do the heavy lifting.
  
  2004-05-03  David Hyatt  <hyatt at apple.com>
  
  	Make sure that XML processing instructions set themselves as the parent node of the stylesheets they load,
  	so that they will get stylesheetLoaded() notifications when @imported stylesheets are contained inside the
  	sheet.
  
          Reviewed by cblu
  
          * khtml/xml/dom_xmlimpl.cpp:
          (ProcessingInstructionImpl::setStyleSheet):
  
  2004-04-30  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3543662>: HITLIST-137: REGRESSION: reproducible hang copying all text at Dave's blog, and other pages
  
          Reviewed by dave.
  
          * khtml/xml/dom2_rangeimpl.cpp:
          (RangeImpl::toHTMLWithOptions): when looping with containingBlock, check the value to see if it is the same
  
  2004-04-30  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3639530, regression on generated content pages.  They crash because I forgot to null-check the style
  	object.
  	
          Reviewed by kocienda
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::checkOneSelector):
  
  2004-04-30  John Sullivan  <sullivan at apple.com>
  
          - added bridge method to get the NSFont used to render a node, to
          help with supporting the font panel
  
          Reviewed by Ken.
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge renderedFontForNode:]):
          return nil if no renderer, otherwise return NSFont
  
  2004-04-29  David Hyatt  <hyatt at apple.com>
  
  	Expose summary on tables.
  	
          Reviewed by darin
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject helpText]):
  
  2004-04-29  David Hyatt  <hyatt at apple.com>
  
  	Implement image maps for accessibility.
  	
          Reviewed by darin
  
          * khtml/html/html_imageimpl.cpp:
          (HTMLAreaElementImpl::getRect):
          * khtml/html/html_imageimpl.h:
          * khtml/rendering/render_image.cpp:
          (RenderImage::imageMap):
          (RenderImage::nodeAtPoint):
          * khtml/rendering/render_image.h:
          * kwq/KWQAccObject.h:
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject initWithRenderer:]):
          (-[KWQAccObject anchorElement]):
          (-[KWQAccObject parentObject]):
          (-[KWQAccObject parentObjectUnignored]):
          (-[KWQAccObject addChildrenToArray:]):
          (-[KWQAccObject role]):
          (-[KWQAccObject helpText]):
          (-[KWQAccObject value]):
          (-[KWQAccObject title]):
          (-[KWQAccObject position]):
          (-[KWQAccObject size]):
          (-[KWQAccObject accessibilityIsIgnored]):
          (-[KWQAccObject accessibilityAttributeNames]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          * kwq/KWQRegion.mm:
          (QRegion::boundingRect):
  
  2004-04-29  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed:
  	<rdar://problem/3631431>: web archive of .Mac welcome page renders has gaps in layout
  	<rdar://problem/3631470>: news.google.com web archive has a different font than the live site
  
          Reviewed by kocienda.
  
          * khtml/html/html_documentimpl.cpp:
          (HTMLDocumentImpl::determineParseMode): don't set a name on the doc type when there is no doc type in the source
          * khtml/xml/dom_docimpl.cpp:
          (DocumentTypeImpl::toString): don't return "<!DOCTYPE>" when there is no doc type in the source
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::recursive_toHTMLWithOptions): don't escape STYLE text, don't include the end tags for document nodes just as we don't for start tags
  
  2004-04-29  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - some tweaks on image
  
          * khtml/html/html_imageimpl.h: Remove unused noref bit and unneeded override of isURLAttribute.
          * khtml/html/html_imageimpl.cpp:
          (HTMLAreaElementImpl::HTMLAreaElementImpl): Remove unused noref bit.
          (HTMLAreaElementImpl::parseHTMLAttribute): Remove parsing of noref; no need to store the
          bit since it has no meaning.
  
  2004-04-29  David Hyatt  <hyatt at apple.com>
  
  	1. Change the role of links from AXButton to AXLink.
  	2. Add support for list markers using a new role, AXListMarker.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_list.h:
          (khtml::RenderListMarker::text):
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject role]):
          (-[KWQAccObject roleDescription]):
          (-[KWQAccObject value]):
          (-[KWQAccObject accessibilityIsIgnored]):
  
  2004-04-29  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3636566>: "space bar on a form button hits default button instead (autorestore.apple.com)"
  
          * khtml/html/html_formimpl.cpp: (HTMLInputElementImpl::defaultEventHandler):
          Remove special handling for space, falling back to default AppKit behavior. Change enter handling to
          click the form element itself in the case of elements other than text input ones.
  
  2004-04-29  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3636673>: "unrepro nil-deref crash in KHTMLPart::frameDetached() (espn.com)"
  
          * kwq/KWQKHTMLPart.mm: (KHTMLPart::frameDetached): Check for nil.
  
  2004-04-28  Chris Blumenberg  <cblu at apple.com>
  
  	- Implemented DOMHTMLElementExtensions.
  	- Added stubs for the rest of the DOM API.
  
          Reviewed by dave.
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/dom/html_element.cpp:
          (HTMLElement::setContentEditable): moved implementation from here to HTMLElementImpl
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::setContentEditable): new, moved from HTMLElement
          * khtml/html/html_elementimpl.h:
          * kwq/DOM-CSS.mm:
          (-[DOMObject sheet]):
          (-[DOMDocument getComputedStyle::]):
          * kwq/DOM.mm:
          (-[DOMAbstractView document]):
          (-[DOMDocumentView defaultView]):
          (-[DOMDocument createNodeIterator::::]):
          (-[DOMDocument createTreeWalker::::]):
          (-[DOMNodeFilter acceptNode:]):
          (-[DOMNodeIterator root]):
          (-[DOMNodeIterator whatToShow]):
          (-[DOMNodeIterator filter]):
          (-[DOMNodeIterator expandEntityReferences]):
          (-[DOMNodeIterator nextNode]):
          (-[DOMNodeIterator previousNode]):
          (-[DOMNodeIterator detach]):
          (-[DOMTreeWalker root]):
          (-[DOMTreeWalker whatToShow]):
          (-[DOMTreeWalker filter]):
          (-[DOMTreeWalker expandEntityReferences]):
          (-[DOMTreeWalker currentNode]):
          (-[DOMTreeWalker setCurrentNode:]):
          (-[DOMTreeWalker parentNode]):
          (-[DOMTreeWalker firstChild]):
          (-[DOMTreeWalker lastChild]):
          (-[DOMTreeWalker previousSibling]):
          (-[DOMTreeWalker nextSibling]):
          (-[DOMTreeWalker previousNode]):
          (-[DOMTreeWalker nextNode]):
          * kwq/DOMEvents.mm: Added.
          (-[DOMEvent type]):
          (-[DOMEvent target]):
          (-[DOMEvent currentTarget]):
          (-[DOMEvent eventPhase]):
          (-[DOMEvent bubbles]):
          (-[DOMEvent cancelable]):
          (-[DOMEvent timeStamp]):
          (-[DOMEvent stopPropagation]):
          (-[DOMEvent preventDefault]):
          (-[DOMEvent initEvent:::]):
          (-[DOMEventTarget addEventListener:::]):
          (-[DOMEventTarget removeEventListener:::]):
          (-[DOMEventTarget dispatchEvent:]):
          (-[DOMMouseEvent screenX]):
          (-[DOMMouseEvent screenY]):
          (-[DOMMouseEvent clientX]):
          (-[DOMMouseEvent clientY]):
          (-[DOMMouseEvent ctrlKey]):
          (-[DOMMouseEvent shiftKey]):
          (-[DOMMouseEvent altKey]):
          (-[DOMMouseEvent metaKey]):
          (-[DOMMouseEvent button]):
          (-[DOMMouseEvent relatedTarget]):
          (-[DOMMouseEvent initMouseEvent:::::::::::::::]):
          (-[DOMMutationEvent relatedNode]):
          (-[DOMMutationEvent prevValue]):
          (-[DOMMutationEvent newValue]):
          (-[DOMMutationEvent attrName]):
          (-[DOMMutationEvent attrChange]):
          (-[DOMMutationEvent initMutationEvent::::::::]):
          (-[DOMUIEvent view]):
          (-[DOMUIEvent detail]):
          (-[DOMUIEvent initUIEvent:::::]):
          (-[DOMDocument createEvent:]):
          * kwq/DOMHTML.mm:
          (-[DOMHTMLElement innerHTML]): implemented
          (-[DOMHTMLElement setInnerHTML:]): implemented
          (-[DOMHTMLElement innerText]): implemented
          (-[DOMHTMLElement setInnerText:]): implemented
          (-[DOMHTMLElement children]): implemented
          (-[DOMHTMLElement contentEditable]): implemented
          (-[DOMHTMLElement setContentEditable:]): implemented
          (-[DOMHTMLElement isContentEditable]): implemented
  
  2004-04-27  David Hyatt  <hyatt at apple.com>
  
  	Implement sharing of similar style objects. Cuts the # of style objects allocated on the PLT by more
  	than half.
  	
          Reviewed by kocienda
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::initElementAndPseudoState):
          (khtml::CSSStyleSelector::initForStyleResolve):
          (khtml::cleanpath):
          (khtml::checkPseudoState):
          (khtml::CSSStyleSelector::locateSiblingList):
          (khtml::CSSStyleSelector::canShareStyleWithElement):
          (khtml::CSSStyleSelector::locateSharedStyle):
          (khtml::CSSStyleSelector::styleForElement):
          (khtml::CSSStyleSelector::pseudoStyleForElement):
          (khtml::CSSStyleSelector::checkOneSelector):
          * khtml/css/cssstyleselector.h:
          * khtml/css/html4.css:
          * khtml/css/parser.cpp:
          * khtml/css/parser.y:
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::mapToEntry):
          (HTMLIFrameElementImpl::mapToEntry):
          * khtml/html/html_baseimpl.h:
          * khtml/html/html_blockimpl.cpp:
          (HTMLDivElementImpl::mapToEntry):
          (HTMLHRElementImpl::mapToEntry):
          (HTMLParagraphElementImpl::mapToEntry):
          (HTMLMarqueeElementImpl::mapToEntry):
          * khtml/html/html_blockimpl.h:
          * khtml/html/html_elementimpl.cpp:
          (HTMLNamedAttrMapImpl::declCount):
          (HTMLNamedAttrMapImpl::mapsEquivalent):
          (HTMLElementImpl::attributeChanged):
          (HTMLElementImpl::mapToEntry):
          * khtml/html/html_elementimpl.h:
          (DOM::HTMLElementImpl::isMappedAttribute):
          * khtml/html/html_formimpl.cpp:
          (HTMLInputElementImpl::mapToEntry):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageElementImpl::mapToEntry):
          * khtml/html/html_imageimpl.h:
          * khtml/html/html_inlineimpl.cpp:
          (HTMLBRElementImpl::mapToEntry):
          (HTMLFontElementImpl::mapToEntry):
          * khtml/html/html_inlineimpl.h:
          * khtml/html/html_listimpl.cpp:
          (HTMLUListElementImpl::mapToEntry):
          (HTMLOListElementImpl::mapToEntry):
          (HTMLLIElementImpl::mapToEntry):
          * khtml/html/html_listimpl.h:
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::mapToEntry):
          (HTMLEmbedElementImpl::mapToEntry):
          (HTMLObjectElementImpl::mapToEntry):
          * khtml/html/html_objectimpl.h:
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableElementImpl::mapToEntry):
          (HTMLTablePartElementImpl::mapToEntry):
          (HTMLTableCellElementImpl::mapToEntry):
          (HTMLTableColElementImpl::mapToEntry):
          (HTMLTableCaptionElementImpl::mapToEntry):
          * khtml/html/html_tableimpl.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::setStyle):
          * khtml/rendering/render_style.cpp:
          (m_affectedByAttributeSelectors):
          (RenderStyle::RenderStyle):
          * khtml/rendering/render_style.h:
          (khtml::):
          (khtml::RenderStyle::pseudoState):
          (khtml::RenderStyle::setPseudoState):
          (khtml::RenderStyle::affectedByAttributeSelectors):
          (khtml::RenderStyle::setAffectedByAttributeSelectors):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::usesSiblingRules):
          (DOM::DocumentImpl::setUsesSiblingRules):
  
  2004-04-28  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris.
  
          - another step of refinement on the reinterpret_cast stuff; now it's a compile-time
            error if you do it wrong
          - fixed a couple of storage leaks
  
          * kwq/DOMInternal.h: Added new DOM_cast template function. Like reinterpret_cast, but a
          compile-time error if you use it with the wrong parameters. Also added type-safe versions
          of the wrapper functions that do the DOM_cast automatically.
          * kwq/DOMInternal.mm:
          (getDOMWrapperImpl): Changed name and parameter type as part of above change.
          (addDOMWrapperImpl): Ditto.
          (removeDOMWrapper): Ditto.
  
          * kwq/DOM.mm: Use the new DOM_cast instead of reinterpret_cast, and the new
          DOM wrapper calls that do the cast automatically.
          * kwq/DOM-CSS.mm: More of the same.
          (-[DOMCSSStyleSheet dealloc]): Added override to deref, fixes leak.
          * kwq/DOMHTML.mm: More of the same.
          (-[DOMHTMLCollection dealloc]): Added override to deref, fixes leak.
          (-[DOMHTMLOptionsCollection dealloc]): Added override to deref, fixes theoretical leak.
  
  2004-04-28  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris.
  
          - fixed reinterpret_cast mistakes and some style issues in DOM implementation
  
          * kwq/DOM-CSS.mm:
          (-[DOMCSSStyleRule _styleRuleImpl]): Fix broken reinterpret_cast; you must reinterpret_cast back
          to the class you reinterpret_casted from, not to a derived class.
          (-[DOMCSSMediaRule _mediaRuleImpl]): Ditto.
          (-[DOMCSSFontFaceRule _fontFaceRuleImpl]): Ditto.
          (-[DOMCSSPageRule _pageRuleImpl]): Ditto.
          (-[DOMCSSImportRule _importRuleImpl]): Ditto.
          (-[DOMCSSCharsetRule _importRuleImpl]): Ditto.
          * kwq/DOMHTML.mm:
          (-[DOMHTMLOptionsCollection length]): Put in an "unimplemented" version instead of leaving out
          the class implementation altogether.
          (-[DOMHTMLOptionsCollection setLength:]): Ditto.
          (-[DOMHTMLOptionsCollection item:]): Ditto.
          (-[DOMHTMLOptionsCollection namedItem:]): Ditto.
          (+[DOMHTMLElement _elementWithImpl:]): Corrected this implementation. The wrapper must use a
          standard node wrapper, since this is a subclass of DOMNode. Also moved into a separate category
          so it gets checked against the declarations above.
          (-[DOMHTMLElement _HTMLElementImpl]): Fix broken reinterpret_cast.
          (-[DOMHTMLHtmlElement _HTMLHtmlElementImpl]): Ditto.
          (-[DOMHTMLHeadElement _headElementImpl]): Ditto.
          (-[DOMHTMLLinkElement _linkElementImpl]): Ditto.
          (-[DOMHTMLTitleElement _titleElementImpl]): Ditto.
          (-[DOMHTMLMetaElement _metaElementImpl]): Ditto.
          (-[DOMHTMLBaseElement _baseElementImpl]): Ditto.
          (-[DOMHTMLStyleElement _styleElementImpl]): Ditto.
          (-[DOMHTMLBodyElement _bodyElementImpl]): Ditto.
          (-[DOMHTMLFormElement _formElementImpl]): Ditto.
          (+[DOMHTMLFormElement _formElementWithImpl:]): Another DOMNode subclass wrapper fix.
          (-[DOMHTMLIsIndexElement _isIndexElementImpl]): Fix broken reinterpret_cast.
          (-[DOMHTMLSelectElement _selectElementImpl]): Ditto.
          (-[DOMHTMLOptGroupElement _optGroupElementImpl]): Ditto.
          (-[DOMHTMLOptionElement _optionElementImpl]): Ditto.
          (-[DOMHTMLInputElement _inputElementImpl]): Ditto.
          (-[DOMHTMLTextAreaElement _textAreaElementImpl]): Ditto.
          (-[DOMHTMLButtonElement _buttonElementImpl]): Ditto.
          (-[DOMHTMLLabelElement _labelElementImpl]): Ditto.
          (-[DOMHTMLFieldSetElement _fieldSetElementImpl]): Ditto.
          (-[DOMHTMLLegendElement _legendElementImpl]): Ditto.
          (-[DOMHTMLUListElement _uListElementImpl]): Ditto.
          (-[DOMHTMLOListElement _oListElementImpl]): Ditto.
          (-[DOMHTMLDListElement _dListElementImpl]): Ditto.
          (-[DOMHTMLDirectoryElement _directoryListElementImpl]): Ditto.
          (-[DOMHTMLMenuElement _menuListElementImpl]): Ditto.
          (-[DOMHTMLLIElement _liElementImpl]): Ditto.
          (-[DOMHTMLQuoteElement _quoteElementImpl]): Ditto.
          (-[DOMHTMLDivElement _divElementImpl]): Ditto.
          (-[DOMHTMLParagraphElement _paragraphElementImpl]): Ditto.
          (-[DOMHTMLHeadingElement _headingElementImpl]): Ditto.
          (-[DOMHTMLPreElement _preElementImpl]): Ditto.
          (-[DOMHTMLBRElement _BRElementImpl]): Ditto.
          (-[DOMHTMLBaseFontElement _baseFontElementImpl]): Ditto.
          (-[DOMHTMLFontElement _fontElementImpl]): Ditto.
          (-[DOMHTMLHRElement _HRElementImpl]): Ditto.
          (-[DOMHTMLModElement _modElementImpl]): Ditto.
          (-[DOMHTMLAnchorElement _anchorElementImpl]): Ditto.
          (-[DOMHTMLImageElement _imageElementImpl]): Ditto.
          (-[DOMHTMLObjectElement _objectElementImpl]): Ditto.
          (-[DOMHTMLParamElement _paramElementImpl]): Ditto.
          (-[DOMHTMLAppletElement _appletElementImpl]): Ditto.
          (-[DOMHTMLMapElement _mapElementImpl]): Ditto.
          (-[DOMHTMLAreaElement _areaElementImpl]): Ditto.
          (-[DOMHTMLScriptElement _scriptElementImpl]): Ditto.
          (+[DOMHTMLTableCaptionElement _tableCaptionElementWithImpl:]): Another DOMNode subclass wrapper fix.
          (-[DOMHTMLTableCaptionElement _tableCaptionElementImpl]): Fix broken reinterpret_cast.
          (+[DOMHTMLTableSectionElement _tableSectionElementWithImpl:]): Another DOMNode subclass wrapper fix.
          (-[DOMHTMLTableSectionElement _tableSectionElementImpl]): Fix broken reinterpret_cast.
          (+[DOMHTMLTableElement _tableElementWithImpl:]): Another DOMNode subclass wrapper fix.
          (-[DOMHTMLTableElement _tableElementImpl]): Fix broken reinterpret_cast.
          (-[DOMHTMLTableColElement _tableColElementImpl]): Ditto.
          (-[DOMHTMLTableRowElement _tableRowElementImpl]): Ditto.
          (+[DOMHTMLTableCellElement _tableCellElementWithImpl:]): Another DOMNode subclass wrapper fix.
          (-[DOMHTMLTableCellElement _tableCellElementImpl]): Fix broken reinterpret_cast.
          (-[DOMHTMLFrameSetElement _frameSetElementImpl]): Ditto.
          (-[DOMHTMLFrameElement _frameElementImpl]): Ditto.
          (-[DOMHTMLIFrameElement _IFrameElementImpl]): Ditto.
          (-[DOMHTMLEmbedElement _embedElementImpl]): Ditto.
  
          * kwq/HTMLDOM.mm: Removed.
  
  2004-04-28  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::notifySelectionChanged): Call new postDidChangeSelectionNotification function
          to send Cocoa notification when the selection changes.
          (KHTMLPart::appliedEditing): Call postDidChangeNotification to send Cocoa notification when the document changes
          due to editing.
          (KHTMLPart::unappliedEditing): Ditto.
          (KHTMLPart::reappliedEditing): Ditto.
          * kwq/DOMHTML.mm:
          (-[DOMHTMLDocument _HTMLDocumentImpl]): Fix cast to account for multiple inheritance used by the impl class.
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::postDidChangeSelectionNotification): New function. Call the bridge to post the notification.
          (KWQKHTMLPart::postDidChangeNotification): Ditto.
          * kwq/WebCoreBridge.h: Declare new -postDidChangeSelectionNotification and -postDidChangeNotification methods.
  
  2004-04-28  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3636261>: "nil-deref in selectedStylesheetSet iterating through properties in a non-view document"
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::selectedStylesheetSet): Add nil check.
          (DocumentImpl::setSelectedStylesheetSet): Ditto.
  
  2004-04-27  Richard Williamson   <rjw at apple.com>
  
  	<rdar://problem/3564519>: API: please add a way to set the media type for a WebView
  
          Reviewed by Chris.
  
          * khtml/khtmlview.cpp:
          (KHTMLView::mediaType):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::overrideMediaType):
          * kwq/WebCoreBridge.h:
  
  2004-04-27  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Make selections draw in a more Cocoa-like way, where
          fully-selected lines draw out to the ends of lines, and
          spaces between lines are drawn with the selection color as well.
  
          * WebCore-combined.exp: Add _WebCoreInitializeEmptyTextGeometry symbol
          * WebCore.exp: Ditto.
          * khtml/khtml_part.cpp:
          (KHTMLPart::isPointInsideSelection): Marginally-related change. Fix up this function
          so that it works right, given my recent changes to positionForCoordinates. This fix
          "really" fixes the problem. Unlike my attempt to fix yesterday.
          * khtml/rendering/font.cpp:
          (Font::drawHighlightForText): New drawHighlightForText interface which includes extra
          information to draw the selection.
          * khtml/rendering/font.h: Ditto.
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::positionForCoordinates): Some minor improvements and cleanups to
          make this code work correctly in more cases.
          * khtml/rendering/render_block.h: Remove spurious semi-colon after namespace block.
          * khtml/rendering/render_container.cpp:
          (RenderContainer::positionForCoordinates): Fix typo in comment. Also, clean up
          one unnecessary call to absolutePosition.
          * khtml/rendering/render_image.cpp:
          (RenderImage::paint): Many changes to add the new selection drawing behavior.
          * khtml/rendering/render_inline.cpp:
          (RenderInline::positionForCoordinates): Added to help make selections work right 
          with continuations.
          * khtml/rendering/render_inline.h: Ditto.
          * khtml/rendering/render_object.h: Give zero default argument to inlineBox() helper.
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::paintSelection): Many changes to add the new selection drawing behavior.
          * kwq/KWQListBox.mm:
          (-[KWQTableView drawRow:clipRect:]): Use new WebCoreTextGeometry struct.
          * kwq/KWQPainter.h: New drawHighlightForText interface which includes extra
          information to draw the selection.
          * kwq/KWQPainter.mm:
          (QPainter::drawText): Use new WebCoreInitializeEmptyTextGeometry struct.
          (QPainter::drawHighlightForText): Use new WebCoreTextGeometry struct.
          * kwq/WebCoreTextRenderer.h: Declare new WebCoreTextGeometry struct.
          * kwq/WebCoreTextRendererFactory.m:
          (WebCoreInitializeEmptyTextGeometry): Initializer for WebCoreTextGeometry struct.
  
  2004-04-27  Richard Williamson   <rjw at apple.com>
  
  	Don't do unnecessary string comparisons when no composite operator is
  	specified.  
  
          Reviewed by Hyatt.
  
          * kwq/KWQPainter.mm:
          (compositeOperatorFromString):
  
  2004-04-27  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3623694>: "top level <option> and <optgroup> labels look identical in pop-up menus; should not"
  
          * khtml/rendering/render_form.cpp: (RenderSelect::updateFromElement):
          Call appendGroupLabel instead of appendItem for group labels.
  
          * kwq/KWQComboBox.h: Added appendGroupLabel, private setControlSize, labelFont, setTitle, _labelFont,
          and make _items a QValueList<KWQListBoxItem> instead of QStringList.
          * kwq/KWQComboBox.mm:
          (QComboBox::QComboBox): Initializes _labelFont to nil.
          (QComboBox::~QComboBox): Release _labelFont.
          (QComboBox::setTitle): Added helper function. Uses an attributed string for group labels, and also sets
          the action to NULL so they are disabled.
          (QComboBox::appendItem): Added isLabel boolean parameter, make KWQListBoxItem, call setTitle.
          (QComboBox::sizeHint): Changed to handle group labels with a separate renderer to measure bolded text.
          (QComboBox::setCurrentItem): Changed to use setTitle helper.
          (QComboBox::setFont): Release _labelFont if control size changed.
          (QComboBox::labelFont): Compute label font lazily.
          (QComboBox::populateMenu): Changed to use setTitle helper.
  
          * kwq/KWQListBox.h: Removed excess includes, fixed comment.
  
  2004-04-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - follow-on to fix for <rdar://problem/3488892>: "anchor names with non-ASCII characters in them do not work"
          This part fixes anchor names with non-ASCII characters in local files.
  
          * kwq/KWQKURL.mm: (KURL::KURL): For file and help URLs, force UTF-8 only for the path part of the URL.
          Use the document encoding for the rest of the URL.
          * kwq/KWQTextCodec.h: (operator!=): Added.
  
  2004-04-26  David Hyatt  <hyatt at apple.com>
  
  	Fix for Emerson truncation problem using apple-line-clamp.  Always dirty positioned objects so that they
  	will move when the height changes.
  	
          Reviewed by darin
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::markPositionedObjectsForLayout):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::layoutVerticalBox):
  
  2004-04-26  Richard Williamson   <rjw at apple.com>
  
  	Added support for specifying composite operation on an
  	image element.  Attribute name is "composite", possible values
  	are:
  
  	clear,
  	copy
  	source-over
  	source-in
  	source-out
  	source-atop
  	destination-over
  	destination-in
  	destination-out
  	destination-atop
  	xor
  	darker
  	highlight
  	lighter
  
  	<img composite="source-over" src="triangle.png">
  	<img style="position:relative; left:-200px;" composite="destination-in" src="circle.png">
  
          Reviewed by Ken.
  
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageElementImpl::parseHTMLAttribute):
          * khtml/html/html_imageimpl.h:
          (DOM::HTMLImageElementImpl::compositeOperator):
          * khtml/misc/htmlattrs.c:
          (findAttr):
          * khtml/misc/htmlattrs.h:
          * khtml/misc/htmlattrs.in:
          * khtml/rendering/render_image.cpp:
          (RenderImage::paint):
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (compositeOperatorFromString):
          (QPainter::drawPixmap):
          * kwq/WebCoreImageRenderer.h:
  
  2004-04-26  Darin Adler  <darin at apple.com>
  
          - fixed <rdar://problem/3634145>: "REGRESSION: nil-deref in QTextCodec::toUnicode every time loading page at wiki.wordpress.org"
  
          * kwq/KWQKURL.mm:
          (KURL::KURL): Simplify check for nil that defaults to UTF-8.
          (KURL::decode_string): Add a similar test here.
  
  2004-04-26  David Hyatt  <hyatt at apple.com>
  
  	Implement the quirk that makes the <body> and <html> size to fill the viewport in quirks mode.  This
  	matches WinIE.
  	
          Reviewed by john
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcHeight):
  
  2004-04-26  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
          
          Fix for this bug:
          
          <rdar://problem/3633458>: "REGRESSION (125-137): Can't drag a selection unless it starts at beginning of line"
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::isPointInsideSelection): I flubbed when I converted this
          code to use my new positionForCoordinates helper. I failed to add in
          the passed in values for x and y to the absolute coordinates for the
          clicked node. So, the "unless it starts at beginning of line" behavior 
          is exactly as one would expect.
  
  2004-04-25  David Hyatt  <hyatt at apple.com>
  
  	Eliminate overhangingContents.  This concept was redundant with the overflowHeight mechanism that I
  	implemented some time ago, and in fact, it causes us to grovel through much more of the render tree
  	than we should when painting.  It turns out that none of the places that used this boolean needed
  	to any longer, and so the entire implementation can now be removed from the tree.
  	
          Reviewed by mjs, darin
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::addChildToFlow):
          (khtml::RenderBlock::layoutBlock):
          (khtml::RenderBlock::paint):
          (khtml::RenderBlock::insertPositionedObject):
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcHeight):
          * khtml/rendering/render_image.cpp:
          (RenderImage::setStyle):
          * khtml/rendering/render_inline.cpp:
          (RenderInline::addChildToFlow):
          * khtml/rendering/render_object.cpp:
          (RenderObject::RenderObject):
          (RenderObject::containingBlock):
          (RenderObject::information):
          (RenderObject::dump):
          (RenderObject::nodeAtPoint):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::minMaxKnown):
          * khtml/rendering/render_table.cpp:
          (RenderTable::layout):
          (RenderTable::paint):
          (RenderTableCell::paint):
  
  2004-04-23  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3258403, implement support for min-height and max-height on normal flow elements.  With this patch the
  	only min-height/max-height work that remains to be done is for table cells and positioned elements.
  	
          Reviewed by darin
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcHeight):
          (RenderBox::calcHeightUsing):
          (RenderBox::calcPercentageHeight):
          * khtml/rendering/render_box.h:
          * layout-tests/fast/block/basic/minheight-expected.txt: Added.
          * layout-tests/fast/block/basic/minheight.html: Added.
  
  2004-04-25  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed <rdar://problem/3633091>: "add overrideMimeType function to XMLHttpRequest"
  
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::getValueProperty): Add logic to override MIME type if
          OverrideMIMEType was called.
          (KJS::XMLHttpRequestProtoFunc::tryCall): Store the MIME type when overrideMimeType is called.
          * khtml/ecma/xmlhttprequest.h: Add OverrideMIMEType to the XMLHttpRequest property enum,
          and also add a MIMETypeOverride data member to the class.
          * khtml/ecma/xmlhttprequest.lut.h: Regenerated.
  
  2004-04-25  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3628309>: Fedex tracking page so slow it seems like a hang (site change?)
  	<rdar://problem/3608061>: "ATI Developer site so slow it seems like a hang"
  	<rdar://problem/3612130>: "Reproducible hang in JavaScript at www.tfl.gov.uk"
  	<rdar://problem/3626022>: "Safari was consuming > 100% CPU on dual-G5 Mac, sample shows JavaScript"
  	<rdar://problem/3632348>: "www.whatis.com search for "pivot table" leads to JavaScript hang"
  	
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElement::getValueProperty): The "text" property for anchors should be
  	innerText, not innerHTML.
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::innerText): Make sure not to include all the text after an
  	element if it has no children.
          * layout-tests/fast/dom/anchor-text-expected.txt: Added.
          * layout-tests/fast/dom/anchor-text.html: Added.
          * layout-tests/fast/dom/inner-text-expected.txt: Added.
          * layout-tests/fast/dom/inner-text.html: Added.
  
  2004-04-24  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed <rdar://problem/3488892>: "anchor names with non-ASCII characters in them do not work"
  
          * khtml/khtml_part.h: Add new gotoAnchor helper function, private.
          * khtml/khtml_part.cpp:
          (KHTMLPart::openURL): Call new gotoAnchor helper, since the code is now complex enough
          that I don't want to copy and paste.
          (KHTMLPart::gotoAnchor): Use the pages own encoding when decoding the string for an
          anchor reference when going to an anchor. This matches the behavior of other browsers.
          (KHTMLPart::slotFinishedParsing): Call new gotoAnchor helper.
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::scrollToAnchor): Call new gotoAnchor helper.
  
          * kwq/KWQKURL.h: Removed htmlRef function, and made encodedHtmlRef an inline.
          Removed unused encoding hint parameter from setQuery (it's not a "hint" at all, but we
          don't use it). Added a codec parameter to decode_string.
          * kwq/KWQKURL.mm:
          (hexDigitValue): Added. Helper function.
          (KURL::setQuery): Removed unused parameter.
          (KURL::decode_string): Implemented this function. It needs to use an encoding specified
          by the web page. Also, we wanted to make a version that did not use the
          CFURLCreateStringByReplacingPercentEscapes function anyway.
  
          * kwq/KWQString.h: Added parameters to copyLatin1. Now you can copy an arbitrary substring.
          * kwq/KWQString.mm: (QString::copyLatin1): Updated implementation to handle the two
          new parameters.
  
          * WebCore-tests.exp: Updated for change in signature of setQuery and decode_string.
          * WebCore-combined.exp: Regenerated.
  
  2004-04-24  Darin Adler  <darin at apple.com>
  
          - fixed <rdar://problem/3570953>: "Update "Acknowledgements" to remove expat and possibly include libxml"
  
          * WebCore.pbproj/project.pbxproj: Removed the part of the copyright notice that was for expat contributors.
  
  2004-04-23  David Hyatt  <hyatt at apple.com>
  
  	Fix the apple-line-clamp values to more closely match what is needed, an even split of the max lines between the possible
  	values.
  
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::layoutVerticalBox):
  
  2004-04-23  David Hyatt  <hyatt at apple.com>
  
  	Fix to make the containing block percentage height calculation actually work according to the CSS2 spec.
  	Percentages other than 100% are now supported, and flexing percentage height blocks inside table cells
  	are now supported.
  
          Reviewed by kocienda
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcHeight):
          (RenderBox::calcPercentageHeight):
          * khtml/rendering/render_box.h:
  
  2004-04-23  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          <rdar://problem/3632163>: "REGRESSSION: crash on css home page"
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::positionForRenderer): Add null check.
  
  2004-04-20  David Hyatt  <hyatt at apple.com>
  
  	Fix hiermenu opacity bug.  Make sure to save/restore the graphics state before pushing and popping
  	transparency layers, so that alterations to alpha don't accidentally persist.
  	
          Reviewed by kocienda
  
          * kwq/KWQPainter.mm:
          (QPainter::beginTransparencyLayer):
          (QPainter::endTransparencyLayer):
  
  2004-04-20  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3622818, bad rendering on sabernomics.com.  Just eliminate the priority difference between
  	4 and 5, and make all of the priority 4 tags the same.  This seems to match other browsers.
  	
          Reviewed by kocienda
  
          * khtml/html/dtd.cpp:
  
  2004-04-23  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Changed inlineBoxForRenderer(RenderObject *, int) helper that was static 
          in dom_position.cpp into a virtual method on RenderObjects. Function is
          now called inlineBox(int). Functionality unchanged.
  
          * khtml/rendering/render_br.cpp:
          (RenderBR::inlineBox)
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::caretMaxRenderedOffset)
          (RenderObject::inlineBox)
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::inlineBox)
          * khtml/rendering/render_text.h:
          * khtml/xml/dom_position.cpp:
          (DOM::renderersOnDifferentLine):
          (DOM::nextRenderedEditable)
          (DOM::previousRenderedEditable)
          (DOM::Position::previousLinePosition)
          (DOM::Position::nextLinePosition)
          (DOM::Position::rendersInDifferentPosition)
  
  2004-04-23  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          * khtml/editing/htmlediting_impl.cpp:
          (DeleteSelectionCommandImpl::doApply): Fix editing test
          regression with deleting whitespace at the end of the line.
          I just made this "improvement" yesterday, and the concept
          of the change is a good one, but instead of short-circuiting
          if the selection after deleting collapsible whitespace is a
          range (which can be confused by "significant" collapsed 
          whitespace at the end of a line), short-circuit if the 
          upstream start position equals the downstream end position.
  
  === Safari-138 ===
  
  2004-04-23  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Added some plumbing for applying styles.
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createCSSStyleDeclaration): New factory method.
          * khtml/xml/dom_docimpl.h: Declare the above.
          * kwq/DOM-CSS.mm:
          (-[DOMCSSStyleDeclaration _styleDeclarationImpl]): Expose this in the
          WebCoreInternal category, "promoting" it from being private to the 
          DOM-CSS.mm file.
          * kwq/DOM.mm: Add -(DOMCSSStyleDeclaration *)createCSSStyleDeclaration extension.
          * kwq/DOMExtensions.h: Delcare the above.
          * kwq/DOMInternal.h: Add _styleDeclarationImpl to WebCoreInternal category.
  
  2004-04-23  John Sullivan  <sullivan at apple.com>
  
          - fixed <rdar://problem/3631541>: "repro crash in KHTMLPart::setFocusNodeIfNeeded"
  
          Reviewed by Maciej.
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::setFocusNodeIfNeeded):
          added nil check
  
  2004-04-23  Maciej Stachowiak  <mjs at apple.com>
  
          Back out one of the previous changes, it causes a crash. Whoops!
          
          * kwq/KWQScrollView.mm:
          (QScrollView::addChild):
  
  2004-04-23  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	These two tiny changes (made w/ Dave's help) should get us about
  	1% or so combined on the HTML iBench.
  
          * khtml/rendering/render_br.cpp:
          (RenderBR::setStyle): Don't call superclass setStyle, since
  	according to Dave we don't need any of the work done in there.
          * kwq/KWQScrollView.mm:
          (QScrollView::addChild): Don't actually move the widget if the x
  	coordinate is -500000, since we don't need the initial offscreen
  	positioning that KHTML does and it is costly to do.
  
  2004-04-22  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/editing/htmlediting_impl.cpp:
          (DeleteSelectionCommandImpl::doApply): Short-circuit return if the selection
          is not a range after collapsing whitespace.
  
  2004-04-22  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          More work to bring code up to date with the latest API proposal.
  
          * khtml/xml/dom_selection.h: Fix typo in comment.
          * kwq/WebCoreBridge.h: -applyStyle:toElementsInDOMRange: is now applyStyle:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge applyStyle:]): Ditto.
  
  2004-04-22  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Adds the notion of selection affinity to the editing API, bringing it up to
          date with the latest proposal.
  
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::Selection): Adds support for selection affinity member variable.
          (DOM::Selection::init): Ditto.
          (DOM::Selection::operator=): Ditto.
          (DOM::Selection::setAffinity): New function.
          (DOM::Selection::layoutCaret): Added comment to indicate that we need to enhance this
          function to handle selection affinity.
          * khtml/xml/dom_selection.h: Added EAffinity enum and m_affinity member variable.
          (DOM::Selection::): Moved the enums above the constructors. No code change.
          (DOM::Selection::affinity): New accessor.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm: Add selection affinity to API declarations as needed.
          (-[WebCoreBridge setSelectedDOMRange:affinity:]): Ditto.
          (-[WebCoreBridge selectedDOMRange]): Ditto.
          (-[WebCoreBridge selectionAffinity]): Ditto.
  
  2004-04-21  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	Preliminary change for conservative GC. Use new "protected"
  	subclasses to GC-protect objects when on heap, since we will soon
  	remove the built-in refcounting of the normal wrapper classes.
  	
          * ForwardingHeaders/kjs/protect.h: Added.
          * khtml/ecma/kjs_binding.h:
          * khtml/ecma/kjs_events.h:
          * khtml/ecma/kjs_traversal.h:
          * khtml/ecma/kjs_window.h:
  
  2004-04-22  Darin Adler  <darin at apple.com>
  
          * khtml/ecma/kjs_window.cpp: (Window::get): Removed code that gets properties from the parent.
          This was a mistake we inherited from KHTML, and they have long since fixed it.
  
  2004-04-22  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          Ensures caret visibility after making an editing action.
  
          * khtml/xml/dom_selection.cpp:
          (DOM::Selection::getRepaintRect): Expose this as public.
          * khtml/xml/dom_selection.h: Ditto.
          * kwq/WebCoreBridge.h: Add ensureCaretVisible method.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:]):
          Unrelated crash fix. Null-check baseURLString.
          (-[WebCoreBridge ensureCaretVisible]): Added.
  
  2004-04-21  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3245627, nested tables don't expand vertically.  I actually fixed the basic problem in the
  	previous checkin, but this exposed another basic math error where |numVariable| was not being
  	decremented properly.  This meant space was mis-allocated when multiple variable height rows both needed
  	to expand.
  
          * khtml/rendering/render_table.cpp:
          (RenderTableSection::layoutRows):
  
  2004-04-21  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3020449, ensure that the paint order of cells with rowspans matches other browsers.
  	
          Reviewed by darin
  
          * khtml/rendering/render_table.cpp:
          (RenderTableSection::paint):
  
  2004-04-21  David Hyatt  <hyatt at apple.com>
  
  	Remove the (incorrect) restriction on table flexing that required the cell to have a fixed width.  In
  	reality, the style on the cell is completely irrelevant.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_table.cpp:
          (RenderTable::layout):
  
  2004-04-21  David Hyatt  <hyatt at apple.com>
  
  	Make sure cells that get flexed vertically in tables don't check text children when looking for 
  	percentage height children.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_table.cpp:
          (RenderTableSection::layoutRows):
  
  2004-04-21  David Hyatt  <hyatt at apple.com>
  
  	Fix for hiermenus bug.  Absolutely positioned images should not contribute to their containing block's
  	max width.  Make sure to disregard positioned elements when computing min/max width.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_block.cpp:
          (khtml::InlineMinMaxIterator::next):
  
  2004-04-21  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/editing/htmlediting_impl.cpp:
          (DeleteSelectionCommandImpl::doApply): Do not shift ending selection downstream
          when at position zero of a BR. That's just wrong. Simplify code that does
          "onlyWhitespace" delete. No need to handle multiple characters here; we can
          only ever have one thanks to the delete-collapsible-whitespace code.
          (TypingCommandImpl::issueCommandForDeleteKey): Don't do anything if at the
          start of a root editable block. This is a no-op....not an opportunity to crash.
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::positionForRenderer): Return this renderer's element position
          if the passed-in renderer is nil. This helps to make clicking in empty blocks work.
          * khtml/rendering/render_container.cpp:
          (RenderContainer::positionForCoordinates): Fixed typo in comment.
          * khtml/xml/dom_position.cpp:
          (DOM::Position::equivalentLeafPosition): Do not attempt to find a leaf if the
          position's node does not have a renderer, if the renderer has no kids.
          * layout-tests/editing/deleting/delete-br-001-expected.txt: Update expected results for BR fix.
          * layout-tests/editing/deleting/delete-br-003-expected.txt: Ditto.
          * layout-tests/editing/deleting/delete-br-006-expected.txt: Ditto.
          * layout-tests/editing/deleting/delete-br-007.html: Added. New BR test.
          * layout-tests/editing/deleting/delete-br-007-expected.txt: Added.
  
  2004-04-21  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Added implementations for
          these properties: CSS_PROP_TEXT_DECORATION, CSS_PROP_VERTICAL_ALIGN, CSS_PROP_TEXT_INDENT,
          CSS_PROP_LETTER_SPACING, CSS_PROP_WORD_SPACING, CSS_PROP_LINE_HEIGHT
  
  2004-04-21  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          The Selection class now uses the Position class throughout its public and
          private interface. This replaces the inconsistent use of the Position
          class here and node/offset pairs there. There are no functional changes, only
          updates to the new Selection class API.
  
          * khtml/ecma/kjs_window.cpp:
          (Selection::get):
          (SelectionFunc::tryCall):
          * khtml/editing/htmlediting_impl.cpp:
          (DeleteCollapsibleWhitespaceCommandImpl::doApply):
          (DeleteSelectionCommandImpl::joinTextNodesWithSameStyle):
          (DeleteSelectionCommandImpl::doApply):
          (InputNewlineCommandImpl::doApply):
          (InputTextCommandImpl::deleteCharacter):
          (InputTextCommandImpl::prepareForTextInsertion):
          (InputTextCommandImpl::execute):
          (PasteMarkupCommandImpl::doApply):
          (TypingCommandImpl::issueCommandForDeleteKey):
          * khtml/khtml_part.cpp:
          (KHTMLPart::findTextNext):
          (KHTMLPart::setFocusNodeIfNeeded):
          (KHTMLPart::notifySelectionChanged):
          (KHTMLPart::isPointInsideSelection):
          (KHTMLPart::handleMouseMoveEventSelection):
          (KHTMLPart::khtmlMouseReleaseEvent):
          (KHTMLPart::selectAll):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paintObject):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::updateSelection):
          * khtml/xml/dom_nodeimpl.cpp:
          * khtml/xml/dom_selection.cpp:
          (DOM::emptyPosition):
          (DOM::Selection::Selection):
          (DOM::Selection::init):
          (DOM::Selection::operator=):
          (DOM::Selection::moveTo):
          (DOM::Selection::modify):
          (DOM::Selection::xPosForVerticalArrowNavigation):
          (DOM::Selection::clear):
          (DOM::Selection::setBase):
          (DOM::Selection::setExtent):
          (DOM::Selection::setBaseAndExtent):
          (DOM::Selection::setStart):
          (DOM::Selection::setEnd):
          (DOM::Selection::setStartAndEnd):
          (DOM::Selection::toRange):
          (DOM::Selection::layoutCaret):
          (DOM::Selection::needsCaretRepaint):
          (DOM::Selection::paintCaret):
          (DOM::Selection::validate):
          (DOM::Selection::moveToRenderedContent):
          (DOM::Selection::nodeIsBeforeNode):
          (DOM::startAndEndLineNodesIncludingNode):
          (DOM::Selection::debugRenderer):
          (DOM::Selection::debugPosition):
          * khtml/xml/dom_selection.h:
          (DOM::Selection::~Selection):
          (DOM::Selection::base):
          (DOM::Selection::extent):
          (DOM::Selection::start):
          (DOM::Selection::end):
          (DOM::Selection::assignBase):
          (DOM::Selection::assignExtent):
          (DOM::Selection::assignBaseAndExtent):
          (DOM::Selection::assignStart):
          (DOM::Selection::assignEnd):
          (DOM::Selection::assignStartAndEnd):
          (DOM::operator==):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::jumpToSelection):
          (KWQKHTMLPart::selectionStartOffset):
          (KWQKHTMLPart::selectionEndOffset):
          (KWQKHTMLPart::selectionStart):
          (KWQKHTMLPart::selectionEnd):
          * kwq/KWQRenderTreeDebug.cpp:
          (writeSelection):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge isSelectionEditable]):
          (-[WebCoreBridge setSelectionFrom:startOffset:to:endOffset:]):
          (-[WebCoreBridge setSelectedDOMRange:]):
  
  2004-04-20  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Renamed DOMPosition class to Position.
          Renamed KHTMLSelection to Selection and moved to DOM namespace.
  
          * ForwardingHeaders/xml/dom_selection.h: Added.
          * WebCore.pbproj/project.pbxproj: Go Xcode!
          * khtml/khtml_selection.cpp: Removed.
          * khtml/khtml_selection.h: Removed.
          * khtml/xml/dom_position.cpp: Renamed DOMPosition to Position
          * khtml/xml/dom_position.h: Ditto.
          * khtml/xml/dom_selection.cpp: New home for renamed Selection object.
          * khtml/xml/dom_selection.h: Ditto.
  
  2004-04-20  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/khtml_part.cpp:
          (KHTMLPart::handleMousePressEventDoubleClick): Improved name of expandToElement. Now is expandUsingGranularity.
          (KHTMLPart::handleMousePressEventTripleClick): Ditto.
          (KHTMLPart::handleMouseMoveEventSelection): Ditto.
          * khtml/khtml_selection.cpp:
          (KHTMLSelection::modify): Added support for modifying and extending selection right and left by word.
          Also added support for extending selection up and down.
          (KHTMLSelection::expandUsingGranularity): New name for expandToElement.
          (KHTMLSelection::xPosForVerticalArrowNavigation): Made this function handle cases where we know we
          want to use a particular position for calculating the right x position. We need this to handle
          extending selection up and down, and for setting the caret to the right place when moving up
          and down when a range is already selected.
          (KHTMLSelection::validate): Name tweak. expandTo variable now granularity.
          * khtml/khtml_selection.h: Make declaration changes for changes to cpp file.
          * khtml/misc/helper.cpp:
          (khtml::findWordBoundary): Added this hook for KDE to do their version of KWQFindWordBoundary
          * khtml/misc/helper.h:
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::positionForCoordinates): Factor out closest box finder code to its own function
          * khtml/rendering/render_line.cpp:
          (InlineFlowBox::closestChildForXPos): New function. This is the factored code that was taken out of 
          render_block.cpp.
          (InlineBox::closestLeafChildForXPos): Ditto.
          * khtml/rendering/render_line.h: Ditto.
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::positionForCoordinates): I think I am starting to get how the coordinate transforms work.
          Made some fixups based on this greater sense of enlightenment.
          * khtml/rendering/render_text.cpp:
          (RenderText::positionForCoordinates): Ditto. Fix lastTextBox/firstTextBox code mistake.
          * khtml/xml/dom_position.cpp:
          (DOMPosition::previousWordPosition): Added.
          (DOMPosition::nextWordPosition): Added.
          (DOMPosition::previousLinePosition): No longer use nodeAtPoint. Use new closestLeafChildForXPos instead.
          (DOMPosition::nextLinePosition): Ditto.
          (DOMPosition::inLastEditableInContainingEditableBlock):
          * khtml/xml/dom_position.h:
          * kwq/KWQTextUtilities.cpp: Added.
          (KWQFindWordBoundary): Factored out code that was in a static function in khtml_selection.cpp so 
          that DOMPosition can use it too.
          * kwq/KWQTextUtilities.h: Added.
  
  2004-04-19  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::notifySelectionChanged): Clear the value
          used for maintaining x position when doing vertical arrow
          navigation. WebCoreBridge restores this value when needed. 
          (KHTMLPart::setXPosForVerticalArrowNavigation): New accessor.
          (KHTMLPart::xPosForVerticalArrowNavigation): New accessor.
          * khtml/khtml_part.h:
          (KHTMLPart::): Add NoXPosForVerticalArrowNavigation constant.
          * khtml/khtml_selection.cpp:
          (KHTMLSelection::modify): Add cases for UP and DOWN navigation
          (KHTMLSelection::xPosForVerticalArrowNavigation): New helper.
          * khtml/khtml_selection.h: Add UP and DOWN constants to EDirection enum.
          (KHTMLSelection::):
          * khtml/khtmlpart_p.h: Declare storage for m_xPosForVerticalArrowNavigation, 
          the value used for maintaining x position when doing vertical arrow
          navigation. 
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::positionForCoordinates): Improved this function to
          handle deficiencies exposed when trying to implement new behavior.
          * khtml/rendering/render_br.cpp:
          (RenderBR::positionForCoordinates): Added implementation of this virtual function.
          * khtml/rendering/render_br.h: Declare implementation for positionForCoordinates virtual function.
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::positionForCoordinates): Improved this function to
          handle deficiencies exposed when trying to implement new behavior.
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::offsetForPosition): Remove left/right "bounds" check here.
          (RenderText::positionForCoordinates): Improved this function to
          handle deficiencies exposed when trying to implement new behavior.
          * khtml/xml/dom_position.cpp:
          (inlineBoxForRenderer): Moved to top of file so all code in the file can see this static function.
          (renderersOnDifferentLine): Ditto.
          (nextRenderedEditable): Ditto.
          (previousRenderedEditable): Ditto.
          (DOMPosition::previousLinePosition): New function. Implements the guts of up/down navigation.
          (DOMPosition::nextLinePosition): Ditto.
          * khtml/xml/dom_position.h: Added declarations for nextLinePosition and previousLinePosition.
          * kwq/WebCoreBridge.h: Add WebSelectUp and WebSelectDown constants.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Handles saving and restoring the 
          x position used for doing vertical arrow navigation.
  
  2004-04-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Added implementations for
          these four properties: CSS_PROP_WHITE_SPACE, CSS_PROP_DISPLAY, CSS_PROP_FLOAT, and CSS_PROP_COLOR.
  
  2004-04-16  Chris Blumenberg  <cblu at apple.com>
  
  	Subresources weren't being archived for LINK tags.
  
          Reviewed by kocienda.
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::recursive_toHTMLWithOptions): indent tweak
          * kwq/DOMHTML.mm:
          (-[DOMHTMLLinkElement _linkElementImpl]): C+casting voodoo to make methods like rel and href work correctly
  
  2004-04-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::isContentEditable): Call getDocument()->updateRendering() to make sure 
          outstanding changes for this attribute are applied.
          (HTMLElementImpl::contentEditable): Call getDocument()->updateRendering() to make sure 
          outstanding changes for this attribute are applied.
          (HTMLElementImpl::setContentEditable): Call enabled.isEmpty() before strcasecmp(enabled, "true").
          It's cheaper.
  
  2004-04-16  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/editing/htmlediting_impl.cpp: New helper.
          (DeleteSelectionCommandImpl::containsOnlyWhitespace): Fix deleting collapsed whitespace 
          at the end of a line where text has flowed to the next line and the caret is at the 
          beginning of the next line. 
          (DeleteSelectionCommandImpl::doApply): Updated for new helper.
          * khtml/editing/htmlediting_impl.h:
          * layout-tests/editing/deleting/delete-line-end-ws-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-end-ws-001.html: Added.
          * layout-tests/editing/deleting/delete-line-end-ws-002-expected.txt: Added.
          * layout-tests/editing/deleting/delete-line-end-ws-002.html: Added.
  
  === Safari-137 ===
  
  2004-04-16  Richard Williamson   <rjw at apple.com>
  
  	Added an SPI to allow ObjC instances to be easily bound to 
  	JS.  This is needed by the dashboard guys for their prototyping.
  	Eventually they will use new API.
  
          Reviewed by Chris.
  
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::bindObject):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge bindObject:withName:]):
  
  2004-04-16  Chris Blumenberg  <cblu at apple.com>
  
  	Added DOMHTMLEmbedElement as a DOM extension since EMBED is represented in our DOM even though its not part of the spec.
  	Added all DOMCore and DOMHTML symbols to WebCore's symbols file.
  	Removed isSubresourceURLAttribute from dom node. This was only used for the WebArchive feature and all that work is now done in WebKit.
  
          Reviewed by kocienda.
  
          * WebCore-combined.exp:
          * WebCore.exp:
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::isURLAttribute): renamed from isSubresourceURLAttribute. As a convenience to subclasses, dom_elementimpl would call isSubresourceURLAttribute in isURLAttribute, but this is no longer done
          (HTMLFrameElementImpl::isURLAttribute): ditto
          (HTMLIFrameElementImpl::isURLAttribute): ditto
          * khtml/html/html_baseimpl.h:
          * khtml/html/html_formimpl.cpp:
          (HTMLInputElementImpl::isURLAttribute): ditto
          * khtml/html/html_formimpl.h:
          * khtml/html/html_headimpl.cpp:
          (HTMLScriptElementImpl::isURLAttribute): ditto
          * khtml/html/html_headimpl.h:
          * khtml/html/html_imageimpl.cpp: 
          (HTMLImageElementImpl::isURLAttribute): ditto
          * khtml/html/html_imageimpl.h:
          * khtml/html/html_objectimpl.cpp:
          (HTMLEmbedElementImpl::isURLAttribute): ditto
          (HTMLObjectElementImpl::isURLAttribute): ditto
          (HTMLParamElementImpl::isURLAttribute): ditto
          * khtml/html/html_objectimpl.h:
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableElementImpl::isURLAttribute): ditto
          (HTMLTableCellElementImpl::isURLAttribute): ditto
          * khtml/html/html_tableimpl.h:
          * khtml/xml/dom2_rangeimpl.cpp:
          (RangeImpl::toHTMLWithOptions): take a node list (see below)
          * khtml/xml/dom2_rangeimpl.h:
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::isURLAttribute):
          * khtml/xml/dom_elementimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::recursive_toHTMLWithOptions): append copied nodes to a list of nodes so that WebKit can operate on them
          * khtml/xml/dom_nodeimpl.h:
          * kwq/DOM.mm:
          (+[DOMNode _nodeWithImpl:]): added support for HTML types
          * kwq/DOMExtensions.h:
          * kwq/DOMHTML.mm:
          (-[DOMHTMLPreElement setWidth:]):
          (-[DOMHTMLEmbedElement _embedElementImpl]):
          (-[DOMHTMLEmbedElement align]):
          (-[DOMHTMLEmbedElement setAlign:]):
          (-[DOMHTMLEmbedElement height]):
          (-[DOMHTMLEmbedElement setHeight:]):
          (-[DOMHTMLEmbedElement name]):
          (-[DOMHTMLEmbedElement setName:]):
          (-[DOMHTMLEmbedElement src]):
          (-[DOMHTMLEmbedElement setSrc:]):
          (-[DOMHTMLEmbedElement type]):
          (-[DOMHTMLEmbedElement setType:]):
          (-[DOMHTMLEmbedElement width]):
          (-[DOMHTMLEmbedElement setWidth:]):
          (-[DOMHTMLTableElement background]):
          (-[DOMHTMLTableElement setBackground:]):
          (-[DOMHTMLTableCellElement background]): new extension 
          (-[DOMHTMLTableCellElement setBackground:]): ditto
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge nodesFromList:]): new
          (-[WebCoreBridge markupStringFromNode:nodes:]): return a list of nodes instead of subresource URLs so WebKit can operate on the nodes
          (-[WebCoreBridge markupStringFromRange:nodes:]): ditto
  
  2004-04-15  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3624335, bugs with overflow and positioned objects.  The scrollbar didn't properly update
  	as you changed the sizes of positioned objects inside an overflow block.
  	
          Reviewed by rjw
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlock):
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::layoutBlock):
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::updateScrollInfoAfterLayout):
  
  2004-04-15  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Dave
          
          Improved selection behavior. As part of this work, I removed
          almost all of the checkSelectionPoint() functions, leaving
          only those associated with fonts, and all of the 
          checkSelectionPointIgnoringContinuations() functions. Each
          of these has been replaced by a new function called
          positionForCoordinates(), which returns a DOMPosition.
          
          * WebCore.pbproj/project.pbxproj:
          * khtml/khtml_events.cpp:
          (khtml::MouseEvent::offset): Converted to use positionForCoordinates.
          * khtml/khtml_part.cpp: Ditto.
          (KHTMLPart::isPointInsideSelection):
          (KHTMLPart::handleMousePressEventDoubleClick): Ditto.
          (KHTMLPart::handleMousePressEventTripleClick): Ditto.
          (KHTMLPart::handleMousePressEventSingleClick): Ditto.
          (KHTMLPart::handleMouseMoveEventSelection): Ditto.
          (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
          * khtml/khtml_part.h:
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::positionForBox): New helper.
          (khtml::RenderBlock::positionForRenderer): New helper.
          (khtml::RenderBlock::positionForCoordinates): New selection-node-offset-finder method.
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_br.cpp: Removed checkSelectionPointIgnoringContinuations.
          No special behavior is needed for this class anymore.
          * khtml/rendering/render_br.h: Ditoo.
          * khtml/rendering/render_container.cpp:
          (RenderContainer::positionForCoordinates): New selection-node-offset-finder method.
          * khtml/rendering/render_container.h:
          * khtml/rendering/render_line.cpp:
          (InlineBox::firstLeafChild): New helper.
          (InlineBox::lastLeafChild): New helper.
          (InlineFlowBox::firstLeafChild): New helper.
          (InlineFlowBox::lastLeafChild): New helper.
          * khtml/rendering/render_line.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::firstLeafChild): New helper.
          (RenderObject::lastLeafChild): New helper.
          (RenderObject::positionForCoordinates):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::positionForCoordinates): New selection-node-offset-finder method.
          * khtml/rendering/render_replaced.h:
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::offsetForPosition): New helper, replaces checkSelectionPoint()
          (RenderText::positionForCoordinates): New selection-node-offset-finder method.
          * khtml/rendering/render_text.h:
          * khtml/xml/dom_nodeimpl.cpp: Added positionForCoordinates() convenience here. This
          checks to see if the node has a renderer before doing the position check.
          * khtml/xml/dom_nodeimpl.h: Ditto.
          * kwq/DOM.mm:
          (-[DOMNode isContentEditable]): Added this unrelated method, since without it, I crash when dragging an image.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge moveCaretToPoint:]): Converted to use positionForCoordinates.
  
  2004-04-15  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3603455, block truncation support.
  	
          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::applyProperty):
          * khtml/ecma/kjs_css.cpp:
          (cssPropertyName):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::lineCount):
          (khtml::RenderBlock::heightForLineCount):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::layoutHorizontalBox):
          (khtml::RenderFlexibleBox::layoutVerticalBox):
          * khtml/rendering/render_style.cpp:
          (marquee):
          (StyleCSS3NonInheritedData::operator==):
          (RenderStyle::diff):
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::lineClamp):
          (khtml::RenderStyle::setLineClamp):
          (khtml::RenderStyle::initialLineClamp):
  
  2004-04-13  Chris Blumenberg  <cblu at apple.com>
  
  	- Removed WebCoreElementIsEditableKey. This functionality is available via [DOMNode isContentEditable].
  
          Reviewed by rjw.
  
          * WebCore-combined.exp:
          * WebCore.exp:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge elementAtPoint:]): removed use of WebCoreElementIsEditableKey
          (-[WebCoreBridge URLWithRelativeString:]): new method for WebKit API
  
  2004-04-13  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3559764, make sure overflow is applied consistently using a separate bit on render objects, so that
  	the body scroll quirk can easily disable overflow even when it is present on the style.
  	
          Reviewed by kocienda
  
          * khtml/ecma/kjs_dom.cpp:
          (DOMNode::putValue):
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::setStyle):
          (khtml::RenderBlock::layoutBlock):
          (khtml::RenderBlock::layoutBlockChildren):
          (khtml::RenderBlock::paintObject):
          (khtml::RenderBlock::rightOffset):
          (khtml::RenderBlock::lowestPosition):
          (khtml::RenderBlock::rightmostPosition):
          (khtml::RenderBlock::leftmostPosition):
          (khtml::RenderBlock::isPointInScrollbar):
          (khtml::RenderBlock::nodeAtPoint):
          (khtml::RenderBlock::inRootBlockContext):
          * khtml/rendering/render_block.h:
          (khtml::RenderBlock::overflowHeight):
          (khtml::RenderBlock::overflowWidth):
          * khtml/rendering/render_box.cpp:
          (RenderBox::setStyle):
          (RenderBox::contentWidth):
          (RenderBox::contentHeight):
          (RenderBox::absolutePosition):
          (RenderBox::computeAbsoluteRepaintRect):
          (RenderBox::calcAbsoluteVertical):
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::layoutBlock):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::lowestPosition):
          (RenderFlow::rightmostPosition):
          (RenderFlow::leftmostPosition):
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::updateLayerPosition):
          (RenderLayer::updateScrollInfoAfterLayout):
          (RenderLayer::intersectsDamageRect):
          (RenderLayer::containsPoint):
          * khtml/rendering/render_object.cpp:
          (RenderObject::RenderObject):
          (RenderObject::requiresLayer):
          (RenderObject::clientWidth):
          (RenderObject::clientHeight):
          (RenderObject::scrollWidth):
          (RenderObject::scrollHeight):
          (RenderObject::setStyle):
          (RenderObject::absolutePosition):
          (RenderObject::nodeAtPoint):
          (RenderObject::avoidsFloats):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::hasOverflowClip):
          (khtml::RenderObject::hasAutoScrollbars):
          (khtml::RenderObject::scrollsOverflow):
          (khtml::RenderObject::includeScrollbarSize):
          (khtml::RenderObject::setHasOverflowClip):
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::overflow):
          (khtml::RenderStyle::isDisplayReplacedType):
          (khtml::RenderStyle::isDisplayInlineType):
          * khtml/rendering/render_table.cpp:
          (RenderTable::setStyle):
          (RenderTableCell::setStyle):
          (RenderTableCell::requiresLayer):
          * khtml/rendering/render_table.h:
  
  2004-04-12  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3556036, make sure that when the position changes via style that all render layer
  	descendants simply immediately repaint.
  	
          Reviewed by kocienda
  	
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::repaintIncludingDescendants):
          * khtml/rendering/render_layer.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::setStyle):
  
  2004-04-12  Chris Blumenberg  <cblu at apple.com>
  
  	- Fixed build failure by removing references to WebArchive in WebCore.
  	- For HTML copy/paste, relative URLs are now made absolute at paste time instead of at copy time. This allows relative URLs to be kept relative if the destination page has the same base URL as the source page.
  
          Reviewed by kocienda.
  
          * khtml/editing/htmlediting.cpp:
          (PasteMarkupCommand::PasteMarkupCommand): take the base URL of the clipping
          * khtml/editing/htmlediting.h:
          * khtml/editing/htmlediting_impl.cpp:
          (PasteMarkupCommandImpl::PasteMarkupCommandImpl): take the base URL of the clipping
          (PasteMarkupCommandImpl::doApply): if we have a base URL and it is different than the base URL of the document, fix the URLs in the new DOM tree
          * khtml/editing/htmlediting_impl.h:
          * khtml/xml/dom2_rangeimpl.cpp:
          (RangeImpl::toHTMLWithOptions): removed completeURLs param
          * khtml/xml/dom2_rangeimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::recursive_toHTMLWithOptions): removed completeURLs param
          (NodeImpl::recursive_toHTML): ditto
          (NodeImpl::recursive_completeURLs): new
          * khtml/xml/dom_nodeimpl.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge markupStringFromNode:subresourceURLStrings:]): call recursive_toHTML with less params
          (-[WebCoreBridge markupStringFromRange:subresourceURLStrings:]): ditto
          (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:]): take a base URL
  
  2004-04-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Dave
  
          Added execCommand support for cut/copy/paste.
          
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::execCommand): Added cut/copy/paste atoms and added else if cases
          for the commands.
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::issueCutCommand): Glue for calling from WebCore to do a cut in Cocoa.
          (KWQKHTMLPart::issueCopyCommand): Same as above, but for copy.
          (KWQKHTMLPart::issuePasteCommand): Same as above, but for paste.
          * kwq/WebCoreBridge.h: Declared issueCutCommand, issueCopyCommand, and issuePasteCommand
          to be implemented on the WebKit side of the bridge.
          * layout-tests/editing/editing.js: Added cut/copy/paste support to js library to support
          making layout tests.
          * layout-tests/editing/pasteboard/copy-paste-text-001-expected.txt: Added.
          * layout-tests/editing/pasteboard/copy-paste-text-001.html: Added.
          * layout-tests/editing/pasteboard/cut-paste-text-002-expected.txt: Added.
          * layout-tests/editing/pasteboard/cut-paste-text-002.html: Added.
          * layout-tests/editing/pasteboard/cut-text-001-expected.txt: Added.
          * layout-tests/editing/pasteboard/cut-text-001.html: Added.
  
  2004-04-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
          
          Some delete and insert cleanups.
  
          * khtml/editing/htmlediting_impl.cpp:
          (DeleteSelectionCommandImpl::doApply): For ending position case 1,
          the caret should be placed before the first child of the containing block, 
          not before the containing block itself. Also, add some code to handle
          converting nbsp's back to regular spaces. This will need to be improved
          some day to convert only nbsp's added by the editor to make rendering come out right.
          (InputTextCommandImpl::execute): 
          (TypingCommandImpl::issueCommandForDeleteKey): Make deleting collapsible whitespace part 
          of the work of deleting a selection, rather than something that needs to be done by a 
          user of DeleteSelectionCommandImpl. This makes it impossible to leave out
          this essential step.
          (TypingCommandImpl::deleteKeyPressed): We can't use a possible optimization here until 
          the code to do deletions properly has been factored better. Big FIXME added.
          * layout-tests/editing/deleting/delete-block-contents-001-expected.txt: Updated for
          ending position case 1 behavior change.
          * layout-tests/editing/deleting/delete-block-contents-002-expected.txt: Ditto. 
          * layout-tests/editing/deleting/delete-block-contents-003-expected.txt: Ditto.
  
  2004-04-09  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Added support for methods added to flesh out the WebKit 
          editing API.
  
          * khtml/khtml_part.h: Removed pasteMarkupString and deleteSelection functions.
          All this work is now done in WebCoreBridge.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge isSelectionEditable]): Added a FIXME.
          (-[WebCoreBridge setDrawsBackground:]): Moved this since CVS merged this in the
          middle of editing code.
          (-[WebCoreBridge replaceSelectionWithNode:]): New method.
          (-[WebCoreBridge replaceSelectionWithText:]): Replaces insertText:
          (-[WebCoreBridge replaceSelectionWithMarkupString:]): New method.
          (-[WebCoreBridge replaceSelectionWithWebArchive:]): New method.
          (-[WebCoreBridge replaceSelectionWithNewline]): Replaces insertNewline:
          (-[WebCoreBridge deleteSelection]): New method.
          (-[WebCoreBridge applyStyle:toElementsInDOMRange:]): New method.
  
  2004-04-09  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - added "transparent mode"
  
          * khtml/khtmlview.h: Added isTransparent and setTransparent functions.
          * khtml/khtmlview.cpp:
          (KHTMLViewPrivate::KHTMLViewPrivate): Initialize isTransparent to false.
          (KHTMLView::isTransparent): Return isTransparent.
          (KHTMLView::setTransparent): Set isTransparent.
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::paintRootBoxDecorations): Use slow repaints for the top frame when the view
          is transparent; also don't draw a background. This is the same thing we do for subframes.
          (RenderBox::paintBackgroundExtended): Don't do the extra draw so we can blend with the
          background color for the top frame when the view is transparent.
          * khtml/rendering/render_canvas.cpp: (RenderCanvas::paintBoxDecorations): More of the same.
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::paint): Make "fill with red" debug mode work only
          when the view is not transparent.
  
          * kwq/WebCoreBridge.h: Added setDrawsBackground: method.
          * kwq/WebCoreBridge.mm: (-[WebCoreBridge setDrawsBackground:]): If told NO
          (don't draw background), then set isTransparent to true on the KHTMLView.
  
  2004-04-09  Ken Kocienda  <kocienda at apple.com>
  
          Added one more layout test for editing.
  
          * layout-tests/editing/deleting/delete-3608445-fix-expected.txt: Added.
          * layout-tests/editing/deleting/delete-3608445-fix.html: Added.
  
  2004-04-08  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	Changed things so that newly created objects get a prototype based
  	on the scope chain of the current function, rather than the
  	interpreter that started execution. This fixes the following bugs:
  	
  	<rdar://problem/3368523>: ARCH: wrong prototype used to create new objects (hang on lookup.atomica.com)
          <rdar://problem/3559173>: ARCH: Cannot scan using a HP Jetdirect product (JS object prototypes bind incorrectly)
  
  	* khtml/ecma/kjs_binding.h:
          (KJS::cacheDOMObject):
          (KJS::cacheGlobalObject):
          * khtml/ecma/kjs_css.cpp:
          (KJS::getDOMStyleSheet):
          (KJS::getDOMStyleSheetList):
          (KJS::getDOMCSSValue):
          * khtml/ecma/kjs_dom.cpp:
          (KJS::getDOMDocumentNode):
          (KJS::getDOMNode):
          * khtml/ecma/kjs_events.cpp:
          (KJS::getDOMEvent):
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::tryGet):
          (KJS::HTMLDocument::putValue):
          (KJS::getSelectHTMLCollection):
          * khtml/ecma/kjs_navigator.cpp:
          (Navigator::Navigator):
          (PluginBase::PluginBase):
          * khtml/ecma/kjs_window.cpp:
          (KJS::History::History):
          (KJS::FrameArray::FrameArray):
          (Screen::Screen):
          (Window::retrieveActive):
          (Window::put):
          (Window::isSafeScript):
          (WindowFunc::tryCall):
          (Location::put):
          (LocationFunc::tryCall):
  
  2004-04-09  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3613081, repaint glitches when using overflow:auto/overlay.
  	
          Reviewed by john
  
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::updateScrollInfoAfterLayout):
  
  2004-04-09  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3608445, garbage characters rendered after doing delete.  Delta was unsigned when it was supposed to
  	be signed, since deletion involves a negative delta.  Also had an off-by-one error in the line break end check.
  	
          Reviewed by john
  
          * khtml/rendering/render_text.cpp:
          (RenderText::setTextWithOffset):
  
  2004-04-09  Ken Kocienda  <kocienda at apple.com>
  
          Added two more layout tests for editing.
  
          * layout-tests/editing/selection/move-between-blocks-no-001-expected.txt: Added.
          * layout-tests/editing/selection/move-between-blocks-no-001.html: Added.
          * layout-tests/editing/selection/move-between-blocks-yes-001-expected.txt: Added.
          * layout-tests/editing/selection/move-between-blocks-yes-001.html: Added.
  
  2004-04-09  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Dave
          
          Small collection of editing improvements.
  
          * ChangeLog:
          * khtml/editing/htmlediting_impl.cpp:
          (shouldDeleteUpstreamPosition): This was deleting significant spaces on preceding
          lines when the caret was at the start of a line. Fixed. 
          (DeleteSelectionCommandImpl::doApply): Fixed a case where caret jumped to previous
          line when deleting a character at the start of a line after a BR.
          (InputNewlineCommandImpl::doApply): Handle more cases correctly. Previously, this
          only handled inserting a newline when the caret was already in a text node.
          (InputTextCommandImpl::prepareForTextInsertion): Ditto.
          (InputTextCommandImpl::execute): Ditto.
          * khtml/editing/htmlediting_impl.h:
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::checkSelectionPointIgnoringContinuations): Now can place caret
          with a click in an empty block.
          * khtml/rendering/render_block.h: Added checkSelectionPointIgnoringContinuations declaration.
          * khtml/rendering/render_replaced.cpp: 
          (RenderReplaced::checkSelectionPointIgnoringContinuations): Now can place caret with a click 
          on a replaced element.
          * khtml/rendering/render_replaced.h: Added checkSelectionPointIgnoringContinuations declaration.
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::checkSelectionPoint): Now can place caret with a click in text on a line made "tall"
          by an image on the same line.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createEditingTextNode): This creates a text node subclass that whill always create
          a renderer for itself.
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_position.cpp:
          (DOMPosition::isLastRenderedPositionInEditableBlock): Improved code to handle more cases.
          * khtml/xml/dom_textimpl.cpp:
          (TextImpl::TextImpl): Rolled out m_rendererIsNeeded flag.
          (TextImpl::rendererIsNeeded): Ditto.
          (EditingTextImpl::EditingTextImpl): New class.
          (EditingTextImpl::~EditingTextImpl): New.
          (EditingTextImpl::rendererIsNeeded): New. Always returns true.
          * khtml/xml/dom_textimpl.h: New EditingTextImpl class.
          * layout-tests/editing/deleting/delete-3608430-fix-expected.txt: Added.
          * layout-tests/editing/deleting/delete-3608430-fix.html: Added.
          * layout-tests/editing/deleting/delete-3608462-fix-expected.txt: Added.
          * layout-tests/editing/deleting/delete-3608462-fix.html: Added.
          * layout-tests/editing/deleting/delete-trailing-ws-002-expected.txt: Added.
          * layout-tests/editing/deleting/delete-trailing-ws-002.html: Added.
  
  2004-04-08  Chris Blumenberg  <cblu at apple.com>
  
  	Renamed the PasteHTMLCommand to PasteMarkupCommand. Removed PasteImageCommand because we will use PasteMarkupCommand for pasting images.
  
          Reviewed by kocienda.
  
          * ChangeLog:
          * khtml/editing/htmlediting.cpp:
          (PasteMarkupCommand::PasteMarkupCommand):
          (PasteMarkupCommand::~PasteMarkupCommand):
          (PasteMarkupCommand::impl):
          (PasteMarkupCommand::markupString):
          * khtml/editing/htmlediting.h:
          (khtml::):
          * khtml/editing/htmlediting_impl.cpp:
          (PasteMarkupCommandImpl::PasteMarkupCommandImpl):
          (PasteMarkupCommandImpl::~PasteMarkupCommandImpl):
          (PasteMarkupCommandImpl::commandID):
          (PasteMarkupCommandImpl::doApply):
          * khtml/editing/htmlediting_impl.h:
          (khtml::PasteMarkupCommandImpl::markupString):
          * khtml/khtml_part.cpp:
          (KHTMLPart::pasteMarkupString):
          * khtml/khtml_part.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge pasteMarkupString:]):
  
  
  2004-04-08  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3608430 and 3608462, crashes in findNextLineBreak when deleting.  Make sure that the removal of line boxes
  	always checks the previous root line box's line break information and dirties the line if it is pointing
  	to the deleted object.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_line.cpp:
          (InlineFlowBox::removeChild):
  
  2004-04-08  Chris Blumenberg  <cblu at apple.com>
  
  	Removed DOMExtensions.h from DOM.h until it is public.
  
          Reviewed by koicienda.
  
          * kwq/DOM.h:
  
  2004-04-07  Chris Blumenberg  <cblu at apple.com>
  
  	WebCore side for supporting WebDOMOperations.	
  
          Reviewed by rjw.
  
          * WebCore-combined.exp:
          * WebCore.exp:
          * kwq/DOM.mm:
          * kwq/DOMExtensions.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (+[WebCoreBridge bridgeForDOMDocument:]): new
          (-[WebCoreBridge imageForImageElement:]): new
  
  2004-04-07  Darin Adler  <darin at apple.com>
  
          Reviewed by Chris.
  
          * kwq/DOMCSS.h: Changed DOMCSS2Properties to be a category on DOMCSSStyleDeclaration
          (after API review, oops!, but I doubt anyone will even notice).
          * kwq/DOM-CSS.mm: Implemented the entire DOMCSS2Properties category.
  
  2004-04-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge _stringWithDocumentTypeStringAndMarkupString:]): Do not add a newline in between
          the doctype and the content. The newline was showing up when the content was pasted.
  
  2004-04-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Removed concept of currentSelection from EditCommands and refined concept of
          startingSelection and endingSelection, making them work more sensibly in the 
          system of composed editing commands.
  
          * khtml/editing/htmlediting.cpp: Removed currentSelection().
          * khtml/editing/htmlediting.h: Ditto.
          * khtml/editing/htmlediting_impl.cpp: currentSelection().
          (CompositeEditCommandImpl::applyCommandToComposite): Set the startingSelection 
          and endingSelection for the command being applied to the endingSelection of
          its new parent. This is the proper starting and ending point.
          (CompositeEditCommandImpl::deleteSelection): Changed call to currentSelection
          to endingSelection.
          (DeleteCollapsibleWhitespaceCommandImpl::DeleteCollapsibleWhitespaceCommandImpl): Ditto.
          (DeleteSelectionCommandImpl::DeleteSelectionCommandImpl): Changed call from startingSelection
          to endingSelection.
          (DeleteSelectionCommandImpl::joinTextNodesWithSameStyle): Changed call to currentSelection
          to endingSelection.
          (InputNewlineCommandImpl::doApply): Ditto.
          (InputTextCommandImpl::deleteCharacter): Ditto.
          (InputTextCommandImpl::prepareForTextInsertion): Ditto.
          (InputTextCommandImpl::execute): Ditto.
          (PasteHTMLCommandImpl::doApply): Ditto.
          (TypingCommandImpl::insertText): Remove extraneous call to reset endingSelection. This has
          already been done by the helpers this command uses to do its work.
          (TypingCommandImpl::issueCommandForDeleteKey): Changed call to currentSelection
          to endingSelection.
          (TypingCommandImpl::deleteKeyPressed): Remove extraneous call to reset endingSelection. This has
          already been done by the helpers this command uses to do its work.
          * khtml/editing/htmlediting_impl.h:
          (khtml::EditCommandImpl::endingSelection): Remove extraneous call to reset endingSelection. This has
          already been done by the helpers this command uses to do its work.
  
  2004-04-07  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
          
          Make paste work again. It has been broken for some undetermined
          period of time.
  
          * khtml/editing/htmlediting_impl.cpp:
          (CompositeEditCommandImpl::insertNodeAt): Handle inserting a node when
          the reference node has children, or is an empty block.
          (CompositeEditCommandImpl::inputText): New convenience to create and
          apply an InputTextCommand.
          (InputTextCommandImpl::execute): Collapse whitespace when selection is
          not a range. Deleting the selection when it is a range already does that, 
          so no need to make special accommodation for it.
          (PasteHTMLCommandImpl::PasteHTMLCommandImpl): Initialize m_HTMLString using 
          an initialization list.
          (PasteHTMLCommandImpl::doApply): Collapse whitespace.... as above for 
          InputTextCommandImpl::execute. Don't need to qualify NodeImpl's with DOM 
          namespace. Clean up selection access; no need to grep around for it, the
          desired selection is returned by calling currentSelection(). Treat "simple
          text paste" like typing. Tighten up and simplify HTML fragment paste; no
          real change in algorithm. 
          (SplitTextNodeCommandImpl::SplitTextNodeCommandImpl): m_text1 member variable
          not initialized. This bug was introduced by a recent change by me. Fixing now.
          * khtml/editing/htmlediting_impl.h: Add inputText() declaration.
  
  2004-04-06  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Richard
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::setSelection): Now calls setFocusNodeIfNeeded.
          (KHTMLPart::takeSelectionFrom): Now calls setFocusNodeIfNeeded.
          (KHTMLPart::clearSelection): Now calls setFocusNodeIfNeeded.
          (KHTMLPart::invalidateSelection): Now calls setFocusNodeIfNeeded.
          (KHTMLPart::setSelectionVisible): Now calls setFocusNodeIfNeeded.
          (KHTMLPart::setFocusNodeIfNeeded): New function focuses first element 
          of a selection that is contenteditable, if any of the nodes are. The "first"
          determination is made by doing a document-order search.
          * khtml/khtml_part.h:
          * khtml/xml/dom_nodeimpl.cpp: Remove debug spam.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setSelectedDOMRange:]): Now updates document layout before
          setting the selection. This was needed for Blot, so that setting the 
          contenteditable attribute on the body is "seen" when the attempt is made
          to set the selection right immediately after.
  
  2004-04-06  David Hyatt  <hyatt at apple.com>
  
  	After columns have been expanded to their preferred sizes, if space is left over in the table, then
  	fixed columns should expand to fill space before percentage width columns do.  The old code had it
  	backwards.
  	
          Reviewed by john
  
          * khtml/rendering/table_layout.cpp:
          (AutoTableLayout::layout):
  
  2004-04-06  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Dave
  
          * khtml/dom/dom_node.cpp:
          (Node::isContentEditable): Added. Calls through to impl function of same name.
          * khtml/dom/dom_node.h: Added isContentEditable declaration.
          * khtml/khtmlview.cpp:
          (KHTMLView::viewportMouseMoveEvent): Now, the cursor will change
          to an i-beam whenever it is over a node that is contenteditable, and nothing, 
          like a link, takes precedence.
  
  2004-04-06  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Dave
  
          * khtml/css/html4.css: Refine focus rules so that HTML and BODY
          elements do not draw a focus ring around themselves when focused.
          This prevents a silly-looking focus ring from drawing around a 
          document's entire contents when a body element is contenteditable.
  
  2004-04-06  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Dave
  
          Caret height is now the height of the tallest element on the line,
          mimicking NSText behavior.
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::caretPos): Use root line box topOverflow and bottomOverflow 
          for the calculation of caret height.
          * khtml/rendering/render_text.cpp:
          (RenderText::caretPos): Ditto.
  
  2004-04-06  Ken Kocienda  <kocienda at apple.com>
  
          Added a new suite of layout tests for editing, all added
          in the new layout-tests/editing subtree.
  
          * layout-tests/editing/abe.jpg: Added.
          * layout-tests/editing/deleting/delete-block-contents-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-contents-001.html: Added.
          * layout-tests/editing/deleting/delete-block-contents-002-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-contents-002.html: Added.
          * layout-tests/editing/deleting/delete-block-contents-003-expected.txt: Added.
          * layout-tests/editing/deleting/delete-block-contents-003.html: Added.
          * layout-tests/editing/deleting/delete-br-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-br-001.html: Added.
          * layout-tests/editing/deleting/delete-br-002-expected.txt: Added.
          * layout-tests/editing/deleting/delete-br-002.html: Added.
          * layout-tests/editing/deleting/delete-br-003-expected.txt: Added.
          * layout-tests/editing/deleting/delete-br-003.html: Added.
          * layout-tests/editing/deleting/delete-br-004-expected.txt: Added.
          * layout-tests/editing/deleting/delete-br-004.html: Added.
          * layout-tests/editing/deleting/delete-br-005-expected.txt: Added.
          * layout-tests/editing/deleting/delete-br-005.html: Added.
          * layout-tests/editing/deleting/delete-br-006-expected.txt: Added.
          * layout-tests/editing/deleting/delete-br-006.html: Added.
          * layout-tests/editing/deleting/delete-character-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-character-001.html: Added.
          * layout-tests/editing/deleting/delete-contiguous-ws-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-contiguous-ws-001.html: Added.
          * layout-tests/editing/deleting/delete-image-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-image-001.html: Added.
          * layout-tests/editing/deleting/delete-image-002-expected.txt: Added.
          * layout-tests/editing/deleting/delete-image-002.html: Added.
          * layout-tests/editing/deleting/delete-image-003-expected.txt: Added.
          * layout-tests/editing/deleting/delete-image-003.html: Added.
          * layout-tests/editing/deleting/delete-leading-ws-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-leading-ws-001.html: Added.
          * layout-tests/editing/deleting/delete-selection-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-selection-001.html: Added.
          * layout-tests/editing/deleting/delete-trailing-ws-001-expected.txt: Added.
          * layout-tests/editing/deleting/delete-trailing-ws-001.html: Added.
          * layout-tests/editing/editing.js: Added.
          * layout-tests/editing/inserting/typing-001-expected.txt: Added.
          * layout-tests/editing/inserting/typing-001.html: Added.
          * layout-tests/editing/inserting/typing-002-expected.txt: Added.
          * layout-tests/editing/inserting/typing-002.html: Added.
          * layout-tests/editing/inserting/typing-around-br-001-expected.txt: Added.
          * layout-tests/editing/inserting/typing-around-br-001.html: Added.
          * layout-tests/editing/inserting/typing-around-image-001-expected.txt: Added.
          * layout-tests/editing/inserting/typing-around-image-001.html: Added.
          * layout-tests/editing/selection/extend-by-character-001-expected.txt: Added.
          * layout-tests/editing/selection/extend-by-character-001.html: Added.
          * layout-tests/editing/selection/extend-by-character-002-expected.txt: Added.
          * layout-tests/editing/selection/extend-by-character-002.html: Added.
          * layout-tests/editing/selection/extend-by-character-003-expected.txt: Added.
          * layout-tests/editing/selection/extend-by-character-003.html: Added.
          * layout-tests/editing/selection/extend-by-character-004-expected.txt: Added.
          * layout-tests/editing/selection/extend-by-character-004.html: Added.
          * layout-tests/editing/selection/extend-by-character-005-expected.txt: Added.
          * layout-tests/editing/selection/extend-by-character-005.html: Added.
          * layout-tests/editing/selection/move-by-character-001-expected.txt: Added.
          * layout-tests/editing/selection/move-by-character-001.html: Added.
          * layout-tests/editing/selection/move-by-character-002-expected.txt: Added.
          * layout-tests/editing/selection/move-by-character-002.html: Added.
          * layout-tests/editing/selection/move-by-character-003-expected.txt: Added.
          * layout-tests/editing/selection/move-by-character-003.html: Added.
          * layout-tests/editing/selection/move-by-character-004-expected.txt: Added.
          * layout-tests/editing/selection/move-by-character-004.html: Added.
          * layout-tests/editing/selection/move-by-character-005-expected.txt: Added.
          * layout-tests/editing/selection/move-by-character-005.html: Added.
          * layout-tests/editing/undo/redo-typing-001-expected.txt: Added.
          * layout-tests/editing/undo/redo-typing-001.html: Added.
          * layout-tests/editing/undo/undo-typing-001-expected.txt: Added.
          * layout-tests/editing/undo/undo-typing-001.html: Added.
  
  2004-04-06  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Dave
  
          Added execCommand feature. 
          Added Javascript selection object.
          This lays the groundwork for layout tests for editing.
  
          * khtml/dom/dom_doc.cpp:
          (DOM::Document::execCommand): Added. Calls through to impl's execCommand.
          * khtml/dom/dom_doc.h: Added execCommand declaration.
          * khtml/ecma/kjs_dom.cpp:
          (DOMDocumentProtoFunc::tryCall): Switch on new ExecCommand constant and call through to the document.
          * khtml/ecma/kjs_dom.h: Added ExecCommand constant.
          (KJS::DOMDocument::):
          * khtml/ecma/kjs_dom.lut.h: Generated file.
          * khtml/ecma/kjs_window.cpp:
          (Window::Window): Initialize selection object.
          (Window::selection): Return window's selection object.
          (Window::mark): Mark selection object.
          (WindowFunc::tryCall): Return selection object on GetSelection.
          (LocationFunc::tryCall): Added.
          (Selection::Selection): Added.
          (Selection::~Selection): Added.
          (Selection::get): Added.
          (Selection::put): Added.
          (Selection::toPrimitive): Added.
          (Selection::toString): Added.
          (SelectionFunc::tryCall): Added.
          * khtml/ecma/kjs_window.h:
          (KJS::Selection::): Added.
          (KJS::Selection::part): Added.
          (KJS::Selection::classInfo): Added.
          * khtml/ecma/kjs_window.lut.h: Generated file.
          * khtml/editing/htmlediting_impl.cpp:
          (debugPosition): Debugging aid.
          (DeleteCollapsibleWhitespaceCommandImpl::deleteWhitespace): Move the ending position
          if you are about to delete it. Fixes a crasher I discovered while writing tests.
          (DeleteSelectionCommandImpl::doApply): Move to containing editable block position 0
          instead of 1 in a block in delete case 1.
          (InputTextCommandImpl::prepareForTextInsertion):
          (TypingCommandImpl::issueCommandForDeleteKey):
          * khtml/khtml_part.h:
          * khtml/khtml_selection.cpp:
          (KHTMLSelection::validate): Now adjusts the selection down to leaf nodes if needed.
          (KHTMLSelection::debugPosition): Debugging aid.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::execCommand): Added. Supports five different commands.
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::previousEditable): Use false instead of 0 for equality check.
          (NodeImpl::nextEditable): Ditto.
          * khtml/xml/dom_position.cpp:
          (DOMPosition::equivalentLeafPosition): New function
          (DOMPosition::previousRenderedEditablePosition): New function
          (DOMPosition::nextRenderedEditablePosition): New function
          (DOMPosition::equivalentUpstreamPosition): Refined behavior to handle more cases correctly.
          (DOMPosition::equivalentDownstreamPosition): Ditto.
          (DOMPosition::atStartOfContainingEditableBlock):New function
          (DOMPosition::atStartOfRootEditableBlock):New function
          * khtml/xml/dom_position.h:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::issueUndoCommand): New function for calling undo programatically.
          (KWQKHTMLPart::issueRedoCommand): Ditto, but for redo.
          * kwq/KWQRenderTreeDebug.cpp:
          (nodePositionRelativeToRoot): New function to generate log information for the selection.
          (writeSelection): Writes the selection if there is one.
          (externalRepresentation): Calls writeSelection
          * kwq/WebCoreBridge.h: New declarations for issueUndoCommand and issueRedoCommand.
  
  2004-04-05  Darin Adler  <darin at apple.com>
  
          * khtml/html/kentities.gperf: Added &COPY; and &REG;, both supported by Gecko
          (and presumably by WinIE). Also re-sorted the list.
          * khtml/html/kentities.c: Regenerated.
  
  2004-04-05  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - rolled over fix from KHTML tree; anchor inside another anchor
  
          * khtml/rendering/render_layer.cpp: (RenderLayer::nodeAtPoint):
          Make sure the URL element is the innermost one, by not setting it once
          it's already set.
  
  2004-04-05  David Hyatt  <hyatt at apple.com>
  
  	Implement overflow: overlay so that a scrollbar can show/hide without causing a layout.
  	
          Reviewed by darin
  
          * ChangeLog:
          * khtml/css/css_computedstyle.cpp:
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/css/cssvalues.c:
          (hash_val):
          (findValue):
          * khtml/css/cssvalues.h:
          * khtml/css/cssvalues.in:
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlock):
          (khtml::RenderBlock::layoutBlockChildren):
          (khtml::RenderBlock::rightOffset):
          * khtml/rendering/render_box.cpp:
          (RenderBox::contentWidth):
          (RenderBox::contentHeight):
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::updateScrollInfoAfterLayout):
          * khtml/rendering/render_object.cpp:
          (RenderObject::clientWidth):
          (RenderObject::clientHeight):
          * khtml/rendering/render_style.h:
          (khtml::):
          (khtml::RenderStyle::hasAutoScrollbars):
          (khtml::RenderStyle::scrollsOverflow):
          (khtml::RenderStyle::includeScrollbarSize):
  
  2004-04-03  David Hyatt  <hyatt at apple.com>
  
  	Implementation of <input type=range>, which makes sliders available in Web pages.
  	
          Reviewed by john
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/ecma/kjs_dom.cpp:
          (DOMNode::getValueProperty):
          (DOMNode::putValue):
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMNode::):
          * khtml/ecma/kjs_dom.lut.h:
          (KJS::):
          * khtml/html/html_formimpl.cpp:
          (HTMLInputElementImpl::setType):
          (HTMLInputElementImpl::type):
          (HTMLInputElementImpl::click):
          (HTMLInputElementImpl::accessKeyAction):
          (HTMLInputElementImpl::parseHTMLAttribute):
          (HTMLInputElementImpl::rendererIsNeeded):
          (HTMLInputElementImpl::createRenderer):
          (HTMLInputElementImpl::encoding):
          * khtml/html/html_formimpl.h:
          (DOM::HTMLInputElementImpl::):
          * khtml/misc/htmlattrs.c:
          (hash_attr):
          (findAttr):
          * khtml/misc/htmlattrs.h:
          * khtml/misc/htmlattrs.in:
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::slotTextChanged):
          (:RenderFormElement):
          (RenderSlider::calcMinMaxWidth):
          (RenderSlider::updateFromElement):
          (RenderSlider::slotSliderValueChanged):
          * khtml/rendering/render_form.h:
          (khtml::RenderSlider::element):
          (khtml::RenderSlider::renderName):
          (khtml::RenderSlider::canHaveIntrinsicMargins):
          * khtml/xml/dom2_eventsimpl.cpp:
          (EventImpl::typeToId):
          (EventImpl::idToType):
          * khtml/xml/dom2_eventsimpl.h:
          (DOM::EventImpl::):
          * kwq/KWQSlider.h: Added.
          * kwq/KWQSlider.mm: Added.
          (-[KWQSlider initWithQSlider:]):
          (-[KWQSlider slide:]):
          (m_val):
          (QSlider::setFont):
          (QSlider::sizeHint):
          (QSlider::setValue):
          (QSlider::setMinValue):
          (QSlider::setMaxValue):
          (QSlider::value):
          (QSlider::minValue):
          (QSlider::maxValue):
          (QSlider::sliderValueChanged):
          (QSlider::dimensions):
          * kwq/KWQSlot.mm:
          (KWQSlot::KWQSlot):
          (KWQSlot::call):
  
  2004-04-05  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3612580>: SPI: WebPlugin selection
  
          Reviewed by kocienda.
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/rendering/render_replaced.cpp:
          (RenderWidget::setSelectionState): new override, calls QWidget::setIsSelected
          * khtml/rendering/render_replaced.h:
          (khtml::RenderWidget::selectionState): new override
          * kwq/KWQWidget.h:
          * kwq/KWQWidget.mm:
          (QWidget::setIsSelected): new, calls [WebCoreBridge setIsSelected:forView:]
          (QWidget::isSelected): new, calls [WebCoreBridge isViewSelected:]
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge selectionColor]): new
  
  2004-04-03  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3601728, text overlaps borders at ejai.org.  Remove all the code in addForbidden for
  	dir, menu, nobr, and pre that made them too restrictive regarding what child tags they could
  	contain.
  	
          Reviewed by kocienda
  
          * khtml/html/dtd.cpp:
          (DOM::addForbidden):
          (DOM::removeForbidden):
  
  2004-04-02  Chris Blumenberg  <cblu at apple.com>
  
  	Moved the DOM extensions to their own headers
  
          Reviewed by kocienda.
  
          * WebCore.pbproj/project.pbxproj:
          * kwq/DOM.h: include DOMExtensions.h
          * kwq/DOMExtensions.h: Added.
          * kwq/DOMHTML.h: moved extensions to DOMExtensions.h
          * kwq/DOMHTML.mm: Renamed to match header
  
  2004-04-02  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3610662, rendering sometimes doesn't update in response to mouse events that change style.
  	The document changed list was getting messed up.
  	
          Reviewed by darin
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::updateDocumentsRendering):
          * khtml/xml/dom_docimpl.h:
  
  === Safari-135 ===
  
  2004-04-01  Darin Adler  <darin at apple.com>
  
          Based on a fix by Eric Albert.
  
          - fixed <rdar://problem/3594247>: Safari crashes when a background image has a height or width of 0
  
          * khtml/rendering/render_box.cpp: (RenderBox::paintBackgroundExtended):
          Change code path so we don't mod with 0.
  
  2004-04-01  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed <rdar://problem/3608305>: DEMO: menu in search field has one disabled item: localized string not found
  
          * khtml/html/html_formimpl.cpp: (HTMLInputElementImpl::HTMLInputElementImpl):
          Initialize m_maxResults to 0.
  
  2004-04-01  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - cleaned up image map code and made it work with XML documents
  
          * khtml/html/html_documentimpl.h: Removed getMap and mapMap.
          * khtml/html/html_documentimpl.cpp: Removed getMap; moved to base class.
  
          * khtml/html/html_imageimpl.cpp:
          (HTMLMapElementImpl::~HTMLMapElementImpl): Call new removeImageMap function instead
          of manipulating the mapMap field directly.
          (HTMLMapElementImpl::parseHTMLAttribute): Rewrite name changing code for simplicity
          and to avoid running off the end of the bufffer.
          Also remove image map before changing name so it doesn't end up in the map twice
          under both the old and new names.
          * khtml/html/html_imageimpl.h: Use a DOMString instead of QString for the name, since
          the public API already uses a DOMString.
  
          * khtml/rendering/render_image.cpp: (RenderImage::nodeAtPoint): Call the new
          getImageMap instead of the old getMap.
  
          * khtml/xml/dom_docimpl.h: Added addImageMap, removeImageMap, getImageMap, and m_imageMapsByName.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::addImageMap): Added. Stores the image map under its name, unless there's
          already another map of the same.
          (DocumentImpl::removeImageMap): Added. Removes the image map if it's already filed by
          name. Avoid pitfall of removing another image map that has the same name.
          (DocumentImpl::getImageMap): Added. Simplified version of logic from getMap in HTMLDocumentImpl.
  
  2004-04-01  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3608978>: dual <map> means you can't select the enter site button at jurassicpark.com (same problem in MacIE, works in Netscape)
  
          * khtml/html/html_imageimpl.cpp: (HTMLMapElementImpl::parseHTMLAttribute):
          Make the first <map> seen win, as in other browsers. The old code made the last <map> seen win.
  
  2004-04-01  Ken Kocienda  <kocienda at apple.com>
  
          Missing file broke build after my last checkin
  
          * ForwardingHeaders/rendering/render_line.h: Added.
  
  2004-03-31  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Dave.
          
          Many, many editing improvements, with a concentration on getting
          caret navigation and deleting selections working correctly.
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/dom/dom_position.cpp: Removed.
          * khtml/dom/dom_position.h: Removed.
          * khtml/editing/htmlediting.cpp:
          (EditCommand::isNull): Inlined.
          (EditCommand::notNull): New function.
          (EditCommand::parent): Commands now have parents. Allows for walking the tree of composite commands.
          (EditCommand::setParent): Ditto.
          (EditCommand::emptyCommand): Returns a static empty command.
          (AppendNodeCommand::AppendNodeCommand): 
          (AppendNodeCommand::parentNode): Member variable name change only. parent -> parentNode.
          (DeleteCollapsibleWhitespaceCommand::DeleteCollapsibleWhitespaceCommand): New command.
          (InputTextCommand::InputTextCommand):
          (InputTextCommand::input):
          (InputTextCommand::charactersAdded):
          (JoinTextNodesCommand::JoinTextNodesCommand): Now derives directly from EditCommand.
          (RemoveNodeAndPruneCommand::RemoveNodeAndPruneCommand): New command.
          (SplitTextNodeCommand::SplitTextNodeCommand): Now derives directly from EditCommand.
          * khtml/editing/htmlediting.h:
          * khtml/editing/htmlediting_impl.cpp:
          (isNBSP): New helper.
          (isWS): New helper.
          (shouldPruneNode): New helper.
          (leadingWhitespacePosition): New helper.
          (trailingWhitespacePosition): New helper.
          (textNodesAreJoinable): New helper.
          (nonBreakingSpaceString): Returns a static DOMString containing a non-breaking space.
          (EditCommandImpl::EditCommandImpl):
          (EditCommandImpl::setStartingSelection): Now recursively sets starting selection on parents.
          (EditCommandImpl::setEndingSelection): As above, for ending selection.
          (EditCommandImpl::parent): New accessor.
          (EditCommandImpl::setParent): New accessor.
          (CompositeEditCommandImpl::doUnapply): Removed some logging.
          (CompositeEditCommandImpl::doReapply): Removed some logging.
          (CompositeEditCommandImpl::applyCommandToComposite): Sets parent.
          (CompositeEditCommandImpl::removeNodeAndPrune): New comvenience.
          (CompositeEditCommandImpl::replaceText): New comvenience.
          (CompositeEditCommandImpl::deleteSelection): New comvenience.
          (CompositeEditCommandImpl::deleteCollapsibleWhitespace): New comvenience.
          (AppendNodeCommandImpl::AppendNodeCommandImpl): Member variable name change only. parent -> parentNode.
          (AppendNodeCommandImpl::~AppendNodeCommandImpl): Ditto.
          (AppendNodeCommandImpl::doApply): Ditto.
          (AppendNodeCommandImpl::doUnapply): Ditto.
          (DeleteCollapsibleWhitespaceCommandImpl::DeleteCollapsibleWhitespaceCommandImpl): New command
          (debugPosition): New debugging aid.
          (DeleteSelectionCommandImpl::doApply): Major reworking to handle more cases correctly.
          (InputNewlineCommandImpl::doApply): Position and selection tweaks.
          (InputTextCommandImpl::InputTextCommandImpl): Handles more cases now, like typing after an image.
          (JoinTextNodesCommandImpl::JoinTextNodesCommandImpl): Now derives directly from EditCommand.
          Implements the guts of the command itself now, rather than replying on its former base class.
          (RemoveNodeAndPruneCommandImpl::RemoveNodeAndPruneCommandImpl): New command.
          (SplitTextNodeCommandImpl::SplitTextNodeCommandImpl): Now derives directly from EditCommand.
          Implements the guts of the command itself now, rather than replying on its former base class.
          (TypingCommandImpl::TypingCommandImpl): Major rework to handle more cases correctly.
          * khtml/editing/htmlediting_impl.h:
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::isContentEditable): More efficient use of the style system to answer the question.
          * khtml/khtml_part.cpp:
          (KHTMLPart::setSelection): Fixes an issue where the caret would not repaint after being moved when undoing.
          (KHTMLPart::takeSelectionFrom): Ditto.
          (KHTMLPart::clearSelection): Ditto.
          (KHTMLPart::invalidateSelection): Ditto.
          (KHTMLPart::setSelectionVisible): Ditto.
          (KHTMLPart::slotClearSelection): Ditto.
          (KHTMLPart::clearCaretRectIfNeeded):  Ditto.
          (KHTMLPart::notifySelectionChanged): Ditto.
          (KHTMLPart::unappliedEditing): Now uses EditCommand::emptyCommand().
          (KHTMLPart::reappliedEditing): Ditto.
          * khtml/khtml_part.h:
          * khtml/khtml_selection.cpp:
          (KHTMLSelection::KHTMLSelection):
          (KHTMLSelection::modify): Updated to work with new DOMPosition API.
          (KHTMLSelection::paintCaret): Ditto.
          (KHTMLSelection::moveToRenderedContent): Ditto.
          (KHTMLSelection::basePosition): New convenience.
          (KHTMLSelection::extentPosition): New convenience.
          (KHTMLSelection::startPosition): New convenience.
          (KHTMLSelection::endPosition): New convenience.
          (KHTMLSelection::debugPosition): Modified debug output.
          * khtml/khtml_selection.h:
          (KHTMLSelection::isEmpty):
          (KHTMLSelection::notEmpty):
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren): Fixed a crasher that happened when deleting content at the start of a line.
          * khtml/rendering/render_br.cpp:
          (RenderBR::caretMaxRenderedOffset): New function.
          (RenderBR::caretPos): Now draws the caret in the right place when a block is empty.
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::caretPos): Now draws the caret in the right place when a flow is empty.
          * khtml/rendering/render_line.cpp:
          (InlineBox::caretMaxRenderedOffset): New function.
          * khtml/rendering/render_line.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::isEditable):
          (RenderObject::caretMaxRenderedOffset): New function.
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::caretMaxRenderedOffset): New function.
          * khtml/rendering/render_replaced.h:
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::caretMaxRenderedOffset): New function.
          (RenderText::detach):
          (RenderText::caretMaxOffset):
          (RenderText::caretMaxRenderedOffset): New function.
          * khtml/rendering/render_text.h:
          (khtml::InlineTextBox::len):
          * khtml/xml/dom_edititerator.cpp: Added.
          * khtml/xml/dom_edititerator.h: Added.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::previousEditable): Improved the correctness of this function.
          (NodeImpl::nextEditable): Ditto.
          * khtml/xml/dom_nodeimpl.h:
          * khtml/xml/dom_position.cpp: Added.
          (DOMPosition::renderedOffset): New function.
          (DOMPosition::previousCharacterPosition): New function.
          (DOMPosition::nextCharacterPosition): New function.
          (DOMPosition::equivalentUpstreamPosition): New function.
          (DOMPosition::equivalentDownstreamPosition): New function.
          (DOMPosition::validUpstreamDownstreamPosition): New function.
          (DOMPosition::inRenderedContent): New function.
          (inlineBoxForRenderer): New function.
          (renderersOnDifferentLine): New function.
          (nextRenderedEditable): New function.
          (previousRenderedEditable): New function.
          (DOMPosition::inRenderedText): New function.
          (DOMPosition::rendersOnSameLine): New function.
          (DOMPosition::rendersInDifferentPosition): New function.
          (DOMPosition::isFirstRenderedPositionOnLine): New function.
          (DOMPosition::isLastRenderedPositionOnLine): New function.
          (DOMPosition::isLastRenderedPositionInEditableBlock): New function.
          (DOMPosition::inFirstEditableInRootEditableBlock): New function.
          (DOMPosition::inLastEditableInRootEditableBlock): New function.
          (DOMPosition::inFirstEditableInContainingEditableBlock): New function.
          (DOMPosition::inLastEditableInContainingEditableBlock): New function.
          * khtml/xml/dom_position.h: Added.
          (DOM::DOMPosition::notEmpty): New function.
          * khtml/xml/dom_stringimpl.cpp:
          (DOM::DOMStringImpl::containsOnlyWhitespace): Added a version which takes an offset and length.
          * khtml/xml/dom_stringimpl.h:
          * khtml/xml/dom_textimpl.cpp:
          (CharacterDataImpl::containsOnlyWhitespace): As above
          (CharacterDataImpl::maxOffset): New function.
          (CharacterDataImpl::caretMaxRenderedOffset): New function.
          (TextImpl::TextImpl):
          (TextImpl::rendererIsNeeded): A new bit. When set, makes a text renderer unconditionally.
          * khtml/xml/dom_textimpl.h:
          (DOM::TextImpl::setRendererIsNeeded): Sets the bit.
          * kwq/KWQAssertions.m:
          (KWQLog): Change to decrease the amount of output for the Editing log level. (my preference)
  
  2004-03-31  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3601834, make sure that textareas do a layout when their rows/cols/wrap attributes are dynamically
  	changed.
  	
          Reviewed by darin.
  
          * khtml/html/html_formimpl.cpp:
          (HTMLTextAreaElementImpl::parseHTMLAttribute):
  
  2004-03-30  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3604241, simple space collapsing results in a doubled character.  Simplify the ignoring of
  	whitespace and make sure it works across absolutely positioned spans.
  	
          Reviewed by darin
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::findNextLineBreak):
  
  2004-03-30  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed <rdar://problem/3570877>: REGRESSION: onfocus handler not working at weather.com
  
          * khtml/ecma/kjs_binding.cpp:
          (UString::string): Turn a null UString into a null DOMString, but a non-null empty UString into a
          non-null empty DOMString.
          (UString::qstring): Ditto, for QString.
          (Identifier::string): Ditto, for Identifier.
          (Identifier::qstring): Ditto.
  
          * kwq/KWQLineEdit.h: Override focusPolicy.
          * kwq/KWQLineEdit.mm: (QLineEdit::focusPolicy): Return StrongFocus instead of TabFocus, since
          we allow clicking to focus on these widgets.
          * kwq/KWQTextEdit.h: More of the same.
          * kwq/KWQTextEdit.mm: (QTextEdit::focusPolicy): And still more.
  
          - fixed <rdar://problem/3605919>: text fields in web pages are too tall
  
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldCell _typesetterBehavior]): Ignore the per-application typesetter setting and
          instead always use the latest behavior for text fields in web pages.
          (-[KWQSecureTextFieldCell _typesetterBehavior]): Ditto.
          (-[KWQSearchFieldCell _typesetterBehavior]): Ditto.
  
          - additional cleanup
  
          * khtml/html/html_formimpl.cpp:
          (HTMLGenericFormElementImpl::isKeyboardFocusable): Check tab focus bit instead of different modes.
          (HTMLGenericFormElementImpl::isMouseFocusable): Check click focus bit instead of different modes.
  
  2004-03-30  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3603326, spurious line breaks in encyclopedia articles.  Make sure makeChildrenNonInline knows to
  	skip over floating/positioned elements so that they remain part of contiguous inline runs for static positioning
  	purposes.
  	
          Reviewed by darin
  
          * khtml/rendering/render_block.cpp:
          (khtml::getInlineRun):
  
  2004-03-30  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed garbage characters seen while I was rigging up the Mozilla JavaScript tests
  
          * kwq/KWQString.h: Add a "move constructor" for KWQStringData that extracts the data
          from an existing KWQStringData.
          * kwq/KWQString.mm:
          (KWQStringData::KWQStringData): Implement the move constructor.
          (QString::detachInternal): Use the move constructor rather than making a copy of the
          data. Should be both more efficient and preserves both the Unicode and the ASCII. The
          bug here is that TokenizerSubstring relies on the Unicode staying around. We still
          have a problem in the case where the Unicode is inside the KWQStringData. To deal with
          that we'll have to add a new QString call that TokenizerSubstring can use. The new call
          will force QString to keep the Unicode outside the internal KWQStringData.
  
  2004-03-30  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3606146>: repro nil-deref in QWidget::move (www.stoltoffshore.com)
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::requestObject): Add check for NULL widget.
          (KHTMLPart::processObjectRequest): Add check for NULL widget.
  
  2004-03-29  David Hyatt  <hyatt at apple.com>
  
  	Make sure "auto" is allowed as a valid value when parsing rect shapes (e.g., for the clip property).
  	
          Reviewed by rjw
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseShape):
  
  2004-03-29  David Hyatt  <hyatt at apple.com>
  
  	Followup fix.  Handle the case where a hard line break occurs right after a soft hyphen.  In this
  	case we were losing a letter of the word in addition to not rendering the soft hyphen.
  	
          Reviewed by kocienda
  
          * khtml/rendering/bidi.cpp:
          (khtml::checkMidpoints):
  
  2004-03-29  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3604154, support soft hyphens when rendering.  This patch implements soft hyphen support that
  	matches IE6 on Windows and Opera 7.  Soft hyphens that don't break lines end up getting collapsed away.
  	Only if the hyphen breaks a line does it render.
  	
          Reviewed by kocienda
  
          * khtml/rendering/bidi.cpp:
          (khtml::chopMidpointsAt):
          (khtml::appendRunsForObject):
          (khtml::RenderBlock::findNextLineBreak):
          * khtml/rendering/render_text.cpp:
          (RenderText::calcMinMaxWidth):
  
  2004-03-29  John Sullivan  <sullivan at apple.com>
  
          Made menu shortcuts work again when editing HTML
  
          Reviewed by Darin.
  
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::defaultEventHandler):
          Don't treat key events with command key down as
          editing events.
  
  2004-03-28  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3602202>: "feed:uuid:...." links in Emerson content are being changed into "feed:uuuid:...."
  
          * kwq/KWQKURL.mm: (copyPathRemovingDots): Add special case for empty path. The old code had an
          assertion that explicitly allowed this case, but it copied a character from the src buffer,
          which was incorrect.
  
  2004-03-26  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3600642, letter magnet demo doesn't update until mouse move.  This patch also fixes problems
  	with the animated text Gecko DOM demos on developer.netscape.com.  Make sure that timer callbacks via
  	setTimeout always updateRendering after executing the JS code.
  	
          Reviewed by darin
  
          * khtml/ecma/kjs_window.cpp:
          (ScheduledAction::execute):
  
  === Safari-134 ===
  
  2004-03-25  David Hyatt  <hyatt at apple.com>
  
  	Implement the rest of the search field.  Make it work with form submission.  Implement onscroll at
  	the document level.
  	
          Reviewed by darin
  
          * khtml/html/html_formimpl.cpp:
          (HTMLFormElementImpl::submit):
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::addSearchResult):
          * khtml/rendering/render_form.h:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::sendScrollEvent):
          * kwq/KWQLineEdit.h:
          * kwq/KWQLineEdit.mm:
          (QLineEdit::setMaxResults):
          (QLineEdit::setPlaceholderString):
          (QLineEdit::addSearchResult):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge sendScrollEvent]):
          * kwq/WebCoreViewFactory.h:
  
  2004-03-25  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3570700, crash in inlineBox::isDirty.  Make sure line boxes null out parent pointers when those
  	parents get deleted.  r=john
  
  	Fix for .value not being settable on selects.  r=darin
  	
          * khtml/html/html_formimpl.cpp:
          (HTMLSelectElementImpl::setValue):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::removeChildrenFromLineBoxes):
          (khtml::RenderBlock::removeChild):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_line.cpp:
          (InlineFlowBox::removeChild):
          
  2004-03-25  Darin Adler  <darin at apple.com>
  
          Fix by Kristin Webster, reviewed by me.
  
          - fixed <rdar://problem/3582431>: HiDPI - Form elements not working when scaling factor != 1.0
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Pass nil for fromView
          rather than passing the top level view.
  
  2004-03-24  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3566805>: REGRESSION: When the subject of mailto is 2 byte Safari failed to send mail address and subject to Mail.app
  
          * kwq/KWQKURL.mm: (KURL::findHostnamesInMailToURL): Update to handle hostnames that end just before
          a '?' since a '?' ends the entire part of the URL that can contain hostnames. Also change the logic so
          that the '?' will successfully end the search.
  
  2004-03-24  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed <rdar://problem/3599650>: main image missing due to incorrect relative URL resolution at www.brother.com
  
          * kwq/KWQKURL.mm: (KURL::KURL): Implement compatibility rule from the URI RFC.
          If a URL has a scheme, but does not start with the "/" character, and the scheme
          matches the base URL, then treat it as a relative URL.
  
  2004-03-24  Ken Kocienda  <kocienda at apple.com>
  
  	I neglected to check in these required changes when I landed previously.
  	This is what I get for trying to commit when I had other changes in
  	my tree.
  
          * khtml/dom/html_form.cpp:
          (HTMLSelectElement::add): Uses new-style call.
          * khtml/html/html_formimpl.cpp:
          (HTMLSelectElementImpl::add): Change the interface for this call to use
  	impl objects instead of API objects. This works around the fact that the
  	API object's constructor that takes an impl is protected.
          * khtml/html/html_formimpl.h: Uses new-style call.
  
  2004-03-24  Ken Kocienda <kocienda at apple.com>
  
          Implemented the remainder of the HTML DOM API.
      
          Reviewed by Chris.
      
          * kwq/DOMHTML.h
          * kwq/HTMLDOM.mm
  
  2004-03-23  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3487207, implement onscroll DOM event for elements with overflow:auto/scroll/hidden.  This does
  	not handle firing onscroll on the window when the document scrolls, nor does it handle firing onscroll
  	on textareas.  These are two separate bugs.
  
  	This patch finishes stubbing out the onscroll event and adds support for it to the DOM.  It also supports
  	the firing of the event when overflow blocks scroll.
  	
          Reviewed by darin
  
          * khtml/ecma/kjs_dom.cpp:
          (DOMNode::getValueProperty):
          (DOMNode::putValue):
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMNode::):
          * khtml/ecma/kjs_dom.lut.h:
          (KJS::):
          * khtml/ecma/kjs_window.cpp:
          (Window::get):
          (Window::put):
          * khtml/ecma/kjs_window.h:
          (KJS::Window::):
          * khtml/ecma/kjs_window.lut.h:
          (KJS::):
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::parseHTMLAttribute):
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::parseHTMLAttribute):
          * khtml/misc/htmlattrs.c:
          (hash_attr):
          (findAttr):
          * khtml/misc/htmlattrs.h:
          * khtml/misc/htmlattrs.in:
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::scrollToOffset):
  
  2004-03-23  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3513627, HTML mail prints upside down occasionally.  Change printing so that it never resizes the
          WebHTMLView when formatting for printing.  When computing page rects, instead of using the view's bounds,
          use the root layer's width instead.
  
          Reviewed by darin
  
          * khtml/khtmlview.cpp:
          (KHTMLView::layout):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
  
  2004-03-23  David Hyatt  <hyatt at apple.com>
  
  	Fix for crasher 3598204, previousKeyView was calling nextKeyView instead.
  	
          Reviewed by darin
  
          * kwq/KWQTextField.mm:
          (-[KWQTextField previousKeyView]):
          (-[KWQSecureTextField previousKeyView]):
          (-[KWQSearchField previousKeyView]):
  
  2004-03-23  Darin Adler  <darin at apple.com>
  
          Reviewed by Vicki.
  
          - fixed deployment build
  
  2004-03-22  David Hyatt  <hyatt at apple.com>
  
  	Wire up NSSearchField to WebCore.  Add support for placeholder strings, autosaving of recent items, the ability to show/hide
  	the magnifying glass search button, the ability to specify the maximum number of results, the ability to specify an incremental
  	search or not, etc.  Added a DOM event that fires when the search field indicates that search results should be updated.
  	
          Reviewed by darin
  
          * khtml/ecma/kjs_dom.cpp:
          (DOMNode::getValueProperty):
          (DOMNode::putValue):
          * khtml/ecma/kjs_dom.h:
          (KJS::DOMNode::):
          * khtml/ecma/kjs_dom.lut.h:
          (KJS::):
          * khtml/ecma/kjs_window.cpp:
          (Window::get):
          (Window::put):
          * khtml/ecma/kjs_window.h:
          (KJS::Window::):
          * khtml/ecma/kjs_window.lut.h:
          (KJS::):
          * khtml/html/html_formimpl.cpp:
          (HTMLInputElementImpl::parseHTMLAttribute):
          * khtml/html/html_formimpl.h:
          (DOM::HTMLInputElementImpl::maxResults):
          * khtml/misc/htmlattrs.c:
          (hash_attr):
          (findAttr):
          * khtml/misc/htmlattrs.h:
          * khtml/misc/htmlattrs.in:
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::RenderLineEdit):
          (RenderLineEdit::slotPerformSearch):
          (RenderLineEdit::updateFromElement):
          * khtml/rendering/render_form.h:
          * khtml/xml/dom2_eventsimpl.cpp:
          (EventImpl::typeToId):
          (EventImpl::idToType):
          * khtml/xml/dom2_eventsimpl.h:
          (DOM::EventImpl::):
          * kwq/KWQLineEdit.h:
          (QLineEdit::performSearch):
          (QLineEdit::type):
          * kwq/KWQLineEdit.mm:
          (QLineEdit::QLineEdit):
          (QLineEdit::setLiveSearch):
          (QLineEdit::setAutoSaveName):
          (QLineEdit::setMaxResults):
          (QLineEdit::setPlaceholderString):
          * kwq/KWQSlot.mm:
          (KWQSlot::KWQSlot):
          (KWQSlot::call):
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldController initWithTextField:QLineEdit:]):
          (-[KWQTextFieldController invalidate]):
          (-[KWQTextFieldController action:]):
          (-[KWQTextFieldController controlTextDidBeginEditing:]):
          (-[KWQTextFieldController controlTextDidEndEditing:]):
          (-[KWQTextFieldController controlTextDidChange:]):
          (-[KWQTextFieldController control:textShouldBeginEditing:]):
          (-[KWQTextFieldController control:textShouldEndEditing:]):
          (-[KWQTextFieldController control:didFailToFormatString:errorDescription:]):
          (-[KWQTextFieldController control:didFailToValidatePartialString:errorDescription:]):
          (-[KWQTextFieldController control:isValidObject:]):
          (-[KWQTextFieldController control:textView:doCommandBySelector:]):
          (-[KWQTextFieldController textChanged]):
  
  2004-03-22  David Hyatt  <hyatt at apple.com>
  
  	Factoring of form control code to enable sharing between three types of text fields: normal, password, and
  	the new search field.  Also made search field creatable using <input type="search">.  There are still many
  	bugs with the field, but you can at least type in it and submit it with a form.
  	
          Reviewed by darin
  
          * khtml/html/html_formimpl.cpp:
          (HTMLInputElementImpl::setType):
          (HTMLInputElementImpl::type):
          (HTMLInputElementImpl::click):
          (HTMLInputElementImpl::accessKeyAction):
          (HTMLInputElementImpl::rendererIsNeeded):
          (HTMLInputElementImpl::createRenderer):
          (HTMLInputElementImpl::encoding):
          (HTMLInputElementImpl::defaultEventHandler):
          (HTMLInputElementImpl::isEditable):
          * khtml/html/html_formimpl.h:
          (DOM::HTMLInputElementImpl::):
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::RenderLineEdit):
          * kwq/KWQKLineEdit.h:
          (KLineEdit::KLineEdit):
          * kwq/KWQLineEdit.h:
          (QLineEdit::):
          * kwq/KWQLineEdit.mm:
          (QLineEdit::QLineEdit):
          (QLineEdit::~QLineEdit):
          (QLineEdit::setFont):
          (QLineEdit::setText):
          (QLineEdit::text):
          (QLineEdit::setMaxLength):
          (QLineEdit::isReadOnly):
          (QLineEdit::setReadOnly):
          (QLineEdit::maxLength):
          (QLineEdit::selectAll):
          (QLineEdit::edited):
          (QLineEdit::setEdited):
          (QLineEdit::sizeForCharacterWidth):
          (QLineEdit::baselinePosition):
          (QLineEdit::setAlignment):
          (QLineEdit::setWritingDirection):
          (KWQNSTextAlignmentForAlignmentFlags):
          (QLineEdit::setLiveSearch):
          * kwq/KWQTextField.h:
          * kwq/KWQTextField.mm:
          (-[KWQTextFieldController initWithTextField:QLineEdit:]):
          (-[KWQTextFieldController action:]):
          (-[KWQTextFieldController dealloc]):
          (-[KWQTextFieldController widget]):
          (-[KWQTextFieldController setMaximumLength:]):
          (-[KWQTextFieldController controlTextDidBeginEditing:]):
          (-[KWQTextFieldController controlTextDidEndEditing:]):
          (-[KWQTextFieldController controlTextDidChange:]):
          (-[KWQTextFieldController control:textShouldBeginEditing:]):
          (-[KWQTextFieldController control:textShouldEndEditing:]):
          (-[KWQTextFieldController control:didFailToFormatString:errorDescription:]):
          (-[KWQTextFieldController control:didFailToValidatePartialString:errorDescription:]):
          (-[KWQTextFieldController control:isValidObject:]):
          (-[KWQTextFieldController control:textView:doCommandBySelector:]):
          (-[KWQTextFieldController textChanged]):
          (-[KWQTextFieldController setInDrawingMachinery:]):
          (-[KWQTextFieldController textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
          (-[KWQTextFieldController textView:shouldHandleEvent:]):
          (-[KWQTextFieldController textView:didHandleEvent:]):
          (-[KWQTextFieldController setBaseWritingDirection:]):
          (-[KWQTextFieldController baseWritingDirection]):
          (-[KWQTextFieldController selectedRange]):
          (-[KWQTextFieldController setSelectedRange:]):
          (-[KWQTextFieldController setHasFocus:]):
          (-[KWQTextFieldController updateTextAttributes:]):
          (+[KWQTextField cellClass]):
          (-[KWQTextField initWithQLineEdit:]):
          (-[KWQTextField dealloc]):
          (-[KWQTextField controller]):
          (-[KWQTextField widget]):
          (-[KWQTextField selectText:]):
          (-[KWQTextField setStringValue:]):
          (-[KWQTextField nextKeyView]):
          (-[KWQTextField previousKeyView]):
          (-[KWQTextField nextValidKeyView]):
          (-[KWQTextField previousValidKeyView]):
          (-[KWQTextField acceptsFirstResponder]):
          (-[KWQTextField display]):
          (-[KWQTextField displayRectIgnoringOpacity:]):
          (-[KWQTextField textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
          (-[KWQTextField textView:shouldHandleEvent:]):
          (-[KWQTextField textView:didHandleEvent:]):
          (-[KWQTextFieldCell editWithFrame:inView:editor:delegate:event:]):
          (-[KWQTextFieldCell selectWithFrame:inView:editor:delegate:start:length:]):
          (-[KWQTextFieldCell _textAttributes]):
          (-[KWQSecureTextField initWithQLineEdit:]):
          (-[KWQSecureTextField dealloc]):
          (-[KWQSecureTextField controller]):
          (-[KWQSecureTextField widget]):
          (-[KWQSecureTextField setStringValue:]):
          (-[KWQSecureTextField nextKeyView]):
          (-[KWQSecureTextField previousKeyView]):
          (-[KWQSecureTextField acceptsFirstResponder]):
          (-[KWQSecureTextField display]):
          (-[KWQSecureTextField displayRectIgnoringOpacity:]):
          (-[KWQSecureTextField textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
          (-[KWQSecureTextField textView:shouldHandleEvent:]):
          (-[KWQSecureTextField textView:didHandleEvent:]):
          (-[KWQSecureTextField selectText:]):
          (-[KWQSecureTextFieldCell editWithFrame:inView:editor:delegate:event:]):
          (-[KWQSecureTextFieldCell selectWithFrame:inView:editor:delegate:start:length:]):
          (-[KWQSecureTextFieldCell _textAttributes]):
          (+[KWQSearchField cellClass]):
          (-[KWQSearchField initWithQLineEdit:]):
          (-[KWQSearchField dealloc]):
          (-[KWQSearchField controller]):
          (-[KWQSearchField widget]):
          (-[KWQSearchField selectText:]):
          (-[KWQSearchField setStringValue:]):
          (-[KWQSearchField nextKeyView]):
          (-[KWQSearchField previousKeyView]):
          (-[KWQSearchField nextValidKeyView]):
          (-[KWQSearchField previousValidKeyView]):
          (-[KWQSearchField acceptsFirstResponder]):
          (-[KWQSearchField display]):
          (-[KWQSearchField displayRectIgnoringOpacity:]):
          (-[KWQSearchField textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
          (-[KWQSearchField textView:shouldHandleEvent:]):
          (-[KWQSearchField textView:didHandleEvent:]):
          (-[KWQSearchFieldCell editWithFrame:inView:editor:delegate:event:]):
          (-[KWQSearchFieldCell selectWithFrame:inView:editor:delegate:start:length:]):
          (-[KWQSearchFieldCell _textAttributes]):
          (-[KWQTextFieldFormatter init]):
          (-[KWQTextFieldFormatter setMaximumLength:]):
          (-[KWQTextFieldFormatter maximumLength]):
          (-[KWQTextFieldFormatter stringForObjectValue:]):
          (-[KWQTextFieldFormatter getObjectValue:forString:errorDescription:]):
          (-[KWQTextFieldFormatter isPartialStringValid:newEditingString:errorDescription:]):
          (-[KWQTextFieldFormatter attributedStringForObjectValue:withDefaultAttributes:]):
          (-[NSString _KWQ_truncateToNumComposedCharacterSequences:]):
          (-[NSTextField _KWQ_currentEditor]):
  
  === Safari-133 ===
  
  2004-03-19  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3583945>: crash when choosing a file to upload
  
          * kwq/KWQFileButton.mm:
          (-[KWQFileButtonAdapter dealloc]): Removed unneeded method.
          (-[KWQFileButtonAdapter filenameChanged:]): Check for nil.
          (-[KWQFileButtonAdapter focusChanged:]): Ditto.
          (-[KWQFileButtonAdapter clicked]): Ditto.
  
  2004-03-17  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed rdar://problem/3312803>: extra space in copied text (3g.co.uk)
  
          * khtml/khtml_part.cpp: (KHTMLPart::text): Explicitly set neededSpace to false after
          processing a line break. Doesn't really have an effect here, but matches the change
          to the styled text version.
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::attributedString): Same change in the styled
          text version.
  
  2004-03-16  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - a little more DOM cleanup
  
          * kwq/DOM-CSS.mm: Added DOMCSSUnknownRule.
          * kwq/DOM.mm: Split category implementations out to match category interfaces.
          * kwq/DOMHTML.h: Removed lowSrc, not in DOM Level 2. Added a category for some
          extensions we'll want on DOMElement.
          * kwq/DOMInternal.h: Moved _documentImpl method here so it can be used from
          separate categories.
          * kwq/DOMRange.h: Changed DOMDocumentRange to a category from a protocol.
          * kwq/HTMLDOM.mm: Removed unneeded methods.
  
          * WebCore.pbproj/project.pbxproj: Sort DOM header files alphabetically.
  
  2004-03-16  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - update for new DOM namespacing and header organization
  
          * WebCore.pbproj/project.pbxproj:
          * kwq/DOM-CSS.h: Removed.
          * kwq/DOM-CSS.mm: Update for name changes.
          * kwq/DOM.h: Changed to include the other DOM headers.
          * kwq/DOM.mm: Update for name changes.
          * kwq/DOMCSS.h: Added.
          * kwq/DOMCore.h: Added.
          * kwq/DOMEvents.h: Added.
          * kwq/DOMHTML.h: Added.
          * kwq/DOMInternal.h: Update for name changes.
          * kwq/DOMRange.h: Added.
          * kwq/DOMStylesheets.h: Added.
          * kwq/DOMTraversal.h: Added.
          * kwq/DOMViews.h: Added.
          * kwq/HTMLDOM.h: Removed.
          * kwq/HTMLDOM.mm: Update for name changes; add some missing setters.
  
  2004-03-15  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- max out our iBench cheat. Don't even paint or lay out a quarter
  	of the pages.
  	
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::close):
  
  2004-03-15  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          Fix for this bug:
          
          <rdar://problem/3588717>: REGRESSION (125-131u): Tabbing to links and tabbing in bookmarks view no longer works
  
          Change some support methods which feed editing key events to 
          WebKit. The real fix is on the WebKit side.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::editingKeyEvent): Call new -editingKeyDown:
          on WebCoreBridge, as described below.
          * kwq/WebCoreBridge.h: Changed -keyDown: to -editingKeyDown:
          since we want to tell WebView about editing key events
          in a way that does not interfere with other key down
          events the WebView processes. This is not necessary in the
          strictest sense, but it seems reasonable to keep the
          terminology clear.
  
  === Safari-132 ===
  
  2004-03-12  Chris Blumenberg  <cblu at apple.com>
  
  	Implemented ~25% of the HTML DOM API.
  
          Reviewed by kocienda.
  
          (DOM::HTMLElement::HTMLElement):
          * kwq/DOM.mm:
          * kwq/DOMInternal.h:
          * kwq/HTMLDOM.h:
          * kwq/HTMLDOM.mm:
          (-[HTMLCollection _initWithCollectionImpl:]):
          (+[HTMLCollection _collectionWithImpl:]):
          (-[HTMLCollection _collectionImpl]):
          (-[HTMLCollection length]):
          (-[HTMLCollection item:]):
          (-[HTMLCollection namedItem:]):
          (-[HTMLElement _initWithElementImpl:]):
          (+[HTMLElement _elementWithImpl:]):
          (-[HTMLElement _HTMLElementImpl]):
          (-[HTMLElement idName]):
          (-[HTMLElement setIdName:]):
          (-[HTMLElement title]):
          (-[HTMLElement setTitle:]):
          (-[HTMLElement lang]):
          (-[HTMLElement setLang:]):
          (-[HTMLElement dir]):
          (-[HTMLElement setDir:]):
          (-[HTMLElement className]):
          (-[HTMLElement setClassName:]):
          (-[HTMLDocument _HTMLDocumentImpl]):
          (-[HTMLDocument title]):
          (-[HTMLDocument setTitle:]):
          (-[HTMLDocument referrer]):
          (-[HTMLDocument domain]):
          (-[HTMLDocument URL]):
          (-[HTMLDocument body]):
          (-[HTMLDocument images]):
          (-[HTMLDocument applets]):
          (-[HTMLDocument links]):
          (-[HTMLDocument forms]):
          (-[HTMLDocument anchors]):
          (-[HTMLDocument setBody:]):
          (-[HTMLDocument cookie]):
          (-[HTMLDocument setCookie:]):
          (-[HTMLDocument open]):
          (-[HTMLDocument close]):
          (-[HTMLDocument write:]):
          (-[HTMLDocument writeln:]):
          (-[HTMLDocument getElementById:]):
          (-[HTMLDocument getElementsByName:]):
          (-[HTMLHtmlElement _HTMLHtmlElementImpl]):
          (-[HTMLHtmlElement version]):
          (-[HTMLHtmlElement setVersion:]):
          (-[HTMLHeadElement _headElementImpl]):
          (-[HTMLHeadElement profile]):
          (-[HTMLHeadElement setProfile:]):
          (-[HTMLLinkElement _linkElementImpl]):
          (-[HTMLLinkElement disabled]):
          (-[HTMLLinkElement setDisabled:]):
          (-[HTMLLinkElement charset]):
          (-[HTMLLinkElement setCharset:]):
          (-[HTMLLinkElement href]):
          (-[HTMLLinkElement setHref:]):
          (-[HTMLLinkElement hreflang]):
          (-[HTMLLinkElement setHreflang:]):
          (-[HTMLLinkElement media]):
          (-[HTMLLinkElement setMedia:]):
          (-[HTMLLinkElement rel]):
          (-[HTMLLinkElement setRel:]):
          (-[HTMLLinkElement rev]):
          (-[HTMLLinkElement setRev:]):
          (-[HTMLLinkElement target]):
          (-[HTMLLinkElement setTarget:]):
          (-[HTMLLinkElement type]):
          (-[HTMLLinkElement setType:]):
          (-[HTMLTitleElement _titleElementImpl]):
          (-[HTMLTitleElement text]):
          (-[HTMLTitleElement setText:]):
          (-[HTMLMetaElement _metaElementImpl]):
          (-[HTMLMetaElement content]):
          (-[HTMLMetaElement setContent:]):
          (-[HTMLMetaElement httpEquiv]):
          (-[HTMLMetaElement setHttpEquiv:]):
          (-[HTMLMetaElement name]):
          (-[HTMLMetaElement setName:]):
          (-[HTMLMetaElement scheme]):
          (-[HTMLMetaElement setScheme:]):
          (-[HTMLBaseElement _baseElementImpl]):
          (-[HTMLBaseElement href]):
          (-[HTMLBaseElement setHref:]):
          (-[HTMLBaseElement target]):
          (-[HTMLBaseElement setTarget:]):
          (-[HTMLStyleElement _styleElementImpl]):
          (-[HTMLStyleElement disabled]):
          (-[HTMLStyleElement setDisabled:]):
          (-[HTMLStyleElement media]):
          (-[HTMLStyleElement setMedia:]):
          (-[HTMLStyleElement type]):
          (-[HTMLStyleElement setType:]):
          (-[HTMLBodyElement _bodyElementImpl]):
          (-[HTMLBodyElement aLink]):
          (-[HTMLBodyElement setALink:]):
          (-[HTMLBodyElement background]):
          (-[HTMLBodyElement setBackground:]):
          (-[HTMLBodyElement bgColor]):
          (-[HTMLBodyElement setBgColor:]):
          (-[HTMLBodyElement link]):
          (-[HTMLBodyElement setLink:]):
          (-[HTMLBodyElement text]):
          (-[HTMLBodyElement setText:]):
          (-[HTMLBodyElement vLink]):
          (-[HTMLBodyElement setVLink:]):
  
  2004-03-12  David Hyatt  <hyatt at apple.com>
  
  	Fix for problem when undoing the deletion of a word in edit mode.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_text.cpp:
          (RenderText::setTextWithOffset):
  
  2004-03-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::handleMouseMoveEventSelection): Clear the selection's
          "modify bias" since the user clicked, and is therefore no longer
          extending the selection with arrow keys.
          * khtml/khtml_selection.cpp:
          (KHTMLSelection::KHTMLSelection): Add new m_modifyBiasSet flag.
          (KHTMLSelection::init): Set the flag to false by default.
          (KHTMLSelection::operator=): Copy over the value of the new m_modifyBiasSet flag.
          (KHTMLSelection::modify): Set the flag if extending the selection and set the 
          base and extent nodes based on the movement direction requested.
          * khtml/khtml_selection.h:
          * kwq/WebCoreBridge.h: See below.
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]): This
          method is used by the WebKit side in response to requests to change the selection
          using the arrow keys. It used to be called rangeByModifyingRange:alteration:direction:granularity:
          but I changed it to this new format since I explicitly want to use the current selection, and
          not some arbitrarily passed in selection. This helps to maintain the "modify bias" correctly.
          (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): New method. A command to alter
          the current selection as given. Again, applying the command to the current selection, rather
          than just setting the selection to a new one, helps to maintain the "modify bias" correctly.
  
  2004-03-11  Chris Blumenberg  <cblu at apple.com>
  
  	Added stubs for the HTML DOM API.
  
          Reviewed by rjw.
  
          * WebCore.pbproj/project.pbxproj:
          * kwq/HTMLDOM.h: Added.
          * kwq/HTMLDOM.mm: Added.
          (-[HTMLCollection length]):
          (-[HTMLCollection item:]):
          (-[HTMLCollection namedItem:]):
          (-[HTMLElement idName]):
          (-[HTMLElement setIdName:]):
          (-[HTMLElement title]):
          (-[HTMLElement setTitle:]):
          (-[HTMLElement lang]):
          (-[HTMLElement setLang:]):
          (-[HTMLElement dir]):
          (-[HTMLElement setDir:]):
          (-[HTMLElement className]):
          (-[HTMLElement setClassName:]):
          (-[HTMLDocument title]):
          (-[HTMLDocument setTitle:]):
          (-[HTMLDocument referrer]):
          (-[HTMLDocument domain]):
          (-[HTMLDocument URL]):
          (-[HTMLDocument body]):
          (-[HTMLDocument images]):
          (-[HTMLDocument applets]):
          (-[HTMLDocument links]):
          (-[HTMLDocument forms]):
          (-[HTMLDocument anchors]):
          (-[HTMLDocument setBody:]):
          (-[HTMLDocument cookie]):
          (-[HTMLDocument setCookie:]):
          (-[HTMLDocument open]):
          (-[HTMLDocument close]):
          (-[HTMLDocument write:]):
          (-[HTMLDocument writeln:]):
          (-[HTMLDocument getElementById:]):
          (-[HTMLDocument getElementsByName:]):
          (-[HTMLHtmlElement version]):
          (-[HTMLHtmlElement setVersion:]):
          (-[HTMLHeadElement profile]):
          (-[HTMLHeadElement setProfile:]):
          (-[HTMLLinkElement disabled]):
          (-[HTMLLinkElement setDisabled:]):
          (-[HTMLLinkElement charset]):
          (-[HTMLLinkElement setCharset:]):
          (-[HTMLLinkElement href]):
          (-[HTMLLinkElement setHref:]):
          (-[HTMLLinkElement hreflang]):
          (-[HTMLLinkElement setHreflang:]):
          (-[HTMLLinkElement media]):
          (-[HTMLLinkElement setMedia:]):
          (-[HTMLLinkElement rel]):
          (-[HTMLLinkElement setRrevel:]):
          (-[HTMLLinkElement rev]):
          (-[HTMLLinkElement setRev:]):
          (-[HTMLLinkElement target]):
          (-[HTMLLinkElement setTarget:]):
          (-[HTMLLinkElement type]):
          (-[HTMLLinkElement setType:]):
          (-[HTMLTitleElement text]):
          (-[HTMLTitleElement setText:]):
          (-[HTMLMetaElement content]):
          (-[HTMLMetaElement setContent:]):
          (-[HTMLMetaElement httpEquiv]):
          (-[HTMLMetaElement setHttpEquiv:]):
          (-[HTMLMetaElement name]):
          (-[HTMLMetaElement setName:]):
          (-[HTMLMetaElement scheme]):
          (-[HTMLMetaElement setScheme:]):
          (-[HTMLBaseElement href]):
          (-[HTMLBaseElement setHref:]):
          (-[HTMLBaseElement target]):
          (-[HTMLBaseElement setTarget:]):
          (-[HTMLStyleElement disabled]):
          (-[HTMLStyleElement setDisabled:]):
          (-[HTMLStyleElement media]):
          (-[HTMLStyleElement setMedia:]):
          (-[HTMLStyleElement type]):
          (-[HTMLStyleElement setType:]):
          (-[HTMLBodyElement aLink]):
          (-[HTMLBodyElement setALink:]):
          (-[HTMLBodyElement background]):
          (-[HTMLBodyElement setBackground:]):
          (-[HTMLBodyElement bgColor]):
          (-[HTMLBodyElement setBgColor:]):
          (-[HTMLBodyElement link]):
          (-[HTMLBodyElement setLink:]):
          (-[HTMLBodyElement text]):
          (-[HTMLBodyElement setText:]):
          (-[HTMLBodyElement vLink]):
          (-[HTMLBodyElement setVLink:]):
          (-[HTMLFormElement elements]):
          (-[HTMLFormElement length]):
          (-[HTMLFormElement name]):
          (-[HTMLFormElement setName:]):
          (-[HTMLFormElement acceptCharset]):
          (-[HTMLFormElement setAcceptCharset:]):
          (-[HTMLFormElement action]):
          (-[HTMLFormElement setAction:]):
          (-[HTMLFormElement enctype]):
          (-[HTMLFormElement setEnctype:]):
          (-[HTMLFormElement method]):
          (-[HTMLFormElement setMethod:]):
          (-[HTMLFormElement target]):
          (-[HTMLFormElement setTarget:]):
          (-[HTMLFormElement submit]):
          (-[HTMLFormElement reset]):
          (-[HTMLIsIndexElement form]):
          (-[HTMLIsIndexElement prompt]):
          (-[HTMLIsIndexElement setPrompt:]):
          (-[HTMLSelectElement type]):
          (-[HTMLSelectElement selectedIndex]):
          (-[HTMLSelectElement setSelectedIndex:]):
          (-[HTMLSelectElement value]):
          (-[HTMLSelectElement setValue:]):
          (-[HTMLSelectElement length]):
          (-[HTMLSelectElement form]):
          (-[HTMLSelectElement options]):
          (-[HTMLSelectElement disabled]):
          (-[HTMLSelectElement multiple]):
          (-[HTMLSelectElement name]):
          (-[HTMLSelectElement setName:]):
          (-[HTMLSelectElement size]):
          (-[HTMLSelectElement tabIndex]):
          (-[HTMLSelectElement add::]):
          (-[HTMLSelectElement remove:]):
          (-[HTMLSelectElement blur]):
          (-[HTMLSelectElement focus]):
          (-[HTMLOptGroupElement disabled]):
          (-[HTMLOptGroupElement setDisabled:]):
          (-[HTMLOptGroupElement label]):
          (-[HTMLOptGroupElement setLabel:]):
          (-[HTMLOptionElement form]):
          (-[HTMLOptionElement defaultSelected]):
          (-[HTMLOptionElement setDefaultSelected:]):
          (-[HTMLOptionElement text]):
          (-[HTMLOptionElement index]):
          (-[HTMLOptionElement setIndex:]):
          (-[HTMLOptionElement disabled]):
          (-[HTMLOptionElement setDisabled:]):
          (-[HTMLOptionElement label]):
          (-[HTMLOptionElement setLabel:]):
          (-[HTMLOptionElement selected]):
          (-[HTMLOptionElement value]):
          (-[HTMLOptionElement setValue:]):
          (-[HTMLInputElement defaultValue]):
          (-[HTMLInputElement setDefaultValue:]):
          (-[HTMLInputElement defaultChecked]):
          (-[HTMLInputElement setDefaultChecked:]):
          (-[HTMLInputElement form]):
          (-[HTMLInputElement accept]):
          (-[HTMLInputElement setAccept:]):
          (-[HTMLInputElement accessKey]):
          (-[HTMLInputElement setAccessKey:]):
          (-[HTMLInputElement align]):
          (-[HTMLInputElement setAlign:]):
          (-[HTMLInputElement alt]):
          (-[HTMLInputElement setAlt:]):
          (-[HTMLInputElement checked]):
          (-[HTMLInputElement setChecked:]):
          (-[HTMLInputElement disabled]):
          (-[HTMLInputElement setDisabled:]):
          (-[HTMLInputElement maxLength]):
          (-[HTMLInputElement setMaxLength:]):
          (-[HTMLInputElement name]):
          (-[HTMLInputElement setName:]):
          (-[HTMLInputElement readOnly]):
          (-[HTMLInputElement setReadOnly:]):
          (-[HTMLInputElement size]):
          (-[HTMLInputElement setSize:]):
          (-[HTMLInputElement src]):
          (-[HTMLInputElement setSrc:]):
          (-[HTMLInputElement tabIndex]):
          (-[HTMLInputElement setTabIndex:]):
          (-[HTMLInputElement type]):
          (-[HTMLInputElement useMap]):
          (-[HTMLInputElement setUseMap:]):
          (-[HTMLInputElement value]):
          (-[HTMLInputElement setValue:]):
          (-[HTMLInputElement blur]):
          (-[HTMLInputElement focus]):
          (-[HTMLInputElement select]):
          (-[HTMLInputElement click]):
          (-[HTMLTextAreaElement defaultValue]):
          (-[HTMLTextAreaElement setDefaultValue:]):
          (-[HTMLTextAreaElement form]):
          (-[HTMLTextAreaElement accessKey]):
          (-[HTMLTextAreaElement setAccessKey:]):
          (-[HTMLTextAreaElement cols]):
          (-[HTMLTextAreaElement setCols:]):
          (-[HTMLTextAreaElement disabled]):
          (-[HTMLTextAreaElement setDisabled:]):
          (-[HTMLTextAreaElement name]):
          (-[HTMLTextAreaElement setName:]):
          (-[HTMLTextAreaElement readOnly]):
          (-[HTMLTextAreaElement setReadOnly:]):
          (-[HTMLTextAreaElement rows]):
          (-[HTMLTextAreaElement setRows:]):
          (-[HTMLTextAreaElement tabIndex]):
          (-[HTMLTextAreaElement setTabIndex:]):
          (-[HTMLTextAreaElement type]):
          (-[HTMLTextAreaElement value]):
          (-[HTMLTextAreaElement setValue:]):
          (-[HTMLTextAreaElement blur]):
          (-[HTMLTextAreaElement focus]):
          (-[HTMLTextAreaElement select]):
          (-[HTMLButtonElement form]):
          (-[HTMLButtonElement accessKey]):
          (-[HTMLButtonElement setAccessKey:]):
          (-[HTMLButtonElement disabled]):
          (-[HTMLButtonElement setDisabled:]):
          (-[HTMLButtonElement name]):
          (-[HTMLButtonElement setName:]):
          (-[HTMLButtonElement tabIndex]):
          (-[HTMLButtonElement setTabIndex:]):
          (-[HTMLButtonElement type]):
          (-[HTMLButtonElement value]):
          (-[HTMLButtonElement setValue:]):
          (-[HTMLLabelElement form]):
          (-[HTMLLabelElement accessKey]):
          (-[HTMLLabelElement setAccessKey:]):
          (-[HTMLLabelElement htmlFor]):
          (-[HTMLLabelElement setHtmlFor:]):
          (-[HTMLFieldSetElement form]):
          (-[HTMLLegendElement form]):
          (-[HTMLLegendElement accessKey]):
          (-[HTMLLegendElement setAccessKey:]):
          (-[HTMLLegendElement align]):
          (-[HTMLLegendElement setAlign:]):
          (-[HTMLUListElement compact]):
          (-[HTMLUListElement setCompact:]):
          (-[HTMLUListElement type]):
          (-[HTMLUListElement setType:]):
          (-[HTMLOListElement compact]):
          (-[HTMLOListElement setCompact:]):
          (-[HTMLOListElement start]):
          (-[HTMLOListElement setStart:]):
          (-[HTMLOListElement type]):
          (-[HTMLOListElement setType:]):
          (-[HTMLDListElement compact]):
          (-[HTMLDListElement setCompact:]):
          (-[HTMLDirectoryElement compact]):
          (-[HTMLDirectoryElement setCompact:]):
          (-[HTMLMenuElement compact]):
          (-[HTMLMenuElement setCompact:]):
          (-[HTMLLIElement type]):
          (-[HTMLLIElement setType:]):
          (-[HTMLLIElement value]):
          (-[HTMLLIElement setValue:]):
          (-[HTMLBlockquoteElement cite]):
          (-[HTMLBlockquoteElement setCite:]):
          (-[HTMLDivElement align]):
          (-[HTMLDivElement setAlign:]):
          (-[HTMLParagraphElement align]):
          (-[HTMLParagraphElement setAlign:]):
          (-[HTMLHeadingElement align]):
          (-[HTMLHeadingElement setAlign:]):
          (-[HTMLQuoteElement cite]):
          (-[HTMLQuoteElement setCite:]):
          (-[HTMLPreElement width]):
          (-[HTMLPreElement setWidth:]):
          (-[HTMLBRElement clear]):
          (-[HTMLBRElement setClear:]):
          (-[HTMLBaseFontElement color]):
          (-[HTMLBaseFontElement setColor:]):
          (-[HTMLBaseFontElement face]):
          (-[HTMLBaseFontElement setFace:]):
          (-[HTMLBaseFontElement size]):
          (-[HTMLBaseFontElement setSize:]):
          (-[HTMLFontElement color]):
          (-[HTMLFontElement setColor:]):
          (-[HTMLFontElement face]):
          (-[HTMLFontElement setFace:]):
          (-[HTMLFontElement size]):
          (-[HTMLFontElement setSize:]):
          (-[HTMLHRElement align]):
          (-[HTMLHRElement setAlign:]):
          (-[HTMLHRElement noShade]):
          (-[HTMLHRElement setNoShade:]):
          (-[HTMLHRElement size]):
          (-[HTMLHRElement setSize:]):
          (-[HTMLHRElement width]):
          (-[HTMLHRElement setWidth:]):
          (-[HTMLModElement cite]):
          (-[HTMLModElement setCite:]):
          (-[HTMLModElement dateTime]):
          (-[HTMLModElement setDateTime:]):
          (-[HTMLAnchorElement accessKey]):
          (-[HTMLAnchorElement setAccessKey:]):
          (-[HTMLAnchorElement charset]):
          (-[HTMLAnchorElement setCharset:]):
          (-[HTMLAnchorElement coords]):
          (-[HTMLAnchorElement setCoords:]):
          (-[HTMLAnchorElement href]):
          (-[HTMLAnchorElement setHref:]):
          (-[HTMLAnchorElement hreflang]):
          (-[HTMLAnchorElement setHreflang:]):
          (-[HTMLAnchorElement name]):
          (-[HTMLAnchorElement setName:]):
          (-[HTMLAnchorElement rel]):
          (-[HTMLAnchorElement setRel:]):
          (-[HTMLAnchorElement rev]):
          (-[HTMLAnchorElement setRev:]):
          (-[HTMLAnchorElement shape]):
          (-[HTMLAnchorElement setShape:]):
          (-[HTMLAnchorElement tabIndex]):
          (-[HTMLAnchorElement setTabIndex:]):
          (-[HTMLAnchorElement target]):
          (-[HTMLAnchorElement setTarget:]):
          (-[HTMLAnchorElement type]):
          (-[HTMLAnchorElement setType:]):
          (-[HTMLAnchorElement blur]):
          (-[HTMLAnchorElement focus]):
          (-[HTMLImageElement lowSrc]):
          (-[HTMLImageElement setLowSrc:]):
          (-[HTMLImageElement name]):
          (-[HTMLImageElement setName:]):
          (-[HTMLImageElement align]):
          (-[HTMLImageElement setAlign:]):
          (-[HTMLImageElement alt]):
          (-[HTMLImageElement setAlt:]):
          (-[HTMLImageElement border]):
          (-[HTMLImageElement setBorder:]):
          (-[HTMLImageElement height]):
          (-[HTMLImageElement setHeight:]):
          (-[HTMLImageElement hspace]):
          (-[HTMLImageElement setHspace:]):
          (-[HTMLImageElement isMap]):
          (-[HTMLImageElement setIsMap:]):
          (-[HTMLImageElement longDesc]):
          (-[HTMLImageElement setLongDesc:]):
          (-[HTMLImageElement src]):
          (-[HTMLImageElement setSrc:]):
          (-[HTMLImageElement useMap]):
          (-[HTMLImageElement setUseMap:]):
          (-[HTMLImageElement vspace]):
          (-[HTMLImageElement setVspace:]):
          (-[HTMLImageElement width]):
          (-[HTMLImageElement setWidth:]):
          (-[HTMLObjectElement form]):
          (-[HTMLObjectElement code]):
          (-[HTMLObjectElement setCode:]):
          (-[HTMLObjectElement align]):
          (-[HTMLObjectElement setAlign:]):
          (-[HTMLObjectElement archive]):
          (-[HTMLObjectElement setArchive:]):
          (-[HTMLObjectElement border]):
          (-[HTMLObjectElement setBorder:]):
          (-[HTMLObjectElement codeBase]):
          (-[HTMLObjectElement setCodeBase:]):
          (-[HTMLObjectElement codeType]):
          (-[HTMLObjectElement setCodeType:]):
          (-[HTMLObjectElement data]):
          (-[HTMLObjectElement setData:]):
          (-[HTMLObjectElement declare]):
          (-[HTMLObjectElement setDeclare:]):
          (-[HTMLObjectElement height]):
          (-[HTMLObjectElement setHeight:]):
          (-[HTMLObjectElement hspace]):
          (-[HTMLObjectElement setHspace:]):
          (-[HTMLObjectElement name]):
          (-[HTMLObjectElement setName:]):
          (-[HTMLObjectElement standby]):
          (-[HTMLObjectElement setStandby:]):
          (-[HTMLObjectElement tabIndex]):
          (-[HTMLObjectElement setTabIndex:]):
          (-[HTMLObjectElement type]):
          (-[HTMLObjectElement setType:]):
          (-[HTMLObjectElement useMap]):
          (-[HTMLObjectElement setUseMap:]):
          (-[HTMLObjectElement vspace]):
          (-[HTMLObjectElement setVspace:]):
          (-[HTMLObjectElement width]):
          (-[HTMLObjectElement setWidth:]):
          (-[HTMLParamElement name]):
          (-[HTMLParamElement setName:]):
          (-[HTMLParamElement type]):
          (-[HTMLParamElement setType:]):
          (-[HTMLParamElement value]):
          (-[HTMLParamElement setValue:]):
          (-[HTMLParamElement valueType]):
          (-[HTMLParamElement setValueType:]):
          (-[HTMLAppletElement align]):
          (-[HTMLAppletElement setAlign:]):
          (-[HTMLAppletElement alt]):
          (-[HTMLAppletElement setAlt:]):
          (-[HTMLAppletElement archive]):
          (-[HTMLAppletElement setArchive:]):
          (-[HTMLAppletElement code]):
          (-[HTMLAppletElement setCode:]):
          (-[HTMLAppletElement codeBase]):
          (-[HTMLAppletElement setCodeBase:]):
          (-[HTMLAppletElement codeType]):
          (-[HTMLAppletElement setCodeType:]):
          (-[HTMLAppletElement height]):
          (-[HTMLAppletElement setHeight:]):
          (-[HTMLAppletElement hspace]):
          (-[HTMLAppletElement setHspace:]):
          (-[HTMLAppletElement name]):
          (-[HTMLAppletElement setName:]):
          (-[HTMLAppletElement object]):
          (-[HTMLAppletElement setObject:]):
          (-[HTMLAppletElement vspace]):
          (-[HTMLAppletElement setVspace:]):
          (-[HTMLAppletElement width]):
          (-[HTMLAppletElement setWidth:]):
          (-[HTMLMapElement areas]):
          (-[HTMLMapElement name]):
          (-[HTMLMapElement setName:]):
          (-[HTMLAreaElement accessKey]):
          (-[HTMLAreaElement setAccessKey:]):
          (-[HTMLAreaElement alt]):
          (-[HTMLAreaElement setAlt:]):
          (-[HTMLAreaElement coords]):
          (-[HTMLAreaElement setCoords:]):
          (-[HTMLAreaElement href]):
          (-[HTMLAreaElement setHref:]):
          (-[HTMLAreaElement noHref]):
          (-[HTMLAreaElement setNoHref:]):
          (-[HTMLAreaElement shape]):
          (-[HTMLAreaElement setShape:]):
          (-[HTMLAreaElement tabIndex]):
          (-[HTMLAreaElement setTabIndex:]):
          (-[HTMLAreaElement target]):
          (-[HTMLAreaElement setTarget:]):
          (-[HTMLScriptElement text]):
          (-[HTMLScriptElement setText:]):
          (-[HTMLScriptElement htmlFor]):
          (-[HTMLScriptElement setHtmlFor:]):
          (-[HTMLScriptElement event]):
          (-[HTMLScriptElement setEvent:]):
          (-[HTMLScriptElement charset]):
          (-[HTMLScriptElement setCharset:]):
          (-[HTMLScriptElement defer]):
          (-[HTMLScriptElement setDefer:]):
          (-[HTMLScriptElement src]):
          (-[HTMLScriptElement setSrc:]):
          (-[HTMLScriptElement type]):
          (-[HTMLScriptElement setType:]):
          (-[HTMLTableCaptionElement align]):
          (-[HTMLTableCaptionElement setAlign:]):
          (-[HTMLTableSectionElement align]):
          (-[HTMLTableSectionElement setAlign:]):
          (-[HTMLTableSectionElement ch]):
          (-[HTMLTableSectionElement setCh:]):
          (-[HTMLTableSectionElement chOff]):
          (-[HTMLTableSectionElement setChOff:]):
          (-[HTMLTableSectionElement vAlign]):
          (-[HTMLTableSectionElement setVAlign:]):
          (-[HTMLTableSectionElement rows]):
          (-[HTMLTableSectionElement insertRow:]):
          (-[HTMLTableSectionElement deleteRow:]):
          (-[HTMLTableElement caption]):
          (-[HTMLTableElement tHead]):
          (-[HTMLTableElement tFoot]):
          (-[HTMLTableElement rows]):
          (-[HTMLTableElement tBodies]):
          (-[HTMLTableElement align]):
          (-[HTMLTableElement setAlign:]):
          (-[HTMLTableElement bgColor]):
          (-[HTMLTableElement setBgColor:]):
          (-[HTMLTableElement border]):
          (-[HTMLTableElement setBorder:]):
          (-[HTMLTableElement cellPadding]):
          (-[HTMLTableElement setCellPadding:]):
          (-[HTMLTableElement cellSpacing]):
          (-[HTMLTableElement setCellSpacing:]):
          (-[HTMLTableElement frame]):
          (-[HTMLTableElement setFrame:]):
          (-[HTMLTableElement rules]):
          (-[HTMLTableElement setRules:]):
          (-[HTMLTableElement summary]):
          (-[HTMLTableElement setSummary:]):
          (-[HTMLTableElement width]):
          (-[HTMLTableElement setWidth:]):
          (-[HTMLTableElement createTHead]):
          (-[HTMLTableElement deleteTHead]):
          (-[HTMLTableElement createTFoot]):
          (-[HTMLTableElement deleteTFoot]):
          (-[HTMLTableElement createCaption]):
          (-[HTMLTableElement deleteCaption]):
          (-[HTMLTableElement deleteRow:]):
          (-[HTMLTableColElement align]):
          (-[HTMLTableColElement setAlign:]):
          (-[HTMLTableColElement ch]):
          (-[HTMLTableColElement setCh:]):
          (-[HTMLTableColElement chOff]):
          (-[HTMLTableColElement setChOff:]):
          (-[HTMLTableColElement span]):
          (-[HTMLTableColElement setSpan:]):
          (-[HTMLTableColElement vAlign]):
          (-[HTMLTableColElement setVAlign:]):
          (-[HTMLTableColElement width]):
          (-[HTMLTableColElement setWidth:]):
          (-[HTMLTableRowElement rowIndex]):
          (-[HTMLTableRowElement setRowIndex:]):
          (-[HTMLTableRowElement sectionRowIndex]):
          (-[HTMLTableRowElement setSectionRowIndex:]):
          (-[HTMLTableRowElement cells]):
          (-[HTMLTableRowElement setCells:]):
          (-[HTMLTableRowElement align]):
          (-[HTMLTableRowElement setAlign:]):
          (-[HTMLTableRowElement bgColor]):
          (-[HTMLTableRowElement setBgColor:]):
          (-[HTMLTableRowElement ch]):
          (-[HTMLTableRowElement setCh:]):
          (-[HTMLTableRowElement chOff]):
          (-[HTMLTableRowElement setChOff:]):
          (-[HTMLTableRowElement vAlign]):
          (-[HTMLTableRowElement setVAlign:]):
          (-[HTMLTableRowElement insertCell:]):
          (-[HTMLTableRowElement deleteCell:]):
          (-[HTMLTableCellElement cellIndex]):
          (-[HTMLTableCellElement setCellIndex:]):
          (-[HTMLTableCellElement abbr]):
          (-[HTMLTableCellElement setAbbr:]):
          (-[HTMLTableCellElement align]):
          (-[HTMLTableCellElement setAlign:]):
          (-[HTMLTableCellElement axis]):
          (-[HTMLTableCellElement setAxis:]):
          (-[HTMLTableCellElement bgColor]):
          (-[HTMLTableCellElement setBgColor:]):
          (-[HTMLTableCellElement ch]):
          (-[HTMLTableCellElement setCh:]):
          (-[HTMLTableCellElement chOff]):
          (-[HTMLTableCellElement setChOff:]):
          (-[HTMLTableCellElement colSpan]):
          (-[HTMLTableCellElement setColSpan:]):
          (-[HTMLTableCellElement headers]):
          (-[HTMLTableCellElement setHeaders:]):
          (-[HTMLTableCellElement height]):
          (-[HTMLTableCellElement setHeight:]):
          (-[HTMLTableCellElement noWrap]):
          (-[HTMLTableCellElement setNoWrap:]):
          (-[HTMLTableCellElement rowSpan]):
          (-[HTMLTableCellElement setRowSpan:]):
          (-[HTMLTableCellElement scope]):
          (-[HTMLTableCellElement setScope:]):
          (-[HTMLTableCellElement vAlign]):
          (-[HTMLTableCellElement setVAlign:]):
          (-[HTMLTableCellElement width]):
          (-[HTMLTableCellElement setWidth:]):
          (-[HTMLFrameSetElement cols]):
          (-[HTMLFrameSetElement setCols:]):
          (-[HTMLFrameSetElement rows]):
          (-[HTMLFrameSetElement setRows:]):
          (-[HTMLFrameElement frameBorder]):
          (-[HTMLFrameElement setFrameBorder:]):
          (-[HTMLFrameElement longDesc]):
          (-[HTMLFrameElement setLongDesc:]):
          (-[HTMLFrameElement marginHeight]):
          (-[HTMLFrameElement setMarginHeight:]):
          (-[HTMLFrameElement marginWidth]):
          (-[HTMLFrameElement setMarginWidth:]):
          (-[HTMLFrameElement name]):
          (-[HTMLFrameElement setName:]):
          (-[HTMLFrameElement noResize]):
          (-[HTMLFrameElement setNoResize:]):
          (-[HTMLFrameElement scrolling]):
          (-[HTMLFrameElement setScrolling:]):
          (-[HTMLFrameElement src]):
          (-[HTMLFrameElement setSrc:]):
          (-[HTMLIFrameElement align]):
          (-[HTMLIFrameElement setAlign:]):
          (-[HTMLIFrameElement frameBorder]):
          (-[HTMLIFrameElement setFrameBorder:]):
          (-[HTMLIFrameElement height]):
          (-[HTMLIFrameElement setHeight:]):
          (-[HTMLIFrameElement longDesc]):
          (-[HTMLIFrameElement setLongDesc:]):
          (-[HTMLIFrameElement marginHeight]):
          (-[HTMLIFrameElement setMarginHeight:]):
          (-[HTMLIFrameElement marginWidth]):
          (-[HTMLIFrameElement setMarginWidth:]):
          (-[HTMLIFrameElement name]):
          (-[HTMLIFrameElement setName:]):
          (-[HTMLIFrameElement scrolling]):
          (-[HTMLIFrameElement setScrolling:]):
          (-[HTMLIFrameElement src]):
          (-[HTMLIFrameElement setSrc:]):
          (-[HTMLIFrameElement width]):
          (-[HTMLIFrameElement setWidth:]):
  
  2004-03-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Dave
  
          I have clarified the concept (at least in my head) 
          that each edit command has an obligation to put the
          selection in the right place after it is applied, 
          unapplied, or reapplied. Right now, each edit command 
          calls setStartingSelection and setEndingSelection to do
          this, I made these function move the selection on 
          setting.
  
          * khtml/editing/htmlediting_impl.cpp:
          (EditCommandImpl::setStartingSelection)
          (EditCommandImpl::setEndingSelection)
          (InputTextCommandImpl::coalesce)
          (InputTextCommandImpl::deleteCharacter)
          (InputTextCommandImpl::execute)
          * khtml/editing/htmlediting_impl.h:
  
  2004-03-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Dave
      
          Various changes to move us forward on editing.
          
          1. I reorganized the concrete EditCommand interface and
          implementation classes alphabetically in their 
          respective files, to make it easier to find things.
          
          2. I added a TypingCommand composite class to gang 
          up all keystrokes and make it possible to pass a 
          single command over to the Cocoa undo system in all cases.
          
          3. I now send all keystrokes back over to WebKit
          to be interpreted by the text input system. In concert
          with the many new NSResponder method implementations I
          added to WebView, we now respond to keystrokes in a much
          more Cocoa-like way that sets us down the path to
          integrating with the Cocoa text input system some day.
  
          4. I fixed up our integration with the Cocoa undo
          system. I also removed much of the undo support code
          from the KHTMPart class. As a replacement, I implemented
          reporting of undoable commands to KHTMLPart so that 
          a KDE hookup is quite feasible. As a result, undo 
          should "just work" in Blot (Chris has reported that 
          it has been busted).
  
          5. I added the DOM CSS bindings for Objective-C. This
          required some rearranging of the existing DOM bindings
          code, and while I was there, I did various cleanups in the
          existing DOM bindings.
  
          * About 400 lines of changed files and functions elided.
          
  2004-03-11  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed some spacing issues in reconstructed source and web archives that were caused by a malformed doc type string that we were constructing.
  
          Reviewed by darin.
  
          * khtml/html/html_documentimpl.cpp:
          (HTMLDocumentImpl::determineParseMode): set the public ID and system ID on the doc type
          * khtml/xml/dom_docimpl.cpp:
          (DocumentTypeImpl::toString): put a space between DOCTYPE and the name
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentTypeImpl::setPublicId): new
          (DOM::DocumentTypeImpl::setSystemId): new
  
  2004-03-10  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3584646, AxWebArea should encompass all children (its AxSize should).
  	
          Reviewed by mjs
  
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::absoluteRects):
          * khtml/rendering/render_canvas.h:
  
  2004-03-10  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: INPUT images are not part of web archives.
  
          Reviewed by rjw.
  
          * khtml/html/html_formimpl.cpp:
          (HTMLInputElementImpl::isSubresourceURLAttribute):
          * khtml/html/html_formimpl.h:
  
  2004-03-09  Chris Blumenberg  <cblu at apple.com>
  
  	Implemented WebCore side of: <rdar://problem/3577508>: API: web archive related API's
  
          Reviewed by rjw.
  
          * WebCore-combined.exp:
          * WebCore.exp:
          * kwq/DOM.mm:
          (+[DOMRange _rangeWithImpl:]): made internally accessible
          (-[DOMRange _rangeImpl]): ditto
          * kwq/DOMInternal.h:
          * kwq/KWQStringList.h:
          * kwq/KWQStringList.mm:
          (QStringList::getNSArray): new
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge pasteMarkupString:]): renamed from pasteHTMLString since XML pasting may be possible
          (-[WebCoreBridge selectedRange]): new
          (-[WebCoreBridge _documentTypeString]): new
          (-[WebCoreBridge _stringWithDocumentTypeStringAndMarkupString:]): new
          (-[WebCoreBridge markupStringFromNode:subresourceURLStrings:]): new, needed for WebKit API's
          (-[WebCoreBridge markupStringFromRange:subresourceURLStrings:]): new, needed for WebKit API's
  
  2004-03-09  David Hyatt  <hyatt at apple.com>
  
  	Make the AXLinkUIElements attribute always return an array (never return nil).
  	
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityAttributeValue:]):
  
  2004-03-09  David Hyatt  <hyatt at apple.com>
  
  	(1) Change root element in a document to have a role of AXWebArea.
  	(2) Add support for AXURL to links and children of links.
  	(3) Add support for AXLinkUIElements to the AXWebArea
  	
          Reviewed by john
  
          * khtml/dom/html_misc.h:
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject role]):
          (-[KWQAccObject roleDescription]):
          (-[KWQAccObject accessibilityAttributeNames]):
          (-[KWQAccObject accessibilityAttributeValue:]):
  
  2004-03-09  John Sullivan  <sullivan at apple.com>
  
          * kwq/KWQKURL.mm:
          (KURL::KURL):
          Fixed broken build by removing wayward "break" statement.
  
  2004-03-08  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3554876>: REGRESSION (100-125): cannot upload file if path contains non-ASCII characters
  
          * kwq/KWQKURL.mm: Remove Colon constant so we can fit in 8 bits again.
          (KURL::KURL): Rewrite so we don't need isSchemeCharOrColon.
  
  === Safari-131 ===
  
  2004-03-08  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          * WebCore.pbproj/project.pbxproj: Added CFBundleName to Info.plist.
  
  2004-03-05  David Hyatt  <hyatt at apple.com>
  
  	Fix for first-line inheritance problem caused by incorrectly inheriting first-line into floating
  	blocks.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::firstLineBlock):
  
  2004-03-05  Ken Kocienda  <kocienda at apple.com>
  
  	Forgot to add this when I checked in last time.
  
          * ForwardingHeaders/css/css_computedstyle.h: Added.
  
  2004-03-05  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Dave.
  
          Added initial support for retrieving the computed 
          style of document elements.
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/css/css_computedstyle.cpp: Added.
          (DOM::valueForLength): Helper to turn a khtml::Length into a computed value string.
          (DOM::stringForBorderStyle): Helper to turn an EBorderStyle into a computed value string.
          (DOM::stringForTextAlign): Helper to turn an ETextAlign into a computed value string.
          (DOM::CSSComputedStyleDeclarationImpl::CSSComputedStyleDeclarationImpl): New function.
          (DOM::CSSComputedStyleDeclarationImpl::~CSSComputedStyleDeclarationImpl): Ditto.
          (DOM::CSSComputedStyleDeclarationImpl::cssText): Ditto.
          (DOM::CSSComputedStyleDeclarationImpl::setCssText): Ditto.
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Ditto.
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyValue): Ditto.
          (DOM::CSSComputedStyleDeclarationImpl::getPropertyPriority): Ditto.
          (DOM::CSSComputedStyleDeclarationImpl::removeProperty): Ditto.
          (DOM::CSSComputedStyleDeclarationImpl::setProperty): Ditto.
          (DOM::CSSComputedStyleDeclarationImpl::setLengthProperty): Ditto.
          (DOM::CSSComputedStyleDeclarationImpl::item): Ditto.
          (DOM::CSSComputedStyleDeclarationImpl::property): Ditto.
          * khtml/css/css_computedstyle.h: Added.
          * khtml/css/css_valueimpl.cpp:
          (CSSPrimitiveValueImpl::cssText): Fixed some formatting of Rect. Added
          suppoprt for rgba colors.
          * khtml/css/css_valueimpl.h:
          (DOM::CSSStyleDeclarationImpl::node):
          * khtml/ecma/kjs_css.cpp:
          (KJS::getDOMCSSStyleDeclaration):
          * khtml/ecma/kjs_dom.cpp:
          (DOMDocument::getValueProperty): defaultView is a property, used to be a function, 
          which was wrong. Fixed.
          (DOMDocumentProtoFunc::tryCall): Ditto.
          * khtml/ecma/kjs_dom.lut.h:
          (KJS::): Regenerated file.
          * khtml/misc/khtmllayout.h:
          (khtml::Length::length): Added an accessor to the value, to promote better coding
          style, rather than peeking and poking the value directly.
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::borderLeftWidth): BHIDDEN also should be treated like BNONE when it comes
          to returning a zero value. Now it is.
          (khtml::RenderStyle::borderRightWidth): Ditto.
          (khtml::RenderStyle::borderTopWidth): Ditto.
          (khtml::RenderStyle::borderBottomWidth): Ditto.
          (khtml::RenderStyle::outlineWidth): Ditto.
          (khtml::RenderStyle::outlineOffset): Ditto.
          * khtml/xml/dom2_viewsimpl.cpp:
          (AbstractViewImpl::getComputedStyle): Added an implementation for this formerly stubbed out function.
  
  2004-03-05  Ken Kocienda  <kocienda at apple.com>
  
          Change by Darin. Reviewed by me.
  
          * kwq/DOM.mm: Fixed the following functions to deal with
          casting objects derived from NodeImpl back and forth to
          NodeImpl given that the derived classes use multiple
          inheritance.
          (-[DOMDocument _documentImpl]):
          (-[DOMCharacterData _characterDataImpl]):
          (-[DOMAttr _attrImpl]):
          (-[DOMElement _elementImpl]):
          (-[DOMText _textImpl]):
          (-[DOMDocumentType _documentTypeImpl]):
          (-[DOMNotation _notationImpl]):
          (-[DOMEntity _entityImpl]):
          (-[DOMProcessingInstruction _processingInstructionImpl]):
  
  2004-03-03  Darin Adler  <darin at apple.com>
  
          Reviewed by Vicki.
  
          * English.lproj/InfoPlist.strings: Removed. No need to localize the version and
          copyright string, and that's all that was in here.
          * WebCore.pbproj/project.pbxproj: Removed InfoPlist.strings from build.
  
  2004-03-03  David Hyatt  <hyatt at apple.com>
  
  	Speed up access to the children arrays of accessibility objects by caching mutable arrays of children
  	and nulling them out only when the children change.
  	
          Reviewed by john
  
          * khtml/rendering/render_container.cpp:
          (RenderContainer::removeChildNode):
          (RenderContainer::appendChildNode):
          (RenderContainer::insertChildNode):
          * kwq/KWQAccObject.h:
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject detach]):
          (-[KWQAccObject accessibilityAttributeValue:]):
          (-[KWQAccObject childrenChanged]):
          (-[KWQAccObject clearChildren]):
          * kwq/KWQAccObjectCache.h:
          * kwq/KWQAccObjectCache.mm:
          (KWQAccObjectCache::childrenChanged):
  
  2004-03-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin and me. Coding by Darin and me.
          
          1) Fix some places that were calling [self class], in at
          least one case calling a method not defined on the class
          (not gonna work).
          2) Add underscore prefix for all non-API method names.
          3) Make DOMObject refuse to init, which might prevent
          problems where people get confused and think they can
          subclass or instantiate it or its subclasses.
          4) Use some C+mojo to replace NSStringToDOMString and
          DOMStringToNSString with type conversions built into the
          DOMString class.
          5) Removed NSError out parameters from the API. Methods
          now throw NSExceptions.
          6) Exception code local variables now initialized before
          passing to khtml DOM impl calls.
          7) Various other cleanups and tweaks.
  
          * khtml/dom/dom_string.h
          * khtml/xml/dom_atomicstring.h
          * kwq/DOM.h
          * kwq/DOM.mm
          * kwq/DOMInternal.h
          * kwq/KWQKHTMLPart.mm
          * kwq/WebCoreBridge.mm
  
  2004-03-02  Richard Williamson   <rjw at apple.com>
  
  	Added NP_SAP API.  This API includes the new entry points
  	used to bind native interfaces to JavaScript.  It's final location
  	may change.
  
  	Made changes to KWQKHTMLPart.mm to reflect changes in names
  	on RootObject.
  	
          Reviewed by Chris.
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/ecma/NP_SAP.h: Added.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::cleanupPluginRootObjects):
          * kwq/WebCoreBridge.mm:
  
  2004-03-01  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3549201>: repro crash in KHTMLPart::begin inside JavaScript code (gmpartsdirect.com)
  
  	Added some null checks. I am not sure why this page attaches a
  	document that has no view, but these changes make it work
  	perfectly.
          
  	* khtml/khtml_part.cpp:
          (KHTMLPart::begin): Add check for null view before use.  *
  	khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::close): ditto
          (DocumentImpl::recalcStyle): Add check for null paint device.
  
  === Safari-130 ===
  
  2004-03-01  Ken Kocienda  <kocienda at apple.com>
  
          Rollout last night's checkin. The tree was closed.
  
          * kwq/DOM.h
          * kwq/DOM.mm
          * kwq/DOMInternal.h
          * kwq/KWQKHTMLPart.mm
          * kwq/WebCoreBridge.mm
  
  2004-03-01  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me, changes by Darin.
          
          Yet another pass at the DOM API, this one by 
          Darin to simplify the internal structure of the
          implementation. Little has changed in the API;
          much has changed in the implementation, particularly
          with regard to object creation and data storage and
          the class hierarchy.
  
          * kwq/DOM.h
          * kwq/DOM.mm
          * kwq/DOMInternal.h
          * kwq/KWQKHTMLPart.mm
          * kwq/WebCoreBridge.mm
  
  2004-03-01  Maciej Stachowiak  <mjs at apple.com>
  
  	- fixed <rdar://problem/3567047>: REGRESSION: repro crash inside KJS (dispatchToBoolean) at www.thedonnas.com
  	- fixed <rdar://problem/3550461>: REGRESSION: repro crash in JavaScript at www.alaska.com
          
  	* khtml/ecma/kjs_window.cpp:
          (Window::getListener): Return Null() when the listener object is
  	null, indicating the code failed to parse. Otherwise we return a
  	bad value which can later crash the JS interpreter.
  
  2004-03-01  Darin Adler  <darin at apple.com>
  
          Reviewed by Vicki.
  
          - fixed Tiger build
  
          * kwq/KWQXmlSimpleReader.mm: (QXmlSimpleReader::parse):
          Changed SAX structure initialization code so it compiles with both the newer
          and older libxml. Not sure this will work right with namespaces with the new
          libxml; we'll have to test.
  
  2004-03-01  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by me, as suggested by Darin
  
          * khtml/misc/htmlattrs.c:
          (getAttrName): Generated code no longer has extraneous semicolon.
          * khtml/misc/htmltags.c: Generated code no longer has extraneous semicolon.
          (getTagName):
          * khtml/misc/makeattrs: Removed extraneous semicolon from end of file.
          * khtml/misc/maketags: Ditto.
  
  2004-03-01  Ken Kocienda  <kocienda at apple.com>
  
          * kwq/DOMInternal.h: Replaced tabs with spaces.
  
  2004-03-01  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
  
          Changed all Objective-C DOM classes from protocols to classes, using
          a class cluster-like approach.
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/dom/html_object.cpp: Put code in DOM namespace.
          * khtml/html/html_headimpl.cpp: Pull in entire DOM namespace in using directive to
          make up for the removal of it from htmlattrs.
          * khtml/html/htmltokenizer.cpp: Add using directives for the DOM classes used.
          * khtml/misc/htmlattrs.c:
          (getAttrName):
          * khtml/misc/htmlattrs.h: 
          * khtml/misc/htmltags.c:
          (getTagName):
          * khtml/misc/makeattrs: Some changes here to avoid pulling in the entire DOM namespace.
          Explicitly use DOM namespace scoping for DOMString.
          * khtml/misc/maketags: Explicitly use DOM namespace scoping for DOMString.
          * khtml/rendering/render_form.cpp: Pull in entire DOM namespace in using directive to
          make up for the removal of it from htmlattrs.
          * kwq/DOM-compat.h:
          * kwq/DOM.h:
          * kwq/DOM.mm: Added.
          * kwq/WebCoreDOM.h: Removed.
          * kwq/WebCoreDOM.mm: Removed.
  
  2004-02-26  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3514733>: nil-deref in createHTMLEventListener at skiset.com
  	<rdar://problem/3510676>: nil-deref of view in DocumentImpl::createHTMLEventListener at kirotv.com
  	
  	* khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createHTMLEventListener): Don't create the listener if there is no
  	part. Also, get the part when going through the view. This prevents problems when
  	handlers are set or removed from the onUnload handler.
  
  2004-02-27  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	- fixed <rdar://problem/3571356>: REGRESSION: Crash in isPointInsideSelection clicking on link in Apple web directory frame
  	
          * khtml/khtml_part.cpp:
          (KHTMLPart::isPointInsideSelection): Don't crash if innerNode is
  	NULL, as this can happen mousing over a frame that's in the
  	process of loading and currently empty. Since such a frame
  	obviously can't be inside the selection, this seems like a good
  	enough fix.
  	
  2004-02-26  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3528839, wide table cut off because of shorts being used instead of ints.
  	
          Reviewed by darin
  
          * khtml/rendering/render_table.cpp:
          (RenderTableSection::layoutRows):
          (RenderTableCell::setWidth):
          * khtml/rendering/table_layout.cpp:
          (FixedTableLayout::calcWidthArray):
          (FixedTableLayout::calcMinMaxWidth):
          (AutoTableLayout::calcMinMaxWidth):
  
  2004-02-26  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed a few problems I found with reconstructed source while on my way to implementing "Mail Page".
  
          Reviewed by hyatt.
  
          * khtml/html/html_headimpl.cpp:
          (HTMLLinkElementImpl::isSubresourceURLAttribute): only true for stylesheet and icon
          * khtml/html/html_imageimpl.cpp:
          (HTMLAreaElementImpl::isURLAttribute): implement isURLAttribute not isSubresourceURLAttribute
          * khtml/html/html_imageimpl.h:
          * khtml/rendering/render_box.cpp:
          (RenderBox::dirtyLineBoxes): crasher fix that I found using libgmalloc
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::recursive_toHTMLWithOptions): don't escape SCRIPT and TEXTAREA text, write close tags for tags that need them instead of relying on the children check 
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge HTMLString:]): call recursive_toHTMLWithOptions on the first child of the document so <#document /> isn't part of the source
  
  2004-02-26  David Hyatt  <hyatt at apple.com>
  
  	Convert render object widths from short to int.  There was a bug on this, but I can't find it in Radar.
  	
          Reviewed by john
  
          * khtml/rendering/render_applet.cpp:
          (RenderApplet::intrinsicWidth):
          (RenderEmptyApplet::intrinsicWidth):
          * khtml/rendering/render_applet.h:
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::calcMinMaxWidth):
          (khtml::RenderBlock::calcInlineMinMaxWidth):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_box.cpp:
          (RenderBox::contentWidth):
          (RenderBox::width):
          (RenderBox::containingBlockWidth):
          (RenderBox::calcReplacedWidth):
          (RenderBox::setStaticX):
          * khtml/rendering/render_box.h:
          (khtml::RenderBox::minWidth):
          (khtml::RenderBox::maxWidth):
          * khtml/rendering/render_br.h:
          (khtml::RenderBR::minWidth):
          (khtml::RenderBR::maxWidth):
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::layout):
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::calcMinMaxWidth):
          * khtml/rendering/render_frames.cpp:
          (RenderPart::intrinsicWidth):
          (RenderPartObject::layout):
          * khtml/rendering/render_frames.h:
          * khtml/rendering/render_image.cpp:
          (RenderImage::layout):
          (RenderImage::calcReplacedWidth):
          * khtml/rendering/render_image.h:
          * khtml/rendering/render_inline.cpp:
          (RenderInline::width):
          * khtml/rendering/render_inline.h:
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::scrollWidth):
          * khtml/rendering/render_layer.h:
          (khtml::RenderLayer::width):
          (khtml::RenderLayer::setWidth):
          (khtml::RenderLayer::scrollXOffset):
          * khtml/rendering/render_line.h:
          (khtml::InlineBox::setWidth):
          (khtml::InlineBox::width):
          (khtml::InlineBox::setXPos):
          (khtml::InlineBox::xPos):
          * khtml/rendering/render_object.cpp:
          (RenderObject::containingBlockWidth):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::setStaticX):
          (khtml::RenderObject::contentWidth):
          (khtml::RenderObject::intrinsicWidth):
          (khtml::RenderObject::width):
          (khtml::RenderObject::offsetWidth):
          (khtml::RenderObject::minWidth):
          (khtml::RenderObject::maxWidth):
          * khtml/rendering/render_replaced.h:
          (khtml::RenderReplaced::intrinsicWidth):
          * khtml/rendering/render_table.cpp:
          (RenderTable::calcWidth):
          * khtml/rendering/render_table.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::trimmedMinMaxWidth):
          (RenderText::width):
          * khtml/rendering/render_text.h:
          (khtml::RenderText::minWidth):
          (khtml::RenderText::maxWidth):
          * khtml/rendering/table_layout.cpp:
  
  2004-02-26  Trey Matteson  <trey at apple.com>
  
  	3566668 - REGRESSION (125-128): autofill of popup lists is broken
  	3571271 - autofill parsing of field names should treat _ as a word separator
  
          Reviewed by Chris, Darin
  
          * kwq/KWQComboBox.h:
          * kwq/KWQComboBox.mm:
          (QComboBox::populate):   New virtual method to force any lazy field population to happen.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::matchLabelsAgainstElement):  Change _ to ' ', to make it a word separator.
          * kwq/KWQWidget.h:
          (QWidget::populate):  Implement populate to fill out the menu's data.
          * kwq/WebCoreBridge.mm:
          (viewForElement):    Make sure widget is populated before handing it out.
  
  2004-02-26  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/xml/dom2_rangeimpl.h: Now includes createInstance glue function as do the other
          khtml DOM objects that we reflect into ObjC.
          * kwq/DOM-compat.h: Added. Compatibility declarations for DOM SPI. Note that this file 
          is copied into WebKit by the build system as needed.
          * kwq/DOM.h: Added. New home for DOM SPI. Note that this file is copied into WebKit by the build 
          system as needed.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::recordFormValue): Updated usage to new DOM SPI.
          * kwq/WebCoreBridge.h: Updated usage to new DOM SPI.
          * kwq/WebCoreBridge.mm: Updated usage to new DOM SPI. Needed to add DOM range impl include since
          includes jiggered around and this needed header was no longer included indirectly.
          (-[WebCoreBridge elementForView:]): Ditto.
          (inputElementFromDOMElement): Ditto.
          (formElementFromDOMElement): Ditto.
          (-[WebCoreBridge elementWithName:inForm:]): Ditto.
          (-[WebCoreBridge elementDoesAutoComplete:]): Ditto.
          (-[WebCoreBridge elementIsPassword:]): Ditto.
          (-[WebCoreBridge currentForm]): Ditto.
          (-[WebCoreBridge controlsInForm:]): Ditto.
          (-[WebCoreBridge searchForLabels:beforeElement:]): Ditto.
          (-[WebCoreBridge matchLabels:againstElement:]): Ditto.
          (-[WebCoreBridge elementAtPoint:]): Ditto.
          (-[WebCoreBridge DOMDocument]): Ditto.
          (-[WebCoreBridge setSelectionFrom:startOffset:to:endOffset:]): Ditto.
          (-[WebCoreBridge attributedStringFrom:startOffset:to:endOffset:]): Ditto.
          (-[WebCoreBridge selectionStart]): Ditto.
          (-[WebCoreBridge selectionEnd]): Ditto.
          * kwq/WebCoreDOM.h: New home for all private declarations needed for reflecting DOM into ObjC.
          * kwq/WebCoreDOM.mm: Added. New home for all implementations needed for reflecting DOM into ObjC.
          * kwq/WebCoreDOMDocument.mm: Removed. All ObjC DOM implementation now in WebCoreDOM.mm.
          * kwq/WebCoreDOMNode.mm: Removed. All ObjC DOM implementation now in WebCoreDOM.mm.
          * kwq/WebCoreDOMPrivate.h: Removed.
          * kwq/WebDOMDocument.h: Removed.
          * kwq/WebDOMElement.h: Removed.
          * kwq/WebDOMNode.h: Removed.
  
  2004-02-25  John Sullivan  <sullivan at apple.com>
  
          WebCore part of fix for <rdar://problem/3546370>: add a way to tab to menus, 
          checkmarks, and buttons without turning on Full Keyboard Acceess
  
          Reviewed by Ken.
  
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::tabsToAllControls):
          now checks for option-tab like tabsToLinks
          (KWQKHTMLPart::partForWidget):
          new method, extracted from bridgeForWidget
          (KWQKHTMLPart::bridgeForWidget):
          now calls extracted method
  
          * kwq/KWQButton.mm:
          (-[KWQButton canBecomeKeyView]):
          overridden to handle our rules about full keyboard access, different
          than NSView's rules
          * kwq/KWQComboBox.mm:
          (-[KWQPopUpButton canBecomeKeyView]):
          ditto
          * kwq/KWQListBox.mm:
          (-[KWQTableView canBecomeKeyView]):
          ditto
          
  2004-02-24  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          * kwq/KWQString.mm: (QString::endsWith): Fixed broken end of string test, to get rid
          of false positives.
  
          * WebCore-tests.exp: Added endsWith so it can be tested.
          * WebCore-combined.exp: Regenerated.
  
  2004-02-23  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3549772, hangs on border collapsing.
  	
          Reviewed by darin
  
          * khtml/rendering/render_object.cpp:
          (RenderObject::collectBorders):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_table.cpp:
          (RenderTable::paint):
          (compareBorders):
          (RenderTableCell::paint):
          (addBorderStyle):
          (RenderTableCell::collectBorders):
          * khtml/rendering/render_table.h:
  
  2004-02-23  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3558717, make sure that form elements that are removed from a document also remove themselves
  	from the form.
  
  	Reviewed by darin.
  	
          * khtml/html/html_formimpl.cpp:
          (HTMLGenericFormElementImpl::removedFromDocument):
          * khtml/html/html_formimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          * khtml/xml/dom_nodeimpl.h:
  
  	Implement smarter line layout for faster typing and repainting when individual lines change.
  
  	Reviewed by kocienda.
  	
  	* khtml/khtmlview.cpp:
          (KHTMLViewPrivate::KHTMLViewPrivate):
          (KHTMLViewPrivate::~KHTMLViewPrivate):
          (KHTMLViewPrivate::reset):
          (KHTMLView::addRepaintInfo):
          (KHTMLView::layout):
          * khtml/khtmlview.h:
          * khtml/rendering/bidi.cpp:
          (khtml::Bidinext):
          (khtml::appendRun):
          (khtml::embed):
          (khtml::RenderBlock::constructLine):
          (khtml::RenderBlock::computeHorizontalPositionsForLine):
          (khtml::RenderBlock::computeVerticalPositionsForLine):
          (khtml::RenderBlock::bidiReorderLine):
          (khtml::buildCompactRuns):
          (khtml::RenderBlock::layoutInlineChildren):
          (khtml::RenderBlock::determineStartPosition):
          (khtml::RenderBlock::determineEndPosition):
          (khtml::RenderBlock::matchedEndLine):
          (khtml::RenderBlock::findNextLineBreak):
          * khtml/rendering/render_block.cpp:
          (khtml:::RenderFlow):
          (khtml::RenderBlock::layoutBlock):
          (khtml::RenderBlock::layoutBlockChildren):
          (khtml::RenderBlock::positionNewFloats):
          (khtml::RenderBlock::lowestPosition):
          (khtml::RenderBlock::rightmostPosition):
          (khtml::RenderBlock::leftmostPosition):
          * khtml/rendering/render_block.h:
          (khtml::RenderBlock::firstRootBox):
          (khtml::RenderBlock::lastRootBox):
          (khtml::RenderBlock::setLinesAppended):
          (khtml::RenderBlock::linesAppended):
          * khtml/rendering/render_box.cpp:
          (RenderBox::dirtyLineBoxes):
          (RenderBox::deleteLineBoxWrapper):
          (RenderBox::setInlineBoxWrapper):
          * khtml/rendering/render_box.h:
          * khtml/rendering/render_br.cpp:
          (RenderBR::createInlineBox):
          (RenderBR::position):
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_container.cpp:
          (RenderContainer::appendChildNode):
          (RenderContainer::insertChildNode):
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::placeChild):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::extractLineBox):
          (RenderFlow::attachLineBox):
          (RenderFlow::removeLineBox):
          (RenderFlow::dirtyLinesFromChangedChild):
          (RenderFlow::dirtyLineBoxes):
          (RenderFlow::createInlineBox):
          * khtml/rendering/render_flow.h:
          * khtml/rendering/render_line.cpp:
          (InlineBox::dirtyLineBoxes):
          (InlineBox::deleteLine):
          (InlineBox::extractLine):
          (InlineBox::attachLine):
          (InlineBox::adjustVerticalPosition):
          (InlineBox::root):
          (InlineBox::nextOnLineExists):
          (InlineBox::prevOnLineExists):
          (InlineFlowBox::removeChild):
          (InlineFlowBox::deleteLine):
          (InlineFlowBox::extractLine):
          (InlineFlowBox::attachLine):
          (InlineFlowBox::adjustVerticalPosition):
          (InlineFlowBox::verticallyAlignBoxes):
          (InlineFlowBox::adjustMaxAscentAndDescent):
          (RootInlineBox::adjustVerticalPosition):
          (RootInlineBox::childRemoved):
          * khtml/rendering/render_line.h:
          (khtml::InlineBox::m_extracted):
          (khtml::InlineBox::setExtracted):
          (khtml::InlineBox::object):
          (khtml::InlineBox::parent):
          (khtml::InlineBox::isDirty):
          (khtml::InlineBox::markDirty):
          (khtml::InlineFlowBox::prevFlowBox):
          (khtml::InlineFlowBox::nextFlowBox):
          (khtml::RootInlineBox::RootInlineBox):
          (khtml::RootInlineBox::nextRootBox):
          (khtml::RootInlineBox::prevRootBox):
          (khtml::RootInlineBox::setLineBreakInfo):
          (khtml::RootInlineBox::setLineBreakPos):
          (khtml::RootInlineBox::setBlockHeight):
          (khtml::RootInlineBox::setEndsWithBreak):
          (khtml::RootInlineBox::blockHeight):
          (khtml::RootInlineBox::endsWithBreak):
          (khtml::RootInlineBox::lineBreakObj):
          (khtml::RootInlineBox::lineBreakPos):
          * khtml/rendering/render_object.cpp:
          (RenderObject::repaintAfterLayoutIfNeeded):
          (RenderObject::repaintObjectsBeforeLayout):
          (RenderObject::dirtyLinesFromChangedChild):
          (RenderObject::createInlineBox):
          (RenderObject::dirtyLineBoxes):
          (RenderObject::setInlineBoxWrapper):
          (RenderObject::deleteLineBoxWrapper):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::RepaintInfo::m_repaintRect):
          * khtml/rendering/render_table.cpp:
          (RenderTableSection::layoutRows):
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::deleteLine):
          (InlineTextBox::extractLine):
          (InlineTextBox::attachLine):
          (RenderText::RenderText):
          (RenderText::detach):
          (RenderText::extractTextBox):
          (RenderText::attachTextBox):
          (RenderText::removeTextBox):
          (RenderText::setTextWithOffset):
          (RenderText::setText):
          (RenderText::dirtyLineBoxes):
          (RenderText::createInlineBox):
          * khtml/rendering/render_text.h:
          (khtml::InlineTextBox::start):
          (khtml::InlineTextBox::end):
          (khtml::InlineTextBox::offsetRun):
          * khtml/xml/dom_textimpl.cpp:
          (CharacterDataImpl::setData):
          (CharacterDataImpl::appendData):
          (CharacterDataImpl::insertData):
          (CharacterDataImpl::deleteData):
          (CharacterDataImpl::replaceData):
          (TextImpl::splitText):
          * kwq/KWQRenderTreeDebug.cpp:
          (write):
  
  	RenderBlock contains two other fixes.  The first is a fix to rightmost/lowestPosition to properly add in
  	margins to floats.
  
  	Reviewed by mjs
  
  	The second fix is to repair a bug in block-level replaced elements with margins.  If the floats they moved to
  	dodge can fit in their margins, then they don't technically have to move at all.
  
  	Reviewed by john
  
  2004-02-20  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3552346>: REGRESSION 100-125: nil-dereference in KHTMLPart::isPointInsideSelection (progz.ru, many other sites)
  	
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::nodeAtPointForLayer): To cover the case of
  	positioned generated content, make sure to find an element if we
  	don't have one yet when we get to the layer level.
  
  === Safari-129 ===
  
  2004-02-19  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3563402>: when copying HTML, relative URLs should be made absolute
  
  	- Added isSubresourceURLAttribute to ElementImpl which is overridden by subclasses determine if an attribute refers to a subresource.
  	- Added isURLAttribute to ElementImpl which is overridden by subclasses determine if an attribute refers to any kind of URL.
  
          Reviewed by Dave.
  
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::isSubresourceURLAttribute):
          (HTMLFrameElementImpl::isSubresourceURLAttribute):
          (HTMLIFrameElementImpl::openURL):
          (HTMLIFrameElementImpl::isSubresourceURLAttribute):
          * khtml/html/html_baseimpl.h:
          * khtml/html/html_formimpl.cpp:
          (HTMLFormElementImpl::isURLAttribute):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_headimpl.cpp:
          (HTMLLinkElementImpl::isSubresourceURLAttribute):
          (HTMLScriptElementImpl::id):
          (HTMLScriptElementImpl::isSubresourceURLAttribute):
          * khtml/html/html_headimpl.h:
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageElementImpl::isSubresourceURLAttribute):
          (HTMLAreaElementImpl::getRegion):
          (HTMLAreaElementImpl::isSubresourceURLAttribute):
          * khtml/html/html_imageimpl.h:
          * khtml/html/html_inlineimpl.cpp:
          (HTMLAnchorElementImpl::isURLAttribute):
          * khtml/html/html_inlineimpl.h:
          * khtml/html/html_objectimpl.cpp:
          (HTMLEmbedElementImpl::isSubresourceURLAttribute):
          (HTMLObjectElementImpl::isSubresourceURLAttribute):
          (HTMLParamElementImpl::parseHTMLAttribute):
          (HTMLParamElementImpl::isSubresourceURLAttribute):
          * khtml/html/html_objectimpl.h:
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableElementImpl::isSubresourceURLAttribute):
          (HTMLTableCellElementImpl::attach):
          (HTMLTableCellElementImpl::isSubresourceURLAttribute):
          * khtml/html/html_tableimpl.h:
          * khtml/xml/dom2_rangeimpl.cpp:
          (RangeImpl::toHTMLWithOptions): take completeURLs and subresourceURLs arguments
          (RangeImpl::toHTML): call toHTMLWithOptions with default options
          * khtml/xml/dom2_rangeimpl.h:
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::isURLAttribute):
          (ElementImpl::isSubresourceURLAttribute):
          * khtml/xml/dom_elementimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::recursive_toHTMLWithOptions): take completeURLs and subresourceURLs arguments
          (NodeImpl::recursive_toHTML): call recursive_toHTML with default options
          * khtml/xml/dom_nodeimpl.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge selectedHTML:]): renamed to return subresource URL strings
  
  2004-02-17  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3537397>: REGRESSION (100-114): Return doesn't work in Japanese input method for some HomePage fields
          
          * kwq/KWQTextArea.mm:
          (-[KWQTextAreaTextView keyDown:]): Don't send events through DOM when there is marked
  	text.
          (-[KWQTextAreaTextView keyUp:]): Ditto.
          * kwq/KWQTextField.mm:
          (-[KWQTextField textView:shouldHandleEvent:]): Ditto.
          (-[KWQSecureTextField textView:shouldHandleEvent:]): Ditto.
  	* khtml/html/html_formimpl.cpp:
          (HTMLInputElementImpl::defaultEventHandler): No need to check for
  	marked text on "return" any more, because we won't send key events
  	through the DOM at all when there is marked text.
          * kwq/KWQLineEdit.h:
          * kwq/KWQLineEdit.mm: Removed haveMarkedText method, no longer
  	used by anything.
  
  2004-02-16  Chris Blumenberg  <cblu at apple.com>
  
  	WebCore side of pasting image data.
  
          Reviewed by kocienda.
  
          * khtml/editing/htmlediting.cpp:
          (PasteImageCommand::PasteImageCommand): new
          (PasteImageCommand::~PasteImageCommand): new
          (PasteImageCommand::impl): new
          * khtml/editing/htmlediting.h:
          (khtml::):
          * khtml/editing/htmlediting_impl.cpp:
          (EditCommandImpl::name): added support for PasteImageCommandID
          (CompositeEditCommandImpl::insertNodeAt): new, factored out from PasteHTMLCommandImpl::apply
          (PasteHTMLCommandImpl::apply): call insertNodeAt
          (PasteImageCommandImpl::PasteImageCommandImpl): new
          (PasteImageCommandImpl::~PasteImageCommandImpl): new
          (PasteImageCommandImpl::apply): new
          * khtml/editing/htmlediting_impl.h:
          * khtml/khtml_part.cpp:
          (KHTMLPart::pasteHTMLString): unchanged
          (KHTMLPart::pasteImage): new
          * khtml/khtml_part.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge pasteImageWithURL:]): new
  
  2004-02-16  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - Fixed some dynamic casts that Dirk complained about to use virtual functions instead.
            Since the virtual functions were already there, this is faster and better in most
            ways anyway.
  
          * khtml/dom/dom2_events.cpp:
          (UIEvent::keyCode): Use virtual function instead of dynamic_cast.
          (UIEvent::charCode): Ditto.
          (UIEvent::pageX): Ditto.
          (UIEvent::pageY): Ditto.
          (UIEvent::layerX): Ditto.
          (UIEvent::layerY): Ditto.
          (UIEvent::which): Ditto.
  
  2004-02-15  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          * WebCore.pbproj/project.pbxproj: Tweak build styles a bit, fixing OptimizedWithSymbols,
          and removing redundant settings of things that match defaults in other build styles.
  
  2004-02-15  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed 3548533: crash in XMLHttpRequest::slotData using Orkut's rating system
  
          * khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::~XMLHttpRequest):
          Delete the QObject side, which has a side effect of disconnecting the
          signals which seem to be firing after the request is gone. There may be
          another way of addressing the crash by correcting some other problem with
          killing the job, but this demonstrably works and fixes a storage leak.
  
  2004-02-12  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- redo visited link history checking for a 2% speed improvement
  
          * kwq/KWQKHistoryProvider.mm:
          (KParts::HistoryProvider::contains): Don't make a KURL or an
  	NSString. Punt on canonicalization and directly pass the internal
  	Latin1 or unicode buffer.
          * kwq/KWQString.h:
          * kwq/KWQString.mm:
          (QString::hasFastLatin1): New method to check whether getting the
  	latin1 buffer is fast (doesn't allocate).
          * kwq/WebCoreHistory.h: add new methods to look up by raw latin1
  	or unicode buffer instead of NSString.
  
  === Safari-128 ===
  
  2004-02-12  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3557850 and 3557607.  Make sure to setParent(0) on the body's link declaration, so that TreeShared
  	will delete it.
  	
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::~HTMLBodyElementImpl):
  
  2004-02-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
  	Refactored object design for edit commands into something that's
  	starting to feel more solid. Added some accessors to edit 
  	commands.
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/editing/htmlediting_impl.h: Added.
          * khtml/editing/htmlediting_impl.m: Added.
  
  2004-02-11  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3550005, 936 leaks when loading checkbox page of pain.  Make sure to nuke the inline box
  	wrapper when detaching the RenderWidget.
  
          * khtml/rendering/render_replaced.cpp:
          (RenderWidget::detach):
  
  2004-02-11  David Hyatt  <hyatt at apple.com>
  
  	Add some more polish to ensure the ypos estimate is right.  Correct the clearing of images so that
  	their top margins do not get added in when they clear the float because of having a large width.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlockChildren):
          * layout-tests/fast/block/margin-collapse/101-expected.txt: Added.
          * layout-tests/fast/block/margin-collapse/101.html: Added.
          * layout-tests/fast/block/margin-collapse/102-expected.txt: Added.
          * layout-tests/fast/block/margin-collapse/102.html: Added.
  
  2004-02-11  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3556702, margin collapsing gets disabled when images spill out of the containing block.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlockChildren):
  
  2004-02-11  David Hyatt  <hyatt at apple.com>
  
  	Fix the .rows and .cells arrays on tables by merging with the KHTML trunk.  TH was being included
  	as a row instead of as a cell.
  	
          Reviewed by kocienda
  
          * khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::calcLength):
          (HTMLCollectionImpl::getItem):
          (HTMLCollectionImpl::getNamedItem):
  
  2004-02-11  David Hyatt  <hyatt at apple.com>
  
  	Remove my bogus refs of the elementSheet.  Fixes 3554213 and 3555467.
  	
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::createLinkDecl):
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableElementImpl::additionalAttributeStyleDecl):
          (HTMLTableElementImpl::getSharedCellDecl):
  
  2004-02-11  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3556037, regression where display:block generated content didn't work.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::setStyle):
          (khtml::RenderBlock::addChildToFlow):
          (khtml::RenderBlock::removeChild):
          (khtml::RenderBlock::renderName):
          * khtml/rendering/render_container.cpp:
          (RenderContainer::insertChildNode):
          (RenderContainer::removeLeftoverAnonymousBoxes):
          * khtml/rendering/render_inline.cpp:
          (RenderInline::splitFlow):
          (RenderInline::renderName):
          * khtml/rendering/render_list.cpp:
          (RenderListItem::updateMarkerLocation):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::isAnonymousBlock):
          * layout-tests/css1/pseudo/firstletter-expected.txt:
          * layout-tests/css1/pseudo/multiple_pseudo_elements-expected.txt:
          * layout-tests/fast/css-generated-content/002-expected.txt:
          * layout-tests/fast/css-generated-content/004-expected.txt:
          * layout-tests/fast/css-generated-content/005-expected.txt:
          * layout-tests/fast/css-generated-content/006-expected.txt:
          * layout-tests/fast/css-generated-content/007-expected.txt:
          * layout-tests/fast/css-generated-content/009-expected.txt:
          * layout-tests/fast/css-generated-content/010-expected.txt:
          * layout-tests/fast/selectors/039-expected.txt:
          * layout-tests/fast/selectors/039b-expected.txt:
          * layout-tests/fast/selectors/041-expected.txt:
          * layout-tests/fast/selectors/042-expected.txt:
          * layout-tests/fast/selectors/166a-expected.txt:
          * layout-tests/fast/selectors/168-expected.txt:
          * layout-tests/fast/selectors/168a-expected.txt:
          * layout-tests/fast/selectors/169-expected.txt:
          * layout-tests/fast/selectors/169a-expected.txt:
          * layout-tests/fast/text/firstline/002-expected.txt:
          * layout-tests/fast/text/firstline/003-expected.txt:
  
  2004-02-11  Darin Adler   <darin at apple.com>
  
          Reviewed by Richard.
  
          * kwq/KWQTextCodec.mm:
          (KWQTextDecoder::convertLatin1):
  	Fix off by one error.
  
  2004-02-11  David Hyatt  <hyatt at apple.com>
  
  	Convert paint methods over to use a new PaintInfo struct.  Eliminate the paintObject method.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paint):
          (khtml::RenderBlock::paintObject):
          (khtml::RenderBlock::paintFloats):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_box.cpp:
          (RenderBox::paint):
          (RenderBox::paintRootBoxDecorations):
          (RenderBox::paintBoxDecorations):
          * khtml/rendering/render_box.h:
          * khtml/rendering/render_br.h:
          (khtml::RenderBR::paint):
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::paint):
          (RenderCanvas::paintBoxDecorations):
          * khtml/rendering/render_canvas.h:
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::paintLineBoxBackgroundBorder):
          (RenderFlow::paintLineBoxDecorations):
          * khtml/rendering/render_flow.h:
          * khtml/rendering/render_form.cpp:
          (RenderFieldset::paintBoxDecorations):
          * khtml/rendering/render_form.h:
          * khtml/rendering/render_image.cpp:
          (RenderImage::paint):
          (RenderImage::updateFromElement):
          * khtml/rendering/render_image.h:
          * khtml/rendering/render_inline.cpp:
          (RenderInline::paint):
          * khtml/rendering/render_inline.h:
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::paintLayer):
          * khtml/rendering/render_line.cpp:
          (InlineFlowBox::paintBackgroundAndBorder):
          (InlineFlowBox::paintDecorations):
          * khtml/rendering/render_line.h:
          (khtml::InlineRunBox::paintBackgroundAndBorder):
          (khtml::InlineRunBox::paintDecorations):
          * khtml/rendering/render_list.cpp:
          (RenderListItem::paint):
          (RenderListMarker::paint):
          * khtml/rendering/render_list.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::paint):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::PaintInfo::PaintInfo):
          (khtml::RenderObject::paintBoxDecorations):
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::shouldPaint):
          (RenderWidget::paint):
          * khtml/rendering/render_replaced.h:
          * khtml/rendering/render_table.cpp:
          (RenderTable::paint):
          (RenderTable::paintBoxDecorations):
          (RenderTableSection::paint):
          (RenderTableCell::paint):
          (RenderTableCell::paintBoxDecorations):
          * khtml/rendering/render_table.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::paint):
          * khtml/rendering/render_text.h:
  
  2004-02-11  Ken Kocienda  <kocienda at apple.com>
  
  		Removed include file I was considering checking, but 
  		decided against. Of course, this dangling include
  		broke the build.
  		
          * kwq/KWQKHTMLPart.mm
          * kwq/WebCoreBridge.mm
  
  2004-02-10  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          Several big changes.
          
          EditSteps are now all EditCommands.
          Smart pointer for Shared classes added to shared.h.
  		Some events, like text input events, are now coalesced.
  		"Undo typing" now implemented, even though the name is not in the menu yet.
  		Integer id's added to EditCommand and its subclasses.
  		A bunch of cleanup in the EditCommand classes.
  
          * khtml/editing/htmlediting.cpp:
          (EditCommand::EditCommand):
          (EditCommand::~EditCommand):
          (EditCommand::commandID):
          (EditCommand::reapply):
          (EditCommand::beginApply):
          (EditCommand::endApply):
          (EditCommand::beginUnapply):
          (EditCommand::endUnapply):
          (EditCommand::beginReapply):
          (EditCommand::endReapply):
          (EditCommand::currentSelection):
          (EditCommand::coalesce):
          (EditCommand::groupForUndo):
          (EditCommand::groupForRedo):
          (EditCommand::moveToStartingSelection):
          (EditCommand::moveToEndingSelection):
          (EditCommand::name):
          (CompositeEditCommand::CompositeEditCommand):
          (CompositeEditCommand::~CompositeEditCommand):
          (CompositeEditCommand::unapply):
          (CompositeEditCommand::reapply):
          (CompositeEditCommand::applyCommand):
          (CompositeEditCommand::insertNodeBefore):
          (CompositeEditCommand::insertNodeAfter):
          (CompositeEditCommand::appendNode):
          (CompositeEditCommand::removeNode):
          (CompositeEditCommand::splitTextNode):
          (CompositeEditCommand::joinTextNodes):
          (CompositeEditCommand::insertText):
          (CompositeEditCommand::deleteText):
          (CompositeEditCommand::moveSelectionTo):
          (CompositeEditCommand::deleteSelection):
          (InsertNodeBeforeCommand::InsertNodeBeforeCommand):
          (InsertNodeBeforeCommand::~InsertNodeBeforeCommand):
          (InsertNodeBeforeCommand::apply):
          (InsertNodeBeforeCommand::unapply):
          (AppendNodeCommand::AppendNodeCommand):
          (AppendNodeCommand::~AppendNodeCommand):
          (AppendNodeCommand::apply):
          (AppendNodeCommand::unapply):
          (RemoveNodeCommand::RemoveNodeCommand):
          (RemoveNodeCommand::~RemoveNodeCommand):
          (RemoveNodeCommand::apply):
          (RemoveNodeCommand::unapply):
          (ModifyTextNodeCommand::ModifyTextNodeCommand):
          (ModifyTextNodeCommand::~ModifyTextNodeCommand):
          (ModifyTextNodeCommand::splitTextNode):
          (ModifyTextNodeCommand::joinTextNodes):
          (SplitTextNodeCommand::SplitTextNodeCommand):
          (SplitTextNodeCommand::~SplitTextNodeCommand):
          (SplitTextNodeCommand::apply):
          (SplitTextNodeCommand::unapply):
          (JoinTextNodesCommand::JoinTextNodesCommand):
          (JoinTextNodesCommand::~JoinTextNodesCommand):
          (JoinTextNodesCommand::apply):
          (JoinTextNodesCommand::unapply):
          (InsertTextCommand::InsertTextCommand):
          (InsertTextCommand::~InsertTextCommand):
          (InsertTextCommand::apply):
          (InsertTextCommand::unapply):
          (DeleteTextCommand::DeleteTextCommand):
          (DeleteTextCommand::~DeleteTextCommand):
          (DeleteTextCommand::apply):
          (DeleteTextCommand::unapply):
          (MoveSelectionToCommand::MoveSelectionToCommand):
          (MoveSelectionToCommand::~MoveSelectionToCommand):
          (MoveSelectionToCommand::commandID):
          (MoveSelectionToCommand::apply):
          (MoveSelectionToCommand::unapply):
          (DeleteSelectionCommand::DeleteSelectionCommand):
          (DeleteSelectionCommand::~DeleteSelectionCommand):
          (DeleteSelectionCommand::apply):
          (InputTextCommand::InputTextCommand):
          (InputTextCommand::~InputTextCommand):
          (InputTextCommand::commandID):
          (InputTextCommand::isLineBreak):
          (InputTextCommand::isSpace):
          (InputTextCommand::apply):
          (InputTextCommand::coalesce):
          (InputTextCommand::groupForUndo):
          (InputTextCommand::groupForRedo):
          (InputTextCommand::execute):
          (DeleteKeyCommand::DeleteKeyCommand):
          (DeleteKeyCommand::~DeleteKeyCommand):
          (DeleteKeyCommand::commandID):
          (DeleteKeyCommand::apply):
          (DeleteKeyCommand::groupForUndo):
          (DeleteKeyCommand::groupForRedo):
          (PasteHTMLCommand::PasteHTMLCommand):
          (PasteHTMLCommand::~PasteHTMLCommand):
          (PasteHTMLCommand::apply):
          * khtml/editing/htmlediting.h:
          (khtml::):
          (khtml::EditCommand::):
          (khtml::EditCommand::document):
          (khtml::EditCommand::state):
          (khtml::EditCommand::setState):
          (khtml::SplitTextNodeCommand::joinState):
          (khtml::SplitTextNodeCommand::splitState):
          (khtml::JoinTextNodesCommand::joinState):
          (khtml::JoinTextNodesCommand::splitState):
          * khtml/khtml_part.cpp:
          (KHTMLPart::openURL):
          (KHTMLPart::deleteSelection):
          (KHTMLPart::applyCommand):
          (KHTMLPart::undoEditing):
          (KHTMLPart::redoEditing):
          (KHTMLPart::pasteHTMLString):
          * khtml/khtml_part.h:
          * khtml/khtmlpart_p.h:
          (KHTMLPartPrivate::~KHTMLPartPrivate):
          * khtml/misc/shared.h:
          (khtml::SharedPtr::SharedPtr):
          (khtml::SharedPtr::~SharedPtr):
          (khtml::SharedPtr::isEmpty):
          (khtml::SharedPtr::get):
          (khtml::SharedPtr::operator*):
          (khtml::SharedPtr::operator->):
          (khtml::SharedPtr::operator!):
          (khtml::SharedPtr::operator==):
          (khtml::::operator):
          (khtml::operator!=):
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::defaultEventHandler):
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::registerCommandForUndo):
          (KWQKHTMLPart::registerCommandForRedo):
          (KWQKHTMLPart::clearUndoRedoOperations):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge undoEditing:]):
          (-[WebCoreBridge redoEditing:]):
  
  2004-02-10  David Hyatt  <hyatt at apple.com>
  
  	Eliminate the double-completion and double-parsing of KURLs for every single image request.
  	
          * khtml/misc/loader.cpp:
          (DocLoader::requestImage):
          (Cache::requestImage):
          * khtml/misc/loader.h:
  
  2004-02-10  David Hyatt  <hyatt at apple.com>
  
  	Merged patch that fixes clear:both for floats.  This patch comes from the KHTML tree.
  	
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::positionNewFloats):
          * layout-tests/fast/block/float/029-expected.txt: Added.
          * layout-tests/fast/block/float/029.html: Added.
  
  2004-02-10  David Hyatt  <hyatt at apple.com>
  
  	Fix crasher in list code caused by incorrect style deallocation.  Regression from the
  	arena changes for RenderStyles.
  	
          Reviewed by darin
  
          * khtml/rendering/render_object.cpp:
          (RenderObject::remove):
          (RenderObject::arenaDelete):
  
  2004-02-10  David Hyatt  <hyatt at apple.com>
  
  	Fix for osnews.com's wacky layout problem.  Put back in the check for isEmpty.
  	
          Reviewed by darin
  
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::scriptHandler):
  
  2004-02-10  David Hyatt  <hyatt at apple.com>
  
  	Fix for the bad background color on abcnews.com.  Make cloning optionally drop the style declarations.
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLAttributeImpl::clone):
          * khtml/html/html_elementimpl.h:
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::insertNode):
          * khtml/xml/dom_elementimpl.cpp:
          (AttributeImpl::clone):
          * khtml/xml/dom_elementimpl.h:
  
  2004-02-10  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3552545>: Cut, Paste and Delete must support Undo and Redo
  
          Reviewed by kocienda.
  
          * khtml/editing/htmlediting.cpp:
          (ModifyTextNodeStep::splitTextNode): ken's fix that fixes a problem with unapply
          (ModifyTextNodeStep::joinTextNodes): my fix that fixes a problem with unapply
          (PasteHTMLCommand::PasteHTMLCommand): new
          (PasteHTMLCommand::apply): moved from dom_docimpl.cpp and improved
          * khtml/editing/htmlediting.h:
          (khtml::PasteHTMLCommand::~PasteHTMLCommand):
          * khtml/khtml_part.cpp:
          (KHTMLPart::deleteSelection): new, create and applies a DeleteTextCommand
          (KHTMLPart::pasteHTMLString): new, create and applies a PasteHTMLCommand
          * khtml/khtml_part.h:
          * khtml/xml/dom_docimpl.cpp: moved paste code to htmlediting.cpp
          * khtml/xml/dom_docimpl.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge pasteHTMLString:]): call pasteHTMLString on the part instead of the bridge
          (-[WebCoreBridge deleteSelection]): call deleteSelection on the part instead of the bridge
  
  2004-02-10  David Hyatt  <hyatt at apple.com>
  
  	Fix crash on abcnews.com by adding isEmpty checks before dereferencing.
  	
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::parseTag):
  
  2004-02-10  David Hyatt  <hyatt at apple.com>
  
  	Improve attribute parsing of mapped attributes (that map to CSS properties) so that they can pull the
  	style declarations from a global cache.
  
  	Made RenderStyles be arena allocated as well.
  	
          Reviewed by darin
  
          * khtml/css/css_valueimpl.cpp:
          (CSSImageValueImpl::CSSImageValueImpl):
          (CSSImageValueImpl::image):
          * khtml/css/css_valueimpl.h:
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::initForStyleResolve):
          (khtml::CSSStyleSelector::styleForElement):
          (khtml::CSSStyleSelector::pseudoStyleForElement):
          (khtml::CSSStyleSelector::applyProperty):
          * khtml/css/cssstyleselector.h:
          * khtml/css/html4.css:
          * khtml/css/quirks.css:
          * khtml/dom/dom_element.cpp:
          (Element::style):
          * khtml/dom/html_element.cpp:
          * khtml/dom/html_element.h:
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::HTMLBodyElementImpl):
          (HTMLBodyElementImpl::mapToEntry):
          (HTMLBodyElementImpl::parseHTMLAttribute):
          (HTMLBodyElementImpl::insertedIntoDocument):
          (HTMLFrameElementImpl::parseHTMLAttribute):
          (HTMLFrameSetElementImpl::parseHTMLAttribute):
          (HTMLIFrameElementImpl::mapToEntry):
          (HTMLIFrameElementImpl::parseHTMLAttribute):
          * khtml/html/html_baseimpl.h:
          * khtml/html/html_blockimpl.cpp:
          (HTMLDivElementImpl::mapToEntry):
          (HTMLDivElementImpl::parseHTMLAttribute):
          (HTMLHRElementImpl::mapToEntry):
          (HTMLHRElementImpl::parseHTMLAttribute):
          (HTMLParagraphElementImpl::mapToEntry):
          (HTMLParagraphElementImpl::parseHTMLAttribute):
          (HTMLMarqueeElementImpl::mapToEntry):
          (HTMLMarqueeElementImpl::parseHTMLAttribute):
          (HTMLLayerElementImpl::HTMLLayerElementImpl):
          (HTMLLayerElementImpl::id):
          * khtml/html/html_blockimpl.h:
          * khtml/html/html_documentimpl.cpp:
          (HTMLDocumentImpl::determineParseMode):
          * khtml/html/html_documentimpl.h:
          * khtml/html/html_elementimpl.cpp:
          (CSSMappedAttributeDeclarationImpl::~CSSMappedAttributeDeclarationImpl):
          (HTMLElementImpl::getMappedAttributeDecl):
          (HTMLElementImpl::setMappedAttributeDecl):
          (HTMLElementImpl::removeMappedAttributeDecl):
          (HTMLAttributeImpl::~HTMLAttributeImpl):
          (HTMLAttributeImpl::clone):
          (m_mappedAttributeCount):
          (HTMLNamedAttrMapImpl::clearAttributes):
          (HTMLElementImpl::HTMLElementImpl):
          (HTMLElementImpl::~HTMLElementImpl):
          (HTMLElementImpl::createAttribute):
          (HTMLElementImpl::createInlineStyleDecl):
          (HTMLElementImpl::attributeChanged):
          (HTMLElementImpl::mapToEntry):
          (HTMLElementImpl::parseHTMLAttribute):
          (HTMLElementImpl::additionalAttributeStyleDecl):
          (isHexDigit):
          (toHex):
          (HTMLElementImpl::addCSSProperty):
          (HTMLElementImpl::addCSSStringProperty):
          (HTMLElementImpl::addCSSImageProperty):
          (HTMLElementImpl::addCSSLength):
          (HTMLElementImpl::addHTMLColor):
          (HTMLElementImpl::createMappedDecl):
          (HTMLElementImpl::addHTMLAlignment):
          (HTMLElementImpl::setContentEditable):
          * khtml/html/html_elementimpl.h:
          (DOM::):
          (DOM::CSSMappedAttributeDeclarationImpl::CSSMappedAttributeDeclarationImpl):
          (DOM::CSSMappedAttributeDeclarationImpl::setMappedState):
          (DOM::HTMLAttributeImpl::HTMLAttributeImpl):
          (DOM::HTMLAttributeImpl::decl):
          (DOM::HTMLAttributeImpl::setDecl):
          (DOM::HTMLNamedAttrMapImpl::hasMappedAttributes):
          (DOM::HTMLNamedAttrMapImpl::declRemoved):
          (DOM::HTMLNamedAttrMapImpl::declAdded):
          (DOM::HTMLNamedAttrMapImpl::attributeItem):
          (DOM::HTMLElementImpl::hasMappedAttributes):
          (DOM::HTMLElementImpl::htmlAttributes):
          (DOM::HTMLElementImpl::inlineStyleDecl):
          * khtml/html/html_formimpl.cpp:
          (HTMLFormElementImpl::parseHTMLAttribute):
          (HTMLGenericFormElementImpl::parseHTMLAttribute):
          (HTMLButtonElementImpl::parseHTMLAttribute):
          (HTMLInputElementImpl::setType):
          (HTMLInputElementImpl::mapToEntry):
          (HTMLInputElementImpl::parseHTMLAttribute):
          (HTMLInputElementImpl::attach):
          (HTMLLabelElementImpl::parseHTMLAttribute):
          (HTMLSelectElementImpl::parseHTMLAttribute):
          (HTMLKeygenElementImpl::parseHTMLAttribute):
          (HTMLOptGroupElementImpl::parseHTMLAttribute):
          (HTMLOptionElementImpl::parseHTMLAttribute):
          (HTMLTextAreaElementImpl::parseHTMLAttribute):
          (HTMLIsIndexElementImpl::parseHTMLAttribute):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_headimpl.cpp:
          (HTMLBaseElementImpl::parseHTMLAttribute):
          (HTMLLinkElementImpl::parseHTMLAttribute):
          (HTMLMetaElementImpl::parseHTMLAttribute):
          (HTMLStyleElementImpl::parseHTMLAttribute):
          * khtml/html/html_headimpl.h:
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageElementImpl::mapToEntry):
          (HTMLImageElementImpl::parseHTMLAttribute):
          (HTMLMapElementImpl::parseHTMLAttribute):
          (HTMLAreaElementImpl::parseHTMLAttribute):
          * khtml/html/html_imageimpl.h:
          * khtml/html/html_inlineimpl.cpp:
          (HTMLAnchorElementImpl::parseHTMLAttribute):
          (HTMLBRElementImpl::mapToEntry):
          (HTMLBRElementImpl::parseHTMLAttribute):
          (HTMLFontElementImpl::mapToEntry):
          (HTMLFontElementImpl::parseHTMLAttribute):
          * khtml/html/html_inlineimpl.h:
          * khtml/html/html_listimpl.cpp:
          (HTMLUListElementImpl::mapToEntry):
          (HTMLUListElementImpl::parseHTMLAttribute):
          (HTMLOListElementImpl::mapToEntry):
          (HTMLOListElementImpl::parseHTMLAttribute):
          (HTMLLIElementImpl::mapToEntry):
          (HTMLLIElementImpl::parseHTMLAttribute):
          * khtml/html/html_listimpl.h:
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::mapToEntry):
          (HTMLAppletElementImpl::parseHTMLAttribute):
          (HTMLEmbedElementImpl::HTMLEmbedElementImpl):
          (HTMLEmbedElementImpl::mapToEntry):
          (HTMLEmbedElementImpl::parseHTMLAttribute):
          (HTMLEmbedElementImpl::attach):
          (HTMLObjectElementImpl::mapToEntry):
          (HTMLObjectElementImpl::parseHTMLAttribute):
          (HTMLParamElementImpl::parseHTMLAttribute):
          * khtml/html/html_objectimpl.h:
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableElementImpl::HTMLTableElementImpl):
          (HTMLTableElementImpl::~HTMLTableElementImpl):
          (HTMLTableElementImpl::mapToEntry):
          (HTMLTableElementImpl::parseHTMLAttribute):
          (HTMLTableElementImpl::additionalAttributeStyleDecl):
          (HTMLTableElementImpl::getSharedCellDecl):
          (HTMLTableElementImpl::attach):
          (HTMLTablePartElementImpl::mapToEntry):
          (HTMLTablePartElementImpl::parseHTMLAttribute):
          (HTMLTableCellElementImpl::mapToEntry):
          (HTMLTableCellElementImpl::parseHTMLAttribute):
          (HTMLTableCellElementImpl::additionalAttributeStyleDecl):
          (HTMLTableCellElementImpl::attach):
          (HTMLTableColElementImpl::mapToEntry):
          (HTMLTableColElementImpl::parseHTMLAttribute):
          (HTMLTableCaptionElementImpl::mapToEntry):
          (HTMLTableCaptionElementImpl::parseHTMLAttribute):
          * khtml/html/html_tableimpl.h:
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::insertNode):
          (KHTMLParser::getElement):
          * khtml/html/htmltokenizer.h:
          (khtml::Token::addAttribute):
          * khtml/misc/htmlattrs.c:
          (hash_attr):
          (findAttr):
          * khtml/misc/htmlattrs.h:
          * khtml/misc/htmlattrs.in:
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::setStyle):
          (khtml::RenderBlock::updateFirstLetter):
          * khtml/rendering/render_container.cpp:
          (RenderContainer::addChild):
          (RenderContainer::updatePseudoChild):
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget):
          * khtml/rendering/render_inline.cpp:
          (RenderInline::addChildToFlow):
          * khtml/rendering/render_list.cpp:
          (RenderListItem::setStyle):
          * khtml/rendering/render_object.cpp:
          (RenderObject::~RenderObject):
          (RenderObject::createAnonymousBlock):
          (RenderObject::setStyle):
          (RenderObject::remove):
          * khtml/rendering/render_style.cpp:
          (throw):
          (RenderStyle::operator delete):
          (RenderStyle::arenaDelete):
          (RenderStyle::RenderStyle):
          (RenderStyle::~RenderStyle):
          (RenderStyle::addPseudoStyle):
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::ref):
          (khtml::RenderStyle::deref):
          (khtml::RenderStyle::hasOneRef):
          (khtml::RenderStyle::refCount):
          * khtml/rendering/render_table.cpp:
          (RenderTable::addChild):
          (RenderTableSection::addChild):
          (RenderTableRow::addChild):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::createAttribute):
          (DocumentImpl::recalcStyle):
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_elementimpl.cpp:
          (AttributeImpl::clone):
          (AttrImpl::setValue):
          (AttrImpl::cloneNode):
          (ElementImpl::setAttribute):
          (ElementImpl::createAttribute):
          (ElementImpl::setAttributeMap):
          (ElementImpl::recalcStyle):
          (NamedAttrMapImpl::~NamedAttrMapImpl):
          (NamedAttrMapImpl::operator=):
          (NamedAttrMapImpl::addAttribute):
          (NamedAttrMapImpl::removeAttribute):
          * khtml/xml/dom_elementimpl.h:
          (DOM::AttributeImpl::~AttributeImpl):
          (DOM::ElementImpl::attributeChanged):
          (DOM::NamedAttrMapImpl::length):
          * khtml/xml/dom_nodeimpl.cpp:
  
  2004-02-09  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          * khtml/html/html_formimpl.cpp: (HTMLGenericFormElementImpl::defaultEventHandler):
          Removed bogus extra setActive/focus code. Dave says this is no longer needed for
          the active state handling, and the focus call caused a problem, although I can't
          find the bug report at the moment.
  
  2004-02-08  Darin Adler  <darin at apple.com>
  
          Reviewed by Don.
  
          - fixed an assertion failure when putting up Java applets caused by my last change
  
          * kwq/KWQKJavaAppletWidget.mm: (KJavaAppletWidget::KJavaAppletWidget):
          Don't try to get x() and y(). They are always zero because the widget is just being
          created at this point and has not yet been positioned; trying to get them
          leads to an assertion because there is no NSView until we call setView().
          Before my change, there was a KWQView object at 0,0 that was released when we called
          setView, which is why the problem is new.
  
  2004-02-08  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed things seen in the profile, for a total speedup of 4% on cvs-base
          - fixed some layout regressions from my last speedup due to text measurement inconsistencies
  
          * WebCorePrefix.h: Add a workaround for a bug in our system headers that prevents the <ctype.h>
          macros from working right in C+code that uses the <cctype> header.
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::checkPseudoState): Use prepend instead of operator here. Will probably be obviated if
          someone fixes the checkPseudoState problem.
          (khtml::colorForCSSValue): Get rid of all the code that uses QPalette; it wasn't doing any good
          in Safari. Instead, hardcode the UI colors.
  
          * kwq/KWQChar.mm:
          (QChar::isDigitNonASCII): Non-inline part. The ASCII case is handled with an inline now.
          (QChar::isLetterNonASCII): Ditto.
          (QChar::isNumberNonASCII): Ditto.
          (QChar::isLetterOrNumberNonASCII): Ditto.
          (QChar::lowerNonASCII): Ditto.
          (QChar::upperNonASCII): Ditto.
          (QChar::digitValueNonASCII): Ditto.
  
          * kwq/KWQColorGroup.mm: Put all roles base inside #if, since we don't need them, and copying
          the color group and palette was making things slow.
  
          * kwq/KWQComboBox.h: Remove KWQComboBoxAdapter, not needed any more.
          * kwq/KWQComboBox.mm:
          (QComboBox::QComboBox): Remove KWQComboBoxAdapter, not needed any more.
          (QComboBox::~QComboBox): Ditto.
          (QComboBox::sizeHint): Turn off rounding; we use that in web text, but not in widgets.
          (-[KWQPopUpButton action:]): Moved the action method here.
  
          * kwq/KWQLineEdit.mm: (QLineEdit::sizeForCharacterWidth): Turn off rounding. We use it in web
          page text, but not in widgets.
          * kwq/KWQListBox.mm:
          (QListBox::sizeForNumberOfLines): Ditto.
          (-[KWQTableView drawRow:clipRect:]): Ditto.
  
          * kwq/KWQKURL.mm:
          (KURL::KURL): Added code to put the "file:" in front of a path without making a QString.
          (hasSlashDotOrDotDot): Added. Faster than two calls to strstr.
          (matchLetter): Added. Faster than tolower calls on each letter.
          (KURL::parse): Changed to use matchLetter and hasSlashDotOrDotDot.
  
          * kwq/KWQPalette.h: Remove all roles except base, and all groups except active, since we don't
          need them, and copying the color group and palette was making things slow.
          * kwq/KWQPalette.mm: Ditto.
  
          * kwq/KWQRegExp.mm: (QRegExp::match): Fixed logic so we don't create and destroy a QCString
          in the fast case. Also avoid UTF-8/UTF-16 offset mapping.
  
          * kwq/KWQString.h:
          (QChar::isDigit): Add inline section for ASCII.
          (QChar::isLetter): Ditto.
          (QChar::isNumber): Ditto.
          (QChar::isLetterOrNumber): Ditto.
          (QChar::digitValue): Ditto.
          (QChar::lower): Ditto.
          (QChar::upper): Ditto.
          (QString::utf8): Add a new version that returns the length; used by QRegExp.
          (QString::operator+=): Call a new append function.
          * kwq/KWQString.mm:
          (ucstrcmp): Made this function inline.
          (equal): Added, replacing various strcmp functions.
          (equalCaseInsensitive): Ditto.
          (ok_in_base): Changed to use <ctype.h> isdigit and isalpha instead of QChar functions.
          (QString::detachInternal): Moved up so it will be inlined.
          (QString::~QString): Streamlined a little.
          (QString::utf8): Changed to return the length.
          (QString::find): Use unicode() instead of cell() in various places. Also refined a faster
          version of the one that takes a char *.
          (QString::contains): Changed all of the overloads to have structure that's more similar,
          and made them slightly faster too.
          (QString::isAllLatin1): Added.
          (QString::copyLatin1): Added. Lets you get the string as a char * buffer without changing
          the string itself into that format.
          (QString::toLong): Changed to use <ctype.h> isdigit instead of QChar function.
          (QString::toULong): Ditto.
          (QString::setUnicode): Call the new detachAndDiscardCharacters; not implemented yet.
          (QString::setLatin1): Call the new detachAndDiscardCharacters; not implemented yet.
          (QString::sprintf): Call the new detachAndDiscardCharacters; not implemented yet.
          (QString::insert): Remove one memmove call for the case that appends at the end.
          (QString::detach): Change code to use the internal data if we can; saves at destructor time.
          (QString::detachAndDiscardCharacters): Added. Placeholder for now that just calls detach().
          (QString::setLength): Optimize the setLength(0) case.
          (QString::fill): Call the new detachAndDiscardCharacters; not implemented yet.
          (QString::append): Renamed from operator+=, which now simply calls append().
          (QString::reserve): Added. Useful when building up a string, like in QTextCodec.
  
          * WebCore-tests.exp: Added new function names for QChar.
          * WebCore-combined.exp: Updated.
  
          * kwq/KWQTextCodec.mm:
          (KWQTextDecoder::convertLatin1): Added. Since this is the most common encoding, and very
          easy to decode (built into QString, in fact), best to do it as a special case, not with TEC.
          (KWQTextDecoder::convertUTF16): Added a reserve() call for better performance and made the
          stack buffer larger.
          (KWQTextDecoder::convertUsingTEC): Added a reserve() call for better performance and made the
          stack buffer larger.
          (KWQTextDecoder::convert): Added a switch statement and convertLatin1 case.
  
          * kwq/KWQView.h: Removed the KWQView class.
          * kwq/KWQView.mm: Removed.
          * WebCore.pbproj/project.pbxproj: Removed KWQView.mm.
  
          * kwq/KWQWidget.h: Changed name of QWidgetPrivate to KWQWidgetPrivate.
          * kwq/KWQWidget.mm:
          (QWidget::QWidget): Got rid of code that makes a KWQView when no view is passed in. We were
          creating and destroying extra views because of this.
          (QWidget::setFrameGeometry): Only call getOuterView() once, not three times. Also, don't do
          any work at all if the frame is already correct.
          * khtml/khtmlview.cpp: (KHTMLView::init): Removed a call that will hit an assertion due to the
          way a new KHTMLView does not yet have an NSView.
  
          * kwq/WebCoreTextRenderer.h: Broke applyRounding into applyRunRounding and applyWordRounding.
          * kwq/WebCoreTextRendererFactory.m: (WebCoreInitializeEmptyTextStyle): Initialize both rounding
          flags on.
  
  2004-02-07  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - switched KWQComboBox, KWQListBox, and KWQLineEdit to use WebKit text measuring/rendering instead of AppKit
          - fixed width calculation for KWQListBox that made them too wide (the computation used the width of standard scroll
            bars rather than the small scroll bars they actually use)
  
          Speeds up cvs-base by 5%!
  
          * khtml/rendering/render_form.cpp: (RenderSelect::updateFromElement):
          Get rid of beginBatchInsert, and rename endBatchInsert. Use our own "append" calls instead of "insert" calls.
  
          * kwq/KWQComboBox.h: Replace insertItem with appendItem. Add a new populateMenu call (for internal use,
          but public). Change width member to be int instead of float. Remove updateCurrentItem(), and add a
          menuPopulated boolean and a QStringList containing the items.
          * kwq/KWQComboBox.mm:
          (QComboBox::QComboBox): Initialize currentItem directly instead of calling updateCurrentItem. Also initialize
          menuPopulated to true.
          (QComboBox::appendItem): Replaces insertItem. Put items in a string list. Don't keep the menu populated unless
          the button is highlighted (which indicates the menu is showing).
          (QComboBox::sizeHint): Compute widths using WebCoreTextRenderer, and the string list.
          (QComboBox::baselinePosition): Change ceil to ceilf, since we are dealing with floats, not doubles.
          (QComboBox::clear): Clear the items list. Also reset the currentItem field directly instead of using updateCurrentItem().
          (QComboBox::setCurrentItem): If the menu is not populated, then keep a single item with the appropriate title.
          If the menu is populated, then select the appropriate item.
          (QComboBox::itemSelected): Moved the logic from updateCurrentItem in here for simplicity.
          (QComboBox::focusPolicy): Tweaked the comment.
          (QComboBox::populateMenu): Added.
          (-[KWQPopUpButtonCell setHighlighted:]): Populate the menu when the cell is highlighted.
  
          * kwq/KWQLineEdit.mm:
          (QLineEdit::sizeForCharacterWidth): Put an empty string in the cell, and add in a separately-computed width
          for the string.
          (QLineEdit::baselinePosition): Use ceilf instead of ceil since we are doing floats, not doubles.
  
          * kwq/KWQListBox.h: Changed the items list from an NSArray to a QValueList.
          (KWQListBoxItem::KWQListBoxItem): Added a new class to keep the string and the "is label" boolean.
          (QListBox::count): Now inline.
          (QListBox::appendItem): Replaced insertItem with this.
          (QListBox::appendGroupLabel): Replaced insertGroupLabel with this.
          (QListBox::itemAtIndex): Replaced itemIsGroupLabel with this.
          * kwq/KWQListBox.mm:
          (itemTextRenderer): Replaced itemFont with this, which returns a WebCoreTextRenderer.
          (groupLabelTextRenderer): Ditto.
          (QListBox::QListBox): Removed the _insertingItems boolean, and handling of the _items list.
          (QListBox::~QListBox): Ditto.
          (QListBox::clear): Now clears the items list. Doesn't both with reloadData, since doneAppendingItems
          handles that.
          (QListBox::appendItem): Replaced insertItem. Just adds to the list. No need to construct attributed
          strings any more.
          (QListBox::doneAppendingItems): Replaced endBatchInsert. No need to clear the obsolete _insertingItems
          boolean.
          (QListBox::setEnabled): Added a call to reloadData.
          (QListBox::sizeForNumberOfLines): Compute widths using WebCoreTextRenderer, and the string list.
          Also adjust for the difference in widths between small and default scrollers and add in margins.
          (QListBox::setWritingDirection): Remove code that updates the direction in attributed strings.
          (-[KWQTableView initWithListBox:]): Compute height from font, not cell.
          (-[KWQTableView numberOfRowsInTableView:]): Get count from QListBox instead of items array.
          (-[KWQTableView tableView:objectValueForTableColumn:row:]): Return nil becase we don't want to
          create an NSString for each cell. We'll draw the appropriate thing.
          (-[KWQTableView tableView:shouldSelectRow:]): Update for change to QComboBox function.
          (-[KWQTableView drawRow:clipRect:]): Added. Draws the text in the cell, with the appropriate color
          and position, using WebCoreTextRenderer for speed.
          (-[KWQTableView _accessibilityTableCell:tableColumn:]): Set up cell with a string in this case,
          because we need the string to be seen by the accessibilty framework.
  
          * kwq/WebCoreTextRenderer.h: Fixed typo in comment.
          * kwq/WebCoreTextRendererFactory.m: Removed bogus inline specifiers.
  
          * khtml/rendering/render_layer.cpp: Fixed a couple of cases of RenderLayer::RenderLayer that just
          should have said RenderLayer.
  
  2004-02-07  Darin Adler  <darin at apple.com>
  
          * WebCore.pbproj/project.pbxproj: Get rid of the DEPLOYMENT_LOCATION and DEPLOYMENT_POSTPROCESSING
          flags that were in the Deployment build style. These were causing the need to chmod all the time
          after building WebCore successfully, and were doing us no good.
  
  2004-02-07  Darin Adler  <darin at apple.com>
  
          * kwq/can-convert.mm: Added test program to see which conversions are actually supported by TEC.
  
  2004-02-06  David Hyatt  <hyatt at apple.com>
  
          Implemented a TokenizerString that can walk a list of substrings, so that data can be enqueued
          in the list without having to do a copy.  Speeds up voodooextreme by 20% or so, giving the overall
          page-load tests get a 2% boost.
          
          Reviewed by darin
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/html/html_documentimpl.h:
          * khtml/html/htmltokenizer.cpp:
          (khtml::HTMLTokenizer::begin):
          (khtml::HTMLTokenizer::processListing):
          (khtml::HTMLTokenizer::parseSpecial):
          (khtml::HTMLTokenizer::scriptHandler):
          (khtml::HTMLTokenizer::parseComment):
          (khtml::HTMLTokenizer::parseServer):
          (khtml::HTMLTokenizer::parseProcessingInstruction):
          (khtml::HTMLTokenizer::parseText):
          (khtml::HTMLTokenizer::parseEntity):
          (khtml::HTMLTokenizer::parseTag):
          (khtml::HTMLTokenizer::write):
          (khtml::HTMLTokenizer::notifyFinished):
          (khtml::HTMLTokenizer::setSrc):
          (khtml::HTMLTokenizer::setOnHold):
          * khtml/html/htmltokenizer.h:
          (khtml::Token::Token):
          (khtml::Token::~Token):
          (khtml::Token::addAttribute):
          (khtml::Token::reset):
          * khtml/khtml_part.cpp:
          (KHTMLPart::handleMousePressEventDoubleClick):
          * khtml/khtml_part.h:
          * khtml/misc/stringit.cpp: Added.
          (khtml::TokenizerString::length):
          (khtml::TokenizerString::clear):
          (khtml::TokenizerString::append):
          (khtml::TokenizerString::prepend):
          (khtml::TokenizerString::advanceSubstring):
          (khtml::TokenizerString::toString):
          * khtml/misc/stringit.h:
          (khtml::TokenizerSubstring::TokenizerSubstring):
          (khtml::TokenizerSubstring::clear):
          (khtml::TokenizerSubstring::appendTo):
          (khtml::TokenizerString::TokenizerString):
          (khtml::TokenizerString::push):
          (khtml::TokenizerString::isEmpty):
          (khtml::TokenizerString::advance):
          (khtml::TokenizerString::escaped):
          (khtml::TokenizerString::lineCount):
          (khtml::TokenizerString::resetLineCount):
          (khtml::TokenizerString::operator++):
          (khtml::TokenizerString::operator*):
          (khtml::TokenizerString::operator->):
          (khtml::TokenizerString::current):
          * khtml/xbl/xbl_docimpl.cpp:
          * khtml/xbl/xbl_docimpl.h:
          (XBL::):
          * khtml/xbl/xbl_tokenizer.h:
          (XBL::):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::tokenizer):
          * khtml/xml/xml_tokenizer.cpp:
          (khtml::XMLTokenizer::write):
          * khtml/xml/xml_tokenizer.h:
          * kwq/KWQSignalStubs.mm:
          * kwq/KWQValueList.h:
          (QValueList::insert):
          (QValueList::fromLast):
          * kwq/KWQValueListImpl.h:
          * kwq/KWQValueListImpl.mm:
          (KWQValueListImpl::clear):
          (KWQValueListImpl::insert):
          (KWQValueListImpl::fromLast):
  
  === Safari-127 ===
  
  2004-02-06  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Chris
  
  	Steps no longer return int error codes. Steps are operations
  	that should succeed. (When was the last time that typing in
  	a text editor failed for reasons which could not have been
  	figured out ahead of time...like file permissions?).
  	If this does not work for the future, perhaps we can change 
  	some or all of the many asserts in the code to throw C+
  	exceptions instead, which can be caught and handled at a
  	suitable level.
  
  	I also made some nice convenience functions to create and apply
  	EditStep objects, and moved the command code to use the new
  	functions.
  
          * khtml/editing/htmlediting.cpp:
          (EditStep::EditStep):
          (EditStep::~EditStep):
          (EditStep::reapply):
          (EditStep::beginApply):
          (EditStep::endApply):
          (EditStep::beginUnapply):
          (EditStep::endUnapply):
          (EditStep::beginReapply):
          (EditStep::endReapply):
          (CompositeEditStep::unapply):
          (CompositeEditStep::reapply):
          (CompositeEditStep::applyStep):
          (CompositeEditStep::insertNodeBefore):
          (CompositeEditStep::insertNodeAfter):
          (CompositeEditStep::appendNode):
          (CompositeEditStep::removeNode):
          (CompositeEditStep::splitTextNode):
          (CompositeEditStep::joinTextNodes):
          (CompositeEditStep::insertText):
          (CompositeEditStep::deleteText):
          (CompositeEditStep::moveSelectionTo):
          (CompositeEditStep::deleteSelection):
          (InsertNodeBeforeStep::InsertNodeBeforeStep):
          (InsertNodeBeforeStep::apply):
          (InsertNodeBeforeStep::unapply):
          (AppendNodeStep::AppendNodeStep):
          (AppendNodeStep::apply):
          (AppendNodeStep::unapply):
          (RemoveNodeStep::RemoveNodeStep):
          (RemoveNodeStep::apply):
          (RemoveNodeStep::unapply):
          (ModifyTextNodeStep::ModifyTextNodeStep):
          (ModifyTextNodeStep::splitTextNode):
          (ModifyTextNodeStep::joinTextNodes):
          (SplitTextNodeStep::apply):
          (SplitTextNodeStep::unapply):
          (JoinTextNodesStep::apply):
          (JoinTextNodesStep::unapply):
          (InsertTextStep::InsertTextStep):
          (InsertTextStep::apply):
          (InsertTextStep::unapply):
          (DeleteTextStep::DeleteTextStep):
          (DeleteTextStep::apply):
          (DeleteTextStep::unapply):
          (MoveSelectionToStep::MoveSelectionToStep):
          (MoveSelectionToStep::apply):
          (MoveSelectionToStep::unapply):
          (DeleteSelectionStep::apply):
          (EditCommand::EditCommand):
          (EditCommand::~EditCommand):
          (EditCommand::currentSelection):
          (InputTextCommand::apply):
          (DeleteTextCommand::apply):
          * khtml/editing/htmlediting.h:
          (khtml::MoveSelectionToStep::~MoveSelectionToStep):
          (khtml::EditCommand::cookie):
          * khtml/khtml_part.cpp:
          (KHTMLPart::applyCommand):
          (KHTMLPart::undoRedoEditing):
          (KHTMLPart::undoEditing):
          (KHTMLPart::redoEditing):
          * khtml/khtml_part.h:
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::defaultEventHandler):
  
  2004-02-05  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
          
          This patch includes two major pieces of work.
          
          1. The KHTMLSelection object has been reworked to be a value object.
          Part-related state has been moved out to KHTMLPart. This change makes
          it much easier to program with these objects, since they can now be
          treating unambigously like built-in types. As part of this work, I
          did a pass over the API and improved some function names. A related
          part of work was to clean up the relationship between KHTMLSelection, 
          KHTMLPart and DOMDocumentImpl, and cleared up how to change the selection
          when that is necessary. (There is now a small set of functions on KHTMLPart). 
          
          2. Implemented undo/redo, and hooked into the Cocoa undo architecture. The
          notion of EditCommands has been enhanced by the addition of EditSteps, which
          are primitive operations out of which edit commands are built. Most of the
          existing operations have been updated to use this new design. The last couple
          will be updated soon, so that all supported editing operations will be undoable.
  
          * khtml/editing/htmlediting.cpp:
          * khtml/editing/htmlediting.h:
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::isFocusable): Prevents children of content editable parents
          from receiving focus.
          * khtml/khtml_part.cpp: Modified to work with new KHTMLSelection class design.
          Also added some new code to work with new edit command architecture. 
          * khtml/khtml_part.h:
          * khtml/khtml_selection.cpp: Reworked as a value class. Too much state was
          being stored in this object for it to be convenient to use as a value. That
          has been fixed.
          * khtml/khtml_selection.h:
          * khtml/khtmlpart_p.h:
          (KHTMLPartPrivate::KHTMLPartPrivate):
          (KHTMLPartPrivate::~KHTMLPartPrivate):
          * khtml/khtmlview.cpp: Modified to work with new KHTMLSelection class design.
          * khtml/rendering/render_block.cpp: Modified to work with new KHTMLSelection class design.
          (khtml::RenderBlock::paintObject):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::updateSelection):
          (DocumentImpl::deleteSelection):
          (DocumentImpl::pasteHTMLString):
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_elementimpl.cpp: 
          (ElementImpl::defaultEventHandler): Modified to work with new edit command architecture.
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::registerCommandForUndo): Added hook to Cocoa undo/redo architecture.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge isSelectionEditable]): Modified to work with new edit command architecture.
          (-[WebCoreBridge moveCaretToPoint:]): Ditto
          (-[WebCoreBridge haveSelection]): Ditto
          (-[WebCoreBridge selectedHTML]): Ditto
          (-[WebCoreBridge setSelectionFrom:startOffset:to:endOffset:]): Ditto
          (-[WebCoreBridge reconstructedSource]): Ditto
          (-[WebCoreBridge undoRedoEditing:]): Added hook to Cocoa undo/redo architecture.
  
  2004-02-04  David Hyatt  <hyatt at apple.com>
  
  	Improve rule matching in the style system.  Filter out most rules up front, so that only a small
  	number of rules need to be walked for any given element.  Yields a ~4-5% improvement on the PLT.
  	
          Reviewed by kocienda
  
          * khtml/css/css_base.cpp:
          (StyleBaseImpl::setParsedValue):
          (CSSSelector::specificity):
          (CSSSelector::extractPseudoType):
          (CSSSelector::operator == ):
          * khtml/css/css_base.h:
          (DOM::CSSSelector::CSSSelector):
          (DOM::CSSSelector::~CSSSelector):
          (DOM::CSSSelector::append):
          (DOM::CSSSelector::next):
          (DOM::CSSSelector::):
          (DOM::StyleBaseImpl::StyleBaseImpl):
          * khtml/css/css_ruleimpl.cpp:
          (CSSStyleRuleImpl::selectorText):
          (CSSRuleListImpl::insertRule):
          * khtml/css/css_ruleimpl.h:
          (DOM::CSSStyleRuleImpl::setSelector):
          (DOM::CSSStyleRuleImpl::selector):
          * khtml/css/css_stylesheetimpl.cpp:
          * khtml/css/css_stylesheetimpl.h:
          * khtml/css/css_valueimpl.cpp:
          (CSSStyleDeclarationImpl::getPropertyCSSValue):
          (CSSStyleDeclarationImpl::removeProperty):
          (CSSStyleDeclarationImpl::setProperty):
          (CSSStyleDeclarationImpl::setStringProperty):
          (CSSStyleDeclarationImpl::setImageProperty):
          (CSSStyleDeclarationImpl::setLengthProperty):
          (CSSStyleDeclarationImpl::cssText):
          (CSSStyleDeclarationImpl::setCssText):
          * khtml/css/css_valueimpl.h:
          (DOM::CSSStyleDeclarationImpl::node):
          (DOM::CSSProperty::CSSProperty):
          (DOM::CSSProperty::id):
          (DOM::CSSProperty::isImportant):
          * khtml/css/cssparser.cpp:
          (CSSParser::CSSParser):
          (ParseString::lower):
          (CSSParser::parseValue):
          (CSSParser::parseDeclaration):
          (CSSParser::addProperty):
          (CSSParser::parseShadow):
          * khtml/css/cssparser.h:
          * khtml/css/cssstyleselector.cpp:
          (khtml::):
          (khtml::CSSStyleSelector::CSSStyleSelector):
          (khtml::CSSStyleSelector::init):
          (khtml::CSSStyleSelector::~CSSStyleSelector):
          (khtml::CSSStyleSelector::loadDefaultStyle):
          (khtml::CSSStyleSelector::addMatchedRule):
          (khtml::CSSStyleSelector::addMatchedDeclaration):
          (khtml::CSSStyleSelector::matchRules):
          (khtml::CSSStyleSelector::matchRulesForList):
          (khtml::operator >):
          (khtml::operator <=):
          (khtml::CSSStyleSelector::sortMatchedRules):
          (khtml::CSSStyleSelector::initForStyleResolve):
          (khtml::CSSStyleSelector::styleForElement):
          (khtml::CSSStyleSelector::pseudoStyleForElement):
          (khtml::checkPseudoState):
          (khtml::CSSStyleSelector::checkSelector):
          (khtml::CSSStyleSelector::checkOneSelector):
          (khtml::CSSRuleSet::CSSRuleSet):
          (khtml::CSSRuleSet::addToRuleSet):
          (khtml::CSSRuleSet::addRule):
          (khtml::CSSRuleSet::addRulesFromSheet):
          (khtml::CSSStyleSelector::applyDeclarations):
          (khtml::CSSStyleSelector::applyProperty):
          (khtml::CSSStyleSelector::smallerFontSize):
          (khtml::CSSStyleSelector::getColorFromPrimitiveValue):
          * khtml/css/cssstyleselector.h:
          (khtml::):
          (khtml::CSSRuleData::m_next):
          (khtml::CSSRuleData::~CSSRuleData):
          (khtml::CSSRuleData::position):
          (khtml::CSSRuleData::rule):
          (khtml::CSSRuleData::selector):
          (khtml::CSSRuleData::next):
          (khtml::CSSRuleDataList::CSSRuleDataList):
          (khtml::CSSRuleDataList::~CSSRuleDataList):
          (khtml::CSSRuleDataList::first):
          (khtml::CSSRuleDataList::last):
          (khtml::CSSRuleDataList::append):
          (khtml::CSSRuleSet::~CSSRuleSet):
          (khtml::CSSRuleSet::getIDRules):
          (khtml::CSSRuleSet::getClassRules):
          (khtml::CSSRuleSet::getTagRules):
          (khtml::CSSRuleSet::getUniversalRules):
          * khtml/css/cssvalues.c:
          (hash_val):
          (findValue):
          * khtml/css/cssvalues.h:
          * khtml/css/cssvalues.in:
          * khtml/css/html4.css:
          * khtml/css/parser.cpp:
          * khtml/css/parser.h:
          * khtml/css/parser.y:
          * khtml/dom/dom_element.cpp:
          (Element::style):
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::HTMLBodyElementImpl):
          (HTMLBodyElementImpl::~HTMLBodyElementImpl):
          (HTMLBodyElementImpl::createLinkDecl):
          (HTMLBodyElementImpl::parseAttribute):
          * khtml/html/html_baseimpl.h:
          * khtml/html/html_elementimpl.cpp:
          (HTMLNamedAttrMapImpl::parseClassAttribute):
          (HTMLElementImpl::HTMLElementImpl):
          (HTMLElementImpl::~HTMLElementImpl):
          (HTMLElementImpl::createInlineStyleDecl):
          (HTMLElementImpl::createMappedAttributeDecl):
          (HTMLElementImpl::parseAttribute):
          (HTMLElementImpl::getClassList):
          (HTMLElementImpl::addCSSProperty):
          (HTMLElementImpl::addCSSStringProperty):
          (HTMLElementImpl::addCSSImageProperty):
          (HTMLElementImpl::addCSSLength):
          (HTMLElementImpl::addHTMLColor):
          (HTMLElementImpl::removeCSSProperty):
          * khtml/html/html_elementimpl.h:
          (DOM::HTMLNamedAttrMapImpl::getClassList):
          (DOM::HTMLElementImpl::inlineStyleDecl):
          (DOM::HTMLElementImpl::attributeStyleDecl):
          (DOM::HTMLElementImpl::getInlineStyleDecl):
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableElementImpl::createSharedCellDecls):
          (HTMLTableCellElementImpl::additionalAttributeStyleDecl):
          * khtml/html/html_tableimpl.h:
          * khtml/xml/dom_atomicstring.cpp:
          (DOM::AtomicString::add):
          (DOM::AtomicString::remove):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::resetLinkColor):
          (DocumentImpl::resetVisitedLinkColor):
          (DocumentImpl::resetActiveLinkColor):
          (DocumentImpl::recalcStyleSelector):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::linkColor):
          (DOM::DocumentImpl::visitedLinkColor):
          (DOM::DocumentImpl::activeLinkColor):
          (DOM::DocumentImpl::setLinkColor):
          (DOM::DocumentImpl::setVisitedLinkColor):
          (DOM::DocumentImpl::setActiveLinkColor):
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::ElementImpl):
          (ElementImpl::~ElementImpl):
          (ElementImpl::getClassList):
          (ElementImpl::getIDAttribute):
          (ElementImpl::cloneNode):
          (XMLElementImpl::cloneNode):
          * khtml/xml/dom_elementimpl.h:
          (DOM::ElementImpl::inlineStyleDecl):
          (DOM::ElementImpl::attributeStyleDecl):
          (DOM::ElementImpl::getInlineStyleDecl):
          (DOM::ElementImpl::additionalAttributeStyleDecl):
          (DOM::NamedAttrMapImpl::id):
          (DOM::NamedAttrMapImpl::setID):
          * khtml/xml/dom_stringimpl.cpp:
          (DOM::DOMStringImpl::DOMStringImpl):
          (DOM::DOMStringImpl::~DOMStringImpl):
          (DOM::DOMStringImpl::append):
          (DOM::DOMStringImpl::insert):
          (DOM::DOMStringImpl::truncate):
          (DOM::DOMStringImpl::remove):
          (DOM::DOMStringImpl::split):
          * khtml/xml/dom_stringimpl.h:
          (DOM::DOMStringImpl::DOMStringImpl):
  
  2004-02-04  David Hyatt  <hyatt at apple.com>
  
  	Fix line-height regression on altavista.
  
          * khtml/rendering/render_br.cpp:
          (RenderBR::RenderBR):
          (RenderBR::position):
          (RenderBR::lineHeight):
          (RenderBR::setStyle):
          * khtml/rendering/render_br.h:
          * khtml/rendering/render_flow.h:
          (khtml::RenderFlow::RenderFlow):
  
  2004-02-04  David Hyatt  <hyatt at apple.com>
  
  	Fix a regression in the line-height of first-lines and inline-blocks.
  	
          Reviewed by darin
  
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::lineHeight):
          * khtml/rendering/render_text.cpp:
          (RenderText::lineHeight):
  
  2004-02-02  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3546924>: REGRESSION: dragging text or images over a WebView is jerky
  
  
          Reviewed by mjs.
  
          * WebCore-combined.exp:
          * WebCore.exp:
          * kwq/WebCoreBridge.h: added the DOM node element key constant (SPI for now)
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge elementAtPoint:]): instead of calling toHTML for every node, put the node on the element so the caller can get the HTML string representation when it needs to.
          * kwq/WebCoreDOMNode.mm:
          (-[WebCoreDOMNode HTMLString]): new
  
  2004-02-02  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - use toInt32 where we really need an int, rather than toInteger,
            because toInteger needs to return an integral number as a double,
            not as an int
  
          * khtml/ecma/kjs_css.cpp:
          (DOMCSSStyleDeclarationProtoFunc::tryCall): Call toInt32 intead of toInteger.
          (DOMStyleSheetListFunc::tryCall): Ditto.
          (KJS::DOMMediaListProtoFunc::tryCall): Ditto.
          (DOMCSSStyleSheetProtoFunc::tryCall): Ditto.
          (DOMCSSRuleListFunc::tryCall): Ditto.
          (DOMCSSRuleFunc::tryCall): Ditto.
          (DOMCSSPrimitiveValueProtoFunc::tryCall): Ditto.
          (DOMCSSValueListFunc::tryCall): Ditto.
          * khtml/ecma/kjs_dom.cpp:
          (DOMCharacterDataProtoFunc::tryCall): Ditto.
          (DOMTextProtoFunc::tryCall): Ditto.
          * khtml/ecma/kjs_events.cpp:
          (DOMUIEventProtoFunc::tryCall): Ditto.
          (DOMMouseEventProtoFunc::tryCall): Ditto.
          (DOMKeyboardEventProtoFunc::tryCall): Ditto.
          (DOMMutationEventProtoFunc::tryCall): Ditto.
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElementFunction::tryCall): Ditto.
          (KJS::HTMLElement::putValue): Ditto.
          (KJS::HTMLSelectCollection::tryPut): Ditto.
          * khtml/ecma/kjs_range.cpp:
          (DOMRangeProtoFunc::tryCall): Ditto.
          * khtml/ecma/kjs_traversal.cpp: (JSNodeFilter::acceptNode): Ditto.
          * khtml/ecma/kjs_window.cpp:
          (WindowFunc::tryCall): Ditto.
          (HistoryFunc::tryCall): Ditto.
  
  2004-02-02  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fix at least some of <rdar://problem/3546393>: 10,000 leaks, many of DOM::AtomicString::add, after one run of cvs-base
  
          * khtml/xml/dom_atomicstring.cpp: (DOM::AtomicString::add): Remove extra allocation of strings.
          This should speed things up a bit as well as fixing one big leak.
  
  2004-02-02  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3546379>: support for editing via drag & drop
  
          Reviewed by kocienda.
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::deleteSelection): fixed a crash I encountered while attempting to delete and empty selection
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge isSelectionEditable]): renamed from isEditable
          (-[WebCoreBridge moveCaretToPoint:]): new
          (-[WebCoreBridge elementAtPoint:]): added support for WebCoreElementHTMLStringKey and WebCoreElementIsEditableKey
  
  2004-01-30  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3522497, <br>s should not get AXObjects created.
  	
          Reviewed by mjs
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityIsIgnored]):
  
  === Safari-126 ===
  
  2004-01-30  David Hyatt  <hyatt at apple.com>
  
  	Fix a regression I introduced in my atomicstring patch.  I meant to say !attr->isNull() in the contentedtiable
  	attribute parsing code.
  	
          Reviewed by cblu
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::parseAttribute):
  
  2004-01-30  David Hyatt  <hyatt at apple.com>
  
  	Make m_lineHeight be cached on RenderFlow instead of RenderText and avoid recomputing it so much when it
  	is not set by CSS (since calls to fontMetrics().lineSpacing() are expensive).
  
  	Yields ~1.5% performance improvement.
  	
          Reviewed by darin
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::setStyle):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::lineHeight):
          * khtml/rendering/render_flow.h:
          * khtml/rendering/render_inline.cpp:
          (RenderInline::setStyle):
          * khtml/rendering/render_object.cpp:
          (RenderObject::verticalPositionHint):
          (RenderObject::lineHeight):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::setStyle):
          (RenderText::checkSelectionPointIgnoringContinuations):
          (RenderText::height):
          (RenderText::lineHeight):
          * khtml/rendering/render_text.h:
  
  2004-01-30  David Hyatt  <hyatt at apple.com>
  
  	Disable XBL.  The loadBindings call was taking 0.1-0.25%.  While I know how to get rid of this overhead,
  	it's easier for now to just disable all of XBL.
  
          * WebCorePrefix.h:
          * khtml/misc/loader.h:
          * khtml/xbl/xbl_binding.cpp:
          * khtml/xbl/xbl_binding_manager.cpp:
          * khtml/xbl/xbl_docimpl.cpp:
          * khtml/xbl/xbl_protobinding.cpp:
          * khtml/xbl/xbl_protohandler.cpp:
          * khtml/xbl/xbl_protoimplementation.cpp:
          * khtml/xbl/xbl_tokenizer.cpp:
  
  2004-01-29  David Hyatt  <hyatt at apple.com>
  
  	Atomize font families (KWQFontFamily) and all attribute values.  Move atomic string into separate files.
  
  	In my testing, this patch yields the same score as Safari-125 in tests and recovers all lost performance
  	(mostly from excess copying of AtomicStrings where DOMStringImpl* used to be returned).
  	
          Reviewed by darin
  
          * ForwardingHeaders/xml/dom_atomicstring.h: Added.
          * WebCore.pbproj/project.pbxproj:
          * khtml/css/css_base.cpp:
          (CSSSelector::print):
          (CSSSelector::extractPseudoType):
          (CSSSelector::selectorText):
          * khtml/css/css_valueimpl.cpp:
          (FontFamilyValueImpl::FontFamilyValueImpl):
          * khtml/css/cssparser.cpp:
          (CSSParser::parseFontFamily):
          * khtml/css/cssparser.h:
          * khtml/css/cssstyleselector.cpp:
          (khtml::checkPseudoState):
          (khtml::CSSStyleSelector::checkOneSelector):
          (khtml::CSSStyleSelector::applyRule):
          * khtml/dom/dom_element.cpp:
          (Element::getAttributeNS):
          * khtml/dom/dom_string.cpp:
          (DOMString::toInt):
          (DOMString::toLengthArray):
          (DOM::operator==):
          * khtml/dom/dom_string.h:
          (DOM::operator==):
          (DOM::operator!=):
          * khtml/ecma/kjs_navigator.cpp:
          (Plugins::get):
          (MimeTypes::get):
          (Plugin::get):
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::parseAttribute):
          (HTMLFrameElementImpl::isURLAllowed):
          (HTMLFrameElementImpl::openURL):
          (HTMLFrameElementImpl::parseAttribute):
          (HTMLFrameElementImpl::attach):
          (HTMLFrameElementImpl::setLocation):
          (HTMLFrameSetElementImpl::parseAttribute):
          (HTMLIFrameElementImpl::attach):
          * khtml/html/html_baseimpl.h:
          * khtml/html/html_blockimpl.cpp:
          (HTMLHRElementImpl::parseAttribute):
          (HTMLHRElementImpl::attach):
          (HTMLMarqueeElementImpl::parseAttribute):
          * khtml/html/html_documentimpl.cpp:
          (HTMLDocumentImpl::documentElement):
          * khtml/html/html_documentimpl.h:
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::parseAttribute):
          (HTMLElementImpl::addCSSLength):
          (HTMLElementImpl::addHTMLAlignment):
          * khtml/html/html_elementimpl.h:
          * khtml/html/html_formimpl.cpp:
          (HTMLGenericFormElementImpl::parseAttribute):
          (HTMLInputElementImpl::parseAttribute):
          (HTMLInputElementImpl::attach):
          (HTMLSelectElementImpl::parseAttribute):
          (HTMLKeygenElementImpl::parseAttribute):
          (HTMLKeygenElementImpl::encoding):
          (HTMLOptionElementImpl::parseAttribute):
          (HTMLTextAreaElementImpl::parseAttribute):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_headimpl.cpp:
          (HTMLLinkElementImpl::parseAttribute):
          (HTMLStyleElementImpl::parseAttribute):
          * khtml/html/html_imageimpl.cpp:
          (HTMLImageElementImpl::parseAttribute):
          (HTMLAreaElementImpl::parseAttribute):
          * khtml/html/html_inlineimpl.cpp:
          (HTMLAnchorElementImpl::parseAttribute):
          * khtml/html/html_listimpl.cpp:
          (HTMLOListElementImpl::parseAttribute):
          (HTMLLIElementImpl::parseAttribute):
          * khtml/html/html_miscimpl.cpp:
          (HTMLCollectionImpl::getNamedItem):
          (HTMLFormCollectionImpl::getNamedFormItem):
          (HTMLFormCollectionImpl::getNamedImgItem):
          * khtml/html/html_objectimpl.cpp:
          (HTMLEmbedElementImpl::parseAttribute):
          (HTMLObjectElementImpl::parseAttribute):
          (HTMLParamElementImpl::HTMLParamElementImpl):
          (HTMLParamElementImpl::~HTMLParamElementImpl):
          (HTMLParamElementImpl::parseAttribute):
          * khtml/html/html_objectimpl.h:
          (DOM::HTMLParamElementImpl::name):
          (DOM::HTMLParamElementImpl::value):
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableElementImpl::parseAttribute):
          (HTMLTablePartElementImpl::parseAttribute):
          (HTMLTableCellElementImpl::parseAttribute):
          (HTMLTableColElementImpl::parseAttribute):
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::insertNode):
          (KHTMLParser::handleIsindex):
          * khtml/html/htmltokenizer.cpp:
          (HTMLTokenizer::parseTag):
          * khtml/html/htmltokenizer.h:
          (khtml::Token::addAttribute):
          * khtml/khtml_part.cpp:
          (KHTMLPart::init):
          * khtml/khtmlview.cpp:
          (KHTMLToolTip::maybeTip):
          * khtml/xml/dom_atomicstring.cpp: Added.
          (DOM::AtomicStringStatisticsExitLogger::~AtomicStringStatisticsExitLogger):
          (DOM::AtomicString::equal):
          (DOM::AtomicString::add):
          (DOM::AtomicString::insert):
          (DOM::AtomicString::remove):
          (DOM::AtomicString::expand):
          (DOM::AtomicString::shrink):
          (DOM::AtomicString::rehash):
          (DOM::AtomicString::init):
          (DOM::operator==):
          (DOM::equalsIgnoreCase):
          * khtml/xml/dom_atomicstring.h: Added.
          (DOM::AtomicString::AtomicString):
          (DOM::AtomicString:::m_string):
          (DOM::AtomicString::operator const DOMString&):
          (DOM::AtomicString::domString):
          (DOM::AtomicString::string):
          (DOM::AtomicString::implementation):
          (DOM::AtomicString::unicode):
          (DOM::AtomicString::length):
          (DOM::AtomicString::ascii):
          (DOM::AtomicString::find):
          (DOM::AtomicString::toInt):
          (DOM::AtomicString::percentage):
          (DOM::AtomicString::toLengthArray):
          (DOM::AtomicString::isNull):
          (DOM::AtomicString::isEmpty):
          (DOM::AtomicString::equal):
          (DOM::operator==):
          (DOM::operator!=):
          * khtml/xml/dom_atomicstringlist.h: Added.
          (DOM::AtomicStringList:::m_next):
          (DOM::AtomicStringList::m_next):
          (DOM::AtomicStringList::~AtomicStringList):
          (DOM::AtomicStringList::next):
          (DOM::AtomicStringList::setNext):
          (DOM::AtomicStringList::string):
          (DOM::AtomicStringList::setString):
          (DOM::AtomicStringList::clone):
          (DOM::AtomicStringList::clear):
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_elementimpl.cpp:
          (AttrImpl::nodeValue):
          (AttrImpl::cloneNode):
          (ElementImpl::getAttribute):
          (ElementImpl::getAttributeNS):
          (ElementImpl::setAttribute):
          (ElementImpl::setAttributeMap):
          (ElementImpl::attach):
          (ElementImpl::detach):
          (ElementImpl::updateId):
          (NamedAttrMapImpl::setNamedItem):
          (NamedAttrMapImpl::removeNamedItem):
          (NamedAttrMapImpl::getAttributeItem):
          (NamedAttrMapImpl::operator=):
          (NamedAttrMapImpl::removeAttribute):
          * khtml/xml/dom_elementimpl.h:
          (DOM::AttributeImpl::AttributeImpl):
          (DOM::AttributeImpl::value):
          (DOM::AttributeImpl::prefix):
          (DOM::AttributeImpl::isNull):
          (DOM::AttributeImpl::isEmpty):
          (DOM::AttributeImpl::setValue):
          (DOM::AttributeImpl::setPrefix):
          (DOM::ElementImpl::getAttribute):
          * khtml/xml/dom_nameimpl.cpp: Removed.
          * khtml/xml/dom_nameimpl.h:
          (DOM::Name::namespaceURI):
          (DOM::Name::localName):
          * khtml/xml/dom_nodeimpl.h:
          * khtml/xml/dom_stringimpl.cpp:
          * kwq/KWQFont.mm:
          (QFont::family):
          * kwq/KWQFontFamily.h:
          (KWQFontFamily::family):
          * kwq/KWQFontFamily.mm:
          (retainDOMStringImpl):
          (releaseDOMStringImpl):
          (KWQFontFamily::getNSFamily):
          (KWQFontFamily::setFamily):
          (KWQFontFamily::operator==):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::fileWrapperForElement):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge elementAtPoint:]):
  
  2004-01-29  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3543619>: copied HTML is strangely formatted, random whitespace and return characters
  
          Reviewed by dave.
  
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::recursive_toHTMLWithRange): remove all code that tries to format the HTML since we can rely on the existing white space to preserve the original formatting
  
  2004-01-28  John Sullivan  <sullivan at apple.com>
  
          Reviewed by Dave.
  
          * khtml/rendering/render_text.cpp:
          (RenderText::paintObject):
          Increment s in the while() clause so it is incremented even
          after a continue statement. This fixes an infinite loop I ran
          into in the printing code path at certain scaled print sizes
          on certain pages.
  
  2004-01-28  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3543041>: when pasting an image, cursor should be after the image, not before
  
          Reviewed by rjw.
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::pasteHTMLString): when the last node of the paste is non-text, use 1 instead of 0 as the start offset of the caret
  
  2004-01-28  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
  	A small collection of fixes and improvements to editing.
  
  	Added a forwarding header for dom_position.h
  	Added some debugging output to KHTMLSelection
  	Added support for left arrow navigation.
  	Greatly improved support for right arrow navigation.
  	Added include guards to dom_position.h. Oops!
  	Removed pruneEmptyNodes() function from htmlediting.cpp. That was crack.
  	Improved the text insert command so that it splits the text node being
  	    operated on only when necessary.
  	Added support for placing the caret in and arrowing into BR elements.
  	Moved precedesLineBreak/followsLineBreak from RenderText to RenderObject.	
  
          * ForwardingHeaders/dom/dom_position.h: Added.
          * khtml/dom/dom_position.h:
          * khtml/editing/htmlediting.cpp:
          (InputTextCommand::apply):
          (DeleteTextCommand::apply):
          * khtml/khtml_selection.cpp:
          (KHTMLSelection::setSelection):
          (KHTMLSelection::alterSelection):
          (KHTMLSelection::update):
          (KHTMLSelection::previousCharacterPosition):
          (KHTMLSelection::nextCharacterPosition):
          (startAndEndLineNodesIncludingNode):
          (KHTMLSelection::debugRenderer):
          (KHTMLSelection::debugPosition):
          * khtml/khtml_selection.h:
          * khtml/rendering/render_br.cpp:
          (RenderBR::RenderBR):
          (RenderBR::position):
          (RenderBR::caretMaxOffset):
          (RenderBR::caretPos):
          * khtml/rendering/render_br.h:
          (khtml::RenderBR::xPos):
          (khtml::RenderBR::yPos):
          (khtml::RenderBR::height):
          * khtml/rendering/render_object.cpp:
          (RenderObject::precedesLineBreak):
          (RenderObject::followsLineBreak):
          (RenderObject::isEditable):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::caretPos):
          (RenderText::position):
          (RenderText::caretMaxOffset):
          * khtml/rendering/render_text.h:
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::defaultEventHandler):
  
  2004-01-28  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3537694, make blocks for parents of inline children be axobjects.
  	
          Reviewed by kocienda
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject role]):
          (-[KWQAccObject accessibilityIsIgnored]):
  
  2004-01-28  David Hyatt  <hyatt at apple.com>
  
  	Make AtomicString a new class that owns DOMStrings, instead of using KJS::Identifier.  One day when we
  	convert DOMString and UString to have the same underlying rep, then these classes could possibly re-merge.
  	For now this provides an easy migration path for all the code that is using DOMStringImpl*.
  
  	Also fixed a bug with float clearing in the style cascade.
  	
          Reviewed by darin
  
          * khtml/css/cssparser.h:
          (DOM::atomicString):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::checkOneSelector):
          (khtml::CSSStyleSelector::applyRule):
          * khtml/dom/dom_string.cpp:
          (DOMString::DOMString):
          * khtml/xml/dom_nameimpl.cpp:
          (DOM::AtomicStringStatisticsExitLogger::~AtomicStringStatisticsExitLogger):
          (DOM::AtomicString::equal):
          (DOM::AtomicString::add):
          (DOM::AtomicString::insert):
          (DOM::AtomicString::remove):
          (DOM::AtomicString::expand):
          (DOM::AtomicString::shrink):
          (DOM::AtomicString::rehash):
          (DOM::AtomicString::null):
          (DOM::AtomicString::init):
          (DOM::operator==):
          (DOM::equalsIgnoreCase):
          * khtml/xml/dom_nameimpl.h:
          (DOM::AtomicString::AtomicString):
          (DOM::AtomicString:::m_string):
          (DOM::AtomicString::string):
          (DOM::AtomicString::qstring):
          (DOM::AtomicString::implementation):
          (DOM::AtomicString::unicode):
          (DOM::AtomicString::length):
          (DOM::AtomicString::ascii):
          (DOM::AtomicString::find):
          (DOM::AtomicString::isNull):
          (DOM::AtomicString::isEmpty):
          (DOM::AtomicString::equal):
          (DOM::operator==):
          (DOM::operator!=):
          * khtml/xml/dom_stringimpl.cpp:
          (DOM::DOMStringImpl::empty):
          (DOM::DOMStringImpl::DOMStringImpl):
          (DOM::DOMStringImpl::~DOMStringImpl):
          (DOM::DOMStringImpl::append):
          (DOM::DOMStringImpl::insert):
          (DOM::DOMStringImpl::truncate):
          (DOM::DOMStringImpl::remove):
          (DOM::DOMStringImpl::split):
          (DOM::DOMStringImpl::substring):
          (DOM::DOMStringImpl::replace):
          (DOM::DOMStringImpl::computeHash):
          * khtml/xml/dom_stringimpl.h:
          (DOM::DOMStringImpl::DOMStringImpl):
          (DOM::DOMStringImpl::hash):
          * khtml/xml/dom_textimpl.cpp:
          (CharacterDataImpl::CharacterDataImpl):
  
  2004-01-27  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed:
  	<rdar://problem/3541812>: Implement Paste menu item
  	<rdar://problem/3541814>: Implement Delete menu item
  	<rdar://problem/3541811>: Implement Cut menu item
  
          Reviewed by dave.
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::deleteSelection): new
          (DocumentImpl::pasteHTMLString): new
          * khtml/xml/dom_docimpl.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge isEditable]): new
          (-[WebCoreBridge pasteHTMLString:]): new
          (-[WebCoreBridge deleteSelection]): new
          (-[WebCoreBridge haveSelection]): new
  
  2004-01-27  David Hyatt  <hyatt at apple.com>
  
  	Add a new AtomicString type (that is really just a KJS::Identifier).  Define a Name class that will eventually
  	be used for element and attribute names.
  
  	Atomize the CSS selector's "value" field, used to hold class names, identifier names, attribute values, and
  	pseudo-element names.
  	
          Reviewed by rjw
  
          * ForwardingHeaders/kjs/identifier.h: Added.
          * WebCore.pbproj/project.pbxproj:
          * khtml/css/css_base.cpp:
          (CSSSelector::print):
          (CSSSelector::specificity):
          (CSSSelector::extractPseudoType):
          (CSSSelector::selectorText):
          * khtml/css/css_base.h:
          (DOM::CSSSelector::):
          * khtml/css/cssparser.cpp:
          (ParseString::lower):
          * khtml/css/cssparser.h:
          (DOM::atomicString):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::checkOneSelector):
          * khtml/css/parser.cpp:
          * khtml/css/parser.y:
          * khtml/html/html_elementimpl.cpp:
          (:NamedAttrMapImpl):
          (HTMLNamedAttrMapImpl::clearAttributes):
          (HTMLNamedAttrMapImpl::isHTMLAttributeMap):
          (HTMLNamedAttrMapImpl::parseClassAttribute):
          (HTMLNamedAttrMapImpl::matchesCSSClass):
          (HTMLElementImpl::parseAttribute):
          (HTMLElementImpl::createAttributeMap):
          (HTMLElementImpl::matchesCSSClass):
          * khtml/html/html_elementimpl.h:
          * khtml/html/html_objectimpl.cpp:
          (HTMLObjectElementImpl::recalcStyle):
          * khtml/html/htmltokenizer.h:
          (khtml::Token::addAttribute):
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::matchesCSSClass):
          (NamedAttrMapImpl::isHTMLAttributeMap):
          (NamedAttrMapImpl::operator=):
          * khtml/xml/dom_elementimpl.h:
          * khtml/xml/dom_nameimpl.cpp: Added.
          (DOM::AtomicStringList::clone):
          (DOM::operator==):
          (DOM::equalsIgnoreCase):
          * khtml/xml/dom_nameimpl.h: Added.
          (DOM::AtomicStringList:::m_next):
          (DOM::AtomicStringList::m_next):
          (DOM::AtomicStringList::~AtomicStringList):
          (DOM::AtomicStringList::next):
          (DOM::AtomicStringList::setNext):
          (DOM::AtomicStringList::string):
          (DOM::AtomicStringList::setString):
          (DOM::AtomicStringList::clear):
          (DOM::Name::Name):
          (DOM::Name::m_localName):
          (DOM::Name::namespaceURI):
          (DOM::Name::localName):
          (DOM::operator==):
          (DOM::operator!=):
          * khtml/xml/dom_nodeimpl.h:
  
  2004-01-27  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed <rdar://problem/3526056>: W3C says that DEL key identifier should be U+00007F, we give ForwardDelete instead
  
          * kwq/KWQEvent.mm: (keyIdentifierForKeyEvent): Correct the key identifiers for the Delete, Insert,
          Menu, Scroll Lock, and Select keys, as well as some obscure F25 and higher keys. Also add some
          explicit constants for the keys defined in NSEvent.h that we map to a key identifier using the
          vendor-area Unicode values (which are probably not appropriate).
  
  2004-01-27  David Hyatt  <hyatt at apple.com>
  
  	Make a change suggested by kocienda to add a remove() method to InlineBoxes.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::detach):
          (RenderBox::position):
          * khtml/rendering/render_line.cpp:
          (InlineBox::remove):
          * khtml/rendering/render_line.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::detach):
          (RenderText::position):
  
  2004-01-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - follow-on to the text-align change I did earlier today
  
          * khtml/css/html4.css: Set input and textarea so they do not inherit text-align
          from their parent by doing "text-align: -khtml-auto". This fixes google.com among others.
  
  2004-01-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3539414>: pop-up windows appear very narrow because of bogus width (carad.com/ebaymotors)
  
          * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Check the "OK" result from toFloat in
          window.open, and omit any parameters that can't be parsed.
  
  2004-01-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3537371>: REGRESSION (100-125): optgroup labels are no longer indented as they were before
  
          * khtml/rendering/render_form.cpp: (RenderSelect::updateFromElement):
          Move code that adds spaces after code that strips whitespace. Also simplify
          the code a bit by using DOMString::string().
  
  2004-01-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed <rdar://problem/3539286>: text with a transparent background color pastes as black on black
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::attributedString): Don't put color in the mutable
          string if it's entirely transparent.
          * kwq/KWQColor.mm: (QColor::getNSColor): Fix bug where we would return nil for RGBA of 0.
  
  2004-01-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed <rdar://problem/3529120>: text-align style property not respected on input fields
  
          * khtml/rendering/render_form.h: Added textAlignment function.
          * khtml/rendering/render_form.cpp:
          (RenderFormElement::textAlignment): Added. Converts style alignment to Qt alignment.
          (RenderLineEdit::setStyle): Call textAlignment intead of using direction from style.
          (RenderTextArea::setStyle): Call textAlignment intead of using direction from style.
  
          * kwq/KWQLineEdit.h: Added KWQNSTextAlignmentForAlignmentFlags function.
          * kwq/KWQLineEdit.mm:
          (QLineEdit::setAlignment): Use KWQNSTextAlignmentForAlignmentFlags instead of code
          that handles only left and right alignment.
          (KWQNSTextAlignmentForAlignmentFlags): Added. Converts Qt alignment to NS alignment.
          * kwq/KWQTextEdit.mm: (QTextEdit::setAlignment): Use KWQNSTextAlignmentForAlignmentFlags
          instead of code that handles only left and right alignment.
  
  2004-01-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed <rdar://problem/3477707>: background image with apostrophe in name missing at http://www.nbc.com
  
          * khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::parseAttribute): Use addCSSImageProperty
          instead of addCSSProperty, obviating the need for the "url()" syntax (and fixing quoting issues).
  
          * khtml/html/html_tableimpl.cpp:
          (HTMLTableElementImpl::parseAttribute): Ditto.
          (HTMLTablePartElementImpl::parseAttribute): Ditto.
  
          * khtml/html/html_elementimpl.h: Added addCSSStringProperty and addCSSImageProperty.
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::addCSSStringProperty): Added. Calls setStringProperty. Not used yet.
          (HTMLElementImpl::addCSSImageProperty): Added. Calls setImageProperty.
  
          * khtml/css/css_valueimpl.h: Added setStringProperty and setImageProperty.
          * khtml/css/css_valueimpl.cpp:
          (CSSStyleDeclarationImpl::setStringProperty): Added. Sets a property without parsing.
          (CSSStyleDeclarationImpl::setImageProperty): Added. Sets a property without parsing.
          You'd think we'd be able to just use setStringProperty, but that's not how the image
          properties work.
  
  2004-01-26  Darin Adler  <darin at apple.com>
  
          * Makefile.am: Switch from pbxbuild to xcodebuild.
  
  2004-01-26  David Hyatt  <hyatt at apple.com>
  
  	Add CSS3 @namespace support.  The whole way namespaces, element, and attribute names are being handled
  	right now is temporary.  This code gives us a baseline of functionality (for regression testing) that we
  	can use when we implement namespaces "the right way."
  	
          Reviewed by darin
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/css/css_base.cpp:
          (CSSSelector::specificity):
          (CSSSelector::selectorText):
          * khtml/css/css_base.h:
          (DOM::CSSNamespace::m_parent):
          (DOM::CSSNamespace::~CSSNamespace):
          (DOM::CSSNamespace::uri):
          (DOM::CSSNamespace::prefix):
          (DOM::CSSNamespace::namespaceForPrefix):
          (DOM::CSSSelector::CSSSelector):
          * khtml/css/css_stylesheetimpl.cpp:
          (CSSStyleSheetImpl::CSSStyleSheetImpl):
          (CSSStyleSheetImpl::addNamespace):
          (CSSStyleSheetImpl::determineNamespace):
          * khtml/css/css_stylesheetimpl.h:
          (DOM::CSSStyleSheetImpl::~CSSStyleSheetImpl):
          * khtml/css/cssparser.cpp:
          (CSSParser::CSSParser):
          (CSSParser::parseSheet):
          * khtml/css/cssparser.h:
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::styleForElement):
          (khtml::CSSStyleSelector::pseudoStyleForElement):
          (khtml::CSSStyleSelector::checkSelector):
          (khtml::CSSStyleSelector::checkOneSelector):
          (khtml::CSSStyleSelector::buildLists):
          * khtml/css/html4.css:
          * khtml/css/parser.cpp:
          * khtml/css/parser.y:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::~DocumentImpl):
          (DocumentImpl::attrId):
          (DocumentImpl::attrName):
          (DocumentImpl::tagId):
          (DocumentImpl::tagName):
          (DocumentImpl::namespaceURI):
          * khtml/xml/dom_elementimpl.cpp:
          (NamedAttrMapImpl::getAttributeItem):
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::checkSetPrefix):
          * khtml/xml/dom_nodeimpl.h:
          (DOM::namespacePart):
          (DOM::localNamePart):
          (DOM::makeId):
          * khtml/xml/dom_xmlimpl.cpp:
          (ProcessingInstructionImpl::checkStyleSheet):
          * khtml/xml/xml_namespace_table.cpp: Added.
          (DOM::XmlNamespaceTable::getNamespaceID):
          (DOM::XmlNamespaceTable::getNamespaceURI):
          * khtml/xml/xml_namespace_table.h: Added.
          (DOM::XmlNamespaceEntry::m_uri):
  
  2004-01-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed <rdar://problem/3532519>: <select> menus show label property instead of tag contents (ups.com time and cost site)
  
          * khtml/html/html_formimpl.cpp: (HTMLOptionElementImpl::text): Ignore the label property as
          a quirk. Neither WinIE nor Mozilla implement the label property, so neither shall we (except
          on strict pages, where we just go crazy and do everything "right").
  
  2004-01-26  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
          * khtml/rendering/render_line.h:
          (khtml::InlineBox::isFirstLineStyle): Helper to return whether
  	the line box has the first line style bit set.
          * khtml/rendering/render_text.cpp:
          (RenderText::caretPos): Noe correctly accounts for white space
  	which can precede an inline text box.
  
  2004-01-26  David Hyatt  <hyatt at apple.com>
  
  	Remove incremental repainting ifdef.
  
          * khtml/khtmlview.h:
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlock):
          (khtml::RenderBlock::layoutBlockChildren):
          (khtml::RenderBlock::repaintObjectsBeforeLayout):
          (khtml::RenderBlock::positionNewFloats):
          * khtml/rendering/render_block.h:
          * khtml/rendering/render_box.cpp:
          (RenderBox::computeAbsoluteRepaintRect):
          (RenderBox::repaintDuringLayoutIfMoved):
          * khtml/rendering/render_box.h:
          * khtml/rendering/render_container.cpp:
          (RenderContainer::removeChildNode):
          * khtml/rendering/render_flexbox.cpp:
          (khtml::RenderFlexibleBox::layoutBlock):
          (khtml::RenderFlexibleBox::placeChild):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::getAbsoluteRepaintRect):
          * khtml/rendering/render_image.cpp:
          (RenderImage::layout):
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::RenderLayer):
          (RenderLayer::computeRepaintRects):
          (RenderLayer::updateLayerPositions):
          (RenderLayer::updateLayerPosition):
          (RenderLayer::paintLayer):
          * khtml/rendering/render_layer.h:
          (khtml::RenderLayer::relativePositionOffset):
          * khtml/rendering/render_object.cpp:
          (RenderObject::setNeedsLayout):
          (RenderObject::setChildNeedsLayout):
          (RenderObject::markContainingBlocksForLayout):
          (RenderObject::getAbsoluteRepaintRectIncludingFloats):
          (RenderObject::detach):
          (RenderObject::scheduleRelayout):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_table.cpp:
          (RenderTable::layout):
          (RenderTableSection::layoutRows):
  
  2004-01-26  David Hyatt  <hyatt at apple.com>
  
  	Preserve the integrity of the line box tree when elements get removed.  Change RenderText over to using
  	the same data structures as inlines and blocks for maintaining its list of line boxes.
  	
          Reviewed by kocienda
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::text):
          (KHTMLPart::customEvent):
          * khtml/khtml_selection.cpp:
          (KHTMLSelection::nextCharacterPosition):
          (firstRunAt):
          (lastRunAt):
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::removeChild):
          * khtml/rendering/render_box.cpp:
          (RenderBox::RenderBox):
          (RenderBox::detach):
          (RenderBox::position):
          (RenderBox::inlineBoxWrapper):
          (RenderBox::deleteLineBoxWrapper):
          * khtml/rendering/render_box.h:
          * khtml/rendering/render_container.cpp:
          (RenderContainer::removeChildNode):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::detach):
          * khtml/rendering/render_line.cpp:
          (InlineFlowBox::removeChild):
          * khtml/rendering/render_line.h:
          (khtml::InlineBox::nextOnLine):
          (khtml::InlineBox::prevOnLine):
          (khtml::InlineBox::setNextOnLine):
          (khtml::InlineBox::setPrevOnLine):
          (khtml::InlineRunBox::prevLineBox):
          (khtml::InlineRunBox::nextLineBox):
          * khtml/rendering/render_object.cpp:
          (RenderObject::isEditable):
          (RenderObject::inlineBoxWrapper):
          (RenderObject::deleteLineBoxWrapper):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::documentBeingDestroyed):
          * khtml/rendering/render_text.cpp:
          (RenderText::RenderText):
          (RenderText::detach):
          (RenderText::deleteTextBoxes):
          (RenderText::absoluteRects):
          (RenderText::findNextInlineTextBox):
          (RenderText::nodeAtPoint):
          (RenderText::checkSelectionPointIgnoringContinuations):
          (RenderText::caretPos):
          (RenderText::paintObject):
          (RenderText::paint):
          (RenderText::minXPos):
          (RenderText::xPos):
          (RenderText::yPos):
          (RenderText::height):
          (RenderText::createInlineBox):
          (RenderText::position):
          (RenderText::width):
          (RenderText::caretMinOffset):
          (RenderText::caretMaxOffset):
          * khtml/rendering/render_text.h:
          (khtml::InlineTextBox:::InlineRunBox):
          (khtml::InlineTextBox::nextTextBox):
          (khtml::InlineTextBox::prevTextBox):
          (khtml::RenderText::firstTextBox):
          (khtml::RenderText::lastTextBox):
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityIsIgnored]):
          * kwq/KWQDef.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::attributedString):
          * kwq/KWQRenderTreeDebug.cpp:
          (write):
  
  2004-01-24  David Hyatt  <hyatt at apple.com>
  
  	Polish the error message from the xml tokenizer.
  
          * khtml/xml/xml_tokenizer.cpp:
          (XMLTokenizer::finish):
  
  2004-01-23  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Richard
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::setShowsFirstResponder): Now adjusts caret visibility
  	apprpropriately.
  
  2004-01-23  David Hyatt  <hyatt at apple.com>
  
  	Stub out @namespace support.  Implement the callbacks into the stylesheet that will enable us to
  	store namespace information for simple selectors.
  
  	Basically with this patch we no longer bomb when we encounter namespaced stylesheets, but we don't handle
  	them properly yet either.
  	
          Reviewed by kocienda
  
          * khtml/css/css_stylesheetimpl.cpp:
          (CSSStyleSheetImpl::addNamespace):
          (CSSStyleSheetImpl::determineNamespace):
          * khtml/css/css_stylesheetimpl.h:
          * khtml/css/cssparser.cpp:
          (DOM::CSSParser::lex):
          * khtml/css/cssparser.h:
          * khtml/css/parser.cpp:
          * khtml/css/parser.h:
          * khtml/css/parser.y:
          * khtml/css/tokenizer.cpp:
          * khtml/css/tokenizer.flex:
  
  2004-01-23  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Hyatt
  
  	Merged HTML editing progress to TOT from the branch
  	I have been maintaining.
  
          * khtml/dom/dom_position.cpp: Added.
          * khtml/dom/dom_position.h: Added.
          * khtml/editing/htmlediting.cpp: Added.
          * khtml/editing/htmlediting.h: Added.
          * khtml/khtml_selection.cpp: Added.
          * khtml/khtml_selection.h: Added.
  
  2004-01-22  David Hyatt  <hyatt at apple.com>
  
  	Fix a bug I accidentally introduced in static positioned elements.  Add more margin collapsing tests.
  	
          * ChangeLog:
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlockChildren):
          * layout-tests/fast/block/margin-collapse/044-expected.txt: Added.
          * layout-tests/fast/block/margin-collapse/044.html: Added.
          * layout-tests/fast/block/margin-collapse/045-expected.txt: Added.
          * layout-tests/fast/block/margin-collapse/045.html: Added.
          * layout-tests/fast/block/margin-collapse/062-expected.txt: Added.
          * layout-tests/fast/block/margin-collapse/062.html: Added.
          * layout-tests/fast/block/margin-collapse/063-expected.txt: Added.
          * layout-tests/fast/block/margin-collapse/063.html: Added.
          * layout-tests/fast/block/positioning/007-expected.txt:
  
  2004-01-22  David Hyatt  <hyatt at apple.com>
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlockChildren):
          * layout-tests/fast/block/margin-collapse/062-expected.txt: Added.
          * layout-tests/fast/block/margin-collapse/062.html: Added.
          * layout-tests/fast/block/margin-collapse/063-expected.txt: Added.
          * layout-tests/fast/block/margin-collapse/063.html: Added.
          * layout-tests/fast/block/positioning/007-expected.txt:
  
  2004-01-22  David Hyatt  <hyatt at apple.com>
  
  	(1) Implement better XML error handling.
  	(2) Fix a minor z-index bug with the 'initial' value.
  	(3) Initial landing of XBL support.  Code is all ifnef KHTML_NO_XBL so that it can be turned off easily if
  	XBL never comes to fruition.
  	
          Reviewed by darin
  
          * ForwardingHeaders/xbl/xbl_binding_manager.h: Added.
          * ForwardingHeaders/xbl/xbl_docimpl.h: Added.
          * WebCore.pbproj/project.pbxproj:
          * 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/dom/dom_element.cpp:
          (Element::getAttributeNS):
          * khtml/misc/loader.cpp:
          (CachedXBLDocument::CachedXBLDocument):
          (CachedXBLDocument::~CachedXBLDocument):
          (CachedXBLDocument::ref):
          (CachedXBLDocument::deref):
          (CachedXBLDocument::data):
          (CachedXBLDocument::checkNotify):
          (CachedXBLDocument::error):
          (DocLoader::requestXBLDocument):
          (Cache::requestXBLDocument):
          (CachedObjectClient::setXBLDocument):
          (Cache::getStatistics):
          * khtml/misc/loader.h:
          (khtml::CachedObject::):
          (khtml::CachedXBLDocument::document):
          (khtml::CachedXBLDocument::schedule):
          * khtml/misc/loader_client.h:
          * khtml/rendering/render_style.cpp:
          (bindingURI):
          (marquee):
          (StyleCSS3NonInheritedData::~StyleCSS3NonInheritedData):
          (StyleCSS3NonInheritedData::bindingsEquivalent):
          (StyleCSS3NonInheritedData::operator==):
          (:m_next):
          (BindingURI::~BindingURI):
          (BindingURI::copy):
          (BindingURI::operator==):
          (RenderStyle::addBindingURI):
          * khtml/rendering/render_style.h:
          (khtml::BindingURI::operator!=):
          (khtml::BindingURI::next):
          (khtml::BindingURI::setNext):
          (khtml::BindingURI::uri):
          (khtml::RenderStyle::bindingURIs):
          (khtml::RenderStyle::setHasAutoZIndex):
          (khtml::RenderStyle::setZIndex):
          (khtml::RenderStyle::deleteBindingURIs):
          (khtml::RenderStyle::inheritBindingURIs):
          * khtml/xbl/xbl_binding.cpp: Added.
          (XBL::m_markedForDeath):
          (XBL::XBLBindingChain::~XBLBindingChain):
          (XBL::XBLBindingChain::firstStyleBindingChain):
          (XBL::XBLBindingChain::lastBindingChain):
          (XBL::XBLBindingChain::insertBindingChain):
          (XBL::XBLBindingChain::markForDeath):
          (XBL::XBLBindingChain::loaded):
          (XBL::XBLBindingChain::hasStylesheets):
          (XBL::XBLBindingChain::failed):
          (XBL::m_nextBinding):
          (XBL::XBLBinding::~XBLBinding):
          (XBL::XBLBinding::loaded):
          (XBL::XBLBinding::setXBLDocument):
          * khtml/xbl/xbl_binding.h: Added.
          (XBL::):
          (XBL::XBLBindingChain::uri):
          (XBL::XBLBindingChain::nextChain):
          (XBL::XBLBindingChain::previousChain):
          (XBL::XBLBindingChain::setNextBindingChain):
          (XBL::XBLBindingChain::setPreviousBindingChain):
          (XBL::XBLBindingChain::markedForDeath):
          (XBL::XBLBindingChain::element):
          * khtml/xbl/xbl_binding_manager.cpp: Added.
          (XBL::m_bindingChainTable):
          (XBL::XBLBindingManager::~XBLBindingManager):
          (XBL::XBLBindingManager::getBindingChain):
          (XBL::XBLBindingManager::setBindingChain):
          (XBL::XBLBindingManager::loadBindings):
          (XBL::XBLBindingManager::checkLoadState):
          * khtml/xbl/xbl_binding_manager.h: Added.
          * khtml/xbl/xbl_docimpl.cpp: Added.
          (XBL:::DocumentImpl):
          (XBL::XBLDocumentImpl::~XBLDocumentImpl):
          (XBL::XBLDocumentImpl::createTokenHandler):
          (XBL::XBLDocumentImpl::setPrototypeBinding):
          (XBL::XBLDocumentImpl::prototypeBinding):
          * khtml/xbl/xbl_docimpl.h: Added.
          (XBL::):
          * khtml/xbl/xbl_protobinding.cpp: Added.
          (XBL::m_handler):
          (XBL::XBLPrototypeBinding::initialize):
          (XBL::XBLPrototypeBinding::document):
          (XBL::XBLPrototypeBinding::addResource):
          * khtml/xbl/xbl_protobinding.h: Added.
          (XBL::XBLPrototypeBinding::element):
          (XBL::XBLPrototypeBinding::setHandler):
          (XBL::XBLPrototypeBinding::handler):
          * khtml/xbl/xbl_protohandler.cpp: Added.
          (XBL::m_unused):
          (XBL::XBLPrototypeHandler::~XBLPrototypeHandler):
          (XBL::XBLPrototypeHandler::appendData):
          * khtml/xbl/xbl_protohandler.h: Added.
          (XBL::XBLPrototypeHandler::setNext):
          (XBL::XBLPrototypeHandler::next):
          * khtml/xbl/xbl_protoimplementation.cpp: Added.
          (XBL::m_compiled):
          (XBL::m_next):
          (XBL::XBLPrototypeMember::appendData):
          (XBL:::XBLPrototypeMember):
          (XBL::XBLPrototypeMethod::isConstructor):
          (XBL::XBLPrototypeMethod::isDestructor):
          (XBL::XBLPrototypeMethod::addParameter):
          (XBL:::XBLPrototypeMethod):
          (XBL::XBLPrototypeConstructor::isConstructor):
          (XBL::XBLPrototypeDestructor::isDestructor):
          (XBL::m_readonly):
          (XBL::XBLPrototypeProperty::appendGetterText):
          (XBL::XBLPrototypeProperty::appendSetterText):
          * khtml/xbl/xbl_protoimplementation.h: Added.
          (XBL::XBLPrototypeMember::~XBLPrototypeMember):
          (XBL::XBLPrototypeMember::setNext):
          (XBL::XBLPrototypeMember::next):
          (XBL::XBLPrototypeImplementation::~XBLPrototypeImplementation):
          (XBL::XBLPrototypeImplementation::setMember):
          (XBL::XBLPrototypeParameter::m_next):
          (XBL::XBLPrototypeParameter::~XBLPrototypeParameter):
          (XBL::XBLPrototypeParameter::next):
          (XBL::XBLPrototypeParameter::setNext):
          (XBL::):
          * khtml/xbl/xbl_tokenizer.cpp: Added.
          (XBL::XBLTokenHandler::XBLTokenHandler):
          (XBL::XBLTokenHandler::~XBLTokenHandler):
          (XBL::XBLTokenHandler::xblDocument):
          (XBL::XBLTokenHandler::startElement):
          (XBL::XBLTokenHandler::endElement):
          (XBL::XBLTokenHandler::characters):
          (XBL::XBLTokenHandler::createBinding):
          (XBL::XBLTokenHandler::createHandler):
          (XBL::XBLTokenHandler::createResource):
          (XBL::XBLTokenHandler::createImplementation):
          (XBL::XBLTokenHandler::addMember):
          (XBL::XBLTokenHandler::createConstructor):
          (XBL::XBLTokenHandler::createDestructor):
          (XBL::XBLTokenHandler::createField):
          (XBL::XBLTokenHandler::createProperty):
          (XBL::XBLTokenHandler::createMethod):
          (XBL::XBLTokenHandler::createParameter):
          * khtml/xbl/xbl_tokenizer.h: Added.
          (XBL::):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::~DocumentImpl):
          (DocumentImpl::createTokenHandler):
          (DocumentTypeImpl::DocumentTypeImpl):
          (DocumentTypeImpl::~DocumentTypeImpl):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::bindingManager):
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::getAttributeNS):
          (ElementImpl::childAllowed):
          * khtml/xml/dom_elementimpl.h:
          (DOM::ElementImpl::getAttribute):
          * khtml/xml/dom_nodeimpl.cpp:
          * khtml/xml/xml_tokenizer.cpp:
          (XMLHandler::XMLHandler):
          (XMLHandler::startDocument):
          (XMLHandler::startElement):
          (XMLHandler::endElement):
          (XMLHandler::startCDATA):
          (XMLHandler::endCDATA):
          (XMLHandler::characters):
          (XMLHandler::comment):
          (XMLHandler::processingInstruction):
          (XMLHandler::warning):
          (XMLHandler::error):
          (XMLHandler::fatalError):
          (XMLTokenizer::finish):
          * khtml/xml/xml_tokenizer.h:
          * kwq/KWQXmlSimpleReader.h:
          (QXmlSimpleReader::sawError):
          (QXmlSimpleReader::recordError):
          * kwq/KWQXmlSimpleReader.mm:
          (warningHandler):
          (fatalErrorHandler):
          (normalErrorHandler):
          (QXmlSimpleReader::parse):
  
  2004-01-22  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3537542>: support for copying HTML
  
          Reviewed by dave.
  
          * khtml/xml/dom2_rangeimpl.cpp:
          (RangeImpl::toHTML): implemented
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::recursive_toHTMLWithRange): new
          * khtml/xml/dom_nodeimpl.h:
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge selectedHTML]): new
          (-[WebCoreBridge reconstructedSource]): new
  
  2004-01-21  David Hyatt  <hyatt at apple.com>
  
  	Fix for two margin collapsing edge cases.
  	
          Reviewed by darin
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlockChildren):
  
  2004-01-21  David Hyatt  <hyatt at apple.com>
  
  	Switch from expat to libxml and implement namespace support in the simplereader.
  	
          Reviewed by darin
  
          * ChangeLog:
          * expat/Changes: Removed.
          * expat/MANIFEST: Removed.
          * expat/README: Removed.
          * expat/expat_config.h: Removed.
          * expat/lib/ascii.h: Removed.
          * expat/lib/asciitab.h: Removed.
          * expat/lib/expat.h: Removed.
          * expat/lib/iasciitab.h: Removed.
          * expat/lib/internal.h: Removed.
          * expat/lib/latin1tab.h: Removed.
          * expat/lib/nametab.h: Removed.
          * expat/lib/utf8tab.h: Removed.
          * expat/lib/xmlparse.c: Removed.
          * expat/lib/xmlrole.c: Removed.
          * expat/lib/xmlrole.h: Removed.
          * expat/lib/xmltok.c: Removed.
          * expat/lib/xmltok.h: Removed.
          * expat/lib/xmltok_impl.c: Removed.
          * expat/lib/xmltok_impl.h: Removed.
          * expat/lib/xmltok_ns.c: Removed.
          * kwq/KWQXmlAttributes.h:
          (QXmlAttributes::QXmlAttributes):
          (QXmlAttributes::qName):
          (QXmlAttributes::uri):
          * kwq/KWQXmlAttributes.mm:
          (QXmlAttributes::QXmlAttributes):
          (QXmlAttributes::~QXmlAttributes):
          (QXmlAttributes::operator=):
          (QXmlAttributes::localName):
          (QXmlAttributes::split):
          * kwq/KWQXmlSimpleReader.h:
          (KWQXmlNamespace::m_ref):
          (KWQXmlNamespace::uriForPrefix):
          (KWQXmlNamespace::ref):
          (KWQXmlNamespace::deref):
          (QXmlParseException::QXmlParseException):
          (QXmlParseException::message):
          (QXmlParseException::columnNumber):
          (QXmlParseException::lineNumber):
          (QXmlSimpleReader::errorHandler):
          (QXmlSimpleReader::xmlNamespace):
          (QXmlSimpleReader::parserStopped):
          * kwq/KWQXmlSimpleReader.mm:
          (startElementHandler):
          (endElementHandler):
          (charactersHandler):
          (processingInstructionHandler):
          (cdataBlockHandler):
          (commentHandler):
          (warningHandler):
          (fatalErrorHandler):
          (QXmlSimpleReader::pushNamespaces):
          (QXmlSimpleReader::popNamespaces):
          (QXmlSimpleReader::parse):
          (QXmlSimpleReader::stopParsing):
          (QXmlSimpleReader::lineNumber):
          (QXmlSimpleReader::columnNumber):
  
  2004-01-21  David Hyatt  <hyatt at apple.com>
  
          * ForwardingHeaders/xbl/xbl_binding_manager.h: Added.
          * ForwardingHeaders/xbl/xbl_docimpl.h: Added.
          * WebCore.pbproj/project.pbxproj:
          * expat/COPYING: Removed.
          * expat/Changes: Removed.
          * expat/MANIFEST: Removed.
          * expat/README: Removed.
          * expat/expat_config.h: Removed.
          * expat/lib/ascii.h: Removed.
          * expat/lib/asciitab.h: Removed.
          * expat/lib/expat.h: Removed.
          * expat/lib/iasciitab.h: Removed.
          * expat/lib/internal.h: Removed.
          * expat/lib/latin1tab.h: Removed.
          * expat/lib/nametab.h: Removed.
          * expat/lib/utf8tab.h: Removed.
          * expat/lib/xmlparse.c: Removed.
          * expat/lib/xmlrole.c: Removed.
          * expat/lib/xmlrole.h: Removed.
          * expat/lib/xmltok.c: Removed.
          * expat/lib/xmltok.h: Removed.
          * expat/lib/xmltok_impl.c: Removed.
          * expat/lib/xmltok_impl.h: Removed.
          * expat/lib/xmltok_ns.c: Removed.
          * 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/dom/dom_element.cpp:
          (Element::getAttributeNS):
          * khtml/misc/loader.cpp:
          (CachedXBLDocument::CachedXBLDocument):
          (CachedXBLDocument::~CachedXBLDocument):
          (CachedXBLDocument::ref):
          (CachedXBLDocument::deref):
          (CachedXBLDocument::data):
          (CachedXBLDocument::checkNotify):
          (CachedXBLDocument::error):
          (DocLoader::requestXBLDocument):
          (Cache::requestXBLDocument):
          (CachedObjectClient::setXBLDocument):
          (Cache::getStatistics):
          * khtml/misc/loader.h:
          (khtml::CachedObject::):
          (khtml::CachedXBLDocument::document):
          (khtml::CachedXBLDocument::schedule):
          * khtml/misc/loader_client.h:
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlockChildren):
          * khtml/rendering/render_style.cpp:
          (bindingURI):
          (marquee):
          (StyleCSS3NonInheritedData::~StyleCSS3NonInheritedData):
          (StyleCSS3NonInheritedData::bindingsEquivalent):
          (StyleCSS3NonInheritedData::operator==):
          (:m_next):
          (BindingURI::~BindingURI):
          (BindingURI::copy):
          (BindingURI::operator==):
          (RenderStyle::addBindingURI):
          * khtml/rendering/render_style.h:
          (khtml::BindingURI::operator!=):
          (khtml::BindingURI::next):
          (khtml::BindingURI::setNext):
          (khtml::BindingURI::uri):
          (khtml::RenderStyle::bindingURIs):
          (khtml::RenderStyle::setHasAutoZIndex):
          (khtml::RenderStyle::setZIndex):
          (khtml::RenderStyle::deleteBindingURIs):
          (khtml::RenderStyle::inheritBindingURIs):
          * khtml/xbl/xbl_binding.cpp: Added.
          (XBL::m_markedForDeath):
          (XBL::XBLBindingChain::~XBLBindingChain):
          (XBL::XBLBindingChain::firstStyleBindingChain):
          (XBL::XBLBindingChain::lastBindingChain):
          (XBL::XBLBindingChain::insertBindingChain):
          (XBL::XBLBindingChain::markForDeath):
          (XBL::XBLBindingChain::loaded):
          (XBL::XBLBindingChain::hasStylesheets):
          (XBL::XBLBindingChain::failed):
          (XBL::m_nextBinding):
          (XBL::XBLBinding::~XBLBinding):
          (XBL::XBLBinding::loaded):
          (XBL::XBLBinding::setXBLDocument):
          * khtml/xbl/xbl_binding.h: Added.
          (XBL::):
          (XBL::XBLBindingChain::uri):
          (XBL::XBLBindingChain::nextChain):
          (XBL::XBLBindingChain::previousChain):
          (XBL::XBLBindingChain::setNextBindingChain):
          (XBL::XBLBindingChain::setPreviousBindingChain):
          (XBL::XBLBindingChain::markedForDeath):
          (XBL::XBLBindingChain::element):
          * khtml/xbl/xbl_binding_manager.cpp: Added.
          (XBL::m_bindingChainTable):
          (XBL::XBLBindingManager::~XBLBindingManager):
          (XBL::XBLBindingManager::getBindingChain):
          (XBL::XBLBindingManager::setBindingChain):
          (XBL::XBLBindingManager::loadBindings):
          (XBL::XBLBindingManager::checkLoadState):
          * khtml/xbl/xbl_binding_manager.h: Added.
          * khtml/xbl/xbl_docimpl.cpp: Added.
          (XBL:::DocumentImpl):
          (XBL::XBLDocumentImpl::~XBLDocumentImpl):
          (XBL::XBLDocumentImpl::createTokenHandler):
          (XBL::XBLDocumentImpl::setPrototypeBinding):
          (XBL::XBLDocumentImpl::prototypeBinding):
          * khtml/xbl/xbl_docimpl.h: Added.
          (XBL::):
          * khtml/xbl/xbl_protobinding.cpp: Added.
          (XBL::m_handler):
          (XBL::XBLPrototypeBinding::initialize):
          (XBL::XBLPrototypeBinding::document):
          (XBL::XBLPrototypeBinding::addResource):
          * khtml/xbl/xbl_protobinding.h: Added.
          (XBL::XBLPrototypeBinding::element):
          (XBL::XBLPrototypeBinding::setHandler):
          (XBL::XBLPrototypeBinding::handler):
          * khtml/xbl/xbl_protohandler.cpp: Added.
          (XBL::m_unused):
          (XBL::XBLPrototypeHandler::~XBLPrototypeHandler):
          (XBL::XBLPrototypeHandler::appendData):
          * khtml/xbl/xbl_protohandler.h: Added.
          (XBL::XBLPrototypeHandler::setNext):
          (XBL::XBLPrototypeHandler::next):
          * khtml/xbl/xbl_protoimplementation.cpp: Added.
          (XBL::m_compiled):
          (XBL::m_next):
          (XBL::XBLPrototypeMember::appendData):
          (XBL:::XBLPrototypeMember):
          (XBL::XBLPrototypeMethod::isConstructor):
          (XBL::XBLPrototypeMethod::isDestructor):
          (XBL::XBLPrototypeMethod::addParameter):
          (XBL:::XBLPrototypeMethod):
          (XBL::XBLPrototypeConstructor::isConstructor):
          (XBL::XBLPrototypeDestructor::isDestructor):
          (XBL::m_readonly):
          (XBL::XBLPrototypeProperty::appendGetterText):
          (XBL::XBLPrototypeProperty::appendSetterText):
          * khtml/xbl/xbl_protoimplementation.h: Added.
          (XBL::XBLPrototypeMember::~XBLPrototypeMember):
          (XBL::XBLPrototypeMember::setNext):
          (XBL::XBLPrototypeMember::next):
          (XBL::XBLPrototypeImplementation::~XBLPrototypeImplementation):
          (XBL::XBLPrototypeImplementation::setMember):
          (XBL::XBLPrototypeParameter::m_next):
          (XBL::XBLPrototypeParameter::~XBLPrototypeParameter):
          (XBL::XBLPrototypeParameter::next):
          (XBL::XBLPrototypeParameter::setNext):
          (XBL::):
          * khtml/xbl/xbl_tokenizer.cpp: Added.
          (XBL::XBLTokenHandler::XBLTokenHandler):
          (XBL::XBLTokenHandler::~XBLTokenHandler):
          (XBL::XBLTokenHandler::xblDocument):
          (XBL::XBLTokenHandler::startElement):
          (XBL::XBLTokenHandler::endElement):
          (XBL::XBLTokenHandler::characters):
          (XBL::XBLTokenHandler::createBinding):
          (XBL::XBLTokenHandler::createHandler):
          (XBL::XBLTokenHandler::createResource):
          (XBL::XBLTokenHandler::createImplementation):
          (XBL::XBLTokenHandler::addMember):
          (XBL::XBLTokenHandler::createConstructor):
          (XBL::XBLTokenHandler::createDestructor):
          (XBL::XBLTokenHandler::createField):
          (XBL::XBLTokenHandler::createProperty):
          (XBL::XBLTokenHandler::createMethod):
          (XBL::XBLTokenHandler::createParameter):
          * khtml/xbl/xbl_tokenizer.h: Added.
          (XBL::):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::~DocumentImpl):
          (DocumentImpl::createTokenHandler):
          (DocumentTypeImpl::DocumentTypeImpl):
          (DocumentTypeImpl::~DocumentTypeImpl):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::bindingManager):
          * khtml/xml/dom_elementimpl.cpp:
          (ElementImpl::getAttributeNS):
          * khtml/xml/dom_elementimpl.h:
          (DOM::ElementImpl::getAttribute):
          * khtml/xml/dom_nodeimpl.cpp:
          * khtml/xml/xml_tokenizer.cpp:
          (XMLHandler::startElement):
          (XMLTokenizer::finish):
          * khtml/xml/xml_tokenizer.h:
          * kwq/KWQXmlAttributes.h:
          (QXmlAttributes::QXmlAttributes):
          (QXmlAttributes::qName):
          (QXmlAttributes::uri):
          * kwq/KWQXmlAttributes.mm:
          (QXmlAttributes::QXmlAttributes):
          (QXmlAttributes::~QXmlAttributes):
          (QXmlAttributes::operator=):
          (QXmlAttributes::localName):
          (QXmlAttributes::split):
          * kwq/KWQXmlSimpleReader.h:
          (XmlNamespace::m_ref):
          (XmlNamespace::uriForPrefix):
          (XmlNamespace::ref):
          (XmlNamespace::deref):
          (QXmlParseException::QXmlParseException):
          (QXmlParseException::message):
          (QXmlParseException::columnNumber):
          (QXmlParseException::lineNumber):
          (QXmlSimpleReader::errorHandler):
          (QXmlSimpleReader::xmlNamespace):
          (QXmlSimpleReader::parserStopped):
          * kwq/KWQXmlSimpleReader.mm:
          (startElementHandler):
          (endElementHandler):
          (charactersHandler):
          (processingInstructionHandler):
          (cdataBlockHandler):
          (commentHandler):
          (warningHandler):
          (fatalErrorHandler):
          (QXmlSimpleReader::pushNamespaces):
          (QXmlSimpleReader::popNamespaces):
          (QXmlSimpleReader::parse):
          (QXmlSimpleReader::stopParsing):
          (QXmlSimpleReader::lineNumber):
          (QXmlSimpleReader::columnNumber):
          * layout-tests/fast/overflow/003.xml:
  
  2004-01-21  David Hyatt  <hyatt at apple.com>
  
  	Add some methods to dicts and stacks that exist in Qt.
  	
          Reviewed by darin
  
          * kwq/KWQDict.h:
          (QDict::replace):
          * kwq/KWQPtrDict.h:
          (QPtrDict::replace):
          (QPtrDict::find):
          * kwq/KWQPtrStack.h:
          (QPtrStack::current):
          (QPtrStack::setAutoDelete):
  
  2004-01-19  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John, Ken, Dave.
  
  	<rdar://problem/3533319>: Safari allows upload of arbitrary local files w/o user's knowledge or permission
          
  	* khtml/html/html_formimpl.cpp:
          (HTMLInputElementImpl::value): Don't fall back to the value
  	attribute for file inputs, since that way malicious HTML could
  	force the user to upload files unexpectedly.
  
  2004-01-18  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3532569, bugzilla patch viewer doesn't work.  My previous fix for 3531983 caused moves to happen
  	when they should not have, due to childX and childY not being implemented at all on KWQScrollView.
  
          Reviewed by darin
  	
          * kwq/KWQScrollView.mm:
          (QScrollView::childX):
          (QScrollView::childY):
  
  === Safari-124 ===
  
  2004-01-16  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3531983, fixed positioning not working for widgets.  Make sure to move widgets at paint time
  	if necessary.
  	
          Reviewed by darin
  	
          * khtml/rendering/render_replaced.cpp:
          (RenderWidget::paintObject):
  
  2004-01-15  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3530734, many java applets don't show up.  Go ahead and just use the width/height from the style
  	system as the initial size when the width/height are fixed.
  	
          Reviewed by rjw
  
          * khtml/rendering/render_applet.cpp:
          (RenderApplet::createWidgetIfNecessary):
  
  2004-01-15  Richard Williamson   <rjw at apple.com>
  
  	Fixed 3529426.  Exclude pages that contain Java applets from 
  	the page cache.  The means applets get the normal stop/destroy
  	messages that they expect when a user leaves a page.
  
          Reviewed by John.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::canCachePage):
  
  2004-01-15  Vicki Murley  <vicki at apple.com>
  
          Reviewed by Darin.
  
          * WebCore.pbproj/project.pbxproj: Update copyright date to 2004.
  
  2004-01-15  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed 3529943: REGRESSION (119-120): nil-deref in KHTMLPart::javaEnabled when hitting back button
  
          * khtml/html/html_objectimpl.cpp: (HTMLAppletElementImpl::getAppletInstance):
          Add missing nil check that the other call to javaEnabled has.
  
  === Safari-122 ===
  
  2004-01-14  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3527819, marquee makes page layout too wide.  Make sure marquees have a minimum width of 0.
  	
          Reviewed by john
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::calcMinMaxWidth):
          (khtml::RenderBlock::calcInlineMinMaxWidth):
  
  2004-01-13  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3527707, crash on w3c css page.  Make sure height isn't allowed to be negative when computing
  	positioned elements' heights.  Also bulletproof the crash in case there are other negative height code
  	paths.
  	
          Reviewed by john
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlock):
          (khtml::RenderBlock::getAbsoluteRepaintRectIncludingFloats):
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcAbsoluteVertical):
  
  2004-01-13  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3527853>: REGRESSION (119-120): Peoplesoft menus do not work
  	
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::scrollToAnchor): Right before calling checkCompleted(), set
  	m_bComplete to false, so it can get set right back to true if we're actually done
  	loading and fire all the right signals.
  
  2004-01-13  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3526710, applets need to have the correct initial size after a layout has been done, since our
  	Java applets can't yet resize.
  	
          Reviewed by john
  
          * khtml/rendering/render_applet.cpp:
          (RenderApplet::createWidgetIfNecessary):
          (RenderApplet::layout):
          (RenderEmptyApplet::layout):
  
  === Safari-121 ===
  
  2004-01-11  Darin Adler  <darin at apple.com>
  
          - fixed Dave's check-in so it compiles; I assume he forgot to land one source file
  
          * khtml/khtmlview.h: Add RenderPart to the friends of KHTMLView.
  
  2004-01-11  David Hyatt  <hyatt at apple.com>
  
  	Fix for frame repainting bugs (3510669, 3515442).  This is a narrower fix than the previous attempt.
  	
          Reviewed by darin
  
          * khtml/rendering/render_frames.cpp:
          (RenderPart::updateWidgetPositions):
          * khtml/rendering/render_frames.h:
          * khtml/rendering/render_replaced.cpp:
          (RenderWidget::updateWidgetPositions):
  
  2004-01-10  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed 3525468: REGRESSION (114-115): HOMEPAGE: after hitting textarea limit, backspace key is ignored
  
          * kwq/KWQEvent.mm:
          (keyIdentifierForKeyEvent): Treat 7F as 08; matches other browsers.
          (QKeyEvent::QKeyEvent): Ditto.
  
  2004-01-09  David Hyatt  <hyatt at apple.com>
  
  	Fixes for 3510669 and 3515442, blank frame problems caused by WebKit's use of a separate needsLayout boolean.
  	
          Reviewed by darin
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setNeedsLayout]):
  
  2004-01-08  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3524118, floats don't repaint when moved.
  	
          Reviewed by darin
  
           * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::positionNewFloats):
   
  2004-01-08  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3519003, crash in mail because <dir> and <menu> don't allow the same children as <ul> and <ol>.
  	
          Reviewed by darin
  
          * khtml/html/dtd.cpp:
          (DOM::checkChild):
  
  2004-01-08  John Sullivan  <sullivan at apple.com>
  
          - fixed <rdar://problem/3524359>: REGRESSSION (119-120): 
          Double click to select text in form broken
  
          Reviewed by Dave and Darin.
  
          * khtml/khtmlview.cpp:
          (KHTMLView::dispatchMouseEvent):
          Don't blur the focused node if that's the one you clicked on.
  
  2004-01-07  Richard Williamson   <rjw at apple.com>
  
  	Fixed 3517550.  Named array lookup of applet failed, i.e.:
  	var appletobj = document.applets['myapplet']
  
          Reviewed by Chris.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLCollection::getNamedItems):
  
  === Safari-120 ===
  
  2004-01-06  David Hyatt  <hyatt at apple.com>
  
  	Possible fix for table bugs 3510005 and 3492945, repainting glitches that occurred when table cells moved.
  
  	Fix for 33522497, empty AXElements appear in AXBrowser.
  	
          Reviewed by darin
  
          * khtml/rendering/render_table.cpp:
          (RenderTableSection::layoutRows):
          (RenderTableCell::setWidth):
          * khtml/rendering/render_table.h:
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject accessibilityIsIgnored]):
  
  2004-01-06  John Sullivan  <sullivan at apple.com>
  
          - fixed <rdar://problem/3484465>: REGRESSION (118): button click does 
          not take focus away from <textarea>; breaks Outlook Web Access
  
          Reviewed by Dave.
  
          * khtml/khtmlview.cpp:
          (KHTMLView::dispatchMouseEvent):
          Removed nodeimpl == nil test that was preventing button/link clicks
          from blurring previously-focused text field.
  
  2004-01-06  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3520636, infinite loop in page breaking code when printing.
  	
          Reviewed by darin
  
          * khtml/rendering/render_text.cpp:
          (RenderText::paintObject):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge computePageRectsWithPrintWidth:printHeight:]):
  
  2004-01-05  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3521466, generated image content should not try to calcWidth/height when it isn't yet rooted in
  	the rendering tree.
  	
          Reviewed by john
  
          * khtml/rendering/render_image.cpp:
          (RenderImage::setPixmap):
  
  2003-12-26  Darin Adler  <darin at apple.com>
  
          - one more small step to make -[KWQPageState dealloc] safer
  
          * kwq/KWQPageState.mm: (-[KWQPageState dealloc]): Only do the real detach() if the
          document is already in the detached state; we don't want to detach prematurely.
  
  2003-12-23  John Sullivan  <sullivan at apple.com>
  
          - fixed <rdar://problem/3451306>: address book search fails at Airborne 
          Express Corporate site (Apple Shipping wants to use it)
  
          Reviewed by Darin.
  
          * khtml/ecma/kjs_html.cpp:
          commented out definition of document.all; now sites like this one that
          set document.all to a value will work.
          * khtml/ecma/kjs_html.lut.h: regenerated this file
  
  2003-12-23  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - another try at fixing the -[KWQPageState dealloc] bug, even though we don't fully understand it
          
          This change saves the renderer inside the document rather than in the KWQPageState to
          try to eliminate the possibility that multiple KWQPageState objects could restore the
          same renderer multiple times, resulting in multiple detaches of the same renderer.
  
          * khtml/xml/dom_docimpl.h: Add a m_savedRenderer field.
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl): Initialize m_savedRenderer to 0.
          (DocumentImpl::~DocumentImpl): Added some asserts to make sure we don't get destroyed
          while we are in the page cache.
          (DocumentImpl::attach): Added an assert.
          (DocumentImpl::setInPageCache): Save the renderer when setting the flag, and restore
          the renderer when clearing it.
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::openURLFromPageCache): Instead of doing a restoreRenderer
          call, just do setInPageCache(NO), which will restore the renderer as a side effect.
  
          * kwq/KWQPageState.h: Removed the renderer method and field.
          * kwq/KWQPageState.mm:
          (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:]):
          Don't store a pointer to the renderer.
          (-[KWQPageState clear]): New method, shared by invalidate and dealloc.
          (-[KWQPageState invalidate]): Removed code relating to "relinquishing object ownership";
          just deallocate everything here without doing a detach().
          (-[KWQPageState dealloc]): Removed restoreRenderer now that setInPageCache(NO) handles that.
          Added some assertions. Share code with invalidate by calling clear.
  
  2003-12-22  John Sullivan  <sullivan at apple.com>
  
          - fixed <rdar://problem/3508798>: ACCESSIBILITY: role/description/value strings not defined
  
          Reviewed by Darin.
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject roleDescription]):
          provide not-yet-localized strings for all the role descriptions that this class uses.
          (-[KWQAccObject value]):
          return nil string rather than dummy string for the cases where we don't have a value attribute.
          (-[KWQAccObject accessibilityActionDescription:]):
          changed comment passed to UI_STRING bogus macro so it won't have to change if/when macro
          loses its bogosity
  
  2003-12-22  John Sullivan  <sullivan at apple.com>
  
  	- WebCore part of fix for <rdar://problem/3515706>: 
  	REGRESSION (100-118): Web Kit printing does not honor Page Setup scale factor
  
          Reviewed by Darin.
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge computePageRectsWithPrintWidth:printHeight:]):
  	renamed method for clarity; now iterates over pages horizontally as well 
  	as vertically; assume x starts at 0 as we were already assuming that y
  	starts at 0; now returns autoreleased result
  
  2003-12-22  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - follow-on to my fix for 3467919: handle collapsed spaces at the starts of runs too, not just at the
            end, and make sure that a space inherits style from the run it was collapsed from rather than always
            from the run it precedes
  
          * khtml/khtml_part.cpp: (KHTMLPart::text): Add code to deal with collapsed spaces at the start of runs.
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::attributedString): Change code to keep the style of a space that
          was collapsed at the end of the run, and use that styled space if necessary. Also add the code to deal
          with collapsed spaces at the start of runs. Also remove comment that refers to long-since-deleted code.
  
  2003-12-21  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed 3467919: REGRESSION (91-92): space missing when copying text with link at start or end of line
  
          * khtml/khtml_part.cpp: (KHTMLPart::text):
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::attributedString):
          Changed both "turn HTML into text" code paths to generate spaces in a different way.
          First, corrected the logic so it notices spaces left out at the end of a RenderText object.
          Second, don't emit the space until we are emitting more text, to prevent emitting trailing
          spaces. To get this completely right for the attributed string case, I had to add code to
          adjust the offset used to mark links.
  
  2003-12-21  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed 3477453: nowrap in a fixed-width TD is ignored on screen but not when printed (Williams-Sonoma)
  
          * khtml/rendering/render_table.cpp: (RenderTableCell::setStyle):
          Compute the proper whitespace mode before calling the base class setStyle,
          since the base class setStyle may create styles that inherit from our style,
          and we want them to inherit the computed whitespace mode.
  
          * WebCore.pbproj/project.pbxproj: Let Xcode be 1.1, as it was meant to be.
  
  2003-12-21  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed a storage leak
  
          * khtml/rendering/render_style.h: Added a destructor and a private unimplemented assignment
          operator to StyleCSS3InheritedData, since the textShadow field that needs to be allocated
          and deallocated and the default destructor and assignment operator don't do that.
          * khtml/rendering/render_style.cpp: (StyleCSS3InheritedData::~StyleCSS3InheritedData):
          Added destructor that deletes the textShadow object.
  
          - fixed locking for JavaScript debugging tools in Caches window
  
          * kwq/WebCoreJavaScript.mm:
          (+[WebCoreJavaScript rootObjectClasses]): Lock and unlock around call to JavaScriptCore.
          (+[WebCoreJavaScript garbageCollect]): Ditto.
  
  2003-12-19  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3483130, repaint doesn't occur when font is decreased dynamically when at the bottom of
  	amazon.com.
  	
          Reviewed by john
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::setZoomFactor):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setTextSizeMultiplier:]):
  
  2003-12-19  Richard Williamson   <rjw at apple.com>
  
  	Fixed 3515590.  Return Undefined to JS for applet if
  	Java is disabled.
  
          Reviewed by Chris.
  
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::getAppletInstance):
  
  2003-12-19  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Chris.
  
  	<rdar://problem/3512545>: reproducible assertion failure in KWQKHTMLPart::addData scrolling to anchor while page loads
          
  	* kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::scrollToAnchor): Don't pretend we finished loading,
  	because we don't actually make anchor scrolling stop the current
  	page load.
  
  === Safari-119 ===
  
  2003-12-18  Richard Williamson   <rjw at apple.com>
  
  	Fixed 3511415.  We have to un-visually order visually ordered text
  	before passing to ATSU.
  
          Reviewed by John.
  
          * khtml/rendering/font.cpp:
          (Font::drawHighlightForText):
          (Font::drawText):
          * khtml/rendering/font.h:
          * khtml/rendering/render_text.cpp:
          (InlineTextBox::paintSelection):
          (RenderText::paintObject):
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (QPainter::drawText):
          (QPainter::drawHighlightForText):
          * kwq/WebCoreTextRenderer.h:
          * kwq/WebCoreTextRendererFactory.m:
          (WebCoreInitializeEmptyTextStyle):
  
  2003-12-17  Richard Williamson   <rjw at apple.com>
  
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::getAppletInstance):
          * khtml/html/html_objectimpl.h:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::getAppletInstanceForView):
          (KWQKHTMLPart::addPluginRootObject):
          (KWQKHTMLPart::cleanupPluginRootObjects):
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge init]):
  
  2003-12-17  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed 3469085: can't tab to all links on aintitcool.com
  
          * khtml/html/html_inlineimpl.cpp:
          (HTMLAnchorElementImpl::isFocusable): Re-implemented this to check width and height of
          all continuations, not just the main render object. Also, check the absoluteRects after
          checking all the render objects to catch things like floats.
          (HTMLAnchorElementImpl::isMouseFocusable): Clean up the code here a bit.
  
          * khtml/rendering/render_inline.h:
          * khtml/rendering/render_inline.cpp: (RenderInline::absoluteRects):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_object.cpp: (RenderObject::absoluteRects):
          * khtml/rendering/render_text.h:
          * khtml/rendering/render_text.cpp: (RenderText::absoluteRects):
          * kwq/KWQAccObject.mm: (boundingBoxRect):
          Use QValueList instead of QPtrList for clarity and to fix storage leaks.
  
  === Safari-118 ===
  
  2003-12-16  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3510956, crash on mezzoblue.com.  Relax the float-list searching code that runs when
  	a float is removed.
  	
          Reviewed by darin
  
          * khtml/rendering/render_object.cpp:
          (checkFloats):
          (RenderObject::removeFromObjectLists):
  
  2003-12-16  John Sullivan  <sullivan at apple.com>
  
          fixed <rdar://problem/3482852>: oft-seen, non-repro, nil-deref in 
          HTMLTokenizer::notifyFinished (snapfish.com, etc.)
          
          At least one of the dupes of this bug is a separate (still reproducible) issue;
          I'll clone it back to life and test the others.
  
          Reviewed by Darin.
  
          * khtml/html/htmltokenizer.cpp:
          (HTMLTokenizer::notifyFinished):
          Move check of cachedScript.isEmpty() until after scriptExecution()
          call, because cachedScript.isEmpty() value can be changed by that call.
  
  2003-12-15  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3508807, positions/sizes wrong for text elts and multi-line elts for accessibility.
  	
          Reviewed by john
  
          * khtml/rendering/render_inline.cpp:
          (RenderInline::absoluteRects):
          * khtml/rendering/render_inline.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::absoluteRects):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_text.cpp:
          (RenderText::absoluteRects):
          * khtml/rendering/render_text.h:
          * kwq/KWQAccObject.mm:
          (boundingBoxRect):
          (-[KWQAccObject position]):
          (-[KWQAccObject size]):
  
  2003-12-15  Richard Williamson   <rjw at apple.com>
  
  	Return 0 if the view doesn't have a bridge.
  
          Reviewed by John.
  
          * kwq/WebCoreBridge.mm:
          (rootForView):
  
  2003-12-15  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3508792.  Remove tables and cells as AxObjects.
  	
          Reviewed by john
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject role]):
          (-[KWQAccObject accessibilityIsIgnored]):
  
  2003-12-15  John Sullivan  <sullivan at apple.com>
  
          - fixed <rdar://problem/3510459>: REGRESSION (100-113): Pressing button at google.com 
          removes focus from text field
  
          Reviewed by Dave.
  
          * khtml/khtmlview.cpp:
          (KHTMLView::dispatchMouseEvent):
          Don't clear the focused widget when a mousedown occurs on a widget that is focusable
          in the abstract sense but is not mouse focusable or currently keyboard focusable. This
          matches the behavior of older Safaris (clicking in background or page text will make the
          webview itself be first responder, but clicking on a button won't).
  
  2003-12-14  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed 3458937: nil-deref in timed layout
  
          * khtml/khtmlview.cpp: (KHTMLView::layout): Add a nil check for m_part.
  
  2003-12-14  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed 3311205: click() on a file input type form element does not work bring up the file chooser as it does in IE
  
          * khtml/html/html_formimpl.cpp:
          (HTMLInputElementImpl::click): Add a case for FILE that calls RenderFileButton's click() function.
          Get rid of the default case and list more cases explicitly.
          (HTMLInputElementImpl::accessKeyAction): Change FILE from just focus to focus/click.
  
          * khtml/rendering/render_form.h: Added a click() function to RenderFileButton.
          * khtml/rendering/render_form.cpp:
          (RenderFileButton::slotTextChanged): Added call to onChange on the element to match text input
          fields; helpful for the test case Adobe supplied.
          (RenderFileButton::click): Added. Calls click() on KWQFileButton.
  
          * kwq/KWQFileButton.h: Added a click function.
          * kwq/KWQFileButton.mm: (KWQFileButton::click): Added. Calls performClick on the file button.
  
          * kwq/WebCoreBridge.h: Add a performClick method to WebCoreFileButton.
  
  2003-12-13  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3269212>: FILEMAKER: can't use Option objects created in a different window
  
          * khtml/ecma/kjs_binding.cpp:
          (ScriptInterpreter::updateDOMObjectDocument): Update per-document
  	caching for the DOM object - let it be protected by both the old
  	and the new document.
          * khtml/ecma/kjs_binding.h: Prototype new method.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::setDocument): New method to change a node's document pointer.
          (NodeImpl::checkAddChild): If the new child node is owned by the
  	wrong document but not actually in it, change its document (using
  	the two aforementioned methods) instead of throwing an exception.
  	* khtml/xml/dom_nodeimpl.h: Prototype new method.
  
  2003-12-14  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed 3332280: REGRESSION (74-85): setting src of iframe results in two GETs
  
          * khtml/html/html_baseimpl.h: Added openURL virtual function.
          * khtml/html/html_baseimpl.cpp:
          (HTMLFrameElementImpl::updateForNewURL): Call openURL to do the meat of the work,
          since it's different for frames and iframes.
          (HTMLFrameElementImpl::openURL): Move the part that's different for frames in here.
          (HTMLFrameElementImpl::parseAttribute): Call setLocation to share code.
          (HTMLFrameElementImpl::setLocation): Do nothing if the location is not changing.
          Not needed to fix this bug, but could eliminate other cases of extra GETs.
          (HTMLIFrameElementImpl::parseAttribute): Remove special handling of SRC, because now
          we will end up calling openURL, which will do the right thing for iframes.
          (HTMLIFrameElementImpl::openURL): Instead of doing the change to the frame directly,
          use updateWidget, since that's what we do for other changes to iframes. To trigger a
          call to updateWidget(), set needWidgetUpdate and mark the node changed.
  
  2003-12-13  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3507885>: REGRESSION (100-116): frames missing due to cross-domain check (derstandard.at)
          
  	* khtml/ecma/kjs_window.cpp:
          (Window::isSafeScript): Loosen the frame access rules a bit. We already allowed access to
  	a document loaded as empty from the parent or opener. Now also allow access from any document
  	in the same domain as the parent or opener, so that, for instance, a sibling frame can access it
  	so long as it is in the same domain as the parent.
  
  2003-12-13  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed 3506204: homepage.mac slide show window is wrong size on 2nd monitor
  
          * kwq/KWQApplication.mm: (QDesktopWidget::screenGeometry): Add code to flip the Y coordinate.
          This has no effect on the main screen, but a big effect on others. I used the same code to
          flip Y screen coordinates that is used KWQWindowWidget.mm and KWQKHTMLPartBrowserExtension.mm.
          * kwq/KWQKWinModule.mm: (KWinModule::workArea): Replaced the incorrect code to flip the Y
          coordinate here with correct code. The code flipped based on the frame of the main screen,
          but it needs to flip based on the frame of screen 0.
  
  2003-12-12  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3505208>: keys added to keychain from KEYGEN need better UI names
  
          Reviewed by rjw.
  
          * khtml/html/html_formimpl.cpp:
          (HTMLKeygenElementImpl::encoding): pass the page URL to signedPublicKeyAndChallengeString
          * kwq/KWQKSSLKeyGen.h:
          * kwq/KWQKSSLKeyGen.mm:
          (KSSLKeyGen::signedPublicKeyAndChallengeString): take a URL
          * kwq/WebCoreKeyGenerator.h:
          * kwq/WebCoreKeyGenerator.m:
          (-[WebCoreKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]): take a URL
  
  2003-12-12  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3254534, CSS background-image style should be loaded lazily only when used.
  	
          Reviewed by rjw
  
          * ChangeLog:
          * khtml/css/css_valueimpl.cpp:
          (CSSImageValueImpl::CSSImageValueImpl):
          (CSSImageValueImpl::~CSSImageValueImpl):
          (CSSImageValueImpl::image):
          * khtml/css/css_valueimpl.h:
          
  2003-12-11  David Hyatt  <hyatt at apple.com>
  
  	WebCore part of 3453214.  This ensures that all outline styles except for auto (which has a CG bug) will
  	be displayed properly during the PaintActionOutline phase.
  	
          Reviewed by john and darin
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paint):
          * khtml/rendering/render_box.cpp:
          (RenderBox::setStyle):
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::RenderCanvas):
          * khtml/rendering/render_canvas.h:
          (khtml::RenderCanvas::setMaximalOutlineSize):
          (khtml::RenderCanvas::maximalOutlineSize):
          * khtml/rendering/render_object.cpp:
          (RenderObject::maximalOutlineSize):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::paint):
          * khtml/rendering/render_table.cpp:
          (RenderTable::paint):
          (RenderTableSection::paint):
          (RenderTableCell::paint):
  
  2003-12-12  John Sullivan  <sullivan at apple.com>
  
          - fixed <rdar://problem/3508825>: REGRESSION (100-116): crash in 
          HTMLGenericFormElementImpl::attach at sonyericsson.com
  
          Reviewed by Maciej.
  
          * khtml/html/html_formimpl.cpp:
          (HTMLGenericFormElementImpl::attach):
          Move a few lines inside an existing nil check to prevent nil dereference.
  
  2003-12-12  John Sullivan  <sullivan at apple.com>
  
          - fixed <rdar://problem/3508760>: tabbing to out-of-sight link behaves 
          differently than tabbing to out-of-sight form control
  
          Reviewed by Dave.
  
          * kwq/KWQScrollView.h:
          * kwq/KWQScrollView.mm:
          (QScrollView::ensureVisible):
          added comments and changed parameter names to reveal differences between
          what we've implemented and what QScrollView was intended to do.
          (QScrollView::ensureRectVisibleCentered):
          New method that calls _KWQ_scrollRectToVisible, which is the method
          we use when scrolling to reveal form controls.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::nextKeyViewInFrame):
          call ensureRectVisibleCentered so tabbing to a link will use the
          same scroll-to-reveal code as tabbing to a form control
          
  2003-12-11  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3507856>: XMLHttpRequest xhtml test displays but doesn't load
  
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequestProtoFunc::tryCall): complete the URL using the document,
  	not the htmlDocument.
  
  2003-12-12  Richard Williamson   <rjw at apple.com>
  
  	Replace call to global functions with static member functions.
  
          Reviewed by Ken.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::cleanupPluginRootObjects):
          * kwq/WebCoreBridge.mm:
          (rootForView):
          (-[WebCoreBridge init]):
  
  2003-12-11  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3464315>: createDocument creates document with initial child element, unlike other browsers
  	
          * khtml/xml/dom_docimpl.cpp:
          (DOMImplementationImpl::createDocument): Don;t add initial element.
  
  2003-12-11  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin. 
  
  	<rdar://problem/3507863>: XMLHttpRequest should not parse response if HTML
          
  	* khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::getValueProperty):
  
  2003-12-11  Richard Williamson   <rjw at apple.com>
  
  	Cleaned up and verified reference counting scheme, and
  	dereferencing of vended JavaScript objects when applet is
  	destroyed (actually when part is destroyed).
  
          Reviewed by Ken.
  
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::~KWQKHTMLPart):
          (KWQKHTMLPart::getAppletInstanceForView):
          (KWQKHTMLPart::addPluginRootObject):
          (KWQKHTMLPart::cleanupPluginRootObjects):
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (rootForView):
          (-[WebCoreBridge init]):
  
  2003-12-11  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3507862>: XMLHttpRequest documents that reference external resources (e.g. stylesheets) cause crash
  
          * khtml/html/html_headimpl.cpp:
          (HTMLLinkElementImpl::process):
          * khtml/html/htmltokenizer.cpp:
          (HTMLTokenizer::scriptHandler):
          * khtml/xml/dom_xmlimpl.cpp:
          (ProcessingInstructionImpl::checkStyleSheet):
          * khtml/xml/xml_tokenizer.cpp:
          (XMLHandler::processingInstruction):
          (XMLTokenizer::executeScripts):
  
  2003-12-11  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Chris.
  
  	<rdar://problem/3507859>: Status text should only include "OK", not full "HTTP/1.0 200 OK" status line
  	
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::getStatusText): Include only the status
  	text, not the full status line.
  
  === Safari-117 ===
  
  2003-12-11  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3507164, scrolling really slow on hixie's web forms spec page.  Hixie has 12 little transparent layers
          at various points on this page, and beginning/ending transparency on only those 12 layers as you scroll
          is enough to kill scrolling performance.
  
  	This patch works around the issue by lazily beginning transparency layers only when we determine that
  	we're actually painting a descendant layer of a transparent ancestor or a transparent layer.
  
  	Also fixing QColor's comparison operator.  It was broken and not comparing the "valid" bit, so invalid and
  	valid colors were being assumed to be the same.
  
  	Also fixed the render dumper to not dump transparent and invalid background colors and fixed it do dump the
  	alpha for colors with an alpha < 0xFF.
  	
  	Reviewed by mjs (opacity changes), darin (color changes) and john (render tree dumper changes)
  
          * ChangeLog:
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::RenderLayer):
          (RenderLayer::beginTransparencyLayers):
          (RenderLayer::paint):
          (RenderLayer::paintLayer):
          * khtml/rendering/render_layer.h:
          * kwq/KWQColor.h:
          (operator==):
          (operator!=):
          * kwq/KWQColor.mm:
          (QColor::name):
          * kwq/KWQRenderTreeDebug.cpp:
          (operator<<):
  
  2003-12-11  Ken Kocienda  <kocienda at apple.com>
  
          * kwq/KWQLoader.mm:
          (KWQCacheObjectExpiresTime): Fixed deployment build bustage.
  
  2003-12-09  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Darin
          
          <rdar://problem/3505444>: WebCore cache does not use expiration dates on cache items
          
          * khtml/misc/loader.cpp:
          (Loader::slotFinished): Don't reset expiration date. We set this once in
          slotReceivedResponse.
          (Loader::slotReceivedResponse): Call new KWQ function to get a cache object's
          expiration date using its NSURLResponse data.
          (Cache::requestImage): Don't reset expiration date. We set this once in
          slotReceivedResponse, and we do not want the value from the DocLoader
  	anyway.
          (Cache::requestStyleSheet): Ditto.
          (Cache::requestScript): Ditto.
          * kwq/KWQLoader.h:
          * kwq/KWQLoader.mm:
          (KWQCacheObjectExpiresTime): New function. Call over bridge to get access
          to SPI in NSURLResponse to calculate expiration time.
          * kwq/WebCoreBridge.h: Declare bridge method.
  
  2003-12-10  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3504156>: XMLHttpRequest reuse test fails
  	<rdar://problem/3505158>: XMLHttpRequest "abort with open" test fails
  
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::open):
          (KJS::XMLHttpRequest::abort):
          (KJS::XMLHttpRequestProtoFunc::tryCall):
  
  2003-12-10  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3507175>: Setting timeout function can allocate JS objects without lock
  
          * khtml/ecma/kjs_window.cpp:
          (ScheduledAction::execute): Lock interpreter around code that
  	might allocate JS objects.
  
  2003-12-10  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3507097, overflow:auto should include the height of the horizontal scrollbar when the height
  	of the block is auto.
  	
          Reviewed by darin
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlock):
          (khtml::RenderBlock::layoutBlockChildren):
  
  2003-12-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed 3506739: nil-deref in DocumentImpl::setSelection triple clicking (generated content)
  
          * khtml/khtml_part.cpp: (KHTMLPart::khtmlMousePressEvent): Check for the case where
          m_selectionEnd is 0. This doesn't fix the behavior completely, but it does prevent a crash.
  
  2003-12-10  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Richard.
  
  	<rdar://problem/3487160>: Implement synchronous loading for XMLHttpRequest
          
  	* khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::XMLHttpRequest):
          (KJS::XMLHttpRequest::send):
          (KJS::XMLHttpRequest::abort):
          (KJS::XMLHttpRequest::processSyncLoadResults):
          (KJS::XMLHttpRequest::slotRedirection):
          (KJS::XMLHttpRequest::slotData):
          * khtml/ecma/xmlhttprequest.h:
          * kwq/KWQLoader.h:
          * kwq/KWQLoader.mm:
          (KWQHeaderStringFromDictionary):
          (KWQServeSynchronousRequest):
          (KWQResponseHeaderString):
          * kwq/WebCoreBridge.h:
  
  2003-12-10  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed 3506706: REGRESSION (100-115): onkeyup handlers called twice for active input fields
  
          * kwq/KWQTextArea.mm: (-[KWQTextAreaTextView keyUp:]): Don't call super because we
          don't want to pass the event down the responder chain.
          * kwq/KWQTextField.mm: (-[KWQTextField textView:shouldHandleEvent:]): Return NO for
          key up events because we don't want to pass the event down the responder chain.
  
  2003-12-10  Richard Williamson   <rjw at apple.com>
  
  	Added method to get to the bridge from a view.  This is
  	used to ultimately get the part and KJS::Window for a
  	particular applet.
  
          Reviewed by Hyatt.
  
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (rootForView):
          (-[WebCoreBridge init]):
          * kwq/WebCoreViewFactory.h:
          * kwq/WebCoreViewFactory.m:
  
  2003-12-10  John Sullivan  <sullivan at apple.com>
  
          - WebCore part of fix for:
          <rdar://problem/3505231>: REGRESSION (100-114): Some sites autoscroll to bottom of page when loading
  
          Reviewed by Darin.
  
          * kwq/KWQNSViewExtras.h:
          * kwq/KWQNSViewExtras.m:
          (-[NSView _KWQ_scrollPointRecursive:]):
          (-[NSView _KWQ_scrollPointRecursive:inView:]):
          new methods, similar to existing scrollRect methods
          except that the preferred position for the point is
          the top-left corner rather than centered in the visible area
          
          * kwq/KWQScrollView.h:
          * kwq/KWQScrollView.mm:
          (QScrollView::setContentsPosRecursive):
          new method, calls _KWQ_scrollPointRecursive:
  
          * khtml/khtml_part.cpp:
          (KHTMLPart::gotoAnchor):
          call setContentsPosRecursive instead of setContentsPos; also remove
          the 50 pixel offset that upset Hyatt so.
          
  
  2003-12-10  Chris Blumenberg  <cblu at apple.com>
  
          * kwq/KWQKSSLKeyGen.mm:
          (KSSLKeyGen::signedPublicKeyAndChallengeString): removed unnecessary includes
  
  2003-12-10  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3505846, overflow:auto region doesn't update when scrolled.  The child layers inside an overflow:auto
  	block were not updating their positions.
  	
          Reviewed by john
  
          * khtml/khtmlview.cpp:
          (KHTMLView::layout):
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::updateLayerPositions):
          (RenderLayer::scrollToOffset):
          * khtml/rendering/render_layer.h:
  
  2003-12-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3505795>: loading invalid XML document crashes trying to create h1 element
  	<rdar://problem/3504158>: XMLHttpRequest xhtml test totally fails
          
  	* khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::isValidName): include "0123456789" instead of
  	"0-9", it's not a regexp it's just a list of characters.
  
  2003-12-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3504155>: Safari fails XMLHttpRequest abort test
          
  	* khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequestProtoFunc::tryCall): Avoid throwing an
  	exception after send().
  
  2003-12-09  David Hyatt  <hyatt at apple.com>
  
  	Rename -apple-aqua to auto for outline styles.
  	
          Reviewed by darin
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyRule):
          * khtml/css/cssvalues.c:
          (hash_val):
          (findValue):
          * khtml/css/cssvalues.h:
          * khtml/css/cssvalues.in:
          * khtml/css/html4.css:
          * khtml/rendering/render_inline.cpp:
          (RenderInline::paintObject):
          * khtml/rendering/render_object.cpp:
          (RenderObject::drawBorder):
          (RenderObject::paintOutline):
          * khtml/rendering/render_style.h:
          (khtml::):
          (khtml::OutlineValue::OutlineValue):
          (khtml::RenderStyle::outlineStyleIsAuto):
          (khtml::RenderStyle::outlineOffset):
          (khtml::RenderStyle::setOutlineStyle):
          (khtml::RenderStyle::setOutlineOffset):
          * kwq/KWQRenderTreeDebug.cpp:
          (printBorderStyle):
  
  2003-12-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3487195>: Implement responseXML property for XMLHttpRequest
          
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::getValueProperty): Implemented responseXML by parsing the
  	document and returning it.
          (KJS::XMLHttpRequest::XMLHttpRequest): Initialize new field
          * khtml/ecma/xmlhttprequest.h:
  
          * khtml/ecma/kjs_window.cpp: 
  	(Windw::get): Forgot this in last commit; add XMLSerializer
  	constructor.
          * khtml/ecma/kjs_window.lut.h:
  	* khtml/ecma/Makefile.am: Forgot to include this in the last commit.
  
  2003-12-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Richard.
  
  	<rdar://problem/3504049>: XMLSerializer object and serializeToString method needed for XMLHttpRequest testing
  
  	Also fixed some lasst-minute mistakes in the DOM serialization
  	code that was already there.
  	
          * WebCore.pbproj/project.pbxproj:
          * khtml/dom/dom_doc.h:
          * khtml/ecma/Makefile.am:
          * khtml/ecma/kjs_window.cpp:
          (Window::get):
          * khtml/ecma/kjs_window.h:
          (KJS::Window::):
          * khtml/ecma/kjs_window.lut.h:
          (KJS::):
          * khtml/ecma/xmlserializer.cpp: Added.
          (KJS::XMLSerializerConstructorImp::XMLSerializerConstructorImp):
          (KJS::XMLSerializerConstructorImp::implementsConstruct):
          (KJS::XMLSerializerConstructorImp::construct):
          (KJS::):
          (KJS::XMLSerializer::XMLSerializer):
          (KJS::XMLSerializerProtoFunc::tryCall):
          * khtml/ecma/xmlserializer.h: Added.
          (KJS::XMLSerializer::toBoolean):
          (KJS::XMLSerializer::classInfo):
          (KJS::XMLSerializer::):
          * khtml/ecma/xmlserializer.lut.h: Added.
          (KJS::):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::toString):
          (DocumentFragmentImpl::toString):
          * khtml/xml/dom_elementimpl.cpp:
          (AttrImpl::toString):
          (ElementImpl::toString):
  
  2003-12-09  David Hyatt  <hyatt at apple.com>
  
  	Implement start() and stop() for marquees.
  	
          Reviewed by darin
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElement::classInfo):
          (KJS::HTMLElementFunction::tryCall):
          * khtml/ecma/kjs_html.h:
          (KJS::HTMLElement::):
          * khtml/ecma/kjs_html.lut.h:
          (KJS::):
  
  2003-12-09  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed 3505277: nil-deref in ownerElement after choosing item from menu at projectnissan.com
  
          * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::dispatchWindowEvent): Add check for nil.
  
  2003-12-09  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::saveLocationProperties): Add locking around the call to get the location
          since it can allocate.
          (KWQKHTMLPart::restoreLocationProperties): Ditto.
  
  2003-12-09  David Hyatt  <hyatt at apple.com>
  
  	Fix for mojibake bg painting problem on bofa.com.  The bug # is 3487144.  Transparent colors were not
  	being handled properly when specified on the body.
  	
          Reviewed by darin
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::paintRootBoxDecorations):
          (RenderBox::paintBackgroundExtended):
  
  2003-12-09  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed 3505391: REGRESSION (100-116): pages that move cells around don't repaint correctly
  
          * khtml/rendering/render_table.cpp: (RenderTableSection::layoutRows): Added code
          similar to the code in RenderBlock::layoutBlock, but for table cells.
  
  2003-12-09  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          * khtml/ecma/kjs_events.cpp: (JSEventListener::handleEvent): Add locking around the call to
          push event handler scope. Without this, we hit the "allocated without locking" assertion.
  
  2003-12-09  David Hyatt  <hyatt at apple.com>
  
  	Fix the dirty rect checks on various render_objects to be more accurate so that page-break properties don't
  	have mojibake when printing.
  	
          Reviewed by john
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paint):
          * khtml/rendering/render_flow.cpp:
          (RenderFlow::paintLineBoxBackgroundBorder):
          (RenderFlow::paintLineBoxDecorations):
          * khtml/rendering/render_replaced.cpp:
          (RenderReplaced::paint):
          * khtml/rendering/render_table.cpp:
          (RenderTable::paint):
  
  2003-12-09  Darin Adler  <darin at apple.com>
  
          Reviewed by Richard.
  
          - fixed 3500408: Web Kit should pass the MAYSCRIPT attribute from the APPLET tag to the Java plug-in
  
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::parseAttribute): Allow the "mayscript" attribute.
          (HTMLAppletElementImpl::createRenderer): Pass the value of the "mayscript" attribute
          as an argument named "mayScript".
  
          * khtml/misc/htmlattrs.in: Added "mayscript".
          * khtml/misc/htmlattrs.c: Regenerated.
          * khtml/misc/htmlattrs.h: Regenerated.
  
  2003-12-09  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	<rdar://problem/3501030>: JavaScript sites crash when a PAC file is in place (WebCore,Safari 1.2)
  	
          * khtml/ecma/kjs_events.cpp:
          (JSEventListener::handleEvent): Lock interpreter when needed.
          (JSLazyEventListener::parseCode): Likewise.
          (KJS::getDOMEvent): Likewise.
          * khtml/ecma/kjs_proxy.cpp:
          (KJSProxyImpl::evaluate): Likewise.
          (KJSProxyImpl::initScript): Likewise.
  
  2003-12-09  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3491235, really make <script src="..."/> work in HTML.  My original attempt to fix this only made
  	the tag flat, but did not ensure that the script got processed.
  	
          Reviewed by john
  
          * khtml/html/htmltokenizer.cpp:
          (HTMLTokenizer::parseTag):
  
  2003-12-08  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3503652, news.com misrenders badly (footer is out of position).  My fix to 3495748 caused this
  	regression.  I made the tag priority of <nobr> too high.  It needed to be the same as <div>, and I
  	accidentally made it higher.  I intended for it to be the same as <div>.
  
  	I also had to make a fix (now that <nobr> has a higher priority) to ensure <nobr> can't be nested inside
  	other <nobr>.  
  
  	Both fixes were required to make news.com render correctly again.
  	
          Reviewed by darin
  
          * khtml/html/dtd.cpp:
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::getElement):
  
  2003-12-08  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3234676>: Support for KEYGEN tag (ie 509 email certificates from www.thawte.com)
  
          Reviewed by mjs.
  
          * WebCore-combined.exp:
          * WebCore.exp:
          * WebCore.pbproj/project.pbxproj:
          * khtml/html/html_formimpl.cpp:
          (HTMLKeygenElementImpl::parseAttribute): store the KEYTYPE attribute
          (HTMLKeygenElementImpl::encoding): call KSSLKeyGen::signedPublicKeyAndChallengeString
          * khtml/html/html_formimpl.h: remove 2 declared but unimplemented methods
          * khtml/misc/htmlattrs.c: generated changes
          (hash_attr):
          (findAttr):
          * khtml/misc/htmlattrs.h: generated change
          * khtml/misc/htmlattrs.in: added KEYTYPE
          * kwq/KWQKSSLKeyGen.h:
          * kwq/KWQKSSLKeyGen.mm:
          (KSSLKeyGen::supportedKeySizes): call renamed strengthMenuItemTitles
          (KSSLKeyGen::signedPublicKeyAndChallengeString): new, calls [WebCoreKeyGenerationFactory signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:] 
          * kwq/WebCoreKeyGenerationFactory.h: Added.
          * kwq/WebCoreKeyGenerationFactory.m: Added.
          (+[WebCoreKeyGenerationFactory sharedFactory]):
          (-[WebCoreKeyGenerationFactory init]):
          (-[WebCoreKeyGenerationFactory strengthMenuItemTitles]):
          (-[WebCoreKeyGenerationFactory signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:]):
          * kwq/WebCoreLocalizedStringFactory.h: Removed.
          * kwq/WebCoreLocalizedStringFactory.m: Removed.
  
  2003-12-08  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	<rdar://problem/3504047>: XMLHttpRequest object needs onload event
          
  	* khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::getValueProperty): Implemented onload property.
          (KJS::XMLHttpRequest::putValue): Ditto.
          (KJS::XMLHttpRequest::XMLHttpRequest): Ditto.
          (KJS::XMLHttpRequest::changeState): Ditto.
          * khtml/ecma/xmlhttprequest.h:
          * khtml/ecma/xmlhttprequest.lut.h: Regenerated.
  
  2003-12-08  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3503022, asahi.com is too wide.  Bugs in line breaking of breakable Japanese characters caused
  	the breaks to be ignored.
  	
          Reviewed by john
  
          * khtml/rendering/render_text.cpp:
          (RenderText::calcMinMaxWidth):
  
  2003-12-05  David Hyatt  <hyatt at apple.com>
  
  	Fix the position method to return screen coords like it should and to use the lower left corner instead of
  	the upper left.
  	
          Reviewed by john
  
          * kwq/KWQAccObject.h:
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject position]):
          (-[KWQAccObject size]):
  
  2003-12-07  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed 3502347: REGRESSION (100-116): bottom of login window sometimes missing (TR background image)
  
          * khtml/rendering/render_object.h: Added setPixmap.
          * khtml/rendering/render_object.cpp: (RenderObject::setPixmap): Moved this
          function here from RenderBox. This code is needed for the table row class and
          similar classes that supply a background image that is drawn by the table cell,
          and those are not RenderBox subclasses.
  
          * khtml/rendering/render_box.cpp: Removed setPixmap.
          * khtml/rendering/render_box.h: Removed setPixmap.
  
  2003-12-06  John Sullivan  <sullivan at apple.com>
  
          - fixed <rdar://problem/3502655>: REGRESSION: Repro crash at espn.com
  
          Reviewed by Darin.
  
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::getAppletInstance):
          Check for nil RenderApplet before dereferencing rather than after.
  
  2003-12-05  David Hyatt  <hyatt at apple.com>
  
  	Add support for link clicking as an accessibility action.
  	
          Reviewed by john
  
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject anchorElement]):
          (-[KWQAccObject role]):
          (-[KWQAccObject accessibilityAttributeNames]):
          (-[KWQAccObject accessibilityActionNames]):
          (-[KWQAccObject accessibilityActionDescription:]):
          (-[KWQAccObject accessibilityPerformAction:]):
  
  2003-12-05  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3487222>: Add ability to create working fully standalone document object
  	
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::CSSStyleSelector):
          (khtml::CSSStyleSelector::addSheet):
          (khtml::CSSStyleSelector::initForStyleResolve):
          (khtml::CSSStyleSelector::applyRule):
          * khtml/dom/dom_doc.cpp:
          (DOM::Document::part):
          * khtml/dom/dom_doc.h:
          * khtml/ecma/kjs_dom.cpp:
          (DOMDocument::getValueProperty):
          (KJS::checkNodeSecurity):
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocFunction::tryCall):
          (KJS::HTMLDocument::tryGet):
          (KJS::HTMLDocument::putValue):
          (KJS::HTMLElement::tryGet):
          (Image::notifyFinished):
          * khtml/ecma/kjs_traversal.cpp:
          (JSNodeFilter::acceptNode):
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::changeState):
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::insertedIntoDocument):
          (HTMLFrameElementImpl::isURLAllowed):
          (HTMLFrameElementImpl::attach):
          (HTMLFrameElementImpl::detach):
          (HTMLFrameElementImpl::contentDocument):
          (HTMLIFrameElementImpl::attach):
          * khtml/html/html_documentimpl.cpp:
          (HTMLDocumentImpl::referrer):
          (HTMLDocumentImpl::lastModified):
          * khtml/html/html_formimpl.cpp:
          (HTMLFormElementImpl::formData):
          (HTMLFormElementImpl::prepareSubmit):
          (HTMLFormElementImpl::submit):
          (HTMLFormElementImpl::reset):
          (HTMLGenericFormElementImpl::isKeyboardFocusable):
          (HTMLGenericFormElementImpl::defaultEventHandler):
          * khtml/html/html_headimpl.cpp:
          (HTMLBaseElementImpl::process):
          (HTMLLinkElementImpl::process):
          * khtml/html/html_inlineimpl.cpp:
          (HTMLAnchorElementImpl::isKeyboardFocusable):
          (HTMLAnchorElementImpl::defaultEventHandler):
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::createRenderer):
          (HTMLAppletElementImpl::getAppletInstance):
          (HTMLEmbedElementImpl::rendererIsNeeded):
          (HTMLObjectElementImpl::rendererIsNeeded):
          * khtml/html/htmltokenizer.cpp:
          (HTMLTokenizer::scriptExecution):
          (HTMLTokenizer::parseTag):
          * khtml/rendering/render_applet.cpp:
          (RenderApplet::RenderApplet):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::setTitle):
          (DocumentImpl::part):
          (DocumentImpl::close):
          (DocumentImpl::processHttpEquiv):
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::dispatchEvent):
          * kwq/KWQAccObject.mm:
          (-[KWQAccObject textUnderElement]):
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::partForNode):
          (KWQKHTMLPart::attributedString):
  
  2003-12-05  Richard Williamson   <rjw at apple.com>
  
  	Fixed 3501885.  Added null test to returned node from collection.
  
          Reviewed by John.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLCollection::tryGet):
  
  2003-12-04  Richard Williamson   <rjw at apple.com>
  
  	Added support for named applet access from document node.
  	Factored creation of KJS::Values from RuntimeObjectImps.
  
          Reviewed by Chris.
  
          * khtml/ecma/kjs_dom.cpp:
          (KJS::getDOMNamedNodeMap):
          (KJS::getRuntimeObject):
          * khtml/ecma/kjs_dom.h:
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLDocument::tryGet):
          (KJS::HTMLElement::tryGet):
          (KJS::HTMLCollection::tryGet):
  
  2003-12-04  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed 3498712: REGRESSION (100-115): Safari aborts at http://www11.dht.dk/~blangstrup_org/
  
          This was an uncaught exception thrown by DocumentImpl. But the design of KHTML DOM is that
          "impl" classes return exception codes; they don't throw exceptions.
  
          * khtml/dom/dom_doc.cpp:
          (DOM::Document::createElement): Throw exception if necessary. The impl function now returns
          an exception code.
          (DOM::Document::createElementNS): Ditto.
  
          * khtml/html/html_documentimpl.h: Add exception code parameter to createElement.
          * khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::createElement): Pass along the
          exception code from the lower level.
  
          * khtml/xml/dom_docimpl.h: Add exception code parameters to createElement, createElementNS,
          and createHTMLElement.
          * khtml/xml/dom_docimpl.cpp:
          (DOMImplementationImpl::createDocument): Handle exception code from createElementNS.
          (DocumentImpl::createElement): Add exception code parameter, not set since there is
          no exception.
          (DocumentImpl::importNode): Handle exception code from createElementNS.
          (DocumentImpl::createElementNS): Add exception code parameter. Propagate the exception
          codes that we get from createHTMLElement and setPrefix.
          (DocumentImpl::createHTMLElement): Add exception code parameter. Use an exception code
          rather than a C+exception for INVALID_CHARACTER_ERR.
  
          * khtml/xml/dom_elementimpl.cpp: (ElementImpl::cloneNode): Pass exception code parameter to
          createElement.
  
          * khtml/xml/xml_tokenizer.cpp:
          (XMLHandler::startElement): Pass exception code parameter to createElementNS, and return false
          if it is not zero. This is where the bug happened. Before we would get an exception from
          createElementNS, but "impl" functions are not supposed to throw in KHTML's DOM.
          (XMLTokenizer::finish): Add various exception code parameters to compile, but we know we won't
          get any exceptions.
  
          * kwq/WebCoreDOMDocument.mm:
          (-[WebCoreDOMDocument createElement:]): Pass an (ignored) exception code parameter.
          (-[WebCoreDOMDocument createElementNS::]): Pass an (ignored) exception code parameter.
  
  === Safari-116 ===
  
  2003-12-03  Richard Williamson   <rjw at apple.com>
  
  	LiveConnect:  Removed some debugging.
  
          Reviewed by Chris.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLCollection::tryGet):
  
  2003-12-03  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3475761, list bullets mislayout after text zooming.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::setStyle):
  
  2003-12-03  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3493356, table cells didn't repaint properly.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_object.cpp:
          (RenderObject::repaintObjectsBeforeLayout):
          * khtml/rendering/render_table.cpp:
          (RenderTableCell::getAbsoluteRepaintRect):
          * khtml/rendering/render_table.h:
  
  2003-12-03  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3495748, hang in parser at ocelot.ca.  <nobr> needs to have very high priority (equal to the
  	priority of blocks like h1-6, p, and div), so that unclosed <nobr>s will close divs and ps.
  	
          Reviewed by gramps
  
          * khtml/html/dtd.cpp:
  
  2003-12-03  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3475767, hang at saabnet.com.  Fix h1-h6 to be more tolerant regarding allowed child elements, to avoid
  	deeply nested pages.
  	
          Reviewed by darin
  
          * khtml/html/dtd.cpp:
          (DOM::checkChild):
  
  2003-12-03  John Sullivan  <sullivan at apple.com>
  
          - fixed these two design issues after Dave and I talked to HI:
          <rdar://problem/3497072>: There shouldn't be a focus ring around clicked regions
          <rdar://problem/3499315>: Focus ring should use aqua color always
  
          Reviewed by Dave.
  
          * khtml/css/html4.css:
  
  2003-12-03  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	<rdar://problem/3395759>: results of parent.document.getElementsByTagName can't be added to string
          
  	* khtml/ecma/kjs_dom.cpp:
          (DOMNodeList::toPrimitive): Always convert to string instead of trying to convert
  	to number and failing, as is done for DOMNode.
          * khtml/ecma/kjs_dom.h: Prototype new method.
  
  2003-12-02  Richard Williamson   <rjw at apple.com>
  
  	Return a value that is backed by RuntimeObjectImpl, instead
  	of a DOM object for applet[0].  This is better than having
  	the DOM object redirect to the RuntimeObjectImpl.
  
          Reviewed by Chris.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLCollection::tryGet):
  
  2003-12-02  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	<rdar://problem/3488220>: namespaces test from David Faure causes Safari to crash in DOM::DocumentImpl::createElementNS
  	
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::createElementNS): Check if new element is NULL
  	before messing with it, to avoid a crash.
  
  2003-12-02  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3497999, null check the text() of RenderTexts to avoid a crash in current().
  	
          Reviewed by kocienda
  
          * khtml/rendering/bidi.cpp:
          (khtml::BidiIterator::current):
  
  2003-12-02  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	Implemented a simple form of document serialization, enough to take care of:
  
  	<rdar://problem/3487190>: implement send of DOMDocument for XMLHttpRequest
  
          * khtml/dom/dom_doc.cpp:
          (DOM::Document::toString):
          * khtml/dom/dom_doc.h:
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::urlMatchesDocumentDomain):
          (KJS::XMLHttpRequestProtoFunc::tryCall):
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::toString):
          * khtml/html/html_elementimpl.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::toString):
          (DocumentFragmentImpl::toString):
          (DocumentTypeImpl::copyFrom):
          (DocumentTypeImpl::toString):
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_elementimpl.cpp:
          (AttrImpl::toString):
          (ElementImpl::openTagStartToString):
          (ElementImpl::toString):
          * khtml/xml/dom_elementimpl.h:
          * khtml/xml/dom_nodeimpl.h:
          * khtml/xml/dom_textimpl.cpp:
          (CommentImpl::toString):
          (TextImpl::toString):
          (CDATASectionImpl::toString):
          * khtml/xml/dom_textimpl.h:
          * khtml/xml/dom_xmlimpl.cpp:
          (EntityImpl::toString):
          (EntityReferenceImpl::toString):
          (ProcessingInstructionImpl::setStyleSheet):
          (ProcessingInstructionImpl::toString):
          * khtml/xml/dom_xmlimpl.h:
  
  2003-12-02  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3493677, containingBlock() null because we tried to support position:relative on table rows.  Fix
  	is to disallow this.
  	
          Reviewed by kocienda
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::adjustRenderStyle):
  
  2003-12-02  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3493697, nil-deref in bidi code.  Need to null-check strings with no length.
  	
          Reviewed by john
  
          * khtml/rendering/bidi.cpp:
          (khtml::addRun):
  
  2003-12-02  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3495746, nil deref of containing block (frame inside frameset).
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::containingBlockWidth):
  
  2003-12-02  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
          * kwq/KWQRect.h:
          * kwq/KWQRect.mm:
          (QRect::bottomRight): Added helper.
  
  2003-12-02  Maciej Stachowiak  <mjs at apple.com>
  
  	Merged the following patch from David Faure to fix:
  
  	<rdar://problem/3497663>: Can't look up frames by number using windw[i] notation
  
      2003-11-25  David Faure  <faure at kde.org>
  
          * ecma/kjs_window.cpp: Implement hasProperty and get for frames by number in Window,
          to fix window[0] and parent[1] etc. (#56983)
  
  2003-11-21  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Richard.
  
  	<rdar://problem/3487185>: implement security checks for XMLHttpRequest
  	
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::open): Refuse to start if the URL is not one
  	this document is allowed to access.
          (KJS::XMLHttpRequest::slotRedirection): Stop the job if we redirect
  	to a URL the home document is not allowed to access.
          * kwq/KWQResourceLoader.mm:
          (-[KWQResourceLoader redirectedToURL:]): emit the right signal
          * kwq/WebCoreResourceLoader.h: Prototype new method
  
  2003-12-01  Richard Williamson   <rjw at apple.com>
  
  Fixed parameter passing to applet.  Child elements are NOT valid in setStyle().  So we now either create the widget before needed with createWidgetIfNecessary.  This either happens when doing the first layout, or when JavaScript first references the applet element.
  
  Fixed early delete of the the main applet instance.  When the JS collector cleaned up the last JS object referring to the applet instance we were deleting the java instance.  This caused the applet instance cached on the applet element to be invalid.  The applet instance is the only Java object not to be cleaned up by the JS collector.
  
  Added support for getting at Java object fields.
  
          Reviewed by Chris.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElement::tryGet):
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::createRenderer):
          (HTMLAppletElementImpl::getAppletInstance):
          * khtml/html/html_objectimpl.h:
          * khtml/rendering/render_applet.cpp:
          (RenderApplet::createWidgetIfNecessary):
          (RenderApplet::layout):
          * khtml/rendering/render_applet.h:
          (khtml::RenderApplet::renderName):
  
  2003-12-01  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed 3496960: nil-deref in idFromNode inside elementDoesAutoComplete:
  
          * kwq/WebCoreBridge.mm:
          (inputElementFromDOMElement): Added nil check.
          (formElementFromDOMElement): Added nil check.
  
  2003-12-01  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3490959, collapsed border tables don't paint backgrounds.
  	
          Reviewed by darin
  
          * khtml/rendering/render_table.cpp:
          (RenderTable::setStyle):
          (RenderTable::paint):
          (RenderTable::paintBoxDecorations):
          * khtml/rendering/render_table.h:
  
  2003-12-01  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed 3493939: ordered lists with type="A" roll over to A' after X rather than after Z
  
          * khtml/rendering/render_list.cpp: (toLetter): Change 24 to 26.
  
  === Safari-115 ===
  
  2003-11-21  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	WebCore part of fix for:
  	
  	<rdar://problem/3487134>: Implement http request/response status and headers for XMLHttpRequest
  
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::getValueProperty): Call appropriate methods for
  	status and statusText.
          (KJS::XMLHttpRequest::send): Set request headers as "customHeaders"
  	metadata property.
          (KJS::XMLHttpRequest::setRequestHeader): Simply append to header
  	string.
          (KJS::XMLHttpRequest::getAllResponseHeaders): Return the header string
  	except for the first line.
  	(KJS::XMLHttpRequest::getResponseHeader): Scan the response header
  	string for the header field. Not sure if it's worth being more
  	efficient.
          (KJS::XMLHttpRequest::getStatus): Try to pull a code out
  	of the status line.
          (KJS::XMLHttpRequest::getStatusText): Pull the first line
  	off the headers (if any), otherwise return undefined.
          (KJS::XMLHttpRequest::slotData): The first time through, save
  	the response headers, retrieved from "HTTP-Headers" metadata
  	property.
          (KJS::XMLHttpRequestProtoFunc::tryCall): Make setRequestHeader,
  	getResponseHeader, getAllResponseHeaders call the right thing.
          * khtml/ecma/xmlhttprequest.h:
          * kwq/KWQKJobClasses.h:
          * kwq/KWQKJobClasses.mm:
          (KIO::TransferJobPrivate::TransferJobPrivate): Added header
  	support.
          (KIO::TransferJobPrivate::~TransferJobPrivate):
          (KIO::TransferJob::assembleResponseHeaders): Get a header string
  	out of the response if needed.
          (KIO::TransferJob::queryMetaData): Special-case "HTTP-Headers".
          (KIO::TransferJob::emitReceivedResponse): Save response.
          * kwq/KWQLoader.h:
          * kwq/KWQLoader.mm:
          (-[NSDictionary _webcore_initWithHeaderString:]): Helper method to
  	turn a string of header fields into a dictionary.
          (KWQServeRequest): Pass custom headers through.
          (KWQResponseMIMEType): Admit it's an NSURLResponse *.
          (KWQResponseHeaderString): Assembled status code and response
  	header fields into response header. Cheat a little on the status
  	line.
          * kwq/KWQResourceLoader.mm:
          (-[KWQResourceLoader receivedResponse:]): Admit it's an
  	NSURLResponse *.
          * kwq/WebCoreResourceLoader.h: Ditto.
  	* kwq/WebCoreBridge.h: Add customHeader: arguments.
  
  2003-11-21  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3491907>: When viewing applet, view hierarchy was an empty KWQView
  
          Reviewed by rjw.
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/html/html_objectimpl.cpp: removed setupApplet because that work is done when the applet widget is created
          (HTMLAppletElementImpl::createRenderer): pass the PARAM args to the render object
          (HTMLAppletElementImpl::getAppletInstance): don't call setupApplet
          * khtml/rendering/render_applet.cpp:
          (RenderApplet::RenderApplet): store args and context, don't call setQWidget here 
          (RenderApplet::setStyle): call setQWidget here
          (RenderApplet::layout): don't parse args here, that is done in HTMLAppletElementImpl::createRenderer
          * khtml/rendering/render_applet.h:
          * kwq/KWQKJavaAppletWidget.h:
          (KJavaApplet::KJavaApplet): turned into a stub, this work is no longer needed
          (KJavaApplet::setAppletClass): ditto
          (KJavaApplet::setAppletName): ditto
          (KJavaApplet::setArchives): ditto
          (KJavaApplet::setBaseURL): ditto
          (KJavaApplet::setCodeBase): ditto
          (KJavaApplet::setParameter): ditto
          (KJavaAppletWidget::~KJavaAppletWidget): ditto
          (KJavaAppletWidget::applet): ditto
          (KJavaAppletWidget::setBaseURL): ditto
          (KJavaAppletWidget::setParameter): ditto
          (KJavaAppletWidget::showApplet): ditto 
          * kwq/KWQKJavaAppletWidget.mm:
          (KJavaAppletWidget::KJavaAppletWidget): create the java here instead of doing it later
  
  2003-11-21  John Sullivan  <sullivan at apple.com>
  
          - WebCore part of fix for <rdar://problem/3333744>: Safari prints page with 
          very, very long line very, very small
  
          Reviewed by Ken.
  
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::forceLayoutWithPageWidthRange):
          Changed method name from forceLayoutForPageWidth; now takes min and max
          page width values. Use max page width value to limit how wide page will
          get when there's a very long line.
          
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge forceLayoutWithMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
          changed pageWidth parameter into min and max parameters; pass them along to KWQKHTMLPart.
  
  2003-11-21  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed 3490260: allow &sup1 to be misspelled &supl (lowercase l instead of numeral 1) because WinIE does
  
          * khtml/html/kentities.gperf: Added supl to the list. Maps to U+00B9, just as sup1 does.
          * khtml/html/kentities.c: Regenerated.
  
  2003-11-20  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- fixed 3487201 - Implement abort for XMLHttpRequest async loads
  	
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::abort): Kill and clear job.
          (KJS::XMLHttpRequest::slotData): Avoid moving to state 3 on early abort.
          (KJS::XMLHttpRequestProtoFunc::tryCall): Call abort when appropriate.
          * khtml/ecma/xmlhttprequest.h:
  
  2003-11-20  John Sullivan  <sullivan at apple.com>
  
          - WebCore part of <rdar://problem/3183124>: Support page-break-before/after with a value of "always"
  
          Dave wrote this part and we reviewed it together.
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paintObject):
          if printing, check for CSS page break locations
          (khtml::RenderBlock::inRootBlockContext):
          new method, used to check whether we're in a context for which
          CSS page breaks are legal.
          
          * khtml/rendering/render_block.h:
          prototype for inRootBlockContext; this might be useful for
          other code later.
          
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::setBestTruncatedAt):
          now takes a forcedBreak parameter which overrides others.
          
          * khtml/rendering/render_canvas.h:
          (khtml::RenderCanvas::setTruncatedAt):
          set default value for m_forcedPageBreak
          
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge computePageRects:withPageHeight:]):
          do the real work of pagination here
  
  2003-11-20  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3491225>: Need UI and localized strings for <KEYGEN> support
  
          Reviewed by john.
  
          * WebCore-combined.exp:
          * WebCore.exp:
          * WebCore.pbproj/project.pbxproj:
          * kwq/KWQKSSLKeyGen.h:
          * kwq/KWQKSSLKeyGen.mm: Added.
          (KSSLKeyGen::supportedKeySizes): implemented, calls [WebCoreLocalizedStringFactory keyGenerationMenuItemTitles]
          * kwq/WebCoreLocalizedStringFactory.h: Added.
          * kwq/WebCoreLocalizedStringFactory.m: Added.
          (+[WebCoreLocalizedStringFactory sharedFactory]): new
          (-[WebCoreLocalizedStringFactory init]): new
          (-[WebCoreLocalizedStringFactory keyGenerationMenuItemTitles]): new
  
  2003-11-19  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	- fixed 3490086 - support http post for XMLHttpRequest
  	
          * kwq/KWQKJobClasses.h:
          * kwq/KWQKJobClasses.mm:
          (KIO::TransferJobPrivate::TransferJobPrivate):
          (KIO::TransferJob::TransferJob):
  
  2003-11-20  Richard Williamson   <rjw at apple.com>
  
  	Cleaned up synchronous applet lookup and initialization.
  	We need to further cleanup applet instantiation.  It doesn't
  	need to be lazy with my modified Java Plugin.
  
          Reviewed by Chris.
  
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElement::tryGet):
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::setupApplet):
          (HTMLAppletElementImpl::getAppletInstance):
          * khtml/html/html_objectimpl.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::getAppletInstanceForView):
          * kwq/KWQKJavaAppletWidget.h:
          * kwq/KWQKJavaAppletWidget.mm:
          (KJavaAppletWidget::showApplet):
  
  2003-11-20  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by David
  
  	Fix for this bug:
  
  	<rdar://problem/3487421>: crash/exception when tabbing to a link without text
  
          * khtml/html/html_inlineimpl.cpp:
          (HTMLAnchorElementImpl::isFocusable): A link is also not focusable 
  	if it has zero width or height, if it has no children, or if it is 
  	is not a continuation.
          * kwq/KWQPainter.mm:
          (QPainter::drawFocusRing): Put in a guard against trying to draw a focus
          ring with no control points. Log this as an error.
  
  2003-11-19  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3486963, crash because generated content was referencing a deleted object.  Fix is to update the
  	variable to a sane value after deleting old generated content.
  	
          Reviewed by darin
  
          * khtml/rendering/render_container.cpp:
          (RenderContainer::updatePseudoChild):
  
  2003-11-19  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fixed 3486998 - Implement asynchronous http loading for XMLHttpRequest
  	
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequestQObject::XMLHttpRequestQObject): New QObject to use to
  	connect to signals.
          (KJS::XMLHttpRequestQObject::slotData): Call XMLHttpRequest.
          (KJS::XMLHttpRequestQObject::slotFinished): Ditto.
          (KJS::XMLHttpRequestQObject::slotRedirection): Ditto.
          (KJS::XMLHttpRequest::getValueProperty): Implemented, onrequeststatechange,
  	readyState and responseText.
          (KJS::XMLHttpRequest::putValue): Implemented onrequeststatechange.
          (KJS::XMLHttpRequest::XMLHttpRequest): Initialize new fields.
          (KJS::XMLHttpRequest::~XMLHttpRequest): Delete decoder.
          (KJS::XMLHttpRequest::changeState): Update state, and send event if needed.
          (KJS::XMLHttpRequest::open): Save the parameters.
          (KJS::XMLHttpRequest::send): Fire up a post or get job.
          (KJS::XMLHttpRequest::slotFinished): go to final state.
          (KJS::XMLHttpRequest::slotRedirection): Just stub for now.
          (KJS::XMLHttpRequest::slotData): Update state; decode & save data.
          (KJS::XMLHttpRequestProtoFunc::tryCall): Implemented open and send.
          * khtml/ecma/xmlhttprequest.h: Prototyped new stuff.
          * khtml/xml/dom2_eventsimpl.cpp:
          (EventImpl::typeToId): Added "readystatechange" event.
          (EventImpl::idToType): Ditto.
          * khtml/xml/dom2_eventsimpl.h: Ditto.
          * kwq/KWQLoader.h:
          * kwq/KWQLoader.mm:
          (KWQServeRequest): New variant that doesn't need a Request.
          * kwq/KWQSlot.mm:
          (KWQSlot::KWQSlot): Handle XMLHttpRequestQObject's slots.
          (KWQSlot::call): Ditto.
  
  2003-11-19  Richard Williamson   <rjw at apple.com>
  
  	More LiveConnect stuff.  With that patch we make the applet
  	visible to JavaScript in an Bindings::Instance.  Next step
  	it to flush out implementation of RuntimeObjectImp and
  	RuntimeFunctionImp.
  
          Reviewed by Ken.
  
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::HTMLAppletElementImpl):
          (HTMLAppletElementImpl::~HTMLAppletElementImpl):
          (HTMLAppletElementImpl::getAppletInstance):
          * khtml/html/html_objectimpl.h:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::getAppletInstanceForView):
          * kwq/WebCoreBridge.h:
  
  2003-11-19  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3488888, about:blank in iframes doesn't repaint properly.  Fix for 3485478, refreshing a remote
  	page often causes a white flash.  Fix for 3488827, XML/XHTML documents don't fire load events on bodies/framesets.
  	
          Reviewed by darin
  	
          * khtml/html/html_documentimpl.cpp:
          (HTMLDocumentImpl::HTMLDocumentImpl):
          * khtml/html/html_documentimpl.h:
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::RenderCanvas):
          (RenderCanvas::layout):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::body):
          (DocumentImpl::close):
          * khtml/xml/dom_docimpl.h:
  
  2003-11-18  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- fixed 3488883 - KIO::TransferJob needs to really use signals instead of calling loader directly
          
  	* khtml/khtml_part.cpp:
          (KHTMLPart::openURL):
          * khtml/misc/loader.cpp:
          (Loader::servePendingRequests):
          (Loader::slotReceivedResponse):
          * khtml/misc/loader.h:
          * kwq/KWQKJobClasses.h:
          * kwq/KWQKJobClasses.mm:
          (KIO::TransferJob::TransferJob):
          (KIO::TransferJob::url):
          (KIO::TransferJob::emitData):
          (KIO::TransferJob::emitRedirection):
          (KIO::TransferJob::emitResult):
          (KIO::TransferJob::emitReceivedResponse):
          * kwq/KWQLoader.mm:
          (KWQServeRequest):
          * kwq/KWQObject.mm:
          (QObject::connect):
          * kwq/KWQResourceLoader.h:
          * kwq/KWQResourceLoader.mm:
          (-[KWQResourceLoader receivedResponse:]):
          (-[KWQResourceLoader addData:]):
          (-[KWQResourceLoader finishJobAndHandle]):
          * kwq/KWQSignal.h:
          * kwq/KWQSignal.mm:
          (KWQSignal::call):
          * kwq/KWQSlot.h:
          * kwq/KWQSlot.mm:
          (KWQSlot::KWQSlot):
          (KWQSlot::call):
  
  2003-11-18  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3488244, marquee-increments with percentage values not handled correctly.  Also added a tweak to ensure
  	that 1% of a small value ends up being at least an increment of 1.  Also added an optimization to not even
  	bother kicking off the marquee timer if the increment's initial value is 0 (matches WinIE).
  
          * khtml/rendering/render_layer.cpp:
          (Marquee::start):
          (Marquee::timerEvent):
  
  2003-11-18  Richard Williamson   <rjw at apple.com>
  
  	More live connect stuff.  We're getting close.
  
          Reviewed by Chris.
  
          * WebCore.pbproj/project.pbxproj:
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLElement::tryGet):
          * khtml/html/html_objectimpl.cpp:
          (HTMLAppletElementImpl::parseAttribute):
          (HTMLAppletElementImpl::getAppletInstance):
          * khtml/html/html_objectimpl.h:
  
  2003-11-18  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3478122, crash using first-letter and zooming, and also the fix for 3478078, generated content
  	does not get removed properly on w3c site.  The root cause of these two bugs was the same, namely my
  	change to meld the concept of generated anonymous content and anonymous blocks created by the layout
  	engine together.  RenderBlock's setStyle method was incorrectly updating before/after/first-letter content
  	and wiping out its style in random (and bad) ways.
  	
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::setStyle):
  
  2003-11-18  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3487424, images not painting because of dropped layouts.  When replaced elements dirtied
  	themselves during line layout, they only needed to do a local dirty and not walk up the parent chain.
  	
          Reviewed by mjs
  
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
  
  2003-11-17  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	- fixed 3486991 - Add XMLHttpRequest object and stub methods
  
          * khtml/ecma/kjs_window.cpp:
          (Window::get): Handle XMLHttpRequest constructor like Option and Image.
          * khtml/ecma/kjs_window.h: Ditto.
          * khtml/ecma/kjs_window.lut.h: Regenerated.
          * khtml/ecma/xmlhttprequest.cpp: Added. Stub implementations of everything.
          (KJS::XMLHttpRequestConstructorImp::XMLHttpRequestConstructorImp):
          (KJS::XMLHttpRequestConstructorImp::implementsConstruct):
          (KJS::XMLHttpRequestConstructorImp::construct):
          (KJS::XMLHttpRequest::tryGet):
          (KJS::XMLHttpRequest::getValueProperty):
          (KJS::XMLHttpRequest::tryPut):
          (KJS::XMLHttpRequest::putValue):
          (KJS::XMLHttpRequest::notifyFinished):
          (KJS::XMLHttpRequest::XMLHttpRequest):
          (KJS::XMLHttpRequest::~XMLHttpRequest):
          (KJS::XMLHttpRequestProtoFunc::tryCall):
          * khtml/ecma/xmlhttprequest.h: Added. Stub implementations of everything.
          (KJS::XMLHttpRequest::toBoolean):
          (KJS::XMLHttpRequest::classInfo):
          * khtml/ecma/xmlhttprequest.lut.h: Added.
          * khtml/ecma/Makefile.am: Add new .lut.h file.
  	* WebCore.pbproj/project.pbxproj: Add new files.
  
  2003-11-17  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3487136, marquees reset when you return to a page in the b/f cache.  This patch makes
  	marquees suspend and resume properly, so they pick up animating where they left off.
  	
          Reviewed by mjs
  
          * khtml/rendering/render_layer.cpp:
          (RenderLayer::suspendMarquees):
          (m_direction):
          (Marquee::start):
          (Marquee::suspend):
          * khtml/rendering/render_layer.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::clearTimers):
  
  2003-11-17  Maciej Stachowiak  <mjs at apple.com>
  
  	Merged from khtml:
  	
  	- fixed 3487324 - CSS url values should be wrapped in "url()" for cssText purposes
  	
      2003-11-07  Dirk Mueller  <mueller at kde.org>
  	 
  	* css/css_valueimpl.cpp (cssText): wrap uri's into url(). 
  	Stephan Kulow noted that other browsers do that.
  	
  
  2003-11-17  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3472998, stop a crash on an insanely malformed page.  I had to change the concept of 
  	"inStrayTableContent" to be a counter, since you could be nested and need to push/pop, and
  	then I also had to stop from mistakenly popping when I didn't need to.
  	
          Reviewed by rjw
  
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::reset):
          (KHTMLParser::insertNode):
          (KHTMLParser::reopenResidualStyleTags):
          (KHTMLParser::popBlock):
          (KHTMLParser::popOneBlock):
          * khtml/html/htmlparser.h:
  
  2003-11-17  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - did keyboard event cleanup to follow up on the keyCode work I did before
          - fixed 3485558: key identifers use lowercase hex, but the W3C document shows uppercase
          - fixed 3485564: key identifier for the Return key should be "Enter"
          - fixed 3485579: letter keys generate different key identifiers depending on whether the shift key is down
          - fixed 3485568: keyboard event modifier key bits are uninitialized; may have incorrect values
          - fixed 3481514: which attribute for DOM events reports incorrect value
          - fixed 3452569: charCode attribute for DOM events not supported
  
          * khtml/dom/dom2_events.h: Added charCode.
          * khtml/dom/dom2_events.cpp:
          (UIEvent::keyCode): Call through to KeyboardEventImpl instead of doing the work here;
          better factoring.
          (UIEvent::charCode): Added. Calls through to KeyboardEventImpl.
          (UIEvent::which): Call keyCode in KeyboardEventImpl to share code.
  
          * khtml/ecma/kjs_events.h: Added charCode property for DOMUIEvent.
          * khtml/ecma/kjs_events.cpp: (DOMUIEvent::getValueProperty): Added charCode.
          * khtml/ecma/kjs_events.lut.h: Regenerated.
  
          * khtml/html/html_formimpl.h:
          * khtml/html/html_formimpl.cpp:
          (HTMLInputElementImpl::defaultEventHandler): Remove checks for "U+00000d" since we now use "Enter"
          for that key; also, we use capitalized hex, so it would have to change to "U+00000D" anyway.
          (HTMLSelectElementImpl::defaultEventHandler): Ditto.
          * khtml/html/html_inlineimpl.cpp: (HTMLAnchorElementImpl::defaultEventHandler): Ditto.
  
          * khtml/khtmlview.cpp: (KHTMLView::keyPressEvent): Put !APPLE_CHANGES around code we are not
          using. It was doing a switch based on Qt key codes, but the key value it was using to check
          was a Macintosh virtual key code, which could yield strange results when the codes happen to
          match. Safer and smaller code size not to do any of it at all.
  
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::RenderLineEdit): Use a KLineEdit instead of LineEditWidget for APPLE_CHANGES.
          Allows us to put !APPLE_CHANGES around more Qt key code stuff.
          (RenderLineEdit::select): Cast to KLineEdit instead of LineEditWidget.
          (ComboBoxWidget::event): Put !APPLE_CHANGES around more unneeded Qt key code stuff.
          (TextAreaWidget::event): Put !APPLE_CHANGES around more unneeded Qt key code stuff.
  
          * khtml/xml/dom2_eventsimpl.h: Made id() const and added keyCode() and charCode().
          * khtml/xml/dom2_eventsimpl.cpp:
          (KeyboardEventImpl::KeyboardEventImpl): Initialize all fields in the empty constructor.
          Initialize all the modifier bits in the main constructor; the old code assumed they started
          off false, which is not a safe assumption. Also set m_altGraphKey false. Eliminated the
          unneeded check of text() before calling identifier(). Also adapted for the name change from
          identifier() to keyIdentifier().
          (KeyboardEventImpl::keyCode): Added. Returns the Windows virtual key code for keydown and
          keyup events, and the Unicode character for all other events.
          (KeyboardEventImpl::charCode): Added. Returns the Unicode character.
  
          * kwq/KWQEvent.h: Changed QCustomEvent to be a typedef for QEvent.
          (QEvent::QEvent): Removed AccelAvailable, and added KParts, so I could remove some ugly
          constants from the KParts code.
          (QMouseEvent::button): Use a cast here since the field is now int.
          (QMouseEvent::state): Use a cast here since the field is now int.
          (QMouseEvent::stateAfter): Use a cast here since the field is now int, and use the new
          _stateAfter field.
          (QTimerEvent::QTimerEvent): Moved the constructor to be inline since it's so simple.
          (QKeyEvent::QKeyEvent): Removed type and button state parameters, now unneeded.
          Also removed now-unused _key, _ascii, and _count fields, and key(), ascii(),
          and count() functions.
          (QKeyEvent::state): Made inline.
          (QKeyEvent::isAccepted): Made inline.
          (QKeyEvent::text): Made inline.
          (QKeyEvent::isAutoRepeat): Made inline.
          (QKeyEvent::accept): Made inline.
          (QKeyEvent::ignore): Made inline.
          (QKeyEvent::unmodifiedText): Made inline.
          (QKeyEvent::keyIdentifier): Made inline and chnaged name from identifier().
          * kwq/KWQEvent.mm:
          (keyIdentifierForKeyEvent): Renamed from identifierForKeyText and changed parameter
          to be the event. Cleaned up the code a little bit, and wrote a comment or two.
          Changed from lowercase hex to uppercase, and called toupper on the key so that
          letter a-z would work properly. (A non-Unicode toupper is just the ticket here,
          because I am only sure we want to do this for a-z, not other lowercase characters.)
          (isKeypadEvent): Added. Uses virtual key codes to decide if a key event is a keypad
          event, so we can set the state flag correctly.
          (WindowsKeyCodeForKeyEvent): Added Clear key to the switch statement; it was missing.
          Changed to no longe use the characterCode helper function since this was the only
          place it was needed.
          (mouseButtonForEvent): Added. Similar logic to what was in KWQKHTMLPart before; better
          factoring to have it in here.
          (nonMouseButtonsForEvent): Ditto.
          (QMouseEvent::QMouseEvent): Rewrote constructors. One matches the one from Qt that's
          used in some places in KHTML code. The other takes an NSEvent and uses the new functions
          above to compute the button and state.
          (QKeyEvent::QKeyEvent): Computer type based on the passed-in NSEvent. Compute the
          auto-repeat flag based on the event and also the "forceAutoRepeat" parameter. Compute
          the button state based on the event too.
  
          * kwq/KWQKHTMLPart.h: Remove buttonForCurrentEvent and stateForCurrentEvent. Both
          are now in KWQEvent.mm.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::keyEvent): Remove extra parameters in code that creates QKeyEvent, now
          that QKeyEvent can handle everything itself.
          (KWQKHTMLPart::mouseDown): Same thing as above, only for QMouseEvent.
          (KWQKHTMLPart::mouseDragged): Ditto.
          (KWQKHTMLPart::mouseUp): Ditto.
          (KWQKHTMLPart::mouseMoved): Ditto.
          (KWQKHTMLPart::sendContextMenuEvent): Ditto.
  
          * kwq/KWQKPartsEvent.h: Tweaked the class around a little so it can work without
          taking advantage of QCustomEvent's data pointer.
          * kwq/KWQKPartsEvent.mm:
          (KParts::Event::Event): Changed so it does a strdup on the event name and uses the
          new event type pre-allocated in KWQEvent.h for us.
          (KParts::Event::~Event): Free the event name.
          (KParts::Event::test): Reimplemented this.
  
          * kwq/KWQKPartsPart.h: (KParts::Part::event): Removed now-unnecessary cast to change
          a QCustomEvent into a QEvent.
  
          * kwq/KWQNamespace.h: Removed the Qt::Key enum. All the code that used it was already
          broken because of the mixup between Qt and Macintosh key codes.
  
  2003-11-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Maciej
  
  	<rdar://problem/3487079>: Some scheme checks in KURL do not verify 
  	first char is a legal first char for a scheme
  
          * kwq/KWQKURL.mm:
          (KURL::KURL): Added some additional checks when looking through
  	strings looking for schemes. Now the first character is checked
  	for validity as a first character in a scheme.
  
  2003-11-17  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3486441, don't use the visibleWidth when computing the containingBlockWidth().  No need to
  	query the view, since the canvas's width has been set to the proper size (when printing).
  	
          Reviewed by john
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::containingBlockWidth):
  
  2003-11-17  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- fixed 3413713 - iframe forms posting fails without initial src attribute value
  
          * khtml/rendering/render_frames.cpp:
          (RenderPartObject::updateWidget): If the new part is for "about:blank",
  	set the document base URL to parent's base URL.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::createEmptyDocument): If this part is an
  	iframe, set the document base URL to the parent's base URL.
  
  2003-11-17  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed 3485925: Safari does not correctly parse eight-digit hex character entities
  
          * khtml/html/htmltokenizer.cpp: (HTMLTokenizer::parseEntity): Replaced puzzling variable limit
          on number of hexadecimal characters to parse with an 8-character limit.
  
  2003-11-17  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed 3485572 -- secure form check in KHTML uses case-sensitive comparison with "https"
  
          * khtml/html/html_formimpl.h:
          * khtml/html/html_formimpl.cpp: (HTMLFormElementImpl::formWouldHaveSecureSubmission):
          Changed to take a DOMString reference for slightly better efficiency, and to use startsWith
          so the prefix check is not case sensitive and for slightly better efficiency and clarity
          than calling latin1() and using strncmp.
  
  2003-11-17  Maciej Stachowiak  <mjs at apple.com>
  
  	- commit updated .lut.h file that I forgot to commit before
  
          * khtml/ecma/kjs_window.lut.h:
  
  2003-11-17  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- fixed 3382829 - Safari won't load script src javascript if done by a document.write followed by document.close
  	
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::closeInternal): Don't delete the tokenizer if it's
  	waiting for scripts. It will get destroyed later when the part
  	gets all subresources and closes the document.
          * khtml/html/htmltokenizer.cpp:
          (HTMLTokenizer::isWaitingForScripts): Added.
          * khtml/html/htmltokenizer.h: Prototyped.
          * khtml/xml/xml_tokenizer.cpp:
          (XMLTokenizer::isWaitingForScripts): Added.
          * khtml/xml/xml_tokenizer.h: Prototyped.
  
  2003-11-17  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3480108, crash because of the wrong malformedTableParent when stray content is placed inside
  	a <tr>.
  	
          Reviewed by john
  
          * khtml/html/htmlparser.cpp:
          (KHTMLParser::popBlock):
  
  2003-11-17  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	- fixed 3397494 - FileMaker: Setting option object text fails if created without text
  	
          * khtml/html/html_formimpl.cpp:
          (HTMLOptionElementImpl::childrenChanged): Update the select element.
  	This ends up getting called when you add a text node to an option that
  	didn't used to have one.
          * khtml/html/html_formimpl.h: Prototype it.
  
  2003-11-17  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Maciej
  
  	Fix for this bug:
  
  	<rdar://problem/3480023>: Links don't work if there's a colon in the URL
  
  	The colon in the URL was confusing KURL. I modified some checks in
  	KURL so that its search for schemes stops when a non-scheme 
  	character is found rather than when a path end segment character
  	is found.
  
          * kwq/KWQKURL.mm: Added a new Colon class to the table of characters.
          (isSchemeCharOrColon): New helper.
          (KURL::KURL): Call on new helper when looking for a scheme.
          (KURL::findHostnameInHierarchicalURL): Ditto.
  
  2003-11-17  David Hyatt  <hyatt at apple.com>
  
  	Fix for 2931829, lines with hyphens should break on the hyphens.  Match WinIE's behavior of
  	breaking on - and ?.
  	
          Reviewed by john
  
          * khtml/rendering/break_lines.cpp:
          (khtml::isBreakable):
  
  2003-11-17  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3415771, Safari should use mini form controls when necessary.  This patch adds heuristics for
  	swapping in mini form controls and also drops intrinsic margins when mini form controls are used.
  
  	Fix for 3486454, options/optgroups should strip leading/trailing space.
  	
  	Together these two fixes solve 3486581, travelocity misrenders because form controls are too large.
  
  	Reviewed by Darin
  
  	Also fixing 3474994, alink needs to be restricted to actual links and not all <a> tags.
  
  	Reviewed by John
  
  	Finally, adding :active outlines around <input type=image> (covered by the old bug 3141767).
  
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::CSSStyleSelector):
          (khtml::CSSStyleSelector::applyRule):
          (khtml::CSSStyleSelector::checkForGenericFamilyChange):
          (khtml::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
          (khtml::):
          (khtml::CSSStyleSelector::fontSizeForKeyword):
          (khtml::CSSStyleSelector::largerFontSize):
          (khtml::CSSStyleSelector::smallerFontSize):
          * khtml/css/cssstyleselector.h:
          * khtml/css/html4.css:
          * khtml/html/html_baseimpl.cpp:
          (HTMLBodyElementImpl::parseAttribute):
          * khtml/khtml_part.cpp:
          (KHTMLPart::setZoomFactor):
          * khtml/rendering/render_form.cpp:
          (RenderFormElement::addIntrinsicMarginsIfAllowed):
          (RenderSelect::updateFromElement):
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::recalcStyle):
          (DocumentImpl::attach):
          * kwq/KWQButton.mm:
          (KWQNSControlSizeForFont):
  
  2003-11-17  David Hyatt  <hyatt at apple.com>
  
  	Back out my change to exclude text runs from getting a relayout on a style change.  I totally forgot about
  	text zooming.
  	
          * khtml/rendering/render_object.cpp:
          (RenderObject::setStyle):
  
  2003-11-16  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	<rdar://problem/3131664>: add support for the window.print() command used for "print this page" buttons
          
  	* khtml/ecma/kjs_window.cpp:
          (Window::get): add support for window.print (Apple-only)
          (WindowFunc::tryCall): ditto
          * khtml/ecma/kjs_window.h: Add Print to enum
          * khtml/ecma/kjs_window.lut.h: Regenerated
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::print): Call bridge.
          * kwq/KWQKHTMLPart.h: Declare above.
          * kwq/WebCoreBridge.h: prototype print method for other side of bridge.
  
  2003-11-16  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
          * kwq/KWQKHTMLPartBrowserExtension.mm:
          (KHTMLPartBrowserExtension::createNewWindow): Check for the
  	returned part being NULL, not the out value pointer.
  
  2003-11-16  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3485779, <input type=image> and <button> should not be mouse focusable.
  
  	Fix for 3485795, <input type=image> and <button> are being treated like links when they should not be.
  
  	Fix for 3485817, <input type=image> and <button> should obey full keyboard access mode.
  
  	Fix for 3485802, fieldset/legend/option/optgroup/label should not be focusable at all.
  	
          Reviewed by kocienda
  
          * ChangeLog:
          * khtml/html/html_formimpl.cpp:
          (HTMLGenericFormElementImpl::isKeyboardFocusable):
          (HTMLGenericFormElementImpl::isMouseFocusable):
          (HTMLFieldSetElementImpl::isFocusable):
          (HTMLLabelElementImpl::isFocusable):
          (HTMLLegendElementImpl::isFocusable):
          (HTMLOptGroupElementImpl::isFocusable):
          (HTMLOptionElementImpl::HTMLOptionElementImpl):
          (HTMLOptionElementImpl::isFocusable):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_inlineimpl.cpp:
          (HTMLAnchorElementImpl::isMouseFocusable):
          (HTMLAnchorElementImpl::isKeyboardFocusable):
          * khtml/html/html_inlineimpl.h:
          * khtml/khtml_part.cpp:
          (KHTMLPart::tabsToLinks):
          (KHTMLPart::tabsToAllControls):
          * khtml/khtml_part.h:
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::nextKeyViewInFrame):
          (KWQKHTMLPart::tabsToLinks):
          (KWQKHTMLPart::tabsToAllControls):
  
  2003-11-16  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave.
  
  	- fixed 3484723 - name property of window reference from window.open call is always empty
  	
          * kwq/KWQKHTMLPartBrowserExtension.mm:
          (KHTMLPartBrowserExtension::createNewWindow): Set the part name on the khtml side when
  	making a new window.
  
  2003-11-16  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3485766.
  	
  	Make sure DOM elements that are programmatically focused at a time when they have no render objects restore the
  	focus to their widgets when render objects get built.
  	
          Reviewed by darin
  
          * khtml/html/html_formimpl.cpp:
          (HTMLGenericFormElementImpl::attach):
  
  2003-11-16  David Hyatt  <hyatt at apple.com>
  
  	Add border info to the render tree dumper.
  
          * khtml/rendering/render_style.h:
          (khtml::BorderValue::operator!=):
          * kwq/KWQRenderTreeDebug.cpp:
          (printBorderStyle):
          (operator<<):
          * 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/lxr.mozilla.org/index-expected.txt:
          * layout-tests/apple-only/base/my.netscape.com/index-expected.txt:
          * layout-tests/apple-only/base/news.cnet.com/index-expected.txt:
          * layout-tests/apple-only/base/web.icq.com/index-expected.txt:
          * layout-tests/apple-only/base/www.altavista.com/index-expected.txt:
          * layout-tests/apple-only/base/www.amazon.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.expedia.com/index-expected.txt:
          * layout-tests/apple-only/base/www.iplanet.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.moviefone.com/index-expected.txt:
          * layout-tests/apple-only/base/www.msn.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.sun.com/index-expected.txt:
          * layout-tests/apple-only/base/www.time.com/index-expected.txt:
          * layout-tests/apple-only/base/www.travelocity.com/index-expected.txt:
          * layout-tests/apple-only/base/www.w3.org_DOML2Core/index-expected.txt:
          * layout-tests/apple-only/base/www.yahoo.com/index-expected.txt:
          * layout-tests/apple-only/base/www.zdnet.com/index-expected.txt:
          * layout-tests/apple-only/base/www.zdnet.com_Gamespot.com/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/acid_test-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/block/basic/001-expected.txt:
          * layout-tests/fast/block/basic/002-expected.txt:
          * layout-tests/fast/block/basic/003-expected.txt:
          * layout-tests/fast/block/basic/004-expected.txt:
          * layout-tests/fast/block/basic/007-expected.txt:
          * layout-tests/fast/block/basic/011-expected.txt:
          * layout-tests/fast/block/basic/015-expected.txt:
          * layout-tests/fast/block/basic/016-expected.txt:
          * layout-tests/fast/block/basic/017-expected.txt:
          * layout-tests/fast/block/basic/018-expected.txt:
          * layout-tests/fast/block/basic/019-expected.txt:
          * layout-tests/fast/block/float/004-expected.txt:
          * layout-tests/fast/block/float/005-expected.txt:
          * layout-tests/fast/block/float/006-expected.txt:
          * layout-tests/fast/block/float/007-expected.txt:
          * layout-tests/fast/block/float/012-expected.txt:
          * layout-tests/fast/block/float/013-expected.txt:
          * layout-tests/fast/block/float/015-expected.txt:
          * layout-tests/fast/block/float/016-expected.txt:
          * layout-tests/fast/block/float/017-expected.txt:
          * layout-tests/fast/block/float/019-expected.txt:
          * layout-tests/fast/block/float/021-expected.txt:
          * layout-tests/fast/block/float/022-expected.txt:
          * layout-tests/fast/block/float/024-expected.txt:
          * layout-tests/fast/block/float/025-expected.txt:
          * layout-tests/fast/block/float/026-expected.txt:
          * layout-tests/fast/block/float/027-expected.txt:
          * layout-tests/fast/block/float/028-expected.txt:
          * layout-tests/fast/block/margin-collapse/001-expected.txt:
          * layout-tests/fast/block/margin-collapse/005-expected.txt:
          * layout-tests/fast/block/margin-collapse/006-expected.txt:
          * layout-tests/fast/block/margin-collapse/010-expected.txt:
          * layout-tests/fast/block/margin-collapse/011-expected.txt:
          * layout-tests/fast/block/margin-collapse/012-expected.txt:
          * layout-tests/fast/block/margin-collapse/015-expected.txt:
          * layout-tests/fast/block/margin-collapse/016-expected.txt:
          * layout-tests/fast/block/margin-collapse/017-expected.txt:
          * layout-tests/fast/block/margin-collapse/018-expected.txt:
          * layout-tests/fast/block/margin-collapse/019-expected.txt:
          * layout-tests/fast/block/margin-collapse/020-expected.txt:
          * layout-tests/fast/block/margin-collapse/021-expected.txt:
          * layout-tests/fast/block/margin-collapse/022-expected.txt:
          * layout-tests/fast/block/margin-collapse/024-expected.txt:
          * layout-tests/fast/block/margin-collapse/025-expected.txt:
          * layout-tests/fast/block/margin-collapse/026-expected.txt:
          * layout-tests/fast/block/margin-collapse/027-expected.txt:
          * layout-tests/fast/block/margin-collapse/028-expected.txt:
          * layout-tests/fast/block/margin-collapse/029-expected.txt:
          * layout-tests/fast/block/margin-collapse/030-expected.txt:
          * layout-tests/fast/block/margin-collapse/032-expected.txt:
          * layout-tests/fast/block/margin-collapse/033-expected.txt:
          * layout-tests/fast/block/margin-collapse/034-expected.txt:
          * layout-tests/fast/block/margin-collapse/035-expected.txt:
          * layout-tests/fast/block/margin-collapse/041-expected.txt:
          * layout-tests/fast/block/margin-collapse/042-expected.txt:
          * layout-tests/fast/block/margin-collapse/043-expected.txt:
          * layout-tests/fast/block/positioning/048-expected.txt:
          * layout-tests/fast/block/positioning/049-expected.txt:
          * layout-tests/fast/block/positioning/050-expected.txt:
          * layout-tests/fast/block/positioning/051-expected.txt:
          * layout-tests/fast/block/positioning/056-expected.txt:
          * layout-tests/fast/block/positioning/057-expected.txt:
          * layout-tests/fast/block/positioning/058-expected.txt:
          * layout-tests/fast/block/positioning/auto/001-expected.txt:
          * layout-tests/fast/block/positioning/auto/002-expected.txt:
          * layout-tests/fast/block/positioning/auto/003-expected.txt:
          * layout-tests/fast/block/positioning/auto/004-expected.txt:
          * layout-tests/fast/block/positioning/auto/005-expected.txt:
          * layout-tests/fast/block/positioning/auto/006-expected.txt:
          * layout-tests/fast/clip/013-expected.txt:
          * layout-tests/fast/clip/014-expected.txt:
          * layout-tests/fast/css-generated-content/006-expected.txt:
          * layout-tests/fast/css/003-expected.txt:
          * layout-tests/fast/css/004-expected.txt:
          * layout-tests/fast/css/005-expected.txt:
          * layout-tests/fast/dynamic/002-expected.txt:
          * layout-tests/fast/dynamic/004-expected.txt:
          * layout-tests/fast/encoding/utf-16-big-endian-expected.txt:
          * layout-tests/fast/encoding/utf-16-little-endian-expected.txt:
          * layout-tests/fast/flexbox/007-expected.txt:
          * layout-tests/fast/flexbox/008-expected.txt:
          * layout-tests/fast/flexbox/009-expected.txt:
          * layout-tests/fast/flexbox/011-expected.txt:
          * layout-tests/fast/flexbox/016-expected.txt:
          * layout-tests/fast/flexbox/017-expected.txt:
          * layout-tests/fast/flexbox/018-expected.txt:
          * layout-tests/fast/flexbox/019-expected.txt:
          * layout-tests/fast/flexbox/022-expected.txt:
          * layout-tests/fast/flexbox/025-expected.txt:
          * layout-tests/fast/forms/001-expected.txt:
          * layout-tests/fast/forms/002-expected.txt:
          * layout-tests/fast/forms/006-expected.txt:
          * layout-tests/fast/forms/007-expected.txt:
          * layout-tests/fast/forms/form-element-geometry-expected.txt:
          * layout-tests/fast/frames/001-expected.txt:
          * layout-tests/fast/inline-block/001-expected.txt:
          * layout-tests/fast/inline-block/002-expected.txt:
          * layout-tests/fast/inline-block/003-expected.txt:
          * layout-tests/fast/inline/001-expected.txt:
          * layout-tests/fast/invalid/008-expected.txt:
          * layout-tests/fast/invalid/014-expected.txt:
          * layout-tests/fast/invalid/016-expected.txt:
          * layout-tests/fast/lists/001-expected.txt:
          * layout-tests/fast/lists/004-expected.txt:
          * layout-tests/fast/lists/007-expected.txt:
          * layout-tests/fast/overflow/001-expected.txt:
          * layout-tests/fast/overflow/002-expected.txt:
          * layout-tests/fast/overflow/004-expected.txt:
          * layout-tests/fast/replaced/005-expected.txt:
          * layout-tests/fast/replaced/006-expected.txt:
          * layout-tests/fast/replaced/008-expected.txt:
          * layout-tests/fast/selectors/009-expected.txt:
          * layout-tests/fast/selectors/014-expected.txt:
          * layout-tests/fast/selectors/032-expected.txt:
          * layout-tests/fast/selectors/033-expected.txt:
          * layout-tests/fast/selectors/039-expected.txt:
          * layout-tests/fast/selectors/039b-expected.txt:
          * layout-tests/fast/selectors/064-expected.txt:
          * layout-tests/fast/selectors/077-expected.txt:
          * layout-tests/fast/selectors/077b-expected.txt:
          * layout-tests/fast/selectors/078-expected.txt:
          * layout-tests/fast/selectors/078b-expected.txt:
          * layout-tests/fast/selectors/166a-expected.txt:
          * layout-tests/fast/table/003-expected.txt:
          * layout-tests/fast/table/004-expected.txt:
          * layout-tests/fast/table/005-expected.txt:
          * layout-tests/fast/table/006-expected.txt:
          * layout-tests/fast/table/007-expected.txt:
          * layout-tests/fast/table/008-expected.txt:
          * layout-tests/fast/table/009-expected.txt:
          * layout-tests/fast/table/015-expected.txt:
          * layout-tests/fast/table/017-expected.txt:
          * layout-tests/fast/table/018-expected.txt:
          * layout-tests/fast/table/020-expected.txt:
          * layout-tests/fast/table/023-expected.txt:
          * layout-tests/fast/table/025-expected.txt:
          * layout-tests/fast/table/027-expected.txt:
          * layout-tests/fast/table/028-expected.txt:
          * layout-tests/fast/table/029-expected.txt:
          * layout-tests/fast/table/030-expected.txt:
          * layout-tests/fast/table/035-expected.txt:
          * layout-tests/fast/table/036-expected.txt:
          * layout-tests/fast/table/038-expected.txt:
          * layout-tests/fast/table/border-collapsing/001-expected.txt:
          * layout-tests/fast/table/border-collapsing/002-expected.txt:
          * layout-tests/fast/table/border-collapsing/003-expected.txt:
          * layout-tests/fast/table/border-collapsing/004-expected.txt:
          * layout-tests/fast/table/large-width-expected.txt:
          * layout-tests/fast/table/nobr-expected.txt:
          * layout-tests/fast/text/basic/001-expected.txt:
          * layout-tests/fast/text/basic/003-expected.txt:
          * layout-tests/fast/text/basic/004-expected.txt:
          * layout-tests/fast/text/basic/005-expected.txt:
          * layout-tests/fast/text/basic/006-expected.txt:
          * layout-tests/fast/text/basic/007-expected.txt:
          * layout-tests/fast/text/basic/012-expected.txt:
          * layout-tests/fast/text/firstline/002-expected.txt:
          * layout-tests/fast/text/whitespace/002-expected.txt:
          * layout-tests/fast/text/whitespace/003-expected.txt:
          * layout-tests/fast/text/whitespace/020-expected.txt:
          * layout-tests/fast/text/whitespace/023-expected.txt:
          * layout-tests/fast/text/whitespace/024-expected.txt:
          * layout-tests/fast/text/whitespace/025-expected.txt:
          * layout-tests/fast/text/whitespace/027-expected.txt:
  
  2003-11-16  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fixed 3362841 - javascript History Object length property is always 0
  
          * kwq/KWQKPartsBrowserInterface.mm:
          (KParts::BrowserInterface::property): For the historyLength property,
  	retturn a UInt variant, not Int, because that's what the kjs_window code
  	expects.
  
  2003-11-14  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken and Dave.
  
  	- fixed 3471925 - getting and setting cssText not implemented
  
          * khtml/css/css_valueimpl.cpp:
          (CSSStyleDeclarationImpl::cssText): Implemented by gathering text of all
  	properties (that are not non-CSS hints), separated with semicolons.
          (CSSStyleDeclarationImpl::setCssText): Implemented by clearing all existing
  	properties (that are not non-CSS hints) and invoking css parser.
          (CSSValueListImpl::cssText): Implemented.
          (FontValueImpl::cssText): Implemented.
          (ShadowValueImpl::cssText): Implemented.
          (CSSProperty::cssText): Implemented.
          * khtml/css/css_valueimpl.h: Declared new methods; made
  	CSSValueImpl::cssText() pure virtual; removed CSSValueImpl::setCssText().
  
  2003-11-16  David Hyatt  <hyatt at apple.com>
  
  	3485717, Cleanup of the float code.  Eliminated the -khtml-flow-mode style property in favor of two simple methods,
  	avoidsFloats() and usesLineWidth().  avoidsFloats can be called to tell whether an object does not want
  	floats to intrude into its space (and that it should also move to avoid floats).  usesLineWidth is called
  	to find out if an object's containing block width is the line width or the content width, and has all the
  	right smarts to emulate WinIE's behaviors in both quirks and strict mode.
  
  	Also fixed a bug (3485718) where overflow:scroll blocks with auto height did not factor in the horizontal scrollbar's
  	height (thus causing it to paint on top of content).
  	
          Reviewed by darin
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyRule):
          * khtml/css/cssvalues.c:
          (hash_val):
          (findValue):
          * khtml/css/cssvalues.h:
          * khtml/css/cssvalues.in:
          * khtml/css/html4.css:
          * khtml/rendering/bidi.cpp:
          (khtml::RenderBlock::layoutInlineChildren):
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::layoutBlock):
          (khtml::RenderBlock::layoutBlockChildren):
          (khtml::RenderBlock::clearFloats):
          * khtml/rendering/render_box.cpp:
          (RenderBox::containingBlockWidth):
          (RenderBox::calcWidth):
          * khtml/rendering/render_object.cpp:
          (RenderObject::isHR):
          * khtml/rendering/render_object.h:
          (khtml::RenderObject::avoidsFloats):
          (khtml::RenderObject::usesLineWidth):
          * khtml/rendering/render_style.h:
          (khtml::RenderStyle::NonInheritedFlags::operator==):
          (khtml::RenderStyle::setBitDefaults):
          (khtml::RenderStyle::initialTextDecoration):
          * khtml/rendering/render_table.cpp:
          (RenderTable::calcWidth):
  
  2003-11-14  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3485260, regression on Uniview site from incremental repainting.  When appending/inserting child
  	nodes into the render tree, we need to always mark them as needing layout themselves (and not just as
  	having children needing layout).  This ensures that the incremental repainting code will know to repaint the
  	enclosing container (even though that container's size may not change).
  
  	Fix for 3411960, block-level replaced elements should avoid floats.
  
  	Fix for 3463234, floats should not intrude into overflow blocks (even when siblings happen to get in
  	between the float and the overflow block).
  
  	Fix for 3485576, the containing block for text runs is incorrect.
  
  	Fix for 3485577, text runs should not trigger layout when style is re-resolved.
  	
          Reviewed by darin
  
          * khtml/rendering/render_container.cpp:
          (RenderContainer::appendChildNode):
          (RenderContainer::insertChildNode):
          * khtml/rendering/render_box.cpp
  	* khtml/rendering/render_object.cpp
  	
  2003-11-14  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3473707, 100% height positioned divs are too tall.  The padding box wasn't being used like it was
  	supposed to be when calcing percentage heights.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcAbsoluteVertical):
  
  === Safari-114 ===
  
  2003-11-14  Maciej Stachowiak  <mjs at apple.com>
  
          - backed out changes unintentionally commited while the tree was closed
  
          * khtml/css/css_valueimpl.cpp:
          * khtml/css/css_valueimpl.h:
          * kwq/KWQKPartsBrowserInterface.mm:
  
  2003-11-14  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	- fixed 3471925 - getting and setting cssText not implemented
  
          * khtml/css/css_valueimpl.cpp:
          (CSSStyleDeclarationImpl::cssText): Implemented by gathering text of all
  	properties, separated with semicolons.
          (CSSStyleDeclarationImpl::setCssText): Implemented by clearing all existing
  	properties and invoking css parser.
          (CSSValueListImpl::cssText): Implemented.
          (FontValueImpl::cssText): Implemented.
          (ShadowValueImpl::cssText): Implemented.
          (CSSProperty::cssText): Implemented.
          * khtml/css/css_valueimpl.h: Declared new methods; made
  	CSSValueImpl::cssText() pure virtual; removed
  	CSSValueImpl::setCssText().
  
  2003-11-14  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - first half of fix for 3457162 -- selecting text during a page load that blows the text field
            away causes a crash
  
          The WebCore part of this fix is to generalize the "defers loading" feature to all mouse clicks,
          rather than just doing it for mouse clicks on the combo box.
  
          * kwq/KWQComboBox.mm: (-[KWQPopUpButtonCell trackMouse:inRect:ofView:untilMouseUp:]):
          Remove code to defer loading.
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Put the code here
          instead.
  
  2003-11-14  John Sullivan  <sullivan at apple.com>
  
          - fixed <rdar://problem/3483585>: Option-tab in a text field inputs 
          a character rather than tabbing to the next widget
  
          Reviewed by Ken.
  
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::handleKeyboardOptionTabInView):
          New method. If current event is option-tab or option-shift-tab, do
          keyboard navigation and return YES.
          
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea textDidChange:]):
          Bail out if KWQKHTMLPart::handleKeyboardOptionTabInView returns YES.
          
          * kwq/KWQTextField.mm:
          (-[KWQTextField controlTextDidChange:]):
          Bail out if KWQKHTMLPart::handleKeyboardOptionTabInView returns YES.
  
  2003-11-13  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed 3472875 -- REGRESSION (109-110): insertion point does not blink in a nonempty textarea
          - fixed 3484002 -- disabling, then enabling a read-only <textarea> will make it editable
  
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea setText:]): Call updateTextColor after setting the text.
          (-[KWQTextArea setEditable:]): Don't set the NSTextView editable property directly,
          because we don't want to make a disabled text view editable right away, but we need
          to later if it's enabled.
          (-[KWQTextArea isEditable]): Don't get the NSTextView editable property directly,
          because it can be appropriate to return YES even if the text view happens to be disabled.
          (-[KWQTextAreaTextView initWithFrame:textContainer:]): Initialize editableIfEnabled to YES.
          (-[KWQTextAreaTextView setEnabled:]): Don't set the editable state to true if
          editableIfEnabled is NO. The old code would make a read-only field editable if you
          changed it to be enabled. Also update the color of the text here.
          (-[KWQTextAreaTextView setEditableIfEnabled:]): Store the editableIfEnabled state in a
          field, and then alter the state of the editable flag to match if we're currently enabled.
          (-[KWQTextAreaTextView isEditableIfEnabled]): Return the editableIfEnabled state.
          (-[KWQTextAreaTextView updateTextColor]): Update the color of the text. This was done in
          drawRect: before, which was the cause of the lack of insertion point.
  
  2003-11-13  Darin Adler  <darin at apple.com>
  
          Reviewed by Dave.
  
          - fixed 3474330 -- tooltips do not work for <area> elements
  
          * kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): When looking for a title, start
          with innerNode (which can be an <area> inside a <map>). This matches what Mozilla does.
  
  2003-11-13  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fixed - 3479285 - hang at www.saccourt.com
  	- fixed - 3477088 - (85-112) Safari frozen loading a page at Postal Service site of Taiwan
  	
          * khtml/ecma/kjs_html.cpp:
          (KJS::HTMLSelectCollection::tryPut): Use the range-checking
  	version of the number-conversion function to avoid negative
  	numbers and NaN.
  
  2003-11-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  	
  	Fix for this bug:
  
  	<rdar://problem/3483284>: Tabbing to links needs to honor new 
  	WebKit tab-to-links preference
  
  	In addition to fixing the bug, I also did a bit of cleanup
  	in the code which helps to determine tab order.
  
  	Biggest change is to modify the keyboard UI mode function so
  	that it is a set of flags, rather than a straight-up value.
  
  	I also tweaked the names on the keyboard UI mode constants
  	to make them read better.
  
          * kwq/KWQButton.mm:
          (QButton::focusPolicy): Tweaks to make more readable and use 
  	new model for keyboard UI mode.
          * kwq/KWQComboBox.mm:
          (QComboBox::focusPolicy): Ditto. Plus, this function was not
  	blocking exceptions.
          * kwq/KWQFileButton.mm:
          (KWQFileButton::focusPolicy): Tweaks to make more readable and use 
          new model for keyboard UI mode.
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::nextKeyViewInFrame): Now checks new tabsToLinks
  	function to determine if links can be tabbed to.
          (KWQKHTMLPart::currentEventIsKeyboardOptionTab): New function
  	checks for option-tab keyboard event.
          (KWQKHTMLPart::tabsToLinks): New helper to take keyboard UI mode
  	and option-tab into account.
          (KWQKHTMLPart::keyboardUIMode): Name tweak.
          * kwq/KWQListBox.mm: Tweaks to make more readable and use 
          new model for keyboard UI mode.
          (QListBox::focusPolicy):
          * kwq/WebCoreKeyboardAccess.h: Tweaked names. Added WebCoreKeyboardAccessTabsToLinks.
  
  2003-11-13  David Hyatt  <hyatt at apple.com>
  
  	Implement a custom unfurl marquee style.
  	
          Reviewed by john
  
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyRule):
          * khtml/css/cssvalues.c:
          (hash_val):
          (findValue):
          * khtml/css/cssvalues.h:
          * khtml/css/cssvalues.in:
          * khtml/rendering/render_box.cpp:
          (RenderBox::calcHeight):
          * khtml/rendering/render_layer.cpp:
          (m_direction):
          (Marquee::isUnfurlMarquee):
          (Marquee::start):
          (Marquee::updateMarqueePosition):
          (Marquee::updateMarqueeStyle):
          (Marquee::timerEvent):
          * khtml/rendering/render_layer.h:
          (khtml::):
          * khtml/rendering/render_style.h:
          (khtml::):
  
  2003-11-13  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
  	Fix for this bug:
  
  	<rdar://problem/3480761>: event object type attribute returns 
  	khtml_keypress instead of keypress
  
  	Fixed string so that it returns keypress instead of khtml_keypress.
  	While I was at it, I changed the constant used for this event from
  	KHTML_KEYPRESS_EVENT to KEYPRESS_EVENT.
  
          * khtml/ecma/kjs_binding.cpp:
          (ScriptInterpreter::wasRunByUserGesture): Constant name fixup.
          * khtml/ecma/kjs_dom.cpp: Ditto.
          (DOMNode::getValueProperty): Ditto.
          (DOMNode::putValue): Ditto.
          * khtml/ecma/kjs_window.cpp:
          (Window::get): Ditto.
          (Window::put): Ditto.
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::parseAttribute): Ditto.
          * khtml/html/html_formimpl.cpp:
          (HTMLInputElementImpl::defaultEventHandler): Ditto.
          (HTMLSelectElementImpl::defaultEventHandler): Ditto.
          * khtml/xml/dom2_eventsimpl.cpp:
          (EventImpl::idToType): This is the change that fixes the bug.
          (KeyboardEventImpl::KeyboardEventImpl): Constant name fixup.
          * khtml/xml/dom2_eventsimpl.h:
          (DOM::EventImpl::): Ditto.
  
  2003-11-13  Darin Adler  <darin at apple.com>
  
          Reviewed by Ken.
  
          - fixed 3452554 -- keyCode attribute for DOM events reports incorrect value
  
          * khtml/dom/dom2_events.cpp:
          (UIEvent::keyCode): Return the Windows key code for keydown and keyup events.
          But for other events, return the character code. This matches IE.
          (UIEvent::which): Same behavior for now; may need further refinement.
  
          * kwq/KWQEvent.h: Change QEvent to allow copying. The Qt version probably doesn't
          allow it, but for us it's no big deal. Our event objects are just data holders.
          (QKeyEvent::QKeyEvent): Change parameters; take an NSEvent and figure the rest out
          here. Except for now get the type, button state, and auto repeat flag from the caller
          because that's a smaller change from how things are done now. I'll take this the next
          step later.
          * kwq/KWQEvent.mm:
          (characterCode): Added. Extracts the character code from the string if it's exactly
          1 character long.
          (WindowsKeyCode): Added. Given an event, figures out the Windows key code. 
          (QKeyEvent::QKeyEvent): Changed to get things from the NSEvent rather than having them
          passed individually. One change is that _ascii is now the Unicode value of the first
          character in the string. This causes us to return the Unicode value from keyCode for
          keypress events. Another change is that we now compute the Windows key code.
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::keyEvent): Change to use the new QKeyEvent
          constructor, passing in the NSEvent.
  
          * khtml/xml/dom2_eventsimpl.cpp: (KeyboardEventImpl::KeyboardEventImpl):
          In APPLE_CHANGES, copy the QKeyEvent using the copy constructor rather than
          listing the fields. This is easier to maintain when the list of fields changes.
  
          * khtml/rendering/render_form.cpp: (ComboBoxWidget::eventFilter): Put #if
          !APPLE_CHANGES around code that constructs a QKeyEvent. We don't ever run this
          code, but now we can't compile it either so we need the #if.
  
  2003-11-12  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3482132, incremental repainting for layout, i.e., only repaint areas that change when
  	doing a layout.
  	
          Reviewed by kocienda
  
          * khtml/khtmlview.h:
          * khtml/rendering/render_canvas.cpp:
          (RenderCanvas::repaintViewRectangle):
          * khtml/rendering/render_layer.h:
          * khtml/rendering/render_object.cpp:
          (RenderObject::setNeedsLayout):
          (RenderObject::setChildNeedsLayout):
          * khtml/rendering/render_object.h:
          * khtml/rendering/render_table.cpp:
          (RenderTableSection::layoutRows):
  
  2003-11-12  Ken Kocienda  <kocienda at apple.com>
  
  	I am an idiot for just assuming that these elements implement a focus()
  	function, without actually compiling and testing. I will have to add 
  	this function to these elements so I can make this work.
  
          * khtml/html/html_formimpl.cpp:
          (HTMLButtonElementImpl::accessKeyAction): These elements do not implement focus().
          * khtml/html/html_inlineimpl.cpp:
          (HTMLAnchorElementImpl::accessKeyAction): Ditto.
  
  2003-11-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Richard
  
          * khtml/html/html_formimpl.cpp:
          (HTMLButtonElementImpl::click): Implemented. Missed this in my earlier patch.
          (HTMLButtonElementImpl::accessKeyAction): Added. Focus and click.
          (HTMLInputElementImpl::accessKeyAction): Added. Focus the element.
          (HTMLSelectElementImpl::accessKeyAction): Added. Focus the element.
          (HTMLTextAreaElementImpl::accessKeyAction): Added. Focus the element.
          * khtml/html/html_formimpl.h:
          * khtml/html/html_inlineimpl.cpp:
          (HTMLAnchorElementImpl::accessKeyAction): Added. Focus and click.
          * khtml/html/html_inlineimpl.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::addElementById): Dirty the accesskey dictionary.
          (DocumentImpl::removeElementById): Ditto.
          (DocumentImpl::getElementByAccessKey): Function to look up an element
  	based on the key provided.
          (DocumentImpl::setDocumentChanged): Dirty the accesskey dictionary.
          (DocumentImpl::defaultEventHandler): Check the accesskey dictionary
  	to see if some element wants to handle a key event.
          * khtml/xml/dom_docimpl.h:
          * khtml/xml/dom_elementimpl.h:
          (DOM::ElementImpl::accessKeyAction): Added. Send a click to the element.
  
  2003-11-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Richard
  
  	Fix for this bug:
  
  	<rdar://problem/3481600>: key event objects do not preserve unmodified keys
  
          * khtml/xml/dom2_eventsimpl.cpp: Modified constructor call to include
  	unmodifiedText.
          (KeyboardEventImpl::KeyboardEventImpl):
          * kwq/KWQEvent.h: Added unmodifiedText accessor and variable to QKeyEvent.
          * kwq/KWQEvent.mm:
          (QKeyEvent::QKeyEvent): Modified constructor to include unmodifiedText.
          (QKeyEvent::unmodifiedText): Added accessor.
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::keyEvent): Modified constructor call to include
          unmodifiedText.
  
  2003-11-12  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Maciej
  
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::click): Implemented a programmatic click function for
  	elements.
          * khtml/html/html_elementimpl.h:
          * khtml/html/html_formimpl.cpp:
          (HTMLFormElementImpl::submitClick): Implemented a programmatic click function for
  	elements.
          (HTMLInputElementImpl::click): This implementation calls through
  	to Cocoa button programmatic click function to get user interface
  	feedback for button elements, and calls through to the superclass
  	for other elements.
          * khtml/html/html_formimpl.h:
          * khtml/html/html_inlineimpl.cpp: Removed click() function for anchors.
  	No longer needed.
          * khtml/html/html_inlineimpl.h: Ditto.
  
  2003-11-12  David Hyatt  <hyatt at apple.com>
  
  	Fix build bustage in deployment builds.
  
          * kwq/KWQLineEdit.mm:
          (QLineEdit::hasMarkedText):
  
  2003-11-11  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3481134, shorthand parsing in CSS does not fill in omitted values.  The fix is to implement
  	the CSS3 'initial' value for all properties (covered by 3481323), and then to fill in the omitted 
  	values with the 'initial' value.
  
  	This patch also fixes two bugs in the style system: 3481324, collapsed borders with border-style: none
  	should always return a width of 0, and 3481322, 'clip' not inheriting properly in CSS when explicit
  	inheritance is used.
  	
          Reviewed by mjs
  
          * khtml/css/css_valueimpl.cpp:
          (CSSInitialValueImpl::cssText):
          * khtml/css/css_valueimpl.h:
          (DOM::CSSInitialValueImpl::cssValueType):
          * khtml/css/cssparser.cpp:
          (CSSParser::parseValue):
          (CSSParser::parseShortHand):
          * khtml/css/cssstyleselector.cpp:
          (khtml::CSSStyleSelector::applyRule):
          * khtml/css/cssvalues.c:
          (hash_val):
          (findValue):
          * khtml/css/cssvalues.h:
          * khtml/css/cssvalues.in:
          * khtml/dom/css_value.h:
          (DOM::CSSValue::):
          * khtml/rendering/render_style.cpp:
          (StyleBoxData::StyleBoxData):
          (StyleVisualData::StyleVisualData):
          (StyleBackgroundData::StyleBackgroundData):
          (StyleMarqueeData::StyleMarqueeData):
          (StyleFlexibleBoxData::StyleFlexibleBoxData):
          (opacity):
          (StyleInheritedData::StyleInheritedData):
          (RenderStyle::diff):
          * khtml/rendering/render_style.h:
          (khtml::BorderValue::BorderValue):
          (khtml::CollapsedBorderValue::width):
          (khtml::RenderStyle::InheritedFlags::operator==):
          (khtml::RenderStyle::setBitDefaults):
          (khtml::RenderStyle::resetBorderTop):
          (khtml::RenderStyle::resetBorderRight):
          (khtml::RenderStyle::resetBorderBottom):
          (khtml::RenderStyle::resetBorderLeft):
          (khtml::RenderStyle::resetOutline):
          (khtml::RenderStyle::setHasClip):
          (khtml::RenderStyle::resetMargin):
          (khtml::RenderStyle::resetPadding):
          (khtml::RenderStyle::setCursor):
  
  2003-11-11  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fixed 3479537 - reproducible crash in KJS::WindowFunc::tryCall
  	
          * khtml/ecma/kjs_window.cpp:
          (WindowFunc::tryCall): Check part and doc impl for null.
  
  2003-11-11  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Ken.
  
  	- fixed 3472330 -  REGRESSION: onKeyPress handler not called when hitting keys in <input type=password> field
  
          * kwq/KWQTextField.mm:
          (-[KWQSecureTextField initWithQLineEdit:]): New initializer, so
  	the secure text field knows about the widget.
          (-[KWQTextField setPasswordMode:]): Use new initializer for
  	KWQSecureTextField.
          (-[KWQSecureTextField textView:shouldHandleEvent:]): New method,
  	do the same thing as the non-secure text field to pass the event on.
          (-[KWQSecureTextField textView:didHandleEvent:]): Ditto.
  
  2003-11-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by Maciej
  
  	Fix for this bug:
  
  	<rdar://problem/3480173>: Too many names for programmatic click functions
  
  	Changed all instances of performClick() and simulateClick() to click().
  	Changed all instances of performSubmitClick() to submitClick().
  
  	Additionally, KWQButton had a simulateClick method, which was redundant
  	given that its superclass has a performClick: method.
  
          * khtml/html/html_formimpl.cpp:
          (HTMLFormElementImpl::submitClick):
          (HTMLInputElementImpl::defaultEventHandler):
          (HTMLSelectElementImpl::defaultEventHandler):
          * khtml/html/html_formimpl.h:
          * khtml/html/html_inlineimpl.cpp:
          (HTMLAnchorElementImpl::defaultEventHandler):
          (HTMLAnchorElementImpl::click):
          * khtml/html/html_inlineimpl.h:
          * khtml/rendering/render_form.cpp:
          (RenderLineEdit::slotReturnPressed):
          * kwq/KWQButton.h:
          * kwq/KWQButton.mm:
          (QButton::click):
  
  2003-11-11  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fixed 3475272 - custom property on CSSStyleObject won't hold a value
  
          * khtml/ecma/kjs_css.cpp:
          (DOMCSSStyleDeclaration::tryPut): If the property is not a css property,
  	save it as a custom object property in the normal way.
  
  2003-11-11  John Sullivan  <sullivan at apple.com>
  
          - fixed <rdar://problem/3480421>: Focus rings around links are too thick, 
          should use 3 px instead of 5 px
  
          Reviewed by Don and Ken.
  
          * khtml/css/html4.css:
          use 3px instead of 5 px for :active, :focus
  
  2003-11-11  Ken Kocienda  <kocienda at apple.com>
  
          Reviewed by John
  
  	In the DOM Level 3 Events specification, keydown and keyup are 
  	standard events. We can remove the KHTML component in the names 
  	of these constants. Note that the keypress event is still 
  	nonstandard and will retain the KHTML name component.
  
          * khtml/ecma/kjs_binding.cpp:
          (ScriptInterpreter::wasRunByUserGesture)
          * khtml/ecma/kjs_dom.cpp:
          (DOMNode::getValueProperty)
          (DOMNode::putValue)
          * khtml/ecma/kjs_window.cpp:
          (Window::get)
          (Window::put)
          * khtml/html/html_elementimpl.cpp:
          (HTMLElementImpl::parseAttribute)
          * khtml/html/html_formimpl.cpp:
          (HTMLGenericFormElementImpl::defaultEventHandler)
          * khtml/html/html_inlineimpl.cpp:
          (HTMLAnchorElementImpl::defaultEventHandler)
          * khtml/xml/dom2_eventsimpl.cpp:
          (EventImpl::typeToId)
          (EventImpl::idToType)
          (KeyboardEventImpl::KeyboardEventImpl)
          * khtml/xml/dom2_eventsimpl.h:
          (DOM::EventImpl::)
  
  2003-11-11  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3480281>: drag image of selected text and images include broken images
  	
          Reviewed by dave.
  
          * khtml/rendering/render_image.cpp:
          (RenderImage::paintObject): when drawing the drag image, don't draw the broken image
  
  2003-11-11  Vicki Murley  <vicki at apple.com>
  
          Reviewed by sullivan.
  
  	- rolled Merlot build fix onto the trunk
  
          * WebCorePrefix.h: added #include <sys/types.h>
  
  2003-11-10  David Hyatt  <hyatt at apple.com>
  
  	Fix for 3473531, text nested in hr inside h3 did not get the h3's style.
  	
          Reviewed by darin
  
          * khtml/html/dtd.cpp:
          (DOM::checkChild):
  
  2003-11-10  David Hyatt  <hyatt at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at apple.com>
  
          - fixed broken build
  
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::completeURL):
          removed stray character
  
  2003-11-06  Maciej Stachowiak  <mjs at 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 at 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 at 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 at 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 at apple.com>
  
          * WebCore-combined.exp: Checked in generated file.
  
  2003-11-05  Richard Williamson   <rjw at 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 at apple.com>
  
          * WebCore-tests.exp: Added missing symbol so tests will link.
  
  2003-11-05  Maciej Stachowiak  <mjs at 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 at 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 at 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 at 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 at apple.com>
  
  	- fixed deployment build
  	
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::fileWrapperForElement):
  
  2003-11-04  Maciej Stachowiak  <mjs at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at apple.com>
  
  	Rolling out this code since it caused a big performance 
  	regression.
  
  	2003-10-29  David Hyatt  <hyatt at 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 at 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 at 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 at 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 at 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 at apple.com>
  
          * 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 at 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 at apple.com>
  
  	Fix crasher in border collapsing code.
  	
          Reviewed by kocienda
  
          * khtml/rendering/render_table.cpp:
          (RenderTable::cellRight):
  
  2003-10-28  Maciej Stachowiak  <mjs at 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 at 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 at apple.com>
  
  	Make <button> be an inline-block.
  	
          * khtml/css/html4.css:
  
  2003-10-28  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	 - fixed 3465547 - REGRESSION (100-111)?: window.prompt does not work
  	
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::runJavaScriptPrompt): Return the result properly
  	instead of always returning false.
  
  2003-10-28  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed 3465504 -- REGRESSION (100-111): text areas with Chinese text in them are wider than ones without
  
          * kwq/KWQTextArea.h: Add _font field.
          * kwq/KWQTextArea.mm:
          (-[KWQTextArea dealloc]): Release _font.
          (-[KWQTextArea setFont:]): Store font in _font as well as setting it in the text view.
          (-[KWQTextArea sizeWithColumns:rows:]): Use _font rather than asking the text view for the font.
  
  2003-10-28  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed 3464702 -- node.item(x) is not implemented (dynamic menus not filled out at techcu.com)
  
          * khtml/ecma/kjs_dom.cpp: (DOMNodeProtoFunc::tryCall): Add implementation of item function.
          * khtml/ecma/kjs_dom.h: Added Item to the enum.
          * khtml/ecma/kjs_dom.lut.h: Regenerated.
  
  2003-10-28  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Dave,
  
  	- fixed 3379725 - for <a> elements with both onclick and href, Web Kit's behavior does not match other browsers
  
  	The fix for this was to make cancelBubble only prevent bubbling,
  	but not stop propagation or prevent default. While I was at it, I
  	made returnValue work right too.
  	
          * khtml/ecma/kjs_events.cpp:
          (DOMEvent::getValueProperty): Implement cancelBubble and returnValue properties properly.
          (DOMEvent::putValue): Ditto.
          * khtml/dom/dom2_events.cpp:
          (Event::setCancelBubble): Call impl.
          (Event::setDefaultPrevented): Ditto.
          (Event::getCancelBubble): Ditto.
          (Event::defaultPrevented): Ditto.
          * khtml/dom/dom2_events.h:
          * khtml/xml/dom2_eventsimpl.h:
          (DOM::EventImpl::propagationStopped): Made this a const method.
          (DOM::EventImpl::defaultPrevented): Ditto.
          (DOM::EventImpl::setCancelBubble): Implemented by setting a new field.
          (DOM::EventImpl::getCancelBubble): Corresponding getter.
          (DOM::EventImpl::setDefaultPrevented): Set the already existing field for this.
          * khtml/xml/dom_nodeimpl.cpp:
          (NodeImpl::dispatchGenericEvent): Check getCancelBubble() when bubbling. Do not
  	check bubbles() before default handling.
  
  2003-10-28  Chris Blumenberg  <cblu at apple.com>
  
  	Fixed: <rdar://problem/3464472>: REGRESSION: New CSS cursor support breaks style="cursor:default
  
          Reviewed by dave.
  
          * kwq/KWQWidget.mm:
          (QWidget::cursor): break after we hit a view that responds to documentCursor as we do in setCursor. Without breaking we were returning the cursor of the most super HTML view which is not what we want.
  
  2003-10-28  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fixed 3421393 - window.open does not handle non-integral height/width (small window at saabusa.com)
  	
          * khtml/ecma/kjs_window.cpp:
          (WindowFunc::tryCall): Parse width, height, top and left as
  	floating point and then cast to int instead of parsing as int to
  	match other browsers and avoid rejecting floating point numbers.
  
  2003-10-28  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fixed 3464528 - addEventListener does not work for buttons, text areas, or inputs
  
          * khtml/rendering/render_form.cpp:
          (RenderFormElement::slotClicked): Send CLICK_EVENT as well as one
  	of KHTML_CLICK_EVENT or KHTML_DOUBLE_CLICK_EVENT.
  
  2003-10-28  Maciej Stachowiak  <mjs at apple.com>
  
          Fixed broken build.
  
          * kwq/KWQKPartsPart.mm:
          (KParts::ReadOnlyPart::setName): It's a ReadOnlyPart method, not a Part method.
  
  2003-10-28  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by John.
  
  	- fixed 3427046 - href and src attributes don't always give resolved URL
  
  	It turns out that all href and src attributes should be resolved
  	against the base, except for frame elements.
  	
          * khtml/dom/html_base.cpp:
          (HTMLIFrameElement::src): Resolve against base URL.
          * khtml/dom/html_form.cpp:
          (HTMLInputElement::src): Resolve URL even when empty. Remove
  	comment questioning resolution against base - it's definitely
  	right.
          * khtml/dom/html_head.cpp:
          (HTMLBaseElement::href): Resolve against base URL.
          (HTMLLinkElement::href): Ditto.
          (HTMLScriptElement::src): Ditto.
          * khtml/dom/html_image.cpp:
          (HTMLAreaElement::href): Ditto.
  	(HTMLImageElement::src): Resolve URL even when empty. Remove
  	comment questioning resolution against base - it's definitely
  	right.
          * khtml/dom/html_inline.cpp:
          (HTMLAnchorElement::href): Resolve against base URL.
  
  2003-10-27  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	- fixed 3083264 - frame names changed by JavaScript are not reflected in WebFrame at the WebKit level
  	
          * kwq/KWQKHTMLPart.h:
          * kwq/KWQKHTMLPart.mm:
          (KWQKHTMLPart::setName): Make sure the name is unique. Then tell
  	the bridge and the superclass about it.
          * kwq/KWQKPartsPart.h:
          (KParts::ReadOnlyPart::setName): Made this method virtual.
          * kwq/KWQKPartsPart.m: Added. Moved implementations of virtual methods here.
          * kwq/WebCoreBridge.h:
          * kwq/WebCoreBridge.mm:
          (-[WebCoreBridge setName:]): Call the superclass method to avid
  	sending the name pointlessly back across the bridge.
  
  2003-10-28  Darin Adler  <darin at apple.com>
  
          Reviewed by John.
  
          - fixed 3465063 -- REGRESSION (107-108): hang when fetching a page with an ad in a subframe (theage.com.au)
  
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::openURL): Follow the parent chain properly rather
          than repeatedly getting the part's own parent!
  
  2003-10-27  Maciej Stachowiak  <mjs at apple.com>
  
          Reviewed by Darin.
  
  	Improved exception blocking in the following ways:
  
  	- use C+constructors and destructors so returning or breaking out of an exception block works
  	- Remove use of volatile
  	- Collapse the caught exception case into a single function call to reduce code size.
  
          * WebCore.pbproj/project.pbxproj:
          * kwq/KWQButton.mm:
          * kwq/KWQCheckBox.mm:
          * kwq/KWQComboBox.mm:
          * kwq/KWQExceptions.h:
          * kwq/KWQExceptions.mm: Added.
          * kwq/KWQFileButton.mm:
          * kwq/KWQFont.mm:
          * kwq/KWQFrame.mm:
          * kwq/KWQKConfigBase.mm:
          * kwq/KWQKCookieJar.mm:
          * kwq/KWQKCursor.mm:
          * kwq/KWQKHTMLPart.mm:
          * kwq/KWQKHTMLPartBrowserExtension.mm:
          * kwq/KWQKHistoryProvider.mm:
          * kwq/KWQKJavaAppletWidget.mm:
          * kwq/KWQKJobClasses.mm:
          * kwq/KWQKLocale.mm:
          * kwq/KWQKPartsBrowserInterface.mm:
          * kwq/KWQLineEdit.mm:
          * kwq/KWQListBox.mm:
          * kwq/KWQLoader.mm:
          * kwq/KWQPainter.mm:
          * kwq/KWQPushButton.mm:
          * kwq/KWQRadioButton.mm:
          * kwq/KWQScrollBar.mm:
          * kwq/KWQScrollView.mm:
          * kwq/KWQTextEdit.mm:
          * kwq/KWQWidget.mm:
          
  2003-10-26  Darin Adler  <darin at apple.com>
  
          * khtml/khtml_part.cpp: (findWordBoundary): Fix small mistake from NULL check-in earlier.
  
  2003-10-26  Darin Adler  <darin at apple.com>
  
          * kwq/KWQLoader.mm: (KWQResponseMIMEType): Removed an excess volatile.
  
  2003-10-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed 3463624 -- page at cinemakorea.com shows up blank due to kTECBufferBelowMinimumSizeErr from TEC
  
          * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertOneChunkUsingTEC): To work around the bug
          I found in the decoder (Radar 3351093), change kTECBufferBelowMinimumSizeErr to
          kTECOutputBufferFullStatus in cases where bytes were actually converted.
  
  2003-10-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed 3463586 -- WebCore does not compile with new definition of NULL
  
          * khtml/khtml_part.cpp: (findWordBoundary): Changed NULL to 0 and did a little code
          cleanup of the surrounding code.
          * khtml/rendering/break_lines.cpp: (khtml::isBreakable): Changed NULL to 0 and did
          a tiny bit of cleanup.
  
          * WebCorePrefix.h: Add a definition of NULL here that takes advantage of the GNU
          __null feature even if the system C library doesn't.
  
  2003-10-26  Darin Adler  <darin at apple.com>
  
          Reviewed by Maciej.
  
          - fixed 3457831 -- REGRESSION: copying particular text and pasting (plain) produces lots of extra text
  
          * khtml/khtml_part.cpp: (KHTMLPart::text): Check for the end node when following a
          link to the parent node, not just when following a link to the next child node.
          * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::attributedString): Ditto.
  
  == Rolled over to ChangeLog-2003-10-25 ==ite
  
  
  



More information about the webkit-changes mailing list