18 years ago Fix the line truncation function for Emerson so that at the far left setting of...
hyatt [Tue, 17 Aug 2004 22:03:28 +0000 (22:03 +0000)]
Fix the line truncation function for Emerson so that at the far left setting of the slider, only the header
is visible.

        Reviewed by darin

        * khtml/rendering/render_block.cpp:
        * khtml/rendering/render_flexbox.cpp:

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

18 years ago Reviewed by Hyatt
kocienda [Tue, 17 Aug 2004 21:53:45 +0000 (21:53 +0000)]
    Reviewed by Hyatt

        Rewrite of the command that deletes a selection. I deleted great
        big swaths of bug-ridden code to accomplish this and replaced it
        with code that is much cleaner and smarter.

        Also, renamed equivalentUpstreamPosition and equivalentDownstreamPosition to
        upstream to downstream, respectively.

        Added a couple of new helper methods.

        * khtml/editing/htmlediting.cpp: DeleteCollapsibleWhitespaceCommand and
        RemoveNodeAndPruneCommand now obsolete. A huge win.
        * khtml/editing/htmlediting.h: Ditto.
        * khtml/editing/htmlediting_impl.cpp:
        (khtml::debugPosition): Fix printf which had a placeholder, but no argument passed in the varargs.
        (khtml::CompositeEditCommandImpl::deleteUnrenderedText): New helper. Much simplified and cleaner
        version of
        (khtml::ApplyStyleCommandImpl::doApply): upstream/downstream name change
        (khtml::ApplyStyleCommandImpl::nodeFullySelected):  upstream/downstream name change
        (khtml::DeleteSelectionCommandImpl::doApply):  upstream/downstream name change
        (khtml::DeleteTextCommandImpl::DeleteTextCommandImpl): Add an assert to check that the
        passed offset is less than the length of the text node.
        (khtml::InputNewlineCommandImpl::insertNodeAfterPosition): upstream/downstream name change
        (khtml::InputNewlineCommandImpl::insertNodeBeforePosition): upstream/downstream name change
        (khtml::InputNewlineCommandImpl::doApply): upstream/downstream name change
        (khtml::InputTextCommandImpl::prepareForTextInsertion): upstream/downstream name change
        (khtml::InputTextCommandImpl::execute): upstream/downstream name change
        (khtml::InputTextCommandImpl::insertSpace): upstream/downstream name change
        (khtml::ReplaceSelectionCommandImpl::doApply): upstream/downstream name change
        (khtml::TypingCommandImpl::issueCommandForDeleteKey): upstream/downstream name change
        * khtml/editing/htmlediting_impl.h:
        * khtml/xml/dom_position.cpp:
        (DOM::Position::inRenderedText): Add null check.
        (DOM::Position::isRenderedCharacter): New helper.
        (DOM::isWS): New helper in this file.
        (DOM::Position::leadingWhitespacePosition): New helper. Factored out from htmlediting_impl.cpp.
        (DOM::Position::trailingWhitespacePosition): Ditto.
        (DOM::Position::debugPosition): Add null check.
        * khtml/xml/dom_position.h:
        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::toRange): upstream/downstream name change
        (DOM::Selection::validate): upstream/downstream name change
        (DOM::Selection::debugPosition): upstream/downstream name change
        * layout-tests/editing/deleting/delete-block-contents-003-expected.txt: Updated tests with new expected results.
        * layout-tests/editing/deleting/delete-contiguous-ws-001-expected.txt: Ditto.
        * layout-tests/editing/deleting/delete-selection-001-expected.txt: Ditto.
        * layout-tests/editing/deleting/delete-trailing-ws-001-expected.txt: Ditto.
        * layout-tests/editing/inserting/insert-br-case1-expected.txt: Ditto.
        * layout-tests/editing/inserting/insert-br-case2-expected.txt: Ditto.
        * layout-tests/editing/style/style-3681552-fix-002-expected.txt: Ditto.

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

18 years ago Various spelling fixes.
trey [Tue, 17 Aug 2004 21:41:11 +0000 (21:41 +0000)]
Various spelling fixes.

        Reviewed by Ken.

        * khtml/khtml_part.cpp:
        (KHTMLPart::setSelection): No misspellings in the spelling code comments
        * khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::removeMarker):  Repaint if doc changes.  Sometimes the markers
were not being erased when you clicked in a word.
        * khtml/xml/dom_position.cpp:
        (DOM::Position::previousWordBoundary):  Small optimization.  Bail after first
try if the second try will not come out any different.
        (DOM::Position::nextWordBoundary):  Ditto
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::markMisspellingsInSelection):  Comment.

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

18 years agoAdded a bug number to the textarea bug fix check-in,
darin [Tue, 17 Aug 2004 20:42:47 +0000 (20:42 +0000)]
Added a bug number to the textarea bug fix check-in,
so I can look it up here in ChangeLog.

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

18 years ago Reviewed by Maciej.
darin [Tue, 17 Aug 2004 20:41:15 +0000 (20:41 +0000)]
    Reviewed by Maciej.

        - fixed <rdar://problem/3689700> crash loading page; stoxx.com (works in IE and Firefox)

        * khtml/khtml_part.h: Make completeURL public.
        * kwq/KWQKJavaAppletWidget.mm: (KJavaAppletWidget::KJavaAppletWidget): Complete the base URL
        before passing it across the bridge. This sidesteps the crashing bug in CFURL, filed as
        '<rdar://problem/3764632> CFURLCreateAbsoluteURLWithBytes crashes if passed the string "../.."'
        and also is obviously correct behavior that may fix other sites too.

        - fixed <rdar://problem/3547725> Crashes at csuohio.edu, list box vs. mouse event problem (Spoof No Fix)

        * kwq/KWQListBox.mm:
        (QListBox::~QListBox): Nil out the pointer from the KWQTableView back to the widget by calling
        a new detach method.
        (-[KWQTableView detach]): Set the pointer to the QListBox to 0. Also set the delegate and data
        source to nil, so we don't need nil checks in delegate and data source methods.
        (-[KWQTableView mouseDown:]): Add nil check.
        (-[KWQTableView keyDown:]): Add nil check.
        (-[KWQTableView keyUp:]): Add nil check.
        (-[KWQTableView becomeFirstResponder]): Add nil check.
        (-[KWQTableView resignFirstResponder]): Add nil check.
        (-[KWQTableView canBecomeKeyView]): Add nil check.
        (-[KWQTableView tableViewSelectionDidChange:]): Add nil checks, even though this is a delegate
        callback, to handle cases where calls to JavaScript result in the QListBox going away partway
        (-[KWQTableView drawRow:clipRect:]): Add nil check.
        (-[KWQTableView _accessibilityTableCell:tableColumn:]): Add nil check.

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

18 years ago Fix ASSERT in spelling marker management.
trey [Tue, 17 Aug 2004 19:55:27 +0000 (19:55 +0000)]
Fix ASSERT in spelling marker management.

        Reviewed by John.

        * khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::shiftMarkers):  Use assert instead of ASSERT.
Tweak test to allow for a start position of 0.

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

18 years agoWebCore:
trey [Tue, 17 Aug 2004 19:48:29 +0000 (19:48 +0000)]

3764147 - failure of subframe to load leaves links in parent doc broken

        Reviewed by Maciej.

        * khtml/khtml_part.cpp:
        (KHTMLPart::childBegin):  New method to mark part as not complete.
        (KHTMLPart::processObjectRequest):  Mark child part imcomplete, so if we
later get a failure on load it won't think it's already complete and do nothing.
        * khtml/khtml_part.h:


3764147 - failure of subframe to load leaves links in parent doc broken

        Reviewed by Maciej.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _receivedMainResourceError:complete:]):
Need to call [bridge end] in the case of an error, so WC can clean up.

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

18 years agoset version number to '158u'. the tree is open
vicki [Tue, 17 Aug 2004 19:05:12 +0000 (19:05 +0000)]
set version number to '158u'.  the tree is open

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

18 years agoSafari-157 stamp
vicki [Tue, 17 Aug 2004 18:59:48 +0000 (18:59 +0000)]
Safari-157 stamp

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

18 years agoFix project so that OTHER_LDFLAGS in the project also links dynamically to libxslt
hyatt [Tue, 17 Aug 2004 04:53:54 +0000 (04:53 +0000)]
Fix project so that OTHER_LDFLAGS in the project also links dynamically to libxslt

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

18 years ago Fix the #define. I had it all backwards.
hyatt [Tue, 17 Aug 2004 02:10:37 +0000 (02:10 +0000)]
Fix the #define.  I had it all backwards.

        * WebCorePrefix.h:

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

18 years ago Land initial support for XSLT using xml-stylesheet PIs.
hyatt [Tue, 17 Aug 2004 01:54:55 +0000 (01:54 +0000)]
Land initial support for XSLT using xml-stylesheet PIs.

        * WebCore.pbproj/project.pbxproj:
        * khtml/khtml_part.cpp:
        * khtml/khtml_part.h:
        * khtml/khtmlview.h:
        * khtml/xml/dom_docimpl.cpp:
        * khtml/xml/dom_docimpl.h:
        * khtml/xml/dom_xmlimpl.cpp:
        * khtml/xml/dom_xmlimpl.h:
        * khtml/xml/xml_tokenizer.cpp:
        * khtml/xml/xml_tokenizer.h:
        * khtml/xml/xsl_stylesheetimpl.cpp: Removed.
        * khtml/xml/xsl_stylesheetimpl.h: Removed.
        * khtml/xsl/xsl_stylesheetimpl.cpp: Added.
        * khtml/xsl/xsl_stylesheetimpl.h: Added.
        * khtml/xsl/xslt_processorimpl.cpp: Added.
        * khtml/xsl/xslt_processorimpl.h: Added.

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

18 years ago Fix build.
mjs [Mon, 16 Aug 2004 23:06:41 +0000 (23:06 +0000)]
    Fix build.

        * khtml/khtml_part.cpp:

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

18 years ago Fixed <rdar://problem/3704339> Context2D forces integer positions in drawImage
rjw [Mon, 16 Aug 2004 22:26:32 +0000 (22:26 +0000)]
Fixed <rdar://problem/3704339> Context2D forces integer positions in drawImage

Use floats instead of ints to draw images.

        Reviewed by Ken.

        * khtml/ecma/kjs_html.cpp:
        * kwq/KWQPainter.h:
        * kwq/KWQPainter.mm:

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

18 years ago Reviewed by Darin.
mjs [Mon, 16 Aug 2004 22:21:01 +0000 (22:21 +0000)]
    Reviewed by Darin.

- fixed <rdar://problem/3752509> Pop up windows not showing up within SAP's BW Module (changing location.href on new window created by window.open)

(actually the previous fix for this bug was mostly correct, but
this additional change is needed to avoid the regression in
<rdar://problem/3751025> REGRESSION: website rejects Safari 125.9
as "need to upgrade to IE 6", but didn't reject 125.8

So if merging for a software update, make sure to include both
this and the previous fix.

        * khtml/html/htmltokenizer.cpp:
        (khtml::HTMLTokenizer::write): When there is an immediate reidrect pending,
make sure to stop tokenizing, because we need to make sure no further
script tags are processed beyond the one that triggered the redirect.
        * khtml/khtml_part.cpp:
        (KHTMLPart::isImmediateRedirectPending): New method to allow
checking if a redirect is pending.
* khtml/khtml_part.h:

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

18 years ago Fixed <rdar://problem/3581092> cash in KJS::Bindings::JSObject::eval at tcvet...
rjw [Mon, 16 Aug 2004 21:17:53 +0000 (21:17 +0000)]
    Fixed <rdar://problem/3581092> cash in KJS::Bindings::JSObject::eval at tcvetantcvetkov.com

        Adds bullet proofing to protect against evaluation of bogus JS in all the flavors of bindings (Java, C, and ObjC).

        Reviewed by Chris.

        * bindings/NP_jsobject.cpp:
        * bindings/jni/jni_jsobject.cpp:
        * bindings/objc/WebScriptObject.mm:
        (-[WebScriptObject evaluateWebScript:]):

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

18 years ago Fix the blank textarea problem by ensuring that any change to a <textarea>'s DOM...
hyatt [Mon, 16 Aug 2004 20:56:16 +0000 (20:56 +0000)]
Fix the blank textarea problem by ensuring that any change to a <textarea>'s DOM children causes the form control
to resync with the DOM.  This behavior matches WinIE.

        Reviewed by kocienda

        * khtml/html/html_formimpl.cpp:
        * khtml/html/html_formimpl.h:

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

18 years agoWebKit:
rjw [Mon, 16 Aug 2004 03:41:56 +0000 (03:41 +0000)]
        More changes to np headers.

        Reviewed by Darin.

        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage load]):
        * Plugins.subproj/npapi.h:
        * Plugins.subproj/npfunctions.h:
        * Plugins.subproj/npruntime.h:

More updates to np headers.  Implemented new NPN functions.

        Reviewed by Darin.

        * bindings/NP_jsobject.cpp:
        * bindings/npapi.h:
        * bindings/npruntime.h:

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

18 years agoBack out accidental bad change.
mjs [Fri, 13 Aug 2004 22:04:17 +0000 (22:04 +0000)]
Back out accidental bad change.

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

18 years agotop level:
mjs [Fri, 13 Aug 2004 21:58:24 +0000 (21:58 +0000)]
top level:

        Reviewed by Ken.

        * Makefile.am: Remove WebKitExamples for now, until it actually works to
include it in a recursive make.


        Reviewed by NOBODY (OOPS!).

        * Plugins.subproj/npapi.h:

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

18 years ago 3761794 Slider doesn't call onmouseup handler
trey [Fri, 13 Aug 2004 21:26:15 +0000 (21:26 +0000)]
3761794 Slider doesn't call onmouseup handler

        Reviewed by Hyatt

        * khtml/rendering/render_form.cpp:
        (RenderSlider::RenderSlider):  Listen for signal.
        (RenderSlider::slotClicked):  Pass to superclass.
        * khtml/rendering/render_form.h:
        * kwq/KWQSlider.h:
        * kwq/KWQSlider.mm:
        (-[KWQSlider mouseDown:]):  Generate mouseUp and clicked events,
since AK consumes the mouseUp event in a modal tracking loop.
        (QSlider::QSlider):  Make signal.
        (QSlider::clicked):  Send signal.

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

18 years ago Reviewed by Chris.
darin [Fri, 13 Aug 2004 17:45:12 +0000 (17:45 +0000)]
    Reviewed by Chris.

        - fixed <rdar://problem/3760924> Carbon path passed in NPP_StreamAsFile must be in local character set, not UTF-8

        * Plugins.subproj/WebBaseNetscapePluginStream.m:
        (CarbonPathFromPOSIXPath): Added. New function that uses the path pieces from an FSSpec.
        This has many advantages; the big one that fixes the bug is that it gives the mangled names
        that work even for files that have names that can't otherwise be encoded in Carbon-style
        path names. I didn't write this from scratch: I started with the method in Foundation
        and just changed it to use FSSpec.
        (-[WebBaseNetscapePluginStream destroyStream]): Remove code that used NSString and just call
        CarbonPathFromPOSIXPath instead.

        * Plugins.subproj/npapi.h: The Revision tag wanted to touch this file.
        I think we are going to have some trouble with this; I'd like to take that out.

        * English.lproj/StringsNotToBeLocalized.txt: Updated.

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

18 years agoWebCore:
trey [Fri, 13 Aug 2004 17:13:29 +0000 (17:13 +0000)]

3761329 - query result links all dead in ingrammicro.com (sometimes)
3761328 - links in some docs dead when doc is loaded from WebArchive

Make sure to get part to completed state when end is called,
even if we have no doc.  See WebKit changelog for more info.

        Reviewed by Richard and Darin.

        * khtml/khtml_part.cpp:


        3761329 - query result links all dead in ingrammicro.com (sometimes)
        3761328 - links in some docs dead when doc is loaded from WebArchive

        Nasty problem.  It turns out that these result pages are a parent frame with two child
        frames.  One of the child frames is a 1 or 2 byte text document.  When the text child
        is the last doc to complete, because we use a Text rep instead of an HTMLRep, it turns
        out we never send [bridge end] from WebKit.  That mistake results in checkCompleted not
        being called enough in the part, and we never realize the load is done.  WebCore does
        not allow redirects to happen until the entire load is complete,  and  the links on this
        results page are actually little pieces of JS that set location to a generated URL.  Since
        redirects are not allowed these links all silently fail to do anything, and the doc never
        achieves a completed state where they will work.

        Solution is to make sure we always call [bridge end] from the DataSource instead of only
        the HTML rep doing it.

        Reviewed by Richard and Darin.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _finishedLoading]):  Call [bridge end] here for all kinds of docs.
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation finishedLoadingWithDataSource:]):  Don't call is just for HTMLReps.

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

18 years ago 3761098 - red dotted underline for misspelled words shows up in drag image
trey [Fri, 13 Aug 2004 16:57:01 +0000 (16:57 +0000)]
    3761098 - red dotted underline for misspelled words shows up in drag image

        Reviewed by Ken

        * khtml/rendering/render_text.cpp:
        (RenderText::paint):  Don't draw misspelling when creating selection image.

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

18 years ago - fix build so we can compile again
darin [Fri, 13 Aug 2004 16:50:08 +0000 (16:50 +0000)]
    - fix build so we can compile again

        * bindings/npapi.h: Added. Richard forgot to check this in. The one I'm checking in here
        is good enough so that we can compile, but it's only a stopgap measure, because I think
        Richard has a newer one he wants to check in.

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

18 years agoWebKit:
rjw [Fri, 13 Aug 2004 01:31:22 +0000 (01:31 +0000)]
        Bring npruntime.h and friends closer to compliance with
        latest spec.

        Reviewed by Maciej.

        * Plugins.subproj/npapi.h:
        * Plugins.subproj/npfunctions.h:
        * Plugins.subproj/npruntime.h:
        * copy-webcore-files-to-webkit:

Bring npruntime.h and friends closer to compliance with
latest spec.

        Reviewed by Maciej.

        * kwq/KWQKHTMLPart.mm:

Bring npruntime.h and friends closer to compliance with
latest spec.

        Reviewed by Maciej.

        * JavaScriptCore.pbproj/project.pbxproj:
        * bindings/NP_jsobject.cpp:
        * bindings/NP_jsobject.h:
        * bindings/c/c_instance.cpp:
        * bindings/c/c_utility.cpp:
        * bindings/npruntime.cpp:
        * bindings/npruntime.h:
        * bindings/npruntime_priv.h: Added.

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

18 years ago Reviewed by Richard.
mjs [Fri, 13 Aug 2004 00:43:52 +0000 (00:43 +0000)]
    Reviewed by Richard.

<rdar://problem/3245706> URLs with backslashes instead of slashes work on WinIE; should work on Safari (SAP)
<rdar://problem/3506429> <BASE> tag containing backslash is breaking images with absolute URLs

        * kwq/KWQKURL.mm:
        (substituteBackslashes): Helper method
        (KURL::KURL): If the URL contains any backslashes, substitute all
that appear before the query or fragment.

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

18 years ago Fixed: <rdar://problem/3761097> should be able to option-drag selection so HTML...
cblu [Fri, 13 Aug 2004 00:25:53 +0000 (00:25 +0000)]
Fixed: <rdar://problem/3761097> should be able to option-drag selection so HTML can be copied within a page

        Reviewed by rjw.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _isMoveDrag]): new, take into account the option key
        (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): call _isMoveDrag
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): call _isMoveDrag

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

18 years ago Reviewed by Chris
kocienda [Thu, 12 Aug 2004 23:58:03 +0000 (23:58 +0000)]
    Reviewed by Chris

        Fix for this bug:

        <rdar://problem/3761014> command-down-arrow takes you to start of document instead of end of document

        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::modifyExtendingRightForward): Code used to assume, incorrectly, that index 1 of the
        document element was beyond the last node in the document. But this is not true, since the document
        element is the HTML element (generally). Instead, move to the index equal to the number of children
        of the document element. This puts us past everything.
        (DOM::Selection::modifyMovingRightForward): Ditto.

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

18 years ago Reviewed by Trey
kocienda [Thu, 12 Aug 2004 23:28:33 +0000 (23:28 +0000)]
    Reviewed by Trey

        Fix for this bug:

        <rdar://problem/3695446> shift-down-arrow on last line of editable text should select to end of document

        Detect when current position is on first or last line and move to the
        start or end of that line, respectively.

        * khtml/xml/dom_position.cpp:

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

18 years ago Quick fix for 3760903. The real fix is described in 3760920. Needed
rjw [Thu, 12 Aug 2004 23:19:23 +0000 (23:19 +0000)]
    Quick fix for 3760903.  The real fix is described in 3760920.  Needed
        by Java plugin guys so they can be unblocked for feature freeze.

        Reviewed by Chris.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _reloadForPluginChanges]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView addSubview:]):

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

18 years agoWebKit:
cblu [Thu, 12 Aug 2004 23:04:52 +0000 (23:04 +0000)]

Fixed: <rdar://problem/3760898> error pages in subframes attempt to load appledata URLs when reloaded

        Reviewed by darin.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _createItem:]): when setting the original URL of the history item, use the unreachable URL


<rdar://problem/3760743> "Save As.." and "View Source" context menu items should be omitted from error pages
<rdar://problem/3760892> PARENTAL: buttons in parental control error page do nothing when in subframes

        Reviewed by darin

        * BrowserWebController.m:
        (-[BrowserWebView webView:unableToImplementPolicyWithError:frame:]): handle subframes for error page schemes
        * ContextMenuHandler.m:
        (-[BrowserWebView webView:contextMenuItemsForElement:defaultMenuItems:]): omit menu item in error pages

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

18 years ago Reviewed by Adele.
darin [Thu, 12 Aug 2004 23:04:11 +0000 (23:04 +0000)]
    Reviewed by Adele.

        - fixed 3 problems with parse functions that I just wrote, fixing 3 more Mozilla JavaScript tests

        * kjs/function.cpp:
        (KJS::parseDigit): Fix typo, 'Z' instead of 'z', that prevented lowercase hex digits from working.
        (KJS::parseInt): Add octal support. Specification says it's optional, but I guess not.
        (KJS::parseFloat): Fix check for "0x" in parseFloat to return 0 rather than NaN. Also add code
        to skip leading "+" or "-".

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

18 years agoback to 157u, 2.0 for TOT. the tree is open!
vicki [Thu, 12 Aug 2004 22:57:00 +0000 (22:57 +0000)]
back to 157u, 2.0 for TOT.  the tree is open!

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

18 years agoSafari-156 stamp
vicki [Thu, 12 Aug 2004 22:47:47 +0000 (22:47 +0000)]
Safari-156 stamp

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

18 years ago Reviewed by Darin
kocienda [Thu, 12 Aug 2004 20:53:34 +0000 (20:53 +0000)]
    Reviewed by Darin

        Some consolidation in style application code.

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::StyleChange::StyleChange): Made this a full-on class and added a couple of
        members and a constructors to make a StyleChange from a CSSStyleDeclarationImpl, as
        well as from a CSSStyleDeclarationImpl and a Position.
        (khtml::StyleChange::init): Common init function for StyleChange constructors.
        (khtml::StyleChange::currentlyHasStyle): Moved this here from ApplyStyleCommandImpl.
        (khtml::CompositeEditCommandImpl::applyTypingStyle): Tweak to adjust to new StyleChange
        (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Ditto.
        * khtml/editing/htmlediting_impl.h:
        (khtml::StyleChange::cssStyle): New accessor.
        (khtml::StyleChange::applyBold): Ditto.
        (khtml::StyleChange::applyItalic): Ditto.
        * khtml/xml/dom_position.cpp:
        (DOM::Position::computedStyle): New helper.
        * khtml/xml/dom_position.h: Ditto.

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

18 years ago Reviewed by Darin
kocienda [Thu, 12 Aug 2004 17:34:56 +0000 (17:34 +0000)]
    Reviewed by Darin

        Fix for this bug:
        <rdar://problem/3751098> HTML email has one set of SPAN tags per character in the message

        Progress on this bug:
        <rdar://problem/3755562> Typing styles do not use same tag application conventions as font and color panel

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::CompositeEditCommandImpl::applyTypingStyle): Name changed from createTypingStyleElement.
        Also, interface changed to take the node to which the typing style is to be applied.
        This makes it easier to apply what may be up to three levels of nested tags to get the
        desired style (<B>, <I>, and <SPAN STYLE="">).
        Also, Borrow some of the style change smarts from ApplyStyleCommandImpl to use bold and
        italic tags for applying styles when that is apprpriate. This creates on opportunity to
        factor the code to do this so that this function and the ApplyStyleCommandImpl class can
        share the implementation. I will follow up with a change to do that after landing this
        change. Some future code factoring could be done here to bring together some similar code
        into one place.
        (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Add comment about code factoring work.
        (khtml::ApplyStyleCommandImpl::computeStyleChange): StyleChange struct no longer a member of the
        ApplyStyleCommandImpl class. CompositeEditCommandImpl needs it now in its applyTypingStyle()
        (khtml::InputNewlineCommandImpl::doApply): Pass along node to style to applyTypingStyle.
        (khtml::InputTextCommandImpl::prepareForTextInsertion): Ditto.
        * khtml/editing/htmlediting_impl.h:
        (khtml::StyleChange::StyleChange): Pull this struct out of ApplyStyleCommandImpl so
        CompositeEditCommandImpl can use it.
        * khtml/khtml_part.cpp:
        (KHTMLPart::notifySelectionChanged): Always clear typing style when the selection
        changes, not only when closing typing. This fixes 3751098.

        These three tests actually had results that treated the buggy behavior as correct!

        * layout-tests/editing/style/style-3681552-fix-001-expected.txt
        * layout-tests/editing/style/style-3681552-fix-002-expected.txt
        * layout-tests/editing/style/typing-style-002-expected.txt

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

18 years ago Reviewed by Ken.
darin [Thu, 12 Aug 2004 17:21:29 +0000 (17:21 +0000)]
    Reviewed by Ken.

        - fixed 43 Mozilla JavaScript tests

        * kjs/date_object.h: Change parseDate and timeClip to take and return doubles.
        * kjs/date_object.cpp:
        (DateObjectImp::construct): Change to use a timeClip function that takes and returns a double rather
        than constructing a number object to pass to it.
        (DateObjectFuncImp::call): Change to use a parseDate function that returns a double.
        (KJS::parseDate): Change to return a double instead of creating the Number object here.
        (KJS::timeClip): Implement this as specified in the language standard.

        * kjs/error_object.cpp: (NativeErrorImp::NativeErrorImp): Set the DontDelete, ReadOnly, and DontEnum
        flags on the prototype property.

        * kjs/function.cpp:
        (KJS::FunctionImp::get): Return null rather than undefined for arguments when the function is not
        currently in scope.
        (KJS::isStrWhiteSpace): Added. Matches specification for StrWhiteSpace. Could move it to some utility
        file later.
        (KJS::parseDigit): Added. Helper function for parseInt.
        (KJS::parseInt): Added. Integer parser that puts result in a double so we're not limited to what
        strtoll can handle. Also matches standard more closely.
        (KJS::parseFloat): Added. Handles "0x" properly and passes flag to make empty string turn into NaN
        instead of 0.
        (KJS::GlobalFuncImp::call): Use the new parseInt and parseFloat.

        * kjs/function_object.cpp: (FunctionPrototypeImp::FunctionPrototypeImp): Add a length property.

        * kjs/lexer.h: Added error flag and sawError() function for detecting errors.
        * kjs/lexer.cpp:
        (Lexer::setCode): Clear error state.
        (Lexer::lex): Set error state if the lexer encounters an error

        * kjs/internal.cpp:
        (NumberImp::toString): Roll in change from KDE version to special case 0 so we handle -0 correctly.
        (Parser::parse): Use new lexer error method so those errors are treated like parser errors.

        * kjs/math_object.cpp: (MathFuncImp::call): Change min and max to treat -0 as less than +0.
        Change round to round values between -0.5 and -0 to -0 instead of +0.

        * kjs/nodes.h: Add evaluateReference function to GroupNode.
        * kjs/nodes.cpp: (GroupNode::evaluateReference): Pass references through groups (parenthesized
        expressions) properly so that expressions like "delete (x.y)" work. Before, the parentheses
        would change x.y into a value that can't be deleted as a side effect.

        * kjs/string_object.cpp: Change parameter count for indexOf and lastIndexOf from 2 to 1 to match
        the specification.

        * kjs/testkjs.cpp: Rolled in changes from KDE to add a "quit" function to the test tool and
        get rid of the fixed size limit for code.

        * kjs/ustring.cpp: (KJS::UString::substr): Added optimized case for substr(0, length) so it just
        returns the string without creating a new Rep, since I'm using substr in a place where it will
        often be passed a 0.

        * tests/mozilla/ecma/String/ Fixed one wrong entry in the Unicode table I added to
        the other day that was making a couple tests fail.
        * tests/mozilla/ecma/String/ Ditto.
        * tests/mozilla/ecma/String/ Ditto.
        * tests/mozilla/ecma/String/ Ditto.
        * tests/mozilla/ecma/String/ Ditto.
        * tests/mozilla/ecma/String/ Ditto.

        * kjs/string_object.lut.h: Regenerated.

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

18 years ago Reviewed by Ken.
darin [Thu, 12 Aug 2004 16:45:53 +0000 (16:45 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3740485> Repro crash involving replacing content that includes form field

        * kwq/KWQLineEdit.mm: (QLineEdit::selectAll): Since this function calls selectText: which has a side
        effect of making the text field be first responder, call to bridge first to make it first responder.
        The bridge version lets WebHTMLView know we are changing the responder, avoiding some unpleasantness
        because it sets the "changing focus programmatically" flag. Without that flag set, we were getting
        an additional setFocusNode(0) call, which is unnecessary and incorrect.

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

18 years ago Reviewed by Ken.
darin [Thu, 12 Aug 2004 16:39:08 +0000 (16:39 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3758756> copying text selected with down arrow results in all text to end of document

        * khtml/xml/dom2_rangeimpl.h: Make startNode and pastEndNode public.
        * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::pastEndNode): Fix bug where this would return
        one node too far in the case where the end container was not a text node.

        * khtml/xml/dom_nodeimpl.cpp:
        (NodeImpl::recursive_toHTMLWithOptions): Rewrite loop, using startNode and pastEndNode,
        to fix bug where it would run past the end node, including too many nodes in the generated
        HTML. Nice side benefit: easier to read the code.

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

18 years ago - fixed a tiny problem with the UTF-16 PCRE check-in
darin [Thu, 12 Aug 2004 03:17:50 +0000 (03:17 +0000)]
    - fixed a tiny problem with the UTF-16 PCRE check-in

        * pcre/maketables.c: (pcre_maketables): Fix mistake in table-generating code that sometimes caused
        the ctype_meta flag to get set in items that should not have it.

        * pcre/chartables.c: Regenerated.

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

18 years ago Reviewed by me, bug fix by Darin.
adele [Thu, 12 Aug 2004 00:36:43 +0000 (00:36 +0000)]
    Reviewed by me, bug fix by Darin.

- fixed <rdar://problem/3736477> Pages don't load if hard drive is named with non-ASCII Symbol

        * Plugins.subproj/WebBaseNetscapePluginStream.m:
        (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]):
Use UTF8String instead of cString to convert the MIME type to a C string. Safer, since it can't
ever fail due to encoding problems even though this string should always be ASCII.
        (-[WebBaseNetscapePluginStream destroyStream]): Use stringWithUTF8String to convert the path name
to an NSString, since stringWithCString is deprecated (doesn't really matter since the path is always
all ASCII). Fix the bug by calling fileSystemRepresentation on the NSString to turn it into a C
string form. Even though the POSIX path can't have any non-ASCII characters in it, the Carbon path
can, so we need to use this instead of cString which can fail depending on characters and encoding.

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

18 years ago Fixed: <rdar://problem/3758216> PARENTAL: buttons on parental controls page only...
cblu [Wed, 11 Aug 2004 23:39:03 +0000 (23:39 +0000)]
Fixed: <rdar://problem/3758216> PARENTAL: buttons on parental controls page only work once

        Reviewed by john.

        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::submitForm): prevent a form from being submitted more than once only if it uses a scheme of http or https

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

18 years ago Reviewed by Ken.
darin [Wed, 11 Aug 2004 21:35:06 +0000 (21:35 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3715878> 8A162: connect.apple.com password field showed in cleartext

        * kwq/KWQTextField.mm: (-[KWQSecureTextField textDidEndEditing:]):
        Enhanced workaround for shifting focus from one secure text field to another so that it works
        even for the case of shifting focus from a secure text field back to itself.

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

18 years ago Reviewed by me
kocienda [Wed, 11 Aug 2004 20:11:49 +0000 (20:11 +0000)]
    Reviewed by me

        Missed adding this file before.

        * kwq/KWQTextUtilities.mm: Added.

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

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
        (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

- (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:
        * bindings/c/c_class.h:
        * bindings/jni/jni_class.cpp:
        * bindings/jni/jni_class.h:
        * bindings/objc/objc_class.h:
        * bindings/objc/objc_class.mm:
        * bindings/objc/objc_instance.h:
        * bindings/objc/objc_instance.mm:
        * bindings/objc/objc_runtime.h:
        * bindings/objc/objc_runtime.mm:
        * bindings/runtime.h:
        * bindings/runtime_object.cpp:
        * 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)]

        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
        * khtml/rendering/render_text.h: Prototype new method.


        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)]

        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.


        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/ 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/ Ditto.
        * tests/mozilla/ecma/String/ Ditto.
        * tests/mozilla/ecma/String/ Ditto.
        * tests/mozilla/ecma/String/ Ditto.
        * tests/mozilla/ecma/String/ Ditto.
        * tests/mozilla/ecma/String/ Ditto.
        * tests/mozilla/ecma/String/ Ditto.
        * tests/mozilla/ecma/String/ Ditto.
        * tests/mozilla/ecma/String/ 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)]

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.


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)]

        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
        * 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:
        * 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:


        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:
        * bindings/objc/objc_instance.mm:
        * bindings/objc/objc_runtime.h:
        * bindings/objc/objc_runtime.mm:
        * 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:

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)]

        Fixed unnecessary import of NSURLFileTypeMappings.

        * WebView.subproj/WebMainResourceClient.m:


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:
        * khtml/css/css_stylesheetimpl.cpp:
        * khtml/css/css_stylesheetimpl.h:
        * khtml/misc/loader.cpp:
        * khtml/xml/dom_xmlimpl.cpp:
        * 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:
        * khtml/misc/loader.h:

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:

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
        * 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

        Reviewed by john

        * khtml/ecma/xmlhttprequest.cpp:
        * khtml/khtml_part.cpp:
        * khtml/misc/loader.cpp:

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:,, and

<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().
        * kjs/number_object.h: Added property names for toFixed, toPrecision,
and toExponential.
        * 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:

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)]

        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).


        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)]

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


        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]):
        * 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)]

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


        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
        (-[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