WebKit-https.git
18 years ago Reviewed by Trey
kocienda [Wed, 11 Aug 2004 17:55:34 +0000 (17:55 +0000)]
    Reviewed by Trey

        Efficiency improvements on string manipulations in these two new function
        implementations. Use the versions of QString append/prepend that take
        (QChar *c, uint length) instead of creating new strings each time.

        * khtml/xml/dom_position.cpp:
        (DOM::Position::previousWordPosition): Changed, as described above.
        (DOM::Position::nextWordPosition): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7231 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Darin
kocienda [Wed, 11 Aug 2004 17:27:42 +0000 (17:27 +0000)]
    Reviewed by Darin

        Fix for this bug:
        <rdar://problem/3675812> Moving a word at a time does not use the correct conception of "word"

        I have implemented versions of previousWordPosition and nextWordPosition that are now
        different than previousWordBoundary and nextWordBoundary. The behavior of the new
        functions attempts to match what Cocoa does as closely as it can. Let the bug filing begin!

        * WebCore.pbproj/project.pbxproj: Added KWQTextUtilities.mm
        * khtml/misc/helper.cpp:
        (khtml::nextWordFromIndex): Glue to call through to KWQFindNextWordFromIndex.
        * khtml/misc/helper.h: Declare the function above.
        * khtml/misc/khtml_text_operations.cpp: Added SimplifiedBackwardsTextIterator class.
        (khtml::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): New
        (khtml::SimplifiedBackwardsTextIterator::advance): Ditto.
        (khtml::SimplifiedBackwardsTextIterator::handleTextNode): Ditto.
        (khtml::SimplifiedBackwardsTextIterator::handleReplacedElement): Ditto.
        (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode): Ditto.
        (khtml::SimplifiedBackwardsTextIterator::exitNode): Ditto.
        (khtml::SimplifiedBackwardsTextIterator::emitCharacter): Ditto.
        (khtml::SimplifiedBackwardsTextIterator::range): Ditto.
        * khtml/misc/khtml_text_operations.h:
        (khtml::SimplifiedBackwardsTextIterator::atEnd): Ditto.
        (khtml::SimplifiedBackwardsTextIterator::length): Ditto.
        (khtml::SimplifiedBackwardsTextIterator::characters): Ditto.
        * khtml/xml/dom_position.cpp:
        (DOM::Position::previousWordBoundary): Updated to gather appropriate text and call through to
        AppKit to perform the same calculations NSText uses.
        (DOM::Position::nextWordBoundary): Ditto.
        (DOM::Position::previousWordPosition): Unrelated change to fix case where the function could get "stuck".
        (DOM::Position::nextWordPosition): Ditto
        (DOM::Position::equivalentDeepPosition): Changed to look backwards if the position's offset is equal
        to the number of child nodes it has. This handles more cases correctly, like when the position is
        gives as one beyond the end of a document element's last child.
        * kwq/KWQTextUtilities.h: Declared KWQFindNextWordFromIndex.
        * kwq/KWQTextUtilities.mm: Added.
        (KWQFindNextWordFromIndex): New function.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7230 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John
kocienda [Wed, 11 Aug 2004 16:45:12 +0000 (16:45 +0000)]
    Reviewed by John

        Fix for this bug:

        <rdar://problem/3732702> crash in CSSComputedStyleDeclarationImpl running devtools.com editing sample code

        * khtml/khtml_part.cpp:
        (KHTMLPart::selectionComputedStyle): Added a null check.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7229 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Trey.
darin [Wed, 11 Aug 2004 06:26:32 +0000 (06:26 +0000)]
    Reviewed by Trey.

        - fixed <rdar://problem/3710123> Loading iframe that replaces content in the parent document crashes Safari

        I fixed three problems:

            1) script interpreter destroyed while it was interpreting scripts, caused random havoc
            2) code trying to get to view after view was detached from part, caused nil-deref
            3) signals sent to parent after child was no longer in the parent's frames list, caused nil-deref

        Now the test page works fine. Hope the real sites do too.

        * khtml/khtml_part.h: Add connectChild and disconnectChild helper functions (private).
        * khtml/khtml_part.cpp:
        (KHTMLPart::clear): Call disconnectChild on each frame as we detach it (see below).
        (KHTMLPart::end): Ref the part at the start, and deref the part at the end, of this function.
        Otherwise, we can end up destroying the part, and hence the interpreter, inside a script that
        the interpreter itself is running.
        (KHTMLPart::slotFinishedParsing): Add another check for a nil m_view, after the call to
        checkCompleted.
        (KHTMLPart::checkCompleted): Remove bogus if statement with empty body.
        (KHTMLPart::processObjectRequest): Call disconnectChild to disconnect the child <-> parent signals of the
        old child that the new one is replacing, and connectChild to connect the signals (nicer factoring).
        (KHTMLPart::slotChildCompleted): Fixed up a confusing boolean if/expression to be simpler. Not related to
        the bug fix, but an earlier version of the fix had changes in this function.
        (KHTMLPart::connectChild): Added. Connects the appropriate signals for a child frame.
        (KHTMLPart::disconnectChild): Added. Disconnects the same signals that connectChild connects.

        * kwq/KWQKHTMLPart.mm: (KHTMLPart::frameDetached): Added a call to disconnectChild before removing the
        child from the frames list.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7228 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed <rdar://problem/3674747> Need to implement invokeUndefinedMethodFromWeb...
rjw [Wed, 11 Aug 2004 02:51:46 +0000 (02:51 +0000)]
    Fixed <rdar://problem/3674747> Need to implement invokeUndefinedMethodFromWebScript:withArguments:

The following WebScripting methods are now supported on bound
objects:

- (id)invokeUndefinedMethodFromWebScript:(NSString *)name withArguments:(NSArray *)args;
        - (void)setValue:(id)value forUndefinedKey:(NSString *)key
        - (id)valueForUndefinedKey:(NSString *)key

        Reviewed by Chris.

        * bindings/c/c_class.cpp:
        (CClass::fieldNamed):
        * bindings/c/c_class.h:
        * bindings/jni/jni_class.cpp:
        (JavaClass::fieldNamed):
        * bindings/jni/jni_class.h:
        * bindings/objc/objc_class.h:
        (KJS::Bindings::ObjcClass::isa):
        * bindings/objc/objc_class.mm:
        (ObjcClass::methodsNamed):
        (ObjcClass::fieldNamed):
        (ObjcClass::fallbackObject):
        * bindings/objc/objc_instance.h:
        * bindings/objc/objc_instance.mm:
        (ObjcInstance::invokeMethod):
        (ObjcInstance::setValueOfField):
        (ObjcInstance::setValueOfUndefinedField):
        (ObjcInstance::getValueOfField):
        (ObjcInstance::getValueOfUndefinedField):
        * bindings/objc/objc_runtime.h:
        (KJS::Bindings::ObjcField::~ObjcField):
        (KJS::Bindings::ObjcField::ObjcField):
        (KJS::Bindings::ObjcField::operator=):
        (KJS::Bindings::FallbackObjectImp::classInfo):
        * bindings/objc/objc_runtime.mm:
        (ObjcField::ObjcField):
        (ObjcField::name):
        (ObjcField::type):
        (ObjcField::valueFromInstance):
        (ObjcField::setValueToInstance):
        (FallbackObjectImp::FallbackObjectImp):
        (FallbackObjectImp::get):
        (FallbackObjectImp::put):
        (FallbackObjectImp::canPut):
        (FallbackObjectImp::implementsCall):
        (FallbackObjectImp::call):
        (FallbackObjectImp::hasProperty):
        (FallbackObjectImp::deleteProperty):
        (FallbackObjectImp::defaultValue):
        * bindings/runtime.h:
        (KJS::Bindings::Class::fallbackObject):
        (KJS::Bindings::Instance::getValueOfUndefinedField):
        (KJS::Bindings::Instance::setValueOfUndefinedField):
        * bindings/runtime_object.cpp:
        (RuntimeObjectImp::get):
        (RuntimeObjectImp::put):
        (RuntimeObjectImp::canPut):
        (RuntimeObjectImp::hasProperty):
        * bindings/testbindings.mm:
        (-[MyFirstInterface valueForUndefinedKey:]):
        (-[MyFirstInterface setValue:forUndefinedKey:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7227 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
mjs [Wed, 11 Aug 2004 00:21:04 +0000 (00:21 +0000)]
WebCore:

        Reviewed by Trey.

WebCore part of:

- made basic marked text highlighting work to complete basic level of <rdar://problem/3704359> input method support not yet implemented for HTML editing

        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge setMarkedDOMRange:]): Added this new call to support storing
a marked range in WebCore. The provided DOMRange must start and end in the same
node, which must be a text node.
        (-[WebCoreBridge markedDOMRange]): New call to get the marked range.
        (-[WebCoreBridge clearMarkedDOMRange]): New call to clear the marked range.
        * kwq/WebCoreBridge.h: Prototype new methods.
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::markedRange): Implementation of WebCore call above.
        (KWQKHTMLPart::setMarkedRange): Implementation of WebCore call above -
store the marked range, and repaint new and old nodes if needed.
        (KWQKHTMLPart::clear): Clear marked range.
        * kwq/KWQKHTMLPart.h: Prototype new methods.
        * khtml/rendering/render_text.cpp:
        (InlineTextBox::paintMarkedTextBackground): New method to paint the background
for marked text, modeled on paintSelection.
(RenderText::paint): Optionally handle painting marked text
background as well as selection background in the marked text
pass.
        * khtml/rendering/render_text.h: Prototype new method.

WebKit:

        Reviewed by Trey.

WebKit part of:

- made basic marked text highlighting work to complete basic level of <rdar://problem/3704359> input method support not yet implemented for HTML editing

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView markedRange]): Use new bridge calls instead of internal marked range storage.
        (-[WebHTMLView hasMarkedText]): Likewise.
        (-[WebHTMLView unmarkText]): Likewise.
        (-[WebHTMLView _selectMarkedText]): Likewise.
        (-[WebHTMLView _selectRangeInMarkedText:]): Likewise.
        (-[WebHTMLView _selectionIsInsideMarkedText]): Likewise.
        (-[WebHTMLView _updateSelectionForInputManager]): Likewise.
        (-[WebHTMLView setMarkedText:selectedRange:]): Use direct bridge call instead
of private _selectMarkedDOMRange: method, which would now be trivial.
        * WebView.subproj/WebHTMLViewInternal.h: Remove unneeded

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7226 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoJavaScriptCore:
darin [Tue, 10 Aug 2004 21:35:09 +0000 (21:35 +0000)]
JavaScriptCore:

        Reviewed by Dave.

        - switch PCRE to do UTF-16 directly instead of converting to/from UTF-8 for speed

        * pcre/pcre.h: Added PCRE_UTF16 switch, set to 1. Added pcre_char typedef, which is char
        or uint16_t depending on the mode, and used appropriate in the 7 public functions
        that need to use it.
        * pcre/pcre.c: Add UTF-16 support to all functions.
        * pcre/study.c: Ditto.

        * pcre/internal.h: Added ichar typedef, which is unsigned char or uint16_t depending on
        the mode. Changed declarations to use symbolic constants and typedefs so we size
        things to ichar when needed.

        * pcre/maketables.c: (pcre_maketables): Change code to make tables that are
        sized to 16-bit characters instead of 8-bit.

        * pcre/get.c:
        (pcre_copy_substring): Use pcre_char instead of char.
        (pcre_get_substring_list): Ditto.
        (pcre_free_substring_list): Ditto.
        (pcre_get_substring): Ditto.
        (pcre_free_substring): Ditto.

        * pcre/dftables.c: (main): Used a bit more const, and use ICHAR sizes instead
        of hard-coding 8-bit table sizes.

        * pcre/chartables.c: Regenerated.

        * kjs/ustring.h: Remove functions that convert UTF-16 to/from UTF-8 offsets.
        * kjs/ustring.cpp: Change the shared empty string to have a unicode pointer that
        is not null. The null string still has a null pointer. This prevents us from
        passing a null through to the regular expression engine (which results in a null
        error even when the string length is 0).

        * kjs/regexp.cpp:
        (KJS::RegExp::RegExp): Null-terminate the pattern and pass it.
        (KJS::RegExp::match): Use the 16-bit string directly, no need to convert to UTF-8.

WebCore:

        Reviewed by Dave.

        - switch PCRE to do UTF-16 directly instead of converting to/from UTF-8 for speed

        * kwq/KWQRegExp.mm:
        (QRegExp::KWQRegExpPrivate::compile): Null-terminate the pattern and pass it.
        (QRegExp::match): Use the 16-bit string directly, no need to convert to UTF-8.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7223 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Maciej.
darin [Tue, 10 Aug 2004 18:43:51 +0000 (18:43 +0000)]
    Reviewed by Maciej.

        - fixed 28 Mozilla JavaScript tests

        * kjs/array_object.cpp: (ArrayProtoFuncImp::call): Check for undefined rather than
        checking the number of arguments for the join method.

        * kjs/lexer.cpp: (Lexer::lex): Parse hexadecimal and octal constants in doubles rather
        than integers, so we aren't limited to 32 bits.

        * kjs/math_object.cpp: (MathFuncImp::call): Get rid of many unneeded special cases in
        the implementation of the pow operation. Also simplied a case that was handling positive
        and negative infinity separately.

        * kjs/nodes.cpp: (ShiftNode::evaluate): Keep the result of shifts in a double instead of
        putting them in a long, so that unsigned shift will work properly.

        * kjs/number_object.cpp: Add the DontDelete and ReadOnly flags to the numeric constants.

        * kjs/operations.cpp:
        (KJS::isPosInf): Added an implementation inside APPLE_CHANGES that does not depend on the
        sign of isinf; our isinf function returns +1 even for negative infinity.
        (KJS::isNegInf): And again.
        (KJS::relation): Put in a nice simple implementation of comparison inside APPLE_CHANGES.
        Our floating point already handles the various infinity cases correctly.

        * kjs/regexp_object.cpp:
        (RegExpProtoFuncImp::call): Add missing return before Null() in Exec method.
        (RegExpObjectImp::arrayOfMatches): Put undefined rather than an empty string into the
        array in cases where we did not match.
        (RegExpObjectImp::construct): Set the DontDelete, ReadOnly, and DontEnum flags for
        "global", "ignoreCase", "multiline", and "source".

        * kjs/string_object.cpp: (StringProtoFuncImp::call): For the match method, turn a null
        string into undefined rather than an empty string. For the slice method, handle an
        undefined parameter for the limit properly as decribed in the specification, and add
        the limit to one case that didn't have the limit at all. For the methods that generate
        HTML strings, use lowercase tags instead of uppercase.

        * kjs/ustring.cpp:
        (KJS::UChar::toLower): Use u_tolower from the ICU library.
        (KJS::UChar::toUpper): Use u_toupper from the ICU library.
        (KJS::UString::append): Fix some math that caused a buffer overflow.
        (KJS::convertUTF16OffsetsToUTF8Offsets): Ignore negative numbers (-1 is used as a special
        flag) rather than converting them all to 0.
        (KJS::convertUTF8OffsetsToUTF16Offsets): Ditto.

        * tests/mozilla/jsDriver.pl: Fixed the relative links to point to our actual test files.

        * tests/mozilla/ecma/String/15.5.4.11-1.js: Fixed the Unicode table in this test to match
        the Unicode specification in a few cases where it was wrong before.
        * tests/mozilla/ecma/String/15.5.4.11-2.js: Ditto.
        * tests/mozilla/ecma/String/15.5.4.11-3.js: Ditto.
        * tests/mozilla/ecma/String/15.5.4.11-5.js: Ditto.
        * tests/mozilla/ecma/String/15.5.4.11-6.js: Ditto.
        * tests/mozilla/ecma/String/15.5.4.12-1.js: Ditto.
        * tests/mozilla/ecma/String/15.5.4.12-2.js: Ditto.
        * tests/mozilla/ecma/String/15.5.4.12-3.js: Ditto.
        * tests/mozilla/ecma/String/15.5.4.12-4.js: Ditto.
        * tests/mozilla/ecma/String/15.5.4.12-5.js: Ditto.

        * JavaScriptCore.pbproj/project.pbxproj: Link to libicu.

        * kjs/number_object.lut.h: Regenerated.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7222 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Tue, 10 Aug 2004 18:14:25 +0000 (18:14 +0000)]
    Reviewed by Ken.

        - change name of WebMakeCollectable to WebNSRetainCFRelease so it fits into the
          "NS and CF retain counts are separate" mental model, rather than the "think about
          how garbage collection works" one

        * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Rename.
        * Misc.subproj/WebNSObjectExtras.h: (WebNSRetainCFRelease): Ditto.
        * Misc.subproj/WebNSURLExtras.m:
        (+[NSURL _web_URLWithData:relativeToURL:]): Ditto.
        (-[NSURL _web_URLWithLowercasedScheme]): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7221 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Tue, 10 Aug 2004 18:09:25 +0000 (18:09 +0000)]
    Reviewed by Ken.

        - minor cleanup

        * khtml/editing/jsediting.cpp: Capitalize command names to match Windows.
        The dictionary lookup is case insensitive.

        * kwq/KWQFoundationExtras.h: Remove inaccurate comment.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7220 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago 3757094 - crash spell checking after a paste
trey [Tue, 10 Aug 2004 17:48:54 +0000 (17:48 +0000)]
3757094 - crash spell checking after a paste

        Reviewed by Ken

        * khtml/rendering/render_text.cpp:
        (InlineTextBox::paintSelection):  Add nil check.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7219 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago 3756195 - spell checking leaves misspelling marker behind after bad word is deleted
trey [Tue, 10 Aug 2004 16:34:46 +0000 (16:34 +0000)]
3756195 - spell checking leaves misspelling marker behind after bad word is deleted
... and other follow-on spell check fixes

        Reviewed by Ken

        * khtml/rendering/render_text.cpp:
        (InlineTextBox::paintMarker):  Close inspection shows we were drawing the
misspelling marker one pixel lower than AK, and one pixel outside the selection
rect we draw, in the case of Times-16.  So move it up one.  Still not an exact
match for AK, but less bad.
        * khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::removeMarker):  Track whether we make any changes, so we only
repaint if something actually changed.
        (DocumentImpl::removeAllMarkers):  New utility.
        (DocumentImpl::removeAllMarkers):  Use clear() instead of (errant)
hand-rolled loop to empty array.
        (DocumentImpl::shiftMarkers):  Track whether we make any changes, so we only
repaint if something actually changed.
        * khtml/xml/dom_docimpl.h:
        * khtml/xml/dom_textimpl.cpp:
        (CharacterDataImpl::deleteData):  Along with shifting existing markers around,
remove any markers in the deleted range.  Fixes 3756195.
        (CharacterDataImpl::replaceData):  Ditto for the replaced range.
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::updateSpellChecking): comment

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7218 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago 3756599 - REGRESSION: hit assertion in KWQPageState invalidate
trey [Tue, 10 Aug 2004 06:30:28 +0000 (06:30 +0000)]
3756599 - REGRESSION: hit assertion in KWQPageState invalidate

By inspection I found a flaw in the recently added logic, although
I have no steps to repro.  My theoretical explanation is that we would
get two errors and go through _receivedMainResourceError: twice, which
would cause the pageState to be invalidated twice, which is the only
way I can see to hit the assert.

        Reviewed by Darin

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _receivedMainResourceError:]):  Clear the pageState out
of the history item after it's been invalidated by WebCore.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7217 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Maciej.
darin [Tue, 10 Aug 2004 03:05:37 +0000 (03:05 +0000)]
    Reviewed by Maciej.

        - fixed <rdar://problem/3753467> REGRESSION (137-138): reproducible buffer overrun in UString manipulation code

        * kjs/ustring.cpp: (KJS::UString::append): Fix incorrect size computation. Without it
        we get a buffer overflow.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7216 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Inspired by Trey we have a much better approach for conditionally
rjw [Tue, 10 Aug 2004 00:33:19 +0000 (00:33 +0000)]
    Inspired by Trey we have a much better approach for conditionally
        linking Quart.framework.  Instead of multiple targets we use
        `` to invoke some inline script to extend COMMON_LDFLAGS as
        necessary.  Thanks Trey!

        Reviewed by Trey.

        * WebKit.pbproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7214 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Hookup UI for "Continuous Spelling" menu item.
trey [Tue, 10 Aug 2004 00:11:37 +0000 (00:11 +0000)]
Hookup UI for "Continuous Spelling" menu item.

        Reviewed by Richard.

        * WebView.subproj/WebView.m:
        (-[WebView validateUserInterfaceItem:]):  Enable and check the
menu item to reflect our state.
        (-[WebView toggleContinuousSpellChecking:]):  Change type to
IBAction, just cosmetic.
        * WebView.subproj/WebViewPrivate.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7213 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
trey [Mon, 9 Aug 2004 22:00:59 +0000 (22:00 +0000)]
WebCore:

3745023 - Safari crashes trying to access anchor while downloading

I bet this is behind a few other crashers as well.  In this bug the start of the
download leaves a KWQPageState hanging around, and when that is freed it damages
the part and view.  If you're still using that page, you're dead.

The fix is to properly invalidate the PageState when we receive an error before
reaching WebFrameCommitted state.  Normally this happens when a page is reheated
from the PageState, but in this case we never manage to leave the page to begin
with, although we've already created the PageState.

Other errors besides the synthetic one download generates would have caused similar
crashing.  Another example would be clicking on a second link before the load
caused by clicking on the first link reached committed state.

        Reviewed by Richard

        * kwq/WebCoreBridge.h:
        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge didNotOpenURL:pageCache:]):  Invalidate the pageCache state
when a load doesn't get off the ground.

WebKit:

3745023 - Safari crashes trying to access anchor while downloading

I bet this is behind a few other crashers as well.  In this bug the start of the
download leaves a KWQPageState hanging around, and when that is freed it damages
the part and view.  If you're still using that page, you're dead.

The fix is to properly invalidate the PageState when we receive an error before
reaching WebFrameCommitted state.  Normally this happens when a page is reheated
from the PageState, but in this case we never manage to leave the page to begin
with, although we've already created the PageState.

Other errors besides the synthetic one download generates would have caused similar
crashing.  Another example would be clicking on a second link before the load
caused by clicking on the first link reached committed state.

        Reviewed by Richard

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _receivedMainResourceError:complete:]):  Let the frame do the
main work (since it has access to the pageCache state).  Also renamed to make
it clear that this is about an error for the main resource.
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _receivedMainResourceError:]):  Let WC know about the failure, as
the DataSource used to, but now pass the pageCache state along too.
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient receivedError:]):  Call renamed method.
        (-[WebMainResourceClient cancelWithError:]):  Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7212 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by vicki (changes by rjw)
vicki [Sun, 8 Aug 2004 20:44:11 +0000 (20:44 +0000)]
    Reviewed by vicki (changes by rjw)

- make "weak" linking with Quartz work with buildit

        * WebKit.pbproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7211 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
kocienda [Sat, 7 Aug 2004 00:25:28 +0000 (00:25 +0000)]
WebCore:

        Reviewed by Maciej

        Finish off spellchecking support to HTML editing. Includes work to
        enable continuous spellchecking.

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::EditCommandImpl::markMisspellingsInSelection): Basically, a one-liner convenience to
        make the call over to the KWQKHTMLPart.
        (khtml::ReplaceSelectionCommandImpl::doApply): Did some rearranging of code so that the
        inserted content can be spell-checked. The function is basically the same, except for
        the addition of calls to markMisspellingsInSelection.
        (khtml::TypingCommandImpl::markMisspellingsAfterTyping): New function. Takes a look at the
        selection that results after typing and determines whether it needs to spellcheck.
        Since the word containing the current selection is never marked, this does a check to
        see if typing made a new word that is not in the current selection. Basically, you
        get this by being at the end of a word and typing a space.
        (khtml::TypingCommandImpl::typingAddedToOpenCommand): Call markMisspellingsAfterTyping.
        * khtml/editing/htmlediting_impl.h: Add new function declarations.
         * khtml/khtml_part.cpp:
        (KHTMLPart::setSelection): Since spell checks are updated when the selection changes,
        and every selection change passes through here, this is a good place to put the call
        to the spellchecker.
        * khtml/rendering/render_text.cpp:
        (InlineTextBox::paintMarker): Remove temporary misspelling line drawing code. Replace with
        call that does AppKit-style drawing. Fix up some comments.
        * khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::addMarker): Repaint the node that had the marker added. This makes it show
        up on setting it.
        (DocumentImpl::removeMarker): Ditto.
        (DocumentImpl::removeAllMarkers): New function. Convenience for clearing all markers.
        Used when not in continuous spellchecking mode.
        (DocumentImpl::shiftMarkers): Moves markers in response to changes in a node's contents.
        This shifts the marker offsets by a given amount. This keeps the markers in the right
        place when a user types in a node with markers already set on it.
        * khtml/xml/dom_docimpl.h: Added new functions. Removed unnecessary enum qualifier from some
        declarations.
        * khtml/xml/dom_position.cpp:
        (DOM::Position::previousWordBoundary): This function was susceptible to endless loops...and
        needlessly so. Basically, if the current position is at a word boundary, run the code again
        to find the previous word boundary.
        (DOM::Position::nextWordBoundary): Same as above, but for next word boundary.
        * khtml/xml/dom_textimpl.cpp:
        (CharacterDataImpl::setData): Call shiftMarkers to update markers when this node changes.
        (CharacterDataImpl::insertData): Ditto.
        (CharacterDataImpl::deleteData): Ditto.
        (CharacterDataImpl::replaceData): Ditto.
        * kwq/KWQKHTMLPart.h:
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::advanceToNextMisspelling):
        (KWQKHTMLPart::markMisspellingsInSelection):
        (KWQKHTMLPart::updateSpellChecking):
        (KWQKHTMLPart::respondToChangedSelection):
        * kwq/KWQPainter.h:
        * kwq/KWQPainter.mm:
        (QPainter::drawLineForMisspelling): New function. Call over to WebKit to do the drawing.
        * kwq/WebCoreBridge.h:
        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Pass markMisspellings flag to
        setSelection call.
        * kwq/WebCoreTextRenderer.h:

WebKit:

        Reviewed by Maciej

        Finish off spellchecking support to HTML editing. Includes work to
        enable continuous spellchecking.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge isContinuousSpellCheckingEnabled]): Simple bridge method.
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer drawLineForMisspelling:withWidth:]): New method to add
        AppKit-style misspelling underline.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7210 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago156u, Safari 2.0 for TOT. The tree is open!
vicki [Fri, 6 Aug 2004 18:50:50 +0000 (18:50 +0000)]
156u, Safari 2.0 for TOT.  The tree is open!

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7209 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoSafari-155 stamp
vicki [Fri, 6 Aug 2004 18:45:35 +0000 (18:45 +0000)]
Safari-155 stamp

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7208 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago * WebView.subproj/WebHTMLView.m: Added a list of methods that NSTextView...
darin [Fri, 6 Aug 2004 03:18:41 +0000 (03:18 +0000)]
    * WebView.subproj/WebHTMLView.m: Added a list of methods that NSTextView implements that we don't.
        All inside #if 0.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7207 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed part of 3674747. The QT guys need this for feature freeze.
rjw [Fri, 6 Aug 2004 01:05:23 +0000 (01:05 +0000)]
    Fixed part of 3674747.  The QT guys need this for feature freeze.

        This patch implements support for the

        - (id)invokeUndefinedMethodFromWebScript:(NSString *)name withArguments:(NSArray *)args

        method of objects bound to JavaScript.

        Reviewed by John.

        * ChangeLog:
        * bindings/objc/objc_class.mm:
        (ObjcClass::methodsNamed):
        (ObjcClass::fieldNamed):
        * bindings/objc/objc_instance.mm:
        (ObjcInstance::invokeMethod):
        * bindings/objc/objc_runtime.h:
        (KJS::Bindings::ObjcMethod::~ObjcMethod):
        (KJS::Bindings::ObjcMethod::isFallbackMethod):
        (KJS::Bindings::ObjcMethod::javaScriptName):
        * bindings/objc/objc_runtime.mm:
        (ObjcMethod::ObjcMethod):
        (ObjcMethod::getMethodSignature):
        (ObjcMethod::setJavaScriptName):
        * bindings/testbindings.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7206 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fix for 3752542, stack overflow that crashes Safari at www.dr.dk. This bug is a...
hyatt [Thu, 5 Aug 2004 21:54:45 +0000 (21:54 +0000)]
Fix for 3752542, stack overflow that crashes Safari at dr.dk.  This bug is a regression caused by a fix that
attempted to repair <caption> behavior to make it behave like Panther.  This fix was incorrect, and in addition
even our <caption> behavior on Panther was incorrect.

The patch that fixes this bug also makes <caption> handling work when <caption>s are contained inside a <td>, a <tr>,
a <th>, or various table section tags (<tbody>, <tfoot>, <thead>).  The <caption> is pulled out and inserted just before
the relevant ancestor table section.  This behavior matches other browsers.

        Reviewed by mjs

        * khtml/html/htmlparser.cpp:
        (KHTMLParser::insertNode):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7202 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebKit:
cblu [Thu, 5 Aug 2004 21:52:32 +0000 (21:52 +0000)]
WebKit:

        Fixed unnecessary import of NSURLFileTypeMappings.

        * WebView.subproj/WebMainResourceClient.m:

WebBrowser:

Fixed unnecessary import of NSURLFileTypeMappings.

        * BrowserWebController.m:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7201 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Make builds conditionally include -framework Quartz.
rjw [Thu, 5 Aug 2004 19:27:30 +0000 (19:27 +0000)]
    Make builds conditionally include -framework Quartz.

        Reviewed by Chris.

        * WebKit.pbproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7200 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoadd a layout test for 3649789
vicki [Thu, 5 Aug 2004 00:18:08 +0000 (00:18 +0000)]
add a layout test for 3649789

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7194 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by mjs.
vicki [Wed, 4 Aug 2004 23:58:34 +0000 (23:58 +0000)]
    Reviewed by mjs.

- fix <rdar://problem/3649789> SAP WebGUI has problems loading first page because of parse error

* kjs/lexer.cpp:
        (Lexer::lex): if the current character is a '\' and the next character is a line terminator,
go to the next line and continue parsing the string (instead of failing).  This matches
behavior in Mac IE and Mozilla.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7193 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago The top-level XSL sheet is now loaded and shows up in the activity window. It is...
hyatt [Wed, 4 Aug 2004 22:05:48 +0000 (22:05 +0000)]
The top-level XSL sheet is now loaded and shows up in the activity window.  It is not yet parsed.

        Reviewed by kocienda

        * WebCore.pbproj/project.pbxproj:
        * khtml/css/css_base.h:
        (DOM::StyleBaseImpl::isXSLStyleSheet):
        * khtml/css/css_stylesheetimpl.cpp:
        (CSSStyleSheetImpl::CSSStyleSheetImpl):
        * khtml/css/css_stylesheetimpl.h:
        (DOM::StyleSheetImpl::isLoading):
        * khtml/misc/loader.cpp:
        * khtml/xml/dom_xmlimpl.cpp:
        (DOM::ProcessingInstructionImpl::ProcessingInstructionImpl):
        (DOM::ProcessingInstructionImpl::checkStyleSheet):
        (DOM::ProcessingInstructionImpl::sheet):
        (DOM::ProcessingInstructionImpl::isLoading):
        (DOM::ProcessingInstructionImpl::setStyleSheet):
        * khtml/xml/dom_xmlimpl.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7192 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Add XSL Stylesheets to the WebCore cache.
hyatt [Wed, 4 Aug 2004 20:25:16 +0000 (20:25 +0000)]
Add XSL Stylesheets to the WebCore cache.

        Reviewed by kocienda

        * khtml/misc/loader.cpp:
        (CachedXSLStyleSheet::CachedXSLStyleSheet):
        (CachedXSLStyleSheet::ref):
        (CachedXSLStyleSheet::deref):
        (CachedXSLStyleSheet::data):
        (CachedXSLStyleSheet::checkNotify):
        (CachedXSLStyleSheet::error):
        (DocLoader::requestXSLStyleSheet):
        (Cache::requestXSLStyleSheet):
        (Cache::getStatistics):
        * khtml/misc/loader.h:
        (khtml::CachedObject::):
        (khtml::CachedXSLStyleSheet::sheet):
        (khtml::CachedXSLStyleSheet::schedule):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7191 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago - fixed broken Deployment build
darin [Wed, 4 Aug 2004 16:50:33 +0000 (16:50 +0000)]
    - fixed broken Deployment build

        * Carbon.subproj/HIWebView.m: (Click):
        Remove code that checks err variable before setting it.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7190 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago First cut at dirt simple PDF support. This feature
rjw [Wed, 4 Aug 2004 00:30:27 +0000 (00:30 +0000)]
    First cut at dirt simple PDF support.  This feature
        depends on Quartz.framework (parent of PDFKit), which only exists
        on Tiger.  So, we "weak" link against Quartz.

        We do very basic PDF rendering.  Coming up are support for
        "Find..." and linearized PDF (incremental).  Linearized PDF
        support will require API changes in PDFKit.

        No UI is added to Safari, yet.

        Reviewed by John.

        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebDataSource.m:
        (+[WebDataSource _repTypesAllowImageTypeOmission:]):
        * WebView.subproj/WebFrameView.m:
        (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
        * WebView.subproj/WebPDFRepresentation.h: Added.
        * WebView.subproj/WebPDFRepresentation.m: Added.
        (-[WebPDFRepresentation finishedLoadingWithDataSource:]):
        (-[WebPDFRepresentation canProvideDocumentSource]):
        (-[WebPDFRepresentation documentSource]):
        (-[WebPDFRepresentation title]):
        * WebView.subproj/WebPDFView.h: Added.
        * WebView.subproj/WebPDFView.m: Added.
        (-[WebPDFView initWithFrame:]):
        (-[WebPDFView setDataSource:]):
        (-[WebPDFView dataSourceUpdated:]):
        (-[WebPDFView setNeedsLayout:]):
        (-[WebPDFView layout]):
        (-[WebPDFView viewWillMoveToHostWindow:]):
        (-[WebPDFView viewDidMoveToHostWindow]):

        Copied fix from Jaguar carbon/cocoa work.

        Reviewed by Darin (Jaguar version)

        * Carbon.subproj/CarbonWindowAdapter.h:
        * Carbon.subproj/CarbonWindowAdapter.m:
        (-[CarbonWindowAdapter relinquishFocus]):
        * Carbon.subproj/HIWebView.m:
        (Click):
        (OwningWindowChanged):
        (WindowHandler):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7189 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Add the text/xsl MIME type as one that can be displayed.
hyatt [Tue, 3 Aug 2004 23:58:15 +0000 (23:58 +0000)]
Add the text/xsl MIME type as one that can be displayed.

        Reviewed by john

        * WebView.subproj/WebDataSource.m:
        (+[WebDataSource _repTypesAllowImageTypeOmission:]):
        * WebView.subproj/WebFrameView.m:
        (+[WebFrameView _viewTypesAllowImageTypeOmission:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7188 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Hyatt
kocienda [Tue, 3 Aug 2004 23:40:49 +0000 (23:40 +0000)]
    Reviewed by Hyatt

        Changes to improve our handling of object tags during editing, including
        fixing this bug:

        <rdar://problem/3744533> Problem editing <OBJECT> elements displayed by WebPlugIns

        Part of the fix for this bug involves removing the close() function from render objects.
        It was decided that this code was no longer needed, as the work it did could be moved
        to other, more modern, places.

        Fixed this bug:

        <rdar://problem/3748537> crash due to nil node passed into parentNode in computeTypingStyle deleting text

        Finally, I filed and fixed this bug I discovered while fixing the one above:

        <rdar://problem/3749338> Select-all + delete leaves editing view without blinking caret

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::DeleteSelectionCommandImpl::computeTypingStyle): Fix for 3748537. Put in some more null
        checks. Bail, returning 0 for typing style if any null checks yield a null.
        (khtml::DeleteSelectionCommandImpl::doApply): Fix for 3749338. A removeNodeAndPrune call may wind
        up deleting the node where we calculated that we wanted to put the selection after deleting.
        If this happens, move this ending selection to a sensible alternative.
        (khtml::RemoveNodeAndPruneCommandImpl::doApply): Call previousNodeConsideringAtomicNodes instead
        of traversePreviousNode when doing the prune.
        * khtml/html/html_objectimpl.cpp:
        (HTMLObjectElementImpl::attach): Part of the fix for 3744533.
        (HTMLObjectElementImpl::recalcStyle): Change old strcmp check for type of renderer to be a call
        to canRenderImageType.
        (HTMLObjectElementImpl::childrenChanged): New function. Helps to keep object tags up to date
        as their children change. This also will help to make object tags respond properly to having their
        params changed by DOM calls.
        * khtml/html/html_objectimpl.h: Cosmetic change.
        * khtml/html/htmlparser.cpp:
        (KHTMLParser::insertNode): Remove call to obsolete closeRenderer() function.
        (KHTMLParser::popOneBlock): Ditto.
        * khtml/rendering/render_block.cpp:
        (khtml::RenderBlock::makeChildrenNonInline): Remove call to obsolete close() function.
        * khtml/rendering/render_container.cpp:
        (RenderContainer::updatePseudoChild): Ditto.
        * khtml/rendering/render_form.cpp: Remove obsolete close() function.
        * khtml/rendering/render_form.h: Ditto.
        * khtml/rendering/render_frames.cpp: Ditto.
        * khtml/rendering/render_frames.h: Ditto.
        * khtml/rendering/render_inline.cpp:
        (RenderInline::splitFlow): Remove calls to obsolete close() function.
        * khtml/rendering/render_object.h: Remove obsolete close() function.
        * khtml/rendering/render_table.cpp:
        (RenderTableCell::layout): Ditto.
        * khtml/rendering/render_table.h: Ditto.
        * khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::closeInternal): Remove call to obsolete close() function.
        * khtml/xml/dom_nodeimpl.cpp: Remove obsolete m_rendererNeedsClose initialization.
        (NodeImpl::NodeImpl): Remove obsolete closeRenderer() function.
        (NodeImpl::attach): Remove call to obsolete close() function.
        (NodeImpl::isAtomicNode): New function. Helps to fix 3744533. Determines if a node should
        be treated as an atomic node for the purposes of editing.
        (NodeImpl::previousNodeConsideringAtomicNodes): New helper to traverse tree taking atomic nodes
        into account.
        (NodeImpl::nextNodeConsideringAtomicNodes): Ditto.
        (NodeImpl::previousLeafNode): Now calls nextNodeConsideringAtomicNodes to iterate. This helps to
        prevent deleting PARAM tag portions of object tags erroneously.
        (NodeImpl::nextLeafNode): Ditto.
        * khtml/xml/dom_nodeimpl.h: Removed m_rendererNeedsClose bit. Added declarations for new functions.
        * khtml/xml/dom_position.cpp:
        (DOM::Position::equivalentDeepPosition): Now takes atomic nodes into account as it drills down into the
        tree.
        * khtml/xml/xml_tokenizer.cpp:
        (khtml::XMLTokenizer::endElement): Remove call to obsolete closeRenderer() function.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7187 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Add the deprecated text/xsl MIME type (introduced by Internet Explorer 5) as an...
hyatt [Tue, 3 Aug 2004 23:22:06 +0000 (23:22 +0000)]
Add the deprecated text/xsl MIME type (introduced by Internet Explorer 5) as an acceptable MIME type for XML
documents.

        Reviewed by john

        * khtml/ecma/xmlhttprequest.cpp:
        (KJS::XMLHttpRequest::getValueProperty):
        * khtml/khtml_part.cpp:
        (KHTMLPart::begin):
        * khtml/misc/loader.cpp:
        (CachedXBLDocument::CachedXBLDocument):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7186 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Darin.
kdecker [Tue, 3 Aug 2004 22:45:51 +0000 (22:45 +0000)]
    Reviewed by Darin.

Rolled in changes from the latest KJS sources that support additional
Number.prototype functions.

Specifically this patch covers the follow parts of the ECMA 3 spec:
   15.7.4.5, 15.7.4.6, and 15.7.4.7

Fixes:
<rdar://problem/3663716> missing Number.toFixed (and toPrecision, toExponential)
<rdar://problem/3749492> missing Number.toPrecision prototype implementation
<rdar://problem/3749591> missing Number.toExponential prototype implementation

        * kjs/identifier.h: Added toFixed, toPrecision, and toExponential to the
list of supported identifiers (a macro).
        * kjs/number_object.cpp: Implemented support for toFixed(), toPrecision(),
and toExponential().
        (NumberPrototypeImp::NumberPrototypeImp):
        (NumberProtoFuncImp::call):
        * kjs/number_object.h: Added property names for toFixed, toPrecision,
and toExponential.
        (KJS::NumberProtoFuncImp::):
        * tests/mozilla/expected.html: Update results.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7185 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
mjs [Tue, 3 Aug 2004 22:37:23 +0000 (22:37 +0000)]
    Reviewed by Ken.

- implemented enough of the NSTextInput protocol and added the
proper calls to NSInputManager to allow input methods to
work. However, the text is not marked yet.

        * WebView.subproj/WebHTMLViewInternal.h: Added new fields to track
marked range.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView markedRange]): Implemented
        (-[WebHTMLView conversationIdentifier]): Implemented
        (-[WebHTMLView hasMarkedText]): Implemented
        (-[WebHTMLView unmarkText]): Implemented
        (-[WebHTMLView setMarkedText:selectedRange:]): Implemented - does
not yet handle attributes in attributed strings
        (-[WebHTMLView insertText:]): Modified to handle replacing or abandoning
the marked text when set.
        (-[WebHTMLView _selectMarkedText]): new helper method, self-explanatory
        (-[WebHTMLView _setMarkedDOMRange:]): hitto.
        (-[WebHTMLView _selectRangeInMarkedText:]): ditto
        (-[WebHTMLView _discardMarkedText]): ditto
        (-[WebHTMLView _selectionIsInsideMarkedText]): ditto
        (-[WebHTMLView _updateSelectionForInputManager]): ditto

- did a bit of refactoring while I was in here.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _shouldReplaceSelectionWithText:givenAction:]): added this new
helper method to simplify the common case of calling the shouldInsertText: delegate
        (-[WebHTMLView pasteAsPlainText:]): use it
        (-[WebHTMLView insertTab:]): ditto
        (-[WebHTMLView insertNewline:]): ditto
        (-[WebHTMLView _changeWordCaseWithSelector:]): ditto
        (-[WebHTMLView _changeSpellingToWord:]): ditto
        (-[WebHTMLView _selectionChanged]): ditto

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7184 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed: <rdar://problem/3572737> Images not resizing at www.bmx-test.com (spoof nofix)
cblu [Tue, 3 Aug 2004 21:56:33 +0000 (21:56 +0000)]
Fixed: <rdar://problem/3572737> Images not resizing at bmx-test.com (spoof nofix)

        Reviewed by darin.

        * WebCoreSupport.subproj/WebImageRendererFactory.m:
        (-[WebImageRendererFactory supportedMIMETypes]): hard code image/pjpeg to the list of image mime types that we can handle

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7183 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
mjs [Tue, 3 Aug 2004 21:41:23 +0000 (21:41 +0000)]
    Reviewed by Ken.

- remove assertions that asserted text is non-empty, just avoid
doing anything for the empty case; this is needed because input
methods like to insert empty text in various cases.

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::InsertTextCommandImpl::InsertTextCommandImpl):
        (khtml::InsertTextCommandImpl::doApply):
        (khtml::InsertTextCommandImpl::doUnapply):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7182 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Tue, 3 Aug 2004 18:28:43 +0000 (18:28 +0000)]
    Reviewed by Ken.

        - added support for copying RegExp objects so 7 more Mozilla regexp tests pass

        * kjs/regexp_object.cpp: (RegExpObjectImp::construct): Check for case where
        we are supposed to just copy the regular expression object, and do so.
        Also tighten up arguments check to handle case where an actual "undefined"
        is passed rather than just omitting an argument.

        * tests/mozilla/expected.html: Update results.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7181 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
darin [Tue, 3 Aug 2004 18:09:44 +0000 (18:09 +0000)]
WebCore:

        Reviewed by Ken.

        - fixed <rdar://problem/3740937> ER: A way to turn a DOMRange into text (equivalent of -innerText)

        * khtml/xml/dom2_rangeimpl.h: Added text function. Like innerText, but on a range.
        * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::text): Added.

        * kwq/DOM.mm: (-[DOMRange _text]): Added. Calls DOM::RangeImpl::text.
        * kwq/DOMPrivate.h: Added.

        * WebCore.pbproj/project.pbxproj: Added DOMPrivate.h, an internal header (private in WebKit, internal here).

WebKit:

        Reviewed by Ken.

        - fixed <rdar://problem/3740937> ER: A way to turn a DOMRange into text (equivalent of -innerText)

        * DOM.subproj/DOMPrivate.h: Added.
        * WebKit.pbproj/project.pbxproj: Added DOMPrivate.h.
        * copy-webcore-files-to-webkit: Added DOMPrivate.h.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7180 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago * tests/mozilla/.cvsignore: Added.
darin [Mon, 2 Aug 2004 23:49:02 +0000 (23:49 +0000)]
    * tests/mozilla/.cvsignore: Added.
        * tests/mozilla/expected.html: Update results.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7179 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Mon, 2 Aug 2004 23:47:18 +0000 (23:47 +0000)]
    Reviewed by Ken.

        - fixed RegExp.toString so 3 more Mozilla regexp tests pass

        * kjs/regexp_object.cpp: (RegExpProtoFuncImp::call):
        Append the flags here so more tests paseed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7178 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoFix the install path so that WebCore will build again in B&I. Looks like some change...
vicki [Mon, 2 Aug 2004 23:43:26 +0000 (23:43 +0000)]
Fix the install path so that WebCore will build again in B&I.  Looks like some changes to the project file were accidentally committed (I saw "INSTALL_PATH_MODIFIED_BY_SCRIPT_DO_NOT_COMMIT").

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7176 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Mon, 2 Aug 2004 23:38:57 +0000 (23:38 +0000)]
    Reviewed by Ken.

        - fixed a couple things making 5 Mozilla regexp tests pass

        * kjs/regexp_object.cpp: (RegExpProtoFuncImp::call): Implement toString
        for the prototype.
        (RegExpObjectImp::construct): Fix bug where the string "undefined" would
        be used as the flags string when no parameter was passed.

        * kjs/regexp_object.h: (KJS::RegExpPrototypeImp::classInfo):
        Added a class info object for RegExp prototype so it can return
        a string instead of raising an exception when converting to a string.

        * tests/mozilla/expected.html: Update results.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7175 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
sullivan [Mon, 2 Aug 2004 22:31:00 +0000 (22:31 +0000)]
WebCore:

        Reviewed by Darin.

        WebCore part of fix for <rdar://problem/3631868> NSToolbar adoption:
        Tab key should cycle around toolbar and page content

        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge nextKeyViewInsideWebFrameViews]):
        Made this method start looking from the current focus node. This won't
        affect any existing callers because there were no existing callers.
        (-[WebCoreBridge previousKeyViewInsideWebFrameViews]):
        ditto

WebKit:

        Reviewed by Darin.

        WebKit part of fix for <rdar://problem/3631868> NSToolbar adoption:
        Tab key should cycle around toolbar and page content

        * WebView.subproj/WebHTMLView.m:
        removed overrides of nextKeyView and previousKeyView
        (-[WebHTMLView nextValidKeyView]):
        call super only if we can't move the focus within the frame hierarchy
        (-[WebHTMLView previousValidKeyView]):
        ditto
        * WebView.subproj/WebHTMLViewInternal.h:
        removed nextKeyViewAccessShouldMoveFocus ivar

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7174 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Create a #define for XSLT support that at the moment will only be enabled on Tiger.
hyatt [Mon, 2 Aug 2004 22:15:10 +0000 (22:15 +0000)]
Create a #define for XSLT support that at the moment will only be enabled on Tiger.

        Reviewed by kocienda

        * WebCorePrefix.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7173 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Kevin.
darin [Mon, 2 Aug 2004 21:44:42 +0000 (21:44 +0000)]
    Reviewed by Kevin.

        - fix crashes in mozilla tests due to mishandling NaN

        * kjs/array_object.cpp: (ArrayProtoFuncImp::call): Rerranged range checks after
        calls to toInteger so that NaN will get turned into something that fits in an integer.
        These were the ones John already fixed, but his fix used isnan and the new fix is
        more efficient.

        * kjs/number_object.cpp: (NumberProtoFuncImp::call): Rearranged radix range checks
        after a call to toInteger to handle NaN properly. Also removed separate check
        for undefined that's not needed.

        * kjs/string_object.cpp: (StringProtoFuncImp::call): More of the same kinds of changes
        as in the above two files, but for a lot more functions. Also changed one place with
        an explicit check for undefined to instead just check isNaN.

        * tests/mozilla/run-mozilla-tests: Changed to invoke jst using $SYMROOTS for people
        like me who don't keep $SYMROOTS in their $PATH.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7171 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoTests:
kocienda [Mon, 2 Aug 2004 18:38:57 +0000 (18:38 +0000)]
Tests:

        Reviewed by John

        Remove special code that placed the caret when the document loads.
        This is now handled by WebKit in a more generalized way.

        * Blot/Blot.xcode/project.pbxproj:
        * Blot/BlotDocument.m:
        (-[BlotDocument webView:didFinishLoadForFrame:]):

WebKit:

        Reviewed by John

        Update name of firstResponderIsSelfOrDescendantView, adding _web_ prefix to this SPI call.

        Do some work to make caret blinking in newly-created editable WebView's that are
        similar in structure to Blot more "automatic".

        * Misc.subproj/WebNSViewExtras.h: Change name of firstResponderIsSelfOrDescendantView. Add _web_ prefix.
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_firstResponderIsSelfOrDescendantView]): Name change.
        (-[NSView _web_firstResponderCausesFocusDisplay]): Adds an additional check for whether the view's
        is first responder. This helps to make the focus setting in viewDidMoveToWindow work right.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView updateFocusDisplay]): Use _web_firstResponderCausesFocusDisplay now instead of
        firstResponderIsSelfOrDescendantView.
        (-[WebHTMLView viewDidMoveToWindow]): Schedule call to updateFocusDisplay for the next crank of the
        run loop. The reason is that placing the caret in the just-installed view requires the HTML/XML
        document to be available on the WebCore side, but it is not at the time this code is running.
        However, it will be there on the next crank of the run loop. Doing this helps to make a
        blinking caret appear in a new, empty window "automatic".
        (-[WebHTMLView performKeyEquivalent:]):  _web_firstResponderIsSelfOrDescendantView name change.
        * WebView.subproj/WebView.m:
        (-[WebView _performResponderOperation:with:]): _web_firstResponderIsSelfOrDescendantView name change.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7170 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Hyatt
kocienda [Mon, 2 Aug 2004 18:04:45 +0000 (18:04 +0000)]
    Reviewed by Hyatt

        Fix for this bug:

        <rdar://problem/3747945> Deleting replaced element can cause crash

        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::layoutCaret): The crux of the problem is that
        the caret drawing code tries to draw the caret at the image
        offset after it has been removed from the document. So, make
        sure the start node for the selection is in the document before
        trying to lay out the caret using that node.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7169 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John
kocienda [Sat, 31 Jul 2004 17:32:45 +0000 (17:32 +0000)]
    Reviewed by John

        <rdar://problem/3745498> HTMLCompose: Can't edit new empty message (and typing eventually crashes)
        <rdar://problem/3746408> HTMLCompose: cannot type in message body of new messages (and tabbing causes a crash.)

        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::setDisplaysWithFocusAttributes): Add in some smarts to look around for
        a good place to put the caret if focus is turning "on", the part is contentEditable,
        and it does not currently have a selection. This has the effect of flashing the caret
        in a contentEditable view automatically without requiring the programmer to set a
        selection explicitly. This also fixes the bug listed above. Both are cases where the
        bad behavior happened since the editing code tried to process input without an active
        selection. I always took the extra step of setting the selection explicitly when
        opening new windows in programs like Blot, but it seems silly to require developers to
        do this in general. With this patch, they no longer need to.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7168 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John
kocienda [Sat, 31 Jul 2004 17:30:46 +0000 (17:30 +0000)]
    Reviewed by John

        Fix for this bug:

        <rdar://problem/3745498> HTMLCompose: Can't edit new empty message (and typing eventually crashes)

        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::layoutCaret): Don't bail when the start position of the selection is not in rendered
        content. The validate() bottleneck function will do all it can to make sure that the start is
        moved to rendered content if at all possible before this function runs. If no rendered position can
        be found, like in the case of an empty body element, we still want to flash the caret there.
        (DOM::Selection::validate): Look for rendered positions for the base and extent, but save off the
        base before making this move, and set the selection to the enclosing block flow element of this
        original base if no rendered positions can be found. This has the effect of flashing the caret
        someplace in an editable block, even if it does not contain any rendered content.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7167 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John
kocienda [Fri, 30 Jul 2004 18:09:46 +0000 (18:09 +0000)]
    Reviewed by John

        Fix a large number of editing layout test regressions.

        * khtml/misc/khtml_text_operations.cpp:
        (khtml::TextIterator::TextIterator): Use a new way to compute the end offset of a node for
        purposes of text iteration. The end offset is either child count of a node with children,
        or the maxOffset() of a node that does not.
        * khtml/xml/dom_nodeimpl.cpp: Remove maxOffset() implementation from NodeBaseImpl. This
        conflicted with the usage of this function that is needed for editing.
        * khtml/xml/dom_nodeimpl.h: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7164 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Next steps for spell checking: We have data structures for the marked pieces of
trey [Fri, 30 Jul 2004 17:32:06 +0000 (17:32 +0000)]
Next steps for spell checking:  We have data structures for the marked pieces of
text and the smarts to draw them (although at this point, they just get a green
underline instead of using the real AppKit pattern.)

Note we don't call this code outside of development, since at this point I suspect
it could be made to crash by mixing spelling and editing.

        Reviewed by Ken.

        * khtml/rendering/render_text.cpp:
        (InlineTextBox::paintMarker):  Paint one marker's intersection with a text run
        (RenderText::paint):  Find intersections of all markers and runs, call paintMarker
        * khtml/rendering/render_text.h:
        * khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::addMarker):  Adds a marker to a DOM Range.
        (DocumentImpl::removeMarker):  Removes a marker from a DOM Range.
        (DocumentImpl::addMarker):  Adds a marker to a single DOM Node, merging previous
markers as needed.
        (DocumentImpl::removeMarker):  Removes a marker from a single DOM Node, breaking
up previous markers as needed.
        (DocumentImpl::markersForNode):  Return markers for a Node.
        * khtml/xml/dom_docimpl.h:
        (DOM::DocumentMarker::):  New marker struct
        (DOM::DocumentMarker::operator == ):
        (DOM::DocumentMarker::operator != ):
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::advanceToNextMisspelling):  Mark misspelled ranges when we find them.
Debug only for now.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7163 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John.
mjs [Fri, 30 Jul 2004 04:18:19 +0000 (04:18 +0000)]
    Reviewed by John.

Added stubbed-out versions of all the NSTextInput protocol
methods, and put comments in places where we will need to call the
input manager to make input methods work 100%.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge respondToChangedSelection]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView mouseDown:]):
        (-[WebHTMLView mouseDragged:]):
        (-[WebHTMLView mouseUp:]):
        (-[WebHTMLView _interceptEditingKeyEvent:]):
        (-[WebHTMLView keyDown:]):
        (-[WebHTMLView _selectionChanged]):
        (-[WebHTMLView _delegateDragSourceActionMask]):
        (-[WebHTMLView validAttributesForMarkedText]):
        (-[WebHTMLView characterIndexForPoint:]):
        (-[WebHTMLView firstRectForCharacterRange:]):
        (-[WebHTMLView selectedRange]):
        (-[WebHTMLView markedRange]):
        (-[WebHTMLView attributedSubstringFromRange:]):
        (-[WebHTMLView conversationIdentifier]):
        (-[WebHTMLView hasMarkedText]):
        (-[WebHTMLView unmarkText]):
        (-[WebHTMLView setMarkedText:selectedRange:]):
        (-[WebHTMLView doCommandBySelector:]):
        (-[WebHTMLView insertText:]):
        * WebView.subproj/WebHTMLViewInternal.h:
        * WebView.subproj/WebView.m:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7160 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Darin.
mjs [Fri, 30 Jul 2004 01:22:18 +0000 (01:22 +0000)]
    Reviewed by Darin.

<rdar://problem/3745808> Seed: WebKit: Table's caption broken

        * khtml/html/htmlparser.cpp:
        (KHTMLParser::insertNode): When a caption appears in an illegal
place in a table, pop blocks until we hit a place where it's
allowed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7158 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago155u, 2.0 for TOT. The tree is open!
vicki [Thu, 29 Jul 2004 21:51:02 +0000 (21:51 +0000)]
155u, 2.0 for TOT.  The tree is open!

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7157 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoSafari-154 stamp
vicki [Thu, 29 Jul 2004 21:45:22 +0000 (21:45 +0000)]
Safari-154 stamp

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7155 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Thu, 29 Jul 2004 20:18:05 +0000 (20:18 +0000)]
    Reviewed by Ken.

        - fill in some unimplemented methods

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView moveToBeginningOfDocument:]): Implement, using new document granularity.
        (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToBeginningOfParagraph:]): Implement, even though the underlying WebCore
        code is not yet implemented.
        (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToEndOfDocument:]): More of the same.
        (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToEndOfParagraph:]): More of the same.
        (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]): Ditto.
        (-[WebHTMLView pageDown:]): Added comment describing desired behavior.
        (-[WebHTMLView pageUp:]): Ditto.
        (-[WebHTMLView copyFont:]): Ditto.
        (-[WebHTMLView pasteFont:]): Ditto.
        (-[WebHTMLView changeAttributes:]): Ditto.
        (-[WebHTMLView indent:]): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7154 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Thu, 29 Jul 2004 20:04:08 +0000 (20:04 +0000)]
    Reviewed by Ken.

        - added constants for motion across entire document for use in operations like
          move to beginning of document

        * khtml/xml/dom_selection.h: Added DOCUMENT to ETextGranularity.
        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::modifyExtendingRightForward): Added case for DOCUMENT.
        (DOM::Selection::modifyMovingRightForward): Added case for DOCUMENT.
        (DOM::Selection::modifyExtendingLeftBackward): Added case for DOCUMENT.
        (DOM::Selection::modifyMovingLeftBackward): Added case for DOCUMENT.
        (DOM::Selection::validate): Changed if statements into switch statement,
        added case for DOCUMENT.

        * kwq/WebCoreBridge.h: Added WebCoreBridge to WebSelectionGranularity.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7153 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Small refinement of last checkin. The text iterators now return reasonable values
trey [Thu, 29 Jul 2004 18:06:34 +0000 (18:06 +0000)]
Small refinement of last checkin.  The text iterators now return reasonable values
for range() when atEnd, which gets rid of special cases and pitfalls in the client.

        Reviewed by Ken.

        * khtml/misc/khtml_text_operations.cpp:
        (khtml::TextIterator::TextIterator):  Set endOffset to a valid value instead of
using LONG_MAX.
        (khtml::TextIterator::range):  Implement when atEnd.
        (khtml::CharacterIterator::range):  Don't massage result when atEnd.
        (khtml::WordAwareIterator::WordAwareIterator):  Now that this is fixed, we no
longer need this special case.
        (khtml::WordAwareIterator::advance):  Always set range, even when atEnd, now that
TextIterator::range() always works.
        * khtml/xml/dom_nodeimpl.cpp:
        (NodeImpl::childNodeCount):  Made const
        (NodeBaseImpl::maxOffset):  Add missing implementation
        * khtml/xml/dom_nodeimpl.h:
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::advanceToNextMisspelling):  Get rid of special cases, always call
range on our iterator even when it is atEnd.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7152 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed: <rdar://problem/3737864> Can not download image from web by using drag and...
cblu [Thu, 29 Jul 2004 00:09:19 +0000 (00:09 +0000)]
Fixed: <rdar://problem/3737864> Can not download image from web by using drag and drop

        Reviewed by john.

        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]): On Tiger, to use NSFilesPromisePboardType with other pasteboard types, set the file types of the promise on the pasteboard as a property list instead of mucking with the NSFilePromiseDragSource class

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7151 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John.
mjs [Wed, 28 Jul 2004 23:15:02 +0000 (23:15 +0000)]
    Reviewed by John.

- avoid triggering an assertion when using dead keys (like option-e)

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView insertText:]): Don't pass zero-length strings to
WebCore. Dead-key input seems to insert empty strings as a side
effect.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7150 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Trey.
mjs [Wed, 28 Jul 2004 22:46:21 +0000 (22:46 +0000)]
    Reviewed by Trey.

<rdar://problem/3678534> controls on page at http://help.sap.com don't work properly

        To fix this I implemented the various JavaScript BarInfo properties in JavaScript.

* khtml/ecma/kjs_window.cpp:
        (Window::Window):
        (Window::locationbar):
        (Window::menubar):
        (Window::personalbar):
        (Window::statusbar):
        (Window::toolbar):
        (Window::scrollbars):
        (Window::mark):
        (Window::get):
        (SelectionFunc::tryCall):
        (BarInfo::BarInfo):
        (BarInfo::~BarInfo):
        (BarInfo::get):
        (BarInfo::put):
        * khtml/ecma/kjs_window.h:
        (KJS::Window::):
        (KJS::BarInfo::):
        (KJS::BarInfo::part):
        (KJS::BarInfo::classInfo):
        * khtml/ecma/kjs_window.lut.h:
        (KJS::):
        * kwq/KWQKHTMLPart.h:
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::locationbarVisible):
        (KWQKHTMLPart::menubarVisible):
        (KWQKHTMLPart::personalbarVisible):
        (KWQKHTMLPart::scrollbarsVisible):
        (KWQKHTMLPart::statusbarVisible):
        (KWQKHTMLPart::toolbarVisible):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7149 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by me
kocienda [Wed, 28 Jul 2004 22:38:40 +0000 (22:38 +0000)]
    Reviewed by me

        Added more layout tests.

        * layout-tests/editing/style/style-3681552-fix-001-expected.txt: Added.
        * layout-tests/editing/style/style-3681552-fix-001.html: Added.
        * layout-tests/editing/style/style-3681552-fix-002-expected.txt: Added.
        * layout-tests/editing/style/style-3681552-fix-002.html: Added.
        * layout-tests/editing/style/style-3690704-fix-expected.txt: Added.
        * layout-tests/editing/style/style-3690704-fix.html: Added.
        * layout-tests/editing/style/typing-style-001-expected.txt: Added.
        * layout-tests/editing/style/typing-style-001.html: Added.
        * layout-tests/editing/style/typing-style-002-expected.txt: Added.
        * layout-tests/editing/style/typing-style-002.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7148 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by me
kocienda [Wed, 28 Jul 2004 21:52:30 +0000 (21:52 +0000)]
    Reviewed by me

        Added some layout tests.

        * layout-tests/editing/selection/select-all-001-expected.txt: Added.
        * layout-tests/editing/selection/select-all-001.html: Added.
        * layout-tests/editing/selection/select-all-002-expected.txt: Added.
        * layout-tests/editing/selection/select-all-002.html: Added.
        * layout-tests/editing/selection/select-all-003-expected.txt: Added.
        * layout-tests/editing/selection/select-all-003.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7147 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoTests:
trey [Wed, 28 Jul 2004 21:24:47 +0000 (21:24 +0000)]
Tests:

Cut out unimplemented spelling methods.  WebKit implements them.

        Reviewed by Ken

        * Blot/BlotDocument.h:
        * Blot/BlotDocument.m:

WebCore:

Spellchecking, Part I.  Basic spellcheck is working.  Spelling panel is hooked up.

At this point, no special marking of misspellings, no grammar check, no context
menu integration, no "check continually" mode.

Much of the TextIterator and CharacterIterator interface got published outside
of khtml_text_operations.cpp, with a little API rationalizing.

        Reviewed by Ken.

        * khtml/misc/khtml_text_operations.cpp:
        (khtml::TextIterator::range):  Name changes.
        (khtml::CharacterIterator::CharacterIterator):  Ditto.
        (khtml::CharacterIterator::range):  Ditto.
        (khtml::CharacterIterator::advance):  Ditto.
        (khtml::CharacterIterator::string):  New method to consume chars into a string.
        (khtml::WordAwareIterator::WordAwareIterator):  New class that iterates over
the text respecting word boundaries.
        (khtml::WordAwareIterator::advance):
        (khtml::WordAwareIterator::length):
        (khtml::WordAwareIterator::characters):
        (khtml::plainText):  Name changes.
        (khtml::findPlainText):  Ditto.

API moved from cpp to header file.
        * khtml/misc/khtml_text_operations.h:
        (khtml::TextIterator::atEnd):
        (khtml::TextIterator::length):
        (khtml::TextIterator::characters):
        (khtml::CharacterIterator::atBreak):
        (khtml::CharacterIterator::atEnd):
        (khtml::CharacterIterator::length):
        (khtml::CharacterIterator::characters):
        (khtml::CharacterIterator::characterOffset):
        (khtml::WordAwareIterator::atEnd):
        (khtml::WordAwareIterator::range):

        * khtml/xml/dom_position.cpp:
        (DOM::Position::previousWordBoundary):  New name for the old routine.  This routines semantics
match the current behavior of this code.
        (DOM::Position::nextWordBoundary):  Ditto.
        (DOM::Position::previousWordPosition):  Call old code with the new name.  When we fix
word advancement, this routine will have its own impl.
        (DOM::Position::nextWordPosition):  Ditto.
        * khtml/xml/dom_position.h:
        * khtml/xml/dom_selection.h:
        (DOM::Selection::rangeStart):  New convenience methods
        (DOM::Selection::rangeEnd):
        * kwq/KWQKHTMLPart.h:
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::findString):  Ensure we use range-compatible positions.
        (KWQKHTMLPart::advanceToNextMisspelling):  Brand new.
        * kwq/WebCoreBridge.h:
        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge advanceToNextMisspelling]):  Typical bridge glue.

WebKit:

Spellchecking, Part I.  Basic spellcheck is working.  Spelling panel is hooked up.

At this point, no special marking of misspellings, no grammar check, no context
menu integration, no "check continually" mode.

        Reviewed by Ken.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge spellCheckerDocumentTag]):  Typical bridge glue.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView validateUserInterfaceItem:]):  Validate various spelling actions.
        (-[WebHTMLView checkSpelling:]):  Call WC for real work, update panel.
        (-[WebHTMLView showGuessPanel:]):  Show panel, call WC for real work.
        (-[WebHTMLView _changeSpellingToWord:]):  Apply correction to our doc.
        (-[WebHTMLView changeSpelling:]):  Simple pass through to above method.
        (-[WebHTMLView ignoreSpelling:]):  Tell checker to ignore the word.
        * WebView.subproj/WebView.m:
        (-[WebView _close]):  Call AK's closeSpellDocumentWithTag: for proper cleanup.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7146 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoTools:
kocienda [Wed, 28 Jul 2004 21:14:14 +0000 (21:14 +0000)]
Tools:

        Reviewed by John

        Added debugging summary output for CSSStyleDeclarationImpl

        * LabyrinthDataFormatters/CustomDataViews.plist:
        * LabyrinthDataFormatters/LabyrinthDataFormatters.cpp:
        (LabyrinthDataFormatCSSStyleDeclarationImpl):
        * LabyrinthDataFormatters/LabyrinthDataFormatters.h:
        * LabyrinthDataFormatters/LabyrinthDataFormatters.xcode/project.pbxproj:

WebCore:

        Reviewed by John

        Export a couple more symbols for test programs.

        * WebCore-combined.exp:
        * WebCore-tests.exp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7145 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago We're changing the way color is specified as a parameter in the
rjw [Wed, 28 Jul 2004 20:43:31 +0000 (20:43 +0000)]
    We're changing the way color is specified as a parameter in the
        <canvas> API.  Colors are now specified using the CSS color
        functions (or old style names or "#").  For example
        'context.setStrokeColor ("rgba(128,128,128,0.5)")'.  Most of the
        patch is cleanup of duplicated code in cssparser.cpp and a new
        static function that'll crank up the CSS parser to parse the
        color. This patch leaves the old mechanisms in place for now, so
        we don't break any existing gadgets.

        Reviewed by John.

        * WebCore.pbproj/project.pbxproj:
        * khtml/css/cssparser.cpp:
        (CSSParser::CSSParser):
        (CSSParser::setupParser):
        (CSSParser::parseSheet):
        (CSSParser::parseRule):
        (CSSParser::parseValue):
        (CSSParser::parseColor):
        (CSSParser::parseDeclaration):
        * khtml/css/cssparser.h:
        * khtml/ecma/kjs_html.cpp:
        (KJS::Context2DFunction::tryCall):

        * kwq/KWQColor.h:
        (QColor::alpha):
Added alpha() function to QColor, use instead of quirky
qAlpha() global function.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7144 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Trey
kocienda [Wed, 28 Jul 2004 20:28:06 +0000 (20:28 +0000)]
    Reviewed by Trey

        Only apply the typing style if it is non-null and has a length.
        This fixes a problem Trey noticed with my last checkin, where
        typed characters were placed in empty "typing style" spans.

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::InputNewlineCommandImpl::doApply)
        (khtml::InputTextCommandImpl::prepareForTextInsertion)

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7143 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Maciej
kocienda [Wed, 28 Jul 2004 18:33:27 +0000 (18:33 +0000)]
    Reviewed by Maciej

        Fixed this bug:

        <rdar://problem/3690704> marking partly bold text italic across blocks wrongly extends the bold section

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::ApplyStyleCommandImpl::doApply): Fixed loop that gathers up groups of nodes to
        pass off to the function that applies styles. While this is meant to be conservative in
        order to leave the DOM well-formed in all cases, it contained an error where the set
        of nodes to be styled together erroneously could include a node that was meant for
        the next set. Fixed.
        (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Unrelated change to remove DOM:: scope
        resolution qualifier. Unneeded here.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7137 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Trey.
darin [Wed, 28 Jul 2004 16:36:14 +0000 (16:36 +0000)]
    Reviewed by Trey.

        - fixed <rdar://problem/3658471> REGRESSION: Node.appendChild( ) fails when parent already contains that child

        * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::isAncestor): Restore the original meaning of this function.
        It returns true if the parameter is an ancestor of this, but had been changed to return true if this
        is an ancestor of the parameter. However, we do retain one change we made at the same time, which is
        that it does not consider a node an ancestor of itself.

        * khtml/editing/htmlediting_impl.cpp: (khtml::ApplyStyleCommandImpl::nodeFullySelected):
        * khtml/xml/dom2_traversalimpl.cpp: (DOM::NodeIteratorImpl::notifyBeforeNodeRemoval):
        Reverse parameters for callers who wanted the new meaning of isAncestor, with care to not use it in
        any cases where the pointer might be 0.

        * khtml/xml/dom_nodeimpl.h: Added const to the parameter to make things more symmetric and allow the
        new uses to all compile.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7136 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Darin
kocienda [Wed, 28 Jul 2004 16:22:45 +0000 (16:22 +0000)]
    Reviewed by Darin

        Fix for this bug:

        <rdar://problem/3681552> html editing needs to preserve typing font when replacing selection

        * khtml/css/css_valueimpl.cpp:
        (CSSStyleDeclarationImpl::merge): New helper that merges styles together. Helpful for
        dealing with typing styles.
        * khtml/css/css_valueimpl.h:
        * khtml/editing/htmlediting_impl.cpp:
        (khtml::DeleteSelectionCommandImpl::computeTypingStyle): New helper that updates the
        typing style based on the current selection. This is a convenient bottleneck for all
        the code that needs to worry about typing style.
        (khtml::DeleteSelectionCommandImpl::doApply): Update typing style before doing the delete.
        (khtml::InputNewlineCommandImpl::doApply): No need to redeclare exceptionCode local.
        Improve comments.
        (khtml::InputTextCommandImpl::prepareForTextInsertion): Remove unneeded complication when
        figuring out where to insert style node. Not even sure what I was trying to do here, but
        it does not seem to be needed any more.
        (khtml::InputTextCommandImpl::execute): Remove unneeded comment.
        * khtml/editing/htmlediting_impl.h: Declare new computeTypingStyle helper.
        * khtml/khtml_part.cpp:
        (KHTMLPart::setCaretVisible): Call selectionLayoutChanged instead of notifySelectionChanged
        in this function. The selection did not change simply by calling this function, but it
        does need a layout.
        (KHTMLPart::notifySelectionChanged): Treat clearing the typing style much like closing typing,
        instead of clearing it unconditionally.
        (KHTMLPart::applyStyle): In the case where the current selection is a caret, merge the
        style being applied with any current typing style that already exists.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7135 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Wed, 28 Jul 2004 15:45:53 +0000 (15:45 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3711080> REGRESSION (125-146): form fields have shrunk by 1 pixel, and now clip descenders

        * kwq/KWQLineEdit.mm: (QLineEdit::sizeForCharacterWidth):
        Compute the size without ever calling cellSize. After talking with Andrew Platzer,
        we decided that hard-coding the size of the borders of a text field was the best
        way for WebCore to handle this.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7134 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Wed, 28 Jul 2004 14:45:03 +0000 (14:45 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3743204> REGRESSION: crash at startribune.com in InlineBox::root()

        * khtml/rendering/render_flow.cpp: (RenderFlow::dirtyLinesFromChangedChild):
        Added a check for nil.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7133 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Trey.
darin [Wed, 28 Jul 2004 14:31:55 +0000 (14:31 +0000)]
    Reviewed by Trey.

        - fixed <rdar://problem/3743138> opaque colors come out of getComputedStyle as "rgba", transparent ones as "rgb"

        * khtml/css/css_valueimpl.cpp: (CSSPrimitiveValueImpl::cssText): Use "rgb" rather than
        "rgba" when alpha is 0xFF, not when alpha is 0.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7132 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Hyatt
kocienda [Tue, 27 Jul 2004 22:00:32 +0000 (22:00 +0000)]
    Reviewed by Hyatt

        Fixed the problem where BR elements on lines by themselves don't paint when selected.

        * khtml/khtml_part.cpp:
        (KHTMLPart::selectAll): Related fix. Include BR's when figuring out what "all" is.
        * khtml/rendering/render_br.cpp:
        (RenderBR::paint): New function implementation. Teach BR's how to paint selections.
        * khtml/rendering/render_br.h:
        * khtml/rendering/render_text.cpp:
        (InlineTextBox::paintSelection): Fix some geometry calculations to be more readable (i.e. don't
        reuse function argument as a local). Also, improve the logic for determining whether to
        extend the selection to block boundaries.
        (RenderText::paint): Remove extendSelection argument from paintSelection. The logic to figure out
        extensions is now fully contained in paintSelection.
        * khtml/rendering/render_text.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7131 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebKit:
sullivan [Tue, 27 Jul 2004 20:13:14 +0000 (20:13 +0000)]
WebKit:

        Reviewed by Trey.

        WebKit part of fix for <rdar://problem/3622268> Reload failed pages when a
        network problem is corrected, inc. using Network Diagnostics

        * WebView.subproj/WebFrame.m:
        (-[WebFrame reload]):
        This method did not handle unreachableURLs at all. The reason Safari's Reload
        did work with unreachableURLs was that Safari does "reloadObeyingLocationField"
        which never actually calls -[WebFrame reload]. Fixed by creating a fresh
        request for the previously-unreachable URL.

WebBrowser:

        Reviewed by Trey.

        - part of fix for <rdar://problem/3622268> Reload failed pages when a network
        problem is corrected, inc. using Network Diagnostics

        We don't actually use Network Diagnostics yet, but we now react to network
        configuration changes by reloading any error pages. Using Network Diagnostics
        is the remaining part of 3622268.

        * NetworkController.h: Added. New file, copied and simplified from Message project.
        * NetworkController.m: Added. New file, copied and simplified from Message project.
        (+[NetworkController sharedInstance]):
        returns singleton instance
        (-[NetworkController dealloc]):
        release ivars
        (-[NetworkController init]):
        call _listenForNetworkChanges
        (-[NetworkController _postNetworkChangeNotification:]):
        post notification that network configuration changed
        (_networkChangeCallBack):
        call _postNetworkChangeNotification after a delay to coalesce multiple
        SystemConfiguration callbacks
        (_listenForNetworkChanges):
        register with SystemConfiguration for network changes

        * BrowserWebController.h:
        new ivar _registeredForNetworkConfigurationChanges
        * BrowserWebController.m:
        (-[BrowserWebView dealloc]):
        if registered for network config changes, remove appropriate observer
        (-[BrowserWebView networkConfigurationDidChange:]):
        reload main frame if it's showing an unreachable URL
        (-[BrowserWebView showErrorPageForURL:withTitle:message:]):
        register for network config changes if necessary

        * WebBrowser.pbproj/project.pbxproj:
        updated for new files and for including the SystemConfiguration framework

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7130 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fix for 3665211 (again). Make sure not to leave child line boxes pointing to delete...
hyatt [Tue, 27 Jul 2004 17:47:40 +0000 (17:47 +0000)]
Fix for 3665211 (again).  Make sure not to leave child line boxes pointing to deleted ancestor line boxes.

        Reviewed by kocienda

        * khtml/rendering/render_block.cpp:
        (khtml::RenderBlock::removeChild):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7129 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed 3739737. When setting the focus to a NSView, set the focus
rjw [Mon, 26 Jul 2004 23:25:19 +0000 (23:25 +0000)]
    Fixed 3739737.  When setting the focus to a NSView, set the focus
        carbon focus to kControlIndicatorPart.  kControlIndicatorPart is a
        placeholder value for use to indicate that Cocoa has the focus.

        Reviewed by Ken.

        * Carbon.subproj/CarbonWindowAdapter.m:
        (-[CarbonWindowAdapter makeFirstResponder:]):
        * Carbon.subproj/HIWebView.m:
        (Click):
        (SetFocusPart):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7128 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed: WebView scrolls to the top after making an editing change via drag & drop
cblu [Mon, 26 Jul 2004 23:13:48 +0000 (23:13 +0000)]
Fixed: WebView scrolls to the top after making an editing change via drag & drop

        Fixed by Ken, reviewed by me.

        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge ensureCaretVisible]): do nothing if the selection is not a caret

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7127 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed: <rdar://problem/3689734> dragging to an editable WebView does not scroll...
cblu [Mon, 26 Jul 2004 23:13:19 +0000 (23:13 +0000)]
Fixed: <rdar://problem/3689734> dragging to an editable WebView does not scroll document

        Reviewed by rjw.

        * WebView.subproj/WebView.m:
        (-[WebView documentViewAtWindowPoint:]): new, factored from draggingDocumentViewAtWindowPoint:
        (-[WebView _draggingDocumentViewAtWindowPoint:]): call documentViewAtWindowPoint:
        (-[WebView _autoscrollForDraggingInfo:timeDelta:]): forward call to the document view
        (-[WebView _shouldAutoscrollForDraggingInfo:]): ditto

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7126 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agochange version number to 154u, 2.0
vicki [Mon, 26 Jul 2004 23:09:37 +0000 (23:09 +0000)]
change version number to 154u, 2.0

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7125 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoSafari-153 stamp
vicki [Mon, 26 Jul 2004 23:01:13 +0000 (23:01 +0000)]
Safari-153 stamp

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7123 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John.
mjs [Mon, 26 Jul 2004 22:45:51 +0000 (22:45 +0000)]
    Reviewed by John.

<rdar://problem/3740855> REGRESSION: Flash incorrectly positioned at macromedia.com

        * khtml/html/htmltokenizer.cpp:
        (khtml::HTMLTokenizer::scriptExecution): Do the prepending-src
trick as for inline script execution.

Added new layout tests covering this and other recent tokenizer
bugs.

        * layout-tests/fast/tokenizer/001-expected.txt: Added.
        * layout-tests/fast/tokenizer/001.html: Added.
        * layout-tests/fast/tokenizer/002-expected.txt: Added.
        * layout-tests/fast/tokenizer/002.html: Added.
        * layout-tests/fast/tokenizer/003-expected.txt: Added.
        * layout-tests/fast/tokenizer/003.html: Added.
        * layout-tests/fast/tokenizer/resources/003-script.js: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7122 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Changes done by Darin, reviewed by Kevin.
kdecker [Mon, 26 Jul 2004 22:31:54 +0000 (22:31 +0000)]
    Changes done by Darin, reviewed by Kevin.

        - changed testkjs to build in Xcode rather than from Makefile

        * .cvsignore: Removed obsolete files from this list.
        * Makefile.am: Removed code to build testkjs; we do this in Xcode now.
        Changed to build target "All" rather than default target. This makes us
        build the testkjs test tool.
        * dummy.cpp: Removed.
        * kjs/.cvsignore: Removed obsolete files from this list, including
        the testkjs tool, which is now built in the symroots directory.
        * kjs/testkjs.cpp: Added copyright notice that was missing, since we have
        changed this file. Also this has the nice side effect of causing the tool
        to be rebuilt in the new location even if there are no other changes in
        your tree when you check this out.
        * tests/mozilla/run-mozilla-tests: Invoke perl explicitly so this works
        without setting the execute bit on jsDriver.pl.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7121 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
kocienda [Fri, 23 Jul 2004 23:17:24 +0000 (23:17 +0000)]
WebCore:

        Reviewed by Trey

        Fix for this bug:

        <rdar://problem/3738920> Caret blinks in inactive window

        As part of the fix, I cleaned up the way we handle special drawing that needs
        to be done in the HTML view that is first responder in the key window (e.g the
        drawing of text selection highlight and caret blinking).

        * khtml/khtml_part.cpp: Removed setCaretVisible function. Updating caret visibility
        is now done in setDisplaysWithFocusAttributes, described below.
        * khtml/khtml_part.h: Ditto.
        * khtml/khtmlpart_p.h:
        (KHTMLPartPrivate::KHTMLPartPrivate): m_caretVisible now defaults to false. This prevents
        the caret from blinking when an app is started from the command line and remains in the
        background.
        * khtml/khtmlview.cpp:
        (KHTMLView::focusInEvent): Remove caret code from here. Not needed.
        (KHTMLView::focusOutEvent): Ditto.
        * kwq/KWQKHTMLPart.h:
        (KWQKHTMLPart::displaysWithFocusAttributes): New accessor to return cached value to other code
        in WebCore.
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::KWQKHTMLPart):
        (KWQKHTMLPart::setDisplaysWithFocusAttributes): Renamed from setShowsFirstResponder and modified
        to do the display updating in a clearer way....and now has comments!
        * kwq/WebCoreBridge.h: Remove several obsolete functions that use to try to do the work of the new
        setDisplaysWithFocusAttributes function (and did so less well).
        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge drawRect:]): Now calls displaysWithFocusAttributes to figure out how to draw the
        text selection background.
        (-[WebCoreBridge setDisplaysWithFocusAttributes:]): Calls through to setDisplaysWithFocusAttributes in
        KWQKHTMLPart.
        (-[WebCoreBridge selectionColor]): Flipped the value of this ternary expression to accommodate the
        change from usesInactiveTextBackgroundColor to setDisplaysWithFocusAttributes.
        (-[WebCoreBridge setCaretVisible:]): Removed.

WebKit:

        Reviewed by Trey

        Fix for this bug:

        <rdar://problem/3738920> Caret blinks in inactive window

        As part of the fix, I cleaned up the way we handle special drawing that needs
        to be done in the HTML view that is first responder in the key window (e.g the
        drawing of text selection highlight and caret blinking).

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView updateFocusDisplay]): New method that centralizes the changes
        we need to make when the first responder-ness of the view or key-ness of the
        window changes.
        (-[WebHTMLView viewDidMoveToWindow]): Call new updateFocusDisplay helper.
        (-[WebHTMLView windowDidBecomeKey:]): Ditto.
        (-[WebHTMLView windowDidResignKey:]): Ditto.
        (-[WebHTMLView becomeFirstResponder]): Ditto.
        (-[WebHTMLView resignFirstResponder]): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7116 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Maciej.
sullivan [Fri, 23 Jul 2004 21:42:11 +0000 (21:42 +0000)]
    Reviewed by Maciej.

        - fixed <rdar://problem/3691569> REGRESSION (142): cmd-shift-clicking on a link
        now also extends selection (even if there wasn't one before)

        * khtml/khtml_part.cpp:
        (KHTMLPart::handleMousePressEventSingleClick):
        Uh, duh. Got a ! wrong last time somehow, so it did even more the wrong thing
        than ever. I did test this before, so my best guess is an accidental undo or
        something before committing.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7115 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fix for 3735084 and 3737209, when you can find no line boxes in your previous siblin...
hyatt [Fri, 23 Jul 2004 17:58:01 +0000 (17:58 +0000)]
Fix for 3735084 and 3737209, when you can find no line boxes in your previous sibling, the line box to dirty
should be the *first* line box and not the last.

        Reviewed by kocienda

        * khtml/rendering/render_flow.cpp:
        (RenderFlow::dirtyLinesFromChangedChild):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7114 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John
kocienda [Fri, 23 Jul 2004 16:16:27 +0000 (16:16 +0000)]
    Reviewed by John

        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::validate): Not exactly a fix of anything per se, but more of a refinement
        of how selection validation works. The idea is to let the selection validation process
        end up with an empty selection given real DOM position inputs if the validation code
        cannot find a rendered position. Since selection is all about display, this makes sense.
        Currently, the code will allow the selection to be placed in a location that is not
        rendered, and this does nobody any good, as it can lead to bugs like accepting key input
        in a div that is set to display:none.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7110 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by me
kocienda [Fri, 23 Jul 2004 14:39:45 +0000 (14:39 +0000)]
    Reviewed by me

        Updated layout tests with new expected results.

        * layout-tests/editing/execCommand/boldSelection-expected.txt
        * layout-tests/editing/selection/extend-by-character-001-expected.txt
        * layout-tests/editing/selection/extend-by-character-003-expected.txt
        * layout-tests/editing/selection/unrendered-005-expected.txt

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7109 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Kevin.
mjs [Fri, 23 Jul 2004 07:25:13 +0000 (07:25 +0000)]
    Reviewed by Kevin.

<rdar://problem/3725467> REGRESSION(140-142) nothing displayed at http://Ye-Olde-Movies.tripod.com
<rdar://problem/3599494> REGRESSION (100-125): Frame does not refresh until user clicks on browser.

        * khtml/rendering/render_frames.cpp:
        (RenderFrameSet::layout): When returning early because there are
no children, make sure to mark self as no longer needing
layout. Otherwise, when children are added, we'll fail to
propagate childrenNeedLayout to our own parent! This is almost
certainly a long-standing bug that was just masked by our old
layout tomfoolery.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7108 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Darin
kdecker [Thu, 22 Jul 2004 23:43:29 +0000 (23:43 +0000)]
Reviewed by Darin

Fixed <rdar://problem/3682340> (error console does not include source urls or line numbers of event exceptions).

        * khtml/ecma/kjs_events.cpp:
        (JSLazyEventListener::JSLazyEventListener):
        (JSLazyEventListener::parseCode):
        * khtml/ecma/kjs_events.h:
        * khtml/ecma/kjs_proxy.cpp:
        (KJSProxyImpl::createHTMLEventHandler):
        * khtml/ecma/kjs_window.cpp:
        (Window::getJSLazyEventListener):
        * khtml/ecma/kjs_window.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7106 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Darin
kdecker [Thu, 22 Jul 2004 23:30:52 +0000 (23:30 +0000)]
    Reviewed by Darin

Fixed <rdar://problem/3682340> (error console does not include source urls or line numbers of event exceptions).

        * kjs/function_object.cpp:
        (FunctionObjectImp::construct):
        * kjs/function_object.h:
        * kjs/object.cpp:
        (KJS::ObjectImp::construct):
        * kjs/object.h:
        (KJS::Object::construct):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7105 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Hyatt
kocienda [Thu, 22 Jul 2004 23:04:39 +0000 (23:04 +0000)]
    Reviewed by Hyatt

        Fix for this bug:

        <rdar://problem/3724344> Bolding and unbolding creates extraneous tags

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::ApplyStyleCommandImpl::doApply): Move the start of the selection upstream
        before calling removeStyle. This makes sure we remove all styles that could apply to the
        selection, and not just ones in from the start position of the selection passed to us.
        This fixes the bug.
        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::validate): Related fix to "constrain" the selection to be the
        smallest equivalent range of nodes, in effect making a "canonical" version of the
        selection. While this is not strictly necessary to fix the bug, it is a step I have been
        wanting to take this step for a long time, and some recent improvements made it
        possible for me to do now in just two lines of code.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7104 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Hyatt
kocienda [Thu, 22 Jul 2004 22:41:05 +0000 (22:41 +0000)]
    Reviewed by Hyatt

        Fix for this bug:

        <rdar://problem/3711264> difficult (impossible?) to get cursor in an editable webview containing only tags

        * khtml/rendering/render_container.cpp:
        (RenderContainer::positionForCoordinates): Don't assume you can pass off
        the check to a first child if there is one, since the child can be an element
        we do not want to place the caret in, like a table row with no cells (the case
        in the bug above). So now, we iterate of the renderer's children looking for
        the closest one, but only consider those renderers which either have children
        themselves, or are render block flows or are render inlines.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7101 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago - remove a bunch of now-unused code
darin [Thu, 22 Jul 2004 22:26:11 +0000 (22:26 +0000)]
    - remove a bunch of now-unused code

        * ForwardingHeaders/qxml.h: Removed.
        * kwq/KWQXmlAttributes.h: Removed.
        * kwq/KWQXmlAttributes.mm: Removed.
        * kwq/KWQXmlDefaultHandler.h: Removed.
        * kwq/KWQXmlDefaultHandler.mm: Removed.
        * kwq/KWQXmlSimpleReader.h: Removed.
        * kwq/KWQXmlSimpleReader.mm: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7099 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago * Plugins.subproj/npruntime.h: Update with new version from newer JavaScriptCore.
darin [Thu, 22 Jul 2004 22:14:06 +0000 (22:14 +0000)]
    * Plugins.subproj/npruntime.h: Update with new version from newer JavaScriptCore.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7098 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Dave.
darin [Thu, 22 Jul 2004 20:50:10 +0000 (20:50 +0000)]
    Reviewed by Dave.

        - got rid of QXml classes and changed XML parsing to use libxml directly

        This is the first step toward more direct use of libxml and libxslt.
        Dave is planning to build on this to implement XSLT and to improve our handling
        of XML documents (faster and more feature complete, including DTDs).

        * khtml/html/html_elementimpl.cpp:
        (HTMLElementImpl::createContextualFragment):
        * khtml/html/htmltokenizer.cpp:
        (khtml::HTMLTokenizer::HTMLTokenizer):
        * khtml/html/htmltokenizer.h:
        * khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::createTokenizer):
        (DocumentImpl::open):
        * khtml/xml/dom_docimpl.h:
        (DOM::DocumentImpl::tokenizer):
        * khtml/xml/dom_xmlimpl.cpp:
        (DOM::ProcessingInstructionImpl::checkStyleSheet):
        * khtml/xml/dom_xmlimpl.h:
        * khtml/xml/xml_tokenizer.h:
        * khtml/xml/xml_tokenizer.cpp: Redid this all to use libxml directly.

        * WebCore.pbproj/project.pbxproj: Removed a bunch of files.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7094 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago DHTML dragging should use UTI for MIME-pboard type conversion
trey [Thu, 22 Jul 2004 16:37:38 +0000 (16:37 +0000)]
DHTML dragging should use UTI for MIME-pboard type conversion

        Reviewed by NOBODY (OOPS!).

        * kwq/KWQClipboard.mm:
        (cocoaTypeFromMIMEType):  Use UTI, except for cases we need to hardwire.  Only cut off
MIME args following a semi-colon for text/plain.
        (MIMETypeFromCocoaType): Use UTI, except for cases we need to hardwire.
        (KWQClipboard::types):  Filter out ancient NSAsciiPboardType so DHTML never sees this cruft.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7088 268f45cc-cd09-0410-ab3c-d52691b4dbfc