0dce54d26f3f8c752bd6e68a7c717ff657184937
[WebKit-https.git] / WebCore / ChangeLog-2005-08-23
1 2004-04-16  Richard Williamson   <rjw@apple.com>
2
3         Added an SPI to allow ObjC instances to be easily bound to 
4         JS.  This is needed by the dashboard guys for their prototyping.
5         Eventually they will use new API.
6
7         Reviewed by Chris.
8
9         * kwq/KWQKHTMLPart.h:
10         * kwq/KWQKHTMLPart.mm:
11         (KWQKHTMLPart::bindObject):
12         * kwq/WebCoreBridge.h:
13         * kwq/WebCoreBridge.mm:
14         (-[WebCoreBridge bindObject:withName:]):
15
16 2004-04-16  Chris Blumenberg  <cblu@apple.com>
17
18         Added DOMHTMLEmbedElement as a DOM extension since EMBED is represented in our DOM even though its not part of the spec.
19         Added all DOMCore and DOMHTML symbols to WebCore's symbols file.
20         Removed isSubresourceURLAttribute from dom node. This was only used for the WebArchive feature and all that work is now done in WebKit.
21
22         Reviewed by kocienda.
23
24         * WebCore-combined.exp:
25         * WebCore.exp:
26         * khtml/html/html_baseimpl.cpp:
27         (HTMLBodyElementImpl::isURLAttribute): renamed from isSubresourceURLAttribute. As a convenience to subclasses, dom_elementimpl would call isSubresourceURLAttribute in isURLAttribute, but this is no longer done
28         (HTMLFrameElementImpl::isURLAttribute): ditto
29         (HTMLIFrameElementImpl::isURLAttribute): ditto
30         * khtml/html/html_baseimpl.h:
31         * khtml/html/html_formimpl.cpp:
32         (HTMLInputElementImpl::isURLAttribute): ditto
33         * khtml/html/html_formimpl.h:
34         * khtml/html/html_headimpl.cpp:
35         (HTMLScriptElementImpl::isURLAttribute): ditto
36         * khtml/html/html_headimpl.h:
37         * khtml/html/html_imageimpl.cpp: 
38         (HTMLImageElementImpl::isURLAttribute): ditto
39         * khtml/html/html_imageimpl.h:
40         * khtml/html/html_objectimpl.cpp:
41         (HTMLEmbedElementImpl::isURLAttribute): ditto
42         (HTMLObjectElementImpl::isURLAttribute): ditto
43         (HTMLParamElementImpl::isURLAttribute): ditto
44         * khtml/html/html_objectimpl.h:
45         * khtml/html/html_tableimpl.cpp:
46         (HTMLTableElementImpl::isURLAttribute): ditto
47         (HTMLTableCellElementImpl::isURLAttribute): ditto
48         * khtml/html/html_tableimpl.h:
49         * khtml/xml/dom2_rangeimpl.cpp:
50         (RangeImpl::toHTMLWithOptions): take a node list (see below)
51         * khtml/xml/dom2_rangeimpl.h:
52         * khtml/xml/dom_elementimpl.cpp:
53         (ElementImpl::isURLAttribute):
54         * khtml/xml/dom_elementimpl.h:
55         * khtml/xml/dom_nodeimpl.cpp:
56         (NodeImpl::recursive_toHTMLWithOptions): append copied nodes to a list of nodes so that WebKit can operate on them
57         * khtml/xml/dom_nodeimpl.h:
58         * kwq/DOM.mm:
59         (+[DOMNode _nodeWithImpl:]): added support for HTML types
60         * kwq/DOMExtensions.h:
61         * kwq/DOMHTML.mm:
62         (-[DOMHTMLPreElement setWidth:]):
63         (-[DOMHTMLEmbedElement _embedElementImpl]):
64         (-[DOMHTMLEmbedElement align]):
65         (-[DOMHTMLEmbedElement setAlign:]):
66         (-[DOMHTMLEmbedElement height]):
67         (-[DOMHTMLEmbedElement setHeight:]):
68         (-[DOMHTMLEmbedElement name]):
69         (-[DOMHTMLEmbedElement setName:]):
70         (-[DOMHTMLEmbedElement src]):
71         (-[DOMHTMLEmbedElement setSrc:]):
72         (-[DOMHTMLEmbedElement type]):
73         (-[DOMHTMLEmbedElement setType:]):
74         (-[DOMHTMLEmbedElement width]):
75         (-[DOMHTMLEmbedElement setWidth:]):
76         (-[DOMHTMLTableElement background]):
77         (-[DOMHTMLTableElement setBackground:]):
78         (-[DOMHTMLTableCellElement background]): new extension 
79         (-[DOMHTMLTableCellElement setBackground:]): ditto
80         * kwq/WebCoreBridge.h:
81         * kwq/WebCoreBridge.mm:
82         (-[WebCoreBridge nodesFromList:]): new
83         (-[WebCoreBridge markupStringFromNode:nodes:]): return a list of nodes instead of subresource URLs so WebKit can operate on the nodes
84         (-[WebCoreBridge markupStringFromRange:nodes:]): ditto
85
86 2004-04-15  David Hyatt  <hyatt@apple.com>
87
88         Fix for 3624335, bugs with overflow and positioned objects.  The scrollbar didn't properly update
89         as you changed the sizes of positioned objects inside an overflow block.
90         
91         Reviewed by rjw
92
93         * khtml/rendering/render_block.cpp:
94         (khtml::RenderBlock::layoutBlock):
95         * khtml/rendering/render_flexbox.cpp:
96         (khtml::RenderFlexibleBox::layoutBlock):
97         * khtml/rendering/render_layer.cpp:
98         (RenderLayer::updateScrollInfoAfterLayout):
99
100 2004-04-15  Ken Kocienda  <kocienda@apple.com>
101
102         Reviewed by Dave
103         
104         Improved selection behavior. As part of this work, I removed
105         almost all of the checkSelectionPoint() functions, leaving
106         only those associated with fonts, and all of the 
107         checkSelectionPointIgnoringContinuations() functions. Each
108         of these has been replaced by a new function called
109         positionForCoordinates(), which returns a DOMPosition.
110         
111         * WebCore.pbproj/project.pbxproj:
112         * khtml/khtml_events.cpp:
113         (khtml::MouseEvent::offset): Converted to use positionForCoordinates.
114         * khtml/khtml_part.cpp: Ditto.
115         (KHTMLPart::isPointInsideSelection):
116         (KHTMLPart::handleMousePressEventDoubleClick): Ditto.
117         (KHTMLPart::handleMousePressEventTripleClick): Ditto.
118         (KHTMLPart::handleMousePressEventSingleClick): Ditto.
119         (KHTMLPart::handleMouseMoveEventSelection): Ditto.
120         (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
121         * khtml/khtml_part.h:
122         * khtml/rendering/render_block.cpp:
123         (khtml::RenderBlock::positionForBox): New helper.
124         (khtml::RenderBlock::positionForRenderer): New helper.
125         (khtml::RenderBlock::positionForCoordinates): New selection-node-offset-finder method.
126         * khtml/rendering/render_block.h:
127         * khtml/rendering/render_br.cpp: Removed checkSelectionPointIgnoringContinuations.
128         No special behavior is needed for this class anymore.
129         * khtml/rendering/render_br.h: Ditoo.
130         * khtml/rendering/render_container.cpp:
131         (RenderContainer::positionForCoordinates): New selection-node-offset-finder method.
132         * khtml/rendering/render_container.h:
133         * khtml/rendering/render_line.cpp:
134         (InlineBox::firstLeafChild): New helper.
135         (InlineBox::lastLeafChild): New helper.
136         (InlineFlowBox::firstLeafChild): New helper.
137         (InlineFlowBox::lastLeafChild): New helper.
138         * khtml/rendering/render_line.h:
139         * khtml/rendering/render_object.cpp:
140         (RenderObject::firstLeafChild): New helper.
141         (RenderObject::lastLeafChild): New helper.
142         (RenderObject::positionForCoordinates):
143         * khtml/rendering/render_object.h:
144         * khtml/rendering/render_replaced.cpp:
145         (RenderReplaced::positionForCoordinates): New selection-node-offset-finder method.
146         * khtml/rendering/render_replaced.h:
147         * khtml/rendering/render_text.cpp:
148         (InlineTextBox::offsetForPosition): New helper, replaces checkSelectionPoint()
149         (RenderText::positionForCoordinates): New selection-node-offset-finder method.
150         * khtml/rendering/render_text.h:
151         * khtml/xml/dom_nodeimpl.cpp: Added positionForCoordinates() convenience here. This
152         checks to see if the node has a renderer before doing the position check.
153         * khtml/xml/dom_nodeimpl.h: Ditto.
154         * kwq/DOM.mm:
155         (-[DOMNode isContentEditable]): Added this unrelated method, since without it, I crash when dragging an image.
156         * kwq/WebCoreBridge.mm:
157         (-[WebCoreBridge moveCaretToPoint:]): Converted to use positionForCoordinates.
158
159 2004-04-15  David Hyatt  <hyatt@apple.com>
160
161         Fix for 3603455, block truncation support.
162         
163         Reviewed by kocienda
164
165         * khtml/css/cssparser.cpp:
166         (CSSParser::parseValue):
167         * khtml/css/cssproperties.c:
168         (hash_prop):
169         (findProp):
170         * khtml/css/cssproperties.h:
171         * khtml/css/cssproperties.in:
172         * khtml/css/cssstyleselector.cpp:
173         (khtml::CSSStyleSelector::applyProperty):
174         * khtml/ecma/kjs_css.cpp:
175         (cssPropertyName):
176         * khtml/rendering/render_block.cpp:
177         (khtml::RenderBlock::lineCount):
178         (khtml::RenderBlock::heightForLineCount):
179         * khtml/rendering/render_block.h:
180         * khtml/rendering/render_flexbox.cpp:
181         (khtml::RenderFlexibleBox::layoutHorizontalBox):
182         (khtml::RenderFlexibleBox::layoutVerticalBox):
183         * khtml/rendering/render_style.cpp:
184         (marquee):
185         (StyleCSS3NonInheritedData::operator==):
186         (RenderStyle::diff):
187         * khtml/rendering/render_style.h:
188         (khtml::RenderStyle::lineClamp):
189         (khtml::RenderStyle::setLineClamp):
190         (khtml::RenderStyle::initialLineClamp):
191
192 2004-04-13  Chris Blumenberg  <cblu@apple.com>
193
194         - Removed WebCoreElementIsEditableKey. This functionality is available via [DOMNode isContentEditable].
195
196         Reviewed by rjw.
197
198         * WebCore-combined.exp:
199         * WebCore.exp:
200         * kwq/WebCoreBridge.h:
201         * kwq/WebCoreBridge.mm:
202         (-[WebCoreBridge elementAtPoint:]): removed use of WebCoreElementIsEditableKey
203         (-[WebCoreBridge URLWithRelativeString:]): new method for WebKit API
204
205 2004-04-13  David Hyatt  <hyatt@apple.com>
206
207         Fix for 3559764, make sure overflow is applied consistently using a separate bit on render objects, so that
208         the body scroll quirk can easily disable overflow even when it is present on the style.
209         
210         Reviewed by kocienda
211
212         * khtml/ecma/kjs_dom.cpp:
213         (DOMNode::putValue):
214         * khtml/rendering/bidi.cpp:
215         (khtml::RenderBlock::layoutInlineChildren):
216         * khtml/rendering/render_block.cpp:
217         (khtml::RenderBlock::setStyle):
218         (khtml::RenderBlock::layoutBlock):
219         (khtml::RenderBlock::layoutBlockChildren):
220         (khtml::RenderBlock::paintObject):
221         (khtml::RenderBlock::rightOffset):
222         (khtml::RenderBlock::lowestPosition):
223         (khtml::RenderBlock::rightmostPosition):
224         (khtml::RenderBlock::leftmostPosition):
225         (khtml::RenderBlock::isPointInScrollbar):
226         (khtml::RenderBlock::nodeAtPoint):
227         (khtml::RenderBlock::inRootBlockContext):
228         * khtml/rendering/render_block.h:
229         (khtml::RenderBlock::overflowHeight):
230         (khtml::RenderBlock::overflowWidth):
231         * khtml/rendering/render_box.cpp:
232         (RenderBox::setStyle):
233         (RenderBox::contentWidth):
234         (RenderBox::contentHeight):
235         (RenderBox::absolutePosition):
236         (RenderBox::computeAbsoluteRepaintRect):
237         (RenderBox::calcAbsoluteVertical):
238         * khtml/rendering/render_flexbox.cpp:
239         (khtml::RenderFlexibleBox::layoutBlock):
240         * khtml/rendering/render_flow.cpp:
241         (RenderFlow::lowestPosition):
242         (RenderFlow::rightmostPosition):
243         (RenderFlow::leftmostPosition):
244         * khtml/rendering/render_layer.cpp:
245         (RenderLayer::updateLayerPosition):
246         (RenderLayer::updateScrollInfoAfterLayout):
247         (RenderLayer::intersectsDamageRect):
248         (RenderLayer::containsPoint):
249         * khtml/rendering/render_object.cpp:
250         (RenderObject::RenderObject):
251         (RenderObject::requiresLayer):
252         (RenderObject::clientWidth):
253         (RenderObject::clientHeight):
254         (RenderObject::scrollWidth):
255         (RenderObject::scrollHeight):
256         (RenderObject::setStyle):
257         (RenderObject::absolutePosition):
258         (RenderObject::nodeAtPoint):
259         (RenderObject::avoidsFloats):
260         * khtml/rendering/render_object.h:
261         (khtml::RenderObject::hasOverflowClip):
262         (khtml::RenderObject::hasAutoScrollbars):
263         (khtml::RenderObject::scrollsOverflow):
264         (khtml::RenderObject::includeScrollbarSize):
265         (khtml::RenderObject::setHasOverflowClip):
266         * khtml/rendering/render_style.h:
267         (khtml::RenderStyle::overflow):
268         (khtml::RenderStyle::isDisplayReplacedType):
269         (khtml::RenderStyle::isDisplayInlineType):
270         * khtml/rendering/render_table.cpp:
271         (RenderTable::setStyle):
272         (RenderTableCell::setStyle):
273         (RenderTableCell::requiresLayer):
274         * khtml/rendering/render_table.h:
275
276 2004-04-12  David Hyatt  <hyatt@apple.com>
277
278         Fix for 3556036, make sure that when the position changes via style that all render layer
279         descendants simply immediately repaint.
280         
281         Reviewed by kocienda
282         
283         * khtml/rendering/render_layer.cpp:
284         (RenderLayer::repaintIncludingDescendants):
285         * khtml/rendering/render_layer.h:
286         * khtml/rendering/render_object.cpp:
287         (RenderObject::setStyle):
288
289 2004-04-12  Chris Blumenberg  <cblu@apple.com>
290
291         - Fixed build failure by removing references to WebArchive in WebCore.
292         - 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.
293
294         Reviewed by kocienda.
295
296         * khtml/editing/htmlediting.cpp:
297         (PasteMarkupCommand::PasteMarkupCommand): take the base URL of the clipping
298         * khtml/editing/htmlediting.h:
299         * khtml/editing/htmlediting_impl.cpp:
300         (PasteMarkupCommandImpl::PasteMarkupCommandImpl): take the base URL of the clipping
301         (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
302         * khtml/editing/htmlediting_impl.h:
303         * khtml/xml/dom2_rangeimpl.cpp:
304         (RangeImpl::toHTMLWithOptions): removed completeURLs param
305         * khtml/xml/dom2_rangeimpl.h:
306         * khtml/xml/dom_nodeimpl.cpp:
307         (NodeImpl::recursive_toHTMLWithOptions): removed completeURLs param
308         (NodeImpl::recursive_toHTML): ditto
309         (NodeImpl::recursive_completeURLs): new
310         * khtml/xml/dom_nodeimpl.h:
311         * kwq/WebCoreBridge.h:
312         * kwq/WebCoreBridge.mm:
313         (-[WebCoreBridge markupStringFromNode:subresourceURLStrings:]): call recursive_toHTML with less params
314         (-[WebCoreBridge markupStringFromRange:subresourceURLStrings:]): ditto
315         (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:]): take a base URL
316
317 2004-04-12  Ken Kocienda  <kocienda@apple.com>
318
319         Reviewed by Dave
320
321         Added execCommand support for cut/copy/paste.
322         
323         * khtml/xml/dom_docimpl.cpp:
324         (DocumentImpl::execCommand): Added cut/copy/paste atoms and added else if cases
325         for the commands.
326         * kwq/KWQKHTMLPart.h:
327         * kwq/KWQKHTMLPart.mm:
328         (KWQKHTMLPart::issueCutCommand): Glue for calling from WebCore to do a cut in Cocoa.
329         (KWQKHTMLPart::issueCopyCommand): Same as above, but for copy.
330         (KWQKHTMLPart::issuePasteCommand): Same as above, but for paste.
331         * kwq/WebCoreBridge.h: Declared issueCutCommand, issueCopyCommand, and issuePasteCommand
332         to be implemented on the WebKit side of the bridge.
333         * layout-tests/editing/editing.js: Added cut/copy/paste support to js library to support
334         making layout tests.
335         * layout-tests/editing/pasteboard/copy-paste-text-001-expected.txt: Added.
336         * layout-tests/editing/pasteboard/copy-paste-text-001.html: Added.
337         * layout-tests/editing/pasteboard/cut-paste-text-002-expected.txt: Added.
338         * layout-tests/editing/pasteboard/cut-paste-text-002.html: Added.
339         * layout-tests/editing/pasteboard/cut-text-001-expected.txt: Added.
340         * layout-tests/editing/pasteboard/cut-text-001.html: Added.
341
342 2004-04-12  Ken Kocienda  <kocienda@apple.com>
343
344         Reviewed by John
345         
346         Some delete and insert cleanups.
347
348         * khtml/editing/htmlediting_impl.cpp:
349         (DeleteSelectionCommandImpl::doApply): For ending position case 1,
350         the caret should be placed before the first child of the containing block, 
351         not before the containing block itself. Also, add some code to handle
352         converting nbsp's back to regular spaces. This will need to be improved
353         some day to convert only nbsp's added by the editor to make rendering come out right.
354         (InputTextCommandImpl::execute): 
355         (TypingCommandImpl::issueCommandForDeleteKey): Make deleting collapsible whitespace part 
356         of the work of deleting a selection, rather than something that needs to be done by a 
357         user of DeleteSelectionCommandImpl. This makes it impossible to leave out
358         this essential step.
359         (TypingCommandImpl::deleteKeyPressed): We can't use a possible optimization here until 
360         the code to do deletions properly has been factored better. Big FIXME added.
361         * layout-tests/editing/deleting/delete-block-contents-001-expected.txt: Updated for
362         ending position case 1 behavior change.
363         * layout-tests/editing/deleting/delete-block-contents-002-expected.txt: Ditto. 
364         * layout-tests/editing/deleting/delete-block-contents-003-expected.txt: Ditto.
365
366 2004-04-09  Ken Kocienda  <kocienda@apple.com>
367
368         Reviewed by Darin
369
370         Added support for methods added to flesh out the WebKit 
371         editing API.
372
373         * khtml/khtml_part.h: Removed pasteMarkupString and deleteSelection functions.
374         All this work is now done in WebCoreBridge.
375         * kwq/WebCoreBridge.h:
376         * kwq/WebCoreBridge.mm:
377         (-[WebCoreBridge isSelectionEditable]): Added a FIXME.
378         (-[WebCoreBridge setDrawsBackground:]): Moved this since CVS merged this in the
379         middle of editing code.
380         (-[WebCoreBridge replaceSelectionWithNode:]): New method.
381         (-[WebCoreBridge replaceSelectionWithText:]): Replaces insertText:
382         (-[WebCoreBridge replaceSelectionWithMarkupString:]): New method.
383         (-[WebCoreBridge replaceSelectionWithWebArchive:]): New method.
384         (-[WebCoreBridge replaceSelectionWithNewline]): Replaces insertNewline:
385         (-[WebCoreBridge deleteSelection]): New method.
386         (-[WebCoreBridge applyStyle:toElementsInDOMRange:]): New method.
387
388 2004-04-09  Darin Adler  <darin@apple.com>
389
390         Reviewed by Ken.
391
392         - added "transparent mode"
393
394         * khtml/khtmlview.h: Added isTransparent and setTransparent functions.
395         * khtml/khtmlview.cpp:
396         (KHTMLViewPrivate::KHTMLViewPrivate): Initialize isTransparent to false.
397         (KHTMLView::isTransparent): Return isTransparent.
398         (KHTMLView::setTransparent): Set isTransparent.
399
400         * khtml/rendering/render_box.cpp:
401         (RenderBox::paintRootBoxDecorations): Use slow repaints for the top frame when the view
402         is transparent; also don't draw a background. This is the same thing we do for subframes.
403         (RenderBox::paintBackgroundExtended): Don't do the extra draw so we can blend with the
404         background color for the top frame when the view is transparent.
405         * khtml/rendering/render_canvas.cpp: (RenderCanvas::paintBoxDecorations): More of the same.
406
407         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::paint): Make "fill with red" debug mode work only
408         when the view is not transparent.
409
410         * kwq/WebCoreBridge.h: Added setDrawsBackground: method.
411         * kwq/WebCoreBridge.mm: (-[WebCoreBridge setDrawsBackground:]): If told NO
412         (don't draw background), then set isTransparent to true on the KHTMLView.
413
414 2004-04-09  Ken Kocienda  <kocienda@apple.com>
415
416         Reviewed by me
417         
418         Added one more layout test for editing.
419
420         * layout-tests/editing/deleting/delete-3608445-fix-expected.txt: Added.
421         * layout-tests/editing/deleting/delete-3608445-fix.html: Added.
422
423 2004-04-08  Maciej Stachowiak  <mjs@apple.com>
424
425         Reviewed by John.
426
427         Changed things so that newly created objects get a prototype based
428         on the scope chain of the current function, rather than the
429         interpreter that started execution. This fixes the following bugs:
430         
431         <rdar://problem/3368523>: ARCH: wrong prototype used to create new objects (hang on lookup.atomica.com)
432         <rdar://problem/3559173>: ARCH: Cannot scan using a HP Jetdirect product (JS object prototypes bind incorrectly)
433
434         * khtml/ecma/kjs_binding.h:
435         (KJS::cacheDOMObject):
436         (KJS::cacheGlobalObject):
437         * khtml/ecma/kjs_css.cpp:
438         (KJS::getDOMStyleSheet):
439         (KJS::getDOMStyleSheetList):
440         (KJS::getDOMCSSValue):
441         * khtml/ecma/kjs_dom.cpp:
442         (KJS::getDOMDocumentNode):
443         (KJS::getDOMNode):
444         * khtml/ecma/kjs_events.cpp:
445         (KJS::getDOMEvent):
446         * khtml/ecma/kjs_html.cpp:
447         (KJS::HTMLDocument::tryGet):
448         (KJS::HTMLDocument::putValue):
449         (KJS::getSelectHTMLCollection):
450         * khtml/ecma/kjs_navigator.cpp:
451         (Navigator::Navigator):
452         (PluginBase::PluginBase):
453         * khtml/ecma/kjs_window.cpp:
454         (KJS::History::History):
455         (KJS::FrameArray::FrameArray):
456         (Screen::Screen):
457         (Window::retrieveActive):
458         (Window::put):
459         (Window::isSafeScript):
460         (WindowFunc::tryCall):
461         (Location::put):
462         (LocationFunc::tryCall):
463
464 2004-04-09  David Hyatt  <hyatt@apple.com>
465
466         Fix for 3613081, repaint glitches when using overflow:auto/overlay.
467         
468         Reviewed by john
469
470         * khtml/rendering/render_layer.cpp:
471         (RenderLayer::updateScrollInfoAfterLayout):
472
473 2004-04-09  David Hyatt  <hyatt@apple.com>
474
475         Fix for 3608445, garbage characters rendered after doing delete.  Delta was unsigned when it was supposed to
476         be signed, since deletion involves a negative delta.  Also had an off-by-one error in the line break end check.
477         
478         Reviewed by john
479
480         * khtml/rendering/render_text.cpp:
481         (RenderText::setTextWithOffset):
482
483 2004-04-09  Ken Kocienda  <kocienda@apple.com>
484
485         Reviewed by me
486         
487         Added two more layout tests for editing.
488
489         * layout-tests/editing/selection/move-between-blocks-no-001-expected.txt: Added.
490         * layout-tests/editing/selection/move-between-blocks-no-001.html: Added.
491         * layout-tests/editing/selection/move-between-blocks-yes-001-expected.txt: Added.
492         * layout-tests/editing/selection/move-between-blocks-yes-001.html: Added.
493
494 2004-04-09  Ken Kocienda  <kocienda@apple.com>
495
496         Reviewed by Dave
497         
498         Small collection of editing improvements.
499
500         * ChangeLog:
501         * khtml/editing/htmlediting_impl.cpp:
502         (shouldDeleteUpstreamPosition): This was deleting significant spaces on preceding
503         lines when the caret was at the start of a line. Fixed. 
504         (DeleteSelectionCommandImpl::doApply): Fixed a case where caret jumped to previous
505         line when deleting a character at the start of a line after a BR.
506         (InputNewlineCommandImpl::doApply): Handle more cases correctly. Previously, this
507         only handled inserting a newline when the caret was already in a text node.
508         (InputTextCommandImpl::prepareForTextInsertion): Ditto.
509         (InputTextCommandImpl::execute): Ditto.
510         * khtml/editing/htmlediting_impl.h:
511         * khtml/rendering/render_block.cpp:
512         (khtml::RenderBlock::checkSelectionPointIgnoringContinuations): Now can place caret
513         with a click in an empty block.
514         * khtml/rendering/render_block.h: Added checkSelectionPointIgnoringContinuations declaration.
515         * khtml/rendering/render_replaced.cpp: 
516         (RenderReplaced::checkSelectionPointIgnoringContinuations): Now can place caret with a click 
517         on a replaced element.
518         * khtml/rendering/render_replaced.h: Added checkSelectionPointIgnoringContinuations declaration.
519         * khtml/rendering/render_text.cpp:
520         (InlineTextBox::checkSelectionPoint): Now can place caret with a click in text on a line made "tall"
521         by an image on the same line.
522         * khtml/xml/dom_docimpl.cpp:
523         (DocumentImpl::createEditingTextNode): This creates a text node subclass that whill always create
524         a renderer for itself.
525         * khtml/xml/dom_docimpl.h:
526         * khtml/xml/dom_position.cpp:
527         (DOMPosition::isLastRenderedPositionInEditableBlock): Improved code to handle more cases.
528         * khtml/xml/dom_textimpl.cpp:
529         (TextImpl::TextImpl): Rolled out m_rendererIsNeeded flag.
530         (TextImpl::rendererIsNeeded): Ditto.
531         (EditingTextImpl::EditingTextImpl): New class.
532         (EditingTextImpl::~EditingTextImpl): New.
533         (EditingTextImpl::rendererIsNeeded): New. Always returns true.
534         * khtml/xml/dom_textimpl.h: New EditingTextImpl class.
535         * layout-tests/editing/deleting/delete-3608430-fix-expected.txt: Added.
536         * layout-tests/editing/deleting/delete-3608430-fix.html: Added.
537         * layout-tests/editing/deleting/delete-3608462-fix-expected.txt: Added.
538         * layout-tests/editing/deleting/delete-3608462-fix.html: Added.
539         * layout-tests/editing/deleting/delete-trailing-ws-002-expected.txt: Added.
540         * layout-tests/editing/deleting/delete-trailing-ws-002.html: Added.
541
542 2004-04-08  Chris Blumenberg  <cblu@apple.com>
543
544         Renamed the PasteHTMLCommand to PasteMarkupCommand. Removed PasteImageCommand because we will use PasteMarkupCommand for pasting images.
545
546         Reviewed by kocienda.
547
548         * ChangeLog:
549         * khtml/editing/htmlediting.cpp:
550         (PasteMarkupCommand::PasteMarkupCommand):
551         (PasteMarkupCommand::~PasteMarkupCommand):
552         (PasteMarkupCommand::impl):
553         (PasteMarkupCommand::markupString):
554         * khtml/editing/htmlediting.h:
555         (khtml::):
556         * khtml/editing/htmlediting_impl.cpp:
557         (PasteMarkupCommandImpl::PasteMarkupCommandImpl):
558         (PasteMarkupCommandImpl::~PasteMarkupCommandImpl):
559         (PasteMarkupCommandImpl::commandID):
560         (PasteMarkupCommandImpl::doApply):
561         * khtml/editing/htmlediting_impl.h:
562         (khtml::PasteMarkupCommandImpl::markupString):
563         * khtml/khtml_part.cpp:
564         (KHTMLPart::pasteMarkupString):
565         * khtml/khtml_part.h:
566         * kwq/WebCoreBridge.h:
567         * kwq/WebCoreBridge.mm:
568         (-[WebCoreBridge pasteMarkupString:]):
569
570
571 2004-04-08  David Hyatt  <hyatt@apple.com>
572
573         Fix for 3608430 and 3608462, crashes in findNextLineBreak when deleting.  Make sure that the removal of line boxes
574         always checks the previous root line box's line break information and dirties the line if it is pointing
575         to the deleted object.
576         
577         Reviewed by kocienda
578
579         * khtml/rendering/render_line.cpp:
580         (InlineFlowBox::removeChild):
581
582 2004-04-08  Chris Blumenberg  <cblu@apple.com>
583
584         Removed DOMExtensions.h from DOM.h until it is public.
585
586         Reviewed by koicienda.
587
588         * kwq/DOM.h:
589
590 2004-04-07  Chris Blumenberg  <cblu@apple.com>
591
592         WebCore side for supporting WebDOMOperations.   
593
594         Reviewed by rjw.
595
596         * WebCore-combined.exp:
597         * WebCore.exp:
598         * kwq/DOM.mm:
599         * kwq/DOMExtensions.h:
600         * kwq/WebCoreBridge.h:
601         * kwq/WebCoreBridge.mm:
602         (+[WebCoreBridge bridgeForDOMDocument:]): new
603         (-[WebCoreBridge imageForImageElement:]): new
604
605 2004-04-07  Darin Adler  <darin@apple.com>
606
607         Reviewed by Chris.
608
609         * kwq/DOMCSS.h: Changed DOMCSS2Properties to be a category on DOMCSSStyleDeclaration
610         (after API review, oops!, but I doubt anyone will even notice).
611         * kwq/DOM-CSS.mm: Implemented the entire DOMCSS2Properties category.
612
613 2004-04-07  Ken Kocienda  <kocienda@apple.com>
614
615         Reviewed by Chris
616
617         * kwq/WebCoreBridge.mm:
618         (-[WebCoreBridge _stringWithDocumentTypeStringAndMarkupString:]): Do not add a newline in between
619         the doctype and the content. The newline was showing up when the content was pasted.
620
621 2004-04-07  Ken Kocienda  <kocienda@apple.com>
622
623         Reviewed by John
624
625         Removed concept of currentSelection from EditCommands and refined concept of
626         startingSelection and endingSelection, making them work more sensibly in the 
627         system of composed editing commands.
628
629         * khtml/editing/htmlediting.cpp: Removed currentSelection().
630         * khtml/editing/htmlediting.h: Ditto.
631         * khtml/editing/htmlediting_impl.cpp: currentSelection().
632         (CompositeEditCommandImpl::applyCommandToComposite): Set the startingSelection 
633         and endingSelection for the command being applied to the endingSelection of
634         its new parent. This is the proper starting and ending point.
635         (CompositeEditCommandImpl::deleteSelection): Changed call to currentSelection
636         to endingSelection.
637         (DeleteCollapsibleWhitespaceCommandImpl::DeleteCollapsibleWhitespaceCommandImpl): Ditto.
638         (DeleteSelectionCommandImpl::DeleteSelectionCommandImpl): Changed call from startingSelection
639         to endingSelection.
640         (DeleteSelectionCommandImpl::joinTextNodesWithSameStyle): Changed call to currentSelection
641         to endingSelection.
642         (InputNewlineCommandImpl::doApply): Ditto.
643         (InputTextCommandImpl::deleteCharacter): Ditto.
644         (InputTextCommandImpl::prepareForTextInsertion): Ditto.
645         (InputTextCommandImpl::execute): Ditto.
646         (PasteHTMLCommandImpl::doApply): Ditto.
647         (TypingCommandImpl::insertText): Remove extraneous call to reset endingSelection. This has
648         already been done by the helpers this command uses to do its work.
649         (TypingCommandImpl::issueCommandForDeleteKey): Changed call to currentSelection
650         to endingSelection.
651         (TypingCommandImpl::deleteKeyPressed): Remove extraneous call to reset endingSelection. This has
652         already been done by the helpers this command uses to do its work.
653         * khtml/editing/htmlediting_impl.h:
654         (khtml::EditCommandImpl::endingSelection): Remove extraneous call to reset endingSelection. This has
655         already been done by the helpers this command uses to do its work.
656
657 2004-04-07  Ken Kocienda  <kocienda@apple.com>
658
659         Reviewed by John
660         
661         Make paste work again. It has been broken for some undetermined
662         period of time.
663
664         * khtml/editing/htmlediting_impl.cpp:
665         (CompositeEditCommandImpl::insertNodeAt): Handle inserting a node when
666         the reference node has children, or is an empty block.
667         (CompositeEditCommandImpl::inputText): New convenience to create and
668         apply an InputTextCommand.
669         (InputTextCommandImpl::execute): Collapse whitespace when selection is
670         not a range. Deleting the selection when it is a range already does that, 
671         so no need to make special accommodation for it.
672         (PasteHTMLCommandImpl::PasteHTMLCommandImpl): Initialize m_HTMLString using 
673         an initialization list.
674         (PasteHTMLCommandImpl::doApply): Collapse whitespace.... as above for 
675         InputTextCommandImpl::execute. Don't need to qualify NodeImpl's with DOM 
676         namespace. Clean up selection access; no need to grep around for it, the
677         desired selection is returned by calling currentSelection(). Treat "simple
678         text paste" like typing. Tighten up and simplify HTML fragment paste; no
679         real change in algorithm. 
680         (SplitTextNodeCommandImpl::SplitTextNodeCommandImpl): m_text1 member variable
681         not initialized. This bug was introduced by a recent change by me. Fixing now.
682         * khtml/editing/htmlediting_impl.h: Add inputText() declaration.
683
684 2004-04-06  Ken Kocienda  <kocienda@apple.com>
685
686         Reviewed by Richard
687
688         * khtml/khtml_part.cpp:
689         (KHTMLPart::setSelection): Now calls setFocusNodeIfNeeded.
690         (KHTMLPart::takeSelectionFrom): Now calls setFocusNodeIfNeeded.
691         (KHTMLPart::clearSelection): Now calls setFocusNodeIfNeeded.
692         (KHTMLPart::invalidateSelection): Now calls setFocusNodeIfNeeded.
693         (KHTMLPart::setSelectionVisible): Now calls setFocusNodeIfNeeded.
694         (KHTMLPart::setFocusNodeIfNeeded): New function focuses first element 
695         of a selection that is contenteditable, if any of the nodes are. The "first"
696         determination is made by doing a document-order search.
697         * khtml/khtml_part.h:
698         * khtml/xml/dom_nodeimpl.cpp: Remove debug spam.
699         * kwq/WebCoreBridge.mm:
700         (-[WebCoreBridge setSelectedDOMRange:]): Now updates document layout before
701         setting the selection. This was needed for Blot, so that setting the 
702         contenteditable attribute on the body is "seen" when the attempt is made
703         to set the selection right immediately after.
704
705 2004-04-06  David Hyatt  <hyatt@apple.com>
706
707         After columns have been expanded to their preferred sizes, if space is left over in the table, then
708         fixed columns should expand to fill space before percentage width columns do.  The old code had it
709         backwards.
710         
711         Reviewed by john
712
713         * khtml/rendering/table_layout.cpp:
714         (AutoTableLayout::layout):
715
716 2004-04-06  Ken Kocienda  <kocienda@apple.com>
717
718         Reviewed by Dave
719
720         * khtml/dom/dom_node.cpp:
721         (Node::isContentEditable): Added. Calls through to impl function of same name.
722         * khtml/dom/dom_node.h: Added isContentEditable declaration.
723         * khtml/khtmlview.cpp:
724         (KHTMLView::viewportMouseMoveEvent): Now, the cursor will change
725         to an i-beam whenever it is over a node that is contenteditable, and nothing, 
726         like a link, takes precedence.
727
728 2004-04-06  Ken Kocienda  <kocienda@apple.com>
729
730         Reviewed by Dave
731
732         * khtml/css/html4.css: Refine focus rules so that HTML and BODY
733         elements do not draw a focus ring around themselves when focused.
734         This prevents a silly-looking focus ring from drawing around a 
735         document's entire contents when a body element is contenteditable.
736
737 2004-04-06  Ken Kocienda  <kocienda@apple.com>
738
739         Reviewed by Dave
740
741         Caret height is now the height of the tallest element on the line,
742         mimicking NSText behavior.
743
744         * khtml/rendering/render_box.cpp:
745         (RenderBox::caretPos): Use root line box topOverflow and bottomOverflow 
746         for the calculation of caret height.
747         * khtml/rendering/render_text.cpp:
748         (RenderText::caretPos): Ditto.
749
750 2004-04-06  Ken Kocienda  <kocienda@apple.com>
751
752         Reviewed by me
753
754         Added a new suite of layout tests for editing, all added
755         in the new layout-tests/editing subtree.
756
757         * layout-tests/editing/abe.jpg: Added.
758         * layout-tests/editing/deleting/delete-block-contents-001-expected.txt: Added.
759         * layout-tests/editing/deleting/delete-block-contents-001.html: Added.
760         * layout-tests/editing/deleting/delete-block-contents-002-expected.txt: Added.
761         * layout-tests/editing/deleting/delete-block-contents-002.html: Added.
762         * layout-tests/editing/deleting/delete-block-contents-003-expected.txt: Added.
763         * layout-tests/editing/deleting/delete-block-contents-003.html: Added.
764         * layout-tests/editing/deleting/delete-br-001-expected.txt: Added.
765         * layout-tests/editing/deleting/delete-br-001.html: Added.
766         * layout-tests/editing/deleting/delete-br-002-expected.txt: Added.
767         * layout-tests/editing/deleting/delete-br-002.html: Added.
768         * layout-tests/editing/deleting/delete-br-003-expected.txt: Added.
769         * layout-tests/editing/deleting/delete-br-003.html: Added.
770         * layout-tests/editing/deleting/delete-br-004-expected.txt: Added.
771         * layout-tests/editing/deleting/delete-br-004.html: Added.
772         * layout-tests/editing/deleting/delete-br-005-expected.txt: Added.
773         * layout-tests/editing/deleting/delete-br-005.html: Added.
774         * layout-tests/editing/deleting/delete-br-006-expected.txt: Added.
775         * layout-tests/editing/deleting/delete-br-006.html: Added.
776         * layout-tests/editing/deleting/delete-character-001-expected.txt: Added.
777         * layout-tests/editing/deleting/delete-character-001.html: Added.
778         * layout-tests/editing/deleting/delete-contiguous-ws-001-expected.txt: Added.
779         * layout-tests/editing/deleting/delete-contiguous-ws-001.html: Added.
780         * layout-tests/editing/deleting/delete-image-001-expected.txt: Added.
781         * layout-tests/editing/deleting/delete-image-001.html: Added.
782         * layout-tests/editing/deleting/delete-image-002-expected.txt: Added.
783         * layout-tests/editing/deleting/delete-image-002.html: Added.
784         * layout-tests/editing/deleting/delete-image-003-expected.txt: Added.
785         * layout-tests/editing/deleting/delete-image-003.html: Added.
786         * layout-tests/editing/deleting/delete-leading-ws-001-expected.txt: Added.
787         * layout-tests/editing/deleting/delete-leading-ws-001.html: Added.
788         * layout-tests/editing/deleting/delete-selection-001-expected.txt: Added.
789         * layout-tests/editing/deleting/delete-selection-001.html: Added.
790         * layout-tests/editing/deleting/delete-trailing-ws-001-expected.txt: Added.
791         * layout-tests/editing/deleting/delete-trailing-ws-001.html: Added.
792         * layout-tests/editing/editing.js: Added.
793         * layout-tests/editing/inserting/typing-001-expected.txt: Added.
794         * layout-tests/editing/inserting/typing-001.html: Added.
795         * layout-tests/editing/inserting/typing-002-expected.txt: Added.
796         * layout-tests/editing/inserting/typing-002.html: Added.
797         * layout-tests/editing/inserting/typing-around-br-001-expected.txt: Added.
798         * layout-tests/editing/inserting/typing-around-br-001.html: Added.
799         * layout-tests/editing/inserting/typing-around-image-001-expected.txt: Added.
800         * layout-tests/editing/inserting/typing-around-image-001.html: Added.
801         * layout-tests/editing/selection/extend-by-character-001-expected.txt: Added.
802         * layout-tests/editing/selection/extend-by-character-001.html: Added.
803         * layout-tests/editing/selection/extend-by-character-002-expected.txt: Added.
804         * layout-tests/editing/selection/extend-by-character-002.html: Added.
805         * layout-tests/editing/selection/extend-by-character-003-expected.txt: Added.
806         * layout-tests/editing/selection/extend-by-character-003.html: Added.
807         * layout-tests/editing/selection/extend-by-character-004-expected.txt: Added.
808         * layout-tests/editing/selection/extend-by-character-004.html: Added.
809         * layout-tests/editing/selection/extend-by-character-005-expected.txt: Added.
810         * layout-tests/editing/selection/extend-by-character-005.html: Added.
811         * layout-tests/editing/selection/move-by-character-001-expected.txt: Added.
812         * layout-tests/editing/selection/move-by-character-001.html: Added.
813         * layout-tests/editing/selection/move-by-character-002-expected.txt: Added.
814         * layout-tests/editing/selection/move-by-character-002.html: Added.
815         * layout-tests/editing/selection/move-by-character-003-expected.txt: Added.
816         * layout-tests/editing/selection/move-by-character-003.html: Added.
817         * layout-tests/editing/selection/move-by-character-004-expected.txt: Added.
818         * layout-tests/editing/selection/move-by-character-004.html: Added.
819         * layout-tests/editing/selection/move-by-character-005-expected.txt: Added.
820         * layout-tests/editing/selection/move-by-character-005.html: Added.
821         * layout-tests/editing/undo/redo-typing-001-expected.txt: Added.
822         * layout-tests/editing/undo/redo-typing-001.html: Added.
823         * layout-tests/editing/undo/undo-typing-001-expected.txt: Added.
824         * layout-tests/editing/undo/undo-typing-001.html: Added.
825
826 2004-04-06  Ken Kocienda  <kocienda@apple.com>
827
828         Reviewed by Dave
829
830         Added execCommand feature. 
831         Added Javascript selection object.
832         This lays the groundwork for layout tests for editing.
833
834         * khtml/dom/dom_doc.cpp:
835         (DOM::Document::execCommand): Added. Calls through to impl's execCommand.
836         * khtml/dom/dom_doc.h: Added execCommand declaration.
837         * khtml/ecma/kjs_dom.cpp:
838         (DOMDocumentProtoFunc::tryCall): Switch on new ExecCommand constant and call through to the document.
839         * khtml/ecma/kjs_dom.h: Added ExecCommand constant.
840         (KJS::DOMDocument::):
841         * khtml/ecma/kjs_dom.lut.h: Generated file.
842         * khtml/ecma/kjs_window.cpp:
843         (Window::Window): Initialize selection object.
844         (Window::selection): Return window's selection object.
845         (Window::mark): Mark selection object.
846         (WindowFunc::tryCall): Return selection object on GetSelection.
847         (LocationFunc::tryCall): Added.
848         (Selection::Selection): Added.
849         (Selection::~Selection): Added.
850         (Selection::get): Added.
851         (Selection::put): Added.
852         (Selection::toPrimitive): Added.
853         (Selection::toString): Added.
854         (SelectionFunc::tryCall): Added.
855         * khtml/ecma/kjs_window.h:
856         (KJS::Selection::): Added.
857         (KJS::Selection::part): Added.
858         (KJS::Selection::classInfo): Added.
859         * khtml/ecma/kjs_window.lut.h: Generated file.
860         * khtml/editing/htmlediting_impl.cpp:
861         (debugPosition): Debugging aid.
862         (DeleteCollapsibleWhitespaceCommandImpl::deleteWhitespace): Move the ending position
863         if you are about to delete it. Fixes a crasher I discovered while writing tests.
864         (DeleteSelectionCommandImpl::doApply): Move to containing editable block position 0
865         instead of 1 in a block in delete case 1.
866         (InputTextCommandImpl::prepareForTextInsertion):
867         (TypingCommandImpl::issueCommandForDeleteKey):
868         * khtml/khtml_part.h:
869         * khtml/khtml_selection.cpp:
870         (KHTMLSelection::validate): Now adjusts the selection down to leaf nodes if needed.
871         (KHTMLSelection::debugPosition): Debugging aid.
872         * khtml/xml/dom_docimpl.cpp:
873         (DocumentImpl::execCommand): Added. Supports five different commands.
874         * khtml/xml/dom_docimpl.h:
875         * khtml/xml/dom_nodeimpl.cpp:
876         (NodeImpl::previousEditable): Use false instead of 0 for equality check.
877         (NodeImpl::nextEditable): Ditto.
878         * khtml/xml/dom_position.cpp:
879         (DOMPosition::equivalentLeafPosition): New function
880         (DOMPosition::previousRenderedEditablePosition): New function
881         (DOMPosition::nextRenderedEditablePosition): New function
882         (DOMPosition::equivalentUpstreamPosition): Refined behavior to handle more cases correctly.
883         (DOMPosition::equivalentDownstreamPosition): Ditto.
884         (DOMPosition::atStartOfContainingEditableBlock):New function
885         (DOMPosition::atStartOfRootEditableBlock):New function
886         * khtml/xml/dom_position.h:
887         * kwq/KWQKHTMLPart.h:
888         * kwq/KWQKHTMLPart.mm:
889         (KWQKHTMLPart::issueUndoCommand): New function for calling undo programatically.
890         (KWQKHTMLPart::issueRedoCommand): Ditto, but for redo.
891         * kwq/KWQRenderTreeDebug.cpp:
892         (nodePositionRelativeToRoot): New function to generate log information for the selection.
893         (writeSelection): Writes the selection if there is one.
894         (externalRepresentation): Calls writeSelection
895         * kwq/WebCoreBridge.h: New declarations for issueUndoCommand and issueRedoCommand.
896
897 2004-04-05  Darin Adler  <darin@apple.com>
898
899         * khtml/html/kentities.gperf: Added &COPY; and &REG;, both supported by Gecko
900         (and presumably by WinIE). Also re-sorted the list.
901         * khtml/html/kentities.c: Regenerated.
902
903 2004-04-05  Darin Adler  <darin@apple.com>
904
905         Reviewed by Dave.
906
907         - rolled over fix from KHTML tree; anchor inside another anchor
908
909         * khtml/rendering/render_layer.cpp: (RenderLayer::nodeAtPoint):
910         Make sure the URL element is the innermost one, by not setting it once
911         it's already set.
912
913 2004-04-05  David Hyatt  <hyatt@apple.com>
914
915         Implement overflow: overlay so that a scrollbar can show/hide without causing a layout.
916         
917         Reviewed by darin
918
919         * ChangeLog:
920         * khtml/css/css_computedstyle.cpp:
921         (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
922         * khtml/css/cssparser.cpp:
923         (CSSParser::parseValue):
924         * khtml/css/cssstyleselector.cpp:
925         (khtml::CSSStyleSelector::applyProperty):
926         * khtml/css/cssvalues.c:
927         (hash_val):
928         (findValue):
929         * khtml/css/cssvalues.h:
930         * khtml/css/cssvalues.in:
931         * khtml/rendering/render_block.cpp:
932         (khtml::RenderBlock::layoutBlock):
933         (khtml::RenderBlock::layoutBlockChildren):
934         (khtml::RenderBlock::rightOffset):
935         * khtml/rendering/render_box.cpp:
936         (RenderBox::contentWidth):
937         (RenderBox::contentHeight):
938         * khtml/rendering/render_layer.cpp:
939         (RenderLayer::updateScrollInfoAfterLayout):
940         * khtml/rendering/render_object.cpp:
941         (RenderObject::clientWidth):
942         (RenderObject::clientHeight):
943         * khtml/rendering/render_style.h:
944         (khtml::):
945         (khtml::RenderStyle::hasAutoScrollbars):
946         (khtml::RenderStyle::scrollsOverflow):
947         (khtml::RenderStyle::includeScrollbarSize):
948
949 2004-04-03  David Hyatt  <hyatt@apple.com>
950
951         Implementation of <input type=range>, which makes sliders available in Web pages.
952         
953         Reviewed by john
954
955         * WebCore.pbproj/project.pbxproj:
956         * khtml/ecma/kjs_dom.cpp:
957         (DOMNode::getValueProperty):
958         (DOMNode::putValue):
959         * khtml/ecma/kjs_dom.h:
960         (KJS::DOMNode::):
961         * khtml/ecma/kjs_dom.lut.h:
962         (KJS::):
963         * khtml/html/html_formimpl.cpp:
964         (HTMLInputElementImpl::setType):
965         (HTMLInputElementImpl::type):
966         (HTMLInputElementImpl::click):
967         (HTMLInputElementImpl::accessKeyAction):
968         (HTMLInputElementImpl::parseHTMLAttribute):
969         (HTMLInputElementImpl::rendererIsNeeded):
970         (HTMLInputElementImpl::createRenderer):
971         (HTMLInputElementImpl::encoding):
972         * khtml/html/html_formimpl.h:
973         (DOM::HTMLInputElementImpl::):
974         * khtml/misc/htmlattrs.c:
975         (hash_attr):
976         (findAttr):
977         * khtml/misc/htmlattrs.h:
978         * khtml/misc/htmlattrs.in:
979         * khtml/rendering/render_form.cpp:
980         (RenderLineEdit::slotTextChanged):
981         (:RenderFormElement):
982         (RenderSlider::calcMinMaxWidth):
983         (RenderSlider::updateFromElement):
984         (RenderSlider::slotSliderValueChanged):
985         * khtml/rendering/render_form.h:
986         (khtml::RenderSlider::element):
987         (khtml::RenderSlider::renderName):
988         (khtml::RenderSlider::canHaveIntrinsicMargins):
989         * khtml/xml/dom2_eventsimpl.cpp:
990         (EventImpl::typeToId):
991         (EventImpl::idToType):
992         * khtml/xml/dom2_eventsimpl.h:
993         (DOM::EventImpl::):
994         * kwq/KWQSlider.h: Added.
995         * kwq/KWQSlider.mm: Added.
996         (-[KWQSlider initWithQSlider:]):
997         (-[KWQSlider slide:]):
998         (m_val):
999         (QSlider::setFont):
1000         (QSlider::sizeHint):
1001         (QSlider::setValue):
1002         (QSlider::setMinValue):
1003         (QSlider::setMaxValue):
1004         (QSlider::value):
1005         (QSlider::minValue):
1006         (QSlider::maxValue):
1007         (QSlider::sliderValueChanged):
1008         (QSlider::dimensions):
1009         * kwq/KWQSlot.mm:
1010         (KWQSlot::KWQSlot):
1011         (KWQSlot::call):
1012
1013 2004-04-05  Chris Blumenberg  <cblu@apple.com>
1014
1015         Fixed: <rdar://problem/3612580>: SPI: WebPlugin selection
1016
1017         Reviewed by kocienda.
1018
1019         * WebCore.pbproj/project.pbxproj:
1020         * khtml/rendering/render_replaced.cpp:
1021         (RenderWidget::setSelectionState): new override, calls QWidget::setIsSelected
1022         * khtml/rendering/render_replaced.h:
1023         (khtml::RenderWidget::selectionState): new override
1024         * kwq/KWQWidget.h:
1025         * kwq/KWQWidget.mm:
1026         (QWidget::setIsSelected): new, calls [WebCoreBridge setIsSelected:forView:]
1027         (QWidget::isSelected): new, calls [WebCoreBridge isViewSelected:]
1028         * kwq/WebCoreBridge.h:
1029         * kwq/WebCoreBridge.mm:
1030         (-[WebCoreBridge selectionColor]): new
1031
1032 2004-04-03  David Hyatt  <hyatt@apple.com>
1033
1034         Fix for 3601728, text overlaps borders at ejai.org.  Remove all the code in addForbidden for
1035         dir, menu, nobr, and pre that made them too restrictive regarding what child tags they could
1036         contain.
1037         
1038         Reviewed by kocienda
1039
1040         * khtml/html/dtd.cpp:
1041         (DOM::addForbidden):
1042         (DOM::removeForbidden):
1043
1044 2004-04-02  Chris Blumenberg  <cblu@apple.com>
1045
1046         Moved the DOM extensions to their own headers
1047
1048         Reviewed by kocienda.
1049
1050         * WebCore.pbproj/project.pbxproj:
1051         * kwq/DOM.h: include DOMExtensions.h
1052         * kwq/DOMExtensions.h: Added.
1053         * kwq/DOMHTML.h: moved extensions to DOMExtensions.h
1054         * kwq/DOMHTML.mm: Renamed to match header
1055
1056 2004-04-02  David Hyatt  <hyatt@apple.com>
1057
1058         Fix for 3610662, rendering sometimes doesn't update in response to mouse events that change style.
1059         The document changed list was getting messed up.
1060         
1061         Reviewed by darin
1062
1063         * khtml/xml/dom_docimpl.cpp:
1064         (DocumentImpl::updateDocumentsRendering):
1065         * khtml/xml/dom_docimpl.h:
1066
1067 === Safari-135 ===
1068
1069 2004-04-01  Darin Adler  <darin@apple.com>
1070
1071         Based on a fix by Eric Albert.
1072
1073         - fixed <rdar://problem/3594247>: Safari crashes when a background image has a height or width of 0
1074
1075         * khtml/rendering/render_box.cpp: (RenderBox::paintBackgroundExtended):
1076         Change code path so we don't mod with 0.
1077
1078 2004-04-01  Darin Adler  <darin@apple.com>
1079
1080         Reviewed by Dave.
1081
1082         - fixed <rdar://problem/3608305>: DEMO: menu in search field has one disabled item: localized string not found
1083
1084         * khtml/html/html_formimpl.cpp: (HTMLInputElementImpl::HTMLInputElementImpl):
1085         Initialize m_maxResults to 0.
1086
1087 2004-04-01  Darin Adler  <darin@apple.com>
1088
1089         Reviewed by John.
1090
1091         - cleaned up image map code and made it work with XML documents
1092
1093         * khtml/html/html_documentimpl.h: Removed getMap and mapMap.
1094         * khtml/html/html_documentimpl.cpp: Removed getMap; moved to base class.
1095
1096         * khtml/html/html_imageimpl.cpp:
1097         (HTMLMapElementImpl::~HTMLMapElementImpl): Call new removeImageMap function instead
1098         of manipulating the mapMap field directly.
1099         (HTMLMapElementImpl::parseHTMLAttribute): Rewrite name changing code for simplicity
1100         and to avoid running off the end of the bufffer.
1101         Also remove image map before changing name so it doesn't end up in the map twice
1102         under both the old and new names.
1103         * khtml/html/html_imageimpl.h: Use a DOMString instead of QString for the name, since
1104         the public API already uses a DOMString.
1105
1106         * khtml/rendering/render_image.cpp: (RenderImage::nodeAtPoint): Call the new
1107         getImageMap instead of the old getMap.
1108
1109         * khtml/xml/dom_docimpl.h: Added addImageMap, removeImageMap, getImageMap, and m_imageMapsByName.
1110         * khtml/xml/dom_docimpl.cpp:
1111         (DocumentImpl::addImageMap): Added. Stores the image map under its name, unless there's
1112         already another map of the same.
1113         (DocumentImpl::removeImageMap): Added. Removes the image map if it's already filed by
1114         name. Avoid pitfall of removing another image map that has the same name.
1115         (DocumentImpl::getImageMap): Added. Simplified version of logic from getMap in HTMLDocumentImpl.
1116
1117 2004-04-01  Darin Adler  <darin@apple.com>
1118
1119         Reviewed by Ken.
1120
1121         - 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)
1122
1123         * khtml/html/html_imageimpl.cpp: (HTMLMapElementImpl::parseHTMLAttribute):
1124         Make the first <map> seen win, as in other browsers. The old code made the last <map> seen win.
1125
1126 2004-04-01  Ken Kocienda  <kocienda@apple.com>
1127
1128         Reviewed by me
1129         
1130         Missing file broke build after my last checkin
1131
1132         * ForwardingHeaders/rendering/render_line.h: Added.
1133
1134 2004-03-31  Ken Kocienda  <kocienda@apple.com>
1135
1136         Reviewed by Dave.
1137         
1138         Many, many editing improvements, with a concentration on getting
1139         caret navigation and deleting selections working correctly.
1140
1141         * WebCore.pbproj/project.pbxproj:
1142         * khtml/dom/dom_position.cpp: Removed.
1143         * khtml/dom/dom_position.h: Removed.
1144         * khtml/editing/htmlediting.cpp:
1145         (EditCommand::isNull): Inlined.
1146         (EditCommand::notNull): New function.
1147         (EditCommand::parent): Commands now have parents. Allows for walking the tree of composite commands.
1148         (EditCommand::setParent): Ditto.
1149         (EditCommand::emptyCommand): Returns a static empty command.
1150         (AppendNodeCommand::AppendNodeCommand): 
1151         (AppendNodeCommand::parentNode): Member variable name change only. parent -> parentNode.
1152         (DeleteCollapsibleWhitespaceCommand::DeleteCollapsibleWhitespaceCommand): New command.
1153         (InputTextCommand::InputTextCommand):
1154         (InputTextCommand::input):
1155         (InputTextCommand::charactersAdded):
1156         (JoinTextNodesCommand::JoinTextNodesCommand): Now derives directly from EditCommand.
1157         (RemoveNodeAndPruneCommand::RemoveNodeAndPruneCommand): New command.
1158         (SplitTextNodeCommand::SplitTextNodeCommand): Now derives directly from EditCommand.
1159         * khtml/editing/htmlediting.h:
1160         * khtml/editing/htmlediting_impl.cpp:
1161         (isNBSP): New helper.
1162         (isWS): New helper.
1163         (shouldPruneNode): New helper.
1164         (leadingWhitespacePosition): New helper.
1165         (trailingWhitespacePosition): New helper.
1166         (textNodesAreJoinable): New helper.
1167         (nonBreakingSpaceString): Returns a static DOMString containing a non-breaking space.
1168         (EditCommandImpl::EditCommandImpl):
1169         (EditCommandImpl::setStartingSelection): Now recursively sets starting selection on parents.
1170         (EditCommandImpl::setEndingSelection): As above, for ending selection.
1171         (EditCommandImpl::parent): New accessor.
1172         (EditCommandImpl::setParent): New accessor.
1173         (CompositeEditCommandImpl::doUnapply): Removed some logging.
1174         (CompositeEditCommandImpl::doReapply): Removed some logging.
1175         (CompositeEditCommandImpl::applyCommandToComposite): Sets parent.
1176         (CompositeEditCommandImpl::removeNodeAndPrune): New comvenience.
1177         (CompositeEditCommandImpl::replaceText): New comvenience.
1178         (CompositeEditCommandImpl::deleteSelection): New comvenience.
1179         (CompositeEditCommandImpl::deleteCollapsibleWhitespace): New comvenience.
1180         (AppendNodeCommandImpl::AppendNodeCommandImpl): Member variable name change only. parent -> parentNode.
1181         (AppendNodeCommandImpl::~AppendNodeCommandImpl): Ditto.
1182         (AppendNodeCommandImpl::doApply): Ditto.
1183         (AppendNodeCommandImpl::doUnapply): Ditto.
1184         (DeleteCollapsibleWhitespaceCommandImpl::DeleteCollapsibleWhitespaceCommandImpl): New command
1185         (debugPosition): New debugging aid.
1186         (DeleteSelectionCommandImpl::doApply): Major reworking to handle more cases correctly.
1187         (InputNewlineCommandImpl::doApply): Position and selection tweaks.
1188         (InputTextCommandImpl::InputTextCommandImpl): Handles more cases now, like typing after an image.
1189         (JoinTextNodesCommandImpl::JoinTextNodesCommandImpl): Now derives directly from EditCommand.
1190         Implements the guts of the command itself now, rather than replying on its former base class.
1191         (RemoveNodeAndPruneCommandImpl::RemoveNodeAndPruneCommandImpl): New command.
1192         (SplitTextNodeCommandImpl::SplitTextNodeCommandImpl): Now derives directly from EditCommand.
1193         Implements the guts of the command itself now, rather than replying on its former base class.
1194         (TypingCommandImpl::TypingCommandImpl): Major rework to handle more cases correctly.
1195         * khtml/editing/htmlediting_impl.h:
1196         * khtml/html/html_elementimpl.cpp:
1197         (HTMLElementImpl::isContentEditable): More efficient use of the style system to answer the question.
1198         * khtml/khtml_part.cpp:
1199         (KHTMLPart::setSelection): Fixes an issue where the caret would not repaint after being moved when undoing.
1200         (KHTMLPart::takeSelectionFrom): Ditto.
1201         (KHTMLPart::clearSelection): Ditto.
1202         (KHTMLPart::invalidateSelection): Ditto.
1203         (KHTMLPart::setSelectionVisible): Ditto.
1204         (KHTMLPart::slotClearSelection): Ditto.
1205         (KHTMLPart::clearCaretRectIfNeeded):  Ditto.
1206         (KHTMLPart::notifySelectionChanged): Ditto.
1207         (KHTMLPart::unappliedEditing): Now uses EditCommand::emptyCommand().
1208         (KHTMLPart::reappliedEditing): Ditto.
1209         * khtml/khtml_part.h:
1210         * khtml/khtml_selection.cpp:
1211         (KHTMLSelection::KHTMLSelection):
1212         (KHTMLSelection::modify): Updated to work with new DOMPosition API.
1213         (KHTMLSelection::paintCaret): Ditto.
1214         (KHTMLSelection::moveToRenderedContent): Ditto.
1215         (KHTMLSelection::basePosition): New convenience.
1216         (KHTMLSelection::extentPosition): New convenience.
1217         (KHTMLSelection::startPosition): New convenience.
1218         (KHTMLSelection::endPosition): New convenience.
1219         (KHTMLSelection::debugPosition): Modified debug output.
1220         * khtml/khtml_selection.h:
1221         (KHTMLSelection::isEmpty):
1222         (KHTMLSelection::notEmpty):
1223         * khtml/rendering/bidi.cpp:
1224         (khtml::RenderBlock::layoutInlineChildren): Fixed a crasher that happened when deleting content at the start of a line.
1225         * khtml/rendering/render_br.cpp:
1226         (RenderBR::caretMaxRenderedOffset): New function.
1227         (RenderBR::caretPos): Now draws the caret in the right place when a block is empty.
1228         * khtml/rendering/render_br.h:
1229         * khtml/rendering/render_flow.cpp:
1230         (RenderFlow::caretPos): Now draws the caret in the right place when a flow is empty.
1231         * khtml/rendering/render_line.cpp:
1232         (InlineBox::caretMaxRenderedOffset): New function.
1233         * khtml/rendering/render_line.h:
1234         * khtml/rendering/render_object.cpp:
1235         (RenderObject::isEditable):
1236         (RenderObject::caretMaxRenderedOffset): New function.
1237         * khtml/rendering/render_object.h:
1238         * khtml/rendering/render_replaced.cpp:
1239         (RenderReplaced::caretMaxRenderedOffset): New function.
1240         * khtml/rendering/render_replaced.h:
1241         * khtml/rendering/render_text.cpp:
1242         (InlineTextBox::caretMaxRenderedOffset): New function.
1243         (RenderText::detach):
1244         (RenderText::caretMaxOffset):
1245         (RenderText::caretMaxRenderedOffset): New function.
1246         * khtml/rendering/render_text.h:
1247         (khtml::InlineTextBox::len):
1248         * khtml/xml/dom_edititerator.cpp: Added.
1249         * khtml/xml/dom_edititerator.h: Added.
1250         * khtml/xml/dom_nodeimpl.cpp:
1251         (NodeImpl::previousEditable): Improved the correctness of this function.
1252         (NodeImpl::nextEditable): Ditto.
1253         * khtml/xml/dom_nodeimpl.h:
1254         * khtml/xml/dom_position.cpp: Added.
1255         (DOMPosition::renderedOffset): New function.
1256         (DOMPosition::previousCharacterPosition): New function.
1257         (DOMPosition::nextCharacterPosition): New function.
1258         (DOMPosition::equivalentUpstreamPosition): New function.
1259         (DOMPosition::equivalentDownstreamPosition): New function.
1260         (DOMPosition::validUpstreamDownstreamPosition): New function.
1261         (DOMPosition::inRenderedContent): New function.
1262         (inlineBoxForRenderer): New function.
1263         (renderersOnDifferentLine): New function.
1264         (nextRenderedEditable): New function.
1265         (previousRenderedEditable): New function.
1266         (DOMPosition::inRenderedText): New function.
1267         (DOMPosition::rendersOnSameLine): New function.
1268         (DOMPosition::rendersInDifferentPosition): New function.
1269         (DOMPosition::isFirstRenderedPositionOnLine): New function.
1270         (DOMPosition::isLastRenderedPositionOnLine): New function.
1271         (DOMPosition::isLastRenderedPositionInEditableBlock): New function.
1272         (DOMPosition::inFirstEditableInRootEditableBlock): New function.
1273         (DOMPosition::inLastEditableInRootEditableBlock): New function.
1274         (DOMPosition::inFirstEditableInContainingEditableBlock): New function.
1275         (DOMPosition::inLastEditableInContainingEditableBlock): New function.
1276         * khtml/xml/dom_position.h: Added.
1277         (DOM::DOMPosition::notEmpty): New function.
1278         * khtml/xml/dom_stringimpl.cpp:
1279         (DOM::DOMStringImpl::containsOnlyWhitespace): Added a version which takes an offset and length.
1280         * khtml/xml/dom_stringimpl.h:
1281         * khtml/xml/dom_textimpl.cpp:
1282         (CharacterDataImpl::containsOnlyWhitespace): As above
1283         (CharacterDataImpl::maxOffset): New function.
1284         (CharacterDataImpl::caretMaxRenderedOffset): New function.
1285         (TextImpl::TextImpl):
1286         (TextImpl::rendererIsNeeded): A new bit. When set, makes a text renderer unconditionally.
1287         * khtml/xml/dom_textimpl.h:
1288         (DOM::TextImpl::setRendererIsNeeded): Sets the bit.
1289         * kwq/KWQAssertions.m:
1290         (KWQLog): Change to decrease the amount of output for the Editing log level. (my preference)
1291
1292 2004-03-31  David Hyatt  <hyatt@apple.com>
1293
1294         Fix for 3601834, make sure that textareas do a layout when their rows/cols/wrap attributes are dynamically
1295         changed.
1296         
1297         Reviewed by darin.
1298
1299         * khtml/html/html_formimpl.cpp:
1300         (HTMLTextAreaElementImpl::parseHTMLAttribute):
1301
1302 2004-03-30  David Hyatt  <hyatt@apple.com>
1303
1304         Fix for 3604241, simple space collapsing results in a doubled character.  Simplify the ignoring of
1305         whitespace and make sure it works across absolutely positioned spans.
1306         
1307         Reviewed by darin
1308
1309         * khtml/rendering/bidi.cpp:
1310         (khtml::RenderBlock::findNextLineBreak):
1311
1312 2004-03-30  Darin Adler  <darin@apple.com>
1313
1314         Reviewed by Dave.
1315
1316         - fixed <rdar://problem/3570877>: REGRESSION: onfocus handler not working at weather.com
1317
1318         * khtml/ecma/kjs_binding.cpp:
1319         (UString::string): Turn a null UString into a null DOMString, but a non-null empty UString into a
1320         non-null empty DOMString.
1321         (UString::qstring): Ditto, for QString.
1322         (Identifier::string): Ditto, for Identifier.
1323         (Identifier::qstring): Ditto.
1324
1325         * kwq/KWQLineEdit.h: Override focusPolicy.
1326         * kwq/KWQLineEdit.mm: (QLineEdit::focusPolicy): Return StrongFocus instead of TabFocus, since
1327         we allow clicking to focus on these widgets.
1328         * kwq/KWQTextEdit.h: More of the same.
1329         * kwq/KWQTextEdit.mm: (QTextEdit::focusPolicy): And still more.
1330
1331         - fixed <rdar://problem/3605919>: text fields in web pages are too tall
1332
1333         * kwq/KWQTextField.mm:
1334         (-[KWQTextFieldCell _typesetterBehavior]): Ignore the per-application typesetter setting and
1335         instead always use the latest behavior for text fields in web pages.
1336         (-[KWQSecureTextFieldCell _typesetterBehavior]): Ditto.
1337         (-[KWQSearchFieldCell _typesetterBehavior]): Ditto.
1338
1339         - additional cleanup
1340
1341         * khtml/html/html_formimpl.cpp:
1342         (HTMLGenericFormElementImpl::isKeyboardFocusable): Check tab focus bit instead of different modes.
1343         (HTMLGenericFormElementImpl::isMouseFocusable): Check click focus bit instead of different modes.
1344
1345 2004-03-30  David Hyatt  <hyatt@apple.com>
1346
1347         Fix for 3603326, spurious line breaks in encyclopedia articles.  Make sure makeChildrenNonInline knows to
1348         skip over floating/positioned elements so that they remain part of contiguous inline runs for static positioning
1349         purposes.
1350         
1351         Reviewed by darin
1352
1353         * khtml/rendering/render_block.cpp:
1354         (khtml::getInlineRun):
1355
1356 2004-03-30  Darin Adler  <darin@apple.com>
1357
1358         Reviewed by Ken.
1359
1360         - fixed garbage characters seen while I was rigging up the Mozilla JavaScript tests
1361
1362         * kwq/KWQString.h: Add a "move constructor" for KWQStringData that extracts the data
1363         from an existing KWQStringData.
1364         * kwq/KWQString.mm:
1365         (KWQStringData::KWQStringData): Implement the move constructor.
1366         (QString::detachInternal): Use the move constructor rather than making a copy of the
1367         data. Should be both more efficient and preserves both the Unicode and the ASCII. The
1368         bug here is that TokenizerSubstring relies on the Unicode staying around. We still
1369         have a problem in the case where the Unicode is inside the KWQStringData. To deal with
1370         that we'll have to add a new QString call that TokenizerSubstring can use. The new call
1371         will force QString to keep the Unicode outside the internal KWQStringData.
1372
1373 2004-03-30  Darin Adler  <darin@apple.com>
1374
1375         Reviewed by Ken.
1376
1377         - fixed <rdar://problem/3606146>: repro nil-deref in QWidget::move (www.stoltoffshore.com)
1378
1379         * khtml/khtml_part.cpp:
1380         (KHTMLPart::requestObject): Add check for NULL widget.
1381         (KHTMLPart::processObjectRequest): Add check for NULL widget.
1382
1383 2004-03-29  David Hyatt  <hyatt@apple.com>
1384
1385         Make sure "auto" is allowed as a valid value when parsing rect shapes (e.g., for the clip property).
1386         
1387         Reviewed by rjw
1388
1389         * khtml/css/cssparser.cpp:
1390         (CSSParser::parseShape):
1391
1392 2004-03-29  David Hyatt  <hyatt@apple.com>
1393
1394         Followup fix.  Handle the case where a hard line break occurs right after a soft hyphen.  In this
1395         case we were losing a letter of the word in addition to not rendering the soft hyphen.
1396         
1397         Reviewed by kocienda
1398
1399         * khtml/rendering/bidi.cpp:
1400         (khtml::checkMidpoints):
1401
1402 2004-03-29  David Hyatt  <hyatt@apple.com>
1403
1404         Fix for 3604154, support soft hyphens when rendering.  This patch implements soft hyphen support that
1405         matches IE6 on Windows and Opera 7.  Soft hyphens that don't break lines end up getting collapsed away.
1406         Only if the hyphen breaks a line does it render.
1407         
1408         Reviewed by kocienda
1409
1410         * khtml/rendering/bidi.cpp:
1411         (khtml::chopMidpointsAt):
1412         (khtml::appendRunsForObject):
1413         (khtml::RenderBlock::findNextLineBreak):
1414         * khtml/rendering/render_text.cpp:
1415         (RenderText::calcMinMaxWidth):
1416
1417 2004-03-29  John Sullivan  <sullivan@apple.com>
1418
1419         Made menu shortcuts work again when editing HTML
1420
1421         Reviewed by Darin.
1422
1423         * khtml/xml/dom_elementimpl.cpp:
1424         (ElementImpl::defaultEventHandler):
1425         Don't treat key events with command key down as
1426         editing events.
1427
1428 2004-03-28  Darin Adler  <darin@apple.com>
1429
1430         Reviewed by John.
1431
1432         - fixed <rdar://problem/3602202>: "feed:uuid:...." links in Emerson content are being changed into "feed:uuuid:...."
1433
1434         * kwq/KWQKURL.mm: (copyPathRemovingDots): Add special case for empty path. The old code had an
1435         assertion that explicitly allowed this case, but it copied a character from the src buffer,
1436         which was incorrect.
1437
1438 2004-03-26  David Hyatt  <hyatt@apple.com>
1439
1440         Fix for 3600642, letter magnet demo doesn't update until mouse move.  This patch also fixes problems
1441         with the animated text Gecko DOM demos on developer.netscape.com.  Make sure that timer callbacks via
1442         setTimeout always updateRendering after executing the JS code.
1443         
1444         Reviewed by darin
1445
1446         * khtml/ecma/kjs_window.cpp:
1447         (ScheduledAction::execute):
1448
1449 === Safari-134 ===
1450
1451 2004-03-25  David Hyatt  <hyatt@apple.com>
1452
1453         Implement the rest of the search field.  Make it work with form submission.  Implement onscroll at
1454         the document level.
1455         
1456         Reviewed by darin
1457
1458         * khtml/html/html_formimpl.cpp:
1459         (HTMLFormElementImpl::submit):
1460         * khtml/rendering/render_form.cpp:
1461         (RenderLineEdit::addSearchResult):
1462         * khtml/rendering/render_form.h:
1463         * kwq/KWQKHTMLPart.h:
1464         * kwq/KWQKHTMLPart.mm:
1465         (KWQKHTMLPart::sendScrollEvent):
1466         * kwq/KWQLineEdit.h:
1467         * kwq/KWQLineEdit.mm:
1468         (QLineEdit::setMaxResults):
1469         (QLineEdit::setPlaceholderString):
1470         (QLineEdit::addSearchResult):
1471         * kwq/WebCoreBridge.h:
1472         * kwq/WebCoreBridge.mm:
1473         (-[WebCoreBridge sendScrollEvent]):
1474         * kwq/WebCoreViewFactory.h:
1475
1476 2004-03-25  David Hyatt  <hyatt@apple.com>
1477
1478         Fix for 3570700, crash in inlineBox::isDirty.  Make sure line boxes null out parent pointers when those
1479         parents get deleted.  r=john
1480
1481         Fix for .value not being settable on selects.  r=darin
1482         
1483         * khtml/html/html_formimpl.cpp:
1484         (HTMLSelectElementImpl::setValue):
1485         * khtml/rendering/render_block.cpp:
1486         (khtml::RenderBlock::removeChildrenFromLineBoxes):
1487         (khtml::RenderBlock::removeChild):
1488         * khtml/rendering/render_block.h:
1489         * khtml/rendering/render_line.cpp:
1490         (InlineFlowBox::removeChild):
1491         
1492 2004-03-25  Darin Adler  <darin@apple.com>
1493
1494         Fix by Kristin Webster, reviewed by me.
1495
1496         - fixed <rdar://problem/3582431>: HiDPI - Form elements not working when scaling factor != 1.0
1497
1498         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Pass nil for fromView
1499         rather than passing the top level view.
1500
1501 2004-03-24  Darin Adler  <darin@apple.com>
1502
1503         Reviewed by John.
1504
1505         - fixed <rdar://problem/3566805>: REGRESSION: When the subject of mailto is 2 byte Safari failed to send mail address and subject to Mail.app
1506
1507         * kwq/KWQKURL.mm: (KURL::findHostnamesInMailToURL): Update to handle hostnames that end just before
1508         a '?' since a '?' ends the entire part of the URL that can contain hostnames. Also change the logic so
1509         that the '?' will successfully end the search.
1510
1511 2004-03-24  Darin Adler  <darin@apple.com>
1512
1513         Reviewed by John.
1514
1515         - fixed <rdar://problem/3599650>: main image missing due to incorrect relative URL resolution at www.brother.com
1516
1517         * kwq/KWQKURL.mm: (KURL::KURL): Implement compatibility rule from the URI RFC.
1518         If a URL has a scheme, but does not start with the "/" character, and the scheme
1519         matches the base URL, then treat it as a relative URL.
1520
1521 2004-03-24  Ken Kocienda  <kocienda@apple.com>
1522
1523         Reviewed by me.
1524
1525         I neglected to check in these required changes when I landed previously.
1526         This is what I get for trying to commit when I had other changes in
1527         my tree.
1528
1529         * khtml/dom/html_form.cpp:
1530         (HTMLSelectElement::add): Uses new-style call.
1531         * khtml/html/html_formimpl.cpp:
1532         (HTMLSelectElementImpl::add): Change the interface for this call to use
1533         impl objects instead of API objects. This works around the fact that the
1534         API object's constructor that takes an impl is protected.
1535         * khtml/html/html_formimpl.h: Uses new-style call.
1536
1537 2004-03-24  Ken Kocienda <kocienda@apple.com>
1538
1539         Implemented the remainder of the HTML DOM API.
1540     
1541         Reviewed by Chris.
1542     
1543         * kwq/DOMHTML.h
1544         * kwq/HTMLDOM.mm
1545
1546 2004-03-23  David Hyatt  <hyatt@apple.com>
1547
1548         Fix for 3487207, implement onscroll DOM event for elements with overflow:auto/scroll/hidden.  This does
1549         not handle firing onscroll on the window when the document scrolls, nor does it handle firing onscroll
1550         on textareas.  These are two separate bugs.
1551
1552         This patch finishes stubbing out the onscroll event and adds support for it to the DOM.  It also supports
1553         the firing of the event when overflow blocks scroll.
1554         
1555         Reviewed by darin
1556
1557         * khtml/ecma/kjs_dom.cpp:
1558         (DOMNode::getValueProperty):
1559         (DOMNode::putValue):
1560         * khtml/ecma/kjs_dom.h:
1561         (KJS::DOMNode::):
1562         * khtml/ecma/kjs_dom.lut.h:
1563         (KJS::):
1564         * khtml/ecma/kjs_window.cpp:
1565         (Window::get):
1566         (Window::put):
1567         * khtml/ecma/kjs_window.h:
1568         (KJS::Window::):
1569         * khtml/ecma/kjs_window.lut.h:
1570         (KJS::):
1571         * khtml/html/html_baseimpl.cpp:
1572         (HTMLBodyElementImpl::parseHTMLAttribute):
1573         * khtml/html/html_elementimpl.cpp:
1574         (HTMLElementImpl::parseHTMLAttribute):
1575         * khtml/misc/htmlattrs.c:
1576         (hash_attr):
1577         (findAttr):
1578         * khtml/misc/htmlattrs.h:
1579         * khtml/misc/htmlattrs.in:
1580         * khtml/rendering/render_layer.cpp:
1581         (RenderLayer::scrollToOffset):
1582
1583 2004-03-23  David Hyatt  <hyatt@apple.com>
1584
1585         Fix for 3513627, HTML mail prints upside down occasionally.  Change printing so that it never resizes the
1586         WebHTMLView when formatting for printing.  When computing page rects, instead of using the view's bounds,
1587         use the root layer's width instead.
1588
1589         Reviewed by darin
1590
1591         * khtml/khtmlview.cpp:
1592         (KHTMLView::layout):
1593         * kwq/WebCoreBridge.h:
1594         * kwq/WebCoreBridge.mm:
1595         (-[WebCoreBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
1596
1597 2004-03-23  David Hyatt  <hyatt@apple.com>
1598
1599         Fix for crasher 3598204, previousKeyView was calling nextKeyView instead.
1600         
1601         Reviewed by darin
1602
1603         * kwq/KWQTextField.mm:
1604         (-[KWQTextField previousKeyView]):
1605         (-[KWQSecureTextField previousKeyView]):
1606         (-[KWQSearchField previousKeyView]):
1607
1608 2004-03-23  Darin Adler  <darin@apple.com>
1609
1610         Reviewed by Vicki.
1611
1612         - fixed deployment build
1613
1614 2004-03-22  David Hyatt  <hyatt@apple.com>
1615
1616         Wire up NSSearchField to WebCore.  Add support for placeholder strings, autosaving of recent items, the ability to show/hide
1617         the magnifying glass search button, the ability to specify the maximum number of results, the ability to specify an incremental
1618         search or not, etc.  Added a DOM event that fires when the search field indicates that search results should be updated.
1619         
1620         Reviewed by darin
1621
1622         * khtml/ecma/kjs_dom.cpp:
1623         (DOMNode::getValueProperty):
1624         (DOMNode::putValue):
1625         * khtml/ecma/kjs_dom.h:
1626         (KJS::DOMNode::):
1627         * khtml/ecma/kjs_dom.lut.h:
1628         (KJS::):
1629         * khtml/ecma/kjs_window.cpp:
1630         (Window::get):
1631         (Window::put):
1632         * khtml/ecma/kjs_window.h:
1633         (KJS::Window::):
1634         * khtml/ecma/kjs_window.lut.h:
1635         (KJS::):
1636         * khtml/html/html_formimpl.cpp:
1637         (HTMLInputElementImpl::parseHTMLAttribute):
1638         * khtml/html/html_formimpl.h:
1639         (DOM::HTMLInputElementImpl::maxResults):
1640         * khtml/misc/htmlattrs.c:
1641         (hash_attr):
1642         (findAttr):
1643         * khtml/misc/htmlattrs.h:
1644         * khtml/misc/htmlattrs.in:
1645         * khtml/rendering/render_form.cpp:
1646         (RenderLineEdit::RenderLineEdit):
1647         (RenderLineEdit::slotPerformSearch):
1648         (RenderLineEdit::updateFromElement):
1649         * khtml/rendering/render_form.h:
1650         * khtml/xml/dom2_eventsimpl.cpp:
1651         (EventImpl::typeToId):
1652         (EventImpl::idToType):
1653         * khtml/xml/dom2_eventsimpl.h:
1654         (DOM::EventImpl::):
1655         * kwq/KWQLineEdit.h:
1656         (QLineEdit::performSearch):
1657         (QLineEdit::type):
1658         * kwq/KWQLineEdit.mm:
1659         (QLineEdit::QLineEdit):
1660         (QLineEdit::setLiveSearch):
1661         (QLineEdit::setAutoSaveName):
1662         (QLineEdit::setMaxResults):
1663         (QLineEdit::setPlaceholderString):
1664         * kwq/KWQSlot.mm:
1665         (KWQSlot::KWQSlot):
1666         (KWQSlot::call):
1667         * kwq/KWQTextField.mm:
1668         (-[KWQTextFieldController initWithTextField:QLineEdit:]):
1669         (-[KWQTextFieldController invalidate]):
1670         (-[KWQTextFieldController action:]):
1671         (-[KWQTextFieldController controlTextDidBeginEditing:]):
1672         (-[KWQTextFieldController controlTextDidEndEditing:]):
1673         (-[KWQTextFieldController controlTextDidChange:]):
1674         (-[KWQTextFieldController control:textShouldBeginEditing:]):
1675         (-[KWQTextFieldController control:textShouldEndEditing:]):
1676         (-[KWQTextFieldController control:didFailToFormatString:errorDescription:]):
1677         (-[KWQTextFieldController control:didFailToValidatePartialString:errorDescription:]):
1678         (-[KWQTextFieldController control:isValidObject:]):
1679         (-[KWQTextFieldController control:textView:doCommandBySelector:]):
1680         (-[KWQTextFieldController textChanged]):
1681
1682 2004-03-22  David Hyatt  <hyatt@apple.com>
1683
1684         Factoring of form control code to enable sharing between three types of text fields: normal, password, and
1685         the new search field.  Also made search field creatable using <input type="search">.  There are still many
1686         bugs with the field, but you can at least type in it and submit it with a form.
1687         
1688         Reviewed by darin
1689
1690         * khtml/html/html_formimpl.cpp:
1691         (HTMLInputElementImpl::setType):
1692         (HTMLInputElementImpl::type):
1693         (HTMLInputElementImpl::click):
1694         (HTMLInputElementImpl::accessKeyAction):
1695         (HTMLInputElementImpl::rendererIsNeeded):
1696         (HTMLInputElementImpl::createRenderer):
1697         (HTMLInputElementImpl::encoding):
1698         (HTMLInputElementImpl::defaultEventHandler):
1699         (HTMLInputElementImpl::isEditable):
1700         * khtml/html/html_formimpl.h:
1701         (DOM::HTMLInputElementImpl::):
1702         * khtml/rendering/render_form.cpp:
1703         (RenderLineEdit::RenderLineEdit):
1704         * kwq/KWQKLineEdit.h:
1705         (KLineEdit::KLineEdit):
1706         * kwq/KWQLineEdit.h:
1707         (QLineEdit::):
1708         * kwq/KWQLineEdit.mm:
1709         (QLineEdit::QLineEdit):
1710         (QLineEdit::~QLineEdit):
1711         (QLineEdit::setFont):
1712         (QLineEdit::setText):
1713         (QLineEdit::text):
1714         (QLineEdit::setMaxLength):
1715         (QLineEdit::isReadOnly):
1716         (QLineEdit::setReadOnly):
1717         (QLineEdit::maxLength):
1718         (QLineEdit::selectAll):
1719         (QLineEdit::edited):
1720         (QLineEdit::setEdited):
1721         (QLineEdit::sizeForCharacterWidth):
1722         (QLineEdit::baselinePosition):
1723         (QLineEdit::setAlignment):
1724         (QLineEdit::setWritingDirection):
1725         (KWQNSTextAlignmentForAlignmentFlags):
1726         (QLineEdit::setLiveSearch):
1727         * kwq/KWQTextField.h:
1728         * kwq/KWQTextField.mm:
1729         (-[KWQTextFieldController initWithTextField:QLineEdit:]):
1730         (-[KWQTextFieldController action:]):
1731         (-[KWQTextFieldController dealloc]):
1732         (-[KWQTextFieldController widget]):
1733         (-[KWQTextFieldController setMaximumLength:]):
1734         (-[KWQTextFieldController controlTextDidBeginEditing:]):
1735         (-[KWQTextFieldController controlTextDidEndEditing:]):
1736         (-[KWQTextFieldController controlTextDidChange:]):
1737         (-[KWQTextFieldController control:textShouldBeginEditing:]):
1738         (-[KWQTextFieldController control:textShouldEndEditing:]):
1739         (-[KWQTextFieldController control:didFailToFormatString:errorDescription:]):
1740         (-[KWQTextFieldController control:didFailToValidatePartialString:errorDescription:]):
1741         (-[KWQTextFieldController control:isValidObject:]):
1742         (-[KWQTextFieldController control:textView:doCommandBySelector:]):
1743         (-[KWQTextFieldController textChanged]):
1744         (-[KWQTextFieldController setInDrawingMachinery:]):
1745         (-[KWQTextFieldController textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
1746         (-[KWQTextFieldController textView:shouldHandleEvent:]):
1747         (-[KWQTextFieldController textView:didHandleEvent:]):
1748         (-[KWQTextFieldController setBaseWritingDirection:]):
1749         (-[KWQTextFieldController baseWritingDirection]):
1750         (-[KWQTextFieldController selectedRange]):
1751         (-[KWQTextFieldController setSelectedRange:]):
1752         (-[KWQTextFieldController setHasFocus:]):
1753         (-[KWQTextFieldController updateTextAttributes:]):
1754         (+[KWQTextField cellClass]):
1755         (-[KWQTextField initWithQLineEdit:]):
1756         (-[KWQTextField dealloc]):
1757         (-[KWQTextField controller]):
1758         (-[KWQTextField widget]):
1759         (-[KWQTextField selectText:]):
1760         (-[KWQTextField setStringValue:]):
1761         (-[KWQTextField nextKeyView]):
1762         (-[KWQTextField previousKeyView]):
1763         (-[KWQTextField nextValidKeyView]):
1764         (-[KWQTextField previousValidKeyView]):
1765         (-[KWQTextField acceptsFirstResponder]):
1766         (-[KWQTextField display]):
1767         (-[KWQTextField displayRectIgnoringOpacity:]):
1768         (-[KWQTextField textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
1769         (-[KWQTextField textView:shouldHandleEvent:]):
1770         (-[KWQTextField textView:didHandleEvent:]):
1771         (-[KWQTextFieldCell editWithFrame:inView:editor:delegate:event:]):
1772         (-[KWQTextFieldCell selectWithFrame:inView:editor:delegate:start:length:]):
1773         (-[KWQTextFieldCell _textAttributes]):
1774         (-[KWQSecureTextField initWithQLineEdit:]):
1775         (-[KWQSecureTextField dealloc]):
1776         (-[KWQSecureTextField controller]):
1777         (-[KWQSecureTextField widget]):
1778         (-[KWQSecureTextField setStringValue:]):
1779         (-[KWQSecureTextField nextKeyView]):
1780         (-[KWQSecureTextField previousKeyView]):
1781         (-[KWQSecureTextField acceptsFirstResponder]):
1782         (-[KWQSecureTextField display]):
1783         (-[KWQSecureTextField displayRectIgnoringOpacity:]):
1784         (-[KWQSecureTextField textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
1785         (-[KWQSecureTextField textView:shouldHandleEvent:]):
1786         (-[KWQSecureTextField textView:didHandleEvent:]):
1787         (-[KWQSecureTextField selectText:]):
1788         (-[KWQSecureTextFieldCell editWithFrame:inView:editor:delegate:event:]):
1789         (-[KWQSecureTextFieldCell selectWithFrame:inView:editor:delegate:start:length:]):
1790         (-[KWQSecureTextFieldCell _textAttributes]):
1791         (+[KWQSearchField cellClass]):
1792         (-[KWQSearchField initWithQLineEdit:]):
1793         (-[KWQSearchField dealloc]):
1794         (-[KWQSearchField controller]):
1795         (-[KWQSearchField widget]):
1796         (-[KWQSearchField selectText:]):
1797         (-[KWQSearchField setStringValue:]):
1798         (-[KWQSearchField nextKeyView]):
1799         (-[KWQSearchField previousKeyView]):
1800         (-[KWQSearchField nextValidKeyView]):
1801         (-[KWQSearchField previousValidKeyView]):
1802         (-[KWQSearchField acceptsFirstResponder]):
1803         (-[KWQSearchField display]):
1804         (-[KWQSearchField displayRectIgnoringOpacity:]):
1805         (-[KWQSearchField textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
1806         (-[KWQSearchField textView:shouldHandleEvent:]):
1807         (-[KWQSearchField textView:didHandleEvent:]):
1808         (-[KWQSearchFieldCell editWithFrame:inView:editor:delegate:event:]):
1809         (-[KWQSearchFieldCell selectWithFrame:inView:editor:delegate:start:length:]):
1810         (-[KWQSearchFieldCell _textAttributes]):
1811         (-[KWQTextFieldFormatter init]):
1812         (-[KWQTextFieldFormatter setMaximumLength:]):
1813         (-[KWQTextFieldFormatter maximumLength]):
1814         (-[KWQTextFieldFormatter stringForObjectValue:]):
1815         (-[KWQTextFieldFormatter getObjectValue:forString:errorDescription:]):
1816         (-[KWQTextFieldFormatter isPartialStringValid:newEditingString:errorDescription:]):
1817         (-[KWQTextFieldFormatter attributedStringForObjectValue:withDefaultAttributes:]):
1818         (-[NSString _KWQ_truncateToNumComposedCharacterSequences:]):
1819         (-[NSTextField _KWQ_currentEditor]):
1820
1821 === Safari-133 ===
1822
1823 2004-03-19  Darin Adler  <darin@apple.com>
1824
1825         Reviewed by Ken.
1826
1827         - fixed <rdar://problem/3583945>: crash when choosing a file to upload
1828
1829         * kwq/KWQFileButton.mm:
1830         (-[KWQFileButtonAdapter dealloc]): Removed unneeded method.
1831         (-[KWQFileButtonAdapter filenameChanged:]): Check for nil.
1832         (-[KWQFileButtonAdapter focusChanged:]): Ditto.
1833         (-[KWQFileButtonAdapter clicked]): Ditto.
1834
1835 2004-03-17  Darin Adler  <darin@apple.com>
1836
1837         Reviewed by John.
1838
1839         - fixed rdar://problem/3312803>: extra space in copied text (3g.co.uk)
1840
1841         * khtml/khtml_part.cpp: (KHTMLPart::text): Explicitly set neededSpace to false after
1842         processing a line break. Doesn't really have an effect here, but matches the change
1843         to the styled text version.
1844         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::attributedString): Same change in the styled
1845         text version.
1846
1847 2004-03-16  Darin Adler  <darin@apple.com>
1848
1849         Reviewed by Ken.
1850
1851         - a little more DOM cleanup
1852
1853         * kwq/DOM-CSS.mm: Added DOMCSSUnknownRule.
1854         * kwq/DOM.mm: Split category implementations out to match category interfaces.
1855         * kwq/DOMHTML.h: Removed lowSrc, not in DOM Level 2. Added a category for some
1856         extensions we'll want on DOMElement.
1857         * kwq/DOMInternal.h: Moved _documentImpl method here so it can be used from
1858         separate categories.
1859         * kwq/DOMRange.h: Changed DOMDocumentRange to a category from a protocol.
1860         * kwq/HTMLDOM.mm: Removed unneeded methods.
1861
1862         * WebCore.pbproj/project.pbxproj: Sort DOM header files alphabetically.
1863
1864 2004-03-16  Darin Adler  <darin@apple.com>
1865
1866         Reviewed by Ken.
1867
1868         - update for new DOM namespacing and header organization
1869
1870         * WebCore.pbproj/project.pbxproj:
1871         * kwq/DOM-CSS.h: Removed.
1872         * kwq/DOM-CSS.mm: Update for name changes.
1873         * kwq/DOM.h: Changed to include the other DOM headers.
1874         * kwq/DOM.mm: Update for name changes.
1875         * kwq/DOMCSS.h: Added.
1876         * kwq/DOMCore.h: Added.
1877         * kwq/DOMEvents.h: Added.
1878         * kwq/DOMHTML.h: Added.
1879         * kwq/DOMInternal.h: Update for name changes.
1880         * kwq/DOMRange.h: Added.
1881         * kwq/DOMStylesheets.h: Added.
1882         * kwq/DOMTraversal.h: Added.
1883         * kwq/DOMViews.h: Added.
1884         * kwq/HTMLDOM.h: Removed.
1885         * kwq/HTMLDOM.mm: Update for name changes; add some missing setters.
1886
1887 2004-03-15  Maciej Stachowiak  <mjs@apple.com>
1888
1889         Reviewed by Darin.
1890
1891         - max out our iBench cheat. Don't even paint or lay out a quarter
1892         of the pages.
1893         
1894         * khtml/xml/dom_docimpl.cpp:
1895         (DocumentImpl::close):
1896
1897 2004-03-15  Ken Kocienda  <kocienda@apple.com>
1898
1899         Reviewed by John
1900
1901         Fix for this bug:
1902         
1903         <rdar://problem/3588717>: REGRESSION (125-131u): Tabbing to links and tabbing in bookmarks view no longer works
1904
1905         Change some support methods which feed editing key events to 
1906         WebKit. The real fix is on the WebKit side.
1907
1908         * kwq/KWQKHTMLPart.mm:
1909         (KWQKHTMLPart::editingKeyEvent): Call new -editingKeyDown:
1910         on WebCoreBridge, as described below.
1911         * kwq/WebCoreBridge.h: Changed -keyDown: to -editingKeyDown:
1912         since we want to tell WebView about editing key events
1913         in a way that does not interfere with other key down
1914         events the WebView processes. This is not necessary in the
1915         strictest sense, but it seems reasonable to keep the
1916         terminology clear.
1917
1918 === Safari-132 ===
1919
1920 2004-03-12  Chris Blumenberg  <cblu@apple.com>
1921
1922         Implemented ~25% of the HTML DOM API.
1923
1924         Reviewed by kocienda.
1925
1926         (DOM::HTMLElement::HTMLElement):
1927         * kwq/DOM.mm:
1928         * kwq/DOMInternal.h:
1929         * kwq/HTMLDOM.h:
1930         * kwq/HTMLDOM.mm:
1931         (-[HTMLCollection _initWithCollectionImpl:]):
1932         (+[HTMLCollection _collectionWithImpl:]):
1933         (-[HTMLCollection _collectionImpl]):
1934         (-[HTMLCollection length]):
1935         (-[HTMLCollection item:]):
1936         (-[HTMLCollection namedItem:]):
1937         (-[HTMLElement _initWithElementImpl:]):
1938         (+[HTMLElement _elementWithImpl:]):
1939         (-[HTMLElement _HTMLElementImpl]):
1940         (-[HTMLElement idName]):
1941         (-[HTMLElement setIdName:]):
1942         (-[HTMLElement title]):
1943         (-[HTMLElement setTitle:]):
1944         (-[HTMLElement lang]):
1945         (-[HTMLElement setLang:]):
1946         (-[HTMLElement dir]):
1947         (-[HTMLElement setDir:]):
1948         (-[HTMLElement className]):
1949         (-[HTMLElement setClassName:]):
1950         (-[HTMLDocument _HTMLDocumentImpl]):
1951         (-[HTMLDocument title]):
1952         (-[HTMLDocument setTitle:]):
1953         (-[HTMLDocument referrer]):
1954         (-[HTMLDocument domain]):
1955         (-[HTMLDocument URL]):
1956         (-[HTMLDocument body]):
1957         (-[HTMLDocument images]):
1958         (-[HTMLDocument applets]):
1959         (-[HTMLDocument links]):
1960         (-[HTMLDocument forms]):
1961         (-[HTMLDocument anchors]):
1962         (-[HTMLDocument setBody:]):
1963         (-[HTMLDocument cookie]):
1964         (-[HTMLDocument setCookie:]):
1965         (-[HTMLDocument open]):
1966         (-[HTMLDocument close]):
1967         (-[HTMLDocument write:]):
1968         (-[HTMLDocument writeln:]):
1969         (-[HTMLDocument getElementById:]):
1970         (-[HTMLDocument getElementsByName:]):
1971         (-[HTMLHtmlElement _HTMLHtmlElementImpl]):
1972         (-[HTMLHtmlElement version]):
1973         (-[HTMLHtmlElement setVersion:]):
1974         (-[HTMLHeadElement _headElementImpl]):
1975         (-[HTMLHeadElement profile]):
1976         (-[HTMLHeadElement setProfile:]):
1977         (-[HTMLLinkElement _linkElementImpl]):
1978         (-[HTMLLinkElement disabled]):
1979         (-[HTMLLinkElement setDisabled:]):
1980         (-[HTMLLinkElement charset]):
1981         (-[HTMLLinkElement setCharset:]):
1982         (-[HTMLLinkElement href]):
1983         (-[HTMLLinkElement setHref:]):
1984         (-[HTMLLinkElement hreflang]):
1985         (-[HTMLLinkElement setHreflang:]):
1986         (-[HTMLLinkElement media]):
1987         (-[HTMLLinkElement setMedia:]):
1988         (-[HTMLLinkElement rel]):
1989         (-[HTMLLinkElement setRel:]):
1990         (-[HTMLLinkElement rev]):
1991         (-[HTMLLinkElement setRev:]):
1992         (-[HTMLLinkElement target]):
1993         (-[HTMLLinkElement setTarget:]):
1994         (-[HTMLLinkElement type]):
1995         (-[HTMLLinkElement setType:]):
1996         (-[HTMLTitleElement _titleElementImpl]):
1997         (-[HTMLTitleElement text]):
1998         (-[HTMLTitleElement setText:]):
1999         (-[HTMLMetaElement _metaElementImpl]):
2000         (-[HTMLMetaElement content]):
2001         (-[HTMLMetaElement setContent:]):
2002         (-[HTMLMetaElement httpEquiv]):
2003         (-[HTMLMetaElement setHttpEquiv:]):
2004         (-[HTMLMetaElement name]):
2005         (-[HTMLMetaElement setName:]):
2006         (-[HTMLMetaElement scheme]):
2007         (-[HTMLMetaElement setScheme:]):
2008         (-[HTMLBaseElement _baseElementImpl]):
2009         (-[HTMLBaseElement href]):
2010         (-[HTMLBaseElement setHref:]):
2011         (-[HTMLBaseElement target]):
2012         (-[HTMLBaseElement setTarget:]):
2013         (-[HTMLStyleElement _styleElementImpl]):
2014         (-[HTMLStyleElement disabled]):
2015         (-[HTMLStyleElement setDisabled:]):
2016         (-[HTMLStyleElement media]):
2017         (-[HTMLStyleElement setMedia:]):
2018         (-[HTMLStyleElement type]):
2019         (-[HTMLStyleElement setType:]):
2020         (-[HTMLBodyElement _bodyElementImpl]):
2021         (-[HTMLBodyElement aLink]):
2022         (-[HTMLBodyElement setALink:]):
2023         (-[HTMLBodyElement background]):
2024         (-[HTMLBodyElement setBackground:]):
2025         (-[HTMLBodyElement bgColor]):
2026         (-[HTMLBodyElement setBgColor:]):
2027         (-[HTMLBodyElement link]):
2028         (-[HTMLBodyElement setLink:]):
2029         (-[HTMLBodyElement text]):
2030         (-[HTMLBodyElement setText:]):
2031         (-[HTMLBodyElement vLink]):
2032         (-[HTMLBodyElement setVLink:]):
2033
2034 2004-03-12  David Hyatt  <hyatt@apple.com>
2035
2036         Fix for problem when undoing the deletion of a word in edit mode.
2037         
2038         Reviewed by kocienda
2039
2040         * khtml/rendering/render_text.cpp:
2041         (RenderText::setTextWithOffset):
2042
2043 2004-03-12  Ken Kocienda  <kocienda@apple.com>
2044
2045         Reviewed by Chris
2046
2047         * khtml/khtml_part.cpp:
2048         (KHTMLPart::handleMouseMoveEventSelection): Clear the selection's
2049         "modify bias" since the user clicked, and is therefore no longer
2050         extending the selection with arrow keys.
2051         * khtml/khtml_selection.cpp:
2052         (KHTMLSelection::KHTMLSelection): Add new m_modifyBiasSet flag.
2053         (KHTMLSelection::init): Set the flag to false by default.
2054         (KHTMLSelection::operator=): Copy over the value of the new m_modifyBiasSet flag.
2055         (KHTMLSelection::modify): Set the flag if extending the selection and set the 
2056         base and extent nodes based on the movement direction requested.
2057         * khtml/khtml_selection.h:
2058         * kwq/WebCoreBridge.h: See below.
2059         * kwq/WebCoreBridge.mm:
2060         (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]): This
2061         method is used by the WebKit side in response to requests to change the selection
2062         using the arrow keys. It used to be called rangeByModifyingRange:alteration:direction:granularity:
2063         but I changed it to this new format since I explicitly want to use the current selection, and
2064         not some arbitrarily passed in selection. This helps to maintain the "modify bias" correctly.
2065         (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): New method. A command to alter
2066         the current selection as given. Again, applying the command to the current selection, rather
2067         than just setting the selection to a new one, helps to maintain the "modify bias" correctly.
2068
2069 2004-03-11  Chris Blumenberg  <cblu@apple.com>
2070
2071         Added stubs for the HTML DOM API.
2072
2073         Reviewed by rjw.
2074
2075         * WebCore.pbproj/project.pbxproj:
2076         * kwq/HTMLDOM.h: Added.
2077         * kwq/HTMLDOM.mm: Added.
2078         (-[HTMLCollection length]):
2079         (-[HTMLCollection item:]):
2080         (-[HTMLCollection namedItem:]):
2081         (-[HTMLElement idName]):
2082         (-[HTMLElement setIdName:]):
2083         (-[HTMLElement title]):
2084         (-[HTMLElement setTitle:]):
2085         (-[HTMLElement lang]):
2086         (-[HTMLElement setLang:]):
2087         (-[HTMLElement dir]):
2088         (-[HTMLElement setDir:]):
2089         (-[HTMLElement className]):
2090         (-[HTMLElement setClassName:]):
2091         (-[HTMLDocument title]):
2092         (-[HTMLDocument setTitle:]):
2093         (-[HTMLDocument referrer]):
2094         (-[HTMLDocument domain]):
2095         (-[HTMLDocument URL]):
2096         (-[HTMLDocument body]):
2097         (-[HTMLDocument images]):
2098         (-[HTMLDocument applets]):
2099         (-[HTMLDocument links]):
2100         (-[HTMLDocument forms]):
2101         (-[HTMLDocument anchors]):
2102         (-[HTMLDocument setBody:]):
2103         (-[HTMLDocument cookie]):
2104         (-[HTMLDocument setCookie:]):
2105         (-[HTMLDocument open]):
2106         (-[HTMLDocument close]):
2107         (-[HTMLDocument write:]):
2108         (-[HTMLDocument writeln:]):
2109         (-[HTMLDocument getElementById:]):
2110         (-[HTMLDocument getElementsByName:]):
2111         (-[HTMLHtmlElement version]):
2112         (-[HTMLHtmlElement setVersion:]):
2113         (-[HTMLHeadElement profile]):
2114         (-[HTMLHeadElement setProfile:]):
2115         (-[HTMLLinkElement disabled]):
2116         (-[HTMLLinkElement setDisabled:]):
2117         (-[HTMLLinkElement charset]):
2118         (-[HTMLLinkElement setCharset:]):
2119         (-[HTMLLinkElement href]):
2120         (-[HTMLLinkElement setHref:]):
2121         (-[HTMLLinkElement hreflang]):
2122         (-[HTMLLinkElement setHreflang:]):
2123         (-[HTMLLinkElement media]):
2124         (-[HTMLLinkElement setMedia:]):
2125         (-[HTMLLinkElement rel]):
2126         (-[HTMLLinkElement setRrevel:]):
2127         (-[HTMLLinkElement rev]):
2128         (-[HTMLLinkElement setRev:]):
2129         (-[HTMLLinkElement target]):
2130         (-[HTMLLinkElement setTarget:]):
2131         (-[HTMLLinkElement type]):
2132         (-[HTMLLinkElement setType:]):
2133         (-[HTMLTitleElement text]):
2134         (-[HTMLTitleElement setText:]):
2135         (-[HTMLMetaElement content]):
2136         (-[HTMLMetaElement setContent:]):
2137         (-[HTMLMetaElement httpEquiv]):
2138         (-[HTMLMetaElement setHttpEquiv:]):
2139         (-[HTMLMetaElement name]):
2140         (-[HTMLMetaElement setName:]):
2141         (-[HTMLMetaElement scheme]):
2142         (-[HTMLMetaElement setScheme:]):
2143         (-[HTMLBaseElement href]):
2144         (-[HTMLBaseElement setHref:]):
2145         (-[HTMLBaseElement target]):
2146         (-[HTMLBaseElement setTarget:]):
2147         (-[HTMLStyleElement disabled]):
2148         (-[HTMLStyleElement setDisabled:]):
2149         (-[HTMLStyleElement media]):
2150         (-[HTMLStyleElement setMedia:]):
2151         (-[HTMLStyleElement type]):
2152         (-[HTMLStyleElement setType:]):
2153         (-[HTMLBodyElement aLink]):
2154         (-[HTMLBodyElement setALink:]):
2155         (-[HTMLBodyElement background]):
2156         (-[HTMLBodyElement setBackground:]):
2157         (-[HTMLBodyElement bgColor]):
2158         (-[HTMLBodyElement setBgColor:]):
2159         (-[HTMLBodyElement link]):
2160         (-[HTMLBodyElement setLink:]):
2161         (-[HTMLBodyElement text]):
2162         (-[HTMLBodyElement setText:]):
2163         (-[HTMLBodyElement vLink]):
2164         (-[HTMLBodyElement setVLink:]):
2165         (-[HTMLFormElement elements]):
2166         (-[HTMLFormElement length]):
2167         (-[HTMLFormElement name]):
2168         (-[HTMLFormElement setName:]):
2169         (-[HTMLFormElement acceptCharset]):
2170         (-[HTMLFormElement setAcceptCharset:]):
2171         (-[HTMLFormElement action]):
2172         (-[HTMLFormElement setAction:]):
2173         (-[HTMLFormElement enctype]):
2174         (-[HTMLFormElement setEnctype:]):
2175         (-[HTMLFormElement method]):
2176         (-[HTMLFormElement setMethod:]):
2177         (-[HTMLFormElement target]):
2178         (-[HTMLFormElement setTarget:]):
2179         (-[HTMLFormElement submit]):
2180         (-[HTMLFormElement reset]):
2181         (-[HTMLIsIndexElement form]):
2182         (-[HTMLIsIndexElement prompt]):
2183         (-[HTMLIsIndexElement setPrompt:]):
2184         (-[HTMLSelectElement type]):
2185         (-[HTMLSelectElement selectedIndex]):
2186         (-[HTMLSelectElement setSelectedIndex:]):
2187         (-[HTMLSelectElement value]):
2188         (-[HTMLSelectElement setValue:]):
2189         (-[HTMLSelectElement length]):
2190         (-[HTMLSelectElement form]):
2191         (-[HTMLSelectElement options]):
2192         (-[HTMLSelectElement disabled]):
2193         (-[HTMLSelectElement multiple]):
2194         (-[HTMLSelectElement name]):
2195         (-[HTMLSelectElement setName:]):
2196         (-[HTMLSelectElement size]):
2197         (-[HTMLSelectElement tabIndex]):
2198         (-[HTMLSelectElement add::]):
2199         (-[HTMLSelectElement remove:]):
2200         (-[HTMLSelectElement blur]):
2201         (-[HTMLSelectElement focus]):
2202         (-[HTMLOptGroupElement disabled]):
2203         (-[HTMLOptGroupElement setDisabled:]):
2204         (-[HTMLOptGroupElement label]):
2205         (-[HTMLOptGroupElement setLabel:]):
2206         (-[HTMLOptionElement form]):
2207         (-[HTMLOptionElement defaultSelected]):
2208         (-[HTMLOptionElement setDefaultSelected:]):
2209         (-[HTMLOptionElement text]):
2210         (-[HTMLOptionElement index]):
2211         (-[HTMLOptionElement setIndex:]):
2212         (-[HTMLOptionElement disabled]):
2213         (-[HTMLOptionElement setDisabled:]):
2214         (-[HTMLOptionElement label]):
2215         (-[HTMLOptionElement setLabel:]):
2216         (-[HTMLOptionElement selected]):
2217         (-[HTMLOptionElement value]):
2218         (-[HTMLOptionElement setValue:]):
2219         (-[HTMLInputElement defaultValue]):
2220         (-[HTMLInputElement setDefaultValue:]):
2221         (-[HTMLInputElement defaultChecked]):
2222         (-[HTMLInputElement setDefaultChecked:]):
2223         (-[HTMLInputElement form]):
2224         (-[HTMLInputElement accept]):
2225         (-[HTMLInputElement setAccept:]):
2226         (-[HTMLInputElement accessKey]):
2227         (-[HTMLInputElement setAccessKey:]):
2228         (-[HTMLInputElement align]):
2229         (-[HTMLInputElement setAlign:]):
2230         (-[HTMLInputElement alt]):
2231         (-[HTMLInputElement setAlt:]):
2232         (-[HTMLInputElement checked]):
2233         (-[HTMLInputElement setChecked:]):
2234         (-[HTMLInputElement disabled]):
2235         (-[HTMLInputElement setDisabled:]):
2236         (-[HTMLInputElement maxLength]):
2237         (-[HTMLInputElement setMaxLength:]):
2238         (-[HTMLInputElement name]):
2239         (-[HTMLInputElement setName:]):
2240         (-[HTMLInputElement readOnly]):
2241         (-[HTMLInputElement setReadOnly:]):
2242         (-[HTMLInputElement size]):
2243         (-[HTMLInputElement setSize:]):
2244         (-[HTMLInputElement src]):
2245         (-[HTMLInputElement setSrc:]):
2246         (-[HTMLInputElement tabIndex]):
2247         (-[HTMLInputElement setTabIndex:]):
2248         (-[HTMLInputElement type]):
2249         (-[HTMLInputElement useMap]):
2250         (-[HTMLInputElement setUseMap:]):
2251         (-[HTMLInputElement value]):
2252         (-[HTMLInputElement setValue:]):
2253         (-[HTMLInputElement blur]):
2254         (-[HTMLInputElement focus]):
2255         (-[HTMLInputElement select]):
2256         (-[HTMLInputElement click]):
2257         (-[HTMLTextAreaElement defaultValue]):
2258         (-[HTMLTextAreaElement setDefaultValue:]):
2259         (-[HTMLTextAreaElement form]):
2260         (-[HTMLTextAreaElement accessKey]):
2261         (-[HTMLTextAreaElement setAccessKey:]):
2262         (-[HTMLTextAreaElement cols]):
2263         (-[HTMLTextAreaElement setCols:]):
2264         (-[HTMLTextAreaElement disabled]):
2265         (-[HTMLTextAreaElement setDisabled:]):
2266         (-[HTMLTextAreaElement name]):
2267         (-[HTMLTextAreaElement setName:]):
2268         (-[HTMLTextAreaElement readOnly]):
2269         (-[HTMLTextAreaElement setReadOnly:]):
2270         (-[HTMLTextAreaElement rows]):
2271         (-[HTMLTextAreaElement setRows:]):
2272         (-[HTMLTextAreaElement tabIndex]):
2273         (-[HTMLTextAreaElement setTabIndex:]):
2274         (-[HTMLTextAreaElement type]):
2275         (-[HTMLTextAreaElement value]):
2276         (-[HTMLTextAreaElement setValue:]):
2277         (-[HTMLTextAreaElement blur]):
2278         (-[HTMLTextAreaElement focus]):
2279         (-[HTMLTextAreaElement select]):
2280         (-[HTMLButtonElement form]):
2281         (-[HTMLButtonElement accessKey]):
2282         (-[HTMLButtonElement setAccessKey:]):
2283         (-[HTMLButtonElement disabled]):
2284         (-[HTMLButtonElement setDisabled:]):
2285         (-[HTMLButtonElement name]):
2286         (-[HTMLButtonElement setName:]):
2287         (-[HTMLButtonElement tabIndex]):
2288         (-[HTMLButtonElement setTabIndex:]):
2289         (-[HTMLButtonElement type]):
2290         (-[HTMLButtonElement value]):
2291         (-[HTMLButtonElement setValue:]):
2292         (-[HTMLLabelElement form]):
2293         (-[HTMLLabelElement accessKey]):
2294         (-[HTMLLabelElement setAccessKey:]):
2295         (-[HTMLLabelElement htmlFor]):
2296         (-[HTMLLabelElement setHtmlFor:]):
2297         (-[HTMLFieldSetElement form]):
2298         (-[HTMLLegendElement form]):
2299         (-[HTMLLegendElement accessKey]):
2300         (-[HTMLLegendElement setAccessKey:]):
2301         (-[HTMLLegendElement align]):
2302         (-[HTMLLegendElement setAlign:]):
2303         (-[HTMLUListElement compact]):
2304         (-[HTMLUListElement setCompact:]):
2305         (-[HTMLUListElement type]):
2306         (-[HTMLUListElement setType:]):
2307         (-[HTMLOListElement compact]):
2308         (-[HTMLOListElement setCompact:]):
2309         (-[HTMLOListElement start]):
2310         (-[HTMLOListElement setStart:]):
2311         (-[HTMLOListElement type]):
2312         (-[HTMLOListElement setType:]):
2313         (-[HTMLDListElement compact]):
2314         (-[HTMLDListElement setCompact:]):
2315         (-[HTMLDirectoryElement compact]):
2316         (-[HTMLDirectoryElement setCompact:]):
2317         (-[HTMLMenuElement compact]):
2318         (-[HTMLMenuElement setCompact:]):
2319         (-[HTMLLIElement type]):
2320         (-[HTMLLIElement setType:]):
2321         (-[HTMLLIElement value]):
2322         (-[HTMLLIElement setValue:]):
2323         (-[HTMLBlockquoteElement cite]):
2324         (-[HTMLBlockquoteElement setCite:]):
2325         (-[HTMLDivElement align]):
2326         (-[HTMLDivElement setAlign:]):
2327         (-[HTMLParagraphElement align]):
2328         (-[HTMLParagraphElement setAlign:]):
2329         (-[HTMLHeadingElement align]):
2330         (-[HTMLHeadingElement setAlign:]):
2331         (-[HTMLQuoteElement cite]):
2332         (-[HTMLQuoteElement setCite:]):
2333         (-[HTMLPreElement width]):
2334         (-[HTMLPreElement setWidth:]):
2335         (-[HTMLBRElement clear]):
2336         (-[HTMLBRElement setClear:]):
2337         (-[HTMLBaseFontElement color]):
2338         (-[HTMLBaseFontElement setColor:]):
2339         (-[HTMLBaseFontElement face]):
2340         (-[HTMLBaseFontElement setFace:]):
2341         (-[HTMLBaseFontElement size]):
2342         (-[HTMLBaseFontElement setSize:]):
2343         (-[HTMLFontElement color]):
2344         (-[HTMLFontElement setColor:]):
2345         (-[HTMLFontElement face]):
2346         (-[HTMLFontElement setFace:]):
2347         (-[HTMLFontElement size]):
2348         (-[HTMLFontElement setSize:]):
2349         (-[HTMLHRElement align]):
2350         (-[HTMLHRElement setAlign:]):
2351         (-[HTMLHRElement noShade]):
2352         (-[HTMLHRElement setNoShade:]):
2353         (-[HTMLHRElement size]):
2354         (-[HTMLHRElement setSize:]):
2355         (-[HTMLHRElement width]):
2356         (-[HTMLHRElement setWidth:]):
2357         (-[HTMLModElement cite]):
2358         (-[HTMLModElement setCite:]):
2359         (-[HTMLModElement dateTime]):
2360         (-[HTMLModElement setDateTime:]):
2361         (-[HTMLAnchorElement accessKey]):
2362         (-[HTMLAnchorElement setAccessKey:]):
2363         (-[HTMLAnchorElement charset]):
2364         (-[HTMLAnchorElement setCharset:]):
2365         (-[HTMLAnchorElement coords]):
2366         (-[HTMLAnchorElement setCoords:]):
2367         (-[HTMLAnchorElement href]):
2368         (-[HTMLAnchorElement setHref:]):
2369         (-[HTMLAnchorElement hreflang]):
2370         (-[HTMLAnchorElement setHreflang:]):
2371         (-[HTMLAnchorElement name]):
2372         (-[HTMLAnchorElement setName:]):
2373         (-[HTMLAnchorElement rel]):
2374         (-[HTMLAnchorElement setRel:]):
2375         (-[HTMLAnchorElement rev]):
2376         (-[HTMLAnchorElement setRev:]):
2377         (-[HTMLAnchorElement shape]):
2378         (-[HTMLAnchorElement setShape:]):
2379         (-[HTMLAnchorElement tabIndex]):
2380         (-[HTMLAnchorElement setTabIndex:]):
2381         (-[HTMLAnchorElement target]):
2382         (-[HTMLAnchorElement setTarget:]):
2383         (-[HTMLAnchorElement type]):
2384         (-[HTMLAnchorElement setType:]):
2385         (-[HTMLAnchorElement blur]):
2386         (-[HTMLAnchorElement focus]):
2387         (-[HTMLImageElement lowSrc]):
2388         (-[HTMLImageElement setLowSrc:]):
2389         (-[HTMLImageElement name]):
2390         (-[HTMLImageElement setName:]):
2391         (-[HTMLImageElement align]):
2392         (-[HTMLImageElement setAlign:]):
2393         (-[HTMLImageElement alt]):
2394         (-[HTMLImageElement setAlt:]):
2395         (-[HTMLImageElement border]):
2396         (-[HTMLImageElement setBorder:]):
2397         (-[HTMLImageElement height]):
2398         (-[HTMLImageElement setHeight:]):
2399         (-[HTMLImageElement hspace]):
2400         (-[HTMLImageElement setHspace:]):
2401         (-[HTMLImageElement isMap]):
2402         (-[HTMLImageElement setIsMap:]):
2403         (-[HTMLImageElement longDesc]):
2404         (-[HTMLImageElement setLongDesc:]):
2405         (-[HTMLImageElement src]):
2406         (-[HTMLImageElement setSrc:]):
2407         (-[HTMLImageElement useMap]):
2408         (-[HTMLImageElement setUseMap:]):
2409         (-[HTMLImageElement vspace]):
2410         (-[HTMLImageElement setVspace:]):
2411         (-[HTMLImageElement width]):
2412         (-[HTMLImageElement setWidth:]):
2413         (-[HTMLObjectElement form]):
2414         (-[HTMLObjectElement code]):
2415         (-[HTMLObjectElement setCode:]):
2416         (-[HTMLObjectElement align]):
2417         (-[HTMLObjectElement setAlign:]):
2418         (-[HTMLObjectElement archive]):
2419         (-[HTMLObjectElement setArchive:]):
2420         (-[HTMLObjectElement border]):
2421         (-[HTMLObjectElement setBorder:]):
2422         (-[HTMLObjectElement codeBase]):
2423         (-[HTMLObjectElement setCodeBase:]):
2424         (-[HTMLObjectElement codeType]):
2425         (-[HTMLObjectElement setCodeType:]):
2426         (-[HTMLObjectElement data]):
2427         (-[HTMLObjectElement setData:]):
2428         (-[HTMLObjectElement declare]):
2429         (-[HTMLObjectElement setDeclare:]):
2430         (-[HTMLObjectElement height]):
2431         (-[HTMLObjectElement setHeight:]):
2432         (-[HTMLObjectElement hspace]):
2433         (-[HTMLObjectElement setHspace:]):
2434         (-[HTMLObjectElement name]):
2435         (-[HTMLObjectElement setName:]):
2436         (-[HTMLObjectElement standby]):
2437         (-[HTMLObjectElement setStandby:]):
2438         (-[HTMLObjectElement tabIndex]):
2439         (-[HTMLObjectElement setTabIndex:]):
2440         (-[HTMLObjectElement type]):
2441         (-[HTMLObjectElement setType:]):
2442         (-[HTMLObjectElement useMap]):
2443         (-[HTMLObjectElement setUseMap:]):
2444         (-[HTMLObjectElement vspace]):
2445         (-[HTMLObjectElement setVspace:]):
2446         (-[HTMLObjectElement width]):
2447         (-[HTMLObjectElement setWidth:]):
2448         (-[HTMLParamElement name]):
2449         (-[HTMLParamElement setName:]):
2450         (-[HTMLParamElement type]):
2451         (-[HTMLParamElement setType:]):
2452         (-[HTMLParamElement value]):
2453         (-[HTMLParamElement setValue:]):
2454         (-[HTMLParamElement valueType]):
2455         (-[HTMLParamElement setValueType:]):
2456         (-[HTMLAppletElement align]):
2457         (-[HTMLAppletElement setAlign:]):
2458         (-[HTMLAppletElement alt]):
2459         (-[HTMLAppletElement setAlt:]):
2460         (-[HTMLAppletElement archive]):
2461         (-[HTMLAppletElement setArchive:]):
2462         (-[HTMLAppletElement code]):
2463         (-[HTMLAppletElement setCode:]):
2464         (-[HTMLAppletElement codeBase]):
2465         (-[HTMLAppletElement setCodeBase:]):
2466         (-[HTMLAppletElement codeType]):
2467         (-[HTMLAppletElement setCodeType:]):
2468         (-[HTMLAppletElement height]):
2469         (-[HTMLAppletElement setHeight:]):
2470         (-[HTMLAppletElement hspace]):
2471         (-[HTMLAppletElement setHspace:]):
2472         (-[HTMLAppletElement name]):
2473         (-[HTMLAppletElement setName:]):
2474         (-[HTMLAppletElement object]):
2475         (-[HTMLAppletElement setObject:]):
2476         (-[HTMLAppletElement vspace]):
2477         (-[HTMLAppletElement setVspace:]):
2478         (-[HTMLAppletElement width]):
2479         (-[HTMLAppletElement setWidth:]):
2480         (-[HTMLMapElement areas]):
2481         (-[HTMLMapElement name]):
2482         (-[HTMLMapElement setName:]):
2483         (-[HTMLAreaElement accessKey]):
2484         (-[HTMLAreaElement setAccessKey:]):
2485         (-[HTMLAreaElement alt]):
2486         (-[HTMLAreaElement setAlt:]):
2487         (-[HTMLAreaElement coords]):
2488         (-[HTMLAreaElement setCoords:]):
2489         (-[HTMLAreaElement href]):
2490         (-[HTMLAreaElement setHref:]):
2491         (-[HTMLAreaElement noHref]):
2492         (-[HTMLAreaElement setNoHref:]):
2493         (-[HTMLAreaElement shape]):
2494         (-[HTMLAreaElement setShape:]):
2495         (-[HTMLAreaElement tabIndex]):
2496         (-[HTMLAreaElement setTabIndex:]):
2497         (-[HTMLAreaElement target]):
2498         (-[HTMLAreaElement setTarget:]):
2499         (-[HTMLScriptElement text]):
2500         (-[HTMLScriptElement setText:]):
2501         (-[HTMLScriptElement htmlFor]):
2502         (-[HTMLScriptElement setHtmlFor:]):
2503         (-[HTMLScriptElement event]):
2504         (-[HTMLScriptElement setEvent:]):
2505         (-[HTMLScriptElement charset]):
2506         (-[HTMLScriptElement setCharset:]):
2507         (-[HTMLScriptElement defer]):
2508         (-[HTMLScriptElement setDefer:]):
2509         (-[HTMLScriptElement src]):
2510         (-[HTMLScriptElement setSrc:]):
2511         (-[HTMLScriptElement type]):
2512         (-[HTMLScriptElement setType:]):
2513         (-[HTMLTableCaptionElement align]):
2514         (-[HTMLTableCaptionElement setAlign:]):
2515         (-[HTMLTableSectionElement align]):
2516         (-[HTMLTableSectionElement setAlign:]):
2517         (-[HTMLTableSectionElement ch]):
2518         (-[HTMLTableSectionElement setCh:]):
2519         (-[HTMLTableSectionElement chOff]):
2520         (-[HTMLTableSectionElement setChOff:]):
2521         (-[HTMLTableSectionElement vAlign]):
2522         (-[HTMLTableSectionElement setVAlign:]):
2523         (-[HTMLTableSectionElement rows]):
2524         (-[HTMLTableSectionElement insertRow:]):
2525         (-[HTMLTableSectionElement deleteRow:]):
2526         (-[HTMLTableElement caption]):
2527         (-[HTMLTableElement tHead]):
2528         (-[HTMLTableElement tFoot]):
2529         (-[HTMLTableElement rows]):
2530         (-[HTMLTableElement tBodies]):
2531         (-[HTMLTableElement align]):
2532         (-[HTMLTableElement setAlign:]):
2533         (-[HTMLTableElement bgColor]):
2534         (-[HTMLTableElement setBgColor:]):
2535         (-[HTMLTableElement border]):
2536         (-[HTMLTableElement setBorder:]):
2537         (-[HTMLTableElement cellPadding]):
2538         (-[HTMLTableElement setCellPadding:]):
2539         (-[HTMLTableElement cellSpacing]):
2540         (-[HTMLTableElement setCellSpacing:]):
2541         (-[HTMLTableElement frame]):
2542         (-[HTMLTableElement setFrame:]):
2543         (-[HTMLTableElement rules]):
2544         (-[HTMLTableElement setRules:]):
2545         (-[HTMLTableElement summary]):
2546         (-[HTMLTableElement setSummary:]):
2547         (-[HTMLTableElement width]):
2548         (-[HTMLTableElement setWidth:]):
2549         (-[HTMLTableElement createTHead]):
2550         (-[HTMLTableElement deleteTHead]):
2551         (-[HTMLTableElement createTFoot]):
2552         (-[HTMLTableElement deleteTFoot]):
2553         (-[HTMLTableElement createCaption]):
2554         (-[HTMLTableElement deleteCaption]):
2555         (-[HTMLTableElement deleteRow:]):
2556         (-[HTMLTableColElement align]):
2557         (-[HTMLTableColElement setAlign:]):
2558         (-[HTMLTableColElement ch]):
2559         (-[HTMLTableColElement setCh:]):
2560         (-[HTMLTableColElement chOff]):
2561         (-[HTMLTableColElement setChOff:]):
2562         (-[HTMLTableColElement span]):
2563         (-[HTMLTableColElement setSpan:]):
2564         (-[HTMLTableColElement vAlign]):
2565         (-[HTMLTableColElement setVAlign:]):
2566         (-[HTMLTableColElement width]):
2567         (-[HTMLTableColElement setWidth:]):
2568         (-[HTMLTableRowElement rowIndex]):
2569         (-[HTMLTableRowElement setRowIndex:]):
2570         (-[HTMLTableRowElement sectionRowIndex]):
2571         (-[HTMLTableRowElement setSectionRowIndex:]):
2572         (-[HTMLTableRowElement cells]):
2573         (-[HTMLTableRowElement setCells:]):
2574         (-[HTMLTableRowElement align]):
2575         (-[HTMLTableRowElement setAlign:]):
2576         (-[HTMLTableRowElement bgColor]):
2577         (-[HTMLTableRowElement setBgColor:]):
2578         (-[HTMLTableRowElement ch]):
2579         (-[HTMLTableRowElement setCh:]):
2580         (-[HTMLTableRowElement chOff]):
2581         (-[HTMLTableRowElement setChOff:]):
2582         (-[HTMLTableRowElement vAlign]):
2583         (-[HTMLTableRowElement setVAlign:]):
2584         (-[HTMLTableRowElement insertCell:]):
2585         (-[HTMLTableRowElement deleteCell:]):
2586         (-[HTMLTableCellElement cellIndex]):
2587         (-[HTMLTableCellElement setCellIndex:]):
2588         (-[HTMLTableCellElement abbr]):
2589         (-[HTMLTableCellElement setAbbr:]):
2590         (-[HTMLTableCellElement align]):
2591         (-[HTMLTableCellElement setAlign:]):
2592         (-[HTMLTableCellElement axis]):
2593         (-[HTMLTableCellElement setAxis:]):
2594         (-[HTMLTableCellElement bgColor]):
2595         (-[HTMLTableCellElement setBgColor:]):
2596         (-[HTMLTableCellElement ch]):
2597         (-[HTMLTableCellElement setCh:]):
2598         (-[HTMLTableCellElement chOff]):
2599         (-[HTMLTableCellElement setChOff:]):
2600         (-[HTMLTableCellElement colSpan]):
2601         (-[HTMLTableCellElement setColSpan:]):
2602         (-[HTMLTableCellElement headers]):
2603         (-[HTMLTableCellElement setHeaders:]):
2604         (-[HTMLTableCellElement height]):
2605         (-[HTMLTableCellElement setHeight:]):
2606         (-[HTMLTableCellElement noWrap]):
2607         (-[HTMLTableCellElement setNoWrap:]):
2608         (-[HTMLTableCellElement rowSpan]):
2609         (-[HTMLTableCellElement setRowSpan:]):
2610         (-[HTMLTableCellElement scope]):
2611         (-[HTMLTableCellElement setScope:]):
2612         (-[HTMLTableCellElement vAlign]):
2613         (-[HTMLTableCellElement setVAlign:]):
2614         (-[HTMLTableCellElement width]):
2615         (-[HTMLTableCellElement setWidth:]):
2616         (-[HTMLFrameSetElement cols]):
2617         (-[HTMLFrameSetElement setCols:]):
2618         (-[HTMLFrameSetElement rows]):
2619         (-[HTMLFrameSetElement setRows:]):
2620         (-[HTMLFrameElement frameBorder]):
2621         (-[HTMLFrameElement setFrameBorder:]):
2622         (-[HTMLFrameElement longDesc]):
2623         (-[HTMLFrameElement setLongDesc:]):
2624         (-[HTMLFrameElement marginHeight]):
2625         (-[HTMLFrameElement setMarginHeight:]):
2626         (-[HTMLFrameElement marginWidth]):
2627         (-[HTMLFrameElement setMarginWidth:]):
2628         (-[HTMLFrameElement name]):
2629         (-[HTMLFrameElement setName:]):
2630         (-[HTMLFrameElement noResize]):
2631         (-[HTMLFrameElement setNoResize:]):
2632         (-[HTMLFrameElement scrolling]):
2633         (-[HTMLFrameElement setScrolling:]):
2634         (-[HTMLFrameElement src]):
2635         (-[HTMLFrameElement setSrc:]):
2636         (-[HTMLIFrameElement align]):
2637         (-[HTMLIFrameElement setAlign:]):
2638         (-[HTMLIFrameElement frameBorder]):
2639         (-[HTMLIFrameElement setFrameBorder:]):
2640         (-[HTMLIFrameElement height]):
2641         (-[HTMLIFrameElement setHeight:]):
2642         (-[HTMLIFrameElement longDesc]):
2643         (-[HTMLIFrameElement setLongDesc:]):
2644         (-[HTMLIFrameElement marginHeight]):
2645         (-[HTMLIFrameElement setMarginHeight:]):
2646         (-[HTMLIFrameElement marginWidth]):
2647         (-[HTMLIFrameElement setMarginWidth:]):
2648         (-[HTMLIFrameElement name]):
2649         (-[HTMLIFrameElement setName:]):
2650         (-[HTMLIFrameElement scrolling]):
2651         (-[HTMLIFrameElement setScrolling:]):
2652         (-[HTMLIFrameElement src]):
2653         (-[HTMLIFrameElement setSrc:]):
2654         (-[HTMLIFrameElement width]):
2655         (-[HTMLIFrameElement setWidth:]):
2656
2657 2004-03-11  Ken Kocienda  <kocienda@apple.com>
2658
2659         Reviewed by Dave
2660
2661         I have clarified the concept (at least in my head) 
2662         that each edit command has an obligation to put the
2663         selection in the right place after it is applied, 
2664         unapplied, or reapplied. Right now, each edit command 
2665         calls setStartingSelection and setEndingSelection to do
2666         this, I made these function move the selection on 
2667         setting.
2668
2669         * khtml/editing/htmlediting_impl.cpp:
2670         (EditCommandImpl::setStartingSelection)
2671         (EditCommandImpl::setEndingSelection)
2672         (InputTextCommandImpl::coalesce)
2673         (InputTextCommandImpl::deleteCharacter)
2674         (InputTextCommandImpl::execute)
2675         * khtml/editing/htmlediting_impl.h:
2676
2677 2004-03-11  Ken Kocienda  <kocienda@apple.com>
2678
2679         Reviewed by Dave
2680     
2681         Various changes to move us forward on editing.
2682         
2683         1. I reorganized the concrete EditCommand interface and
2684         implementation classes alphabetically in their 
2685         respective files, to make it easier to find things.
2686         
2687         2. I added a TypingCommand composite class to gang 
2688         up all keystrokes and make it possible to pass a 
2689         single command over to the Cocoa undo system in all cases.
2690         
2691         3. I now send all keystrokes back over to WebKit
2692         to be interpreted by the text input system. In concert
2693         with the many new NSResponder method implementations I
2694         added to WebView, we now respond to keystrokes in a much
2695         more Cocoa-like way that sets us down the path to
2696         integrating with the Cocoa text input system some day.
2697
2698         4. I fixed up our integration with the Cocoa undo
2699         system. I also removed much of the undo support code
2700         from the KHTMPart class. As a replacement, I implemented
2701         reporting of undoable commands to KHTMLPart so that 
2702         a KDE hookup is quite feasible. As a result, undo 
2703         should "just work" in Blot (Chris has reported that 
2704         it has been busted).
2705
2706         5. I added the DOM CSS bindings for Objective-C. This
2707         required some rearranging of the existing DOM bindings
2708         code, and while I was there, I did various cleanups in the
2709         existing DOM bindings.
2710
2711         * About 400 lines of changed files and functions elided.
2712         
2713 2004-03-11  Chris Blumenberg  <cblu@apple.com>
2714
2715         Fixed some spacing issues in reconstructed source and web archives that were caused by a malformed doc type string that we were constructing.
2716
2717         Reviewed by darin.
2718
2719         * khtml/html/html_documentimpl.cpp:
2720         (HTMLDocumentImpl::determineParseMode): set the public ID and system ID on the doc type
2721         * khtml/xml/dom_docimpl.cpp:
2722         (DocumentTypeImpl::toString): put a space between DOCTYPE and the name
2723         * khtml/xml/dom_docimpl.h:
2724         (DOM::DocumentTypeImpl::setPublicId): new
2725         (DOM::DocumentTypeImpl::setSystemId): new
2726
2727 2004-03-10  David Hyatt  <hyatt@apple.com>
2728
2729         Fix for 3584646, AxWebArea should encompass all children (its AxSize should).
2730         
2731         Reviewed by mjs
2732
2733         * khtml/rendering/render_canvas.cpp:
2734         (RenderCanvas::absoluteRects):
2735         * khtml/rendering/render_canvas.h:
2736
2737 2004-03-10  Chris Blumenberg  <cblu@apple.com>
2738
2739         Fixed: INPUT images are not part of web archives.
2740
2741         Reviewed by rjw.
2742
2743         * khtml/html/html_formimpl.cpp:
2744         (HTMLInputElementImpl::isSubresourceURLAttribute):
2745         * khtml/html/html_formimpl.h:
2746
2747 2004-03-09  Chris Blumenberg  <cblu@apple.com>
2748
2749         Implemented WebCore side of: <rdar://problem/3577508>: API: web archive related API's
2750
2751         Reviewed by rjw.
2752
2753         * WebCore-combined.exp:
2754         * WebCore.exp:
2755         * kwq/DOM.mm:
2756         (+[DOMRange _rangeWithImpl:]): made internally accessible
2757         (-[DOMRange _rangeImpl]): ditto
2758         * kwq/DOMInternal.h:
2759         * kwq/KWQStringList.h:
2760         * kwq/KWQStringList.mm:
2761         (QStringList::getNSArray): new
2762         * kwq/WebCoreBridge.h:
2763         * kwq/WebCoreBridge.mm:
2764         (-[WebCoreBridge pasteMarkupString:]): renamed from pasteHTMLString since XML pasting may be possible
2765         (-[WebCoreBridge selectedRange]): new
2766         (-[WebCoreBridge _documentTypeString]): new
2767         (-[WebCoreBridge _stringWithDocumentTypeStringAndMarkupString:]): new
2768         (-[WebCoreBridge markupStringFromNode:subresourceURLStrings:]): new, needed for WebKit API's
2769         (-[WebCoreBridge markupStringFromRange:subresourceURLStrings:]): new, needed for WebKit API's
2770
2771 2004-03-09  David Hyatt  <hyatt@apple.com>
2772
2773         Make the AXLinkUIElements attribute always return an array (never return nil).
2774         
2775         * kwq/KWQAccObject.mm:
2776         (-[KWQAccObject accessibilityAttributeValue:]):
2777
2778 2004-03-09  David Hyatt  <hyatt@apple.com>
2779
2780         (1) Change root element in a document to have a role of AXWebArea.
2781         (2) Add support for AXURL to links and children of links.
2782         (3) Add support for AXLinkUIElements to the AXWebArea
2783         
2784         Reviewed by john
2785
2786         * khtml/dom/html_misc.h:
2787         * kwq/KWQAccObject.mm:
2788         (-[KWQAccObject role]):
2789         (-[KWQAccObject roleDescription]):
2790         (-[KWQAccObject accessibilityAttributeNames]):
2791         (-[KWQAccObject accessibilityAttributeValue:]):
2792
2793 2004-03-09  John Sullivan  <sullivan@apple.com>
2794
2795         Reviewed by nobody.
2796
2797         * kwq/KWQKURL.mm:
2798         (KURL::KURL):
2799         Fixed broken build by removing wayward "break" statement.
2800
2801 2004-03-08  Darin Adler  <darin@apple.com>
2802
2803         Reviewed by Maciej.
2804
2805         - fixed <rdar://problem/3554876>: REGRESSION (100-125): cannot upload file if path contains non-ASCII characters
2806
2807         * kwq/KWQKURL.mm: Remove Colon constant so we can fit in 8 bits again.
2808         (KURL::KURL): Rewrite so we don't need isSchemeCharOrColon.
2809
2810 === Safari-131 ===
2811
2812 2004-03-08  Ken Kocienda  <kocienda@apple.com>
2813
2814         Reviewed by Darin
2815
2816         * WebCore.pbproj/project.pbxproj: Added CFBundleName to Info.plist.
2817
2818 2004-03-05  David Hyatt  <hyatt@apple.com>
2819
2820         Fix for first-line inheritance problem caused by incorrectly inheriting first-line into floating
2821         blocks.
2822         
2823         Reviewed by kocienda
2824
2825         * khtml/rendering/render_block.cpp:
2826         (khtml::RenderBlock::firstLineBlock):
2827
2828 2004-03-05  Ken Kocienda  <kocienda@apple.com>
2829
2830         Reviewed by me.
2831
2832         Forgot to add this when I checked in last time.
2833
2834         * ForwardingHeaders/css/css_computedstyle.h: Added.
2835
2836 2004-03-05  Ken Kocienda  <kocienda@apple.com>
2837
2838         Reviewed by Dave.
2839
2840         Added initial support for retrieving the computed 
2841         style of document elements.
2842
2843         * WebCore.pbproj/project.pbxproj:
2844         * khtml/css/css_computedstyle.cpp: Added.
2845         (DOM::valueForLength): Helper to turn a khtml::Length into a computed value string.
2846         (DOM::stringForBorderStyle): Helper to turn an EBorderStyle into a computed value string.
2847         (DOM::stringForTextAlign): Helper to turn an ETextAlign into a computed value string.
2848         (DOM::CSSComputedStyleDeclarationImpl::CSSComputedStyleDeclarationImpl): New function.
2849         (DOM::CSSComputedStyleDeclarationImpl::~CSSComputedStyleDeclarationImpl): Ditto.
2850         (DOM::CSSComputedStyleDeclarationImpl::cssText): Ditto.
2851         (DOM::CSSComputedStyleDeclarationImpl::setCssText): Ditto.
2852         (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Ditto.
2853         (DOM::CSSComputedStyleDeclarationImpl::getPropertyValue): Ditto.
2854         (DOM::CSSComputedStyleDeclarationImpl::getPropertyPriority): Ditto.
2855         (DOM::CSSComputedStyleDeclarationImpl::removeProperty): Ditto.
2856         (DOM::CSSComputedStyleDeclarationImpl::setProperty): Ditto.
2857         (DOM::CSSComputedStyleDeclarationImpl::setLengthProperty): Ditto.
2858         (DOM::CSSComputedStyleDeclarationImpl::item): Ditto.
2859         (DOM::CSSComputedStyleDeclarationImpl::property): Ditto.
2860         * khtml/css/css_computedstyle.h: Added.
2861         * khtml/css/css_valueimpl.cpp:
2862         (CSSPrimitiveValueImpl::cssText): Fixed some formatting of Rect. Added
2863         suppoprt for rgba colors.
2864         * khtml/css/css_valueimpl.h:
2865         (DOM::CSSStyleDeclarationImpl::node):
2866         * khtml/ecma/kjs_css.cpp:
2867         (KJS::getDOMCSSStyleDeclaration):
2868         * khtml/ecma/kjs_dom.cpp:
2869         (DOMDocument::getValueProperty): defaultView is a property, used to be a function, 
2870         which was wrong. Fixed.
2871         (DOMDocumentProtoFunc::tryCall): Ditto.
2872         * khtml/ecma/kjs_dom.lut.h:
2873         (KJS::): Regenerated file.
2874         * khtml/misc/khtmllayout.h:
2875         (khtml::Length::length): Added an accessor to the value, to promote better coding
2876         style, rather than peeking and poking the value directly.
2877         * khtml/rendering/render_style.h:
2878         (khtml::RenderStyle::borderLeftWidth): BHIDDEN also should be treated like BNONE when it comes
2879         to returning a zero value. Now it is.
2880         (khtml::RenderStyle::borderRightWidth): Ditto.
2881         (khtml::RenderStyle::borderTopWidth): Ditto.
2882         (khtml::RenderStyle::borderBottomWidth): Ditto.
2883         (khtml::RenderStyle::outlineWidth): Ditto.
2884         (khtml::RenderStyle::outlineOffset): Ditto.
2885         * khtml/xml/dom2_viewsimpl.cpp:
2886         (AbstractViewImpl::getComputedStyle): Added an implementation for this formerly stubbed out function.
2887
2888 2004-03-05  Ken Kocienda  <kocienda@apple.com>
2889
2890         Change by Darin. Reviewed by me.
2891
2892         * kwq/DOM.mm: Fixed the following functions to deal with
2893         casting objects derived from NodeImpl back and forth to
2894         NodeImpl given that the derived classes use multiple
2895         inheritance.
2896         (-[DOMDocument _documentImpl]):
2897         (-[DOMCharacterData _characterDataImpl]):
2898         (-[DOMAttr _attrImpl]):
2899         (-[DOMElement _elementImpl]):
2900         (-[DOMText _textImpl]):
2901         (-[DOMDocumentType _documentTypeImpl]):
2902         (-[DOMNotation _notationImpl]):
2903         (-[DOMEntity _entityImpl]):
2904         (-[DOMProcessingInstruction _processingInstructionImpl]):
2905
2906 2004-03-03  Darin Adler  <darin@apple.com>
2907
2908         Reviewed by Vicki.
2909
2910         * English.lproj/InfoPlist.strings: Removed. No need to localize the version and
2911         copyright string, and that's all that was in here.
2912         * WebCore.pbproj/project.pbxproj: Removed InfoPlist.strings from build.
2913
2914 2004-03-03  David Hyatt  <hyatt@apple.com>
2915
2916         Speed up access to the children arrays of accessibility objects by caching mutable arrays of children
2917         and nulling them out only when the children change.
2918         
2919         Reviewed by john
2920
2921         * khtml/rendering/render_container.cpp:
2922         (RenderContainer::removeChildNode):
2923         (RenderContainer::appendChildNode):
2924         (RenderContainer::insertChildNode):
2925         * kwq/KWQAccObject.h:
2926         * kwq/KWQAccObject.mm:
2927         (-[KWQAccObject detach]):
2928         (-[KWQAccObject accessibilityAttributeValue:]):
2929         (-[KWQAccObject childrenChanged]):
2930         (-[KWQAccObject clearChildren]):
2931         * kwq/KWQAccObjectCache.h:
2932         * kwq/KWQAccObjectCache.mm:
2933         (KWQAccObjectCache::childrenChanged):
2934
2935 2004-03-02  Ken Kocienda  <kocienda@apple.com>
2936
2937         Reviewed by Darin and me. Coding by Darin and me.
2938         
2939         1) Fix some places that were calling [self class], in at
2940         least one case calling a method not defined on the class
2941         (not gonna work).
2942         2) Add underscore prefix for all non-API method names.
2943         3) Make DOMObject refuse to init, which might prevent
2944         problems where people get confused and think they can
2945         subclass or instantiate it or its subclasses.
2946         4) Use some C++ mojo to replace NSStringToDOMString and
2947         DOMStringToNSString with type conversions built into the
2948         DOMString class.
2949         5) Removed NSError out parameters from the API. Methods
2950         now throw NSExceptions.
2951         6) Exception code local variables now initialized before
2952         passing to khtml DOM impl calls.
2953         7) Various other cleanups and tweaks.
2954
2955         * khtml/dom/dom_string.h
2956         * khtml/xml/dom_atomicstring.h
2957         * kwq/DOM.h
2958         * kwq/DOM.mm
2959         * kwq/DOMInternal.h
2960         * kwq/KWQKHTMLPart.mm
2961         * kwq/WebCoreBridge.mm
2962
2963 2004-03-02  Richard Williamson   <rjw@apple.com>
2964
2965         Added NP_SAP API.  This API includes the new entry points
2966         used to bind native interfaces to JavaScript.  It's final location
2967         may change.
2968
2969         Made changes to KWQKHTMLPart.mm to reflect changes in names
2970         on RootObject.
2971         
2972         Reviewed by Chris.
2973
2974         * WebCore.pbproj/project.pbxproj:
2975         * khtml/ecma/NP_SAP.h: Added.
2976         * kwq/KWQKHTMLPart.mm:
2977         (KWQKHTMLPart::cleanupPluginRootObjects):
2978         * kwq/WebCoreBridge.mm:
2979
2980 2004-03-01  Maciej Stachowiak  <mjs@apple.com>
2981
2982         Reviewed by Darin.
2983
2984         <rdar://problem/3549201>: repro crash in KHTMLPart::begin inside JavaScript code (gmpartsdirect.com)
2985
2986         Added some null checks. I am not sure why this page attaches a
2987         document that has no view, but these changes make it work
2988         perfectly.
2989         
2990         * khtml/khtml_part.cpp:
2991         (KHTMLPart::begin): Add check for null view before use.  *
2992         khtml/xml/dom_docimpl.cpp:
2993         (DocumentImpl::close): ditto
2994         (DocumentImpl::recalcStyle): Add check for null paint device.
2995
2996 === Safari-130 ===
2997
2998 2004-03-01  Ken Kocienda  <kocienda@apple.com>
2999
3000         Reviewed by me
3001         
3002         Rollout last night's checkin. The tree was closed.
3003
3004         * kwq/DOM.h
3005         * kwq/DOM.mm
3006         * kwq/DOMInternal.h
3007         * kwq/KWQKHTMLPart.mm
3008         * kwq/WebCoreBridge.mm
3009
3010 2004-03-01  Ken Kocienda  <kocienda@apple.com>
3011
3012         Reviewed by me, changes by Darin.
3013         
3014         Yet another pass at the DOM API, this one by 
3015         Darin to simplify the internal structure of the
3016         implementation. Little has changed in the API;
3017         much has changed in the implementation, particularly
3018         with regard to object creation and data storage and
3019         the class hierarchy.
3020
3021         * kwq/DOM.h
3022         * kwq/DOM.mm
3023         * kwq/DOMInternal.h
3024         * kwq/KWQKHTMLPart.mm
3025         * kwq/WebCoreBridge.mm
3026
3027 2004-03-01  Maciej Stachowiak  <mjs@apple.com>
3028
3029         Reviewed by NOBODY (OOPS!).
3030
3031         - fixed <rdar://problem/3567047>: REGRESSION: repro crash inside KJS (dispatchToBoolean) at www.thedonnas.com
3032         - fixed <rdar://problem/3550461>: REGRESSION: repro crash in JavaScript at www.alaska.com
3033         
3034         * khtml/ecma/kjs_window.cpp:
3035         (Window::getListener): Return Null() when the listener object is
3036         null, indicating the code failed to parse. Otherwise we return a
3037         bad value which can later crash the JS interpreter.
3038
3039 2004-03-01  Darin Adler  <darin@apple.com>
3040
3041         Reviewed by Vicki.
3042
3043         - fixed Tiger build
3044
3045         * kwq/KWQXmlSimpleReader.mm: (QXmlSimpleReader::parse):
3046         Changed SAX structure initialization code so it compiles with both the newer
3047         and older libxml. Not sure this will work right with namespaces with the new
3048         libxml; we'll have to test.
3049
3050 2004-03-01  Ken Kocienda  <kocienda@apple.com>
3051
3052         Reviewed by me, as suggested by Darin
3053
3054         * khtml/misc/htmlattrs.c:
3055         (getAttrName): Generated code no longer has extraneous semicolon.
3056         * khtml/misc/htmltags.c: Generated code no longer has extraneous semicolon.
3057         (getTagName):
3058         * khtml/misc/makeattrs: Removed extraneous semicolon from end of file.
3059         * khtml/misc/maketags: Ditto.
3060
3061 2004-03-01  Ken Kocienda  <kocienda@apple.com>
3062
3063         Reviewed by me
3064
3065         * kwq/DOMInternal.h: Replaced tabs with spaces.
3066
3067 2004-03-01  Ken Kocienda  <kocienda@apple.com>
3068
3069         Reviewed by Darin
3070
3071         Changed all Objective-C DOM classes from protocols to classes, using
3072         a class cluster-like approach.
3073
3074         * WebCore.pbproj/project.pbxproj:
3075         * khtml/dom/html_object.cpp: Put code in DOM namespace.
3076         * khtml/html/html_headimpl.cpp: Pull in entire DOM namespace in using directive to
3077         make up for the removal of it from htmlattrs.
3078         * khtml/html/htmltokenizer.cpp: Add using directives for the DOM classes used.
3079         * khtml/misc/htmlattrs.c:
3080         (getAttrName):
3081         * khtml/misc/htmlattrs.h: 
3082         * khtml/misc/htmltags.c:
3083         (getTagName):
3084         * khtml/misc/makeattrs: Some changes here to avoid pulling in the entire DOM namespace.
3085         Explicitly use DOM namespace scoping for DOMString.
3086         * khtml/misc/maketags: Explicitly use DOM namespace scoping for DOMString.
3087         * khtml/rendering/render_form.cpp: Pull in entire DOM namespace in using directive to
3088         make up for the removal of it from htmlattrs.
3089         * kwq/DOM-compat.h:
3090         * kwq/DOM.h:
3091         * kwq/DOM.mm: Added.
3092         * kwq/WebCoreDOM.h: Removed.
3093         * kwq/WebCoreDOM.mm: Removed.
3094
3095 2004-02-26  Maciej Stachowiak  <mjs@apple.com>
3096
3097         Reviewed by John.
3098
3099         <rdar://problem/3514733>: nil-deref in createHTMLEventListener at skiset.com
3100         <rdar://problem/3510676>: nil-deref of view in DocumentImpl::createHTMLEventListener at kirotv.com
3101         
3102         * khtml/xml/dom_docimpl.cpp:
3103         (DocumentImpl::createHTMLEventListener): Don't create the listener if there is no
3104         part. Also, get the part when going through the view. This prevents problems when
3105         handlers are set or removed from the onUnload handler.
3106
3107 2004-02-27  Maciej Stachowiak  <mjs@apple.com>
3108
3109         Reviewed by Dave.
3110
3111         - fixed <rdar://problem/3571356>: REGRESSION: Crash in isPointInsideSelection clicking on link in Apple web directory frame
3112         
3113         * khtml/khtml_part.cpp:
3114         (KHTMLPart::isPointInsideSelection): Don't crash if innerNode is
3115         NULL, as this can happen mousing over a frame that's in the
3116         process of loading and currently empty. Since such a frame
3117         obviously can't be inside the selection, this seems like a good
3118         enough fix.
3119         
3120 2004-02-26  David Hyatt  <hyatt@apple.com>
3121
3122         Fix for 3528839, wide table cut off because of shorts being used instead of ints.
3123         
3124         Reviewed by darin
3125
3126         * khtml/rendering/render_table.cpp:
3127         (RenderTableSection::layoutRows):
3128         (RenderTableCell::setWidth):
3129         * khtml/rendering/table_layout.cpp:
3130         (FixedTableLayout::calcWidthArray):
3131         (FixedTableLayout::calcMinMaxWidth):
3132         (AutoTableLayout::calcMinMaxWidth):
3133
3134 2004-02-26  Chris Blumenberg  <cblu@apple.com>
3135
3136         Fixed a few problems I found with reconstructed source while on my way to implementing "Mail Page".
3137
3138         Reviewed by hyatt.
3139
3140         * khtml/html/html_headimpl.cpp:
3141         (HTMLLinkElementImpl::isSubresourceURLAttribute): only true for stylesheet and icon
3142         * khtml/html/html_imageimpl.cpp:
3143         (HTMLAreaElementImpl::isURLAttribute): implement isURLAttribute not isSubresourceURLAttribute
3144         * khtml/html/html_imageimpl.h:
3145         * khtml/rendering/render_box.cpp:
3146         (RenderBox::dirtyLineBoxes): crasher fix that I found using libgmalloc
3147         * khtml/xml/dom_nodeimpl.cpp:
3148         (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 
3149         * kwq/WebCoreBridge.mm:
3150         (-[WebCoreBridge HTMLString:]): call recursive_toHTMLWithOptions on the first child of the document so <#document /> isn't part of the source
3151
3152 2004-02-26  David Hyatt  <hyatt@apple.com>
3153
3154         Convert render object widths from short to int.  There was a bug on this, but I can't find it in Radar.
3155         
3156         Reviewed by john
3157
3158         * khtml/rendering/render_applet.cpp:
3159         (RenderApplet::intrinsicWidth):
3160         (RenderEmptyApplet::intrinsicWidth):
3161         * khtml/rendering/render_applet.h:
3162         * khtml/rendering/render_block.cpp:
3163         (khtml::RenderBlock::calcMinMaxWidth):
3164         (khtml::RenderBlock::calcInlineMinMaxWidth):
3165         * khtml/rendering/render_block.h:
3166         * khtml/rendering/render_box.cpp:
3167         (RenderBox::contentWidth):
3168         (RenderBox::width):
3169         (RenderBox::containingBlockWidth):
3170         (RenderBox::calcReplacedWidth):
3171         (RenderBox::setStaticX):
3172         * khtml/rendering/render_box.h:
3173         (khtml::RenderBox::minWidth):
3174         (khtml::RenderBox::maxWidth):
3175         * khtml/rendering/render_br.h:
3176         (khtml::RenderBR::minWidth):
3177         (khtml::RenderBR::maxWidth):
3178         * khtml/rendering/render_canvas.cpp:
3179         (RenderCanvas::layout):
3180         * khtml/rendering/render_flexbox.cpp:
3181         (khtml::RenderFlexibleBox::calcMinMaxWidth):
3182         * khtml/rendering/render_frames.cpp:
3183         (RenderPart::intrinsicWidth):
3184         (RenderPartObject::layout):
3185         * khtml/rendering/render_frames.h:
3186         * khtml/rendering/render_image.cpp:
3187         (RenderImage::layout):
3188         (RenderImage::calcReplacedWidth):
3189         * khtml/rendering/render_image.h:
3190         * khtml/rendering/render_inline.cpp:
3191         (RenderInline::width):
3192         * khtml/rendering/render_inline.h:
3193         * khtml/rendering/render_layer.cpp:
3194         (RenderLayer::scrollWidth):
3195         * khtml/rendering/render_layer.h:
3196         (khtml::RenderLayer::width):
3197         (khtml::RenderLayer::setWidth):
3198         (khtml::RenderLayer::scrollXOffset):
3199         * khtml/rendering/render_line.h:
3200         (khtml::InlineBox::setWidth):
3201         (khtml::InlineBox::width):
3202         (khtml::InlineBox::setXPos):
3203         (khtml::InlineBox::xPos):
3204         * khtml/rendering/render_object.cpp:
3205         (RenderObject::containingBlockWidth):
3206         * khtml/rendering/render_object.h:
3207         (khtml::RenderObject::setStaticX):
3208         (khtml::RenderObject::contentWidth):
3209         (khtml::RenderObject::intrinsicWidth):
3210         (khtml::RenderObject::width):
3211         (khtml::RenderObject::offsetWidth):
3212         (khtml::RenderObject::minWidth):
3213         (khtml::RenderObject::maxWidth):
3214         * khtml/rendering/render_replaced.h:
3215         (khtml::RenderReplaced::intrinsicWidth):
3216         * khtml/rendering/render_table.cpp:
3217         (RenderTable::calcWidth):
3218         * khtml/rendering/render_table.h:
3219         * khtml/rendering/render_text.cpp:
3220         (RenderText::trimmedMinMaxWidth):
3221         (RenderText::width):
3222         * khtml/rendering/render_text.h:
3223         (khtml::RenderText::minWidth):
3224         (khtml::RenderText::maxWidth):
3225         * khtml/rendering/table_layout.cpp:
3226
3227 2004-02-26  Trey Matteson  <trey@apple.com>
3228
3229         3566668 - REGRESSION (125-128): autofill of popup lists is broken
3230         3571271 - autofill parsing of field names should treat _ as a word separator
3231
3232         Reviewed by Chris, Darin
3233
3234         * kwq/KWQComboBox.h:
3235         * kwq/KWQComboBox.mm:
3236         (QComboBox::populate):   New virtual method to force any lazy field population to happen.
3237         * kwq/KWQKHTMLPart.mm:
3238         (KWQKHTMLPart::matchLabelsAgainstElement):  Change _ to ' ', to make it a word separator.
3239         * kwq/KWQWidget.h:
3240         (QWidget::populate):  Implement populate to fill out the menu's data.
3241         * kwq/WebCoreBridge.mm:
3242         (viewForElement):    Make sure widget is populated before handing it out.
3243
3244 2004-02-26  Ken Kocienda  <kocienda@apple.com>
3245
3246         Reviewed by Chris
3247
3248         * WebCore.pbproj/project.pbxproj:
3249         * khtml/xml/dom2_rangeimpl.h: Now includes createInstance glue function as do the other
3250         khtml DOM objects that we reflect into ObjC.
3251         * kwq/DOM-compat.h: Added. Compatibility declarations for DOM SPI. Note that this file 
3252         is copied into WebKit by the build system as needed.
3253         * kwq/DOM.h: Added. New home for DOM SPI. Note that this file is copied into WebKit by the build 
3254         system as needed.
3255         * kwq/KWQKHTMLPart.mm:
3256         (KWQKHTMLPart::recordFormValue): Updated usage to new DOM SPI.
3257         * kwq/WebCoreBridge.h: Updated usage to new DOM SPI.
3258         * kwq/WebCoreBridge.mm: Updated usage to new DOM SPI. Needed to add DOM range impl include since
3259         includes jiggered around and this needed header was no longer included indirectly.
3260         (-[WebCoreBridge elementForView:]): Ditto.
3261         (inputElementFromDOMElement): Ditto.
3262         (formElementFromDOMElement): Ditto.
3263         (-[WebCoreBridge elementWithName:inForm:]): Ditto.
3264         (-[WebCoreBridge elementDoesAutoComplete:]): Ditto.
3265         (-[WebCoreBridge elementIsPassword:]): Ditto.
3266         (-[WebCoreBridge currentForm]): Ditto.
3267         (-[WebCoreBridge controlsInForm:]): Ditto.
3268         (-[WebCoreBridge searchForLabels:beforeElement:]): Ditto.
3269         (-[WebCoreBridge matchLabels:againstElement:]): Ditto.
3270         (-[WebCoreBridge elementAtPoint:]): Ditto.
3271         (-[WebCoreBridge DOMDocument]): Ditto.
3272         (-[WebCoreBridge setSelectionFrom:startOffset:to:endOffset:]): Ditto.
3273         (-[WebCoreBridge attributedStringFrom:startOffset:to:endOffset:]): Ditto.
3274         (-[WebCoreBridge selectionStart]): Ditto.
3275         (-[WebCoreBridge selectionEnd]): Ditto.
3276         * kwq/WebCoreDOM.h: New home for all private declarations needed for reflecting DOM into ObjC.
3277         * kwq/WebCoreDOM.mm: Added. New home for all implementations needed for reflecting DOM into ObjC.
3278         * kwq/WebCoreDOMDocument.mm: Removed. All ObjC DOM implementation now in WebCoreDOM.mm.
3279         * kwq/WebCoreDOMNode.mm: Removed. All ObjC DOM implementation now in WebCoreDOM.mm.
3280         * kwq/WebCoreDOMPrivate.h: Removed.
3281         * kwq/WebDOMDocument.h: Removed.
3282         * kwq/WebDOMElement.h: Removed.
3283         * kwq/WebDOMNode.h: Removed.
3284
3285 2004-02-25  John Sullivan  <sullivan@apple.com>
3286
3287         WebCore part of fix for <rdar://problem/3546370>: add a way to tab to menus, 
3288         checkmarks, and buttons without turning on Full Keyboard Acceess
3289
3290         Reviewed by Ken.
3291
3292         * kwq/KWQKHTMLPart.h:
3293         * kwq/KWQKHTMLPart.mm:
3294         (KWQKHTMLPart::tabsToAllControls):
3295         now checks for option-tab like tabsToLinks
3296         (KWQKHTMLPart::partForWidget):
3297         new method, extracted from bridgeForWidget
3298         (KWQKHTMLPart::bridgeForWidget):
3299         now calls extracted method
3300
3301         * kwq/KWQButton.mm:
3302         (-[KWQButton canBecomeKeyView]):
3303         overridden to handle our rules about full keyboard access, different
3304         than NSView's rules
3305         * kwq/KWQComboBox.mm:
3306         (-[KWQPopUpButton canBecomeKeyView]):
3307         ditto
3308         * kwq/KWQListBox.mm:
3309         (-[KWQTableView canBecomeKeyView]):
3310         ditto
3311         
3312 2004-02-24  Darin Adler  <darin@apple.com>
3313
3314         Reviewed by Ken.
3315
3316         * kwq/KWQString.mm: (QString::endsWith): Fixed broken end of string test, to get rid
3317         of false positives.
3318
3319         * WebCore-tests.exp: Added endsWith so it can be tested.
3320         * WebCore-combined.exp: Regenerated.
3321
3322 2004-02-23  David Hyatt  <hyatt@apple.com>
3323
3324         Fix for 3549772, hangs on border collapsing.
3325         
3326         Reviewed by darin
3327
3328         * khtml/rendering/render_object.cpp:
3329         (RenderObject::collectBorders):
3330         * khtml/rendering/render_object.h:
3331         * khtml/rendering/render_table.cpp:
3332         (RenderTable::paint):
3333         (compareBorders):
3334         (RenderTableCell::paint):
3335         (addBorderStyle):
3336         (RenderTableCell::collectBorders):
3337         * khtml/rendering/render_table.h:
3338
3339 2004-02-23  David Hyatt  <hyatt@apple.com>
3340
3341         Fix for 3558717, make sure that form elements that are removed from a document also remove themselves
3342         from the form.
3343
3344         Reviewed by darin.
3345         
3346         * khtml/html/html_formimpl.cpp:
3347         (HTMLGenericFormElementImpl::removedFromDocument):
3348         * khtml/html/html_formimpl.h:
3349         * khtml/xml/dom_nodeimpl.cpp:
3350         * khtml/xml/dom_nodeimpl.h:
3351
3352         Implement smarter line layout for faster typing and repainting when individual lines change.
3353
3354         Reviewed by kocienda.
3355         
3356         * khtml/khtmlview.cpp:
3357         (KHTMLViewPrivate::KHTMLViewPrivate):
3358         (KHTMLViewPrivate::~KHTMLViewPrivate):
3359         (KHTMLViewPrivate::reset):
3360         (KHTMLView::addRepaintInfo):
3361         (KHTMLView::layout):
3362         * khtml/khtmlview.h:
3363         * khtml/rendering/bidi.cpp:
3364         (khtml::Bidinext):
3365         (khtml::appendRun):
3366         (khtml::embed):
3367         (khtml::RenderBlock::constructLine):
3368         (khtml::RenderBlock::computeHorizontalPositionsForLine):
3369         (khtml::RenderBlock::computeVerticalPositionsForLine):
3370         (khtml::RenderBlock::bidiReorderLine):
3371         (khtml::buildCompactRuns):
3372         (khtml::RenderBlock::layoutInlineChildren):
3373         (khtml::RenderBlock::determineStartPosition):
3374         (khtml::RenderBlock::determineEndPosition):
3375         (khtml::RenderBlock::matchedEndLine):
3376         (khtml::RenderBlock::findNextLineBreak):
3377         * khtml/rendering/render_block.cpp:
3378         (khtml:::RenderFlow):
3379         (khtml::RenderBlock::layoutBlock):
3380         (khtml::RenderBlock::layoutBlockChildren):
3381         (khtml::RenderBlock::positionNewFloats):
3382         (khtml::RenderBlock::lowestPosition):
3383         (khtml::RenderBlock::rightmostPosition):
3384         (khtml::RenderBlock::leftmostPosition):
3385         * khtml/rendering/render_block.h:
3386         (khtml::RenderBlock::firstRootBox):
3387         (khtml::RenderBlock::lastRootBox):
3388         (khtml::RenderBlock::setLinesAppended):
3389         (khtml::RenderBlock::linesAppended):
3390         * khtml/rendering/render_box.cpp:
3391         (RenderBox::dirtyLineBoxes):
3392         (RenderBox::deleteLineBoxWrapper):
3393         (RenderBox::setInlineBoxWrapper):
3394         * khtml/rendering/render_box.h:
3395         * khtml/rendering/render_br.cpp:
3396         (RenderBR::createInlineBox):
3397         (RenderBR::position):
3398         * khtml/rendering/render_br.h:
3399         * khtml/rendering/render_container.cpp:
3400         (RenderContainer::appendChildNode):
3401         (RenderContainer::insertChildNode):
3402         * khtml/rendering/render_flexbox.cpp:
3403         (khtml::RenderFlexibleBox::placeChild):
3404         * khtml/rendering/render_flow.cpp:
3405         (RenderFlow::extractLineBox):
3406         (RenderFlow::attachLineBox):
3407         (RenderFlow::removeLineBox):
3408         (RenderFlow::dirtyLinesFromChangedChild):
3409         (RenderFlow::dirtyLineBoxes):
3410         (RenderFlow::createInlineBox):
3411         * khtml/rendering/render_flow.h:
3412         * khtml/rendering/render_line.cpp:
3413         (InlineBox::dirtyLineBoxes):
3414         (InlineBox::deleteLine):
3415         (InlineBox::extractLine):
3416         (InlineBox::attachLine):
3417         (InlineBox::adjustVerticalPosition):
3418         (InlineBox::root):
3419         (InlineBox::nextOnLineExists):
3420         (InlineBox::prevOnLineExists):
3421         (InlineFlowBox::removeChild):
3422         (InlineFlowBox::deleteLine):
3423         (InlineFlowBox::extractLine):
3424         (InlineFlowBox::attachLine):
3425         (InlineFlowBox::adjustVerticalPosition):
3426         (InlineFlowBox::verticallyAlignBoxes):
3427         (InlineFlowBox::adjustMaxAscentAndDescent):
3428         (RootInlineBox::adjustVerticalPosition):
3429         (RootInlineBox::childRemoved):
3430         * khtml/rendering/render_line.h:
3431         (khtml::InlineBox::m_extracted):
3432         (khtml::InlineBox::setExtracted):
3433         (khtml::InlineBox::object):
3434         (khtml::InlineBox::parent):
3435         (khtml::InlineBox::isDirty):
3436         (khtml::InlineBox::markDirty):
3437         (khtml::InlineFlowBox::prevFlowBox):
3438         (khtml::InlineFlowBox::nextFlowBox):
3439         (khtml::RootInlineBox::RootInlineBox):
3440         (khtml::RootInlineBox::nextRootBox):
3441         (khtml::RootInlineBox::prevRootBox):
3442         (khtml::RootInlineBox::setLineBreakInfo):
3443         (khtml::RootInlineBox::setLineBreakPos):
3444         (khtml::RootInlineBox::setBlockHeight):
3445         (khtml::RootInlineBox::setEndsWithBreak):
3446         (khtml::RootInlineBox::blockHeight):
3447         (khtml::RootInlineBox::endsWithBreak):
3448         (khtml::RootInlineBox::lineBreakObj):
3449         (khtml::RootInlineBox::lineBreakPos):
3450         * khtml/rendering/render_object.cpp:
3451         (RenderObject::repaintAfterLayoutIfNeeded):
3452         (RenderObject::repaintObjectsBeforeLayout):
3453         (RenderObject::dirtyLinesFromChangedChild):
3454         (RenderObject::createInlineBox):
3455         (RenderObject::dirtyLineBoxes):
3456         (RenderObject::setInlineBoxWrapper):
3457         (RenderObject::deleteLineBoxWrapper):
3458         * khtml/rendering/render_object.h:
3459         (khtml::RenderObject::RepaintInfo::m_repaintRect):
3460         * khtml/rendering/render_table.cpp:
3461         (RenderTableSection::layoutRows):
3462         * khtml/rendering/render_text.cpp:
3463         (InlineTextBox::deleteLine):
3464         (InlineTextBox::extractLine):
3465         (InlineTextBox::attachLine):
3466         (RenderText::RenderText):
3467         (RenderText::detach):
3468         (RenderText::extractTextBox):
3469         (RenderText::attachTextBox):
3470         (RenderText::removeTextBox):
3471         (RenderText::setTextWithOffset):
3472         (RenderText::setText):
3473         (RenderText::dirtyLineBoxes):
3474         (RenderText::createInlineBox):
3475         * khtml/rendering/render_text.h:
3476         (khtml::InlineTextBox::start):
3477         (khtml::InlineTextBox::end):
3478         (khtml::InlineTextBox::offsetRun):
3479         * khtml/xml/dom_textimpl.cpp:
3480         (CharacterDataImpl::setData):
3481         (CharacterDataImpl::appendData):
3482         (CharacterDataImpl::insertData):
3483         (CharacterDataImpl::deleteData):
3484         (CharacterDataImpl::replaceData):
3485         (TextImpl::splitText):
3486         * kwq/KWQRenderTreeDebug.cpp:
3487         (write):
3488
3489         RenderBlock contains two other fixes.  The first is a fix to rightmost/lowestPosition to properly add in
3490         margins to floats.
3491
3492         Reviewed by mjs
3493
3494         The second fix is to repair a bug in block-level replaced elements with margins.  If the floats they moved to
3495         dodge can fit in their margins, then they don't technically have to move at all.
3496
3497         Reviewed by john
3498
3499 2004-02-20  Maciej Stachowiak  <mjs@apple.com>
3500
3501         Reviewed by Darin.
3502
3503         <rdar://problem/3552346>: REGRESSION 100-125: nil-dereference in KHTMLPart::isPointInsideSelection (progz.ru, many other sites)
3504         
3505         * khtml/rendering/render_layer.cpp:
3506         (RenderLayer::nodeAtPointForLayer): To cover the case of
3507         positioned generated content, make sure to find an element if we
3508         don't have one yet when we get to the layer level.
3509
3510 === Safari-129 ===
3511
3512 2004-02-19  Chris Blumenberg  <cblu@apple.com>
3513
3514         Fixed: <rdar://problem/3563402>: when copying HTML, relative URLs should be made absolute
3515
3516         - Added isSubresourceURLAttribute to ElementImpl which is overridden by subclasses determine if an attribute refers to a subresource.
3517         - Added isURLAttribute to ElementImpl which is overridden by subclasses determine if an attribute refers to any kind of URL.
3518
3519         Reviewed by Dave.
3520
3521         * khtml/html/html_baseimpl.cpp:
3522         (HTMLBodyElementImpl::isSubresourceURLAttribute):
3523         (HTMLFrameElementImpl::isSubresourceURLAttribute):
3524         (HTMLIFrameElementImpl::openURL):
3525         (HTMLIFrameElementImpl::isSubresourceURLAttribute):
3526         * khtml/html/html_baseimpl.h:
3527         * khtml/html/html_formimpl.cpp:
3528         (HTMLFormElementImpl::isURLAttribute):
3529         * khtml/html/html_formimpl.h:
3530         * khtml/html/html_headimpl.cpp:
3531         (HTMLLinkElementImpl::isSubresourceURLAttribute):
3532         (HTMLScriptElementImpl::id):
3533         (HTMLScriptElementImpl::isSubresourceURLAttribute):
3534         * khtml/html/html_headimpl.h:
3535         * khtml/html/html_imageimpl.cpp:
3536         (HTMLImageElementImpl::isSubresourceURLAttribute):
3537         (HTMLAreaElementImpl::getRegion):
3538         (HTMLAreaElementImpl::isSubresourceURLAttribute):
3539         * khtml/html/html_imageimpl.h:
3540         * khtml/html/html_inlineimpl.cpp:
3541         (HTMLAnchorElementImpl::isURLAttribute):
3542         * khtml/html/html_inlineimpl.h:
3543         * khtml/html/html_objectimpl.cpp:
3544         (HTMLEmbedElementImpl::isSubresourceURLAttribute):
3545         (HTMLObjectElementImpl::isSubresourceURLAttribute):
3546         (HTMLParamElementImpl::parseHTMLAttribute):
3547         (HTMLParamElementImpl::isSubresourceURLAttribute):
3548         * khtml/html/html_objectimpl.h:
3549         * khtml/html/html_tableimpl.cpp:
3550         (HTMLTableElementImpl::isSubresourceURLAttribute):
3551         (HTMLTableCellElementImpl::attach):
3552         (HTMLTableCellElementImpl::isSubresourceURLAttribute):
3553         * khtml/html/html_tableimpl.h:
3554         * khtml/xml/dom2_rangeimpl.cpp:
3555         (RangeImpl::toHTMLWithOptions): take completeURLs and subresourceURLs arguments
3556         (RangeImpl::toHTML): call toHTMLWithOptions with default options
3557         * khtml/xml/dom2_rangeimpl.h:
3558         * khtml/xml/dom_elementimpl.cpp:
3559         (ElementImpl::isURLAttribute):
3560         (ElementImpl::isSubresourceURLAttribute):
3561         * khtml/xml/dom_elementimpl.h:
3562         * khtml/xml/dom_nodeimpl.cpp:
3563         (NodeImpl::recursive_toHTMLWithOptions): take completeURLs and subresourceURLs arguments
3564         (NodeImpl::recursive_toHTML): call recursive_toHTML with default options
3565         * khtml/xml/dom_nodeimpl.h:
3566         * kwq/WebCoreBridge.h:
3567         * kwq/WebCoreBridge.mm:
3568         (-[WebCoreBridge selectedHTML:]): renamed to return subresource URL strings
3569
3570 2004-02-17  Maciej Stachowiak  <mjs@apple.com>
3571
3572         Reviewed by Darin.
3573
3574         <rdar://problem/3537397>: REGRESSION (100-114): Return doesn't work in Japanese input method for some HomePage fields
3575         
3576         * kwq/KWQTextArea.mm:
3577         (-[KWQTextAreaTextView keyDown:]): Don't send events through DOM when there is marked
3578         text.
3579         (-[KWQTextAreaTextView keyUp:]): Ditto.
3580         * kwq/KWQTextField.mm:
3581         (-[KWQTextField textView:shouldHandleEvent:]): Ditto.
3582         (-[KWQSecureTextField textView:shouldHandleEvent:]): Ditto.
3583         * khtml/html/html_formimpl.cpp:
3584         (HTMLInputElementImpl::defaultEventHandler): No need to check for
3585         marked text on "return" any more, because we won't send key events
3586         through the DOM at all when there is marked text.
3587         * kwq/KWQLineEdit.h:
3588         * kwq/KWQLineEdit.mm: Removed haveMarkedText method, no longer
3589         used by anything.
3590
3591 2004-02-16  Chris Blumenberg  <cblu@apple.com>
3592
3593         WebCore side of pasting image data.
3594
3595         Reviewed by kocienda.
3596
3597         * khtml/editing/htmlediting.cpp:
3598         (PasteImageCommand::PasteImageCommand): new
3599         (PasteImageCommand::~PasteImageCommand): new
3600         (PasteImageCommand::impl): new
3601         * khtml/editing/htmlediting.h:
3602         (khtml::):
3603         * khtml/editing/htmlediting_impl.cpp:
3604         (EditCommandImpl::name): added support for PasteImageCommandID
3605         (CompositeEditCommandImpl::insertNodeAt): new, factored out from PasteHTMLCommandImpl::apply
3606         (PasteHTMLCommandImpl::apply): call insertNodeAt
3607         (PasteImageCommandImpl::PasteImageCommandImpl): new
3608         (PasteImageCommandImpl::~PasteImageCommandImpl): new
3609         (PasteImageCommandImpl::apply): new
3610         * khtml/editing/htmlediting_impl.h:
3611         * khtml/khtml_part.cpp:
3612         (KHTMLPart::pasteHTMLString): unchanged
3613         (KHTMLPart::pasteImage): new
3614         * khtml/khtml_part.h:
3615         * kwq/WebCoreBridge.h:
3616         * kwq/WebCoreBridge.mm:
3617         (-[WebCoreBridge pasteImageWithURL:]): new
3618
3619 2004-02-16  Darin Adler  <darin@apple.com>
3620
3621         Reviewed by Ken.
3622
3623         - Fixed some dynamic casts that Dirk complained about to use virtual functions instead.
3624           Since the virtual functions were already there, this is faster and better in most
3625           ways anyway.
3626
3627         * khtml/dom/dom2_events.cpp:
3628         (UIEvent::keyCode): Use virtual function instead of dynamic_cast.
3629         (UIEvent::charCode): Ditto.
3630         (UIEvent::pageX): Ditto.
3631         (UIEvent::pageY): Ditto.
3632         (UIEvent::layerX): Ditto.
3633         (UIEvent::layerY): Ditto.
3634         (UIEvent::which): Ditto.
3635
3636 2004-02-15  Darin Adler  <darin@apple.com>
3637
3638         Reviewed by Dave.
3639
3640         * WebCore.pbproj/project.pbxproj: Tweak build styles a bit, fixing OptimizedWithSymbols,
3641         and removing redundant settings of things that match defaults in other build styles.
3642
3643 2004-02-15  Darin Adler  <darin@apple.com>
3644
3645         Reviewed by Dave.
3646
3647         - fixed 3548533: crash in XMLHttpRequest::slotData using Orkut's rating system
3648
3649         * khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::~XMLHttpRequest):
3650         Delete the QObject side, which has a side effect of disconnecting the
3651         signals which seem to be firing after the request is gone. There may be
3652         another way of addressing the crash by correcting some other problem with
3653         killing the job, but this demonstrably works and fixes a storage leak.
3654
3655 2004-02-12  Maciej Stachowiak  <mjs@apple.com>
3656
3657         Reviewed by John.
3658
3659         - redo visited link history checking for a 2% speed improvement
3660
3661         * kwq/KWQKHistoryProvider.mm:
3662         (KParts::HistoryProvider::contains): Don't make a KURL or an
3663         NSString. Punt on canonicalization and directly pass the internal
3664         Latin1 or unicode buffer.
3665         * kwq/KWQString.h:
3666         * kwq/KWQString.mm:
3667         (QString::hasFastLatin1): New method to check whether getting the
3668         latin1 buffer is fast (doesn't allocate).
3669         * kwq/WebCoreHistory.h: add new methods to look up by raw latin1
3670         or unicode buffer instead of NSString.
3671
3672 === Safari-128 ===
3673
3674 2004-02-12  David Hyatt  <hyatt@apple.com>
3675
3676         Fix for 3557850 and 3557607.  Make sure to setParent(0) on the body's link declaration, so that TreeShared
3677         will delete it.
3678         
3679         * khtml/html/html_baseimpl.cpp:
3680         (HTMLBodyElementImpl::~HTMLBodyElementImpl):
3681
3682 2004-02-12  Ken Kocienda  <kocienda@apple.com>
3683
3684         Reviewed by Hyatt
3685
3686         Refactored object design for edit commands into something that's
3687         starting to feel more solid. Added some accessors to edit 
3688         commands.
3689
3690         * WebCore.pbproj/project.pbxproj:
3691         * khtml/editing/htmlediting_impl.h: Added.
3692         * khtml/editing/htmlediting_impl.m: Added.
3693
3694 2004-02-11  David Hyatt  <hyatt@apple.com>
3695
3696         Fix for 3550005, 936 leaks when loading checkbox page of pain.  Make sure to nuke the inline box
3697         wrapper when detaching the RenderWidget.
3698
3699         * khtml/rendering/render_replaced.cpp:
3700         (RenderWidget::detach):
3701
3702 2004-02-11  David Hyatt  <hyatt@apple.com>
3703
3704         Add some more polish to ensure the ypos estimate is right.  Correct the clearing of images so that
3705         their top margins do not get added in when they clear the float because of having a large width.
3706         
3707         Reviewed by kocienda
3708
3709         * khtml/rendering/render_block.cpp:
3710         (khtml::RenderBlock::layoutBlockChildren):
3711         * layout-tests/fast/block/margin-collapse/101-expected.txt: Added.
3712         * layout-tests/fast/block/margin-collapse/101.html: Added.
3713         * layout-tests/fast/block/margin-collapse/102-expected.txt: Added.
3714         * layout-tests/fast/block/margin-collapse/102.html: Added.
3715
3716 2004-02-11  David Hyatt  <hyatt@apple.com>
3717
3718         Fix for 3556702, margin collapsing gets disabled when images spill out of the containing block.
3719         
3720         Reviewed by kocienda
3721
3722         * khtml/rendering/render_block.cpp:
3723         (khtml::RenderBlock::layoutBlockChildren):
3724
3725 2004-02-11  David Hyatt  <hyatt@apple.com>
3726
3727         Fix the .rows and .cells arrays on tables by merging with the KHTML trunk.  TH was being included
3728         as a row instead of as a cell.
3729         
3730         Reviewed by kocienda
3731
3732         * khtml/html/html_miscimpl.cpp:
3733         (HTMLCollectionImpl::calcLength):
3734         (HTMLCollectionImpl::getItem):
3735         (HTMLCollectionImpl::getNamedItem):
3736
3737 2004-02-11  David Hyatt  <hyatt@apple.com>
3738
3739         Remove my bogus refs of the elementSheet.  Fixes 3554213 and 3555467.
3740         
3741         * khtml/html/html_baseimpl.cpp:
3742         (HTMLBodyElementImpl::createLinkDecl):
3743         * khtml/html/html_tableimpl.cpp:
3744         (HTMLTableElementImpl::additionalAttributeStyleDecl):
3745         (HTMLTableElementImpl::getSharedCellDecl):
3746
3747 2004-02-11  David Hyatt  <hyatt@apple.com>
3748
3749         Fix for 3556037, regression where display:block generated content didn't work.
3750         
3751         Reviewed by kocienda
3752
3753         * khtml/rendering/render_block.cpp:
3754         (khtml::RenderBlock::setStyle):
3755         (khtml::RenderBlock::addChildToFlow):
3756         (khtml::RenderBlock::removeChild):
3757         (khtml::RenderBlock::renderName):
3758         * khtml/rendering/render_container.cpp:
3759         (RenderContainer::insertChildNode):
3760         (RenderContainer::removeLeftoverAnonymousBoxes):
3761         * khtml/rendering/render_inline.cpp:
3762         (RenderInline::splitFlow):
3763         (RenderInline::renderName):
3764         * khtml/rendering/render_list.cpp:
3765         (RenderListItem::updateMarkerLocation):
3766         * khtml/rendering/render_object.h:
3767         (khtml::RenderObject::isAnonymousBlock):
3768         * layout-tests/css1/pseudo/firstletter-expected.txt:
3769         * layout-tests/css1/pseudo/multiple_pseudo_elements-expected.txt:
3770         * layout-tests/fast/css-generated-content/002-expected.txt:
3771         * layout-tests/fast/css-generated-content/004-expected.txt:
3772         * layout-tests/fast/css-generated-content/005-expected.txt:
3773         * layout-tests/fast/css-generated-content/006-expected.txt:
3774         * layout-tests/fast/css-generated-content/007-expected.txt:
3775         * layout-tests/fast/css-generated-content/009-expected.txt:
3776         * layout-tests/fast/css-generated-content/010-expected.txt:
3777         * layout-tests/fast/selectors/039-expected.txt:
3778         * layout-tests/fast/selectors/039b-expected.txt:
3779         * layout-tests/fast/selectors/041-expected.txt:
3780         * layout-tests/fast/selectors/042-expected.txt:
3781         * layout-tests/fast/selectors/166a-expected.txt:
3782         * layout-tests/fast/selectors/168-expected.txt:
3783         * layout-tests/fast/selectors/168a-expected.txt:
3784         * layout-tests/fast/selectors/169-expected.txt:
3785         * layout-tests/fast/selectors/169a-expected.txt:
3786         * layout-tests/fast/text/firstline/002-expected.txt:
3787         * layout-tests/fast/text/firstline/003-expected.txt:
3788
3789 2004-02-11  Darin Adler   <darin@apple.com>
3790
3791         Reviewed by Richard.
3792
3793         * kwq/KWQTextCodec.mm:
3794         (KWQTextDecoder::convertLatin1):
3795         Fix off by one error.
3796
3797 2004-02-11  David Hyatt  <hyatt@apple.com>
3798
3799         Convert paint methods over to use a new PaintInfo struct.  Eliminate the paintObject method.
3800         
3801         Reviewed by kocienda
3802
3803         * khtml/rendering/render_block.cpp:
3804         (khtml::RenderBlock::paint):
3805         (khtml::RenderBlock::paintObject):
3806         (khtml::RenderBlock::paintFloats):
3807         * khtml/rendering/render_block.h:
3808         * khtml/rendering/render_box.cpp:
3809         (RenderBox::paint):
3810         (RenderBox::paintRootBoxDecorations):
3811         (RenderBox::paintBoxDecorations):
3812         * khtml/rendering/render_box.h:
3813         * khtml/rendering/render_br.h:
3814         (khtml::RenderBR::paint):
3815         * khtml/rendering/render_canvas.cpp:
3816         (RenderCanvas::paint):
3817         (RenderCanvas::paintBoxDecorations):
3818         * khtml/rendering/render_canvas.h:
3819         * khtml/rendering/render_flow.cpp:
3820         (RenderFlow::paintLineBoxBackgroundBorder):
3821         (RenderFlow::paintLineBoxDecorations):
3822         * khtml/rendering/render_flow.h:
3823         * khtml/rendering/render_form.cpp:
3824         (RenderFieldset::paintBoxDecorations):
3825         * khtml/rendering/render_form.h:
3826         * khtml/rendering/render_image.cpp:
3827         (RenderImage::paint):
3828         (RenderImage::updateFromElement):
3829         * khtml/rendering/render_image.h:
3830         * khtml/rendering/render_inline.cpp:
3831         (RenderInline::paint):
3832         * khtml/rendering/render_inline.h:
3833         * khtml/rendering/render_layer.cpp:
3834         (RenderLayer::paintLayer):
3835         * khtml/rendering/render_line.cpp:
3836         (InlineFlowBox::paintBackgroundAndBorder):
3837         (InlineFlowBox::paintDecorations):
3838         * khtml/rendering/render_line.h:
3839         (khtml::InlineRunBox::paintBackgroundAndBorder):
3840         (khtml::InlineRunBox::paintDecorations):
3841         * khtml/rendering/render_list.cpp:
3842         (RenderListItem::paint):
3843         (RenderListMarker::paint):
3844         * khtml/rendering/render_list.h:
3845         * khtml/rendering/render_object.cpp:
3846         (RenderObject::paint):
3847         * khtml/rendering/render_object.h:
3848         (khtml::RenderObject::PaintInfo::PaintInfo):
3849         (khtml::RenderObject::paintBoxDecorations):
3850         * khtml/rendering/render_replaced.cpp:
3851         (RenderReplaced::shouldPaint):
3852         (RenderWidget::paint):
3853         * khtml/rendering/render_replaced.h:
3854         * khtml/rendering/render_table.cpp:
3855         (RenderTable::paint):
3856         (RenderTable::paintBoxDecorations):
3857         (RenderTableSection::paint):
3858         (RenderTableCell::paint):
3859         (RenderTableCell::paintBoxDecorations):
3860         * khtml/rendering/render_table.h:
3861         * khtml/rendering/render_text.cpp:
3862         (RenderText::paint):
3863         * khtml/rendering/render_text.h:
3864
3865 2004-02-11  Ken Kocienda  <kocienda@apple.com>
3866
3867         Reviewed by me
3868
3869                 Removed include file I was considering checking, but 
3870                 decided against. Of course, this dangling include
3871                 broke the build.
3872                 
3873         * kwq/KWQKHTMLPart.mm
3874         * kwq/WebCoreBridge.mm
3875
3876 2004-02-10  Ken Kocienda  <kocienda@apple.com>
3877
3878         Reviewed by Hyatt
3879         
3880         Several big changes.
3881         
3882         EditSteps are now all EditCommands.
3883         Smart pointer for Shared classes added to shared.h.
3884                 Some events, like text input events, are now coalesced.
3885                 "Undo typing" now implemented, even though the name is not in the menu yet.
3886                 Integer id's added to EditCommand and its subclasses.
3887                 A bunch of cleanup in the EditCommand classes.
3888
3889         * khtml/editing/htmlediting.cpp:
3890         (EditCommand::EditCommand):
3891         (EditCommand::~EditCommand):
3892         (EditCommand::commandID):
3893         (EditCommand::reapply):
3894         (EditCommand::beginApply):
3895         (EditCommand::endApply):
3896         (EditCommand::beginUnapply):
3897         (EditCommand::endUnapply):
3898         (EditCommand::beginReapply):
3899         (EditCommand::endReapply):
3900         (EditCommand::currentSelection):
3901         (EditCommand::coalesce):
3902         (EditCommand::groupForUndo):
3903         (EditCommand::groupForRedo):
3904         (EditCommand::moveToStartingSelection):
3905         (EditCommand::moveToEndingSelection):
3906         (EditCommand::name):
3907         (CompositeEditCommand::CompositeEditCommand):
3908         (CompositeEditCommand::~CompositeEditCommand):
3909         (CompositeEditCommand::unapply):
3910         (CompositeEditCommand::reapply):
3911         (CompositeEditCommand::applyCommand):
3912         (CompositeEditCommand::insertNodeBefore):
3913         (CompositeEditCommand::insertNodeAfter):
3914         (CompositeEditCommand::appendNode):
3915         (CompositeEditCommand::removeNode):
3916         (CompositeEditCommand::splitTextNode):
3917         (CompositeEditCommand::joinTextNodes):
3918         (CompositeEditCommand::insertText):
3919         (CompositeEditCommand::deleteText):
3920         (CompositeEditCommand::moveSelectionTo):
3921         (CompositeEditCommand::deleteSelection):
3922         (InsertNodeBeforeCommand::InsertNodeBeforeCommand):
3923         (InsertNodeBeforeCommand::~InsertNodeBeforeCommand):
3924         (InsertNodeBeforeCommand::apply):
3925         (InsertNodeBeforeCommand::unapply):
3926         (AppendNodeCommand::AppendNodeCommand):
3927         (AppendNodeCommand::~AppendNodeCommand):
3928         (AppendNodeCommand::apply):
3929         (AppendNodeCommand::unapply):
3930         (RemoveNodeCommand::RemoveNodeCommand):
3931         (RemoveNodeCommand::~RemoveNodeCommand):
3932         (RemoveNodeCommand::apply):
3933         (RemoveNodeCommand::unapply):
3934         (ModifyTextNodeCommand::ModifyTextNodeCommand):
3935         (ModifyTextNodeCommand::~ModifyTextNodeCommand):
3936         (ModifyTextNodeCommand::splitTextNode):
3937         (ModifyTextNodeCommand::joinTextNodes):
3938         (SplitTextNodeCommand::SplitTextNodeCommand):
3939         (SplitTextNodeCommand::~SplitTextNodeCommand):
3940         (SplitTextNodeCommand::apply):
3941         (SplitTextNodeCommand::unapply):
3942         (JoinTextNodesCommand::JoinTextNodesCommand):
3943         (JoinTextNodesCommand::~JoinTextNodesCommand):
3944         (JoinTextNodesCommand::apply):
3945         (JoinTextNodesCommand::unapply):
3946         (InsertTextCommand::InsertTextCommand):
3947         (InsertTextCommand::~InsertTextCommand):
3948         (InsertTextCommand::apply):
3949         (InsertTextCommand::unapply):
3950         (DeleteTextCommand::DeleteTextCommand):
3951         (DeleteTextCommand::~DeleteTextCommand):
3952         (DeleteTextCommand::apply):
3953         (DeleteTextCommand::unapply):
3954         (MoveSelectionToCommand::MoveSelectionToCommand):
3955         (MoveSelectionToCommand::~MoveSelectionToCommand):
3956         (MoveSelectionToCommand::commandID):
3957         (MoveSelectionToCommand::apply):
3958         (MoveSelectionToCommand::unapply):
3959         (DeleteSelectionCommand::DeleteSelectionCommand):
3960         (DeleteSelectionCommand::~DeleteSelectionCommand):
3961         (DeleteSelectionCommand::apply):
3962         (InputTextCommand::InputTextCommand):
3963         (InputTextCommand::~InputTextCommand):
3964         (InputTextCommand::commandID):
3965         (InputTextCommand::isLineBreak):
3966         (InputTextCommand::isSpace):
3967         (InputTextCommand::apply):
3968         (InputTextCommand::coalesce):