d9dd3836ca08f2bd6d860e3a6ac5eb3fcfbaeb27
[WebKit-https.git] / WebCore / ChangeLog-2005-12-19
1 2005-11-03  Timothy Hatcher  <timothy@apple.com>
2
3         Reviewed by Darin and Vicki.
4
5         * WebCore.xcodeproj/project.pbxproj:
6           Change to use $(SYSTEM_LIBRARY_DIR) consistently and place
7           $(NEXT_ROOT) in a few spots to make build-root work.
8
9 2005-11-03  David Hyatt  <hyatt@apple.com>
10
11         Cleanup of bidi.cpp.  This is bug 5532.  I merged it nearly as is, although I
12         did one additional rename of my own (BidiIterator's "par" -> "block") and
13         I did not merge the * changes, since that particular style guideline is 
14         "in dispute." :)
15         
16         Reviewed by darin
17
18         * khtml/rendering/bidi.cpp:
19         (khtml::BidiIterator::BidiIterator):
20         (khtml::BidiIterator::pos):
21         (khtml::BidiState::BidiState):
22         (khtml::getBPMWidth):
23         (khtml::BidiContext::BidiContext):
24         (khtml::BidiContext::~BidiContext):
25         (khtml::BidiContext::deref):
26         (khtml::operator==):
27         (khtml::operator!=):
28         (khtml::bidiNext):
29         (khtml::bidiFirst):
30         (khtml::BidiIterator::increment):
31         (khtml::BidiIterator::atEnd):
32         (khtml::BidiIterator::current):
33         (khtml::chopMidpointsAt):
34         (khtml::checkMidpoints):
35         (khtml::appendRunsForObject):
36         (khtml::appendRun):
37         (khtml::embed):
38         (khtml::RenderBlock::constructLine):
39         (khtml::RenderBlock::tabWidth):
40         (khtml::RenderBlock::computeHorizontalPositionsForLine):
41         (khtml::RenderBlock::bidiReorderLine):
42         (khtml::buildCompactRuns):
43         (khtml::RenderBlock::layoutInlineChildren):
44         (khtml::RenderBlock::determineStartPosition):
45         (khtml::RenderBlock::skipWhitespace):
46         (khtml::RenderBlock::findNextLineBreak):
47
48 2005-11-03  David Hyatt  <hyatt@apple.com>
49
50         Make pre-wrap collapse away spaces at the start of a line.  There are
51         still several bugs, namely with overflow and with selection.  This is bugzilla
52         bug 5593.
53         
54         Reviewed by adele
55
56         fast/text/whitespace/pre-wrap.html
57
58         * khtml/rendering/bidi.cpp:
59         (khtml::skipNonBreakingSpace):
60         (khtml::shouldCollapseWhiteSpace):
61         (khtml::RenderBlock::skipWhitespace):
62         * khtml/rendering/render_block.h:
63
64 2005-11-03  Adele Peterson  <adele@apple.com>
65
66         Reviewed by Darin.
67
68         * khtml/rendering/render_layer.cpp:
69         (khtml::): Made global ScrollAlignment members const
70         (khtml::RenderLayer::scrollRectToVisible): Changed ScrollAlignment parameters to const ScrollAlignment&
71         (khtml::RenderLayer::getRectToExpose): ditto.
72         * khtml/rendering/render_layer.h:
73         (khtml::RenderLayer::): removed typedefs
74         (khtml::RenderLayer::getVisibleBehavior): Made this static.
75         (khtml::RenderLayer::getPartialBehavior): ditto.
76         (khtml::RenderLayer::getHiddenBehavior): ditto.
77
78 2005-11-03  Adele Peterson  <adele@apple.com>
79
80         Reviewed by Hyatt.
81
82         Clean up of layer scrolling code.  Now we can clearly define what to do if a rectangle is fully visible, partially visible, or hidden.
83         This also fixes a bug with the previous implementation where nested layers/frames would get passed a rect that was too large.
84
85         Added fast/overflow/scrollRevealButton.html
86
87         * khtml/rendering/render_layer.h: (khtml::RenderLayer::): 
88         Added ScrollBehavior enum, ScrollAlignment struct, and ScrollAlignment static members
89         to describe specific scrolling behaviors depending on how visible the rectangle is.
90         In the future, we can add other statics to easily describe desired behaviors.
91         * khtml/rendering/render_layer.cpp:
92         (khtml::): initialize ScrollAlignment static members: 
93         alignCenterIfNeeded, alignToEdgeIfNeeded, alignCenterAlways, alignTopAlways, alignBottomAlways
94         (khtml::RenderLayer::scrollRectToVisible):
95         alignCenterIfNeeded is the default behavior for both directions.
96         Pass the original rect (adjusted if scrolling has occurred) when recursively calling this function.
97         (khtml::RenderLayer::getRectToExpose): Adjusted for new ScrollAlignment parameters.
98         * khtml/khtml_part.cpp:
99         (KHTMLPart::gotoAnchor): Use the node's rect to determine where to scroll.  
100         We used to just use the origin, but this helps us match other browsers better.
101         (KHTMLPart::setActiveNode): Removed scrolling code, since this is now also done in setFocusNode
102         * khtml/xml/dom_elementimpl.cpp: (ElementImpl::scrollIntoView): Use new ScrollAlignment values to describe scrolling behavior.
103         * kwq/KWQKHTMLPart.mm:
104         (KWQKHTMLPart::nextKeyViewInFrame): Removed scrolling code, since this is now also done in setFocusNode
105         (KWQKHTMLPart::centerSelectionInVisibleArea): Use new ScrollAlignment values to describe scrolling behavior.
106         * kwq/WebCoreBridge.mm: (-[WebCoreBridge ensureSelectionVisible]): ditto.
107         * kwq/KWQScrollView.h: Removed ensureRectVisible, since we no longer use this.
108         * kwq/KWQScrollView.mm: ditto.
109         * khtml/khtmlview.cpp:
110         (KHTMLView::doAutoScroll): Removed unnecessary nil checks for enclosingLayer
111         (KHTMLView::focusNextPrevNode): ditto.
112
113 2005-11-02  David Harrison  <harrison@apple.com>
114
115         Reviewed by Justin.
116
117         Tests added in editing/inserting.
118         
119         <rdar://problem/4017861> in reply, extra line is inserted after pressing return on blank quoted line
120         Also, did some minor cleanup.
121
122         * khtml/editing/break_blockquote_command.cpp:
123         (khtml::BreakBlockquoteCommand::BreakBlockquoteCommand):
124         (khtml::BreakBlockquoteCommand::doApply):
125         Make sure not to clone parent of skipped BR unless there are siblings to move over.
126         * khtml/editing/break_blockquote_command.h:
127         * khtml/editing/jsediting.cpp:
128
129 2005-11-02  Vicki Murley  <vicki@apple.com>
130
131         Reviewed by Darin.
132  
133         - fix <rdar://problem/4303587> REGRESSION (TOT): Scrollwheel doesn't work on frameset pages (5450)
134
135         * kwq/KWQKHTMLPart.h:
136         * kwq/KWQKHTMLPart.mm:
137         (KWQKHTMLPart::wheelEvent): set _currentEvent to the wheel event
138         (KWQKHTMLPart::passWheelEventToChildWidget): New.  Pass the event to the child widget, if we
139         haven't already handled the event
140         * khtml/khtmlview.cpp:
141         (KHTMLView::viewportWheelEvent): add passWheelEventToChildWidget check, and accept the event if
142         we're passing to the child widget
143
144 2005-11-02  David Hyatt  <hyatt@apple.com>
145
146         Fix for 5587, implement pre-wrap and pre-line white-space values.
147         
148         Reviewed by mjs
149
150         Tests Added in fast/text/whitespace
151         
152         * khtml/css/css_computedstyle.cpp:
153         (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
154         * khtml/css/cssparser.cpp:
155         (CSSParser::parseValue):
156         * khtml/css/cssstyleselector.cpp:
157         (khtml::CSSStyleSelector::applyProperty):
158         * khtml/css/cssvalues.in:
159         * khtml/css/html4.css:
160         * khtml/ecma/kjs_html.cpp:
161         (KJS::HTMLElement::preGetter):
162         (KJS::HTMLElement::preSetter):
163         * khtml/ecma/kjs_html.h:
164         (KJS::HTMLElement::):
165         * khtml/editing/visible_text.cpp:
166         (khtml::TextIterator::handleTextNode):
167         * khtml/editing/visible_units.cpp:
168         (khtml::startOfParagraph):
169         (khtml::endOfParagraph):
170         * khtml/html/html_blockimpl.cpp:
171         (HTMLPreElementImpl::mapToEntry):
172         (HTMLPreElementImpl::parseMappedAttribute):
173         (HTMLPreElementImpl::wrap):
174         (HTMLPreElementImpl::setWrap):
175         * khtml/html/html_blockimpl.h:
176         * khtml/rendering/bidi.cpp:
177         (khtml::checkMidpoints):
178         (khtml::RenderBlock::computeHorizontalPositionsForLine):
179         (khtml::RenderBlock::layoutInlineChildren):
180         (khtml::RenderBlock::skipNonBreakingSpace):
181         (khtml::RenderBlock::skipWhitespace):
182         (khtml::RenderBlock::findNextLineBreak):
183         * khtml/rendering/render_block.cpp:
184         (khtml:::RenderFlow):
185         (khtml::RenderBlock::setStyle):
186         (khtml::RenderBlock::calcMinMaxWidth):
187         (khtml::stripTrailingSpace):
188         (khtml::RenderBlock::calcInlineMinMaxWidth):
189         (khtml::RenderBlock::dump):
190         * khtml/rendering/render_block.h:
191         * khtml/rendering/render_layer.h:
192         (khtml::):
193         * khtml/rendering/render_line.cpp:
194         (khtml::shouldDrawDecoration):
195         * khtml/rendering/render_object.cpp:
196         (RenderObject::tabWidth):
197         * khtml/rendering/render_style.h:
198         (khtml::):
199         (khtml::RenderStyle::autoWrap):
200         (khtml::RenderStyle::preserveNewline):
201         (khtml::RenderStyle::collapseWhiteSpace):
202         (khtml::RenderStyle::isCollapsibleWhiteSpace):
203         (khtml::RenderStyle::breakOnlyAfterWhiteSpace):
204         * khtml/rendering/render_table.cpp:
205         (RenderTableCell::calcMinMaxWidth):
206         * khtml/rendering/render_text.cpp:
207         (RenderText::caretRect):
208         (RenderText::trimmedMinMaxWidth):
209         (RenderText::calcMinMaxWidth):
210         (RenderText::width):
211         * khtml/xml/dom_elementimpl.h:
212         (DOM::):
213         * khtml/xml/dom_textimpl.cpp:
214         (TextImpl::rendererIsNeeded):
215         * kwq/KWQKHTMLPart.mm:
216         (KWQKHTMLPart::attributedString):
217
218 2005-11-01  David Hyatt  <hyatt@apple.com>
219
220         Fix for bug 5580, slashdot regression with percentage height
221         blocks.
222         
223         Reviewed by darin
224
225         Added fast/block/basic/021.html
226         
227         * khtml/rendering/render_box.cpp:
228         (RenderBox::calcPercentageHeight):
229
230 2005-11-01  Justin Garcia  <justin.garcia@apple.com>
231
232         Reviewed by harrison
233         
234         Tweaked my previous fix for caret movement while scrolling.
235
236         * khtml/editing/SelectionController.cpp:
237         (khtml::SelectionController::SelectionController): Forgot to copy m_caretPositionOnLayout.
238         (khtml::SelectionController::operator=): Ditto.
239         (khtml::SelectionController::layout): Initialize m_caretPositionOnLayout to a dummy value when the selection isNone.
240         * khtml/editing/SelectionController.h: Tweaked my comment.
241
242 2005-11-01  Justin Garcia  <justin.garcia@apple.com>
243
244         Reviewed by darin
245         
246         Fixes <rdar://problem/4074536> Seed: Mail crash adjusting quote level - KHTMLPart::computeAndSetTypingStyle
247         
248         No test cases added, requires Mail
249
250         * kwq/WebCoreBridge.mm:
251         (-[WebCoreBridge typingStyle]):
252         Crashes were happening after a style was merged with itself.  Mail was doing a setTypingStyle
253         with a pointer to our internal typing style.  Fix is to only hand out copies of our typingStyle.
254
255 2005-11-01  Justin Garcia  <justin.garcia@apple.com>
256
257         Reviewed by harrison
258         
259         Fixed <rdar://problem/3690705> caret does not move when scrolling overflow: auto editable area
260
261         * manual-tests/caretScrolling.html: Added.
262
263         * khtml/editing/SelectionController.cpp:
264         (khtml::SelectionController::SelectionController): Removed the unused expectedVisibleRect
265         (khtml::SelectionController::operator=): Ditto.
266         (khtml::SelectionController::layout): Save the caret's absolute position on layout.
267         (khtml::SelectionController::caretRect): Adjust the returned caret rect for offset due to scrolling since the last layout.
268         (khtml::SelectionController::paintCaret):
269         * khtml/editing/SelectionController.h:
270         * kwq/KWQKHTMLPart.mm:
271         (KWQKHTMLPart::nextKeyViewInFrame): Small tweak to a previous change.
272         * kwq/KWQRect.h:
273         (QRect::moveTopLeft): Added.
274
275 2005-11-01  Mitz Pettel  <opendarwin.org@mitzpettel.com>
276
277         Reviewed by Dave Hyatt.
278         Commited by Tim Hatcher.
279
280         Fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=5256
281         Relayout during load causes duplicate plugin part.
282
283         This was a problem with <OBJECT>s that contain an <EMBED>, if 
284         layout happened in the middle of the OBJECT but before the EMBED.
285
286         No test case added, requires manual testing. 
287
288         * khtml/html/html_objectimpl.cpp:
289         (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl):
290         (DOM::HTMLObjectElementImpl::closeRenderer):
291         (DOM::HTMLObjectElementImpl::setComplete):
292         * khtml/html/html_objectimpl.h:
293         (DOM::HTMLObjectElementImpl::isComplete):
294         * khtml/html/htmlfactory.cpp:
295         (DOM::objectConstructor):
296         * khtml/rendering/render_frames.cpp:
297         (RenderPartObject::updateWidget):
298
299 2005-11-01  Alexey Proskuryakov  <ap@nypop.com>
300
301         Reviewed by Dave Hyatt.
302         Commited by Tim Hatcher.
303
304         Fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=5541
305
306         HTMLNames constants are not yet initialized at Safari startup,
307         when bookmarks are imported, which caused a crash in Decoder::decode().
308
309         * kwq/WebCoreEncodings.mm:
310         (+[WebCoreEncodings decodeData:]):
311
312 2005-11-01  John Sullivan  <sullivan@apple.com>
313
314         Change by Alexey Proskuryakov, reviewed by Darin Adler.
315
316         * kwq/KWQKURL.mm:
317         (encodeRelativeString):
318         switched to use fastStrdup(), we can't use strdup because we
319         need to use fastFree(), not regular free()
320
321 2005-11-01  Anders Carlsson  <andersca@mac.com>
322
323         Reviewed by Darin.
324
325         * khtml/ecma/kjs_dom.cpp:
326         (KJS::DOMNode::getValueProperty):
327         (KJS::DOMNode::putValueProperty):
328         * khtml/ecma/kjs_dom.h:
329         (KJS::DOMNode::):
330         Add setter and setter for textContent.
331         
332         * khtml/xml/dom_nodeimpl.cpp:
333         (DOM::NodeImpl::textContent):
334         (DOM::NodeImpl::setTextContent):
335         * khtml/xml/dom_nodeimpl.h:
336         Implement textContent and setTextContent.
337         
338         * kwq/DOM.mm:
339         (-[DOMNode textContent]):
340         (-[DOMNode setTextContent:]):
341         Add Objective C wrappers.
342
343 2005-10-31  Eric Seidel  <eseidel@apple.com>
344
345         Reviewed by hyatt.
346
347         Now ignores XSLT PIs in documents resulting from transforms.
348         http://bugzilla.opendarwin.org/show_bug.cgi?id=5529
349
350         * khtml/xml/dom_docimpl.cpp:
351         (DocumentImpl::recalcStyleSelector):
352         * khtml/xml/xml_tokenizer.cpp:
353         (khtml::XMLTokenizer::processingInstruction):
354
355 2005-10-31  David Harrison  <harrison@apple.com>
356
357         Remove conditionalized away code added as part of tab character support.
358         
359         * khtml/editing/insert_text_command.cpp:
360         (khtml::InsertTextCommand::prepareForTextInsertion):
361         (khtml::InsertTextCommand::insertTab):
362         * khtml/editing/markup.cpp:
363         (khtml::createParagraphContentsFromString):
364
365 2005-10-29  David Hyatt  <hyatt@apple.com>
366         Fix the performance regression caused by doing too much copying of background/border values.  This patch attempts to rectify things by doing the following:
367
368         (1) Don't initialize the border/background cached values on every single style resolution.
369         (2) Only cache the border/background values just after user agent styles have been resolved if the user agent set an appearance.
370         (3) Only check for appearance disabling if you had a UA appearance originally (and then continue to have an appearance after author/user styles have been resolved too)
371         (4) Make sure to patch the pseudoStyleForElement method too.  With the removal of the initialization code for the values running over and over again, I needed to make sure to patch this function to match styleForElement.
372         
373         Reviewed by sullivan
374
375         * khtml/css/cssstyleselector.cpp:
376         (khtml::CSSStyleSelector::initForStyleResolve):
377         (khtml::CSSStyleSelector::styleForElement):
378         (khtml::CSSStyleSelector::pseudoStyleForElement):
379         (khtml::CSSStyleSelector::adjustRenderStyle):
380         * khtml/css/cssstyleselector.h:
381
382 2005-10-28  Beth Dakin  <bdakin@apple.com>
383
384         Reviewed by John
385
386         Fix for <rdar://problem/4098083> REGRESSION (125-312): crash 
387         in [KWQTableView resignFirstResponder] selecting from JS menu 
388         (car4you.at, etc.)
389
390         Since it is possible that a render widget's eventFilterObject
391         has been destroyed even though the render widget is still ref-ed,
392         we need to nil-check the eventFilterObject before we use it to get
393         the eventFilter.
394
395         * kwq/KWQComboBox.mm:
396         (-[KWQPopUpButton becomeFirstResponder]): Added nil check.
397         (-[KWQPopUpButton resignFirstResponder]): Added nil check.
398         * kwq/KWQListBox.mm:
399         (-[KWQTableView becomeFirstResponder]): Added nil check.
400         (-[KWQTableView resignFirstResponder]): Added nil check.
401         * kwq/KWQTextArea.mm:
402         (-[KWQTextAreaTextView becomeFirstResponder]): Added nil check.
403         (-[KWQTextAreaTextView resignFirstResponder]): Added nil check.
404         * kwq/KWQTextField.mm:
405         (-[KWQTextFieldController setHasFocus:]): Added nil check.
406         * kwq/WebCoreBridge.mm:
407         (-[WebCoreBridge elementForView:]): Added nil check.
408
409 2005-10-28  Adele Peterson  <adele@apple.com>
410
411         Reviewed by Beth.
412
413         - fixed <rdar://problem/4319232> finding text in overflow area doesn't always scroll to the right place
414
415         * khtml/rendering/render_text.cpp:
416         (RenderText::selectionRect): Subtracts scroll offset of containing block layer.
417
418 2005-10-28  David Hyatt  <hyatt@apple.com>
419
420         Make sure positioned content works with width:intrinsic.  Fixes positioned buttons.  The bug
421         is bugzilla #5520.
422         
423         Reviewed by mjs
424
425         fast/forms/positioned-button.html
426
427         * khtml/rendering/render_box.cpp:
428         (RenderBox::calcAbsoluteHorizontalValues):
429
430 2005-10-28  Adele Peterson  <adele@apple.com>
431
432         Reviewed by Hyatt.
433
434         -fixed <rdar://problem/4081091> focus() does not work properly on anchors
435         <rdar://problem/4317689> new form elements don't get revealed when focus() is called on them
436
437         * khtml/xml/dom_docimpl.cpp:
438         (DocumentImpl::setFocusNode): call scrollRectToVisible.
439
440 2005-10-27  David Hyatt  <hyatt@apple.com>
441
442         Fix for bug 5519, buttons need to honor background/border: none and turn off styles.
443         This patch changes the default style rules so that buttons have both a border and
444         a background color.
445
446         If the author changes the border/background so that it no longer matches these chosen
447         defaults, we assume that the button has now been styled and we turn off the Aqua
448         appearance.
449
450         We also play more games with border and padding and juggle the values around so that
451         things look right with Aqua turned on and off.
452         
453         Reviewed by mjs
454
455         * khtml/css/cssstyleselector.cpp:
456         (khtml::CSSStyleSelector::matchRules):
457         (khtml::CSSStyleSelector::initForStyleResolve):
458         (khtml::CSSStyleSelector::styleForElement):
459         (khtml::CSSStyleSelector::adjustRenderStyle):
460         (khtml::CSSStyleSelector::applyDeclarations):
461         * khtml/css/cssstyleselector.h:
462         * khtml/css/html4.css:
463         * khtml/rendering/render_style.h:
464         (khtml::BorderValue::BorderValue):
465         (khtml::BorderData::operator!=):
466         (khtml::RenderStyle::border):
467         * khtml/rendering/render_theme.cpp:
468         (khtml::RenderTheme::paint):
469         (khtml::RenderTheme::isControlStyled):
470         * khtml/rendering/render_theme.h:
471         * khtml/rendering/render_theme_mac.h:
472         * khtml/rendering/render_theme_mac.mm:
473         (khtml::RenderThemeMac::adjustButtonStyle):
474         (khtml::RenderThemeMac::setButtonCellState):
475         (khtml::RenderThemeMac::paintButton):
476
477 2005-10-26  Vicki Murley  <vicki@apple.com>
478
479         Reviewed by Hyatt.
480  
481         Fix problems with link jumping.  In the cases below, we were calculating the wrong position to scroll to.
482
483         <rdar://problem/4247537> link jumping should scroll to tallest object on line, not first object on line
484         <rdar://problem/3489554> when calculating position for link jumping, skip siblings that are unrendered whitespace
485         <rdar://problem/4244382> Safari - erratic behavior of empty anchor tags followed by whitespace
486         <rdar://problem/4256060> Link scrolling to last object on the page doesn't work if the link being scrolled to contains an empty inline
487         <rdar://problem/4276623> erratic link jumping when tables are involved
488
489         * khtml/xml/dom_nodeimpl.cpp:
490         (DOM::ContainerNodeImpl::getUpperLeftCorner):
491
492 2005-10-27  Eric Seidel  <eseidel@apple.com>
493
494         Build fix, forgot to commit project file.
495         Also need to make XSLT #ifdef's work for portability.
496         http://bugzilla.opendarwin.org/show_bug.cgi?id=3275
497
498         * WebCore.xcodeproj/project.pbxproj:
499         * khtml/ecma/XSLTProcessor.cpp:
500         * khtml/ecma/XSLTProcessor.h:
501         * khtml/ecma/kjs_window.cpp:
502         (KJS::Window::getValueProperty):
503
504 2005-10-27  Eric Seidel  <eseidel@apple.com>
505
506         No review needed, svg build fix only.
507
508         * kdom/xpointer/XPointerExpressionImpl.cpp: "Shared.h" to "kdom/Shared.h"
509
510 2005-10-27  David Harrison  <harrison@apple.com>
511
512         Reviewed by Justin Garcia and Dave Hyatt.
513
514         <rdar://problem/4134884> crash trying to forward msg - khtml::RenderBlock::addChildToFlow
515
516         Problem was that onunload events were being fired while in the middle of trying to detach, which resulted in updateDocumentsRendering re-attaching the previously detached nodes.  Similar problem with load events while attaching.
517         
518         Solved by eliminating load and unload for object nodes, pre-sending unload before detach, and sending dom mutation and load events after attaching.
519         
520         Also, added asserts to catch this problem more easily in the future.
521         
522         Added test:
523         * fast/events/event-targets.html
524         Make sure that load and unload events do not fire on certain objects.
525         
526         * khtml/ecma/kjs_html.cpp:
527         (KJS::Image::notifyFinished):
528         Use constant string for "load" event name.
529         * khtml/ecma/xmlhttprequest.cpp:
530         (KJS::XMLHttpRequest::changeState):
531         Use constant strings for "load" and "readystatechange" event names.
532         * khtml/html/html_baseimpl.cpp:
533         (HTMLFrameElementImpl::close):
534         (HTMLFrameElementImpl::willRemove):
535         (HTMLFrameElementImpl::detach):
536         Add willRemove() function.
537         * khtml/html/html_baseimpl.h:
538         Add willRemove() function.
539         * khtml/html/html_objectimpl.cpp:
540         (DOM::HTMLObjectElementImpl::attach):
541         (DOM::HTMLObjectElementImpl::detach):
542         Stop needlessly sending load and unload events for OBJECT elements.
543         * khtml/xml/dom2_traversalimpl.cpp:
544         (DOM::NodeIteratorImpl::notifyBeforeNodeRemoval):
545         Rename local variable from willRemove to removedNode for clarity.
546         * khtml/xml/dom_docimpl.cpp:
547         (DocumentImpl::DocumentImpl):
548         (DocumentImpl::forbidEventDispatch):
549         (DocumentImpl::allowEventDispatch):
550         (DocumentImpl::eventDispatchForbidden):
551         (DocumentImpl::createEvent):
552         Add mechanism to prevent event dispatch.
553         * khtml/xml/dom_docimpl.h:
554         * khtml/xml/dom_nodeimpl.cpp:
555         (DOM::NodeImpl::dispatchEvent):
556         (DOM::NodeImpl::dispatchGenericEvent):
557         (DOM::NodeImpl::dispatchHTMLEvent):
558         (DOM::NodeImpl::dispatchWindowEvent):
559         (DOM::NodeImpl::dispatchMouseEvent):
560         (DOM::NodeImpl::dispatchSimulatedMouseEvent):
561         (DOM::NodeImpl::dispatchUIEvent):
562         (DOM::NodeImpl::dispatchSubtreeModifiedEvent):
563         (DOM::NodeImpl::dispatchKeyEvent):
564         (DOM::NodeImpl::dispatchWheelEvent):
565         (DOM::NodeImpl::willRemove):
566         (DOM::ContainerNodeImpl::insertBefore):
567         (DOM::ContainerNodeImpl::replaceChild):
568         (DOM::ContainerNodeImpl::willRemove):
569         (DOM::ContainerNodeImpl::willRemoveChild):
570         (DOM::ContainerNodeImpl::removeChild):
571         (DOM::ContainerNodeImpl::removeChildren):
572         (DOM::ContainerNodeImpl::appendChild):
573         (DOM::ContainerNodeImpl::addChild):
574         (DOM::ContainerNodeImpl::dispatchChildInsertedEvents):
575         (DOM::ContainerNodeImpl::dispatchChildRemovalEvents):
576         Prevent event dispatch during DOM node removals and additions.
577         * khtml/xml/dom_nodeimpl.h:
578
579 2005-10-27  David Harrison  <harrison@apple.com>
580
581         Reviewed by Tim Omerick.
582
583         <rdar://problem/4251172> AX: Safari crashes on www.mozilla.org with Voice Over - khtml::RenderImage::imageMap
584
585         Test cases added: None.  Manual testing is way to awkward, and automated testing
586         is not possible.  See following bug...
587         <rdar://problem/4256882> Need automated testing support for accessibility APIs
588
589         * ChangeLog:
590         * khtml/rendering/render_image.cpp:
591         (RenderImage::RenderImage):
592         (RenderImage::imageMap):
593         (RenderImage::updateAltText):
594
595 2005-10-27  Eric Seidel  <eseidel@apple.com>
596
597         Reviewed by hyatt.
598
599         Add XSLTProcessor support to WebCore's JavaScript bindings.
600         <rdar://problem/3642402> add XSLTProcessor to WebCore's JavaScript support
601         http://bugzilla.opendarwin.org/show_bug.cgi?id=3275
602
603         * WebCore.xcodeproj/project.pbxproj:
604         * khtml/ecma/XSLTProcessor.cpp: Added.
605         (KJS::):
606         (KJS::XSLTProcessor::XSLTProcessor):
607         (KJS::XSLTProcessor::~XSLTProcessor):
608         (KJS::XSLTProcessorProtoFunc::callAsFunction):
609         * khtml/ecma/XSLTProcessor.h: Added.
610         (KJS::XSLTProcessor::classInfo):
611         (KJS::XSLTProcessor::):
612         (KJS::XSLTProcessor::impl):
613         (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
614         (KJS::XSLTProcessorConstructorImp::implementsConstruct):
615         (KJS::XSLTProcessorConstructorImp::construct):
616         * khtml/ecma/kjs_window.cpp:
617         (KJS::Window::getValueProperty):
618         * khtml/ecma/kjs_window.h:
619         (KJS::Window::):
620         * khtml/khtml_part.cpp:
621         (KHTMLPart::replaceDocImpl):
622         * khtml/xml/dom_docimpl.cpp:
623         (DocumentImpl::DocumentImpl):
624         (DocumentImpl::~DocumentImpl):
625         (DocumentImpl::applyXSLTransform):
626         * khtml/xml/dom_docimpl.h:
627         (DOM::DocumentImpl::transformSourceDocument):
628         (DOM::DocumentImpl::setTransformSourceDocument):
629         * khtml/xml/xml_tokenizer.cpp:
630         (khtml::xmlDocPtrForString):
631         (khtml::XMLTokenizer::setTransformSource):
632         * khtml/xml/xml_tokenizer.h:
633         * khtml/xsl/xslt_processorimpl.cpp:
634         (DOM::parseErrorFunc):
635         (DOM::stylesheetLoadFunc):
636         (DOM::setXSLTLoadCallBack):
637         (DOM::writeToQString):
638         (DOM::saveResultToString):
639         (DOM::transformTextStringToXHTMLDocumentString):
640         (DOM::xsltParamArrayFromQDict):
641         (DOM::freeXsltParamArray):
642         (DOM::XSLTProcessorImpl::createDocumentFromSource):
643         (DOM::createFragmentFromSource):
644         (DOM::xsltStylesheetPointer):
645         (DOM::xmlDocPtrFromNode):
646         (DOM::resultMIMEType):
647         (DOM::XSLTProcessorImpl::transformToString):
648         (DOM::XSLTProcessorImpl::transformToDocument):
649         (DOM::XSLTProcessorImpl::transformToFragment):
650         (DOM::XSLTProcessorImpl::setParameter):
651         (DOM::XSLTProcessorImpl::getParameter):
652         (DOM::XSLTProcessorImpl::removeParameter):
653         * khtml/xsl/xslt_processorimpl.h:
654         (DOM::XSLTProcessorImpl::XSLTProcessorImpl):
655         (DOM::XSLTProcessorImpl::setXSLStylesheet):
656         (DOM::XSLTProcessorImpl::importStylesheet):
657         (DOM::XSLTProcessorImpl::clearParameters):
658         (DOM::XSLTProcessorImpl::reset):
659         (DOM::XSLTProcessorImpl::xslStylesheet):
660
661 2005-10-27  Adele Peterson  <adele@apple.com>
662
663         Reviewed by Vicki.
664
665         Fixed bug that prevents overflow areas from scrolling to reveal anchor.
666         Part of <rdar://problem/3612121>.
667
668         * khtml/khtml_part.cpp: (KHTMLPart::gotoAnchor):  
669
670 2005-10-27  Adele Peterson  <adele@apple.com>
671
672         Reviewed by Vicki.
673
674         - fixed <rdar://problem/4318167> REGRESSION: content doesn't scroll far enough to the left after clicking links at aplacecalledcommon.co.uk
675
676         * khtml/rendering/render_layer.cpp: 
677         (khtml::RenderLayer::scrollRectToVisible): fixed a typo where verticalAlignment was being passed instead of horizontalAlignment.
678         * khtml/khtml_part.cpp: 
679         (KHTMLPart::gotoAnchor): specified alignLeft as horizontal alignment.
680
681 2005-10-27  David Hyatt  <hyatt@apple.com>
682
683         Fix form controls so that they can take advantage of
684         the style sharing optimization.  Special-case the "type"
685         attribute to accomplish this.
686
687         Also add checks for missing pseudo-classes that the sharing
688         code now needs to check once form controls start sharing
689         style.  These include enabled, checked and indeterminate.
690
691         Finally, :target should have been checked all along and was
692         broken by the original style sharing landing.  Add it to the list
693         of things checked as well.
694
695         It's impossible to write a :target test.  Other areas more than
696         covered by existing test cases.
697         
698         Reviewed by mjs
699
700         * khtml/css/cssstyleselector.cpp:
701         (khtml::CSSStyleSelector::canShareStyleWithElement):
702         (khtml::CSSStyleSelector::checkOneSelector):
703
704 2005-10-27  David Hyatt  <hyatt@apple.com>
705
706         Fix for bug 5517, percentage height relative block inside a percentage height absolute
707         block did not stretch properly to fill the absolute block.
708
709         Also fixing box-sizing bugs in percentage height calculations.  Recurrence in
710         calcPercentageHeight needed a content box adjustment.
711         
712         Reviewed by mjs
713
714         fast/block/positioning/062.html
715         fast/box-sizing/percentage-test.html
716         fast/box-sizing/panels-one.html
717         fast/box-sizing/panels-two.html
718
719         * khtml/rendering/render_box.cpp:
720         (RenderBox::calcPercentageHeight):
721
722 2005-10-27  Eric Seidel  <eseidel@apple.com>
723
724         No review, SVG build fix only.
725         Fixing fallout from <rdar://problem/4098450>.
726
727         * WebCore+SVG/xml_kdomtokenizer.cpp:
728         (KDOMTokenizer::write): now returns bool
729         (KDOMTokenizer::finish): error check
730
731 2005-10-26  Eric Seidel  <eseidel@apple.com>
732
733         Reviewed by mjs & darin.
734
735         Various fixes to createMarkup and toString code to properly
736         support serialization of XML.
737         http://bugzilla.opendarwin.org/show_bug.cgi?id=5404
738
739         * khtml/editing/markup.cpp:
740         (khtml::startMarkup):
741         (khtml::doesHTMLForbidEndTag):
742         (khtml::shouldSelfClose):
743         (khtml::endMarkup):
744         (khtml::markup):
745         (khtml::createFragmentFromMarkup):
746         (khtml::createMarkup):
747         * khtml/html/html_elementimpl.cpp:
748         (HTMLElementImpl::createContextualFragment):
749         (HTMLElementImpl::toString):
750         * khtml/html/htmltokenizer.cpp:
751         (khtml::parseHTMLDocumentFragment):
752         * khtml/html/htmltokenizer.h:
753         * khtml/xml/dom_xmlimpl.cpp:
754         (DOM::ProcessingInstructionImpl::ProcessingInstructionImpl):
755         (DOM::ProcessingInstructionImpl::~ProcessingInstructionImpl):
756         (DOM::ProcessingInstructionImpl::toString):
757         * khtml/xml/dom_xmlimpl.h:
758         (DOM::ProcessingInstructionImpl::sheet):
759         (DOM::ProcessingInstructionImpl::setStyleSheet):
760
761 2005-10-26  David Hyatt  <hyatt@apple.com>
762
763         Don't allow position:relative to apply to table sections.  Fixes the crash described in
764         Radar bug 4107882. (http://cityoflakeforest.com/cs/pw/cs_pw2a3.htm)
765         
766         Reviewed by bdakin
767
768         * khtml/css/cssstyleselector.cpp:
769         (khtml::CSSStyleSelector::adjustRenderStyle):
770         
771 2005-10-26  Adele Peterson  <adele@apple.com>
772
773         Reviewed by John.
774
775         Fixes a few problems with <rdar://problem/3612121> that I noticed with code inspection.
776
777         * khtml/rendering/render_layer.h: removed inline scrollToPoint
778         * khtml/rendering/render_layer.cpp: (khtml::RenderLayer::getRectToExpose):
779         * khtml/khtml_part.cpp: (KHTMLPart::gotoAnchor): Used to call scrollToPoint, now calls scrollRectToVisible
780         * kwq/KWQKHTMLPart.mm:
781         (KWQKHTMLPart::jumpToSelection): Now uses the enclosing layer of the selection start, instead of the outermost layer.
782         (KWQKHTMLPart::centerSelectionInVisibleArea): ditto.
783
784 2005-10-26  Anders Carlsson  <andersca@mac.com>
785
786         Reviewed by Maciej.
787
788         * khtml/ecma/kjs_dom.cpp:
789         (KJS::DOMNodeProtoFunc::callAsFunction):
790         * khtml/ecma/kjs_dom.h:
791         Add JS wrapper.
792         
793         (KJS::DOMNode::):
794         * khtml/xml/dom_nodeimpl.cpp:
795         (DOM::NodeImpl::isEqualNode):
796         * khtml/xml/dom_nodeimpl.h:
797         Implement isEqualNode.
798         
799         * kwq/DOM.mm:
800         (-[DOMNode isEqualNode:]):
801         Add Objective C wrapper.
802
803 2005-10-26  David Hyatt  <hyatt@apple.com>
804
805         Add support for the indeterminate boolean for placing checkboxes
806         into a mixed state.  This is a feature of WinIE.
807
808         Along with this feature, add support for the CSS3 :indeterminate
809         selector, although one wonders how this could be part of the selectors spec
810         when no DOM standard covers the ability to make a mixed checkbox
811         in the first place.
812
813         This implementation may seem like it's overlooking some things, but it's not.
814         Specifically "indeterminate" has no effect on form submission, it does not
815         get cleared by a form reset, and the pre/post reversal code for undoing clicks
816         only resets the state that changed in WinIE.  This is all bizarre behavior,
817         but this is a WinIE extension, so we're going to match.
818         
819         Reviewed by mjs
820
821         fast/forms/indeterminate.html
822
823         * khtml/css/css_base.cpp:
824         (CSSSelector::extractPseudoType):
825         * khtml/css/css_base.h:
826         (DOM::CSSSelector::):
827         * khtml/css/cssstyleselector.cpp:
828         (khtml::CSSStyleSelector::checkOneSelector):
829         * khtml/ecma/kjs_html.cpp:
830         (KJS::HTMLElement::inputGetter):
831         (KJS::HTMLElement::inputSetter):
832         * khtml/ecma/kjs_html.h:
833         (KJS::HTMLElement::):
834         * khtml/html/html_formimpl.cpp:
835         (DOM::HTMLInputElementImpl::init):
836         (DOM::HTMLInputElementImpl::setIndeterminate):
837         (DOM::HTMLInputElementImpl::preDispatchEventHandler):
838         (DOM::HTMLInputElementImpl::postDispatchEventHandler):
839         * khtml/html/html_formimpl.h:
840         (DOM::HTMLInputElementImpl::isIndeterminate):
841         (DOM::HTMLInputElementImpl::indeterminate):
842         * khtml/rendering/render_theme.cpp:
843         (khtml::RenderTheme::isIndeterminate):
844         * khtml/rendering/render_theme.h:
845         * khtml/rendering/render_theme_mac.mm:
846         (khtml::RenderThemeMac::updateCheckedState):
847         (khtml::RenderThemeMac::setCheckboxCellState):
848         * khtml/xml/dom_nodeimpl.h:
849         (DOM::NodeImpl::isIndeterminate):
850
851 2005-10-26  Maciej Stachowiak  <mjs@apple.com>
852
853         Re-landed fix for the following bug:
854
855         <rdar://problem/4302874> crash repeatedly reloading www.supermanhomepage.com (fixed in Denver, broken on TOT)
856         
857         * khtml/ecma/kjs_events.cpp:
858         (KJS::JSAbstractEventListener::handleEvent):
859
860 2005-10-25  Darin Adler  <darin@apple.com>
861
862         Reviewed by Eric.
863
864         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5315
865           need to set document type based on contents of <!DOCTYPE>
866           (fixes one layout test)
867
868         * khtml/html/html_documentimpl.cpp: (DOM::HTMLDocumentImpl::determineParseMode):
869         Use the new setDocType function instead of modifying m_doctype directly.
870
871         * khtml/xml/dom_docimpl.h: Changed to use SharedPtr more.
872         (DOM::DocumentImpl::realDocType): Add get() since we're using SharedPtr.
873         (DOM::DocumentImpl::setDocType): Added.
874         * khtml/xml/dom_docimpl.cpp:
875         (DOMImplementationImpl::createDocument): Use setDocType instead of using
876         realDocType()->copyFrom to set up the document type in the new document.
877         (DocumentImpl::DocumentImpl): Don't create an empty document type during constructor.
878         (DocumentImpl::~DocumentImpl): Remove explicit deref since we're using SharedPtr.
879         (DocumentImpl::doctype): Add get() since we're using SharedPtr.
880         (DocumentTypeImpl::DocumentTypeImpl): Streamlined implementation since we're using SharedPtr.
881
882         * khtml/xml/xml_tokenizer.cpp:
883         (khtml::XMLTokenizer::internalSubset): Added. Calls setDocType.
884         (khtml::internalSubsetHandler): Added. Calls xmlSAX2InternalSubset after calling our function.
885         (khtml::XMLTokenizer::finish): Changed to pass our internalSubsetHandler function pointer.
886
887 2005-10-25  David Hyatt  <hyatt@apple.com>
888
889         This patch makes a number of refinements to buttons to make
890         the custom <input>s on hotwire.com look correct.
891
892         Also back out my fix for bug 5283, since it causes some bad
893         regressions and basically needs to be rethought. (This part
894         not reviewed, since it's just a backout.)
895         
896         Reviewed by darin
897         
898         * khtml/css/html4.css:
899         Added rules to reset many more properties on form controls,
900         including text-align, letter-spacing, word-spacing, line-height
901         text-transform and others.  Remove the !important from the
902         line-height reset, since WinIE honors line-height on buttons.
903         Mozilla does not, but we will match WinIE.
904         
905         * khtml/rendering/render_button.cpp:
906         (khtml::RenderButton::setStyle):
907         Make sure to preserve the box-flex of our generated interior
908         block, so that it doesn't end up packing left inside its
909         container when styles change.
910         
911         (khtml::RenderButton::paintObject):
912         Change the clipping heuristic to only clip to the border box.
913         This does mean text can run right up to the edge of an Aqua
914         button, but without this change we just don't match other
915         browsers.
916         
917         * khtml/rendering/render_flexbox.cpp:
918         (khtml::RenderFlexibleBox::layoutHorizontalBox):
919         (khtml::RenderFlexibleBox::layoutVerticalBox):
920         Change the behavior of box-align:center.  If it would result
921         in spillage out the top or left when centering, then don't move
922         it.
923
924 2005-10-25  Maciej Stachowiak  <mjs@apple.com>
925
926         Re-landing the isSameNode fix from Anders, I verified there is no effect on performance:
927
928         <rdar://problem/4302880> Re-land isSameNode change
929         
930         * khtml/ecma/kjs_dom.cpp:
931         * khtml/ecma/kjs_dom.h:
932         * khtml/xml/dom_nodeimpl.h:
933         * kwq/DOM.mm:
934
935 2005-10-25  Maciej Stachowiak  <mjs@apple.com>
936
937         Re-land the following fix, I tested to verify there is no performance regression:
938
939         Makes <object> tags not use image mode for svg content:
940         http://bugzilla.opendarwin.org/show_bug.cgi?id=5175
941
942         * khtml/html/html_objectimpl.cpp:
943         (DOM::HTMLObjectElementImpl::isImageType):
944
945 2005-10-25  Adele Peterson  <adele@apple.com>
946
947         Reviewed by Hyatt.
948
949         - fixed <rdar://problem/3612121> setting focus, by tabbing, searching, or with JavaScript does not scroll overflow:auto/scroll/overlay to reveal focused element (3480)
950
951         * khtml/rendering/render_layer.cpp: 
952         (khtml::RenderLayer::scrollRectToVisible): Added case for when the renderer has an overflow clip, so we can scroll overflow and views recursively.
953
954 2005-10-25  Adele Peterson  <adele@apple.com>
955
956         Reviewed by Vicki.
957
958         Fixed <rdar://problem/4098450> RoboHelp-generated html help system crashes in latest Safari -KWQValueListImpl::copyOnWrite
959
960         The tokenizer's timer was causing the tokenizer to be deleted twice.  
961         In timerEvent, we'll now check to see if the write has destroyed the tokenizer before trying to do it again.
962
963         * khtml/html/htmltokenizer.cpp:
964         (khtml::HTMLTokenizer::write): Returns a boolean to indicate whether end() gets called
965         (khtml::HTMLTokenizer::timerEvent): Moved code from allDataProcessed, and now, checks to see if write() called end() to notify WebKit that processing is done.
966         * khtml/html/htmltokenizer.h: write() returns a bool.
967         * khtml/xml/xml_tokenizer.cpp: (khtml::XMLTokenizer::write): returns a bool (always false in the XMLTokenizer case).
968         * khtml/xml/xml_tokenizer.h: ditto.
969
970 2005-10-25  Beth Dakin  <bdakin@apple.com>
971
972         Reviewed by Maciej
973
974         Fix for <rdar://problem/4148730> SureSec si#182 safari heap overflow.
975         When a table has a really huge rowSpan, Safari used to crash because
976         the malloc of the grid for the table failed. This fix just checks for
977         the success of the malloc.
978
979         * khtml/rendering/render_table.cpp:
980         (RenderTableSection::ensureRows): Return false if the grid resize is not 
981         successful.
982         (RenderTableSection::addCell): Return early if ensureRows() returned false.
983         * khtml/rendering/render_table.h: Make ensureRows() return a bool instead
984         of void.
985
986 2005-10-25  Adele Peterson  <adele@apple.com>
987
988         Reviewed by Hyatt.
989
990         - first step of fix for <rdar://problem/3612121> setting focus, by tabbing, searching, or with JavaScript does not scroll overflow:auto/scroll/overlay to reveal focused element (3480)
991         This change moves the scrolling code for revealing elements to the RenderLayer, instead of being specific to the view.
992
993         * khtml/rendering/render_layer.h: Added scrollRectToVisible. Added getRectToExpose.
994         Added ScrollAlignment enum so callers can be more specific about exactly where they want to scroll.
995         (khtml::RenderLayer::scrollToPoint): Added inline function to scroll to a point.
996         * khtml/rendering/render_layer.cpp:
997         (khtml::RenderLayer::scrollRectToVisible):  Replaces recursive view scrolling functions.
998         (khtml::RenderLayer::getRectToExpose):  Calculates the rectangle to expose based on the alignment parameters.
999
1000         * khtml/khtml_part.cpp:
1001         (KHTMLPart::gotoAnchor): Changed use of setContentsPosRecursive to scrollToPoint.
1002         (KHTMLPart::setActiveNode): Changed use of ensureVisible to scrollRectToVisible.
1003         * khtml/khtmlview.cpp:
1004         (KHTMLView::doAutoScroll): Changed use of ensureVisible to scrollRectToVisible.
1005         (KHTMLView::focusNextPrevNode): ditto.
1006         * kwq/KWQKHTMLPart.mm:
1007         (KWQKHTMLPart::jumpToSelection): Changed use of _KWQ_scrollRectToVisible to scrollRectToVisible.
1008         (KWQKHTMLPart::nextKeyViewInFrame): Changed use of ensureRectVisibleCentered to scrollRectToVisible.
1009         (KWQKHTMLPart::centerSelectionInVisibleArea): ditto.
1010         * khtml/xml/dom_elementimpl.cpp: (ElementImpl::scrollIntoView): Changed use of setContentsPos and ensureVisible to scrollRectToVisible.
1011         * kwq/WebCoreBridge.mm: (-[WebCoreBridge ensureSelectionVisible]): Changed use of ensureRectVisibleCentered to scrollRectToVisible.
1012
1013         * kwq/KWQComboBox.mm: (-[KWQPopUpButton becomeFirstResponder]): Changing use of _KWQ_scrollFrameToVisible to scrollRectToVisible.
1014         * kwq/KWQFileButton.mm: (KWQFileButton::focusChanged): ditto.
1015         * kwq/KWQListBox.mm: (-[KWQTableView becomeFirstResponder]): ditto.
1016         * kwq/KWQSlider.mm: (-[KWQSlider becomeFirstResponder]): ditto.
1017         * kwq/KWQTextArea.mm: (-[KWQTextAreaTextView becomeFirstResponder]): ditto.
1018         * kwq/KWQTextField.mm: (-[KWQTextFieldController setHasFocus:]): ditto.
1019
1020         * kwq/KWQScrollView.h: Removed ensureVisible, and ensureRectVisibleCentered.  Added ensureRectVisible which just calls across to AppKit to scroll the NSView.
1021         * kwq/KWQScrollView.mm: (QScrollView::ensureRectVisible): ditto.
1022
1023         * WebCore.xcodeproj/project.pbxproj: Removed KWQNSViewExtras since it is no longer needed.
1024         * kwq/KWQNSViewExtras.h: Removed.
1025         * kwq/KWQNSViewExtras.m: Removed.
1026
1027 2005-10-25  David Hyatt  <hyatt@apple.com>
1028
1029         Land box-sizing support and change button to work correctly
1030         with it.
1031
1032         Also stop honoring of font properties on <input> if
1033         Aqua is enabled.  If you allow bold, but don't honor size, then
1034         you end up with poorly rendered buttons on cnn.com (box-sizing
1035         made this apparent, since the buttons got smaller).
1036
1037         Fix the clipping code for button content to actually work. :)
1038         Function needed to be designated virtual in order to get
1039         called.
1040         
1041         Reviewed by darin
1042
1043         fast/box-sizing/box-sizing.html is the new test case.
1044         
1045         * ChangeLog:
1046         * WebCore.xcodeproj/project.pbxproj:
1047         * khtml/rendering/render_block.cpp:
1048         (khtml::RenderBlock::calcMinMaxWidth):
1049         * khtml/rendering/render_block.h:
1050         * khtml/rendering/render_box.cpp:
1051         (RenderBox::calcBorderBoxWidth):
1052         (RenderBox::calcBorderBoxHeight):
1053         (RenderBox::calcContentBoxWidth):
1054         (RenderBox::calcContentBoxHeight):
1055         (RenderBox::calcWidth):
1056         (RenderBox::calcWidthUsing):
1057         (RenderBox::calcHeight):
1058         (RenderBox::calcHeightUsing):
1059         (RenderBox::calcPercentageHeight):
1060         (RenderBox::calcReplacedWidth):
1061         (RenderBox::calcReplacedWidthUsing):
1062         (RenderBox::calcReplacedHeightUsing):
1063         (RenderBox::availableHeightUsing):
1064         (RenderBox::calcAbsoluteHorizontalValues):
1065         (RenderBox::calcAbsoluteVerticalValues):
1066         * khtml/rendering/render_box.h:
1067         * khtml/rendering/render_button.cpp:
1068         (khtml::RenderButton::paintObject):
1069         * khtml/rendering/render_button.h:
1070         * khtml/rendering/render_flexbox.cpp:
1071         (khtml::RenderFlexibleBox::calcMinMaxWidth):
1072         * khtml/rendering/render_theme_mac.mm:
1073         (khtml::RenderThemeMac::setFontFromControlSize):
1074         (khtml::RenderThemeMac::adjustButtonStyle):
1075
1076 2005-10-25  Vicki Murley  <vicki@apple.com>
1077
1078         Reviewed by Hyatt.
1079  
1080         - fix <rdar://problem/4288276> DOM tests expect hierarchy exception adding wrong types of nodes to parents (4568)
1081
1082         Check that the node being added is an allowable child.  If inserting a document fragment node, check each child of
1083         the node.  Fixes 4 of the W3C DOM HTML tests and 11 of the XHTML tests.
1084
1085         * khtml/xml/dom_nodeimpl.cpp:
1086         (DOM::NodeImpl::checkAddChild):
1087
1088 2005-10-25  Darin Adler  <darin@apple.com>
1089
1090         Reviewed by Dave Hyatt.
1091
1092         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4945
1093           event init calls should not do anything if the event has already been dispatched
1094         - made a small performance improvement to event creation by simplifying the date code
1095           (seen on profiles)
1096         - changed DOMTimestamp to be a 64-bit integer on Mac OS X (requested by the DOM standard)
1097
1098         * khtml/dom/dom_node.h: Made DOMTimestamp be unsigned long long on Mac OS X.
1099
1100         * khtml/xml/dom_nodeimpl.cpp:
1101         (DOM::NodeImpl::dispatchGenericEvent): Assert that the event has a target.
1102         (DOM::NodeImpl::dispatchWindowEvent): Set the event target to the document.
1103
1104         * khtml/xml/dom2_eventsimpl.h: Changed many data members to use SharedPtr instead of
1105         explicit ref/deref. Changed m_createTime to be a DOMTimeStamp instead of a QDateTime.
1106         (DOM::EventImpl::setTarget): Now inlined.
1107         (DOM::EventImpl::timeStamp): Now inlined.
1108         (DOM::EventImpl::preventDefault): Now inlined.
1109         (DOM::EventImpl::dispatched): Added. Returns true if the event was already dispatched,
1110         meaning it already has a target.
1111
1112         * khtml/xml/dom2_eventsimpl.cpp:
1113         (DOM::currentTimeStamp): Added. Faster inline version on Mac OS X, since this shows
1114         up in profiles.
1115         (DOM::EventImpl::EventImpl): Changed to use contructor syntax and set m_createTime to
1116         currentTimeStamp().
1117         (DOM::EventImpl::~EventImpl): Removed explicit derefs; no longer needed.
1118         (DOM::EventImpl::initEvent): Do nothing if dispatched() is true. Simplify since
1119         SharedPtr handles ref/deref.
1120         (DOM::UIEventImpl::UIEventImpl): Changed to use contructor syntax and take advantage
1121         of the fact that some data members are now SharedPtr.
1122         (DOM::UIEventImpl::initUIEvent): Do nothing if dispatched() is true. Simplify since
1123         SharedPtr handles ref/deref.
1124         (DOM::MouseEventImpl::MouseEventImpl): Changed to use contructor syntax and take advantage
1125         of the fact that some data members are now SharedPtr.
1126         (DOM::MouseEventImpl::~MouseEventImpl): Removed explicit derefs; no longer needed.
1127         (DOM::MouseEventImpl::initMouseEvent): Do nothing if dispatched() is true. Simplify since
1128         SharedPtr handles ref/deref.
1129         (DOM::MouseEventImpl::isDragEvent): Use a local variable.
1130         (DOM::KeyboardEventImpl::KeyboardEventImpl): Changed to use contructor syntax and take
1131         advantage of the fact that some data members are now SharedPtr.
1132         (DOM::KeyboardEventImpl::~KeyboardEventImpl): Removed explicit derefs; no longer needed.
1133         (DOM::KeyboardEventImpl::initKeyboardEvent): Do nothing if dispatched() is true. Simplify
1134         since SharedPtr handles ref/deref.
1135         (DOM::MutationEventImpl::MutationEventImpl): Changed to use contructor syntax and take
1136         advantage of the fact that some data members are now SharedPtr.
1137         (DOM::MutationEventImpl::initMutationEvent): Do nothing if dispatched() is true. Simplify
1138         since SharedPtr handles ref/deref.
1139         (DOM::ClipboardEventImpl::ClipboardEventImpl): Simplify since SharedPtr handles initialization
1140         and ref/deref.
1141         (DOM::RegisteredEventListener::RegisteredEventListener): Ditto.
1142
1143 2005-10-24  Geoffrey Garen  <ggaren@apple.com>
1144
1145         Patch by Niels Leenheer.
1146
1147         Fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=3587
1148         http://bugzilla.opendarwin.org/show_bug.cgi?id=3587
1149
1150         Reviewed by hyatt.
1151
1152         Layout tests added:
1153
1154         * dom/xhtml/level2/html/HTMLBaseElement02-expected.txt:
1155         * dom/xhtml/level2/html/frame-expected.txt:
1156         * fast/frames/calculate-fixed-expected.txt: Added.
1157         * fast/frames/calculate-fixed.html: Added.
1158         * fast/frames/calculate-order-expected.txt: Added.
1159         * fast/frames/calculate-order.html: Added.
1160         * fast/frames/calculate-percentage-expected.txt: Added.
1161         * fast/frames/calculate-percentage.html: Added.
1162         * fast/frames/calculate-relative-expected.txt: Added.
1163         * fast/frames/calculate-relative.html: Added.
1164         * fast/frames/calculate-round-expected.txt: Added.
1165         * fast/frames/calculate-round.html: Added.
1166
1167         * khtml/rendering/render_frames.cpp:
1168         (RenderFrameSet::layout):
1169
1170 2005-10-24  Darin Adler  <darin@apple.com>
1171
1172         Reviewed by Hyatt.
1173
1174         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5054
1175           Crash with dataTransfer.setDragImage
1176
1177         * khtml/ecma/kjs_events.cpp: (KJS::ClipboardProtoFunc::callAsFunction):
1178         Added type check in case the parameter passed is not an object.
1179
1180 2005-10-24  Darin Adler  <darin@apple.com>
1181
1182         Reviewed by Beth.
1183
1184         - got ready to make m_parent private by removing references to it
1185           also removed tabs (and used spaces instead) to files I touched
1186         - fixed code that initialized m_parent twice
1187
1188         * khtml/css/css_base.cpp:
1189         (StyleBaseImpl::checkLoaded): Use parent().
1190         (StyleBaseImpl::stylesheet): Ditto.
1191         * khtml/css/css_base.h:
1192         (DOM::StyleBaseImpl::StyleBaseImpl): Initialize base TreeShared with the appropriate
1193         parent instead of first setting m_parent to 0 and then to the correct value. Also
1194         removed setParent, since the base class setParent works fine.
1195         * khtml/css/css_ruleimpl.cpp:
1196         (DOM::CSSRuleImpl::parentStyleSheet): Use parent().
1197         (DOM::CSSRuleImpl::parentRule): Ditto.
1198         * khtml/css/css_stylesheetimpl.cpp:
1199         (StyleSheetImpl::parentStyleSheet): Ditto.
1200         (MediaListImpl::parentStyleSheet): Ditto.
1201         (MediaListImpl::parentRule): Ditto.
1202         * khtml/css/css_valueimpl.cpp:
1203         (DOM::CSSStyleDeclarationImpl::parentRule): Ditto.
1204         * khtml/rendering/render_replaced.cpp: Reformatting only, and removed some
1205         APPLE_CHANGES-only instead.
1206         * khtml/xml/dom_nodeimpl.cpp:
1207         (DOM::NodeImpl::isContentEditable): Use parent().
1208         * khtml/xml/dom_nodeimpl.h:
1209         (DOM::NodeImpl::parentNode): Ditto.
1210         * khtml/xsl/xsl_stylesheetimpl.cpp:
1211         (DOM::XSLImportRuleImpl::parentStyleSheet): Ditto.
1212
1213 2005-10-24  David Hyatt  <hyatt@apple.com>
1214
1215         Fix for 5485, make sure generated content's "rightmost selector"
1216         check does not apply once you move to another selector in the 
1217         compound selector chain.
1218         
1219         Reviewed by mjs
1220
1221         * khtml/css/cssstyleselector.cpp:
1222         (khtml::CSSStyleSelector::checkSelector):
1223
1224 2005-10-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1225
1226         Reviewed by Darin, committed by beth.
1227
1228         Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=5384
1229         Soft hyphen displayed as hyphen when it is the first character 
1230         in a line/run.
1231
1232         * khtml/rendering/bidi.cpp:
1233         (khtml::checkMidpoints):
1234         (khtml::RenderBlock::skipWhitespace):
1235         (khtml::RenderBlock::findNextLineBreak):
1236         * khtml/rendering/render_text.cpp:
1237         (RenderText::calcMinMaxWidth):
1238
1239 2005-10-23  David Hyatt  <hyatt@apple.com>
1240
1241         Make sure the button's generated text using the value with
1242         the default label so that Submit/Reset buttons aren't blank.
1243         
1244         Reviewed by mjs
1245
1246         Added fast/forms/blankbuttons.html
1247         
1248         * khtml/rendering/render_button.cpp:
1249         (khtml::RenderButton::updateFromElement):
1250
1251 2005-10-24  Maciej Stachowiak  <mjs@apple.com>
1252
1253         Re-landing Dave Hyatt's changes from when the tree was closed.
1254
1255         * khtml/rendering/render_container.cpp:
1256         (RenderContainer::destroy):
1257         (RenderContainer::destroyLeftoverAnonymousChildren):
1258         * khtml/rendering/render_container.h:
1259         * khtml/rendering/render_flow.cpp:
1260         (RenderFlow::destroy):
1261         * khtml/rendering/render_layer.cpp:
1262         (khtml::RenderLayer::isTransparent):
1263         (khtml::RenderLayer::paintLayer):
1264         (khtml::isOverflowOnly):
1265         (khtml::compare):
1266         (khtml::sortByZOrder):
1267         * khtml/rendering/render_layer.h:
1268
1269 2005-10-24  Alexey Proskuryakov  <ap@nypop.com>
1270
1271         Reviewed by Darin Adler.
1272         Commited by Tim Hatcher.
1273
1274         - fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=5484
1275         REGRESSION: reproducible crash in CachedCSSStyleSheet::setCharset
1276
1277         * khtml/misc/loader.cpp:
1278         (CachedCSSStyleSheet::setCharset):
1279         (CachedScript::setCharset):
1280
1281 2005-10-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1282
1283         Reviewed by Darin.  Committed by David Harrison.
1284
1285         http://bugzilla.opendarwin.org/show_bug.cgi?id=5449
1286         "OBJECT should be accessible by id/name as document property only if its only children are PARAMs"
1287
1288         Test added:
1289         * fast/js/object-by-name-or-id-expected.txt: Added.
1290         * fast/js/object-by-name-or-id.html: Added.
1291
1292         Files changed:
1293         * khtml/html/html_miscimpl.cpp:
1294         (DOM::HTMLNameCollectionImpl::traverseNextItem):
1295         * khtml/html/html_objectimpl.cpp:
1296         (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl):
1297         (DOM::HTMLObjectElementImpl::parseMappedAttribute):
1298         (DOM::HTMLObjectElementImpl::insertedIntoDocument):
1299         (DOM::HTMLObjectElementImpl::removedFromDocument):
1300         (DOM::HTMLObjectElementImpl::childrenChanged):
1301         (DOM::HTMLObjectElementImpl::updateDocNamedItem):
1302         * khtml/html/html_objectimpl.h:
1303         (DOM::HTMLObjectElementImpl::isDocNamedItem):
1304         * manual-tests/drag_select_highlighting.html: Added.
1305
1306 2005-10-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1307
1308         Reviewed by Darin.  Committed by David Harrison.
1309
1310         http://bugzilla.opendarwin.org/show_bug.cgi?id=5415
1311         "Left border of selection highlight leaves behind a trail"
1312
1313         (Code changes are in WebKit)
1314         
1315         * manual-tests/drag_select_highlighting.html: Added.
1316
1317 2005-10-24  Vicki Murley  <vicki@apple.com>
1318
1319         Changes by Mitz Pettel, reviewed by Maciej.
1320
1321         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5306 (KHTMLPart::requestObject 
1322         doesn't destroy old plugin content)
1323
1324         * khtml/html/html_objectimpl.cpp:
1325         (DOM::HTMLObjectElementImpl::recalcStyle):
1326
1327 2005-10-24  Vicki Murley  <vicki@apple.com>
1328
1329         Changes by Alexey Proskuryakov, reviewed by Maciej.
1330
1331         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5140 (CachedObject loading 
1332         ignores charset from HTTP headers)
1333
1334         * khtml/misc/loader.cpp:
1335         (CachedCSSStyleSheet::setCharset):
1336         (CachedScript::setCharset):
1337         (CachedXSLStyleSheet::setCharset):
1338         (CachedXSLStyleSheet::data):
1339         (CachedXBLDocument::CachedXBLDocument):
1340         (CachedXBLDocument::setCharset):
1341         (CachedXBLDocument::data):
1342         (Loader::slotReceivedResponse):
1343         * khtml/misc/loader.h:
1344
1345 2005-10-24  Antti Koivisto  <koivisto@iki.fi>
1346
1347         Reviewed by Hyatt, landed by beth.
1348
1349         Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=5318
1350         forced line break should not be allowed after a list marker.
1351
1352         * khtml/rendering/bidi.cpp:
1353         (khtml::RenderBlock::findNextLineBreak):
1354
1355 2005-10-24  Darin Adler  <darin@apple.com>
1356
1357         Reviewed by hyatt.
1358
1359         Fix Qualified Name parsing to match spec.
1360         xhtml dom tests cover these cases.
1361         http://bugzilla.opendarwin.org/show_bug.cgi?id=5317
1362
1363         * khtml/xml/dom_docimpl.cpp:
1364         (isValidNameStart):
1365         (isValidNamePart):
1366         (qualifiedNameIsMalformed):
1367         (DOMImplementationImpl::createDocumentType):
1368         (DOMImplementationImpl::createDocument):
1369         (DocumentImpl::createElementNS):
1370         (DocumentImpl::isValidName):
1371         (DocumentImpl::parseQualifiedName):
1372         * khtml/xml/dom_docimpl.h:
1373         * khtml/xml/dom_elementimpl.cpp:
1374         (ElementImpl::setAttributeNS):
1375
1376 2005-10-23  Julien Palmas <julien.palmas@gmail.com>
1377
1378         Reviewed by eseidel.
1379
1380         Finally fix pattern "userspaceonuse" support.
1381         Several test cases already cover this.
1382         http://bugzilla.opendarwin.org/show_bug.cgi?id=5361
1383
1384         * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
1385         (KRenderingPaintServerPatternQuartz::draw):
1386         * svg-tests/W3C-SVG-1.1/pservers-grad-03-b-expected.checksum:
1387         * svg-tests/W3C-SVG-1.1/pservers-grad-03-b-expected.png:
1388         * svg-tests/W3C-SVG-1.1/pservers-grad-06-b-expected.checksum:
1389         * svg-tests/W3C-SVG-1.1/pservers-grad-06-b-expected.png:
1390         * svg-tests/W3C-SVG-1.1/pservers-pattern-01-b-expected.checksum:
1391         * svg-tests/W3C-SVG-1.1/pservers-pattern-01-b-expected.png:
1392
1393 2005-10-23  Julien Palmas <julien.palmas@gmail.com>
1394
1395         Reviewed by eseidel.
1396
1397         Merged over Shared -> Shared<T> change from kdom.
1398         http://bugzilla.opendarwin.org/show_bug.cgi?id=5391
1399
1400         * WebCore.xcodeproj/project.pbxproj:
1401         * kdom/Shared.h:
1402         (KDOM::Shared::Shared):
1403         (KDOM::Shared::~Shared):
1404         (KDOM::Shared::refCount):
1405         (KDOM::Shared::ref):
1406         (KDOM::Shared::deref):
1407         * kdom/SharedPtr.h: Added.
1408         (KDOM::SharedPtr::SharedPtr):
1409         (KDOM::SharedPtr::~SharedPtr):
1410         (KDOM::SharedPtr::isNull):
1411         (KDOM::SharedPtr::notNull):
1412         (KDOM::SharedPtr::reset):
1413         (KDOM::SharedPtr::get):
1414         (KDOM::SharedPtr::operator!):
1415         (KDOM::SharedPtr::operator bool):
1416         (KDOM::SharedPtr::operator==):
1417         (KDOM::::operator):
1418         * kdom/TreeShared.h:
1419         (KDOM::TreeShared::TreeShared):
1420         (KDOM::TreeShared::~TreeShared):
1421         (KDOM::TreeShared::refCount):
1422         (KDOM::TreeShared::ref):
1423         (KDOM::TreeShared::deref):
1424         (KDOM::TreeShared::parent):
1425         (KDOM::TreeShared::setParent):
1426         * kdom/core/DOMConfigurationImpl.cpp:
1427         (DOMConfigurationImpl::DOMConfigurationImpl):
1428         * kdom/core/DOMConfigurationImpl.h:
1429         * kdom/core/DOMErrorHandlerImpl.cpp:
1430         (DOMErrorHandlerImpl::DOMErrorHandlerImpl):
1431         * kdom/core/DOMErrorHandlerImpl.h:
1432         * kdom/core/DOMErrorImpl.cpp:
1433         (DOMErrorImpl::DOMErrorImpl):
1434         * kdom/core/DOMErrorImpl.h:
1435         (KDOM::):
1436         * kdom/core/DOMExceptionImpl.cpp:
1437         (DOMExceptionImpl::DOMExceptionImpl):
1438         * kdom/core/DOMExceptionImpl.h:
1439         * kdom/core/DOMList.h:
1440         (KDOM::DOMList::DOMList):
1441         (KDOM::DOMList::~DOMList):
1442         * kdom/core/DOMLocatorImpl.cpp:
1443         (DOMLocatorImpl::DOMLocatorImpl):
1444         * kdom/core/DOMLocatorImpl.h:
1445         * kdom/core/DOMObjectImpl.cpp:
1446         (DOMObjectImpl::DOMObjectImpl):
1447         * kdom/core/DOMObjectImpl.h:
1448         * kdom/core/DOMStringImpl.cpp:
1449         (DOMStringImpl::DOMStringImpl):
1450         * kdom/core/DOMStringImpl.h:
1451         * kdom/core/DOMUserDataImpl.cpp:
1452         (DOMUserDataImpl::DOMUserDataImpl):
1453         * kdom/core/DOMUserDataImpl.h:
1454         * kdom/core/NamedNodeMapImpl.cpp:
1455         (NamedNodeMapImpl::NamedNodeMapImpl):
1456         * kdom/core/NamedNodeMapImpl.h:
1457         * kdom/core/NodeImpl.h:
1458         * kdom/core/NodeListImpl.cpp:
1459         (NodeListImpl::NodeListImpl):
1460         * kdom/core/NodeListImpl.h:
1461         * kdom/core/TypeInfoImpl.cpp:
1462         (TypeInfoImpl::TypeInfoImpl):
1463         * kdom/core/TypeInfoImpl.h:
1464         * kdom/css/CSSRuleListImpl.cpp:
1465         (CSSRuleListImpl::CSSRuleListImpl):
1466         * kdom/css/CSSRuleListImpl.h:
1467         * kdom/css/CounterImpl.cpp:
1468         (CounterImpl::CounterImpl):
1469         * kdom/css/CounterImpl.h:
1470         * kdom/css/RGBColorImpl.cpp:
1471         (RGBColorImpl::RGBColorImpl):
1472         * kdom/css/RGBColorImpl.h:
1473         * kdom/css/RectImpl.cpp:
1474         (RectImpl::RectImpl):
1475         * kdom/css/RectImpl.h:
1476         * kdom/css/RenderStyle.cpp:
1477         (RenderStyle::RenderStyle):
1478         * kdom/css/RenderStyle.h:
1479         (KDOM::RenderStyle::RenderStyle):
1480         * kdom/css/RenderStyleDefs.cpp:
1481         (StyleSurroundData::StyleSurroundData):
1482         (StyleBoxData::StyleBoxData):
1483         (StyleVisualData::StyleVisualData):
1484         (StyleBackgroundData::StyleBackgroundData):
1485         (StyleMarqueeData::StyleMarqueeData):
1486         (StyleCSS3NonInheritedData::StyleCSS3NonInheritedData):
1487         (StyleCSS3InheritedData::StyleCSS3InheritedData):
1488         (StyleInheritedData::StyleInheritedData):
1489         * kdom/css/RenderStyleDefs.h:
1490         (KDOM::BorderData::BorderData):
1491         * kdom/css/StyleSheetListImpl.cpp:
1492         (StyleSheetListImpl::StyleSheetListImpl):
1493         * kdom/css/StyleSheetListImpl.h:
1494         * kdom/events/EventExceptionImpl.cpp:
1495         (EventExceptionImpl::EventExceptionImpl):
1496         * kdom/events/EventExceptionImpl.h:
1497         * kdom/events/EventImpl.cpp:
1498         (EventImpl::EventImpl):
1499         * kdom/events/EventImpl.h:
1500         * kdom/events/EventListenerImpl.cpp:
1501         (EventListenerImpl::EventListenerImpl):
1502         * kdom/events/EventListenerImpl.h:
1503         * kdom/ls/LSExceptionImpl.cpp:
1504         (LSExceptionImpl::LSExceptionImpl):
1505         * kdom/ls/LSExceptionImpl.h:
1506         * kdom/ls/LSInputImpl.cpp:
1507         (LSInputImpl::LSInputImpl):
1508         * kdom/ls/LSInputImpl.h:
1509         * kdom/ls/LSOutputImpl.cpp:
1510         (LSOutputImpl::LSOutputImpl):
1511         * kdom/ls/LSOutputImpl.h:
1512         * kdom/ls/LSParserFilterImpl.cpp:
1513         (LSParserFilterImpl::LSParserFilterImpl):
1514         * kdom/ls/LSParserFilterImpl.h:
1515         * kdom/ls/LSResourceResolverImpl.cpp:
1516         (LSResourceResolverImpl::LSResourceResolverImpl):
1517         * kdom/ls/LSResourceResolverImpl.h:
1518         * kdom/ls/LSSerializerImpl.cpp:
1519         (LSSerializerImpl::LSSerializerImpl):
1520         * kdom/ls/LSSerializerImpl.h:
1521         * kdom/range/RangeExceptionImpl.cpp:
1522         (RangeExceptionImpl::RangeExceptionImpl):
1523         * kdom/range/RangeExceptionImpl.h:
1524         * kdom/range/RangeImpl.cpp:
1525         (RangeImpl::RangeImpl):
1526         * kdom/range/RangeImpl.h:
1527         * kdom/traversal/NodeFilterImpl.cpp:
1528         (NodeFilterImpl::NodeFilterImpl):
1529         * kdom/traversal/NodeFilterImpl.h:
1530         (KDOM::NodeFilterCondition::NodeFilterCondition):
1531         (KDOM::NodeFilterCondition::~NodeFilterCondition):
1532         (KDOM::NodeFilterCondition::acceptNode):
1533         * kdom/traversal/TraversalImpl.cpp:
1534         (TraversalImpl::TraversalImpl):
1535         * kdom/traversal/TraversalImpl.h:
1536         * kdom/views/AbstractViewImpl.cpp:
1537         (AbstractViewImpl::AbstractViewImpl):
1538         * kdom/views/AbstractViewImpl.h:
1539         * kdom/xpath/XPathExceptionImpl.h:
1540         * kdom/xpath/XPathExpressionImpl.h:
1541         * kdom/xpath/XPathNSResolverImpl.h:
1542         * kdom/xpath/XPathResultImpl.h:
1543         * kdom/xpointer/NBCImpl.cpp:
1544         (NBCImpl::NBCImpl):
1545         * kdom/xpointer/NBCImpl.h:
1546         * kdom/xpointer/PointerPartImpl.cpp:
1547         (PointerPartImpl::PointerPartImpl):
1548         * kdom/xpointer/PointerPartImpl.h:
1549         * kdom/xpointer/XPointerExceptionImpl.cpp:
1550         (XPointerExceptionImpl::XPointerExceptionImpl):
1551         * kdom/xpointer/XPointerExceptionImpl.h:
1552         * kdom/xpointer/XPointerExpressionImpl.cpp:
1553         (XPointerExpressionImpl::XPointerExpressionImpl):
1554         * kdom/xpointer/XPointerExpressionImpl.h:
1555         * kdom/xpointer/XPointerResultImpl.cpp:
1556         (XPointerResultImpl::XPointerResultImpl):
1557         * kdom/xpointer/XPointerResultImpl.h:
1558         * ksvg2/css/SVGRenderStyleDefs.cpp:
1559         (StyleFillData::StyleFillData):
1560         (StyleStrokeData::StyleStrokeData):
1561         (StyleStopData::StyleStopData):
1562         (StyleClipData::StyleClipData):
1563         (StyleMarkerData::StyleMarkerData):
1564         (StyleMiscData::StyleMiscData):
1565         * ksvg2/css/SVGRenderStyleDefs.h:
1566         * ksvg2/svg/SVGAngleImpl.cpp:
1567         (SVGAngleImpl::SVGAngleImpl):
1568         * ksvg2/svg/SVGAngleImpl.h:
1569         * ksvg2/svg/SVGAnimatedBooleanImpl.cpp:
1570         (SVGAnimatedBooleanImpl::SVGAnimatedBooleanImpl):
1571         * ksvg2/svg/SVGAnimatedBooleanImpl.h:
1572         * ksvg2/svg/SVGAnimatedEnumerationImpl.cpp:
1573         (SVGAnimatedEnumerationImpl::SVGAnimatedEnumerationImpl):
1574         * ksvg2/svg/SVGAnimatedEnumerationImpl.h:
1575         * ksvg2/svg/SVGAnimatedIntegerImpl.cpp:
1576         (SVGAnimatedIntegerImpl::SVGAnimatedIntegerImpl):
1577         * ksvg2/svg/SVGAnimatedIntegerImpl.h:
1578         * ksvg2/svg/SVGAnimatedNumberImpl.cpp:
1579         (SVGAnimatedNumberImpl::SVGAnimatedNumberImpl):
1580         * ksvg2/svg/SVGAnimatedNumberImpl.h:
1581         * ksvg2/svg/SVGAnimatedTemplate.h:
1582         (KSVG::SVGAnimatedTemplate::SVGAnimatedTemplate):
1583         * ksvg2/svg/SVGExceptionImpl.cpp:
1584         (SVGExceptionImpl::SVGExceptionImpl):
1585         * ksvg2/svg/SVGExceptionImpl.h:
1586         * ksvg2/svg/SVGLengthImpl.cpp:
1587         (SVGLengthImpl::SVGLengthImpl):
1588         * ksvg2/svg/SVGLengthImpl.h:
1589         * ksvg2/svg/SVGMatrixImpl.cpp:
1590         (SVGMatrixImpl::SVGMatrixImpl):
1591         * ksvg2/svg/SVGMatrixImpl.h:
1592         * ksvg2/svg/SVGNumberImpl.cpp:
1593         (SVGNumberImpl::SVGNumberImpl):
1594         * ksvg2/svg/SVGNumberImpl.h:
1595         * ksvg2/svg/SVGPathSegImpl.cpp:
1596         (SVGPathSegImpl::SVGPathSegImpl):
1597         * ksvg2/svg/SVGPathSegImpl.h:
1598         * ksvg2/svg/SVGPointImpl.cpp:
1599         (SVGPointImpl::SVGPointImpl):
1600         * ksvg2/svg/SVGPointImpl.h:
1601         * ksvg2/svg/SVGPreserveAspectRatioImpl.cpp:
1602         (SVGPreserveAspectRatioImpl::SVGPreserveAspectRatioImpl):
1603         * ksvg2/svg/SVGPreserveAspectRatioImpl.h:
1604         * ksvg2/svg/SVGRectImpl.cpp:
1605         (SVGRectImpl::SVGRectImpl):
1606         * ksvg2/svg/SVGRectImpl.h:
1607         * ksvg2/svg/SVGTransformImpl.cpp:
1608         (SVGTransformImpl::SVGTransformImpl):
1609         * ksvg2/svg/SVGTransformImpl.h:
1610
1611 2005-10-23  Eric Seidel  <eseidel@apple.com>
1612
1613         No review, build fix only.
1614
1615         * WebCore.xcodeproj/project.pbxproj: added RenderButton.cpp
1616
1617 2005-10-23  Geoffrey Garen  <ggaren@apple.com>
1618
1619         Reviewed by Maciej.
1620
1621         Removed early return from stopLoading because it prevented
1622         onunload events from firing.
1623
1624         Also, for better abstraction, made the tokenizer -- instead of the 
1625         data source -- responsible for calling [WebFrame _checkLoadComplete]
1626         when the tokenizer stops.
1627
1628         * khtml/html/htmltokenizer.cpp:
1629         (khtml::HTMLTokenizer::stopParsing):
1630         * khtml/khtml_part.cpp:
1631         (KHTMLPart::stopLoading):
1632
1633 2005-10-23 Julien Palmas <julien.palmas@gmail.com>
1634
1635         Reviewed by mjs.
1636
1637         * WebCore+SVG/xml_kdomtokenizer.cpp:
1638         (KDOMTokenizer::KDOMTokenizer): build fix.
1639         http://bugzilla.opendarwin.org/show_bug.cgi?id=5462
1640
1641 2005-10-23  Nicholas Shanks  <contact@nickshanks.com>
1642
1643         Reviewed by Dave Hyatt.
1644
1645         http://bugzilla.opendarwin.org/show_bug.cgi?id=3442
1646         Adds support for :first-of-type CSS3 pseudo-selectors
1647         And builds foundations for :last-of-type and :only-of-type
1648
1649         * khtml/css/css_base.cpp:
1650         (CSSSelector::extractPseudoType):
1651         * khtml/css/css_base.h:
1652         (DOM::CSSSelector::CSSSelector):
1653         (DOM::CSSSelector::~CSSSelector):
1654         (DOM::CSSSelector::):
1655         (DOM::CSSSelector::pseudoType):
1656         (DOM::StyleBaseImpl::StyleBaseImpl):
1657         (DOM::StyleBaseImpl::~StyleBaseImpl):
1658         (DOM::StyleBaseImpl::isStyleSheet):
1659         (DOM::StyleBaseImpl::isCSSStyleSheet):
1660         (DOM::StyleBaseImpl::isStyleSheetList):
1661         (DOM::StyleBaseImpl::isMediaList):
1662         (DOM::StyleBaseImpl::isRuleList):
1663         (DOM::StyleBaseImpl::isRule):
1664         (DOM::StyleBaseImpl::isStyleRule):
1665         (DOM::StyleBaseImpl::isCharetRule):
1666         (DOM::StyleBaseImpl::isImportRule):
1667         (DOM::StyleBaseImpl::isMediaRule):
1668         (DOM::StyleBaseImpl::isFontFaceRule):
1669         (DOM::StyleBaseImpl::isPageRule):
1670         (DOM::StyleBaseImpl::isUnknownRule):
1671         (DOM::StyleBaseImpl::isStyleDeclaration):
1672         (DOM::StyleBaseImpl::isValue):
1673         (DOM::StyleBaseImpl::isPrimitiveValue):
1674         (DOM::StyleBaseImpl::isValueList):
1675         (DOM::StyleBaseImpl::isValueCustom):
1676         (DOM::StyleBaseImpl::setParent):
1677         (DOM::StyleBaseImpl::parseString):
1678         (DOM::StyleBaseImpl::setStrictParsing):
1679         (DOM::StyleBaseImpl::useStrictParsing):
1680         (DOM::StyleListImpl::StyleListImpl):
1681         (DOM::StyleListImpl::length):
1682         (DOM::StyleListImpl::item):
1683         (DOM::StyleListImpl::append):
1684         * khtml/css/cssstyleselector.cpp:
1685         (khtml::CSSStyleSelector::checkSelector):
1686         (khtml::CSSStyleSelector::checkOneSelector):
1687
1688 2005-10-21  David Hyatt  <hyatt@apple.com>
1689
1690         Reviewed by darin
1691
1692         * khtml/css/cssstyleselector.cpp:
1693         Add support for the GrayText CSS2 system color to represent
1694         the disabled text color for controls.
1695         
1696         * khtml/css/html4.css:
1697         Make sure that the default cursor is set for all types of buttons
1698         and not just the HTML4 button.
1699
1700         Set the foreground color for buttons using the CSS2 system color.
1701         Set the disabled text color using the CSS2 system color.
1702
1703         Move the default padding for buttons into the CSS file.  It will
1704         get overridden by Aqua buttons but be honored by all other types
1705         of buttons.  This allows the author to override it as well when
1706         customizing.
1707         
1708         * khtml/rendering/render_block.h:
1709         Make paintChildren virtual so that RenderButton can push a clip
1710         and pop a clip when painting children.
1711         
1712         * khtml/rendering/render_box.cpp:
1713         (RenderBox::paintBoxDecorations):
1714         Let the theme now decide whether the border/background should
1715         still be painted after the theme has painted.  This allows buttons
1716         to paint custom borders but still use a pretty OS X background for
1717         the button face.
1718         
1719         * khtml/rendering/render_button.cpp:
1720         (khtml::RenderButton::paintChildren):
1721         Overridden to push/pop a clip so that the contents of a button
1722         don't ever spill out.
1723         
1724         * khtml/rendering/render_button.h:
1725         Added paintChildren method.
1726         
1727         * khtml/rendering/render_style.h:
1728         (khtml::BorderData::hasBorder):
1729         Fixed a regression in hasBorder.  The border-image logic was
1730         inverted, resulting in hasBorder being true for every element!
1731         
1732         * khtml/rendering/render_theme.cpp:
1733         (khtml::RenderTheme::paint):
1734         Patched to return a boolean indicating whether or not the
1735         border/background should be painted.
1736         
1737         * khtml/rendering/render_theme.h:
1738         * khtml/rendering/render_theme_mac.h:
1739         * khtml/rendering/render_theme_mac.mm:
1740         (khtml::RenderThemeMac::adjustRepaintRect):
1741         Forgot to include radio and button in this method so that repaint
1742         rects would be correct.
1743         
1744         (khtml::RenderThemeMac::paintCheckbox):
1745         (khtml::RenderThemeMac::paintRadio):
1746         Adjusted to return the boolean to indicate that painting of
1747         border/background should not occur.
1748         
1749         (khtml::RenderThemeMac::adjustButtonStyle):
1750         Added support for border/background/colors.  Also locked
1751         white-space to nowrap for Aqua buttons to avoid line wrapping.
1752         
1753         (khtml::RenderThemeMac::setButtonCellState):
1754         (khtml::RenderThemeMac::paintButton):
1755         More support for custom border/background/color.
1756         
1757 2005-10-21  Geoffrey Garen  <ggaren@apple.com>
1758
1759         Reviewed by darin.
1760
1761         WebCore side of fix for <rdar://problem/4184719> window.print() followed by window.close() 
1762         causes world leak
1763
1764         No test case added because I have another reviewed patch that will include a test
1765         for this bug as well as many others.
1766
1767         Under some conditions, [WebDataSource stopLoading] did not set [WebDataSource isLoading]
1768         to false, so the didFInishLoad delegates never fired.
1769         
1770         The reason isLoading didn't become false was that the tokenizer was still running.
1771         The fix here is to add a call to Tokenizer::stopParsing inside HTMLPart::stopLoading. 
1772         
1773         Since the WebKit side of the fix eliminates an early return that used to protect
1774         HTMLPart::stopLoading from multiple calls, I added an early return inside
1775         HTMLPart::stopLoading.
1776
1777         I also merged stopped and stopLoading, and merged the way XMLTokenizer and HTMLTokenizer
1778         track whether they're in a stopped state, because anything less would be uncivilized.
1779         
1780         * khtml/html/htmltokenizer.cpp:
1781         (khtml::HTMLTokenizer::HTMLTokenizer):
1782         (khtml::HTMLTokenizer::write):
1783         (khtml::HTMLTokenizer::stopParsing):
1784         (khtml::HTMLTokenizer::processToken):
1785         * khtml/html/htmltokenizer.h:
1786         * khtml/khtml_part.cpp:
1787         (KHTMLPart::stopLoading):
1788         (KHTMLPart::endIfNotLoading):
1789         (KHTMLPart::stop):
1790         * khtml/xml/xml_tokenizer.cpp:
1791         (khtml::Tokenizer::Tokenizer):
1792         (khtml::Tokenizer::finishedParsing):
1793         (khtml::XMLTokenizer::XMLTokenizer):
1794         (khtml::XMLTokenizer::endElementNs):
1795         (khtml::XMLTokenizer::characters):
1796         (khtml::XMLTokenizer::error):
1797         (khtml::XMLTokenizer::processingInstruction):
1798         (khtml::XMLTokenizer::cdataBlock):
1799         (khtml::XMLTokenizer::comment):
1800         (khtml::XMLTokenizer::stopParsing):
1801         * khtml/xml/xml_tokenizer.h:
1802         (khtml::Tokenizer::stopParsing):
1803         * kwq/KWQSignalStubs.mm:
1804         (Loader::requestStarted):
1805
1806 2005-10-21  Beth Dakin  <bdakin@apple.com>
1807
1808         Reviewed by Hyatt
1809
1810         Fix for <rdar://problem/3947202> certain sequence of DOM 
1811         method calls involving CSS outline and display crashes Safari 
1812         (in repaint code).
1813
1814         * khtml/rendering/render_flow.cpp:
1815         (RenderFlow::destroy): Need to set m_continuation to 0 after it
1816         is destroyed to prevent possible crashes.
1817
1818 2005-10-21  Vicki Murley  <vicki@apple.com>
1819
1820         Reviewed by John.
1821  
1822         - fixed <rdar://problem/4304213> sometimes have to click twice to jump to top, on href=""
1823
1824         * manual-tests/linkjump-1.html: Added.
1825         * khtml/khtml_part.cpp:
1826         (KHTMLPart::gotoAnchor): remove check for m_url.hasRef() - encodedHtmlRef and gotoAnchor handle empty 
1827         strings for scrolling to the top of the document
1828
1829 2005-10-21  John Sullivan  <sullivan@apple.com>
1830
1831         No test cases added.
1832         
1833         * khtml/rendering/render_theme_mac.mm:
1834         (khtml::RenderThemeMac::setButtonPaddingFromControlSize):
1835         fix deployment build by adding default: statement to button-size switch statement
1836
1837 2005-10-21  Beth Dakin  <bdakin@apple.com>
1838
1839         Reviewed by Hyatt
1840
1841         Fix for <rdar://problem/3847926> crash due to infinite 
1842         layout regression in RenderLayer::updateScrollInfoAfterLayout 
1843         (was at ourmedia.org)
1844
1845         Cannot use hasOverhangingFloats() in this case because
1846         borderBottom() has already been added into m_height.
1847         This was causing m_height to be off by a pixel in some
1848         cases and then causing infinite recursion in the scroll
1849         bar code.
1850
1851         * khtml/rendering/render_block.cpp: Replaced call to
1852                                         hasOverhangingFloats()
1853         (khtml::RenderBlock::layoutBlock):
1854
1855 2005-10-21  Beth Dakin  <bdakin@apple.com>
1856
1857         Reviewed by Hyatt...sort of.
1858
1859         No test cases added.
1860
1861         Fix for a build failure after Hyatt's button check-in. KWQSlider.mm was
1862         still importing the now deprecated KWQButton.h
1863
1864         Changed it to import KWQLineEdit.h instead.
1865
1866         * kwq/KWQSlider.mm:
1867
1868 2005-10-21  David Hyatt  <hyatt@apple.com>
1869
1870         Land the new "NSView-less" buttons.  With this landing both
1871         <input type=button> and <button> will now look like OS X-style
1872         widgets.  Customization of background and border is not yet
1873         enabled, but this is still a big improvement over the old
1874         AppKit widgets.
1875         
1876         Reviewed by mjs
1877
1878         * ForwardingHeaders/qpushbutton.h: Removed.
1879         * WebCore.xcodeproj/project.pbxproj:
1880         * khtml/css/cssstyleselector.cpp:
1881         (khtml::CSSStyleSelector::adjustRenderStyle):
1882         * khtml/css/cssstyleselector.h:
1883         (khtml::CSSStyleSelector::paintMetrics):
1884         * khtml/css/cssvalues.in:
1885         * khtml/css/html4.css:
1886         * khtml/html/html_formimpl.cpp:
1887         (DOM::HTMLButtonElementImpl::createRenderer):
1888         (DOM::HTMLInputElementImpl::click):
1889         (DOM::HTMLInputElementImpl::createRenderer):
1890         * khtml/html/html_formimpl.h:
1891         (DOM::HTMLInputElementImpl::isTextButton):
1892         * khtml/rendering/render_button.cpp: Added.
1893         (khtml::m_inner):
1894         (khtml::RenderButton::~RenderButton):
1895         (khtml::RenderButton::addChild):
1896         (khtml::RenderButton::removeChild):
1897         (khtml::RenderButton::setStyle):
1898         (khtml::RenderButton::updateFromElement):
1899         * khtml/rendering/render_button.h: Added.
1900         (khtml::RenderButton::removeLeftoverAnonymousBoxes):
1901         (khtml::RenderButton::renderName):
1902         * khtml/rendering/render_form.cpp:
1903         * khtml/rendering/render_form.h:
1904         (khtml::RenderFileButton::calcReplacedHeight):
1905         (khtml::RenderFileButton::isEditable):
1906         * khtml/rendering/render_style.h:
1907         (khtml::):
1908         * khtml/rendering/render_theme.cpp:
1909         (khtml::RenderTheme::adjustStyle):
1910         (khtml::RenderTheme::paint):
1911         (khtml::RenderTheme::adjustCheckboxStyle):
1912         (khtml::RenderTheme::adjustRadioStyle):
1913         (khtml::RenderTheme::adjustButtonStyle):
1914         * khtml/rendering/render_theme.h:
1915         (khtml::RenderTheme::setButtonSize):
1916         * khtml/rendering/render_theme_mac.h:
1917         * khtml/rendering/render_theme_mac.mm:
1918         (khtml::RenderThemeMac::setSizeFromFont):
1919         (khtml::RenderThemeMac::setFontFromControlSize):
1920         (khtml::RenderThemeMac::addIntrinsicMargins):
1921         (khtml::RenderThemeMac::setButtonPaddingFromControlSize):
1922         (khtml::RenderThemeMac::adjustButtonStyle):
1923         (khtml::RenderThemeMac::buttonSizes):
1924         (khtml::RenderThemeMac::buttonMargins):
1925         (khtml::RenderThemeMac::setButtonSize):
1926         (khtml::RenderThemeMac::setButtonCellState):
1927         (khtml::RenderThemeMac::paintButton):
1928         * kwq/KWQAccObject.mm:
1929         (-[KWQAccObject actionElement]):
1930         (-[KWQAccObject role]):
1931         (-[KWQAccObject title]):
1932         * kwq/KWQButton.h: Removed.
1933         * kwq/KWQButton.mm: Removed.
1934         * kwq/KWQComboBox.mm:
1935         * kwq/KWQLineEdit.h:
1936         * kwq/KWQLineEdit.mm:
1937         * kwq/KWQPushButton.h: Removed.
1938         * kwq/KWQPushButton.mm: Removed.
1939
1940 2005-10-19  Darin Adler  <darin@apple.com>
1941
1942         Reviewed by Maciej.
1943
1944         - optimizations for a total of about 1% speed-up on PLT
1945
1946         * khtml/html/htmltokenizer.cpp:
1947         (khtml::fixUpChar): Changed to be more inlinable.
1948         (khtml::HTMLTokenizer::processListing): Simplified the skipLF handling.
1949         (khtml::HTMLTokenizer::parseSpecial): Changed to call the new fixUpChar.
1950         (khtml::HTMLTokenizer::parseText): Simplified the skipLF handling and
1951         changed to call the new fixUpChar.
1952         (khtml::HTMLTokenizer::parseEntity): Changed to call the new fixUpChar.
1953         (khtml::HTMLTokenizer::parseTag): Changed to call the new fixUpChar.
1954         (khtml::HTMLTokenizer::write): Changed to call the new fixUpChar.
1955
1956         * khtml/rendering/font.h: Removed the floatCharacterWidths function,
1957         since it's never needed. Made some more functions inline.
1958         * khtml/rendering/font.cpp: Removed lots of stuff that was only for the
1959         !APPLE_CHANGES case.
1960
1961         * kwq/KWQFontMetrics.h: Removed the single-character width overloads, charWidth,
1962         and floatCharacterWidths.
1963         * kwq/KWQFontMetrics.mm:
1964         (QFontMetrics::width): Use lroundf instead of the ROUND_TO_INT macro.
1965         (QFontMetrics::floatWidth): Removed the bogus unneeded call to the ROUND_TO_INT macro.
1966
1967         * khtml/rendering/render_text.cpp:
1968         (RenderText::cacheWidths): Use floatWidth instead of floatCharacterWidths.
1969
1970         * kwq/KWQComboBox.mm: (QComboBox::sizeHint): Update since the floatWidthForRun
1971         method no longer takes a widths parameter.
1972         * kwq/KWQLineEdit.mm: (QLineEdit::sizeForCharacterWidth): Ditto.
1973         * kwq/KWQListBox.mm:
1974         (QListBox::sizeForNumberOfLines): Ditto.
1975         (-[KWQTableView drawRow:clipRect:]): Ditto.
1976         * kwq/KWQPainter.mm: (QPainter::drawText): Ditto. Also use lroundf instead of the
1977         ROUND_TO_INT macro.
1978
1979         * kwq/WebCoreTextRenderer.h: Removed the ROUND_TO_INT macro. Changed to use bool
1980         instead of bit fields. Removed the widths parameter from the floatWidthForRun method.
1981
1982 2005-10-19  Maciej Stachowiak  <mjs@apple.com>
1983
1984         Reviewed by Dave.
1985
1986         - instead of walking the render tree to update widget positions, instead
1987         keep a set of widgets per canvas, maintained by the constructor and destroy method
1988         for RenderWidget. About a .5% speedup.
1989
1990         * khtml/khtmlview.cpp:
1991         (KHTMLView::layout):
1992         * khtml/rendering/render_canvas.cpp:
1993         (RenderCanvas::updateWidgetPositions):
1994         (RenderCanvas::addWidget):
1995         (RenderCanvas::removeWidget):
1996         * khtml/rendering/render_canvas.h:
1997         * khtml/rendering/render_frames.cpp:
1998         (RenderPart::updateWidgetPosition):
1999         (RenderPart::needWidgetPositionUpdating):
2000         * khtml/rendering/render_frames.h:
2001         * khtml/rendering/render_layer.cpp:
2002         (khtml::RenderLayer::scrollToOffset):
2003         * khtml/rendering/render_object.cpp:
2004         (RenderObject::updateWidgetPosition):
2005         (RenderObject::needWidgetPositionUpdating):
2006         * khtml/rendering/render_object.h:
2007         * khtml/rendering/render_replaced.cpp:
2008         (RenderWidget::RenderWidget):
2009         (RenderWidget::destroy):
2010         (RenderWidget::updateWidgetPosition):
2011         (RenderWidget::needWidgetPositionUpdating):
2012         * khtml/rendering/render_replaced.h:
2013
2014 2005-10-18  Darin Adler  <darin@apple.com>
2015
2016         Reviewed and landed by Maciej.
2017
2018         - some simple changes that amount to a < 1% speedup.
2019
2020         * khtml/css/cssstyleselector.cpp:
2021         (khtml::CSSStyleSelector::applyProperty):
2022         * khtml/rendering/bidi.cpp:
2023         (khtml::BidiIterator::direction):
2024         * kwq/KWQKURL.mm:
2025         (hasSlashDotOrDotDot):
2026         * kwq/KWQString.mm:
2027         (QString::~QString):
2028         * kwq/WebCoreTextRendererFactory.h:
2029
2030 2005-10-18  Maciej Stachowiak  <mjs@apple.com>
2031
2032         - back out the last change, it caused a regression with painting of offscreen plugins
2033
2034         * khtml/khtmlview.cpp:
2035         (KHTMLView::layout):
2036         * khtml/rendering/render_form.cpp:
2037         (RenderFormElement::layout):
2038         * khtml/rendering/render_frames.cpp:
2039         (RenderPartObject::layout):
2040         (RenderPart::updateWidgetPositions):
2041         * khtml/rendering/render_frames.h:
2042         * khtml/rendering/render_layer.cpp:
2043         (khtml::RenderLayer::scrollToOffset):
2044         * khtml/rendering/render_object.cpp:
2045         (RenderObject::updateWidgetPositions):
2046         * khtml/rendering/render_object.h:
2047         * khtml/rendering/render_replaced.cpp:
2048         (RenderWidget::layout):
2049         (RenderWidget::updateWidgetPositions):
2050         * khtml/rendering/render_replaced.h:
2051
2052 2005-10-18  Maciej Stachowiak  <mjs@apple.com>
2053
2054         Reviewed by Dave Hyatt.
2055         Committed by John Sullivan.
2056
2057         - .5% or so speedup by removing updateWidgetPositions
2058
2059         Instead, widget sizes are calculated in layout and widget positions are set at
2060         paint time, with the same kind of special handling for incremental repaint that
2061         RenderImage does.
2062
2063         * khtml/khtmlview.cpp:
2064         (KHTMLView::layout):
2065         * khtml/rendering/render_form.cpp:
2066         (RenderFormElement::layout):
2067         * khtml/rendering/render_frames.cpp:
2068         (RenderPartObject::layout):
2069         * khtml/rendering/render_frames.h:
2070         * khtml/rendering/render_layer.cpp:
2071         (khtml::RenderLayer::scrollToOffset):
2072         * khtml/rendering/render_object.cpp:
2073         * khtml/rendering/render_object.h:
2074         * khtml/rendering/render_replaced.cpp:
2075         (RenderWidget::layout):
2076         * khtml/rendering/render_replaced.h:
2077
2078 2005-10-17  Maciej Stachowiak  <mjs@apple.com>
2079
2080         Reviewed by Geoff.
2081
2082         Speed up the tokenizer by keeping more state on the stack instead of in the object,
2083         to avoid load-store traffic. About a .5% speedup.
2084
2085         * khtml/html/htmltokenizer.cpp:
2086         (khtml::HTMLTokenizer::HTMLTokenizer):
2087         (khtml::HTMLTokenizer::reset):
2088         (khtml::HTMLTokenizer::begin):
2089         (khtml::HTMLTokenizer::setForceSynchronous):
2090         (khtml::HTMLTokenizer::processListing):
2091         (khtml::HTMLTokenizer::parseSpecial):
2092         (khtml::HTMLTokenizer::scriptHandler):
2093         (khtml::HTMLTokenizer::scriptExecution):
2094         (khtml::HTMLTokenizer::parseComment):
2095         (khtml::HTMLTokenizer::parseServer):
2096         (khtml::HTMLTokenizer::parseProcessingInstruction):
2097         (khtml::HTMLTokenizer::parseText):
2098         (khtml::HTMLTokenizer::parseEntity):
2099         (khtml::HTMLTokenizer::parseTag):
2100         (khtml::HTMLTokenizer::continueProcessing):
2101         (khtml::HTMLTokenizer::write):
2102         (khtml::HTMLTokenizer::allDataProcessed):
2103         (khtml::HTMLTokenizer::end):
2104         (khtml::HTMLTokenizer::finish):
2105         (khtml::HTMLTokenizer::notifyFinished):
2106         (khtml::HTMLTokenizer::isWaitingForScripts):
2107         * khtml/html/htmltokenizer.h:
2108         (khtml::HTMLTokenizer::):
2109         (khtml::HTMLTokenizer::State::State):
2110         (khtml::HTMLTokenizer::State::tagState):
2111         (khtml::HTMLTokenizer::State::setTagState):
2112         (khtml::HTMLTokenizer::State::entityState):
2113         (khtml::HTMLTokenizer::State::setEntityState):
2114         (khtml::HTMLTokenizer::State::inScript):
2115         (khtml::HTMLTokenizer::State::setInScript):
2116         (khtml::HTMLTokenizer::State::inStyle):
2117         (khtml::HTMLTokenizer::State::setInStyle):
2118         (khtml::HTMLTokenizer::State::inSelect):
2119         (khtml::HTMLTokenizer::State::setInSelect):
2120         (khtml::HTMLTokenizer::State::inXmp):
2121         (khtml::HTMLTokenizer::State::setInXmp):
2122         (khtml::HTMLTokenizer::State::inTitle):
2123         (khtml::HTMLTokenizer::State::setInTitle):
2124         (khtml::HTMLTokenizer::State::inPlainText):
2125         (khtml::HTMLTokenizer::State::setInPlainText):
2126         (khtml::HTMLTokenizer::State::inProcessingInstruction):
2127         (khtml::HTMLTokenizer::State::setInProcessingInstruction):
2128         (khtml::HTMLTokenizer::State::inComment):
2129         (khtml::HTMLTokenizer::State::setInComment):
2130         (khtml::HTMLTokenizer::State::inTextArea):
2131         (khtml::HTMLTokenizer::State::setInTextArea):
2132         (khtml::HTMLTokenizer::State::escaped):
2133         (khtml::HTMLTokenizer::State::setEscaped):
2134         (khtml::HTMLTokenizer::State::inServer):
2135         (khtml::HTMLTokenizer::State::setInServer):
2136         (khtml::HTMLTokenizer::State::skipLF):
2137         (khtml::HTMLTokenizer::State::setSkipLF):
2138         (khtml::HTMLTokenizer::State::startTag):
2139         (khtml::HTMLTokenizer::State::setStartTag):
2140         (khtml::HTMLTokenizer::State::discardLF):
2141         (khtml::HTMLTokenizer::State::setDiscardLF):
2142         (khtml::HTMLTokenizer::State::allowYield):
2143         (khtml::HTMLTokenizer::State::setAllowYield):
2144         (khtml::HTMLTokenizer::State::loadingExtScript):
2145         (khtml::HTMLTokenizer::State::setLoadingExtScript):
2146         (khtml::HTMLTokenizer::State::forceSynchronous):
2147         (khtml::HTMLTokenizer::State::setForceSynchronous):
2148         (khtml::HTMLTokenizer::State::inAnySpecial):
2149         (khtml::HTMLTokenizer::State::hasTagState):
2150         (khtml::HTMLTokenizer::State::hasEntityState):
2151         (khtml::HTMLTokenizer::State::):
2152         (khtml::HTMLTokenizer::State::setBit):
2153         (khtml::HTMLTokenizer::State::testBit):
2154         * khtml/rendering/bidi.cpp:
2155         (khtml::RenderBlock::checkLinesForTextOverflow):
2156         * khtml/rendering/render_block.cpp:
2157         (khtml::RenderBlock::updateFirstLetter):
2158         * khtml/rendering/render_flow.cpp:
2159         (RenderFlow::caretRect):
2160         * khtml/rendering/render_line.cpp:
2161         (khtml::EllipsisBox::paint):
2162         * khtml/rendering/render_object.cpp:
2163         (RenderObject::firstLineStyle):
2164         * khtml/rendering/render_object.h:
2165         (khtml::RenderObject::style):
2166
2167 2005-10-17  Maciej Stachowiak  <mjs@apple.com>
2168
2169         - temporarily back out hyatt's recent changes since the tree was closed
2170
2171         * khtml/rendering/render_container.cpp:
2172         (RenderContainer::destroy):
2173         (RenderContainer::destroyChildren):
2174         * khtml/rendering/render_container.h:
2175         * khtml/rendering/render_flow.cpp:
2176         (RenderFlow::destroy):
2177         * khtml/rendering/render_layer.cpp:
2178         (khtml::RenderLayer::isTransparent):
2179         (khtml::RenderLayer::paintLayer):
2180         (khtml::sortByZOrder):
2181         * khtml/rendering/render_layer.h:
2182
2183 2005-10-17  David Hyatt  <hyatt@apple.com>
2184
2185         Fix for bugzilla bug 5283.  Make overflow layers lose to other kinds of
2186         layers if z-index is equivalent.  Technically overflow isn't even supposed
2187         to establish a stacking context, so the use of RenderLayer for overflow,
2188         although elegant and simple, isn't correct.  This patch is essentially a hack
2189         to make the common problem go away, but the deeper mistake remains.
2190         
2191         Reviewed by eseidel
2192
2193         * khtml/rendering/render_layer.cpp:
2194         (khtml::RenderLayer::isTransparent):
2195         (khtml::RenderLayer::paintLayer):
2196         (khtml::isOverflowOnly):
2197         (khtml::compare):
2198         (khtml::sortByZOrder):
2199         * khtml/rendering/render_layer.h:
2200
2201 2005-10-16  David Hyatt  <hyatt@apple.com>
2202
2203         Clean up the deletion of anonymous boxes in the render tree.
2204         Renamed methods to make it more clear and also added comments.
2205         
2206         Reviewed by bdakin
2207
2208         * khtml/rendering/render_container.cpp:
2209         (RenderContainer::destroy):
2210         (RenderContainer::destroyLeftoverAnonymousChildren):
2211         * khtml/rendering/render_container.h:
2212         * khtml/rendering/render_flow.cpp:
2213         (RenderFlow::destroy):
2214
2215 2005-10-15  Maciej Stachowiak  <mjs@apple.com>
2216
2217         Backed out the following changes, since they are in a range that
2218         provably caused a performance regression:
2219
2220         <rdar://problem/4302874> Denver Regression: crash repeatedly reloading www.supermanhomepage.com
2221         <rdar://problem/4302879> Re-land SVG object element fix
2222         <rdar://problem/4302880> Re-land isSameNode change
2223         <rdar://problem/4065748> Repro crash at http://www.vanaqua.org using menu system (KHTMLParser::setCurrent(DOM::NodeImpl*))
2224         
2225         * khtml/ecma/kjs_dom.cpp:
2226         (KJS::DOMNodeProtoFunc::callAsFunction):
2227         * khtml/ecma/kjs_dom.h:
2228         (KJS::DOMNode::):
2229         * khtml/ecma/kjs_events.cpp:
2230         (KJS::JSAbstractEventListener::handleEvent):
2231         * khtml/html/html_objectimpl.cpp:
2232         (DOM::HTMLObjectElementImpl::isImageType):
2233         * khtml/html/htmlparser.cpp:
2234         (HTMLStackElem::HTMLStackElem):
2235         (HTMLParser::popNestedHeaderTag):
2236         (HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
2237         (HTMLParser::popOneBlock):
2238         * khtml/xml/dom_nodeimpl.h:
2239         * kwq/DOM.mm:
2240
2241 2005-10-14  Geoffrey Garen  <ggaren@apple.com>
2242
2243         Style change suggested by Darin.
2244
2245         * khtml/html/htmltokenizer.cpp:
2246         (khtml::HTMLTokenizer::scriptHandler): Added "Bugzilla" prefix to bug #.
2247
2248 2005-10-14  Julien Palmas <julien.palmas@mac.com>
2249
2250         Reviewed by eseidel.
2251
2252         Fixed crash when animating unsupported elements.
2253         http://bugzilla.opendarwin.org/show_bug.cgi?id=5336
2254
2255         * ksvg2/svg/SVGAnimationElementImpl.cpp:
2256         (SVGAnimationElementImpl::targetElement):
2257
2258 2005-10-13  Justin Garcia  <justin.garcia@apple.com>
2259
2260         Reviewed by hyatt
2261
2262         <rdar://problem/3643259> contentEditable=true elements do not acquire the caret or focus halo when overflow:scroll
2263
2264         Test cases added:
2265         * fast/clip/outline-overflowClip
2266         Test cases changed (since I added the outline rect to the render tree dump)
2267         * fast/clip/001
2268         * fast/clip/009
2269         * fast/clip/010
2270         * fast/clip/011
2271         * fast/clip/012
2272         * fast/clip/013
2273         * fast/clip/014
2274         * fast/clip/016
2275
2276         * khtml/rendering/render_layer.cpp: 
2277         Clip the outline by a new rect, which is equal to the foreground rect w/o clipping
2278         by the overflow rect.
2279         
2280         (khtml::RenderLayer::paintLayer):
2281         (khtml::RenderLayer::hitTestLayer):
2282         (khtml::RenderLayer::calculateRects):
2283         * khtml/rendering/render_layer.h:
2284         * kwq/KWQRenderTreeDebug.cpp:
2285         (write):
2286         (writeLayers):
2287
2288 2005-10-13  Antti Koivisto  <koivisto@iki.fi>
2289
2290         Reviewed by Darin.
2291
2292         no need to calculate linewidth multiple times in findnextlinebreak()
2293         http://bugzilla.opendarwin.org/show_bug.cgi?id=5319
2294
2295         No test case needed, this is a simple optimization.
2296
2297         * khtml/rendering/bidi.cpp:
2298         (khtml::RenderBlock::findNextLineBreak):
2299
2300 2005-10-13  Geoffrey Garen  <ggaren@apple.com>
2301
2302         - Fixed <rdar://problem/4259434> Safari crashes in HTMLTokenizer::~HTMLTokenizer() 
2303           at http://www.timewarner.com/corp/careers/jobtools_us/index.html
2304
2305         I changed the test for whether to put a script in the "to be executed" queue to
2306         match the test for whether to ref a script, so that scripts can't end up in the
2307         queue without being refed.
2308
2309         I also renamed cachedScript to pendingScripts.
2310
2311         Reviewed by Darin.
2312
2313         No test case because the crash isn't deterministically reproducible.
2314         However, I did add assertions that should catch the underlying bug
2315         in the future.
2316
2317         * khtml/html/htmltokenizer.cpp:
2318         (khtml::HTMLTokenizer::reset):
2319         (khtml::HTMLTokenizer::scriptHandler):
2320         (khtml::HTMLTokenizer::write):
2321         (khtml::HTMLTokenizer::notifyFinished):
2322         * khtml/html/htmltokenizer.h:
2323
2324 2005-10-13  Rob Buis  <rwlbuis@xs4all.nl>
2325
2326         Reviewed by eseidel.
2327
2328         Test cases updated:
2329         * svg-tests/W3C-SVG-1.1/filters-color-01-b-expected.checksum:
2330         * svg-tests/W3C-SVG-1.1/filters-color-01-b-expected.png:
2331         * svg-tests/W3C-SVG-1.1/filters-color-01-b-expected.txt:
2332         * svg-tests/W3C-SVG-1.1/struct-symbol-01-b-expected.checksum:
2333         * svg-tests/W3C-SVG-1.1/struct-symbol-01-b-expected.png:
2334         * svg-tests/W3C-SVG-1.1/struct-symbol-01-b-expected.txt:
2335
2336         Fixed <svg> to base %lengths off of the nearest viewbox.
2337         http://bugzilla.opendarwin.org/show_bug.cgi?id=5326
2338
2339         * ksvg2/svg/SVGPreserveAspectRatioImpl.cpp:
2340         (SVGPreserveAspectRatioImpl::SVGPreserveAspectRatioImpl):
2341         * ksvg2/svg/SVGSVGElementImpl.cpp:
2342         (SVGSVGElementImpl::x):
2343         (SVGSVGElementImpl::y):
2344         (SVGSVGElementImpl::width):
2345         (SVGSVGElementImpl::height):
2346
2347 2005-10-12  Vicki Murley  <vicki@apple.com>
2348
2349         Reviewed by Hyatt.
2350
2351         - fix <rdar://problem/4288266> createElement does not validate names when called in an HTML document (4566)
2352
2353         * khtml/html/html_documentimpl.cpp:
2354         (DOM::HTMLDocumentImpl::createElement): 
2355
2356 2005-10-12  Beth Dakin  <bdakin@apple.com>
2357
2358         Reviewed by Hyatt
2359
2360         Fix for <rdar://problem/4112378> CSS :hover:after crash - khtml::inlineWidth
2361         RenderFlows needed to destroy all of their children within RenderFlow. This
2362         used to happen only in RenderFlow's parent class, RenderContainer. But for
2363         some children to be completely destroyed, the parent flow still needs to be
2364         around. Specifically in the case when there is generated content and a line
2365         break, which maintained a stray reference to the destroyed RenderObject through 
2366         the lineBreakObj() of a RootInlineBox. 
2367
2368         * khtml/rendering/render_container.cpp: 
2369         (RenderContainer::destroy): Took the destruction of children out of destroy(),
2370                                 moved to new function, and only call function when m_first
2371                                 is still around.
2372         (RenderContainer::destroyChildren): New function for destruction of children.
2373         * khtml/rendering/render_container.h:
2374         * khtml/rendering/render_flow.cpp:
2375         (RenderFlow::destroy): Call RenderContainer::destroyChildren() at the beginning.
2376
2377 2005-10-11  Darin Adler  <darin@apple.com>
2378
2379         Reviewed by Eric.
2380
2381         Crash: Drag element with CSS ::Before absolute positioning applied to it
2382         http://bugzilla.opendarwin.org/show_bug.cgi?id=4088
2383
2384         * kwq/KWQKHTMLPart.mm:
2385         (KWQKHTMLPart::khtmlMouseMoveEvent):
2386
2387 2005-10-11  Timothy Hatcher  <timothy@apple.com>
2388
2389         Reviewed by Darin.
2390
2391         workaround for <rdar://problem/4294625> to fix our build
2392         
2393         * kwq/KWQPointArray.h:
2394         * kwq/KWQSize.h:
2395
2396 2005-10-10  Justin Garcia  <justin.garcia@apple.com>
2397
2398         Reviewed by eric
2399         
2400         <rdar://problem/4283218> M-JPEG / Server Push and JavaScript
2401         
2402         Ignore multipart loads in numRequests, call checkCompleted() after each section is complete.
2403
2404         * khtml/misc/loader.cpp:
2405         
2406 2005-10-11  Adele Peterson  <adele@apple.com>
2407
2408         Rolling out fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=5195
2409         since it caused:
2410
2411         REGRESSION text areas draw focus ring around each glyph, no caret in text fields
2412         http://bugzilla.opendarwin.org/show_bug.cgi?id=5335
2413
2414         And updated expected results.
2415         * fast/clip/014-expected.checksum: Updated.
2416         * fast/clip/014-expected.png: Updated.
2417
2418         * kwq/KWQTextArea.h:
2419         * kwq/KWQTextArea.mm:
2420         (-[KWQTextAreaTextView displayRectIgnoringOpacity:]):
2421         (-[KWQTextAreaTextView textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
2422         * kwq/KWQTextField.h:
2423         * kwq/KWQTextField.mm:
2424         (-[KWQTextFieldController setInDrawingMachinery:]):
2425         (-[KWQTextFieldController textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
2426         (-[KWQTextField displayRectIgnoringOpacity:]):
2427         (-[KWQSecureTextField displayRectIgnoringOpacity:]):
2428         (-[KWQSearchField displayRectIgnoringOpacity:]):
2429         * kwq/KWQWidget.h:
2430         * kwq/KWQWidget.mm:
2431         (QWidget::QWidget):
2432         (QWidget::~QWidget):
2433         (QWidget::paint):
2434         (QWidget::setDeferFirstResponderChanges):
2435
2436 2005-10-11  Rob Buis  <rwlbuis@xs4all.nl>>
2437
2438         Reviewed by eseidel.
2439
2440         Fix SVGSymbolElementImpl to not warn when inheriting viewbox.
2441         http://bugzilla.opendarwin.org/show_bug.cgi?id=5278
2442
2443         * ksvg2/svg/SVGUseElementImpl.cpp:
2444         (SVGUseElementImpl::close):
2445
2446 2005-10-11  Julien Palmas <julien.palmas@mac.com>
2447
2448         Reviewed by eseidel.
2449
2450         Fixes WebCore+SVG build under gcc 3.3
2451         http://bugzilla.opendarwin.org/show_bug.cgi?id=5301
2452
2453         * WebCore+SVG/DrawCanvasItem.mm:
2454         * WebCore+SVG/DrawView.mm:
2455         (-[DrawDocument drawRect:initWithDrawView:]):
2456         * kwq/KWQSlot.mm:
2457
2458 2005-10-10  Geoffrey Garen  <ggaren@apple.com>
2459
2460         - Fixed <rdar://problem/4245682> Regression: CrashTracer: 923 crashes 
2461           in Safari at com.apple.WebCore: KJS::Window::clear + 132
2462
2463         Reviewed by mjs.
2464
2465         No test case because this crash isn't reliably reproducible.
2466
2467         * khtml/ecma/kjs_window.cpp:
2468         (KJS::Window::Window): Initialize m_returnValueSlot to 0, so that we
2469         know not to write to it until it's explicitly set to a valid address.
2470
2471 2005-10-10  Darin Adler  <darin@apple.com>
2472
2473         Reviewed by Maciej.
2474
2475         - finished fixing http://bugzilla.opendarwin.org/show_bug.cgi?id=5195
2476           Would like API to flush rendering of pending DOM changes
2477
2478         The first half of the fix alone broke DumpRenderTree. Better now.
2479
2480         * kwq/KWQWidget.h: Made paint non-virtual (it had no reason to be virtual in KWQ) and
2481         added an isPainting function.
2482         * kwq/KWQWidget.mm:
2483         (QWidget::QWidget): Added painting boolean (actually a count).
2484         (QWidget::~QWidget): Check that painting is 0 when the widget is destroyed.
2485         (QWidget::paint): Use SPI to draw in a way that works no matter what context we are in.
2486         (QWidget::isPainting): Return true if inside the paint function.
2487
2488         * kwq/KWQTextArea.h: Remove inDrawingMachinery field since we can use isPainting now.
2489         * kwq/KWQTextArea.mm:
2490         (-[KWQTextAreaTextView textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
2491         Use isPainting() instead of inDrawingMachinery. inDrawingMachinery required that we
2492         use displayRectIgnoringOpacity: to paint, which we no longer do.
2493         * kwq/KWQTextField.h: More of the same.
2494         * kwq/KWQTextField.mm:
2495         (-[KWQTextFieldController textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
2496         Ditto.
2497
2498 2005-10-10  Darin Adler  <darin@apple.com>
2499
2500         Reviewed by eseidel.
2501
2502         Mem leak fixes in xslt code.
2503         http://bugzilla.opendarwin.org/show_bug.cgi?id=5320
2504
2505         * khtml/xml/dom_docimpl.cpp:
2506         (DocumentImpl::applyXSLTransform):
2507         (DocumentImpl::setTransformSourceDocument):
2508         * khtml/xml/xml_tokenizer.cpp:
2509         (khtml::parseXMLDocumentFragment):
2510         * khtml/xsl/xslt_processorimpl.cpp:
2511         (DOM::XSLTProcessorImpl::XSLTProcessorImpl):
2512         (DOM::XSLTProcessorImpl::~XSLTProcessorImpl):
2513         (DOM::stylesheetLoadFunc):
2514         (DOM::XSLTProcessorImpl::transformDocument):
2515         (DOM::XSLTProcessorImpl::documentFromXMLDocPtr):
2516         * khtml/xsl/xslt_processorimpl.h:
2517         (DOM::XSLTProcessorImpl::stylesheet):
2518         (DOM::XSLTProcessorImpl::sourceDocument):
2519
2520 2005-10-09  David Hyatt  <hyatt@apple.com>
2521
2522         Land fix for bugzilla bug 4974, make sure to only move below floats in line layout if white-space is normal.
2523         One case was using !isPre and including nowrap incorrectly as a result.  Patch from koivisto.
2524         
2525         Reviewed by hyatt
2526
2527         * khtml/rendering/bidi.cpp:
2528         (khtml::RenderBlock::findNextLineBreak):
2529
2530 2005-10-08  Alexey Proskuryakov  <ap@nypop.com>
2531
2532         Reviewed by Maciej.
2533
2534         - support for WebKit fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=5187
2535           UTF-8 in long text files breaks at some point
2536
2537         No layout test added: only affects plain text view and requires loading the
2538         file in multiple chunks.
2539
2540         * WebCore.exp: Added WebCoreTextDecoder.
2541         * kwq/WebCoreTextDecoder.h: Added.
2542         * kwq/WebCoreTextDecoder.mm: Added.
2543         * WebCore.xcodeproj/project.pbxproj: Added files, made header private (SPI).
2544
2545 2005-10-08  Alexey Proskuryakov  <ap@nypop.com>
2546
2547         Reviewed by Maciej.
2548
2549         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4821
2550           Text in submitted forms should be entity-encoded if the current encoding doesn't support it
2551
2552         Added one layout test.
2553
2554         * khtml/html/html_formimpl.cpp:
2555         (DOM::HTMLFormElementImpl::formData): Pass true to the fromUnicode function to request entity encoding.
2556         (DOM::FormDataList::appendString): Ditto.
2557
2558         * kwq/KWQTextCodec.h: Add boolean parameter to request entity-style encoding for characters that can't
2559         be expressed in the desired encoding.
2560         * kwq/KWQTextCodec.mm: (QTextCodec::fromUnicode): Added code to entity-encode characters that can't be
2561         expressed in the desired encoding.
2562
2563 2005-10-08  Rosyna  <rosyna@unsanity.com>
2564
2565         Reviewed by Darin.
2566
2567         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3852
2568           typeahead doesn't work in multiple row select boxes.
2569
2570         * kwq/KWQListBox.mm:
2571         (KWQTableViewTypeSelectCallback): Added.
2572         (-[KWQTableView finalize]): Deallocate the UCTypeSelect object.
2573         (-[KWQTableView dealloc]): Ditto.
2574         (-[KWQTableView keyUp:]): If character typed is a graphic character, pass it along to
2575         the UCTypeSelect object and use it to type select, otherwise flush the object.
2576
2577         * manual-tests/select-element-type-select.html: Added.
2578
2579 2005-10-08  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2580
2581         Reviewed by Darin.
2582
2583         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3245
2584           Support the 'bdo' element
2585
2586         Fixes the results of some existing layout tests.
2587
2588         * khtml/xml/dom_elementimpl.h: Add eBDO to the list of entry types so there's a way to
2589         keep <bdo> dir attribute mappings separate from those of other elements.
2590
2591         * khtml/html/html_elementimpl.cpp:
2592         (HTMLElementImpl::mapToEntry): Add special case to use eBDO for the dir attribute on
2593         elements with the <bdo> tag.
2594         (HTMLElementImpl::parseMappedAttribute): Use bidi-override for the unicode-bidi CSS property
2595         when setting it based on the dir attribute on a <bdo> tag. Along with the change above this
2596         obviates the need for an HTMLElementImpl subclass for <bdo>, but we could refactor it that
2597         way later if we decide there's an advantage to doing it that way.
2598
2599         * khtml/css/html4.css: Remove the rules about <bdo>. They are insufficient, and now
2600         they are also unnecessary with the changes above.
2601
2602 2005-10-08  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2603
2604         Reviewed by Darin.
2605
2606         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4898
2607           Failures in dbaron's bidi ordering tests
2608
2609         Added 3 dbaron bidi ordering tests to layout tests.
2610
2611         * khtml/rendering/bidi.cpp:
2612         (khtml::deleteBidiRuns): Set emptyRun back to true.
2613         (khtml::Bidinext): Remove emptyRun checks here.
2614         (khtml::appendRunsForObject): Add a check here to avoid adding an empty run.
2615         (khtml::embed): Add handling for various cases that was missing before.
2616         (khtml::RenderBlock::bidiReorderLine): Many different fixes.
2617
2618 2005-10-08  Rob Buis  <rwlbuis@xs4all.nl>
2619
2620         Reviewed by eseidel.
2621
2622         Almost forgot the layout test for the last commit. ;)
2623         http://bugzilla.opendarwin.org/show_bug.cgi?id=5240
2624
2625         * svg-tests/custom/use-forward-refs-expected.checksum: Added.
2626         * svg-tests/custom/use-forward-refs-expected.png: Added.
2627         * svg-tests/custom/use-forward-refs-expected.txt: Added.
2628         * svg-tests/custom/use-forward-refs.svg: Added.
2629
2630 2005-10-08  Rob Buis  <rwlbuis@xs4all.nl>
2631
2632         Reviewed by eseidel.
2633
2634         Fix to handle forward referencing <use> elements.
2635         http://bugzilla.opendarwin.org/show_bug.cgi?id=5240
2636
2637         * ksvg2/svg/SVGDocumentImpl.cpp:
2638         (SVGDocumentImpl::executeScripts): delayed close.
2639         (SVGDocumentImpl::addForwardReference): new function.
2640         * ksvg2/svg/SVGDocumentImpl.h:
2641         * ksvg2/svg/SVGUseElementImpl.cpp:
2642         (SVGUseElementImpl::close): delay close, if missing reference.
2643
2644 2005-10-07  David Harrison  <harrison@apple.com>
2645
2646         Reviewed by Justin.
2647
2648         "<rdar://problem/4064017> Safari crashes at -[WebCoreBridge firstRectForDOMRange:] + 92"
2649
2650         * khtml/editing/delete_selection_command.cpp:
2651         (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
2652         Do not insert placeholder if selection ends at a BR.
2653         
2654         (khtml::DeleteSelectionCommand::handleGeneralDelete):
2655         No need to preserve starting BR because insertPlaceholderForAncestorBlockContent already did.
2656         
2657         * khtml/xml/dom_position.cpp:
2658         (DOM::Position::upstream):
2659         (DOM::Position::downstream):
2660         Fixed to return original position instead of invisible position when no suitable position found upstream.
2661
2662 2005-10-07  Vicki Murley  <vicki@apple.com>
2663
2664         Reviewed by Hyatt.
2665  
2666         - pass the current form to the isindex constructor, so that isindex doesn't malfunction in the 
2667         case of a misnested form
2668
2669         * khtml/html/htmlparser.cpp:
2670         (HTMLParser::handleIsindex):
2671
2672 2005-10-06  Justin Garcia  <justin.garcia@apple.com>
2673
2674         Reviewed by harrison
2675
2676         <rdar://problem/4073133> Tabbing between editable elements leads to loss of keyboard focus
2677         <rdar://problem/3690719> "Select All" when in an editable area selects the whole containing document
2678         <rdar://problem/3690703> selection is allowed to span editable area and rest of document
2679
2680         * khtml/editing/SelectionController.cpp:
2681         (khtml::SelectionController::adjustExtentForEditableContent): Added.
2682         Ensures that a selection based in an editable element cannot extend outside that element's root editable element.
2683         Also ensures that a selection that's based outside of editable content cannot extend into an editable element.
2684         (khtml::SelectionController::validate):
2685         * khtml/editing/SelectionController.h:
2686         * khtml/editing/visible_position.h:
2687         * khtml/khtml_part.cpp:
2688         (KHTMLPart::setSelection):
2689         (KHTMLPart::setFocusNodeIfNeeded):
2690         (KHTMLPart::selectAll):
2691         If the current selection is inside an editable element, only select the contents of the root editable element.
2692         * khtml/xml/dom_nodeimpl.cpp:
2693         (DOM::ContainerNodeImpl::setFocus): Clicking on an editable element used to change the selection twice.
2694         * kwq/KWQKHTMLPart.mm:
2695         (KWQKHTMLPart::nextKeyViewInFrame): Does a select all when tabbing into an editable element, to match <textarea>s.
2696
2697 2005-10-06  Vicki Murley  <vicki@apple.com>
2698
2699         Reviewed by Beth Dakin.
2700  
2701         - fix <rdar://problem/4288307> <form> element is created for <isindex> outside <form>; that's not correct (4828)
2702
2703         * khtml/html/htmlparser.cpp:
2704         (HTMLParser::handleIsindex): if there's no current form, don't create one
2705
2706 2005-10-06  Beth Dakin  <bdakin@apple.com>
2707
2708         Reviewed by Vicki.
2709
2710         Fix for <rdar://problem/4145535> Crash in khtml::RenderBlock::addOverhangingFloats 
2711         with simple HTML test file.
2712
2713         * khtml/rendering/render_block.cpp: Added nil check
2714         (khtml::RenderBlock::addOverhangingFloats):
2715
2716 2005-10-06  John Sullivan  <sullivan@apple.com>
2717
2718         Reviewed by Beth Dakin.
2719
2720         No test cases added because this does not affect layout.
2721
2722         * kwq/KWQTextArea.mm:
2723         (-[KWQTextAreaTextView setLineHeight:]):
2724         Don't call [textView didChangeText] here, because the text itself did not change.
2725
2726 EW2005-10-06  Beth Dakin  <bdakin@apple.com>
2727
2728         Reviewed by nobody.
2729
2730         Rolling out the assertions I put in place earlier today
2731         because they break the layout tests. 
2732
2733         * khtml/rendering/render_container.cpp:
2734         (RenderContainer::destroy):
2735         * khtml/xml/dom_nodeimpl.cpp:
2736         (DOM::NodeImpl::dispatchEvent):
2737         (DOM::NodeImpl::dispatchGenericEvent):
2738         (DOM::NodeImpl::dispatchHTMLEvent):
2739         (DOM::NodeImpl::dispatchWindowEvent):
2740         (DOM::NodeImpl::dispatchMouseEvent):
2741         (DOM::NodeImpl::dispatchSimulatedMouseEvent):
2742         (DOM::NodeImpl::dispatchUIEvent):
2743         (DOM::NodeImpl::dispatchKeyEvent):
2744         (DOM::NodeImpl::dispatchWheelEvent):
2745         (DOM::NodeImpl::detach):
2746         (DOM::ContainerNodeImpl::insertBefore):
2747         (DOM::ContainerNodeImpl::replaceChild):
2748         (DOM::ContainerNodeImpl::removeChild):
2749         (DOM::ContainerNodeImpl::removeChildren):
2750         (DOM::ContainerNodeImpl::appendChild):
2751         (DOM::ContainerNodeImpl::addChild):
2752         (DOM::ContainerNodeImpl::dispatchChildInsertedEvents):
2753
2754 2005-10-06  Beth Dakin  <bdakin@apple.com>
2755
2756         Reviewed by Dave Harrison
2757
2758         No test cases added because this does not affect layout.
2759
2760         Added assertions to catch WebCore whenever it tries to dispatch an event
2761         while it is modifying the DOM tree. This does not fix any bugs but was 
2762         inspired by 4134884 and 4132581. 
2763
2764         * khtml/rendering/render_container.cpp: Assert that m_first is anonymous
2765         (RenderContainer::destroy):
2766         * khtml/xml/dom_nodeimpl.cpp: Added static int eventDispatchForbidden, and
2767                                         forbidEventDispatch() and allowEventDispatch()
2768                                         to wrap code that modifies the tree.
2769         (DOM::forbidEventDispatch):
2770         (DOM::allowEventDispatch): 
2771         (DOM::NodeImpl::dispatchEvent): Added assertion.
2772         (DOM::NodeImpl::dispatchGenericEvent): Added assertion.
2773         (DOM::NodeImpl::dispatchHTMLEvent): Added assertion.
2774         (DOM::NodeImpl::dispatchWindowEvent): Added assertion.
2775         (DOM::NodeImpl::dispatchMouseEvent): Added assertion.
2776         (DOM::NodeImpl::dispatchSimulatedMouseEvent): Added assertion.
2777         (DOM::NodeImpl::dispatchUIEvent): Added assertion.
2778         (DOM::NodeImpl::dispatchKeyEvent): Added assertion.
2779         (DOM::NodeImpl::dispatchWheelEvent): Added assertion.
2780         (DOM::NodeImpl::detach): Added assertion.
2781         (DOM::ContainerNodeImpl::insertBefore): Wrapped tree-modifying code.
2782         (DOM::ContainerNodeImpl::replaceChild): Wrapped tree-modifying code.
2783         (DOM::ContainerNodeImpl::removeChild): Wrapped tree-modifying code.
2784         (DOM::ContainerNodeImpl::removeChildren): Wrapped tree-modifying code.
2785         (DOM::ContainerNodeImpl::appendChild): Wrapped tree-modifying code.
2786         (DOM::ContainerNodeImpl::addChild): Wrapped tree-modifying code.
2787         (DOM::ContainerNodeImpl::dispatchChildInsertedEvents): Added. assertion. 
2788
2789 2005-10-06  Beth Dakin  <bdakin@apple.com>
2790
2791         Reviewed by Hyatt
2792
2793         No test case added because you need to interact with a page to see this crash. 
2794
2795         Fix for <rdar://problem/3918278> CSS: :hover:before or :hover crashes in 
2796         RenderObject::repaintObjectsBeforeLayout()
2797
2798         * khtml/rendering/render_container.cpp:
2799         (RenderContainer::updatePseudoChild): Deleted call to removeChild() because destroy() takes
2800                                                 care of that, and we don't want to remove the
2801                                                 node before we destroy it anyway, or positioned
2802                                                 objects won't be appropriately deleted. 
2803
2804 2005-10-06  David Harrison  <harrison@apple.com>
2805
2806         Reviewed by hyatt.
2807
2808         No test cases added or changed because this patch does not address a bug.
2809         
2810         Fix two detach/destroy renames I missed yesterday.
2811         
2812         * khtml/rendering/bidi.cpp:
2813         (khtml::BidiRun::destroy):
2814         (khtml::BidiRun::operator delete):
2815         Renamed inBidiRunDetach to inBidiRunDestroy.
2816         
2817         * khtml/rendering/render_layer.cpp:
2818         (khtml::RenderLayer::operator delete):
2819         (khtml::RenderLayer::destroy):
2820         Renamed inRenderLayerDetach to inRenderLayerDestroy.
2821
2822 2005-10-06  Darin Adler  <darin@apple.com>
2823
2824         Reviewed by Hyatt.
2825
2826         - fixed <rdar://problem/3217793> Monaco bold comes out as Helvetica bold, very bad if you choose Monaco as your fixed-width font
2827         - fixed <rdar://problem/3256269> CSS1: bold/italic font styles not programmatically created if font doesn't include them (3231)
2828           also <http://bugzilla.opendarwin.org/show_bug.cgi?id=3231>
2829
2830         * kwq/WebCoreTextRendererFactory.h: Added WebCoreFont structure, and made this header work for
2831         non-Objective-C compiles. Changed all the methods to take and return WebCoreFont instead of
2832         NSFont *.
2833         * kwq/WebCoreTextRendererFactory.mm:
2834         (WebCoreInitializeFont): Added.
2835         (-[WebCoreTextRendererFactory fontWithFamilies:traits:size:]): Updated to use ERROR so we notice
2836         cases where the subclass does not override these methods.
2837         (-[WebCoreTextRendererFactory isFontFixedPitch:]): Ditto.
2838         (-[WebCoreTextRendererFactory rendererWithFont:]): Ditto.
2839
2840         * WebCore.exp: Added WebCoreInititalizeFont.
2841
2842         * kwq/KWQFont.h: Added WebCoreFont support.
2843         * kwq/KWQFont.mm:
2844         (QFont::QFont): Change to use WebCoreFont.
2845         (QFont::~QFont): Ditto.
2846         (QFont::operator=): Ditto.
2847         (QFont::setFamily): Ditto.
2848         (QFont::setFirstFamily): Ditto.
2849         (QFont::setPixelSize): Ditto.
2850         (QFont::setWeight): Ditto.
2851         (QFont::setItalic): Ditto.
2852         (QFont::determinePitch): Ditto.
2853         (QFont::getWebCoreFont): Added.
2854
2855         * kwq/KWQComboBox.mm: (QComboBox::sizeHint): Pass in WebCoreFont when creating text renderer.
2856         * kwq/KWQFontMetrics.mm: (QFontMetricsPrivate::getRenderer): Ditto.
2857         * kwq/KWQLineEdit.mm: (QLineEdit::sizeForCharacterWidth): Ditto.
2858         * kwq/KWQListBox.mm:
2859         (itemTextRenderer): Ditto.
2860         (groupLabelTextRenderer): Ditto.
2861         (QListBox::sizeForNumberOfLines): Changed non-system-font case to use QFont rather than NSFont
2862         to add boldness, so that group label fonts are bolded even if it's synthesiized bold.
2863         (-[KWQTableView drawRow:clipRect:]): Ditto.
2864         * kwq/KWQPainter.mm: (QPainter::_updateRenderer): Pass in WebCoreFont when creating text renderer.
2865
2866 2005-10-05  Vicki Murley  <vicki@apple.com>
2867
2868         Reviewed by Maciej.
2869  
2870         - fix <rdar://problem/4288829> repro crash on isIndex tag with no attributes
2871
2872         * khtml/html/htmlparser.cpp:
2873         (HTMLParser::handleIsindex): only deref attributes if they exist
2874
2875 2005-10-05  Maciej Stachowiak  <mjs@apple.com>
2876
2877         Reviewed by Eric.
2878
2879         <rdar://problem/4150976> Safari crashes in HTMLImageLoader::dispatchLoadEvent() on particular page (archive attached)
2880
2881         I couldn't figure out how to make an automated test for this; even once I got DumpRenderTree
2882         to mouse in and out it did not crash.
2883         
2884         * khtml/html/html_imageimpl.cpp:
2885         (HTMLImageLoader::dispatchLoadEvent): Check if CachedImage is null before using it.
2886
2887 2005-10-05  David Harrison  <harrison@apple.com>
2888
2889         Reviewed by Darin.
2890
2891         No test cases added or changed because this patch does not address a bug.
2892
2893         For clarity, renamed the "detach()" function to "destroy()" in the following classes:
2894         RenderObject (and subclasses),  BidiRun, ClipRects, InlineBox (and subclasses).
2895         
2896         * khtml/rendering/bidi.cpp:
2897         (khtml::BidiRun::destroy):
2898         (khtml::BidiRun::operator delete):
2899         (khtml::deleteBidiRuns):
2900         * khtml/rendering/bidi.h:
2901         * khtml/rendering/render_block.cpp:
2902         (khtml::RenderBlock::removeChild):
2903         (khtml::RenderBlock::updateFirstLetter):
2904         * khtml/rendering/render_box.cpp:
2905         (RenderBox::destroy):
2906         (RenderBox::dirtyLineBoxes):
2907         (RenderBox::position):
2908         (RenderBox::deleteLineBoxWrapper):
2909         * khtml/rendering/render_box.h:
2910         * khtml/rendering/render_container.cpp:
2911         (RenderContainer::destroy):
2912         (RenderContainer::updatePseudoChild):
2913         (RenderContainer::removeLeftoverAnonymousBoxes):
2914         * khtml/rendering/render_container.h:
2915         * khtml/rendering/render_flow.cpp:
2916         (RenderFlow::deleteLineBoxes):
2917         (RenderFlow::destroy):
2918         * khtml/rendering/render_flow.h:
2919         * khtml/rendering/render_form.cpp:
2920         (RenderTextArea::destroy):
2921         * khtml/rendering/render_form.h:
2922         * khtml/rendering/render_layer.cpp:
2923         (khtml::ClipRects::operator delete):
2924         (khtml::ClipRects::destroy):
2925         (khtml::RenderLayer::operator delete):
2926         (khtml::RenderLayer::destroy):
2927         (khtml::RenderLayer::removeOnlyThisLayer):
2928         * khtml/rendering/render_layer.h:
2929         (khtml::ClipRects::deref):
2930         * khtml/rendering/render_line.cpp:
2931         (khtml::InlineBox::destroy):
2932         (khtml::InlineBox::operator delete):
2933         (khtml::InlineBox::deleteLine):
2934         (khtml::InlineFlowBox::deleteLine):
2935         (khtml::RootInlineBox::destroy):
2936         (khtml::RootInlineBox::detachEllipsisBox):
2937         * khtml/rendering/render_line.h:
2938         * khtml/rendering/render_list.cpp:
2939         (RenderListItem::setStyle):
2940         (RenderListItem::destroy):
2941         * khtml/rendering/render_list.h:
2942         * khtml/rendering/render_object.cpp:
2943         (RenderObject::operator delete):
2944         (RenderObject::destroy):
2945         * khtml/rendering/render_object.h:
2946         * khtml/rendering/render_replaced.cpp:
2947         (RenderWidget::destroy):
2948         * khtml/rendering/render_replaced.h:
2949         * khtml/rendering/render_style.cpp:
2950         (RenderStyle::operator delete):
2951         * khtml/rendering/render_table.cpp:
2952         (RenderTableSection::destroy):
2953         (RenderTableRow::destroy):
2954         (RenderTableRow::removeChildNode):
2955         (RenderTableCell::destroy):
2956         * khtml/rendering/render_table.h:
2957         * khtml/rendering/render_text.cpp:
2958         (InlineTextBox::destroy):
2959         (InlineTextBox::operator delete):
2960         (InlineTextBox::deleteLine):
2961         (RenderText::destroy):
2962         (RenderText::deleteTextBoxes):
2963         (RenderText::position):
2964         * khtml/rendering/render_text.h:
2965         * khtml/xml/dom_docimpl.cpp:
2966         (DocumentImpl::detach):
2967         * khtml/xml/dom_nodeimpl.cpp:
2968         (DOM::NodeImpl::detach):
2969
2970 2005-10-05  Maciej Stachowiak  <mjs@apple.com>
2971
2972         Reviewed by Eric.
2973
2974         - fixed <rdar://problem/3798746> hang in JavaScript getting at URL from frame; isc.fraunhofer.de (works in IE and Firefox)
2975         
2976         * khtml/xml/dom_docimpl.h:
2977         (DOM::DocumentImpl::URL): if the URL is empty, return "about:blank", the JS DOM
2978         at least counts on this, so we may as well do it for other languages too.
2979         (DOM::DocumentImpl::baseURL): base it on URL(), not m_url
2980
2981 2005-10-05  Eric Seidel  <eseidel@apple.com>
2982
2983         Reviewed by mjs.
2984
2985         Improves dependency checking so that SVG JavaScript wrapper files
2986         regenerate when the perl scripts change.
2987
2988         * WebCore.xcodeproj/project.pbxproj:
2989
2990 2005-10-05  Eric Seidel  <eseidel@apple.com>
2991
2992         Reviewed by mjs.
2993
2994         Makes <object> tags not use image mode for svg content:
2995         http://bugzilla.opendarwin.org/show_bug.cgi?id=5175
2996
2997         * khtml/html/html_objectimpl.cpp:
2998         (DOM::HTMLObjectElementImpl::isImageType):
2999
3000 2005-10-05  Anders Carlsson  <andersca@mac.com>
3001
3002         Reviewed by Maciej.
3003
3004         * khtml/ecma/kjs_dom.cpp:
3005         (KJS::DOMNodeProtoFunc::callAsFunction):
3006         * khtml/ecma/kjs_dom.h:
3007         Add JS binding for isSameNode.
3008         
3009         (KJS::DOMNode::):
3010         * khtml/xml/dom_nodeimpl.h:
3011         Implement isSameNode.
3012         
3013         (DOM::NodeImpl::isSameNode):
3014         * kwq/DOM.mm:
3015         (-[DOMNode isSameNode:]):
3016         Add ObjC binding for isSameNode.
3017         
3018 2005-10-05  Maciej Stachowiak  <mjs@apple.com>
3019
3020         Reviewed by Eric.
3021
3022         - fixed a random crasher that happens because the HTMLParser accidentally was refing
3023         the document.
3024
3025         <rdar://problem/4065748> Repro crash at http://www.vanaqua.org using menu system (KHTMLParser::setCurrent(DOM::NodeImpl*))
3026         
3027         I couldn't figure out how to make a reproducible test case for this. The failure is
3028         random memory trashing.
3029
3030         * khtml/html/htmlparser.cpp:
3031         (HTMLStackElem::HTMLStackElem):
3032         (HTMLStackElem::~HTMLStackElem):
3033         (HTMLParser::popNestedHeaderTag):
3034         (HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
3035         (HTMLParser::popOneBlock):
3036
3037 2005-10-04  Maciej Stachowiak  <mjs@apple.com>
3038
3039         Reviewed by Eric.
3040
3041         <rdar://problem/4285236> Denver Regression: crash repeatedly reloading www.supermanhomepage.com
3042         
3043         I couldn't figure out how to make a reproducible test case for this. The failure is
3044         random memory trashing.
3045
3046         * khtml/ecma/kjs_events.cpp:
3047         (KJS::JSAbstractEventListener::handleEvent): Move an unpaired deref to where it is paired.
3048
3049 2005-10-04  Eric Seidel  <eseidel@apple.com>
3050
3051         Reviewed by mjs.
3052
3053         Support direct named attribute lookkup, like FireFox,IE.
3054         This was causing a JavaScript exception for gap.com
3055         <rdar://problem/4285884> Gap.com throws exception "Undefined value" because of Safari doesn't support indexing into a named node map by name
3056
3057         * khtml/ecma/kjs_dom.cpp:
3058         (KJS::DOMNodeList::getOwnPropertySlot): if cleanup
3059         (KJS::DOMNamedNodeMap::nameGetter):
3060         (KJS::DOMNamedNodeMap::getOwnPropertySlot):
3061         * khtml/ecma/kjs_dom.h: added nameGetter
3062
3063 2005-10-04  Eric Seidel  <eseidel@apple.com>
3064
3065         No review, build fix only.
3066
3067         Fix to include "config.h" in every file.
3068         Necessary to support fastMalloc.
3069         http://bugzilla.opendarwin.org/show_bug.cgi?id=5254
3070
3071         * WebCore+SVG/DrawCanvasItem.mm:
3072         * WebCore+SVG/DrawDocument.mm:
3073         * WebCore+SVG/DrawView.mm:
3074         * WebCore+SVG/dom_kdomdocumentwrapper.cpp:
3075         * WebCore+SVG/dom_kdomnodetreewrapper.cpp:
3076         * WebCore+SVG/render_kcanvaswrapper.cpp:
3077         * WebCore+SVG/xml_kdomtokenizer.cpp:
3078         * kcanvas/KCanvas.cpp:
3079         * kcanvas/KCanvasContainer.cpp:
3080         * kcanvas/KCanvasCreator.cpp:
3081         * kcanvas/KCanvasFilters.cpp:
3082         * kcanvas/KCanvasImage.cpp:
3083         * kcanvas/KCanvasItem.cpp:
3084         * kcanvas/KCanvasMatrix.cpp:
3085         * kcanvas/KCanvasPath.cpp:
3086         * kcanvas/KCanvasRegistry.cpp:
3087         * kcanvas/KCanvasResources.cpp:
3088         * kcanvas/KCanvasTreeDebug.cpp:
3089         * kcanvas/KCanvasView.cpp:
3090         * kcanvas/device/KRenderingDevice.cpp:
3091         * kcanvas/device/KRenderingDeviceFactory.cpp:
3092         * kcanvas/device/KRenderingFillPainter.cpp:
3093         * kcanvas/device/KRenderingPaintServerGradient.cpp:
3094         * kcanvas/device/KRenderingPaintServerImage.cpp:
3095         * kcanvas/device/KRenderingPaintServerPattern.cpp:
3096         * kcanvas/device/KRenderingPaintServerSolid.cpp:
3097         * kcanvas/device/KRenderingStrokePainter.cpp:
3098         * kcanvas/device/KRenderingStyle.cpp:
3099         * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
3100         * kcanvas/device/quartz/KCanvasItemQuartz.mm:
3101         * kcanvas/device/quartz/KCanvasResourcesQuartz.mm:
3102         * kcanvas/device/quartz/KCanvasViewQuartz.mm:
3103         * kcanvas/device/quartz/KRenderingDeviceQuartz.mm:
3104         * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
3105         * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
3106         * kcanvas/device/quartz/QuartzSupport.mm:
3107         * kdom/DOMString.cpp:
3108         * kdom/Helper.cpp:
3109         * kdom/KDOMPart.cpp:
3110         * kdom/KDOMSettings.cpp:
3111         * kdom/KDOMView.cpp:
3112         * kdom/Shared.cpp:
3113         * kdom/backends/libxml/LibXMLParser.cpp:
3114         * kdom/bindings/IDLCodeGeneratorEcmaInterface.pm:
3115         * kdom/bindings/IDLCodeGeneratorJs.pm:
3116         * kdom/cache/ImageSource.cpp:
3117         * kdom/cache/KDOMCache.cpp:
3118         * kdom/cache/KDOMCachedDocument.cpp:
3119         * kdom/cache/KDOMCachedImage.cpp:
3120         * kdom/cache/KDOMCachedObject.cpp:
3121         * kdom/cache/KDOMCachedScript.cpp:
3122         * kdom/cache/KDOMCachedStyleSheet.cpp:
3123         * kdom/cache/KDOMLoader.cpp:
3124         * kdom/core/AttrImpl.cpp:
3125         * kdom/core/CDATASectionImpl.cpp:
3126         * kdom/core/CDFInterface.cpp:
3127         * kdom/core/CharacterDataImpl.cpp:
3128         * kdom/core/CommentImpl.cpp:
3129         * kdom/core/DOMConfigurationImpl.cpp:
3130         * kdom/core/DOMErrorHandlerImpl.cpp:
3131         * kdom/core/DOMErrorImpl.cpp:
3132         * kdom/core/DOMExceptionImpl.cpp:
3133         * kdom/core/DOMImplementationImpl.cpp:
3134         * kdom/core/DOMLocatorImpl.cpp:
3135         * kdom/core/DOMObjectImpl.cpp:
3136         * kdom/core/DOMStringImpl.cpp:
3137         * kdom/core/DOMStringListImpl.cpp:
3138         * kdom/core/DOMUserDataImpl.cpp:
3139         * kdom/core/DocumentFragmentImpl.cpp:
3140         * kdom/core/DocumentImpl.cpp:
3141         * kdom/core/DocumentTypeImpl.cpp:
3142         * kdom/core/ElementImpl.cpp:
3143         * kdom/core/EntityImpl.cpp:
3144         * kdom/core/EntityReferenceImpl.cpp:
3145         * kdom/core/NamedAttrMapImpl.cpp:
3146         * kdom/core/NamedNodeMapImpl.cpp:
3147         * kdom/core/NodeImpl.cpp:
3148         * kdom/core/NodeListImpl.cpp:
3149         * kdom/core/NotationImpl.cpp:
3150         * kdom/core/ProcessingInstructionImpl.cpp:
3151         * kdom/core/TagNodeListImpl.cpp:
3152         * kdom/core/TextImpl.cpp:
3153         * kdom/core/TypeInfoImpl.cpp:
3154         * kdom/core/XMLElementImpl.cpp:
3155         * kdom/css/CSSCharsetRuleImpl.cpp:
3156         * kdom/css/CSSFontFaceRuleImpl.cpp:
3157         * kdom/css/CSSImageValueImpl.cpp:
3158         * kdom/css/CSSImportRuleImpl.cpp:
3159         * kdom/css/CSSMediaRuleImpl.cpp:
3160         * kdom/css/CSSPageRuleImpl.cpp:
3161         * kdom/css/CSSPrimitiveValueImpl.cpp:
3162         * kdom/css/CSSRuleImpl.cpp:
3163         * kdom/css/CSSRuleListImpl.cpp:
3164         * kdom/css/CSSStyleDeclarationImpl.cpp:
3165         * kdom/css/CSSStyleRuleImpl.cpp:
3166         * kdom/css/CSSStyleSelector.cpp:
3167         * kdom/css/CSSStyleSheetImpl.cpp:
3168         * kdom/css/CSSUnknownRuleImpl.cpp:
3169         * kdom/css/CSSValueImpl.cpp:
3170         * kdom/css/CSSValueListImpl.cpp:
3171         * kdom/css/CounterImpl.cpp:
3172         * kdom/css/DocumentCSSImpl.cpp:
3173         * kdom/css/DocumentStyleImpl.cpp:
3174         * kdom/css/KDOMCSSParser.cpp:
3175         * kdom/css/LinkStyleImpl.cpp:
3176         * kdom/css/MediaListImpl.cpp:
3177         * kdom/css/RGBColorImpl.cpp:
3178         * kdom/css/RectImpl.cpp:
3179         * kdom/css/RenderStyle.cpp:
3180         * kdom/css/RenderStyleDefs.cpp:
3181         * kdom/css/StyleBaseImpl.cpp:
3182         * kdom/css/StyleSheetImpl.cpp:
3183         * kdom/css/StyleSheetListImpl.cpp:
3184         * kdom/css/kdomparsercss.y:
3185         * kdom/ecma/Ecma.cpp:
3186         * kdom/ecma/GlobalObject.cpp:
3187         * kdom/ecma/Helper.cpp:
3188         * kdom/ecma/ScriptInterpreter.cpp:
3189         * kdom/events/DocumentEventImpl.cpp:
3190         * kdom/events/EventExceptionImpl.cpp:
3191         * kdom/events/EventImpl.cpp:
3192         * kdom/events/EventListenerImpl.cpp:
3193         * kdom/events/EventTargetImpl.cpp:
3194         * kdom/events/KeyboardEventImpl.cpp:
3195         * kdom/events/MouseEventImpl.cpp:
3196         * kdom/events/MutationEventImpl.cpp:
3197         * kdom/events/RegisteredEventListener.cpp:
3198         * kdom/events/UIEventImpl.cpp:
3199         * kdom/ls/DOMImplementationLSImpl.cpp:
3200         * kdom/ls/LSExceptionImpl.cpp:
3201         * kdom/ls/LSInputImpl.cpp:
3202         * kdom/ls/LSOutputImpl.cpp:
3203         * kdom/ls/LSParserFilterImpl.cpp:
3204         * kdom/ls/LSParserImpl.cpp:
3205         * kdom/ls/LSResourceResolverImpl.cpp:
3206         * kdom/ls/LSSerializerFilterImpl.cpp:
3207         * kdom/ls/LSSerializerImpl.cpp:
3208         * kdom/parser/KDOMDocumentBuilder.cpp:
3209         * kdom/parser/KDOMParser.cpp:
3210         * kdom/range/DocumentRangeImpl.cpp:
3211         * kdom/range/RangeExceptionImpl.cpp:
3212         * kdom/range/RangeImpl.cpp:
3213         * kdom/traversal/DocumentTraversalImpl.cpp:
3214         * kdom/traversal/NodeFilterImpl.cpp:
3215         * kdom/traversal/NodeIteratorImpl.cpp:
3216         * kdom/traversal/TraversalImpl.cpp:
3217         * kdom/traversal/TreeWalkerImpl.cpp:
3218         * kdom/views/AbstractViewImpl.cpp:
3219         * kdom/views/DocumentViewImpl.cpp:
3220         * kdom/xpath/XPathEvaluatorImpl.cpp:
3221         * kdom/xpath/XPathExceptionImpl.cpp:
3222         * kdom/xpath/XPathExpressionImpl.cpp:
3223         * kdom/xpath/XPathNSResolverImpl.cpp:
3224         * kdom/xpath/XPathNamespaceImpl.cpp:
3225         * kdom/xpath/XPathResultImpl.cpp:
3226         * kdom/xpath/impl/expression.cpp:
3227         * kdom/xpath/impl/functions.cpp:
3228         * kdom/xpath/impl/parsedstatement.cpp:
3229         * kdom/xpath/impl/path.cpp:
3230         * kdom/xpath/impl/predicate.cpp:
3231         * kdom/xpath/impl/step.cpp:
3232         * kdom/xpath/impl/tokenizer.cpp:
3233         * kdom/xpath/impl/util.cpp:
3234         * kdom/xpath/impl/variablereference.cpp:
3235         * kdom/xpath/impl/xpath.y:
3236         * kdom/xpointer/ElementSchemeImpl.cpp:
3237         * kdom/xpointer/NBCImpl.cpp:
3238         * kdom/xpointer/PointerPartImpl.cpp:
3239         * kdom/xpointer/ShortHandImpl.cpp:
3240         * kdom/xpointer/XMLNSSchemeImpl.cpp:
3241         * kdom/xpointer/XPath1SchemeImpl.cpp:
3242         * kdom/xpointer/XPointerEvaluatorImpl.cpp:
3243         * kdom/xpointer/XPointerExceptionImpl.cpp:
3244         * kdom/xpointer/XPointerExpressionImpl.cpp:
3245         * kdom/xpointer/XPointerHelper.cpp:
3246         * kdom/xpointer/XPointerResultImpl.cpp:
3247         * kdom/xpointer/XPointerSchemeImpl.cpp:
3248         * ksvg2/KSVGFactory.cpp:
3249         * ksvg2/KSVGSettings.cpp:
3250         * ksvg2/KWQKSVGPart.mm:
3251         * ksvg2/KWQKSVGView.mm:
3252         * ksvg2/css/KSVGCSSParser.cpp:
3253         * ksvg2/css/SVGCSSStyleDeclarationImpl.cpp:
3254         * ksvg2/css/SVGCSSStyleSelector.cpp:
3255         * ksvg2/css/SVGCSSStyleSheetImpl.cpp:
3256         * ksvg2/css/SVGRenderStyle.cpp:
3257         * ksvg2/css/SVGRenderStyleDefs.cpp:
3258         * ksvg2/ecma/Ecma.cpp:
3259         * ksvg2/ecma/GlobalObject.cpp:
3260         * ksvg2/events/SVGEventImpl.cpp:
3261         * ksvg2/events/SVGZoomEventImpl.cpp:
3262         * ksvg2/misc/KCanvasRenderingStyle.cpp:
3263         * ksvg2/misc/KSVGDocumentBuilder.cpp:
3264         * ksvg2/misc/KSVGTimeScheduler.cpp:
3265         * ksvg2/svg/CDFInterface.cpp:
3266         * ksvg2/svg/SVGAElementImpl.cpp:
3267         * ksvg2/svg/SVGAngleImpl.cpp:
3268         * ksvg2/svg/SVGAnimateColorElementImpl.cpp:
3269         * ksvg2/svg/SVGAnimateElementImpl.cpp:
3270         * ksvg2/svg/SVGAnimateTransformElementImpl.cpp:
3271         * ksvg2/svg/SVGAnimatedAngleImpl.cpp:
3272         * ksvg2/svg/SVGAnimatedBooleanImpl.cpp:
3273         * ksvg2/svg/SVGAnimatedEnumerationImpl.cpp:
3274         * ksvg2/svg/SVGAnimatedIntegerImpl.cpp:
3275         * ksvg2/svg/SVGAnimatedLengthImpl.cpp:
3276         * ksvg2/svg/SVGAnimatedLengthListImpl.cpp:
3277         * ksvg2/svg/SVGAnimatedNumberImpl.cpp:
3278         * ksvg2/svg/SVGAnimatedNumberListImpl.cpp:
3279         * ksvg2/svg/SVGAnimatedPathDataImpl.cpp:
3280         * ksvg2/svg/SVGAnimatedPointsImpl.cpp:
3281         * ksvg2/svg/SVGAnimatedPreserveAspectRatioImpl.cpp:
3282         * ksvg2/svg/SVGAnimatedRectImpl.cpp:
3283         * ksvg2/svg/SVGAnimatedStringImpl.cpp:
3284         * ksvg2/svg/SVGAnimatedTransformListImpl.cpp:
3285         * ksvg2/svg/SVGAnimationElementImpl.cpp:
3286         * ksvg2/svg/SVGCircleElementImpl.cpp:
3287         * ksvg2/svg/SVGClipPathElementImpl.cpp:
3288         * ksvg2/svg/SVGColorImpl.cpp:
3289         * ksvg2/svg/SVGComponentTransferFunctionElementImpl.cpp:
3290         * ksvg2/svg/SVGCursorElementImpl.cpp:
3291         * ksvg2/svg/SVGDOMImplementationImpl.cpp:
3292         * ksvg2/svg/SVGDefsElementImpl.cpp:
3293         * ksvg2/svg/SVGDescElementImpl.cpp:
3294         * ksvg2/svg/SVGDocumentImpl.cpp:
3295         * ksvg2/svg/SVGElementImpl.cpp:
3296         * ksvg2/svg/SVGElementInstanceImpl.cpp:
3297         * ksvg2/svg/SVGElementInstanceListImpl.cpp:
3298         * ksvg2/svg/SVGEllipseElementImpl.cpp:
3299         * ksvg2/svg/SVGExceptionImpl.cpp:
3300         * ksvg2/svg/SVGExternalResourcesRequiredImpl.cpp:
3301         * ksvg2/svg/SVGFEBlendElementImpl.cpp:
3302         * ksvg2/svg/SVGFEColorMatrixElementImpl.cpp:
3303         * ksvg2/svg/SVGFEComponentTransferElementImpl.cpp:
3304         * ksvg2/svg/SVGFECompositeElementImpl.cpp:
3305         * ksvg2/svg/SVGFEFloodElementImpl.cpp:
3306         * ksvg2/svg/SVGFEFuncAElementImpl.cpp:
3307         * ksvg2/svg/SVGFEFuncBElementImpl.cpp:
3308         * ksvg2/svg/SVGFEFuncGElementImpl.cpp:
3309         * ksvg2/svg/SVGFEFuncRElementImpl.cpp:
3310         * ksvg2/svg/SVGFEGaussianBlurElementImpl.cpp:
3311         * ksvg2/svg/SVGFEImageElementImpl.cpp:
3312         * ksvg2/svg/SVGFEMergeElementImpl.cpp:
3313         * ksvg2/svg/SVGFEMergeNodeElementImpl.cpp:
3314         * ksvg2/svg/SVGFEOffsetElementImpl.cpp:
3315         * ksvg2/svg/SVGFETileElementImpl.cpp:
3316         * ksvg2/svg/SVGFETurbulenceElementImpl.cpp:
3317         * ksvg2/svg/SVGFilterElementImpl.cpp:
3318         * ksvg2/svg/SVGFilterPrimitiveStandardAttributesImpl.cpp:
3319         * ksvg2/svg/SVGFitToViewBoxImpl.cpp:
3320         * ksvg2/svg/SVGGElementImpl.cpp:
3321         * ksvg2/svg/SVGGradientElementImpl.cpp:
3322         * ksvg2/svg/SVGHelper.cpp:
3323         * ksvg2/svg/SVGImageElementImpl.cpp:
3324         * ksvg2/svg/SVGLangSpaceImpl.cpp:
3325         * ksvg2/svg/SVGLengthImpl.cpp:
3326         * ksvg2/svg/SVGLengthListImpl.cpp:
3327         * ksvg2/svg/SVGLineElementImpl.cpp:
3328         * ksvg2/svg/SVGLinearGradientElementImpl.cpp:
3329         * ksvg2/svg/SVGLocatableImpl.cpp:
3330         * ksvg2/svg/SVGMarkerElementImpl.cpp:
3331         * ksvg2/svg/SVGMatrixImpl.cpp:
3332         * ksvg2/svg/SVGNumberImpl.cpp:
3333         * ksvg2/svg/SVGNumberListImpl.cpp:
3334         * ksvg2/svg/SVGPaintImpl.cpp:
3335         * ksvg2/svg/SVGPathElementImpl.cpp:
3336         * ksvg2/svg/SVGPathSegArcImpl.cpp:
3337         * ksvg2/svg/SVGPathSegClosePathImpl.cpp:
3338         * ksvg2/svg/SVGPathSegCurvetoCubicImpl.cpp:
3339         * ksvg2/svg/SVGPathSegCurvetoCubicSmoothImpl.cpp:
3340         * ksvg2/svg/SVGPathSegCurvetoQuadraticImpl.cpp:
3341         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmoothImpl.cpp:
3342         * ksvg2/svg/SVGPathSegImpl.cpp:
3343         * ksvg2/svg/SVGPathSegLinetoHorizontalImpl.cpp:
3344         * ksvg2/svg/SVGPathSegLinetoImpl.cpp:
3345         * ksvg2/svg/SVGPathSegLinetoVerticalImpl.cpp:
3346         * ksvg2/svg/SVGPathSegListImpl.cpp:
3347         * ksvg2/svg/SVGPathSegMovetoImpl.cpp:
3348         * ksvg2/svg/SVGPatternElementImpl.cpp:
3349         * ksvg2/svg/SVGPointImpl.cpp:
3350         * ksvg2/svg/SVGPointListImpl.cpp:
3351         * ksvg2/svg/SVGPolyElementImpl.cpp:
3352         * ksvg2/svg/SVGPolygonElementImpl.cpp:
3353         * ksvg2/svg/SVGPolylineElementImpl.cpp:
3354         * ksvg2/svg/SVGPreserveAspectRatioImpl.cpp:
3355         * ksvg2/svg/SVGRadialGradientElementImpl.cpp:
3356         * ksvg2/svg/SVGRectElementImpl.cpp:
3357         * ksvg2/svg/SVGRectImpl.cpp:
3358         * ksvg2/svg/SVGSVGElementImpl.cpp:
3359         * ksvg2/svg/SVGScriptElementImpl.cpp:
3360         * ksvg2/svg/SVGSetElementImpl.cpp:
3361         * ksvg2/svg/SVGStopElementImpl.cpp:
3362         * ksvg2/svg/SVGStringListImpl.cpp:
3363         * ksvg2/svg/SVGStylableImpl.cpp:
3364         * ksvg2/svg/SVGStyleElementImpl.cpp:
3365         * ksvg2/svg/SVGStyledElementImpl.cpp:
3366         * ksvg2/svg/SVGSwitchElementImpl.cpp:
3367         * ksvg2/svg/SVGSymbolElementImpl.cpp:
3368         * ksvg2/svg/SVGTSpanElementImpl.cpp:
3369         * ksvg2/svg/SVGTestsImpl.cpp:
3370         * ksvg2/svg/SVGTextContentElementImpl.cpp:
3371         * ksvg2/svg/SVGTextElementImpl.cpp:
3372         * ksvg2/svg/SVGTextPositioningElementImpl.cpp:
3373         * ksvg2/svg/SVGTitleElementImpl.cpp:
3374         * ksvg2/svg/SVGTransformImpl.cpp:
3375         * ksvg2/svg/SVGTransformListImpl.cpp:
3376         * ksvg2/svg/SVGTransformableImpl.cpp:
3377         * ksvg2/svg/SVGURIReferenceImpl.cpp:
3378         * ksvg2/svg/SVGUseElementImpl.cpp:
3379         * ksvg2/svg/SVGViewElementImpl.cpp:
3380         * ksvg2/svg/SVGZoomAndPanImpl.cpp:
3381         * ksvg2/svg/svgpathparser.cpp:
3382
3383 2005-10-03  Eric Seidel  <eseidel@apple.com>
3384
3385         Reviewed by mjs.
3386
3387         Fixed AbstractView toString(), by giving it a prototype.
3388         <rdar://problem/4233558> toString on event.view Object fails with "No Default Value" in console
3389
3390         * khtml/ecma/kjs_views.cpp:
3391         (KJS::DOMAbstractView::DOMAbstractView): sets prototype
3392         (KJS::DOMAbstractView::getOwnPropertySlot): now getStaticValue
3393         (KJS::DOMAbstractViewProtoFunc::callAsFunction): renamed
3394         * khtml/ecma/kjs_views.h:
3395
3396 2005-10-03  David Hyatt  <hyatt@apple.com>
3397
3398         Fix regression caused by variable->auto change.  Accidentally removed a line of code from calcWidthUsing.
3399         
3400         Reviewed by mjs
3401
3402         * khtml/rendering/render_box.cpp:
3403         (RenderBox::calcWidthUsing):
3404
3405 2005-10-03  Justin Garcia  <justin.garcia@apple.com>
3406
3407         Reviewed by darin
3408         
3409         <rdar://problem/4060947> Safari crashes trying to save PDF file as web archive (NULL KHTMLPart)
3410
3411         * kwq/WebCoreBridge.mm:
3412         (+[WebCoreBridge bridgeForDOMDocument:]):
3413         Added a check for a null part.
3414
3415 2005-10-03  Justin Garcia  <justin.garcia@apple.com>
3416
3417         Reviewed by geoff, darin
3418
3419         * khtml/khtml_part.cpp:
3420         (KHTMLPart::handleFallbackContent):
3421         Don't handle fallback content for <embed> tags.
3422
3423 2005-10-03  Maciej Stachowiak  <mjs@apple.com>
3424
3425         - add missing config.h
3426
3427         * khtml/config.h: Added.
3428
3429 2005-10-03  Maciej Stachowiak  <mjs@apple.com>
3430
3431         Reviewed by Darin.
3432
3433         http://bugzilla.opendarwin.org/show_bug.cgi?id=5180
3434         event.stopPropagation() prevents the default action - it shouldn't