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