Timeline



Mar 19, 2005:

8:58 PM Changeset in webkit [8938] by harrison
  • 2 edits in trunk/WebKit

Reviewed by Maciej.

<rdar://problem/4059479> Misspelling underline does underline the whole word, could go farther to the right

  • WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer misspellingLinePatternGapWidth]): (-[WebTextRenderer drawLineForMisspelling:withWidth:]): Consider that the last pixel in the underline dot pattern is transparent.
6:22 PM Changeset in webkit [8937] by kocienda
  • 2 edits in trunk/WebCore

Reviewed by Maciej

Fix for this bug:

<rdar://problem/4059384> Cannot place insertion point correctly in editable text that avoids floating elements

Note: I strongly suspect this bug blocks a complete solution to this other Tiger/P2:
<rdar://problem/4055748> AX: Dictionary pop-up panel shows at wrong place on specific parts of particular pages

  • khtml/rendering/render_text.cpp: (RenderText::caretRect): Change the y-coordinate used to calculate the available width for a line. Height is wrong. Top of the box containing the text where the click is done is correct. Also, add in the x-offset for the start of the text box when calculating the available width. If this text box is avoiding a float at the y-coordinate for the relevant box, failure to add in the amount of float-avoidance will make the text at the coordinates greater than end-of-line minus float-avoidance ineligible for caret placement.
4:58 PM Changeset in webkit [8936] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • fixed <rdar://problem/4057594> REGRESSION (125-406): Unrepro crash in HTMLTokenizer::allDataProcessed after hitting Back button
  • khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::allDataProcessed): To get the part safely after calling end, save a guarded pointer to the view. The old way could end trying to call a virtual function a part that was destroyed.
2:36 PM Changeset in webkit [8935] by mjs
  • 13 edits in trunk

Reviewed by Darin.

<rdar://problem/4053506> Pasting Tables and Cells in Mail does not allow editing before or after
<rdar://problem/4005954> REGRESSION (Mail): After copy/paste of content containing list element cannot go back to entering text at left side of page

  • khtml/editing/htmlediting.cpp: (khtml::maxDeepOffset): (khtml::CompositeEditCommand::removeFullySelectedNodePreservingPosition): (khtml::CompositeEditCommand::removeChildrenInRangePreservingPosition): (khtml::CompositeEditCommand::removeNodePreservingPosition): (khtml::CompositeEditCommand::insertBlockPlaceholder): (khtml::CompositeEditCommand::appendBlockPlaceholder): (khtml::CompositeEditCommand::forceBlockPlaceholder): (khtml::CompositeEditCommand::addBlockPlaceholderIfNeeded): (khtml::isSpecialElement): (khtml::isFirstVisiblePositionInSpecialElementInFragment): (khtml::positionBeforePossibleContainingSpecialElement): (khtml::positionAfterPossibleContainingSpecialElement): (khtml::ApplyStyleCommand::applyInlineStyle): (khtml::DeleteSelectionCommand::initializePositionData): (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent): (khtml::DeleteSelectionCommand::handleGeneralDelete): (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete): (khtml::DeleteSelectionCommand::doApply): (khtml::InsertParagraphSeparatorCommand::doApply): (khtml::ReplacementFragment::ReplacementFragment): (khtml::ReplaceSelectionCommand::doApply):
  • khtml/editing/htmlediting.h:
  • khtml/editing/visible_position.cpp: (khtml::isRenderedBR): (khtml::VisiblePosition::initDownstream): (khtml::isLastVisiblePositionInBlock):
  • khtml/rendering/render_line.cpp: (khtml::RootInlineBox::closestLeafChildForXPos):
  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::isBlockFlowOrTable): (NodeImpl::isEditableBlock): (NodeImpl::enclosingBlockFlowOrTableElement):
  • khtml/xml/dom_nodeimpl.h:
  • khtml/xml/dom_position.cpp: (DOM::Position::upstream): (DOM::Position::downstream):
  • layout-tests/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
  • layout-tests/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
  • layout-tests/editing/deleting/delete-select-all-001-expected.txt:
  • layout-tests/editing/deleting/delete-select-all-003-expected.txt:
  • layout-tests/editing/inserting/insert-3786362-fix-expected.txt:
11:34 AM Changeset in webkit [8934] by darin
  • 2 edits in trunk/WebKit

Reviewed by Maciej (a while back).

  • fixed <rdar://problem/4059323> local-file security check is allowing plug-in streams, but must not
  • Plugins.subproj/WebNetscapePluginStream.m: (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): Roll out change I made on 3-13. That change is needed for subresource, but not for plug-in streams. For plug-in streams it's too risky, and leaves a serious security hole open.
9:09 AM Changeset in webkit [8933] by darin
  • 2 edits in trunk/WebKit

Reviewed by Ken and John.

  • fixed <rdar://problem/4059123> REGRESSION (402-403): deleteWordForward: and deleteWordBackward: start deleting single characters after the first delete
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Fixed backwards logic in here and added missing check. Set action to one of the two typing actions only if isTypingAction is YES.
8:21 AM Changeset in webkit [8932] by sullivan
  • 2 edits in trunk/WebCore

Reviewed by Darin.

  • fixed <rdar://problem/4058740> Crash (nil-deref) editing Mail reply message in KWQKHTMLPart::fontForSelection (MailViewer-723)
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::fontForSelection): Add nil check to loop. It shouldn't be necessary, but this crash trace seems to be running into it. We're not completely certain, but the check is harmless at worst.
8:07 AM Changeset in webkit [8931] by harrison
  • 2 edits in trunk/WebKit

Reviewed by me (written by Patti Yeh).

<rdar://problem/4029491> <TCIM> CangJie: the candidate window appears at the top left hand corner during typing in Mail and iChat

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView firstRectForCharacterRange:]): Use selected range if there is no marked range.

Mar 18, 2005:

6:19 PM Changeset in webkit [8930] by vicki
  • 3 edits in trunk

versioning for TOT, Safari 2.0 (408+)

6:12 PM Changeset in webkit [8929]
  • 1 copy in tags/Safari-308

This commit was manufactured by cvs2svn to create tag 'Safari-308'.

6:12 PM Changeset in webkit [8928] by vicki
  • 3 edits in trunk

versioning for SUPanWheat, Safari 1.3 (308)

6:07 PM Changeset in webkit [8927]
  • 1 copy in tags/Safari-408

This commit was manufactured by cvs2svn to create tag 'Safari-408'.

6:07 PM Changeset in webkit [8926] by vicki
  • 6 edits in trunk

Safari-408 stamp

4:56 PM Changeset in webkit [8925] by harrison
  • 2 edits in trunk/WebKit

Reviewed by Darin.

<rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch

  • WebView.subproj/WebFrameView.m: (-[WebFrameView webCoreBridge]): New to conform to WebCoreBridgeHolder protocol.
4:53 PM Changeset in webkit [8924] by harrison
  • 3 edits in trunk/WebCore

Reviewed by Darin.

<rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch

Also changed WebKit.

  • kwq/KWQAccObject.mm: (-[KWQAccObject rendererForView:]): New to cover both the WebCore and WebKit NSViews.

(-[KWQAccObject _accessibilityParentForSubview:]):
Use rendererForView.

  • kwq/WebCoreFrameView.h: Add WebCoreBridgeHolder protocol to get access to WebKit NSViews.
4:34 PM Changeset in webkit [8923] by harrison
  • 18 edits in trunk/WebCore

Reviewed by Darin, Ken.

<rdar://problem/3735625> AX: add AXPress action if an element has an onclick handler

  • khtml/dom/html_form.cpp: (HTMLInputElement::click):
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::click): (HTMLElementImpl::accessKeyAction):
  • khtml/html/html_elementimpl.h:
  • khtml/html/html_formimpl.cpp: (DOM::HTMLFormElementImpl::submitClick): (DOM::HTMLButtonElementImpl::click): (DOM::HTMLButtonElementImpl::accessKeyAction): (DOM::HTMLInputElementImpl::click): (DOM::HTMLInputElementImpl::accessKeyAction): (DOM::HTMLInputElementImpl::defaultEventHandler): (DOM::HTMLLabelElementImpl::accessKeyAction): (DOM::HTMLSelectElementImpl::accessKeyAction): (DOM::HTMLTextAreaElementImpl::accessKeyAction):
  • khtml/html/html_formimpl.h:
  • khtml/html/html_inlineimpl.cpp: (HTMLAnchorElementImpl::defaultEventHandler): (HTMLAnchorElementImpl::accessKeyAction):
  • khtml/html/html_inlineimpl.h:
  • khtml/rendering/render_form.cpp: (RenderFileButton::click):
  • khtml/rendering/render_form.h:
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::defaultEventHandler):
  • khtml/xml/dom_elementimpl.h: (DOM::ElementImpl::accessKeyAction):
  • kwq/DOMHTML.mm: (-[DOMHTMLInputElement click]):
  • kwq/KWQButton.h:
  • kwq/KWQButton.mm: (QButton::click):
  • kwq/KWQFileButton.h:
  • kwq/KWQFileButton.mm: (KWQFileButton::click):

Add accessKeyAction parameter about whether to limit to HTMLElementImpl subclasses that JavaScript wants, or to apply to others as well.

Add click() parameter about whether to send the mousedown and mouseup events in addition to the click event.

  • kwq/KWQAccObject.mm: (-[KWQAccObject mouseButtonListener]): Locate a mousedown, mouseup, or click handler in the current element and its ancestors.

(-[KWQAccObject actionElement]):
(-[KWQAccObject accessibilityIsIgnored]):
(-[KWQAccObject accessibilityPerformAction:]):
Consider mouseButtonListener.

2:56 PM Changeset in webkit [8922] by rjw
  • 4 edits in trunk/WebKit

Fixed <rdar://problem/4057004> Data from XMLHTTPRequest is never dealloced

WebDataSource keeps an array of all the NSURLResponses associated
with the load for a page. This is used to playback delegate messages
when loading from the page cache. However, after the document
has completed it's initial load, we continue to keep track of responses.
So, this has the consequence of keeping all the responses for a page
around for the life of the page. NSURLResponses are now very
heavy. They indirectly reference the resource data (via the
download assessment dictionary). This fix will keep
references to responses around for those resources loaded during initial
page load, but not after that point.

Reviewed by Ken.

  • WebView.subproj/WebDataSource.m: (-[WebDataSource _addResponse:]): (-[WebDataSource _stopRecordingResponses]):
  • WebView.subproj/WebDataSourcePrivate.h:
  • WebView.subproj/WebFrame.m: (-[WebFrame _opened]):
12:41 PM Changeset in webkit [8921] by sullivan
  • 7 edits in trunk/WebCore

Reviewed by Darin.

  • fixed <rdar://problem/4002164> maps that include start and end location don't print right from maps.google.com

I thought I checked this in yesterday but a ChangeLog conflict aborted my checkin
without me noticing.

  • khtml/rendering/render_style.cpp: (RenderStyle::diff): flag name changed from _should_correct_text_color to _force_backgrounds_to_white
  • khtml/rendering/render_style.h: (khtml::RenderStyle::InheritedFlags::operator==): flag name changed from _should_correct_text_color to _force_backgrounds_to_white (khtml::RenderStyle::setBitDefaults): ditto (khtml::RenderStyle::forceBackgroundsToWhite): ditto, and method name changed too (khtml::RenderStyle::setForceBackgroundsToWhite): ditto
  • khtml/rendering/render_text.cpp: (InlineTextBox::paint): updated for name change; also, compare text against white instead of current bg color because we no longer actually modify the bg color (previously we would always set the bg color to white, so the result is the same)
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::recalcStyle): updated for name change
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge styleSheetForPrinting]): removed this method (-[WebCoreBridge reapplyStylesForDeviceType:]): removed the code that called styleSheetForPrinting; we no longer use a stylesheet for this behavior.
  • khtml/rendering/render_box.cpp: (RenderBox::paintBackgroundExtended): If forceBackgroundsToWhite flag is set, convert background images and background colors to white background color with no background image.
9:49 AM Changeset in webkit [8920] by kocienda
  • 2 edits in trunk/WebKit

Reviewed by Darin

Fix for this bug:

<rdar://problem/4053729> Copy/paste of page with frames into Blot or Mail does nothing and loses insertion point

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _selectedArchive]): Wrap frameset documents in an iframe, so they can be pasted into existing documents which will have a body or frameset of their own.
9:32 AM Changeset in webkit [8919] by kocienda
  • 3 edits in trunk

Reviewed by John

Fix for this bug:

<rdar://problem/4056718> Pasting quotes the entire message

  • khtml/editing/htmlediting.cpp: (khtml::ReplaceSelectionCommand::doApply): After pasting, nodes are moved to the block containing the end of the pasted content in certain cases. This move logic used to stop once it moved all the siblings of the node following the last node of the pasted-in content. This means that block elements could get moved, and if the pasted-in content included a mail blockquote, this could result in one quote level getting added. The fix is to stop the move of nodes once a <br>, block element, or <table> is seen. This only affected one of the many test cases we have for such scenarios, and the change to that result makes sense given the code change.
  • layout-tests/editing/pasteboard/paste-text-003-expected.txt: This test result changed in a way that adequately tests the behavior change, so I did not add a new test.
7:56 AM Changeset in webkit [8918] by kocienda
  • 2 edits in trunk/WebCore

Reviewed by Harrison

Fix for this bug:

<rdar://problem/4051809> 8A413: Cursor-up in a mail message sometimes gets stuck (with specific reproducible case)

  • khtml/rendering/render_text.cpp: (RenderText::positionForCoordinates): Consider two lines: line-above and line-below. If the caret position in line-below was at an x coordinate between half way through the x coordinate of the last character on the line-above and the end of that same character, this bug would happen since the positioning code would assume that it could create a VisiblePosition with a DOWNSTREAM affinity. Now, I check to see if the character position on the line-above is the last character on that line, and if it is, I use UPSTREAM as the affinity.

Mar 17, 2005:

2:59 PM Changeset in webkit [8917] by vicki
  • 3 edits in trunk

versioning for TOT, Safari 2.0 (407+)

2:48 PM Changeset in webkit [8916]
  • 1 copy in tags/Safari-307

This commit was manufactured by cvs2svn to create tag 'Safari-307'.

2:48 PM Changeset in webkit [8915] by vicki
  • 3 edits in trunk

versioning for Safari 1.3 (307) on SUPanWheat

2:41 PM Changeset in webkit [8914]
  • 1 copy in tags/Safari-407

This commit was manufactured by cvs2svn to create tag 'Safari-407'.

2:41 PM Changeset in webkit [8913] by vicki
  • 6 edits in trunk

Safari-407 stamp

1:43 PM Changeset in webkit [8912] by rjw
  • 2 edits in trunk/WebKit

Fixed <rdar://problem/4055562> REGRESSION (Tiger): Safari doesn't draw progressively-loaded JPEGs (www.theregister.co.uk, www.titantalk.com)

Anothe side effect of lazy loading of image meta data. We now
don't cache image size until size meta data is actually available.

Reviewed by Darin.

  • WebCoreSupport.subproj/WebImageData.m: (-[WebImageData size]):
11:09 AM Changeset in webkit [8911] by harrison
  • 2 edits in trunk/WebCore

Reviewed by Darin, Ken.

  • khtml/editing/htmlediting.cpp: (khtml::EditCommandPtr::setEndingSelection): Fixed typo so that it calls setEndingSelection rather than setStartingSelection. Commented out this unused method, tho, since this is late in Tiger. Proved unused by successful build after temporarily removing method declaration or implemenation.
9:57 AM Changeset in webkit [8910] by kdecker
  • 2 edits in trunk/WebCore

Reviewed by mjs.

Fixed <rdar://problem/4046665> REGRESSION (403-405): mypage.apple.com login does not work (hits assertion in Development build)

  • kwq/WebCoreBridge.mm: (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Check always came back false when callers would send a nil NSURL to this method. Now we allow the empty url cases, eg., <frame src="">

Mar 16, 2005:

6:46 PM Changeset in webkit [8909] by darin
  • 4 edits in trunk/WebCore

Reviewed by Maciej.

  • fixed <rdar://problem/4045203> REGRESSION (125-188): Redundant JS imports crash Safari
  • khtml/html/htmltokenizer.h: Take inWRite bool out of NDEBUG ifdef.
  • khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::HTMLTokenizer): Take inWrite bool management code out of NDEBUG ifdef. (khtml::HTMLTokenizer::write): Ditto. Don't call end if inWrite is true, since it will be called when you return to the body of the outer write() call. (khtml::HTMLTokenizer::allDataProcessed): Don't call end() if inWrite is true for the same reason. (khtml::HTMLTokenizer::finish): Ditto.
  • kwq/KWQWidget.mm: (QWidget::getOuterView): Removed bogus assertion that has been vexing us of late.
6:30 PM Changeset in webkit [8908] by harrison
  • 2 edits in trunk/WebCore

Reviewed by me (written by Patti Yeh).

  • kwq/KWQAccObject.mm: (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]): Use LeftWordIfOnBoundary instead of RightWordIfOnBoundary.

(-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
Use RightWordIfOnBoundary instead of LeftWordIfOnBoundary.

6:09 PM Changeset in webkit [8907] by harrison
  • 2 edits in trunk/WebCore

Reviewed by Maciej.

<rdar://problem/4054590> AX: Dictionary panel does not work when page is scrolled on Safari

  • kwq/KWQAccObject.mm: (-[KWQAccObject doAXTextMarkerForPosition:]): Add in the view's contentsX and contentsY to the point.
5:32 PM Changeset in webkit [8906] by harrison
  • 2 edits in trunk/WebKit

Reviewed by Maciej.

<rdar://problem/4048506> Deleting from beginning of editable div deletes other document elements

Also changed WebCore.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _shouldDeleteRange:]): Added call to new bridge method canDeleteRange.
5:31 PM Changeset in webkit [8905] by harrison
  • 5 edits in trunk/WebCore

Reviewed by Maciej.

<rdar://problem/4048506> Deleting from beginning of editable div deletes other document elements

Also changed WebKit.

  • khtml/editing/visible_units.h:
  • khtml/editing/visible_units.cpp: (khtml::startOfEditableContent): (khtml::endOfEditableContent): (khtml::inSameEditableContent): (khtml::isStartOfEditableContent): (khtml::isEndOfEditableContent): New.
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge canDeleteRange:]): New.
10:30 AM Changeset in webkit [8904] by jens
  • 2 edits in trunk/JavaScriptCore

[4025212] search not performed correctly; united.com. Fixed bug inherited from KJS that caused unescape() of an empty string to return a messed-up String object that would sometimes act like the value 'null'.

8:36 AM Changeset in webkit [8903] by kocienda
  • 5 edits in trunk

WebCore:

Reviewed by Darin

Fix for this bug:

<rdar://problem/4042935> undo doesn't work properly during inline input

  • kwq/WebCoreBridge.h: Declare new method below.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge replaceMarkedTextWithText:]): New method. Wraps calls to TypingCommand::deleteKeyPressed and TypingCommand::insertText to map the way that international text input works onto the typing undo system.

WebKit:

Reviewed by Darin

Fix for this bug:

<rdar://problem/4042935> undo doesn't work properly during inline input

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView setMarkedText:selectedRange:]): Call new -[WebCoreBridge replaceMarkedTextWithText:] instead of -[WebCoreBridge replaceSelectionWithText:selectReplacement:smartReplace:]. The former call was just added in order to provide a better mapping of international text input onto the typing command/undo design.
6:43 AM Changeset in webkit [8902] by harrison
  • 5 edits in trunk/WebCore

Reviewed by Darin.

<rdar://problem/4044336> REGRESSION (8A398-8A409): Option-Delete also deletes space to left of deleted word

  • khtml/editing/htmlediting.cpp: (khtml::DeleteSelectionCommand::initializePositionData):
  • skip smart delete if the selection to delete already starts or ends with whitespace
  • khtml/khtml_part.cpp: (KHTMLPart::handleMousePressEventDoubleClick):
  • preserve selection on double-click when range is already selected
  • khtml/xml/dom_position.cpp: (DOM::Position::leadingWhitespacePosition): (DOM::Position::trailingWhitespacePosition):
  • fix considerNonCollapsibleWhitespace action (logic was reversed)
  • add non-breaking space to the non-collapsable ones
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]): (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]):
  • these methods do not set the selection, so remove calls to setSelectionGranularity

(-[WebCoreBridge alterCurrentSelection:direction:granularity:]):
(-[WebCoreBridge alterCurrentSelection:verticalDistance:]):

  • set the granularity back to character
  • the one exception is that we need to keep word granularity to preserve smart delete behavior when extending by word

Mar 15, 2005:

7:23 PM Changeset in webkit [8901] by mjs
  • 1 edit in trunk/WebCore/ChangeLog-2005-08-23

Removed conflict marker.

7:19 PM Changeset in webkit [8900] by mjs
  • 2 edits in trunk/WebCore

Reviewed by John.

<rdar://problem/4053266> Pressing return a few times right after a link makes the new blank lines part of the link

  • khtml/editing/htmlediting.cpp: (khtml::InsertLineBreakCommand::doApply): Use positionOutsideContainingSpecialElement in the right two places. (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
  • move all these helper functions higher in the file
  • khtml/editing/htmlediting.cpp: (khtml::isSpecialElement): (khtml::isFirstVisiblePositionInSpecialElement): (khtml::positionBeforeNode): (khtml::positionBeforeContainingSpecialElement): (khtml::maxRangeOffset): (khtml::isLastVisiblePositionInSpecialElement): (khtml::positionAfterNode): (khtml::positionAfterContainingSpecialElement): (khtml::positionOutsideContainingSpecialElement):
6:02 PM Changeset in webkit [8899] by rjw
  • 2 edits in trunk/WebCore

Fixed <rdar://problem/4053658> Crash getting direction at maps.google.com

Add non nil style() check.

Reviewed by Dave Harrison.

  • khtml/rendering/render_table.cpp: (RenderTableCell::collapsedRightBorder):
5:40 PM Changeset in webkit [8898] by kdecker
  • 3 edits in trunk/WebCore

Reviewed by John

Fixed: <rdar://problem/4041374> REGRESSION (185-186): unload handlers (at least those added with addEventListener) are broken

The reason why UNLOAD_EVENT wouldn't dispatch was because the code would delete all event listeners at the detach() phase which is prior to closeURL().

This fixes a recent regression from:

<rdar://problem/3977973> pages on ebay leak referenced JavaScript objects -- over time browsing becomes super-slow

  • khtml/khtml_part.cpp: (KHTMLPart::closeURL): After dispatching event handlers, go ahead and remove them from the DOM.
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::detach): Took out the call to removeAllEventListenersFromAllNodes(). If we remove all event listeners here then when KHTMLPart::closeURL() checks for even listeners, it will never have any because they'll already be gone.
4:00 PM Changeset in webkit [8897] by rjw
  • 5 edits in trunk/WebKit

Fixed <rdar://problem/4040321> Exception: Someone's trying to encode a WebDataRequestParameters instance

If client mutates request use new Foundation SPI to address remove applewebdata properties from request.

Reviewed by Ken Kocienda.

  • WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]):
  • WebView.subproj/WebDataProtocol.h:
  • WebView.subproj/WebDataProtocol.m: (+[NSURLRequest _webDataRequestPropertyKey]):
3:52 PM Changeset in webkit [8896] by rjw
  • 2 edits in trunk/JavaScriptCore

Fixed <rdar://problem/4053276> WebScripting protocol in WebKit cannot convert Boolean in Javascript to BOOL in Objective-C

Added JavaScript boolean to type that can be converted to
ObjC scalar parameters.

Reviewed by Ken Kocienda.

  • bindings/objc/objc_utility.mm: (KJS::Bindings::convertValueToObjcValue):
3:27 PM Changeset in webkit [8895] by kocienda
  • 3 edits in trunk/WebKit

Reviewed by Vicki

Fox for this bug:

<rdar://problem/4052642> Each delete keystroke is in its own undo group; not included in undo group with other typing

Calling -[WebCore setSelectedDOMRange:range affinity:] had the result of "closing" any active set of typing
keystrokes grouped together in a single undo operation. My change on 27 Jan to route delete keystrokes
through _deleteRange:killRing:... made this feature regress. Previous to that change, the backwards delete
key went through separate code that is no longer in the tree that did not set the selection in the way
it is done now.

The solution is to add an extra argument to the set-selection call. The WebCoreBridge now offers this method:
-[WebCore setSelectedDOMRange:range affinity:closeTyping:]. Now, callers must indicate whether setting the
selection will act to close typing or not. The code changes below all add this new argument with the
appropriate value for closeTyping.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]): Passes NO for closeTyping when deletionAction is deleteKeyAction or forwardDeleteKeyAction; YES when deleteSelectionAction. (-[WebHTMLView _expandSelectionToGranularity:]): Passes YES for closeTyping. (-[WebHTMLView selectToMark:]): Passes YES for closeTyping. (-[WebHTMLView swapWithMark:]): Passes YES for closeTyping. (-[WebHTMLView transpose:]): Passes YES for closeTyping. (-[WebHTMLView _selectMarkedText]): Passes NO for closeTyping. (-[WebHTMLView _selectRangeInMarkedText:]): Passes NO for closeTyping.
  • WebView.subproj/WebView.m: (-[WebView setSelectedDOMRange:affinity:]): Passes YES for closeTyping.
3:27 PM Changeset in webkit [8894] by kocienda
  • 3 edits in trunk/WebCore

Reviewed by Vicki

Fox for this bug:

<rdar://problem/4052642> Each delete keystroke is in its own undo group; not included in undo group with other typing

Calling -[WebCore setSelectedDOMRange:range affinity:] had the result of "closing" any active set of typing
keystrokes grouped together in a single undo operation. A change on 27 Jan in WebKit to change the way delete
keystrokes are handled made this feature regress. Previous to that change, the backwards delete
key went through separate code that is no longer in the tree that did not set the selection in the way
it is done now.

The solution is to add an extra argument to the set-selection call. The WebCoreBridge now offers this method:
-[WebCore setSelectedDOMRange:range affinity:closeTyping:]. Now, callers must indicate whether setting the
selection will act to close typing or not.

  • kwq/WebCoreBridge.h: Changed header accordingly to change method shown below.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge setSelectedDOMRange:affinity:closeTyping:]): Added closeTyping argument to this method.
2:27 PM Changeset in webkit [8893] by sullivan
  • 2 edits in trunk/WebCore

Reviewed by Vicki.

  • fixed <rdar://problem/4052246> crash in KWQKHTMLPart::createPart() trying to display local file in frame
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::createPart): Check part for nil before trying to ref. This was probably a longstanding code flaw revealed by the recent security fix.
1:44 PM Changeset in webkit [8892] by kdecker
  • 6 edits in trunk/WebCore

Reviewed by Ken and Maciej.

New fix for <rdar://problem/3667701> crash in KHTMLPart::jScriptEnabled()

The tokenizer has buffers which mean parsing can continue even after loading is supposed to be stopped. If the loading process was aborted, the tokenizer should abort, too.

  • khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::HTMLTokenizer): Initialize loadStopped to false. (khtml::HTMLTokenizer::write): Go ahead and bail out if loadStopped is true. (khtml::HTMLTokenizer::processToken):
  • khtml/html/htmltokenizer.h: Added loadStopped flag. Changed the view pointer from a standard pointer to a QGuardedPtr. This fixes the crash. Now the tokenizer's handle to the view will now automatically nil-out and never dangle.
  • khtml/khtml_part.cpp: (KHTMLPart::closeURL): Notify the tokenizer to stop parsing.
  • khtml/xml/xml_tokenizer.cpp: (khtml::XMLTokenizer::XMLTokenizer): Initialize loadStopped to false.
  • khtml/xml/xml_tokenizer.h: (khtml::Tokenizer::stopParsing): Added.
Note: See TracTimeline for information about the timeline view.