Timeline
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):