vicki [Mon, 7 Mar 2005 23:17:20 +0000 (23:17 +0000)]
Safari-403 stamp
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8809
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Mon, 7 Mar 2005 22:04:17 +0000 (22:04 +0000)]
Reviewed by Vicki
Fix for this bug:
<rdar://problem/
4040136> Expose SPI for WebCore's functions to create document fragments from plain text and markup strings
* kwq/DOMHTML.mm: Add two new SPI functions.
(-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:])
(-[DOMHTMLDocument _createDocumentFragmentWithText:])
* kwq/DOMPrivate.h: Declare the new SPI here, a privately-exported header, so Mail can make use of it.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8807
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Mon, 7 Mar 2005 21:18:59 +0000 (21:18 +0000)]
Reviewed by John
Fix for this bug:
<rdar://problem/
4039676> REGRESSION (Mail): in reply, <cr> on pasted text (without trailing newline) is eaten when pasted above date
* khtml/editing/htmlediting.cpp:
(khtml::ReplaceSelectionCommand::doApply): Code to "eat" a <br> element, that was creating an otherwise empty line, was running
when it should not. If the content being pasted in does not end in a "logical" newline itself, then the <br> already
in the content needs to be preserved. A simple one-line change now sees to this.
* layout-tests/editing/pasteboard/paste-text-010-expected.txt: This test now has an extra, but harmless,
<br> at the end of a paragraph. This makes sense given the code change.
New test:
* layout-tests/editing/pasteboard/paste-text-018-expected.txt: Added.
* layout-tests/editing/pasteboard/paste-text-018.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8806
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Mon, 7 Mar 2005 16:19:15 +0000 (16:19 +0000)]
Reviewed by John
Fix for this bug:
<rdar://problem/
4035648> REGRESSION (Mail): line feed in source HTML file causes bad copy/paste behavior
The createMarkup() function in markup.cpp iterates over the nodes in a range,
and does some bookkeeping to figure out when to add close tags to the markup.
Some code added at the start of the loop to prevent markup from being written
for unrendered nodes short-circuited the rest of the loop, and so prevented
the close-tag-writing code from running when it should.
This is why the "plain" text wound up inside of the bold tag in the example
above. The addition of the unrendered return character caused an incorrect
delay in the close tag for the bold element from being written out, with the
result being that it wound up including additional content.
The fix is to add checks for node renderers throughout the loop at the points
where markup is written out for each node. This allows the additional close
tag logic to run as needed.
All layout tests pass with this change.
* khtml/editing/markup.cpp:
(khtml::createMarkup)
New test:
* layout-tests/editing/pasteboard/paste-
4035648-fix-expected.txt: Added.
* layout-tests/editing/pasteboard/paste-
4035648-fix.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8805
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Mon, 7 Mar 2005 03:46:44 +0000 (03:46 +0000)]
- fixed obvious mistake in IDN script code (luckily it hasn't been in a submission yet!)
* Misc.subproj/WebNSURLExtras.m: (readIDNScriptWhiteListFile): Use "index" to index into the array,
not "script", which is the script number, not the 32-bit-word index.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8803
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kali [Sun, 6 Mar 2005 22:33:02 +0000 (22:33 +0000)]
- fixed text box search code for caret rect to properly account for BIDI text (
4038674)
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8802
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kali [Sun, 6 Mar 2005 08:03:56 +0000 (08:03 +0000)]
- fixed problem with searching for BIDI text boxes (
3587609)
- fixed missing initalizer of RTL flag in WebCoreStyle
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8801
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kdecker [Sun, 6 Mar 2005 03:36:59 +0000 (03:36 +0000)]
Reviewed by Darin.
Fixed: <rdar://problem/
4038529> Infinite progress bar loading webcams and other sites that use multipart/x-mixed-replace
The previous patch I landed prevented us from loading multipart/x-mixed-replace but did not always update the progress bar accordingly.
This stops websites from having seemingly infinite progress in the browser UI.
* WebCoreSupport.subproj/WebSubresourceClient.m:
(-[WebSubresourceClient didReceiveResponse:]): If this is "multipart/x-mixed-replace", remove the WebBaseResourceHandleDelegate client from
the datasource's subresource array, otherwise -[WebDataSource isLoading] incorrectly returns YES. Also it's possible at this point in
time we're done loading now (loaded everything else except for the multipart/x-mixed-replace content) so go ahead and check to see if
in fact we're complete.
* WebView.subproj/WebMainResourceClient.m:
(-[WebMainResourceClient connection:didReceiveResponse:]): ditto
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8800
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sullivan [Sun, 6 Mar 2005 01:37:42 +0000 (01:37 +0000)]
Reviewed by Maciej.
- fixed <rdar://problem/
4038417> Mail crashed in StyleChange::checkForLegacyHTMLStyleChange
when composing a reply
* khtml/editing/htmlediting.cpp:
(khtml::StyleChange::checkForLegacyHTMLStyleChange):
Added missing nil check.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8799
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rjw [Sat, 5 Mar 2005 23:35:03 +0000 (23:35 +0000)]
Fixed panther build problem. Shouldn't include
changes for
3968753 on panther.
Reviewed by John.
* WebView.subproj/WebView.m:
(-[WebView _commonInitializationWithFrameName:groupName:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8798
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Sat, 5 Mar 2005 23:20:51 +0000 (23:20 +0000)]
Reviewed by Don.
- fixed <rdar://problem/
4038478> Crash in renderer viewing RSS feed at feed://wvs.topleftpixel.com/index.rdf
* khtml/xml/dom_docimpl.cpp: (widgetForNode): Check for nil before going from node to renderer.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8797
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Sat, 5 Mar 2005 23:08:46 +0000 (23:08 +0000)]
Reviewed by Richard.
- fixed <rdar://problem/
4037700> Every character typed causes stat call for /usr/share/icu/icudt32b_char.brk
* khtml/rendering/render_text.cpp:
(getCharacterBreakIterator): Added. Helper that sets up an iterator for the passed-in text.
Shares a single global iterator (fast, albeit not thread-safe).
(RenderText::previousOffset): Changed to call getCharacterBreakIterator.
(RenderText::nextOffset): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8796
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Sat, 5 Mar 2005 22:40:17 +0000 (22:40 +0000)]
Reviewed by Darin
Fix for this bug:
<rdar://problem/
4038267> REGRESSION (Mail): Crash copying and pasting end of paragraph
Code to handle content that has a "logical" newline at the end of the pasted content, and the code
to adjust the selection at the end of the paste operation made an assumption that at least one
node had been inserted by the paste command. This is not necessarily true in the case where the sole content
in the pasted content is one of these "logical" newlines. Adjust some code around so that we don't deref
null, but still adjust the selection correctly for this case. In each of the two functions below, some
null checks have been added, and some code has been rearranged a little bit to continue on through
the end of completeHTMLReplacement, even if no nodes have been inserted. The patch looks bigger and more
complicated than the conceptual change.
* khtml/editing/htmlediting.cpp:
(khtml::ReplaceSelectionCommand::doApply)
(khtml::ReplaceSelectionCommand::completeHTMLReplacement)
* layout-tests/editing/pasteboard/paste-
4038267-fix-expected.txt: Added.
* layout-tests/editing/pasteboard/paste-
4038267-fix.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8795
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Sat, 5 Mar 2005 19:20:29 +0000 (19:20 +0000)]
Reviewed by John.
- fixed <rdar://problem/
4025918> images copied from Safari with relative src URLs aren't pasted into Mail messages (KURL resolves base URLs incorrectly)
* kwq/KWQKURL.mm: (KURL::KURL): Add a slash at the start of the path if a relative part is adding
a path onto a URL that has "pre-path" bits like host name, but no path yet. This doesn't come up
for http because in that case we add a trailing "/" as part of canonicalization.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8794
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Sat, 5 Mar 2005 19:17:45 +0000 (19:17 +0000)]
Reviewed by John.
- fixed <rdar://problem/
4034603> REGRESSION (185-188): RadarWeb can't send enclosures anymore
* WebView.subproj/WebFormDataStream.m:
(closeCurrentStream): Release currentData when closing the stream.
(advanceCurrentStream): Set up and retain currentData when the current stream is reading that data, so the
data won't be released while in use.
(formCreate): Initialize currentData to NULL.
- fixed <rdar://problem/
4037562> Tiger8A402: Help Viewer crashed when viewing help for iChat (infinite recursion in WebView)
* WebView.subproj/WebView.m: (-[WebView _responderValidateUserInterfaceItem:]):
Check for the case where we ourselves are the responder. This avoids an infinite loop.
The actual code to perform operations avoids this with a global variable, but this lighter weight
solution is sufficient here because validate operations don't call through to the next responder.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8793
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sullivan [Sat, 5 Mar 2005 15:39:05 +0000 (15:39 +0000)]
Rolled out a couple of assertion-related changes I accidentally checked in.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8792
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kali [Sat, 5 Mar 2005 03:15:55 +0000 (03:15 +0000)]
- forgot to check this in for the previous fix
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8791
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sullivan [Sat, 5 Mar 2005 01:50:56 +0000 (01:50 +0000)]
Reviewed by Kevin.
- fixed <rdar://problem/
4033705> REGRESSION (Mail): Copy/Paste from Excel
crashes Mail in KWQKHTMLPart::fontForSelection(bool*) const + 232
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::fontForSelection):
Check for nil startNode, not just nil renderer.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8790
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rjw [Sat, 5 Mar 2005 01:33:58 +0000 (01:33 +0000)]
Fixed <rdar://problem/
3968753> REGRESSION: Poor performance with differing multiple animated GIFs (was fast in Panther)
Disable coalesced updates (in CG). This restores the
panther behavior.
Reviewed by David Harrison.
* WebView.subproj/WebView.m:
(-[WebView _commonInitializationWithFrameName:groupName:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8789
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
adele [Sat, 5 Mar 2005 01:28:39 +0000 (01:28 +0000)]
Reviewed by Darin.
* English.lproj/StringsNotToBeLocalized.txt: added new strings "text/x-vcf" and "text/x-csv" to the list
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8788
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
harrison [Sat, 5 Mar 2005 01:17:36 +0000 (01:17 +0000)]
Reviewed by Ken, Richard.
<rdar://problem/
3996383> REGRESSION (Mail): Deleting all of first line also deletes line ending
Problem was the placeholder check was based on 0 height block, but the block in this
case is the BODY, which has other content even though the paragraph is gone.
* khtml/editing/htmlediting.cpp:
(khtml::CompositeEditCommand::insertBlockPlaceholder):
Now does insert instead of append!
(khtml::CompositeEditCommand::appendBlockPlaceholder):
New. Actually does append.
(khtml::CompositeEditCommand::addBlockPlaceholderIfNeeded):
Renamed from insertBlockPlaceholderIfNeeded because it can insert or append. Also accepts "force insert" flag.
(khtml::CompositeEditCommand::removeBlockPlaceholder):
Renamed for succinctness from removeBlockPlaceholderIfNeeded.
(khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
(khtml::DeleteSelectionCommand::moveNodesAfterNode):
Use renamed methods.
(khtml::DeleteSelectionCommand::doApply):
Use addBlockPlaceholderIfNeeded "force insert" flag if deleting whole paragraphs did not leave an empty one.
(khtml::InsertParagraphSeparatorCommand::doApply):
(khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
(khtml::InsertTextCommand::input):
Use renamed methods.
* khtml/editing/htmlediting.h:
Renamed and new methods per above.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8787
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cblu [Sat, 5 Mar 2005 01:02:46 +0000 (01:02 +0000)]
Fixed: <rdar://problem/
4032840> REGRESSION (Mail): crash in RemoveNodeCommand after pasting attachment at end of message
Reviewed by darin.
* khtml/editing/visible_units.cpp:
(khtml::endOfParagraph): don't consider text nodes that have no rendered characters
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8786
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
adele [Sat, 5 Mar 2005 00:02:53 +0000 (00:02 +0000)]
Reviewed by Chris.
Fix for <rdar://problem/
4032982> Sun iPlanet app: not able to import AddressBook CSV format addresses properly
Fix for <rdar://problem/
4032985> Sun iPlanet app: not able to import vCard format addresses properly
* WebView.subproj/WebTextView.m:
(+[WebTextView unsupportedTextMIMETypes]): added "text/x-csv" and "text/x-vcf" to the list of MIME types that our text view doesn't handle
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8785
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rjw [Fri, 4 Mar 2005 23:59:10 +0000 (23:59 +0000)]
Fixed <rdar://problem/
4034764> REGRESSION(125-188)Viewing text/plain page and going back/forward corrupts HTML pages (google.com)
The parse mode wasn't be restored to the document when going
back.
Reviewed by Hyatt.
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::openURLFromPageCache):
* kwq/KWQPageState.h:
* kwq/KWQPageState.mm:
(-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8784
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Fri, 4 Mar 2005 22:47:23 +0000 (22:47 +0000)]
Reviewed by me
* layout-tests/editing/style/create-block-for-style-012-expected.txt: Shame on me!
I landed my last fix without running layout tests. This one changes in a subtle, but
acceptable way.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8782
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Fri, 4 Mar 2005 22:32:15 +0000 (22:32 +0000)]
Reviewed by Harrison
Fix for this bug:
<rdar://problem/
4032543> REGRESSION (Mail): Mail hangs when quoted text is pasted twice
This code change fixes the bug in a non-obvious way. The root cause of the problem was
that a VisiblePosition created using an affinity originating in Mail code caused
two VisiblePosition objects that should have been equal to differ only in their
affinities, which in turn caused us to run a code path that should not have run.
* khtml/editing/visible_position.cpp:
(khtml::VisiblePosition::VisiblePosition): Added copy constructor.
(khtml::VisiblePosition::next): Factored out inline code that used to be here into new
setAffinityUsingLinePosition() function.
(khtml::isEqualIgnoringAffinity): New helper to handle cases when affinity in equality check does
not matter. However, we want to know about such cases where a VisiblePosition differs only by affinity,
and the code will assert in development when this happens.
(khtml::isNotEqualIgnoringAffinity): Ditto, but not. :)
(khtml::setAffinityUsingLinePosition): New helper function mentioned above. This will "correct"
upstream affinity to downstream if the affinity does not make a difference for the position.
* khtml/editing/visible_position.h:
* khtml/editing/visible_range.h: Wacky bug. The operator== for this class took VisiblePosition classes!
* khtml/editing/visible_units.cpp:
(khtml::isStartOfParagraph): Now performs equality check without regard to affinity.
(khtml::isEndOfParagraph): Ditto.
(khtml::isStartOfBlock): Ditto.
(khtml::isEndOfBlock): Ditto.
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge setSelectedDOMRange:affinity:]): Adjusts the affinity using setAffinityUsingLinePosition()
if necessary.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8781
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Fri, 4 Mar 2005 22:24:18 +0000 (22:24 +0000)]
WebCore:
Reviewed by John.
- fixed <rdar://problem/
4036817> REGRESSION: ctrl-y broken when a line + carriage return cut
* khtml/editing/htmlediting.h: Added insertTextRunWithoutNewlines.
* khtml/editing/htmlediting.cpp:
(khtml::InsertTextCommand::input): Added assertion to make sure strings with newlines don't get
down to this level.
(khtml::TypingCommand::insertText): Added. Takes the name of the old function, but is a new
level that breaks runs into lines and inserts each one separately.
(khtml::TypingCommand::insertTextRunWithoutNewlines): Renamed old insertText to this.
* khtml/dom/dom_string.h: Made substring be a const member function.
* khtml/dom/dom_string.cpp: (DOM::DOMString::substring): Made this const.
WebKit:
Reviewed by John.
- fixed <rdar://problem/
4036817> REGRESSION: ctrl-y broken when a line + carriage return cut
* WebView.subproj/WebHTMLView.m:
(-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]): Merged _handleKillRing behavior
into this function, since there's now a more-complicated way the startNewKillRingSequence boolean needs to
be handled. Set the startNewKillRingSequence boolean after the entire process so changing the selection before
and during the editing dosn't clear it. Also change "isTypingAction" parameter to "deletionAction" so we can
handle forward delete with this method.
(-[WebHTMLView _deleteSelection]): Pass deleteSelectionAction for action rather than NO for isTypingAction,
which is the way to say the same thing using the new parameter.
(-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Refactor to use the _deleteRange
method above. Also calls _shouldDeleteRange: for the pre-existing selection case; not doing that before was
a bug.
(-[WebHTMLView deleteToMark:]): Pass deleteSelectionAction for action rather than NO for isTypingAction,
which is the way to say the same thing using the new parameter.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8780
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Fri, 4 Mar 2005 19:37:56 +0000 (19:37 +0000)]
WebCore:
Reviewed by John.
- fixed <rdar://problem/
4020413> REGRESSION (Mail): can't use fonts with names that start with "#" in Mail (Korean fonts)
* khtml/css/css_valueimpl.cpp:
(DOM::isLegalIdentifier): Added. Commented out and not used.
(DOM::quoteStringIfNeeded): Quotes the string if needed. For now only if it starts with "#".
(DOM::CSSPrimitiveValueImpl::cssText): Call quoteStringIfNeeded when asked for cssText for an arbitrary string, since we
need text you can re-parse.
(DOM::FontFamilyValueImpl::cssText): Ditto.
* khtml/editing/markup.cpp:
(khtml::startMarkup): Added comments about lack of quoting for attributes.
(khtml::createMarkup): Ditto.
WebKit:
Reviewed by John.
- fixed <rdar://problem/
4020413> REGRESSION (Mail): can't use fonts with names that start with "#" in Mail (Korean fonts)
* WebView.subproj/WebHTMLView.m:
(-[WebHTMLView _styleFromFontAttributes:]): Quote font name when calling setFontFamily.
(-[WebHTMLView _addToStyle:fontA:fontB:]): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8779
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
adele [Fri, 4 Mar 2005 19:16:31 +0000 (19:16 +0000)]
Reviewed by Maciej
Fix for <rdar://problem/
4021711> REGRESSION(125-188) blank pages when browsing forum at cooperativeresearch.org - cached external script problem
* khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::scriptHandler): set flag needToRefCachedScript so we can make sure
notifyFinished is called after pendingSrc is set up with the right data from the cached script
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8778
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Fri, 4 Mar 2005 17:54:28 +0000 (17:54 +0000)]
Reviewed by John.
- fixed <rdar://problem/
3965666> IDN spoofing vulnerability caused by Unicode characters that look like ASCII characters
* Misc.subproj/WebNSURLExtras.m:
(readIDNScriptWhiteListFile): Added. Reads file and parses script names.
(readIDNScriptWhiteList): Added. Calls readIDNScriptWhiteList on each of the white list locations in succession.
(allCharactersInIDNScriptWhiteList): Renamed from containsPossibleLatinLookalikes and changed sense.
Now calls readIDNScriptWhiteList first time, and then uses the read-in list to check the scripts.
(-[NSString _web_mapHostNameWithRange:encode:makeString:]): Call allCharactersInIDNScriptWhiteList instead of
containsPossibleLatinLookalikes.
* Resources/IDNScriptWhiteList.txt: Added.
* WebKit.pbproj/project.pbxproj: Added IDNScriptWhiteList.txt file.
* Misc.subproj/WebKitLocalizableStrings.m: Removed. This is simply unused.
* English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8776
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Fri, 4 Mar 2005 17:37:26 +0000 (17:37 +0000)]
Reviewed by John.
- fixed <rdar://problem/
3937667> REGRESSION (Mail): Zooming a window from titlebar button doesn't paint newly-exposed portions of window
* WebView.subproj/WebHTMLView.m: (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
Re-set-up the visRect if the bounds changes due to layout.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8775
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Fri, 4 Mar 2005 17:18:27 +0000 (17:18 +0000)]
Reviewed by John
Fix for this bug:
<rdar://problem/
4029632> Tiger 8A398:- Mail crashes in DOM::NodeImpl::isBlockFlow() after pasting text with alignment style and BR element from Safari
* khtml/editing/htmlediting.cpp:
(khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): VisiblePosition constructor
was failing to yield a position for a node just pasted into the document since a layout was needed
for the calculation to come out right. Layout added. Crash gone.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8774
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kali [Fri, 4 Mar 2005 08:58:20 +0000 (08:58 +0000)]
- made RenderText::caretRect handle BIDI text correctly in its calculations (
3587614)
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8773
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vicki [Fri, 4 Mar 2005 07:45:05 +0000 (07:45 +0000)]
versioning for TOT, Safari 2.0 (v402+). The tree is open.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8772
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vicki [Fri, 4 Mar 2005 07:38:08 +0000 (07:38 +0000)]
versioning for SUPanWheat, Safari 1.3 (v302)
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8770
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vicki [Fri, 4 Mar 2005 07:29:43 +0000 (07:29 +0000)]
Safari-402 stamp
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8768
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cblu [Fri, 4 Mar 2005 01:22:40 +0000 (01:22 +0000)]
Fixed: <rdar://problem/
3992803> Cannot navigate through list items with the keyboard, you're stuck in the same <li> block unless you click out
Reviewed by harrison.
* khtml/rendering/render_line.cpp:
(khtml::RootInlineBox::closestLeafChildForXPos): avoid returning list markers when possible. Also improved heuristic for returning the best InlineBox given the passed X position.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8767
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jens [Fri, 4 Mar 2005 00:05:43 +0000 (00:05 +0000)]
<rdar://problem/
3991818> REGRESSION: Images scale while loading
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8766
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hyatt [Thu, 3 Mar 2005 23:54:13 +0000 (23:54 +0000)]
Fix for
3841186, scrollbar shows up disabled when it should not appear at all. Make sure updateScrollers
is never allowed to be re-entrant from any call point by moving the guard inside the function itself.
Reviewed by John Sullivan
* WebView.subproj/WebDynamicScrollBarsView.m:
(-[WebDynamicScrollBarsView updateScrollers]):
(-[WebDynamicScrollBarsView reflectScrolledClipView:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8765
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Thu, 3 Mar 2005 23:08:16 +0000 (23:08 +0000)]
Reviewed by John
Fix for this bug:
<rdar://problem/
4035198> Pasting text with different styles does not get reproducible results
I had a good idea yesterday to improve the way we "fixup" styles after
pasting, but i chose a poor data structure to do it, a map of
nodes-to-styles. In the fixup step, I iterated over the map elements and
did the fixup. However, since the order in which the items would come
out of the map is indeterminate, we got unpredictable results.
So, the concept was good, but the implementation was flawed. I have
fixed this mapping to be a list instead, so the order that nodes are
evaluated in the fixup step is document order. This works nicely.
* khtml/editing/htmlediting.cpp:
(khtml::ReplacementFragment::~ReplacementFragment): No longer need to explicity deref nodes and
styles saved away for later fixup. This is now handled by the new NodeDesiredStyle class.
(khtml::ReplacementFragment::computeStylesUsingTestRendering): Now calls computeAndStoreNodeDesiredStyle,
function renamed from mapDesiredStyleForNode.
Now accepts a QValueList<NodeDesiredStyle> in place of the old map.
(khtml::NodeDesiredStyle::NodeDesiredStyle): New class that represents a node-to-style mapping.
(khtml::NodeDesiredStyle::~NodeDesiredStyle): Ditto.
(khtml::NodeDesiredStyle::operator=): Ditto.
(khtml::ReplaceSelectionCommand::doApply): Now calls computeAndStoreNodeDesiredStyle,
function renamed from mapDesiredStyleForNode.
(khtml::ReplaceSelectionCommand::fixupNodeStyles): Now operates on a QValueList<NodeDesiredStyle> in
place of the old map.
(khtml::computeAndStoreNodeDesiredStyle): Renamed from mapDesiredStyleForNode. Now operates on a
QValueList<NodeDesiredStyle> in place of the old map.
* khtml/editing/htmlediting.h:
(khtml::NodeDesiredStyle): New class that represents a node-to-style mapping.
(khtml::ReplacementFragment::desiredStyles): Now returns a QValueList<NodeDesiredStyle> in place of the old map.
* layout-tests/editing/style/typing-style-003-expected.txt: Results changed in an acceptable way.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8764
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cblu [Thu, 3 Mar 2005 01:13:06 +0000 (01:13 +0000)]
Fixed: <rdar://problem/
4029010> Expose method to retrieve drag image for WebView's selection
Reviewed by sullivan.
* WebView.subproj/WebHTMLView.m:
(-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): call _selectionDraggingImage
(-[WebHTMLView _selectionDraggingImage]): new SPI for Mail, factored from previous method
(-[WebHTMLView _selectionDraggingRect]): new SPI for Mail
* WebView.subproj/WebHTMLViewPrivate.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8763
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Thu, 3 Mar 2005 01:12:05 +0000 (01:12 +0000)]
Reviewed by Maciej.
- fixed <rdar://problem/
4029741> REGRESSION (188-189): <input type=text> are cleared when you hide/show them
* khtml/html/html_formimpl.h: Added detach functions for both input and text area elements, since
both have m_valueMatchesRenderer flags.
* khtml/html/html_formimpl.cpp:
(DOM::HTMLInputElementImpl::detach): Set m_valueMatchesRenderer to false, since the renderer is going away.
(DOM::HTMLTextAreaElementImpl::detach): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8762
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Thu, 3 Mar 2005 01:00:56 +0000 (01:00 +0000)]
Reviewed by Hyatt
Fix for this bug:
<rdar://problem/
4006151> in reply, caret moves to next line after toggling bold style then typing
* khtml/editing/htmlediting.cpp:
(khtml::ApplyStyleCommand::applyInlineStyle): Defer cleaning up empty style until the end of the
function. In some situations, the render tree can get confused when we do this removal up front.
I wish I understood the reasons more deeply, but this bit of code shuffling seems harmless, and
fixes the bug.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8761
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Thu, 3 Mar 2005 00:59:38 +0000 (00:59 +0000)]
Roll out two files I just checked in by accident.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8760
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Thu, 3 Mar 2005 00:58:35 +0000 (00:58 +0000)]
Reviewed by Maciej.
- fixed <rdar://problem/
4024966> crash happened twice in [KWQTextField setHasFocus:] + 0xe8
Added more nil checks to the widget implementations. Anywhere a widget pointer is used, do a nil check,
rather than relying on high level assumptions about which calls can and can't destroy the HTML element
(and hence the widget). The case in the bug seems to be a case where scrolling destroyed the element.
We can't be sure this fixes the bug, but we can be relatively sure we didn't introduce any new problems,
because this just avoids nil-dereferencing.
* kwq/KWQButton.mm:
(-[KWQButton becomeFirstResponder]):
(-[KWQButton nextKeyView]):
(-[KWQButton previousKeyView]):
* kwq/KWQListBox.mm:
(-[KWQTableView mouseDown:]):
(-[KWQTableView becomeFirstResponder]):
(-[KWQTableView numberOfRowsInTableView:]):
(-[KWQTableView tableViewSelectionDidChange:]):
(-[KWQTableView tableView:shouldSelectRow:]):
(-[KWQTableView selectionShouldChangeInTableView:]):
* kwq/KWQScrollBar.mm:
(-[KWQScrollBar scroll:]):
* kwq/KWQSlider.mm:
(-[KWQSlider mouseDown:]):
(-[KWQSlider slide:]):
(-[KWQSlider becomeFirstResponder]):
(-[KWQSlider nextKeyView]):
(-[KWQSlider previousKeyView]):
* kwq/KWQTextArea.mm:
(-[KWQTextAreaTextView becomeFirstResponder]):
(-[KWQTextAreaTextView resignFirstResponder]):
(-[KWQTextAreaTextView mouseDown:]):
* kwq/KWQTextField.mm:
(-[KWQTextFieldController action:]):
(-[KWQTextFieldController controlTextDidEndEditing:]):
(-[KWQTextFieldController controlTextDidChange:]):
(-[KWQTextFieldController textView:didHandleEvent:]):
(-[KWQTextFieldController setHasFocus:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8759
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rjw [Thu, 3 Mar 2005 00:38:24 +0000 (00:38 +0000)]
Fixed <rdar://problem/
4031483> Leak (RenderObject::createInlineBox) reproducible with Stock widget
We were leaking inline block line boxes. Argh!
Reviewed by Hyatt.
* khtml/rendering/render_flow.cpp:
(RenderFlow::dirtyLineBoxes):
* khtml/rendering/render_line.cpp:
(khtml::InlineBox::deleteLine):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8758
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cblu [Thu, 3 Mar 2005 00:31:22 +0000 (00:31 +0000)]
Fixed: <rdar://problem/
3976872> REGRESSION (Mail): Pasted plain text doesn't get the proper style if pasted into newlines
Reviewed by kocienda.
* khtml/editing/htmlediting.cpp:
(khtml::EditCommand::styleAtPosition): new, factored out from calculateStyleBeforeInsertion
(khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): call styleAtPosition
(khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): clear new m_insertionStyle ivar
(khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand): deref new m_insertionStyle ivar
(khtml::ReplaceSelectionCommand::doApply): store the style so it later be applied when matching style
(khtml::ReplaceSelectionCommand::completeHTMLReplacement): apply style from m_insertionStyle when matching style
* khtml/editing/htmlediting.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8757
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs [Thu, 3 Mar 2005 00:30:32 +0000 (00:30 +0000)]
Reviewed by Darin.
<rdar://problem/
4031718> REGRESSION (401-401+): Safari reproducible crash setting up scope in JSLazyEventListener::parseCode authenticating to bugweb
* khtml/ecma/kjs_events.cpp:
(JSLazyEventListener::parseCode): If originalNode is NULL, don't
mess with the scope chain.
* khtml/html/html_baseimpl.cpp:
(HTMLBodyElementImpl::parseHTMLAttribute): For handlers that are
delcared on body but set on the document, pass NULL to avoid
swizzling the scope chain. It turns out that this is what browsers
do, and it finesses the crash.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8756
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sullivan [Thu, 3 Mar 2005 00:10:41 +0000 (00:10 +0000)]
Reviewed by Adele.
- fixed <rdar://problem/
4023337> Safari stops loading any page (-[NSCFDictionary setObject:forKey:]:
attempt to insert nil key)
It is very likely that the exception being hit is caused by the same problem as WebFoundation
bug
4018486. This change makes the code robust against this kind of problem regardless.
* WebView.subproj/WebBaseResourceHandleDelegate.m:
(-[WebBaseResourceHandleDelegate saveResource]):
Don't call addSubresource if newly-created resource is nil (but do assert on debug builds).
Also assert that originalURL and MIMEType are not nil.
* WebView.subproj/WebDataSource.m:
(-[WebDataSource addSubresource:]):
Don't add nil subresource to dictionary, but do assert on debug builds.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8755
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
harrison [Wed, 2 Mar 2005 22:59:29 +0000 (22:59 +0000)]
Reviewed by Ken.
<rdar://problem/
3948453> Can't type accented chars as first character in Stickies widget
* khtml/editing/htmlediting.cpp:
(khtml::ReplaceSelectionCommand::doApply):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8754
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rjw [Wed, 2 Mar 2005 22:05:49 +0000 (22:05 +0000)]
Fixed comment in ChangeLog.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8753
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Wed, 2 Mar 2005 20:58:48 +0000 (20:58 +0000)]
Reviewed by John
Fix for this bug:
<rdar://problem/
4020574> REGRESSION (Mail): copy/paste first part of reply-quoted text alters downstream style
The problem was that the operation to move nodes following the newly-pasted nodes did not preserve the
style of these moved nodes. I have generalized some of the functions that compute and preserve styles
for nodes and then apply these styles after a DOM operation.
* khtml/editing/htmlediting.cpp:
(khtml::ReplacementFragment::~ReplacementFragment): Call new derefNodesAndStylesInMap() helper function
in place of old code that had this deref'ing inline.
(khtml::ReplacementFragment::computeStylesUsingTestRendering): Now calls new mapDesiredStyleForNode() helper
function place of old code that had this style computation inline.
(khtml::ReplacementFragment::removeStyleNodes): Updated comment for new helper name.
(khtml::ReplaceSelectionCommand::doApply): Now calls new helpers in place of helpers whose names were changed,
or in place of pre-refactored inline code.
(khtml::ReplaceSelectionCommand::fixupNodeStyles): Renamed from applyStyleToInsertedNodes(). Now generalized
to take the map of nodes to use for the fixup. This makes it possible to call this code with different maps,
and that is needed to fix the bug.
(khtml::mapDesiredStyleForNode): New helper function to compute the inheritable styles for a given node
and map this style to the given node in the given map. This function now also includes the code that was
in the removeBlockquoteColorsIfNeeded(). This latter helper has now been removed.
(khtml::derefNodesAndStylesInMap): Simple helper to deref map members.
* khtml/editing/htmlediting.h:
(khtml::ReplacementFragment::desiredStyles): New helper to return map of nodes-to-desiredStyles.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8752
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vicki [Wed, 2 Mar 2005 19:52:00 +0000 (19:52 +0000)]
move changes for rdar://problem/
4003774 and rdar://problem/
3990258 above the Safari-401 release marker -- neither of these changes are included in Safari-401
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8751
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Wed, 2 Mar 2005 17:12:49 +0000 (17:12 +0000)]
Reviewed by Hyatt
Fix for this bug:
<rdar://problem/
4011358> REGRESSION(Mail): after dragging text to mail message and deleting, typing or dragging new text doesn't work
* khtml/editing/visible_position.cpp:
(khtml::VisiblePosition::isCandidate): Insertion point disappearing was due to a failed
check here after deleting all the content in the body element. The special "empty block"
needs to add check for DOM children. A block may have straggling anonymous render children in
some cases, and so the check needs to be (!DOM-kids || !render-kids).
Also, I botched the last checkin trying to split these two patches in my tree. Wrong layout tests
got checked in, I checked in a conflict marker in the Changelog, etc. I fixed everything with this checkin.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8750
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Wed, 2 Mar 2005 17:08:53 +0000 (17:08 +0000)]
Reviewed by Hyatt
Fix for this bug:
<rdar://problem/
4011358> REGRESSION(Mail): after dragging text to mail message and deleting, typing or dragging new text doesn't work
* khtml/editing/visible_position.cpp:
(khtml::VisiblePosition::isCandidate): Insertion point disappearing was due to a failed
check here after deleting all the content in the body element. The special "empty block"
needs to add check for DOM children. A block may have straggling anonymous render children in
some cases, and so the check needs to be (!DOM-kids || !render-kids).
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8749
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Wed, 2 Mar 2005 17:04:57 +0000 (17:04 +0000)]
2005-03-01 Ken Kocienda <kocienda@apple.com>
Reviewed by Maciej
Improved fix for this bug:
<rdar://problem/
3996605> Insert paragraph command puts new block in wrong place, creating difficult-to-handle HTML
Maciej and I discussed this situation at length, and we came up with a better fix than I did earlier.
* khtml/editing/htmlediting.cpp:
(khtml::InsertParagraphSeparatorCommand::doApply): Simplify one special case so that it only handles the
"last in block" situation. Remove special case for "downstream node is in different block" and handle
this case with a little bit of special code in the general insertion case.
Results studied to make sure there were no problems.
* layout-tests/editing/deleting/delete-
3959464-fix-expected.txt
* layout-tests/editing/inserting/insert-div-001-expected.txt
* layout-tests/editing/inserting/insert-div-002-expected.txt
* layout-tests/editing/inserting/insert-div-004-expected.txt
* layout-tests/editing/inserting/insert-div-005-expected.txt
* layout-tests/editing/inserting/insert-div-009-expected.txt
* layout-tests/editing/inserting/insert-div-014-expected.txt
* layout-tests/editing/inserting/insert-div-018-expected.txt
* layout-tests/editing/inserting/insert-div-024-expected.txt
* layout-tests/editing/pasteboard/paste-text-011-expected.txt
* layout-tests/editing/pasteboard/paste-text-013-expected.txt
* layout-tests/editing/pasteboard/paste-text-015-expected.txt
* layout-tests/editing/style/block-style-004-expected.txt
* layout-tests/editing/style/block-style-005-expected.txt
* layout-tests/editing/style/block-style-006-expected.txt
New test:
* layout-tests/editing/inserting/insert-div-027.html
* layout-tests/editing/inserting/insert-div-027-expected.txt
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8748
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hyatt [Wed, 2 Mar 2005 04:33:50 +0000 (04:33 +0000)]
Fix for
4030890, regression with <sup> on Google. Fix some bogus != comparison checks in verticalPositionHint.
Reviewed by John
(RenderObject::getVerticalPosition):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8747
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cblu [Wed, 2 Mar 2005 03:38:43 +0000 (03:38 +0000)]
Fixed: <rdar://problem/
4030669> smart delete does not delete spaces from pasted content
Reviewed by rjw.
* khtml/editing/htmlediting.cpp:
(khtml::DeleteSelectionCommand::initializePositionData): pass true for treatNBSPAsWhiteSpace to leadingWhitespacePosition and trailingWhitespacePosition when testing whether or not we have to delete those characters as well.
* khtml/editing/jsediting.cpp: pass true for smartDelete when the selection granularity is WORD. This allows us to write smart delete layout tests.
* layout-tests/editing/deleting/smart-delete-001-expected.txt: Added.
* layout-tests/editing/deleting/smart-delete-001.html: Added.
* layout-tests/editing/deleting/smart-delete-002-expected.txt: Added.
* layout-tests/editing/deleting/smart-delete-002.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8746
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rjw [Wed, 2 Mar 2005 02:17:59 +0000 (02:17 +0000)]
Fixed <rdar://problem/
4027928> Tiger_8A394:Acrobat crashes while tried to remove the subscription errors by clicking on "Would you like to remove the subscription" from Tracker details view pane
The string objects created by KWQHeaderStringFromDictionary() leaked.
Reviewed by John Louch.
* kwq/KWQLoader.mm:
(KWQHeaderStringFromDictionary):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8745
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jens [Wed, 2 Mar 2005 01:38:17 +0000 (01:38 +0000)]
<rdar://problem/
4004531> Simple Sun Signed Applet throws exceptions; doesn't run
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8744
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rjw [Wed, 2 Mar 2005 01:21:49 +0000 (01:21 +0000)]
Re-checkin after previously backing out:
Fixed <rdar://problem/
3990258> REGRESSION (125.12-181): top of picture that spans two pages is cut off on print from Safari
The problem was due to incorrect "object truncation" in RenderFlow::paintLines.
We attempt to push objects down if they don't fit on a page at
paint time. If the attempt to push object down failed we just
didn't paint at all.
Reviewed by Hyatt.
* khtml/rendering/render_flow.cpp:
(RenderFlow::paintLines):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8743
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vicki [Wed, 2 Mar 2005 01:18:02 +0000 (01:18 +0000)]
versioning for TOT, Safari 2.0 (401+) -- the tree is open!
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8742
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vicki [Wed, 2 Mar 2005 01:12:02 +0000 (01:12 +0000)]
versioning for SUPanWheat, Safari 1.3 (v301)
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8740
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vicki [Wed, 2 Mar 2005 01:07:20 +0000 (01:07 +0000)]
Safari-401 stamp
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8737
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cblu [Wed, 2 Mar 2005 01:00:02 +0000 (01:00 +0000)]
Backed out my patch since the tree was closed.
* khtml/editing/htmlediting.cpp:
(khtml::DeleteSelectionCommand::initializePositionData):
* khtml/editing/jsediting.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8736
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rjw [Wed, 2 Mar 2005 00:49:19 +0000 (00:49 +0000)]
Backed out change. Tree is closed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8735
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rjw [Wed, 2 Mar 2005 00:47:48 +0000 (00:47 +0000)]
Fixed <rdar://problem/
3990258> REGRESSION (125.12-181): top of picture that spans two pages is cut off on print from Safari
The problem was due to incorrect "object truncation" in RenderFlow::paintLines.
We attempt to push objects down if they don't fit on a page at
paint time. If the attempt to push object down failed we just
didn't paint at all.
Reviewed by Hyatt.
* khtml/rendering/render_flow.cpp:
(RenderFlow::paintLines):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8734
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cblu [Tue, 1 Mar 2005 23:26:37 +0000 (23:26 +0000)]
Fixed: <rdar://problem/
4030669> smart delete does not delete spaces from pasted content
Reviewed by rjw.
* khtml/editing/htmlediting.cpp:
(khtml::DeleteSelectionCommand::initializePositionData): pass true for treatNBSPAsWhiteSpace to leadingWhitespacePosition and trailingWhitespacePosition when testing whether or not we have to delete those characters as well.
* khtml/editing/jsediting.cpp: pass true for smartDelete when the selection granularity is WORD. This allows us to write smart delete layout tests.
* layout-tests/editing/deleting/smart-delete-001-expected.txt: Added.
* layout-tests/editing/deleting/smart-delete-001.html: Added.
* layout-tests/editing/deleting/smart-delete-002-expected.txt: Added.
* layout-tests/editing/deleting/smart-delete-002.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8733
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Tue, 1 Mar 2005 22:46:08 +0000 (22:46 +0000)]
Reviewed by Vicki
Fix for this bug:
<rdar://problem/
4030068> Trailing <return> gets eaten when pasted at the end of a document
* khtml/editing/htmlediting.cpp:
(khtml::ReplaceSelectionCommand::doApply): Add code to handle formerly-unhandled end-of-document case.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8732
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs [Tue, 1 Mar 2005 22:42:40 +0000 (22:42 +0000)]
Reviewed by Vicki.
<rdar://problem/
4003774> REGRESSION(125-181): JavaScript problems @ Yankee/Dixie quiz
Reworked how scopes are set up for event handlers to match other
browser. This includes the following changes:
- Special scope entries are set up at the time the event handler
is created, not at the time it fires.
- Special scope is only set up for event handlers set in the html
source through an html attribute, not for handlers set using
addEventHandler or setting JS properties like onclick through
JavaScript.
- Special scope is based on the DOM node on which the handler is
an attribute, not the event target.
This fixes the regression while allowing the fix to
<rdar://problem/
3798453> (DIG: getting variable with same name as
DOM element attribute gets attribute value instead) to keep
working correctly.
* khtml/ecma/kjs_events.cpp:
(JSEventListener::handleEvent):
(JSLazyEventListener::JSLazyEventListener):
(JSLazyEventListener::parseCode):
* khtml/ecma/kjs_events.h:
* khtml/ecma/kjs_proxy.cpp:
(KJSProxyImpl::createHTMLEventHandler):
* khtml/ecma/kjs_proxy.h:
* khtml/ecma/kjs_window.cpp:
(Window::getJSLazyEventListener):
* khtml/ecma/kjs_window.h:
* khtml/html/html_baseimpl.cpp:
(HTMLBodyElementImpl::parseHTMLAttribute):
(HTMLFrameElementImpl::parseHTMLAttribute):
(HTMLFrameSetElementImpl::parseHTMLAttribute):
* khtml/html/html_elementimpl.cpp:
(HTMLElementImpl::parseHTMLAttribute):
* khtml/html/html_formimpl.cpp:
(DOM::HTMLFormElementImpl::parseHTMLAttribute):
(DOM::HTMLButtonElementImpl::parseHTMLAttribute):
(DOM::HTMLInputElementImpl::parseHTMLAttribute):
(DOM::HTMLLabelElementImpl::parseHTMLAttribute):
(DOM::HTMLSelectElementImpl::parseHTMLAttribute):
(DOM::HTMLTextAreaElementImpl::parseHTMLAttribute):
* khtml/html/html_imageimpl.cpp:
(HTMLImageElementImpl::parseHTMLAttribute):
* khtml/html/html_objectimpl.cpp:
(HTMLObjectElementImpl::parseHTMLAttribute):
* khtml/khtml_part.cpp:
(KHTMLPart::createHTMLEventListener):
* khtml/khtml_part.h:
* khtml/xml/dom_docimpl.cpp:
(DocumentImpl::createHTMLEventListener):
* khtml/xml/dom_docimpl.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8731
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sullivan [Tue, 1 Mar 2005 22:27:42 +0000 (22:27 +0000)]
Reviewed by Darin.
- fixed <rdar://problem/
3987482> Format>Style>Italic is not enabled when a
compose window is empty (works in Blot)
* WebView.subproj/WebHTMLView.m:
(-[WebHTMLView becomeFirstResponder]):
call _updateFontPanel here so NSFontManager knows the right font for the menu
items and the font panel
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8730
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
harrison [Tue, 1 Mar 2005 21:53:55 +0000 (21:53 +0000)]
Reviewed by Chris.
<rdar://problem/
3915560> Mail would like an SPI to enable "smart" text paste/drop
* WebView.subproj/WebHTMLView.m:
(-[WebHTMLView _smartDeleteRangeForProposedRange:]):
(-[WebHTMLView _smartInsertForString:replacingRange:beforeString:afterString:]):
New.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8729
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
harrison [Tue, 1 Mar 2005 21:53:44 +0000 (21:53 +0000)]
Reviewed by Chris.
<rdar://problem/
3915560> Mail would like an SPI to enable "smart" text paste/drop
* kwq/WebCoreBridge.h:
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge smartDeleteRangeForProposedRange:]):
(-[WebCoreBridge smartInsertForString:replacingRange:beforeString:afterString:]):
New.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8728
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cblu [Tue, 1 Mar 2005 21:15:05 +0000 (21:15 +0000)]
Fixed: <rdar://problem/
4030404> selection granularity should be set when extending selection via JS
Reviewed by kocienda.
* khtml/ecma/kjs_window.cpp:
(SelectionFunc::tryCall): set the granularity on the part. This will allow us to write smart paste layout tests.
* layout-tests/editing/pasteboard/smart-paste-001-expected.txt: Added.
* layout-tests/editing/pasteboard/smart-paste-001.html: Added.
* layout-tests/editing/pasteboard/smart-paste-002-expected.txt: Added.
* layout-tests/editing/pasteboard/smart-paste-002.html: Added.
* layout-tests/editing/pasteboard/smart-paste-003-expected.txt: Added.
* layout-tests/editing/pasteboard/smart-paste-003.html: Added.
* layout-tests/editing/pasteboard/smart-paste-004-expected.txt: Added.
* layout-tests/editing/pasteboard/smart-paste-004.html: Added.
* layout-tests/editing/pasteboard/smart-paste-005-expected.txt: Added.
* layout-tests/editing/pasteboard/smart-paste-005.html: Added.
* layout-tests/editing/pasteboard/smart-paste-006-expected.txt: Added.
* layout-tests/editing/pasteboard/smart-paste-006.html: Added.
* layout-tests/editing/pasteboard/smart-paste-007-expected.txt: Added.
* layout-tests/editing/pasteboard/smart-paste-007.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8727
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cblu [Tue, 1 Mar 2005 19:16:45 +0000 (19:16 +0000)]
Fixed: <rdar://problem/
4029934> smart paste with plain text can add too many spaces
Reviewed by kocienda.
* khtml/editing/htmlediting.cpp:
(khtml::ReplaceSelectionCommand::doApply): pass true for treatNBSPAsWhitespace to leadingWhitespacePosition and trailingWhitespacePosition
* khtml/xml/dom_position.cpp:
(DOM::isWS): take treatNBSPAsWhitespace param
(DOM::Position::leadingWhitespacePosition): ditto
(DOM::Position::trailingWhitespacePosition): ditto
* khtml/xml/dom_position.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8726
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Tue, 1 Mar 2005 17:48:57 +0000 (17:48 +0000)]
Reviewed by John
Fix for this bug:
<rdar://problem/
3996605> Insert paragraph command puts new block in wrong place, creating difficult-to-handle HTML
* khtml/editing/htmlediting.cpp:
(khtml::InsertParagraphSeparatorCommand::doApply): Look for the upstream-most block to insert after
when at the visible end of a block. This helps to avoid some undesirable sequences of markup which
Dave says will be vary hard to render. Changing the command in this way avoids the "limitations"
of the render tree by not asking it to render markup we do not want to make anyway.
All these tests change, but either in insignificant ways, or for the better.
* layout-tests/editing/deleting/delete-
3959464-fix-expected.txt:
* layout-tests/editing/inserting/insert-div-001-expected.txt:
* layout-tests/editing/inserting/insert-div-002-expected.txt:
* layout-tests/editing/inserting/insert-div-004-expected.txt:
* layout-tests/editing/inserting/insert-div-005-expected.txt:
* layout-tests/editing/inserting/insert-div-009-expected.txt:
* layout-tests/editing/inserting/insert-div-024-expected.txt:
* layout-tests/editing/pasteboard/paste-text-011-expected.txt:
* layout-tests/editing/pasteboard/paste-text-013-expected.txt:
* layout-tests/editing/pasteboard/paste-text-015-expected.txt:
* layout-tests/editing/style/block-style-004-expected.txt:
* layout-tests/editing/style/block-style-005-expected.txt:
* layout-tests/editing/style/block-style-006-expected.txt:
* layout-tests/editing/style/remove-underline-across-paragraph-expected.txt:
* layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt:
* layout-tests/editing/style/remove-underline-after-paragraph-expected.txt:
* layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt:
New test to check specific problem mentioned in the bug.
* layout-tests/editing/inserting/insert-div-026-expected.txt: Added.
* layout-tests/editing/inserting/insert-div-026.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8725
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs [Tue, 1 Mar 2005 01:58:34 +0000 (01:58 +0000)]
Reviewed by Darin.
<rdar://problem/
4002864> REGRESSION(125-146) getElementById in onload fails in a test case involving external resources
Moved management of elementById hashtable from attach/detach to
insertedIntoDocument/removedFromDocument, to avoid being thrown
off by temporary detaches due to style recalcs.
* khtml/xml/dom_elementimpl.cpp:
(ElementImpl::insertedIntoDocument):
(ElementImpl::removedFromDocument):
(ElementImpl::attach):
(ElementImpl::updateId):
* khtml/xml/dom_elementimpl.h:
Make sure that insertedIntoDocument is called before firing any
DOM events.
* khtml/xml/dom_nodeimpl.cpp:
(NodeBaseImpl::dispatchChildInsertedEvents):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8724
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hyatt [Tue, 1 Mar 2005 01:45:11 +0000 (01:45 +0000)]
Fix for
4028999, safari crashes when resetting if mallocsribble is on. Clip rects were being cleared using dead
render objects. Change the ordering.
Reviewed by rjw
* khtml/rendering/render_box.cpp:
(RenderBox::detach):
* khtml/rendering/render_layer.cpp:
(RenderLayer::~RenderLayer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8723
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cblu [Tue, 1 Mar 2005 00:49:14 +0000 (00:49 +0000)]
Fixed: <rdar://problem/
4024786> REGRESSION (Mail): "Smart paste" plain-text word into Blot leaves insertion point misplaced
Reviewed by kocienda.
* khtml/editing/htmlediting.cpp:
(khtml::ReplaceSelectionCommand::completeHTMLReplacement): Call updateLayout so caretMinOffset and caretMaxOffset return correct values.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8722
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sullivan [Tue, 1 Mar 2005 00:07:16 +0000 (00:07 +0000)]
WebCore:
Reviewed by Ken.
- WebCore part of fix for <rdar://problem/
4023490> REGRESSION (125-185): Tabbing through links
on frameset page gets stuck at end (tivofaq.com)
* kwq/WebCoreBridge.h:
add nextValidKeyViewOutsideWebFrameViews (code is in WebKit)
WebKit:
Reviewed by Ken.
- WebKit part of fix for <rdar://problem/
4023490> REGRESSION (125-185): Tabbing through links
on frameset page gets stuck at end (tivofaq.com)
This tab-to-links stuff has been in shaky condition ever since AppKit futzed with
tabbing behavior in Tiger to add support for including the toolbar in the key loop.
I made some changes months ago to compensate for that, but some cases, such as this
one, still weren't fixed.
* WebCoreSupport.subproj/WebBridge.m:
(-[WebBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
new bottleneck method, extracted from nextKeyViewOutsideWebFrameViews; handles
nextKeyView or nextValidKeyView depending on parameter.
(-[WebBridge nextKeyViewOutsideWebFrameViews]):
now calls extracted method
(-[WebBridge nextValidKeyViewOutsideWebFrameViews]):
new method, calls new bottleneck method
* WebView.subproj/WebHTMLView.m:
(-[WebHTMLView nextValidKeyView]):
when we're stuck at the end of a nextKeyView chain inside a nexted frame, use
nextValidKeyViewOutsideWebFrameViews. Make sure we don't end up looking inside
the web frame views while doing this.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8721
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Mon, 28 Feb 2005 23:43:26 +0000 (23:43 +0000)]
Reviewed by John
Fix for this bug:
<rdar://problem/
3972665> 8A360: HTML message partially truncated on left hand side, text-indent from Script Editor
* khtml/css/css_computedstyle.cpp: inheritableProperties array now defined in css_valueimpl.cpp.
* khtml/css/css_valueimpl.cpp: Define inheritableProperties array here.
(DOM::CSSMutableStyleDeclarationImpl::copyBlockProperties): Use new name for blockProperties, and use the new
constant for the number of items in the array.
(DOM::CSSMutableStyleDeclarationImpl::removeBlockProperties): Ditto.
(DOM::CSSMutableStyleDeclarationImpl::removeInheritableProperties): New function.
* khtml/css/css_valueimpl.h: Declare inheritableProperties array and numInheritableProperties extern so they
can be defined in css_valueimpl.cpp and used in css_computedstyle.cpp.
* khtml/editing/htmlediting.cpp:
(khtml::ReplacementFragment::removeStyleNodes): This code was misguided, and removed too much style from HTML
elements. Now, it removes from HTML elements only the styles that we replace later with a call to applyStyle().
Also, add ID_B to list of inline "style" nodes we are willing to remove. Leaving it off was an oversight.
* layout-tests/editing/pasteboard/paste-text-011-expected.txt: ID_B fix made this result change, without any
visible change in the test.
New test:
* layout-tests/editing/style/smoosh-styles-003.html
* layout-tests/editing/style/smoosh-styles-003-expected.txt
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8720
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rjw [Mon, 28 Feb 2005 23:10:43 +0000 (23:10 +0000)]
Fixed <rdar://problem/
4026985> CrashTracer: ...14 crashes at com.apple.WebCore: -[KWQPageState invalidate] + 32
Added more nil checking and ASSERTS.
Without a reproducible case this is hard to definitively resolve.
Reviewed by John Sullivan.
* kwq/KWQPageState.mm:
(-[KWQPageState invalidate]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8719
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rjw [Mon, 28 Feb 2005 22:51:25 +0000 (22:51 +0000)]
Fixed <rdar://problem/
4027702> 3.5% performance regression btwn Safari-188 and Safari-400
I inadvertently checked in some debugging code that disabled
style sharing. Backed out that change.
* khtml/css/cssstyleselector.cpp:
(khtml::CSSStyleSelector::styleForElement):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8718
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cblu [Mon, 28 Feb 2005 21:16:54 +0000 (21:16 +0000)]
Fixed: <rdar://problem/
4026639> bmw.ca configurator does not work with Safari
Reviewed by john.
* khtml/ecma/kjs_html.cpp:
(KJS::HTMLElement::tryGet): when frameset.<name of frame child> is called, return the window object of the frame child
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8717
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Mon, 28 Feb 2005 17:51:12 +0000 (17:51 +0000)]
Reviewed by Chris
Fix for this bug:
<rdar://problem/
4026906> Paste of HTML table content can break table structure
* khtml/editing/htmlediting.cpp:
(khtml::ReplacementFragment::pruneEmptyNodes): Call new isProbablyTableStructureNode() function to prevent
removal of empty table structure nodes.
(khtml::ReplacementFragment::removeUnrenderedNodesUsingTestRendering): Ditto.
(khtml::isProbablyTableStructureNode): New helper function.
* khtml/editing/htmlediting.h: Declare new helper.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8716
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cblu [Mon, 28 Feb 2005 17:11:26 +0000 (17:11 +0000)]
Fixed: <rdar://problem/
4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
Reviewed by kocienda.
* khtml/editing/htmlediting.cpp:
(khtml::ApplyStyleCommand::addInlineStyleIfNeeded): ref and deref the element while it is "floating"
(khtml::ReplacementFragment::insertFragmentForTestRendering): ditto
(khtml::floatRefdElement): new, keeps an element alive while its ref count is 0
(khtml::createDefaultParagraphElement): removed commented out code
(khtml::createBlockPlaceholderElement): ref the element and return it as "floating"
(khtml::createFontElement): ditto
(khtml::createStyleSpanElement): ditto
* khtml/editing/htmlediting.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8715
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs [Mon, 28 Feb 2005 04:21:39 +0000 (04:21 +0000)]
Reviewed by Vicki.
<rdar://problem/
3993557> REGRESSION (125-180-ish): getElementsByTagName no longer works with namespace designations
* khtml/xml/dom_nodeimpl.cpp:
(NodeBaseImpl::getElementsByTagNameNS): When no namespace is specified, find elements
of the specified name in any namespace to match Mozilla and earlier Safari behavior.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8714
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Sat, 26 Feb 2005 01:41:13 +0000 (01:41 +0000)]
Reviewed by Adele.
- fixed <rdar://problem/
4025618> Crash while searching at hollywoodvideo.com
* khtml/html/html_formimpl.h: Added valueWithDefault.
* khtml/html/html_formimpl.cpp:
(DOM::HTMLInputElementImpl::appendFormData): Call valueWithDefault instead of going at the render object
to try to get the default value; there may be no render object if this is display:none.
(DOM::HTMLInputElementImpl::valueWithDefault): Added. Knows about the defaults for "submit" and "reset"
buttons; otherwise just returns the value as-is.
* khtml/rendering/render_form.h: Removed the defaultLabel member functions.
* khtml/rendering/render_form.cpp:
(RenderSubmitButton::rawText): Call valueWithDefault instead of using defaultLabel function here on
the render side. The DOM needs to know how to deal with the default anyway for form submission.
(RenderSubmitButton::defaultLabel): Removed.
(RenderResetButton::defaultLabel): Removed.
(RenderPushButton::defaultLabel): Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8713
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Sat, 26 Feb 2005 01:03:45 +0000 (01:03 +0000)]
WebCore:
Reviewed by John.
- fixed <rdar://problem/
4025088> window onblur and onfocus don't fire when text field has focus
* kwq/KWQKHTMLPart.h: Added setWindowHasFocus function and m_windowHasFocus data member.
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::setDisplaysWithFocusAttributes): Took out the code that sends the focus and blur events.
(KWQKHTMLPart::setWindowHasFocus): Put that code here instead.
* kwq/WebCoreBridge.h: Added setWindowHasFocus: method to the bridge.
* kwq/WebCoreBridge.mm: (-[WebCoreBridge setWindowHasFocus:]): Added. Calls method on the part.
WebKit:
Reviewed by John.
- fixed <rdar://problem/
4025088> window onblur and onfocus don't fire when text field has focus
* WebView.subproj/WebHTMLView.m:
(-[WebHTMLView updateFocusState]): Renamed from updateFocusDisplay. Added call to setWindowHasFocus: method.
(-[WebHTMLView viewDidMoveToWindow]): Call method by new name.
(-[WebHTMLView windowDidBecomeKey:]): Ditto.
(-[WebHTMLView windowDidResignKey:]): Ditto.
(-[WebHTMLView becomeFirstResponder]): Ditto.
(-[WebHTMLView resignFirstResponder]): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8712
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin [Sat, 26 Feb 2005 00:43:58 +0000 (00:43 +0000)]
Reviewed by John.
- re-fixed <rdar://problem/
3665430> horizontal scroll bar of text area does not show, even when text is wide in "no wrap" mode
* kwq/KWQTextArea.mm: (-[KWQTextArea _updateTextViewWidth]): Don't change the text view width
to match the text area's width in the "wrap" case.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8711
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Fri, 25 Feb 2005 23:51:01 +0000 (23:51 +0000)]
Reviewed by Hyatt
Fix for this bug:
<rdar://problem/
4021518> 8A394 Mail crashes during paste: khtml::RootInlineBox::closestLeafChildForXPos
* khtml/editing/visible_units.cpp:
(khtml::previousLinePosition): Adding an updateLayout call at the start of the function fixes the crash, since
we caught line boxes in a not-completely-updated state.
(khtml::nextLinePosition): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8710
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hyatt [Fri, 25 Feb 2005 23:49:20 +0000 (23:49 +0000)]
Fix for
4010774, make sure to avoid an O(N^2) algorithm in nextRenderer() that is triggered when large
DOM subtrees are inserted into documents via one insert/append call.
Reviewed by kocienda
* khtml/xml/dom_nodeimpl.cpp:
(NodeImpl::nextRenderer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8709
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rjw [Fri, 25 Feb 2005 23:41:39 +0000 (23:41 +0000)]
Fixed <rdar://problem/
3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
Second pass at fixing
3382926 w/o causing layout regressions. Same concept:
if directionality of text's element is RTL and first character has neutral directionality
then set the initial directionality to RTL.
Reviewed by Hyatt.
* khtml/rendering/bidi.cpp:
(khtml::RenderBlock::bidiReorderLine):
(khtml::RenderBlock::determineStartPosition):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8708
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vicki [Fri, 25 Feb 2005 22:16:51 +0000 (22:16 +0000)]
versioning for TOT, Safari 2.0 (400+)
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8707
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vicki [Fri, 25 Feb 2005 22:10:57 +0000 (22:10 +0000)]
Safari 1.3 (300) stamp, for 10.3 Panther
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8705
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vicki [Fri, 25 Feb 2005 22:05:51 +0000 (22:05 +0000)]
Safari-400 stamp
This is our first build with the new versioning scheme. Versions are Safari 2.0 (400) on 10.4, and Safari (1.3) 300 for 10.3. See this bug for details:
<rdar://problem/
3962707> upgrade install of Tiger over SUPanWheat leaves Panther version of WebKit (need new version numbering scheme)
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8703
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Fri, 25 Feb 2005 21:33:09 +0000 (21:33 +0000)]
Reviewed by me
Roll out Chris' change to fix this bug:
<rdar://problem/
4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
That code change is responsible for all these new crashers:
<rdar://problem/
4025177> crash copying safari.apple.com into Blot document
<rdar://problem/
4025184> crash in DOM::NodeImpl::parentNode copying "New!" from google.com to Blot
<rdar://problem/
4025214> crash in DOM::NodeImpl::getRect loading paste-match-style-001.html
Since we wish to close the tree for a build right now, I am rolling out rather than investigating.
* khtml/editing/htmlediting.cpp:
(khtml::ApplyStyleCommand::addInlineStyleIfNeeded)
(khtml::ReplacementFragment::insertFragmentForTestRendering)
(khtml::createDefaultParagraphElement)
(khtml::createBlockPlaceholderElement)
(khtml::createFontElement)
(khtml::createStyleSpanElement)
* khtml/editing/htmlediting.h
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8702
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rjw [Fri, 25 Feb 2005 20:54:19 +0000 (20:54 +0000)]
Fixed <rdar://problem/
4000962> 8A375: Help Viewer displays voiced sound and semi-voiced characters strangely (characters don't seem to be composed)
Added special case for voiced marks.
Reviewed by John.
* WebCoreSupport.subproj/WebTextRenderer.m:
(widthForNextCharacter):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8701
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kocienda [Fri, 25 Feb 2005 19:42:18 +0000 (19:42 +0000)]
Reviewed by John
Fix for this bug:
<rdar://problem/
4020108> Pasting text into message makes Mail crash reproducibly
Note that, even with this fix, development build will crash until this bug is fixed:
<rdar://problem/
4024996> Applying block styles can cause assertion failure in inline style removal
This will not crash deployment builds, so I am going to land.
* khtml/editing/htmlediting.cpp:
(khtml::ApplyStyleCommand::applyBlockStyle): Applying block styles can make the loop to reach beyondEnd
fail since the structure of the document can change. Cache the next node first before operating on it,
as we do elsewhere.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8700
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vicki [Fri, 25 Feb 2005 19:38:59 +0000 (19:38 +0000)]
- recommit this change, since rolling it out did NOT fix the performance regression!
2005-02-23 Darin Adler <darin@apple.com>
Reviewed by John.
- fixed <rdar://problem/
4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves
The key was to change things around so that we don't push text from the DOM to the widget
unless the DOM has actually been changed. This prevents the code path that wipes out inline input
during the blur process.
* khtml/html/html_formimpl.cpp:
(DOM::HTMLInputElementImpl::HTMLInputElementImpl): Start m_valueMatchesRenderer as false.
(DOM::HTMLInputElementImpl::parseHTMLAttribute): Set m_valueMatchesRenderer to false when a
new value is set here.
(DOM::HTMLInputElementImpl::setValue): Set m_valueMatchesRenderer to false when a new value
is set here.
(DOM::HTMLInputElementImpl::setValueFromRenderer): Added. Sets m_value, sets m_valueMatchesRenderer
to true, and also sends out the input event. It's better to have this here than in the renderer code.
(DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl): Start m_valueIsValid as false (replaces
m_dirtyvalue) and m_valueMatchesRenderer as false.
(DOM::HTMLTextAreaElementImpl::updateValue): Added. Factored this out from the value function. Uses
the new booleans and keeps them up to date, specifically setting m_valueMatchesRenderer based on
where the value came from.
(DOM::HTMLTextAreaElementImpl::value): Updated to call updateValue to do most of the work.
(DOM::HTMLTextAreaElementImpl::setValue): Set both m_valueIsValid and m_valueMatchesRenderer.
(DOM::HTMLTextAreaElementImpl::setDefaultValue): Take parameter by reference.
* khtml/html/html_formimpl.h: Added setValueFromRenderer, valueMatchesRenderer, setValueMatchesRenderer,
and m_valueMatchesRenderer to input element. For textarea element, made some parameters pass DOMString
by reference, and added invalidateValue, updateValue, valueMatchesRenderer, and setValueMatchesRenderer.
* khtml/rendering/render_form.cpp:
(RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer
is true.
(RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM
directly.
(RenderTextArea::detach): Call updateValue instead of calling value for its side effect.
(RenderTextArea::handleFocusOut): Ditto.
(RenderTextArea::updateFromElement): Call updateValue and then not re-get the value from the
DOM if valueMatchesRenderer is true.
(RenderTextArea::slotTextChanged): Call invalidateValue instead of directly setting m_dirtyvalue to true.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8699
268f45cc-cd09-0410-ab3c-
d52691b4dbfc