1 2005-04-22 Darin Adler <darin@apple.com>
5 - a small editing-related code cleanup
7 * khtml/rendering/render_text.h: Added positionForOffset and made offsetForPosition const.
8 * khtml/rendering/render_text.cpp:
9 (InlineTextBox::offsetForPosition): Made const.
10 (InlineTextBox::positionForOffset): Added. Moved code here from caretRect.
11 (RenderText::caretRect): Call positionForOffset instead of doing the work here.
13 2005-04-21 David Hyatt <hyatt@apple.com>
15 Fix for 4095839, wrong background image used on flechtwerk.de. Make sure that the global mapped
16 attribute cache hashed background attributes into per-document buckets.
18 * khtml/html/html_baseimpl.cpp:
19 (HTMLBodyElementImpl::mapToEntry):
20 * khtml/html/html_elementimpl.h:
22 * khtml/html/html_tableimpl.cpp:
23 (HTMLTableElementImpl::mapToEntry):
24 (HTMLTablePartElementImpl::mapToEntry):
25 * khtml/xml/dom_docimpl.cpp:
26 (DocumentImpl::DocumentImpl):
27 * khtml/xml/dom_docimpl.h:
28 (DOM::DocumentImpl::docID):
30 2005-04-21 Vicki Murley <vicki@apple.com>
32 - layout test for 4065447, outerHTML on images
34 * layout-tests/fast/dynamic/outerHTML-img-expected.txt: Added.
35 * layout-tests/fast/dynamic/outerHTML-img.html: Added.
37 2005-04-20 Vicki Murley <vicki@apple.com>
41 - fixed <rdar://problem/4065447> support outerHTML on IMG elements
43 * khtml/html/html_elementimpl.cpp:
44 (HTMLElementImpl::setOuterHTML):
46 2005-04-18 David Hyatt <hyatt@apple.com>
48 Fix min-height so that when it resolves to auto it does not use the box's intrinsic height.
50 * khtml/rendering/render_box.cpp:
51 (RenderBox::calcHeight):
52 (RenderBox::calcHeightUsing):
54 2005-04-18 David Hyatt <hyatt@apple.com>
56 Back out fix for 4032346, since it is causing garbled image content on many sites.
58 The bug tracking the fix is 4069093.
60 (khtml::RenderBlock::matchedEndLine):
62 2005-04-18 David Hyatt <hyatt@apple.com>
64 Fix the smile in the Acid2 test. Floats should not grow to contain other floats unless height is auto. Otherwise
65 the float should use the specified height.
67 Also fix row 14 of the Acid2 test. Although ambiguous, just modify the table cell baseline alignment code to align
68 to the bottom of the cell's content height if no suitable baseline could be found.
70 * khtml/rendering/render_block.cpp:
71 (khtml::RenderBlock::layoutBlock):
72 * khtml/rendering/render_block.h:
73 (khtml::RenderBlock::firstRootBox):
74 (khtml::RenderBlock::lastRootBox):
75 * khtml/rendering/render_table.cpp:
76 (RenderTableSection::calcRowHeight):
77 (RenderTableCell::baselinePosition):
79 2005-04-15 David Hyatt <hyatt@apple.com>
81 Make sure empty tables honor CSS-specified heights when they have no rows or sections. This is done only
82 in strict mode, since it is not compatible with WinIE.
84 * khtml/rendering/render_table.cpp:
85 (RenderTable::layout):
87 2005-04-15 David Hyatt <hyatt@apple.com>
89 Fix for row 13 of the Acid2 test. Change HTML comment parsing in strict mode to do proper SGML parsing,
90 checking for pairs of -- and only being willing to close the comment if every -- is paired up.
92 * khtml/html/htmltokenizer.cpp:
93 (khtml::HTMLTokenizer::parseComment):
95 2005-04-12 Maciej Stachowiak <mjs@apple.com>
99 - use custom single-threaded malloc for all non-GC JavaScriptCore
100 allocations, for a 9.1% speedup on JavaScript iBench
102 * khtml/ecma/kjs_binding.cpp:
104 * khtml/ecma/kjs_proxy.cpp:
105 (KJSProxyImpl::evaluate):
107 2005-04-15 David Hyatt <hyatt@apple.com>
109 Fix the six pixel gap between rows nine and ten of the Acid2 test. Make sure that percentage heights that
110 resolve to auto are properly treated as though they have auto height by the self-collapsing block check (as per
111 section 8.3.1, paragraph 7 of the CSS2.1 spec).
113 * khtml/rendering/render_block.cpp:
114 (khtml::RenderBlock::isSelfCollapsingBlock):
116 2005-04-15 David Hyatt <hyatt@apple.com>
118 The Acid2 test and the reference rendering both make use of overflow:hidden on the <html> element. Turns out
119 the CSS2.1 wording for this behavior has been revised (based off WinIE/Mozilla behavior). Change our behavior
120 to match and make <html> overflow apply to the viewport.
122 * khtml/khtmlview.cpp:
123 (KHTMLView::applyOverflowToViewport):
126 * khtml/rendering/render_box.cpp:
127 (RenderBox::setStyle):
129 2005-04-14 David Hyatt <hyatt@apple.com>
131 3258403 and 3258402 can now be fixed. min/max-width/height support is now complete. This patch makes them
132 work for positioned elements and enables us to pass row one of the Acid2 test.
134 * khtml/rendering/render_box.cpp:
135 (RenderBox::calcAbsoluteHorizontal):
136 (RenderBox::calcAbsoluteHorizontalValues):
137 (RenderBox::calcAbsoluteVertical):
138 (RenderBox::calcAbsoluteVerticalValues):
139 * khtml/rendering/render_box.h:
141 2005-04-12 David Hyatt <hyatt@apple.com>
143 Working on the Acid2 test, Row 1.
145 Improve checkChild for the DTD so that it knows what mode a document is in. This allows it to adhere more
146 strictly to the actual DTD in strict mode and almost strict mode.
148 Change the <table>-inside-<p> check so that <table> is disallowed inside <p> in
149 strict mode and almost strict mode. This matches Firefox behavior, which allows <table>
150 inside <p> only in quirks mode.
152 * khtml/html/dtd.cpp:
155 * khtml/html/htmlparser.cpp:
156 (KHTMLParser::insertNode):
157 * khtml/html/htmltokenizer.cpp:
158 (khtml::HTMLTokenizer::parseTag):
159 * khtml/xml/dom_elementimpl.cpp:
160 (ElementImpl::childAllowed):
162 2005-04-12 Vicki Murley <vicki@apple.com>
166 - fixed <rdar://problem/3760895> Request for including an implementation of the elementFromPoint function
168 * khtml/dom/dom_doc.cpp:
169 (DOM::Document::elementFromPoint):
170 * khtml/dom/dom_doc.h:
171 * khtml/ecma/kjs_dom.cpp:
172 (DOMDocumentProtoFunc::tryCall):
173 * khtml/ecma/kjs_dom.h:
174 (KJS::DOMDocument::):
175 * khtml/ecma/kjs_dom.lut.h:
177 * khtml/xml/dom_docimpl.cpp:
178 (DocumentImpl::elementFromPoint):
179 * khtml/xml/dom_docimpl.h:
181 2005-04-12 David Hyatt <hyatt@apple.com>
183 Beginning of work to support the Acid2 CSS test put forward by the Web Standards Project. Fix
184 our handling of the rel attribute on <link> elements to do a proper tokenization so that stylesheets
185 can be recognized even when other keywords are present in the rel attribute.
187 * khtml/html/html_headimpl.cpp:
188 (HTMLLinkElementImpl::HTMLLinkElementImpl):
189 (HTMLLinkElementImpl::parseHTMLAttribute):
190 (HTMLLinkElementImpl::tokenizeRelAttribute):
191 (HTMLLinkElementImpl::process):
192 * khtml/html/html_headimpl.h:
194 2005-04-12 John Sullivan <sullivan@apple.com>
196 - fixed these two bugs (I also fixed these on the experimental-ui-branch)
197 <rdar://problem/3154293> Find Next should not scroll page if the next target is already visible
198 <rdar://problem/3121828> scrollToVisible on find cuts off the left part of the view due to needless horiz. scroll
202 * kwq/KWQKHTMLPart.mm:
203 (KWQKHTMLPart::jumpToSelection):
204 Trey had written code to address these issues, but left it commented out due to other
205 problems. The other problems no longer occur, so I uncommented Trey's code, and then
206 discovered that I could make it behave more like TextEdit with many fewer lines of
209 2005-04-08 David Harrison <harrison@apple.com>
211 Reviewed by Dave Hyatt.
213 <rdar://problem/4084106> Remove NSAccessibilityForegroundColorTextAttributeWrapper
215 * kwq/KWQAccObject.mm:
216 (AXAttributeStringSetStyle):
217 Use NSAccessibilityForegroundColorTextAttribute directly.
219 2005-04-05 David Hyatt <hyatt@apple.com>
221 Fix for 4077106, make sure that mouse wheeling in overflow sections uses 40 rather than 10 as the base line
226 * khtml/rendering/render_layer.cpp:
227 (RenderLayer::positionScrollbars):
228 * kwq/KWQScrollBar.mm:
229 (QScrollBar::scroll):
231 2005-04-04 Vicki Murley <vicki@apple.com>
235 - fixed <rdar://problem/3871669> no focus or blur methods on HTML button elements
237 * khtml/dom/html_form.cpp:
238 (HTMLButtonElement::focus):
239 (HTMLButtonElement::blur):
240 * khtml/dom/html_form.h:
241 * khtml/ecma/kjs_html.cpp:
242 (KJS::HTMLElementFunction::tryCall):
243 * khtml/ecma/kjs_html.h:
244 (KJS::HTMLElement::):
245 * khtml/ecma/kjs_html.lut.h:
247 * khtml/html/html_formimpl.cpp:
248 (DOM::HTMLButtonElementImpl::blur):
249 (DOM::HTMLButtonElementImpl::focus):
250 * khtml/html/html_formimpl.h:
254 2005-03-28 David Harrison <harrison@apple.com>
258 <rdar://problem/4069161> REGRESSION (8A416-8A419): Safari crash bringing up context menu for non-HTML content in a frame
260 * kwq/KWQAccObject.mm:
261 (-[KWQAccObject rendererForView:]):
262 Nil-check node variable instead of rechecking document variable.
266 2005-03-27 Darin Adler <darin@apple.com>
268 Reviewed by me, fix by Kida-san.
270 - fixed <rdar://problem/4067474> 8A424: Safari immediately quit by Cmd+Ctrll+'D'
272 * kwq/WebCoreBridge.mm: (-[WebCoreBridge convertToNSRange:DOM::]):
277 2005-03-24 Richard Williamson <rjw@apple.com>
279 Fixed <rdar://problem/4052683> After adding/removing stocks from Stocks Widget, stock areas went blank
281 The request was being collected before firing it's load handler.
282 We now gc protect the request while it's loading.
286 * khtml/ecma/xmlhttprequest.cpp:
287 (KJS::XMLHttpRequest::send):
288 (KJS::XMLHttpRequest::abort):
289 (KJS::XMLHttpRequest::slotFinished):
290 (KJS::XMLHttpRequestProtoFunc::tryCall):
294 2005-03-23 Darin Adler <darin@apple.com>
296 Further fix for 4053515.
298 Covered cases where text position doesn't lie inside a
303 * khtml/editing/visible_text.cpp:
304 (khtml::TextIterator::setRangeFromLocationAndLength):
306 2005-03-23 Richard Williamson <rjw@apple.com>
308 Fixed <rdar://problem/4053515> REGRESSION (Mail): Kotoeri input method reconversion does not work in WebViews
310 We now use actual document NSRanges to represent both marked text
311 ranges and selection ranges.
315 * khtml/editing/visible_text.cpp:
316 (khtml::TextIterator::rangeLength):
317 (khtml::TextIterator::setRangeFromLocationAndLength):
318 * khtml/editing/visible_text.h:
319 * kwq/WebCoreBridge.h:
320 * kwq/WebCoreBridge.mm:
321 (-[WebCoreBridge convertToNSRange:DOM::]):
322 (-[WebCoreBridge DOM::convertToDOMRange:]):
323 (-[WebCoreBridge selectNSRange:]):
324 (-[WebCoreBridge markedTextDOMRange]):
325 (-[WebCoreBridge markedTextNSRange]):
327 2005-03-22 Kevin Decker <kdecker@apple.com>
331 Fixed <rdar://problem/4062336> REGRESSION (406-407): HTML submenus not working at hrweb.apple.com after going back
333 Rolled out the fix for <rdar://problem/4041374> REGRESSION (185-186): unload handlers (at least those added with addEventListener) are broken
335 We clearly need a better solution to 4041374. We can't indiscriminately remove event listeners in closeURL() after-all. Since event listeners are registered in a <script> tag, which is evaluated and executed at page load time, this becomes a problem since we don't reevaluate a page's <script> that is in the back/forward cache. Thus once you leave the page, the listeners are gone for good. This is the problem.
337 * khtml/khtml_part.cpp:
338 (KHTMLPart::closeURL):
339 * khtml/xml/dom_docimpl.cpp:
340 (DocumentImpl::detach):
344 2005-03-22 Vicki Murley <vicki@apple.com>
346 - roll the fix for <rdar://problem/4060266> back in, since its
349 * khtml/editing/visible_text.cpp:
350 (khtml::TextIterator::handleTextBox):
352 2005-03-22 Vicki Murley <vicki@apple.com>
354 - roll out the fix for <rdar://problem/4060266> since it was denied by CCC
356 * khtml/editing/visible_text.cpp:
357 (khtml::TextIterator::handleTextBox):
359 2005-03-22 David Harrison <harrison@apple.com>
363 <rdar://problem/4060266> Double-clicking in Dictionary.app doesn't work for some words (coming just after style change)
365 * khtml/editing/visible_text.cpp:
366 (khtml::TextIterator::handleTextBox):
367 Complete the check of whether to emit space for collapsed space.
369 2005-03-22 David Harrison <harrison@apple.com>
373 <rdar://problem/4061443> REGRESSION (8A420-8A421): Pasting in the Stickies widget is broken again
375 * khtml/editing/htmlediting.cpp:
376 (khtml::positionBeforeContainingSpecialElement):
377 (khtml::positionAfterContainingSpecialElement):
378 Return unchanged Position rather than a null or non-editable one.
382 2005-03-20 Ken Kocienda <kocienda@apple.com>
386 I made an error in this test earlier. It was not testing what I intended. Fixed.
388 * layout-tests/editing/unsupported-content/list-delete-001-expected.txt
389 * layout-tests/editing/unsupported-content/list-delete-001.html
393 * layout-tests/editing/unsupported-content/table-delete-001-expected.txt: Added.
394 * layout-tests/editing/unsupported-content/table-delete-001.html: Added.
395 * layout-tests/editing/unsupported-content/table-delete-002-expected.txt: Added.
396 * layout-tests/editing/unsupported-content/table-delete-002.html: Added.
397 * layout-tests/editing/unsupported-content/table-delete-003-expected.txt: Added.
398 * layout-tests/editing/unsupported-content/table-delete-003.html: Added.
399 * layout-tests/editing/unsupported-content/table-type-after-expected.txt: Added.
400 * layout-tests/editing/unsupported-content/table-type-after.html: Added.
401 * layout-tests/editing/unsupported-content/table-type-before-expected.txt: Added.
402 * layout-tests/editing/unsupported-content/table-type-before.html: Added.
404 2005-03-20 Darin Adler <darin@apple.com>
408 - fixed <rdar://problem/3923903> REGRESSION (164-165): Repro Safari crash in khtml::RenderLayer::scrollToOffset
410 * khtml/rendering/render_layer.cpp: (RenderLayer::scrollToOffset): Check canvas for nil.
412 2005-03-20 David Harrison <harrison@apple.com>
416 <rdar://problem/4055127> Dictionary pop-up panel misplaced at beginning of text blocks (breaks double-clicking in Dictionary.app)
418 SimplifiedBackwardsTextIterator::advance() needed to not limit to textnodes
419 when checking whether moving back across block boundaries
421 VisibleUnits previousBoundary() needed to INIT_DOWN when creating result VisiblePosition
423 All editing tests pass.
425 * khtml/editing/visible_text.cpp:
426 (khtml::SimplifiedBackwardsTextIterator::advance):
427 * khtml/editing/visible_units.cpp:
428 (khtml::previousBoundary):
430 2005-03-20 Darin Adler <darin@apple.com>
432 Reviewed by Harrison.
434 - fixed <rdar://problem/4059914> when you select all of a frame's content, need to select the frame in the parent document so it can be easily deleted
436 * khtml/khtml_part.h: Added selectFrameElementInParentIfFullySelected.
437 * khtml/khtml_part.cpp:
439 (KHTMLPart::setFocusNodeIfNeeded): Changed to not set focus to a frame; was not what this function was
440 intended to do, and caused trouble when trying to select a frame element.
441 (KHTMLPart::khtmlMouseReleaseEvent): Call selectFrameElementInParentIfFullySelected.
442 (KHTMLPart::selectAll): Call selectFrameElementInParentIfFullySelected.
443 (KHTMLPart::selectFrameElementInParentIfFullySelected): Added. Selects the frame element in the parent
444 if a frame is entirely selected, which makes it easier to delete or replace the frame and is consistent
445 with the changes Maciej made recently for other elements.
447 * kwq/WebCoreBridge.mm:
448 (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Call selectFrameElementInParentIfFullySelected.
449 (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Call selectFrameElementInParentIfFullySelected.
451 2005-03-20 Darin Adler <darin@apple.com>
453 Reviewed by me, code change by Ken.
455 - fixed <rdar://problem/4059852> Deleting from first element of list makes content jump to wrong place
457 * khtml/editing/htmlediting.cpp:
458 (khtml::isListStructureNode): Added.
459 (khtml::DeleteSelectionCommand::moveNodesAfterNode): Check for list nodes as well as table nodes.
461 2005-03-20 Ken Kocienda <kocienda@apple.com>
465 Added tests to cover new "unsupported content" editing code.
467 * layout-tests/editing/unsupported-content/list-delete-001-expected.txt: Added.
468 * layout-tests/editing/unsupported-content/list-delete-001.html: Added.
469 * layout-tests/editing/unsupported-content/list-delete-002-expected.txt: Added.
470 * layout-tests/editing/unsupported-content/list-delete-002.html: Added.
471 * layout-tests/editing/unsupported-content/list-delete-003-expected.txt: Added.
472 * layout-tests/editing/unsupported-content/list-delete-003.html: Added.
473 * layout-tests/editing/unsupported-content/list-type-after-expected.txt: Added.
474 * layout-tests/editing/unsupported-content/list-type-after.html: Added.
475 * layout-tests/editing/unsupported-content/list-type-before-expected.txt: Added.
476 * layout-tests/editing/unsupported-content/list-type-before.html: Added.
478 2005-03-20 Ken Kocienda <kocienda@apple.com>
484 <rdar://problem/4059578> Entire list deleted, and caret disappears, when delete key hit at end of list
486 The problem is that a new case in the delete code did not consider when the
487 downstream end node of the selection might be an ancestor of the upstream start
488 node. That is the case in this bug. The downstream end is the body element, and
489 this line of code would delete all the children of the downstream end:
490 removeChildrenInRangePreservingPosition(m_downstreamEnd.node(), 0,
491 m_downstreamEnd.offset(), m_upstreamStart);
493 The fix is to check for this "is ancestor" case, and do some tree logic to find
494 the right offset of the downstream end node for the call to
495 removeChildrenInRangePreservingPosition().
497 * khtml/editing/htmlediting.cpp:
498 (khtml::DeleteSelectionCommand::handleGeneralDelete): Fixed as described.
500 2005-03-19 Ken Kocienda <kocienda@apple.com>
506 <rdar://problem/4059384> Cannot place insertion point correctly in editable text that avoids floating elements
508 Note: I strongly suspect this bug blocks a complete solution to this other Tiger/P2:
509 <rdar://problem/4055748> AX: Dictionary pop-up panel shows at wrong place on specific parts of particular pages
511 * khtml/rendering/render_text.cpp:
512 (RenderText::caretRect): Change the y-coordinate used to calculate the available width for a line. Height is wrong.
513 Top of the box containing the text where the click is done is correct. Also, add in the x-offset for the start
514 of the text box when calculating the available width. If this text box is avoiding a float at the y-coordinate
515 for the relevant box, failure to add in the amount of float-avoidance will make the text at the coordinates
516 greater than end-of-line minus float-avoidance ineligible for caret placement.
518 2005-03-19 Darin Adler <darin@apple.com>
522 - fixed <rdar://problem/4057594> REGRESSION (125-406): Unrepro crash in HTMLTokenizer::allDataProcessed after hitting Back button
524 * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::allDataProcessed):
525 To get the part safely after calling end, save a guarded pointer to the view.
526 The old way could end trying to call a virtual function a part that was destroyed.
528 2005-03-19 Maciej Stachowiak <mjs@apple.com>
532 <rdar://problem/4053506> Pasting Tables and Cells in Mail does not allow editing before or after
533 <rdar://problem/4005954> REGRESSION (Mail): After copy/paste of content containing list element cannot go back to entering text at left side of page
535 * khtml/editing/htmlediting.cpp:
536 (khtml::maxDeepOffset):
537 (khtml::CompositeEditCommand::removeFullySelectedNodePreservingPosition):
538 (khtml::CompositeEditCommand::removeChildrenInRangePreservingPosition):
539 (khtml::CompositeEditCommand::removeNodePreservingPosition):
540 (khtml::CompositeEditCommand::insertBlockPlaceholder):
541 (khtml::CompositeEditCommand::appendBlockPlaceholder):
542 (khtml::CompositeEditCommand::forceBlockPlaceholder):
543 (khtml::CompositeEditCommand::addBlockPlaceholderIfNeeded):
544 (khtml::isSpecialElement):
545 (khtml::isFirstVisiblePositionInSpecialElementInFragment):
546 (khtml::positionBeforePossibleContainingSpecialElement):
547 (khtml::positionAfterPossibleContainingSpecialElement):
548 (khtml::ApplyStyleCommand::applyInlineStyle):
549 (khtml::DeleteSelectionCommand::initializePositionData):
550 (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
551 (khtml::DeleteSelectionCommand::handleGeneralDelete):
552 (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
553 (khtml::DeleteSelectionCommand::doApply):
554 (khtml::InsertParagraphSeparatorCommand::doApply):
555 (khtml::ReplacementFragment::ReplacementFragment):
556 (khtml::ReplaceSelectionCommand::doApply):
557 * khtml/editing/htmlediting.h:
558 * khtml/editing/visible_position.cpp:
559 (khtml::isRenderedBR):
560 (khtml::VisiblePosition::initDownstream):
561 (khtml::isLastVisiblePositionInBlock):
562 * khtml/rendering/render_line.cpp:
563 (khtml::RootInlineBox::closestLeafChildForXPos):
564 * khtml/xml/dom_nodeimpl.cpp:
565 (NodeImpl::isBlockFlowOrTable):
566 (NodeImpl::isEditableBlock):
567 (NodeImpl::enclosingBlockFlowOrTableElement):
568 * khtml/xml/dom_nodeimpl.h:
569 * khtml/xml/dom_position.cpp:
570 (DOM::Position::upstream):
571 (DOM::Position::downstream):
572 * layout-tests/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
573 * layout-tests/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
574 * layout-tests/editing/deleting/delete-select-all-001-expected.txt:
575 * layout-tests/editing/deleting/delete-select-all-003-expected.txt:
576 * layout-tests/editing/inserting/insert-3786362-fix-expected.txt:
578 2005-03-19 John Sullivan <sullivan@apple.com>
582 - fixed <rdar://problem/4058740> Crash (nil-deref) editing Mail reply
583 message in KWQKHTMLPart::fontForSelection (MailViewer-723)
585 * kwq/KWQKHTMLPart.mm:
586 (KWQKHTMLPart::fontForSelection):
587 Add nil check to loop. It shouldn't be necessary, but this crash trace seems to be
588 running into it. We're not completely certain, but the check is harmless at worst.
592 2005-03-18 David Harrison <harrison@apple.com>
596 <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
600 * kwq/KWQAccObject.mm:
601 (-[KWQAccObject rendererForView:]):
602 New to cover both the WebCore and WebKit NSViews.
604 (-[KWQAccObject _accessibilityParentForSubview:]):
607 * kwq/WebCoreFrameView.h:
608 Add WebCoreBridgeHolder protocol to get access to WebKit NSViews.
610 2005-03-18 David Harrison <harrison@apple.com>
612 Reviewed by Darin, Ken.
614 <rdar://problem/3735625> AX: add AXPress action if an element has an onclick handler
616 * khtml/dom/html_form.cpp:
617 (HTMLInputElement::click):
618 * khtml/html/html_elementimpl.cpp:
619 (HTMLElementImpl::click):
620 (HTMLElementImpl::accessKeyAction):
621 * khtml/html/html_elementimpl.h:
622 * khtml/html/html_formimpl.cpp:
623 (DOM::HTMLFormElementImpl::submitClick):
624 (DOM::HTMLButtonElementImpl::click):
625 (DOM::HTMLButtonElementImpl::accessKeyAction):
626 (DOM::HTMLInputElementImpl::click):
627 (DOM::HTMLInputElementImpl::accessKeyAction):
628 (DOM::HTMLInputElementImpl::defaultEventHandler):
629 (DOM::HTMLLabelElementImpl::accessKeyAction):
630 (DOM::HTMLSelectElementImpl::accessKeyAction):
631 (DOM::HTMLTextAreaElementImpl::accessKeyAction):
632 * khtml/html/html_formimpl.h:
633 * khtml/html/html_inlineimpl.cpp:
634 (HTMLAnchorElementImpl::defaultEventHandler):
635 (HTMLAnchorElementImpl::accessKeyAction):
636 * khtml/html/html_inlineimpl.h:
637 * khtml/rendering/render_form.cpp:
638 (RenderFileButton::click):
639 * khtml/rendering/render_form.h:
640 * khtml/xml/dom_docimpl.cpp:
641 (DocumentImpl::defaultEventHandler):
642 * khtml/xml/dom_elementimpl.h:
643 (DOM::ElementImpl::accessKeyAction):
645 (-[DOMHTMLInputElement click]):
649 * kwq/KWQFileButton.h:
650 * kwq/KWQFileButton.mm:
651 (KWQFileButton::click):
653 Add accessKeyAction parameter about whether to limit to HTMLElementImpl subclasses that JavaScript wants, or to apply to others as well.
655 Add click() parameter about whether to send the mousedown and mouseup events in addition to the click event.
657 * kwq/KWQAccObject.mm:
658 (-[KWQAccObject mouseButtonListener]):
659 Locate a mousedown, mouseup, or click handler in the current element and its ancestors.
661 (-[KWQAccObject actionElement]):
662 (-[KWQAccObject accessibilityIsIgnored]):
663 (-[KWQAccObject accessibilityPerformAction:]):
664 Consider mouseButtonListener.
666 2005-03-18 John Sullivan <sullivan@apple.com>
670 - fixed <rdar://problem/4002164> maps that include start and end
671 location don't print right from maps.google.com
673 I thought I checked this in yesterday but a ChangeLog conflict aborted my checkin
676 * khtml/rendering/render_style.cpp:
678 flag name changed from _should_correct_text_color to _force_backgrounds_to_white
680 * khtml/rendering/render_style.h:
681 (khtml::RenderStyle::InheritedFlags::operator==):
682 flag name changed from _should_correct_text_color to _force_backgrounds_to_white
683 (khtml::RenderStyle::setBitDefaults):
685 (khtml::RenderStyle::forceBackgroundsToWhite):
686 ditto, and method name changed too
687 (khtml::RenderStyle::setForceBackgroundsToWhite):
690 * khtml/rendering/render_text.cpp:
691 (InlineTextBox::paint):
692 updated for name change; also, compare text against white instead of current bg color
693 because we no longer actually modify the bg color (previously we would always set
694 the bg color to white, so the result is the same)
696 * khtml/xml/dom_docimpl.cpp:
697 (DocumentImpl::recalcStyle):
698 updated for name change
700 * kwq/WebCoreBridge.mm:
701 (-[WebCoreBridge styleSheetForPrinting]):
703 (-[WebCoreBridge reapplyStylesForDeviceType:]):
704 removed the code that called styleSheetForPrinting; we no longer use a stylesheet
707 * khtml/rendering/render_box.cpp:
708 (RenderBox::paintBackgroundExtended):
709 If forceBackgroundsToWhite flag is set, convert background images and
710 background colors to white background color with no background image.
712 2005-03-18 Ken Kocienda <kocienda@apple.com>
718 <rdar://problem/4056718> Pasting quotes the entire message
720 * khtml/editing/htmlediting.cpp:
721 (khtml::ReplaceSelectionCommand::doApply): After pasting, nodes are moved to the block containing
722 the end of the pasted content in certain cases. This move logic used to stop once it moved all the
723 siblings of the node following the last node of the pasted-in content. This means that block elements
724 could get moved, and if the pasted-in content included a mail blockquote, this could result in
725 one quote level getting added. The fix is to stop the move of nodes once a <br>, block element, or
726 <table> is seen. This only affected one of the many test cases we have for such scenarios, and
727 the change to that result makes sense given the code change.
728 * layout-tests/editing/pasteboard/paste-text-003-expected.txt: This test result changed in a way that
729 adequately tests the behavior change, so I did not add a new test.
731 2005-03-17 Ken Kocienda <kocienda@apple.com>
737 <rdar://problem/4051809> 8A413: Cursor-up in a mail message sometimes gets stuck (with specific reproducible case)
739 * khtml/rendering/render_text.cpp:
740 (RenderText::positionForCoordinates): Consider two lines: line-above and line-below. If the caret position in line-below
741 was at an x coordinate between half way through the x coordinate of the last character on the line-above and the
742 end of that same character, this bug would happen since the positioning code would assume that it could create a
743 VisiblePosition with a DOWNSTREAM affinity. Now, I check to see if the character position on the line-above is the
744 last character on that line, and if it is, I use UPSTREAM as the affinity.
748 2005-03-17 David Harrison <harrison@apple.com>
750 Reviewed by Darin, Ken.
752 * khtml/editing/htmlediting.cpp:
753 (khtml::EditCommandPtr::setEndingSelection):
754 Fixed typo so that it calls setEndingSelection rather than setStartingSelection.
755 Commented out this unused method, tho, since this is late in Tiger. Proved unused by successful build after temporarily removing method declaration or implemenation.
757 2005-03-16 Kevin Decker <kdecker@apple.com>
761 Fixed <rdar://problem/4046665> REGRESSION (403-405): mypage.apple.com login does not work (hits assertion in Development build)
763 * kwq/WebCoreBridge.mm:
764 (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Check always came back false when callers would send a nil NSURL to this method. Now we allow the empty url cases, eg., <frame src="">
766 2005-03-16 Darin Adler <darin@apple.com>
770 - fixed <rdar://problem/4045203> REGRESSION (125-188): Redundant JS imports crash Safari
772 * khtml/html/htmltokenizer.h: Take inWRite bool out of NDEBUG ifdef.
773 * khtml/html/htmltokenizer.cpp:
774 (khtml::HTMLTokenizer::HTMLTokenizer): Take inWrite bool management code out of NDEBUG ifdef.
775 (khtml::HTMLTokenizer::write): Ditto. Don't call end if inWrite is true, since it will be called
776 when you return to the body of the outer write() call.
777 (khtml::HTMLTokenizer::allDataProcessed): Don't call end() if inWrite is true for the same reason.
778 (khtml::HTMLTokenizer::finish): Ditto.
780 * kwq/KWQWidget.mm: (QWidget::getOuterView): Removed bogus assertion that has been vexing us of late.
782 2005-03-16 David Harrison <harrison@apple.com>
784 Reviewed by me (written by Patti Yeh).
786 * kwq/KWQAccObject.mm:
787 (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
788 Use LeftWordIfOnBoundary instead of RightWordIfOnBoundary.
790 (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
791 Use RightWordIfOnBoundary instead of LeftWordIfOnBoundary.
793 2005-03-16 David Harrison <harrison@apple.com>
797 <rdar://problem/4054590> AX: Dictionary panel does not work when page is scrolled on Safari
799 * kwq/KWQAccObject.mm:
800 (-[KWQAccObject doAXTextMarkerForPosition:]):
801 Add in the view's contentsX and contentsY to the point.
803 2005-03-16 David Harrison <harrison@apple.com>
807 <rdar://problem/4048506> Deleting from beginning of editable div deletes other document elements
811 * khtml/editing/visible_units.h:
812 * khtml/editing/visible_units.cpp:
813 (khtml::startOfEditableContent):
814 (khtml::endOfEditableContent):
815 (khtml::inSameEditableContent):
816 (khtml::isStartOfEditableContent):
817 (khtml::isEndOfEditableContent):
820 * kwq/WebCoreBridge.h:
821 * kwq/WebCoreBridge.mm:
822 (-[WebCoreBridge canDeleteRange:]):
825 2005-03-16 Ken Kocienda <kocienda@apple.com>
831 <rdar://problem/4042935> undo doesn't work properly during inline input
833 * kwq/WebCoreBridge.h: Declare new method below.
834 * kwq/WebCoreBridge.mm:
835 (-[WebCoreBridge replaceMarkedTextWithText:]): New method. Wraps calls to TypingCommand::deleteKeyPressed and
836 TypingCommand::insertText to map the way that international text input works onto the typing undo system.
838 2005-03-16 David Harrison <harrison@apple.com>
842 <rdar://problem/4044336> REGRESSION (8A398-8A409): Option-Delete also deletes space to left of deleted word
844 * khtml/editing/htmlediting.cpp:
845 (khtml::DeleteSelectionCommand::initializePositionData):
846 - skip smart delete if the selection to delete already starts or ends with whitespace
848 * khtml/khtml_part.cpp:
849 (KHTMLPart::handleMousePressEventDoubleClick):
850 - preserve selection on double-click when range is already selected
852 * khtml/xml/dom_position.cpp:
853 (DOM::Position::leadingWhitespacePosition):
854 (DOM::Position::trailingWhitespacePosition):
855 - fix considerNonCollapsibleWhitespace action (logic was reversed)
856 - add non-breaking space to the non-collapsable ones
858 * kwq/WebCoreBridge.mm:
859 (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]):
860 (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]):
861 - these methods do not set the selection, so remove calls to setSelectionGranularity
863 (-[WebCoreBridge alterCurrentSelection:direction:granularity:]):
864 (-[WebCoreBridge alterCurrentSelection:verticalDistance:]):
865 - set the granularity back to character
866 - the one exception is that we need to keep word granularity
867 to preserve smart delete behavior when extending by word
869 2005-03-15 Maciej Stachowiak <mjs@apple.com>
873 <rdar://problem/4053266> Pressing return a few times right after a link makes the new blank lines part of the link
875 * khtml/editing/htmlediting.cpp:
876 (khtml::InsertLineBreakCommand::doApply): Use
877 positionOutsideContainingSpecialElement in the right two places.
878 (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
880 - move all these helper functions higher in the file
882 * khtml/editing/htmlediting.cpp:
883 (khtml::isSpecialElement):
884 (khtml::isFirstVisiblePositionInSpecialElement):
885 (khtml::positionBeforeNode):
886 (khtml::positionBeforeContainingSpecialElement):
887 (khtml::maxRangeOffset):
888 (khtml::isLastVisiblePositionInSpecialElement):
889 (khtml::positionAfterNode):
890 (khtml::positionAfterContainingSpecialElement):
891 (khtml::positionOutsideContainingSpecialElement):
893 2005-03-14 Maciej Stachowiak <mjs@apple.com>
897 <rdar://problem/4049925> Pasting right after a link makes pasted content part of the link (without visible style change)
899 * khtml/editing/htmlediting.cpp:
900 (khtml::positionOutsideContainingSpecialElement): made a helper
901 function that computes a position outside the outermost containing
902 special element if the passed in position is right at the start or
904 (khtml::InsertTextCommand::prepareForTextInsertion): use new helper here
905 (khtml::ReplaceSelectionCommand::doApply): use it here too: this is the fix
906 (khtml::positionBeforeNode): made static
907 (khtml::positionBeforeContainingSpecialElement): made static
908 (khtml::positionAfterNode): made static
909 (khtml::positionAfterContainingSpecialElement): made static
911 2005-03-15 Richard Williamson <rjw@apple.com>
913 Fixed <rdar://problem/4053658> Crash getting direction at maps.google.com
915 Add non nil style() check.
917 Reviewed by Dave Harrison.
919 * khtml/rendering/render_table.cpp:
920 (RenderTableCell::collapsedRightBorder):
922 2005-03-15 Kevin Decker <kdecker@apple.com>
926 Fixed: <rdar://problem/4041374> REGRESSION (185-186): unload handlers (at least those added with addEventListener) are broken
928 The reason why UNLOAD_EVENT wouldn't dispatch was because the code would delete all event listeners at the detach() phase which is prior to closeURL().
930 This fixes a recent regression from:
932 <rdar://problem/3977973> pages on ebay leak referenced JavaScript objects -- over time browsing becomes super-slow
934 * khtml/khtml_part.cpp:
935 (KHTMLPart::closeURL): After dispatching event handlers, go ahead and remove them from the DOM.
936 * khtml/xml/dom_docimpl.cpp:
937 (DocumentImpl::detach): Took out the call to removeAllEventListenersFromAllNodes(). If we remove all event listeners here then when KHTMLPart::closeURL() checks for even listeners, it will never have any because they'll already be gone.
939 2005-03-15 Ken Kocienda <kocienda@apple.com>
945 <rdar://problem/4052642> Each delete keystroke is in its own undo group; not included in undo group with other typing
947 Calling -[WebCore setSelectedDOMRange:range affinity:] had the result of "closing" any active set of typing
948 keystrokes grouped together in a single undo operation. A change on 27 Jan in WebKit to change the way delete
949 keystrokes are handled made this feature regress. Previous to that change, the backwards delete
950 key went through separate code that is no longer in the tree that did not set the selection in the way
953 The solution is to add an extra argument to the set-selection call. The WebCoreBridge now offers this method:
954 -[WebCore setSelectedDOMRange:range affinity:closeTyping:]. Now, callers must indicate whether setting the
955 selection will act to close typing or not.
957 * kwq/WebCoreBridge.h: Changed header accordingly to change method shown below.
958 * kwq/WebCoreBridge.mm:
959 (-[WebCoreBridge setSelectedDOMRange:affinity:closeTyping:]): Added closeTyping argument to this method.
961 2005-03-15 John Sullivan <sullivan@apple.com>
965 - fixed <rdar://problem/4052246> crash in KWQKHTMLPart::createPart() trying to display local file in frame
967 * kwq/KWQKHTMLPart.mm:
968 (KWQKHTMLPart::createPart):
969 Check part for nil before trying to ref. This was probably a longstanding code flaw revealed by
970 the recent security fix.
972 2005-03-15 Kevin Decker <kdecker@apple.com>
974 Reviewed by Ken and Maciej.
976 New fix for <rdar://problem/3667701> crash in KHTMLPart::jScriptEnabled()
978 The tokenizer has buffers which mean parsing can continue even after loading is supposed to be stopped. If the loading process was aborted, the tokenizer should abort, too.
980 * khtml/html/htmltokenizer.cpp:
981 (khtml::HTMLTokenizer::HTMLTokenizer): Initialize loadStopped to false.
982 (khtml::HTMLTokenizer::write): Go ahead and bail out if loadStopped is true.
983 (khtml::HTMLTokenizer::processToken):
984 * khtml/html/htmltokenizer.h: Added loadStopped flag. Changed the view pointer from a standard pointer to a QGuardedPtr. This fixes the crash. Now the tokenizer's handle to the view will now automatically nil-out and never dangle.
985 * khtml/khtml_part.cpp:
986 (KHTMLPart::closeURL): Notify the tokenizer to stop parsing.
987 * khtml/xml/xml_tokenizer.cpp:
988 (khtml::XMLTokenizer::XMLTokenizer): Initialize loadStopped to false.
989 * khtml/xml/xml_tokenizer.h:
990 (khtml::Tokenizer::stopParsing): Added.
992 2005-03-14 David Harrison <harrison@apple.com>
994 Reviewed by Darin, Maciej.
996 <rdar://problem/4046103> REGRESSION (Mail): clicking after style change sets insertion point incorrectly
998 Also fixes crash by adding nil check.
1000 * khtml/editing/htmlediting.cpp:
1001 (khtml::MoveSelectionCommand::doApply):
1002 Check the node for nil.
1004 * khtml/khtml_part.cpp:
1005 (KHTMLPart::khtmlMouseReleaseEvent):
1006 Use the node from the event rather than from the selection.
1008 2005-03-14 Darin Adler <darin@apple.com>
1010 Reviewed by Harrison.
1012 - fixed <rdar://problem/4049776> Seed: Mail: Disable spellcheck leaves red artifacts
1014 * khtml/xml/dom_docimpl.cpp:
1015 (DocumentImpl::DocumentImpl): Set markers list to be "auto-delete" so they don't all leak.
1016 (DocumentImpl::removeMarker): Remove markers list for a node when the last marker is removed
1017 for that node. Otherwise, we can have empty marker lists for each node forever until the
1019 (DocumentImpl::removeAllMarkers): Added code to dirty the markers.
1020 (DocumentImpl::shiftMarkers): Remove unneeded empty check.
1022 * kwq/WebCoreBridge.h: Added unmarkAllMisspellings for WebKit.
1023 * kwq/WebCoreBridge.mm: (-[WebCoreBridge unmarkAllMisspellings]): Added. Calls removeAllMarkers.
1025 2005-03-14 Richard Williamson <rjw@apple.com>
1027 Fixed <rdar://problem/4027928> Tiger_8A394:Acrobat crashes while tried to remove the subscription errors by clicking on "Would you like to remove the subscription" from Tracker details view pane
1029 A document may be deleted as a consequence of handling an event,
1030 as was the case with Acrobat.app. Ensure that the document is still valid
1031 before passing the event on for further handling.
1033 * khtml/xml/dom_nodeimpl.cpp:
1034 (NodeImpl::dispatchUIEvent):
1036 2005-03-14 Ken Kocienda <kocienda@apple.com>
1040 Added a couple of comments about setChanged() to this code based on my experiences with 4047028.
1042 * khtml/css/css_valueimpl.cpp:
1043 (DOM::CSSMutableStyleDeclarationImpl::addParsedProperties)
1044 (DOM::CSSMutableStyleDeclarationImpl::merge)
1046 2005-03-14 Ken Kocienda <kocienda@apple.com>
1052 <rdar://problem/4047028> Changing quote levels on stylized text causes it to be sent as colored (Blue). Tiger8A410
1054 * khtml/css/css_valueimpl.cpp:
1055 (DOM::CSSMutableStyleDeclarationImpl::removePropertiesInSet): This function now calls setChanged() at the
1056 end of its loop if any properties were removed. This makes the style system update correctly in response
1057 to changes made by this function. The code to paste removes style from the pasted content in a
1058 preliminary step, and the fact that the style system did not update properly left unwanted color
1059 declarations in the document.
1061 2005-03-14 Vicki Murley <vicki@apple.com>
1063 - roll out this change for now, since it was denied by CCC
1065 2005-03-11 David Harrison <harrison@apple.com>
1069 <rdar://problem/4046602> WebCore invokes undefined behavior when the spell checker isn't running
1071 * kwq/KWQKHTMLPart.mm:
1072 (KWQKHTMLPart::advanceToNextMisspelling):
1073 (KWQKHTMLPart::markMisspellings):
1076 2005-03-14 Ken Kocienda <kocienda@apple.com>
1082 <rdar://problem/4050403> Mail crashes after pasting and deleting the content of one Excel cell
1084 * khtml/editing/htmlediting.cpp:
1085 (khtml::DeleteSelectionCommand::handleGeneralDelete): Add some null checks to the code. This fixes the crash, although
1086 following the steps described in the bug by John Sullivan on 3/14/05 at 10:49 AM will leave us with a "blank line" in
1087 the document that cannot be removed (this is actually an empty table). This is undesirable, however, work Maciej is
1088 doing to fix the general-case problem of trying to edit constructs we do not handle well in editing should fix this
1089 particular case, making the deletion of this "blank line" possible. Maciej is doing this work as part of this bug:
1090 <rdar://problem/4036051> Hard to select (and thus delete) an IFRAME in an editable WebView
1092 2005-03-14 Ken Kocienda <kocienda@apple.com>
1098 <rdar://problem/4029632> Mail crashes in DOM::NodeImpl::isBlockFlow() after pasting text with alignment style and BR element from Safari
1100 The problem is that removeInlineStyle() can remove nodes, and if either the start or end node of the
1101 selection at the time of the call to removeInlineStyle() was in a node that got removed, bad things
1102 would happen. The fix is described below.
1104 * khtml/editing/htmlediting.cpp:
1105 (khtml::maxRangeOffset): Moved this static function to a different place in the file so the code below can use it.
1106 (khtml::ApplyStyleCommand::applyInlineStyle): Calling removeInlineStyle() now has the side effect of
1107 setting the command's ending selection. Now resets start and end using the ending selection after the call to
1108 removeInlineStyle() as it is done elsewhere in this function.
1109 (khtml::ApplyStyleCommand::removeInlineStyle): Track the removal of the start or end node based on
1110 the positions passed in. If either the start or the end node is removed as part of style removal,
1111 set an appropriate replacement start or end that is still in the document.
1115 2005-03-14 Ken Kocienda <kocienda@apple.com>
1119 I need to roll out Kevin's change to fix 3667701. It breaks contextual fragments, and hence breaks
1120 paste in editing (among other things).
1122 * khtml/html/htmltokenizer.cpp: Roll out recent change.
1123 (khtml::HTMLTokenizer::write)
1124 * khtml/html/htmltokenizer.h: Ditto.
1126 2005-03-13 Darin Adler <darin@apple.com>
1128 Reviewed by Ken and Maciej.
1130 - fixed <rdar://problem/4049040> REGRESSION (403-405): security check prevents user stylesheet from loading (Dictionary.app doesn't work at all!)
1132 * kwq/WebCoreBridge.mm: (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Changed to give "applewebdata:"
1133 documents the same privileges to open local files that "file:" documents have.
1135 2005-03-13 Kevin Decker <kdecker@apple.com>
1139 Fixed: <rdar://problem/3667701> crash in KHTMLPart::jScriptEnabled()
1141 The problem here was that the tokenizer would continue to receive chunks of data from the loader already
1142 after the view and part had been destroyed. Situations like this could arise when clicking on another link
1143 while still loading the current view, or during self test where we rapidly open, load, and close browser
1146 * khtml/html/htmltokenizer.cpp:
1147 (khtml::HTMLTokenizer::write): Simple nil check against the view.
1148 * khtml/html/htmltokenizer.h: Changed the view pointer from a standard pointer to a QGuardedPtr. The tokenizer's
1149 handle to the view will now automatically nil-out and never dangle.
1151 2005-03-13 Darin Adler <darin@apple.com>
1153 Reviewed by John and Ken.
1155 - fixed <rdar://problem/4044347> REGRESSION (Mail): Control-K in particular message moves insertion point to previous line
1157 Tweaked the deleting code, and added three new deleting layout tests to confirm the new code works.
1159 * khtml/editing/htmlediting.cpp:
1160 (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete): Removed special case with comment that said it was
1161 for the case where a "selection contains only a BR right after a block ended". This code was being triggered in
1162 more cases than just that one, and in all the cases I tested, the general delete code works fine.
1163 (khtml::DeleteSelectionCommand::handleGeneralDelete): Changed the code that decides whether to delete an entire
1164 block to understand the case where the end block is outside the start block, but contains the start block.
1165 In that case, we want to delete the entire block. Not deleting the block was causing us to delete just the <br>,
1166 and not the enclosing <div> in the case in the bug.
1168 * layout-tests/editing/deleting/delete-line-015-expected.txt: Added.
1169 * layout-tests/editing/deleting/delete-line-015.html: Added.
1170 * layout-tests/editing/deleting/delete-line-016-expected.txt: Added.
1171 * layout-tests/editing/deleting/delete-line-016.html: Added.
1172 * layout-tests/editing/deleting/delete-line-017-expected.txt: Added.
1173 * layout-tests/editing/deleting/delete-line-017.html: Added.
1174 * layout-tests/editing/style/smoosh-styles-002-expected.txt: Updated to improved results. With the code change, the deletion
1175 now deletes more than it used to. The old results had an empty text node and <h1> element that were both 0-sized, and now
1176 we delete both of those.
1178 2005-03-13 Darin Adler <darin@apple.com>
1180 - fixed <rdar://problem/4049172> REGRESSION (403-405): Gmail: text box in "Invite a friend" section overlaps other sections
1182 Rolled out fix for <rdar://problem/3952698> Function buttons do not display properly with Telia Webmail
1184 * khtml/rendering/render_replaced.cpp: (RenderReplaced::calcMinMaxWidth): Back to previous version of this file.
1186 2005-03-12 Maciej Stachowiak <mjs@apple.com>
1190 <rdar://problem/4046144> RSS pages leave a hole in local file security policy (need to revert feed: exemption)
1192 * kwq/WebCoreBridge.mm:
1193 (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Revert
1194 emergency workaround for Safari RSS, now that a new Syndication
1197 2005-03-11 Maciej Stachowiak <mjs@apple.com>
1201 <rdar://problem/4026787> text typed after a link (pasted or Mail Link to this Page) is part of the link, underlined and colored blue
1203 The concept of this change is every time you type at the very
1204 start or very end of a link (even if nested in further inner
1205 elements), the typed text goes outside the link instead of inside.
1207 * khtml/editing/htmlediting.cpp:
1208 (khtml::InsertTextCommand::prepareForTextInsertion): Check whether
1209 we are at the first visible position or last visible position of a
1210 special element. For now this only includes HTML A elements that
1211 are links (i.e. they have an href).
1212 (khtml::isSpecialElement): Helper function that identifies special
1213 elements (for now only links).
1214 (khtml::isFirstVisiblePositionInSpecialElement): Checks if a given DOM
1215 position is equivalent to the first visible position in some containing
1216 editable special element.
1217 (khtml::positionBeforeNode): Returns the DOM position immediately
1219 (khtml::positionBeforeContainingSpecialElement): Gives a DOM
1220 position immediately before the outermost editable containing
1221 special element where the passed-in position is equivalent to the
1222 first visible position.
1223 (khtml::maxRangeOffset): Helper to get the maximum allowed
1224 range/position offset for a node, does the right thing based on
1225 whether the node would use a character offset or child offset.
1226 (khtml::isLastVisiblePositionInSpecialElement): Similar to above,
1227 but for end of node instead of start.
1228 (khtml::positionAfterNode): Ditto.
1229 (khtml::positionAfterContainingSpecialElement): Ditto.
1231 Some layout tests changed - I looked over all the diffs and found
1232 that the only changes were "junk nodes" like empty spans and text
1233 nodes moving from one spot in the tree to another. These changes
1234 are all harmless and do not affect layout or future editing.
1236 * layout-tests/editing/inserting/typing-003-expected.txt:
1237 * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt:
1238 * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt:
1239 * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt:
1240 * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt:
1241 * layout-tests/editing/style/remove-underline-expected.txt:
1242 * layout-tests/editing/style/remove-underline-from-stylesheet-expected.txt:
1243 * layout-tests/editing/style/remove-underline-in-bold-expected.txt:
1244 * layout-tests/editing/style/typing-style-003-expected.txt:
1245 * layout-tests/editing/style/unbold-in-bold-expected.txt:
1246 * layout-tests/editing/style/underline-expected.txt:
1248 2005-03-11 Adele Amchan <adele@apple.com>
1250 backing out fix for <rdar://problem/4021711> REGRESSION (125-188): blank pages when browsing forum at cooperativeresearch.org - cached external script problem
1252 This caused the following regressions (that we know of):
1253 <rdar://problem/4047445> REGRESSION (Safari-400-403?): Some or all page contents sometimes don't appear (macworld.com)
1254 <rdar://problem/4046153> 8a409: Problem loading Citibank page in Safari 2 (403)
1255 <rdar://problem/4047801> REGRESSION (402-403): .Mac homepage links don't work
1257 * khtml/html/htmltokenizer.cpp:
1258 (khtml::HTMLTokenizer::scriptHandler):
1260 2005-03-11 David Harrison <harrison@apple.com>
1264 <rdar://problem/4046602> WebCore invokes undefined behavior when the spell checker isn't running
1266 * kwq/KWQKHTMLPart.mm:
1267 (KWQKHTMLPart::advanceToNextMisspelling):
1268 (KWQKHTMLPart::markMisspellings):
1271 2005-03-11 Ken Kocienda <kocienda@apple.com>
1275 * ForwardingHeaders/editing/visible_units.h: Added.
1277 2005-03-11 Ken Kocienda <kocienda@apple.com>
1283 <rdar://problem/4045521> Hitting return key with full line selected does not add blank line as it should
1285 * khtml/editing/htmlediting.cpp:
1286 (khtml::InsertParagraphSeparatorCommand::doApply): Removed some "special-case" code from this
1287 function that would look for a selection that started and ended in a different block, and would
1288 then bail right after the deletion of the selection without inserting a paragraph separator.
1289 This was just wrong. So, the code change is removal only. When the general-case code runs instead
1290 of the erroneous special-case code, the bug goes away.
1294 * layout-tests/editing/inserting/return-key-with-selection-001-expected.txt: Added.
1295 * layout-tests/editing/inserting/return-key-with-selection-001.html: Added.
1296 * layout-tests/editing/inserting/return-key-with-selection-002-expected.txt: Added.
1297 * layout-tests/editing/inserting/return-key-with-selection-002.html: Added.
1298 * layout-tests/editing/inserting/return-key-with-selection-003-expected.txt: Added.
1299 * layout-tests/editing/inserting/return-key-with-selection-003.html: Added.
1301 2005-03-11 David Harrison <harrison@apple.com>
1305 <rdar://problem/4009446> AX: kAXTextMarkerForPositionParameterizedAttribute not working correctly (required for Dictionary pop-up)
1307 * kwq/KWQAccObject.mm:
1308 (-[KWQAccObject accessibilityAttributeValue:]):
1311 (-[KWQAccObject doAXTextMarkerForPosition:]):
1314 (-[KWQAccObject doAXBoundsForTextMarkerRange:]):
1315 Use the selection's document instead of the top document, to accommodate frames, etc.
1317 (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
1318 Fixed parameter processing to look for NSValue instead of AXValue.
1320 2005-03-11 Ken Kocienda <kocienda@apple.com>
1322 Reviewed by Harrison
1326 <rdar://problem/3972665> 8A360: HTML message partially truncated on left hand side, text-indent from Script Editor
1328 This was fixed, then regressed with Harrison's fix for this bug:
1330 <rdar://problem/3948453> Can't type accented chars as first character in Stickies widget
1332 * khtml/editing/htmlediting.cpp:
1333 (khtml::ReplaceSelectionCommand::doApply): My now addresses both problems in a way that they no longer
1336 2005-03-10 Ken Kocienda <kocienda@apple.com>
1342 <rdar://problem/4045511> Copying and pasting end-of-paragraph selection puts insertion point in wrong place
1343 <rdar://problem/4045513> Copying and pasting selection starting at end of paragraph can incorrectly remove line break
1345 The copy/paste code before this patch had no notion of a "logical newline" at the start of the selection. We have
1346 had a similar notion for "logical newline" at the end of the selection for quite some time. To fix these bugs, we
1347 need to introduce the same idea for selection starts.
1349 * khtml/editing/htmlediting.cpp:
1350 (khtml::ReplacementFragment::ReplacementFragment): Process the "logical newline" at start as we write it out
1351 in markup. Set the bit we added to this object to signify we have such a newline.
1352 (khtml::ReplaceSelectionCommand::doApply): Many, many changes to introduce the new "logical newline" at start concept.
1353 I also tried to simply the code that sets the start position for inserting content to be pasted. I also improved a
1354 weakness in the smart-paste code. Now, we check before and after the paste for whether we need to add a leading or
1355 trailing space. The code previous to this patch only did a "before" check, with the result that we sometimes added
1356 a second space. In other words, the code did not realize that DOM changes done by pasting could cause formerly
1357 unrendered whitespace to become rendered. Also moved line placeholder clean up code to its own function.
1358 (khtml::ReplaceSelectionCommand::removeLinePlaceholderIfNeeded): New helper that further refines the notion
1359 of when we can remove a line placeholder. The definition is now, "If a line placeholder is at the visible start
1360 and visible end of its line, keep it; otherwise remove it".
1361 * khtml/editing/htmlediting.h: Declare new functions. Rework inlines in ReplacementFragment class to account for
1362 addition of new "logical newline" at start concept.
1363 (khtml::ReplacementFragment::hasInterchangeNewlineAtStart): New accessor.
1364 (khtml::ReplacementFragment::hasInterchangeNewlineAtEnd): Renamed from hasInterchangeNewline(), since before we
1365 only had a bit for the end, hence we did not need to distinguish it from the start.
1366 * khtml/editing/markup.cpp:
1367 (khtml::createMarkup): Added code to detect and write out markup for cases where we have a "logical newline" at start.
1368 * khtml/xml/dom2_rangeimpl.cpp:
1369 (DOM::RangeImpl::startPosition): New helper.
1370 (DOM::RangeImpl::endPosition): Ditto.
1371 * khtml/xml/dom2_rangeimpl.h: Declare new helpers.
1374 * layout-tests/editing/pasteboard/paste-line-endings-001-expected.txt: Added.
1375 * layout-tests/editing/pasteboard/paste-line-endings-001.html: Added.
1376 * layout-tests/editing/pasteboard/paste-line-endings-002-expected.txt: Added.
1377 * layout-tests/editing/pasteboard/paste-line-endings-002.html: Added.
1378 * layout-tests/editing/pasteboard/paste-line-endings-003-expected.txt: Added.
1379 * layout-tests/editing/pasteboard/paste-line-endings-003.html: Added.
1380 * layout-tests/editing/pasteboard/paste-line-endings-004-expected.txt: Added.
1381 * layout-tests/editing/pasteboard/paste-line-endings-004.html: Added.
1382 * layout-tests/editing/pasteboard/paste-line-endings-005-expected.txt: Added.
1383 * layout-tests/editing/pasteboard/paste-line-endings-005.html: Added.
1384 * layout-tests/editing/pasteboard/paste-line-endings-006-expected.txt: Added.
1385 * layout-tests/editing/pasteboard/paste-line-endings-006.html: Added.
1386 * layout-tests/editing/pasteboard/paste-line-endings-007-expected.txt: Added.
1387 * layout-tests/editing/pasteboard/paste-line-endings-007.html: Added.
1388 * layout-tests/editing/pasteboard/paste-line-endings-008-expected.txt: Added.
1389 * layout-tests/editing/pasteboard/paste-line-endings-008.html: Added.
1390 * layout-tests/editing/pasteboard/paste-line-endings-009-expected.txt: Added.
1391 * layout-tests/editing/pasteboard/paste-line-endings-009.html: Added.
1392 * layout-tests/editing/pasteboard/paste-line-endings-010-expected.txt: Added.
1393 * layout-tests/editing/pasteboard/paste-line-endings-010.html: Added.
1397 2005-03-10 Darin Adler <darin@apple.com>
1399 Reviewed by Richard.
1401 - fixed <rdar://problem/4037700> Every character typed causes stat call for /usr/share/icu/icudt32b_char.brk
1403 * khtml/rendering/render_text.cpp: (getCharacterBreakIterator): Set boolean "got iterator" to true.
1405 2005-03-10 Darin Adler <darin@apple.com>
1409 - fixed <rdar://problem/4042867> "Bigger" changes the font size of too much text when the selection is on a style-change boundary
1411 * khtml/editing/htmlediting.cpp: (khtml::ApplyStyleCommand::applyRelativeFontStyleChange):
1412 Advance out of the starting text node if we're at the end of it.
1414 2005-03-10 Darin Adler <darin@apple.com>
1416 * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::write): Fixed assertion for nested calls to write.
1418 2005-03-10 David Harrison <harrison@apple.com>
1422 <rdar://problem/4032346> REGRESSION (Mail): changing 1st line of a URL that wraps to two lines doesn't always update 2nd line
1424 * khtml/rendering/bidi.cpp:
1425 (khtml::RenderBlock::matchedEndLine):
1426 Look at first clean line in case line wrap implicitly dirtied it.
1428 2005-03-10 Maciej Stachowiak <mjs@apple.com>
1432 <rdar://problem/4046018> REGRESSION (TOT): RSS pages don't display anything
1434 * kwq/WebCoreBridge.mm:
1435 (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Exempt
1436 feed: and feeds: pages from the local file security check.
1438 2005-03-10 Darin Adler <darin@apple.com>
1440 Change written by Steve Peters, reviewed by me.
1442 - fixed <rdar://problem/4045924> improve compareBoundaryPoints to make style changes faster
1444 * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::compareBoundaryPoints):
1445 Do early outs in a couple of the loops to make things faster.
1447 2005-03-10 Jens Alfke <jens@apple.com>
1451 Fixes <rdar://problem/4040848> "REGR: Sun security-check demo applet does not load". My earlier fix for 3603191 deferred loading the applet until the </applet> tag is reached, so all <param>s will be available. Unfortunately that meant that if the </applet> tag was missing, the applet would never load at all. So instead, the loading needs to happen when the ID_APPLET tag is popped from the parser stack for any reason.
1453 I've restored the old NodeImpl::closeRenderer() method. Except it's now virtual, with a no-op base implementation, and is overridden by HTMLAppletElementImpl, replacing its setAllParamsAvailable method that I added a few weeks ago when fixing 3603191.
1455 This ensures that the applet will get loaded even if there is no explicit </applet> tag.
1457 The changes to htmlparser.cpp back out my earlier change and restore the lines that were deleted on 8/3/04 when the old closeRenderer was removed.
1459 * khtml/html/html_objectimpl.cpp:
1460 (HTMLAppletElementImpl::closeRenderer):
1461 * khtml/html/html_objectimpl.h:
1462 * khtml/html/htmlparser.cpp:
1463 (KHTMLParser::insertNode):
1464 (KHTMLParser::processCloseTag):
1465 (KHTMLParser::popOneBlock):
1466 * khtml/xml/dom_nodeimpl.h:
1467 (DOM::NodeImpl::closeRenderer):
1469 2005-03-10 Ken Kocienda <kocienda@apple.com>
1475 <rdar://problem/4024929> REGRESSION (Mail): Pasting text with multiple reply levels removes one level instead of all
1477 The code to figure out which node to use to merge into an existing line did not drill into the first inline element
1478 as needed to make the feature work as user expect. Instead, it looked at the first node, and if it was a block, it
1479 skipped that node. This worked for some cases (including the important "paste-as-quotation" case) but obviously
1480 doesn't work for content quoted more than once.
1482 Now, mergeStartNode() will look for the first node in pasted content that is not a block. It will now also look
1483 for nodes specially marked by Mail as a node added to make "Paste As Quotation" work. It won't skip those.
1485 NOTE: This change will break Mail's "Paste As Quotation" feature for TOT WebKit users, but this is only a temporary
1486 problem that will exist until we sync up with Mail's pending change to mark nodes as needed in its pasteAsQuotation:
1489 * khtml/editing/html_interchange.h: Add ApplePasteAsQuotation constant used to check for "marked" blockquotes.
1490 * khtml/editing/htmlediting.cpp:
1491 (khtml::ReplacementFragment::mergeStartNode): Look for first node that is either not a block or is marked as
1492 an ApplePasteAsQuotation node.
1493 (khtml::isMailPasteAsQuotationNode): New helper that looks for nodes marked with ApplePasteAsQuotation.
1494 * khtml/editing/htmlediting.h: Updated header for new function.
1496 This test result changed is an acceptable way.
1498 * layout-tests/editing/pasteboard/paste-text-013-expected.txt
1499 * layout-tests/editing/pasteboard/paste-text-013.html
1501 NOTE: This change causes a regression in this layout test:
1503 * layout-tests/editing/pasteboard/paste-text-013.html
1505 This problem will need to be fixed separately, and this bug has been filed to track this problem:
1506 <rdar://problem/4045513> Copying and pasting selection starting at end of paragraph can incorrectly remove line break
1508 2005-03-09 Maciej Stachowiak <mjs@apple.com>
1510 Reviewed by Richard.
1512 <rdar://problem/4040776> Dashboard (Weather widget) is a memory hog
1514 Change things around so the event listeners for XMLHttpRequest
1515 mark their JS listener objects instead of holding a hard
1516 reference, to avoid an unbreakable reference cycle.
1518 * khtml/ecma/kjs_events.cpp:
1519 (JSAbstractEventListener::JSAbstractEventListener):
1520 (JSAbstractEventListener::~JSAbstractEventListener):
1521 (JSAbstractEventListener::handleEvent):
1522 (JSAbstractEventListener::eventListenerType):
1523 (JSUnprotectedEventListener::JSUnprotectedEventListener):
1524 (JSUnprotectedEventListener::~JSUnprotectedEventListener):
1525 (JSUnprotectedEventListener::listenerObj):
1526 (JSUnprotectedEventListener::windowObj):
1527 (JSUnprotectedEventListener::mark):
1528 (JSEventListener::JSEventListener):
1529 (JSEventListener::~JSEventListener):
1530 (JSEventListener::listenerObj):
1531 (JSEventListener::windowObj):
1532 (JSLazyEventListener::JSLazyEventListener):
1533 * khtml/ecma/kjs_events.h:
1534 * khtml/ecma/kjs_html.h:
1535 * khtml/ecma/kjs_window.cpp:
1536 (Window::getJSEventListener):
1537 (Window::getJSUnprotectedEventListener):
1538 * khtml/ecma/kjs_window.h:
1539 * khtml/ecma/xmlhttprequest.cpp:
1540 (KJS::XMLHttpRequest::putValue):
1541 (KJS::XMLHttpRequest::mark):
1542 * khtml/ecma/xmlhttprequest.h:
1543 * khtml/khtml_part.h:
1545 2005-03-06 Maciej Stachowiak <mjs@apple.com>
1549 <rdar://problem/4005575> Arbitrary file disclosure vulnerability due to ability to load local html from remote content
1551 * khtml/ecma/kjs_html.cpp:
1552 (KJS::HTMLDocument::putValue):
1553 * khtml/ecma/kjs_window.cpp:
1555 (WindowFunc::tryCall):
1557 (LocationFunc::tryCall):
1558 * khtml/khtml_part.cpp:
1560 (KHTMLPart::scheduleLocationChange):
1561 (KHTMLPart::slotRedirect):
1562 (KHTMLPart::processObjectRequest):
1563 * khtml/khtml_part.h:
1564 * khtml/khtmlpart_p.h:
1565 * kwq/KWQKHTMLPart.mm:
1566 (KWQKHTMLPart::openURLRequest):
1567 (KWQKHTMLPart::urlSelected):
1568 (KWQKHTMLPart::createPart):
1569 * kwq/KWQKHTMLPartBrowserExtension.mm:
1570 (KHTMLPartBrowserExtension::createNewWindow):
1571 * kwq/WebCoreBridge.h:
1572 * kwq/WebCoreBridge.mm:
1573 (hasCaseInsensitivePrefix):
1574 (-[WebCoreBridge didNotOpenURL:pageCache:]):
1575 (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]):
1577 2005-03-09 Richard Williamson <rjw@apple.com>
1579 Fixed <rdar://problem/4032938> Safari: text layout for MS P Gothic font is corrupted
1581 Remove our hacked special case now we have our own cache of
1582 which fonts are fixed pitch.
1587 (QFont::isFixedPitch):
1589 2005-03-09 David Harrison <harrison@apple.com>
1593 <rdar://problem/4037141> REGRESSION (Mail): Pasting deletes preceding blank lines with certain steps
1595 * khtml/editing/htmlediting.cpp:
1596 (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
1597 Add check for anonymous text after blocks.
1599 2005-03-08 Ken Kocienda <kocienda@apple.com>
1605 <rdar://problem/4039661> crash in ApplyStyleCommand::applyBlockStyle pasting contents of webpage into Mail or Blot
1606 <rdar://problem/4039672> hang in moveParagraphContentsToNewBlockIfNecessary after pasting contents of webpage into Blot
1608 * khtml/editing/htmlediting.cpp:
1609 (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Fix for 4039672. Iteration needs to do
1610 a traverseNextSibling(), not a traverseNextNode(). The latter might iterate into a child that already got moved, and
1611 the code can infinite loop as a result.
1612 (khtml::ApplyStyleCommand::applyBlockStyle): Fix for 4039661. This function iterates over a set of nodes to apply
1613 block styles. Before, the iteration would go from the start to the end of the selection, and apply block styles
1614 as it went. However, the act of applying style could confuse the iteration. Now I iterate and store the relevant
1615 nodes in QPtrList before doing any style manipulation, and then iterate that set of nodes.
1617 2005-03-08 Darin Adler <darin@apple.com>
1619 Change written by Hyatt, reviewed by me.
1621 - fixed <rdar://problem/3952698> Function buttons do not display properly with Telia Webmail
1623 * khtml/rendering/render_replaced.cpp: (RenderReplaced::calcMinMaxWidth):
1624 Only use a minWidth of 0 for images with a percentage value. Other replaced elements aren't scalable
1625 so their minWidth should be their calculated width. This has been wrong all along, but it's a relatively
1626 safe change because it only affects replaced elements' min-width.
1628 2005-03-08 David Harrison <harrison@apple.com>
1632 <rdar://problem/4039006> REGRESSION (Mail): Command-left-arrow goes to the start of the wrong line in particular message
1634 * khtml/editing/visible_units.cpp:
1635 (khtml::startOfLine):
1636 Use firstLeafChild() instead of firstChild().
1638 2005-03-08 Richard Williamson <rjw@apple.com>
1640 Fixed by Tom Madden.
1642 Fixed <rdar://problem/4038586> 8A402: Osaka-Mono text overlaps when typing with input method
1644 We weren't clearing the "all ascii" flag when setting text on
1647 Reviewed by Richard Williamson.
1649 * khtml/rendering/render_text.cpp:
1650 (RenderText::setText):
1652 2005-03-08 Darin Adler <darin@apple.com>
1654 Reviewed by Ken and Maciej.
1656 - fixed <rdar://problem/3988809> REGRESSION (Mail): wide space characters are turned into plain old spaces when typed or pasted
1658 Changed the few places where it matters to use a "collapsible whitespace" concept instead of
1659 the general whitespace concept. This means treating only ' ' and '\n' specially instead of
1660 including other space characters, which matches what the space-collapsing logic does in RenderText,
1661 although it really needs to behave differently based on whitespace mode.
1663 * khtml/editing/visible_text.h: (khtml::isCollapsibleWhitespace): Added. This returns true only for
1664 ' ' and '\n' since they are the only characters collapsed once text is in the DOM. But really it
1665 can't do the job ignoring white-space mode, so some day it must go.
1667 * khtml/editing/html_interchange.cpp: (convertHTMLTextToInterchangeFormat): Changed to use
1668 isCollapsibleWhitespace and removed unnecessary calls to latin1().
1670 * khtml/editing/htmlediting.cpp:
1671 (khtml::isNBSP): Removed unnecessary creation/destruction of QChar each time this is called.
1672 (khtml::nextCharacterIsCollapsibleWhitespace): Renamed from isWS and changed to use isCollapsibleWhitespace.
1673 (khtml::DeleteSelectionCommand::fixupWhitespace): Use isCollapsibleWhitespace instead of isWS,
1674 since we only want to do our NBSP tricks for collapsible whitespace.
1675 (khtml::InsertTextCommand::input): Changed use of isTab to instead say == "\t" since that does the
1676 same thing and is arguably just as clear. Changed use of isWS to == " " since the input text can't
1677 include any "\n" characters, and really a plain old space is the only collapsible thing that can
1678 be passed in. Use isCollapsibleWhitespace instead of isWS since we want to do NBSP tricks only for
1679 collapsible whitespace, not all whitespace.
1680 (khtml::InsertTextCommand::insertSpace): Use isCollapsibleWhitespace instead of isWS since we want
1681 to do NBSP tricks only for collapsible whitespace, not all whitespace.
1682 (khtml::RebalanceWhitespaceCommand::doApply): Ditto.
1684 * khtml/xml/dom_position.h: Changed treatNBSPAsWhiteSpace parameters to considerNonCollapsibleWhitespace
1685 parameters. The most common callers are only interested in collapsible whitespace, and the smart copy
1686 and paste callers want to include all whitespace, including non-breaking spaces and all the Unicode spaces.
1687 * khtml/xml/dom_position.cpp:
1688 (DOM::Position::leadingWhitespacePosition): Rename the parameter, and use either QChar::isSpace or
1689 isCollapsibleWhitespace depending on the boolean passed in.
1690 (DOM::Position::trailingWhitespacePosition): Ditto.
1692 2005-03-07 John Sullivan <sullivan@apple.com>
1696 - <rdar://problem/4040868> REGRESSION (Mail, 403-403+): Drag and drop deletes text,
1697 many other bad editing problems
1699 * khtml/rendering/render_text.cpp:
1700 (RenderText::caretMaxOffset):
1701 A "-" should have been a "+" in this method that was tweaked an hour ago. Editing
1702 was completely horked.
1704 2005-03-07 Richard Williamson <rjw@apple.com>
1706 Additional nil check from fix for 4040749.
1708 * khtml/rendering/render_box.cpp:
1709 (RenderBox::setStyle):
1711 2005-03-07 Richard Williamson <rjw@apple.com>
1713 Additional nil check from fix for 4040749.
1715 * khtml/rendering/render_layer.cpp:
1716 (RenderLayer::updateLayerPosition):
1718 2005-03-07 David Harrison <harrison@apple.com>
1722 <rdar://problem/4033202> REGRESSION (Mail): Can't arrow up at a particular spot in a particular Mail message
1724 Doublecheck that new position is really on a different line, because the VisiblePosition constructor does not.
1725 Filed <rdar://problem/4040763> for that problem.
1727 * khtml/editing/visible_units.cpp:
1728 (khtml::previousLinePosition):
1730 2005-03-07 Richard Williamson <rjw@apple.com>
1732 Fixed <rdar://problem/4040749> REGRESSION (125-178): opacity style not working, breaks fading images on okcupid.com
1734 When layers are dynamically created/removed as a result of changing opacity they weren't being correctly
1735 sized and positioned. This happens whenever opacity goes from < 1 to 1.
1739 * khtml/rendering/render_box.cpp:
1740 (RenderBox::setStyle):
1741 * khtml/rendering/render_layer.cpp:
1742 (RenderLayer::updateLayerPosition):
1744 2005-03-07 Christy Warren <kali@apple.com>
1748 * khtml/rendering/render_text.cpp:
1749 (RenderText::caretMinOffset): modified to handle BIDI case by checking all text boxes for min offset
1750 (RenderText::caretMaxOffset): modified to handle BIDI case by checking all text boxes for max offset
1752 2005-03-07 David Harrison <harrison@apple.com>
1756 <rdar://problem/4029225> REGRESSION (Mail): Crash if hit return after dragging in attachment - DeleteSelectionCommand::initializePositionData
1758 Work around the fact that the height() of a BR is 0 if there are no text elements on the line, even if there are replaced elements.
1759 Filed <rdar://problem/4040358> RenderBR height() is not accurate.
1761 * khtml/editing/htmlediting.cpp:
1762 (khtml::ReplaceSelectionCommand::doApply):
1763 When height is 0, double check that the placeholder is the first position on the line.
1767 2005-03-07 Ken Kocienda <kocienda@apple.com>
1773 <rdar://problem/4040136> Expose SPI for WebCore's functions to create document fragments from plain text and markup strings
1775 * kwq/DOMHTML.mm: Add two new SPI functions.
1776 (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:])
1777 (-[DOMHTMLDocument _createDocumentFragmentWithText:])
1778 * kwq/DOMPrivate.h: Declare the new SPI here, a privately-exported header, so Mail can make use of it.
1780 2005-03-07 Ken Kocienda <kocienda@apple.com>
1786 <rdar://problem/4039676> REGRESSION (Mail): in reply, <cr> on pasted text (without trailing newline) is eaten when pasted above date
1788 * khtml/editing/htmlediting.cpp:
1789 (khtml::ReplaceSelectionCommand::doApply): Code to "eat" a <br> element, that was creating an otherwise empty line, was running
1790 when it should not. If the content being pasted in does not end in a "logical" newline itself, then the <br> already
1791 in the content needs to be preserved. A simple one-line change now sees to this.
1793 * layout-tests/editing/pasteboard/paste-text-010-expected.txt: This test now has an extra, but harmless,
1794 <br> at the end of a paragraph. This makes sense given the code change.
1797 * layout-tests/editing/pasteboard/paste-text-018-expected.txt: Added.
1798 * layout-tests/editing/pasteboard/paste-text-018.html: Added.
1800 2005-03-07 Ken Kocienda <kocienda@apple.com>
1806 <rdar://problem/4035648> REGRESSION (Mail): line feed in source HTML file causes bad copy/paste behavior
1808 The createMarkup() function in markup.cpp iterates over the nodes in a range,
1809 and does some bookkeeping to figure out when to add close tags to the markup.
1810 Some code added at the start of the loop to prevent markup from being written
1811 for unrendered nodes short-circuited the rest of the loop, and so prevented
1812 the close-tag-writing code from running when it should.
1814 This is why the "plain" text wound up inside of the bold tag in the example
1815 above. The addition of the unrendered return character caused an incorrect
1816 delay in the close tag for the bold element from being written out, with the
1817 result being that it wound up including additional content.
1819 The fix is to add checks for node renderers throughout the loop at the points
1820 where markup is written out for each node. This allows the additional close
1821 tag logic to run as needed.
1823 All layout tests pass with this change.
1825 * khtml/editing/markup.cpp:
1826 (khtml::createMarkup)
1830 * layout-tests/editing/pasteboard/paste-4035648-fix-expected.txt: Added.
1831 * layout-tests/editing/pasteboard/paste-4035648-fix.html: Added.
1833 2005-03-06 Christy Warren <kali@appple.com>
1837 * khtml/rendering/render_text.cpp:
1838 (lastRendererOnPrevLine): helper for RenderText::caretRect
1839 (RenderText::caretRect): added code to properly handle bidi ordered text boxes
1841 2005-03-06 Christy Warren <kali@apple.com>
1845 * khtml/editing/visible_position.cpp: Eliminated code that cuts off searching through the text boxes based on an assumption that breaks under bidi
1846 (khtml::VisiblePosition::isCandidate):
1847 * kwq/KWQFontMetrics.mm:
1848 (QFontMetrics::checkSelectionPoint): Made the initialization of the WebCoreStyle honor the reversed flag
1850 2005-03-05 John Sullivan <sullivan@apple.com>
1854 - fixed <rdar://problem/4038417> Mail crashed in StyleChange::checkForLegacyHTMLStyleChange
1855 when composing a reply
1857 * khtml/editing/htmlediting.cpp:
1858 (khtml::StyleChange::checkForLegacyHTMLStyleChange):
1859 Added missing nil check.
1861 2005-03-05 Darin Adler <darin@apple.com>
1865 - fixed <rdar://problem/4038478> Crash in renderer viewing RSS feed at feed://wvs.topleftpixel.com/index.rdf
1867 * khtml/xml/dom_docimpl.cpp: (widgetForNode): Check for nil before going from node to renderer.
1869 2005-03-05 Darin Adler <darin@apple.com>
1871 Reviewed by Richard.
1873 - fixed <rdar://problem/4037700> Every character typed causes stat call for /usr/share/icu/icudt32b_char.brk
1875 * khtml/rendering/render_text.cpp:
1876 (getCharacterBreakIterator): Added. Helper that sets up an iterator for the passed-in text.
1877 Shares a single global iterator (fast, albeit not thread-safe).
1878 (RenderText::previousOffset): Changed to call getCharacterBreakIterator.
1879 (RenderText::nextOffset): Ditto.
1881 2005-03-05 Ken Kocienda <kocienda@apple.com>
1887 <rdar://problem/4038267> REGRESSION (Mail): Crash copying and pasting end of paragraph
1889 Code to handle content that has a "logical" newline at the end of the pasted content, and the code
1890 to adjust the selection at the end of the paste operation made an assumption that at least one
1891 node had been inserted by the paste command. This is not necessarily true in the case where the sole content
1892 in the pasted content is one of these "logical" newlines. Adjust some code around so that we don't deref
1893 null, but still adjust the selection correctly for this case. In each of the two functions below, some
1894 null checks have been added, and some code has been rearranged a little bit to continue on through
1895 the end of completeHTMLReplacement, even if no nodes have been inserted. The patch looks bigger and more
1896 complicated than the conceptual change.
1898 * khtml/editing/htmlediting.cpp:
1899 (khtml::ReplaceSelectionCommand::doApply)
1900 (khtml::ReplaceSelectionCommand::completeHTMLReplacement)
1902 * layout-tests/editing/pasteboard/paste-4038267-fix-expected.txt: Added.
1903 * layout-tests/editing/pasteboard/paste-4038267-fix.html: Added.
1905 2005-03-05 Darin Adler <darin@apple.com>
1909 - fixed <rdar://problem/4025918> images copied from Safari with relative src URLs aren't pasted into Mail messages (KURL resolves base URLs incorrectly)
1911 * kwq/KWQKURL.mm: (KURL::KURL): Add a slash at the start of the path if a relative part is adding
1912 a path onto a URL that has "pre-path" bits like host name, but no path yet. This doesn't come up
1913 for http because in that case we add a trailing "/" as part of canonicalization.
1915 2005-03-04 John Sullivan <sullivan@apple.com>
1919 - fixed <rdar://problem/4033705> REGRESSION (Mail): Copy/Paste from Excel
1920 crashes Mail in KWQKHTMLPart::fontForSelection(bool*) const + 232
1922 * kwq/KWQKHTMLPart.mm:
1923 (KWQKHTMLPart::fontForSelection):
1924 Check for nil startNode, not just nil renderer.
1926 2005-03-04 David Harrison <harrison@apple.com>
1928 Reviewed by Ken, Richard.
1930 <rdar://problem/3996383> REGRESSION (Mail): Deleting all of first line also deletes line ending
1932 Problem was the placeholder check was based on 0 height block, but the block in this
1933 case is the BODY, which has other content even though the paragraph is gone.
1935 * khtml/editing/htmlediting.cpp:
1936 (khtml::CompositeEditCommand::insertBlockPlaceholder):
1937 Now does insert instead of append!
1939 (khtml::CompositeEditCommand::appendBlockPlaceholder):
1940 New. Actually does append.
1942 (khtml::CompositeEditCommand::addBlockPlaceholderIfNeeded):
1943 Renamed from insertBlockPlaceholderIfNeeded because it can insert or append. Also accepts "force insert" flag.
1945 (khtml::CompositeEditCommand::removeBlockPlaceholder):
1946 Renamed for succinctness from removeBlockPlaceholderIfNeeded.
1948 (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
1949 (khtml::DeleteSelectionCommand::moveNodesAfterNode):
1950 Use renamed methods.
1952 (khtml::DeleteSelectionCommand::doApply):
1953 Use addBlockPlaceholderIfNeeded "force insert" flag if deleting whole paragraphs did not leave an empty one.
1955 (khtml::InsertParagraphSeparatorCommand::doApply):
1956 (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
1957 (khtml::InsertTextCommand::input):
1958 Use renamed methods.
1960 * khtml/editing/htmlediting.h:
1961 Renamed and new methods per above.
1964 2005-03-04 Chris Blumenberg <cblu@apple.com>
1966 Fixed: <rdar://problem/4032840> REGRESSION (Mail): crash in RemoveNodeCommand after pasting attachment at end of message
1970 * khtml/editing/visible_units.cpp:
1971 (khtml::endOfParagraph): don't consider text nodes that have no rendered characters
1973 2005-03-04 Richard Williamson <rjw@apple.com>
1975 Fixed <rdar://problem/4034764> REGRESSION(125-188)Viewing text/plain page and going back/forward corrupts HTML pages (google.com)
1977 The parse mode wasn't be restored to the document when going
1982 * kwq/KWQKHTMLPart.mm:
1983 (KWQKHTMLPart::openURLFromPageCache):
1984 * kwq/KWQPageState.h:
1985 * kwq/KWQPageState.mm:
1986 (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:]):
1988 2005-03-04 Ken Kocienda <kocienda@apple.com>
1992 * layout-tests/editing/style/create-block-for-style-012-expected.txt: Shame on me!
1993 I landed my last fix without running layout tests. This one changes in a subtle, but
1996 2005-03-04 Ken Kocienda <kocienda@apple.com>
1998 Reviewed by Harrison
2002 <rdar://problem/4032543> REGRESSION (Mail): Mail hangs when quoted text is pasted twice
2004 This code change fixes the bug in a non-obvious way. The root cause of the problem was
2005 that a VisiblePosition created using an affinity originating in Mail code caused
2006 two VisiblePosition objects that should have been equal to differ only in their
2007 affinities, which in turn caused us to run a code path that should not have run.
2009 * khtml/editing/visible_position.cpp:
2010 (khtml::VisiblePosition::VisiblePosition): Added copy constructor.
2011 (khtml::VisiblePosition::next): Factored out inline code that used to be here into new
2012 setAffinityUsingLinePosition() function.
2013 (khtml::isEqualIgnoringAffinity): New helper to handle cases when affinity in equality check does
2014 not matter. However, we want to know about such cases where a VisiblePosition differs only by affinity,
2015 and the code will assert in development when this happens.
2016 (khtml::isNotEqualIgnoringAffinity): Ditto, but not. :)
2017 (khtml::setAffinityUsingLinePosition): New helper function mentioned above. This will "correct"
2018 upstream affinity to downstream if the affinity does not make a difference for the position.
2019 * khtml/editing/visible_position.h:
2020 * khtml/editing/visible_range.h: Wacky bug. The operator== for this class took VisiblePosition classes!
2021 * khtml/editing/visible_units.cpp:
2022 (khtml::isStartOfParagraph): Now performs equality check without regard to affinity.
2023 (khtml::isEndOfParagraph): Ditto.
2024 (khtml::isStartOfBlock): Ditto.
2025 (khtml::isEndOfBlock): Ditto.
2026 * kwq/WebCoreBridge.mm:
2027 (-[WebCoreBridge setSelectedDOMRange:affinity:]): Adjusts the affinity using setAffinityUsingLinePosition()
2030 2005-03-04 Darin Adler <darin@apple.com>
2034 - fixed <rdar://problem/4036817> REGRESSION: ctrl-y broken when a line + carriage return cut
2036 * khtml/editing/htmlediting.h: Added insertTextRunWithoutNewlines.
2037 * khtml/editing/htmlediting.cpp:
2038 (khtml::InsertTextCommand::input): Added assertion to make sure strings with newlines don't get
2040 (khtml::TypingCommand::insertText): Added. Takes the name of the old function, but is a new
2041 level that breaks runs into lines and inserts each one separately.
2042 (khtml::TypingCommand::insertTextRunWithoutNewlines): Renamed old insertText to this.
2044 * khtml/dom/dom_string.h: Made substring be a const member function.
2045 * khtml/dom/dom_string.cpp: (DOM::DOMString::substring): Made this const.
2047 2005-03-04 Darin Adler <darin@apple.com>
2051 - fixed <rdar://problem/4020413> REGRESSION (Mail): can't use fonts with names that start with "#" in Mail (Korean fonts)
2053 * khtml/css/css_valueimpl.cpp:
2054 (DOM::isLegalIdentifier): Added. Commented out and not used.
2055 (DOM::quoteStringIfNeeded): Quotes the string if needed. For now only if it starts with "#".
2056 (DOM::CSSPrimitiveValueImpl::cssText): Call quoteStringIfNeeded when asked for cssText for an arbitrary string, since we
2057 need text you can re-parse.
2058 (DOM::FontFamilyValueImpl::cssText): Ditto.
2060 * khtml/editing/markup.cpp:
2061 (khtml::startMarkup): Added comments about lack of quoting for attributes.
2062 (khtml::createMarkup): Ditto.
2064 2005-03-04 Adele Amchan <adele@apple.com>
2068 Fix for <rdar://problem/4021711> REGRESSION(125-188) blank pages when browsing forum at cooperativeresearch.org - cached external script problem
2070 * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::scriptHandler): set flag needToRefCachedScript so we can make sure
2071 notifyFinished is called after pendingSrc is set up with the right data from the cached script
2073 2005-03-04 Ken Kocienda <kocienda@apple.com>
2079 <rdar://problem/4029632> Tiger 8A398:- Mail crashes in DOM::NodeImpl::isBlockFlow() after pasting text with alignment style and BR element from Safari
2081 * khtml/editing/htmlediting.cpp:
2082 (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): VisiblePosition constructor
2083 was failing to yield a position for a node just pasted into the document since a layout was needed
2084 for the calculation to come out right. Layout added. Crash gone.
2088 2005-03-03 Chris Blumenberg <cblu@apple.com>
2090 Fixed: <rdar://problem/3992803> Cannot navigate through list items with the keyboard, you're stuck in the same <li> block unless you click out
2092 Reviewed by harrison.
2094 * khtml/rendering/render_line.cpp:
2095 (khtml::RootInlineBox::closestLeafChildForXPos): avoid returning list markers when possible. Also improved heuristic for returning the best InlineBox given the passed X position.
2098 2005-03-03 Ken Kocienda <kocienda@apple.com>
2104 <rdar://problem/4035198> Pasting text with different styles does not get reproducible results
2106 I had a good idea yesterday to improve the way we "fixup" styles after
2107 pasting, but i chose a poor data structure to do it, a map of
2108 nodes-to-styles. In the fixup step, I iterated over the map elements and
2109 did the fixup. However, since the order in which the items would come
2110 out of the map is indeterminate, we got unpredictable results.
2112 So, the concept was good, but the implementation was flawed. I have
2113 fixed this mapping to be a list instead, so the order that nodes are
2114 evaluated in the fixup step is document order. This works nicely.
2116 * khtml/editing/htmlediting.cpp:
2117 (khtml::ReplacementFragment::~ReplacementFragment): No longer need to explicity deref nodes and
2118 styles saved away for later fixup. This is now handled by the new NodeDesiredStyle class.
2119 (khtml::ReplacementFragment::computeStylesUsingTestRendering): Now calls computeAndStoreNodeDesiredStyle,
2120 function renamed from mapDesiredStyleForNode.
2121 Now accepts a QValueList<NodeDesiredStyle> in place of the old map.
2122 (khtml::NodeDesiredStyle::NodeDesiredStyle): New class that represents a node-to-style mapping.
2123 (khtml::NodeDesiredStyle::~NodeDesiredStyle): Ditto.
2124 (khtml::NodeDesiredStyle::operator=): Ditto.
2125 (khtml::ReplaceSelectionCommand::doApply): Now calls computeAndStoreNodeDesiredStyle,
2126 function renamed from mapDesiredStyleForNode.
2127 (khtml::ReplaceSelectionCommand::fixupNodeStyles): Now operates on a QValueList<NodeDesiredStyle> in
2128 place of the old map.
2129 (khtml::computeAndStoreNodeDesiredStyle): Renamed from mapDesiredStyleForNode. Now operates on a
2130 QValueList<NodeDesiredStyle> in place of the old map.
2131 * khtml/editing/htmlediting.h:
2132 (khtml::NodeDesiredStyle): New class that represents a node-to-style mapping.
2133 (khtml::ReplacementFragment::desiredStyles): Now returns a QValueList<NodeDesiredStyle> in place of the old map.
2135 * layout-tests/editing/style/typing-style-003-expected.txt: Results changed in an acceptable way.
2137 2005-03-02 Darin Adler <darin@apple.com>
2141 - fixed <rdar://problem/4029741> REGRESSION (188-189): <input type=text> are cleared when you hide/show them
2143 * khtml/html/html_formimpl.h: Added detach functions for both input and text area elements, since
2144 both have m_valueMatchesRenderer flags.
2145 * khtml/html/html_formimpl.cpp:
2146 (DOM::HTMLInputElementImpl::detach): Set m_valueMatchesRenderer to false, since the renderer is going away.
2147 (DOM::HTMLTextAreaElementImpl::detach): Ditto.
2149 2005-03-02 Ken Kocienda <kocienda@apple.com>
2155 <rdar://problem/4006151> in reply, caret moves to next line after toggling bold style then typing
2157 * khtml/editing/htmlediting.cpp:
2158 (khtml::ApplyStyleCommand::applyInlineStyle): Defer cleaning up empty style until the end of the
2159 function. In some situations, the render tree can get confused when we do this removal up front.
2160 I wish I understood the reasons more deeply, but this bit of code shuffling seems harmless, and
2163 2005-03-02 Darin Adler <darin@apple.com>
2167 - fixed <rdar://problem/4024966> crash happened twice in [KWQTextField setHasFocus:] + 0xe8
2169 Added more nil checks to the widget implementations. Anywhere a widget pointer is used, do a nil check,
2170 rather than relying on high level assumptions about which calls can and can't destroy the HTML element
2171 (and hence the widget). The case in the bug seems to be a case where scrolling destroyed the element.
2172 We can't be sure this fixes the bug, but we can be relatively sure we didn't introduce any new problems,
2173 because this just avoids nil-dereferencing.
2176 (-[KWQButton becomeFirstResponder]):
2177 (-[KWQButton nextKeyView]):
2178 (-[KWQButton previousKeyView]):
2179 * kwq/KWQListBox.mm:
2180 (-[KWQTableView mouseDown:]):
2181 (-[KWQTableView becomeFirstResponder]):
2182 (-[KWQTableView numberOfRowsInTableView:]):
2183 (-[KWQTableView tableViewSelectionDidChange:]):
2184 (-[KWQTableView tableView:shouldSelectRow:]):
2185 (-[KWQTableView selectionShouldChangeInTableView:]):
2186 * kwq/KWQScrollBar.mm:
2187 (-[KWQScrollBar scroll:]):
2189 (-[KWQSlider mouseDown:]):
2190 (-[KWQSlider slide:]):
2191 (-[KWQSlider becomeFirstResponder]):
2192 (-[KWQSlider nextKeyView]):
2193 (-[KWQSlider previousKeyView]):
2194 * kwq/KWQTextArea.mm:
2195 (-[KWQTextAreaTextView becomeFirstResponder]):
2196 (-[KWQTextAreaTextView resignFirstResponder]):
2197 (-[KWQTextAreaTextView mouseDown:]):
2198 * kwq/KWQTextField.mm:
2199 (-[KWQTextFieldController action:]):
2200 (-[KWQTextFieldController controlTextDidEndEditing:]):
2201 (-[KWQTextFieldController controlTextDidChange:]):
2202 (-[KWQTextFieldController textView:didHandleEvent:]):
2203 (-[KWQTextFieldController setHasFocus:]):
2205 2005-03-02 Richard Williamson <rjw@apple.com>
2207 Fixed <rdar://problem/4031483> Leak (RenderObject::createInlineBox) reproducible with Stock widget
2209 We were leaking inline block line boxes. Argh!
2213 * khtml/rendering/render_flow.cpp:
2214 (RenderFlow::dirtyLineBoxes):
2215 * khtml/rendering/render_line.cpp:
2216 (khtml::InlineBox::deleteLine):
2218 2005-03-02 Chris Blumenberg <cblu@apple.com>
2220 Fixed: <rdar://problem/3976872> REGRESSION (Mail): Pasted plain text doesn't get the proper style if pasted into newlines
2222 Reviewed by kocienda.
2224 * khtml/editing/htmlediting.cpp:
2225 (khtml::EditCommand::styleAtPosition): new, factored out from calculateStyleBeforeInsertion
2226 (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): call styleAtPosition
2227 (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): clear new m_insertionStyle ivar
2228 (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand): deref new m_insertionStyle ivar
2229 (khtml::ReplaceSelectionCommand::doApply): store the style so it later be applied when matching style
2230 (khtml::ReplaceSelectionCommand::completeHTMLReplacement): apply style from m_insertionStyle when matching style
2231 * khtml/editing/htmlediting.h:
2233 2005-03-02 Maciej Stachowiak <mjs@apple.com>
2237 <rdar://problem/4031718> REGRESSION (401-401+): Safari reproducible crash setting up scope in JSLazyEventListener::parseCode authenticating to bugweb
2239 * khtml/ecma/kjs_events.cpp:
2240 (JSLazyEventListener::parseCode): If originalNode is NULL, don't
2241 mess with the scope chain.
2243 * khtml/html/html_baseimpl.cpp:
2244 (HTMLBodyElementImpl::parseHTMLAttribute): For handlers that are
2245 delcared on body but set on the document, pass NULL to avoid
2246 swizzling the scope chain. It turns out that this is what browsers
2247 do, and it finesses the crash.
2249 2005-03-02 David Harrison <harrison@apple.com>
2253 <rdar://problem/3948453> Can't type accented chars as first character in Stickies widget
2255 * khtml/editing/htmlediting.cpp:
2256 (khtml::ReplaceSelectionCommand::doApply):
2258 2005-03-02 Ken Kocienda <kocienda@apple.com>
2263 <rdar://problem/4020574> REGRESSION (Mail): copy/paste first part of reply-quoted text alters downstream style
2265 The problem was that the operation to move nodes following the newly-pasted nodes did not preserve the
2266 style of these moved nodes. I have generalized some of the functions that compute and preserve styles
2267 for nodes and then apply these styles after a DOM operation.
2269 * khtml/editing/htmlediting.cpp:
2270 (khtml::ReplacementFragment::~ReplacementFragment): Call new derefNodesAndStylesInMap() helper function
2271 in place of old code that had this deref'ing inline.
2272 (khtml::ReplacementFragment::computeStylesUsingTestRendering): Now calls new mapDesiredStyleForNode() helper
2273 function place of old code that had this style computation inline.
2274 (khtml::ReplacementFragment::removeStyleNodes): Updated comment for new helper name.
2275 (khtml::ReplaceSelectionCommand::doApply): Now calls new helpers in place of helpers whose names were changed,
2276 or in place of pre-refactored inline code.
2277 (khtml::ReplaceSelectionCommand::fixupNodeStyles): Renamed from applyStyleToInsertedNodes(). Now generalized
2278 to take the map of nodes to use for the fixup. This makes it possible to call this code with different maps,
2279 and that is needed to fix the bug.
2280 (khtml::mapDesiredStyleForNode): New helper function to compute the inheritable styles for a given node
2281 and map this style to the given node in the given map. This function now also includes the code that was
2282 in the removeBlockquoteColorsIfNeeded(). This latter helper has now been removed.
2283 (khtml::derefNodesAndStylesInMap): Simple helper to deref map members.
2284 * khtml/editing/htmlediting.h:
2285 (khtml::ReplacementFragment::desiredStyles): New helper to return map of nodes-to-desiredStyles.
2287 2005-03-01 Ken Kocienda <kocienda@apple.com>
2293 <rdar://problem/4011358> REGRESSION(Mail): after dragging text to mail message and deleting, typing or dragging new text doesn't work
2295 * khtml/editing/visible_position.cpp:
2296 (khtml::VisiblePosition::isCandidate): Insertion point disappearing was due to a failed
2297 check here after deleting all the content in the body element. The special "empty block"
2298 needs to add check for DOM children. A block may have straggling anonymous render children in
2299 some cases, and so the check needs to be (!DOM-kids || !render-kids).
2301 Also, I botched the last checkin trying to split these two patches in my tree. Wrong layout tests
2302 got checked in, I checked in a conflict marker in the Changelog, etc. I fixed everything with this checkin.
2304 2005-03-01 Ken Kocienda <kocienda@apple.com>
2308 Improved fix for this bug:
2310 <rdar://problem/3996605> Insert paragraph command puts new block in wrong place, creating difficult-to-handle HTML
2312 Maciej and I discussed this situation at length, and we came up with a better fix than I did earlier.
2314 * khtml/editing/htmlediting.cpp:
2315 (khtml::InsertParagraphSeparatorCommand::doApply): Simplify one special case so that it only handles the
2316 "last in block" situation. Remove special case for "downstream node is in different block" and handle
2317 this case with a little bit of special code in the general insertion case.
2319 Results studied to make sure there were no problems.
2321 * layout-tests/editing/deleting/delete-3959464-fix-expected.txt
2322 * layout-tests/editing/inserting/insert-div-001-expected.txt
2323 * layout-tests/editing/inserting/insert-div-002-expected.txt
2324 * layout-tests/editing/inserting/insert-div-004-expected.txt
2325 * layout-tests/editing/inserting/insert-div-005-expected.txt
2326 * layout-tests/editing/inserting/insert-div-009-expected.txt
2327 * layout-tests/editing/inserting/insert-div-014-expected.txt
2328 * layout-tests/editing/inserting/insert-div-018-expected.txt
2329 * layout-tests/editing/inserting/insert-div-024-expected.txt
2330 * layout-tests/editing/pasteboard/paste-text-011-expected.txt
2331 * layout-tests/editing/pasteboard/paste-text-013-expected.txt
2332 * layout-tests/editing/pasteboard/paste-text-015-expected.txt
2333 * layout-tests/editing/style/block-style-004-expected.txt
2334 * layout-tests/editing/style/block-style-005-expected.txt
2335 * layout-tests/editing/style/block-style-006-expected.txt
2339 * layout-tests/editing/inserting/insert-div-027.html
2340 * layout-tests/editing/inserting/insert-div-027-expected.txt
2342 2005-03-01 David Hyatt <hyatt@apple.com>
2344 Fix for 4030890, regression with <sup> on Google. Fix some bogus != comparison checks in verticalPositionHint.
2348 (RenderObject::getVerticalPosition):
2350 2005-03-01 Chris Blumenberg <cblu@apple.com>
2352 Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content
2356 * khtml/editing/htmlediting.cpp:
2357 (khtml::DeleteSelectionCommand::initializePositionData): pass true for treatNBSPAsWhiteSpace to leadingWhitespacePosition and trailingWhitespacePosition when testing whether or not we have to delete those characters as well.
2358 * khtml/editing/jsediting.cpp: pass true for smartDelete when the selection granularity is WORD. This allows us to write smart delete layout tests.
2359 * layout-tests/editing/deleting/smart-delete-001-expected.txt: Added.
2360 * layout-tests/editing/deleting/smart-delete-001.html: Added.
2361 * layout-tests/editing/deleting/smart-delete-002-expected.txt: Added.
2362 * layout-tests/editing/deleting/smart-delete-002.html: Added.
2364 2005-03-01 Richard Williamson <rjw@apple.com>
2366 Fixed <rdar://problem/4029772> Weather widgets use a lot of memory (more that other widgets)
2368 The string objects created by KWQHeaderStringFromDictionary() leaked.
2370 Reviewed by John Louch.
2373 (KWQHeaderStringFromDictionary):
2375 2005-03-01 Jens Alfke <jens@apple.com>
2379 <rdar://problem/4004531> Simple Sun Signed Applet throws exceptions; doesn't run
2380 Two fixes for the way we extract the parameter-y goodness from <object> tags.
2382 * khtml/rendering/render_frames.cpp:
2383 (RenderPartObject::updateWidget):
2385 2005-03-01 Richard Williamson <rjw@apple.com>
2387 Fixed <rdar://problem/3990258> REGRESSION (125.12-181): top of picture that spans two pages is cut off on print from Safari
2389 The problem was due to incorrect "object truncation" in RenderFlow::paintLines.
2390 We attempt to push objects down if they don't fit on a page at
2391 paint time. If the attempt to push object down failed we just
2392 didn't paint at all.
2396 * khtml/rendering/render_flow.cpp:
2397 (RenderFlow::paintLines):
2399 2005-03-01 Chris Blumenberg <cblu@apple.com>
2401 Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content
2405 * khtml/editing/htmlediting.cpp:
2406 (khtml::DeleteSelectionCommand::initializePositionData): pass true for treatNBSPAsWhiteSpace to leadingWhitespacePosition and trailingWhitespacePosition when testing whether or not we have to delete those characters as well.
2407 * khtml/editing/jsediting.cpp: pass true for smartDelete when the selection granularity is WORD. This allows us to write smart delete layout tests.
2408 * layout-tests/editing/deleting/smart-delete-001-expected.txt: Added.
2409 * layout-tests/editing/deleting/smart-delete-001.html: Added.
2410 * layout-tests/editing/deleting/smart-delete-002-expected.txt: Added.
2411 * layout-tests/editing/deleting/smart-delete-002.html: Added.
2413 2005-03-01 Ken Kocienda <kocienda@apple.com>
2419 <rdar://problem/4030068> Trailing <return> gets eaten when pasted at the end of a document
2421 * khtml/editing/htmlediting.cpp:
2422 (khtml::ReplaceSelectionCommand::doApply): Add code to handle formerly-unhandled end-of-document case.
2424 2005-03-01 Maciej Stachowiak <mjs@apple.com>
2428 <rdar://problem/4003774> REGRESSION(125-181): JavaScript problems @ Yankee/Dixie quiz
2430 Reworked how scopes are set up for event handlers to match other
2431 browser. This includes the following changes:
2433 - Special scope entries are set up at the time the event handler
2434 is created, not at the time it fires.
2436 - Special scope is only set up for event handlers set in the html
2437 source through an html attribute, not for handlers set using
2438 addEventHandler or setting JS properties like onclick through
2441 - Special scope is based on the DOM node on which the handler is
2442 an attribute, not the event target.
2444 This fixes the regression while allowing the fix to
2445 <rdar://problem/3798453> (DIG: getting variable with same name as
2446 DOM element attribute gets attribute value instead) to keep
2449 * khtml/ecma/kjs_events.cpp:
2450 (JSEventListener::handleEvent):
2451 (JSLazyEventListener::JSLazyEventListener):
2452 (JSLazyEventListener::parseCode):
2453 * khtml/ecma/kjs_events.h:
2454 * khtml/ecma/kjs_proxy.cpp:
2455 (KJSProxyImpl::createHTMLEventHandler):
2456 * khtml/ecma/kjs_proxy.h:
2457 * khtml/ecma/kjs_window.cpp:
2458 (Window::getJSLazyEventListener):
2459 * khtml/ecma/kjs_window.h:
2460 * khtml/html/html_baseimpl.cpp:
2461 (HTMLBodyElementImpl::parseHTMLAttribute):
2462 (HTMLFrameElementImpl::parseHTMLAttribute):
2463 (HTMLFrameSetElementImpl::parseHTMLAttribute):
2464 * khtml/html/html_elementimpl.cpp:
2465 (HTMLElementImpl::parseHTMLAttribute):
2466 * khtml/html/html_formimpl.cpp:
2467 (DOM::HTMLFormElementImpl::parseHTMLAttribute):
2468 (DOM::HTMLButtonElementImpl::parseHTMLAttribute):
2469 (DOM::HTMLInputElementImpl::parseHTMLAttribute):
2470 (DOM::HTMLLabelElementImpl::parseHTMLAttribute):
2471 (DOM::HTMLSelectElementImpl::parseHTMLAttribute):
2472 (DOM::HTMLTextAreaElementImpl::parseHTMLAttribute):
2473 * khtml/html/html_imageimpl.cpp:
2474 (HTMLImageElementImpl::parseHTMLAttribute):
2475 * khtml/html/html_objectimpl.cpp:
2476 (HTMLObjectElementImpl::parseHTMLAttribute):
2477 * khtml/khtml_part.cpp:
2478 (KHTMLPart::createHTMLEventListener):
2479 * khtml/khtml_part.h:
2480 * khtml/xml/dom_docimpl.cpp:
2481 (DocumentImpl::createHTMLEventListener):
2482 * khtml/xml/dom_docimpl.h:
2486 2005-03-01 Chris Blumenberg <cblu@apple.com>
2488 Backed out my patch since the tree was closed.
2490 * khtml/editing/htmlediting.cpp:
2491 (khtml::DeleteSelectionCommand::initializePositionData):
2492 * khtml/editing/jsediting.cpp:
2494 2005-03-01 Chris Blumenberg <cblu@apple.com>
2496 Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content
2500 * khtml/editing/htmlediting.cpp:
2501 (khtml::DeleteSelectionCommand::initializePositionData): pass true for treatNBSPAsWhiteSpace to leadingWhitespacePosition and trailingWhitespacePosition when testing whether or not we have to delete those characters as well.
2502 * khtml/editing/jsediting.cpp: pass true for smartDelete when the selection granularity is WORD. This allows us to write smart delete layout tests.
2503 * layout-tests/editing/deleting/smart-delete-001-expected.txt: Added.
2504 * layout-tests/editing/deleting/smart-delete-001.html: Added.
2505 * layout-tests/editing/deleting/smart-delete-002-expected.txt: Added.
2506 * layout-tests/editing/deleting/smart-delete-002.html: Added.
2508 2005-03-01 Ken Kocienda <kocienda@apple.com>
2514 <rdar://problem/4030068> Trailing <return> gets eaten when pasted at the end of a document
2516 * khtml/editing/htmlediting.cpp:
2517 (khtml::ReplaceSelectionCommand::doApply): Add code to handle formerly-unhandled end-of-document case.
2519 2005-03-01 David Harrison <harrison@apple.com>
2523 <rdar://problem/3915560> Mail would like an SPI to enable "smart" text paste/drop
2525 * kwq/WebCoreBridge.h:
2526 * kwq/WebCoreBridge.mm:
2527 (-[WebCoreBridge smartDeleteRangeForProposedRange:]):
2528 (-[WebCoreBridge smartInsertForString:replacingRange:beforeString:afterString:]):
2531 2005-03-01 Chris Blumenberg <cblu@apple.com>
2533 Fixed: <rdar://problem/4030404> selection granularity should be set when extending selection via JS
2535 Reviewed by kocienda.
2537 * khtml/ecma/kjs_window.cpp:
2538 (SelectionFunc::tryCall): set the granularity on the part. This will allow us to write smart paste layout tests.
2539 * layout-tests/editing/pasteboard/smart-paste-001-expected.txt: Added.
2540 * layout-tests/editing/pasteboard/smart-paste-001.html: Added.
2541 * layout-tests/editing/pasteboard/smart-paste-002-expected.txt: Added.
2542 * layout-tests/editing/pasteboard/smart-paste-002.html: Added.
2543 * layout-tests/editing/pasteboard/smart-paste-003-expected.txt: Added.
2544 * layout-tests/editing/pasteboard/smart-paste-003.html: Added.
2545 * layout-tests/editing/pasteboard/smart-paste-004-expected.txt: Added.
2546 * layout-tests/editing/pasteboard/smart-paste-004.html: Added.
2547 * layout-tests/editing/pasteboard/smart-paste-005-expected.txt: Added.
2548 * layout-tests/editing/pasteboard/smart-paste-005.html: Added.
2549 * layout-tests/editing/pasteboard/smart-paste-006-expected.txt: Added.
2550 * layout-tests/editing/pasteboard/smart-paste-006.html: Added.
2551 * layout-tests/editing/pasteboard/smart-paste-007-expected.txt: Added.
2552 * layout-tests/editing/pasteboard/smart-paste-007.html: Added.
2554 2005-03-01 Chris Blumenberg <cblu@apple.com>
2556 Fixed: <rdar://problem/4029934> smart paste with plain text can add too many spaces
2558 Reviewed by kocienda.
2560 * khtml/editing/htmlediting.cpp:
2561 (khtml::ReplaceSelectionCommand::doApply): pass true for treatNBSPAsWhitespace to leadingWhitespacePosition and trailingWhitespacePosition
2562 * khtml/xml/dom_position.cpp:
2563 (DOM::isWS): take treatNBSPAsWhitespace param
2564 (DOM::Position::leadingWhitespacePosition): ditto
2565 (DOM::Position::trailingWhitespacePosition): ditto
2566 * khtml/xml/dom_position.h:
2568 2005-03-01 Ken Kocienda <kocienda@apple.com>
2574 <rdar://problem/3996605> Insert paragraph command puts new block in wrong place, creating difficult-to-handle HTML
2576 * khtml/editing/htmlediting.cpp:
2577 (khtml::InsertParagraphSeparatorCommand::doApply): Look for the upstream-most block to insert after
2578 when at the visible end of a block. This helps to avoid some undesirable sequences of markup which
2579 Dave says will be vary hard to render. Changing the command in this way avoids the "limitations"
2580 of the render tree by not asking it to render markup we do not want to make anyway.
2582 All these tests change, but either in insignificant ways, or for the better.
2584 * layout-tests/editing/deleting/delete-3959464-fix-expected.txt:
2585 * layout-tests/editing/inserting/insert-div-001-expected.txt:
2586 * layout-tests/editing/inserting/insert-div-002-expected.txt:
2587 * layout-tests/editing/inserting/insert-div-004-expected.txt:
2588 * layout-tests/editing/inserting/insert-div-005-expected.txt:
2589 * layout-tests/editing/inserting/insert-div-009-expected.txt:
2590 * layout-tests/editing/inserting/insert-div-024-expected.txt:
2591 * layout-tests/editing/pasteboard/paste-text-011-expected.txt:
2592 * layout-tests/editing/pasteboard/paste-text-013-expected.txt:
2593 * layout-tests/editing/pasteboard/paste-text-015-expected.txt:
2594 * layout-tests/editing/style/block-style-004-expected.txt:
2595 * layout-tests/editing/style/block-style-005-expected.txt:
2596 * layout-tests/editing/style/block-style-006-expected.txt:
2597 * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt:
2598 * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt:
2599 * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt:
2600 * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt:
2602 New test to check specific problem mentioned in the bug.
2604 * layout-tests/editing/inserting/insert-div-026-expected.txt: Added.
2605 * layout-tests/editing/inserting/insert-div-026.html: Added.
2607 2005-02-28 Maciej Stachowiak <mjs@apple.com>
2611 <rdar://problem/4002864> REGRESSION(125-146) getElementById in onload fails in a test case involving external resources
2613 Moved management of elementById hashtable from attach/detach to
2614 insertedIntoDocument/removedFromDocument, to avoid being thrown
2615 off by temporary detaches due to style recalcs.
2617 * khtml/xml/dom_elementimpl.cpp:
2618 (ElementImpl::insertedIntoDocument):
2619 (ElementImpl::removedFromDocument):
2620 (ElementImpl::attach):
2621 (ElementImpl::updateId):
2622 * khtml/xml/dom_elementimpl.h:
2624 Make sure that insertedIntoDocument is called before firing any
2627 * khtml/xml/dom_nodeimpl.cpp:
2628 (NodeBaseImpl::dispatchChildInsertedEvents):
2630 2005-02-28 David Hyatt <hyatt@apple.com>
2632 Fix for 4028999, safari crashes when resetting if mallocsribble is on. Clip rects were being cleared using dead
2633 render objects. Change the ordering.
2637 * khtml/rendering/render_box.cpp:
2638 (RenderBox::detach):
2639 * khtml/rendering/render_layer.cpp:
2640 (RenderLayer::~RenderLayer):
2642 2005-02-28 Chris Blumenberg <cblu@apple.com>
2644 Fixed: <rdar://problem/4024786> REGRESSION (Mail): "Smart paste" plain-text word into Blot leaves insertion point misplaced
2646 Reviewed by kocienda.
2648 * khtml/editing/htmlediting.cpp:
2649 (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Call updateLayout so caretMinOffset and caretMaxOffset return correct values.
2651 2005-02-28 John Sullivan <sullivan@apple.com>
2655 - WebCore part of fix for <rdar://problem/4023490> REGRESSION (125-185): Tabbing through links
2656 on frameset page gets stuck at end (tivofaq.com)
2658 * kwq/WebCoreBridge.h:
2659 add nextValidKeyViewOutsideWebFrameViews (code is in WebKit)
2661 2005-02-28 Ken Kocienda <kocienda@apple.com>
2667 <rdar://problem/3972665> 8A360: HTML message partially truncated on left hand side, text-indent from Script Editor
2669 * khtml/css/css_computedstyle.cpp: inheritableProperties array now defined in css_valueimpl.cpp.
2670 * khtml/css/css_valueimpl.cpp: Define inheritableProperties array here.
2671 (DOM::CSSMutableStyleDeclarationImpl::copyBlockProperties): Use new name for blockProperties, and use the new
2672 constant for the number of items in the array.
2673 (DOM::CSSMutableStyleDeclarationImpl::removeBlockProperties): Ditto.
2674 (DOM::CSSMutableStyleDeclarationImpl::removeInheritableProperties): New function.
2675 * khtml/css/css_valueimpl.h: Declare inheritableProperties array and numInheritableProperties extern so they
2676 can be defined in css_valueimpl.cpp and used in css_computedstyle.cpp.
2677 * khtml/editing/htmlediting.cpp:
2678 (khtml::ReplacementFragment::removeStyleNodes): This code was misguided, and removed too much style from HTML
2679 elements. Now, it removes from HTML elements only the styles that we replace later with a call to applyStyle().
2680 Also, add ID_B to list of inline "style" nodes we are willing to remove. Leaving it off was an oversight.
2682 * layout-tests/editing/pasteboard/paste-text-011-expected.txt: ID_B fix made this result change, without any
2683 visible change in the test.
2687 * layout-tests/editing/style/smoosh-styles-003.html
2688 * layout-tests/editing/style/smoosh-styles-003-expected.txt
2690 2005-02-28 Richard Williamson <rjw@apple.com>
2692 Fixed <rdar://problem/4026985> CrashTracer: ...14 crashes at com.apple.WebCore: -[KWQPageState invalidate] + 32
2694 Added more nil checking and ASSERTS.
2695 Without a reproducible case this is hard to definitively resolve.
2697 Reviewed by John Sullivan.
2699 * kwq/KWQPageState.mm:
2700 (-[KWQPageState invalidate]):
2702 2005-02-28 Richard Williamson <rjw@apple.com>
2704 Fixed <rdar://problem/4027702> 3.5% performance regression btwn Safari-188 and Safari-400
2706 I inadvertently checked in some debugging code that disabled
2707 style sharing. Backed out that change.
2709 * khtml/css/cssstyleselector.cpp:
2710 (khtml::CSSStyleSelector::styleForElement):
2712 2005-02-28 Chris Blumenberg <cblu@apple.com>
2714 Fixed: <rdar://problem/4026639> www.bmw.ca configurator does not work with Safari
2718 * khtml/ecma/kjs_html.cpp:
2719 (KJS::HTMLElement::tryGet): when frameset.<name of frame child> is called, return the window object of the frame child
2721 2005-02-28 Ken Kocienda <kocienda@apple.com>
2727 <rdar://problem/4026906> Paste of HTML table content can break table structure
2729 * khtml/editing/htmlediting.cpp:
2730 (khtml::ReplacementFragment::pruneEmptyNodes): Call new isProbablyTableStructureNode() function to prevent
2731 removal of empty table structure nodes.
2732 (khtml::ReplacementFragment::removeUnrenderedNodesUsingTestRendering): Ditto.
2733 (khtml::isProbablyTableStructureNode): New helper function.
2734 * khtml/editing/htmlediting.h: Declare new helper.
2736 2005-02-28 Chris Blumenberg <cblu@apple.com>
2738 Fixed: <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
2740 Reviewed by kocienda.
2742 * khtml/editing/htmlediting.cpp:
2743 (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): ref and deref the element while it is "floating"
2744 (khtml::ReplacementFragment::insertFragmentForTestRendering): ditto
2745 (khtml::floatRefdElement): new, keeps an element alive while its ref count is 0
2746 (khtml::createDefaultParagraphElement): removed commented out code
2747 (khtml::createBlockPlaceholderElement): ref the element and return it as "floating"
2748 (khtml::createFontElement): ditto
2749 (khtml::createStyleSpanElement): ditto
2750 * khtml/editing/htmlediting.h:
2752 2005-02-27 Maciej Stachowiak <mjs@apple.com>
2756 <rdar://problem/3993557> REGRESSION (125-180-ish): getElementsByTagName no longer works with namespace designations
2758 * khtml/xml/dom_nodeimpl.cpp:
2759 (NodeBaseImpl::getElementsByTagNameNS): When no namespace is specified, find elements
2760 of the specified name in any namespace to match Mozilla and earlier Safari behavior.
2762 2005-02-25 Darin Adler <darin@apple.com>
2766 - fixed <rdar://problem/4025618> Crash while searching at hollywoodvideo.com
2768 * khtml/html/html_formimpl.h: Added valueWithDefault.
2769 * khtml/html/html_formimpl.cpp:
2770 (DOM::HTMLInputElementImpl::appendFormData): Call valueWithDefault instead of going at the render object
2771 to try to get the default value; there may be no render object if this is display:none.
2772 (DOM::HTMLInputElementImpl::valueWithDefault): Added. Knows about the defaults for "submit" and "reset"
2773 buttons; otherwise just returns the value as-is.
2775 * khtml/rendering/render_form.h: Removed the defaultLabel member functions.
2776 * khtml/rendering/render_form.cpp:
2777 (RenderSubmitButton::rawText): Call valueWithDefault instead of using defaultLabel function here on
2778 the render side. The DOM needs to know how to deal with the default anyway for form submission.
2779 (RenderSubmitButton::defaultLabel): Removed.
2780 (RenderResetButton::defaultLabel): Removed.
2781 (RenderPushButton::defaultLabel): Removed.
2783 2005-02-25 Darin Adler <darin@apple.com>
2787 - fixed <rdar://problem/4025088> window onblur and onfocus don't fire when text field has focus
2789 * kwq/KWQKHTMLPart.h: Added setWindowHasFocus function and m_windowHasFocus data member.
2790 * kwq/KWQKHTMLPart.mm:
2791 (KWQKHTMLPart::setDisplaysWithFocusAttributes): Took out the code that sends the focus and blur events.
2792 (KWQKHTMLPart::setWindowHasFocus): Put that code here instead.
2794 * kwq/WebCoreBridge.h: Added setWindowHasFocus: method to the bridge.
2795 * kwq/WebCoreBridge.mm: (-[WebCoreBridge setWindowHasFocus:]): Added. Calls method on the part.
2797 2005-02-25 Darin Adler <darin@apple.com>
2801 - re-fixed <rdar://problem/3665430> horizontal scroll bar of text area does not show, even when text is wide in "no wrap" mode
2803 * kwq/KWQTextArea.mm: (-[KWQTextArea _updateTextViewWidth]): Don't change the text view width
2804 to match the text area's width in the "wrap" case.
2806 2005-02-25 Ken Kocienda <kocienda@apple.com>
2812 <rdar://problem/4021518> 8A394 Mail crashes during paste: khtml::RootInlineBox::closestLeafChildForXPos
2814 * khtml/editing/visible_units.cpp:
2815 (khtml::previousLinePosition): Adding an updateLayout call at the start of the function fixes the crash, since
2816 we caught line boxes in a not-completely-updated state.
2817 (khtml::nextLinePosition): Ditto.
2819 2005-02-25 David Hyatt <hyatt@apple.com>
2821 Fix for 4010774, make sure to avoid an O(N^2) algorithm in nextRenderer() that is triggered when large
2822 DOM subtrees are inserted into documents via one insert/append call.
2824 Reviewed by kocienda
2826 * khtml/xml/dom_nodeimpl.cpp:
2827 (NodeImpl::nextRenderer):
2829 2005-02-25 Richard Williamson <rjw@apple.com>
2831 Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
2833 Second pass at fixing 3382926 w/o causing layout regressions. Same concept:
2834 if directionality of text's element is RTL and first character has neutral directionality
2835 then set the initial directionality to RTL.
2839 * khtml/rendering/bidi.cpp:
2840 (khtml::RenderBlock::bidiReorderLine):
2841 (khtml::RenderBlock::determineStartPosition):
2845 2005-02-25 Ken Kocienda <kocienda@apple.com>
2849 Roll out Chris' change to fix this bug:
2851 <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
2853 That code change is responsible for all these new crashers:
2855 <rdar://problem/4025177> crash copying safari.apple.com into Blot document
2856 <rdar://problem/4025184> crash in DOM::NodeImpl::parentNode copying "New!" from google.com to Blot
2857 <rdar://problem/4025214> crash in DOM::NodeImpl::getRect loading paste-match-style-001.html
2859 Since we wish to close the tree for a build right now, I am rolling out rather than investigating.
2861 * khtml/editing/htmlediting.cpp:
2862 (khtml::ApplyStyleCommand::addInlineStyleIfNeeded)
2863 (khtml::ReplacementFragment::insertFragmentForTestRendering)
2864 (khtml::createDefaultParagraphElement)
2865 (khtml::createBlockPlaceholderElement)
2866 (khtml::createFontElement)
2867 (khtml::createStyleSpanElement)
2868 * khtml/editing/htmlediting.h
2870 2005-02-25 Ken Kocienda <kocienda@apple.com>
2876 <rdar://problem/4020108> Pasting text into message makes Mail crash reproducibly
2878 Note that, even with this fix, development build will crash until this bug is fixed:
2879 <rdar://problem/4024996> Applying block styles can cause assertion failure in inline style removal
2881 This will not crash deployment builds, so I am going to land.
2883 * khtml/editing/htmlediting.cpp:
2884 (khtml::ApplyStyleCommand::applyBlockStyle): Applying block styles can make the loop to reach beyondEnd
2885 fail since the structure of the document can change. Cache the next node first before operating on it,
2888 2005-02-25 Vicki Murley <vicki@apple.com>
2890 - recommit this change, since rolling it out did NOT fix the performance regression!
2892 2005-02-23 Darin Adler <darin@apple.com>
2896 - fixed <rdar://problem/4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves
2898 The key was to change things around so that we don't push text from the DOM to the widget
2899 unless the DOM has actually been changed. This prevents the code path that wipes out inline input
2900 during the blur process.
2902 * khtml/html/html_formimpl.cpp:
2903 (DOM::HTMLInputElementImpl::HTMLInputElementImpl): Start m_valueMatchesRenderer as false.
2904 (DOM::HTMLInputElementImpl::parseHTMLAttribute): Set m_valueMatchesRenderer to false when a
2905 new value is set here.
2906 (DOM::HTMLInputElementImpl::setValue): Set m_valueMatchesRenderer to false when a new value
2908 (DOM::HTMLInputElementImpl::setValueFromRenderer): Added. Sets m_value, sets m_valueMatchesRenderer
2909 to true, and also sends out the input event. It's better to have this here than in the renderer code.
2910 (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl): Start m_valueIsValid as false (replaces
2911 m_dirtyvalue) and m_valueMatchesRenderer as false.
2912 (DOM::HTMLTextAreaElementImpl::updateValue): Added. Factored this out from the value function. Uses
2913 the new booleans and keeps them up to date, specifically setting m_valueMatchesRenderer based on
2914 where the value came from.
2915 (DOM::HTMLTextAreaElementImpl::value): Updated to call updateValue to do most of the work.
2916 (DOM::HTMLTextAreaElementImpl::setValue): Set both m_valueIsValid and m_valueMatchesRenderer.
2917 (DOM::HTMLTextAreaElementImpl::setDefaultValue): Take parameter by reference.
2919 * khtml/html/html_formimpl.h: Added setValueFromRenderer, valueMatchesRenderer, setValueMatchesRenderer,
2920 and m_valueMatchesRenderer to input element. For textarea element, made some parameters pass DOMString
2921 by reference, and added invalidateValue, updateValue, valueMatchesRenderer, and setValueMatchesRenderer.
2923 * khtml/rendering/render_form.cpp:
2924 (RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer
2926 (RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM
2928 (RenderTextArea::detach): Call updateValue instead of calling value for its side effect.
2929 (RenderTextArea::handleFocusOut): Ditto.
2930 (RenderTextArea::updateFromElement): Call updateValue and then not re-get the value from the
2931 DOM if valueMatchesRenderer is true.
2932 (RenderTextArea::slotTextChanged): Call invalidateValue instead of directly setting m_dirtyvalue to true.
2934 2005-02-25 Chris Blumenberg <cblu@apple.com>
2936 Fixed: <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
2940 * khtml/editing/htmlediting.cpp:
2941 (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
2942 (khtml::ReplacementFragment::insertFragmentForTestRendering):
2943 (khtml::floatRefdElement):
2944 (khtml::createDefaultParagraphElement):
2945 (khtml::createBlockPlaceholderElement):
2946 (khtml::createFontElement):
2947 (khtml::createStyleSpanElement):
2948 * khtml/editing/htmlediting.h:
2950 2005-02-25 Darin Adler <darin@apple.com>
2952 * kwq/character-sets.txt: Checked in updated file. This new file has no effect, because none of the
2953 changes affect character sets that we support, but it's good to have the latest file in here, and
2954 completely safe because I checked that the generated files have not changed.
2956 2005-02-25 Vicki Murley <vicki@apple.com>
2960 - back out this change, since it causes a 3.5% performance regression
2962 2005-02-23 Darin Adler <darin@apple.com>
2966 - fixed <rdar://problem/4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves
2968 The key was to change things around so that we don't push text from the DOM to the widget
2969 unless the DOM has actually been changed. This prevents the code path that wipes out inline input
2970 during the blur process.
2972 * khtml/html/html_formimpl.cpp:
2973 (DOM::HTMLInputElementImpl::HTMLInputElementImpl): Start m_valueMatchesRenderer as false.
2974 (DOM::HTMLInputElementImpl::parseHTMLAttribute): Set m_valueMatchesRenderer to false when a
2975 new value is set here.
2976 (DOM::HTMLInputElementImpl::setValue): Set m_valueMatchesRenderer to false when a new value
2978 (DOM::HTMLInputElementImpl::setValueFromRenderer): Added. Sets m_value, sets m_valueMatchesRenderer
2979 to true, and also sends out the input event. It's better to have this here than in the renderer code.
2980 (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl): Start m_valueIsValid as false (replaces
2981 m_dirtyvalue) and m_valueMatchesRenderer as false.
2982 (DOM::HTMLTextAreaElementImpl::updateValue): Added. Factored this out from the value function. Uses
2983 the new booleans and keeps them up to date, specifically setting m_valueMatchesRenderer based on
2984 where the value came from.
2985 (DOM::HTMLTextAreaElementImpl::value): Updated to call updateValue to do most of the work.
2986 (DOM::HTMLTextAreaElementImpl::setValue): Set both m_valueIsValid and m_valueMatchesRenderer.
2987 (DOM::HTMLTextAreaElementImpl::setDefaultValue): Take parameter by reference.
2989 * khtml/html/html_formimpl.h: Added setValueFromRenderer, valueMatchesRenderer, setValueMatchesRenderer,
2990 and m_valueMatchesRenderer to input element. For textarea element, made some parameters pass DOMString
2991 by reference, and added invalidateValue, updateValue, valueMatchesRenderer, and setValueMatchesRenderer.
2993 * khtml/rendering/render_form.cpp:
2994 (RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer
2996 (RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM
2998 (RenderTextArea::detach): Call updateValue instead of calling value for its side effect.
2999 (RenderTextArea::handleFocusOut): Ditto.
3000 (RenderTextArea::updateFromElement): Call updateValue and then not re-get the value from the
3001 DOM if valueMatchesRenderer is true.
3002 (RenderTextArea::slotTextChanged): Call invalidateValue instead of directly setting m_dirtyvalue to true.
3004 2005-02-25 Darin Adler <darin@apple.com>
3008 - fixed <rdar://problem/4024786> REGRESSION (Mail): "Smart paste" plain-text word into Blot leaves insertion point misplaced
3010 * khtml/editing/htmlediting.cpp: (khtml::ReplaceSelectionCommand::doApply):
3011 Use the insertNodeAfterAndUpdateNodesInserted and insertNodeBeforeAndUpdateNodesInserted
3012 functions to add the leading and trailing spaces for smart paste.
3014 2005-02-25 David Hyatt <hyatt@apple.com>
3016 Back out fix for 3382926, since it breaks LTR text inside RTL contexts.
3020 * khtml/rendering/bidi.cpp:
3021 (khtml::BidiIterator::direction):
3023 2005-02-25 David Hyatt <hyatt@apple.com>
3025 Fix for 3975039, scrolling is slow in huge RSS views. Optimize the calculation of clip rects for overflow:hidden
3026 layers. Also optimize layer movement when scrolling overflow sections.
3030 * khtml/rendering/render_layer.cpp:
3032 (ClipRects::operator delete):
3033 (ClipRects::detach):
3034 (RenderLayer::RenderLayer):
3035 (RenderLayer::~RenderLayer):
3036 (RenderLayer::updateLayerPosition):
3037 (RenderLayer::removeOnlyThisLayer):
3038 (RenderLayer::insertOnlyThisLayer):
3039 (RenderLayer::scrollToOffset):
3040 (RenderLayer::hitTest):
3041 (RenderLayer::calculateClipRects):
3042 (RenderLayer::calculateRects):
3043 (RenderLayer::containsPoint):
3044 (RenderLayer::clearClipRects):
3045 (RenderLayer::clearClipRect):
3046 * khtml/rendering/render_layer.h:
3047 (khtml::ClipRects::m_refCnt):
3048 (khtml::ClipRects::overflowClipRect):
3049 (khtml::ClipRects::fixedClipRect):
3050 (khtml::ClipRects::posClipRect):
3051 (khtml::ClipRects::ref):
3052 (khtml::ClipRects::deref):
3053 (khtml::RenderLayer::clipRects):
3054 * khtml/rendering/render_object.cpp:
3055 (RenderObject::setStyle):
3057 2005-02-24 Maciej Stachowiak <mjs@apple.com>
3059 Reviewed by Darin and Dave a while ago.
3061 <rdar://problem/3996685> REGRESSION: Crash in KWQVectorImpl::at loading http://maps.google.com/mapfiles/homepanel.xsl
3063 * kwq/WebCoreBridge.mm:
3064 (formElementFromDOMElement): Check for isHTMLElement() as well as
3065 id() == ID_FORM. This seems like an impossible situation, but
3066 papering over it seems more expedient for the time being.
3068 2005-02-24 Richard Williamson <rjw@apple.com>
3070 Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
3072 Use mirror characters correctly when rendering with RTL directionality.
3076 * khtml/rendering/bidi.cpp:
3077 (khtml::BidiIterator::direction):
3079 2005-02-24 Richard Williamson <rjw@apple.com>
3081 Fixed <rdar://problem/3985889> REGRESSION (125-180): setting <img> src to GIF that already animated does not animate; just shows final frame
3085 * WebCore.pbproj/project.pbxproj:
3086 * khtml/html/html_imageimpl.cpp:
3087 (HTMLImageLoader::updateFromElement):
3088 * khtml/rendering/render_image.cpp:
3089 (RenderImage::resetAnimation):
3090 * khtml/rendering/render_image.h:
3091 * khtml/rendering/render_list.cpp:
3092 (RenderListMarker::setStyle):
3093 (RenderListMarker::paint):
3094 * khtml/rendering/render_list.h:
3098 (QPixmap::resetAnimation):
3099 * kwq/WebCoreImageRenderer.h:
3101 2005-02-24 Chris Blumenberg <cblu@apple.com>
3103 Fixed: <rdar://problem/4020110> Safari crashes in setAllData while taking a www.zoomerang.com survey
3107 * kwq/KWQResourceLoader.mm:
3108 (-[KWQResourceLoader finishJobAndHandle:]): clear the job after we've deleted to avoid reentrancy
3110 2005-02-24 Darin Adler <darin@apple.com>
3114 - fixed <rdar://problem/4023360> REGRESSION (186-187): image file upload is broken at pep.apple.com
3116 * khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::appendFormData): Return true after
3117 setting up the form data for an uploaded file. The old code would fall through to the ISINDEX
3118 case and send double form data (the filename instead of the file contents the second time).
3120 2005-02-24 David Harrison <harrison@apple.com>
3124 <rdar://problem/3990849> AX: textMarkerRange for an AXUIElement within an AXWebArea
3126 * kwq/KWQAccObject.mm:
3127 (-[KWQAccObject textMarkerRange]):
3128 (-[KWQAccObject accessibilityParameterizedAttributeNames]):
3129 (-[KWQAccObject doAXTextMarkerRangeForUIElement:]):
3130 (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
3131 Added AXTextMarkerRangeForUIElement, or you can send textMarkerRange to the UIElement itself.
3133 2005-02-24 David Harrison <harrison@apple.com>
3137 <rdar://problem/4004279> 3 AXSelectedTextChanged notifications are firing each time I type a character
3139 * khtml/xml/dom_docimpl.cpp:
3140 (DocumentImpl::updateSelection):
3141 Send notification only if the selection is not null. This safely ignores transitory selections set during editing.
3143 2005-02-24 Darin Adler <darin@apple.com>
3147 - fixed <rdar://problem/3987619> in some cases, text doesn't resize with Format->Style->Bigger/Smaller
3149 * khtml/editing/htmlediting.cpp:
3150 (khtml::ApplyStyleCommand::applyRelativeFontStyleChange): Only call nodeFullySelected for non-text nodes.
3151 Text nodes are already split so they're either in the range and full selected or out of the range.
3152 And nodeFullySelected doesn't work for text nodes.
3153 (khtml::ApplyStyleCommand::nodeFullySelected): Add an assertion, since this function only works for elements,
3155 (khtml::ApplyStyleCommand::nodeFullyUnselected): Ditto.
3157 - make big improvement in <rdar://problem/3953636> Mail hung for ~10sec changing font of 84328 characters: khtml::ApplyStyleCommand::nodeFullySelected
3159 * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::compareBoundaryPoints): Improve algorithm based on suggestion
3162 - fixed <rdar://problem/4020305> REGRESSION (185-186): loading image in new window using document.write fails
3164 * khtml/xml/dom_docimpl.cpp: (DocumentImpl::open): If there is no parent document, don't blow away the base URL.
3166 - fixed <rdar://problem/4021701> REGRESSION (188-188+): form not submitted after pressing <return> at http://hrweb.apple.com
3168 * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::dispatchMouseEvent): Send activate event in the case where the event
3169 sent is a KHTML_CLICK_EVENT, not CLICK_EVENT.
3171 2005-02-23 Kevin Decker <kdecker@apple.com>
3175 Fixed <rdar://problem/4020747> REGRESSION: stray </applet> tags crash Safari
3177 * khtml/html/htmlparser.cpp:
3178 (KHTMLParser::processCloseTag): Made a typesafe check that prevents crashes
3179 whenever there is a closing applet tag without an actual <applet> in the first place.
3180 Now verifies the current token is ID_APPLET before casting it to an HTMLAppletElementImpl.
3183 2005-02-23 Ken Kocienda <kocienda@apple.com>
3189 <rdar://problem/3977962> font loses bold style after pasting next to existing text and pressing return
3191 * khtml/editing/htmlediting.cpp:
3192 (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): Problem here was
3193 that we were doing work in cases where we should not, and content whose style would have
3194 been correct if we had done nothing was getting clobbered. It turns out that extra work
3195 to apply style to the new paragraph added in this command only needs to be done if we're
3196 at the boundaries of a paragraph. Otherwise, content that is moved as part of the work
3197 of the command will lend their styles to the new paragraph without any extra work needed.
3198 So, make this position check and return unless at a paragraph boundary.
3202 * layout-tests/editing/style/block-styles-007-expected.txt
3203 * layout-tests/editing/style/block-styles-007.html
3205 2005-02-23 Ken Kocienda <kocienda@apple.com>
3211 <rdar://problem/4017641> REGRESSION (Mail): you can only bold/unbold a selection starting from end of line once
3213 Problem is with the way we figure out whether to add or remove a style based on
3214 the current selection. In this case, the code is looking at the end of the
3215 previous line, which is not bold, and deduces incorrectly that the operation is
3216 a "make bold". Then the style code runs to make bold, but there is nothing on
3217 the end of the previous line to embolden, so we get into a cycle where the same
3218 thing happens each time cmd-b is hit.
3220 * khtml/khtml_part.cpp:
3221 (KHTMLPart::selectionComputedStyle): Call editingStartPosition() to get the right position for the font determination.
3222 * khtml/xml/dom2_rangeimpl.cpp:
3223 (DOM::RangeImpl::editingStartPosition): New helper function that "does the right thing" based on whether the
3224 selection is a caret or a range, moving upstream for the former, and downstream for the latter.
3225 * khtml/xml/dom2_rangeimpl.h:
3226 * kwq/KWQKHTMLPart.mm:
3227 (KWQKHTMLPart::fontForSelection): Call editingStartPosition() to get the right position for the font determination.
3231 * layout-tests/editing/style/style-boundary-001-expected.txt
3232 * layout-tests/editing/style/style-boundary-001.html
3233 * layout-tests/editing/style/style-boundary-002-expected.txt
3234 * layout-tests/editing/style/style-boundary-002.html
3235 * layout-tests/editing/style/style-boundary-003-expected.txt
3236 * layout-tests/editing/style/style-boundary-003.html
3237 * layout-tests/editing/style/style-boundary-004-expected.txt
3238 * layout-tests/editing/style/style-boundary-004.html
3240 2005-02-23 Richard Williamson <rjw@apple.com>
3242 Fixed <rdar://problem/3985579> 8A367: Dashboard: Stock widget not visible when click remove to remove single char ticker symbol
3244 Explicitly remove scroll bar views when removing them from
3247 Don't paint synchronously when the scroll position changes,
3248 this caused funky clip problems.
3252 * khtml/rendering/render_layer.cpp:
3253 (RenderLayer::scrollToOffset):
3254 (RenderLayer::setHasHorizontalScrollbar):
3255 (RenderLayer::setHasVerticalScrollbar):
3256 (RenderLayer::updateScrollInfoAfterLayout):
3258 2005-02-23 Ken Kocienda <kocienda@apple.com>
3264 <rdar://problem/3959996> REGRESSION (Mail): cursor moves to beginning of document when click is past end
3266 * khtml/rendering/render_block.cpp:
3267 (khtml::RenderBlock::positionForCoordinates): Skip blocks that are invisible or have no height when
3268 looking for a child to pass off to. And save away the last visible block with a height to pass off
3269 to if there is no child at the right y-coordinate.
3271 2005-02-23 David Harrison <harrison@apple.com>
3275 <rdar://problem/4010059> BoundsForTextMarkerRange does not update with scrolled web area
3277 * kwq/KWQAccObject.mm:
3278 (-[KWQAccObject doAXBoundsForTextMarkerRange:]):
3279 Adjust for scrolling.
3281 2005-02-22 Maciej Stachowiak <mjs@apple.com>
3285 <rdar://problem/3949790> hitting return after pasted styled line results in extra content getting the style
3287 * khtml/editing/htmlediting.cpp:
3288 (khtml::InsertParagraphSeparatorCommand::doApply): In the case
3289 where the start block is the root, insert the newly created DIV at
3290 the end of the root block instead of after the last sibling in the
3291 start node, since the start node could be inside other
3292 style-affecting nodes and we don't want to reparent its cousins
3295 2005-02-23 David Harrison <harrison@apple.com>
3299 <rdar://problem/4014691> switch to correctly spelled NSAccessibilityForegroundColorTextAttribute constant
3301 Also removed two older, now unneeded, wrappers.
3303 * kwq/KWQAccObject.mm:
3304 (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]):
3305 (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
3306 Removed these older, now unneeded, wrappers.
3308 (NSAccessibilityForegroundColorTextAttributeWrapper):
3309 New wrapper for NSAccessibilityForegroundColorTextAttribute.
3311 (AXAttributeStringSetStyle):
3312 Use NSAccessibilityForegroundColorTextAttributeWrapper.
3314 (-[KWQAccObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
3315 Remove uses of visiblePositionForStartOfTextMarkerRange and visiblePositionForEndOfTextMarkerRange.
3317 2005-02-23 David Harrison <harrison@apple.com>
3321 <rdar://problem/3524784> AX hit test doesn't return info when done in empty space of content area
3323 * kwq/KWQAccObject.mm:
3324 (-[KWQAccObject accessibilityHitTest:]):
3325 Return unignored object.
3327 2005-02-23 Darin Adler <darin@apple.com>
3331 - fixed <rdar://problem/4006509> REGRESSION (171-172): Setting CSS -khtml-user-modify property triggers crash
3333 * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty):
3334 Removed the code that changes the style of the element. This was never needed, and caused the
3335 style to be modified while we were iterating it.
3337 2005-02-23 Ken Kocienda <kocienda@apple.com>