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