Timeline
Nov 8, 2005:
- 10:34 PM Changeset in webkit [11099] by
-
- 2 edits in trunk/JavaScriptCore
Reviewed by Darin.
This patch fixes some naughty naughty code -- 5 crashes and 2
may-go-haywire-in-the-futures.
One such crash is <rdar://problem/4247330> 8C46 Crash with with
incomplete parameter list to webScript object function.
I replaced early returns from within NS_DURINGs with calls to
NS_VALUERETURN because the doc says, "You cannot use goto or
return to exit an exception handling domain -- errors will result."
I replaced hard-coded analyses of -[NSMethodSignature
methodReturnType] with more abstracted alternatives, since
the documentation says "This encoding is implementation-specific,
so applications should use it with caution," and then emits an
evil cackle.
I removed the early return in the case where a JavaScript caller
supplies an insufficient number of arguments, because the right
thing to do in such a case is to use JavaScript's defined behavior
of supplying "undefined" for any missing arguments.
I also changed ObjcInstance::invokeMethod so that it no longer
deletes the method passed to it. It doesn't create the method,
so it shouldn't delete it. A friend of mine named
KERNEL_PROTECTION_FAILURE agrees with me on this point.
Finally, I changed an assert(true) to assert(false) because
all the other asserts were making fun of it.
- bindings/objc/objc_instance.mm: (ObjcInstance::invokeMethod): (ObjcInstance::invokeDefaultMethod):
- 6:46 PM Changeset in webkit [11098] by
-
- 12 edits in trunk/WebCore
<http://bugzilla.opendarwin.org/show_bug.cgi?id=5665> (REGRESSION: Crash in deleteTimer)
Rolled back Darin's timer changes from 2005-11-07, as they caused a couple of regressions.
- 1:54 PM Changeset in webkit [11097] by
-
- 2 edits in trunk/WebCore
Reviewed by Darin.
- fixed <rdar://problem/4333862> REGRESSION: Crash in new JavaScript timer implementation (5661) http://bugzilla.opendarwin.org/show_bug.cgi?id=5661
- kwq/KWQObject.mm: (sendDeferredTimerEvents): Added nil check for timers.
- 12:11 AM Changeset in webkit [11096] by
-
- 57 edits5 adds in trunk
LayoutTests:
Reviewed by Eric, Geoff and Darin.
- added test cases for <rdar://problem/4118258> XML DOM trees freed prematurely unless reference held to document node (causes crash)
Also updated the GC tests to try a little harder to trigger GC,
the old way might not work as well with the reworking of SimpleNumber.
- fast/dom/gc-1.html:
- fast/dom/gc-2.html:
- fast/dom/gc-3.html:
- fast/dom/gc-5.html:
- fast/dom/gc-6-expected.txt: Added.
- fast/dom/gc-6.html: Added.
- fast/dom/gc-7-expected.txt: Added.
- fast/dom/gc-7.html: Added.
WebCore:
Reviewed by Eric, Geoff and Darin.
- fixed <rdar://problem/4118258> XML DOM trees freed prematurely unless reference held to document node (causes crash)
I changed the design for how DOM nodes maintain their reference to
the document. Instead of using DocumentPtr, an indirect reference
which would go null in a clean way when the document is destroyed,
they now have a different strategy.
Nodes that belong to the document now hold a special kind of
reference on the document - a "self only reference". When a
document has no regular references but still has self-only
references, it won't be destroyed, but it will drop all its
children. This allows detached nodees to still have a valid
document reference, but they won't keep the rest of the DOM alive
or cause circular references.
- khtml/editing/SelectionController.cpp: (khtml::SelectionController::toRange):
- khtml/editing/visible_position.cpp: (khtml::makeRange):
- khtml/editing/visible_text.cpp: (khtml::TextIterator::range): (khtml::SimplifiedBackwardsTextIterator::range):
- khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::HTMLBodyElementImpl): (HTMLFrameElementImpl::HTMLFrameElementImpl): (HTMLFrameSetElementImpl::HTMLFrameSetElementImpl): (HTMLHeadElementImpl::HTMLHeadElementImpl): (HTMLHtmlElementImpl::HTMLHtmlElementImpl): (HTMLIFrameElementImpl::HTMLIFrameElementImpl):
- khtml/html/html_baseimpl.h:
- khtml/html/html_blockimpl.cpp: (HTMLBlockquoteElementImpl::HTMLBlockquoteElementImpl): (HTMLDivElementImpl::HTMLDivElementImpl): (HTMLHRElementImpl::HTMLHRElementImpl): (HTMLHeadingElementImpl::HTMLHeadingElementImpl): (HTMLParagraphElementImpl::HTMLParagraphElementImpl): (HTMLPreElementImpl::HTMLPreElementImpl): (HTMLMarqueeElementImpl::HTMLMarqueeElementImpl):
- khtml/html/html_blockimpl.h:
- khtml/html/html_canvasimpl.cpp: (HTMLCanvasElementImpl::HTMLCanvasElementImpl):
- khtml/html/html_canvasimpl.h:
- khtml/html/html_documentimpl.cpp: (DOM::HTMLDocumentImpl::createTokenizer): (DOM::HTMLDocumentImpl::determineParseMode):
- khtml/html/html_elementimpl.cpp: (HTMLElementImpl::HTMLElementImpl): (HTMLElementImpl::createContextualFragment): (HTMLElementImpl::setInnerText): (HTMLElementImpl::setOuterText):
- khtml/html/html_elementimpl.h:
- khtml/html/html_formimpl.cpp: (DOM::HTMLFormElementImpl::HTMLFormElementImpl): (DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl): (DOM::HTMLButtonElementImpl::HTMLButtonElementImpl): (DOM::HTMLFieldSetElementImpl::HTMLFieldSetElementImpl): (DOM::HTMLInputElementImpl::HTMLInputElementImpl): (DOM::HTMLLabelElementImpl::HTMLLabelElementImpl): (DOM::HTMLLegendElementImpl::HTMLLegendElementImpl): (DOM::HTMLSelectElementImpl::HTMLSelectElementImpl): (DOM::HTMLKeygenElementImpl::HTMLKeygenElementImpl): (DOM::HTMLOptGroupElementImpl::HTMLOptGroupElementImpl): (DOM::HTMLOptionElementImpl::HTMLOptionElementImpl): (DOM::HTMLOptionElementImpl::setText): (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl): (DOM::HTMLIsIndexElementImpl::HTMLIsIndexElementImpl):
- khtml/html/html_formimpl.h:
- khtml/html/html_headimpl.cpp: (HTMLBaseElementImpl::HTMLBaseElementImpl): (HTMLLinkElementImpl::HTMLLinkElementImpl): (HTMLMetaElementImpl::HTMLMetaElementImpl): (HTMLScriptElementImpl::HTMLScriptElementImpl): (HTMLStyleElementImpl::HTMLStyleElementImpl): (HTMLTitleElementImpl::HTMLTitleElementImpl):
- khtml/html/html_headimpl.h:
- khtml/html/html_imageimpl.cpp: (HTMLImageElementImpl::HTMLImageElementImpl): (HTMLMapElementImpl::HTMLMapElementImpl): (HTMLAreaElementImpl::HTMLAreaElementImpl):
- khtml/html/html_imageimpl.h:
- khtml/html/html_inlineimpl.cpp: (DOM::HTMLAnchorElementImpl::HTMLAnchorElementImpl): (DOM::HTMLBRElementImpl::HTMLBRElementImpl): (DOM::HTMLFontElementImpl::HTMLFontElementImpl): (DOM::HTMLModElementImpl::HTMLModElementImpl): (DOM::HTMLQuoteElementImpl::HTMLQuoteElementImpl):
- khtml/html/html_inlineimpl.h:
- khtml/html/html_listimpl.h: (DOM::HTMLUListElementImpl::HTMLUListElementImpl): (DOM::HTMLDirectoryElementImpl::HTMLDirectoryElementImpl): (DOM::HTMLMenuElementImpl::HTMLMenuElementImpl): (DOM::HTMLOListElementImpl::HTMLOListElementImpl): (DOM::HTMLLIElementImpl::HTMLLIElementImpl): (DOM::HTMLDListElementImpl::HTMLDListElementImpl):
- khtml/html/html_miscimpl.cpp: (DOM::HTMLBaseFontElementImpl::HTMLBaseFontElementImpl):
- khtml/html/html_miscimpl.h:
- khtml/html/html_objectimpl.cpp: (DOM::HTMLAppletElementImpl::HTMLAppletElementImpl): (DOM::HTMLEmbedElementImpl::HTMLEmbedElementImpl): (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl): (DOM::HTMLParamElementImpl::HTMLParamElementImpl):
- khtml/html/html_objectimpl.h:
- khtml/html/html_tableimpl.cpp: (DOM::HTMLTableElementImpl::HTMLTableElementImpl): (DOM::HTMLTableElementImpl::createTHead): (DOM::HTMLTableElementImpl::createTFoot): (DOM::HTMLTableElementImpl::createCaption): (DOM::HTMLTableElementImpl::insertRow): (DOM::HTMLTableSectionElementImpl::HTMLTableSectionElementImpl): (DOM::HTMLTableSectionElementImpl::insertRow): (DOM::HTMLTableRowElementImpl::insertCell): (DOM::HTMLTableCellElementImpl::HTMLTableCellElementImpl): (DOM::HTMLTableColElementImpl::HTMLTableColElementImpl):
- khtml/html/html_tableimpl.h: (DOM::HTMLTablePartElementImpl::HTMLTablePartElementImpl): (DOM::HTMLTableRowElementImpl::HTMLTableRowElementImpl): (DOM::HTMLTableCaptionElementImpl::HTMLTableCaptionElementImpl):
- khtml/html/htmlfactory.cpp: (DOM::htmlConstructor): (DOM::headConstructor): (DOM::bodyConstructor): (DOM::baseConstructor): (DOM::linkConstructor): (DOM::metaConstructor): (DOM::styleConstructor): (DOM::titleConstructor): (DOM::frameConstructor): (DOM::framesetConstructor): (DOM::iframeConstructor): (DOM::formConstructor): (DOM::buttonConstructor): (DOM::inputConstructor): (DOM::isindexConstructor): (DOM::fieldsetConstructor): (DOM::labelConstructor): (DOM::legendConstructor): (DOM::optgroupConstructor): (DOM::optionConstructor): (DOM::selectConstructor): (DOM::textareaConstructor): (DOM::dlConstructor): (DOM::ulConstructor): (DOM::olConstructor): (DOM::dirConstructor): (DOM::menuConstructor): (DOM::liConstructor): (DOM::blockquoteConstructor): (DOM::divConstructor): (DOM::headingConstructor): (DOM::hrConstructor): (DOM::paragraphConstructor): (DOM::preConstructor): (DOM::basefontConstructor): (DOM::fontConstructor): (DOM::modConstructor): (DOM::anchorConstructor): (DOM::imageConstructor): (DOM::mapConstructor): (DOM::areaConstructor): (DOM::canvasConstructor): (DOM::appletConstructor): (DOM::embedConstructor): (DOM::objectConstructor): (DOM::paramConstructor): (DOM::scriptConstructor): (DOM::tableConstructor): (DOM::tableCaptionConstructor): (DOM::tableColConstructor): (DOM::tableRowConstructor): (DOM::tableCellConstructor): (DOM::tableSectionConstructor): (DOM::brConstructor): (DOM::quoteConstructor): (DOM::marqueeConstructor): (DOM::HTMLElementFactory::createHTMLElement):
- khtml/html/htmlparser.cpp: (HTMLParser::HTMLParser): (HTMLParser::~HTMLParser):
- khtml/html/htmlparser.h: (HTMLParser::doc):
- khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::HTMLTokenizer): (khtml::HTMLTokenizer::parseTag): (khtml::parseHTMLDocumentFragment):
- khtml/html/htmltokenizer.h:
- khtml/misc/loader.h:
- khtml/misc/shared.h: (khtml::TreeShared::~TreeShared): (khtml::TreeShared::destroy): (khtml::TreeShared::deref):
- khtml/xbl/xbl_tokenizer.cpp: (XBL::XBLTokenHandler::XBLTokenHandler):
- khtml/xbl/xbl_tokenizer.h: (XBL::):
- khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::RangeImpl): (DOM::RangeImpl::setStart): (DOM::RangeImpl::setEnd): (DOM::RangeImpl::processContents): (DOM::RangeImpl::cloneRange): (DOM::RangeImpl::setStartAfter): (DOM::RangeImpl::setEndBefore): (DOM::RangeImpl::setEndAfter): (DOM::RangeImpl::setStartBefore): (DOM::rangeOfContents):
- khtml/xml/dom2_rangeimpl.h:
- khtml/xml/dom_docimpl.cpp: (DOMImplementationImpl::createDocumentType): (DOMImplementationImpl::createDocument): (DocumentImpl::DocumentImpl): (DocumentImpl::destroy): (DocumentImpl::~DocumentImpl): (DocumentImpl::createDocumentFragment): (DocumentImpl::createTextNode): (DocumentImpl::createComment): (DocumentImpl::createCDATASection): (DocumentImpl::createProcessingInstruction): (DocumentImpl::createEntityReference): (DocumentImpl::createEditingTextNode): (DocumentImpl::createElementNS): (DocumentImpl::setTitle): (DocumentImpl::removeTitle): (DocumentImpl::createRange): (DocumentImpl::createTokenizer): (DocumentImpl::implicitClose): (DocumentImpl::setHoverNode): (DocumentImpl::setActiveNode): (DocumentImpl::setFocusNode): (DocumentImpl::createAttributeNS): (DocumentFragmentImpl::DocumentFragmentImpl): (DocumentFragmentImpl::cloneNode): (DocumentTypeImpl::DocumentTypeImpl):
- khtml/xml/dom_docimpl.h: (DOM::DocumentImpl::selfOnlyRef): (DOM::DocumentImpl::selfOnlyDeref): (DOM::DocumentImpl::focusNode): (DOM::DocumentImpl::hoverNode): (DOM::DocumentImpl::activeNode):
- khtml/xml/dom_elementimpl.cpp: (AttributeImpl::allocateImpl): (AttrImpl::AttrImpl): (AttrImpl::cloneNode): (ElementImpl::ElementImpl): (StyledElementImpl::StyledElementImpl):
- khtml/xml/dom_elementimpl.h:
- khtml/xml/dom_nodeimpl.cpp: (DOM::NodeImpl::NodeImpl): (DOM::NodeImpl::setDocument): (DOM::NodeImpl::~NodeImpl): (DOM::NodeImpl::dispatchEvent): (DOM::NodeImpl::dispatchWindowEvent): (DOM::NodeImpl::dispatchMouseEvent): (DOM::NodeImpl::checkAddChild): (DOM::ContainerNodeImpl::ContainerNodeImpl): (DOM::ContainerNodeImpl::removeAllChildren): (DOM::ContainerNodeImpl::~ContainerNodeImpl):
- khtml/xml/dom_nodeimpl.h: (DOM::NodeImpl::inDocument): (DOM::NodeImpl::getDocument):
- khtml/xml/dom_textimpl.cpp: (CharacterDataImpl::CharacterDataImpl): (CommentImpl::CommentImpl): (TextImpl::TextImpl): (TextImpl::createNew): (CDATASectionImpl::CDATASectionImpl): (CDATASectionImpl::createNew): (EditingTextImpl::EditingTextImpl):
- khtml/xml/dom_textimpl.h:
- khtml/xml/dom_xmlimpl.cpp: (DOM::EntityImpl::EntityImpl): (DOM::EntityReferenceImpl::EntityReferenceImpl): (DOM::EntityReferenceImpl::cloneNode): (DOM::NotationImpl::NotationImpl): (DOM::ProcessingInstructionImpl::ProcessingInstructionImpl): (DOM::ProcessingInstructionImpl::cloneNode):
- khtml/xml/dom_xmlimpl.h:
- khtml/xml/xml_tokenizer.cpp: (khtml::XMLTokenizer::XMLTokenizer): (khtml::XMLTokenizer::startElementNs): (khtml::XMLTokenizer::enterText): (khtml::XMLTokenizer::processingInstruction): (khtml::XMLTokenizer::cdataBlock): (khtml::XMLTokenizer::comment): (khtml::XMLTokenizer::internalSubset): (khtml::XMLTokenizer::finish): (khtml::XMLTokenizer::insertErrorMessageBlock): (khtml::XMLTokenizer::executeScripts): (khtml::newXMLTokenizer):
- khtml/xml/xml_tokenizer.h:
- khtml/xsl/xslt_processorimpl.cpp: (DOM::createFragmentFromSource):
Nov 7, 2005:
- 4:49 PM Changeset in webkit [11095] by
-
- 1 edit4 adds in trunk/LayoutTests
Layout test for http://bugzilla.opendarwin.org/show_bug.cgi?id=3739
Unreproducible - Assertion failure in isEqualIgnoringAffinity on double-click
- editing/selection/doubleclick-crash-expected.checksum: Added.
- editing/inserting/doubleclick-crash-expected.png: Added.
- editing/inserting/doubleclick-crash-expected.txt: Added.
- editing/inserting/doubleclick-crash.html: Added.
- 4:49 PM Changeset in webkit [11094] by
-
- 3 edits in trunk/WebCore
Reviewed by Justin and Hyatt.
http://bugzilla.opendarwin.org/show_bug.cgi?id=3739
Unreproducible - Assertion failure in isEqualIgnoringAffinity on double-click
Test case added:
- editing/inserting/doubleclick-crash.html
- khtml/rendering/render_text.cpp: (RenderText::atLineWrap): New utility function. (RenderText::caretRect): Use atLineWrap. Remove dead code. (RenderText::inlineBox): Use atLineWrap.
- khtml/rendering/render_text.h: Add atLineWrap.
- 3:24 PM Changeset in webkit [11093] by
-
- 3 edits in trunk/WebCore
Fix for sluggish loading of large pages due to excessive
repaints. Large pages still need a lot of work while
loading, but this helps.
Reviewed by darin
- khtml/rendering/render_object.cpp: (RenderObject::mustRepaintBackgroundOrBorder): (RenderObject::repaintAfterLayoutIfNeeded):
- khtml/rendering/render_object.h:
- 2:30 PM Changeset in webkit [11092] by
-
- 3 edits4 adds in trunk
Reviewed by Darin Adler.
Committed by Adele Peterson.
- fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5398 source visible when <script> used inside <option>
Added:
- fast/forms/option-select.html
- khtml/html/html_formimpl.h: (DOM::HTMLOptionElementImpl::checkDTD): Allow <script> tags to be children of option elements
- khtml/html/html_formimpl.cpp: (DOM::HTMLOptionElementImpl::text): Skip the script content when creating text string
- 1:32 PM Changeset in webkit [11091] by
-
- 2 edits in trunk/WebKitTools
- Scripts/cvs-apply: Fix case where the patch has files at the top level.
- 1:21 PM Changeset in webkit [11090] by
-
- 1 edit3 adds in trunk/WebCore
- Added manual test cases for <rdar://problem/4161660> window.close followed by window.print in onload handler crashes Safari in KJS::ScopeChain::bottom (redmccombstoyota.com)
- manual-tests/resources/window-close-during-parsing-popup1.html: Added.
- manual-tests/resources/window-close-during-parsing-popup2.html: Added.
- manual-tests/window-close-during-parsing.html: Added.
- 1:18 PM Changeset in webkit [11089] by
-
- 2 edits in trunk/WebKit
Darin reviewed this a while back.
- Fixed <rdar://problem/4161660> window.close followed by window.print in onload handler crashes Safari in KJS::ScopeChain::bottom (redmccombstoyota.com)
Added a call to stopLoading inside closeWindowSoon to prevent load
events from firing after a window has torn down.
Manual test case: WebCore/manual-tests/window-close-during-parsing.html
- WebCoreSupport.subproj/WebBridge.m: (-[WebBridge closeWindowSoon]):
- 12:52 PM Changeset in webkit [11088] by
-
- 12 edits in trunk/WebCore
Reviewed by Tim Omernick.
- speed up timers by using CFTimerRunLoopRef instead of NSTimer
- kwq/KWQObject.h: Removed pauseTimer, resumeTimers, and _addTimer, added timerIntervals and restartTimer. Made KWQObjectSenderScope functions be inline.
- kwq/KWQObject.mm: (timerFired): Added. Function called when the CFRunLoopTimerRef fires. Puts the timer into the deferred timer array if timers are deferred, otherwise makes a QTimerEvent and calls timerEvent on the target. (QObject::startTimer): Moved most of the code inside restartTimer. This now just picks a new timer ID and calls restartTimer. (QObject::restartTimer): Added. Creates a KWQObjectTimer and puts it in a timers dictionary. That includes creating a CFRunLoopTimer and scheduling it on the current run loop. (QObject::timerIntervals): Added. Looks up a timer and returns the intervals for next time to fire and the "fire again" interval. (deleteTimer): Added. Invalidates and then removes a timer. (QObject::killTimer): Changed to use deleteTimer to do most of its work. (deleteOneTimer): Added. Calls deleteTimer. (QObject::killTimers): Changed to use deleteOneTimer to do most of its work. (sendDeferredTimerEvent): Added. Creates a QTimerEvent and calls timerEvent on the target. (sendDeferredTimerEvents): Added. Calls sendDeferredTimerEvent in a loop on all the deferred timers. (QObject::setDefersTimers): Updated to call sendDeferredTimerEvents as needed.
- kwq/KWQTimer.h: (QTimer::QTimer): Made constructor inline and removed the optional parameter. (QTimer::isActive): Made inline. (QTimer::fireDate): Added. Inline function. Got rid of the NSTimer and added a CFRunLoopTimer.
- kwq/KWQTimer.mm: (timerFired): Added. Calls fire on the QTimer object. (QTimer::start): Changed to create a CFRunLoopTimer. (QTimer::stop): Changed to use CFRunLoopTimer functions. (QTimer::fire): Ditto. (deleteKWQSlot): Added. Used as delete function for the CFRunLoopTimerContext below. (singleShotTimerFired): Added. Used as the fire function for the CFRunLoopTimerContext below. (QTimer::singleShot): Changed to create, schedule, and release a CFRunLoopTimer.
- khtml/ecma/kjs_window.h: Added PausedTimeouts class. Moved WindowQObject class up in the file so it can be used inline in the implementation of the Window class, and changed to use the PausedTimeouts class intead of a QMap to store the paused timeouts.
- khtml/ecma/kjs_window.cpp: (KJS::ScheduledAction::execute): Put a check for nil part at the start; this replaces a check in the caller and a check partway down this function (after the part was already dereferenced). Fixed message handling so the message is not converted to ascii and back. Added an isObject() check so we won't crash if the passed function is a value that's not an object. Changed check for function vs. script to check for a function of nil instead of using a separate boolean. (KJS::WindowQObject::pauseTimeouts): Updated to create the new PausedTimeouts object, using the new QObject::timerIntervals function rather than the old QObject::pauseTimer function. This means that the paused timers are entirely stored in the PausedTimeouts object instead of being half in a QMap and the other half inside the QObject itself. (KJS::WindowQObject::resumeTimeouts): Ditto, using the new QObject::restartTimer function. (KJS::PausedTimeouts::~PausedTimeouts): Added. Deletes the stored timeouts, including the scheduled actions, unless the timeouts have already been resumed (in which case the m_array field will be 0).
- kwq/KWQKHTMLPart.h: Renamed pause/resumeActions to pause/resumeTimeouts and made them use the PausedTimeouts class and no longer take a key parameter.
- kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::redirectionTimerStartedOrStopped): Use the new fireDate() function rathe than the old getNSTimer() function to get the fire date. (KWQKHTMLPart::pauseTimeouts): Remove the call to hasTimeouts and the key parameter. (KWQKHTMLPart::resumeTimeouts): Remove the key parameter. (KWQKHTMLPart::openURLFromPageCache): Change the timeout handling to use PausedTimeouts instead of a QMap for the paused timeouts.
- kwq/KWQPageState.h: Changed to use PausedTimeouts instead of a QMap for timeouts. Added a pausedTimeouts parameter to the initializer and removed the setPausedActions: method.
- kwq/KWQPageState.mm: (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:pausedTimeouts:]): Added code where it sets the pausedTimouts. (-[KWQPageState pausedTimeouts]): Added. (-[KWQPageState clear]): Added code to delete the pausedTimeouts and to deref mousePressNode. (-[KWQPageState invalidate]): Fixed bug where document would not be deref'd if the view was 0. (-[KWQPageState dealloc]): Removed code to deref mousePressNode since that's now handled in the clear method. (-[KWQPageState finalize]): Set document to 0 after deref for consistency.
- kwq/WebCoreBridge.mm: (-[WebCoreBridge saveDocumentToPageCache]): Changed to pass in the paused timeouts using the new pauseTimeouts function.
- 11:59 AM Changeset in webkit [11087] by
-
- 6 edits8 adds in trunk/LayoutTests
Reviewed by harrison
New/updated layout tests for fixes for:
<rdar://problem/4125131> REGRESSION (Mail): after certain steps,
extra blank line appears when typing past end of reply-quoted text
<rdar://problem/4024996> Applying block styles can cause assertion
failure in inline style removal
- editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
- editing/deleting/delete-br-011-expected.checksum:
- editing/deleting/delete-br-011-expected.png:
- editing/deleting/delete-br-011-expected.txt:
- editing/inserting/insert-3786362-fix-expected.txt:
- editing/inserting/insert-at-end-01-expected.checksum: Added.
- editing/inserting/insert-at-end-01-expected.png: Added.
- editing/inserting/insert-at-end-01-expected.txt: Added.
- editing/inserting/insert-at-end-01.html: Added.
- editing/inserting/insert-at-end-02-expected.checksum: Added.
- editing/inserting/insert-at-end-02-expected.png: Added.
- editing/inserting/insert-at-end-02-expected.txt: Added.
- editing/inserting/insert-at-end-02.html: Added.
- 11:59 AM Changeset in webkit [11086] by
-
- 6 edits in trunk/WebCore
Reviewed by harrison
<rdar://problem/4125131> REGRESSION (Mail): after certain steps,
extra blank line appears when typing past end of reply-quoted text
<rdar://problem/4024996> Applying block styles can cause assertion
failure in inline style removal
Prevent VisiblePositions at [br, 1] at the end of root editable elements.
Layout tests added:
- inserting/insert-at-end-01.html
- inserting/insert-at-end-02.html
Layout tests changed (fixed):
- editing/deleting/delete-br-011.html
- editing/deleting/delete-at-paragraph-boundaries-011.html
- editing/inserting/insert-3786362-fix.html
- khtml/editing/apply_style_command.cpp: (khtml::ApplyStyleCommand::applyInlineStyle): Do the layout before calculating start/end positions, not after, since upstream/downstream need to know who is rendered/unrendered. Don't do equivalentRangeCompliantPosition() on the start position in addition to downstream(), since it a) is confusing, b) frequently causes start/end to be equal, making removeInlineStyle a no-op and c) causes an assertion to fire. Only reset start/end using endingSelection() if splitTextElement was needed, since reseting start/end negates the work done above to swap start/end if they are backwards. When the start position points off the end of a node, that node should be skipped in all cases, not just the start.node() != end.node() case.
- khtml/editing/composite_edit_command.cpp: (khtml::CompositeEditCommand::appendBlockPlaceholder): (khtml::CompositeEditCommand::insertBlockPlaceholder): Placeholders should be allowed in nodes that aren't blockFlow, for example, deleting the b in <div><span>b</span></div> should insert a placeholder.
The assertion here should really be something like isBlockFlow isInlineFlow, but I can't assert those until deletion improves (4244964).
- khtml/editing/delete_selection_command.cpp: (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Don't try to select the placeholder when applying style to it. It isn't necessary, and it's now impossible to do at the end of the document in any case.
- khtml/editing/visible_position.cpp: (khtml::VisiblePosition::initDownstream): Don't create VisiblePositions at [br, 1] at the end of editable blocks, it produces strange/inconsistent editing behavior at the end of the document.
- khtml/khtml_part.cpp: Fixed a comment.
Nov 6, 2005:
- 7:07 PM Changeset in webkit [11085] by
-
- 1 edit in trunk/JavaScriptCore/ChangeLog
changelog fixup
- 1:47 PM Changeset in webkit [11084] by
-
- 3 edits in trunk/WebCore
2005-11-06 Anders Carlsson <andersca@mac.com>
Reviewed by Darin.
- kwq/KWQClipboard.mm: (KWQClipboard::dragNSImage): Get the NSImage from the image renderer.
- kwq/WebCoreImageRenderer.h: Add image method. This already exists in WebImageRenderer in WebKit.
- 12:44 PM Changeset in webkit [11083] by
-
- 1 edit4 adds2 deletes in trunk/LayoutTests
Layout test for http://bugzilla.opendarwin.org/show_bug.cgi?id=5571
REGRESSION (412.5-TOT): duplicated words/sentences at
shakespeer.sourceforge.net
Also renamed previous test for consistency.
- fast/js/regexp-big-unicode-ranges-expected.txt: Removed.
- fast/js/regexp-big-unicode-ranges.html: Removed.
- fast/js/regexp-extended-characters-crash-expected.txt: Added.
- fast/js/regexp-extended-characters-crash.html: Added.
- fast/js/regexp-extended-characters-match-expected.txt: Added.
- fast/js/regexp-extended-characters-match.html: Added.
- 12:41 PM Changeset in webkit [11082] by
-
- 3 edits in trunk/JavaScriptCore
Reviewed by Darin.
- Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5571 REGRESSION (412.5-TOT): duplicated words/sentences at shakespeer.sourceforge.net
Our UTF16-modified PCRE didn't work with extended character classes
(classes involving characters > 255) because it used the GETCHARINC
macro to read through them. In UTF16 mode, GETCHARINC expects UTF16
input, but PCRE encodes character classes in UTF8 regardless of the
input mode of the subject string.
The fix is to explicitly define GETUTF8CHARINC, and to use it,
rather than GETCHARINC, when reading extended character classes.
In UTF8 mode, we simply define GETCHARINC to be GETUTF8CHARINC.
- pcre/pcre_internal.h:
- pcre/pcre_xclass.c: (_pcre_xclass):
Nov 5, 2005:
- 10:22 PM Changeset in webkit [11081] by
-
- 1 edit2 adds in trunk/LayoutTests
Layout test for http://bugzilla.opendarwin.org/show_bug.cgi?id=5357
REGRESSION: Scriptable plugin hides properties of OBJECT element
- fast/dom/object-plugin-hides-properties.html: Added.
- fast/js/object-plugin-hides-properties-expected.txt: Added.
- 10:20 PM Changeset in webkit [11080] by
-
- 2 edits in trunk/JavaScriptCore
Patch by Mitz Pettel, reviewed by Maciej.
- Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5357 REGRESSION: Scriptable plugin hides properties of OBJECT element
- bindings/objc/objc_class.mm: (KJS::Bindings::ObjcClass::fallbackObject):
- 9:58 PM Changeset in webkit [11079] by
-
- 1 edit in trunk/LayoutTests/ChangeLog
changelog fixup
- 9:52 PM Changeset in webkit [11078] by
-
- 1 edit2 adds in trunk/LayoutTests
Layout test for http://bugzilla.opendarwin.org/show_bug.cgi?id=5409
slice() testcase doesn't pass
- fast/js/string-slice-abnormal-values.html: Added.
- fast/js/string-slice-abnormal-values-expected.txt: Added.
- 9:48 PM Changeset in webkit [11077] by
-
- 3 edits in trunk/JavaScriptCore
Reviewed by Darin.
- Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5409 slice() testcase doesn't pass
Modified String.slice to deal with funky values.
Updated test results. We now pass <js1_2/String/slice.js>.
- kjs/string_object.cpp: (StringProtoFuncImp::callAsFunction):
- tests/mozilla/expected.html:
- 9:07 PM Changeset in webkit [11076] by
-
- 2 edits in branches/Ti-2005-009-branch/JavaScriptCore
- Rolled out the pcre changes in my previous checkin because I applied them to the wrong branch.
Reviewed by TimH.
- pcre/pcre.c: (compile_branch):
- 8:09 PM Changeset in webkit [11075] by
-
- 1 edit in branches/Ti-2005-009-branch/JavaScriptCore/ChangeLog
changelog fixup
- 8:05 PM Changeset in webkit [11074] by
-
- 3 edits in branches/Ti-2005-009-branch/JavaScriptCore
Reviewed by NOBODY (OOPS!).
- Fixed <rdar://problem/4323773> REGRESSION (412.2-416.12): xxx appears on page due to JS regexp with char > 255 (5597) (tiddlywiki.com)
Previously, we fixed a buffer overflow by returning an error when
compiling character classes with characters > 255. But that broke
the internet.
Plan B here is to work around such classes, skipping single characters
255, skipping character ranges beginning > 255, and truncating
character ranges at 255.
I removed the early returns we added and the early returns in the
original library. Now, funky expressions compile normally, tweaked
by our special rules.
I also merged the UTF8 and UTF16 checks for out of range characters.
I remember we kept them separate before because we were purist about
marking off our code changes inside UTF16 #ifdefs. Since this patch
applies equally to UTF8 and UTF16, we've already lost that innocence,
so why not have a little fun?
- ChangeLog:
- pcre/pcre.c: (compile_branch):
- tests/mozilla/jsDriver.pl: Oh, by the way, I modified this to look inside of $SYMROOTS/Development. Not perfect, but certainly better than $SYMROOTS/, which is always wrong with XCode 2.1.
Nov 4, 2005:
- 10:49 PM Changeset in webkit [11073] by
-
- 1 edit32 adds in trunk/LayoutTests
- added pixel results for a bunch of tests that didn't have them
- fast/block/basic/021-expected.checksum: Added.
- fast/block/basic/021-expected.png: Added.
- fast/block/positioning/062-expected.checksum: Added.
- fast/block/positioning/062-expected.png: Added.
- fast/box-sizing/box-sizing-expected.checksum: Added.
- fast/box-sizing/box-sizing-expected.png: Added.
- fast/box-sizing/panels-one-expected.checksum: Added.
- fast/box-sizing/panels-one-expected.png: Added.
- fast/box-sizing/panels-two-expected.checksum: Added.
- fast/box-sizing/panels-two-expected.png: Added.
- fast/box-sizing/percentage-height-expected.checksum: Added.
- fast/box-sizing/percentage-height-expected.png: Added.
- fast/css-generated-content/014-expected.checksum: Added.
- fast/css-generated-content/014-expected.png: Added.
- fast/events/event-targets-expected.checksum: Added.
- fast/events/event-targets-expected.png: Added.
- fast/forms/blankbuttons-expected.checksum: Added.
- fast/forms/blankbuttons-expected.png: Added.
- fast/forms/button-positioned-expected.checksum: Added.
- fast/forms/button-positioned-expected.png: Added.
- fast/forms/indeterminate-expected.checksum: Added.
- fast/forms/indeterminate-expected.png: Added.
- fast/frames/calculate-fixed-expected.checksum: Added.
- fast/frames/calculate-fixed-expected.png: Added.
- fast/frames/calculate-order-expected.checksum: Added.
- fast/frames/calculate-order-expected.png: Added.
- fast/frames/calculate-percentage-expected.checksum: Added.
- fast/frames/calculate-percentage-expected.png: Added.
- fast/frames/calculate-relative-expected.checksum: Added.
- fast/frames/calculate-relative-expected.png: Added.
- fast/frames/calculate-round-expected.checksum: Added.
- fast/frames/calculate-round-expected.png: Added.
- 4:20 PM Changeset in webkit [11072] by
-
- 1 edit in trunk/WebCore/khtml/rendering/render_block.cpp
Fix build bustage.
- 4:13 PM Changeset in webkit [11071]
-
- 82 copies5 deletes in tags/JavaScriptCore-416~14
This commit was manufactured by cvs2svn to create tag
'JavaScriptCore-416~14'.
- 4:13 PM Changeset in webkit [11070] by
-
- 2 edits in branches/Ti-2005-009-branch/JavaScriptCore
Versioning to JavaScriptCore-416.14
- 4:05 PM Changeset in webkit [11069]
-
- 8 copies3 deletes in tags/JavaScriptCore-312~1~1
This commit was manufactured by cvs2svn to create tag
'JavaScriptCore-312~1~1'.
- 4:05 PM Changeset in webkit [11068] by
-
- 2 edits in branches/Safari-1-3-branch/JavaScriptCore
Versioning JavaScriptCore-312.1.1
- 4:02 PM Changeset in webkit [11067] by
-
- 2 edits in branches/Safari-1-3-branch/JavaScriptCore
Merging fix from Ti-2005-009-branch to Safari-1-3-branch
2005-11-04 Geoffrey Garen <ggaren@apple.com>
Reviewed by darin.
- Fixed <rdar://problem/4317701> *SecUpd: Tiger* PCRE heap overflow in Safari JavaScriptCore
- pcre/pcre.c: (read_repeat_counts): We now return an error for negative repeat counts in regular expressions. This matches Firefox exactly, and Win IE by effect (Win IE doesn't return an error, but it does refuse to match anything).
- 3:26 PM Changeset in webkit [11066] by
-
- 2 edits in branches/Ti-2005-009-branch/JavaScriptCore
Reviewed by darin.
- Fixed <rdar://problem/4317701> *SecUpd: Tiger* PCRE heap overflow in Safari JavaScriptCore
- pcre/pcre.c: (read_repeat_counts): We now return an error for negative repeat counts in regular expressions. This matches Firefox exactly, and Win IE by effect (Win IE doesn't return an error, but it does refuse to match anything).
- 1:13 PM Changeset in webkit [11065] by
-
- 2 edits in trunk/WebCore
Fix for bug 5626, ghosted float steals mouse events. Make sure
that the floatRect() method deals with overflow.
Reviewed by john
- khtml/rendering/render_block.cpp: (khtml::RenderBlock::paint): (khtml::RenderBlock::floatRect): (khtml::RenderBlock::nodeAtPoint):
- 1:02 PM Changeset in webkit [11064] by
-
- 2 edits1 add in trunk/WebCore
Reviewed by John Sullivan.
Test case added:
- manual-tests/whitespace-pre-affinity.html
This patch addresses the root cause of the problem by making
RenderText::inlineBox() cope with the fact that in white-space:pre text the
newline characters are not part of any InlineTextBox... they lie "between"
them. Now DOWNSTREAM affinity selects the next text box only if the offset
that is past the current box is actually _in_ the next box.
- khtml/rendering/render_text.cpp: (RenderText::inlineBox):
- 12:40 PM Changeset in webkit [11063] by
-
- 1 edit7 deletes in trunk/WebCore
- removed unused duplicate copy of hash table code
- khtml/misc/hashfunctions.h: Removed.
- khtml/misc/hashmap.h: Removed.
- khtml/misc/hashset.h: Removed.
- khtml/misc/hashtable.cpp: Removed.
- khtml/misc/hashtable.h: Removed.
- khtml/misc/hashtraits.h: Removed.
- khtml/misc/pointerhash.h: Removed.
- 12:12 PM Changeset in webkit [11062]
-
- 22 copies3 deletes in tags/WebKit-312~5~2
This commit was manufactured by cvs2svn to create tag
'WebKit-312~5~2'.
- 12:12 PM Changeset in webkit [11061]
-
- 70 copies3 deletes in tags/WebCore-315~10~1
This commit was manufactured by cvs2svn to create tag
'WebCore-315~10~1'.
- 12:12 PM Changeset in webkit [11060] by
-
- 4 edits in branches/Safari-1-3-branch
Versioning to WebKit-312.5.2 and WebCore-315.10.1
- 12:04 PM Changeset in webkit [11059]
-
- 53 copies22 deletes in tags/WebKit-416~12
This commit was manufactured by cvs2svn to create tag
'WebKit-416~12'.
- 12:04 PM Changeset in webkit [11058]
-
- 210 copies15 deletes in tags/WebCore-416~14
This commit was manufactured by cvs2svn to create tag
'WebCore-416~14'.
- 12:04 PM Changeset in webkit [11057] by
-
- 4 edits in branches/Ti-2005-009-branch
Versioning to WebCore-416.14 and WebKit-416.12
- 9:45 AM Changeset in webkit [11056]
-
- 10 copies7 deletes in tags/Safari-521
This commit was manufactured by cvs2svn to create tag 'Safari-521'.
- 9:45 AM Changeset in webkit [11055] by
-
- 1 edit in branches/Safari-Leo-branch/JavaScriptCore/Info.plist
Versioning to 521.1
- 9:30 AM Changeset in webkit [11054] by
-
- 2 edits in trunk/JavaScriptCore
Reviewed by Tim Hatcher.
- kxmlcore/HashSet.h: Fixed case of "hashfunctions.h" -- needs to be "HashFunctions.h".
- 9:02 AM Changeset in webkit [12211] by
-
- 2 edits in trunk/JavaScriptGlue
Reviewed by Darin.
- JavaScriptGlue.xcodeproj/project.pbxproj: Fixed the FRAMEWORK_SEARCH_PATHS to look in the WebKit Frameworks for the Default config.
- 12:07 AM Changeset in webkit [11053] by
-
- 4 edits in branches/Safari-1-3-branch/WebKit
Merged fix from TOT to Safari-1-3-branch
2005-10-07 John Sullivan <sullivan@apple.com>
Reviewed by Tim Omernick.
WebKit support for allowing clients to know which frame originated a particular JavaScript alert/dialog.
- WebView.subproj/WebUIDelegatePrivate.h: New optional delegate methods for the three JavaScript alert/dialogs. These are just like the existing ones in WebUIDelegate.h except that each adds a parameter specifying the frame that the JavaScript was running in. Eventually we'll deprecate the old three methods in favor of these in the public API.
- WebCoreSupport.subproj/WebBridge.m: (-[WebBridge runJavaScriptAlertPanelWithMessage:]): Call version of the delegate method that has the frame parameter if the delegate supports it. (-[WebBridge runJavaScriptConfirmPanelWithMessage:]): ditto (-[WebBridge runJavaScriptTextInputPanelWithPrompt:defaultText:returningText:]): ditto
- WebView.subproj/WebDefaultUIDelegate.m: (-[WebDefaultUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]): Now implements the new version of the delegate method that includes the frame parameter. (Still doesn't do anything though.) (-[WebDefaultUIDelegate webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:]): Now implements the new version of the delegate method that includes the frame parameter. (Still doesn't do anything though.) (-[WebDefaultUIDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:]): Now implements the new version of the delegate method that includes the frame parameter. Doesn't actually use the frame parameter here yet though.