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