WebKit-https.git
12 years ago2007-12-22 Alp Toker <alp@atoker.com>
alp@webkit.org [Sat, 22 Dec 2007 23:54:16 +0000 (23:54 +0000)]
2007-12-22  Alp Toker  <alp@atoker.com>

        GTK+ build fix

        GTK_TARGET_OTHER_APP is not available in older GTK+ versions. Pass
        empty target flags for now.

        Check GTK+, not GLib versions, since they are different.

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

12 years ago2007-12-22 Luca Bruno <lethalman88@gmail.com>
alp@webkit.org [Sat, 22 Dec 2007 23:12:52 +0000 (23:12 +0000)]
2007-12-22  Luca Bruno  <lethalman88@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16311
        [Gtk] Copy rich text to clipboard as text/plain and text/html.

        Add copy and paste targets for WebView and implement
        WebCore::PasteboardHelper.

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

12 years agoReviewed by Oliver.
zimmermann@webkit.org [Sat, 22 Dec 2007 21:39:37 +0000 (21:39 +0000)]
Reviewed by Oliver.

Fixes: http://bugs.webkit.org/show_bug.cgi?id=15966 (Crash in SVGRootInlineBox::walkTextChunks() on mouse hover)

Add new isSVGRootInlineBox() function to InlineBox to be able to differentiate between RootInlineBox/SVGRootInlineBox.
SVG assumed it's root inline box (for <text> elements) is always of type SVGRootInlineBox, which is not the case
for HTML text in <foreignObject>. Text selection doesn't work so far as line box offsets are wrong - which is visible
in Web Inspector.

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

12 years agoFix a typo.
antti@apple.com [Sat, 22 Dec 2007 21:04:39 +0000 (21:04 +0000)]
Fix a typo.

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

12 years ago2007-12-22 Alp Toker <alp@atoker.com>
alp@webkit.org [Sat, 22 Dec 2007 20:03:58 +0000 (20:03 +0000)]
2007-12-22  Alp Toker  <alp@atoker.com>

        LOW_BANDWIDTH_DISPLAY build fix

        Track recent KURL DeprecatedString changes.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):

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

12 years ago - Windows build fix
mitz@apple.com [Sat, 22 Dec 2007 16:48:46 +0000 (16:48 +0000)]
    - Windows build fix

        * WebCore.vcproj/WebCore.vcproj:

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

12 years ago2007-12-22 Xan Lopez <xan@gnome.org>
alp@webkit.org [Sat, 22 Dec 2007 16:35:02 +0000 (16:35 +0000)]
2007-12-22  Xan Lopez  <xan@gnome.org>

        Reviewed by Alp Toker.

        Follow up to http://bugs.webkit.org/show_bug.cgi?id=16144

        * WebView/webkitwebview.cpp:
        Fix signal id arguments for g_signal_emit in
        clipboard functions.

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

12 years ago2007-12-22 Xan Lopez <xan@gnome.org>
alp@webkit.org [Sat, 22 Dec 2007 16:34:23 +0000 (16:34 +0000)]
2007-12-22  Xan Lopez  <xan@gnome.org>

        Reviewed by Alp Toker.

        Add missing return 0 to fix a compile warning.

        * page/gtk/FrameGtk.cpp:
        (WebCore::Frame::createScriptInstanceForWidget):

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

12 years ago At bdash's suggestion, display a message if someone attempts to run the ...
dsmith@webkit.org [Sat, 22 Dec 2007 07:26:01 +0000 (07:26 +0000)]
    At bdash's suggestion, display a message if someone attempts to run the 'native' version of the getElementsByClassName benchmark in a browser that doesn't support that.

        * blog-files/gebcnspeedtest.html:

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

12 years ago Add the benchmark from the previous commit as well.
dsmith@webkit.org [Sat, 22 Dec 2007 07:02:18 +0000 (07:02 +0000)]
    Add the benchmark from the previous commit as well.

        * blog-files/gebcnspeedtest.html: Added.
        * blog-files/prototype-for-gebcn-test.js: Added.

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

12 years ago Add a graph of benchmark results for an upcoming blog post.
dsmith@webkit.org [Sat, 22 Dec 2007 06:45:53 +0000 (06:45 +0000)]
    Add a graph of benchmark results for an upcoming blog post.

        * blog-files/gebcnwebkitonly.png: Added.

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

12 years agoVersioning.
mrowe@apple.com [Sat, 22 Dec 2007 06:12:37 +0000 (06:12 +0000)]
Versioning.

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

12 years ago2007-12-21 Mark Rowe <mrowe@apple.com>
mrowe@apple.com [Sat, 22 Dec 2007 05:54:08 +0000 (05:54 +0000)]
2007-12-21  Mark Rowe  <mrowe@apple.com>

        Reviewed by Oliver Hunt.

        * JavaScriptCore.exp: Remove unused symbol to prevent a weak external symbol
        being generated in JavaScriptCore.framework.

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

12 years agoFix http://bugs.webkit.org/show_bug.cgi?id=16549 (WebKit nightly build failing to...
mrowe@apple.com [Sat, 22 Dec 2007 04:40:38 +0000 (04:40 +0000)]
Fix bugs.webkit.org/show_bug.cgi?id=16549 (WebKit nightly build failing to launch on PowerPC G3s).

Rubber-stamped by Dan Bernstein.

* libWebKitSystemInterfaceTiger.a: Update to a G3-friendly version.

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

12 years ago Reviewed by Mark Rowe.
weinig@apple.com [Sat, 22 Dec 2007 04:18:50 +0000 (04:18 +0000)]
    Reviewed by Mark Rowe.

        - Disable the back/forward cache using the new WebPreferences API
          instead of through the BackForwardList.  This makes us match what
          we do on Windows.

        * DumpRenderTree/mac/DumpRenderTree.mm:
        (createWebViewAndOffscreenWindow):
        (setDefaultsToConsistentValuesForTesting):

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

12 years ago Reviewed by Mark Rowe.
mitz@apple.com [Sat, 22 Dec 2007 01:39:48 +0000 (01:39 +0000)]
    Reviewed by Mark Rowe.

        - disable the back/forward cache in Windows DumpRenderTree. It is
          already disabled in Mac DumpRenderTree.

        * DumpRenderTree/win/DumpRenderTree.cpp:
        (initializePreferences):

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

12 years agoReviewed by Darin and Steve.
antti@apple.com [Sat, 22 Dec 2007 01:09:10 +0000 (01:09 +0000)]
Reviewed by Darin and Steve.

Add instructions to install the QuickTime SDK for Windows.

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

12 years ago Reviewed by Darin, Adam and Steve.
antti@apple.com [Sat, 22 Dec 2007 01:07:24 +0000 (01:07 +0000)]
    Reviewed by Darin, Adam and Steve.

        Add media playback support for Windows.

        The implementation uses low level QuickTime API. DLL is
        needed to work around CF use in both WebKit and QuickTime.

        This makes Windows build depend on the QuickTime SDK

        http://developer.apple.com/quicktime/download/

        but not QuickTime itself.

        QTMovieWinTimer contains some copy code from SharedTimerWin. It
        is used in the QuickTime access DLL which can't use WebCore
        SharedTimer due to dependency problems.

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

12 years ago2007-12-21 Brent Fulgham <bfulgham@gmail.com>
alp@webkit.org [Sat, 22 Dec 2007 01:01:24 +0000 (01:01 +0000)]
2007-12-21  Brent Fulgham  <bfulgham@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16558
        Cairo WebCore Rendering Fails on arc drawing

        Fix for bug reported (and patched) by Apollo team in which
        arcs were draw in reverse (resulting in inverted images).
        Review of the source found that the 'clockwise' term was
        actually meant to mean 'anticlockwise' so the IDL and
        supporting classes have been changed to match this.

        * html/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::arc):
        * html/CanvasRenderingContext2D.idl:
        * platform/graphics/cairo/PathCairo.cpp:
        (WebCore::Path::addArc):
        (WebCore::Path::addEllipse):
        * platform/graphics/Path.h:

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

12 years ago2007-12-21 Alp Toker <alp@atoker.com>
alp@webkit.org [Sat, 22 Dec 2007 00:41:28 +0000 (00:41 +0000)]
2007-12-21  Alp Toker  <alp@atoker.com>

        Documentation typo fix: s/wether/whether

        * WebView/webkitwebview.cpp:

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

12 years ago2007-12-21 Christian Dywan <christian@twotoasts.de>
alp@webkit.org [Sat, 22 Dec 2007 00:36:46 +0000 (00:36 +0000)]
2007-12-21  Christian Dywan  <christian@twotoasts.de>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16144
        [GTK] Clipboard/ selection handling functions

        * WebView/webkitprivate.h:
        * WebView/webkitwebview.cpp:
        * WebView/webkitwebview.h:

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

12 years ago Reviewed by Adele.
weinig@apple.com [Sat, 22 Dec 2007 00:35:59 +0000 (00:35 +0000)]
    Reviewed by Adele.

        Fix another mistaken duplication, this time in cross-frame-access-parent-explicit-domain.html,
        that was causing intermittent failures.

        * http/tests/security/cross-frame-access-parent-explicit-domain-expected.txt:
        * http/tests/security/cross-frame-access-parent-explicit-domain.html:
        * http/tests/security/cross-frame-access-port-explicit-domain-expected.txt:

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

12 years ago Reviewed by Dan Bernstein.
weinig@apple.com [Sat, 22 Dec 2007 00:01:41 +0000 (00:01 +0000)]
    Reviewed by Dan Bernstein.

        Fix mistaken duplication in cross-frame-access-child-explicit-domain.html that was causing
        intermittent failures.

        * http/tests/security/cross-frame-access-child-explicit-domain-expected.txt:
        * http/tests/security/cross-frame-access-child-explicit-domain.html:
        * http/tests/security/cross-frame-access-custom-expected.txt:

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

12 years ago Implemented DOMDocument::getElementById().
adachan@apple.com [Fri, 21 Dec 2007 23:15:42 +0000 (23:15 +0000)]
    Implemented DOMDocument::getElementById().

        Reviewed by Darin.

        * DOMCoreClasses.cpp:
        (DOMDocument::getElementById):

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

12 years ago Requested by Maciej.
darin@apple.com [Fri, 21 Dec 2007 22:02:46 +0000 (22:02 +0000)]
    Requested by Maciej.

        * kjs/nodes.h: Use the new NEVER_INLINE here and eliminate the old
        KJS_NO_INLINE. We don't want to have two, and we figured it was better
        to keep the one that's in WTF.

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

12 years ago Reviewed by Eric.
darin@apple.com [Fri, 21 Dec 2007 21:54:51 +0000 (21:54 +0000)]
    Reviewed by Eric.

        - http://bugs.webkit.org/show_bug.cgi?id=16561
          remove debugger overhead from non-debugged JavaScript execution

        1.022x as fast on SunSpider.

        * JavaScriptCore.exp: Updated.

        * kjs/NodeInfo.h: Renamed SourceElementsStub to SourceElements,
        since that more accurately describes the role of this object, which
        is a reference-counted wrapper for a Vector.

        * kjs/Parser.cpp:
        (KJS::Parser::didFinishParsing): Changed parameter type to SourceElements,
        and use plain assignment instead of set.
        * kjs/Parser.h: Changed parameter type of didFinishParsing to a
        SourceElements. Also changed m_sourceElements; we now use a RefPtr instead
        of an OwnPtr as well.

        * kjs/grammar.y: Got rid of all the calls to release() on SourceElements.
        That's now handed inside the constructors for various node types, since we now
        use vector swapping instead.

        * kjs/nodes.cpp:
        (KJS::Node::rethrowException): Added NEVER_INLINE, because this was getting inlined
        and we want exception handling out of the normal code flow.
        (KJS::SourceElements::append): Moved here from the header. This now handles
        creating a BreakpointCheckStatement for each statement in the debugger case.
        That way we can get breakpoint handling without having it in every execute function.
        (KJS::BreakpointCheckStatement::BreakpointCheckStatement): Added.
        (KJS::BreakpointCheckStatement::execute): Added. Contains the code that was formerly
        in the StatementNode::hitStatement function and the KJS_BREAKPOINT macro.
        (KJS::BreakpointCheckStatement::streamTo): Added.
        (KJS::ArgumentListNode::evaluateList): Use KJS_CHECKEXCEPTIONVOID since the return
        type is void.
        (KJS::VarStatementNode::execute): Removed KJS_BREAKPOINT.
        (KJS::BlockNode::BlockNode): Changed parameter type to SourceElements.
        Changed code to use release since the class now contains a vector rather than
        a vector point.
        (KJS::BlockNode::optimizeVariableAccess): Updated since member is now a vector
        rather than a vector pointer.
        (KJS::BlockNode::execute): Ditto.
        (KJS::ExprStatementNode::execute): Removed KJS_BREAKPOINT.
        (KJS::IfNode::execute): Ditto.
        (KJS::IfElseNode::execute): Ditto.
        (KJS::DoWhileNode::execute): Ditto.
        (KJS::WhileNode::execute): Ditto.
        (KJS::ContinueNode::execute): Ditto.
        (KJS::BreakNode::execute): Ditto.
        (KJS::ReturnNode::execute): Ditto.
        (KJS::WithNode::execute): Ditto.
        (KJS::CaseClauseNode::optimizeVariableAccess): Updated since member is now a vector
        rather than a vector pointer.
        (KJS::CaseClauseNode::executeStatements): Ditto.
        (KJS::SwitchNode::execute): Removed KJS_BREAKPOINT.
        (KJS::ThrowNode::execute): Ditto.
        (KJS::TryNode::execute): Ditto.
        (KJS::ScopeNode::ScopeNode): Changed parameter type to SourceElements.
        (KJS::ProgramNode::ProgramNode): Ditto.
        (KJS::EvalNode::EvalNode): Ditto.
        (KJS::FunctionBodyNode::FunctionBodyNode): Ditto.
        (KJS::ScopeNode::optimizeVariableAccess): Updated since member is now a vector
        rather than a vector pointer.

        * kjs/nodes.h: Removed hitStatement. Renamed SourceElements to StatementVector.
        Renamed SourceElementsStub to SourceElements and made it derive from
        ParserRefCounted rather than from Node, hold a vector rather than a pointer to
        a vector, and changed the release function to swap with another vector rather
        than the pointer idiom. Updated BlockNode and CaseClauseNode to hold actual
        vectors instead of pointers to vectors. Added BreakpointCheckStatement.

        * kjs/nodes2string.cpp:
        (KJS::statementListStreamTo): Changed to work on a vector instead of a pointer
        to a vector.
        (KJS::BlockNode::streamTo): Ditto.
        (KJS::CaseClauseNode::streamTo):  Ditto.

        * wtf/AlwaysInline.h: Added NEVER_INLINE.
        * wtf/PassRefPtr.h: Tweaked formatting. Added clear() function that matches the
        ones in OwnPtr and auto_ptr.
        * wtf/RefPtr.h: Ditto.

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

12 years ago Reviewed by Steve and Darin.
ap@webkit.org [Fri, 21 Dec 2007 20:17:26 +0000 (20:17 +0000)]
    Reviewed by Steve and Darin.

        <rdar://problem/5497037> Win32: Accelerator keys (ctrl-x,c,v,w,q,etc) only fire keyUp,
        keyDown/Press consumed by accelerator table (14104)

        <rdar://problem/5346299> preventing default behavior for key down does not block accelerators like Ctrl+N

        This is WebKit part of a fix, most of which will be in Safari.

        * WebView.cpp:
        (WebViewWndProc): Return our result for WM_(SYS)KEYDOWN to let the client know whether
        further procesing is desired.

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

12 years ago - fix broken regression tests
darin@apple.com [Fri, 21 Dec 2007 15:36:13 +0000 (15:36 +0000)]
    - fix broken regression tests

        The broken tests were fast/js/do-while-expression-value.html and
        fast/js/while-expression-value.html.

        * kjs/nodes.cpp: Check in the correct version of this file. I had accidentally landed
        an old version of my patch for bug 16471.
        (KJS::statementListExecute): The logic here was backwards. Have to set the value
        even for non-normal execution results.

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

12 years ago Reviewed by Oliver.
ap@webkit.org [Fri, 21 Dec 2007 11:00:42 +0000 (11:00 +0000)]
    Reviewed by Oliver.

        <rdar://problem/5629995> Incorrect display of Danish characters on web site.

        Test: http/tests/xmlhttprequest/response-encoding.html

        * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didReceiveData):
        Default to UTF-8 for HTML, too. It's unfortunate that we have to use different
        rules for main content and XHR responses, but this matches both IE and Firefox.

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

12 years agoCorrect ChangeLog spelling.
ap@webkit.org [Fri, 21 Dec 2007 10:57:36 +0000 (10:57 +0000)]
Correct ChangeLog spelling.

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

12 years ago Build fix: cannot use framework-style include for ProgIDMacros.h,
ap@webkit.org [Fri, 21 Dec 2007 10:55:28 +0000 (10:55 +0000)]
    Build fix: cannot use framework-style include for ProgIDMacros.h,
        because the file is only created on a leter step.

        * ForEachCoClass.h:

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

12 years agoBuildbot fix for wx port.
kevino@webkit.org [Fri, 21 Dec 2007 09:09:12 +0000 (09:09 +0000)]
Buildbot fix for wx port.

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

12 years ago Windows build fix
ap@webkit.org [Fri, 21 Dec 2007 07:40:53 +0000 (07:40 +0000)]
    Windows build fix

        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Copy npruntime_internal.h
        to WebKitBuild.

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

12 years ago2007-12-17 Eric Seidel <eric@webkit.org>
eric@webkit.org [Fri, 21 Dec 2007 07:21:20 +0000 (07:21 +0000)]
2007-12-17  Eric Seidel  <eric@webkit.org>

        Reviewed by mjs.

        Split IfNode into IfNode and IfElseNode for speedup.
        http://bugs.webkit.org/show_bug.cgi?id=16470

        SunSpider claims this is 1.003x as fast as before.
        (This required running with --runs 15 to get consistent enough results to tell!)

        * kjs/grammar.y:
        * kjs/nodes.cpp:
        (KJS::IfNode::optimizeVariableAccess):
        (KJS::IfNode::execute):
        (KJS::IfNode::getDeclarations):
        (KJS::IfElseNode::optimizeVariableAccess):
        (KJS::IfElseNode::execute):
        (KJS::IfElseNode::getDeclarations):
        * kjs/nodes.h:
        (KJS::IfNode::):
        (KJS::IfElseNode::):
        * kjs/nodes2string.cpp:
        (KJS::IfNode::streamTo):
        (KJS::IfElseNode::streamTo):

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

12 years ago2007-12-20 Jon Honeycutt <jhoneycutt@apple.com>
jhoneycutt@apple.com [Fri, 21 Dec 2007 06:57:52 +0000 (06:57 +0000)]
2007-12-20  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Kevin Decker.

        <rdar://problem/5655797> REGRESSION(304-306A10) Safari does not find
        shockwave plugin on freshly installed OS

        Look for Director plugin in its native directory.

        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::PluginDatabaseWin::getPluginsInPaths): The Director plugin
        doesn't start with "np," so special case its filename.
        (WebCore::addMacromediaPluginPaths): Add Flash and "Shockwave 10"
        directories to the plugin paths.
        (WebCore::PluginDatabaseWin::defaultPluginPaths):

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

12 years ago Reviewed by Oliver.
darin@apple.com [Fri, 21 Dec 2007 06:07:45 +0000 (06:07 +0000)]
    Reviewed by Oliver.

        - fix <rdar://problem/5658787> Selector -[WebView insertLineBreak:] is not implemented

        * WebView/WebView.mm: Added all selectors implemented by WebHTMLView to the list of
        selectors to forward here. The new ones are: changeBaseWritingDirection:, changeSpelling:,
        deleteToMark:, insertLineBreak:, moveParagraphBackwardAndModifySelection:,
        moveParagraphForwardAndModifySelection:, pageDownAndModifySelection:, pageUpAndModifySelection:,
        selectToMark:, setMark:, swapWithMark:, takeFindStringFromSelection:, toggleBaseWritingDirection:,
        and transpose:.

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

12 years ago Reviewed by Sam.
darin@apple.com [Fri, 21 Dec 2007 06:06:37 +0000 (06:06 +0000)]
    Reviewed by Sam.

        * wtf/OwnPtr.h:
        (WTF::operator==): Added.
        (WTF::operator!=): Added.

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

12 years ago2007-12-20 Peter Kasting <zerodpx@gmail.com>
alp@webkit.org [Fri, 21 Dec 2007 03:56:09 +0000 (03:56 +0000)]
2007-12-20  Peter Kasting  <zerodpx@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16508
        Fix regression in GIFImageDecoder.cpp: "Haeberli hack" led to wrongly
        decoded transparent areas.

        * platform/image-decoders/gif/GIFImageDecoder.cpp:
        (WebCore::GIFImageDecoder::haveDecodedRow):
        * platform/image-decoders/gif/GIFImageDecoder.h:
        * platform/image-decoders/gif/GIFImageReader.cpp:
        (GIFImageReader::output_row):

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

12 years agoWebCore:
justin.garcia@apple.com [Fri, 21 Dec 2007 02:55:44 +0000 (02:55 +0000)]
WebCore:

        Reviewed by Oliver Hunt.

        <rdar://problem/5543472> GoogleDocs: Safari hangs when creating a list from a particular selection

        Still need to fix similar issues with the other operations that iterate
        over selected paragraphs, like FormatBlock, Indent and Outdent (<rdar://problem/5658933>).

        * editing/IndentOutdentCommand.cpp:
        (WebCore::IndentOutdentCommand::indentRegion): Added a FIXME.
        * editing/IndentOutdentCommand.h: Removed an unused function.
        * editing/InsertListCommand.cpp:
        (WebCore::InsertListCommand::modifyRange):
        Renamed visibleStart to startOfSelection and visibleEnd to endOfSelection.
        Call the new selectionForParagraphIteration, which a) prevents operations like this
        one from being performed on a table that isn't fully selected (where the selection
        starts just before the table and ends inside it), and b) helps prevent paragraph
        iteration from going past the end of the selection.
        Call the new startOfNextParagraph, instead of using endOfParagraph(v).next(),
        since when v is in the last paragraph of the last cell of a table, that expression
        will return the position after the table, not the start of the next paragraph.
        * editing/htmlediting.cpp:
        (WebCore::enclosingListChild): Don't go above a table cell, so that list operations
        take effect inside the table cell where they are performed.
        (WebCore::selectionForParagraphIteration): Added, see above.
        (WebCore::indexForVisiblePosition): Moved from IndentOutdentCommand.cpp.
        * editing/htmlediting.h:
        * editing/visible_units.cpp:
        (WebCore::startOfNextParagraph): Added, see above.
        * editing/visible_units.h:
        * editing/TextIterator.h:
        (WebCore::TextIterator::exitNode): Added a FIXME.

LayoutTests:

        Reviewed by Oliver Hunt.

        <rdar://problem/5543472> GoogleDocs: Safari hangs when creating a list from a particular selection

        * editing/execCommand/5543472-1-expected.txt: Added.
        * editing/execCommand/5543472-1.html: Added.
        * editing/execCommand/5543472-2-expected.txt: Added.
        * editing/execCommand/5543472-2.html: Added.
        * editing/execCommand/5543472-3-expected.txt: Added.
        * editing/execCommand/5543472-3.html: Added.

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

12 years ago Reviewed by Oliver Hunt.
ggaren@apple.com [Fri, 21 Dec 2007 02:18:11 +0000 (02:18 +0000)]
    Reviewed by Oliver Hunt.

        AST optimization: Avoid NULL-checking ForNode's child nodes.

        0.6% speedup on SunSpider.

        This is a proof of concept patch that demonstrates how to optimize
        grammar productions with optional components, like

            for (optional; optional; optional) {
                ...
            }

        The parser emits NULL for an optional component that is not present.

        Instead of checking for a NULL child at execution time, a node that
        expects an optional component to be present more often than not checks
        for a NULL child at construction time, and substitutes a viable
        alternative node in its place.

        (We'd like the parser to start emitting NULL a lot more once we teach
        it to emit NULL for certain no-op productions like EmptyStatement and
        VariableStatement, so, as a foundation, it's important for nodes with
        NULL optional components to be fast.)

        * kjs/Parser.cpp:
        (KJS::Parser::didFinishParsing): Check for NULL SourceElements. Also,
        moved didFinishParsing into the .cpp file because adding a branch while
        it was in the header file caused a substantial and inexplicable
        performance regression. (Did I mention that GCC is crazy?)

        * kjs/grammar.y:

        * kjs/nodes.cpp:
        (KJS::BlockNode::BlockNode): Check for NULL SourceElements.
        (KJS::ForNode::optimizeVariableAccess): No need to check for NULL here.
        (KJS::ForNode::execute): No need to check for NULL here.
        * kjs/nodes.h:
        (KJS::ForNode::): Check for NULL SourceElements. Substitute a TrueNode
        because it's semantically harmless, and it evaluates to boolean in an
        efficient manner.

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

12 years ago Reviewed by John Sullivan.
mitz@apple.com [Fri, 21 Dec 2007 01:31:13 +0000 (01:31 +0000)]
    Reviewed by John Sullivan.

        - reorganize skipped test list

        * platform/win/Skipped:

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

12 years ago2007-12-20 Alp Toker <alp@atoker.com>
alp@webkit.org [Fri, 21 Dec 2007 00:33:46 +0000 (00:33 +0000)]
2007-12-20  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=16542
        [GTK] Text is missing with old Pango version

        Back out commits r28880, r28876, r28865, r28864 which added Pango font
        selection support. These changes caused a regression where no text was
        displayed with older Pango versions.

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

12 years ago2007-12-20 Eric Seidel <eric@webkit.org>
eric@webkit.org [Fri, 21 Dec 2007 00:24:14 +0000 (00:24 +0000)]
2007-12-20  Eric Seidel  <eric@webkit.org>

        Reviewed by mjs.

        * sunspider: increase default number of runs for more accurate numbers

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

12 years agoChangeLog entry corrections
oliver@apple.com [Thu, 20 Dec 2007 23:59:11 +0000 (23:59 +0000)]
ChangeLog entry corrections

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

12 years ago Reviewed by Sam Weinig.
timothy@apple.com [Thu, 20 Dec 2007 23:46:37 +0000 (23:46 +0000)]
    Reviewed by Sam Weinig.

        <rdar://problem/5604897> Double-clicking on JavaScript console error
        won't show the line where it occurred

        Make the URLs clickable in the console, since double clicking is used for
        word text selection. Makes the word "line" localizable. Messages that don't
        have a URL will no longer print "undefined". Messages that have a line number
        less than or equal to 0 will no longer be printed.

        * English.lproj/InspectorLocalizedStrings.js: Add "%s (line %d)".
        * page/inspector/ConsolePanel.js: Tweak how the DOM nodes are created
          and change the click handler to look for a link with the
          "console-message-url" class name.
        * page/inspector/SourcePanel.js: Call setupSourceFrameIfNeeded() if a
          line row is needed.
        * page/inspector/inspector.css: Update the look of the URL in the console.

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

12 years ago2007-12-20 Eric Seidel <eric@webkit.org>
eric@webkit.org [Thu, 20 Dec 2007 23:43:39 +0000 (23:43 +0000)]
2007-12-20  Eric Seidel  <eric@webkit.org>

        Reviewed by mjs.

        Fix major Array regression introduced by 28899.

        SunSpider claims this is at least 1.37x as fast as pre-regression. :)

        * kjs/array_instance.cpp: make Array's fast again!

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

12 years agoSlight logic reordering in JSImmediate::from(double)
oliver@apple.com [Thu, 20 Dec 2007 23:39:39 +0000 (23:39 +0000)]
Slight logic reordering in JSImmediate::from(double)

Reviewed by Geoff.

This gives a 0.1% improvement in SunSpider.

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

12 years ago2007-12-20 Eric Seidel <eric@webkit.org>
eric@webkit.org [Thu, 20 Dec 2007 22:46:41 +0000 (22:46 +0000)]
2007-12-20  Eric Seidel  <eric@webkit.org>

        Reviewed by Geoff, then re-rubber-stamped by Geoff after final search/replace and testing.

        Small reworking of Date code for 4% speedup on Date tests (0.2% overall)
        http://bugs.webkit.org/show_bug.cgi?id=16537

        Make msToYear human-readable
        Make msToDayInMonth slightly more readable and avoid recalculating msToYear
        Remove use of isInLeapYear to avoid calling msToYear
        Remove dayInYear call by changing msToDayInMonth to dayInMonthFromDayInYear
        Remove more duplicate calls to dayInYear and getUTCOffset for further speedup

        * kjs/DateMath.cpp:
        (KJS::daysFrom1970ToYear):
        (KJS::msToYear):
        (KJS::monthFromDayInYear):
        (KJS::checkMonth):
        (KJS::dayInMonthFromDayInYear):
        (KJS::dateToDayInYear):
        (KJS::getDSTOffsetSimple):
        (KJS::getDSTOffset):
        (KJS::gregorianDateTimeToMS):
        (KJS::msToGregorianDateTime):

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

12 years agoWebCore:
weinig@apple.com [Thu, 20 Dec 2007 22:39:51 +0000 (22:39 +0000)]
WebCore:

        Reviewed and landed by Sam Weinig.

        http://bugs.webkit.org/show_bug.cgi?id=15313
        <rdar://problem/5514516>

        The same-origin check was incorrect in two cases (both fixed in this
        patch):

        A) If both the source and the target have set their document.domain
           to the same value, the protocol must also match in order for
           access to be allowed.  Without this requirement, the browser is
           vulnerable to the following attack:

           1) Suppose there is an HTTPS site (www.example.com) that sets
              document.domain = "example.com".
           2) A network attacker redirects the browser to http://www.example.com/
              a) injects script to set document.domain = "example.com", and
              b) opens a window to https://www.example.com/
           3) Now the network attacker can inject script into the HTTPS page,
              stealing cookies and issuing banking transactions.

        B) If only one of the source and target has set document.domain, then
           access should be denied.  With this behavior, the browser is
           vulnerable to the following attack:

           1) Suppose http://foo.example.com/ opens an iframe to
              http://foo.example.com/frame.html that
              a) sets document.domain = "example.com", and
              b) opens an iframe to http://bar.example.com/
              This is a common usage of document.domain for cross-domain
              communication, see for example:
                http://www.collinjackson.com/research/papers/fp801-jackson.pdf
           2) The inner-most iframe, which is from bar.example.com, sets
              document.domain = "example.com".
           3) Now the inner-most iframe can inject script into the middle
              iframe (say via document.write).  This bar.example.com script
              now has access to the outer-most frame (from foo.example.com).

        Both these changes cause WebKit to match the behavior of Firefox 2 and
        IE6 in these cases.  This patch includes regression tests for both
        issues.

        Internet Explorer 7 and Opera 9 are more strict in that they require
        the port numbers to match when both pages have document.domain set.
        Opera 9 allows access when only one page has set document.domain, but
        this is a security vulnerability.

        Tests: http/tests/security/cross-frame-access-child-explicit-domain.html
               http/tests/security/cross-frame-access-parent-explicit-domain.html

        * bindings/js/kjs_window.cpp:
        (KJS::createWindow):
        (KJS::Window::allowsAccessFrom):
        * dom/Document.cpp:
        (WebCore::Document::domain):
        (WebCore::Document::setDomain):
        (WebCore::Document::initSecurityOrigin):
        * dom/Document.h:
        (WebCore::Document::securityOrigin):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::begin):
        (WebCore::FrameLoader::checkCallImplicitClose):
        (WebCore::FrameLoader::shouldAllowNavigation):
        * platform/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::setForURL):
        (WebCore::SecurityOrigin::createForFrame):
        (WebCore::SecurityOrigin::canAccess):
        * platform/SecurityOrigin.h:
        (WebCore::SecurityOrigin::domain):
        * storage/Database.cpp:
        (WebCore::Database::openDatabase):
        (WebCore::Database::Database):
        (WebCore::Database::securityOriginData):
        * storage/Database.h:
        (WebCore::Database::databaseDebugName):
        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::canEstablishDatabase):
        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::postflightAndCommit):
        (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):

LayoutTests:

        Reviewed and landed by Sam Weinig.

        Update LayoutTests for http://bugs.webkit.org/show_bug.cgi?id=15313

        * http/tests/security/cross-frame-access-child-explicit-domain-expected.txt: Added.
        * http/tests/security/cross-frame-access-child-explicit-domain.html: Added.
        * http/tests/security/cross-frame-access-custom-expected.txt:
        * http/tests/security/cross-frame-access-parent-explicit-domain-expected.txt: Added.
        * http/tests/security/cross-frame-access-parent-explicit-domain.html: Added.
        * http/tests/security/cross-frame-access-port-explicit-domain-expected.txt:
        * http/tests/security/cross-frame-access-protocol-explicit-domain-expected.txt:
        * http/tests/security/cross-frame-access-protocol-explicit-domain.html:

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

12 years ago2007-12-20 Rodney Dawes <dobey@wayofthemonkey.com>
mrowe@apple.com [Thu, 20 Dec 2007 22:17:42 +0000 (22:17 +0000)]
2007-12-20  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewed by Darin Adler.

        Proxy includes of npruntime.h or npapi.h through npruntime_internal.h
        Include stdio.h in npapi.h for the use of FILE with XP_UNIX defined
        This is for building with X11, as some type and enum names conflict
        with #define names in X11 headers.
        http://bugs.webkit.org/show_bug.cgi?id=15669

        * JavaScriptCore.xcodeproj/project.pbxproj:
        * bindings/NP_jsobject.h:
        * bindings/npapi.h:
        * bindings/npruntime.cpp:
        * bindings/npruntime_impl.h:
        * bindings/npruntime_priv.h:
        * bindings/npruntime_internal.h:
        * bindings/testbindings.cpp:
        * bindings/c/c_class.h:
        * bindings/c/c_runtime.h:
        * bindings/c/c_utility.h:

2007-12-20  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewed by Darin Adler.

        Define XP_UNIX when building with plugins on X11.
        Use new npruntime_internal.h instead of npruntime.h.
        http://bugs.webkit.org/show_bug.cgi?id=15669

        * ForwardingHeaders/bindings/npruntime_internal.h
        * WebCore.pro:
        * html/HTMLPlugInElement.h:

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

12 years agoWebKit/win:
kmccullough@apple.com [Thu, 20 Dec 2007 22:16:56 +0000 (22:16 +0000)]
WebKit/win:

        Reviewed by Steve.

        - <rdar://5656485> Drosera: Win: Nightly does not reliably connect to
        WebKit.

        - Drosera and Safari need to use the same ProgIDs in order for
        CoCreateInstance to work properly.  The most robust way to do this is
        for WebKit to dynamically publish those ProgIDs.

        * ForEachCoClass.cpp: Added.
        (setUseOpenSourceWebKit):
        (progIDForClass):
        * ForEachCoClass.h: Added functionality to publish ProgIDs.
        * WebKit.vcproj/WebKit.def: Exposed added functions for applications.
        * WebKit.vcproj/WebKit.vcproj: Added ForEachCoClass.cpp
        * WebKit.vcproj/WebKit_debug.def: Exposed added functions fori
        applications.

WebKitTools:

        Reviewed by Steve.

        - <rdar://5656485> Drosera: Win: Nightly does not reliably connect to
        WebKit.

        - Drosera and Safari need to use the same ProgIDs in order for
        CoCreateInstance to work properly.  The most robust way to do this is
        for WebKit to dynamically publish those ProgIDs.

        * Drosera/win/DebuggerClient.cpp: Use the published ProgIDs
        (DebuggerClient::createWebViewWithRequest):
        * Drosera/win/Drosera.cpp: Use the published ProgIDs and rename some
        statics.
        (Drosera::initUI):
        (Drosera::attach):
        (Drosera::attemptToCreateServerConnection):
        * Drosera/win/Drosera.vcproj/Drosera.vcproj: Fix a runtime failure.
        * Drosera/win/ServerConnection.cpp: Reformat the connection function and
        make use of the published ProgIDs.
        (ServerConnection::attemptToCreateServerConnection):

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

12 years agorevert script check-ins that I didn't mean to commit
slewis@apple.com [Thu, 20 Dec 2007 22:10:45 +0000 (22:10 +0000)]
revert script check-ins that I didn't mean to commit

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

12 years ago - fix http://bugs.webkit.org/show_bug.cgi?id=16179 | <rdar://problem/5619399>
slewis@apple.com [Thu, 20 Dec 2007 22:05:15 +0000 (22:05 +0000)]
 - fix bugs.webkit.org/show_bug.cgi?id=16179 | <rdar://problem/5619399>
          Any attribute name start with a unicode which like #xx00(x could be any hex number[0-9a-f]) will cause HTMLTokenizer parse error
          Actually any unicode characters which great than 255 in attribute name will cause Webkit parse the attribute name wrong. So after comparing
          the same scenario in IE 6/7, FireFox 2/3, Opera, we should treat those characters as part of attribute name.

        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::parseEntity): Handle Unicode Entity Name by using ASCII version of findEntity.
        (WebCore::HTMLTokenizer::parseTag): Let type of ptr match type of cBuffer.
        * html/HTMLTokenizer.h: Change type of cBuffer from char to UChar.

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

12 years ago - re-fix http://bugs.webkit.org/show_bug.cgi?id=16471
darin@apple.com [Thu, 20 Dec 2007 21:57:18 +0000 (21:57 +0000)]
    - re-fix bugs.webkit.org/show_bug.cgi?id=16471
          Completions need to be smaller (or not exist at all)

        Same patch as last time with the test failures problem fixed.

        * kjs/function.cpp:
        (KJS::GlobalFuncImp::callAsFunction): Make sure to check the completion
        type from newExec to see if the execute raised an exception.

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

12 years ago Reviewed by Anders.
kdecker@apple.com [Thu, 20 Dec 2007 21:06:54 +0000 (21:06 +0000)]
    Reviewed by Anders.

        Fixed: <rdar://problem/5638288> REGRESSION: Flash movies show up in other tabs above the page (16373)

        * Plugins/WebBaseNetscapePluginView.mm:
        (-[WebBaseNetscapePluginView updateAndSetWindow]): QuickDraw plug-ins must manually be told when to stop
         writing to the window backing store. The problem was that change-set 28400 introduced an early return
         which prevented this necessary operation. The fix is to limit the scope of the early return to CG and GL
         plug-ins and to tweak the needsFocus check to prevent an exception from occurring in QuickDraw-based plug-ins.

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

12 years ago - <rdar://problem/5658317> REGRESSION: 20+ leaks seen on buildbots.
kmccullough@apple.com [Thu, 20 Dec 2007 21:01:39 +0000 (21:01 +0000)]
    - <rdar://problem/5658317> REGRESSION: 20+ leaks seen on buildbots.
        - Build bot and leak fix.

        * DumpRenderTree/LayoutTestController.cpp:
        (pathToLocalResourceCallback):

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

12 years ago - roll out that last change -- it was causing test failures;
darin@apple.com [Thu, 20 Dec 2007 20:33:42 +0000 (20:33 +0000)]
    - roll out that last change -- it was causing test failures;
          I'll check it back in after fixing them

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

12 years ago2007-12-20 Eric Seidel <eric@webkit.org>
eric@webkit.org [Thu, 20 Dec 2007 19:21:05 +0000 (19:21 +0000)]
2007-12-20  Eric Seidel  <eric@webkit.org>

        Reviewed by Nikolas Zimmermann.

        WebKit claims to support SVG feature strings it shouldn't
        http://bugs.webkit.org/show_bug.cgi?id=15480

        * dom/DOMImplementation.cpp:
        (WebCore::isSVG10Feature):
        (WebCore::isSVG11Feature):

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

12 years ago Reviewed by Oliver and Geoff
sullivan@apple.com [Thu, 20 Dec 2007 18:49:23 +0000 (18:49 +0000)]
    Reviewed by Oliver and Geoff

        - fix <rdar://problem/5536858> Yellow highlight for find results is sometimes shorter
          than white "hole" behind it

        * rendering/RenderText.cpp:
        (WebCore::RenderText::addLineBoxRects):
        respect useSelectionHeight in all cases; we were only respecting it in one of the two cases

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

12 years ago Reviewed by Darin Adler.
mitz@apple.com [Thu, 20 Dec 2007 18:28:50 +0000 (18:28 +0000)]
    Reviewed by Darin Adler.

        - fix <rdar://problem/5656368> REGRESSION(3.0.4-ToT): Acid2 test fails to render anything

        * platform/win/ScrollViewWin.cpp:
        (WebCore::ScrollView::maximumScroll): Changed back to return the maximum
        scroll offsets even if scrolling is not allowed, because navigation and
        scrollTo should still work.
        (WebCore::ScrollView::wheelEvent): Added early return if scrolling is
        not allowed.

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

12 years ago2007-12-17 Tony Chang <idealisms@gmail.com>
alp@webkit.org [Thu, 20 Dec 2007 18:09:31 +0000 (18:09 +0000)]
2007-12-17  Tony Chang  <idealisms@gmail.com>

        Reviewed by Darin.

        - Fix for http://bugs.webkit.org/show_bug.cgi?id=16479
          text selection does not always begin at mouse down point
          Reset the m_dragSrc object on mouse down on all platforms.

        Test: fast/text/reset-drag-on-mouse-down.html

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

12 years ago Reviewed by Eric.
darin@apple.com [Thu, 20 Dec 2007 17:42:50 +0000 (17:42 +0000)]
    Reviewed by Eric.

        - http://bugs.webkit.org/show_bug.cgi?id=16471
          Completions need to be smaller (or not exist at all)

        SuSpider shows 2.4% speedup.

        Stop using completions in the execution engine.
        Instead, the completion type and label target are both
        stored in the ExecState.

        * API/JSContextRef.cpp: Removed unneeded include of "completion.h".
        * bindings/runtime_method.cpp: Removed unused execute function.
        * bindings/runtime_method.h: Ditto.

        * kjs/ExecState.h: Added completionType, breakOrContinueTarget,
        setCompletionType, setNormalCompletion, setBreakCompletion,
        setContinueCompletion, setReturnValueCompletion, setThrowCompletion,
        setInterruptedCompletion, m_completionType, and m_breakOrContinueTarget.

        * kjs/completion.h: Removed constructor and getter for target
        for break and continue from Completion. This class is now only
        used for the public API to Interpreter and such.

        * kjs/date_object.h: Removed unused execute function.

        * kjs/function.cpp:
        (KJS::FunctionImp::callAsFunction): Removed some unneeded
        exception processing. Updated to call the new execute function
        and to get the completion type from the ExecState. Merged in
        the execute function, which repeated some of the same logic and
        was called only from here.
        (KJS::GlobalFuncImp::callAsFunction): More of the same for eval.
        * kjs/function.h: Removed execute.

        * kjs/interpreter.cpp:
        (KJS::Interpreter::evaluate): Added code to convert the result of
        execut into a Completion.

        * kjs/nodes.cpp:
        (KJS::Node::setErrorCompletion): Renamed from createErrorCompletion.
        Now sets the completion type in the ExecState.
        (KJS::Node::rethrowException): Now sets the completion type in the
        ExecState.
        (KJS::StatementNode::hitStatement): Now sets the completion type in
        the ExecState.
        (KJS::VarStatementNode::execute): Updated to put completion type in
        the ExecState instead of a Completion object.
        (KJS::statementListExecute): Ditto. Also changed the for loop to use
        indices instead of iterators.
        (KJS::BlockNode::execute): Updated return type.
        (KJS::EmptyStatementNode::execute): Updated to put completion type in
        the ExecState instead of a Completion object.
        (KJS::ExprStatementNode::execute): Ditto.
        (KJS::IfNode::execute): Ditto.
        (KJS::DoWhileNode::execute): Ditto. Also streamlined the logic a little
        to make the normal case a little faster and moved the end outside the
        loop so that "break" can do a break.
        (KJS::WhileNode::execute): Ditto.
        (KJS::ForNode::execute): Ditto.
        (KJS::ForInNode::execute): Ditto.
        (KJS::ContinueNode::execute): Updated to put completion type in
        the ExecState instead of a Completion object.
        (KJS::BreakNode::execute): Ditto.
        (KJS::ReturnNode::execute): Ditto.
        (KJS::WithNode::execute): Ditto.
        (KJS::CaseClauseNode::executeStatements): Ditto. Also renamed to have
        execute in its name to reflect the fact that it's a member of the same
        family of functions.
        (KJS::CaseBlockNode::executeBlock): Ditto.
        (KJS::SwitchNode::execute): Ditto.
        (KJS::LabelNode::execute): Ditto.
        (KJS::ThrowNode::execute): Ditto.
        (KJS::TryNode::execute): Ditto.
        (KJS::ProgramNode::execute): Ditto.
        (KJS::EvalNode::execute): Ditto.
        (KJS::FunctionBodyNode::execute): Ditto.
        (KJS::FuncDeclNode::execute): Ditto.

        * kjs/nodes.h: Renamed setErrorCompletion to createErrorCompletion, made
        hitStatement protected, changed return value of execute to a JSValue,
        renamed evalStatements to executeStatements, and evalBlock to executeBlock.

        * kjs/number_object.h: Removed unused execute function.

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

12 years ago Added Radar number.
ggaren@apple.com [Thu, 20 Dec 2007 10:31:23 +0000 (10:31 +0000)]
    Added Radar number.

        * kjs/nodes.cpp:
        (KJS::ProgramNode::processDeclarations):

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

12 years ago Linux build fix: config.h has to come first.
ggaren@apple.com [Thu, 20 Dec 2007 09:41:30 +0000 (09:41 +0000)]
    Linux build fix: config.h has to come first.

        * kjs/error_object.cpp:

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

12 years agoJavaScriptCore:
ggaren@apple.com [Thu, 20 Dec 2007 09:32:06 +0000 (09:32 +0000)]
JavaScriptCore:

        Reviewed by Oliver Hunt.

        Optimized global access to global variables, using a symbol table.

        SunSpider reports a 1.5% overall speedup, a 6.2% speedup on 3d-morph,
        and a whopping 33.1% speedup on bitops-bitwise-and.

        * API/JSCallbackObjectFunctions.h: Replaced calls to JSObject:: with
        calls to Base::, since JSObject is not always our base class. This
        was always a bug, but the bug is even more apparent after some of my
        changes.

        (KJS::::staticFunctionGetter): Replaced use of getDirect with call to
        getOwnPropertySlot. Global declarations are no longer stored in the
        property map, so a call to getDirect is insufficient for finding
        override properties.

        * API/testapi.c:
        * API/testapi.js: Added test for the getDirect change mentioned above.

        * kjs/ExecState.cpp:
        * kjs/ExecState.h: Dialed back the optimization to store a direct
        pointer to the localStorage buffer. One ExecState can grow the global
        object's localStorage without another ExecState's knowledge, so
        ExecState can't store a direct pointer to the localStorage buffer
        unless/until we invent a way to update all the relevant ExecStates.

        * kjs/JSGlobalObject.cpp: Inserted the symbol table into get and put
        operations.
        (KJS::JSGlobalObject::reset): Reset the symbol table and local storage,
        too. Also, clear the property map here, removing the need for a
        separate call.

        * kjs/JSVariableObject.cpp:
        * kjs/JSVariableObject.h: Added support for saving localStorage and the
        symbol table to the back/forward cache, and restoring them.

        * kjs/function.cpp:
        (KJS::GlobalFuncImp::callAsFunction): Renamed progNode to evalNode
        because it's an EvalNode, not a ProgramNode.

        * kjs/lookup.h:
        (KJS::cacheGlobalObject): Replaced put with faster putDirect, since
        that's how the rest of lookup.h works. putDirect is safe here because
        cacheGlobalObject is only used for objects whose names are not valid
        identifiers.

        * kjs/nodes.cpp: The good stuff!

        (KJS::EvalNode::processDeclarations): Replaced hasProperty with
        the new hasOwnProperty, which is slightly faster.

        * kjs/object.h: Nixed clearProperties because clear() does this job now.

        * kjs/property_map.cpp:
        * kjs/property_map.h: More back/forward cache support.

        * wtf/Vector.h:
        (WTF::::grow): Added fast non-branching grow function. I used it in
        an earlier version of this patch, even though it's not used anymore.

JavaScriptGlue:

        Build fix.

        * ForwardingHeaders/wtf/VectorTraits.h: Added.

WebCore:

        Reviewed by Oliver Hunt.

        Build support:
        * ForwardingHeaders/kjs/SymbolTable.h: Added.
        * ForwardingHeaders/wtf/VectorTraits.h: Added.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::customGetOwnPropertySlot): Replaced use of
        getDirectLocation with getOwnPropertySlot. getDirectLocation is no
        longer valid, since global declarations are not stored in the property
        map.

        (WebCore::JSDOMWindow::customPut): Replaced use of JSObject::put with
        JSGlobalObject::put. JSObject::put is no longer valid, since global
        declarations are not stored in the property map.

        * bindings/js/kjs_window.cpp: Replaced JSObject:: calls with Base::
        calls, since JSObject is not our base class. This was always a bug, but
        the bug is even more apparent after some of my changes.

        (KJS::Window::clear): Removed call to clearProperties because
        JSGlobalObject::reset takes care of that now.

        * history/CachedPage.cpp:
        * history/CachedPage.h: Added support for saving a symbol table and
        localStorage to the page cache, and restoring it.

WebKit/mac:

        Reviewed by Oliver Hunt.

        Build fix.

        * ForwardingHeaders/kjs/SymbolTable.h: Added.
        * ForwardingHeaders/wtf/VectorTraits.h: Added.

LayoutTests:

        Reviewed by Oliver Hunt.

        Added some tests to verify some of the changes I made while optimizing
        global access to global variables.

        * fast/dom/Window/resources/window-property-clearing-iframe0.html: Added.
        * fast/dom/Window/resources/window-property-clearing-iframe1.html: Added.
        * fast/dom/Window/window-property-clearing-expected.txt: Added.
        * fast/dom/Window/window-property-clearing.html: Added.
        * fast/dom/getter-on-window-object2-expected.txt: Added.
        * fast/dom/getter-on-window-object2.html: Added.

        Checked in failing results for these const tests. The symbol table
        optimization broke const. (We didn't know this before because our only
        tests used global variables.)

        * fast/js/const-expected.txt:
        * fast/js/kde/const-expected.txt:

        * fast/js/resources/for-in-avoid-duplicates.js: Fixed a typo I noticed.
        Not related to this patch.

        * fast/dom/Window/window-property-shadowing.html: Changed this test to
        use "this" instead of "window". The fact that "window" worked before,
        despite an overriding / shadowing var declaration, was a bug.

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

12 years ago - remove two more tests that pass now due to changed font fallback
mitz@apple.com [Thu, 20 Dec 2007 06:40:31 +0000 (06:40 +0000)]
    - remove two more tests that pass now due to changed font fallback

        * platform/win/Skipped:

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

12 years agoWebCore:
mitz@apple.com [Thu, 20 Dec 2007 06:21:47 +0000 (06:21 +0000)]
WebCore:

        Reviewed by Darin Adler and Dave Hyatt.

        - Substitute the user's preferred standard font for an unknown primary
          font before falling back on the platform's last resort font

        Cannot be tested in DumpRenderTree because it sets the standard font to
        Times, which is also the hard-coded last resort font on Mac.

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::getFontData): Changed the early bail out
        condition to allow getting generic font families from settings even if
        there are not @font-face rules. Fixed a typo that mapped fantasy to
        cursive. Added a mapping from -webkit-standard to the standard family.
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::CSSStyleSelector): Changed to always create
        a font selector.
        (WebCore::CSSRuleSet::addRulesFromSheet):
        (WebCore::CSSStyleSelector::applyProperty): Changed to always use the
        font selector.
        * css/CSSStyleSelector.h:
        (WebCore::CSSStyleSelector::fontSelector):
        * platform/graphics/FontCache.cpp:
        (WebCore::FontCache::getFontData): Try the user's preferred standard
        font before the platform's last resort font.

LayoutTests:

        - remove passing tests following the change to font fallback

        * platform/win/Skipped: Removed tests that failed only because they
        specified as primary font family a font family that was not available
        on Windows and therefore were rendered using the platform last resort
        font, Times New Roman. Now they are rendered using the 'standard'
        font family, which is set to Times on both Mac and Windows when running
        the tests.

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

12 years ago Make svn-apply/svn-unapply work with patches from git-format-patch.
ddkilzer@apple.com [Thu, 20 Dec 2007 04:24:45 +0000 (04:24 +0000)]
    Make svn-apply/svn-unapply work with patches from git-format-patch.

        Reviewed by Darin.

        * Scripts/svn-apply:
        (patch): If 'Index:' can't be found in the text passed in, print it
        out with a warning and return early.
        * Scripts/svn-unapply:
        (patch): Ditto.

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

12 years ago2007-12-19 Sven Herzberg <sven@imendio.com>
alp@webkit.org [Thu, 20 Dec 2007 03:03:43 +0000 (03:03 +0000)]
2007-12-19  Sven Herzberg  <sven@imendio.com>

        Reviewed by Alp Toker.

        Scaled font destruction takes place in FontData::platformDestroy(). No
        need to do it in FontPlatformData::~FontPlatformData().

        Destroying platform data in platformDestroy() is a convention we
        borrow from the Mac and Win ports.

        * platform/graphics/gtk/FontPlatformDataGtk.cpp:

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

12 years ago build fix (Windows)
alice.liu@apple.com [Thu, 20 Dec 2007 01:12:33 +0000 (01:12 +0000)]
    build fix (Windows)

        Changed uint to unsigned int.  uint caused Windows build breakage

        * page/Page.cpp:
        (WebCore::Page::markAllMatchesForText):
        * page/Page.h:

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

12 years ago2007-12-19 Christian Dywan <christian@twotoasts.de>
alp@webkit.org [Thu, 20 Dec 2007 00:23:03 +0000 (00:23 +0000)]
2007-12-19  Christian Dywan  <christian@twotoasts.de>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16222
        [GTK] Implement inline search and highlighting of matching strings.

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

12 years ago Reviewed by Sam Weinig, Dan Bernstein.
ggaren@apple.com [Thu, 20 Dec 2007 00:02:51 +0000 (00:02 +0000)]
    Reviewed by Sam Weinig, Dan Bernstein.

        Tiger build fix: restored some graphics code still needed on Tiger.

        * platform/graphics/GraphicsTypes.h:
        * platform/graphics/cg/GraphicsContextCG.cpp:
        * platform/graphics/mac/GraphicsContextMac.mm:
        (WebCore::GraphicsContext::setCompositeOperation):

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

12 years ago2007-12-19 Alp Toker <alp@atoker.com>
alp@webkit.org [Wed, 19 Dec 2007 23:22:11 +0000 (23:22 +0000)]
2007-12-19  Alp Toker  <alp@atoker.com>

        Build fix for Pango < 1.18.0 breakage introduced in r28864. Use Fc and
        the Pango backend API in these cases.

        * platform/graphics/gtk/FontPlatformDataGtk.cpp:
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::~FontPlatformData):

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

12 years agoWebCore:
alice.liu@apple.com [Wed, 19 Dec 2007 22:51:30 +0000 (22:51 +0000)]
WebCore:

        Reviewed by Darin.

        Fixed <rdar://problem/5592485> Safari crashed trying to get a motorcycle insurance quote
        on Geico.com WebCore::Document::inPageCache()

        Calling Node::willRemove on the focusedNode would immediately tell the document to remove
        the focused node, and trigger JS events.  This means that the document is mutated while
        the engine is trying to tell all child nodes that it's about to removed.  To avoid
        crashing, we need to hold off on mutating the document until node traversal is finished.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::removeChild):
        (WebCore::ContainerNode::removeChildren):
        * dom/Node.cpp:
        * dom/Node.h:
        (WebCore::Node::willRemove):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::clear):

LayoutTests:

        Reviewed by Darin.

        Fixed <rdar://problem/5592485> Safari crashed trying to get a motorcycle insurance quote
        on Geico.com WebCore::Document::inPageCache()

        * fast/events/nested-event-remove-node-crash-expected.txt: Added.
        * fast/events/nested-event-remove-node-crash.html: Added.

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

12 years agoLayoutTests:
aboule@apple.com [Wed, 19 Dec 2007 21:57:01 +0000 (21:57 +0000)]
LayoutTests:

        Reviewed by Dan Bernstein.

        Adding tests for canvas compositing modes to make sure the results don't change after:
        <rdar://problem/5640059> GraphicsContext::setCompositeOperation should use CGContextSetBlendMode

        The following compositing modes don't pass however that is covered by another bug:
        source-in
        source-out
        destination-in
        destination-atop
        copy
        <rdar://problem/5651783> Some canvas tag compositing modes don't render correctly

        * fast/canvas/canvas-composite.html: Added.
        * platform/mac/fast/canvas/canvas-composite-expected.checksum: Added.
        * platform/mac/fast/canvas/canvas-composite-expected.png: Added.
        * platform/mac/fast/canvas/canvas-composite-expected.txt: Added.

WebCore:

        Reviewed by Dan Bernstein.

        Test: fast/canvas/canvas-composite.html

        Fix for:
        <rdar://problem/5640059> GraphicsContext::setCompositeOperation should use CGContextSetBlendMode

        This fix makes setCompositeOperation consistent across all platforms that use CG.

        The following compositing modes don't pass however that is covered by another bug:
        source-in
        source-out
        destination-in
        destination-atop
        copy
        <rdar://problem/5651783> Some canvas tag compositing modes don't render correctly

        * platform/graphics/GraphicsTypes.h:
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::setCompositeOperation):
        * platform/graphics/mac/GraphicsContextMac.mm:
        * platform/win/GraphicsContextWin.cpp:

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

12 years agoWebCore:
mitz@apple.com [Wed, 19 Dec 2007 21:45:56 +0000 (21:45 +0000)]
WebCore:

        Reviewed by Dave Hyatt.

        - fix <rdar://problem/5650045> REGRESSION: major layout problems in svn r28754 WebKit on Vox.com page

        Test: fast/dynamic/subtree-boundary-percent-height.html

        * rendering/RenderObject.cpp:
        (WebCore::objectIsRelayoutBoundary): Do not allow overflows with
        percent heights because sometimes they compute to 'auto'.

LayoutTests:

        Reviewed by Dave Hyatt.

        - test for <rdar://problem/5650045> REGRESSION: major layout problems in svn r28754 WebKit on Vox.com page

        * fast/dynamic/subtree-boundary-percent-height.html: Added.
        * platform/mac/fast/dynamic/subtree-boundary-percent-height-expected.checksum: Added.
        * platform/mac/fast/dynamic/subtree-boundary-percent-height-expected.png: Added.
        * platform/mac/fast/dynamic/subtree-boundary-percent-height-expected.txt: Added.

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

12 years agoFix unsigned/enum problem on Win32. r=darin.
hyatt@apple.com [Wed, 19 Dec 2007 21:21:45 +0000 (21:21 +0000)]
Fix unsigned/enum problem on Win32. r=darin.

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

12 years agoOops! Typo!
bdakin@apple.com [Wed, 19 Dec 2007 20:26:17 +0000 (20:26 +0000)]
Oops! Typo!

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

12 years agoFix unsigned/enum problem on Win32. r=darin.
hyatt@apple.com [Wed, 19 Dec 2007 20:15:30 +0000 (20:15 +0000)]
Fix unsigned/enum problem on Win32. r=darin.

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

12 years agoFix unsigned/enum problem on Win32. r=darin.
hyatt@apple.com [Wed, 19 Dec 2007 20:14:07 +0000 (20:14 +0000)]
Fix unsigned/enum problem on Win32. r=darin.

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

12 years ago Reviewed by Maciej.
weinig@apple.com [Wed, 19 Dec 2007 20:11:09 +0000 (20:11 +0000)]
    Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=16511
        Speed up ClassNodeList and NamedNodeList by using the caching mechanism employed by ChildNodeList.
        - This give a ~2.15x speedup on the native test @ http://ejohn.org/apps/classname/

        * dom/ChildNodeList.cpp: Use the caching NodeList constructor to turn on caching.
        (WebCore::ChildNodeList::ChildNodeList):
        * dom/ClassNodeList.cpp:
        (WebCore::ClassNodeList::ClassNodeList):
        * dom/ClassNodeList.h:

        Move getElementsByName and getElementsByClassName to Node so they
        can use easily employ the caching already used by ChildNodeLists.  In the case of
        getElementsByClassName, this reduces code duplication in Element as well
        * dom/Document.cpp:
        * dom/Document.h:

        Move getElementsByClassName to Node.
        * dom/Element.cpp:
        * dom/Element.h:

        * dom/NameNodeList.cpp: Use the caching NodeList constructor to turn on caching.
        (WebCore::NameNodeList::NameNodeList):
        (WebCore::NameNodeList::item):
        * dom/NameNodeList.h:

        Add maps of caches for ClassNodeLists and NameNodeList to NodeListsNodeData.
        * dom/Node.cpp:
        (WebCore::TagNodeList::TagNodeList):
        (WebCore::Node::Node):
        (WebCore::Node::~Node):
        (WebCore::Node::childNodes):
        (WebCore::Node::registerNodeList):
        (WebCore::Node::getElementsByName):
        (WebCore::Node::getElementsByClassName):
        * dom/Node.h: Make m_nodeLists an OwnPtr.  Moved getElementsByName and getElementsByClassName here

        Allow subclasses to choose whether they want to receive the notifications using a new bit.
        * dom/NodeList.cpp:
        (WebCore::NodeList::NodeList):
        * dom/NodeList.h:
        (WebCore::NodeList::needsNotifications):

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

12 years agoAdd support for GDI text on Windows.
hyatt@apple.com [Wed, 19 Dec 2007 19:24:10 +0000 (19:24 +0000)]
Add support for GDI text on Windows.

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

12 years agoAdd fourth preference value for GDI text font smoothing to WebKit.
hyatt@apple.com [Wed, 19 Dec 2007 19:13:16 +0000 (19:13 +0000)]
Add fourth preference value for GDI text font smoothing to WebKit.

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

12 years ago2007-12-19 Alp Toker <alp@atoker.com>
alp@webkit.org [Wed, 19 Dec 2007 18:41:17 +0000 (18:41 +0000)]
2007-12-19  Alp Toker  <alp@atoker.com>

        Remove the cairo-ft pkg-config check. The GTK+ port doesn't use
        cairo-ft directly following changes in r28864.

        * WebKit.pri:

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

12 years ago2007-12-19 Sven Herzberg <sven@imendio.com>
alp@webkit.org [Wed, 19 Dec 2007 18:00:23 +0000 (18:00 +0000)]
2007-12-19  Sven Herzberg  <sven@imendio.com>

        Reviewed by Alp Toker.

        Replace the fontconfig/freetype based font management with a pango
        based one. Fixes:
        http://bugs.webkit.org/show_bug.cgi?id=15229

        * platform/gtk/FontDataGtk.cpp (FontData::platformDestroy()): updated
        the platform specific destroy code
        (FontData::containsCharacters()): implemented font coverage with pango
        * platform/gtk/FontPlatformData.h: replaced fontconfig specific
        members with pango-specific ones
        * platform/gtk/FontPlatformDataGtk.cpp: added static members for the
        FontPlatformData class
        (FontPlatformData::FontPlatformData()): implemented the font-matching
        with a PangoFontDescription instead of an FcPattern; initialize the
        scaled font by using the API for PangoCairoFont
        (FontPlatformData::init()): initialize the PangoFontMap and set up a
        hash table to translate the font family name into a font family
        (FontPlatformData::isFixedPitch()): implemented by querying the
        PangoFontFamily
        (FontPlatformData::operator==): compare the FontPlatformData by
        comparing the font pointers or the described fonts
        * platform/gtk/GlyphPageTreeNodeGtk.cpp (pango_font_get_glyph()):
        added a function to query a glyph from a PangoFont
        (GlyphPage::fill()): implemented the fill function with Pango instead
        of fontconfig/freetype

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

12 years agowx build process improvements, including added checks and outdated changes after...
kevino@webkit.org [Wed, 19 Dec 2007 17:36:57 +0000 (17:36 +0000)]
wx build process improvements, including added checks and outdated changes after the move to trunk.

Reviewed by Alp Toker

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

12 years ago2007-12-19 Alp Toker <alp@atoker.com>
alp@webkit.org [Wed, 19 Dec 2007 17:00:01 +0000 (17:00 +0000)]
2007-12-19  Alp Toker  <alp@atoker.com>

        Reviewed by Holger Freyther.

        Delete when Destroy functions are called to avoid leaks

        This matches the Mac port.

        * WebCoreSupport/ChromeClientGtk.cpp:
        * WebCoreSupport/ContextMenuClientGtk.cpp:
        * WebCoreSupport/InspectorClientGtk.cpp:

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

12 years ago2007-12-19 Alp Toker <alp@atoker.com>
alp@webkit.org [Wed, 19 Dec 2007 16:55:58 +0000 (16:55 +0000)]
2007-12-19  Alp Toker  <alp@atoker.com>

        Reviewed by Holger Freyther.

        Improve graphics operator approximations

        These changes match Cairo's own CG approximations.

        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::toCairoOperator):

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

12 years ago2007-12-19 Alp Toker <alp@atoker.com>
alp@webkit.org [Wed, 19 Dec 2007 16:55:37 +0000 (16:55 +0000)]
2007-12-19  Alp Toker  <alp@atoker.com>

        Reviewed by Holger Freyther.

        Check the bounding box before doing a full hit test

        * platform/graphics/cairo/PathCairo.cpp:
        (WebCore::Path::contains):

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

12 years agoBuild fix for non-Mac platforms. Move NodeInfo into its own header so that the YYTYP...
mrowe@apple.com [Wed, 19 Dec 2007 09:10:16 +0000 (09:10 +0000)]
Build fix for non-Mac platforms.  Move NodeInfo into its own header so that the YYTYPE declaration in grammar.h is able to declare members of that type.

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

12 years ago Reviewed by Geoff.
weinig@apple.com [Wed, 19 Dec 2007 08:41:14 +0000 (08:41 +0000)]
    Reviewed by Geoff.

        Fix for <rdar://problem/5646478>
        REGRESSION: fast/events/event-view-toString fails on Leopard

        This fixes an issue where we were incorrectly setting the lastInPrototypeChain
        for the JSDOMWindow (the global object) before a call to setPrototype overwrote
        it. This fixes it by passing the prototype up the constructor chain so that it
        is set before any calls can be made.

        * bindings/js/kjs_window.cpp:
        (KJS::Window::Window):
        * bindings/js/kjs_window.h:
        * bindings/scripts/CodeGeneratorJS.pm:

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

12 years agoMake appendToVarDeclarationList static
oliver@apple.com [Wed, 19 Dec 2007 08:13:00 +0000 (08:13 +0000)]
Make appendToVarDeclarationList static

RS=Weinig

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

12 years agoWebCore:
bdakin@apple.com [Wed, 19 Dec 2007 07:53:52 +0000 (07:53 +0000)]
WebCore:

        Reviewed by Oliver.

        Fix for <rdar://problem/5616982> SVGs with width and height 100%
        fail to render when used as <img> or CSS image (16167)

        This final part of the work fixes the <img> tag.

        This is the real fix.
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::calcReplacedWidth): Set the container size
        on the image. Setting the container size only actually sticks if
        the values are non-zero, so if the container size really was set,
        use the imageSize that is calculated using the container size. If
        it did not stick but the image does have relative width (meaning
        that the container size is 0), set the width to 0 by hand. We want
        to avoid setting the width before we have a container size or we
        will end up incorrectly using the default size of 300x150.
        (WebCore::RenderImage::calcReplacedHeight): Same as above, but for
        height.

        A few more pieces of information have to be exposed through cached
        image to make this happen.
        * loader/CachedImage.cpp:
        (WebCore::CachedImage::usesImageContainerSize): As mentioned above,
        when setContainerSize() is called, the container size is only
        actually set if the values are non-zero. This call tells you if it
        was set.
        (WebCore::CachedImage::imageHasRelativeWidth):
        (WebCore::CachedImage::imageHasRelativeHeight):
        * loader/CachedImage.h:
        * platform/graphics/Image.h:
        (WebCore::Image::usesContainerSize):
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::usesContainerSize):
        * svg/graphics/SVGImage.h:

LayoutTests:

        Reviewed by Oliver.

        Test for <rdar://problem/5616982> SVGs with width and height 100%
        fail to render when used as <img> or CSS image (16167)

        * fast/images/resources/green-relative-size-rect.svg: Added.
        * fast/images/svg-as-relative-image.html: Added.
        * platform/mac/fast/images/svg-as-relative-image-expected.checksum: Added.
        * platform/mac/fast/images/svg-as-relative-image-expected.png: Added.
        * platform/mac/fast/images/svg-as-relative-image-expected.txt: Added.

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

12 years agoRemove dead code due to removal of post-parse declaration discovery.
oliver@apple.com [Wed, 19 Dec 2007 07:42:49 +0000 (07:42 +0000)]
Remove dead code due to removal of post-parse declaration discovery.

RS=Geoff.

Due to the removal of the declaration discovery pass after parsing we
no longer need any of the logic used for that discovery.

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

12 years agoReplace post-parse pass to find declarations with logic in the parser itself
oliver@apple.com [Wed, 19 Dec 2007 07:42:29 +0000 (07:42 +0000)]
Replace post-parse pass to find declarations with logic in the parser itself

Reviewed by Geoff.

Instead of finding declarations in a pass following the initial parsing of
a program, we incorporate the logic directly into the parser.  This lays
the groundwork for further optimisations (such as improving performance in
declaration expressions -- var x = y; -- to match that of standard assignment)
in addition to providing a 0.4% performance improvement in SunSpider.

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

12 years agoVersioning.
mrowe@apple.com [Wed, 19 Dec 2007 05:04:13 +0000 (05:04 +0000)]
Versioning.

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

12 years agoFix typo in hosted SunSpider page.
mrowe@apple.com [Wed, 19 Dec 2007 04:58:39 +0000 (04:58 +0000)]
Fix typo in hosted SunSpider page.

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

12 years ago Correct link to Visual Studio Express 2005.
sfalken@apple.com [Wed, 19 Dec 2007 04:54:33 +0000 (04:54 +0000)]
    Correct link to Visual Studio Express 2005.
        Old link points to 2008.

        Reviewed by Mark.

        * building/tools.html:

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

12 years ago * Scripts/make-js-test-wrappers: Don't generate a wrapper for select-options...
darin@apple.com [Wed, 19 Dec 2007 03:11:17 +0000 (03:11 +0000)]
    * Scripts/make-js-test-wrappers: Don't generate a wrapper for select-options-remove.js.

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

12 years ago2007-12-18 Xan Lopez <xan@gnome.org>
ddkilzer@apple.com [Wed, 19 Dec 2007 02:58:36 +0000 (02:58 +0000)]
2007-12-18  Xan Lopez  <xan@gnome.org>

        Reviewed by Geoff.

        Fix http://bugs.webkit.org/show_bug.cgi?id=14521
        Bug 14521: JavaScriptCore fails to build on Linux/PPC gcc 4.1.2

        * wtf/TCSpinLock.h:
        (TCMalloc_SpinLock::Unlock):

        Use less strict memory operand constraint on inline asm generation.
        PLATFORM(DARWIN) left unpatched due to Apple's GCC bug.

        Patch by David Kilzer <ddkilzer@webkit.org>

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