1 2005-01-20 Maciej Stachowiak <mjs@apple.com>
5 <rdar://problem/3965196> security fix for javascript: exploit missed one case (already fixed in updates)
7 * khtml/ecma/kjs_window.cpp:
8 (WindowFunc::tryCall): correct mistake in earlier fix for the following bug, caught by Adele:
10 <rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration
12 2005-01-20 Maciej Stachowiak <mjs@apple.com>
16 <rdar://problem/3965466> editing needs to insert text before applying typing style
18 * khtml/editing/htmlediting.cpp:
19 (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): Remove a FIXME comment.
20 (khtml::InsertLineBreakCommand::doApply): Apply style to the BR
21 node after inserting it.
22 (khtml::InsertTextCommand::prepareForTextInsertion): Don't try to
23 apply style to any new nodes created before inserting.
24 (khtml::InsertTextCommand::input): Apply style to the inserted range
25 after doing the text insert.
26 * khtml/editing/htmlediting.h:
28 This change leads to improved results on one of the layout tests:
30 * layout-tests/editing/inserting/insert-div-024-expected.txt:
34 2005-01-20 Ken Kocienda <kocienda@apple.com>
40 <rdar://problem/3964646> REGRESSION (179-180): Typing space at end of line makes following paragraph disappear
42 * khtml/editing/htmlediting.cpp:
43 (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Recent change to block placeholder removal code
44 caused this regression. The code became too aggressive in removing block placeholders, and would remove them
45 from blocks other than the block containing the selection.
46 * layout-tests/editing/inserting/insert-div-023-expected.txt: This file had a spurious BR element in it that
47 I did not notice earlier.
48 * layout-tests/editing/inserting/insert-div-024-expected.txt: Ditto.
50 2005-01-20 David Hyatt <hyatt@apple.com>
52 Fix for oddness on albertsons.com. Make sure not to crash when setting/removing style properties on a node
53 with no document. The bug # is 3813900.
57 2005-01-20 David Harrison <harrison@apple.com>
61 PARTIAL fix for following bug. Create attributed string with fonts and links. Still need to add attachments.
62 <rdar://problem/3942606> AX: Support kAXAttributedStringForTextMarkerRangeParameterizedAttribute
64 * kwq/KWQAccObject.mm:
65 (-[KWQAccObject textUnderElement]):
66 Touched up previous checkin to match code review comments.
68 (-[KWQAccObject value]):
69 Use plainText for this one instead of obsolete attributedString.
71 (-[KWQAccObject accessibilityParameterizedAttributeNames]):
72 Advertise AXAttributedStringForTextMarkerRange.
74 (AXAttributeStringAddFont):
75 (AXAttributeStringAddElement):
76 (-[KWQAccObject linkUIElementForNode:]):
77 (-[KWQAccObject _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
78 (-[KWQAccObject accessibilityAttributedStringForRange:]):
79 New routines to support AXAttributedStringForTextMarkerRange.
81 (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
82 Use new routines instead of obsolete attributedString.
84 2005-01-20 David Harrison <harrison@apple.com>
88 <rdar://problem/3960196> AX Crash in DOM::Range::setStartBefore
90 * khtml/xml/dom_docimpl.cpp:
91 (DocumentImpl::getAccObjectCache):
92 Adjust when detecting cache in non-top level WebArea.
93 * kwq/KWQAccObject.mm:
94 (-[KWQAccObject textUnderElement]):
95 (-[KWQAccObject accessibilityAttributeValue:]):
96 Make sure the elements document is the current one for the part.
98 2005-01-20 Darin Adler <darin@apple.com>
102 - fixed <rdar://problem/3922980> Mail not crashing, just quitting itself suddenly in -[WebHTMLView(MailExtras) findString:options:]
104 * khtml/dom/dom2_range.cpp: (DOM::operator==): Handle null and detached ranges without raising exceptions.
105 The uncaught exception would make the entire program terminate.
107 - fixed <rdar://problem/3885729> attempting to modify a computed style does nothing, but should raise a DOM exception
109 * kwq/DOM-CSS.mm: (-[DOMCSSStyleDeclaration setProperty:::]): Uncommented this code which I had to disable
110 back in November because Mail was stumbling over it.
112 - fixed <rdar://problem/3943049> focus() called during onload handler results in square text field on <input type=search>
114 * kwq/KWQLineEdit.mm: (QLineEdit::baselinePosition): Change computation so it will work even for fields
115 that position their text in a way that depends on vertical size. In the case of a search field, the text
116 is centered, so the old logic was broken.
117 * kwq/KWQTextField.mm: (-[KWQTextFieldController initWithTextField:QLineEdit:]): Set the frame size to
118 something large enough to accomodate the field editor. If we start the frame at size 0,0 we run into
119 AppKit trouble when it insets the frame to figure out the frame for the field editor. In the case of this
120 bug this happens because we become first responder before being sized and positioned by the HTML layout code.
122 - improved debugging output when using "po" from gdb with Objective-C DOM
125 (-[DOMNode description]): Added. Includes node name ("<tr>") and node value (e.g., string for text node).
126 (-[DOMRange description]): Tweaked format.
128 2005-01-19 Richard Williamson <rjw@apple.com>
130 After further discussion with Real we have decided to NOT include the
131 additional CLSID for the real plugin. See 3958601.
135 * khtml/rendering/render_frames.cpp:
136 (RenderPartObject::updateWidget):
138 2005-01-19 David Harrison <harrison@apple.com>
142 <rdar://problem/3949429> AX: word marker routines returns incorrect data for empty line
144 Previous checkin for this bug was missing some of the patch. Editing snafu with multiple changes in tree.
146 * kwq/KWQAccObject.mm:
147 (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
148 (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
149 (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
150 (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
151 (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
152 (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
153 (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]):
155 2005-01-19 Ken Kocienda <kocienda@apple.com>
159 * khtml/editing/htmlediting.cpp:
160 (khtml::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Small, cosmetic change John and I decided
161 to do on my last checkin, but I forgot to do before landing.
163 2005-01-19 Ken Kocienda <kocienda@apple.com>
169 <rdar://problem/3959727> REGRESSION (Mail): Style not preserved on blank lines
171 * khtml/editing/htmlediting.cpp:
172 (khtml::CompositeEditCommand::applyStyle):
173 (khtml::CompositeEditCommand::insertBlockPlaceholder): New function that unconditionally adds a block placeholder.
174 (khtml::CompositeEditCommand::insertBlockPlaceholderIfNeeded): Now returns bool based on whether
175 placeholder was added or not.
176 (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Now searches all the descendents of a block
177 looking for a placeholder. The old code, which just looked at the last child of a node, started missing
178 once block placeholders became styled (which started happening with this patch).
179 (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Now handles applying typing style
180 to a block placeholder at call time, rather than setting the typing style as a latent style that
181 might be applied later. This is an important part of the bug fix.
182 (khtml::DeleteSelectionCommand::doApply): Now uses bool return value from insertBlockPlaceholderIfNeeded()
183 and passes it along to calculateStyleBeforeInsertion, so the case where a block placeholder needs to
184 be styled can be detected.
185 (khtml::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): Changed the way this class
186 managed style. Before it would calculate and set typing style for the block added. This is not
187 sufficient. Added blocks need to styled immediately. Some name changes to instance variables in
188 this class due to the change to accommodate this change.
189 (khtml::InsertParagraphSeparatorCommand::~InsertParagraphSeparatorCommand): Name changes, as above.
190 (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): Ditto.
191 (khtml::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Ditto.
192 (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
193 (khtml::ReplaceSelectionCommand::doApply): Improve check for testing when a placeholder
194 block can be removed in its entirety after the insertion.
195 * khtml/editing/htmlediting.h: Update header accordingly.
196 * khtml/khtml_part.cpp:
197 (KHTMLPart::selectionComputedStyle): Move position for computed style check downstream before
198 doing check when the position is in an empty block (this makes sure any style on any block
199 placeholder is accounted for).
201 New layout tests to check bug fix.
203 * layout-tests/editing/style/block-style-004-expected.txt: Added.
204 * layout-tests/editing/style/block-style-004.html: Added.
205 * layout-tests/editing/style/block-style-005-expected.txt: Added.
206 * layout-tests/editing/style/block-style-005.html: Added.
207 * layout-tests/editing/style/block-style-006-expected.txt: Added.
208 * layout-tests/editing/style/block-style-006.html: Added.
210 Results updated to reflect new block placeholder code.
212 * layout-tests/editing/inserting/insert-div-004-expected.txt
213 * layout-tests/editing/inserting/insert-div-005-expected.txt
214 * layout-tests/editing/inserting/insert-div-006-expected.txt
215 * layout-tests/editing/inserting/insert-div-008-expected.txt
216 * layout-tests/editing/inserting/insert-div-011-expected.txt
217 * layout-tests/editing/inserting/insert-div-012-expected.txt
218 * layout-tests/editing/inserting/insert-div-013-expected.txt
219 * layout-tests/editing/inserting/insert-div-014-expected.txt
220 * layout-tests/editing/inserting/insert-div-015-expected.txt
221 * layout-tests/editing/inserting/insert-div-016-expected.txt
222 * layout-tests/editing/inserting/insert-div-017-expected.txt
223 * layout-tests/editing/inserting/insert-div-018-expected.txt
224 * layout-tests/editing/inserting/insert-div-019-expected.txt
225 * layout-tests/editing/inserting/insert-div-021-expected.txt
226 * layout-tests/editing/inserting/insert-div-022-expected.txt
227 * layout-tests/editing/inserting/insert-div-023-expected.txt
228 * layout-tests/editing/inserting/insert-div-024-expected.txt
230 2005-01-19 David Hyatt <hyatt@apple.com>
232 Dont null-check the renderer before submitting, since a script can set it to display:none and still expect the
233 submission to occur. Fixes bug #3477282.
237 (DOM::HTMLInputElementImpl::defaultEventHandler):
239 2005-01-18 Richard Williamson <rjw@apple.com>
241 Fixed several issues all arising from analysis of plugin detection code at ifilm.com:
243 Fixed <rdar://problem/3958592> can't script plug-ins if plug-in is invoked with <object> element instead of <embed>
244 Fixed <rdar://problem/3958597> <object> elements with IDs do not show up as named properties of the document
245 Fixed <rdar://problem/3960973> DOM objects for plugin elements are not accessible
246 Fixed <rdar://problem/3958601> need an additional class ID in WebCore for the Real plug-in
248 We now support accessing scriptable plugin objects that are specified with <applet>, <embed>, or <object>
249 tags. Also, if any of these elements are named they can be accessed from the document or window objects.
250 Finally, DOM methods are properties will be forwarded appropriately for the plugin's root scriptable object.
254 * khtml/dom/html_document.cpp:
255 (HTMLDocument::objects):
256 * khtml/dom/html_document.h:
257 * khtml/ecma/kjs_dom.cpp:
258 (DOMDocumentProtoFunc::tryCall):
259 (DOMElementProtoFunc::tryCall):
260 (KJS::getRuntimeObject):
261 * khtml/ecma/kjs_dom.h:
262 * khtml/ecma/kjs_html.cpp:
263 (KJS::HTMLDocument::tryGet):
264 (KJS::HTMLElement::tryGet):
265 (KJS::HTMLCollection::tryGet):
266 (KJS::HTMLCollection::getNamedItems):
267 * khtml/ecma/kjs_window.cpp:
269 * khtml/html/html_miscimpl.cpp:
270 (HTMLCollectionImpl::traverseNextItem):
271 * khtml/html/html_miscimpl.h:
272 (DOM::HTMLCollectionImpl::):
273 * khtml/html/html_objectimpl.cpp:
274 (HTMLAppletElementImpl::getAppletInstance):
275 (HTMLObjectElementImpl::HTMLObjectElementImpl):
276 (HTMLObjectElementImpl::getObjectInstance):
277 * khtml/html/html_objectimpl.h:
278 * khtml/rendering/render_frames.cpp:
279 (RenderPartObject::updateWidget):
280 * kwq/KWQKHTMLPart.h:
281 * kwq/KWQKHTMLPart.mm:
282 (KWQKHTMLPart::getObjectInstanceForView):
284 2005-01-18 David Hyatt <hyatt@apple.com>
286 Fix for 3948123, rolling over link erases nearby text. The repaint rect check for lines was wrong whenever
287 two lines overlapped.
291 * khtml/rendering/render_flow.cpp:
292 (RenderFlow::paintLines):
294 2005-01-18 Ken Kocienda <kocienda@apple.com>
300 <rdar://problem/3960116> Focus rings paint incorrectly for contenteditable blocks in web pages
302 * khtml/rendering/render_flow.cpp:
303 (RenderFlow::addFocusRingRects): Fix painting of focus rings so that ring only paints around
304 outermost contenteditable elements.
306 2005-01-18 David Harrison <harrison@apple.com>
310 <rdar://problem/3959668> accessibilityFocusedUIElement sometimes returns an ignored element; it must not
312 * kwq/KWQAccObject.mm:
313 (-[KWQAccObject accessibilityFocusedUIElement]):
314 Return parentObjectUnignored if focused object is ignored.
316 2005-01-18 Ken Kocienda <kocienda@apple.com>
322 <rdar://problem/3952877> REGRESSION (Mail): Command-left/right-arrows don't work with file attachment
324 * khtml/editing/selection.cpp:
325 (khtml::nodeForInlineBox): New helper function used in reimplementation of function below.
326 (khtml::selectionForLine): Reimplemented using line box smarts. I originally wrote this code when
327 I had a less than full understanding of line layout. I can do better now, and my new version no
328 longer fails to notice attachments when doing the kind of navigation mentioned in the bug.
330 2005-01-17 David Harrison <harrison@apple.com>
332 Reviewed by John Sullivan.
334 <rdar://problem/3949429> AX: word marker routines returns incorrect data for empty line
335 <rdar://problem/3949848> AX: paragraph marker routines do not work when given a paragraph end marker
337 Also fixed sentence support in the same way.
339 * kwq/KWQAccObject.mm:
340 (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
341 (-[KWQAccObject doAXNextSentenceEndTextMarkerForTextMarker:]):
342 (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
343 (-[KWQAccObject doAXNextParagraphEndTextMarkerForTextMarker:]):
344 (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]):
345 Move one position in desired direction before calling visible_units.cpp code.
347 2005-01-17 David Harrison <harrison@apple.com>
349 Updated expected test results.
351 <rdar://problem/3945880> line-ending space seems not to be present
353 * layout-tests/editing/deleting/delete-ws-fixup-001-expected.txt:
354 * layout-tests/editing/deleting/delete-ws-fixup-002-expected.txt:
355 * layout-tests/editing/inserting/insert-div-020-expected.txt:
356 * layout-tests/editing/inserting/insert-div-021-expected.txt:
357 * layout-tests/editing/inserting/insert-div-022-expected.txt:
358 * layout-tests/editing/inserting/insert-div-023-expected.txt:
359 * layout-tests/editing/inserting/insert-div-024-expected.txt:
361 2005-01-17 David Harrison <harrison@apple.com>
363 Reviewed by Dave Hyatt (bidi.cpp) and Darin Adler (selection.cpp).
365 <rdar://problem/3945880> line-ending space seems not to be present
367 * khtml/editing/selection.cpp:
368 (khtml::Selection::validate):
369 Extend AFTER_WHITE_SPACE code to support white spac in the middle of paragraphs, not just the end.
370 * khtml/rendering/bidi.cpp:
371 (khtml::RenderBlock::findNextLineBreak):
372 Pick left/rightness of word selection based on being at the end of paragraph (i.e. after a hard line break).
374 2005-01-17 Darin Adler <darin@apple.com>
376 Reviewed by John Louch.
378 - fixed <rdar://problem/3958503> need screenX and screenY to use WebKit windowFrame delegate
380 * khtml/ecma/kjs_window.cpp: (Window::get): Change screenX and screenY to use frameGeometry instead
381 of using mapToGlobal and screen in a complicated way.
382 * kwq/KWQKHTMLView.mm: Removed unused mapToGlobal function.
383 * kwq/KWQWindowWidget.h: Ditto.
384 * kwq/KWQWindowWidget.mm: Ditto.
386 2005-01-17 David Hyatt <hyatt@apple.com>
388 Fix a screwup in rightmost/lowets position computation. 3955207. Make sure floats with layers are still checked.
392 * khtml/rendering/render_block.cpp
394 2005-01-17 Ken Kocienda <kocienda@apple.com>
398 <rdar://problem/3953366> Problems with typing attributes in HTML compose
400 * khtml/editing/htmlediting.cpp:
401 (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Remove misguided "optimization"
402 that tried to sense when typing style could be cleared without actually doing a style diff between
403 before-delete and after-delete positions. Removing this extra check and running the
404 general-purpose code fixes the bug.
406 2005-01-17 Richard Williamson <rjw@apple.com>
408 Fixed <rdar://problem/3753030> Need to ensure same origin for plugin binding invocations (origin security rules)
410 Keep track of originating execution context and target execution
411 context for native JS object wrappers, and perform appropriate
414 Reviewed by David Harrison.
416 * khtml/ecma/kjs_binding.cpp:
417 (ScriptInterpreter::isGlobalObject):
418 (ScriptInterpreter::isSafeScript):
419 (ScriptInterpreter::interpreterForGlobalObject):
420 * khtml/ecma/kjs_binding.h:
421 * khtml/ecma/kjs_window.cpp:
422 (Window::interpreter):
423 (Window::isSafeScript):
424 * khtml/ecma/kjs_window.h:
425 * kwq/DOMInternal.mm:
426 (-[WebScriptObject _initializeScriptDOMNodeImp]):
427 * kwq/KWQKHTMLPart.mm:
428 (KWQKHTMLPart::windowScriptObject):
429 (KWQKHTMLPart::windowScriptNPObject):
430 * kwq/WebCoreBridge.mm:
432 (-[WebCoreBridge init]):
434 2005-01-17 Ken Kocienda <kocienda@apple.com>
440 <rdar://problem/3786659> REGRESSION (Mail): editable WebViews don't work with
441 "size up" and "size down" NSFontManager changes
443 * khtml/css/cssparser.cpp:
444 (CSSParser::parseValue): Add support for parsing new font size delta property.
445 * khtml/css/cssproperties.c: Generated file.
446 * khtml/css/cssproperties.h: Ditto.
447 * khtml/css/cssproperties.in: Add support for parsing new font size delta property.
448 * khtml/editing/htmlediting.cpp:
449 (khtml::isEmptyStyleSpan): New helper function. Code existed before, but now factored out for convenient use.
450 (khtml::CompositeEditCommand::removeNodeAttribute): Does check on value to see it exists before creating
451 and running command to do the removal.
452 (khtml::ApplyStyleCommand::doApply): Now calls new applyRelativeFontStyleChange() function as part of its work.
453 (khtml::ApplyStyleCommand::applyRelativeFontStyleChange): New function that does the "heavy lifting" to handle
454 relative font size changes.
455 (khtml::ApplyStyleCommand::applyInlineStyle): Range check the start and end positions to make sure the start is
456 before or equal to the end. Swap them if not true. I ran into this problem in some similar code in
457 applyRelativeFontStyleChange(). Moving that goodness here too.
458 (khtml::ApplyStyleCommand::splitTextAtEndIfNeeded): Uses a local variable to save a value used often.
459 Code is the same, but reads better now. Function now returns bool as well, just like splitTextAtStartIfNeeded.
460 I use the bool return value now (I obviously did not need it before).
461 (khtml::ApplyStyleCommand::computedFontSize): New helper function.
462 (khtml::ApplyStyleCommand::joinChildTextNodes): Ditto.
463 (khtml::createStyleSpanElement): Ditto.
464 * khtml/editing/htmlediting.h: Update header accordingly.
465 * khtml/editing/jsediting.cpp: Add new command string to enable relative font size changes.
467 (-[DOMCSSStyleDeclaration _fontSizeDelta]): New convenience.
468 (-[DOMCSSStyleDeclaration _setFontSizeDelta:]): Ditto.
469 * kwq/DOMPrivate.h: Declare new conveniences.
470 * layout-tests/editing/editing.js: Add new JS to enable relative font size changes, as well as explicit font size setting.
471 * layout-tests/editing/style/relative-font-size-change-001-expected.txt: Added.
472 * layout-tests/editing/style/relative-font-size-change-001.html: Added.
473 * layout-tests/editing/style/relative-font-size-change-002-expected.txt: Added.
474 * layout-tests/editing/style/relative-font-size-change-002.html: Added.
475 * layout-tests/editing/style/relative-font-size-change-003-expected.txt: Added.
476 * layout-tests/editing/style/relative-font-size-change-003.html: Added.
477 * layout-tests/editing/style/relative-font-size-change-004-expected.txt: Added.
478 * layout-tests/editing/style/relative-font-size-change-004.html: Added.
480 2005-01-14 Darin Adler <darin@apple.com>
482 * khtml/css/cssproperties.c: Regenerated with gperf 3.0.1.
483 * khtml/css/cssvalues.c: Regenerated with gperf 3.0.1.
484 * khtml/misc/htmlattrs.c: Regenerated with gperf 3.0.1.
485 * khtml/misc/htmltags.c: Regenerated with gperf 3.0.1.
487 2005-01-14 Chris Blumenberg <cblu@apple.com>
489 Fixed: <rdar://problem/3886415> arrow keys don't work when the user hits Back to return to RSS page
493 (KWQKHTMLPart::openURLFromPageCache): restore mousePressNode
494 (KWQKHTMLPart::mousePressNode): new
495 * kwq/KWQPageState.h:
496 * kwq/KWQPageState.mm:
497 (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:]): save the mousePressNode
498 (-[KWQPageState clear]): clear the mousePressNode
499 (-[KWQPageState dealloc]): deref the mousePressNode
500 (-[KWQPageState mousePressNode]): new
504 2005-01-13 Vicki Murley <vicki@apple.com>
508 - fix <rdar://problem/3946836> Safari about box lists 2004 instead of 2005
510 * WebCore.pbproj/project.pbxproj: bump "2004" to "2005"
512 2005-01-13 David Harrison <harrison@apple.com>
514 Reviewed by Ken Kocienda.
516 Better fix for 3905066.
518 * khtml/editing/htmlediting.cpp:
519 (khtml::InsertParagraphSeparatorCommand::doApply):
521 2005-01-10 Maciej Stachowiak <mjs@apple.com>
525 <rdar://problem/3758033> REGRESSION (Mail): Support attributes in marked text (International input)
527 * khtml/rendering/render_text.cpp:
528 (InlineTextBox::paint): Support painting custom underline markers for
529 marked text in place of generic yellow.
530 (InlineTextBox::paintMarkedTextUnderline): New method that handles this.
531 * khtml/rendering/render_text.h:
532 * kwq/KWQKHTMLPart.h: Declare new methods and structs.
533 * kwq/KWQKHTMLPart.mm:
534 (KWQKHTMLPart::clear): Clear marked test underlines.
535 (KWQKHTMLPart::setMarkedTextRange): Takes attributes and ranges now.
536 (convertAttributesToUnderlines): Converts NSAttributedString attributes
537 to simplified and C++-friendly form.
538 (KWQKHTMLPart::markedTextUsesUnderlines): New method.
539 (KWQKHTMLPart::markedTextUnderlines): New method.
541 (QPainter::drawLineForText): Handle pen width.
542 * kwq/WebCoreBridge.h:
543 * kwq/WebCoreBridge.mm:
544 (-[WebCoreBridge setMarkedTextDOMRange:customAttributes:ranges:]): Take attributes
546 * kwq/WebCoreTextRenderer.h:
548 2005-01-12 David Harrison <harrison@apple.com>
550 Reviewed by Dave Hyatt.
552 <rdar://problem/3888973> AX: Parent AXWebArea of nested AXWebAreas is messed up
554 * kwq/KWQAccObject.mm:
555 (-[KWQAccObject addChildrenToArray:]):
556 Use the widget's outer view.
558 2005-01-12 David Harrison <harrison@apple.com>
560 Reviewed by Darin Adler.
562 <rdar://problem/3949908> Crash when asking for the kAXLengthForTextMarkerRangeParameterizedAttribute
564 * khtml/xml/dom_nodeimpl.cpp:
565 (NodeImpl::displayNode):
566 Add quotes around text node content.
567 (NodeBaseImpl::childNode):
568 Add nil check to return nil rather than crash when child node not found.
569 * kwq/KWQAccObject.mm:
570 (-[KWQAccObject doAXStringForTextMarkerRange:]):
571 Pass range compliant positions to TextIterator.
573 2005-01-12 David Hyatt <hyatt@apple.com>
575 Fix for 3951203, CSS border style incorrectly clipped on inline elements. Make sure the repaint rect set during
576 line layout is smarter about including the overflow for both old states and new states.
580 * khtml/rendering/bidi.cpp:
581 (khtml::RenderBlock::layoutInlineChildren):
583 2005-01-12 David Hyatt <hyatt@apple.com>
585 Fix for bug 3937608, versiontracker.com flashes and displays the right column below content. Make sure to move
586 tables/overflows that dont fit within a block only in strict mode.
588 Fix for bug 3931049, characters dont show up when typing. Make sure to dirty the right lines when this specific
589 case in editing is hit.
591 Reviewed by darin (first one), kocienda (second one)
593 * khtml/rendering/render_block.cpp:
594 (khtml::RenderBlock::getClearDelta):
595 * khtml/rendering/render_flow.cpp:
596 (RenderFlow::dirtyLinesFromChangedChild):
597 * khtml/rendering/render_line.cpp:
598 (khtml::InlineFlowBox::verticallyAlignBoxes):
600 2005-01-12 Ken Kocienda <kocienda@apple.com>
606 <rdar://problem/3926142> REGRESSION (Mail): Deleting text decreases quote level
608 * khtml/editing/htmlediting.cpp:
609 (khtml::DeleteSelectionCommand::initializePositionData): Change test that will prevent block
610 merging. End-of-line test was just wrong. Call new start-of and end-of paragraph functions
611 added to visible_position files.
612 (khtml::DeleteSelectionCommand::moveNodesAfterNode): Add tests for BR elements, which makes
613 tests to determine when to stop moving nodes more complete and correct. Also improved comments.
614 * khtml/editing/visible_position.cpp:
615 (khtml::isFirstVisiblePositionInParagraph): New function.
616 (khtml::isLastVisiblePositionInParagraph): New function.
617 * khtml/editing/visible_position.h: Update header accordingly.
618 * layout-tests/editing/deleting/delete-block-merge-contents-002-expected.txt: New results, slightly different from former
619 results but still correct.
620 * layout-tests/editing/deleting/delete-block-merge-contents-007-expected.txt: Ditto.
621 * layout-tests/editing/deleting/delete-block-merge-contents-018-expected.txt: Added.
622 * layout-tests/editing/deleting/delete-block-merge-contents-018.html: Added.
623 * layout-tests/editing/deleting/delete-block-merge-contents-019-expected.txt: Added.
624 * layout-tests/editing/deleting/delete-block-merge-contents-019.html: Added.
625 * layout-tests/editing/deleting/delete-block-merge-contents-020-expected.txt: Added.
626 * layout-tests/editing/deleting/delete-block-merge-contents-020.html: Added.
627 * layout-tests/editing/deleting/delete-block-merge-contents-021-expected.txt: Added.
628 * layout-tests/editing/deleting/delete-block-merge-contents-021.html: Added.
629 * layout-tests/editing/deleting/delete-line-014-expected.txt: These new results are actually better, and fix a bug.
631 2005-01-11 Richard Williamson <rjw@apple.com>
633 Fixed 3922875. Fall back to DOM object is EMBED element
634 has no associated runtime object.
638 * khtml/ecma/kjs_dom.cpp:
639 (KJS::getRuntimeObject):
640 * khtml/ecma/kjs_html.cpp:
641 (KJS::HTMLDocument::tryGet):
642 (KJS::HTMLElement::tryGet):
643 (KJS::HTMLCollection::tryGet):
644 (KJS::HTMLCollection::getNamedItems):
646 2005-01-11 David Hyatt <hyatt@apple.com>
648 Fix for 3882299, missing content on gibson.com. Change our handling of " and ' in certain states of the parser to match
653 * khtml/html/htmltokenizer.cpp:
654 (khtml::HTMLTokenizer::parseTag):
656 2005-01-11 Chris Blumenberg <cblu@apple.com>
658 Fixed: <rdar://problem/3930733> Mail prints second page of email blank
662 * khtml/rendering/render_canvas.cpp:
663 (RenderCanvas::paint): cache the print rect since the dirty rect can get changed during printing
664 * khtml/rendering/render_flow.cpp:
665 (RenderFlow::paintLines): removed null check since the print rect should never be null
666 * khtml/rendering/render_list.cpp:
667 (RenderListMarker::paint): ditto
668 * kwq/KWQKHTMLPart.mm:
669 (KWQKHTMLPart::adjustPageHeight): don't set the print rect here since this method is not called for the last page
671 2005-01-10 Ken Kocienda <kocienda@apple.com>
677 <rdar://problem/3943648> extra line is inserted after pressing return within quoted text of reply
679 * khtml/editing/htmlediting.cpp:
680 (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): This bug was the result of a
681 simple coding mistake. A local variable was erroneously redefined in a deeper scope, and so the
682 result calculated in that deeper scope was not available when tested.
684 2005-01-10 Ken Kocienda <kocienda@apple.com>
690 <rdar://problem/3946852> Option-e goes to next line
692 * khtml/editing/htmlediting.cpp:
693 (khtml::ReplaceSelectionCommand::doApply): Tweak case used to determine when merging content
694 into the start line is done. We plan to change pretty substantially soon to better handle
695 the problem described in <rdar://problem/3937352> Quote level not maintained when copied
696 and pasted within a Mail message. In the meantime, this change does no harm, and fixes the bug.
698 2005-01-10 Ken Kocienda <kocienda@apple.com>
704 <rdar://problem/3907005> Applying block styles to a line of text can unexpectedly affect other lines
706 * khtml/editing/htmlediting.cpp:
707 (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): New function which moves "paragraphs"
708 to their own blocks if needed so that a block style can be applied.
709 (khtml::CompositeEditCommand::isMailBlockquote): Moved this function to base class so it can be used more generally.
710 (khtml::ApplyStyleCommand::applyBlockStyle): Pass a node instead of a block to addBlockStyleIfNeeded().
711 (khtml::ApplyStyleCommand::addBlockStyleIfNeeded): Now accepts a node instead of a block for styling.
712 This function also now calls moveParagraphContentsToNewBlockIfNecessary() to make sure that only the current
714 (khtml::SetNodeAttributeCommand::doUnapply): Should not assert on undo if old value of attribute was null.
715 Should remove attributue instead.
716 * khtml/editing/htmlediting.h: Touch function declarations accordingly.
717 * layout-tests/editing/style/create-block-for-style-001-expected.txt: Added.
718 * layout-tests/editing/style/create-block-for-style-001.html: Added.
719 * layout-tests/editing/style/create-block-for-style-002-expected.txt: Added.
720 * layout-tests/editing/style/create-block-for-style-002.html: Added.
721 * layout-tests/editing/style/create-block-for-style-003-expected.txt: Added.
722 * layout-tests/editing/style/create-block-for-style-003.html: Added.
723 * layout-tests/editing/style/create-block-for-style-004-expected.txt: Added.
724 * layout-tests/editing/style/create-block-for-style-004.html: Added.
725 * layout-tests/editing/style/create-block-for-style-005-expected.txt: Added.
726 * layout-tests/editing/style/create-block-for-style-005.html: Added.
727 * layout-tests/editing/style/create-block-for-style-006-expected.txt: Added.
728 * layout-tests/editing/style/create-block-for-style-006.html: Added.
729 * layout-tests/editing/style/create-block-for-style-007-expected.txt: Added.
730 * layout-tests/editing/style/create-block-for-style-007.html: Added.
731 * layout-tests/editing/style/create-block-for-style-008-expected.txt: Added.
732 * layout-tests/editing/style/create-block-for-style-008.html: Added.
733 * layout-tests/editing/style/create-block-for-style-009-expected.txt: Added.
734 * layout-tests/editing/style/create-block-for-style-009.html: Added.
735 * layout-tests/editing/style/create-block-for-style-010-expected.txt: Added.
736 * layout-tests/editing/style/create-block-for-style-010.html: Added.
737 * layout-tests/editing/style/create-block-for-style-011-expected.txt: Added.
738 * layout-tests/editing/style/create-block-for-style-011.html: Added.
739 * layout-tests/editing/style/create-block-for-style-012-expected.txt: Added.
740 * layout-tests/editing/style/create-block-for-style-012.html: Added.
741 * layout-tests/editing/style/create-block-for-style-013-expected.txt: Added.
742 * layout-tests/editing/style/create-block-for-style-013.html: Added.
744 Unrelated updates to these expected results.
745 * layout-tests/editing/inserting/insert-div-007-expected.txt
746 * layout-tests/editing/pasteboard/paste-text-013-expected.txt
748 2005-01-10 Chris Blumenberg <cblu@apple.com>
750 Fixed: <rdar://problem/3936844> Mail: Messages with rich text do not print
754 * khtml/rendering/render_flow.cpp:
755 (RenderFlow::paintLines): don't do pagination work if printRect is not set
756 * khtml/rendering/render_list.cpp:
757 (RenderListMarker::paint): ditto
759 2005-01-10 David Harrison <harrison@apple.com>
763 * kwq/KWQTextUtilities.mm:
764 (currentTextBreakLocaleID):
765 Return empty string (AKA root locale) if locale pref can not be canonicalized.
767 2005-01-10 John Sullivan <sullivan@apple.com>
769 Fixed broken Panther build.
771 * kwq/KWQTextUtilities.mm:
772 (currentTextBreakLocaleID):
773 This recently-added function was using code copy/pasted from CarbonCore UnicodeUtilities.
774 That code used a Tiger-only function, CFLocaleCreateCanonicalLanguageIdentifierFromString.
775 To fix the build, I added a BUILDING_ON_PANTHER #ifdef that avoids the call to the Tiger
776 function. However, the Tiger-only code was wrong; the string generated using
777 CFLocaleCreateCanonicalLanguageIdentifierFromString was not used at all, so I fixed that
780 2005-01-09 David Harrison <harrison@apple.com>
782 Reviewed by Ken Kocienda.
784 <rdar://problem/3786362> REGRESSION (Mail): pasted text loses one newline
786 * khtml/editing/htmlediting.cpp:
787 (khtml::ReplaceSelectionCommand::doApply):
788 Tune check for need for insertParagraphSeparator when hasInterchangeNewline.
790 2005-01-09 Darin Adler <darin@apple.com>
792 Reviewed by Harrison.
794 - fixed <rdar://problem/3939176> select() method does not work on <input type=search>
796 * khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::select): Changed if statement
797 to a switch statement. Added SEARCH to the set of types that treat the renderer as a
800 2005-01-09 David Harrison <harrison@apple.com>
802 Reviewed by Ken Kocienda.
804 <rdar://problem/3905066> REGRESSION (Mail): Hitting return key with caret in front of space causes space to become lost (resize fixes)
806 Problem was that InsertParagraphSeparatorCommand::doApply() was not collapsing
807 whitespace to a single non-breaking space when splitting a text node.
809 * khtml/editing/htmlediting.cpp:
810 (khtml::InsertParagraphSeparatorCommand::doApply):
812 2005-01-08 Kevin Decker <kdecker@apple.com>
816 Fixed: <rdar://problem/3924219> Calling setOuterHTML: on a DOMHTMLHtmlElement can crash a program
818 * khtml/html/html_elementimpl.cpp:
819 (HTMLElementImpl::setOuterHTML): Added a nil check for fragments who don't have parents.
821 2005-01-07 Maciej Stachowiak <mjs@apple.com>
825 <rdar://problem/3807144> REGRESSION (125-TOT): my bank's website doesn't work (Societe Generale, socgen.com)
827 * Khtml/khtml_part.cpp:
828 (KHTMLPart::checkCompleted): If the document is NULL, assume this frame has
829 not started loading yet so it could not possibly be finishing here...
830 (KHTMLPart::stop): ...unless the part is explicitly stopped and there is still
831 no document, in this case we must have hit an error or been loading a non-HTML
833 * khtml/khtml_part.h:
835 2005-01-08 David Harrison <harrison@apple.com>
839 <rdar://problem/3943415> REGRESSION (Mail): double-clicking past word selects previous word instead of only blank space
841 * khtml/editing/selection.cpp:
842 (khtml::Selection::validate):
843 Tune word selections left/right choice to use right if on empty last line.
845 2005-01-07 David Harrison <harrison@apple.com>
849 <rdar://problem/3942619> AX: Support sentence ax attributes
851 Needed to use the unicode utilities properly. Twas lame before.
853 * khtml/editing/visible_units.cpp:
854 (khtml::previousBoundary):
855 (khtml::nextBoundary):
856 (khtml::startOfWord):
858 (khtml::previousWordPosition):
859 (khtml::nextWordPosition):
860 (khtml::startOfSentence):
861 (khtml::endOfSentence):
862 (khtml::previousSentencePosition):
863 (khtml::nextSentencePosition):
864 * kwq/KWQAccObject.mm:
865 (-[KWQAccObject accessibilityAttributeNames]):
866 (-[KWQAccObject accessibilityAttributeValue:]):
867 (-[KWQAccObject accessibilityParameterizedAttributeNames]):
868 (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
869 * kwq/KWQTextUtilities.mm:
870 (currentTextBreakLocaleID):
871 (KWQFindSentenceBoundary):
872 (KWQFindNextSentenceFromIndex):
874 2005-01-07 Ken Kocienda <kocienda@apple.com>
880 <rdar://problem/3939523> in some cases, text does not retain style info after pressing return twice
881 <rdar://problem/3944492> after pressing return twice, text is bold when it shouldn't be
883 * khtml/editing/htmlediting.cpp:
884 (khtml::InsertParagraphSeparatorCommand::setFullTypingStyleBeforeInsertion):
885 Merge the typing style with the computed style for the current position. Fixes both bugs.
886 * khtml/editing/htmlediting.h:
887 * layout-tests/editing/inserting/insert-div-023-expected.txt: Added.
888 * layout-tests/editing/inserting/insert-div-023.html: Added.
889 * layout-tests/editing/inserting/insert-div-024-expected.txt: Added.
890 * layout-tests/editing/inserting/insert-div-024.html: Added.
892 2005-01-07 David Hyatt <hyatt@apple.com>
894 Fix for 3941364, make sure tables reset overflowWidth/Height when they lay out again. Fixes the odd scrolling
895 behavior on worldofwarcraft.com.
899 * khtml/rendering/render_table.cpp:
900 (RenderTable::layout):
902 2005-01-06 David Hyatt <hyatt@apple.com>
904 Fix for 3932418 and 3920998, assertion failures caused by stray inline content inside tables. Bulletproof the hit testing to
905 ignore inline flows in this case.
909 * khtml/rendering/render_block.cpp:
910 (khtml::RenderBlock::nodeAtPoint):
912 2005-01-07 Ken Kocienda <kocienda@apple.com>
918 <rdar://problem/3848412> for forwarded message, tabbing to message view scrolls to bottom of view
920 * kwq/KWQKHTMLPart.mm:
921 (KWQKHTMLPart::nextKeyViewInFrame): Don't scroll the focus node to visible if it is not
922 in the document, or if it is not a descendent of the document element. In the case of the bug,
923 since the selection has not yet been set up, the focus node passed here is the HTML element, and
924 that does not yield a rect that is useful to us here. So now, in the case the bug mentions, we do nothing.
926 2005-01-06 Kevin Decker <kdecker@apple.com>
930 Fixed: <rdar://problem/3932215> REGRESSION (125-177): iFrame example at developer.apple.com fails in Safari
932 * khtml/khtml_part.cpp:
933 (KHTMLPart::processObjectRequest): m_bComplete was never true for frames generated by Javascript due to our synchronous loading and as a result, scheduled redirects wouldn't fire in KHTMLPart::scheduleLocationChange(). By virtue of being an empty document, a document is complete. In this special case it's safe at this point to call checkCompleted() which sets m_bComplete true.
937 2005-01-06 David Harrison <harrison@apple.com>
941 (addendum to previous checkin for this bug)
942 <rdar://problem/3776056> AX: Editable HTML should not be viewed as AXStaticText
944 Fix line navigation. Add AXUIElementForTextMarker.
946 * kwq/KWQAccObject.mm:
947 (-[KWQAccObject accessibilityParameterizedAttributeNames]):
948 (-[KWQAccObject doAXUIElementForTextMarker:]):
949 (-[KWQAccObject doAXLineForTextMarker:]):
950 (-[KWQAccObject doAXTextMarkerRangeForLine:]):
951 (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
952 (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
953 (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
954 (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
956 2005-01-06 Darin Adler <darin@apple.com>
960 - re-fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
962 (turns out the PLT regression was a false alarm)
964 * khtml/html/htmlparser.h: Change forbidden tag array to be allocated in the object rather than on
965 the heap. Also use ID_LAST_TAG for the array size; the old code used ID_CLOSE_TAG which is now a
967 * khtml/html/htmlparser.cpp:
968 (KHTMLParser::KHTMLParser): Remove code that creates the forbidden tag array on the heap; makes more
969 sense to just have the array be a member so we don't have to use new and delete on it. Also needed
970 to eliminate code that used ID_CLOSE_TAG for an array size.
971 (KHTMLParser::~KHTMLParser): Remove code that deletes the forbidden tag array. Also changed the code
972 that manages isindex to use deref instead of delete.
973 (KHTMLParser::reset): Use safer sizeof for clearing the forbidden tag array. Old code had the
974 mistake of using ID_CLOSE_TAG for the array size too.
975 (KHTMLParser::parseToken): Removed code that checks for bogus tags; it's not clear why it was ever
976 there and it would prevent custom tags from working. Added range check before using the forbidden
977 tag array with the token ID since custom tags will use index values past the end of the array.
978 (KHTMLParser::getElement): Removed most of the code that makes an element by ID; now the work is done
979 inside the DocumentImpl createHTMLElement. Any code that needs to be different than a dynamic
980 createElement call is still here. Last time I left out a few form element types from this switch;
982 * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): Call the tagId function in the
983 document if getTagID fails; this creates a unique per-document ID.
985 * khtml/misc/htmltags.c: Regenerated.
986 * khtml/misc/htmltags.h: Regenerated.
988 * khtml/misc/maketags: Changed the generated constants to use "const unsigned short" instead of "#define".
989 Changed ID_CLOSE_TAG to be a fixed value of 32000 rather than being just past the IDs of the HTML tags.
990 Also rewrote getTagName to work with the new scheme.
992 2005-01-06 David Harrison <harrison@apple.com>
994 Fixed Panther build. Also, do not advertize sentence support since it is incomplete.
996 * kwq/KWQAccObject.mm:
997 (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
998 (-[KWQAccObject accessibilityParameterizedAttributeNames]):
999 (-[KWQAccObject accessibilityIsAttributeSettable:]):
1001 2005-01-06 David Harrison <harrison@apple.com>
1003 Reviewed by Dave Hyatt.
1005 <rdar://problem/3776056> AX: Editable HTML should not be viewed as AXStaticText
1006 <rdar://problem/3588548> AX: tabbing does not work correctly with the screen reader and a focused link; need AXFocusedUIElement to work
1008 Many more AX attributes supported. Numerous fixes to previous AX work.
1010 * khtml/editing/visible_units.cpp:
1011 (khtml::startSentenceBoundary):
1012 (khtml::startOfSentence):
1013 (khtml::endSentenceBoundary):
1014 (khtml::endOfSentence):
1015 (khtml::previousSentencePositionBoundary):
1016 (khtml::previousSentencePosition):
1017 (khtml::nextSentencePositionBoundary):
1018 (khtml::nextSentencePosition):
1019 * khtml/editing/visible_units.h:
1020 * khtml/khtmlview.cpp:
1021 (KHTMLView::layout):
1022 * khtml/misc/helper.cpp:
1023 (khtml::findSentenceBoundary):
1024 (khtml::nextSentenceFromIndex):
1025 * khtml/misc/helper.h:
1026 * khtml/misc/htmltags.c:
1029 * khtml/rendering/render_container.cpp:
1030 (RenderContainer::removeChildNode):
1031 (RenderContainer::appendChildNode):
1032 (RenderContainer::insertChildNode):
1033 * khtml/rendering/render_object.cpp:
1034 (RenderObject::remove):
1035 * khtml/xml/dom_docimpl.cpp:
1036 (DocumentImpl::getAccObjectCache):
1037 (DocumentImpl::updateSelection):
1038 (DocumentImpl::close):
1039 (DocumentImpl::setFocusNode):
1040 (DocumentImpl::parentDocument):
1041 (DocumentImpl::topDocument):
1042 * khtml/xml/dom_docimpl.h:
1043 * kwq/KWQAccObject.mm:
1044 (-[KWQAccObject accessibilityShouldUseUniqueId]):
1045 (-[KWQAccObject detach]):
1046 (-[KWQAccObject anchorElement]):
1047 (-[KWQAccObject firstChild]):
1048 (-[KWQAccObject lastChild]):
1049 (-[KWQAccObject previousSibling]):
1050 (-[KWQAccObject nextSibling]):
1051 (-[KWQAccObject parentObject]):
1052 (-[KWQAccObject value]):
1053 (-[KWQAccObject accessibilityAttributeNames]):
1054 (-[KWQAccObject accessibilityPerformAction:]):
1055 (-[KWQAccObject textMarkerForVisiblePosition:]):
1056 (-[KWQAccObject visiblePositionForTextMarker:]):
1057 (-[KWQAccObject textMarkerRangeFromVisiblePositions:andEndPos:]):
1058 (-[KWQAccObject topDocument]):
1059 (-[KWQAccObject topRenderer]):
1060 (-[KWQAccObject topView]):
1061 (-[KWQAccObject accessibilityAttributeValue:]):
1062 (-[KWQAccObject accessibilityParameterizedAttributeNames]):
1063 (-[KWQAccObject doAXLineForTextMarker:]):
1064 (-[KWQAccObject doAXTextMarkerRangeForLine:]):
1065 (-[KWQAccObject doAXStringForTextMarkerRange:]):
1066 (-[KWQAccObject doAXTextMarkerForPosition:]):
1067 (-[KWQAccObject doAXBoundsForTextMarkerRange:]):
1068 (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
1069 (-[KWQAccObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
1070 (-[KWQAccObject doAXNextTextMarkerForTextMarker:]):
1071 (-[KWQAccObject doAXPreviousTextMarkerForTextMarker:]):
1072 (-[KWQAccObject doAXLeftWordTextMarkerRangeForTextMarker:]):
1073 (-[KWQAccObject doAXRightWordTextMarkerRangeForTextMarker:]):
1074 (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
1075 (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
1076 (-[KWQAccObject doAXSentenceTextMarkerRangeForTextMarker:]):
1077 (-[KWQAccObject doAXParagraphTextMarkerRangeForTextMarker:]):
1078 (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
1079 (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
1080 (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
1081 (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
1082 (-[KWQAccObject doAXNextSentenceEndTextMarkerForTextMarker:]):
1083 (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
1084 (-[KWQAccObject doAXNextParagraphEndTextMarkerForTextMarker:]):
1085 (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]):
1086 (-[KWQAccObject doAXLengthForTextMarkerRange:]):
1087 (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
1088 (-[KWQAccObject accessibilityHitTest:]):
1089 (-[KWQAccObject accessibilityFocusedUIElement]):
1090 (-[KWQAccObject accessibilityIsAttributeSettable:]):
1091 (-[KWQAccObject doSetAXSelectedTextMarkerRange:]):
1092 (-[KWQAccObject setAccObjectID:]):
1093 (-[KWQAccObject removeAccObjectID]):
1094 * kwq/KWQAccObjectCache.h:
1095 * kwq/KWQAccObjectCache.mm:
1096 (KWQAccObjectCache::setAccObject):
1097 (KWQAccObjectCache::removeAccObject):
1098 (KWQAccObjectCache::visiblePositionForTextMarker):
1099 (KWQAccObjectCache::postNotificationToTopWebArea):
1100 (KWQAccObjectCache::postNotification):
1101 (KWQAccObjectCache::handleFocusedUIElementChanged):
1102 * kwq/KWQKHTMLPart.mm:
1103 (KWQKHTMLPart::respondToChangedContents):
1104 * kwq/KWQTextUtilities.h:
1105 * kwq/KWQTextUtilities.mm:
1106 (KWQFindNextWordFromIndex):
1107 (KWQFindSentenceBoundary):
1108 (KWQFindNextSentenceFromIndex):
1109 * kwq/WebCoreBridge.mm:
1110 (-[WebCoreBridge accessibilityTree]):
1112 2005-01-05 Darin Adler <darin@apple.com>
1116 - re-landing a subset of my custom tag change that does not fix the bug, but also does
1117 not introduce a performance regression
1119 * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
1120 some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
1122 * khtml/editing/htmlediting.cpp:
1123 (khtml::debugPosition): Use nodeName rather than getTagName, since the latter works for
1124 per-document tags and is just better all around for things like the document.
1125 (khtml::debugNode): Ditto.
1126 * khtml/editing/selection.cpp: (khtml::Selection::debugPosition): Ditto.
1127 * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::debugPosition): Ditto.
1128 * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Ditto.
1129 * khtml/xml/dom_position.cpp: (DOM::Position::debugPosition): Ditto.
1131 * khtml/html/dtd.cpp: (DOM::checkChild): Use ID_LAST_TAG rather than 1000 for the check that allows
1132 non-HTML elements to be nested as desired.
1134 * khtml/misc/htmlhashes.h: Changed return types to unsigned short.
1135 * khtml/misc/htmlhashes.cpp:
1136 (khtml::getTagID): Changed return type to unsigned short.
1137 (khtml::getAttrID): Ditto.
1139 * khtml/xml/dom_docimpl.h: Added overload of createHTMLElement, made it non-virtual since it's not overriden.
1140 * khtml/xml/dom_docimpl.cpp:
1141 (DocumentImpl::createHTMLElement): Refactored into two separate functions, one that takes the tag ID.
1142 Also updated for a few tags that the parser handled but this did not.
1144 * kwq/KWQRenderTreeDebug.cpp:
1145 (getTagName): Added. Works for custom nodes, because it calls nodeName rather than using getTagName on
1146 the tag ID directly, which only works for standard nodes.
1147 (operator<<): Update to call getTagName.
1148 (nodePositionRelativeToRoot): Ditto.
1149 (writeSelection): Ditto.
1151 2005-01-05 Ken Kocienda <kocienda@apple.com>
1157 <rdar://problem/3941203> REGRESSION (Mail): Paste inserts content in wrong place
1159 * khtml/editing/htmlediting.cpp:
1160 (khtml::ReplaceSelectionCommand::doApply): Some cleanup and refinement of the concepts used to make
1161 this operation work correctly, particularly in the logic to figure out whether to merge content, and
1162 also performing merges.
1163 * khtml/editing/visible_position.cpp:
1164 (khtml::isFirstVisiblePositionInBlock): Simplification of test used to make this determination.
1165 * khtml/editing/visible_units.cpp:
1166 (khtml::isStartOfParagraph): New helper, used in khtml::ReplaceSelectionCommand::doApply().
1167 (khtml::isEndOfParagraph): Ditto.
1168 * khtml/editing/visible_units.h: Declare new functions.
1170 2005-01-04 Ken Kocienda <kocienda@apple.com>
1176 <rdar://problem/3926522> Pressing return in a quoted block inserts too many newlines
1178 * khtml/editing/htmlediting.cpp:
1179 (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Call to insertBlockPlaceholderIfNeeded()
1180 for the block we are adding was being done at the wrong time, which led to the placeholder remaining
1181 in the document when it was not needed. This resulted in the extra space reported in the bug.
1183 2005-01-04 Kevin Decker <kdecker@apple.com>
1187 Fixed: <rdar://problem/3936879> nil-deref, crash in InlineFlowBox::nodeAtPoint closing DHTML menus at hrweb.apple.com
1189 * khtml/rendering/render_block.cpp:
1190 (khtml::RenderBlock::fillInlineSelectionGaps): Added a nil check. If there is no selection, don't try to get the selection's containing block. If we do, we'll crash.
1192 2005-01-04 David Hyatt <hyatt@apple.com>
1194 Fix for 3937203, force an update of the dashboard regions when scrollbars are added/removed.
1198 * khtml/rendering/render_layer.cpp:
1199 (RenderLayer::updateScrollInfoAfterLayout):
1201 2005-01-04 Ken Kocienda <kocienda@apple.com>
1205 Fix for these two bugs:
1207 <rdar://problem/3938935> REGRESSION (Mail): Pasting into an empty document mangles content
1208 <rdar://problem/3939148> REGRESSION (Mail): Pasting mistakenly reverses lines
1210 * khtml/editing/htmlediting.cpp:
1211 (khtml::ReplaceSelectionCommand::doApply): For 3938935, add one more case to handle an empty document; merge
1212 neither start nor end. For 3939148, improve the code which adjusts the insertion point during
1213 the process of pasting. It formerly handled only one of the possible cases.
1214 * layout-tests/editing/pasteboard/paste-text-015-expected.txt: Added.
1215 * layout-tests/editing/pasteboard/paste-text-015.html: Added.
1217 2005-01-04 David Hyatt <hyatt@apple.com>
1219 Fix for 3936571, placeholder attribute should work for normal inputs for Dashboard.
1223 * khtml/rendering/render_form.cpp:
1224 (RenderLineEdit::updateFromElement):
1225 * kwq/KWQLineEdit.mm:
1226 (QLineEdit::setPlaceholderString):
1228 2005-01-04 David Hyatt <hyatt@apple.com>
1230 Fix for 3830936, hang on changeforamerica.com. Make sure to ignore the style not yet available option when
1231 returning pseudo-styles.
1235 * khtml/css/cssstyleselector.cpp:
1236 (khtml::CSSStyleSelector::matchRulesForList):
1237 (khtml::CSSStyleSelector::pseudoStyleForElement):
1238 * khtml/rendering/render_style.cpp:
1239 (RenderStyle::addPseudoStyle):
1241 2005-01-04 Darin Adler <darin@apple.com>
1243 - rolled out my custom tag name change again -- it caused a 1 ms PLT regression
1245 * khtml/css/cssstyleselector.cpp:
1246 * khtml/editing/htmlediting.cpp:
1247 * khtml/editing/selection.cpp:
1248 * khtml/editing/visible_position.cpp:
1249 * khtml/html/dtd.cpp:
1250 * khtml/html/htmlparser.cpp:
1251 * khtml/html/htmlparser.h:
1252 * khtml/html/htmltokenizer.cpp:
1253 * khtml/misc/htmlhashes.cpp:
1254 * khtml/misc/htmlhashes.h:
1255 * khtml/misc/htmltags.c:
1256 * khtml/misc/htmltags.h:
1257 * khtml/misc/maketags:
1258 * khtml/xml/dom_docimpl.cpp:
1259 * khtml/xml/dom_docimpl.h:
1260 * khtml/xml/dom_nodeimpl.cpp:
1261 * khtml/xml/dom_position.cpp:
1262 * kwq/KWQRenderTreeDebug.cpp:
1264 2005-01-04 Ken Kocienda <kocienda@apple.com>
1270 <rdar://problem/3927554> Style info applied to remainder of document after a newline is entered
1272 * khtml/editing/htmlediting.cpp:
1273 (khtml::InsertParagraphSeparatorCommand::doApply): Clean up and simplification in code that inserts
1274 a paragraph separator. The bug was all about applying styles to the new paragraph that did not need
1275 to be applied. Now the code will detect when at the end of a style run and will not move and apply
1276 that ending style to the new paragraph, though it will place that style into the typing style. This
1277 seems to match NSText behavior.
1278 * layout-tests/editing/inserting/insert-div-021-expected.txt: This test result exhibited the bug fixed
1279 here. The only reason it was not noticed is that the erroneously copied inline was a span, and so did
1280 not have any visible effect on the document.
1281 * layout-tests/editing/inserting/insert-div-022-expected.txt: Added.
1282 * layout-tests/editing/inserting/insert-div-022.html: Added.
1284 2005-01-04 David Hyatt <hyatt@apple.com>
1286 Fix for 3904562, make sure to clear the outline dictionary when drawing so that random focus rings dont get drawn
1291 * khtml/rendering/render_flow.cpp:
1292 (RenderFlow::paintLines):
1294 2005-01-03 David Hyatt <hyatt@apple.com>
1296 Fix for float painting regressions 3932524, 3931664, and 3933068. Make the noPaint flag setting more
1297 robust and make it work regardless of which objects get a layout or not.
1301 * khtml/rendering/render_block.cpp:
1302 (khtml::RenderBlock::insertFloatingObject):
1303 (khtml::RenderBlock::addOverhangingFloats):
1304 (khtml::RenderBlock::addIntrudingFloats):
1305 * khtml/rendering/render_block.h:
1306 (khtml::RenderBlock::FloatingObject::FloatingObject):
1308 2005-01-03 Maciej Stachowiak <mjs@apple.com>
1312 <rdar://problem/3935390> Tiger 8A341: nil deref crash in DOM::NodeImpl::traverseNextNode
1314 * khtml/html/html_miscimpl.cpp:
1315 (HTMLCollectionImpl::traverseNextItem): Assert that the starting point is not nil,
1316 it should not ever be (now).
1317 (HTMLCollectionImpl::item): When traversing items stop when we hit
1318 nil, meaning the end to avoid triggering above assert (formerly crash).
1320 2005-01-03 Maciej Stachowiak <mjs@apple.com>
1322 Reviewed by John and Kevin.
1324 <rdar://problem/3870317> REGRESSION(125.9-125.11) broken behavior at test.profoundlearning.com - used to
1326 * khtml/ecma/kjs_window.cpp:
1327 (Window::get): Look up frame names before buitin window properties
1328 to match other browsers. This regressed because we added a builtin
1329 "toolbar" property but this site had a frame with that name.
1331 2004-12-21 Maciej Stachowiak <mjs@apple.com>
1335 <rdar://problem/3888931> frame naming allows malicious site to bring up a window when you click on a link in another
1337 Added opener bridge method to help WebKit implement security check
1338 for named frame visibility.
1340 * khtml/khtml_part.h:
1341 * kwq/WebCoreBridge.h:
1342 * kwq/WebCoreBridge.mm:
1343 (-[WebCoreBridge opener]):
1345 2005-01-03 Ken Kocienda <kocienda@apple.com>
1351 <rdar://problem/3933926> Tiger8A341: Mail crashes while forwarding embedded HTML message in -[WebCoreBridge ensureSelectionVisible]
1353 * kwq/WebCoreBridge.mm:
1354 (-[WebCoreBridge ensureSelectionVisible]): Put in some null checks to prevent crash experienced in bug.
1356 2005-01-03 David Hyatt <hyatt@apple.com>
1358 Fix for 3936881, make sure positioned objects prooperly update y-position.
1362 * khtml/rendering/render_block.cpp:
1363 (khtml::RenderBlock::layoutPositionedObjects):
1365 2005-01-03 Ken Kocienda <kocienda@apple.com>
1367 Reviewed by Harrison
1371 <rdar://problem/3928250> REGRESSION (Mail): Typing style lost after hitting return key
1373 * khtml/editing/htmlediting.cpp:
1374 (khtml::InsertLineBreakCommand::preservesTypingStyle): Now implemented, returning yes for this command.
1375 (khtml::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): Initialize new typing style member variable.
1376 (khtml::InsertParagraphSeparatorCommand::~InsertParagraphSeparatorCommand): Deref new typing style member variable.
1377 (khtml::InsertParagraphSeparatorCommand::preservesTypingStyle): Now implemented, returning yes for this command.
1378 (khtml::InsertParagraphSeparatorCommand::setFullTypingStyleBeforeInsertion): New function to set the typing style
1379 (khtml::InsertParagraphSeparatorCommand::calculateAndSetTypingStyleAfterInsertion): Function called after the <p>
1380 insertion is done. This function diffs the style created in setFullTypingStyleBeforeInsertion() with the style
1381 of the new <p> and only sets those styles needed to preserve the style in effect before the insertion.
1382 (khtml::InsertParagraphSeparatorCommand::doApply): Call new functions.
1383 (khtml::TypingCommand::preservesTypingStyle): Now yes for inserting line breaks and paragraphs.
1384 * khtml/editing/htmlediting.h: Declare new functions.
1386 2004-12-25 Kevin Decker <kdecker@apple.com>
1390 Fixed: <rdar://problem/3505072> hang in KHTMLParser::parseToken (consulting.soroos.net)
1392 * khtml/html/dtd.cpp: <label> needed a much higher priority such that it will close block elements. Malformed HTML (ugh) is the only reason why we need to do this.
1394 2004-12-23 Darin Adler <darin@apple.com>
1398 - re-fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
1400 * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
1401 some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
1403 * khtml/editing/htmlediting.cpp:
1404 (khtml::debugPosition): Use nodeName rather than getTagName, since the latter works for
1405 per-document tags and is just better all around for things like the document.
1406 (khtml::debugNode): Ditto.
1407 * khtml/editing/selection.cpp: (khtml::Selection::debugPosition): Ditto.
1408 * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::debugPosition): Ditto.
1409 * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Ditto.
1410 * khtml/xml/dom_position.cpp: (DOM::Position::debugPosition): Ditto.
1412 * khtml/html/dtd.cpp: (DOM::checkChild): Use ID_LAST_TAG rather than 1000 for the check that allows
1413 non-HTML elements to be nested as desired.
1415 * khtml/html/htmlparser.h: Change forbidden tag array to be allocated in the object rather than on
1416 the heap. Also use ID_LAST_TAG for the array size; the old code used ID_CLOSE_TAG which is now a
1418 * khtml/html/htmlparser.cpp:
1419 (KHTMLParser::KHTMLParser): Remove code that creates the forbidden tag array on the heap; makes more
1420 sense to just have the array be a member so we don't have to use new and delete on it. Also needed
1421 to eliminate code that used ID_CLOSE_TAG for an array size.
1422 (KHTMLParser::~KHTMLParser): Remove code that deletes the forbidden tag array. Also changed the code
1423 that manages isindex to use deref instead of delete.
1424 (KHTMLParser::reset): Use safer sizeof for clearing the forbidden tag array. Old code had the
1425 mistake of using ID_CLOSE_TAG for the array size too.
1426 (KHTMLParser::parseToken): Removed code that checks for bogus tags; it's not clear why it was ever
1427 there and it would prevent custom tags from working. Added range check before using the forbidden
1428 tag array with the token ID since custom tags will use index values past the end of the array.
1429 (KHTMLParser::getElement): Removed most of the code that makes an element by ID; now the work is done
1430 inside the DocumentImpl createHTMLElement. Any code that needs to be different than a dynamic
1431 createElement call is still here. Last time I left out a few form element types from this switch;
1433 * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): Call the tagId function in the
1434 document if getTagID fails; this creates a unique per-document ID.
1436 * khtml/misc/htmlhashes.h: Changed return types to unsigned short.
1437 * khtml/misc/htmlhashes.cpp:
1438 (khtml::getTagID): Changed return type to unsigned short.
1439 (khtml::getAttrID): Ditto.
1441 * khtml/misc/htmltags.c: Regenerated.
1442 * khtml/misc/htmltags.h: Regenerated.
1444 * khtml/misc/maketags: Changed the generated constants to use "const unsigned short" instead of "#define".
1445 Changed ID_CLOSE_TAG to be a fixed value of 32000 rather than being just past the IDs of the HTML tags.
1446 Also rewrote getTagName to work with the new scheme.
1448 * khtml/xml/dom_docimpl.h: Added overload of createHTMLElement, made it non-virtual since it's not overriden.
1449 * khtml/xml/dom_docimpl.cpp:
1450 (DocumentImpl::createHTMLElement): Refactored into two separate functions, one that takes the tag ID.
1451 Also updated for a few tags that the parser handled but this did not.
1453 * kwq/KWQRenderTreeDebug.cpp:
1454 (getTagName): Added. Works for custom nodes, because it calls nodeName rather than using getTagName on
1455 the tag ID directly, which only works for standard nodes.
1456 (operator<<): Update to call getTagName.
1457 (nodePositionRelativeToRoot): Ditto.
1458 (writeSelection): Ditto.
1462 2004-12-22 Darin Adler <darin@apple.com>
1464 - rolled out my custom tag name change -- it broke amazon.com
1466 * khtml/css/cssstyleselector.cpp:
1467 * khtml/editing/htmlediting.cpp:
1468 * khtml/editing/selection.cpp:
1469 * khtml/editing/visible_position.cpp:
1470 * khtml/html/dtd.cpp:
1471 * khtml/html/htmlparser.cpp:
1472 * khtml/html/htmlparser.h:
1473 * khtml/html/htmltokenizer.cpp:
1474 * khtml/misc/htmlhashes.cpp:
1475 * khtml/misc/htmlhashes.h:
1476 * khtml/misc/htmltags.c:
1477 * khtml/misc/htmltags.h:
1478 * khtml/misc/maketags:
1479 * khtml/xml/dom_docimpl.cpp:
1480 * khtml/xml/dom_docimpl.h:
1481 * khtml/xml/dom_nodeimpl.cpp:
1482 * khtml/xml/dom_position.cpp:
1483 * kwq/KWQRenderTreeDebug.cpp:
1485 2004-12-22 David Harrison <harrison@apple.com>
1487 Reviewed by Darin Adler.
1489 * khtml/editing/selection.cpp:
1490 (khtml::Selection::validate):
1491 The selecting/deselecting bad behavior is because the Selection code that expands by words
1492 had an inaccurate test for being at the end of the document (where double-clicking needs
1493 to select the last word). Fixed that check.
1495 2004-12-22 Adele Amchan <adele@apple.com>
1499 Fix for <rdar://problem/3911650> tabs at safeway.com stop working after a while
1501 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::scrollToAnchor): removed call to cancelRedirection
1502 so that we match Firefox and WinIE behavior.
1504 2004-12-22 Darin Adler <darin@apple.com>
1508 - fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
1510 * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
1511 some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
1513 * khtml/editing/htmlediting.cpp:
1514 (khtml::debugPosition): Use nodeName rather than getTagName, since the latter works for
1515 per-document tags and is just better all around for things like the document.
1516 (khtml::debugNode): Ditto.
1517 * khtml/editing/selection.cpp: (khtml::Selection::debugPosition): Ditto.
1518 * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::debugPosition): Ditto.
1519 * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Ditto.
1520 * khtml/xml/dom_position.cpp: (DOM::Position::debugPosition): Ditto.
1522 * khtml/html/dtd.cpp: (DOM::checkChild): Use ID_LAST_TAG rather than 1000 for the check that allows
1523 non-HTML elements to be nested as desired.
1525 * khtml/html/htmlparser.h: Change forbidden tag array to be allocated in the object rather than on
1526 the heap. Also use ID_LAST_TAG for the array size; the old code used ID_CLOSE_TAG which is now a
1528 * khtml/html/htmlparser.cpp:
1529 (KHTMLParser::KHTMLParser): Remove code that creates the forbidden tag array on the heap; makes more
1530 sense to just have the array be a member so we don't have to use new and delete on it. Also needed
1531 to eliminate code that used ID_CLOSE_TAG for an array size.
1532 (KHTMLParser::~KHTMLParser): Remove code that deletes the forbidden tag array. Also changed the code
1533 that manages isindex to use deref instead of delete.
1534 (KHTMLParser::reset): Use safer sizeof for clearing the forbidden tag array. Old code had the
1535 mistake of using ID_CLOSE_TAG for the array size too.
1536 (KHTMLParser::parseToken): Removed code that checks for bogus tags; it's not clear why it was ever
1537 there and it would prevent custom tags from working. Added range check before using the forbidden
1538 tag array with the token ID since custom tags will use index values past the end of the array.
1539 (KHTMLParser::getElement): Removed most of the code that makes an element by ID; now the work is done
1540 inside the DocumentImpl createHTMLElement. Any code that needs to be different than a dynamic
1541 createElement call is still here.
1542 * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): Call the tagId function in the
1543 document if getTagID fails; this creates a unique per-document ID.
1545 * khtml/misc/htmlhashes.h: Changed return types to unsigned short.
1546 * khtml/misc/htmlhashes.cpp:
1547 (khtml::getTagID): Changed return type to unsigned short.
1548 (khtml::getAttrID): Ditto.
1550 * khtml/misc/htmltags.c: Regenerated.
1551 * khtml/misc/htmltags.h: Regenerated.
1553 * khtml/misc/maketags: Changed the generated constants to use "const unsigned short" instead of "#define".
1554 Changed ID_CLOSE_TAG to be a fixed value of 32000 rather than being just past the IDs of the HTML tags.
1555 Also rewrote getTagName to work with the new scheme.
1557 * khtml/xml/dom_docimpl.h: Added overload of createHTMLElement, made it non-virtual since it's not overriden.
1558 * khtml/xml/dom_docimpl.cpp:
1559 (DocumentImpl::createHTMLElement): Refactored into two separate functions, one that takes the tag ID.
1560 Also updated for a few tags that the parser handled but this did not.
1562 * kwq/KWQRenderTreeDebug.cpp:
1563 (getTagName): Added. Works for custom nodes, because it calls nodeName rather than using getTagName on
1564 the tag ID directly, which only works for standard nodes.
1565 (operator<<): Update to call getTagName.
1566 (nodePositionRelativeToRoot): Ditto.
1567 (writeSelection): Ditto.
1569 2004-12-21 David Harrison <harrison@apple.com>
1571 Reviewed by Ken Kocienda.
1573 <rdar://problem/3924934> REGRESSION: double click at end of line selects start of next line
1575 Problem was the TextIterator was not handling exitNode() from a P block properly.
1577 * khtml/editing/visible_text.cpp:
1578 (khtml::TextIterator::TextIterator):
1579 Add new param that specifies whether the iterator is for content or for searching.
1580 Search iterators do not prevent newlines at the beginning.
1581 (khtml::TextIterator::advance):
1582 Added some comments.
1583 (khtml::TextIterator::handleTextNode):
1584 Added some comments.
1585 (khtml::TextIterator::exitNode):
1586 Emit newline for P (and other) blocks with position following the block, instead of the m_lastTextNode.
1587 (khtml::TextIterator::emitCharacter):
1588 Added some comments.
1589 (khtml::TextIterator::range):
1590 Added some comments.
1591 (khtml::CharacterIterator::CharacterIterator):
1592 Specify search type TextIterator.
1593 (khtml::CharacterIterator::advance):
1594 * khtml/editing/visible_text.h:
1596 Add new TextIterator::TextIterator param that specifies whether the iterator is for content or for searching.
1597 * khtml/editing/visible_units.cpp:
1598 (khtml::nextWordBoundary):
1599 Specify search type TextIterator.
1601 2004-12-21 David Harrison <harrison@apple.com>
1603 Reviewed by Ken Kocienda.
1605 <rdar://problem/3924695> REGRESSION (Mail): double-clicking past end of line shows no selection, should select to EOL
1607 Problem was that RenderText::setSelectionState did not handle the SelectionStart case where start and end are the end of the line.
1608 Fixed by pretending the start == end-1 in that situation, as long as end > 0.
1610 * khtml/rendering/render_text.cpp:
1611 (RenderText::setSelectionState)
1613 2004-12-21 Maciej Stachowiak <mjs@apple.com>
1617 <rdar://problem/3929187> WebKit needs to restrict access to certain window operations by domain
1619 * khtml/ecma/kjs_window.cpp:
1620 (Window::get): Change most window functions to be restricted by
1623 2004-12-21 Ken Kocienda <kocienda@apple.com>
1629 <rdar://problem/3928305> selecting an entire line and typing over causes new inserted text at top of document
1631 * khtml/editing/htmlediting.cpp:
1632 (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent): New function to detect case
1633 formerly undetected and unhandled. This is the crux of the bug fix.
1634 (khtml::DeleteSelectionCommand::doApply): Call insertPlaceholderForAncestorBlockContent() during
1635 execution of command.
1636 * khtml/editing/htmlediting.h: Declare new function.
1637 * layout-tests/editing/deleting/delete-3928305-fix-expected.txt: Added.
1638 * layout-tests/editing/deleting/delete-3928305-fix.html: Added.
1640 2004-12-21 Ken Kocienda <kocienda@apple.com>
1644 * khtml/editing/htmlediting.cpp:
1645 (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Note to self: Must compile code before
1646 checking in (aka must return false from function returning bool).
1648 2004-12-21 Ken Kocienda <kocienda@apple.com>
1654 <rdar://problem/3927752> Crash in khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded(DOM::NodeImpl*)
1656 * khtml/editing/htmlediting.cpp:
1657 (khtml::CompositeEditCommand::insertBlockPlaceholderIfNeeded): Added some null checks.
1658 (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Ditto.
1660 2004-12-21 Ken Kocienda <kocienda@apple.com>
1664 * khtml/editing/htmlediting.cpp:
1665 (khtml::ReplacementFragment::mergeStartNode): Refine concept of how this node is found based on
1666 further experiements.
1667 (khtml::ReplaceSelectionCommand::doApply): Add a special case for determining merges that need to
1668 be done if the insertion point is in an empty block.
1669 * layout-tests/editing/pasteboard/paste-text-012-expected.txt: Added.
1670 * layout-tests/editing/pasteboard/paste-text-012.html: Added.
1671 * layout-tests/editing/pasteboard/paste-text-013-expected.txt: Added.
1672 * layout-tests/editing/pasteboard/paste-text-013.html: Added.
1673 * layout-tests/editing/pasteboard/paste-text-014-expected.txt: Added.
1674 * layout-tests/editing/pasteboard/paste-text-014.html: Added.
1676 2004-12-21 Darin Adler <darin@apple.com>
1680 - fixed <rdar://problem/3899133> text search in a Safari window takes a very long time on Tiger updates page (and some other pages)
1682 * khtml/editing/visible_text.h: Add an "offset base node" parameter to emitCharacter, and also
1683 add a field to track it. Must make a few things mutable so we can update them in the range accessor.
1684 * khtml/editing/visible_text.cpp:
1685 (khtml::TextIterator::advance): Pass in base node and offsets rather than computing actual offsets
1686 using the node's index. We only compute the node index if actually asked for the range.
1687 (khtml::TextIterator::handleTextNode): Pass 0 for base node and set base node to 0 when setting
1689 (khtml::TextIterator::handleTextBox): Ditto.
1690 (khtml::TextIterator::handleReplacedElement): Pass base node and set base node instead of calling
1692 (khtml::TextIterator::handleNonTextNode): Pass 0 for offset.
1693 (khtml::TextIterator::exitNode): More of the same.
1694 (khtml::TextIterator::emitCharacter): Ditto.
1695 (khtml::TextIterator::range): If an offset base node is stored, then get its node index, and then
1696 add that in to the offsets. Doing the work here guarantees it's done only once when doing a text search.
1700 * khtml/khtml_part.cpp: Removed SPEED_DEBUG define. Not sure why it was on.
1704 2004-12-20 Ken Kocienda <kocienda@apple.com>
1708 * khtml/editing/htmlediting.cpp:
1709 (khtml::DeleteSelectionCommand::moveNodesAfterNode): My one-liner for this bug introduced layout test
1710 regressions: <rdar://problem/3926142> REGRESSION (Mail): Deleting text decreases quote level
1711 Rolling out until I can develop a real fix.
1713 2004-12-20 David Harrison <harrison@apple.com>
1715 Reviewed by Dave Hyatt.
1717 Initial checkin of AXTextMarkerRef support.
1719 * khtml/xml/dom_docimpl.cpp:
1720 (DocumentImpl::updateSelection):
1721 (DocumentImpl::setFocusNode):
1722 * kwq/KWQAccObject.h:
1723 * kwq/KWQAccObject.mm:
1724 (-[KWQAccObject detach]):
1725 (-[KWQAccObject anchorElement]):
1726 (-[KWQAccObject addChildrenToArray:]):
1727 (-[KWQAccObject accessibilityAttributeNames]):
1728 (-[KWQAccObject accessibilityActionDescription:]):
1729 (-[KWQAccObject accessibilityPerformAction:]):
1730 (-[KWQAccObject textMarkerRangeFromMarkers:andEndMarker:]):
1731 (-[KWQAccObject textMarkerForVisiblePosition:]):
1732 (-[KWQAccObject visiblePositionForTextMarker:]):
1733 (-[KWQAccObject AXTextMarkerRangeCopyStartMarkerWrapper:]):
1734 (-[KWQAccObject AXTextMarkerRangeCopyEndMarkerWrapper:]):
1735 (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]):
1736 (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
1737 (-[KWQAccObject accessibilityAttributeValue:]):
1738 (-[KWQAccObject accessibilityParameterizedAttributeNames]):
1739 (-[KWQAccObject textMarkerRangeFromVisiblePositions:andEndPos:]):
1740 (-[KWQAccObject getSelectedTextMarkerRange]):
1741 (-[KWQAccObject doAXLineForTextMarker:]):
1742 (-[KWQAccObject doAXTextMarkerRangeForLine:]):
1743 (-[KWQAccObject doAXStringForTextMarkerRange:]):
1744 (-[KWQAccObject doAXNextTextMarkerForTextMarker:]):
1745 (-[KWQAccObject doAXPreviousTextMarkerForTextMarker:]):
1746 (-[KWQAccObject doAXLeftWordTextMarkerRangeForTextMarker:]):
1747 (-[KWQAccObject doAXRightWordTextMarkerRangeForTextMarker:]):
1748 (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
1749 (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
1750 (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
1751 (-[KWQAccObject accessibilityFocusedUIElement]):
1752 (-[KWQAccObject clearChildren]):
1753 (-[KWQAccObject accObjectID]):
1754 (-[KWQAccObject setAccObjectID:]):
1755 (-[KWQAccObject removeAccObjectID]):
1756 * kwq/KWQAccObjectCache.h:
1757 * kwq/KWQAccObjectCache.mm:
1758 (KWQAccObjectCache::KWQAccObjectCache):
1759 (KWQAccObjectCache::~KWQAccObjectCache):
1760 (KWQAccObjectCache::getAccObjectID):
1761 (KWQAccObjectCache::removeAccObjectID):
1762 (KWQAccObjectCache::textMarkerForVisiblePosition):
1763 (KWQAccObjectCache::visiblePositionForTextMarker):
1765 2004-12-19 Darin Adler <darin@apple.com>
1767 * kwq/KWQFoundationExtras.h: (KWQCFAutorelease): Added nil check.
1769 2004-12-19 Darin Adler <darin@apple.com>
1773 - a garbage collection fix
1775 * kwq/KWQFoundationExtras.h: (KWQCFAutorelease): Added a more-extensive comment and fixed the BUILDING_ON_PANTHER
1776 #ifndef to use #if (in practice, either is OK).
1777 * kwq/KWQKURL.mm: (KURL::getNSURL): Use KWQCFAutorelease instead of autorelease.
1779 2004-12-17 David Hyatt <hyatt@apple.com>
1781 Fix for 3923255, specified percentage heights of divs with overflow auto inside tables not honored.
1783 Reviewed by kocienda
1785 * khtml/rendering/render_box.cpp:
1786 (RenderBox::calcPercentageHeight):
1787 * khtml/rendering/render_table.cpp:
1788 (RenderTableSection::layoutRows):
1790 2004-12-17 David Harrison <harrison@apple.com>
1792 Reviewed by Ken Kocienda.
1794 <rdar://problem/3924930> REGRESSION: triple click does not select to end of line
1796 * khtml/editing/visible_units.cpp:
1797 (khtml::endOfParagraph):
1798 When includeLineBreak is true, allow traversal to next node after enclosingBlockFlowElement.
1800 2004-12-17 Ken Kocienda <kocienda@apple.com>
1804 * khtml/editing/htmlediting.cpp:
1805 (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Missed deleting some now-obsolete expcetion
1806 codes when I added the createBreakElement() function.
1808 2004-12-17 Richard Williamson <rjw@apple.com>
1810 Set the floor of max cacheable object size to 40K. This restores
1811 the long standing floor. Lower floor deleteriously impacts the PLT.
1814 * khtml/khtml_part.cpp:
1815 (KHTMLPart::checkCompleted):
1816 * khtml/misc/loader.cpp:
1819 2004-12-17 Ken Kocienda <kocienda@apple.com>
1825 <rdar://problem/3926142> REGRESSION (Mail): Deleting text decreases quote level
1827 * khtml/editing/htmlediting.cpp:
1828 (khtml::DeleteSelectionCommand::moveNodesAfterNode): Stop merging nodes when a <br> is hit.
1829 Formerly checked only for block boundary.
1831 2004-12-17 David Harrison <harrison@apple.com>
1835 Add KWQCFAutorelease for autoreleasing CF objects.
1836 * kwq/KWQFoundationExtras.h:
1840 2004-12-17 David Harrison <harrison@apple.com>
1844 Fix GC compatibility in getNSString.
1847 (QString::getNSString):
1848 Use NSString allocator instead of CFString, so that autorelease works under GC.
1850 2004-12-17 Ken Kocienda <kocienda@apple.com>
1856 <rdar://problem/3890973> REGRESSION (Mail): Deleting reorders remaining text
1858 * khtml/editing/htmlediting.cpp:
1859 (khtml::DeleteSelectionCommand::moveNodesAfterNode): Added check to ensure that moving content will not
1860 move it after the <body> element.
1862 2004-12-17 Ken Kocienda <kocienda@apple.com>
1866 Added new layout tests covering cases from recent bug fixes.
1868 * layout-tests/editing/inserting/insert-div-018-expected.txt: Added.
1869 * layout-tests/editing/inserting/insert-div-018.html: Added.
1870 * layout-tests/editing/inserting/insert-div-019-expected.txt: Added.
1871 * layout-tests/editing/inserting/insert-div-019.html: Added.
1872 * layout-tests/editing/inserting/insert-div-020-expected.txt: Added.
1873 * layout-tests/editing/inserting/insert-div-020.html: Added.
1874 * layout-tests/editing/inserting/insert-div-021-expected.txt: Added.
1875 * layout-tests/editing/inserting/insert-div-021.html: Added.
1877 2004-12-17 Ken Kocienda <kocienda@apple.com>
1881 Changes in layout resulting from giving <p> elements no margin rather than 0.1em margin.
1883 * layout-tests/editing/inserting/insert-div-013-expected.txt
1884 * layout-tests/editing/inserting/insert-div-014-expected.txt
1886 2004-12-17 Ken Kocienda <kocienda@apple.com>
1892 <rdar://problem/3925317> Increase quote in email and with cursor below the quote the new line appears above the quote
1894 * khtml/editing/htmlediting.cpp:
1895 (khtml::InsertParagraphSeparatorCommand::doApply):
1896 * khtml/editing/visible_position.cpp: Refine rules for whether to use the starting node or the starting
1897 block as the reference node for the insertion of the new block.
1898 (khtml::isLastVisiblePositionInBlock): Tweak rules again. Descendants of following blocks should answer true.
1899 I worked this all out on the whiteboard this time. This should be the last tweak.
1901 2004-12-17 Kevin Decker <kdecker@apple.com>
1905 Fixed <rdar://problem/3824438> Need a clean way for Dashboard to detect when an XML parsing error occurs
1907 * khtml/xml/xml_tokenizer.cpp:
1908 (khtml::XMLTokenizer::insertErrorMessageBlock): In the xml error report, instead of a generic <div>, use <parsererror> to match Mozilla.
1910 2004-12-16 Ken Kocienda <kocienda@apple.com>
1916 <rdar://problem/3924888> REGRESSION (Mail): Hitting return key at end of line does not insert visible newline
1918 * khtml/editing/htmlediting.cpp:
1919 (khtml::InsertParagraphSeparatorCommand::doApply): Tweaked code I added just before to fix 3924486, so that
1920 it checks the downstream node for the starting position.
1922 2004-12-16 Ken Kocienda <kocienda@apple.com>
1926 Added new createBreakElement() function that makes creating a <br> element a one-liner.
1927 Converted all the code that used to call the DocumentImpl, and dealt with the exceptionCode,
1928 over to this new helper.
1930 * khtml/editing/htmlediting.cpp:
1931 (khtml::DeleteSelectionCommand::moveNodesAfterNode): Now uses new helper function.
1932 (khtml::InsertLineBreakCommand::doApply): Ditto.
1933 (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
1934 (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Ditto.
1935 (khtml::ReplaceSelectionCommand::doApply): Ditto.
1936 (khtml::createBreakElement): New helper.
1937 * khtml/editing/htmlediting.h: Ditto.
1939 2004-12-16 David Hyatt <hyatt@apple.com>
1941 Fix a bug where vertical-align values that depended on their parent's value went crazy if the parent was
1942 vertical-align top or bottom. The bug is 3771007, bankofamerica's ebills page.
1944 Reviewed by kocienda
1946 * khtml/rendering/render_object.cpp:
1947 (RenderObject::getVerticalPosition):
1949 2004-12-16 Ken Kocienda <kocienda@apple.com>
1955 <rdar://problem/3924486> REGRESSION (Mail): Hitting return key does not insert visible newline
1956 <rdar://problem/3924579> REGRESSION (Mail): After deleting, hitting return key does not insert visible newline
1958 * khtml/editing/htmlediting.cpp:
1959 (khtml::InsertParagraphSeparatorCommand::doApply): For the first bug, detect when inserting a <p> will
1960 make a visible <br> collapse. For the second bug, move the code that inserts the new <p> after
1961 a check which may move the node used as the reference node for the insertion. Also change this code to
1962 insert the <p> after the last sibling of the starting position, to move it past the nodes we're going
1963 to want to shift into the new <p>.
1965 2004-12-16 Darin Adler <darin@apple.com>
1969 - use <p> elements rather than <br> when pasting plain text; also use margin of 0 rather than 0.1 em
1970 after talking this over with Dave and Ken
1972 * khtml/editing/htmlediting.h: Added createDefaultParagraphElement and createBlockPlaceholderElement.
1973 * khtml/editing/htmlediting.cpp:
1974 (khtml::CompositeEditCommand::insertBlockPlaceholderIfNeeded): Use new createBlockPlaceholderElement
1975 helper so this can share code with the plain-text conversion code.
1976 (khtml::InsertParagraphSeparatorCommand::createParagraphElement): Use new createDefaultParagraphElement
1977 helper so this can share code with the plain-text conversion code.
1978 (khtml::createDefaultParagraphElement): Added.
1979 (khtml::createBlockPlaceholderElement): Added.
1981 * khtml/editing/markup.cpp: (khtml::createFragmentFromText): Use paragraphs rather than
1982 <br> elements for pasting plain text.
1984 - regenerated these files with the newer gperf
1986 * khtml/css/cssproperties.c: Regenerated.
1987 * khtml/css/cssvalues.c: Regenerated.
1988 * khtml/misc/htmlattrs.c: Regenerated.
1989 * khtml/misc/htmltags.c: Regenerated.
1991 2004-12-16 Ken Kocienda <kocienda@apple.com>
1997 <rdar://problem/3924291> REGRESSION (Mail): Crash deleting content following a <p> element
1999 * khtml/xml/dom_nodeimpl.cpp:
2000 (NodeImpl::enclosingInlineElement): Fixed problem in this function where recursive search for
2001 parent that is not an inline would skip past previous siblings of nodes which were blocks. Now
2002 it stops looking in this situation. This problem eventually caused the delete code to try to
2003 merge a node under a descendent.
2005 2004-12-16 Adele Amchan <adele@apple.com>
2007 Change by Richard, reviewed by me.
2009 Fix for: <rdar://problem/3923983> background image decoding prevents page with 0Kb image from finishing to load
2011 * khtml/misc/loader.cpp: (CachedImage::data): Added call to notifyFinished so the 0Kb image case finishes loading.
2013 2004-12-16 Adele Amchan <adele@apple.com>
2017 Fix for: <rdar://problem/3534824> VIP: some navigation links on safeway.com don't work due to a JavaScript quirk
2019 Added a call to ObjectImp::get before Window::get just returns Undefined.
2020 This was preventing us from getting the toString function from a Window object.
2022 * khtml/ecma/kjs_window.cpp: (Window::get):
2024 2004-12-16 Ken Kocienda <kocienda@apple.com>
2030 <rdar://problem/3918351> REGRESSION (Mail, 173-175+): Return before first char of line leaves insertion point in wrong place
2032 * khtml/editing/htmlediting.cpp:
2033 (khtml::InsertParagraphSeparatorCommand::doApply): Basically, did a rewrite of this function
2034 to do a better job than it was doing before. Added several test cases to prove I am on a
2036 * khtml/editing/visible_position.cpp:
2037 (khtml::isFirstVisiblePositionInBlock): Tweaked the rules a bit to fix an issue very similar to the
2038 leaving-the-bar-node case problem I just fixed in a recent checkin (relevant markup: <p>foo</p>bar).
2039 This function was returning true for the first position in "bar". Wrong. Also tightened up other
2040 rule: Should not report true when relationship between blocks cannot be determined.
2041 (khtml::isLastVisiblePositionInBlock): Tightened up rule as above: Should not report true
2042 when relationship between blocks cannot be determined.
2043 * layout-tests/editing/inserting/insert-div-010-expected.txt: Added.
2044 * layout-tests/editing/inserting/insert-div-010.html: Added.
2045 * layout-tests/editing/inserting/insert-div-011-expected.txt: Added.
2046 * layout-tests/editing/inserting/insert-div-011.html: Added.
2047 * layout-tests/editing/inserting/insert-div-012-expected.txt: Added.
2048 * layout-tests/editing/inserting/insert-div-012.html: Added.
2049 * layout-tests/editing/inserting/insert-div-013-expected.txt: Added.
2050 * layout-tests/editing/inserting/insert-div-013.html: Added.
2051 * layout-tests/editing/inserting/insert-div-014-expected.txt: Added.
2052 * layout-tests/editing/inserting/insert-div-014.html: Added.
2053 * layout-tests/editing/inserting/insert-div-015-expected.txt: Added.
2054 * layout-tests/editing/inserting/insert-div-015.html: Added.
2055 * layout-tests/editing/inserting/insert-div-016-expected.txt: Added.
2056 * layout-tests/editing/inserting/insert-div-016.html: Added.
2057 * layout-tests/editing/inserting/insert-div-017-expected.txt: Added.
2058 * layout-tests/editing/inserting/insert-div-017.html: Added.
2060 2004-12-16 Ken Kocienda <kocienda@apple.com>
2064 Added a layout test based on my last checkin.
2066 * layout-tests/editing/selection/move-by-word-001-expected.txt: Added.
2067 * layout-tests/editing/selection/move-by-word-001.html: Added.
2069 2004-12-16 Ken Kocienda <kocienda@apple.com>
2075 <rdar://problem/3917929> REGRESSION (Mail): Command-left-arrow leaves insertion point too high after specific steps
2077 * khtml/editing/visible_text.cpp:
2078 (khtml::SimplifiedBackwardsTextIterator::advance): Add new check for leaving a text node and iterating
2079 backwards into a different block that is an descendent of the block containing the text node (as in leaving
2080 the "bar" node in this example: <p>foo</p>bar).
2081 (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode): Call new emitNewlineForBROrText helper.
2082 (khtml::SimplifiedBackwardsTextIterator::emitNewlineForBROrText): Factor out code from handleNonTextNode, since
2083 it is called from there, and now also from advance().
2085 2004-12-15 Darin Adler <darin@apple.com>
2089 - fixed problem where plain-text would put a blank line between each <p> even when they have no margins
2091 * khtml/editing/visible_text.cpp: (khtml::TextIterator::exitNode): Add more checks and only set the
2092 "add one more newline" flag if the margin is sufficient. A more complete fix would ignore the node
2093 type altogether and use the render tree instead.
2095 2004-12-14 John Sullivan <sullivan@apple.com>
2099 - rest of WebCore fix for <rdar://problem/3790011> undoable operations all say "Undo"
2100 in the menu, no specific action names
2102 * khtml/editing/edit_actions.h: new header, contains EditAction enum
2103 (renamed from HTMLEditAction, formerly in htmlediting.h)
2105 * ForwardingHeaders/editing/edit_actions.h: new forwarding header
2107 * khtml/editing/htmlediting.h:
2108 removed HTMLEditAction enum in favor of including edit_actions.h; added khtml::
2109 namespace to EditAction usages; added m_editingAction ivar to ApplyStyleCommand
2111 * khtml/editing/htmlediting.cpp:
2112 (khtml::EditCommandPtr::editingAction):
2113 update for enum name change
2114 (khtml::EditCommand::editingAction):
2116 (khtml::ApplyStyleCommand::ApplyStyleCommand):
2117 added editingAction parameter to this constructor
2118 (khtml::ApplyStyleCommand::editingAction):
2120 (khtml::DeleteSelectionCommand::editingAction):
2121 update for enum name change
2122 (khtml::MoveSelectionCommand::editingAction):
2124 (khtml::TypingCommand::editingAction):
2126 (khtml::ReplaceSelectionCommand::editingAction):
2129 * khtml/khtml_part.h:
2130 added EditAction parameter to applyStyle and computeAndSetTypingStyle
2131 * khtml/khtml_part.cpp:
2132 (KHTMLPart::computeAndSetTypingStyle):
2133 added EditAction parameter
2134 (KHTMLPart::applyStyle):
2137 * kwq/KWQKHTMLPart.mm:
2138 (KWQKHTMLPart::registerCommandForUndoOrRedo):
2139 do the cast from EditAction to WebUndoAction a different way to match other code
2141 * kwq/WebCoreBridge.h:
2142 * kwq/WebCoreBridge.mm:
2143 (-[WebCoreBridge setTypingStyle:withUndoAction:]):
2144 added WebUndoAction parameter, passed into ApplyStyleCommand constructor
2145 (-[WebCoreBridge applyStyle:withUndoAction:]):
2148 * WebCore.pbproj/project.pbxproj:
2149 updated for new files
2151 2004-12-14 David Hyatt <hyatt@apple.com>
2153 Fix for 3562458, rowspan and colspan converted to ints so that large values will work for them. Remove
2154 the ridiculous 1024 limit on the span values.
2156 * khtml/html/html_tableimpl.cpp:
2157 (HTMLTableCellElementImpl::parseHTMLAttribute):
2158 * khtml/rendering/render_table.cpp:
2159 (RenderTableCell::collapsedBottomBorder):
2160 * khtml/rendering/render_table.h:
2161 (khtml::RenderTableCell::colSpan):
2162 (khtml::RenderTableCell::setColSpan):
2163 (khtml::RenderTableCell::rowSpan):
2164 (khtml::RenderTableCell::setRowSpan):
2165 (khtml::RenderTableCol::span):
2166 (khtml::RenderTableCol::setSpan):
2168 2004-12-14 David Hyatt <hyatt@apple.com>
2170 Make sure <col> and <colgroup> can have spans updated dynamically as well.
2174 * khtml/html/html_tableimpl.cpp:
2175 (HTMLTableColElementImpl::parseHTMLAttribute):
2176 * khtml/rendering/render_table.cpp:
2177 (RenderTableCell::updateFromElement):
2178 (RenderTableCol::updateFromElement):
2180 2004-12-14 David Hyatt <hyatt@apple.com>
2182 Fix for 3833123, setting a cell's colspan does not update rendering like it should.
2186 * khtml/html/html_tableimpl.cpp:
2187 (HTMLTableCellElementImpl::parseHTMLAttribute):
2188 * khtml/rendering/render_table.cpp:
2189 (RenderTableCell::RenderTableCell):
2190 (RenderTableCell::updateFromElement):
2192 2004-12-14 Chris Blumenberg <cblu@apple.com>
2194 Fixed: <rdar://problem/3864536> crash copying text from other apps and pasting in a sticky in dashboard
2198 * khtml/editing/markup.cpp:
2199 (khtml::createFragmentFromText): ref and deref the fragment since calling appendChild can completely deref it
2201 2004-12-14 David Hyatt <hyatt@apple.com>
2203 Fix for 3785211. Make sure to do a layout with the old position before doing a layout after changing to the new position.
2204 This is actually a regression from my positioned object DHTML optimization.
2206 Reviewed by kocienda
2208 * khtml/rendering/render_object.cpp:
2209 (RenderObject::setStyle):
2211 2004-12-14 David Hyatt <hyatt@apple.com>
2213 Make sure the class attribute works when newlines are present in the attribute.
2215 Reviewed by kocienda
2217 * khtml/html/html_elementimpl.cpp:
2218 (HTMLNamedAttrMapImpl::parseClassAttribute):
2220 2004-12-14 David Hyatt <hyatt@apple.com>
2222 Fix for 3724938, float element is duplicated and paints twice. The logic for when to paint floats was
2223 actually fairly screwed up. This patch simplifies the logic and makes addOverhangingFloats easier to
2224 read by splitting it into two separate functions.
2226 Reviewed by kocienda
2228 * khtml/rendering/render_block.cpp:
2229 (khtml::RenderBlock::layoutBlockChildren):
2230 (khtml::RenderBlock::clearFloats):
2231 (khtml::RenderBlock::addOverhangingFloats):
2232 (khtml::RenderBlock::addIntrudingFloats):
2233 * khtml/rendering/render_block.h:
2235 2004-12-14 John Sullivan <sullivan@apple.com>
2239 - added Undo action names for Cut, Paste, and Drag
2241 * khtml/editing/htmlediting.h:
2242 * khtml/editing/htmlediting.cpp:
2243 (khtml::DeleteSelectionCommand::editingAction):
2244 overridden to return HTMLEditActionCut
2245 (khtml::MoveSelectionCommand::editingAction):
2246 overridden to return HTMLEditActionDrag
2247 (khtml::ReplaceSelectionCommand::editingAction):
2248 overridden to return HTMLEditActionPaste
2250 2004-12-14 John Sullivan <sullivan@apple.com>
2254 - architecture for WebCore part of fix for <rdar://problem/3790011> undoable operations all say "Undo" in the menu,
2255 no specific action names
2257 The remaining step is to make each EditCommand subclass override editingAction() to return an
2258 appropriate value. (Unfortunately the mapping between subclass and user-distinguishable action
2259 is not completely straightforward, so this next step isn't trivial.)
2261 * khtml/editing/htmlediting.h:
2262 new enum for HTMLEditAction
2264 * khtml/editing/htmlediting.cpp:
2265 (khtml::EditCommandPtr::editingAction):
2266 new method, calls through to EditCommand
2267 (khtml::EditCommand::editingAction):
2268 new method for subclasses to override, returns HTMLEditActionUnspecified at this level
2269 (khtml::TypingCommand::editingAction):
2270 proof of concept override, returns HTMLEditActionTyping
2272 * kwq/KWQKHTMLPart.h:
2273 declare new private bottleneck method registerCommandForUndoOrRedo
2274 * kwq/KWQKHTMLPart.mm:
2275 (KWQKHTMLPart::registerCommandForUndoOrRedo):
2276 new bottleneck method to reduce code duplication; now calls over the bridge
2277 to get the localized string to use for the Undo action name
2278 (KWQKHTMLPart::registerCommandForUndo):
2279 now calls new bottleneck method
2280 (KWQKHTMLPart::registerCommandForRedo):
2281 now calls new bottleneck method
2283 * kwq/WebCoreBridge.h:
2284 new enum for WebUndoAction, maps directly to HTMLEditAction.
2285 Declaration of nameForUndoAction:
2287 2004-12-14 Darin Adler <darin@apple.com>
2291 - added a bunch of missing nil checks; our old version of inherits used to work for nil (by accident)
2293 * khtml/rendering/render_frames.cpp:
2294 (RenderPart::~RenderPart): Check widget for nil.
2295 (RenderPart::setWidget): Ditto.
2296 (RenderFrame::slotViewCleared): Ditto.
2297 (RenderPartObject::slotViewCleared): Ditto.
2299 2004-12-13 Darin Adler <darin@apple.com>
2303 - moved markup-related functions into new sources files in the editing directory
2304 - removed all of the uses of dynamic_cast, preparing to turn off RTTI to make our code smaller and slightly faster
2306 * ForwardingHeaders/editing/markup.h: Added.
2307 * khtml/editing/markup.h: Added.
2308 * khtml/editing/markup.cpp: Added.
2310 * WebCore.pbproj/project.pbxproj: Added markup.h/cpp.
2312 * khtml/dom/dom_node.cpp: (Node::toHTML): Call createMarkup since there's no toHTML in NodeImpl any more.
2313 * khtml/html/html_elementimpl.cpp:
2314 (HTMLElementImpl::innerHTML): Changed to call createMarkup.
2315 (HTMLElementImpl::outerHTML): Ditto.
2317 * khtml/ecma/kjs_window.cpp:
2318 (Window::retrieveWindow): Comment out assert that uses dynamic_cast.
2319 (Window::retrieveActive): Ditto.
2321 * khtml/editing/htmlediting.h: Added forward class declaration needed now that I removed one elsewhere.
2322 * khtml/xml/dom_docimpl.h: Ditto.
2324 * khtml/khtml_part.cpp:
2325 (KHTMLPart::slotDebugDOMTree): Use createMarkup instead of toHTML.
2326 (KHTMLPart::processObjectRequest): Use inherits instead of dynamic_cast.
2328 * khtml/rendering/render_image.cpp: (RenderImage::paint): Add an explicit QChar conversion so this code
2329 still works even with the additional replace overloads added to QString.
2330 * kwq/KWQTextCodec.mm: (QTextCodec::fromUnicode): Ditto.
2332 * khtml/rendering/render_object.h: Removed the version of arenaDelete that does not take an object
2333 base pointer, because it used dynamic_cast in its implementation. Made the other version public.
2334 * khtml/rendering/render_object.cpp: Ditto.
2335 * khtml/rendering/render_replaced.cpp: (RenderWidget::deref): Pass object base pointer to arenaDelete.
2337 * khtml/xml/dom2_rangeimpl.h: Removed extra parameters from toHTML, and unneeded includes and declarations.
2338 * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::toHTML): Changed to call createMarkup, and moved all
2339 the support code into markup.cpp.
2341 * khtml/xml/dom_nodeimpl.h: Moved toHTML and related functions into markup.cpp.
2342 * khtml/xml/dom_nodeimpl.cpp: Ditto.
2344 * khtml/xml/dom_position.cpp:
2345 (DOM::startPosition): Implemented the version of this that takes a RangeImpl. Also added null checks
2346 so these return null positions rather than raising exceptions.
2347 (DOM::endPosition): Ditto.
2349 * khtml/khtmlview.h: Added an APPLE_CHANGES function so inherits can detect this class without dynamic_cast.
2350 * kwq/KWQFrame.h: Ditto.
2351 * kwq/KWQFrame.mm: (QFrame::isQFrame): Ditto.
2352 * kwq/KWQKPartsPart.h: Ditto.
2353 * kwq/KWQKPartsPart.mm: (KParts::ReadOnlyPart::isKPartsReadOnlyPart): Ditto.
2354 * kwq/KWQScrollView.h: Ditto.
2355 * kwq/KWQScrollView.mm: (QScrollView::isQScrollView): Ditto.
2356 * kwq/KWQKHTMLPart.h: Ditto.
2357 * kwq/KWQKHTMLPart.mm:
2358 (KHTMLView::isKHTMLView): Ditto.
2359 (KWQKHTMLPart::setTitle): Added an explicit QChar conversion so this code still works even with the additional
2360 replace overloads added to QString.
2361 (KWQKHTMLPart::setStatusBarText): Ditto.
2362 (KWQKHTMLPart::runJavaScriptAlert): Ditto.
2363 (KWQKHTMLPart::runJavaScriptConfirm): Ditto.
2364 (KWQKHTMLPart::runJavaScriptPrompt): Ditto.
2365 (KWQKHTMLPart::attributedString): Ditto.
2366 (KWQKHTMLPart::isCharacterSmartReplaceExempt): Ditto.
2367 (KWQKHTMLPart::isKHTMLPart): That dynamic_cast thing (see above).
2369 * kwq/KWQObject.h: Added virtual methods for the few cases where we need dynamic_cast-like behavior.
2371 (QObject::inherits): Changed to not use dynamic cast.
2372 (QObject::isKHTMLPart): Added. Returns false.
2373 (QObject::isKHTMLView): Ditto.
2374 (QObject::isKPartsReadOnlyPart): Ditto.
2375 (QObject::isQFrame): Ditto.
2376 (QObject::isQScrollView): Ditto.
2378 * kwq/KWQRenderTreeDebug.cpp:
2379 (write): Changed to use inherits rather than dynamic_cast.
2380 (writeSelection): Ditto.
2382 * kwq/KWQSlot.mm: (KWQSlot::call): Call through to the version with just a job pointer parameter rather
2383 than going straight on to the "no parameters at all" version.
2386 * kwq/KWQString.mm: (QString::replace): Added overloads.
2387 * kwq/WebCoreBridge.mm:
2388 (-[WebCoreBridge markupStringFromNode:nodes:]): Changed to call functions in markup.h.
2389 (-[WebCoreBridge markupStringFromRange:nodes:]): Ditto.
2390 (-[WebCoreBridge selectedString]): Added an explicit QChar conversion so this code still works even with
2391 the additional replace overloads added to QString.
2392 (-[WebCoreBridge stringForRange:]): Ditto.
2393 (-[WebCoreBridge copyDOMNode:copier:]): Changed to call functions in markup.h.
2394 (-[WebCoreBridge elementAtPoint:]): QChar conversion.
2395 (-[WebCoreBridge documentFragmentWithMarkupString:baseURLString:]): Changed to call functions in markup.h.
2396 (-[WebCoreBridge documentFragmentWithText:]): Changed to call functions in markup.h.
2398 2004-12-13 Ken Kocienda <kocienda@apple.com>
2404 <rdar://problem/3917956> REGRESSION (Mail): pasting can leave insertion point inside pasted text
2406 * khtml/editing/htmlediting.cpp:
2407 (khtml::ReplaceSelectionCommand::doApply): Fix coding mistake. Calculations of bool flag based on
2408 leading and trailing whitespace positions was reversed! I must have introduced this error recently
2409 when changing around this code.
2411 2004-12-13 David Hyatt <hyatt@apple.com>
2413 Fix for 3915787, macobserver doesn't paint. floatRect() needed to be const in the base class. Also hit-testing
2414 and painting was using the wrong rect when setting up the x/y of the rect.
2418 * khtml/rendering/render_block.cpp:
2419 (khtml::RenderBlock::paint):
2420 (khtml::RenderBlock::nodeAtPoint):
2421 * khtml/rendering/render_object.h:
2422 (khtml::RenderObject::floatRect):
2424 2004-12-13 Ken Kocienda <kocienda@apple.com>
2430 <rdar://problem/3917863> REGRESSION (Mail): pasting two lines of plain text copied from an RTF document results in two styles
2432 Code to figuire out the end node to merge was missing the font tag in the second paragraph
2433 written out by AppKit convert-to-HTML function. I refined the algorithm to be smarter.
2435 * khtml/editing/htmlediting.cpp:
2436 (khtml::ReplacementFragment::mergeEndNode): Refine algorithm used to walk through the fragment being pasted
2437 looking for the node that is the last inline in the last block of the fragment. The old algorithm was
2438 insufficiently powerful.
2439 (khtml::ReplacementFragment::enclosingBlock): New helper function.
2440 * khtml/editing/htmlediting.h: Add declaration for new helper function.
2441 * layout-tests/editing/pasteboard/paste-text-011-expected.txt: Added.
2442 * layout-tests/editing/pasteboard/paste-text-011.html: Added.
2444 2004-12-13 Ken Kocienda <kocienda@apple.com>
2448 WebCore side of fix for this bug:
2450 <rdar://problem/3768372> REGRESSION (Mail): paste of text ending in whitespace loses whitespace
2452 Note that we are coordinating with Doug Davidson on the AppKit team to make a complete fix for this
2453 bug. This change involves our half of the needed changes.
2455 Note that a lot of this change has to do with changing code to use a <br> element instead of
2456 a comment node as the mechanism to annotate HTML with information used to fix the bug. In some
2457 other places, code to handle comments in markup can be removed since we do not use comments for
2458 such annotations after this change.
2460 * khtml/editing/htmlediting.cpp: Remove isComment() helper; no longer needed.
2461 (khtml::ReplacementFragment::ReplacementFragment): Change m_hasInterchangeNewlineComment name to m_hasInterchangeNewline.
2462 (khtml::ReplacementFragment::isInterchangeNewlineNode): Name changed from isInterchangeNewlineComment.
2463 (khtml::ReplacementFragment::isInterchangeConvertedSpaceSpan): Local variable name convertedSpaceSpanClass changed to
2464 convertedSpaceSpanClassString to match other uses of the idiom used here.
2465 (khtml::ReplaceSelectionCommand::doApply): Change hasInterchangeNewlineComment() name to hasInterchangeNewline().
2466 * khtml/editing/htmlediting.h: Change names as noted in .cpp file. Remove isComment() helper; no longer needed.
2467 (khtml::ReplacementFragment::hasInterchangeNewline): Change hasInterchangeNewlineComment() name to hasInterchangeNewline().
2468 * khtml/html/html_elementimpl.cpp:
2469 (HTMLElementImpl::createContextualFragment): No longer has includeCommentsInDOM flag; no longer needed as we do not
2470 annotate fragments with comments any longer.
2471 * khtml/html/html_elementimpl.h: Ditto.
2472 * khtml/xml/dom2_rangeimpl.cpp: Remove addCommentToHTMLMarkup() helper. No longer needed.
2473 (DOM::interchangeNewlineMarkupString): New helper to return <br> element markup we use to annotate content for interchange.
2474 (DOM::RangeImpl::toHTML): No longer uses addCommentToHTMLMarkup; now calls interchangeNewlineMarkupString(). Remove
2475 spurious semi-colon.
2476 * khtml/xml/dom2_rangeimpl.h: Remove obsolete addCommentToHTMLMarkup() function and EAddToMarkup enum.
2477 * kwq/WebCoreBridge.mm:
2478 (-[WebCoreBridge documentFragmentWithMarkupString:baseURLString:]): No longer pass bool to ask for including comments
2479 in DOM when calling createContextualFragment().
2481 2004-12-10 John Sullivan <sullivan@apple.com>
2483 fixed deployment build bustage that John Louch ran into
2485 * kwq/KWQTextEdit.mm:
2486 (QTextEdit::setScrollBarModes):
2487 move bool declaration inside exception-handling block to avoid obscure
2490 2004-12-10 Maciej Stachowiak <mjs@apple.com>
2492 Reviewed by Richard.
2494 <rdar://problem/3907484> REGRESSION (125-173): crash when KWQTextField is dealloc'ed while setting focus (profoundlearning.com)
2497 (QWidget::setFocus): Handle the case where setting focus removed
2498 us from the superview - this can happen due to style changes on
2501 2004-12-10 Ken Kocienda <kocienda@apple.com>
2507 <rdar://problem/3915008> REGRESSION (Mail): Too much white space between lines separated by carriage returns
2509 There are a number of interesting things we could do to fix this bug, including SPI and involving
2510 the WebKit delegate, etc., however it seems reasonable to start with a hard-coded default that
2511 will fix the bug in the general case until such time as we can come up with more specific
2514 So, I added a helper method to create <p> elements with an inline style that sets top and bottom margins
2517 * khtml/editing/htmlediting.cpp:
2518 (khtml::InsertParagraphSeparatorCommand::createParagraphElement): New factory method to create
2519 paragraph elements to insert. Also adds style information to keep the <p> from having "too-big" margins.
2520 (khtml::InsertParagraphSeparatorCommand::doApply): Call new factory method.
2521 * khtml/editing/htmlediting.h: Add createParagraphElement() declaration.
2523 2004-12-10 Darin Adler <darin@apple.com>
2527 - fixed <rdar://problem/3910419> setting style={overflow:hidden} for <textarea> does not prevent appearance of scrollbars
2529 * khtml/rendering/render_form.h: Remove now-unneeded wrap parameter.
2530 * khtml/rendering/render_form.cpp:
2531 (RenderSubmitButton::rawText): Convert to QChar explicitly.
2532 (RenderLineEdit::updateFromElement): Ditto.
2533 (RenderLineEdit::slotTextChanged): Ditto.
2534 (RenderSelect::updateFromElement): Ditto.
2535 (TextAreaWidget::TextAreaWidget): Moved out most of the initialization since it's not something
2536 that requires a derived class. Now we don't use this class at all for WebCore, but they still
2538 (TextAreaWidget::event): Moved out the ifdefs.
2539 (RenderTextArea::RenderTextArea): Moved setting code from TextAreaWidget here. Put a bunch that
2540 we don't need at all inside !APPLE_CHANGES, and removed the setting for scroll bars, since that's
2541 now done in setStyle.
2542 (RenderTextArea::handleFocusOut): Use type QTextEdit instead of TextAreaWidget since that's all
2543 that's needed and WebCore no longer has TextAreaWidget.
2544 (RenderTextArea::calcMinMaxWidth): Ditto.
2545 (RenderTextArea::setStyle): Add code to set scroll bar modes based on wrap setting combined with
2547 (RenderTextArea::updateFromElement): Use type QTextEdit.
2548 (RenderTextArea::text): Ditto.
2549 (RenderTextArea::select): Ditto.
2551 * kwq/KWQTextArea.mm:
2552 (-[KWQTextArea _configureTextViewForWordWrapMode]): Don't set horizontal scroller visibility here,
2553 since it's now handled by QTextEdit.
2554 (-[KWQTextArea initWithFrame:]): Don't set vertical scroller visibility or scroller auto-hiding.
2556 * kwq/KWQTextEdit.h: Add setScrollBarModes function to be used instead of separate setter for
2557 the horizontal and vertical mode; needed because AppKit switches "autohide" for both at once.
2558 * kwq/KWQTextEdit.mm: (QTextEdit::setScrollBarModes): Added.
2560 2004-12-10 Ken Kocienda <kocienda@apple.com>
2566 <rdar://problem/3915047> HItting return in empty document inserts <p> but
2567 insertion point does not move
2569 * khtml/editing/htmlediting.cpp:
2570 (khtml::InsertParagraphSeparatorCommand::doApply): The issue is that the
2571 code to insert the <p> element for the return is not detecting the fact
2572 that the document is empty. Inserting a <p> into an empty body will not
2573 "add a new line" as the user expects. With this change, we'll add a second
2574 <p> when the root editable element has no rendered kids.
2576 2004-12-10 Maciej Stachowiak <mjs@apple.com>
2580 <rdar://problem/3912979> REGRESSION (125-173): repro crash in HTMLCollectionImpl code (www.clubtravel.ie)
2582 * khtml/html/html_miscimpl.cpp:
2583 (HTMLCollectionImpl::traverseNextItem): Pass base when traversing
2584 the initial one step, otherwise we might inadvertantly step
2585 outside the collection base, thereby causing assertion failures or
2586 other badness later.
2588 2004-12-10 Ken Kocienda <kocienda@apple.com>
2592 * khtml/editing/htmlediting.cpp:
2593 (khtml::InsertParagraphSeparatorCommand::doApply): There is a starting block which is supposed to
2594 act as the root node for this operation. However, a loop was incorrectly coded, and a parent node
2595 search could escape this node. Also, one other piece to code to move nodes to the new <p> element
2596 should do nothing if the starting point for the selection is itself the starting block.
2597 (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Similar changes, in spirit, to the above
2598 function, though the names and concepts are slightly different.
2600 2004-12-10 Maciej Stachowiak <mjs@apple.com>
2604 <rdar://problem/3907705> REGRESSION (172-173): DHTML menus are broken at hrweb.apple.com
2606 * khtml/dom/html_document.cpp:
2607 (HTMLDocument::nameableItems): New method, wrapper for HTMLCollection creation.
2608 * khtml/dom/html_document.h:
2609 * khtml/ecma/kjs_html.cpp:
2610 (KJS::HTMLDocument::tryGet): use doc.nameableItems(), not doc.all()!
2611 * khtml/html/html_miscimpl.cpp:
2612 (HTMLCollectionImpl::traverseNextItem): Added new DOC_NAMEABLE_ITEMS type, this represents
2613 the items that can be accessed directly as a document propery, in particular forms, images,
2614 objects, applets and embeds.
2615 (HTMLCollectionImpl::updateNameCache): Fix some nameCache/idCache confusion.
2616 (HTMLFormCollectionImpl::updateNameCache): Ditto.
2617 * khtml/html/html_miscimpl.h:
2618 (DOM::HTMLCollectionImpl::): Added new type.
2620 2004-12-10 Ken Kocienda <kocienda@apple.com>
2626 <rdar://problem/3914779> REGRESSION (Mail): Cannot arrow navigate to position before last character on text-wrapped line
2628 * khtml/rendering/render_text.cpp:
2629 (RenderText::caretRect): Code was not detecting space at the end of a line correctly. Now it does.
2631 2004-12-10 Ken Kocienda <kocienda@apple.com>
2637 <rdar://problem/3914755> REGRESSION (Mail): Insertion point disappears after pasting paragraph
2639 * khtml/editing/htmlediting.cpp:
2640 (khtml::ReplaceSelectionCommand::doApply): Selection could end up in a "placeholder" node
2641 that was removed from the document when pasting. This caused the disappearance. Now this
2642 is detected, and the selection is shifted to a node that is in the document.
2644 2004-12-09 Richard Williamson <rjw@apple.com>
2646 Check to disable threaded decoding during
2647 layout tests wasn't invoking function, just checking address of
2648 function, which would always return true.
2650 * kwq/WebCoreImageRendererFactory.m:
2651 (+[WebCoreImageRendererFactory shouldUseThreadedDecoding]):
2653 2004-12-09 David Hyatt <hyatt@apple.com>
2655 Fix for 3892686, left/top overflow was not being propagated properly up to containing blocks because of a math
2658 Also fix a bug I noticed on the same page where relative position offsets were not being added in properly for
2659 all inlines when repainting.
2663 * khtml/rendering/render_block.cpp:
2664 (khtml::RenderBlock::layoutBlockChildren):
2665 * khtml/rendering/render_flow.cpp:
2666 (RenderFlow::getAbsoluteRepaintRect):
2668 2004-12-09 David Hyatt <hyatt@apple.com>
2670 Fix for 3867545, finance.yahoo.com lays out incorrectly. Add a quirk that will prevent tables from moving
2671 down below floats when there is insufficient space. Instead we will match Gecko and just spill out of the
2672 containing block to the right. This appears to be the more common desired behavior, despite being wrong.
2673 WinIE sometimes wraps and sometimes doesn't, but it's really hard for us to match its inconsistency.
2677 * khtml/rendering/render_block.cpp:
2678 (khtml::RenderBlock::getClearDelta):
2679 * layout-tests/apple-only/base/www.cnn.com/index-expected.txt:
2680 * layout-tests/apple-only/base/www.ebay.com/index-expected.txt:
2681 * layout-tests/apple-only/base/www.excite.com/index-expected.txt:
2682 * layout-tests/fast/block/margin-collapse/102-expected.txt:
2683 * layout-tests/fast/block/margin-collapse/102.html:
2685 2004-12-09 Richard Williamson <rjw@apple.com>
2687 Fixed <rdar://problem/3914078> worldclock crashing gc related
2689 Use ProtectedValue for Context2D instance members.
2693 * khtml/ecma/kjs_html.h:
2695 2004-12-09 John Sullivan <sullivan@apple.com>
2699 - fixed <rdar://problem/3731099> Move AXTitle string for image elements to AXDescription
2701 * kwq/KWQAccObject.mm:
2702 (-[KWQAccObject title]): moved image alt tag code out of here
2703 (-[KWQAccObject accessibilityDescription]): moved image alt tag code into this new method
2704 (-[KWQAccObject accessibilityAttributeNames]): include AXDescription in the set of attributes
2705 that ordinary elements return; this means that ordinary elements that aren't images will return
2706 a nil description, which isn't ideal, but is in keeping with the way the rest of these attributes
2708 (-[KWQAccObject accessibilityAttributeValue:]):
2709 call accessibilityDescription when asked for AXDescription
2711 2004-12-09 Ken Kocienda <kocienda@apple.com>
2713 Reviewed by Harrison
2717 <rdar://problem/3910425> REGRESSION (Mail): Crash in ReplaceSelectionCommand; selection is empty, leading to null deref
2719 * khtml/editing/htmlediting.cpp:
2720 (khtml::MoveSelectionCommand::doApply): The node representing the destination for the move may have
2721 been deleted. If this is the case, set the destination to the node the delete command provides in
2722 its ending selection.
2726 2004-12-09 Ken Kocienda <kocienda@apple.com>
2732 <rdar://problem/3912841> REGRESSION (173-TOT): Some images report 0x0 dimensions on layout tests, causes spurious test failures
2734 The new threaded image decoding capability can throw off layout tests. The issue is that the decoding
2735 callback may not be delivered before the program asks for the dimensions of an image in order to
2736 wrote the layout dimensions. More generally, I think we need to ensure that there are no races in
2737 layout tests, so I have added a flag to the render tree debug code that we can set when debugging.
2739 * kwq/KWQRenderTreeDebug.cpp:
2740 (debuggingRenderTree): New function. Returns flag which tells whether the program is debugging the render tree.
2741 (externalRepresentation): Sets debuggingRenderTree flag to true;
2742 * kwq/KWQRenderTreeDebug.h:
2743 * kwq/WebCoreImageRendererFactory.m:
2744 (+[WebCoreImageRendererFactory shouldUseThreadedDecoding]): Checks debuggingRenderTree flag and will not
2745 do threaded decoding in any case if the flag is set.
2747 2004-12-09 Chris Blumenberg <cblu@apple.com>
2749 Fix for busting XMLHTTPRequest.
2751 Reviewed by kocienda.
2753 * khtml/misc/loader.cpp:
2754 (Loader::servePendingRequests): pass true for deliverAllData
2756 (KIO::get): take deliverAllData param
2757 (KIO::http_post): ditto
2758 * kwq/KWQKJobClasses.h:
2759 * kwq/KWQKJobClasses.mm:
2760 (KIO::TransferJob::TransferJob): if deliverAllData, create signal with data param
2761 (KIO::TransferJob::emitResult): if deliverAllData, call signal with data param
2763 2004-12-09 Ken Kocienda <kocienda@apple.com>
2767 <rdar://problem/3911011> REGRESSION (Mail): Spaces at end of line causing word wrap lost when copied/pasted
2769 * khtml/xml/dom_nodeimpl.cpp:
2770 (NodeImpl::renderedText): Fixed the code so that spaces at the end of lines are not skipped.
2772 2004-12-07 Richard Williamson <rjw@apple.com>
2774 Support threaded image decoding on machines w/ > 2 CPUs.
2776 Reviewed by Maciej and Chris.
2778 * khtml/misc/loader.cpp:
2779 (CachedImageCallback::notifyUpdate):
2780 (CachedImageCallback::notifyFinished):
2781 (CachedImageCallback::notifyDecodingError):
2782 (CachedImageCallback::handleError):
2783 (CachedImageCallback::clear):
2784 (CachedImage::CachedImage):
2785 (CachedImage::clear):
2786 (CachedImage::data):
2787 (CachedImage::checkNotify):
2788 (Loader::servePendingRequests):
2789 (Loader::slotFinished):
2790 (Loader::numRequests):
2791 (Loader::cancelRequests):
2792 (Loader::removeBackgroundDecodingRequest):
2793 * khtml/misc/loader.h:
2794 (khtml::CachedImageCallback::CachedImageCallback):
2795 (khtml::CachedImageCallback::ref):
2796 (khtml::CachedImageCallback::deref):
2797 (khtml::CachedImage::decoderCallback):
2798 * khtml/rendering/render_object.cpp:
2799 (RenderObject::setPixmap):
2802 (-[WebImageCallback initWithCallback:khtml::]):
2803 (-[WebImageCallback _commonTermination]):
2804 (-[WebImageCallback dealloc]):
2805 (-[WebImageCallback finalize]):
2806 (-[WebImageCallback notify]):
2807 (-[WebImageCallback setImageSourceStatus:]):
2808 (-[WebImageCallback status]):
2809 (QPixmap::shouldUseThreadedDecoding):
2810 (QPixmap::receivedData):
2811 * kwq/WebCoreImageRenderer.h:
2812 * kwq/WebCoreImageRendererFactory.h:
2813 * kwq/WebCoreImageRendererFactory.m:
2814 (+[WebCoreImageRendererFactory shouldUseThreadedDecoding]):
2815 (+[WebCoreImageRendererFactory setShouldUseThreadedDecoding:]):
2817 2004-12-07 Ken Kocienda <kocienda@apple.com>
2821 * khtml/editing/htmlediting.cpp:
2822 (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Fix a problem with my
2823 change in thei code yesterday. Call to insertBlockPlaceholderIfNeeded() must be done
2824 after new block has been inserted, otherwise a crash can result. Shuffle down call
2825 to insertBlockPlaceholderIfNeeded() a couple of lines (where the node is inserted),
2828 2004-12-07 Ken Kocienda <kocienda@apple.com>
2834 <rdar://problem/3907422> REGRESSION (Mail): Pasting quoted content can place content after body element
2836 * khtml/editing/htmlediting.cpp:
2837 (khtml::ReplaceSelectionCommand::doApply): Detect when the body element is the "reference block" used
2838 for determining the location for inserting content. Do not allow an insert before or after if the
2839 reference block is the body. Perform insertNodeAt(0) and appendNode, respectively, in the block-is-body case.
2840 * layout-tests/editing/inserting/insert-3907422-fix-expected.txt: Added.
2841 * layout-tests/editing/inserting/insert-3907422-fix.html: Added.
2843 2004-12-07 Darin Adler <darin@apple.com>
2847 - fixed <rdar://problem/3908701> REGRESSION: Cursor does not change to "hand" over active links
2849 * kwq/KWQEvent.mm: (positionForEvent): Add NSMouseMoved to list of events that have mouse location.
2851 2004-12-07 Ken Kocienda <kocienda@apple.com>
2855 Changed name of constant from KHTMLInterchangeNewline to AppleInterchangeNewline.
2856 I discussed this with Hyatt and he agreed that going with "Apple" names was OK.
2858 * khtml/editing/html_interchange.h: Name change, as described above.
2859 * khtml/editing/htmlediting.cpp:
2860 (khtml::ReplacementFragment::isInterchangeNewlineComment): Ditto.
2861 * khtml/xml/dom2_rangeimpl.cpp:
2862 (DOM::RangeImpl::toHTML): Ditto.
2864 2004-12-07 Ken Kocienda <kocienda@apple.com>
2868 Added a couple more layout tests.
2870 * layout-tests/editing/deleting/delete-line-013-expected.txt: Added.
2871 * layout-tests/editing/deleting/delete-line-013.html: Added.
2872 * layout-tests/editing/deleting/delete-line-014-expected.txt: Added.
2873 * layout-tests/editing/deleting/delete-line-014.html: Added.
2875 2004-12-06 Maciej Stachowiak <mjs@apple.com>
2879 - fixed <rdar://problem/3906974> assertion failure in QWidget::beforeMouseDown clicking on <select multiple>
2881 * kwq/KWQListBox.mm:
2882 (QListBox::QListBox): Initialize KWQListBoxScrollView with this.
2883 (-[KWQListBoxScrollView initWithListBox:]): Make this class a KWQWidgetHolder.
2884 (-[KWQListBoxScrollView widget]): See above.
2885 (-[KWQTableView mouseDown:]): Pass outerView rather than self to beforeMouseDown and
2886 afterMouseDown, to avoid triggering an assertion failure.
2888 2004-12-06 David Hyatt <hyatt@apple.com>
2890 Fix for 3615411, the linesAppended optimization was old and broken, and it's easier with the new code fixes
2891 made by me, kocienda and harrison to just remove it.
2895 * khtml/rendering/bidi.cpp:
2896 (khtml::RenderBlock::layoutInlineChildren):
2897 * khtml/rendering/render_block.cpp:
2898 (khtml:::RenderFlow):
2899 * khtml/rendering/render_block.h:
2900 * khtml/rendering/render_flow.cpp:
2901 (RenderFlow::dirtyLinesFromChangedChild):
2903 2004-12-06 David Hyatt <hyatt@apple.com>
2905 Fix for 3787133, some web pages print with many blank pages. Make sure to use the real page print rect and
2906 not a damage rect that can be changed when intersected with the clip regions of the web page.
2910 * khtml/rendering/render_canvas.h:
2911 (khtml::RenderCanvas::printRect):
2912 (khtml::RenderCanvas::setPrintRect):
2913 * khtml/rendering/render_flow.cpp:
2914 (RenderFlow::paintLines):
2915 * khtml/rendering/render_list.cpp:
2916 (RenderListMarker::paint):
2917 * kwq/KWQKHTMLPart.mm:
2918 (KWQKHTMLPart::adjustPageHeight):
2920 2004-12-06 David Harrison <harrison@apple.com>
2922 Reviewed by Ken Kocienda and Dave Hyatt (OOPS!).
2924 <rdar://problem/3849947> Typing after pasting line does not appear until after window resize.
2927 * khtml/rendering/render_flow.cpp:
2928 (RenderFlow::dirtyLinesFromChangedChild):
2929 Dirty the line above because new child can inval the cached line break position of previous line.
2931 2004-12-06 David Hyatt <hyatt@apple.com>
2933 Fix for 3254464, radio buttons do not work for quiz on netscape.com. Left/top overflow needed to be implemented.
2934 This also fixes 3106907, link hover color only partially set on rollover and the more general architecture bug
2935 3126929, handle top/left overflow.
2937 This patch also fixes 3902891, scroll bar of position:fixed content moves when a page is scrolled.
2939 Finally, the Emerson regression 3869718 (error involving computing the rightmost/lowest position of overflow:auto
2940 regions and web pages) has been fixed.
2944 * khtml/rendering/bidi.cpp:
2945 (khtml::RenderBlock::computeHorizontalPositionsForLine):
2946 (khtml::RenderBlock::checkLinesForOverflow):
2947 * khtml/rendering/render_block.cpp:
2948 (khtml:::RenderFlow):
2949 (khtml::RenderBlock::overflowHeight):
2950 (khtml::RenderBlock::overflowWidth):
2951 (khtml::RenderBlock::overflowLeft):
2952 (khtml::RenderBlock::overflowTop):
2953 (khtml::RenderBlock::overflowRect):
2954 (khtml::RenderBlock::layoutBlock):
2955 (khtml::RenderBlock::layoutBlockChildren):
2956 (khtml::RenderBlock::paint):
2957 (khtml::RenderBlock::floatRect):
2958 (khtml::RenderBlock::lowestPosition):
2959 (khtml::RenderBlock::rightmostPosition):
2960 (khtml::RenderBlock::leftmostPosition):
2961 (khtml::RenderBlock::nodeAtPoint):
2962 * khtml/rendering/render_block.h:
2963 * khtml/rendering/render_box.h:
2964 (khtml::RenderBox::borderBox):
2965 (khtml::RenderBox::borderTopExtra):
2966 (khtml::RenderBox::borderBottomExtra):
2967 * khtml/rendering/render_layer.cpp:
2968 (RenderLayer::paintScrollbars):
2969 (mustExamineRenderer):
2970 (RenderLayer::intersectsDamageRect):
2971 (RenderLayer::containsPoint):
2972 * khtml/rendering/render_line.cpp:
2973 (khtml::InlineFlowBox::placeBoxesHorizontally):
2974 (khtml::InlineFlowBox::verticallyAlignBoxes):
2975 * khtml/rendering/render_line.h:
2976 (khtml::InlineBox::leftOverflow):
2977 (khtml::InlineBox::rightOverflow):
2978 (khtml::InlineFlowBox::setVerticalOverflowPositions):
2979 (khtml::RootInlineBox::RootInlineBox):
2980 (khtml::RootInlineBox::leftOverflow):
2981 (khtml::RootInlineBox::rightOverflow):
2982 (khtml::RootInlineBox::setVerticalOverflowPositions):
2983 (khtml::RootInlineBox::setHorizontalOverflowPositions):
2984 * khtml/rendering/render_object.h:
2985 (khtml::RenderObject::borderBox):
2986 (khtml::RenderObject::overflowLeft):
2987 (khtml::RenderObject::overflowTop):
2988 (khtml::RenderObject::overflowRect):
2989 (khtml::RenderObject::floatRect):
2990 * khtml/rendering/render_table.cpp:
2991 (RenderTable::layout):
2992 (RenderTable::paint):
2993 (RenderTable::paintBoxDecorations):
2994 (RenderTable::calcMinMaxWidth):
2995 * khtml/rendering/render_table.h:
2996 (khtml::RenderTableCell::borderTopExtra):
2997 (khtml::RenderTableCell::borderBottomExtra):
3002 2004-12-06 Maciej Stachowiak <mjs@apple.com>
3006 - fixed <rdar://problem/3903797> scripts can cause other frames/windows to execute arbitrary script using javascript: URLs
3008 I changed all unprotected places that can navigate a different
3009 window or frame from script to check for a javascript: URL, and if
3010 found, to check for safety using cross-site-script rules.
3012 I considered a few other possible exploits and made no change:
3014 - document.location is already protected because the document
3015 object itself is protected
3017 - frame.src, frame.location, iframe.src and targetted links are
3018 all safe because setting the URL of a frame to a javascript: URL
3019 executes the script in the context of the parent
3021 * khtml/ecma/kjs_window.cpp:
3022 (WindowFunc::tryCall):
3024 (LocationFunc::tryCall):
3026 2004-12-06 Ken Kocienda <kocienda@apple.com>
3032 <rdar://problem/3890955> 8A314: Forward delete sometimes fails to delete the selected quoted text
3034 * khtml/editing/htmlediting.cpp:
3035 (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete): Fixed bonehead coding mistake in the
3036 check for one of the special cases being checked for in this function. The specific case
3037 intends to check for a selection that is only a <br> after a block ends (as in </div><br>). If it
3038 sees such markup, it deletes only the <br> and bails. However, this code would run in *any*
3039 case where a selection ended in a <br> after a block and would not delete any part of the
3040 selection preceding the <br>. Bad. I have tightened the check to see that only a <br> is
3043 Fixing the bug above was accomplished with an additional call to DOM::Position::downstream. This
3044 new use of the function exposed this bug:
3046 <rdar://problem/3907666> Incorrectly coded loop in Position::downstream can lead to infinite loop
3048 * khtml/xml/dom_position.cpp:
3049 (DOM::Position::downstream): I am ashamed of my first cut at this. Rewrote the loop so it does
3050 not have this fatal flaw. It is a much better design as well.
3052 * layout-tests/editing/deleting/delete-3800834-fix-expected.txt: Changes made this test
3053 have what I consider to be a better result. Going with it.
3055 2004-12-06 Chris Blumenberg <cblu@apple.com>
3057 Fixed: <rdar://problem/3871718> REGRESSION (125-168): text marked bold with font that does not have bold variant copies as non-bold
3062 (-[DOMElement _font]): new SPI for AppKit
3065 2004-12-06 Darin Adler <darin@apple.com>
3069 - fixed <rdar://problem/3906327> Select All of a large document is slow (>15 secs on my machine for attached specimen)
3071 * kwq/KWQScrollView.mm: (QScrollView::updateContents): Intersect with visibleRect before calling through
3072 to NSView to dirty; NSView could also be more efficient in this case (I filed 3906343).
3074 2004-12-06 John Sullivan <sullivan@apple.com>
3076 Darin found what appears to be the real leak that we were falsely blaming
3077 on the 'leaks' tool (3880245). I made the change, and ran layout tests and PLT to make
3078 sure nothing barfed.
3080 * khtml/css/cssparser.cpp:
3081 (CSSParser::parseValue):
3082 call clearProperties() instead of just setting numParsedProperties to 0
3083 (CSSParser::parseDeclaration):
3085 (CSSParser::createStyleDeclaration):
3088 2004-12-06 Ken Kocienda <kocienda@apple.com>
3094 * layout-tests/editing/inserting/insert-div-001-expected.txt: Added.
3095 * layout-tests/editing/inserting/insert-div-001.html: Added.
3096 * layout-tests/editing/inserting/insert-div-002-expected.txt: Added.
3097 * layout-tests/editing/inserting/insert-div-002.html: Added.
3098 * layout-tests/editing/inserting/insert-div-003-expected.txt: Added.
3099 * layout-tests/editing/inserting/insert-div-003.html: Added.
3100 * layout-tests/editing/inserting/insert-div-004-expected.txt: Added.
3101 * layout-tests/editing/inserting/insert-div-004.html: Added.
3102 * layout-tests/editing/inserting/insert-div-005-expected.txt: Added.
3103 * layout-tests/editing/inserting/insert-div-005.html: Added.
3104 * layout-tests/editing/inserting/insert-div-006-expected.txt: Added.
3105 * layout-tests/editing/inserting/insert-div-006.html: Added.
3106 * layout-tests/editing/inserting/insert-div-007-expected.txt: Added.
3107 * layout-tests/editing/inserting/insert-div-007.html: Added.
3108 * layout-tests/editing/inserting/insert-div-008-expected.txt: Added.
3109 * layout-tests/editing/inserting/insert-div-008.html: Added.
3110 * layout-tests/editing/inserting/insert-div-009-expected.txt: Added.
3111 * layout-tests/editing/inserting/insert-div-009.html: Added.
3113 2004-12-06 Ken Kocienda <kocienda@apple.com>
3115 Reviewed by Harrison
3119 <rdar://problem/3906948> REGRESSION (Mail): Insert paragraph code can make the insertion point "stick" in place.
3121 * khtml/editing/htmlediting.cpp:
3122 (khtml::InsertParagraphSeparatorCommand::doApply): Call insertBlockPlaceholderIfNeeded(), passing block
3123 being added to this function. This ensures that the added block has a height.
3124 (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Ditto.
3126 2004-12-06 Ken Kocienda <kocienda@apple.com>
3130 * khtml/dom/dom_string.cpp:
3131 (DOM::DOMString::substring): Expose method already on DOMStrimgImpl.
3132 * khtml/dom/dom_string.h: Ditto.
3133 * khtml/editing/htmlediting.cpp:
3134 (khtml::CompositeEditCommand::rebalanceWhitespace): New helper to create and execute a
3135 RebalanceWhitespaceCommand instance.
3136 (khtml::DeleteSelectionCommand::doApply): Call rebalanceWhitespace() after running command.
3137 (khtml::InsertLineBreakCommand::doApply): Ditto.
3138 (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
3139 (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Ditto.
3140 (khtml::InsertTextCommand::input): Ditto.
3141 (khtml::RebalanceWhitespaceCommand::RebalanceWhitespaceCommand): New command.
3142 (khtml::RebalanceWhitespaceCommand::~RebalanceWhitespaceCommand): Ditto.
3143 (khtml::RebalanceWhitespaceCommand::doApply): Ditto.
3144 (khtml::RebalanceWhitespaceCommand::doUnapply): Ditto.
3145 (khtml::RebalanceWhitespaceCommand::preservesTypingStyle): Ditto.
3146 (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Ditto.
3147 * khtml/editing/htmlediting.h: Ditto.
3148 (khtml::RebalanceWhitespaceCommand::): Ditto.
3150 2004-12-05 Darin Adler <darin@apple.com>
3152 - fixed small problem in my check-in from yesterday
3155 (positionForEvent): Get location from event without raising exception if it's the wrong type.
3156 (clickCountForEvent): Same, for clickCount.
3157 (QMouseEvent::QMouseEvent): Use the new helper functions so this can be constructed even with
3158 the wrong type of NSEvent. Required for cases where a keyboard event causes a "click" and we need
3159 to synthesize a QMouseEvent for KHTML internal use, using the key down NSEvent.
3161 2004-12-04 Darin Adler <darin@apple.com>
3165 - fixed <rdar://problem/3878329> REGRESSION (169-170): colors are wrong for my.yahoo.com due to CSS background parsing changes
3167 * khtml/css/cssparser.cpp: (CSSParser::parseBackgroundShorthand): Changed function so it doesn't rely on the position
3168 attribute being at the end of the array and then moved position attribute before color attribute so it takes precedence.
3169 Since "0" can be both the X coordinate of a position and a legal color (meaning black), we need to do position first.
3171 - fixed <rdar://problem/3760869> click events for input type=button or type=checkbox don't have flags like shiftKey set
3173 * khtml/rendering/render_form.h: Remove unused RenderFormElement fields.
3174 * khtml/rendering/render_form.cpp:
3175 (RenderFormElement::RenderFormElement): Take out code to set a bunch of unused fields.
3176 (RenderFormElement::slotClicked): Change to create the QMouseEvent from the actual mouse event rather than
3177 creating it with all the flags set to 0, using the new QMouseEvent constructor that does so.
3179 * kwq/KWQEvent.h: Added constructor that takes no parameters which uses the current event from AppKit.
3180 Made the click count getter const and added an isDoubleClick that matches the logic used elsewhere.
3181 Added a fixState helper method so the constructors can save code.
3183 (QMouseEvent::QMouseEvent): Factored out the state-fixing code that was in the two existing constructors
3184 and added a third constructor that uses the "current event" from AppKit (used above).
3185 (QMouseEvent::fixState): Compute state and click count based on event type.
3187 - fixed first symptom of <rdar://problem/3830936> REGRESSION (125-165): crash due to null font family, hang at changeforamerica.com
3189 * kwq/KWQFontFamily.mm: (KWQFontFamily::getNSFamily): Handle empty strings specially so we don't run into trouble when
3190 the family name is a null string. This prevents the crash, but there are still other problems that may have the same
3191 underlying cause in CSS.
3193 - fixed <rdar://problem/3829808> Safari crashes when adding a DOM node that was removed from an XMLHTTP request result
3195 * khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::insertedIntoDocument):
3196 Added nil check before calling scheduleRelayout. This is new code so the nil-dereference is a recent regression.
3198 2004-12-03 Chris Blumenberg <cblu@apple.com>
3201 <rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
3202 <rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
3203 <rdar://problem/3903173> REGRESSION (172-TOT): assertion failure and crash in slotAllData logging into hotmail account
3204 <rdar://problem/3902749> REGRESSION (Tiger): missing image symbol does not appear
3206 Reviewed by darin, rjw, kocienda.
3208 * khtml/misc/loader.cpp:
3209 (CachedObject::~CachedObject):
3210 (CachedCSSStyleSheet::checkNotify):
3211 (Loader::servePendingRequests):
3212 (Loader::slotFinished):
3213 (Loader::slotReceivedResponse):
3214 (Cache::requestImage):
3215 (Cache::requestScript):
3216 * khtml/misc/loader.h:
3217 (khtml::CachedObject::CachedObject):
3218 (khtml::CachedObject::response):
3219 (khtml::CachedObject::allData):
3220 * kwq/KWQKJobClasses.h:
3221 * kwq/KWQKJobClasses.mm:
3222 (KIO::TransferJobPrivate::TransferJobPrivate):
3223 (KIO::TransferJobPrivate::~TransferJobPrivate):
3224 (KIO::TransferJob::TransferJob):
3225 (KIO::TransferJob::assembleResponseHeaders):
3226 (KIO::TransferJob::retrieveCharset):
3227 (KIO::TransferJob::emitResult):
3228 (KIO::TransferJob::emitReceivedResponse):
3231 (KWQHeaderStringFromDictionary):
3232 (KWQCheckCacheObjectStatus):
3233 (KWQIsResponseURLEqualToURL):
3235 (KWQResponseMIMEType):
3236 (KWQCacheObjectExpiresTime):
3237 (khtml::CachedObject::setResponse):
3238 (khtml::CachedObject::setAllData):
3242 * kwq/KWQResourceLoader.mm:
3243 (-[KWQResourceLoader finishJobAndHandle:]):
3244 (-[KWQResourceLoader cancel]):
3245 (-[KWQResourceLoader reportError]):
3246 (-[KWQResourceLoader finishWithData:]):
3254 * kwq/WebCoreBridge.h:
3255 * kwq/WebCoreResourceLoader.h:
3257 2004-12-04 Darin Adler <darin@apple.com>
3261 - fixed <rdar://problem/3876093> REGRESSION (166-167): Setting slider control's value from JavaScript has no effect (breaks RSS)
3263 * khtml/rendering/render_form.cpp:
3264 (RenderSlider::updateFromElement): Call setValue to update the value of the DOM element rather than
3265 modifying the m_value data member directly. We don't use m_value at all for sliders now, and in fact
3266 the code relies on the fact that m_value is null. Setting m_value to a non-null value was causing the bug.
3267 (RenderSlider::slotSliderValueChanged): Ditto.
3269 2004-12-03 John Sullivan <sullivan@apple.com>
3273 - fixed <rdar://problem/3889411> REGRESSION (125-172): repro crash in
3274 khtml::BackgroundLayer::cullEmptyLayers
3276 * khtml/rendering/render_style.cpp:
3277 (BackgroundLayer::cullEmptyLayers):
3278 added missing nil check
3282 2004-12-03 Ken Kocienda <kocienda@apple.com>
3286 Roll out some recent changes by Chris that caused a performance regression.
3287 Fix is in hand, but it is a little risky this close to a submission. So,
3288 we have decided to roll back the change with the regression and roll in
3289 the new code after we submit.
3291 * khtml/css/cssproperties.c:
3294 * khtml/css/cssvalues.c:
3297 * khtml/misc/htmlattrs.c:
3300 * khtml/misc/htmltags.c:
3303 * khtml/misc/loader.cpp:
3304 (CachedObject::~CachedObject):
3305 (CachedObject::setResponse):
3306 (CachedCSSStyleSheet::checkNotify):
3307 (Loader::servePendingRequests):
3308 (Loader::slotFinished):
3309 (Loader::slotReceivedResponse):
3310 (Cache::requestImage):
3311 (Cache::requestScript):
3312 * khtml/misc/loader.h:
3313 (khtml::CachedObject::CachedObject):
3314 (khtml::CachedObject::response):
3315 * kwq/KWQKJobClasses.h:
3316 * kwq/KWQKJobClasses.mm:
3317 (KIO::TransferJobPrivate::TransferJobPrivate):
3318 (KIO::TransferJobPrivate::~TransferJobPrivate):
3319 (KIO::TransferJob::TransferJob):
3320 (KIO::TransferJob::assembleResponseHeaders):
3321 (KIO::TransferJob::retrieveCharset):
3322 (KIO::TransferJob::emitResult):
3323 (KIO::TransferJob::emitReceivedResponse):
3326 (KWQHeaderStringFromDictionary):
3327 (KWQCheckCacheObjectStatus):
3328 (KWQRetainResponse):
3329 (KWQReleaseResponse):
3330 (KWQIsResponseURLEqualToURL):
3332 (KWQResponseMIMEType):
3333 (KWQResponseTextEncoding