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