WebKit-https.git
13 years ago WebCore:
kjk [Mon, 12 Mar 2007 01:09:17 +0000 (01:09 +0000)]
  WebCore:

        Reviewed by Brady Edison.

        Linux/gdk fix.

        * loader/gdk/FrameLoaderClientGdk.cpp:
        (WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem): return true so
        that FrameLoader:goBackOrForwards() works.

  WebKitTools:

        Reviewed by Brady Edison.

        Add forward/backward/quit menus for easier testing.

        * GdkLauncher/main.cpp:
        (menuMainBackCb):
        (menuMainForwardCb):
        (menuMainQuitCb):
        (main):

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

13 years agoJavaScriptCore:
ggaren [Sun, 11 Mar 2007 23:57:11 +0000 (23:57 +0000)]
JavaScriptCore:

        Reviewed by Darin Adler.

        Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
        JSCore causes a hang @ www.panoramas.dk

        With a PAC file, run-webkit-tests --threaded passes, the reported site
        works, and all the Quicktime/JavaScript and Flash/JavaScript examples
        I found through Google work, too.

        Any time JavaScript causes arbitrary non-JavaScript code to execute, it
        risks deadlock, because that code may block, trying to acquire a lock
        owned by a thread that is waiting to execute JavaScript. In this case,
        the thread was a networking thread that was waiting to interpret a PAC file.

        Because non-JavaScript code may execute in response to, well, anything,
        a perfect solution to this problem is impossible. I've implemented an
        optimistic solution, instead: JavaScript will drop its lock whenever it
        makes a direct call to non-JavaScript code through a bridging/plug-in API,
        but will blissfully ignore the indirect ways it may cause non-JavaScript
        code to run (resizing a window, for example).

        Unfortunately, this solution introduces significant locking overhead in
        the bridging APIs. I don't see a way around that.

        This patch includes some distinct bug fixes I saw along the way:

        * bindings/objc/objc_instance.mm: Fixed a bug where a nested begin() call
        would leak its autorelease pool, because it would NULL out _pool without
        draining it.

        * bindings/runtime_object.cpp:
        (RuntimeObjectImp::methodGetter): Don't copy an Identifier to ASCII only
        to turn around and make an Identifier from the ASCII. In an earlier
        version of this patch, the copy caused an assertion failure. Now it's
        just unnecessary work.
        (RuntimeObjectImp::getOwnPropertySlot): ditto

        * bindings/objc/objc_instance.h: Removed overrides of setVAlueOfField and
        getValueOfField, because they did exactly what the base class versions did.
        Removed overrides of Noncopyable declarations for the same reason.

        * bindings/runtime.h: Inherit from Noncopyable instead of rolling our own.
        * bindings/c/c_instance.h: ditto

        And the actual patch:

        * API/JSCallbackConstructor.cpp: Drop all locks when calling out to C.
        (KJS::JSCallbackConstructor::construct):
        * API/JSCallbackFunction.cpp: ditto
        (KJS::JSCallbackFunction::callAsFunction):
        * API/JSCallbackObject.cpp: ditto
        (KJS::JSCallbackObject::init):
        (KJS::JSCallbackObject::~JSCallbackObject):
        (KJS::JSCallbackObject::getOwnPropertySlot):
        (KJS::JSCallbackObject::put):
        (KJS::JSCallbackObject::deleteProperty):
        (KJS::JSCallbackObject::construct):
        (KJS::JSCallbackObject::hasInstance):
        (KJS::JSCallbackObject::callAsFunction):
        (KJS::JSCallbackObject::getPropertyNames):
        (KJS::JSCallbackObject::toNumber):
        (KJS::JSCallbackObject::toString):
        (KJS::JSCallbackObject::staticValueGetter):
        (KJS::JSCallbackObject::callbackGetter):

        * bindings/c/c_instance.cpp: Drop all locks when calling out to C.
        (KJS::Bindings::CInstance::invokeMethod):
        (KJS::Bindings::CInstance::invokeDefaultMethod):
        * bindings/c/c_runtime.cpp: Drop all locks when calling out to C.
        (KJS::Bindings::CField::valueFromInstance):
        (KJS::Bindings::CField::setValueToInstance):
        * bindings/jni/jni_objc.mm:
        (KJS::Bindings::dispatchJNICall): Drop all locks when calling out to Java.

        * bindings/objc/objc_instance.mm: The changes here are to accomodate the
        fact that C++ unwinding of DropAllLocks goes crazy when you put it inside
        a @try block. I moved all JavaScript stuff outside of the @try blocks, and
        then prefixed the whole blocks with DropAllLocks objects. This required some
        supporting changes in other functions, which now acquire the JSLock for
        themselves, intead of relying on their callers to do so.
        (ObjcInstance::end):
        (ObjcInstance::invokeMethod):
        (ObjcInstance::invokeDefaultMethod):
        (ObjcInstance::setValueOfUndefinedField):
        (ObjcInstance::getValueOfUndefinedField):
        * bindings/objc/objc_runtime.mm: Same as above, except I didn't want to
        change throwError to acquire the JSLock for itself.
        (ObjcField::valueFromInstance):
        (ObjcField::setValueToInstance):
        * bindings/objc/objc_utility.mm: Supporting changes mentioned above.
        (KJS::Bindings::convertValueToObjcValue):
        (KJS::Bindings::convertObjcValueToValue):

        * kjs/JSLock.cpp:
        (1) Fixed DropAllLocks to behave as advertised, and drop the JSLock only
        if the current thread actually acquired it in the first place. This is
        important because WebKit needs to ensure that the JSLock has been
        dropped before it makes a plug-in call, even though it doesn't know if
        the current thread actually acquired the JSLock. (We don't want WebKit
        to accidentally drop a lock belonging to *another thread*.)
        (2) Used the new per-thread code written for (1) to make recursive calls
        to JSLock very cheap. JSLock now knows to call pthread_mutext_lock/
        pthread_mutext_unlock only at nesting level 0.
        (KJS::createDidLockJSMutex):
        (KJS::JSLock::lock):
        (KJS::JSLock::unlock):
        (KJS::DropAllLocks::DropAllLocks):
        (KJS::DropAllLocks::~DropAllLocks):
        (KJS::JSLock::lockCount):
        * kjs/JSLock.h: Don't duplicate Noncopyable.
        (KJS::JSLock::~JSLock):

        * wtf/Assertions.h: Blind attempt at helping the Windows build.

WebCore:

        Reviewed by Darin Adler.

        Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
        JSCore causes a hang @ www.panoramas.dk

        See JavaScriptCore ChangeLog for details.

        * bindings/objc/WebScriptObject.mm:
        (_didExecute): Added helpful ASSERT.
        (+[WebScriptObject throwException:]): Added missing JSLock.

WebKit:

        Reviewed by Darin Adler.

        Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
        JSCore causes a hang @ www.panoramas.dk

        See JavaScriptCore ChangeLog for details.

        Drop the JSLock before making calls through the plug-in API from functions
        that may have been called by JavaScript.

        * Plugins/WebBaseNetscapePluginView.mm:
        (-[WebBaseNetscapePluginView sendEvent:]):
        (-[WebBaseNetscapePluginView setWindowIfNecessary]):
        (-[WebBaseNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:DOMElement:]):
        (-[WebBaseNetscapePluginView createPluginScriptableObject]):
        (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]):
        (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]):
        (-[WebBaseNetscapePluginView loadPluginRequest:]):
        (-[WebBaseNetscapePluginView _printedPluginBitmap]):
        * Plugins/WebPluginController.mm:
        (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]):
        (-[WebPluginController startAllPlugins]):
        (-[WebPluginController stopAllPlugins]):
        (-[WebPluginController addPlugin:]):
        (-[WebPluginController destroyPlugin:]):
        (-[WebPluginController destroyAllPlugins]):

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

13 years ago Reviewed by Hyatt.
antti [Sun, 11 Mar 2007 11:14:34 +0000 (11:14 +0000)]
    Reviewed by Hyatt.

        Optimize linebox memory consumption:
        - move all bitfields to baseclass compacting them
        - make InlineTextBox::m_truncation unsigned short and make it relative to m_start
        - remove extremely rarely used EllipsisBox pointer from RootInlineBox and instead
          use a global hashmap to store it if needed
        - use minimum required number of bits to store BidiStatus enum variables in RootInlineBox
        - move overflow variables in RootInlineBox to a separate struct that is instantiated
          only if any of the variables is set to a value that can't trivially be derived from
          box x, y, width and height

        As a result line box objects shrink:
            InlineBox: 44 -> 44 bytes
            InlineTextBox: 68 -> 60 bytes
            InlineFlowBox: 68 -> 64 bytes
            RootInlineBox: 128 -> 88 bytes

        The optimizations possiblity was noticed when debugging http://bugs.webkit.org/show_bug.cgi?id=12833
        Bug 12833: REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
        <rdar://problem/5028159>

        On that page the patch saves 11.5MB or some 21% of linebox memory consumption. It also
        actually improves selection performance somewhat by improving memory locality.

        * rendering/InlineBox.h:
        (WebCore::InlineBox::InlineBox):
        * rendering/InlineFlowBox.h:
        (WebCore::InlineFlowBox::InlineFlowBox):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::placeEllipsisBox):
        (WebCore::InlineTextBox::nodeAtPoint):
        (WebCore::InlineTextBox::paint):
        (WebCore::InlineTextBox::paintDecoration):
        (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
        (WebCore::InlineTextBox::paintMarkedTextUnderline):
        * rendering/InlineTextBox.h:
        (WebCore::InlineTextBox::InlineTextBox):
        * rendering/RootInlineBox.cpp:
        (WebCore::throw):
        (WebCore::RootInlineBox::Overflow::operator delete):
        (WebCore::RootInlineBox::Overflow::destroy):
        (WebCore::RootInlineBox::destroy):
        (WebCore::RootInlineBox::detachEllipsisBox):
        (WebCore::RootInlineBox::clearTruncation):
        (WebCore::RootInlineBox::placeEllipsis):
        (WebCore::RootInlineBox::paintEllipsisBox):
        (WebCore::RootInlineBox::addHighlightOverflow):
        (WebCore::RootInlineBox::nodeAtPoint):
        (WebCore::RootInlineBox::adjustPosition):
        (WebCore::RootInlineBox::selectionTop):
        (WebCore::RootInlineBox::setLineBreakInfo):
        (WebCore::RootInlineBox::ellipsisBox):
        (WebCore::RootInlineBox::setVerticalOverflowPositions):
        (WebCore::RootInlineBox::setHorizontalOverflowPositions):
        (WebCore::RootInlineBox::setVerticalSelectionPositions):
        * rendering/RootInlineBox.h:
        (WebCore::RootInlineBox::RootInlineBox):
        (WebCore::RootInlineBox::topOverflow):
        (WebCore::RootInlineBox::bottomOverflow):
        (WebCore::RootInlineBox::leftOverflow):
        (WebCore::RootInlineBox::rightOverflow):
        (WebCore::RootInlineBox::lineBreakBidiStatus):
        (WebCore::RootInlineBox::selectionBottom):
        (WebCore::RootInlineBox::Overflow::Overflow):

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

13 years ago Reviewed by Darin.
ap [Sun, 11 Mar 2007 08:21:13 +0000 (08:21 +0000)]
    Reviewed by Darin.

        A partial fix for http://bugs.webkit.org/show_bug.cgi?id=13021
        XPath can be very slow

        * xml/XPathExpression.cpp:
        (WebCore::XPathExpression::evaluate): Cache evaluationContext in a local variable.

        * xml/XPathExpressionNode.cpp:
        (WebCore::XPath::Expression::evaluationContext):
        * xml/XPathExpressionNode.h:
        (WebCore::XPath::Expression::addSubExpression):
        (WebCore::XPath::Expression::subExprCount):
        (WebCore::XPath::Expression::subExpr):
        * xml/XPathFunctions.cpp:
        * xml/XPathFunctions.h:
        (WebCore::XPath::Function::setName):
        (WebCore::XPath::Function::arg):
        (WebCore::XPath::Function::argCount):
        (WebCore::XPath::Function::name):
        Made one-liners critical for performance inline.

        * xml/XPathGrammar.y: Fully parse NodeTests, so that strings are no longer passed for what is
        essentially an enum. Use LocationPath accessors to add steps, instead of directly manipulating
        internal data members.

        * xml/XPathParser.cpp:
        (WebCore::XPath::Parser::parseStatement):
        (WebCore::XPath::Parser::registerNodeTest):
        (WebCore::XPath::Parser::deleteNodeTest):
        * xml/XPathParser.h:
        Added support methods for changes in XPathGrammar.y.

        * xml/XPathPath.cpp:
        (WebCore::XPath::Filter::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid
        performing vector assignments.
        (WebCore::XPath::LocationPath::evaluate): Use swap() to avoid performing vector assignments.
        (WebCore::XPath::LocationPath::optimizeStepPair): This new method is called during LocationPath construction,
        to simplify the path as it's being built. Currently, the only optimized case is "//*" - it is a basis for
        important operations that cannot be efficiently written in XPath 1.0, but can be optimized with a little bit
        of XPath 2.0.
        (WebCore::XPath::LocationPath::appendStep): A new accessor that modifies m_steps and calls optimizeStepPair().
        (WebCore::XPath::LocationPath::insertFirstStep): Ditto.
        * xml/XPathPath.h:
        (WebCore::XPath::LocationPath::setAbsolute): A new accessor.

        * xml/XPathStep.h:
        (WebCore::XPath::Step::NodeTest::):
        (WebCore::XPath::Step::NodeTest::NodeTest):
        (WebCore::XPath::Step::NodeTest::kind):
        (WebCore::XPath::Step::NodeTest::data):
        Step::NodeTest is a new sub-class that represents a fully parsed NodeTest.
        (WebCore::XPath::Step::axis):
        (WebCore::XPath::Step::nodeTest):
        (WebCore::XPath::Step::nodeTestData):
        (WebCore::XPath::Step::namespaceURI):
        (WebCore::XPath::Step::predicates):
        (WebCore::XPath::Step::setAxis):
        (WebCore::XPath::Step::setNodeTest):
        (WebCore::XPath::Step::setNodeTestData):
        (WebCore::XPath::Step::setNamespaceURI):
        (WebCore::XPath::Step::setPredicates):
        New accessors that let optimizeStepPair() manipulate Step data.

        * xml/XPathStep.cpp:
        (WebCore::XPath::Step::Step): Use the new NodeTest class.
        (WebCore::XPath::Step::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid
        performing unneeded vector assignments.
        (WebCore::XPath::Step::nodesInAxis): Cosmetic changes.
        (WebCore::XPath::Step::nodeTestMatches): Use NodeTest instead of parsing the test from string each time.
        Added a partial implementation of XPath 2.0 element() node test.

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

13 years ago Reviewed by Darin.
ap [Sun, 11 Mar 2007 08:10:38 +0000 (08:10 +0000)]
    Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=12249
        FCKeditor: <hr>, <ul> and <ol> have id="undefined"

        This fixes the attached reduction, but not the original issue.

        Test: editing/execCommand/default-parameters.html

        * dom/Document.h:
        * dom/Document.idl:
        Make second and third execCommand() parameters optional.

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

13 years ago Reviewed by Maciej.
adele [Sat, 10 Mar 2007 23:37:15 +0000 (23:37 +0000)]
    Reviewed by Maciej.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=13028
        REGRESSION: textField:doCommandBySelector:inFrame: not being called properly

        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
          Before calling the base class defaultEventHandler, which will call handleKeypress, call doTextFieldCommandFromEvent.

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

13 years agoLayoutTests:
ddkilzer [Sat, 10 Mar 2007 22:46:31 +0000 (22:46 +0000)]
LayoutTests:

        Reviewed by Darin.

        - test for http://bugs.webkit.org/show_bug.cgi?id=13013
          REGRESSION: Selection box does not scroll to where the focus jumps when pressing an alphanumeric key

        * fast/forms/listbox-typeahead-scroll-expected.txt: Added.
        * fast/forms/listbox-typeahead-scroll.html: Added.

WebCore:

        Reviewed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=13013
          REGRESSION: Selection box does not scroll to where the focus jumps when pressing an alphanumeric key

        Test: fast/forms/listbox-typeahead-scroll.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::setSelectedIndex): Reordered to set the active selection's
        anchor and end before selecting the option, since the active selection is used to
        decide where to scroll when the selection is made.
        (WebCore::HTMLSelectElement::defaultEventHandler): Removed redundant check.

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

13 years agoLayoutTests:
ddkilzer [Sat, 10 Mar 2007 22:43:14 +0000 (22:43 +0000)]
LayoutTests:

        Reviewed by Darin.

        - test for http://bugs.webkit.org/show_bug.cgi?id=12973
          REGRESSION: Reproducible assert while loading this test file if css is already in the cache

        * fast/dom/css-cached-import-rule-expected.checksum: Added.
        * fast/dom/css-cached-import-rule-expected.png: Added.
        * fast/dom/css-cached-import-rule-expected.txt: Added.
        * fast/dom/css-cached-import-rule.html: Added.

WebCore:

        Reviewed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=12973
          REGRESSION: Reproducible assert while loading this test file if css is already in the cache

        Test: fast/dom/css-cached-import-rule.html

        Replaced some direct calls to document->stylesheetLoaded() with calls to
        the sheet's checkLoaded(). The latter calls back to the element's sheetLoaded() --
        which notifies the document of the load -- and then updates the sheet's
        loadCompleted() flag, ensuring that it stays in sync with whether the stylesheet
        is still considered pending by the document.

        * dom/ProcessingInstruction.cpp:
        (WebCore::ProcessingInstruction::parseStyleSheet):
        * dom/StyleElement.cpp:
        (WebCore::StyleElement::childrenChanged):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::process):
        (WebCore::HTMLLinkElement::setCSSStyleSheet):
        * ksvg2/svg/SVGStyleElement.cpp:
        (WebCore::SVGStyleElement::sheetLoaded):
        * ksvg2/svg/SVGStyleElement.h:

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

13 years agoWebCore:
ddkilzer [Sat, 10 Mar 2007 22:38:07 +0000 (22:38 +0000)]
WebCore:

        Reviewed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=9609
          REGRESSION: Missing image icon needs to be moved back to WebKit

        * WebCore.exp: Export WebCore::Image::loadPlatformResource(const char*) for use in
        [WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:].

WebKit:

        Reviewed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=9609
          REGRESSION: Missing image icon needs to be moved back to WebKit

        * WebView/WebHTMLView.mm:
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
        Use WebCore::Image::loadPlatformResource(const char*) to load the missingImage image.

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

13 years ago2007-03-10 Mark Rowe <mrowe@apple.com>
bdash [Sat, 10 Mar 2007 08:08:36 +0000 (08:08 +0000)]
2007-03-10  Mark Rowe  <mrowe@apple.com>

        Reviewed by John.

        <rdar://problem/5051827> HIWebView handling of kEventControlGetData is broken in 64-bit

        On Leopard the kEventParamControlDataBufferSize event parameter is of type typeByteCount.
        The 32-bit implementation of GetEventParameter will coerce between integer types and
        typeByteCount while the 64-bit version will return a failure. As typeByteCount is new
        in Leopard we must continue using typeSInt32 when building for Tiger.

        * Carbon/HIWebView.m:
        (HIWebViewEventHandler):

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

13 years agoWebKitTools:
ddkilzer [Sat, 10 Mar 2007 00:41:48 +0000 (00:41 +0000)]
WebKitTools:

        Reviewed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=13007
          svn-create-patch doesn't handle UTF files with BOMs as text

        Force diff to treat files that svn-create-patch thinks are text as text.

        * Scripts/svn-create-patch: Added -a switch to diff command.

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

13 years ago Reviewed by Darin.
thatcher [Fri, 9 Mar 2007 22:58:02 +0000 (22:58 +0000)]
    Reviewed by Darin.

        <rdar://problem/4976254> Please get off _NSSoftLinkingGetFrameworkFuncPtr

        Use dlopen and dlsym to access the DCSShowDictionaryServiceWindow function.

        * WebView/WebHTMLView.mm:
        (-[WebHTMLView _lookUpInDictionaryFromMenu:]):

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

13 years ago * blog/wp-content/themes/webkit/style.css: Removed rule for code since
darin [Fri, 9 Mar 2007 19:45:36 +0000 (19:45 +0000)]
    * blog/wp-content/themes/webkit/style.css: Removed rule for code since
        we want it to match pre, and the default font looks fine -- no need to
        ask for "Courier New" explicitly.

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

13 years agoLayoutTests:
darin [Fri, 9 Mar 2007 18:54:29 +0000 (18:54 +0000)]
LayoutTests:

        Reviewed by Justin.

        - test for http://bugs.webkit.org/show_bug.cgi?id=8928
          <rdar://problem/5045708> REPRODUCIBLE ASSERT: Cannot paste HTML into a
          contenteditable region in an XHTML document (8928)

        * editing/pasteboard/paste-xml-expected.checksum: Added.
        * editing/pasteboard/paste-xml-expected.png: Added.
        * editing/pasteboard/paste-xml-expected.txt: Added.
        * editing/pasteboard/paste-xml.xhtml: Added.

WebCore:

        Reviewed by Justin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=8928
          <rdar://problem/5045708> REPRODUCIBLE ASSERT: Cannot paste HTML into a
          contenteditable region in an XHTML document (8928)

        Test: editing/pasteboard/paste-xml.xhtml

        * editing/markup.cpp: (WebCore::createFragmentFromMarkup): Added a check for 0
        here, since createContextualFragment can return 0 for XML documents that fail
        to parse. In my testing, callers all seem equipped to handle 0.

WebKit:

        Reviewed by Justin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=8928
          <rdar://problem/5045708> REPRODUCIBLE ASSERT: Cannot paste HTML into a
          contenteditable region in an XHTML document (8928)

        * WebView/WebHTMLView.mm:
        (-[WebHTMLView _hasHTMLDocument]): Added.
        (-[WebHTMLView _documentFragmentFromPasteboard:forType:inContext:subresources:]):
        Don't call AppKit's conversion from the DOM to an attributed string if the document
        is not an HTML document, to work around an AppKit limitation (Radar 5052390).

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

13 years ago * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
darin [Fri, 9 Mar 2007 16:19:18 +0000 (16:19 +0000)]
    * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.

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

13 years agoLayoutTests:
weinig [Fri, 9 Mar 2007 16:05:37 +0000 (16:05 +0000)]
LayoutTests:

        Reviewed by Darin.

        - test for http://bugs.webkit.org/show_bug.cgi?id=9929
          REGRESSION: crash on logging in on mijnpostbank.nl

        * http/tests/misc/onload-remove-iframe-crash-2-expected.txt: Added.
        * http/tests/misc/onload-remove-iframe-crash-2.html: Added.
        * http/tests/misc/resources/onload-remove-iframe-crash-2.html: Added.
        * http/tests/misc/resources/onload-remove-iframe.html: Added.

WebCore:

        Reviewed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=9929
          REGRESSION: crash on logging in on mijnpostbank.nl

        Test: http/tests/misc/onload-remove-iframe-crash-2.html

        The resulted from an iframe's load event handler removing the iframe
        from the document.

        * dom/Document.cpp:
        (WebCore::Document::implicitClose): Bail out early if an event handler
        removed the frame.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::FrameLoader):
        (WebCore::FrameLoader::clear):
        (WebCore::FrameLoader::checkCompleted): Protect the frame from deletion
        by event handlers.
        (WebCore::FrameLoader::checkCompletedTimerFired):
        (WebCore::FrameLoader::scheduleCheckCompleted):
        (WebCore::FrameLoader::detachFromParent): Schedule a completion check
        on the parent (in case the child is what has been keeping it from completing).
        * loader/FrameLoader.h:

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

13 years agoI forgot to commit my ChangeLog as part of r20028, sorry about that.
rwlbuis [Fri, 9 Mar 2007 12:35:46 +0000 (12:35 +0000)]
I forgot to commit my ChangeLog as part of r20028, sorry about that.

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

13 years agoRoll out r20078 as it's causing a crash during layout tests.
bdash [Fri, 9 Mar 2007 10:00:15 +0000 (10:00 +0000)]
Roll out r20078 as it's causing a crash during layout tests.

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

13 years agoWebCore:
ddkilzer [Fri, 9 Mar 2007 06:05:00 +0000 (06:05 +0000)]
WebCore:

        Reviewed by Beth.

        - fix http://bugs.webkit.org/show_bug.cgi?id=13019
          REGRESSION (r20074): Forms don't submit on a variety of websites

        No tests added since LayoutTests/fast/forms/document-write.html was timing out
        and causing a layout test failure.

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::submit): Removed stray code.

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

13 years ago Not reviewed - gdk build fix.
kjk [Fri, 9 Mar 2007 04:55:44 +0000 (04:55 +0000)]
    Not reviewed - gdk build fix.

        * platform/graphics/cairo/ImageSourceCairo.cpp:
        (WebCore::ImageSource::frameIsCompleteAtIndex): add empty stub

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

13 years ago2007-03-08 Mark Rowe <mrowe@apple.com>
bdash [Fri, 9 Mar 2007 04:23:41 +0000 (04:23 +0000)]
2007-03-08  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        <rdar://problem/5051616> Mouse clicks and movement are ignored in HIWebView on 64-bit

        Mouse events are not being handled correctly as GetControlKind is returning an error
        on 64-bit.  The more modern HIObjectIsOfClass behaves correctly for this use.

        * Carbon/HIWebView.m:
        (HIWebViewDestructor):
        (WindowHandler): Use HIObjectIsOfClass in place of GetControlKind.
        (HIWebViewEventHandler): Don't leak the NSEvent.

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

13 years ago2007-03-09 Mark Rowe <mrowe@apple.com>
bdash [Fri, 9 Mar 2007 04:06:10 +0000 (04:06 +0000)]
2007-03-09  Mark Rowe  <mrowe@apple.com>

        Unreviewed.  Use the new SVN URL on the buildbot.

        * BuildSlaveSupport/build.webkit.org-config/webkit/steps.py:

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

13 years ago2007-03-09 Mark Rowe <mrowe@apple.com>
bdash [Fri, 9 Mar 2007 03:57:17 +0000 (03:57 +0000)]
2007-03-09  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Tim Hatcher.

        Sexy blog permalinks!

        * blog/.htaccess: Added.

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

13 years ago2007-03-08 MorganL <morganl.webkit@yahoo.com>
bdash [Fri, 9 Mar 2007 03:11:46 +0000 (03:11 +0000)]
2007-03-08  MorganL  <morganl.webkit@yahoo.com>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=13018
        Bug 13018: allow embedders to override the definition of CRASH.

        * wtf/Assertions.h: make it possible to override CRASH.

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

13 years ago2007-03-08 Mitz Pettel <mitz@webkit.org>
bdash [Fri, 9 Mar 2007 03:08:35 +0000 (03:08 +0000)]
2007-03-08  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Brady.

        - fix http://bugs.webkit.org/show_bug.cgi?id=13015
          REGRESSION (r17233-r17241): Repro crash when leaving a page whose unload handler submits a form

        Test: fast/loader/onunload-form-submit-crash-2.html

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::finishedLoading): Added null check.

2007-03-08  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Brady.

        - test for http://bugs.webkit.org/show_bug.cgi?id=13015
          REGRESSION (r17233-r17241): Repro crash when leaving a page whose unload handler submits a form

        * fast/loader/onunload-form-submit-crash-2-expected.txt: Added.
        * fast/loader/onunload-form-submit-crash-2.html: Added.

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

13 years ago2007-03-08 Bruce Q Hammond <bruceq@apple.om>
bdash [Fri, 9 Mar 2007 03:02:08 +0000 (03:02 +0000)]
2007-03-08  Bruce Q Hammond  <bruceq@apple.om>

        Reviewed by Darin.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=13009
        Console spews "CGContextGetType: invalid context" non-stop on web site

        * Plugins/WebBaseNetscapePluginView.mm:
        (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
        (-[WebBaseNetscapePluginView restorePortState:]):

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

13 years ago2007-03-09 Mark Rowe <mrowe@apple.com>
bdash [Fri, 9 Mar 2007 02:37:56 +0000 (02:37 +0000)]
2007-03-09  Mark Rowe  <mrowe@apple.com>

        Reviewed by Adam.

        * building/checkout.html: Update repository URL.

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

13 years agoLayoutTests:
justing [Fri, 9 Mar 2007 02:37:26 +0000 (02:37 +0000)]
LayoutTests:

        Reviewed by harrison

        <rdar://problem/4903193>
        On particular page, Copy is so slow it seems like a hang

        Less messy DOM trees:
        * editing/deleting/delete-3857753-fix-expected.txt:
        * editing/inserting/insert-3786362-fix-expected.txt:
        * editing/inserting/insert-3907422-fix-expected.txt:
        * editing/pasteboard/display-block-on-spans-expected.txt:
        * editing/pasteboard/paste-4035648-fix-expected.txt:
        * editing/pasteboard/paste-4039777-fix-expected.txt:
        * editing/pasteboard/paste-line-endings-001-expected.txt:
        * editing/pasteboard/paste-line-endings-006-expected.txt:
        * editing/pasteboard/paste-list-001-expected.txt:
        * editing/pasteboard/paste-pre-001-expected.txt:
        * editing/pasteboard/paste-pre-002-expected.txt:
        * editing/pasteboard/paste-table-001-expected.txt:
        * editing/pasteboard/paste-table-002-expected.txt:
        * editing/pasteboard/paste-text-003-expected.txt:
        * editing/pasteboard/paste-text-011-expected.txt:
        * editing/pasteboard/paste-text-015-expected.txt:
        * editing/pasteboard/paste-text-016-expected.txt:
        * editing/pasteboard/paste-text-017-expected.txt:
        * editing/pasteboard/styled-element-markup-expected.txt:
        * editing/pasteboard/testcase-9507-expected.txt:
        * editing/style/smoosh-styles-001-expected.txt:
        * editing/style/smoosh-styles-002-expected.txt:
        * fast/lists/drag-into-marker-expected.txt:
        Styles from style sheets are now inlined:
        * webarchive/test-duplicate-resources-expected.txt:
        * webarchive/test-frameset-expected.txt:
        * webarchive/test-link-href-expected.txt:\
        Two levels of nesting are removed, but text nodes are no
        longer coalesced when they should be, investigating:
        * editing/pasteboard/block-wrappers-necessary-expected.txt:

WebCore:

        Reviewed by harrison

        <rdar://problem/4903193>
        On particular page, Copy is so slow it seems like a hang

        ~2x speedup copying:
        http://shakespeare.mit.edu/henryviii/full.html
        Also produces less bloated markup.

        * editing/markup.cpp:
        (WebCore::startMarkup): Don't wrap text nodes in style spans.
        For Elements, don't inline styles inherited from ancestors.
        (WebCore::createMarkup): No longer necessary to find
        the root's default style and pass it to startMarkup.
        Add a wrapper span around the markup with the styles
        that all nodes in the markup inherit (the inheritable
        styles from the common ancestor container's computed style).
        Added a FIXME about unecessary markup for inline ancestors
        up to the commonAncestorBlock.

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

13 years ago Reviewed by Adele.
darin [Fri, 9 Mar 2007 02:25:25 +0000 (02:25 +0000)]
    Reviewed by Adele.

        - <rdar://problem/4470381> multipart/form-data boundary security vulnerability

        By making the form data boundary a string with some random data in it, we reduce
        the possibility that anyone could take advantage of it by creating a file that
        intentionally has the boundary string in it.

        * html/HTMLFormElement.h: Removed boundary(), setBoundary(), and m_boundary.
        Marked a lot more stuff private.
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::HTMLFormElement): Removed code to initialize
        m_boundary.
        (WebCore::randomNumber): Added. Function that returns a random number, including
        seeding the random number generator the first time it's called. For now, usees the more
        random function random() on Mac OS X and the more-standard rand() on other platforms.
        (WebCore::HTMLFormElement::formData): Take a parameter with the form boundary string,
        and use that instead of m_boundary.
        (WebCore::getUniqueBoundaryString): Added. Makes a boundary string using random numbers
        and base 64 encoding.
        (WebCore::HTMLFormElement::submit): Call getUniqueBoundaryString and pass the boundary
        string into formData for multipart form posts.

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

13 years ago2007-03-08 Mark Rowe <mrowe@apple.com>
bdash [Fri, 9 Mar 2007 02:15:19 +0000 (02:15 +0000)]
2007-03-08  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        <rdar://problem/4561772> HIWebView does not exist for 64-bit

        Update HIWebView and friends to work without QuickDraw.

        Changes are gleaned from the 64-bit support inside HICocoaView.  The main
        fact of interest are that all Carbon windows must have compositing enabled
        so the code paths that aren't accessible are #ifdef'd out.  Conveniently
        these are the exact code paths that make use of QuickDraw.

        There are currently minor event-handling and invalidation issues running as
        64-bit that are not present in 32-bit.

        * Carbon/CarbonUtils.m:
        * Carbon/CarbonWindowAdapter.m:
        * Carbon/CarbonWindowFrame.m:
        * Carbon/HIViewAdapter.m:
        (SetViewNeedsDisplay):
        * Carbon/HIWebView.m:
        (Draw):
        (Click):
        (SyncFrame):
        (StartUpdateObserver):
        (StopUpdateObserver):
        (UpdateObserver):
        * WebKit.LP64.exp: Removed.
        * WebKit.xcodeproj/project.pbxproj: Always use WebKit.exp.

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

13 years agoLayoutTests:
mjs [Fri, 9 Mar 2007 02:12:43 +0000 (02:12 +0000)]
LayoutTests:

        Reviewed by Adele.

        <rdar://problem/4646563> REGRESSION: Unable to send text message from Verizon text message website: vtext.com (12588)
        http://bugs.webkit.org/show_bug.cgi?id=12588

        Carefully revised which focus operations restore previous selection, which clear it, and which
        select the whole control contents, these test cases cover every focus call I could find.

        * fast/forms/focus-selection-input-expected.txt: Added.
        * fast/forms/focus-selection-input.html: Added.
        * fast/forms/focus-selection-textarea-expected.txt: Added.
        * fast/forms/focus-selection-textarea.html: Added.
        * fast/forms/onselect-textfield-expected.txt:

WebCore:

        Reviewed by Adele.

        <rdar://problem/4646563> REGRESSION: Unable to send text message from Verizon text message website: vtext.com (12588)
        http://bugs.webkit.org/show_bug.cgi?id=12588

        Carefully revised which focus operations restore previous selection, which clear it, and which
        select the whole control contents.

        Tests:
        fast/forms/focus-selection-input.html
        fast/forms/focus-selection-textarea.html

        * dom/Element.cpp:
        (WebCore::Element::focus):
        * dom/Element.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::focus):
        (WebCore::HTMLInputElement::accessKeyAction):
        * html/HTMLInputElement.h:
        * html/HTMLLabelElement.cpp:
        (WebCore::HTMLLabelElement::focus):
        (WebCore::HTMLLabelElement::accessKeyAction):
        * html/HTMLLabelElement.h:
        * html/HTMLLegendElement.cpp:
        (WebCore::HTMLLegendElement::focus):
        * html/HTMLLegendElement.h:
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::focus):
        * html/HTMLTextAreaElement.h:
        * page/FocusController.cpp:
        (WebCore::FocusController::advanceFocus):

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

13 years agoLayoutTests:
justing [Fri, 9 Mar 2007 00:33:32 +0000 (00:33 +0000)]
LayoutTests:

        Reviewed by harrison

        <http://bugs.webkit.org/show_bug.cgi?id=12244>
        FCKeditor: Find dialog doesn't work

        * editing/execCommand/12244-expected.txt: Added.
        * editing/execCommand/12244.html: Added.
        * fast/dom/Window/window-properties-expected.txt:

WebCore:

        Reviewed by harrison

        <http://bugs.webkit.org/show_bug.cgi?id=12244>
        FCKeditor: Find dialog doesn't work

        * bindings/js/kjs_window.cpp:
        (KJS::Window::find): Added.  This function doesn't yet
        support whole word searches, searching in subframes, or
        opening the find dialog.
        (KJS::WindowFunc::callAsFunction):
        * bindings/js/kjs_window.h:
        (KJS::Window::):

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

13 years ago Fix regression from throwing away frames of large animated images. Alter
hyatt [Thu, 8 Mar 2007 23:58:11 +0000 (23:58 +0000)]
    Fix regression from throwing away frames of large animated images.  Alter
        animated images so that they refuse to advance the animation until the
        current displayed frame has been fully decoded.

        Reviewed by ggaren

        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::startAnimation):
        (WebCore::BitmapImage::advanceAnimation):
        * platform/graphics/ImageSource.h:
        * platform/graphics/cg/ImageSourceCG.cpp:
        (WebCore::ImageSource::frameIsCompleteAtIndex):

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

13 years ago Fix 2% performance regression on the PLT. Increase the large animated
hyatt [Thu, 8 Mar 2007 23:33:43 +0000 (23:33 +0000)]
    Fix 2% performance regression on the PLT.  Increase the large animated
        image cutoff from 1MB to 5MB.

        In addition when pruning we will aggressively discard image sources.

        Reviewed by ggaren

        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::destroyDecodedData):

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

13 years agogit-svn-id: https://svn.webkit.org/repository/webkit/trunk@20068 268f45cc-cd09-0410...
justing [Thu, 8 Mar 2007 22:42:16 +0000 (22:42 +0000)]
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@20068 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 years agoWebCore:
thatcher [Thu, 8 Mar 2007 22:16:07 +0000 (22:16 +0000)]
WebCore:

        Reviewed by John.

        <rdar://problem/4664697> highlighter SPI needs a node parameter to give more context

        Pass the RenderObject's node to customHighlightLineRect and paintCustomHighlight.

        * page/Frame.h:
        * page/mac/FrameMac.mm:
        (WebCore::Frame::customHighlightLineRect):
        (WebCore::Frame::paintCustomHighlight):
        * page/mac/WebCoreFrameBridge.h:
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paintCustomHighlight):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintCustomHighlight):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::addHighlightOverflow):
        (WebCore::RootInlineBox::paintCustomHighlight):

WebKit:

        Reviewed by John.

        <rdar://problem/4664697> highlighter SPI needs a node parameter to give more context

        Added new methods to the WebHTMLHighlighter protocol that include the DOMNode being painted.

        * WebCoreSupport/WebFrameBridge.mm:
        (-[WebFrameBridge customHighlightRect:forLine:representedNode:WebCore::]):
        (-[WebFrameBridge paintCustomHighlight:forBox:onLine:behindText:entireLine:representedNode:WebCore::]):
        * WebKit.xcodeproj/project.pbxproj:
        * WebView/WebHTMLViewPrivate.h:

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

13 years agoLayoutTests:
justing [Thu, 8 Mar 2007 22:00:53 +0000 (22:00 +0000)]
LayoutTests:

        Reviewed by harrison

        <http://bugs.webkit.org/show_bug.cgi?id=13000>
        Range.createContextualFragment is not supported

        * fast/dom/Range/13000-expected.txt: Added.
        * fast/dom/Range/13000.html: Added.

WebCore:

        Reviewed by harrison

        <http://bugs.webkit.org/show_bug.cgi?id=13000>
        Range.createContextualFragment is not supported

        * dom/Range.cpp:
        (WebCore::Range::createContextualFragment): The
        "startContainer" may not be a container, if the
        range starts inside text.  In that case, look
        to the parent of the start node for an HTMLElement.

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

13 years agoLayoutTests:
justing [Thu, 8 Mar 2007 20:49:37 +0000 (20:49 +0000)]
LayoutTests:

        Reviewed by harrison

        <rdar::/problem/5049671>
        Gmail Editor: With linked text, Remove Formatting doesn't always remove underline

        * editing/execCommand/5049671-expected.checksum: Added.
        * editing/execCommand/5049671-expected.png: Added.
        * editing/execCommand/5049671-expected.txt: Added.
        * editing/execCommand/5049671.html: Added.

WebCore:

        Reviewed by harrison

        <rdar://problem/5049671>
        Gmail Editor: With linked text, Remove Formatting doesn't always remove underline

        * editing/Editor.cpp:
        (WebCore::Editor::removeFormattingAndStyle): Clear removed
        anchors after the deletion.

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

13 years agoAttempt to fix the build.
thatcher [Thu, 8 Mar 2007 18:33:04 +0000 (18:33 +0000)]
Attempt to fix the build.

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

13 years agoWebCore:
ddkilzer [Thu, 8 Mar 2007 15:03:56 +0000 (15:03 +0000)]
WebCore:

        Reviewed by NOBODY (build fix).

        Added missing file for r20059:
        <rdar://problem/4708689> -- REGRESSION: Some symbols with 2-byte display as garbage in Hotmail.

        File was taken from this svn repository which contained versions of ucnv.h and ucnv_err.h
        that were identical to ours:
        http://source.icu-project.org/repos/icu/icu/tags/release-3-2/source/common/unicode/ucnv_cb.h

        * icu/unicode/ucnv_cb.h: Added.

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

13 years ago2007-03-09 Shrikant Gangoda <shrikant.gangoda@celunite.com>
bdash [Thu, 8 Mar 2007 13:57:12 +0000 (13:57 +0000)]
2007-03-09  Shrikant Gangoda  <shrikant.gangoda@celunite.com>

        Gdk build fix.

        * platform/graphics/cairo/ImageSourceCairo.cpp:
        (WebCore::ImageSource::~ImageSource):
        (WebCore::ImageSource::clear):

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

13 years ago2007-03-08 Mark Rowe <mrowe@apple.com>
bdash [Thu, 8 Mar 2007 12:09:29 +0000 (12:09 +0000)]
2007-03-08  Mark Rowe  <mrowe@apple.com>

        Reviewed by Antti.

        Fix compiler warnings when building Drosera as 64-bit.

        * Drosera/DebuggerDocument.m:
        (-[DebuggerDocument breakpointEditorHTML]): Move away from deprecated NSString method.
        (-[DebuggerDocument scriptConfirmSheetDidEnd:returnCode:contextInfo:]): Update type.
        (-[DebuggerDocument webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:]): Update type to accommodate constant.

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

13 years ago2007-03-08 Oliver Hunt <oliver@apple.com>
oliver [Thu, 8 Mar 2007 11:08:53 +0000 (11:08 +0000)]
2007-03-08  Oliver Hunt  <oliver@apple.com>

        Reviewed by Adam.
WebCore:
        To match old TEC behaviour when using ICU we need to use
        a few manual fallback encodings for the GBK/EUC-CN charsets

        <rdar://problem/4708689> -- REGRESSION: Some symbols with 2-byte display as garbage in Hotmail.

        * platform/TextCodecICU.cpp:
        (WebCore::TextCodecICU::TextCodecICU):
        (WebCore::TextCodecICU::createICUConverter):
        (WebCore::gbkEscapes):
        (WebCore::gbkCallbackEscape):
        (WebCore::gbkCallbackSubstitute):
        (WebCore::TextCodecICU::encode):
        * platform/TextCodecICU.h:
        (WebCore::TextCodecICU::needsGBKFallbacks):
        (WebCore::TextCodecICU::setNeedsGBKFallbacks):

LayoutTests:
        Adding GBK character encoding tests

        * fast/encoding/char-encoding-expected.txt:
        * fast/encoding/char-encoding.html:

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

13 years ago Try fixing the buildbot build.
andersca [Thu, 8 Mar 2007 09:12:06 +0000 (09:12 +0000)]
    Try fixing the buildbot build.

        * Plugins/WebBaseNetscapePluginView.mm:
        (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):

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

13 years agoWebCore:
ap [Thu, 8 Mar 2007 08:48:55 +0000 (08:48 +0000)]
WebCore:
        Build fix.

        * xml/XPathUtil.cpp:
        (WebCore::XPath::stringValue):

LayoutTests:
        Added a test for attribute node string-value.

        * fast/xpath/string-value-expected.txt:
        * fast/xpath/string-value.html:

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

13 years ago This patch dramatically reduces the memory consumed by animated images. ...
hyatt [Thu, 8 Mar 2007 08:43:35 +0000 (08:43 +0000)]
    This patch dramatically reduces the memory consumed by animated images.  For large animated GIFs (defined for
        now as >1mb in terms of decoded frame buffer size), we will now aggressively flush previous frames of the
        animated GIF and just re-decode them on the fly if the animation loops.

        Whenever a large animated GIF has its animation reset, we will also just throw out everything and start
        the animation over (in order to get rid of any cached detritus held in the ImageSource).

        With this patch and the sample GIF used to test, WebKit's memory consumption went from 160MB down to 16MB.

        Reviewed by mjs

        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::destroyDecodedData):
        (WebCore::BitmapImage::resetAnimation):
        (WebCore::BitmapImage::advanceAnimation):
        * platform/graphics/ImageSource.h:
        * platform/graphics/cg/ImageSourceCG.cpp:
        (WebCore::ImageSource::~ImageSource):
        (WebCore::ImageSource::clear):

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

13 years ago Reviewed by Darin.
ap [Thu, 8 Mar 2007 08:16:04 +0000 (08:16 +0000)]
    Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=13006
        XPath string-value is broken for some node types

        Test: fast/xpath/string-value.html

        * xml/XPathUtil.cpp:
        (WebCore::XPath::stringValue): Fix it :-)

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

13 years agoAdded bug number and fixed email address.
ddkilzer [Thu, 8 Mar 2007 08:02:21 +0000 (08:02 +0000)]
Added bug number and fixed email address.

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

13 years ago Reviewed by Adam.
andersca [Thu, 8 Mar 2007 07:15:04 +0000 (07:15 +0000)]
    Reviewed by Adam.

        <rdar://problem/4981000>
        http://bugs.webkit.org/show_bug.cgi?id=12634
        REGRESSION: crash loading web archive (12634)

        The reason this bug wasn't always reproducible is that it involved sending an event to a plugin while
        the page was loading. Before we send the event to the plugin we defer loads. The problem was that
        MainResourceLoader::setDefersLoad would not work with data loads.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::setRequest):
        Only set m_committed to false if we also have a valid unreachable URL.

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::setDefersLoading):
        Make sure to stop and start data loads.

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

13 years ago Not reviewed.
kjk [Thu, 8 Mar 2007 07:01:20 +0000 (07:01 +0000)]
    Not reviewed.

        Gdk build fixes.

        * platform/gdk/EditorClientGdk.cpp:
        (WebCore::EditorClientGdk::handleKeypress): renamed
        (WebCore::EditorClientGdk::handleInputMethodKeypress): add a stub
        * platform/gdk/EditorClientGdk.h:
        * platform/graphics/cairo/ImageSourceCairo.cpp:
        (WebCore::ImageSource::destroyFrameAtIndex): add a stub

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

13 years agoLayoutTests:
weinig [Thu, 8 Mar 2007 03:47:34 +0000 (03:47 +0000)]
LayoutTests:

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=13004
        Repeatedly calling XPathExpression.evaluate() causes crashes or memory leaks

        * fast/xpath/evaluate-twice-expected.txt: Added.
        * fast/xpath/evaluate-twice.html: Added.

WebCore:

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=13004
        Repeatedly calling XPathExpression.evaluate() causes crashes or memory leaks

        Removed XPath::Expression::optimize() and related methods, since they were buggy and almost useless.
        Merged doEvaluate() into evaluate(), since this was all evaluate() was doing after the above changes.

        Test: fast/xpath/evaluate-twice.html

        * xml/XPathExpression.cpp:
        (WebCore::XPathExpression::evaluate):
        * xml/XPathExpressionNode.cpp:
        (WebCore::XPath::Expression::Expression):
        (WebCore::XPath::Expression::~Expression):
        * xml/XPathExpressionNode.h:
        * xml/XPathFunctions.cpp:
        (WebCore::XPath::FunLast::evaluate):
        (WebCore::XPath::FunPosition::evaluate):
        (WebCore::XPath::FunId::evaluate):
        (WebCore::XPath::FunLocalName::evaluate):
        (WebCore::XPath::FunNamespaceURI::evaluate):
        (WebCore::XPath::FunName::evaluate):
        (WebCore::XPath::FunCount::evaluate):
        (WebCore::XPath::FunString::evaluate):
        (WebCore::XPath::FunConcat::evaluate):
        (WebCore::XPath::FunStartsWith::evaluate):
        (WebCore::XPath::FunContains::evaluate):
        (WebCore::XPath::FunSubstringBefore::evaluate):
        (WebCore::XPath::FunSubstringAfter::evaluate):
        (WebCore::XPath::FunSubstring::evaluate):
        (WebCore::XPath::FunStringLength::evaluate):
        (WebCore::XPath::FunNormalizeSpace::evaluate):
        (WebCore::XPath::FunTranslate::evaluate):
        (WebCore::XPath::FunBoolean::evaluate):
        (WebCore::XPath::FunNot::evaluate):
        (WebCore::XPath::FunTrue::evaluate):
        (WebCore::XPath::FunLang::evaluate):
        (WebCore::XPath::FunFalse::evaluate):
        (WebCore::XPath::FunNumber::evaluate):
        (WebCore::XPath::FunSum::evaluate):
        (WebCore::XPath::FunFloor::evaluate):
        (WebCore::XPath::FunCeiling::evaluate):
        (WebCore::XPath::FunRound::evaluate):
        * xml/XPathPath.cpp:
        (WebCore::XPath::Filter::evaluate):
        (WebCore::XPath::LocationPath::evaluate):
        (WebCore::XPath::Path::evaluate):
        * xml/XPathPath.h:
        * xml/XPathPredicate.cpp:
        (WebCore::XPath::Number::evaluate):
        (WebCore::XPath::StringExpression::evaluate):
        (WebCore::XPath::Negative::evaluate):
        (WebCore::XPath::NumericOp::evaluate):
        (WebCore::XPath::EqTestOp::evaluate):
        (WebCore::XPath::LogicalOp::evaluate):
        (WebCore::XPath::Union::evaluate):
        * xml/XPathPredicate.h:
        * xml/XPathStep.cpp:
        * xml/XPathStep.h:
        * xml/XPathVariableReference.cpp:
        (WebCore::XPath::VariableReference::evaluate):
        * xml/XPathVariableReference.h:

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

13 years agoThe change to go along with Anders' ChangeLog entry.
bdash [Thu, 8 Mar 2007 03:31:33 +0000 (03:31 +0000)]
The change to go along with Anders' ChangeLog entry.

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

13 years ago Leopard build fix.
andersca [Thu, 8 Mar 2007 03:18:31 +0000 (03:18 +0000)]
Leopard build fix.

        * Plugins/WebBaseNetscapePluginView.mm:

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

13 years ago Reviewed by Tim H.
weinig [Thu, 8 Mar 2007 03:15:19 +0000 (03:15 +0000)]
    Reviewed by Tim H.

        Remove unused #import from Objective-C bindings and cleanup the order of #imports.

        * bindings/scripts/CodeGeneratorObjC.pm:

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

13 years ago Reviewed by Tim H.
weinig [Thu, 8 Mar 2007 02:43:05 +0000 (02:43 +0000)]
    Reviewed by Tim H.

        Make sure the baseURI attribute generates for private Objective-C bindings.

        * dom/Node.idl:

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

13 years ago Reviewed by Maciej.
andersca [Thu, 8 Mar 2007 02:18:49 +0000 (02:18 +0000)]
    Reviewed by Maciej.

        <rdar://problem/4874059>
        REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()

        If a load is done from inside of an error delegate method that is called because we cancel another load,
        the first load should be ignored since this is what shipping WebKit does.

        (Actually, it does load the page in the data source but doesn't do anything with it since the data source
        won't have a web frame).

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::load):
        Just bail out if m_isStoppingLoad is true.

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

13 years ago Use CGImageRelease instead of CFRelease.
hyatt [Thu, 8 Mar 2007 02:09:07 +0000 (02:09 +0000)]
    Use CGImageRelease instead of CFRelease.

        Reviewed by aroben

        * platform/graphics/cg/ImageCG.cpp:
        (WebCore::FrameData::clear):
        * platform/graphics/cg/ImageSourceCG.cpp:
        (WebCore::ImageSource::destroyFrameAtIndex):

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

13 years ago Fix a regression where the cache size overflows because of a double
hyatt [Thu, 8 Mar 2007 02:00:25 +0000 (02:00 +0000)]
    Fix a regression where the cache size overflows because of a double
        subtraction per resource when they got removed from the cache.  Add an
        assert to adjustSize to detect this case in the future.

        Fix ImageSourceCG so that when we flush decoded data from our cache that
        we also flush it from the ImageSource.

        Reviewed by mjs

        * loader/Cache.cpp:
        (WebCore::Cache::adjustSize):
        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::~BitmapImage):
        (WebCore::BitmapImage::destroyDecodedData):
        * platform/graphics/Image.h:
        * platform/graphics/ImageSource.h:
        * platform/graphics/cg/ImageSourceCG.cpp:
        (WebCore::ImageSource::setData):
        (WebCore::ImageSource::destroyFrameAtIndex):

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

13 years ago2007-03-07 Anrong Hu <huanr@yahoo.com>
bdash [Thu, 8 Mar 2007 01:42:39 +0000 (01:42 +0000)]
2007-03-07  Anrong Hu  <huanr@yahoo.com>

        Reviewed by Maciej.

        Fix http://bugs.webkit.org/show_bug.cgi?id=12535
        Bug 12535: Stack-optimizing compilers can trick GC into freeing in-use objects

        * kjs/internal.cpp:
        (KJS::StringImp::toObject): Copy val onto the stack so it is not subject to garbage collection.

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

13 years ago2007-03-07 Bruce Q Hammond <bruceq@apple.om>
bdash [Thu, 8 Mar 2007 01:34:23 +0000 (01:34 +0000)]
2007-03-07  Bruce Q Hammond  <bruceq@apple.om>

        Reviewed by Darin.

        This fixes a problem with Netscape-style Plug-ins which draw through the Quickdraw APIs
        being unable to render into offscreen bitmap contexts.

        This patches both saveAndSetNewPortStateForUpdate: and restorePortState:
        These methods now check the current context and see if appropriate setup/cleanup needs to be done
        for offscreen rendering.

        * Plugins/WebBaseNetscapePluginView.mm:
        (QDPixelFormatFromCGBitmapInfo):
        (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
        (-[WebBaseNetscapePluginView restorePortState:]):

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

13 years ago2007-03-07 Mitz Pettel <mitz@webkit.org>
bdash [Thu, 8 Mar 2007 01:29:17 +0000 (01:29 +0000)]
2007-03-07  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=13002
          Incomplete repaint of inset outlines

        Test: fast/repaint/outline-inset.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):

2007-03-07  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Darin.

        - repaint test for http://bugs.webkit.org/show_bug.cgi?id=13002
          Incomplete repaint of inset outlines

        * fast/repaint/outline-inset-expected.checksum: Added.
        * fast/repaint/outline-inset-expected.png: Added.
        * fast/repaint/outline-inset-expected.txt: Added.
        * fast/repaint/outline-inset.html: Added.

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

13 years ago Reviewed by Darin.
andersca [Thu, 8 Mar 2007 01:16:19 +0000 (01:16 +0000)]
    Reviewed by Darin.

        Use HardRetain/HardRelease.

        * WebView/WebDocumentLoaderMac.mm:
        (WebDocumentLoaderMac::setDataSource):
        (WebDocumentLoaderMac::attachToFrame):
        (WebDocumentLoaderMac::detachFromFrame):
        (WebDocumentLoaderMac::increaseLoadCount):
        (WebDocumentLoaderMac::decreaseLoadCount):

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

13 years ago Reviewed by Maciej.
andersca [Thu, 8 Mar 2007 01:09:50 +0000 (01:09 +0000)]
    Reviewed by Maciej.

        <rdar://problem/4961259>
        REGRESSION: Bumper Car 2.1.1 - Crash at WebCore::FrameLoader::receivedMainResourceError when encountering a invalid URL address

        (The crash was already fixed, this actually makes Bumper Car load the error page correctly.)

        This adds a "load counter" to the document loader and keeps the data source retained for as long as something is loading.

        * WebCoreSupport/WebFrameLoaderClient.mm:
        (WebFrameLoaderClient::dispatchWillSendRequest):
        Increase the load counter.

        (WebFrameLoaderClient::dispatchDidFinishLoading):
        (WebFrameLoaderClient::dispatchDidFailLoading):
        Decrease the load counter,

        * WebView/WebDocumentLoaderMac.h:
        * WebView/WebDocumentLoaderMac.mm:
        (WebDocumentLoaderMac::WebDocumentLoaderMac):

        (WebDocumentLoaderMac::attachToFrame):
        If the document loader has been detached, make sure to retain its data source here.

        (WebDocumentLoaderMac::detachFromFrame):
        Release the data source.

        (WebDocumentLoaderMac::increaseLoadCount):
        Retain the data source if load count was 0.

        (WebDocumentLoaderMac::decreaseLoadCount):
        Release the data source if load count becomes 0

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

13 years ago2007-03-07 Mark Rowe <mrowe@apple.com>
bdash [Thu, 8 Mar 2007 01:07:17 +0000 (01:07 +0000)]
2007-03-07  Mark Rowe  <mrowe@apple.com>

        Reviewed by Maciej.

        Update check-for-global-initializers to ignore new debug initializers in bidi.o and kjs_events.o.

        * Scripts/check-for-global-initializers:

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

13 years agoUpdating the localized strings.
thatcher [Wed, 7 Mar 2007 23:33:03 +0000 (23:33 +0000)]
Updating the localized strings.

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

13 years agoFixing a comment.
thatcher [Wed, 7 Mar 2007 23:32:39 +0000 (23:32 +0000)]
Fixing a comment.

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

13 years ago2007-03-07 Oliver Hunt <oliver@apple.com>
oliver [Wed, 7 Mar 2007 23:03:19 +0000 (23:03 +0000)]
2007-03-07  Oliver Hunt  <oliver@apple.com>

        Reviewed by Antti.

        Reset mouse down/drag state variables on mouse button release

        Fixes <rdar://problem/5044654>: Drag out of some QuickTime plug-ins converting into image drag

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseReleaseEvent):

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

13 years agoWebCore:
adele [Wed, 7 Mar 2007 22:49:48 +0000 (22:49 +0000)]
WebCore:

        Reviewed by Darin.

        WebCore part of fix for:
        http://bugs.webkit.org/show_bug.cgi?id=10871
        http://bugs.webkit.org/show_bug.cgi?id=12677
        <rdar://problem/4823129> REGRESSION: IME key events different in nightly
        <rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm a clause in kotoeri

        * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): Call handleInputMethodKeypress before actually dispatching the keypress event
          so that input methods have a chance to handle the event.
          If the input method handles the event (by marking or unmarking text), then we don't need to send the keypress event.
          If an input method doesn't handle the event, then we'll save the data we need to perform the correct action (like what text to insert or what selector to use)
          when we dispatch the keypress event.

        * dom/KeyboardEvent.h: Added Mac-specific KeypressCommand struct, so we can store command info during handleInputMethodKeypress, and use it during handleKeypress.
        (WebCore::KeyboardEvent::keypressCommand):
        (WebCore::KeyboardEvent::setKeypressCommand):

        * bridge/EditorClient.h:
        * editing/Editor.cpp:
        (WebCore::Editor::handleKeypress): Changed handleKeyPress to handleKeypress.
        (WebCore::Editor::handleInputMethodKeypress): Added.
        * editing/Editor.h:

        * platform/graphics/svg/SVGImageEmptyClients.h:
        (WebCore::SVGEmptyEditorClient::handleKeypress): Changed handleKeyPress to handleKeypress.
        (WebCore::SVGEmptyEditorClient::handleInputMethodKeypress): Added.

WebKit:

        Reviewed by Darin.

        WebKit part of fix for:
        http://bugs.webkit.org/show_bug.cgi?id=10871
        http://bugs.webkit.org/show_bug.cgi?id=12677
        <rdar://problem/4823129> REGRESSION: IME key events different in nightly
        <rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm a clause in kotoeri

        * WebView/WebHTMLView.mm:
        (-[WebHTMLView _interceptEditingKeyEvent: shouldSaveCommand:]): Added shouldSaveCommand field to WebHTMLViewInterpretKeyEventsParameters.
          When shouldSaveCommand is true, we call interpretKeyEvents and in doCommandBySelector and insertText, we just save the information without performing any action.
          When shouldSaveCommand is false, we used the saved information and call doCommandBySelector and insertText directly.
          If there's no saved command data in the KeyboardEvent, call interpretKeyEvents, and honor the shouldSaveCommand argument.  This allows repeating keypress events
          to function normally.
        (-[WebHTMLView doCommandBySelector:]): If the WebHTMLViewInterpretKeyEventsParameters shouldSaveCommand field is set, then
          just save the selector information in the KeyboardEvent, and don't perform the action.
        (-[WebHTMLView insertText:]): ditto.
          insertText can be called from an input method or from normal key event processing
          If its from an input method, then we should go ahead and insert the text now.
          The only way we know if its from an input method is to check hasMarkedText.  There might be a better way to do this.

        * WebView/WebHTMLViewInternal.h: Added shouldSaveCommand argument.
        * WebView/WebViewInternal.h: ditto.

        * WebCoreSupport/WebEditorClient.h:
        * WebCoreSupport/WebEditorClient.mm:
        (WebEditorClient::handleKeypress): Changed handleKeyPress to handleKeypress.  Call _interceptEditingKeyEvent with shouldSaveCommand:NO.
        (WebEditorClient::handleInputMethodKeypress):  Call _interceptEditingKeyEvent with shouldSaveCommand:YES.

WebKitQt:

        Reviewed by Darin.

        WebKitQT part of fix for:
        http://bugs.webkit.org/show_bug.cgi?id=10871
        http://bugs.webkit.org/show_bug.cgi?id=12677
        <rdar://problem/4823129> REGRESSION: IME key events different in nightly
        <rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm a clause in kotoeri

        * WebCoreSupport/EditorClientQt.cpp:
        (WebCore::EditorClientQt::handleKeypress): Changed handleKeyPress to handleKeypress.
        (WebCore::EditorClientQt::handleInputMethodKeypress): Added.
        * WebCoreSupport/EditorClientQt.h:

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

13 years ago Reviewed by Adam.
andersca [Wed, 7 Mar 2007 22:30:43 +0000 (22:30 +0000)]
    Reviewed by Adam.

        Add some assertions.

        * DumpRenderTree/DumpRenderTree.m:
        (-[WaitUntilDoneDelegate webView:didStartProvisionalLoadForFrame:]):
        (-[WaitUntilDoneDelegate webView:didCommitLoadForFrame:]):
        (-[WaitUntilDoneDelegate webView:didFailProvisionalLoadWithError:forFrame:]):
        (-[WaitUntilDoneDelegate webView:didFailLoadWithError:forFrame:]):

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

13 years ago Reviewed by Darin.
rwlbuis [Wed, 7 Mar 2007 21:25:16 +0000 (21:25 +0000)]
    Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=12579
        WebKit fails SVG xml:base test

        Implement DOM3 properties baseURI and documentURI to fix
        the testcase in bug 12579.

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

13 years agoWebCore:
andersca [Wed, 7 Mar 2007 19:31:55 +0000 (19:31 +0000)]
WebCore:

        Reviewed by Brady.

        Remove some methods in FrameLoader that just calls down to the active document loader. Since each
        resource loader now has a pointer to its document loader, we can just call directly to the
        document loader.

        * WebCore.exp:
        * loader/FrameLoader.cpp:
        * loader/FrameLoader.h:
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::willSendRequest):
        (WebCore::MainResourceLoader::didReceiveResponse):
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::SubresourceLoader):
        (WebCore::SubresourceLoader::didFinishLoading):
        (WebCore::SubresourceLoader::didFail):
        (WebCore::SubresourceLoader::didCancel):
        * loader/mac/NetscapePlugInStreamLoaderMac.mm:
        (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
        (WebCore::NetscapePlugInStreamLoader::didFail):
        (WebCore::NetscapePlugInStreamLoader::didCancel):

WebKit:

        Reviewed by Brady.

        Update to match WebCore.

        * Plugins/WebNetscapePluginStream.mm:
        (-[WebNetscapePluginStream start]):

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

13 years ago Build fix for non-multiple-thread folks.
ggaren [Wed, 7 Mar 2007 19:25:10 +0000 (19:25 +0000)]
    Build fix for non-multiple-thread folks.

        Use a shared global in the non-multiple-thread case.

        * wtf/FastMalloc.cpp:
        (WTF::isForbidden):
        (WTF::fastMallocForbid):
        (WTF::fastMallocAllow):

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

13 years ago Whoops, its actually prepare-ChangeLog
beidson [Wed, 7 Mar 2007 19:10:18 +0000 (19:10 +0000)]
    Whoops, its actually prepare-ChangeLog

        * coding/contributing.html:

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

13 years ago Reviewed by Anders
beidson [Wed, 7 Mar 2007 19:09:15 +0000 (19:09 +0000)]
    Reviewed by Anders

        Explicitly mention the prepare-Changelog step for contributing patches

        * coding/contributing.html:

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

13 years ago Reviewed by Geoff.
darin [Wed, 7 Mar 2007 19:07:40 +0000 (19:07 +0000)]
    Reviewed by Geoff.

        - change tests that depend on the order of iteration of built-in properties
          to sort explicitly so they don't depend on the order any more

        * fast/dom/Window/resources/window-appendages-cleared-results.html:
        * fast/dom/Window/window-appendages-cleared-expected.txt:

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/Window/window-properties.html:

        * fast/js/regexp-caching-expected.txt:
        * fast/js/regexp-caching.html:

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

13 years ago Reviewed by Darin.
ap [Wed, 7 Mar 2007 18:32:11 +0000 (18:32 +0000)]
    Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=12953
        Import/convert 4XPath test suite

        Import the rest of the converted suite. The only remaining failures are due to
        incorrect node order, bug 12497.

        * fast/xpath/4XPath/Core/test_literal_expr.html: Added.
        * fast/xpath/4XPath/Core/test_location_path.html: Added.
        * fast/xpath/4XPath/Core/test_node_test.html: Added.
        * fast/xpath/4XPath/Core/test_nodeset_expr.html: Added.
        * fast/xpath/4XPath/Core/test_parser-expected.txt: Added.
        * fast/xpath/4XPath/Core/test_parser.html: Added.
        * fast/xpath/4XPath/Core/test_predicate_list.html: Added.
        * fast/xpath/4XPath/Core/test_step-expected.txt: Added.
        * fast/xpath/4XPath/Core/test_step.html: Added.

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

13 years ago * WebCoreSupport/FrameLoaderClientQt.h: Oops, forgot the header.
darin [Wed, 7 Mar 2007 16:40:27 +0000 (16:40 +0000)]
    * WebCoreSupport/FrameLoaderClientQt.h: Oops, forgot the header.

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

13 years ago Reviewed by Darin Adler.
ggaren [Wed, 7 Mar 2007 16:34:56 +0000 (16:34 +0000)]
    Reviewed by Darin Adler.

        Fixed ASSERT failure I just introduced.

        Made the fastMalloc isForbidden flag per thread. (Oops!) We expect that
        other threads will malloc while we're marking -- we just want to prevent
        our own marking from malloc'ing.

        * wtf/FastMalloc.cpp:
        (WTF::initializeIsForbiddenKey):
        (WTF::isForbidden):
        (WTF::fastMallocForbid):
        (WTF::fastMallocAllow):
        (WTF::fastMalloc):
        (WTF::fastCalloc):
        (WTF::fastFree):
        (WTF::fastRealloc):
        (WTF::do_malloc):

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

13 years agoJavaScriptCore:
ggaren [Wed, 7 Mar 2007 15:37:06 +0000 (15:37 +0000)]
JavaScriptCore:

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=12997

        Wrap pthread-specific assertion in #if USE(MULTIPLE_THREADS).

        * kjs/collector.cpp:
        (KJS::Collector::markMainThreadOnlyObjects):

WebCore:

        Reviewed by Maciej Stachowiak.

        Fixed <rdar://problem/4576242> | http://bugs.webkit.org/show_bug.cgi?id=12586
        PAC file: malloc deadlock sometimes causes a hang @ www.apple.com/pro/profiles/ (12586)

        No test because this is very difficult to repro, and the new ASSERTs in
        JavaScriptCore catch the underlying cause while running normal layout tests.

        This is a modified version of r14752 on the branch.

        The fix is to use a bit inside each node, instead of a hash table, to track
        which node subtrees are in the process of being marked. This avoids a call
        to malloc inside mark().

        * bindings/js/kjs_binding.cpp:
        (KJS::domObjects):
        (KJS::domNodesPerDocument):
        * bindings/js/kjs_dom.cpp:
        (KJS::DOMNode::mark):
        * dom/Node.cpp:
        (WebCore::Node::Node):
        * dom/Node.h:

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

13 years agoLayoutTests:
ddkilzer [Wed, 7 Mar 2007 15:01:10 +0000 (15:01 +0000)]
LayoutTests:

        Reviewed by Darin.

        - LayoutTests part of fix for http://bugs.webkit.org/show_bug.cgi?id=12463
          WebArchiver - attempt to insert nil exception when archive empty iframe

        Tests using both dumpDOMAsWebArchive() and dumpSourceAsWebArchive() were added
        for this bug since a similar fix was suggested for the DOM case which was not
        needed.  The remaining changes are related to renaming dumpAsWebArchive() to
        dumpDOMAsWebArchive().

        * webarchive/archive-empty-frame-dom-expected.txt: Added.
        * webarchive/archive-empty-frame-dom.html: Added.
        * webarchive/archive-empty-frame-source-expected.txt: Added.
        * webarchive/archive-empty-frame-source.html: Added.
        * webarchive/resources/dump-webarchive.js: Renamed dumpAsWebArchive() to dumpDOMAsWebArchive().
        * webarchive/test-body-background-expected.txt: Ditto.
        * webarchive/test-body-background.html: Ditto.
        * webarchive/test-duplicate-resources-expected.txt: Ditto.
        * webarchive/test-frameset-expected.txt: Ditto.
        * webarchive/test-frameset.html: Ditto.
        * webarchive/test-img-src-expected.txt: Ditto.
        * webarchive/test-img-src.html: Ditto.
        * webarchive/test-input-src-expected.txt: Ditto.
        * webarchive/test-input-src.html: Ditto.
        * webarchive/test-link-href-expected.txt: Ditto.
        * webarchive/test-link-href.html: Ditto.
        * webarchive/test-object-data-expected.txt: Ditto.
        * webarchive/test-object-data.html: Ditto.
        * webarchive/test-script-src-expected.txt: Ditto.
        * webarchive/test-table-background-expected.txt: Ditto.
        * webarchive/test-table-background.html: Ditto.
        * webarchive/test-td-background-expected.txt: Ditto.
        * webarchive/test-td-background.html: Ditto.

WebKit:

        Reviewed by Darin.

        - WebCore part of fix for http://bugs.webkit.org/show_bug.cgi?id=12463
          WebArchiver - attempt to insert nil exception when archive empty iframe

        When dealing with an iframe element with no src attribute, the element contains
        a src attribute in the DOM with a URL of "about:blank" and some HTML to implement
        the blank page.  In the original page source, however, the iframe element does
        not include a src attribute, which caused a nil archive to be returned for the
        childFrameArchive and thus caused the bug.  The fix is a simple nil check.

        Test: webarchive/archive-empty-frame-source.html

        * WebView/WebArchiver.mm:
        (+ (NSArray *)_subframeArchivesForFrame:(WebFrame *)frame): Don't add childFrameArchive
        to the subframeArchives array if it is nil.

WebKitTools:

        Reviewed by Darin.

        - WebKitTools part of fix for http://bugs.webkit.org/show_bug.cgi?id=12463
          WebArchiver - attempt to insert nil exception when archive empty iframe

        The dumpDOMAsWebArchive() test method uses the DOMDocument as a basis for creating
        a webarchive while the dumpSourceAsWebArchive() test method uses the original
        dataSource (page source) to create a webarchive.  Most tests currently use
        dumpDOMAsWebArchive() since this is what Safari does when saving a web page as a
        webarchive.

        * DumpRenderTree/DumpRenderTree.m: Renamed dumpAsWebArchive to dumpDOMAsWebArchive.
        Added dumpSourceAsWebArchive.
        (dump):
        (+[LayoutTestController isSelectorExcludedFromWebScript:]):
        (-[LayoutTestController dumpDOMAsWebArchive]):
        (-[LayoutTestController dumpSourceAsWebArchive]):
        (runTest):

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

13 years agoLayoutTests:
ddkilzer [Wed, 7 Mar 2007 14:25:57 +0000 (14:25 +0000)]
LayoutTests:

        Reviewed by Mitz.

        - fix http://bugs.webkit.org/show_bug.cgi?id=12992
          Test failure (r19972):  LayoutTests/svg/custom/struct-use-09-b.svg

        * svg/custom/struct-use-09-b.svg: Changed to use Helvetica instead of 'Arial Black', Arial.
        * svg/custom/struct-use-09-b-expected.checksum: Update results.
        * svg/custom/struct-use-09-b-expected.png: Ditto.
        * svg/custom/struct-use-09-b-expected.txt: Ditto.

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

13 years ago * WebCoreSupport/FrameLoaderClientQt.cpp: (WebCore::FrameLoaderClientQt:...
darin [Wed, 7 Mar 2007 14:18:42 +0000 (14:18 +0000)]
    * WebCoreSupport/FrameLoaderClientQt.cpp: (WebCore::FrameLoaderClientQt::userAgent):
        Try to fix the build by correcting the parameter here.

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

13 years ago2007-03-07 Shrikant Gangoda <shrikant.gangoda@celunite.com>
bdash [Wed, 7 Mar 2007 09:46:38 +0000 (09:46 +0000)]
2007-03-07  Shrikant Gangoda  <shrikant.gangoda@celunite.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=12997

        Wrap pthread-specific assertion in #if USE(MULTIPLE_THREADS).

        * kjs/collector.cpp:
        (KJS::Collector::markMainThreadOnlyObjects):

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

13 years ago Reviewed by mjs
justing [Wed, 7 Mar 2007 09:05:54 +0000 (09:05 +0000)]
    Reviewed by mjs

        <http://bugs.webkit.org/show_bug.cgi?id=8592>
        Extra line left after deleting whitespace:pre text

        Re-enabled the test and removed a FIXME:
        * editing/deleting/merge-whitespace-pre-expected.checksum:
        * editing/deleting/merge-whitespace-pre-expected.png:
        * editing/deleting/merge-whitespace-pre-expected.txt:
        * editing/deleting/merge-whitespace-pre.html: Added.
        * editing/deleting/merge-whitespace-pre.html-disabled: Removed.

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

13 years agoFix an oversight in the spelling over oversight.
bdash [Wed, 7 Mar 2007 08:43:24 +0000 (08:43 +0000)]
Fix an oversight in the spelling over oversight.

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

13 years ago This patch reworks the WebCore memory cache to significantly reduce the amoun...
hyatt [Wed, 7 Mar 2007 07:42:45 +0000 (07:42 +0000)]
    This patch reworks the WebCore memory cache to significantly reduce the amount of memory consumed by
        images in the cache and to enhance the accuracy of the cache size as an absolute bound for the objects
        contained within it.  WebCore's memory use over time should significantly improve as a result of these
        changes.

        Cached resources now have both an encoded size (the original data stream) and a decoded size (an estimate of
        the amount of memory consumed by an expanded version of that resource, e.g., the decoded frames of an image).
        Both sizes now count towards the total size of the object and towards the allowed memory cache total.

        By including both totals the reported size of resources will now be larger, and the cache will therefore become
        much more aggressive about flushing.

        Objects are stored in size-adjusted and popularity-aware LRU lists as before, but encoded size is now always
        used when determining the correct LRU list.

        The flush algorithm for the memory cache has been rewritten to first destroy decoded data before evicting
        resources.  By being able to compact its resources without evicting them, the memory cache can now hold many more
        unique resources (encoded) in the same amount of space.  Depending on how much of a hit we want to take from
        re-decoding images, the memory cache could in theory have its size significantly reduced now while still holding
        more resources than it did at the larger size!

        Reviewed by mjs

        * WebCore.xcodeproj/project.pbxproj:
        * loader/Cache.cpp:
        (WebCore::Cache::requestResource):
        (WebCore::Cache::prune):
        (WebCore::Cache::remove):
        (WebCore::Cache::lruListFor):
        (WebCore::Cache::adjustSize):
        * loader/Cache.h:
        * loader/CachedCSSStyleSheet.cpp:
        (WebCore::CachedCSSStyleSheet::data):
        * loader/CachedImage.cpp:
        (WebCore::CachedImage::CachedImage):
        (WebCore::CachedImage::allReferencesRemoved):
        (WebCore::CachedImage::clear):
        (WebCore::CachedImage::data):
        (WebCore::CachedImage::destroyDecodedData):
        (WebCore::CachedImage::decodedSize):
        (WebCore::CachedImage::decodedSizeChanged):
        (WebCore::CachedImage::shouldPauseAnimation):
        * loader/CachedImage.h:
        * loader/CachedResource.cpp:
        (WebCore::CachedResource::CachedResource):
        (WebCore::CachedResource::deref):
        (WebCore::CachedResource::setEncodedSize):
        * loader/CachedResource.h:
        (WebCore::CachedResource::allReferencesRemoved):
        (WebCore::CachedResource::size):
        (WebCore::CachedResource::encodedSize):
        (WebCore::CachedResource::decodedSize):
        (WebCore::CachedResource::destroyDecodedData):
        * loader/CachedScript.cpp:
        (WebCore::CachedScript::data):
        * loader/CachedXSLStyleSheet.cpp:
        (WebCore::CachedXSLStyleSheet::data):
        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::BitmapImage):
        (WebCore::BitmapImage::~BitmapImage):
        (WebCore::BitmapImage::destroyDecodedData):
        (WebCore::BitmapImage::pruneDecodedDataIfNeeded):
        (WebCore::BitmapImage::cacheFrame):
        (WebCore::BitmapImage::setNativeData):
        (WebCore::BitmapImage::shouldAnimate):
        (WebCore::BitmapImage::advanceAnimation):
        * platform/graphics/BitmapImage.h:
        (WebCore::BitmapImage::decodedSize):
        * platform/graphics/Image.cpp:
        (WebCore::Image::Image):
        * platform/graphics/Image.h:
        (WebCore::Image::destroyDecodedData):
        (WebCore::Image::decodedSize):
        (WebCore::Image::imageObserver):
        * platform/graphics/ImageAnimationObserver.h: Removed.
        * platform/graphics/ImageObserver.h: Added.
        (WebCore::ImageObserver::~ImageObserver):
        * platform/graphics/svg/SVGImage.cpp:
        (WebCore::SVGImage::SVGImage):
        * platform/graphics/svg/SVGImage.h:

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

13 years ago Reviewed by Sam Weinig.
ap [Wed, 7 Mar 2007 06:03:27 +0000 (06:03 +0000)]
    Reviewed by Sam Weinig.

        http://bugs.webkit.org/show_bug.cgi?id=12987
        Fix and import 4XPath test_numeric_expr.html

        * xml/XPathPredicate.cpp:
        (WebCore::XPath::Negative::doEvaluate): Convert the argument to number.
        (WebCore::XPath::NumericOp::doEvaluate): Convert the arguments to numbers. Use a correct operation for mod.
        * xml/XPathStep.cpp:
        (WebCore::XPath::Step::nodesInAxis): Do not append parent node if there is none.
        * xml/XPathValue.cpp:
        (WebCore::XPath::Value::toNumber): Do not convert to DeprecatedString just to trim whitespace and to convert to double.
        * platform/DeprecatedString.cpp:
        (WebCore::DeprecatedStringData::makeAscii): Added a FIXME about unreliable makeAscii() behavior.

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

13 years agoFix broken layout test results.
bdash [Wed, 7 Mar 2007 05:55:30 +0000 (05:55 +0000)]
Fix broken layout test results.

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

13 years ago Reviewed by Adele.
mjs [Wed, 7 Mar 2007 05:36:21 +0000 (05:36 +0000)]
    Reviewed by Adele.

        <rdar://problem/4619663> REGRESSION (NativePopup): Popup menu doesn't draw at the correct vertical position (9816)

        * platform/mac/PopupMenuMac.mm:
        (WebCore::PopupMenu::show): Make a temporary dummy view with the
        passed in rect, since AppKit will use the view bounds to determine
        what area to exclude when popping up a menu moved to the top of
        the screen.

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

13 years ago2007-03-07 Mark Rowe <mrowe@apple.com>
bdash [Wed, 7 Mar 2007 05:25:14 +0000 (05:25 +0000)]
2007-03-07  Mark Rowe  <mrowe@apple.com>

        Build fix.  Rebuild against 10.4 SDK.

        * libWebKitSystemInterface.a:

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

13 years agoJavaScriptCore:
ggaren [Wed, 7 Mar 2007 04:25:49 +0000 (04:25 +0000)]
JavaScriptCore:

        Reviewed by Maciej Stachowiak.

        Fixed all known crashers exposed by run-webkit-tests --threaded. This covers:

        <rdar://problem/4565394> | http://bugs.webkit.org/show_bug.cgi?id=12585
            PAC file: after closing a window that contains macworld.com, new window
            crashes (KJS::PropertyMap::mark()) (12585)
        <rdar://problem/4571215> | http://bugs.webkit.org/show_bug.cgi?id=9211
            PAC file: Crash occurs when clicking on the navigation tabs at http://www.businessweek.com/ (9211)
        <rdar://problem/4557926>
            PAC file: Crash occurs when attempting to view image in slideshow mode
            at http://d.smugmug.com/gallery/581716 ( KJS::IfNode::execute (KJS::
            ExecState*) + 312) if you use a PAC file

        (1) Added some missing JSLocks, along with related ASSERTs.

        (2) Fully implemented support for objects that can only be garbage collected
        on the main thread. So far, only WebCore uses this. We can add it to API
        later if we learn that it's needed.

        The implementation uses a "main thread only" flag inside each object. When
        collecting on a secondary thread, the Collector does an extra pass through
        the heap to mark all flagged objects before sweeping. This solution makes
        the common case -- flag lots of objects, but never collect on a secondary
        thread -- very fast, even though the uncommon case of garbage collecting
        on a secondary thread isn't as fast as it could be. I left some notes
        about how to speed it up, if we ever care.

        For posterity, here are some things I learned about GC while investigating:

        * Each collect must either mark or delete every heap object. "Zombie"
        objects, which are neither marked nor deleted, raise these issues:

            * On the next pass, the conservative marking algorithm might mark a
            zombie, causing it to mark freed objects.

            * The client might try to use a zombie, which would seem live because
            its finalizer had not yet run.

        * A collect on the main thread is free to delete any object. Presumably,
        objects allocated on secondary threads have thread-safe finalizers.

        * A collect on a secondary thread must not delete thread-unsafe objects.

        * The mark function must be thread-safe.

        Line by line comments:

        * API/JSObjectRef.h: Added comment specifying that the finalize callback
        may run on any thread.

        * JavaScriptCore.exp: Nothing to see here.

        * bindings/npruntime.cpp:
        (_NPN_GetStringIdentifier): Added JSLock.

        * bindings/objc/objc_instance.h:
        * bindings/objc/objc_instance.mm:
        (ObjcInstance::~ObjcInstance): Use an autorelease pool. The other callers
        to CFRelease needed one, too, but they were dead code, so I removed them
        instead. (This fixes a leak seen while running run-webkit-tests --threaded,
        although I don't think it's specifically a threading issue.)

        * kjs/collector.cpp:
        (KJS::Collector::collectOnMainThreadOnly): New function. Tells the collector
        to collect a value only if it's collecting on the main thread.
        (KJS::Collector::markMainThreadOnlyObjects): New function. Scans the heap
        for "main thread only" objects and marks them.

        * kjs/date_object.cpp:
        (KJS::DateObjectImp::DateObjectImp): To make the new ASSERTs happy, allocate
        our globals on the heap, avoiding a seemingly unsafe destructor call at
        program exit time.
        * kjs/function_object.cpp:
        (FunctionPrototype::FunctionPrototype): ditto

        * kjs/interpreter.cpp:
        (KJS::Interpreter::mark): Removed boolean parameter, which was an incomplete
        and arguably hackish way to implement markMainThreadOnlyObjects() inside WebCore.
        * kjs/interpreter.h:

        * kjs/identifier.cpp:
        (KJS::identifierTable): Added some ASSERTs to check for thread safety
        problems.

        * kjs/list.cpp: Added some ASSERTs to check for thread safety problems.
        (KJS::allocateListImp):
        (KJS::List::release):
        (KJS::List::append):
        (KJS::List::empty): Make the new ASSERTs happy.

        * kjs/object.h:
        (KJS::JSObject::JSObject): "m_destructorIsThreadSafe" => "m_collectOnMainThreadOnly".
        I removed the constructor parameter because m_collectOnMainThreadOnly,
        like m_marked, is a Collector bit, so only the Collector should set or get it.

        * kjs/object_object.cpp:
        (ObjectPrototype::ObjectPrototype): Make the ASSERTs happy.
        * kjs/regexp_object.cpp:
        (RegExpPrototype::RegExpPrototype): ditto

        * kjs/ustring.cpp: Added some ASSERTs to check for thread safety problems.
        (KJS::UCharReference::ref):
        (KJS::UString::Rep::createCopying):
        (KJS::UString::Rep::create):
        (KJS::UString::Rep::destroy):
        (KJS::UString::null): Make the new ASSERTs happy.
        * kjs/ustring.h:
        (KJS::UString::Rep::ref): Added some ASSERTs to check for thread safety problems.
        (KJS::UString::Rep::deref):

        * kjs/value.h:
        (KJS::JSCell::JSCell):

JavaScriptGlue:

        Reviewed by Maciej Stachowiak.

        Fixed all known crashers exposed by run-webkit-tests --threaded while using
        a PAC file (for maximum carnage). See JavaScriptCore ChangeLog for
        more details.

        * JSBase.cpp:
        (JSBase::Release): Lock when deleting, because we may be deleting an object
        (like a JSRun) that holds thread-unsafe data.

        * JSUtils.cpp:
        (CFStringToUString): Don't lock, because our caller locks. Also, locking
        inside a function that returns thread-unsafe data by copy will only mask
        threading problems.

        * JavaScriptGlue.cpp:
        (JSRunEvaluate): Added missing JSLock.
        (JSRunCheckSyntax): Converted to JSLock.
        * JavaScriptGlue.xcodeproj/project.pbxproj:

WebCore:

        Reviewed by Maciej Stachowiak.

        Fixed all known crashers exposed by run-webkit-tests --threaded [*]. See
        JavaScriptCore ChangeLog for more details.

        * bindings/js/kjs_binding.cpp:
        (KJS::domNodesPerDocument): Added thread safety ASSERT.
        (KJS::ScriptInterpreter::mark): Removed obsolete logic for marking unsafe
        objects when collecting on a secondary thread. The Collector takes care
        of this now.

        * bindings/js/kjs_binding.h:
        (KJS::DOMObject::DOMObject): Used new API for specifying that WebCore
        objects should be garbage collected on the main thread only.

        * bindings/js/kjs_window.cpp:
        (KJS::ScheduledAction::execute): Moved JSLock to cover implementedsCall() call,
        which, for some subclasses, ends up allocating garbage collected objects.
        (This fix was speculative. I didn't actually see a crash from this.)
        (KJS::Window::timerFired): Added JSLock around ScheduleAction destruction,
        since it destroys a KJS::List.

        * bindings/objc/WebScriptObject.mm:
        (-[WebScriptObject setException:]): Added JSLock. (This fix was speculative.
        I didn't actually see a crash from this.)

        * bridge/mac/WebCoreScriptDebugger.mm:
        (-[WebCoreScriptCallFrame evaluateWebScript:]): Added JSLock. (This fix
        was speculative. I didn't actually see a crash from this.)

        * dom/Document.cpp:
        (WebCore::Document::~Document): Added JSLock around modification to
        domNodesPerDocument(), which can be accessed concurrently during garbage
        collection.
        * dom/Node.cpp:
        (WebCore::Node::setDocument): ditto.

        [*] fast/js/toString-stack-overflow.html is an exception. --threaded mode
        crashes this test because it causes the garbage collector to run frequently,
        and this test crashes if you happen to garbage collect while it's running.
        This is a known issue with stack overflow during the mark phase. It's
        not related to threading.

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

13 years ago Reviewed by Brady
kdecker [Wed, 7 Mar 2007 04:18:16 +0000 (04:18 +0000)]
    Reviewed by Brady

        Fixed: <rdar://problem/4126976> private keys imported by WebKit should not be accessible by all applications

        * libWebKitSystemInterface.a:

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

13 years ago2007-03-07 Mark Rowe <mrowe@apple.com>
bdash [Wed, 7 Mar 2007 04:16:09 +0000 (04:16 +0000)]
2007-03-07  Mark Rowe  <mrowe@apple.com>

        Add dumpAsText to test to match expected results.

        * fast/dom/Window/window-location-replace-functions.html:

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

13 years ago2007-03-06 Mark Rowe <mrowe@apple.com>
bdash [Wed, 7 Mar 2007 04:07:42 +0000 (04:07 +0000)]
2007-03-06  Mark Rowe  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        Fix http://bugs.webkit.org/show_bug.cgi?id=12942
        Bug 12942: ASSERTION FAILURE: qantas.com.au changing selected item in <select> via JS

        Test: fast/dom/select-selectedIndex-bug-12942.html.

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::recalcListItems): Reset m_lastOnChangeIndex when recalculating list items.
        * html/HTMLSelectElement.h:

2007-03-06  Mark Rowe  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        Test for http://bugs.webkit.org/show_bug.cgi?id=12942
        Bug 12942: ASSERTION FAILURE: qantas.com.au changing selected item in <select> via JS

        * fast/dom/select-selectedIndex-bug-12942-expected.txt: Added.
        * fast/dom/select-selectedIndex-bug-12942.html: Added.

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

13 years ago Rubberstamped by Kevin Decker
beidson [Wed, 7 Mar 2007 04:05:05 +0000 (04:05 +0000)]
    Rubberstamped by Kevin Decker

        20,000!

        * ChangeLog: Point out revision 20,000

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

13 years ago Not reviewed.
kjk [Wed, 7 Mar 2007 04:04:25 +0000 (04:04 +0000)]
    Not reviewed.

        Gdk build fix.

        * loader/gdk/FrameLoaderClientGdk.cpp: update userAgent() signature.
        (WebCore::FrameLoaderClientGdk::userAgent):
        * loader/gdk/FrameLoaderClientGdk.h: ditto.

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

13 years ago2007-03-06 Mitz Pettel <mitz@webkit.org>
bdash [Wed, 7 Mar 2007 03:40:57 +0000 (03:40 +0000)]
2007-03-06  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Adele.

        - fix http://bugs.webkit.org/show_bug.cgi?id=12986
          REGRESSION(NativeListBox): Listboxes not updated when resized dynamically

        Test: fast/forms/select-change-listbox-size.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::parseMappedAttribute): Reattach on list box size change.

2007-03-06  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Adele.

        - test for http://bugs.webkit.org/show_bug.cgi?id=12986
          REGRESSION(NativeListBox): Listboxes not updated when resized dynamically

        * fast/forms/select-change-listbox-size-expected.checksum: Added.
        * fast/forms/select-change-listbox-size-expected.png: Added.
        * fast/forms/select-change-listbox-size-expected.txt: Added.
        * fast/forms/select-change-listbox-size.html: Added.

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

13 years ago2007-03-06 Mitz Pettel <mitz@webkit.org>
bdash [Wed, 7 Mar 2007 03:35:03 +0000 (03:35 +0000)]
2007-03-06  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=12885
          REGRESSION (r19696): Incomplete background repaint

        Tests: fast/repaint/content-into-overflow.html
               fast/repaint/overflow-into-content.html

        Changed repaintAfterLayoutIfNeeded() to take, in addition to the clipped overflow
        rect, the unclipped border box plus outline, and to repaint any areas that
        were added or removed from that box, in addition to any areas added or removed
        from the clipped overflow rect.

        * platform/graphics/svg/SVGResourceMarker.cpp:
        (WebCore::SVGResourceMarker::draw):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlock):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::absoluteClippedOverflowRect): Renamed getAbsoluteRepaintRect() to
        this.
        * rendering/RenderBox.h:
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock):
        * rendering/RenderFlow.cpp:
        (WebCore::RenderFlow::absoluteClippedOverflowRect):
        * rendering/RenderFlow.h:
        * rendering/RenderForeignObject.cpp:
        (WebCore::RenderForeignObject::layout):
        * rendering/RenderHTMLCanvas.cpp:
        (WebCore::RenderHTMLCanvas::layout):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::layout):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::checkForRepaintOnResize):
        (WebCore::RenderLayer::updateLayerPositions):
        * rendering/RenderLayer.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::repaint):
        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
        (WebCore::RenderObject::getAbsoluteRepaintRectWithOutline):
        (WebCore::RenderObject::absoluteClippedOverflowRect):
        (WebCore::RenderObject::absoluteOutlineBox):
        * rendering/RenderObject.h:
        * rendering/RenderPath.cpp:
        (WebCore::RenderPath::layout):
        (WebCore::RenderPath::absoluteClippedOverflowRect):
        (WebCore::RenderPath::absoluteRects):
        (WebCore::RenderPath::drawMarkersIfNeeded):
        * rendering/RenderPath.h:
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::layout):
        (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
        (WebCore::RenderSVGContainer::absoluteRects):
        * rendering/RenderSVGContainer.h:
        * rendering/RenderSVGHiddenContainer.cpp:
        (WebCore::RenderSVGHiddenContainer::absoluteClippedOverflowRect):
        * rendering/RenderSVGHiddenContainer.h:
        * rendering/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::imageChanged):
        (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
        (WebCore::RenderSVGImage::absoluteRects):
        * rendering/RenderSVGImage.h:
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::absoluteClippedOverflowRect):
        (WebCore::RenderSVGText::layout):
        (WebCore::RenderSVGText::absoluteRects):
        * rendering/RenderSVGText.h:
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::layout):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::absoluteClippedOverflowRect):
        * rendering/RenderTableCell.h:
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::absoluteClippedOverflowRect):
        * rendering/RenderTableCol.h:
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::absoluteClippedOverflowRect):
        * rendering/RenderTableRow.h:
        * rendering/RenderText.cpp:
        (WebCore::RenderText::absoluteClippedOverflowRect):
        * rendering/RenderText.h:

2007-03-06  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Dave Hyatt.

        - repaint tests and updated result for http://bugs.webkit.org/show_bug.cgi?id=12885
          REGRESSION (r19696): Incomplete background repaint

        * fast/repaint/bugzilla-6278-expected.checksum:
        * fast/repaint/bugzilla-6278-expected.png:
        * fast/repaint/content-into-overflow-expected.checksum: Added.
        * fast/repaint/content-into-overflow-expected.png: Added.
        * fast/repaint/content-into-overflow-expected.txt: Added.
        * fast/repaint/content-into-overflow.html: Added.
        * fast/repaint/overflow-into-content-expected.checksum: Added.
        * fast/repaint/overflow-into-content-expected.png: Added.
        * fast/repaint/overflow-into-content-expected.txt: Added.
        * fast/repaint/overflow-into-content.html: Added.

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

13 years ago2007-03-06 Ian Eng <ian.eng.webkit@gmail.com>
bdash [Wed, 7 Mar 2007 03:30:37 +0000 (03:30 +0000)]
2007-03-06  Ian Eng <ian.eng.webkit@gmail.com>

        Reviewed by Maciej.

        - Tests for http://bugs.webkit.org/show_bug.cgi?id=12720
        Bug 12720: Re-defining window.location.toString function keeps re-loading forever

        * fast/dom/Window/window-location-replace-functions-expected.txt: Added.
        * fast/dom/Window/window-location-replace-functions.html: Added.

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

13 years ago2007-03-06 Ian Eng <ian.eng.webkit@gmail.com>
bdash [Wed, 7 Mar 2007 03:15:26 +0000 (03:15 +0000)]
2007-03-06  Ian Eng <ian.eng.webkit@gmail.com>

        Reviewed by Maciej.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=12720
        Bug 12720: Re-defining window.location.toString function keeps re-loading forever

        * bindings/js/kjs_window.cpp:
        Disallow replacing functions in LocationTable, and return early without updating URL.

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