2008-04-03  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam.

        <rdar://problem/5832603> REGRESSION: Adding an image to the header image well causes Journal page to incorrectly draw
        
        * dom/Document.cpp:
        (WebCore::Document::childrenChanged):
        Make sure to chain up to ContainerNode::childrenChanged.

2008-04-03  Mark Rowe  <mrowe@apple.com>

        Merge r31320 to Safari-3-1-branch.

    2008-03-26  Adam Roben  <aroben@apple.com>

        Fix Bug 17768: REGRESSION (r30146): Inspector no longer shows elements
        properties

        <http://bugs.webkit.org/show_bug.cgi?id=17768>

        We were throwing an exception from Object.describe because of some
        undefined variables.

        Reviewed by Tim Hatcher.

        * page/inspector/utilities.js:
        (Object.describe): Reinstate the type1 and type2 variables that were
        removed in r30146. They're still used when formatting a function.

2008-03-31  Mark Rowe  <mrowe@apple.com>

        Merge r31438 to Safari-3-1-branch.

    2008-03-29  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin Adler.

        Fix for <rdar://problem/5828873>

        Since NSURL is allowing invalid urls to be loaded, we need to
        check the URL validity at the ResourceHandle level and fire off
        a cannotShowURL error.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::cannotShowURLError):
        * loader/FrameLoader.h:
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::cannotShowURLError):
        (WebCore::ResourceLoader::wasBlocked):
        (WebCore::ResourceLoader::cannotShowURL):
        * loader/ResourceLoader.h:
        * platform/KURL.h:
        (WebCore::KURL::isValid):
        * platform/network/ResourceHandle.cpp:
        (WebCore::ResourceHandle::create):
        (WebCore::ResourceHandle::scheduleFailure):
        (WebCore::ResourceHandle::fireFailure):
        (WebCore::portAllowed):
        * platform/network/ResourceHandle.h:
        (WebCore::ResourceHandle::):
        * platform/network/ResourceHandleClient.h:
        (WebCore::ResourceHandleClient::cannotShowURL):
        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):

2008-03-31  Mark Rowe  <mrowe@apple.com>

        Merge r31434 to Safari-3-1-branch.

    2008-03-29  Sam Weinig  <sam@webkit.org>

        Reviewed by Brady Eidson.

        Fix crash when canceling a resource load while port blocked failure
        timer is going.

        Test: fast/loader/cancel-load-during-port-block-timer.html

        * platform/network/ResourceHandle.cpp:
        (WebCore::ResourceHandle::scheduleBlockedFailure):
        (WebCore::ResourceHandle::fireBlockedFailure):
        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
        Make the Timer a member variable of ResourceHandleInternal so
        that it can be canceled if the ResourceHandle is destroyed.

2008-03-31  Mark Rowe  <mrowe@apple.com>

        Merge r30722 to Safari-3-1-branch.

    2008-03-03  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dan Bernstein.

        Fix http://bugs.webkit.org/show_bug.cgi?id=17313
        Bug 17313: querySelectorAll() causing crashes when called via dojo.query() wrapper

        Node::querySelector and SelectorNodeList were not sufficiently initializing the CSSStyleSelector
        before using it to resolve styles, which lead to it having a stale m_style member in some situations.
        This stale m_style member resulted in a wild store that would write over whatever object now resided
        at the location m_style pointed to.

        Test: fast/dom/SelectorAPI/bug-17313.html

        * dom/Node.cpp:
        (WebCore::Node::querySelector): Call initForStyleResolve to further initialize the CSSStyleSelector.
        * dom/SelectorNodeList.cpp:
        (WebCore::SelectorNodeList::SelectorNodeList): Ditto.

2008-03-31  Mark Rowe  <mrowe@apple.com>

        Merge r31153 to Safari-3-1-branch.

    2008-03-19  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        - fix <rdar://problem/5805070> CrashTracer: [USER] 33 crashes in Safari at com.apple.WebCore: WebCore::FrameView::layout + 431

        Test: fast/dynamic/subtree-parent-static-y.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::markContainingBlocksForLayout): Avoid calling
        this method on the parent if the parent is the new layout subtree root,
        which would result in marking all the way to the top, when it should
        actually do nothing.

2008-03-28  Mark Rowe  <mrowe@apple.com>

        Merge r31071 to Safari-3-1-branch.

    2008-03-14  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam.

        <rdar://problem/5794989>
        https://bugs.webkit.org/show_bug.cgi?id=17792
        REGRESSION (Safari 3.0.4-3.1): Ordering tickets from Sweden's biggest train operator doesn't work

        Pass the frame loader that should be used for looking up the frame name to FrameLoader::createWindow
        so that somewindow.open calls where the active window and 'somewindow' differ return the correct frame.
        
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::createWindow):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::createWindow):
        * loader/FrameLoader.h:

2008-03-28  Mark Rowe  <mrowe@apple.com>

        Merge r31336 to Safari-3-1-branch.

    2008-03-26  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Harrison.

        <rdar://problem/5820749> REGRESSION (Safari 3.1): Mail's plain text reply omits blank line following the attribution

        * editing/markup.cpp:
        (WebCore::createFragmentFromText): When asked to create a fragment from "Attribution:\n"
        with a context from [html, 0] to [html, 0], we'd return "<html>Attribution</html><br>".
        Don't enclose paragraphs in clones of the context's enclosing block if that block is the
        html or body element.  Currently no way to test [DOMHTMLElement createFragmentFromText:].

2008-03-20  Mark Rowe  <mrowe@apple.com>

        Merge r31144 to Safari-3-1-branch.

    2008-03-18  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=17057
        REGRESSION: Frequent random crashes in WebCore::JSNodeList::indexGetter
        <rdar://problem/5725058>

        Tests: fast/dom/NodeList/5725058-crash-scenario-1.html
               fast/dom/NodeList/5725058-crash-scenario-2.html
               fast/dom/NodeList/5725058-crash-scenario-3.html

        * dom/ChildNodeList.cpp: 
        (WebCore::ChildNodeList::ChildNodeList):
        * dom/ChildNodeList.h:
        Remove rootNodeChildrenChanged() method and fix the constructor to not 
        pass in a needsNotifications argument to DynamicNodeList, as it no longer
        takes one.

        * dom/ClassNodeList.cpp:
        (WebCore::ClassNodeList::ClassNodeList):
        Don't pass the needsNotifications argument to DynamicNodeList.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::childrenChanged):
        Rename call to hasNodeLists() to hasNodeListCaches().

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::~Document): Zero out the m_document variable to signify
        to destructors down the destruction chain that this is a Document type node
        being destructed, and thus, accessing document() is prohibited.
        * dom/Document.h:
        (WebCore::Document::addNodeListCache): Renamed from addNodeList.
        (WebCore::Document::removeNodeListCache): Renamed from removeNodeList, adds assertion.
        (WebCore::Document::hasNodeListCaches): Renamed from hasNodeListCaches.
        Rename m_numNodeLists to m_numNodeListCaches.

        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicNodeList::DynamicNodeList):
        (WebCore::DynamicNodeList::~DynamicNodeList):
        (WebCore::DynamicNodeList::invalidateCache):
        (WebCore::DynamicNodeList::Caches::Caches):
        * dom/DynamicNodeList.h:
        (WebCore::DynamicNodeList::hasOwnCaches):
        Remove the needsNotifications concept from DynamicNodeList, instead, manually
        invalidate the cache for lists that own their own cache.

        * dom/NameNodeList.cpp:
        (WebCore::NameNodeList::NameNodeList):
        * dom/NameNodeList.h:
        Remove rootNodeAttributeChanged() method and fix the constructor to not 
        pass in a needsNotifications argument to DynamicNodeList, as it no longer
        takes one.

        * dom/Node.cpp:
        (WebCore::Node::~Node): Decrement the document's nodeListCache count
        if we had a NodeListsNodeData cache and this is not the Document being
        destructor, as tagged by a null m_document.
        (WebCore::Node::childNodes): Increment the document's nodeListCache count 
        if we need create the NodeListsNodeData.
        (WebCore::Node::registerDynamicNodeList): Increment the document's nodeListCache count 
        if we need create the NodeListsNodeData.  Change to invalidate all the caches, instead 
        of just the ChildNodeList, if document has had no NodeListCaches.
        (WebCore::Node::unregisterDynamicNodeList): Change to remove the cache from the m_listsWithCaches
        set if it is owned by the NodeList and clear the m_nodeLists if it is empty.
        (WebCore::Node::notifyLocalNodeListsAttributeChanged): Move logic to 
        NodeListsNodeData::invalidateAttributeCaches and clear the cache pointer if it is empty.
        (WebCore::Node::notifyLocalNodeListsChildrenChanged): Move logic to 
        NodeListsNodeData::invalidateCaches and clear the cache pointer if it is empty.
        (WebCore::Node::notifyNodeListsChildrenChanged): Cleanup.
        (WebCore::Node::getElementsByName): Increment the document's nodeListCache count 
        if we need create the NodeListsNodeData.
        (WebCore::Node::getElementsByClassName): Increment the document's nodeListCache count 
        if we need create the NodeListsNodeData.

        (WebCore::NodeListsNodeData::invalidateCaches): Added.
        (WebCore::NodeListsNodeData::invalidateAttributeCaches): Added.
        (WebCore::NodeListsNodeData::isEmpty): Added.

        * dom/TagNodeList.cpp:
        (WebCore::TagNodeList::TagNodeList):
        Don't pass the needsNotifications argument to DynamicNodeList.

2008-03-17  Mark Rowe  <mrowe@apple.com>

        Merge r31069 to Safari-3-1-branch.

    2008-03-14  Dan Bernstein  <mitz@apple.com>

        Reviewed by Mark Rowe.

        - fix <rdar://problem/5797836> shadow offsets are smaller than specified

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::setShadow): Made the workaround for
        <rdar://problem/5539388> unconditional.

2008-03-03  Mark Rowe  <mrowe@apple.com>

        Merge r30992 to Safari-3-1-branch.

    2008-03-12  David Harrison  <harrison@apple.com>

        Reviewed by Darin.

        <rdar://problem/5607382> CrashTracer: [REGRESSION] 2290 crashes in Safari at com.apple.WebCore: -[WebCoreAXObject isWebArea] + 8

        The problem was that we lost track of the AX cache for a subframe when Frame::disconnectOwnerElement() was
        called, so we were unable to locate the AXObjects to de-register from AppKit's accessibility registry.
        Also saw that cache clearing was missing from Document::detach(), and fixed that.
        
        Also added a debug-only check that AXObjectCache::remove() not finding the AXObject is expected.
        
        Lastly, RenderWidget::destroy() now skips trying to remove the AXObject if accessibility has never been enabled.
       
        * dom/Document.cpp:
        (WebCore::Document::attach):
        Assert that there is no AX cache (since there is no renderer).
        
        (WebCore::Document::detach):
        Destroy the AX cache installed on this document.
        
        (WebCore::Document::clearAXObjectCache):
        New. Destroy the AX cache associated with this document.
        
        (WebCore::Document::axObjectCache):
        Added some comments.
        
        * dom/Document.h:
        Declare clearAXObjectCache().
        
        * page/Frame.cpp:
        (WebCore::Frame::disconnectOwnerElement):
        Destroy the AX cache associated with this frame's document.
        
        * page/mac/AXObjectCacheMac.mm:
        (WebCore::AXObjectCache::remove):        
        * page/mac/WebCoreAXObject.mm:
        (-[WebCoreAXObject initWithRenderer:]):
        (-[WebCoreAXObject detach]):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::RenderObject):
        (WebCore::RenderObject::~RenderObject):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::setHasAXObject):
        (WebCore::RenderObject::hasAXObject):
        Add debug-only check that AXObjectCache::remove() not finding the AXObject is expected.
        
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::destroy):
        Skip call to remove the AXObject if accessibility has never been enabled. A simple speed optimization in the
        very common case that the accessibility APIs are not being used. Same as in RenderObject::destroy().

2008-03-03  Mark Rowe  <mrowe@apple.com>

        Merge r30716 to Safari-3-1-branch.

    2008-03-03  David Hyatt  <hyatt@apple.com>

        Fix for <rdar://problem/5776161> REGRESSION: Google Docs Spreadsheet crash

        This is also http://bugs.webkit.org/show_bug.cgi?id=17543, fixed table layout corrupts heap.

        Make sure not to access position -1 of the size 0 vectors.

        Reviewed by ggaren

        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::layout):

2008-03-03  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Darin, Anders.

        Merge r30698 to Safari-3-1-branch.

        * plugins/PluginDatabase.h: Added isPreferredPluginPath(),
        preferredPluginCompare() qsort comparator.
        * plugins/PluginPackage.h: Added bool m_allowsMultipleInstances.
        (WebCore::PluginPackage::allowsMultipleInstances): Added; returns true
        if plug-in can have multiple instances, false otherwise.
        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::PluginDatabase::preferredPluginCompare): qsort comparator
        function, calls PluginPackage::compare().
        (WebCore::PluginDatabase::pluginForMIMEType): Builds a list of plug-ins
        for a MIME type, sorts them, and returns the first item.
        (WebCore::PluginDatabase::MIMETypeForExtension): Builds a list of
        plug-ins that handle this extension, sorts them, and returns the MIME
        type the first plug-in in the list associates with this extension.
        (WebCore::PluginDatabase::isPreferredPluginPath): Returns true if the
        passed path is the "preferred" plug-in path.
        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackage::PluginPackage): Set m_allowsMultipleInstances
        to true.
        (WebCore::PluginPackage::fetchInfo): If this is the VLC plug-in, set
        m_allowsMultipleInstances to false.
        (WebCore::PluginPackage::compare): Compare two plug-ins, first checking
        whether a plug-in has an issue that should push it to the back, then
        whether it's in a preferred directory that should move it to the front,
        then by filename, version, and parent directory.
        (WebCore::PluginPackage::load): If this plug-in doesn't allow multiple
        instances, and the package has been loaded, return false.

2008-02-29  Mark Rowe  <mrowe@apple.com>

        Merge r30692 to Safari-3-1-branch.

    2008-02-29  Brady Eidson  <beidson@apple.com>

        Reviewed by build-fix karma

        Bonehead mistake.  Revert function to previous version for all non-Windows+CFNetwork platforms

        * platform/network/ProtectionSpace.cpp:
        (WebCore::ProtectionSpace::receivesCredentialSecurely): Make my previous change conditionally

2008-02-29  Mark Rowe  <mrowe@apple.com>

        Merge r30689 to Safari-3-1-branch.

    2008-02-29  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin

        <rdar://problem/5771227> - Incorrect password handling text in credential sheet

        * platform/network/ProtectionSpace.cpp:
        (WebCore::ProtectionSpace::receivesCredentialSecurely): Call functional CFNetwork method to
        get "secureness" of the auth challenge instead of figuring it out ourselves

2008-02-28  Dave Hyatt  <hyatt@apple.com>

        Reviewed by Darin Adler.

        Fix <rdar://problem/5771994> REGRESSION: Loading HTML5 spec is 5x slower on TOT than in 3.0.4.

        Disable dynamic updating of the + selector when the DOM changes, since it hurt performance on the HTML5 spec.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkSelector):

2008-02-28  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dave Hyatt.

        <rdar://problem/5767534> REGRESSION (r29976): discovermagazine.com lays out incorrect (17564)

        Roll r29976 out of Safari-3-1-branch.

        * css/CSSGrammar.y:

2008-02-27  Mark Rowe  <mrowe@apple.com>

        Merge r30634 to Safari-3-1-branch.

    2008-02-27  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin.

        Fix for <rdar://problem/5768769>

        - Don't allow cross-origin calls using window.functionName.call(otherFrame)
          syntax.

        * bindings/js/JSLocation.cpp:
        (WebCore::jsLocationProtoFuncToString): Do same-origin check.
        * bindings/js/kjs_window.cpp:
        (KJS::windowProtoFuncAToB): Ditto.
        (KJS::windowProtoFuncBToA): Ditto.
        (KJS::windowProtoFuncOpen): Ditto.
        (KJS::windowProtoFuncClearTimeout): Ditto.
        * bindings/scripts/CodeGeneratorJS.pm: Ditto.

2008-02-26  Mark Rowe  <mrowe@apple.com>

        Merge r30617 to Safari-3-1-branch.

    2008-02-26  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin.

        Fix <rdar://problem/5761326>
        REGRESSION: 1.5% -2% Sunspider regression from r30009 (ebay photo upload hang)
        
        Generate better code with VS:
        - Use ALWAYS_INLINE macro to guarantee versions of allowsAccessFrom() are reduced to single functions
        - Refactor error reporting so that there is no need to construct/destruct Strings in common cases
        - Add a separate version of the function for cases where error messages are not wanted

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::customGetOwnPropertySlot):
        * bindings/js/kjs_window.cpp:
        (KJS::Window::allowsAccessFrom):
        (KJS::Window::allowsAccessFromNoErrorMessage):
        (KJS::Window::allowsAccessFromPrivate):
        (KJS::Window::crossDomainAccessErrorMessage):
        * bindings/js/kjs_window.h:

2008-02-22  Mark Rowe  <mrowe@apple.com>

        Build fix.

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::send): Qualify references to symbols in the KJS namespace.

2008-02-22  Mark Rowe  <mrowe@apple.com>

        Merge r30493 to Safari-3-1-branch.

    2008-02-22  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.
        
        Fixed <rdar://problem/5057509> Repro leak of JSXMLHttpRequest and
        associated objects @ www.viamichelin.it, which was probably an underlying
        cause of <rdar://problem/5744037> Gmail out of memory (17455)
        
        If SubresourceLoader::create returned NULL, we would ref() / gcProtect()
        the XMLHttpRequest but think we hadn't, therefore never
        calling deref() / gcUnprotect().
        
        This could happen at gmail.com, since gmail.com attempts to send
        XMLHttpRequests from unload handlers in order to gather usage statistics.
        (According to comments in the code, SubresourceLoader::create returns
        NULL when called from an unload handler.)

        The solution is to ref() / gcProtect() only if SubresourceLoader::create
        doesn't return NULL. This make sense, since we only need to protect the
        request as long as it has an outstanding network transaction.
        
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::XMLHttpRequest):
        (WebCore::XMLHttpRequest::send):

2008-02-22  Mark Rowe  <mrowe@apple.com>

        Merge r30489 to Safari-3-1-branch.

    2008-02-22  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Anders.

        <rdar://problem/5760360> REGRESSION(r30376): Crash loading plugin page
        during stress test (after only 5 min) - null dereference

        Full-frame plug-ins create PluginStream objects without loaders, as the
        PluginView receives the loading callbacks. We were trying to call
        setDefersLoading on these null pointers.

        * plugins/PluginStream.cpp:
        (WebCore::PluginStream::startStream): Add null check.
        (WebCore::PluginStream::destroyStream): Same.
        (WebCore::PluginStream::deliverData): Same.

2008-02-22  Timothy Hatcher  <timothy@apple.com>

        Merge r30472 to Safari-3-1-branch.
                                                                                                       
    2008-02-21  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Fix for <rdar://problem/5757946>

        - Parse URLs before checking whether they are javascript: urls
          (which require security checks).

        * bindings/js/JSAttrCustom.cpp:
        (WebCore::JSAttr::setValue):
        * bindings/js/JSElementCustom.cpp:
        (WebCore::allowSettingSrcToJavascriptURL):
        * bindings/js/JSHTMLFrameElementCustom.cpp:
        (WebCore::allowSettingJavascriptURL):
        * bindings/js/JSHTMLIFrameElementCustom.cpp:
        (WebCore::JSHTMLIFrameElement::setSrc):

2008-02-22  Timothy Hatcher  <timothy@apple.com>

        <rdar://problem/5758900> REGRESSION (Ceto-Fireclaw): Margins/padding expand on
        hover for some headlines on The Huffington Post

        Roll out r29649.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::computeLogicalBoxHeights):
        (WebCore::InlineFlowBox::placeBoxesVertically):
        (WebCore::InlineFlowBox::shrinkBoxesWithNoTextChildren):
        * rendering/RenderObject.h:
        * rendering/bidi.cpp:
        (WebCore::inlineFlowRequiresLineBox):
        (WebCore::RenderBlock::findNextLineBreak):

2008-02-21  Mark Rowe  <mrowe@apple.com>

        Merge r30461 to Safari-3-1-branch.

    2008-02-21  Antti Koivisto  <antti@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/5753789>
        REGRESSION: 1.5% -2% Sunspider regression from r30009 (ebay photo upload hang)
        
        Ensure all versions of allowsAccessFrom are inlined to single functions. 
        This is a 2% win in browser hosted Sunspider. 

        * bindings/js/kjs_window.cpp:
        (KJS::Window::allowsAccessFrom):
        (KJS::Window::allowsAccessFromPrivate):
        * bindings/js/kjs_window.h:

2008-02-21  Mark Rowe  <mrowe@apple.com>

        Merge r30458 to Safari-3-1-branch.

    2008-02-21  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by David Harrison.
        
        Fixed <rdar://problem/5756125> REGRESSION: A crash occurs at 
        WebCore::Frame::scriptProxy() when completing a search with Package Tracker widget

        Test: fast/dom/script-element-without-frame-crash.html

        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::parseTag): Added back a NULL check that was
        accidentally removed in r30325.

2008-02-21  Mark Rowe  <mrowe@apple.com>

        Merge r30433 to Safari-3-1-branch.

    2008-02-20  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin and Geoff.

        - <rdar://problem/5754378> work around missing video on YouTube front page with a site-specific hack

        * WebCore.base.exp: Updated.

        * bindings/js/kjs_navigator.cpp:
        (WebCore::needsYouTubeQuirk): Added. Return true on Windows only when the quirk is needed.
        (WebCore::Navigator::getValueProperty): For the appVersion property, if needsYouTubeQuirk
        return true, then return the empty string.

        * page/Settings.cpp:
        (WebCore::Settings::Settings): Set m_needsSiteSpecificQuirks to false.
        (WebCore::Settings::setNeedsSiteSpecificQuirks): Added.
        * page/Settings.h: Added m_needsSiteSpecificQuirks.
        (WebCore::Settings::needsSiteSpecificQuirks): Added.

2008-02-20  Timothy Hatcher  <timothy@apple.com>

        Merge r30423 to Safari-3-1-branch.

    2008-02-20  Alexey Proskuryakov  <ap@webkit.org>

        Build fix.

        * xml/XMLHttpRequest.cpp:
        (WebCore::isSafeRequestHeader):
        (WebCore::XMLHttpRequest::setRequestHeader):

2008-02-20  Timothy Hatcher  <timothy@apple.com>

        Merge r30422 to Safari-3-1-branch.

    2008-02-20  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        <rdar://problem/5749455> Unable to set the Referer header in Dashboard using XMLHttpRequest

        Cannot be tested in DRT.

        * xml/XMLHttpRequest.cpp: (WebCore::canSetRequestHeader): Assume that a request that can load
        local files can also set any headers.

2008-02-18  Mark Rowe  <mrowe@apple.com>

        Merge r30395 to Safari-3-1-branch.

    2008-02-18  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin

        Fix for <rdar://5747529> - ObjC Exception can cause JSLock to never be released

        Test: platform/mac/plugins/webScriptObject-exception-deadlock.html

        * bindings/objc/WebScriptObject.mm:
        (-[WebScriptObject valueForKey:]): The line `resultObj = [super valueForKey:key];    // defaults to throwing an exception` 
          says it all - it throws an exception.  This method also happens to hold the JSLock.  Problematically, when the exeception
          is thrown and the method exited, the JSLock is never released.  Fix that without otherwise changing behavior by holding the 
          JSLock in two individual scopes - Right before the exception and right after.  

2008-02-18  Mark Rowe  <mrowe@apple.com>

        Merge r30392 to Safari-3-1-branch.

    2008-02-18  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix <rdar://problem/5736225> crash in svgFontAndFaceElementForFontData on digitalstrom.org/cms

        Test: fast/css/font-face-multiple-remote-sources.html

        * css/CSSFontFace.cpp:
        (WebCore::CSSFontFace::fontLoaded):
        * css/CSSSegmentedFontFace.cpp:
        (WebCore::CSSSegmentedFontFace::fontLoaded):

2008-02-18  Mark Rowe  <mrowe@apple.com>

        Merge r30389 to Safari-3-1-branch.

    2008-02-18  Stephanie Lewis  <slewis@apple.com>

        Reviewed by Adam.

        Remove workaround for <rdar://problem/5695848>.
        
        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::ResourceResponse::doUpdateResourceResponse):

2008-02-18  Mark Rowe  <mrowe@apple.com>

        Merge r30370 to Safari-3-1-branch.

    2008-02-18  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Darin.

        <rdar://problem/5744899> Crash in Flash when clicking "Yes" to abort
        slow script Flash 9 dialog at http://www.kidzui.com

        When navigating to a new page, we stop all outstanding PluginStreams.
        Flash hangs in the call to NPP_URLNotify. It eventually displays the
        "slow script" dialog, which relinquishes control to the system. While
        this dialog is running, the request we are in the process of cancelling
        completes, and we re-enter Flash to deliver the data. When the dialog
        is dismissed, the internal state of Flash has changed, and Flash
        crashes with a null dereference.

        To work around this, we can defer loading before entering plug-in code,
        so that even if a plug-in yields to the system, we won't get callbacks
        while we're handling a callback.

        * plugins/PluginStream.cpp:
        (WebCore::PluginStream::startStream): Defers loads while calling into
        plug-in.
        (WebCore::PluginStream::destroyStream): Same.
        (WebCore::PluginStream::deliverData): Same.
        (WebCore::PluginStream::didFail): Protect 'this' from deletion by
        destroyStream. Null out m_loader only after destroyStream returns.
        (WebCore::PluginStream::didFinishLoading): Same.

2008-02-17  Steve Falkenburg  <sfalken@apple.com>

        Build fix.

        * WebCore.vcproj/build-generated-files.sh:

2008-02-17  Mark Rowe  <mrowe@apple.com>

        Merge r30331 to Safari-3-1-branch.

    2008-02-15  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin

        Fix for <rdar://problem/5727175> and <rdar://problem/5740495> - Database threads and callback scripts can run after
        a page has closed or loaded a new document

        Deciding to make the Database I/O semantic the same as loaders/XHR when a document is shut down, this patch implements
        a policy of shutting down the databases in a document at the same time.  This includes removing all pending transactions 
        in a database, cutting off an queued statements in the current transaction, and preventing further callbacks from being
        made.

        No new layout tests with this patch as the current layout tests were catching this issue in a plethora of ways already
        (crashing, unexpected exceptions and output, etc)

        * dom/Document.cpp:
        (WebCore::Document::~Document): Don't actually stop the database thread here - it better have been stopped already.
          Add an assertion to that effect.
        (WebCore::Document::addOpenDatabase): Add a new database handle to this Document's open database set
        (WebCore::Document::removeOpenDatabase): Remove such a handle
        (WebCore::Document:: stopDatabases): Call "close" on all open Database handles for this document
        * dom/Document.h:

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::stopLoading): In addition to canceling all resource loads and XHRs, stop all database I/O

        * platform/MessageQueue.h:
        (WebCore::MessageQueue::killed): 

        * platform/sql/SQLiteTransaction.cpp:
        (WebCore::SQLiteTransaction::stop): Added.  Explicit stop to cut off a transaction so it won't try anymore SQL activity
        * platform/sql/SQLiteTransaction.h:

        * storage/Database.cpp:
        (WebCore::Database::Database):
        (WebCore::Database::~Database):
        (WebCore::Database::markAsDeletedAndClose): Check if the thread has terminated before committing to waiting on the
          thread.
        (WebCore::Database::stop):  Stop this database, including all queued transactions and callbacks
        * storage/Database.h:
        (WebCore::Database::stopped):

        * storage/DatabaseThread.cpp:
        (WebCore::DatabaseThread::terminationRequested):
        * storage/DatabaseThread.h:

        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::executeSQL): Throw an exception if a new executeSQL comes in after a database is closed
        (WebCore::SQLTransaction::checkAndHandleClosedDatabase): Added.  Clears queued statements and clear the next step
          when the database has been closed since the last step/callback was run.  Also stops the current SQLite transaction,
          if any
        (WebCore::SQLTransaction::performNextStep):
        (WebCore::SQLTransaction::performPendingCallback):
        * storage/SQLTransaction.h:

2008-02-17  Mark Rowe  <mrowe@apple.com>

        Merge r30330 to Safari-3-1-branch.

    2008-02-15  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        Fix for <rdar://problem/5745072> REGRESSION (r29348): Shift + Tab does not change indent level on Google Docs

        The immediate cause of this bug was that we stopped sending keypress events for the tab key when it is used to advance focus.
        We had a special case for forward-tab in designMode, where the default behavior was to insert a tab key (or respect the keypress handler behavior).
        This change makes the shift-tab behavior match the forward-tab behavior.

        If the site had put their event handler (which does the indenting) on the keydown event, then this problem would have been avoided.
        This is something we should look into and maybe advise the site on in the future.  However, it's a low-risk change to just make tab and shift-tab uniform 
        in this respect, so I think this is the way to go for right now.

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

2008-02-17  Mark Rowe  <mrowe@apple.com>

        Merge r30329 to Safari-3-1-branch.

    2008-02-15  Anders Carlsson  <andersca@apple.com>

        Reviewed by Alice.

        <rdar://problem/5738678>
        REGRESSION: "Loading" status remains when uploading file to .Mac iDisk via Safari
        
        Use the new CFNetwork functions for setting body parts.
        
        * platform/network/cf/FormDataStreamCFNet.cpp:
        (WebCore::setHTTPBody):
        (WebCore::httpBodyFromRequest):

2008-02-17  Mark Rowe  <mrowe@apple.com>

        Merge r30328 to Safari-3-1-branch.

    2008-02-15  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Anders Carlsson.
        
        Fixed <rdar://problem/5725429> REGRESSION (r27898): Greenfield online
        surveys no longer work due to XMLHttpRequest exceptions
        
        Reverted some exception throwing code from r12194.
        
        To comply with the W3C draft spec, we used to throw an exception when
        trying to access responseText and responseXML at the wrong time, but
        that turned out to be a compatibility problem.
        
        Now, matching Firefox and previous versions of WebKit, we never throw
        an exception when accessing responseText or responseXML.
        
        See http://www.mail-archive.com/public-webapi@w3.org/msg02756.html.

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::getResponseText):
        (WebCore::XMLHttpRequest::getResponseXML):

2008-02-17  Mark Rowe  <mrowe@apple.com>

        Merge r30326 to Safari-3-1-branch.

    2008-02-15  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/5738768> REGRESSION (r30062): Crash in InlineTextBox::isLineBreak() when Undoing a replace
        
        Rolled out <http://trac.webkit.org/projects/webkit/changeset/29667>

        * editing/SelectionController.cpp:
        (WebCore::SelectionController::nodeWillBeRemoved):

2008-02-17  Mark Rowe  <mrowe@apple.com>

        Merge r30325 to Safari-3-1-branch.

    2008-02-15  Alice Liu  <alice.liu@apple.com>

        Reviewed by Darin.

        Fixed <rdar://problem/5741440> REGRESSION (r28496): After deactivating JavaScript, scripts embedded in the HTML page continue to run
     
        Before this patch, Frame::scriptProxy() would only return null in the case that javascript was 
        disabled and if the script proxy field wasn't set (which would only be the case if the window 
        hasn't loaded anything yet).  Not all callers of scriptProxy() always check for a non-null return 
        value.  Those that did check would effectively be checking if javascript was enabled before proceeding.
        This fix consists of 2 elements: first, make sure that scriptProxy() will never return null, regardless 
        of whether javascript is disabled.  This will mean that callers who don't check for null won't crash.  
        Second, callers who did check for null now instead check for javascript being disabled.  This means that 
        code paths intended for preventing javascript from being run will be making the correct check.  Another
        minor addition to this patch is that I added a function on Frame to be a shortcut for checking if javascript
        is enabled. 

        * bindings/js/JSCustomSQLStatementCallback.cpp:
        (WebCore::JSCustomSQLStatementCallback::handleEvent):
        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
        (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
        * bindings/js/JSCustomSQLTransactionCallback.cpp:
        (WebCore::JSCustomSQLTransactionCallback::handleEvent):
        * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
        (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
        * bindings/js/JSCustomVoidCallback.cpp:
        (WebCore::JSCustomVoidCallback::handleEvent):
        * bindings/js/JSCustomXPathNSResolver.cpp:
        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute):
        * bindings/js/kjs_events.cpp:
        (WebCore::JSAbstractEventListener::handleEvent):
        (WebCore::JSLazyEventListener::parseCode):
        * bindings/js/kjs_html.cpp:
        (WebCore::runtimeObjectImplementsCall):
        * bindings/js/kjs_proxy.cpp:
        (WebCore::KJSProxy::isEnabled):
        * bindings/js/kjs_proxy.h:
        * bindings/js/kjs_window.cpp:
        (KJS::Window::retrieveWindow):
        (KJS::Window::retrieve):
        * dom/Document.cpp:
        (WebCore::Document::createHTMLEventListener):
        * dom/EventTarget.cpp:
        (WebCore::EventTarget::dispatchGenericEvent):
        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::createNPObject):
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::evaluateScript):
        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::parseTag):
        (WebCore::HTMLTokenizer::processToken):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::executeScript):
        (WebCore::FrameLoader::userGestureHint):
        (WebCore::FrameLoader::open):
        (WebCore::FrameLoader::dispatchWindowObjectAvailable):
        (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
        * manual-tests/disable-javascript-reload.html: Added.
        * page/Frame.cpp:
        (WebCore::Frame::scriptProxy):
        (WebCore::Frame::bindingRootObject):
        (WebCore::Frame::windowScriptNPObject):
        * page/Frame.h:
        * page/InspectorController.cpp:
        (WebCore::canPassNodeToJavaScript):
        * page/mac/FrameMac.mm:
        (WebCore::Frame::windowScriptObject):
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::SVGDocumentExtensions::createSVGEventListener):

2008-02-17  Mark Rowe  <mrowe@apple.com>

        Merge r30323 to Safari-3-1-branch.

    2008-02-15  Dan Bernstein  <mitz@apple.com>

        Reviewed by Alexey Proskuryakov.

        - WebCore part of fixing http://bugs.webkit.org/show_bug.cgi?id=17360
          <rdar://problem/5743131> REGRESSION: mp4 file downloaded from server is downloaded as html

        Test: http/tests/loading/text-content-type-with-binary-extension.html

        Refined the workaround for <rdar://problem/5321972> to exclude files
        with extensions that are known to be associated with binary MIME types.

        * WebCore.xcodeproj/project.pbxproj: Added WebCoreURLResponse.{h,mm}.
        * platform/network/mac/ResourceResponseMac.mm:
        (WebCore::ResourceResponse::doUpdateResourceResponse): Moved the
        workaround logic into WebCoreURLResponse.
        * platform/network/mac/WebCoreURLResponse.h: Added.
        * platform/network/mac/WebCoreURLResponse.mm: Added.
        (createBinaryExtensionsSet): Returns a set of extensions known to
        belong to MIME types of binary data.
        (-[NSURLResponse _webcore_MIMEType]):
        (-[NSHTTPURLResponse _webcore_MIMEType]): Forces the MIME type from
        application/octet-stream to text/plain if that is the specified
        Content-Type, unless the extension is in the binary extensions set.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30285 to Safari-3-1-branch.

    2008-02-15  Adam Roben  <aroben@apple.com>

        * bindings/scripts/CodeGenerator.pm: Touch this to force bindings to
        regenerate.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30269 to Safari-3-1-branch.

    2008-02-14  Adam Roben  <aroben@apple.com>

        Conditionalize cross-document messaging support

        The cross-document messaging parts of HTML 5 are in flux and we want
        ports to be able to turn off the support as needed.

        Note that the support is turned off by default right now. A subsequent
        commit will turn it on by default.

        Reviewed by Darin.

        * GNUmakefile.am:
        * WebCore.vcproj/build-generated-files.sh:
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::customGetOwnPropertySlot):
        * bindings/js/JSEventCustom.cpp:
        (WebCore::toJS):
        * dom/Event.cpp:
        (WebCore::Event::isMessageEvent):
        * dom/Event.h:
        * dom/MessageEvent.cpp:
        * dom/MessageEvent.h:
        * dom/MessageEvent.idl:
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::postMessage):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30240 to Safari-3-1-branch.

    2008-02-14  Ada Chan  <adachan@apple.com>

        <rdar://problem/5744728> Fix leaks of RegularExpression objects in Frame.cpp.
        
        Reviewed by Jon and Darin.

        * page/Frame.cpp:
        (WebCore::createRegExpForLabels):
        (WebCore::Frame::searchForLabelsBeforeElement):
        (WebCore::Frame::matchLabelsAgainstElement):

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30239 to Safari-3-1-branch.

    2008-02-14  Stephanie Lewis  <slewis@apple.com>

        Reviewed by Geoff.

        Update order files.

        * WebCore.order:

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30238 to Safari-3-1-branch.

    2008-02-14  Oliver Hunt  <oliver@apple.com>

        Reviewed by Geoff G and Weinig.

        <rdar://problem/5726608> REGRESSION (r29428): Assigning to window.status does not update status bar

        Revert the portions of r29428 responsible for breaking the ability to
        set window.status

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::setStatus):
        (WebCore::DOMWindow::defaultStatus):
        (WebCore::DOMWindow::setDefaultStatus):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30237 to Safari-3-1-branch.

    2008-02-14  Anders Carlsson  <andersca@apple.com>

        Reviewed by Darin.

        <rdar://problem/5721790>
        Crash in WebCore::DeprecatedString::operator= + 31 at news.google.com
        
        Use pointers in the cache map tables. Otherwise when we rehash, 
        we will end up destroying Cache objects that node lists might point to.
        
        * dom/Node.cpp:
        (WebCore::NodeListsNodeData::~NodeListsNodeData):
        (WebCore::Node::getElementsByName):
        (WebCore::Node::getElementsByClassName):

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30233 to Safari-3-1-branch.

    2008-02-14  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5743768> A deadlock during storage layout tests

        Make sure not to hold the m_openDatabaseMapGuard mutex when calling
        Database::markAsDeletedAndClose(), since that can cause a deadlock
        during the synchronous DatabaseThread call it triggers.

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::deleteDatabaseFile):

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30222 to Safari-3-1-branch.

    2008-02-13  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Oliver Hunt.

        Fixes the editing/deleting/5729680.html failure.  It succeeds when run by itself
        but fails when run with other tests because FramePrivate's m_selectionGranularity
        isn't reset when a Frame receives a new document.  It was also uninitialized in
        the constructor.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::clear): Initialize m_selectionGranularity.
        * page/Frame.cpp:
        (WebCore::FramePrivate::FramePrivate): Ditto.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30218 to Safari-3-1-branch.

    2008-02-13  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Anders.

        <rdar://problem/5739282> Hangs after closing video trailer popup with
        VLC plugin

        VLC hangs on NPP_Destroy if we call NPP_SetWindow with a null window
        handle.

        * plugins/PluginQuirkSet.h: Added new quirk
        PluginQuirkDontSetNullWindowHandleOnDestroy.
        (WebCore::):
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginView::stop): Selectively call NPP_SetWindow.
        (WebCore::PluginView::determineQuirks): Set new quirk for VLC plug-in.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30213 to Safari-3-1-branch.

    2008-02-13  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Adam Roben.

        <rdar://problem/5729680> REGRESSION (r27873): Removing the last character of a word in Mail or Safari also removes the following space
        
        * editing/Editor.cpp:
        (WebCore::Editor::deleteWithDirection): Fixed a typo.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30195 to Safari-3-1-branch.

    2008-02-13  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        <rdar://problem/5740042> Database termination issues

        Test: storage/close-during-stress-test.html

        * dom/Document.cpp:
        (WebCore::Document::databaseThread):
        * dom/Document.h:
        Don't re-create the database thread if it has been already terminated.

        * storage/Database.h: (WebCore::Database::document): Changed m_database to a RefPtr to avoid
        having a hanging reference.

        * storage/DatabaseThread.cpp:
        (WebCore::DatabaseThread::requestTermination):

        * storage/SQLTransaction.cpp: (WebCore::SQLTransaction::~SQLTransaction): Removed logging.
        Transactions are deleted during GC, so it's usually not importatnt to know when it happens.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30189 to Safari-3-1-branch.

    2008-02-12  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Brady Eidson.

        <rdar://problem/5652560> Can't delete database if the website that
        uses it has been opened in this session

        Close the Database on the database thread before deleting the file.
        Tested and works on Windows and Mac.

        * platform/sql/SQLiteDatabase.cpp:
        (WebCore::SQLiteDatabase::close): Assert we are on the opening thread.
        * storage/Database.cpp:
        (WebCore::Database::markAsDeletedAndClose): Unschedule any pending
        Database tasks, and start and imediate DatabaseCloseTask.
        (WebCore::Database::close): Close the SQLDatabase.
        * storage/Database.h: Renamed markAsDeleted to markAsDeletedAndClose.
        * storage/DatabaseTask.cpp:
        (WebCore::DatabaseCloseTask::DatabaseCloseTask): New task.
        (WebCore::DatabaseCloseTask::doPerformTask): Call close on the Database.
        (WebCore::DatabaseCloseTask::debugTaskName): Return "DatabaseCloseTask".
        * storage/DatabaseTask.h: Add DatabaseCloseTask.
        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::deleteDatabaseFile): Call the renamed
          markAsDeletedAndClose.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30184 to Safari-3-1-branch.

    2008-02-12  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler

        Fix for <rdar://problem/5737692> - Database API needs to support SuccessCallback

        Layout tests will come shortly with a mess of DRT changes

        * platform/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::SecurityOrigin): Standardize on "empty string" instead of null string
          as different paths of constructing a SecurityOrigin were causing different hashes for the "same"
          SecurityOrigin

        * storage/Database.cpp:
        (WebCore::Database::changeVersion): Pass in the successCallback
        (WebCore::Database::transaction): Ditto

        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::SQLTransaction):
        (WebCore::SQLTransaction::debugStepName):
        (WebCore::SQLTransaction::performNextStep): Update ASSERTs for the new valid steps
        (WebCore::SQLTransaction::performPendingCallback): Ditto
        (WebCore::SQLTransaction::postflightAndCommit): Schedule the success callback if it exists - otherwise
          skip straight to cleanupAfterSuccessCallback()
        (WebCore::SQLTransaction::deliverSuccessCallback): Deliver success callback on the main thread, then
          schedule cleanupAfterSuccessCallback()
        (WebCore::SQLTransaction::cleanupAfterSuccessCallback): Cleanup and end the transaction
        (WebCore::SQLTransaction::handleTransactionError):
        (WebCore::SQLTransaction::deliverTransactionErrorCallback):
        (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
        * storage/SQLTransaction.h:

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30179 to Safari-3-1-branch.

    2008-02-12  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben.

        - fix http://bugs.webkit.org/show_bug.cgi?id=17041
          <rdar://problem/5709660> Eastern Asian fonts do not display without specific box in Control Panel

        Revised the system fallback font lookup logic to use MLang font linking
        again. To avoid reintroducing bug 16548 and <rdar://problem/5280188>,
        for CJK characters, try linking based on a single code page at a time,
        starting with the user's default code page (if it is one of the CJK
        code pages) followed by the other CJK code pages in a prescribed order
        that matches what Firefox does.

        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::getCJKCodePageMasks): Added. Returns the search order for CJK
        code pages, with the user's default code page first.
        (WebCore::currentFontContainsCharacter): Factored out of
        getFontDataForCharacters().
        (WebCore::createMLangFont): Ditto.
        (WebCore::FontCache::getFontDataForCharacters):

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30174 to Safari-3-1-branch.

    2008-02-12  Dan Bernstein  <mitz@apple.com>

        Reviewed by Timothy Hatcher.

        - <rdar://problem/5738175> Remove workaround for <rdar://problem/5539388> from post-Tiger builds

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::setShadow):

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30173 to Safari-3-1-branch.

    2008-02-12  Brady Eidson  <beidson@apple.com>

        Release build fix

        * storage/DatabaseTask.cpp:

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30172 to Safari-3-1-branch.

    2008-02-12  Alexey Proskuryakov <ap@webkit.org> and Brady Eidson <beidson@apple.com>

        Reviewed by Brady.

        http://bugs.webkit.org/show_bug.cgi?id=17177
        <rdar://problem/5729619> Storage tasks are getting lost

        <rdar://problem/5729445> REGRESSION: Cannot schedule more than one transaction at a time

        <rdar://problem/5729446> Major thread safety issue in Database code

        * platform/MessageQueue.h: Added a thread-safe queue abstraction.

        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        Added MessageQueue.h.

        * dom/Document.cpp:
        (WebCore::Document::~Document): Fixed a race condition resulting in a hanging reference.

        * storage/Database.idl: Fixed parameter declarations to actually match implementation
        (which is custom, so it got out of sync).

        * storage/DatabaseTask.h:
        (WebCore::DatabaseTask::database):
        (WebCore::DatabaseTransactionTask::transaction):
        Changed tasks to hold more information internally. Added helpers for better debug logging.

        * storage/DatabaseTask.cpp:
        (WebCore::DatabaseTask::DatabaseTask):
        (WebCore::DatabaseTask::performTask):
        (WebCore::DatabaseOpenTask::DatabaseOpenTask):
        (WebCore::DatabaseOpenTask::doPerformTask):
        (WebCore::DatabaseOpenTask::debugTaskName):
        (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
        (WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
        (WebCore::DatabaseTransactionTask::doPerformTask):
        (WebCore::DatabaseTransactionTask::debugTaskName):
        (WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
        (WebCore::DatabaseTableNamesTask::doPerformTask):
        (WebCore::DatabaseTableNamesTask::debugTaskName):
        Implementation for the above.

        (WebCore::DatabaseTask::lockForSynchronousScheduling):
        (WebCore::DatabaseTask::waitForSynchronousCompletion):
        Fixed a potential race condition: if the task completed before we entered a wait, we'd never
        wake up. There was an assertion guarding against this, but no actual guarantee that I could see.

        * storage/DatabaseThread.cpp:
        (WebCore::DatabaseThread::DatabaseThread):
        (WebCore::DatabaseThread::requestTermination):
        (WebCore::DatabaseThread::databaseThread):
        (WebCore::DatabaseThread::scheduleTask):
        (WebCore::DatabaseThread::scheduleImmediateTask):
        (WebCore::DatabaseThread::unscheduleDatabaseTasks):
        * storage/DatabaseThread.h:
        Changed to use MessageQueue.

        * storage/Database.cpp:
        (WebCore::guidMutex):
        (WebCore::guidToVersionMap):
        (WebCore::guidToDatabaseMap):
        (WebCore::Database::openDatabase):
        (WebCore::Database::Database):
        (WebCore::Database::~Database):
        (WebCore::Database::openAndVerifyVersion):
        (WebCore::guidForOriginAndName):
        (WebCore::Database::changeVersion):
        (WebCore::Database::transaction):
        (WebCore::Database::scheduleTransaction):
        (WebCore::Database::scheduleTransactionStep):
        (WebCore::Database::scheduleTransactionCallback):
        (WebCore::Database::version):
        (WebCore::Database::deliverPendingCallback):
        (WebCore::Database::tableNames):
        * storage/Database.h:
        Changed m_transactionQueue to a MessageQueue.
        Got rid of callback tracking - these can take care of themselves.
        Got rid of a DatabaseThread member, as the Document can be asked for it.
        Moved private static members and helpers out of the header.
        Lost CurrentThreadSetter debug helper on the way. We may need to re-add something like that later.

        * storage/SQLTransaction.h:
        * storage/SQLTransaction.cpp: Added a lot of debug logging.
        (WebCore::SQLTransaction::scheduleToRunStatements): Removed "m_currentStatement = 0" assignment,
        as it created a race condition. Everything seems to work better without it, although a real fix
        would be to get rid of this variable - it's evil shared data that isn't even protected in any way.

        * manual-tests/database-threading-stress-test-2.html: Added.
        * manual-tests/database-threading-stress-test.html: Added.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30171 to Safari-3-1-branch.

    2008-02-12  Adam Roben  <aroben@apple.com>

        Fix Bug 17328: REGRESSION (r30147): Inspector is unstyled on Windows

        <http://bugs.webkit.org/show_bug.cgi?id=17328>
        <rdar://5737946>

        Reviewed by Mitz.

        Test: fast/loader/local-css-allowed-in-strict-mode.html

        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::ResourceResponse::doUpdateResourceResponse): Add a case for
        .css files.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30162 to Safari-3-1-branch.

    2008-02-11  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=17320
          <rdar://problem/5736953> :last-child does not set the "uses sibling rules" flag

        Test: fast/css/last-child-style-sharing.html

        * css/CSSGrammar.y: Changed to call setUsesSiblingRules(true) for all
        CSS3 selectors that require it.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30157 to Safari-3-1-branch.

    2008-02-11  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin Adler.

        Make the cross-domain security model more closely match Firefox by always returning the
        native built-in functions when accessing functions cross-domain.

        Fixes for:
        <rdar://problem/5735497> Match Firefox's cross-domain model more accurately by return the built-in version of functions even if they have been overridden
        <rdar://problem/5735443> Crash when setting the Window objects prototype to a custom Object and then calling a method on it

        Tests: fast/dom/Window/window-custom-prototype-crash.html
               fast/dom/Window/window-function-frame-getter-precedence.html
               http/tests/security/cross-frame-access-get-override.html
               http/tests/security/cross-frame-access-location-get-override.html
               http/tests/security/cross-frame-access-location-get.html
               http/tests/security/cross-frame-access-location-put.html

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::customGetOwnPropertySlot):
        - Return the native-built in version of an cross-domain allowed function (eg. window.focus) whether or
          not it has been overridden, instead of undefined.
        - When doing findEntry lookup, use the the tables directly (JSDOMWindowPrototype::info.propHashTable) 
          instead of calling the virtual classInfo() method to avoid the unnecessary overhead.
        - Allow access to the native toString function cross-domain.  It always returns "[object Window]".
        - Use the new nonCachingStaticFunctionGetter when return allowed functions cross-frame so that
          the function an overridden function is not inadvertantly returned from the PropertyMap.\

        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::customGetOwnPropertySlot):
        - Implement the same model as described above for the History object, always returning the
          native built-in function cross-domain.
        - Allow access to the native toString function cross-domain.
        - Clean up the code to make it clear that the custom functionality is only there for cross-domain
          access.

        * bindings/js/JSLocation.cpp:
        (WebCore::JSLocation::getOwnPropertySlot):
        - Match the generated classes by moving all the custom logic into a separate customGetOwnPropertySlot
          function.  This will help moving to a generated class in the future.
        (WebCore::JSLocation::customGetOwnPropertySlot):
        - Implement the same model as described above for the Location object, always returning the
          native built-in function cross-domain.
        - Clean up the code to make it clear that the custom functionality is only there for cross-domain
          access.
        (WebCore::JSLocation::put):
        (WebCore::JSLocation::deleteProperty):
        (WebCore::JSLocation::getPropertyNames):
        * bindings/js/JSLocation.h:
        - Clean up to match the rest of the file a little better.

        * bindings/js/kjs_binding.cpp:
        (WebCore::allowsAccessFromFrame):
        (WebCore::printErrorMessageForFrame):
        (WebCore::nonCachingStaticFunctionGetter):
        (WebCore::objectToStringFunctionGetter):
        * bindings/js/kjs_binding.h:
        - Put common functionality related to cross-domain access here to serve as a central shared point.
          This includes moving and augmenting the allowsAccessFromFrame method that was in both JSHistoryCustom.cpp
          and JSLocation.cpp.

        * bindings/js/kjs_dom.cpp:
        (WebCore::checkNodeSecurity):
        - Use the new allowsAccessFromFrame method.

        * bindings/js/kjs_window.cpp:
        (KJS::Window::childFrameGetter): Cleanup.
        (KJS::Window::namedItemGetter): Cleanup.
        (KJS::Window::getOwnPropertySlot):
        - Do the prototype lookup early to match Firefox in having function lookup have a higher precedence
          than the index or shortcut name getters.
        - Cleanup function to make it more understandable and slightly more efficient.
        (KJS::Window::allowsAccessFrom):
        - Add a new variant of this method that takes a reference to a String, which, on failure, will
          contain the error message to print out.  The caller can then pass this to printErrorMessage.
          This allows for code to check allowsAccessFrom and act on the result without printing out the
          error message. For convenience, a version with out the String parameter has been left which 
          prints out the message automatically.
        (KJS::Window::printErrorMessage):
        * bindings/js/kjs_window.h:

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30154 to Safari-3-1-branch.

    2008-02-11  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Brady Eidson.

        <rdar://problem/5733069> Many m_quotaMap uses do not hold the m_quotaMapGuard

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::hasEntryForOrigin): Hold m_quotaMapGuard when using m_quotaMap.
        (WebCore::DatabaseTracker::origins): Ditto.
        (WebCore::DatabaseTracker::setQuota): Ditto.
        (WebCore::DatabaseTracker::deleteAllDatabases): Call origins() and itterate over the
        origins to call deleteOrigin().
        (WebCore::DatabaseTracker::deleteOrigin): Hold m_quotaMapGuard when using m_quotaMap.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30153 to Safari-3-1-branch.

    2008-02-11  David Hyatt  <hyatt@apple.com>

        Fix for bug 17286, crash accessing a null RenderStyle.  Add a simple null check.

        Reviewed by aroben

        Added fast/css/empty-generated-content.html

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkOneSelector):

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30146 to Safari-3-1-branch.

    2008-02-11  Adam Roben  <aroben@apple.com>

        Fix Bug 14316: Inspector's Console truncates long strings

        <http://bugs.webkit.org/show_bug.cgi?id=14316>
        <rdar://5357695>

        We no longer call Object.describe to format all the output of commands
        enetered into the Console. The ConsolePanel object now has a set of
        formatting functions that append a formatted representation of the
        passed-in object to the passed-in container node.

        Reviewed by Sam.

        * page/inspector/ConsolePanel.js:
        (WebInspector.ConsolePanel._onEnterPressed): Updated for rename of
        _outputToNode to _format.
        (WebInspector.ConsolePanel._format): Renamed from _outputToNode. Use
        Object.type to get the type of the object, then call the appropriate
        formatting function.
        (WebInspector.ConsolePanel._formatvalue): Added.
        (WebInspector.ConsolePanel._formatstring): Added. This function
        contains the actual fix for the bug, since it doesn't truncate the
        string no matter how long it is.
        (WebInspector.ConsolePanel._formatregexp): Added.
        (WebInspector.ConsolePanel._formatarray): Added. This is a bit more
        functional than Object.describe for arrays, since it recursively
        formats each item in the array. One advantage of this is that Nodes in
        arrays will be linkified instead of just turning into "[Object
        HTMLBodyElement]" or similar.
        (WebInspector.ConsolePanel._formatnode): Added.
        (WebInspector.ConsolePanel._formatobject): Added.
        (WebInspector.ConsolePanel.
        * page/inspector/utilities.js:
        (Object.type): Added. Code was pulled out of Object.describe and
        reorganized slightly.
        (Object.describe): Call Object.type. There should be no change in
        behavior of this function.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30116 to Safari-3-1-branch.

    2008-02-09  David Hyatt  <hyatt@apple.com>

        Fix for bug 17254, nth-* selectors do not work with negative coefficients.

        Reviewed by Mitz.

        fast/css/negative-nth-child.html

        * css/CSSStyleSelector.cpp:
        (WebCore::parseNth):

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30112 to Safari-3-1-branch.

    2008-02-09  David Hyatt  <hyatt@apple.com>

        Fix for bug 17203, high CPU usage loading HTML5 spec.  This patch significantly improves the performance
        of CSS3 selectors.

        (1) Split the notion of being affected by positional rules into "forward" and "backward."  The "forward"
        selectors do not need to re-resolve during parsing, since children are appended on the end.  Only the
        "backward" selectors like last-child or nth-last-child have to re-resolve when a close tag is encountered.

        (2) Extend childrenChanged to specify whether the children were changed by the parser or not.  This allows
        Element::childrenChanged to know when the parser is adding children so that it can ignore those adds when
        possible.

        (3) Make sure all Elements now know whether or not their children are currently parsing.  Backwards selectors
        like last-child will always return false when children are still being parsed.  When an Element finishes
        parsing its children, finishParsingChildren() gets called and will make sure the children re-resolve properly.

        (4) Added a beginParsingChildren method and renamed finishParsing to finishedParsingChildren.

        (5) Eliminated one-off hacks that did the same thing in HTMLObjectElement and HTMLAppletElement.

        (6) Patched many incorrect implementations of finishedParsingChildren that did not properly call into their
        base class (mostly new SVG elements that got added for SVG fonts around the time this became a requirement).

        Reviewed by Eric

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkSelector):
        (WebCore::CSSStyleSelector::checkOneSelector):
        * dom/Attr.cpp:
        (WebCore::Attr::childrenChanged):
        * dom/Attr.h:
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::addChild):
        * dom/Document.cpp:
        (WebCore::Document::childrenChanged):
        * dom/Document.h:
        * dom/Element.cpp:
        (WebCore::Element::Element):
        (WebCore::Element::recalcStyle):
        (WebCore::checkFirstChildRules):
        (WebCore::checkLastChildRules):
        (WebCore::checkEmptyRules):
        (WebCore::checkStyleRules):
        (WebCore::Element::childrenChanged):
        (WebCore::Element::finishParsingChildren):
        * dom/Element.h:
        (WebCore::Element::finishedParsingChildren):
        (WebCore::Element::beginParsingChildren):
        * dom/Node.cpp:
        * dom/Node.h:
        (WebCore::Node::finishParsingChildren):
        (WebCore::Node::beginParsingChildren):
        (WebCore::Node::childrenChanged):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::StyledElement):
        * dom/StyledElement.h:
        * dom/XMLTokenizer.cpp:
        (WebCore::XMLTokenizer::startElementNs):
        (WebCore::XMLTokenizer::endElementNs):
        (WebCore::):
        * html/HTMLAppletElement.cpp:
        (WebCore::HTMLAppletElement::HTMLAppletElement):
        (WebCore::HTMLAppletElement::finishParsingChildren):
        * html/HTMLAppletElement.h:
        * html/HTMLElementFactory.cpp:
        (WebCore::objectConstructor):
        * html/HTMLGenericFormElement.cpp:
        (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
        * html/HTMLGenericFormElement.h:
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::HTMLObjectElement):
        (WebCore::HTMLObjectElement::finishParsingChildren):
        (WebCore::HTMLObjectElement::childrenChanged):
        * html/HTMLObjectElement.h:
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::childrenChanged):
        * html/HTMLOptGroupElement.h:
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::childrenChanged):
        * html/HTMLOptionElement.h:
        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::insertNode):
        (WebCore::HTMLParser::pushBlock):
        (WebCore::HTMLParser::popOneBlockCommon):
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::childrenChanged):
        (WebCore::HTMLScriptElement::finishParsingChildren):
        * html/HTMLScriptElement.h:
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::childrenChanged):
        * html/HTMLSelectElement.h:
        * html/HTMLStyleElement.cpp:
        (WebCore::HTMLStyleElement::finishParsingChildren):
        (WebCore::HTMLStyleElement::childrenChanged):
        * html/HTMLStyleElement.h:
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::childrenChanged):
        * html/HTMLTextAreaElement.h:
        * html/HTMLTitleElement.cpp:
        (WebCore::HTMLTitleElement::childrenChanged):
        * html/HTMLTitleElement.h:
         * rendering/RenderApplet.cpp:
        (WebCore::RenderApplet::createWidgetIfNecessary):
        * rendering/RenderPartObject.cpp:
        (WebCore::RenderPartObject::updateWidget):
        * rendering/RenderStyle.cpp:
        (WebCore::RenderStyle::RenderStyle):
        * rendering/RenderStyle.h:
        (WebCore::RenderStyle::childrenAffectedByForwardPositionalRules):
        (WebCore::RenderStyle::setChildrenAffectedByForwardPositionalRules):
        (WebCore::RenderStyle::childrenAffectedByBackwardPositionalRules):
        (WebCore::RenderStyle::setChildrenAffectedByBackwardPositionalRules):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::finishParsingChildren):
        * svg/SVGAnimationElement.h:
        * svg/SVGClipPathElement.cpp:
        (WebCore::SVGClipPathElement::childrenChanged):
        * svg/SVGClipPathElement.h:
        * svg/SVGDefinitionSrcElement.cpp:
        (WebCore::SVGDefinitionSrcElement::childrenChanged):
        * svg/SVGDefinitionSrcElement.h:
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::finishParsingChildren):
        * svg/SVGElement.h:
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::childrenChanged):
        * svg/SVGFontFaceElement.h:
        * svg/SVGFontFaceFormatElement.cpp:
        (WebCore::SVGFontFaceFormatElement::childrenChanged):
        * svg/SVGFontFaceFormatElement.h:
        * svg/SVGFontFaceSrcElement.cpp:
        (WebCore::SVGFontFaceSrcElement::childrenChanged):
        * svg/SVGFontFaceSrcElement.h:
        * svg/SVGFontFaceUriElement.cpp:
        (WebCore::SVGFontFaceUriElement::childrenChanged):
        * svg/SVGFontFaceUriElement.h:
        * svg/SVGGElement.cpp:
        (WebCore::SVGGElement::childrenChanged):
        * svg/SVGGElement.h:
        * svg/SVGGradientElement.cpp:
        (WebCore::SVGGradientElement::childrenChanged):
        * svg/SVGGradientElement.h:
        * svg/SVGMarkerElement.cpp:
        (WebCore::SVGMarkerElement::childrenChanged):
        * svg/SVGMarkerElement.h:
        * svg/SVGMaskElement.cpp:
        (WebCore::SVGMaskElement::childrenChanged):
        * svg/SVGMaskElement.h:
        * svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::childrenChanged):
        * svg/SVGPatternElement.h:
        * svg/SVGStyleElement.cpp:
        (WebCore::SVGStyleElement::finishParsingChildren):
        (WebCore::SVGStyleElement::childrenChanged):
        * svg/SVGStyleElement.h:
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::childrenChanged):
        * svg/SVGStyledElement.h:
        * svg/SVGTitleElement.cpp:
        (WebCore::SVGTitleElement::childrenChanged):
        * svg/SVGTitleElement.h:
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::childrenChanged):
        * svg/SVGUseElement.h:

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30104 to Safari-3-1-branch.

    2008-02-08  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Brady Eidson.

        <rdar://problem/5640896> Removing database then trying
        to recreate it causes trouble

        Added open Database support to DatabaseTracker. So any Database that 
        is deleted will be marked as deleted and will fail to open any transaction
        or execute any new SQL queries.

        * storage/Database.cpp:
        (WebCore::Database::Database): Call DatabaseTracker::addOpenDatabase.
        (WebCore::Database::~Database): Call DatabaseTracker::removeOpenDatabase.
        (WebCore::Database::markAsDeleted): Set the m_deleted flag.
        (WebCore::Database::version): Return a null String if m_deleted is true.
        * storage/Database.h:
        (WebCore::Database::deleted): Return m_deleted.
        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::addOpenDatabase): Add the Database to a map of origins and names.
        (WebCore::DatabaseTracker::removeOpenDatabase): Remove the Database from the map.
        (WebCore::DatabaseTracker::deleteDatabaseFile): Call markAsDeleted on all the open Databases
          matching the origin/name.
        * storage/DatabaseTracker.h:
        * storage/SQLStatement.cpp:
        (WebCore::SQLStatement::setDatabaseDeletedError): Set the error about the user deleting the database.
        * storage/SQLStatement.h:
        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::executeSQL): If the Database is deleted, call setDatabaseDeletedError.
        (WebCore::SQLTransaction::openTransactionAndPreflight): Set the error about the user deleting the database
          if the Database was marked as deleted.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30101 to Safari-3-1-branch.

    2008-02-08  Anders Carlsson  <andersca@apple.com>

        Reviewed by Mitz.

        <rdar://problem/5650446>
        http://bugs.webkit.org/show_bug.cgi?id=16102
        Crash in FrameLoader::stopLoadingSubframes() on IMDB page

        Store the child frame in a RefPtr to prevent it from being deleted when the
        frame tree changes while calling stopAllLoaders().
        
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::stopLoadingSubframes):

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30098 to Safari-3-1-branch.

    2008-02-08  Alp Toker  <alp@atoker.com>

        Reviewed by Adam Roben.

        Avoid null-dereference crasher noticed in the GTK+ port and also
        affecting the Win release build.

        Covered by existing tests.

        * dom/Document.cpp:
        (WebCore::Document::userStyleSheet):

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30097 to Safari-3-1-branch.

    2008-02-08  Anders Carlsson  <andersca@apple.com>

        Reviewed by Adam.

        <rdar://problem/5724188> 
        REGRESSION: PLT 0.7% slower due to 29926 (change Text::createWithLengthLimit to take a UChar pointer)
        
        Revert r29926 which caused the regression.
        
        * dom/Text.cpp:
        (WebCore::Text::createWithLengthLimit):
        * dom/Text.h:
        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::parseToken):
        * loader/TextDocument.cpp:
        (WebCore::TextTokenizer::write):

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30096 to Safari-3-1-branch.

    2008-02-08  Sam Weinig  <sam@webkit.org>

        Reviewed by Hyatt.

        Fix for <rdar://problem/5732491>
        http://bugs.webkit.org/show_bug.cgi?id=17213
        The querySelectorAll method on an element node does not search only the element's descendants

        Test: fast/dom/SelectorAPI/elementRoot.html

        * dom/Node.cpp:
        (WebCore::Node::querySelector): Make sure to stay within the root node when traversing the tree.
        * dom/SelectorNodeList.cpp:
        (WebCore::SelectorNodeList::SelectorNodeList): ditto.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30087 to Safari-3-1-branch.

    2008-02-06  Kimmo Kinnunen  <kimmok@iki.fi>

        Reviewed by Tim Hatcher.

        Fixes: http://bugs.webkit.org/show_bug.cgi?id=17191
        HTML5: Client-side database queries should return values of type number
        Test: storage/sql-data-types.html

        Make the DB queries return a value as a number if it was inserted
        as a number to the database.
        * platform/sql/SQLiteStatement.cpp:
        (WebCore::SQLiteStatement::getColumnValue): new member function to return SQLValues
        * platform/sql/SQLiteStatement.h:
        * storage/SQLStatement.cpp:
        (WebCore::SQLStatement::execute): use getColumnValue instead of getColumnText

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30085 to Safari-3-1-branch.

    2008-02-07  Ada Chan  <adachan@apple.com>

        <rdar://problem/5292433> certificate authentication support broken in Safari 3.0
        Added mechanism to communicate client certificate info back to CFNetwork.

        Reviewed by Adam.

        * platform/network/ResourceHandle.h:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::clientCerts): Keep a mapping of hosts to client certificates.
        (WebCore::makeFinalRequest): If we have a client certificate for the host, pass it
        to CFNetwork by setting it in the SSL properties.
        (WebCore::ResourceHandle::setClientCertificate): Map client certificate to the host.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30081 to Safari-3-1-branch.

    2008-02-07  Adam Roben  <aroben@apple.com>

        Fix Bug 17138: REGRESSION: Node highlight not updated properly

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

        Reviewed by Darin.

        No test possible.

        * page/InspectorController.cpp:
        (WebCore::InspectorController::drawNodeHighlight): Update the
        overlayRect after scrolling to make sure that we translate the context
        by the correct amount.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30080 to Safari-3-1-branch.

    2008-02-07  Adam Roben  <aroben@apple.com>

        Qt and GTK+ build fixes

        * platform/gtk/FileSystemGtk.cpp: Added a missing #include.
        * platform/qt/FileSystemQt.cpp: Ditto.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30079 to Safari-3-1-branch.

    2008-02-07  Adam Roben  <aroben@apple.com>

        Some cleanup of Mac-only user stylesheet code

        I moved UserStyleSheetLoader out of Frame.cpp into its own files, and
        moved some Mac-only Frame methods to FrameMac.mm.

        Reviewed by Darin.

        * WebCore.xcodeproj/project.pbxproj: Added new files to project.
        * loader/mac/UserStyleSheetLoader.cpp: Added.
        (UserStyleSheetLoader::UserStyleSheetLoader):
        (UserStyleSheetLoader::~UserStyleSheetLoader):
        * loader/mac/UserStyleSheetLoader.h: Added.
        * page/Frame.cpp: Removed setUserStyleSheet[Location]
        * page/mac/FrameMac.mm:
        (WebCore::Frame::setUserStyleSheetLocation): Moved here from
        Frame.cpp.
        (WebCore::Frame::setUserStyleSheet): Ditto.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30078 to Safari-3-1-branch.

    2008-02-07  Adam Roben  <aroben@apple.com>

        Fix <rdar://5555260> GMail never loads when a user stylesheet is
        specified

        The fix in r29841 did not guarantee that the user stylesheet would not
        still be loading by the time GMail called document.write, and so was
        not a complete fix.

        This change reworks the user stylesheet loading mechanism on non-Mac
        platforms to load the stylesheet synchronously from disk, and then
        keeps it in memory. This obsoletes the issue of what our behavior
        should be before the user stylesheet has loaded and what should happen
        when it finishes loading, as the user stylesheet will always be
        available when the Document first asks for it. Note, however, that
        this removes the ability to specify a non-file: URL for the user
        stylesheet. This change was not made for the Mac platform because it's
        possible that WebKit clients are relying on non-file: URLs for user
        stylesheets. It would also be nice to move back to an asynchronous
        loading model someday, but that is not currently possible since we
        don't have an asynchronous loading mechanism that is not tied to a
        particular Frame.

        The responsibility of loading and storing the user stylesheet has
        moved from Frame to Page, since the user stylesheet URL is set on the
        Page-level Settings object.

        Reviewed by Darin.

        * dom/Document.cpp:
        (WebCore::Document::Document): Changed to call userStyleSheet().
        (WebCore::Document::setUserStyleSheet): Made Mac-only.
        (WebCore::Document::userStyleSheet): Changed to call up to Page on
        non-Mac platforms.
        (WebCore::Document::recalcStyleSelector): Changed to call
        userStyleSheet().
        * dom/Document.h:
            - Made setUserStyleSheet and the m_usersheet member Mac-only
            - Changed userStyleSheet to return a String instance instead of a
              String reference, since we now might return a new null String.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::begin): Made the call to
        Frame::setUserStyleSheetLocation Mac-only.
        * page/Frame.cpp: Made UserStyleSheetLoader and related code Mac-only.
        (WebCore::Frame::~Frame): Ditto.
        (WebCore::Frame::reapplyStyles): Made the call to
        setUserStyleSheet[Location] Mac-only. On non-Mac platforms the
        Document will pick up the new stylesheet in Document::reapplyStyles.
        (WebCore::FramePrivate::FramePrivate): Made m_userStyleSheetLoader
        Mac-only.
        * page/Frame.h: Made setUserStyleSheet[Location] Mac-only.
        * page/FramePrivate.h: Made m_userStyleSheetLoader Mac-only.
        * page/Page.cpp:
        (WebCore::Page::Page): Initialize new members.
        (WebCore::Page::userStyleSheetLocationChanged): Added. Does nothing on
        Mac. On non-Mac, resets all members relating to the user stylesheet so
        we'll know to load it again the next time it's asked for.
        (WebCore::Page::userStyleSheet): Added. Loads the user stylesheet if
        the user stylesheet location has changed since the last time we loaded
        it, or if the file has been modified since we last loaded it, then
        returns the contents of the user stylesheet as a String.
        * page/Page.h: Added new methods/members.
        * page/Settings.cpp:
        (WebCore::Settings::setUserStyleSheetLocation): Changed to call
        Page::userStyleSheetLocationChanged.
        * page/Settings.h: Changed userStyleSheetLocation to return the KURL
        by reference instead of making a copy.
        * platform/FileSystem.h: Added declaration for getFileModificationTime.
        * platform/KURL.h: Added declaration for fileSystemPath method.
        * platform/cf/KURLCFNet.cpp:
        (WebCore::KURL::fileSystemPath): Added.
        * platform/posix/FileSystemPOSIX.cpp:
        (WebCore::getFileModificationTime): Added.
        * platform/qt/KURLQt.cpp:
        (WebCore::KURL::fileSystemPath): Stubbed out.
        * platform/win/FileSystemWin.cpp:
        (WebCore::getFileModificationTime): Added.
        * platform/qt/FileSystemQt.cpp: Stubbed out getFileModificationTime.
        * platform/gtk/FileSystemGtk.cpp: Ditto.
        * platform/wx/FileSystemWx.cpp: Ditto.
        * platform/qt/TemporaryLinkStubs.cpp: Stubbed out
        SharedBuffer::createWithContentsOfFile.
        * platform/gtk/TemporaryLinkStubs.cpp: Ditto, along with
        KURL::fileSystemPath.
        * platform/wx/TemporaryLinkStubs.cpp: Ditto.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30077 to Safari-3-1-branch.

    2008-02-07  Adam Roben  <aroben@apple.com>

        Clean up FileSystemWin.cpp

        This cleanup also makes us call _wstat64 instead of _wstat32i64. The
        only difference between these two functions is that _wstat64 gives
        64-bit time values, while _wstat32i64 only gives 32-bit time values.

        Reviewed by Darin.

        All tests pass.

        * platform/win/FileSystemWin.cpp:
        (WebCore::statFile): New static helper that wraps _wstat64.
        (WebCore::getFileSize): Changed to call statFile.
        (WebCore::fileExists): Ditto.

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30076 to Safari-3-1-branch.

    2008-02-07  Adam Roben  <aroben@apple.com>

        Rename fileSize to getFileSize

        Rubberstamped by Darin.

        * platform/FileSystem.h:
        * platform/gtk/FileSystemGtk.cpp:
        * platform/network/cf/FormDataStreamCFNet.cpp:
        (WebCore::setHTTPBody):
        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::setupPOST):
        * platform/posix/FileSystemPOSIX.cpp:
        * platform/qt/FileSystemQt.cpp:
        * platform/win/FileSystemWin.cpp:
        * platform/wx/FileSystemWx.cpp:
        * storage/Database.cpp:
        (WebCore::Database::databaseSize):
        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::usageForDatabase):
        * storage/OriginUsageRecord.cpp:
        (WebCore::OriginUsageRecord::diskUsage):

2008-02-15  Mark Rowe  <mrowe@apple.com>

        Merge r30075 to Safari-3-1-branch.

    2008-02-06  Adam Roben  <aroben@apple.com>

        Make KURL::isLocalFile treat the URL's protocol case-insensitively

        Reviewed by Darin.

        * platform/KURL.cpp:
        (WebCore::KURL::isLocalFile): Use equalIgnoringCase instead of ==.

2008-02-14  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adele Peterson.

        - roll out changes to CSS2 system colors from r28775

        * css/CSSStyleSelector.cpp:
        (WebCore::):
        (WebCore::colorForCSSValue):
        * rendering/RenderTheme.cpp:
        * rendering/RenderTheme.h:
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:

2008-02-07  David Hyatt  <hyatt@apple.com>

        Fix for bug 6248, implement the nth-* CSS3 selectors.  Patch based on original KHTML work from Allan Jensen
        and improved upon by Nick Shanks.

        Reviewed by Eric

        * css/CSSGrammar.y:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::lex):
        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::extractPseudoType):
        * css/CSSSelector.h:
        (WebCore::CSSSelector::):
        * css/CSSStyleSelector.cpp:
        (WebCore::parseNth):
        (WebCore::matchNth):
        (WebCore::CSSStyleSelector::checkOneSelector):
        * css/tokenizer.flex:
        * rendering/RenderStyle.cpp:
        (WebCore::RenderStyle::RenderStyle):
        * rendering/RenderStyle.h:
        (WebCore::RenderStyle::childIndex):
        (WebCore::RenderStyle::setChildIndex):

2008-02-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix <rdar://problem/5729411> REGRESSION (r29834): Float contained in relative-positioned block is painted twice

        Test: fast/block/float/relative-painted-twice.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addOverhangingFloats): Added another case where
        the child should not take over painting the float: when they do not have
        the same enclosing layer. In that case, the float is already being
        painted by one of its closer ancestors.

2008-02-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix http://bugs.webkit.org/show_bug.cgi?id=17194
          Changing text to bold changes font family

        Test: platform/mac/fast/text/family-for-font-matched-by-name.html

        * platform/mac/WebFontCache.mm:
        (+[WebFontCache internalFontWithFamily:traits:size:]): Changed to use
        the family of the font whose name matches the desired family if there
        is no exact family match.

2008-02-07  Beth Dakin  <bdakin@apple.com>

        Reviewed by Geoff.

        Fix for <rdar://problem/5697882> Traffic or Street View button on 
        Google Maps is sometimes not positioned correctly (17000)

        On the Mac, timers fire in the order that they are registered. 
        Geoff and I discovered that this is not necessarily true on 
        Windows, and that turned out to be the cause of this intermittent 
        layout problem at Google Maps. This patch adds a new member 
        variable to Timer to remember the timer's insertion point into the 
        heap. Now when comparing timers, if two timers were registered at 
        the same time, their insertion orders are compared to determine 
        which should fire first. This code actually never runs on Debug 
        builds on the Mac; the system clock on the Mac is accurate enough 
        that it knows that the two timers were not registered at *exactly* 
        the same time. This is not the case on Windows. In theory, if we 
        sped up Javascript enough on the Mac, this code would run and would 
        prevent misrenderings such as the one found on Google Maps.

        * platform/Timer.cpp:
        (WebCore::operator<):
        (WebCore::TimerBase::setNextFireTime):
        * platform/Timer.h:

2008-02-06  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5195056> Huge plain text pastes are slow
        
        This was fixed in r27369 and then r29367 and r29667 caused performance to
        regress.

        * editing/EditCommand.cpp:
        (WebCore::EditCommand::apply): Only updateLayout() for high level commands.
        (WebCore::EditCommand::unapply): Ditto.
        (WebCore::EditCommand::reapply): Ditto.
        * editing/Editor.cpp:
        (WebCore::Editor::appliedEditing): Added a note about shouldChangeSelection calls 
        that shouldn't be made, a bug I filed as <rdar://problem/5729315>.
        (WebCore::Editor::unappliedEditing): Ditto.
        (WebCore::Editor::reappliedEditing): Ditto.
        * editing/SelectionController.cpp:
        (WebCore::SelectionController::nodeWillBeRemoved): Don't try to test the selection
        base and extent with the expensive isCandidate operation if the node that will
        be removed is in a fragment, since such a removal is guaranteed to have no effect
        on a selection.  This is to speed up the paste operation, which does many removes from
        a fragment.

2008-02-06  Kevin Ollivier  <kevino@theolliviers.com>

        Reviewed by Darin Adler.

        Rather than directly handing scroll wheel events, use
        PlatformWheelEvent to send them to WebCore first, so that
        mouse wheel scrolling info can be retrieved via JavaScript.

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

        * platform/ScrollView.h:
        * platform/wx/MouseWheelEventWx.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/wx/ScrollViewWx.cpp:
        (WebCore::ScrollView::ScrollViewPrivate::bindEvents):
        (WebCore::ScrollView::wheelEvent):
        (WebCore::ScrollView::maximumScroll):

2008-02-06  Mark Rowe  <mrowe@apple.com>

        Fix Windows builds.

        * WebCore.vcproj/WebCore.vcproj: Unbreak the XML of the project file.

2008-02-06  Mark Rowe  <mrowe@apple.com>

        Mac build fix.  Track rename that happened in r30056.

        * platform/graphics/mac/GraphicsContextMac.mm:

2008-02-06  Brent Fulgham  <bfulgham@gmail.com>

        Reviewed by Adam Roben.

        http://bugs.webkit.org/show_bug.cgi?id=16979
        Conditionalize CoreGraphics vs Cairo support in Windows port.

        * WebCore.vcproj/WebCore.vcproj:
        * bridge/win/FrameCGWin.cpp: Copied from WebCore/bridge/win/FrameWin.cpp.
        (WebCore::imageFromSelection):
        * bridge/win/FrameCairoWin.cpp: Added.
        (WebCore::imageFromSelection):
        * bridge/win/FrameWin.cpp:
        (WebCore::computePageRectsForFrame):
        * platform/graphics/SimpleFontData.h:
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Copied from WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp.
        (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
        (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
        (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
        (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::savePlatformState):
        (WebCore::GraphicsContext::restorePlatformState):
        * platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed.
        * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h: Copied from WebCore/platform/graphics/cg/GraphicsContextPlatformPrivate.h.
        * platform/graphics/win/FontCGWin.cpp: Copied from WebCore/platform/graphics/win/FontWin.cpp.
        (WebCore::Font::drawGlyphs):
        * platform/graphics/win/FontCairoWin.cpp: Added.
        (WebCore::Font::drawGlyphs):
        * platform/graphics/win/FontWin.cpp:
        * platform/graphics/win/GraphicsContextCGWin.cpp: Copied from WebCore/platform/graphics/win/GraphicsContextWin.cpp.
        (WebCore::CGContextWithHDC):
        (WebCore::GraphicsContext::inTransparencyLayer):
        (WebCore::GraphicsContext::getWindowsContext):
        (WebCore::GraphicsContext::releaseWindowsContext):
        (WebCore::GraphicsContextPlatformPrivate::scale):
        (WebCore::GraphicsContextPlatformPrivate::rotate):
        (WebCore::GraphicsContextPlatformPrivate::translate):
        (WebCore::GraphicsContextPlatformPrivate::concatCTM):
        (WebCore::setCGStrokeColor):
        (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
        * platform/graphics/win/GraphicsContextCairoWin.cpp: Added.
        (WebCore::GraphicsContext::GraphicsContext):
        (WebCore::GraphicsContext::getWindowsContext):
        (WebCore::GraphicsContext::inTransparencyLayer):
        (WebCore::GraphicsContext::releaseWindowsContext):
        (WebCore::GraphicsContext::concatCTM):
        * platform/graphics/win/GraphicsContextWin.cpp:
        * platform/graphics/win/ImageCGWin.cpp: Copied from WebCore/platform/graphics/win/ImageWin.cpp.
        (WebCore::BitmapImage::getHBITMAPOfSize):
        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
        * platform/graphics/win/ImageCairoWin.cpp: Added.
        (WebCore::BitmapImage::getHBITMAPOfSize):
        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
        * platform/graphics/win/ImageWin.cpp:
        * platform/graphics/win/SimpleFontDataCGWin.cpp: Copied from WebCore/platform/graphics/win/SimpleFontDataWin.cpp.
        (WebCore::scaleEmToUnits):
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        * platform/graphics/win/SimpleFontDataCairoWin.cpp: Added.
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformDestroy):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore::SimpleFontData::setShouldApplyMacAscentHack):
        (WebCore::SimpleFontData::shouldApplyMacAscentHack):
        * platform/win/DragImageCGWin.cpp: Copied from WebCore/platform/win/DragImageWin.cpp.
        (WebCore::scaleDragImage):
        (WebCore::createDragImageFromImage):
        * platform/win/DragImageCairoWin.cpp: Added.
        (WebCore::scaleDragImage):
        (WebCore::createDragImageFromImage):
        * platform/win/DragImageWin.cpp:

2008-02-06  Anders Carlsson  <andersca@apple.com>

        Reviewed by Darin.

        Change httpBodyFromStream to take the request instead of the stream.
        
        * platform/network/cf/FormDataStreamCFNet.cpp:
        (WebCore::httpBodyFromRequest):
        * platform/network/cf/FormDataStreamCFNet.h:
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdateResourceRequest):

2008-02-06  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Darin.

        - Added manual tests for <rdar://problem/5556374> REGRESSION: cross-domain error when
        one URL uses an explicit port number and another doesn't

        * manual-tests/Default-port-frame.html: Added.
        * manual-tests/resources/Default-port-frame-contents.html: Added.

2008-02-06  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (Build fix).

        Fix windows build

        * WebCore.vcproj/build-generated-files.sh:

2008-02-06  Kevin McCullough  <kmccullough@apple.com>

        Rubberstamped by Darin.

        <rdar://problem/5727708> REGRESSION (r29952): Can't send message from Yahoo Mail beta
        - Reverted the change that caused the regression.

        * dom/Document.cpp:
        (WebCore::Document::createElement):
        (WebCore::Document::createElementNS):
        (WebCore::Document::getElementById):
        (WebCore::Document::parseQualifiedName):
        (WebCore::Document::createAttributeNS):
        * dom/Document.idl:

2008-02-06  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Oliver Hunt.
        
        Fixed <rdar://problem/5728081> REGRESSION: Many leaks on buildbot

        The problem was refCount underflow in NamedAttrMap.
        
        Neither our regression tests nor the stress test have yet discovered
        another instance of this problem.

        * dom/NamedAttrMap.cpp:
        (WebCore::NamedAttrMap::addAttribute): Changed to use PassRefPtr,
        for fast and correct refCount management. Also, change a rediculously
        slow malloc to a slightly less rediculously slow realloc.

        * dom/NamedAttrMap.h:
        (WebCore::NamedAttrMap::insertAttribute): Changed to use PassRefPtr,
        for fast and correct refCount management.

        * html/HTMLTokenizer.cpp:
        (WebCore::Token::addAttribute): Use a RefPtr, to guarantee that the
        object starts with a refCount of 1.

2008-02-06  Darin Adler  <darin@apple.com>

        Reviewed by Tim Hatcher.

        - fix <rdar://problem/5723293> NULL-deref crash in PropertyMap::put opening web inspector
          with View Source window as target

        * page/InspectorController.cpp:
        (WebCore::canPassNodeToJavaScript): Added. Returns false if the node is in a document with
        JavaScript disabled.
        (WebCore::InspectorController::inspect): Check canPassNodeToJavaScript and do nothing if
        it returns false.

2008-02-06  David Hyatt  <hyatt@apple.com>

        Fix for bug 16799, object elements should return absolute URLs from .data.

        Reviewed by Mark Rowe

        * dom/Document.cpp:
        (WebCore::Document::completeURL):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::href):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::data):

2008-02-05  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin.

        <rdar://problem/5726340>
        <video autoplay controls> left in unplayable state if navigated away, then back to, before video finished loading
        
        When moving document in and out from the page cache:
        - Cancel incomplete load by deleting the media player. This guarantees everything is in consistent state.
        - Restart the load if it was aborted in the middle.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::~HTMLMediaElement):
        (WebCore::HTMLMediaElement::load):
        (WebCore::HTMLMediaElement::willSaveToCache):
        (WebCore::HTMLMediaElement::didRestoreFromCache):
        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::player):

2008-02-06  Darin Adler  <darin@apple.com>

        Reviewed by Sam.

        - replace calls to put to set up properties with calls to putDirect, to
          prepare for a future change where put won't take attributes any more,
          and for a slight performance boost

        * bindings/js/JSAudioConstructor.cpp:
        (WebCore::JSAudioConstructor::JSAudioConstructor): Use putDirect instead of put.
        * bindings/js/JSEventTargetBase.h:
        (WebCore::JSEventTargetPrototype::self): Ditto.
        * bindings/js/JSHTMLOptionElementConstructor.cpp:
        (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor): Ditto.
        * bindings/js/JSSQLResultSetRowListCustom.cpp:
        (WebCore::JSSQLResultSetRowList::item): Ditto.

2008-02-06  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix http://bugs.webkit.org/show_bug.cgi?17093
        'border-color' does not animate to the value of 'color' when unspecified

        Test: fast/css/transition-color-unspecified.html

        * page/AnimationController.cpp:
        (WebCore::ImplicitAnimation::animate): Changed to use the value of the
        'color' property in the source or destination style as the source or
        destination value of properties whose inital value is defined to be the
        computed value of 'color'.

2008-02-06  Dan Bernstein  <mitz@apple.com>

        Build fix.

        * svg/svgtags.in:

2008-02-05  Oliver Hunt  <oliver@apple.com>

        Build fix -- touch generate-bindings to trigger regeneration of bindings

        * bindings/scripts/generate-bindings.pl:

2008-02-05  Oliver Hunt  <oliver@apple.com>

        RS=Eric.

        Re-enable foreignObject by default as it is needed for a number of 
        non-fO related SVG tests and none of the old known crashes occur
        anymore.

        * Configurations/WebCore.xcconfig:
        * WebCore.vcproj/WebCore.vcproj:

2008-02-05  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=8080
        NodeList (and other DOM lists) items are not enumeratable using for..in

        - Match Firefox when enumerating DOM interfaces with indexGetters (support for 
          the array bracket, nodeList[0], notation) by including all the items in the
          list before the attributes and methods of the interface.

        Test: fast/dom/domListEnumeration.html

        * ForwardingHeaders/kjs/PropertyNameArray.h: Added.
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::customGetPropertyNames): Use the new custom method model. 
        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::customGetPropertyNames): ditto.
        * bindings/scripts/CodeGeneratorJS.pm: Instead of just adding a declaration of
        getProperyNames and implementing the method in the Custom.cpp, move to a the 
        model used by generated getOwnPropertySlot() and put() where the custom code
        is written in a separate customGetPropertyNames which returns a bool indicating
        whether to call up to the base class.  This enables adding the list indexes
        to the PropertyNameArray for interfaces with indexGetters automatically.

2008-02-05  Samuel Weinig  <sam@webkit.org>

        Reviewed by Darin Adler.

        Fix for <rdar://problem/5726604> 
        dom-checker: deleting properties of the window object cross-domain should not be allowed

        Fix flaw found while testing with dom-checker testing tool (http://code.google.com/p/dom-checker/).

        Test: http/tests/security/cross-frame-access-delete.html

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::deleteProperty): Override deleteProperty to not delete cross-domain.
        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::deleteProperty): ditto.
        * bindings/js/JSLocation.cpp:
        (WebCore::JSLocation::deleteProperty): ditto.
        * bindings/js/JSLocation.h:

        * bindings/scripts/CodeGeneratorJS.pm: Add deleteProperty declaration when CustomDeleteProperty is used.
        * page/DOMWindow.idl: Add CustomDeleteProperty extended attribute.
        * page/History.idl: ditto.

2008-02-05  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Mark Rowe.

        Fix a "missing sentinel in function call" warning by using NULL
        instead of 0.

        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::caretBlinkFrequency):

2008-02-05  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Oliver.

        Fix dynamic updates of <circle> element's properties.

        Added tests: svg/dynamic-updates/SVGCircleElement*

        * svg/SVGCircleElement.cpp:
        (WebCore::SVGCircleElement::svgAttributeChanged): Mixed up cxAttr/xAttr etc.
        * svg/SVGCircleElement.h:

2008-02-05  Rodney Dawes  <dobey@wayofthemonkey.com>

        Wx build fix.  Add WebCore/plugins to the include path.

        * webcore-base.bkl:

2008-02-05  Mark Rowe  <mrowe@apple.com>

        Mac build fix.  Update the Xcode project to follow a moved file,
        and track a rename in two files that were missed earlier.

        * WebCore.xcodeproj/project.pbxproj:
        * page/mac/WebCoreFrameBridge.mm:
        (-[WebCoreFrameBridge canProvideDocumentSource]):
        * platform/mac/PlugInInfoStoreMac.mm:
        (WebCore::PluginInfoStore::pluginNameForMIMEType):

2008-02-05  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Holger.

        Fixes: http://bugs.webkit.org/show_bug.cgi?id=17185
        Fix dynamic SVG DOM updates of <a> element's href property.

        This commit also introduces a new SVG Tests framework: LayoutTests/svg/dynamic-updates
        Its purpose is to provide dynamic updating tests for each SVG class & property, aka.
        one test per property per class. As a first pass it's sufficient to add testcases for all
        SVG*Element classes, and their properties - and only common-used base-class properties.

        For SVGAElement - for example - it makes most sense to test scripting its parent
        SVGURIReference object ('href' property) and its own property 'target'.

        Adding tests to see - for example - if SVGAElement reacts on changes on ie. its parent
        SVGExternalResourcesRequired interface, should really be done in a second pass.

        All tests within the new framework are supposed to be created using make-js-tests-wrappers.

        Added test: svg/dynamic-updates/SVGAElement-dom-href-attr.js
        Added test: svg/dynamic-updates/SVGAElement-dom-target-attr.js
        Added test: svg/dynamic-updates/SVGAElement-svgdom-href-prop.js
        Added test: svg/dynamic-updates/SVGAElement-svgdom-target-prop.js

        * svg/SVGAElement.cpp:
        (WebCore::SVGAElement::parseMappedAttribute): Move any setChanged() handling in svgAttributeChanged.
        (WebCore::SVGAElement::svgAttributeChanged):
        (WebCore::SVGAElement::defaultEventHandler): Use href() not getAttribute(hrefAttr) - otherwhise SVG DOM updates fail!
        * svg/SVGAElement.h:

2008-02-05  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Alexey Proskuryakov.

        <rdar://problem/5685601> webkit-block-placeholder class on placeholders seems unnecessary (12317)

        * editing/CompositeEditCommand.cpp:
        (WebCore::createBlockPlaceholderElement): The khtml-block-placeholder class was needed
        when the editing code actively looked for <br>s of that type in order to handle them
        specially.  That is no longer the case.
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply): Fixed a bug where an extra block
        would be inserted when hitting return inside an editable root held open by a placeholder
        <br> or '\n'.  Added test cases for the bug and for the special case code that was incorrectly
        triggered to cause the bug. 

2008-02-05  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewed by Anders Carlsson.

        Part one of http://bugs.webkit.org/show_bug.cgi?id=16924.
        Shared PluginDatabase, PluginInfoStore and PluginPackage implementations.

        Remove the Win suffix on several plugin-related classes that will
        soon be refactored to be more portable.

        * WebCore.vcproj/WebCore.vcproj:
        * bindings/js/kjs_navigator.cpp:
        (KJS::PluginBase::cachePluginDataIfNecessary):
        * bindings/js/kjs_window.cpp:
        * bridge/win/FrameWin.cpp:
        (WebCore::Frame::createScriptInstanceForWidget):
        * dom/Clipboard.cpp:
        * dom/DOMImplementation.cpp:
        (WebCore::DOMImplementation::createDocument):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::shouldUsePlugin):
        * page/DragController.cpp:
        * platform/PlugInInfoStore.h: Removed.
        * platform/gtk/TemporaryLinkStubs.cpp:
        (PluginInfoStore::createPluginInfoForPluginAtIndex):
        (PluginInfoStore::pluginCount):
        (PluginInfoStore::pluginNameForMIMEType):
        (WebCore::PluginInfoStore::supportsMIMEType):
        * platform/qt/PlugInInfoStoreQt.cpp:
        (WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
        (WebCore::PluginInfoStore::pluginCount):
        (WebCore::PluginInfoStore::pluginNameForMIMEType):
        (WebCore::PluginInfoStore::supportsMIMEType):
        * platform/qt/TemporaryLinkStubs.cpp:
        * platform/win/SharedTimerWin.cpp:
        (WebCore::TimerWindowWndProc):
        * platform/wx/TemporaryLinkStubs.cpp:
        (PluginInfoStore::createPluginInfoForPluginAtIndex):
        (PluginInfoStore::pluginCount):
        (WebCore::PluginInfoStore::supportsMIMEType):
        (PluginInfoStore::pluginNameForMIMEType):
        * plugins/PluginDatabase.h: Copied from WebCore/plugins/win/PluginDatabaseWin.h.
        * plugins/PluginInfoStore.cpp: Copied from WebCore/plugins/win/PlugInInfoStoreWin.cpp.
        (WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
        (WebCore::PluginInfoStore::pluginCount):
        (WebCore::PluginInfoStore::pluginNameForMIMEType):
        (WebCore::PluginInfoStore::supportsMIMEType):
        (WebCore::refreshPlugins):
        * plugins/PluginInfoStore.h: Copied from WebCore/platform/PlugInInfoStore.h.
        * plugins/PluginPackage.h: Copied from WebCore/plugins/win/PluginPackageWin.h.
        (WebCore::PluginPackageHash::hash):
        (WebCore::PluginPackageHash::equal):
        (WTF::):
        * plugins/PluginView.h: Copied from WebCore/plugins/win/PluginViewWin.h.
        (WebCore::PluginView::plugin):
        * plugins/npapi.cpp: Copied from WebCore/plugins/win/npapi.cpp.
        (pluginViewForInstance):
        (NPN_UserAgent):
        * plugins/win/PlugInInfoStoreWin.cpp: Removed.
        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::PluginDatabase::installedPlugins):
        (WebCore::PluginDatabase::addExtraPluginPath):
        (WebCore::PluginDatabase::refresh):
        (WebCore::PluginDatabase::plugins):
        (WebCore::addPluginsFromRegistry):
        (WebCore::PluginDatabase::getPluginsInPaths):
        (WebCore::PluginDatabase::defaultPluginPaths):
        (WebCore::PluginDatabase::isMIMETypeRegistered):
        (WebCore::PluginDatabase::pluginForMIMEType):
        (WebCore::PluginDatabase::MIMETypeForExtension):
        (WebCore::PluginDatabase::findPlugin):
        (WebCore::PluginDatabase::createPluginView):
        * plugins/win/PluginDatabaseWin.h: Removed.
        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackage::~PluginPackage):
        (WebCore::PluginPackage::freeLibrarySoon):
        (WebCore::PluginPackage::freeLibraryTimerFired):
        (WebCore::PluginPackage::PluginPackage):
        (WebCore::PluginPackage::compareFileVersion):
        (WebCore::PluginPackage::storeFileVersion):
        (WebCore::PluginPackage::isPluginBlacklisted):
        (WebCore::PluginPackage::fetchInfo):
        (WebCore::PluginPackage::load):
        (WebCore::PluginPackage::unload):
        (WebCore::PluginPackage::unloadWithoutShutdown):
        (WebCore::PluginPackage::createPackage):
        (WebCore::PluginPackage::hash):
        (WebCore::PluginPackage::equal):
        * plugins/win/PluginPackageWin.h: Removed.
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginRequest::PluginRequest):
        (WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin):
        (WebCore::registerPluginView):
        (WebCore::PluginViewWndProc):
        (WebCore::PluginView::popPopupsStateTimerFired):
        (WebCore::PluginView::wndProc):
        (WebCore::PluginView::updateWindow):
        (WebCore::PluginView::windowClipRect):
        (WebCore::PluginView::setFrameGeometry):
        (WebCore::PluginView::geometryChanged):
        (WebCore::PluginView::setFocus):
        (WebCore::PluginView::show):
        (WebCore::PluginView::hide):
        (WebCore::PluginView::paintMissingPluginIcon):
        (WebCore::PluginView::dispatchNPEvent):
        (WebCore::PluginView::paint):
        (WebCore::PluginView::handleKeyboardEvent):
        (WebCore::PluginView::handleMouseEvent):
        (WebCore::PluginView::handleEvent):
        (WebCore::PluginView::setParent):
        (WebCore::PluginView::attachToWindow):
        (WebCore::PluginView::detachFromWindow):
        (WebCore::PluginView::setNPWindowRect):
        (WebCore::PluginView::start):
        (WebCore::PluginView::stop):
        (WebCore::PluginView::setCurrentPluginView):
        (WebCore::PluginView::currentPluginView):
        (WebCore::PluginView::performRequest):
        (WebCore::PluginView::requestTimerFired):
        (WebCore::PluginView::scheduleRequest):
        (WebCore::PluginView::load):
        (WebCore::PluginView::getURLNotify):
        (WebCore::PluginView::getURL):
        (WebCore::PluginView::handlePost):
        (WebCore::PluginView::postURLNotify):
        (WebCore::PluginView::postURL):
        (WebCore::PluginView::newStream):
        (WebCore::PluginView::write):
        (WebCore::PluginView::destroyStream):
        (WebCore::PluginView::userAgent):
        (WebCore::PluginView::status):
        (WebCore::PluginView::getValue):
        (WebCore::PluginView::setValue):
        (WebCore::PluginView::invalidateTimerFired):
        (WebCore::PluginView::invalidateRect):
        (WebCore::PluginView::invalidateRegion):
        (WebCore::PluginView::forceRedraw):
        (WebCore::PluginView::pushPopupsEnabledState):
        (WebCore::PluginView::popPopupsEnabledState):
        (WebCore::PluginView::arePopupsAllowed):
        (WebCore::PluginView::bindingInstance):
        (WebCore::PluginView::~PluginView):
        (WebCore::PluginView::disconnectStream):
        (WebCore::PluginView::determineQuirks):
        (WebCore::PluginView::setParameters):
        (WebCore::PluginView::PluginView):
        (WebCore::PluginView::init):
        (WebCore::PluginView::didReceiveResponse):
        (WebCore::PluginView::didReceiveData):
        (WebCore::PluginView::didFinishLoading):
        (WebCore::PluginView::didFail):
        (WebCore::PluginView::setCallingPlugin):
        (WebCore::PluginView::isCallingPlugin):
        * plugins/win/PluginViewWin.h: Removed.
        * plugins/win/npapi.cpp: Removed.

2008-02-05  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=17158
        Setting innerHTML in a detached XHTML element doesn't use the right namespace

        Test: fast/dom/innerHTML-detached-element.xhtml

        * dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::XMLTokenizer): Take parent element namespace
        into account.

2008-02-05  Antti Koivisto  <antti@apple.com>

        Reviewed by Geoff.
        
        Fix <rdar://problem/5698200>
        eBay photo uploading hangs and causes slow script warning to pop up
        
        In a case like this
        
            var f = window.parent.parentFunction;
            document.domain = document.domain; // this makes window.parent inaccessible
            f();
        
        Firefox allows parentFunction to access parents properties. Match this behavior.
        
        In a domain security check against the dynamic global object fails for the specific reason that one of 
        the frames has written to the document.domain property and another has not (but they match otherwise), 
        then recheck against the lexical global object.

        Test: http/tests/security/cross-frame-access-callback-explicit-domain-ALLOW.html
              http/tests/security/cross-frame-access-callback-explicit-domain-DENY.html

        * bindings/js/kjs_window.cpp:
        (KJS::Window::allowsAccessFrom):
        (KJS::Window::printErrorMessage):
        * bindings/js/kjs_window.h:
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::shouldAllowNavigation):
        * platform/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::canAccess):
        * platform/SecurityOrigin.h:
        (WebCore::SecurityOrigin::):

2008-02-05  Adam Roben  <aroben@apple.com>

        Remove an unused member from Document

        Reviewed by Mitz.

        * dom/Document.cpp:
        (WebCore::Document::recalcStyleSelector): There's no need to take
        m_printSheet into account anymore as it's never anything but the null
        string.
        * dom/Document.h: Removed m_printSheet and methods relating to it.

2008-02-05  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - WebCore part of <rdar://problem/5724303> Should implement writing direction shortcuts

        * WebCore.base.exp: Added Editor::setBaseWritingDirection() and
        Frame::baseWritingDirectionForSelectionStart().
        * page/mac/WebCoreFrameBridge.h: Removed
        -baseWritingDirectionForSelectionStart.
        * page/mac/WebCoreFrameBridge.mm: Ditto.

2008-02-05  Mark Rowe  <mrowe@apple.com>

        Reviewed by Oliver Hunt.

        Update versioning to support the mysterious future.

        * Configurations/Version.xcconfig: Add SYSTEM_VERSION_PREFIX_1060.

2008-02-05  Mark Rowe  <mrowe@apple.com>

        Fix the wxWidget Mac build by avoiding using ICU functions that were added after ICU 3.2.

        * editing/SmartReplaceICU.cpp:
        (WebCore::addAllCodePoints): Implement a replacement for uset_addAllCodePoints.
        (WebCore::getSmartSet): Use addAllCodePoints instead of uset_addAllCodePoints.

2008-02-05  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Oliver Hunt.

        30,000!

        * ChangeLog: Point out revision 30,000.

2008-02-04  Mark Rowe  <mrowe@apple.com>

        Unreviewed Gtk build fix.

        wchar_t is only convertible to UChar on Windows.  Use WebCore's String class
        to get the UChars out of a C string in a portable fashion.

        * editing/SmartReplaceICU.cpp:
        (WebCore::getSmartSet):

2008-02-04  Tony Chang  <idealisms@gmail.com>

        Reviewed by Darin Adler.

        Port the CoreFoundation version of WebCore::isCharacterSmartReplaceExempt
        for other platforms by using ICU directly.

        * GNUmakefile.am: Add SmartReplaceICU.cpp.
        * WebCore.pro: Ditto.
        * WebCoreSources.bkl: Ditto.
        * editing/SmartReplace.cpp: Don't use this empty implementation when ICU is available.
        * editing/SmartReplaceICU.cpp:
        (getSmartSet):
        (WebCore::isCharacterSmartReplaceExempt):

2008-02-04  Robert Sesek  <rsesek@bluestatic.org>

        Reviewed by Darin Adler.

        Fix http://bugs.webkit.org/show_bug.cgi?id=17042
        forms without action attributes submit to the <base> href instead of the originating page

        Test: fast/forms/missing-action.html

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::submit): Submit to origin if there is no action

2008-02-04  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        Gtk build fix.  Use std::numeric_limits in place of ULLONG_MAX as
        some Linux machines do not have ULLONG_MAX.

        OriginUsageRecord::unknownDiskUsage becomes a static function to avoid
        the global initialiser which would otherwise be generated.

        * storage/OriginUsageRecord.cpp:
        (WebCore::OriginUsageRecord::unknownDiskUsage):
        (WebCore::OriginUsageRecord::addDatabase):
        (WebCore::OriginUsageRecord::removeDatabase):
        (WebCore::OriginUsageRecord::markDatabase):
        (WebCore::OriginUsageRecord::diskUsage):
        * storage/OriginUsageRecord.h:

2008-02-04  Mark Rowe  <mrowe@apple.com>

        Speculative Gtk build fix.

        * storage/OriginUsageRecord.cpp:

2008-02-04  Brady Eidson  <beidson@apple.com>

        Attempt to fix build of all non-Mac platforms

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCoreSources.bkl:

2008-02-04  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin

        Fix for <rdar://problem/5628468> - Quotas need to be implemented per-origin, and not per-database

        To accomplish this, we need to track the sizes of all databases in an origin to constantly keep an up to date
        count of the origin's total disk usage.  I've introduced the OriginQuotaManager and OriginUsageRecord classes
        to accomplish this.

        Whenever a transaction is known to mutate the size of a database (tracked by the DatabaseAuthorizer), it marks
        that database as unknown in the OriginQuotaManager.  When a transaction later comes along to ask the 
        OriginQuotaManager the usage for that origin, it stat's all of the unknown databases in the origin and returns
        the result.

        Since the OriginQuotaManager is interesting from both the main thread and a DatabaseThread, all accessors it 
        provides require it to be locked first.  ASSERTs help guarantee this is always the case.

        Layout test will involve adding functionality to DRT on multiple platforms and will be coming up shortly

        * WebCore.xcodeproj/project.pbxproj:

        * platform/SecurityOrigin.h: Changed to be ThreadSafeShared instead of RefCounted

        * storage/Database.cpp:
        (WebCore::Database::databaseSize): Return the current filesize of this database on disk
        (WebCore::Database::maximumSize): Added - calculates maximum size of this database based on quota and usage
        * storage/Database.h: Add databaseSize() accessor, and get rid of unused declared methods that *were* going 
          to be the solution for this bug.

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::originQuotaManager): Accessor to the OriginQuotaManager which is lazily created
        (WebCore::DatabaseTracker::canEstablishDatabase): Fetch the usage for this database slightly earlier, which
          will ensure that the OriginQuotaManager is primed to track this origin
        (WebCore::DatabaseTracker::fullPathForDatabase): Ditto
        (WebCore::DatabaseTracker::populateOrigins): Create the OriginQuotaManager here.
        (WebCore::DatabaseTracker::usageForOrigin): Use the OriginQuotaManager instead of looping through each database
          in the origin
        (WebCore::DatabaseTracker::deleteOrigin): Remove this origin from the OriginQuotaManager as it is no longer 
          interesting
        (WebCore::DatabaseTracker::deleteDatabase): Remove this database from the OriginQuotaManager as it is no longer
          interesting
        * storage/DatabaseTracker.h:

        * storage/OriginQuotaManager.cpp: Added.
        (WebCore::OriginQuotaManager::OriginQuotaManager):
        (WebCore::OriginQuotaManager::lock):
        (WebCore::OriginQuotaManager::unlock):
        (WebCore::OriginQuotaManager::trackOrigin): Add an origin to be tracked.  Useful for when the very first database 
          in a new origin is still in the process of being created
        (WebCore::OriginQuotaManager::tracksOrigin):
        (WebCore::OriginQuotaManager::addDatabase):
        (WebCore::OriginQuotaManager::removeDatabase):
        (WebCore::OriginQuotaManager::removeOrigin): Removes all records in a certain origin from being tracked
        (WebCore::OriginQuotaManager::markDatabase): Mark a specific database as having an unknown size - called when the
          DatabaseAuthorizer in a SQLTransaction knows the file size might change.
        (WebCore::OriginQuotaManager::diskUsage): Returns the disk usage for the given origin
        * storage/OriginQuotaManager.h: Added.

        * storage/OriginUsageRecord.cpp: Added.
        (WebCore::OriginUsageRecord::OriginUsageRecord):
        (WebCore::OriginUsageRecord::addDatabase): Adds an entry for the database in this origin's record
        (WebCore::OriginUsageRecord::removeDatabase): Removes that entry
        (WebCore::OriginUsageRecord::markDatabase): Marks the database as of unknown size
        (WebCore::OriginUsageRecord::diskUsage): Returns the cached disk usage value, or recalculates it if any databases
          are marked
        * storage/OriginUsageRecord.h: Added.

        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::openTransactionAndPreflight): Use Database::maximumSize() instead of attributing the
          entire quota to each database.
        (WebCore::SQLTransaction::runStatements): Use Database::maximumSize() instead of attributing the entire quota
          to each database.
        (WebCore::SQLTransaction::runCurrentStatement): Mark this databases's size as unknown in the 
          OriginQuotaManager if this statement will change the size of the database
        * storage/SQLTransaction.h:

2008-02-04   David Harrison  <harrison@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5607381> CrashTracer: [REGRESSION] 1748 crashes in Safari at com.apple.WebCore: WebCore::Image::width const + 24

        Use an empty image when the local image file could not be loaded.

        No test case because it would require forcing tiff load failure.
        
        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::createDeletionUI):
        Do not present the deletion UI in the (odd) event that the delete button could not be loaded.
        
        * platform/graphics/mac/ImageMac.mm:
        (WebCore::Image::loadPlatformResource):
        Return an empty image instead of 0 if the load fails.

2008-02-04  Darin Adler  <darin@apple.com>

        * dom/Document.cpp:
        (WebCore::Document::completeURL): Fixed misleading comment.

2008-02-04  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Darin.

        Blacklist Silverlight versions older than min required, not newer. 

        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackageWin::isPluginBlacklisted):

2008-02-04  David Hyatt  <hyatt@apple.com>

        Fix for bug 16751, misparsing of html*.test in CSS.

        Reviewed by darin

        Added fast/css/simple-selector-chain-parsing.html

        * css/CSSGrammar.y:

2008-02-04  Darin Adler  <darin@apple.com>

        Suggested by Geoff and Maciej.

        * bindings/js/JSCustomSQLTransactionCallback.cpp: Reworded a misleading
        comment to be correct.

2008-02-04  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Steve, Anders.

        <rdar://problem/5211187> QuickTime and Flash plug-ins draw outside of
        content area when inside an iframe or div with overflow when playing a
        movie and scrolling the iframe/div area

        Clip the update region to the zero rect when scrolling. Don't do this
        for Java, because it results in repaint problems. 

        * plugins/PluginQuirkSet.h: Added the DontClipToZeroRectWhenScrolling
        quirk
        (WebCore::):
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::updateWindow): Readded the old behavior of
        clipping to the zero rect when updating the window during a scroll.
        Added plug-in quirk to ignore this behavior for Java. Swapped order of
        the SetWindowRgn() and MoveWindow() calls to prevent Java from painting
        outside of its container during a scroll.
        (WebCore::PluginViewWin::determineQuirks): If this is Java, add the
        DontClipToZeroRectWhenScrolling quirk.

2008-02-04  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Mark Rowe.

        <rdar://problem/5722972> Leopard needs to statically link SQLite

        * Configurations/Base.xcconfig: Always have a header search path for WebCoreSQLite3.
        * Configurations/DebugRelease.xcconfig: Ditto.
        * Configurations/WebCore.xcconfig: Always link against WebCoreSQLite3.

2008-02-04  Adam Roben  <aroben@apple.com>

        Windows build fix

        * bindings/scripts/CodeGeneratorCOM.pm: Touched to force a rebuild of
        the COM bindings.

2008-02-04   David Harrison  <harrison@apple.com>

        Reviewed by Tim Hatcher.

        - fix <rdar://problem/5715481> REGRESSION (r26499): JavaScript document.lastModified is not supported

        Re-add attribute inadvertantly lost by r26499.

        Test: fast/js/lastModified.html: Added.

        * dom/Document.idl:
        Add lastModified.

2008-02-04  Darin Adler  <darin@apple.com>

        Reviewed by Geoff.

        - fix <rdar://problem/5713621> Threading issue when destroying database transaction callback

        Do main-thread-only stuff on the main thread.

        Not clear how to make a regression test for this.

        * bindings/js/JSCustomSQLTransactionCallback.cpp:
        (WebCore::JSCustomSQLTransactionCallback::Data::Data): Added.
        (WebCore::JSCustomSQLTransactionCallback::Data::callback): Added.
        (WebCore::JSCustomSQLTransactionCallback::Data::frame): Added.
        (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback): Put data into a
        separate Data object; we'll destroy it on the main thread.
        (WebCore::JSCustomSQLTransactionCallback::deleteData): Added.
        (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback): Call the
        deleteData function on the main thread.
        (WebCore::JSCustomSQLTransactionCallback::handleEvent): Updated to get at fields through the
        m_data object.
        * bindings/js/JSCustomSQLTransactionCallback.h: Declare deleteData, Data, and m_data rather
        than m_callback and m_frame.

2008-02-04  Adam Roben  <aroben@apple.com>

        Fix the search field if the inpsected Document has overridden
        Document.evaluate or Document.querySelectorAll

        Reviewed by Darin.

        * manual-tests/inspector-document-methods-override.html: Added.
        * page/InspectorController.cpp:
        (WebCore::InspectorController::didCommitLoad): Reworded a comment to
        force WebCore.vcproj to build.
        * page/inspector/inspector.js: Call
        Document.prototype.{evaluate,querySelectorAll}.call instead of calling
        the functions directly on the inspected Document. This ensures we are
        calling the version of these functions we intended to.

2008-02-04  Darin Adler  <darin@apple.com>

        Reviewed by Tim Hatcher.

        - possible fix for <rdar://problem/5714030> Crash in Database::deliverAllPendingCallbacks()
          reloading a page quickly

        I don't fully understand the cause of the crash, but I think this might
        be a helpful change.

        * platform/sql/SQLiteTransaction.cpp:
        (WebCore::SQLiteTransaction::commit): If the commit fails, don't leave this
        transaction and database both marked as "still in progress". As far as I can
        tell this does no good, and also seems to do harm.
        (WebCore::SQLiteTransaction::rollback): Ditto.

        * storage/Database.cpp:
        (WebCore::Database::performTransactionStep): Add some assertions to
        detect databases stuck in the "transaction in progress" state.
        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::openTransactionAndPreflight): Ditto.
        (WebCore::SQLTransaction::postflightAndCommit): Ditto.
        (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto.

2008-02-04  Darin Adler  <darin@apple.com>

        Reviewed by Geoff.

        - fix <rdar://problem/5715692> REGRESSION (r28570): JavaScript window.scrollTo()
          calls no longer accept 'undefined' values

        By default, we should accept non-numeric parameters and non-integral numbers for
        parameters that expect integers, without throwing exceptions.

        While creating the test for this, I ran into a couple minor bugs with the
        functions involved, and this patch fixes those too.

        Test: fast/dom/non-numeric-values-numeric-parameters.html

        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        (WebCore::JSHTMLOptionsCollection::add): Added. This function has unusual behavior
        when passed non-integral values for its second parameter, so it needs to be written
        by hand. I think that [Custom] is better here than inventing a new keyword.

        * bindings/scripts/CodeGeneratorJS.pm: Changed default for "long" and "unsigned long"
        to ignore errors rather than failing due to type differences. Also changed a couple
        functions to use hashes.

        * css/CSSStyleSheet.h:
        (WebCore::CSSStyleSheet::removeRule): Remove overload of removeRule without a second
        parameters. While we do allow this from JavaScript, it's not a true optional parameter,
        but rather just a case of "you can omit parameters and they are treated as undefined"
        combined with "undefined turns into 0 when passed to a function that takes an integer".
        * css/CSSStyleSheet.idl: Removed [Optional] on the index parameter for removeRule.
        This is not truly an optional parameter.

        * dom/ProgressEvent.cpp:
        (WebCore::ProgressEvent::initProgressEvent): Updated this function to match other
        DOM event init functions -- important to do nothing if this is called on the an
        already-dispatched event and we need to respect the bubble and cancelable arguments.
        Also removed initProgressEventNS. We don't support namespaced events, and if we add
        support, it should be across all event classes, not just ProgressEvent.
        * dom/ProgressEvent.h: Removed initProgressEventNS.
        * dom/ProgressEvent.idl: Ditto.

        * dom/Range.cpp:
        (WebCore::Range::createContextualFragment): Added a check for 0. This can happen
        if the passed-in start container is a node that's not an HTML element and also
        does not have a parent.

        * html/HTMLOptionsCollection.idl: Added the [Custom] attribute to add, since the
        rules for processing its parameters are unusual.

        * page/DOMSelection.cpp: Removed the version of setPosition that has only
        one parameter. The offset is not really optional.
        * page/DOMSelection.h: Ditto.
        * page/DOMSelection.idl: Removed the [Optional] keyword for the second parameter of
        setPosition. It's not a true optional parameter (see discussion of removeRule above).

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::adjustWindowRect): Simplified logic for constraining the X
        and Y coordinates, in a way that makes them work even when the window coordinates
        are infinite. Also strengthened the assertion.

2008-02-04  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Mark Rowe.

        Remove all trailing whitespace in the GTK+ port and related
        components.

        * GNUmakefile.am:
        * page/gtk/DragControllerGtk.cpp:
        (WebCore::DragController::dragOperation):
        (WebCore::DragController::maxDragImageSize):
        * page/gtk/EventHandlerGtk.cpp:
        (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
        (WebCore::EventHandler::createDraggingClipboard):
        * page/gtk/FrameGtk.cpp:
        (WebCore::Frame::dragImageForSelection):
        * platform/graphics/cairo/AffineTransformCairo.cpp:
        (WebCore::AffineTransform::mapRect):
        (WebCore::AffineTransform::isIdentity):
        (WebCore::AffineTransform::operator== ):
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::drawLine):
        * platform/graphics/cairo/ImageBufferCairo.cpp:
        * platform/graphics/cairo/ImageCairo.cpp:
        * platform/graphics/cairo/ImageSourceCairo.cpp:
        (WebCore::createDecoder):
        * platform/graphics/gtk/FontCacheGtk.cpp:
        * platform/graphics/gtk/FontGtk.cpp:
        * platform/graphics/gtk/FontPlatformData.h:
        * platform/graphics/gtk/FontPlatformDataGtk.cpp:
        * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
        * platform/graphics/gtk/IconGtk.cpp:
        * platform/graphics/gtk/ImageGtk.cpp:
        * platform/graphics/gtk/SimpleFontDataGtk.cpp:
        * platform/gtk/ClipboardGtk.h:
        * platform/gtk/ContextMenuItemGtk.cpp:
        (WebCore::ContextMenuItem::createNativeMenuItem):
        * platform/gtk/CursorGtk.cpp:
        * platform/gtk/DragDataGtk.cpp:
        * platform/gtk/DragImageGtk.cpp:
        (WebCore::createDragImageIconForCachedImage):
        * platform/gtk/FileChooserGtk.cpp:
        (WebCore::stringByAdoptingFileSystemRepresentation):
        * platform/gtk/FileSystemGtk.cpp:
        (WebCore::fileExists):
        (WebCore::deleteFile):
        (WebCore::deleteEmptyDirectory):
        * platform/gtk/KeyEventGtk.cpp:
        * platform/gtk/KeyboardCodes.h:
        * platform/gtk/LocalizedStringsGtk.cpp:
        (WebCore::inputElementAltText):
        (WebCore::resetButtonDefaultLabel):
        (WebCore::fileButtonChooseFileLabel):
        (WebCore::fileButtonNoFileSelectedLabel):
        (WebCore::contextMenuItemTagOpenImageInNewWindow):
        * platform/gtk/MIMETypeRegistryGtk.cpp:
        (WebCore::):
        * platform/gtk/MouseEventGtk.cpp:
        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::PasteboardSelectionData::markup):
        (WebCore::Pasteboard::writeSelection):
        * platform/gtk/PasteboardHelper.h:
        * platform/gtk/PlatformScreenGtk.cpp:
        (WebCore::screenDepth):
        (WebCore::screenIsMonochrome):
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        * platform/gtk/PlatformScrollBar.h:
        * platform/gtk/PlatformScrollBarGtk.cpp:
        (PlatformScrollbar::PlatformScrollbar):
        (PlatformScrollbar::updateThumbPosition):
        * platform/gtk/PopupMenuGtk.cpp:
        (WebCore::PopupMenu::updateFromElement):
        * platform/gtk/RenderThemeGtk.h:
        * platform/gtk/ScrollViewGtk.cpp:
        (WebCore::ScrollView::scrollBy):
        (WebCore::ScrollView::addChild):
        (WebCore::ScrollView::updateScrollbars):
        (WebCore::ScrollView::windowToContents):
        (WebCore::ScrollView::contentsToWindow):
        (WebCore::ScrollView::scrollbarUnderMouse):
        * platform/gtk/SearchPopupMenuGtk.cpp:
        * platform/gtk/SharedTimerGtk.cpp:
        * platform/gtk/SystemTimeLinux.cpp:
        (WebCore::currentTime):
        * platform/gtk/TemporaryLinkStubs.cpp:
        (PlugInInfoStore::pluginNameForMIMEType):
        * platform/gtk/ThreadingGtk.cpp:
        (WebCore::establishIdentifierForThread):
        (WebCore::threadForIdentifier):
        (WebCore::clearThreadForIdentifier):
        (WebCore::ThreadCondition::ThreadCondition):
        * platform/gtk/WheelEventGtk.cpp:
        * platform/gtk/WidgetGtk.cpp:
        * platform/network/curl/ResourceHandleCurl.cpp:
        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::setupPOST):
        * platform/network/curl/ResourceHandleManager.h:
        * platform/network/curl/ResourceRequest.h:
        (WebCore::ResourceRequest::ResourceRequest):
        * platform/network/curl/ResourceResponse.h:

2008-02-03  Christian Dywan  <christian@imendio.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=17046
        [GTK] Context menu fixes and customisation suport

        Provide standard GTK+ context menu items where appropriate.

        Note that this change makes direct use of WebKit from WebCore which is
        against WebKit/GTK+ guidelines. The ContextMenu abstraction should be
        fixed at some point.

        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::contextMenuItemSelected):
        * platform/ContextMenu.cpp:
        (WebCore::createAndAppendInputMethodsSubMenu):
        (WebCore::):
        (WebCore::insertControlCharacter):
        (WebCore::createAndAppendUnicodeSubMenu):
        (WebCore::ContextMenu::populate):
        (ContextMenu::checkOrEnableIfNeeded):
        * platform/ContextMenuItem.h:
        (WebCore::):
        * platform/LocalizedStrings.h:
        * platform/gtk/ContextMenuItemGtk.cpp:
        (WebCore::gtkStockIDFromContextMenuAction):
        * platform/gtk/LocalizedStringsGtk.cpp:
        (WebCore::gtkStockLabel):
        (WebCore::contextMenuItemTagCopy):
        (WebCore::contextMenuItemTagDelete):
        (WebCore::contextMenuItemTagSelectAll):
        (WebCore::contextMenuItemTagUnicode):
        (WebCore::contextMenuItemTagInputMethods):
        (WebCore::contextMenuItemTagGoBack):
        (WebCore::contextMenuItemTagGoForward):
        (WebCore::contextMenuItemTagStop):
        (WebCore::contextMenuItemTagCut):
        (WebCore::contextMenuItemTagPaste):
        (WebCore::contextMenuItemTagBold):
        (WebCore::contextMenuItemTagItalic):
        (WebCore::contextMenuItemTagUnderline):

2008-02-03  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej.

        Bug 17169: Support transform on Canvas

        Nice and simple patch as the cross-platform code to apply
        a transform was already there.

        Tests: fast/canvas/canvas-transform-identity.html
               fast/canvas/canvas-transform-infinity.html
               fast/canvas/canvas-transform-multiply.html
               fast/canvas/canvas-transform-nan.html
               fast/canvas/canvas-transform-skewed.html

        * html/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::transform):
        * html/CanvasRenderingContext2D.h:
        * html/CanvasRenderingContext2D.idl:

2008-02-03  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Oliver.

        Fix mistake in SVGImageElement, breaking "Dock" example of carto.net
        It was comparing against the wrong attribute names in svgAttributeChanged().

        Added testcase: svg/custom/js-update-image.svg

        * svg/SVGImageElement.cpp:
        (WebCore::SVGImageElement::svgAttributeChanged):

2008-02-03  Eric Seidel  <eric@webkit.org>

        Reviewed by darin.

        Acid3 expects textNode.localName === null
        http://bugs.webkit.org/show_bug.cgi?id=17060

        Test: fast/dom/Node/initial-values.html

        * dom/Comment.cpp: remove localName implementation
        * dom/Comment.h:
        * dom/Node.cpp: return nullAtom instead of emptyAtom
        * dom/Text.cpp: remove localName implementation
        * dom/Text.h:

2008-02-03  Eric Seidel  <eric@webkit.org>

        Reviewed by darin.

        Make createElementNS and createAttributeNS follow the (vague) DOM Core 2 spec
        by throwing exceptions for more types of invalid qualified names.
        http://bugs.webkit.org/show_bug.cgi?id=16833

        Tests: fast/dom/Document/createAttributeNS-namespace-err.html
               fast/dom/Document/createElementNS-namespace-err.html

        * dom/Document.cpp:
        (WebCore::Document::createElement):
        (WebCore::hasNamespaceError):
        (WebCore::Document::createElementNS):
        (WebCore::Document::createAttributeNS):
        * dom/Document.idl:

2008-02-03  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric.

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

        Dramatically improve dynamic update performance in DOM / SVG DOM.

        The notifyAttributeChange() sledgehammer is gone now. It was implemented on quite a lot of
        SVG*Element classes and blindly reacted on any property change caused by DOM / SVG DOM
        by rebuilding style/renderer etc. without actually checking what changed. SVG used a hack
        for years that attributeChanged() called notifyAttributeChange() - which results in poor
        scripting performance and/or dynamic creation/modification of elements using SVG DOM.

        Properly implement childrenChanged / attributeChanged in SVG with some derivation from the HTML code.
        Our SVG* element classes implement "svgAttributeChanged(const QualifiedName&)" instead of
        "attributeChanged(Attribute*...)" to be able to unify DOM / SVG DOM updates. SVG DOM classes
        are aware of the attribute name they belong to. So when using "rectElement.transform.baseVal.getItem(0).setRotate(45)"
        SVG DOM updates the <rect> element by calling svgAttributeChanged(SVGNames::transformAttr) on the corresponding
        SVGRectElement. So we're now able to handle fast dynamic updates in a unified way - leading to less bugs.

        HTML dynamic updates vs. SVG dynamic updates:

        HTML:
            1) setAttribute("foo", "bar") -> attributeChanged -> parseMappedAttribute -> setChanged/setNeedsLayout
            2) someObject.foo = "bar" -> HTML code maps to setAttribute calls, ends up taking the same route as 1)
            3) someObject.style.foo = "bar" -> setChanged -> recalcStyle (possible relayout)

        SVG:
            1) setAttribute("foo", "bar") -> attributeChanged -> svgAttributeChanged -> parseMappedAttribute -> setChanged/setNeedsLayout
            2) same, currently most functions are not yet converted to this new system! (most noticeable in SVGMarkerElement::setOrientToAngle)    
            3) same
            4) someRectElement.x.baseVal.value = 100 -> svgAttributeChanged -> setChanged/setNeedsLayout (special SVG DOM updating)
        
        The new SVG DOM updating concept 4) uses the same updating logic as 1) and 2), so we're actually modelling the HTML way.
        SVG handles calling setChanged/setNeedsLayout in svgAttributeChanged, unlike HTML which uses parseMappedAttribute for that.

        Only updated all elements necessary to let us pass layout tests w/o regressions. Need to crawl through
        all SVG*Element classes and implement svgAttributeChanged / childrenChanged anywhere needed in a follow-up patch.

        * bindings/js/JSSVGPODTypeWrapper.h:
        (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
        (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::commitChange):
        (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
        (WebCore::JSSVGPODTypeWrapperCreatorForList::operator PODType):
        (WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
        * bindings/js/JSSVGPathSegListCustom.cpp:
        (WebCore::JSSVGPathSegList::clear):
        (WebCore::JSSVGPathSegList::initialize):
        (WebCore::JSSVGPathSegList::insertItemBefore):
        (WebCore::JSSVGPathSegList::replaceItem):
        (WebCore::JSSVGPathSegList::removeItem):
        (WebCore::JSSVGPathSegList::appendItem):
        * bindings/js/JSSVGPointListCustom.cpp:
        (WebCore::JSSVGPointList::clear):
        (WebCore::JSSVGPointList::initialize):
        (WebCore::JSSVGPointList::getItem):
        (WebCore::JSSVGPointList::insertItemBefore):
        (WebCore::JSSVGPointList::replaceItem):
        (WebCore::JSSVGPointList::removeItem):
        (WebCore::JSSVGPointList::appendItem):
        * bindings/js/JSSVGTransformListCustom.cpp:
        (WebCore::JSSVGTransformList::clear):
        (WebCore::JSSVGTransformList::initialize):
        (WebCore::JSSVGTransformList::getItem):
        (WebCore::JSSVGTransformList::insertItemBefore):
        (WebCore::JSSVGTransformList::replaceItem):
        (WebCore::JSSVGTransformList::removeItem):
        (WebCore::JSSVGTransformList::appendItem):
        * bindings/scripts/CodeGeneratorJS.pm:
        * rendering/RenderSVGGradientStop.cpp:
        (WebCore::RenderSVGGradientStop::setStyle):
        * rendering/RenderSVGGradientStop.h:
        * svg/SVGAElement.cpp:
        (WebCore::SVGAElement::defaultEventHandler):
        * svg/SVGAElement.h:
        * svg/SVGAngle.cpp:
        * svg/SVGAngle.h:
        (WebCore::SVGAngle::associatedAttributeName):
        * svg/SVGAnimatedTemplate.h:
        (WebCore::SVGAnimatedTemplate::SVGAnimatedTemplate):
        (WebCore::SVGAnimatedTemplate::wrapperCache):
        (WebCore::SVGAnimatedTemplate::associatedAttributeName):
        (WebCore::lookupOrCreateWrapper):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::parseBeginOrEndValue):
        * svg/SVGAnimationElement.h:
        * svg/SVGCircleElement.cpp:
        (WebCore::SVGCircleElement::svgAttributeChanged):
        * svg/SVGCircleElement.h:
        * svg/SVGClipPathElement.cpp:
        (WebCore::SVGClipPathElement::svgAttributeChanged):
        (WebCore::SVGClipPathElement::childrenChanged):
        (WebCore::SVGClipPathElement::canvasResource):
        * svg/SVGClipPathElement.h:
        (WebCore::SVGClipPathElement::isValid):
        (WebCore::SVGClipPathElement::rendererIsNeeded):
        * svg/SVGComponentTransferFunctionElement.cpp:
        (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
        * svg/SVGComponentTransferFunctionElement.h:
        * svg/SVGCursorElement.cpp:
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::insertedIntoDocument):
        (WebCore::SVGElement::attributeChanged):
        * svg/SVGElement.h:
        (WebCore::SVGElement::svgAttributeChanged):
        * svg/SVGEllipseElement.cpp:
        (WebCore::SVGEllipseElement::svgAttributeChanged):
        * svg/SVGEllipseElement.h:
        * svg/SVGExternalResourcesRequired.cpp:
        (WebCore::SVGExternalResourcesRequired::isKnownAttribute):
        * svg/SVGExternalResourcesRequired.h:
        * svg/SVGFEBlendElement.cpp:
        * svg/SVGFEColorMatrixElement.cpp:
        (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
        * svg/SVGFEComponentTransferElement.cpp:
        * svg/SVGFECompositeElement.cpp:
        * svg/SVGFEDiffuseLightingElement.cpp:
        * svg/SVGFEDisplacementMapElement.cpp:
        * svg/SVGFEFloodElement.cpp:
        * svg/SVGFEGaussianBlurElement.cpp:
        * svg/SVGFEImageElement.cpp:
        * svg/SVGFELightElement.cpp:
        * svg/SVGFEMergeNodeElement.cpp:
        * svg/SVGFEOffsetElement.cpp:
        * svg/SVGFESpecularLightingElement.cpp:
        * svg/SVGFETileElement.cpp:
        * svg/SVGFETurbulenceElement.cpp:
        * svg/SVGFilterElement.cpp:
        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
        * svg/SVGFitToViewBox.cpp:
        (WebCore::SVGFitToViewBox::isKnownAttribute):
        * svg/SVGFitToViewBox.h:
        * svg/SVGForeignObjectElement.cpp:
        * svg/SVGGElement.cpp:
        (WebCore::SVGGElement::svgAttributeChanged):
        (WebCore::SVGGElement::childrenChanged):
        * svg/SVGGElement.h:
        * svg/SVGGradientElement.cpp:
        (WebCore::SVGGradientElement::SVGGradientElement):
        (WebCore::SVGGradientElement::svgAttributeChanged):
        (WebCore::SVGGradientElement::childrenChanged):
        (WebCore::SVGGradientElement::buildStops):
        * svg/SVGGradientElement.h:
        * svg/SVGImageElement.cpp:
        (WebCore::SVGImageElement::parseMappedAttribute):
        (WebCore::SVGImageElement::svgAttributeChanged):
        * svg/SVGImageElement.h:
        * svg/SVGLangSpace.cpp:
        (WebCore::SVGLangSpace::isKnownAttribute):
        * svg/SVGLangSpace.h:
        * svg/SVGLengthList.cpp:
        (WebCore::SVGLengthList::SVGLengthList):
        * svg/SVGLengthList.h:
        * svg/SVGLineElement.cpp:
        (WebCore::SVGLineElement::svgAttributeChanged):
        * svg/SVGLineElement.h:
        * svg/SVGLinearGradientElement.cpp:
        (WebCore::SVGLinearGradientElement::svgAttributeChanged):
        * svg/SVGLinearGradientElement.h:
        * svg/SVGList.h:
        (WebCore::SVGList::SVGList):
        (WebCore::SVGList::associatedAttributeName):
        (WebCore::SVGPODList::SVGPODList):
        * svg/SVGMarkerElement.cpp:
        (WebCore::SVGMarkerElement::svgAttributeChanged):
        (WebCore::SVGMarkerElement::childrenChanged):
        * svg/SVGMarkerElement.h:
        * svg/SVGMaskElement.cpp:
        (WebCore::SVGMaskElement::svgAttributeChanged):
        (WebCore::SVGMaskElement::childrenChanged):
        * svg/SVGMaskElement.h:
        * svg/SVGNumberList.cpp:
        (WebCore::SVGNumberList::SVGNumberList):
        * svg/SVGNumberList.h:
        * svg/SVGPathElement.cpp:
        (WebCore::SVGPathElement::svgAttributeChanged):
        (WebCore::SVGPathElement::pathSegList):
        * svg/SVGPathElement.h:
        * svg/SVGPathSeg.h:
        (WebCore::SVGPathSeg::associatedAttributeName):
        * svg/SVGPathSegList.cpp:
        (WebCore::SVGPathSegList::SVGPathSegList):
        * svg/SVGPathSegList.h:
        * svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::SVGPatternElement):
        (WebCore::SVGPatternElement::svgAttributeChanged):
        (WebCore::SVGPatternElement::childrenChanged):
        * svg/SVGPatternElement.h:
        * svg/SVGPointList.cpp:
        (WebCore::SVGPointList::SVGPointList):
        * svg/SVGPointList.h:
        * svg/SVGPolyElement.cpp:
        (WebCore::SVGPolyElement::SVGPolyElement):
        (WebCore::SVGPolyElement::points):
        (WebCore::SVGPolyElement::parseMappedAttribute):
        (WebCore::SVGPolyElement::svgAttributeChanged):
        * svg/SVGPolyElement.h:
        * svg/SVGPolygonElement.cpp:
        * svg/SVGPolygonElement.h:
        * svg/SVGPolylineElement.cpp:
        * svg/SVGPolylineElement.h:
        * svg/SVGPreserveAspectRatio.cpp:
        * svg/SVGPreserveAspectRatio.h:
        (WebCore::SVGPreserveAspectRatio::associatedAttributeName):
        * svg/SVGRadialGradientElement.cpp:
        (WebCore::SVGRadialGradientElement::svgAttributeChanged):
        * svg/SVGRadialGradientElement.h:
        * svg/SVGRectElement.cpp:
        (WebCore::SVGRectElement::svgAttributeChanged):
        * svg/SVGRectElement.h:
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::parseMappedAttribute):
        (WebCore::SVGSVGElement::svgAttributeChanged):
        * svg/SVGSVGElement.h:
        * svg/SVGStopElement.cpp:
        (WebCore::SVGStopElement::parseMappedAttribute):
        (WebCore::SVGStopElement::createRenderer):
        * svg/SVGStopElement.h:
        * svg/SVGStringList.cpp:
        (WebCore::SVGStringList::SVGStringList):
        * svg/SVGStringList.h:
        * svg/SVGStylable.cpp:
        * svg/SVGStylable.h:
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::isKnownAttribute):
        (WebCore::SVGStyledElement::svgAttributeChanged):
        (WebCore::SVGStyledElement::invalidateResourcesInAncestorChain):
        (WebCore::SVGStyledElement::childrenChanged):
        * svg/SVGStyledElement.h:
        * svg/SVGStyledLocatableElement.cpp:
        * svg/SVGStyledLocatableElement.h:
        * svg/SVGStyledTransformableElement.cpp:
        (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
        (WebCore::SVGStyledTransformableElement::parseMappedAttribute):
        (WebCore::SVGStyledTransformableElement::isKnownAttribute):
        * svg/SVGStyledTransformableElement.h:
        * svg/SVGTests.cpp:
        (WebCore::SVGTests::requiredFeatures):
        (WebCore::SVGTests::requiredExtensions):
        (WebCore::SVGTests::systemLanguage):
        (WebCore::SVGTests::isKnownAttribute):
        * svg/SVGTests.h:
        * svg/SVGTextContentElement.cpp:
        * svg/SVGTextElement.cpp:
        (WebCore::SVGTextElement::SVGTextElement):
        * svg/SVGTextElement.h:
        * svg/SVGTextPathElement.cpp:
        * svg/SVGTextPathElement.h:
        * svg/SVGTextPositioningElement.cpp:
        (WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
        * svg/SVGTextPositioningElement.h:
        * svg/SVGTransformList.cpp:
        (SVGTransformList::SVGTransformList):
        * svg/SVGTransformList.h:
        * svg/SVGTransformable.cpp:
        (WebCore::SVGTransformable::isKnownAttribute):
        * svg/SVGTransformable.h:
        * svg/SVGURIReference.cpp:
        (WebCore::SVGURIReference::isKnownAttribute):
        * svg/SVGURIReference.h:
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::insertedIntoDocument):
        (WebCore::SVGUseElement::svgAttributeChanged):
        (WebCore::SVGUseElement::childrenChanged):
        (WebCore::SVGUseElement::buildPendingResource):
        * svg/SVGUseElement.h:
        * svg/SVGViewElement.cpp:
        (WebCore::SVGViewElement::SVGViewElement):
        (WebCore::SVGViewElement::viewTarget):
        (WebCore::SVGViewElement::parseMappedAttribute):
        * svg/SVGViewElement.h:
        * svg/SVGViewSpec.cpp:
        (WebCore::SVGViewSpec::SVGViewSpec):
        * svg/SVGViewSpec.h:
        * svg/SVGZoomAndPan.cpp:
        (WebCore::SVGZoomAndPan::isKnownAttribute):
        * svg/SVGZoomAndPan.h:
        * svg/graphics/SVGResource.cpp:
        (WebCore::SVGResource::invalidate):
        (WebCore::SVGResource::invalidateClients):
        (WebCore::SVGResource::addClient):
        * svg/graphics/SVGResource.h:
        * svg/graphics/SVGResourceMasker.cpp:
        (WebCore::SVGResourceMasker::invalidate):
        * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
        (WebCore::SVGPaintServerGradient::invalidate):
        * svg/graphics/filters/SVGFEImage.cpp:
        (WebCore::SVGFEImage::imageChanged):

2008-02-03  Kevin Ollivier  <kevino@theolliviers.com>

        Build fix for last wx commit (a couple things were not committed).

        * platform/ScrollView.h:
        * platform/Widget.h:

2008-02-03  Kevin Ollivier  <kevino@theolliviers.com>

        Clean up overlooked coding guideline issues from last commit.

        * platform/wx/ScrollViewWx.cpp:
        (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
        (WebCore::ScrollView::update):
        (WebCore::ScrollView::scrollBy):
        (WebCore::ScrollView::resizeContents):
        (WebCore::ScrollView::adjustScrollbars):
        (WebCore::ScrollView::setScrollbarsMode):
        (WebCore::ScrollView::setHScrollbarMode):
        (WebCore::ScrollView::setVScrollbarMode):
        (WebCore::ScrollView::suppressScrollbars):
        * platform/wx/WidgetWx.cpp:
        (WebCore::Widget::setCursor):

2008-02-03  Kevin Watters  <kevinwatters@gmail.com>

        Reviewed by Kevin Ollivier.

        * platform/wx/RenderThemeWx.cpp:
        (WebCore::RenderThemeWx::paintButton):
        * platform/wx/ScrollViewWx.cpp:
        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
        (WebCore::ScrollView::ScrollViewPrivate::bindEvents):
        (WebCore::ScrollView::ScrollViewPrivate::OnMouseWheelEvents):
        (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
        (WebCore::ScrollView::ScrollView):
        (WebCore::ScrollView::setNativeWindow):
        (WebCore::ScrollView::updateContents):
        (WebCore::ScrollView::update):
        (WebCore::ScrollView::visibleWidth):
        (WebCore::ScrollView::visibleHeight):
        (WebCore::ScrollView::setContentsPos):
        (WebCore::ScrollView::scrollBy):
        (WebCore::ScrollView::resizeContents):
        (WebCore::ScrollView::contentsX):
        (WebCore::ScrollView::contentsY):
        (WebCore::ScrollView::contentsWidth):
        (WebCore::ScrollView::contentsHeight):
        (WebCore::ScrollView::AdjustScrollbars):
        (WebCore::ScrollView::setScrollbarsMode):
        (WebCore::ScrollView::setHScrollbarMode):
        (WebCore::ScrollView::setVScrollbarMode):
        (WebCore::ScrollView::suppressScrollbars):
        (WebCore::ScrollView::inWindow):
        (WebCore::ScrollView::wheelEvent):
        (WebCore::ScrollView::addChild):
        (WebCore::ScrollView::removeChild):
        (WebCore::ScrollView::children):
        (WebCore::ScrollView::scrollRectIntoViewRecursively):
        (WebCore::ScrollView::scrollbarUnderMouse):
        * platform/wx/WidgetWx.cpp:
        (WebCore::Widget::Widget):
        (WebCore::Widget::~Widget):
        (WebCore::Widget::nativeWindow):
        (WebCore::Widget::setNativeWindow):

2008-02-02  David Hyatt  <hyatt@apple.com>

        Fix for bug 5468, support CSS3 :only-child and :only-of-type selectors.

        Reviewed by olliej

        Added fast/css/only-child-pseudo-class.html, fast/css/only-of-type-pseudo-class.html

        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::extractPseudoType):
        * css/CSSSelector.h:
        (WebCore::CSSSelector::):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkOneSelector):

2008-02-02  Darin Adler  <darin@apple.com>

        Reviewed by Geoff Garen.

        PLT speedup related to <rdar://problem/5659272> REGRESSION: PLT .4%
        slower due to r28884 (global variable symbol table optimization)

        * history/CachedPage.cpp:
        (WebCore::CachedPage::CachedPage): Removed saveSymbolTable call.
        (WebCore::CachedPage::restore): Removed restoreSymbolTable call.
        (WebCore::CachedPage::clear): Removed clear of m_windowSymbolTable.

        * history/CachedPage.h: Removed m_windowSymbolTable, since save/restoreLocalStorage
        now takes care of the symbol table. Also removed many unnecessary includes.

2008-02-02  Tony Chang  <idealisms@gmail.com>

        Reviewed by eseidel.

        Add an include for for <objidl.h> which isn't included
        by default with WIN32_LEAN_AND_MEAN.
        * platform/graphics/FontCache.h:

2008-02-02  Kevin Watters  <kevin@dotsyntax.com>

        Reviewed by Kevin Ollivier.

        wxFont is reference counted and meant to be used as as a value
        object; when using wxFont*, ref-counting was not happening properly
        and the font object would be destroyed while still in use.

        Also, fix memory leak in wx's FrameData::clear() method.

        * platform/graphics/SimpleFontData.h:
        (WebCore::SimpleFontData::getWxFont):
        * platform/graphics/wx/FontPlatformData.h:
        (WebCore::FontPlatformData::):
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::font):
        (WebCore::FontPlatformData::hash):
        (WebCore::FontPlatformData::operator==):
        (WebCore::FontPlatformData::computeHash):
        * platform/graphics/wx/FontPlatformDataWx.cpp:
        (WebCore::fontFamilyToWxFontFamily):
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::~FontPlatformData):
        * platform/graphics/wx/FontWx.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/wx/SimpleFontDataWx.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformWidthForGlyph):

2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>

        Reviewed by Adam Roben.

        On MSW, the wx port internally uses callbacks for wxTimer, so the
        wx port suffers from the same crash problem that was fixed
        in r28500 for the Windows port. For now, use the SharedTimerWin.cpp
        impl. for wx too on MSW, until a version of wx is released that
        fixes the issue by reworking wxTimer.

        * page/Page.h:
        * platform/win/SharedTimerWin.cpp:
        (WebCore::TimerWindowWndProc):
        * webcore-wx.bkl:

2008-02-02  Mark Rowe  <mrowe@apple.com>

        Qt build fix.

        * platform/qt/ThreadingQt.cpp: Fix typo.

2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>

        Blind build fix for Qt port. Add Threading.h include.

        * platform/qt/ThreadingQt.cpp:

2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix - add missing include file.

        * platform/wx/ThreadingWx.cpp:

2008-02-02  David Hyatt  <hyatt@apple.com>

        Fix for bug 4812. Support last-child and last-of-type CSS3 selectors.  Brings Acid3 score up to 68/100.

        Reviewed by olliej

        Added fast/css/last-child-pseudo-class.html, fast/css/last-of-type-pseudo-class.html

        * css/CSSGrammar.y:
        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::extractPseudoType):
        * css/CSSSelector.h:
        (WebCore::CSSSelector::):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkOneSelector):

2008-02-01  David Hyatt  <hyatt@apple.com>

        Make :first-child and :first-of-type properly dynamic when the DOM changes.  Brings the Acid3 score up
        to 66/100.

        Reviewed by olliej

        Added fast/css/first-child-pseudo-class.html, fast/css/first-of-type-pseudo-class.html, fast/css/empty-body-test.html

        * css/CSSGrammar.y:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkOneSelector):
        * dom/Element.cpp:
        (WebCore::Element::recalcStyle):
        (WebCore::Element::childrenChanged):
        * rendering/RenderStyle.cpp:
        (WebCore::RenderStyle::RenderStyle):
        * rendering/RenderStyle.h:
        (WebCore::RenderStyle::childrenAffectedByFirstChildRules):
        (WebCore::RenderStyle::setChildrenAffectedByFirstChildRules):
        (WebCore::RenderStyle::childrenAffectedByLastChildRules):
        (WebCore::RenderStyle::setChildrenAffectedByLastChildRules):
        (WebCore::RenderStyle::childrenAffectedByPositionalRules):
        (WebCore::RenderStyle::setChildrenAffectedByPositionalRules):
        (WebCore::RenderStyle::firstChildState):
        (WebCore::RenderStyle::setFirstChildState):
        (WebCore::RenderStyle::lastChildState):
        (WebCore::RenderStyle::setLastChildState):

2008-02-02  Dan Bernstein  <mitz@apple.com>

        Reviewed by Oliver Hunt.

        - fix <rdar://problem/5720637> Missing characters in right-to-left complex text where different fonts are used in the same run

        * platform/graphics/win/UniscribeController.cpp:
        (WebCore::UniscribeController::advance): Fixed an off-by-1 error in the
        start offset of sub-runs of RTL runs. Changed to update
        m_currentCharacter to the first character of the sub-run before calling
        itemizeShapeAndPlace. In RTL runs, m_currentCharacter decreases as
        sub-runs are processed from left to right.
        (WebCore::UniscribeController::itemizeShapeAndPlace): Removed the
        updating of m_currentCharacter because advance() does it now.

2008-02-01  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin's rubberstamp

        Move the SecurityOriginHash out into a separate header as it will soon be used in different places

        * WebCore.xcodeproj/project.pbxproj:
        * platform/SecurityOriginHash.h: Added.
        (WebCore::SecurityOriginHash::hash):
        (WebCore::SecurityOriginHash::equal):
        (WebCore::SecurityOriginTraits::deletedValue):
        (WebCore::SecurityOriginTraits::emptyValue):
        * storage/DatabaseTracker.cpp:

2008-02-01  Darin Adler  <darin@apple.com>

        Reviewed by Tim.

        - fixed mistake in the JSLock fix that caused an assertion every time

        * bindings/js/JSCustomSQLTransactionCallback.cpp:
        (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback): Added JSLock.
        (WebCore::unprotectOnMainThread): Ditto.

2008-02-01  Anders Carlsson  <andersca@apple.com>

        Reviewed by Antti and Darin.

        Change Text::createWithLengthLimit to take a UChar pointer instead of a string. This
        lets us avoid making a copy of the buffer in TextDocument.cpp.
        
        * dom/Text.cpp:
        (WebCore::Text::createWithLengthLimit):
        * dom/Text.h:
        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::parseToken):
        * loader/TextDocument.cpp:
        (WebCore::TextTokenizer::write):

2008-02-01  Darin Adler  <darin@apple.com>

        Reviewed by Adam.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::loadsBlocked): Fix grammar and word typo.

2008-02-01  Darin Adler  <darin@apple.com>

        Reviewed by Adam.

        - fix <rdar://problem/4527931> showModalDialog calls from onload functions fail (Aspect)

        No automated regression test because showModalDialog doesn't work in DumpRenderTree.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::CallbackGuard::CallbackGuard): Added.
        (WebCore::CallbackGuard::~CallbackGuard): Added.
        (WebCore::ResourceHandle::supportsBufferedData): Simplified to take advantage of how
        static initialization works in C++.
        (WebCore::ResourceHandle::loadsBlocked): Always return false on Leopard. The problem in
        NSURLConnection that created the need to block loads is fixed in Leoaprd. This is the
        bug fix.
        (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
        Use CallbackGuard instead of directly incrementing the count; allows us to omit the code
        entirely on Leopard.
        (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
        Ditto.
        (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
        Ditto.
        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
        Ditto.
        (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
        Ditto.
        (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
        Ditto.
        (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
        Ditto.
        (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
        Ditto.
        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
        Ditto. Fixes a problem where this could leave inNSURLConnectionCallback set
        permanently in one of the code paths; this would break showModalDialog from that
        point on. This problem doesn't affect Safari.

2008-02-01  Darin Adler  <darin@apple.com>

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::loadsBlocked): Roll out accidentally checked in file.

2008-02-01  Darin Adler  <darin@apple.com>

        Reviewed by Geoff and Brady.

        - fix <rdar://problem/5680469> Each database worker thread takes a JSLock,
          which slows down all JavaScript execution until the thread terminates

        * bindings/js/JSCustomSQLTransactionCallback.cpp:
        (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
        Explicitly gcProtect, since we aren't using ProtectedPtr any more.
        (WebCore::unprotectOnMainThread): Added.
        (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback):
        Use unprotectOnMainThread rather than doing a gcUnprotect here.
        * bindings/js/JSCustomSQLTransactionCallback.h: Changed m_callback from
        a ProtectedPtr to a plain old JSObject*; we gcProtect by hand now.

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::notifyPendingLoadDecisionsOnMainThread):
        Renamed. Changed to takea a void* with the icon database pointer.
        (WebCore::IconDatabase::notifyPendingLoadDecisions): Renamed.
        (WebCore::IconDatabase::performURLImport): Updated name, and pass the
        icon database pointer in.
        * loader/icon/IconDatabase.h: Renamed and added void* parameter.

        * platform/Threading.h: Changed callOnMainThread to take a function with a
        single parameter rather than a function with no parameters. Added a typedef.

        * platform/gtk/ThreadingGtk.cpp:
        (WebCore::callFunctionOnMainThread): Changed to use a structure with both
        a function pointer and a context pointer, and delete it after calling.
        (WebCore::callOnMainThread): Changed to create the structure with both
        the function and context pointer.

        * platform/mac/Threading.mm:
        (-[WebCoreFunctionWrapper initWithFunction:context:]): Added context.
        (-[WebCoreFunctionWrapper invoke]): Updated to do both function and context.
        Renamed from _call.
        (WebCore::callOnMainThread): Updated to take both function and context.

        * platform/qt/ThreadingQt.cpp:
        (WebCore::PerformFunctionEvent::PerformFunctionEvent): Added context.
        (WebCore::PerformFunctionEvent::invoke): Added. Calls function with context pointer.
        (WebCore::MainThreadInvoker::event): Changed to call invoke.
        (WebCore::callOnMainThread): Updated to take both function and context.

        * platform/win/ThreadingWin.cpp: Added FunctionWithContext.
        (WebCore::callFunctionsOnMainThread): Changed to pass call function with context.
        (WebCore::callOnMainThread): Updated to queue both function and context.

        * platform/wx/ThreadingWx.cpp:
        (WebCore::callOnMainThread): Updated to take both function and context.

        * storage/Database.cpp:
        (WebCore::Database::scheduleTransactionCallback): Pass 0 for context.
        (WebCore::Database::deliverAllPendingCallbacks): Changed to take ignored context pointer.
        * storage/Database.h: Added void* parameter to deliverAllPendingCallbacks.

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::scheduleForNotification): Pass 0 for context.
        (WebCore::DatabaseTracker::notifyDatabasesChanged): Changed to take ignored context pointer.
        * storage/DatabaseTracker.h: Added void* parameter to notifyDatabasesChanged.

2008-02-01  Jon Honeycutt  <jhoneycutt@apple.com>

        Rubber-stamped by Ollie.

        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackageWin::load): Fix two function pointers

2008-02-01  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by John Sullivan, Oliver Hunt.

        Fixed <rdar://problem/5688039> REGRESSION (r29428): Weather widget
        fails to load due to reliance on "var location" quirk
        
        Added a Dashboard quirk.

        * bindings/js/kjs_window.cpp:
        (KJS::Window::put): In DB backwards compatibility mode, make assignment
        to window.location in top-level windows shadow the DOM location API
        instead of performing a navigation. This makes a reasonable amount of
        sense, because widgets can't navigate their top-level frames, anyway.

2008-02-01  David Hyatt  <hyatt@apple.com>

        Fix for bug 11387, CSS3 :empty selector is not dynamic.

        Add support for dynamically updating elements whose style is affected by :empty when the child count changes.

        Reviewed by olliej, mitzpettel

        fast/css/empty-pseudo-class.html

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::locateSharedStyle):
        (WebCore::CSSStyleSelector::checkOneSelector):
        * dom/Element.cpp:
        (WebCore::Element::childrenChanged):
        * dom/Element.h:
        * rendering/RenderStyle.h:
        (WebCore::RenderStyle::affectedByEmpty):
        (WebCore::RenderStyle::emptyState):
        (WebCore::RenderStyle::setEmptyState):

2008-02-01  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - switch line breaking from using Carbon Unicode Utilities to using ICU
          on Leopard
          <http://bugs.webkit.org/show_bug.cgi?id=4628>

        fast/text/international/thai-line-breaks.html results do not change.

        * rendering/break_lines.cpp:
        (WebCore::nextBreakablePosition): Changed to use Carbon only on Tiger.

2008-02-01  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewed by Darin.

        Update npfunctions.h to export the proper function signatures for UNIX and add
        the appropriate #if around the Windows versions

        * plugins/npfunctions.h:

2008-02-01  Eric Seidel  <eric@webkit.org>

        Reviewed by Oliver.

        Add getSVGDocument to frame and iframe.

        Test: svg/custom/frame-getSVGDocument.html

        * html/HTMLEmbedElement.cpp:
        * html/HTMLEmbedElement.h:
        * html/HTMLFrameElement.idl:
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::getSVGDocument):
        * html/HTMLFrameOwnerElement.h:
        * html/HTMLIFrameElement.idl:
        * html/HTMLObjectElement.cpp:
        * html/HTMLObjectElement.h:

2008-01-30  Eric Seidel  <eric@webkit.org>

        Reviewed by darin.

        Beat CSSParser with the RefPtr stick.  Hopefully squashing any leaks in the process.
        (Deploy RefPtr and PassRefPtr throughout CSSParser)
        http://bugs.webkit.org/show_bug.cgi?id=17108

        No functional changes, thus no tests.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseColor):
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::addBackgroundValue):
        (WebCore::CSSParser::parseBackgroundShorthand):
        (WebCore::CSSParser::addTransitionValue):
        (WebCore::CSSParser::parseTransitionShorthand):
        (WebCore::CSSParser::parseBackgroundPosition):
        (WebCore::CSSParser::parseBackgroundProperty):
        (WebCore::CSSParser::parseTransitionProperty):
        (WebCore::CSSParser::parseFontFaceSrc):
        (WebCore::ShadowParseContext::ShadowParseContext):
        (WebCore::CSSParser::parseShadow):
        (WebCore::BorderImageParseContext::BorderImageParseContext):
        (WebCore::BorderImageParseContext::commitBorderImage):
        * css/CSSParser.h:
        * css/SVGCSSParser.cpp:
        (WebCore::CSSParser::parseSVGValue):

2008-01-31  Oliver Hunt  <oliver@apple.com>

        RS=Brady.

        Add platform/Locker.h to vcproj

        * WebCore.vcproj/WebCore.vcproj:

2008-01-31  Brady Eidson  <beidson@apple.com>

        Build fix

        * WebCore.xcodeproj/project.pbxproj: Header -> WebKit

2008-01-31  Brady Eidson  <beidson@apple.com>

        Reviewed by Maciej

        Abstracted the concept of a "Locker" as upcoming work will rely on it.

        * platform/Locker.h: Added.  Template class to "lock()" and "unlock()" some arbitrary object
        (WebCore::Locker::Locker): Lock the object
        (WebCore::Locker::~Locker): Unlock it
        * platform/Threading.h: `class MutexLocker` is now `typedef Locker<Mutex>`
        * WebCore.xcodeproj/project.pbxproj:

2008-01-31  Kevin McCullough  <kmccullough@apple.com>

        <rdar://problem/5716912> REGRESSION (r29816): Can't navigate back to
        Gmail Inbox from Gmail Compose page
        Rolling out the change that caused the regression.

        * WebCore.base.exp:
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::JSHTMLDocument::open):
        * dom/DOMImplementation.cpp:
        (WebCore::DOMImplementation::createHTMLDocument):
        * dom/Document.cpp:
        (WebCore::Document::recalcStyle):
        (WebCore::Document::open):
        (WebCore::Document::write):
        (WebCore::Document::clear):
        * dom/Document.h:
        * history/HistoryItem.cpp:
        (WebCore::HistoryItem::HistoryItem):
        * history/HistoryItem.h:
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::didExplicitOpen):
        (WebCore::FrameLoader::load):
        (WebCore::FrameLoader::reloadAllowingStaleData):
        (WebCore::FrameLoader::reload):
        (WebCore::FrameLoader::tokenizerProcessedData):
        (WebCore::FrameLoader::post):
        (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
        (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
        (WebCore::FrameLoader::loadItem):
        * loader/FrameLoader.h:
        * platform/text/CharacterNames.h:
        * xml/DOMParser.cpp:
        (WebCore::DOMParser::parseFromString):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::getResponseXML):
        * xml/XSLTProcessor.cpp:
        (WebCore::XSLTProcessor::createDocumentFromSource):

2008-01-31  Matt Lilek  <webkit@mattlilek.com>

        Reviewed by Tim Hatcher.

        Bug 14960: Cannot copy text in Web Inspector Network panel
        http://bugs.webkit.org/show_bug.cgi?id=14960

        * page/inspector/inspector.css:

2008-01-31  Matt Lilek  <webkit@mattlilek.com>

        Reviewed by Adam Roben.

        Bug 14514: Add full URL view on mouseOver in the network page
        http://bugs.webkit.org/show_bug.cgi?id=14514
        <rdar://problem/5712841>

        * page/inspector/inspector.js:

2008-01-31  Alp Toker  <alp@atoker.com>

        Rubber-stamped Adam Roben.

        http://bugs.webkit.org/show_bug.cgi?id=17006
        [GTK] Header path should be webkit/webkit.h

        Move the GTK+ API sources as needed and update the build systems.

        * GNUmakefile.am:
        * WebCore.pro:

2008-01-31  Sam Weinig  <sam@webkit.org>

        Reviewed by Geoff Garen.

        No need to get the prototype just to compare compare property names.

        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::customGetOwnPropertySlot):

2008-01-31  Sam Weinig  <sam@webkit.org>

        Fix non-mac builds.

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCoreSources.bkl:

2008-01-31  David Hyatt  <hyatt@apple.com>

        Fix for bug 17101.

        List items need to ignore the line box shrinking quirk, since IE and Firefox both do.

        Reviewed by Eric

        fast/lists/list-item-line-height.html

        * rendering/InlineFlowBox.h:
        (WebCore::InlineFlowBox::InlineFlowBox):

2008-01-31  Samuel Weinig  <sam@webkit.org>

        Reviewed by Darin Adler.

        Fix for <rdar://problem/5708993> Mutability of the History object

        - Don't allow cross-domain get access to any of the history objects properties
          except the back(), forward() and go() methods.
        - Don't allow cross-domain put access to any of the history objects properties.
        - Don't allow cross-domain enumeration of the History or Location objects.

        Tests: http/tests/security/cross-frame-access-history-get-override.html
               http/tests/security/cross-frame-access-history-get.html
               http/tests/security/cross-frame-access-history-put.html

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSDOMWindowCustom.cpp: Remove unnessary KJS::'s
        (WebCore::JSDOMWindow::customGetOwnPropertySlot):
        (WebCore::JSDOMWindow::customPut):
        (WebCore::JSDOMWindow::getPropertyNames): Moved implementation from KJS::Window now that the declaration is autogenerated
        using the new CustomGetPropertyNames.
        (WebCore::JSDOMWindow::postMessage):

        * bindings/js/JSHistoryCustom.cpp: Added.
        (WebCore::allowsAccessFromFrame):
        (WebCore::JSHistory::customGetOwnPropertySlot): Only allow getting the declared functions back(), forward() and go() from cross-domain.
        Deny all other gets.
        (WebCore::JSHistory::customPut): Don't allow putting cross-domain.
        (WebCore::JSHistory::getPropertyNames): Don't allow enumeration cross-domain.

        * bindings/js/JSLocation.cpp:
        (WebCore::allowsAccessFromFrame):
        (WebCore::JSLocation::getPropertyNames): Don't allow enumeration cross-domain.
        * bindings/js/JSLocation.h:

        * bindings/js/kjs_window.cpp:
        * bindings/js/kjs_window.h:

        * bindings/scripts/CodeGeneratorJS.pm:
        Add support for new CustomGetPropertNames extended attribute and changed the logic of CustomPutFunction
        to create an overrided put() function even if no read-write properties exist.

        * page/DOMWindow.idl: Added CustomGetPropertNames
        * page/History.idl: Added CustomGetPropertNames

2008-01-30  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.
        
        <rdar://problem/5708115> REGRESSION: Words selected with a double click and copied won't paste into Mail

        * page/mac/WebCoreFrameBridge.h: Re-exposed smartInsertForString:, it's used by a WebKit method used by Mail.

2008-01-31  Adam Roben  <aroben@apple.com>

        Add line box drawing code to InspectorController::drawNodeHighlight

        This makes drawNodeHighlight a complete replacement for the painting
        code in WebKit/mac/WebNodeHighlightView.mm, and also brings line box
        rects to Windows for the first time.

        Reviewed by Darin.

        * dom/Node.h: Changed isSVGElement to always exist, but to only be
        virtual when ENABLE(SVG) is true. This way you can always call
        node->isSVGElement() without checking ENABLE(SVG).
        * page/InspectorController.cpp:
        (WebCore::InspectorController::drawNodeHighlight): Ported line box
        rect code from the Mac implementation in WebNodeHighlightView.mm.

2008-01-31  Adam Roben  <aroben@apple.com>

        Put more knowledge about the node highlight in WebCore

        InspectorController now calculates the overlay rect and node rect when
        drawing the node highlight instead of having them be passed in.
        InspectorController now holds onto the highlighted node so that it can
        determine these rects.

        Once all platforms are calling down to drawNodeHighlight instead of
        drawing the highlight themselves, we can change
        InspectorClient::highlight(Node*) to something like
        InspectorClient::updateAndShowHighlight().

        This also fixes Bug 14264: Node highlight makes it impossible to
        scroll the page
        <http://bugs.webkit.org/show_bug.cgi?id=14264>
        <rdar://5712788>

        Reviewed by Darin.

        * page/InspectorController.cpp:
        (WebCore::InspectorController::highlight): Store the node for use in
        drawNodeHighlight.
        (WebCore::InspectorController::drawNodeHighlight): Changed to be a
        const instance method. Now calculates the overlay rect and node rect
        instead of having them passed in.
        * page/InspectorController.h:

2008-01-31  Adam Roben  <aroben@apple.com>

        Add node highlight drawing code to InspectorController

        The code came from WebKit/win/WebNodeHighlight.cpp. It's not quite as
        complete as the Mac implementation (in particular, it doesn't handle
        line-box rects), but it's a start.

        Reviewed by Darin.

        * page/InspectorController.cpp:
        (WebCore::InspectorController::drawNodeHighlight): Added.
        * page/InspectorController.h:

2008-01-31  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=17107
          <rdar://problem/5716722> REGRESSION (r29834): Article text on redhat.com magazine site appears to be painting twice

        Test: fast/block/float/intruding-painted-twice.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlock): Pass 'false' for the new
        makeChildPaintOtherFloats parameter to addOverhangingFloats() because at
        this point we are only taking away floats from the child.
        (WebCore::RenderBlock::layoutBlockChildren): Pass 'true' for the new
        makeChildPaintOtherFloats parameter to addOverhangingFloats() iff the
        child was not laid out again. Only in that case, it may have overhanging
        floats that it does not paint because they used to be overhanging from
        the parent, but now they are not.
        (WebCore::RenderBlock::addOverhangingFloats): Refined the conditions for
        making the child paint the float: require that the float be a descendant
        of the child (the other case is when it intrudes into the child from
        another sibling) and that it does not have a layer (in which case it
        paints itself). In addition, do the check only if the caller passed
        'true' for the makeChildPaintOtherFloats parameter.
        * rendering/RenderBlock.h:

2008-01-30  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - change the interpretation of unicode-range values in "from-to" form
          to include the "to" character.

        Test: fast/css/font-face-unicode-range.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseFontFaceUnicodeRange):
        * css/CSSSegmentedFontFace.cpp:
        (WebCore::CSSSegmentedFontFace::overlayRange):
        * platform/graphics/GlyphPageTreeNode.cpp:
        (WebCore::GlyphPageTreeNode::initializePage):
        * platform/graphics/SegmentedFontData.cpp:
        (WebCore::SegmentedFontData::fontDataForCharacter):
        (WebCore::SegmentedFontData::containsCharacters):

2008-01-30  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - prune references to custom fonts' SimpleFontData from the glyph page
          tree when they are destroyed

        * css/CSSFontFaceSource.cpp:
        (WebCore::CSSFontFaceSource::pruneTable):

2008-01-30  Darin Adler  <darin@apple.com>

        Reviewed by Tim Hatcher.

        New fix for <rdar://problem/5688428> Reproducible assertion failure
        in SQLTransaction::performNextStep() (16876)

        Fixes a deadlock that was happening for all Database use. All
        storage layout tests pass.

        * storage/Database.cpp:
        (WebCore::CurrentThreadSetter::CurrentThreadSetter): New helper class
        to set the current thread and zero it on destruction.
        (WebCore::CurrentThreadSetter::~CurrentThreadSetter): Set threadIdentifierStorage to 0.
        (WebCore::Database::Database): Set m_transactionStepThread to 0.
        (WebCore::Database::performTransactionStep): Set m_transactionStepThread to currentThread().
        (WebCore::Database::scheduleTransactionCallback): Assert m_transactionStepThread
        is currentThread().
        * storage/Database.h: Add m_transactionStepThread for debug builds
        to track which thread performTransactionStep() was called on. 

2008-01-30  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin Adler.

        ASSERTION FAILED: JSLock::lockCount() > 0 when opening the
        Web Inspector on a page with a Database.

        Fix the ASSERT by taking a JSLock before calling toJS().

        * page/InspectorController.cpp:
        (WebCore::InspectorController::addDatabaseScriptResource):

2008-01-30  Beth Dakin  <bdakin@apple.com>

        Reviewed by Darin.

        Fix for <rdar://problem/5598609> CrashTracer: [USER] 626 crashes in 
        Safari at com.apple.WebCore: WebCore::FrameView::needsFullRepaint 
        const + 6

        The real problem here is tracked by rdar://5598072, which is that 
        frames can lose sync between their view and their document when a 
        non-HTML view is loaded (such as bookmarks view or a PDF). That can 
        cause this crash if the layout timer fires before things have fixed 
        themselves. This fix turns an ASSERT in FrameView::layout() into an 
        early return to cause graceful failure until the root of the 
        problem is addressed. 

        * page/FrameView.cpp:
        (WebCore::FrameView::layout):

2008-01-30  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5700414> REGRESSION (Adama-ToT): Selecting "Header 1" style in Leopard Server wiki inserts newline

        * editing/FormatBlockCommand.cpp:
        (WebCore::FormatBlockCommand::doApply): If the selected paragraph was empty,
        we may still need to call moveParagrah to remove the line break that holds that
        paragraph open because the new block of the requested type needs to to replace it.

2008-01-30  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5688428> Reproducible assertion failure in SQLTransaction::performNextStep() (16876)

        Revised fix to use the globalCallbackMutex() mutex and hold the mutex
        for the entire function scope.

        * storage/Database.cpp:
        (WebCore::Database::performTransactionStep):

2008-01-30  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben.

        Make ResourceTreeElement inherit the prototype of TreeElement.

        * page/inspector/Resource.js:

2008-01-30  Sam Weinig  <sam@webkit.org>

        Reviewed by Adam Roben.

        Don't include SecurityOrigin.h in Document.h so that we can avoid massive
        recompilation when changing the SecurityOrigin.

        * dom/Document.cpp:
        (WebCore::Document::setSecurityOrigin):
        * dom/Document.h:

2008-01-30  Tim Omernick  <timo@apple.com>

        Reviewed by Tim Hatcher and Brady.

        <rdar://problem/5688428> Reproducible assertion failure in SQLTransaction::performNextStep() (16876)

        * storage/Database.cpp:
        (WebCore::Database::performTransactionStep): Do not perform the next transaction if
        a global callback is already scheduled.

2008-01-30  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Darin.

        <rdar://problem/5669317> Crash closing pop up window with Real Player
        content

        Some RealPlayer versions hang on unload. To prevent this hang, don't
        unload versions since the last known unloadable version.
        <rdar://problem/5713147> tracks revisiting this when the bug in
        RealPlayer is fixed and we can again unload the plug-in.

        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackageWin::compareFileVersion): Compare the plug-in's
        file version to the passed file version, returning -1, 0, or 1 if the
        plug-in's version is less than, equal to, or greater than the version
        passed.
        (WebCore::PluginPackageWin::isPluginBlacklisted): Use
        compareFileVersion()
        * plugins/win/PluginPackageWin.h:
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::determineQuirks): If the plug-in version is
        newer than the last-known unloadable version, add the DontUnloadPlugin
        quirk

2008-01-29  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        Look for headers relative to NEXT_ROOT so that build-root picks up the WebCoreSQLite
        version of sqlite3.h rather than the older system version.

        * Configurations/Base.xcconfig:

2008-01-29  Dan Bernstein  <mitz@apple.com>

        - build fix

        * loader/CachedFont.cpp:
        (WebCore::CachedFont::CachedFont):

2008-01-29  Mark Rowe  <mrowe@apple.com>

        Reviewed by Brady Eidson.

        Add the correct directory to the header search paths in Production builds.

        * Configurations/Base.xcconfig:

2008-01-29  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=17085
          <rdar://problem/5714136> REGRESSION (r29839): All remote fonts are treated as SVG fonts

        Test: fast/css/font-face-remote.html

        Added an isSVGFont method to CachedFont and use it to decide how to
        process the font data. Currently whether the data is SVG is determined
        based on the format property in the @font-face rule, but in the future
        the MIME type or other metadata may be used when the format is
        unspecified.

        * css/CSSFontFaceSource.cpp:
        (WebCore::CSSFontFaceSource::getFontData): Changed to parse the data as
        SVG only if the CachedFont is an SVG font.
        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule): Mark the CachedFont as an
        SVG font based on format.
        * loader/CachedFont.cpp:
        (WebCore::CachedFont::CachedFont): Initialize m_isSVGFont to false.
        (WebCore::CachedFont::ensureCustomFontData):
        (WebCore::CachedFont::ensureSVGFontData):
        (WebCore::CachedFont::getSVGFontById):
        * loader/CachedFont.h:
        (WebCore::CachedFont::isSVGFont): Added.
        (WebCore::CachedFont::setSVGFont): Added.

2008-01-29  Antti Koivisto  <antti@apple.com>

        Some comment cleanup.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
        * platform/graphics/win/QTMovieWin.cpp:
        (QTMovieWin::load):
        (QTMovieWin::disableUnsupportedTracks):

2008-01-29  Adele Peterson  <adele@apple.com>

        Reviewed by Antti.

        Fix for <rdar://5683527> media/{audio,video|-controls-rendering.html failing
        
        * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::isControlStyled):
        Don't treat all media controls as styled.  This causes builds with an old version of SafariTheme to have different metrics for these controls.

2008-01-29  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - make Font instances cache their primary font

        * WebCore.base.exp:
        * platform/graphics/Font.cpp:
        (WebCore::Font::Font):
        (WebCore::Font::operator=):
        (WebCore::Font::cachePrimaryFont):
        (WebCore::Font::update):
        * platform/graphics/Font.h:
        (WebCore::Font::primaryFont):

2008-01-29  Dan Bernstein  <mitz@apple.com>

        - Leopard build fix

        * platform/graphics/SimpleFontData.cpp:
        (WebCore::SimpleFontData::SimpleFontData):

2008-01-29  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        <rdar://problem/5600926> WebCore on Tiger must link to its own copy of SQLite 3.4 or newer (so HTML database behavior will be correct).

        * Configurations/Base.xcconfig: Update the header search path on Tiger.
        * Configurations/DebugRelease.xcconfig: Update the header search path on Tiger.
        * Configurations/WebCore.xcconfig: Link against libWebCoreSQLite3.a when building on Tiger.
        * WebCore.xcodeproj/project.pbxproj: Update the header search path in Production builds on Tiger.

2008-01-29  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben and Oliver Hunt.

        - fix <rdar://problem/5713131> REGRESSION (r29246): Many SVG font tests are failing

        * platform/graphics/SimpleFontData.cpp:
        (WebCore::SimpleFontData::SimpleFontData): Use double instead of float
        for consistent rounding behavior between Mac OS X and Windows.

2008-01-29  Adam Roben  <aroben@apple.com>

        Fix <rdar://5713302> Web Inspector on Windows is not using the
        localized strings

        Reviewed by Steve.

        * WebCore.vcproj/WebCore.vcproj: Copy InspectorLocalizedStrings.js to
        $WebKitOutputDir.
        * page/InspectorController.cpp: Touch this to force the project to
        build.

2008-01-29  Eric Seidel  <eric@webkit.org>

        Reviewed by Nikolas.

        Acid3 after double-attach
        http://bugs.webkit.org/show_bug.cgi?id=17058
        
        I believe SVGTextPathElement::buildPendingResource() was entirely
        bogus, removing it did not cause any tests to fail.

        Test: svg/custom/textPath-assert.svg

        * svg/SVGTextPathElement.cpp:
        (WebCore::SVGTextPathElement::insertedIntoDocument): remove buildPendingResource()
        * svg/SVGTextPathElement.h:

2008-01-29  Adam Roben  <aroben@apple.com>

        Fix Bug 16234: Inspector should support searching for elements by CSS selectors

        <http://bugs.webkit.org/show_bugs.cgi?id=16234>
        <rdar://5712862>

        Reviewed by Tim.

        * page/inspector/inspector.js: Use Document.querySelectorAll to search
        for elements by CSS selector. Also store a custom property on nodes
        being added to the search results to avoid showing the same node more
        than once.

2008-01-29  Adam Roben  <aroben@apple.com>

        Fix <rdar://5711136> Full-screen Flash on 1up.com is unresponsive

        Reviewed by Anders and Darin.

        No test possible.

        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::wndProc): Set/release capture on mouse
        down/up, like Firefox does.

2008-01-28  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - make isSVGFont non-virtual

        * platform/graphics/FontData.h:
        * platform/graphics/SegmentedFontData.cpp:
        * platform/graphics/SegmentedFontData.h:
        * platform/graphics/SimpleFontData.h:
        (WebCore::SimpleFontData::isSVGFont):

2008-01-28  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben.

        - fix <rdar://problem/5700824> Chunky scrolling + scrolling artifacts @ netflix.com/Notebook

        * platform/win/ScrollViewWin.cpp:
        (WebCore::ScrollView::ScrollViewPrivate::valueChanged): Send the scroll
        event before updating the window, thus giving event handlers a chance
        to update layout for the new scroll position, eliminating the jitter.

2008-01-28  Adam Roben  <aroben@apple.com>

        Fix <rdar://5555260> Gmail doesn't load when a user stylesheet is specified

        Reviewed by Darin.

        A null value exception was being thrown in Gmail's JS code because a
        call to document.write failed. document.write failed because
        Document::close had not yet been called. Document::close was not
        called because the Document was considered to not be "complete" in
        FrameLoader::checkComplete because the user stylesheet was in the
        process of loading. The user stylesheet was loading because it had
        previously been evicted from the cache and was loading fresh from
        disk. It had been evicted from the cache because the calculation of
        the expiration date was incorrectly casting/overflowing in
        ResourceResponseCFNet.cpp.

        We now calculate the expiration date in a way that does not cause us
        to overflow a time_t, and we correctly clamp the value to the range of
        a time_t. I also made the fix for the last modified date, though that
        was not causing any bug I am aware of.

        In the long-term it seems like whether or not Document::close is
        called should not be dependent upon whether the user stylesheet has
        finished loading or not.

        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::toTimeT): Added. Converts from CFAbsoluteTime to time_t and
        clamps to the range of time_t.
        (WebCore::ResourceResponse::doUpdateResourceResponse): Call toTimeT.

2008-01-28  Dan Bernstein  <mitz@apple.com>

        Reviewed by Nikolas Zimmermann.

        - fix leaks introduced in r29838

        * svg/SVGFont.cpp:
        (WebCore::floatWidthMissingGlyphCallback):
        (WebCore::drawTextMissingGlyphCallback):

2008-01-28  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric, Dan & Oliver.

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

        Support external SVG Fonts, by reusing the custom font handling logic.
        This enables us - as first engine - to render HTML pages using SVG Fonts.

        Fixes fonts-elem-03-b.svg / fonts-elem-04-b.svg / fonts-elem-07-b.svg
        Add new testcase svg-fonts-in-html.html.

        * css/CSSFontFaceSource.cpp:
        (WebCore::CSSFontFaceSource::getFontData):
        * css/CSSFontFaceSource.h:
        * css/CSSFontFaceSrcValue.cpp:
        (WebCore::CSSFontFaceSrcValue::isSVGFontFaceSrc):
        (WebCore::CSSFontFaceSrcValue::isSupportedFormat):
        * css/CSSFontFaceSrcValue.h:
        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule):
        * loader/CachedFont.cpp:
        (WebCore::CachedFont::~CachedFont):
        (WebCore::CachedFont::ensureSVGFontData):
        (WebCore::CachedFont::extractFontFromSVGData):
        (WebCore::CachedFont::platformDataFromSVGData):
        * loader/CachedFont.h:
        * platform/graphics/Font.cpp:
        (WebCore::Font::offsetForPosition):
        * platform/graphics/Font.h:
        * svg/SVGFont.cpp:
        (WebCore::floatWidthOfSubStringUsingSVGFont):
        (WebCore::Font::drawTextUsingSVGFont):
        (WebCore::Font::offsetForPositionForTextUsingSVGFont):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::rebuildFontFace):
        * svg/SVGFontFaceElement.h:
        * svg/SVGFontFaceUriElement.cpp:
        (WebCore::SVGFontFaceUriElement::srcValue):

2008-01-28  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben.

        - fix svg/W3C-SVG-1.1/fonts-glyph-04-t.svg failure on Windows

        The results differed between Mac OS X and Windows because the code was
        using a 0-size font, which Mac OS X changes to 12pt.

        * svg/SVGFont.cpp:
        (WebCore::floatWidthMissingGlyphCallback): Use the font description of
        the primary font to initialize the fallback font.
        (WebCore::drawTextMissingGlyphCallback): Ditto.

2008-01-28  Eric Seidel  <eric@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Use class instead of struct to appease MSVC.

        * history/HistoryItem.h:
        * loader/FrameLoaderClient.h:
        * page/InspectorController.h:
        * platform/network/ResourceRequestBase.h:
        * platform/network/mac/ResourceRequest.h:

2008-01-28  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16774
          REGRESSION (r27464-r27504) javascript popup menu does not display 'close' button

        Test: fast/dynamic/float-no-longer-overhanging.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addOverhangingFloats): If a child's float turns
        out not to be overhanging at this time, ensure that the child paints it.

2008-01-28  Oliver Hunt  <oliver@apple.com>

        More wx fixes

        * platform/graphics/wx/AffineTransformWx.cpp:

2008-01-28  Oliver Hunt  <oliver@apple.com>

        And another Wx build fix

        * platform/graphics/wx/AffineTransformWx.cpp:
        (WebCore::AffineTransform::mapRect):

2008-01-28  Oliver Hunt  <oliver@apple.com>

        Yet another Wx build fix

        * platform/graphics/wx/GraphicsContextWx.cpp:

2008-01-28  Oliver Hunt  <oliver@apple.com>

        Wx build fix

        * platform/graphics/wx/GraphicsContextWx.cpp:
        (WebCore::GraphicsContext::getCTM):

2008-01-28  Oliver Hunt  <oliver@apple.com>

        Gtk build fix

        * platform/graphics/cairo/GraphicsContextCairo.cpp:

2008-01-27  Oliver Hunt  <oliver@apple.com>

        Reviewed by Sam Weinig.

        Bug 16629: <canvas> does not support isPointInPath()

        Relatively trivial change to implement pointInPath and add
        it to the bindings.  Most of this patch is the addition of
        GraphicsContext::getCTM() by pulling the various platform
        implementations from CanvasRenderingContext2D::willDraw

        Test: fast/canvas/pointInPath.html

        * html/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::isPointInPath):
        (WebCore::CanvasRenderingContext2D::willDraw):
        * html/CanvasRenderingContext2D.h:
        * html/CanvasRenderingContext2D.idl:
        * platform/graphics/AffineTransform.cpp:
        (WebCore::AffineTransform::mapPoint):
          Support mapping of FloatRects
        * platform/graphics/AffineTransform.h:
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::getCTM):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::getCTM):
        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::GraphicsContext::getCTM):

2008-01-27  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=17014
        REGRESSION: EUC-CN code A3A0 is mapped to U+E5E5 instead of U+3000

        Test: fast/encoding/char-decoding.html

        * platform/text/TextCodecICU.cpp:
        (WebCore::TextCodecICU::decode): Added a workaround that we used to have in Mac code.

        * platform/text/mac/TextCodecMac.cpp:
        (WebCore::TextCodecMac::decode): Corrected a comment.

2008-01-27  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=17029
        Use of deprecated class function but declares GTK_DISABLE_DEPRECATED

        Sync gtkdrawing.h (1.51) and gtk2drawing.c (1.71) from Mozilla
        upstream.

        Adapt RenderThemeGtk.cpp to track minor changes.

        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::gtkTextDirection):
        (WebCore::adjustMozStyle):
        (WebCore::setMozState):
        (WebCore::paintMozWidget):
        * platform/gtk/gtk2drawing.c:
        (setup_widget_prototype):
        (ensure_hpaned_widget):
        (ensure_vpaned_widget):
        (ensure_toggle_button_widget):
        (ensure_combo_box_entry_widget):
        (ensure_dropdown_entry_widget):
        (moz_gtk_get_dropdown_button):
        (ensure_arrow_widget):
        (ensure_toolbar_separator_widget):
        (ensure_statusbar_widget):
        (ensure_frame_widget):
        (ensure_menu_separator_widget):
        (ensure_tree_view_widget):
        (ensure_tree_header_cell_widget):
        (ensure_expander_widget):
        (ConvertGtkState):
        (moz_gtk_button_paint):
        (moz_gtk_widget_get_focus):
        (moz_gtk_splitter_get_metrics):
        (moz_gtk_toggle_paint):
        (moz_gtk_scrollbar_button_paint):
        (moz_gtk_scrollbar_trough_paint):
        (moz_gtk_scrollbar_thumb_paint):
        (moz_gtk_spin_paint):
        (moz_gtk_spin_updown_paint):
        (moz_gtk_scale_paint):
        (moz_gtk_scale_thumb_paint):
        (moz_gtk_gripper_paint):
        (moz_gtk_hpaned_paint):
        (moz_gtk_vpaned_paint):
        (moz_gtk_entry_paint):
        (moz_gtk_treeview_paint):
        (moz_gtk_tree_header_cell_paint):
        (moz_gtk_tree_header_sort_arrow_paint):
        (moz_gtk_treeview_expander_paint):
        (moz_gtk_expander_paint):
        (moz_gtk_option_menu_paint):
        (moz_gtk_downarrow_paint):
        (moz_gtk_dropdown_arrow_paint):
        (moz_gtk_container_paint):
        (moz_gtk_toggle_label_paint):
        (moz_gtk_toolbar_paint):
        (moz_gtk_toolbar_separator_paint):
        (moz_gtk_tooltip_paint):
        (moz_gtk_resizer_paint):
        (moz_gtk_frame_paint):
        (moz_gtk_progressbar_paint):
        (moz_gtk_progress_chunk_paint):
        (moz_gtk_get_tab_thickness):
        (moz_gtk_tab_paint):
        (moz_gtk_tabpanels_paint):
        (moz_gtk_menu_bar_paint):
        (moz_gtk_menu_popup_paint):
        (moz_gtk_menu_separator_paint):
        (moz_gtk_menu_item_paint):
        (moz_gtk_menu_arrow_paint):
        (moz_gtk_check_menu_item_paint):
        (moz_gtk_window_paint):
        (moz_gtk_get_widget_border):
        (moz_gtk_get_dropdown_arrow_size):
        (moz_gtk_get_toolbar_separator_width):
        (moz_gtk_get_expander_size):
        (moz_gtk_get_treeview_expander_size):
        (moz_gtk_get_menu_separator_height):
        (moz_gtk_widget_paint):
        (moz_gtk_shutdown):
        * platform/gtk/gtkdrawing.h:

2008-01-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=14811
        [gtk] [request] add a webkit_gtk_page_go_to_history_item function

        Added webkit/gtk webkitwebbackforwardlist and webkitwebhistoryitem

        * WebCore.pro:

2008-01-27  Matt Perry  <mpComplete@gmail.com>

        Reviewed and tweaked quite a bit by Darin.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=14959
        No back forward entry added for pages created in javascript

        A new HistoryItem is created for calls to Document::open. Calls to
        Document::write save the written data to a SharedBuffer that is also
        stored on the HistoryItem. When the user navigates back to a
        HistoryItem that has a valid buffer, that data is used for the page
        content.

        Tests: http/tests/navigation/document-open-adds-history-item.html
               http/tests/navigation/document-open-delayed-adds-history-item.html
               http/tests/navigation/document-open-new-window-adds-history-item.html
               http/tests/navigation/document-open-replace-no-history-item.html

        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::JSHTMLDocument::open): Pass a MIME type of either "text/html" or
        "text/plain" and a boolean for "replace" in rather than always setting replace
        to true and the MIME type to "text/html".

        * dom/DOMImplementation.cpp:
        (WebCore::DOMImplementation::createHTMLDocument): Pass in MIME type and
        replace boolean explicitly, since we don't want to rely on Document::open()'s
        default.

        * dom/Document.cpp:
        (WebCore::Document::open): Correctly determine the "replace" boolean.
        Pass along the MIME type, replace boolean, and shared buffer to the
        frame loader's didExplicitOpen function.
        (WebCore::Document::write): Pass MIME type and replace boolean explicitly
        to the open function so we don't do treat it as replace if you write without
        an open. Store text written by the script so it can be used later for history.
        (WebCore::Document::clear): Drop the text written byt he script.

        * dom/Document.h: Added MIME type and replace boolean parameters for open.
        Had to keep the old version for the sake of DOM bindings. Added the shared
        buffer used for text written by script.

        * history/HistoryItem.cpp:
        (WebCore::HistoryItem::HistoryItem): Copy m_substituteData.
        (WebCore::HistoryItem::substituteData): Added.
        (WebCore::HistoryItem::setSubstituteData): Added.
        * history/HistoryItem.h: Added m_substituteData, getter, and setter.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::didExplicitOpen): Added code to create or update the
        history item, including attaching the shared buffer that will contain all
        the data written by script.
        (WebCore::FrameLoader::load): Added a SubstituteData parameter, passed through
        when creating the document loader.
        (WebCore::FrameLoader::reloadAllowingStaleData): Create the document loader
        with the substitute data from the current history item.
        (WebCore::FrameLoader::reload): Ditto.
        (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent): If the current history
        item has substitute data, then consider the URL from the substitute data
        rather than the one in the history item itself.
        (WebCore::FrameLoader::loadItem): Pass in the history item's substitute data.
        * loader/FrameLoader.h: Added parameters to load and didExplicitOpen.

        * platform/text/CharacterNames.h: Added byteOrderMark, and also added it under
        its other official name, zeroWidthNoBreakSpace.

        * xml/DOMParser.cpp:
        (WebCore::DOMParser::parseFromString): Pass in MIME type and replace boolean
        explicitly, since we don't want to rely on Document::open()'s default.
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::getResponseXML): Ditto.
        * xml/XSLTProcessor.cpp:
        (WebCore::XSLTProcessor::createDocumentFromSource): Ditto.

2008-01-25  Eric Seidel  <eric@webkit.org>

        Reviewed by Sam and Darin.

        Fire a warning shot in DeprecatedChar's direction.

        Remove DeprecatedChar::isSpace() usage, in preparation for removing DeprecatedChar
        Remove a needless String -> DeprecatedString -> String conversion for <script> tags

        * css/MediaQueryEvaluator.cpp:
        (WebCore::parseAspectRatio):
        * css/SVGCSSParser.cpp:
        * dom/Position.cpp:
        (WebCore::Position::leadingWhitespacePosition):
        (WebCore::Position::trailingWhitespacePosition):
        * editing/TextIterator.cpp:
        (WebCore::WordAwareIterator::advance):
        * html/HTMLFontElement.cpp:
        (WebCore::parseFontSizeNumber):
        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::scriptHandler):
        (WebCore::HTMLTokenizer::scriptExecution):
        (WebCore::HTMLTokenizer::notifyFinished):
        * html/HTMLTokenizer.h:
        * loader/CachedCSSStyleSheet.cpp:
        * loader/TextResourceDecoder.cpp:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        * platform/mac/ClipboardMac.mm:
        (WebCore::ClipboardMac::getData):
        * platform/network/HTTPParsers.cpp:
        (WebCore::extractMIMETypeFromMediaType):
        * platform/text/PlatformString.h:
        * platform/text/StringImpl.cpp:
        (WebCore::parseLength):
        (WebCore::StringImpl::stripWhiteSpace):
        (WebCore::StringImpl::simplifyWhiteSpace):
        (WebCore::StringImpl::toInt):
        (WebCore::StringImpl::toInt64):
        (WebCore::StringImpl::toUInt64):
        * platform/text/StringImpl.h:
        (WebCore::isSpaceOrNewline):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::placeBoxesHorizontally):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::updateFirstLetter):
        * rendering/bidi.cpp:
        (WebCore::RenderBlock::computeHorizontalPositionsForLine):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::mapAttributeToCSSProperty):
        * svg/SVGLength.cpp:
        * svg/SVGStyledElement.cpp:
        (WebCore::mapAttributeToCSSProperty):
        * xml/XPathParser.cpp:

2008-01-25  Stephanie Lewis  <slewis@apple.com>

        Reviewed by Tim.

        expand workaround for <rdar://5695848> to include js files so that the
        web inspector can work

        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::ResourceResponse::doUpdateResourceResponse):

2008-01-25  Antti Koivisto  <antti@apple.com>

        Reviewed by Adele.
        
        (this is for r29798, my commit failed to include the log)
        
        Windows fix to match r29773
        If the media is playing and the load stalls the playback wont restart by seeking backwards.      

        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
        (WebCore::MediaPlayerPrivate::updateStates):

2008-01-25  Darin Adler  <darin@apple.com>

        Reviewed by Anders.

        - fix <rdar://problem/5691072> ASSERTION FAILED: isPrepared() when executing an empty statement

        For empty statements, SQLite returns 0 for the statement. We have to cope with that.

        Test: storage/empty-statement.html

        * platform/sql/SQLiteStatement.cpp:
        (WebCore::sqlite3_prepare16_v2): Added overload so we don't need an #if inside the prepare
        function.
        (WebCore::SQLiteStatement::SQLiteStatement): Initialize the m_isPrepared boolean. Removed
        the code to add a null character to the end of the string; instead we will use
        charactersWithNullTermination.
        (WebCore::SQLiteStatement::prepare): Set m_isPrepared based on the error value returned.
        Use the error value from sqlite3_prepare16_v2, not from lastError().
        (WebCore::SQLiteStatement::step): Assert that the statement is prepared rather than checking
        it at runtime. However, in the case where this is called with m_statement of 0, return
        success rather than an error. That's needed for empty statements.
        (WebCore::SQLiteStatement::finalize): Use early return idiom for clarity. When there is no
        statement, return SQLITE_OK instead of calling lastError().
        (WebCore::SQLiteStatement::reset): Use early return idiom for clarity. When there is no
        statement, return SQLITE_OK rather than SQLITE_ERROR, but assert the statement is prepared.
        (WebCore::SQLiteStatement::executeCommand): Adjust the code that does a prepare so that it
        will work for empty statements. Do we really need to allow calling this without prepare?
        It would be simpler to just be able to assert that it's prepared.
        (WebCore::SQLiteStatement::returnsAtLeastOneResult): Ditto.
        (WebCore::SQLiteStatement::bindBlob): Added some assertions. Return SQLITE_ERROR if this
        is called with m_statement of 0 (should not be possible without assertions firing first).
        Return the actual error code rather than lastError().
        (WebCore::SQLiteStatement::bindText): Ditto. Also simplified the special case for empty
        strings, since it requires any non-null pointer, not a pointer to a global zero character.
        (WebCore::SQLiteStatement::bindInt64): Ditto.
        (WebCore::SQLiteStatement::bindDouble): Ditto.
        (WebCore::SQLiteStatement::bindNull): Ditto.
        (WebCore::SQLiteStatement::bindValue): Moved default case out of the switch to take
        advantage of the gcc compiler warning for unhandled enum values in a switch.
        (WebCore::SQLiteStatement::bindParameterCount): Added assertion and code to handle the
        empty statement case.
        (WebCore::SQLiteStatement::columnCount): Added assertion and changed the code to use
        the early-return idiom.
        (WebCore::SQLiteStatement::getColumnName): Removed getColumnName16 -- we always use 16-bit
        characters and have no reason to ever use the 8-bit function. Added assertions about the
        passed-in column number. It's a little strange that this function checks the column number
        for too-large column numbers, but not for negative ones. I didn't change that for now.
        (WebCore::SQLiteStatement::getColumnText): Ditto.
        (WebCore::SQLiteStatement::getColumnDouble): Ditto.
        (WebCore::SQLiteStatement::getColumnInt): Ditto.
        (WebCore::SQLiteStatement::getColumnInt64): Ditto.
        (WebCore::SQLiteStatement::getColumnBlobAsVector): Ditto.
        (WebCore::SQLiteStatement::getColumnBlob): Tightened up function a bit, including use of
        the early-return idiom and replacing the multiple "size = 0" with a single one at the
        start of the function.
        (WebCore::SQLiteStatement::returnTextResults): Added a failure case when the prepare
        call doesn't work. Cleared the vector earlier to make the failure code simpler. Moved
        the declaration of the result boolean down lower to make it clearer what it's for.
        Changed use of lastError() to call on the database, to make it clearer that there's
        no per-statement last error kept around. It'd be even better to not use lastError() here.
        (WebCore::SQLiteStatement::returnIntResults): Ditto.
        (WebCore::SQLiteStatement::returnInt64Results): Ditto.
        (WebCore::SQLiteStatement::returnDoubleResults): Ditto.
        (WebCore::SQLiteStatement::isExpired): Changed to use || rather than ?: because I think
        it's slightly easier to read that way.

        * platform/sql/SQLiteStatement.h: Removed unneeded includes and forward declarations.
        Also removed unnneeded functions isPrepared, getColumnName16, getColumnText16,
        returnTextResults16, lastError, and lastErrorMsg. Changed prepareAndStep so that it
        checks the result of prepare before callling step. Added a debug-only m_isPrepared boolean.

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::checkIntegrity): Remove 16 suffix from text-related function names.
        (WebCore::IconDatabase::performURLImport): Ditto.
        (WebCore::IconDatabase::pruneUnretainedIcons): Ditto.
        * platform/sql/SQLiteDatabase.cpp:
        (WebCore::SQLiteDatabase::clearAllTables): Ditto.
        * storage/Database.cpp:
        (WebCore::retrieveTextResultFromDatabase): Ditto.
        (WebCore::Database::performGetTableNames): Ditto.
        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::fullPathForDatabase): Ditto.
        (WebCore::DatabaseTracker::populateOrigins): Ditto.
        (WebCore::DatabaseTracker::databaseNamesForOrigin): Ditto.
        (WebCore::DatabaseTracker::addDatabase): Ditto.
        * storage/SQLStatement.cpp:
        (WebCore::SQLStatement::execute): Ditto.

        * platform/sql/SQLiteDatabase.h: Removed unneeded includes.
        * storage/SQLResultSet.h: Ditto.
        * storage/SQLResultSetRowList.h: Ditto.

2008-01-25  Adele Peterson  <adele@apple.com>

        Reviewed by Sam.

        Fix for <rdar://problem/5679452> Finish tweaking layout/alignment of media controls slider to match QuickTime plug-in

        * css/html4.css: Add horizontal padding to the media slider.
        * rendering/RenderSlider.cpp:
        (WebCore::HTMLSliderThumbElement::defaultEventHandler): Replace use of absoluteBoundingBox() with width() and height()
        (WebCore::RenderSlider::positionForOffset): ditto. Also, use the trackSize() for the maximum offset.
        (WebCore::RenderSlider::layout):  Use contentWidth() and contentHeight() to take padding into account.
        (WebCore::RenderSlider::trackSize): ditto.

2008-01-24  Adam Roben  <aroben@apple.com>

        Better fix for Bug 16996

        Rubberstamped by Mitz.

        * loader/CachedFont.cpp:
        (WebCore::CachedFont::ensureCustomFontData): Don't call
        createFontCustomPlatformData if m_data is null.
        * platform/graphics/gtk/FontCustomPlatformData.cpp:
        (WebCore::createFontCustomPlatformData): Added an assertion.
        * platform/graphics/mac/FontCustomPlatformData.cpp:
        (WebCore::createFontCustomPlatformData): Ditto.
        * platform/graphics/qt/FontCustomPlatformData.cpp:
        (WebCore::createFontCustomPlatformData): Ditto.
        * platform/graphics/win/FontCustomPlatformData.cpp:
        (WebCore::createFontCustomPlatformData): Ditto.

2008-01-24  Adam Roben  <aroben@apple.com>

        Fix Bug 16996: Crash in createFontCustomPlatformData when loading
        0-byte font via @font-face

        <http://bugs.webkit.org/show_bug.cgi?id=16996>

        Reviewed by Hyatt.

        Test: fast/loader/font-face-empty.html

        * platform/graphics/win/FontCustomPlatformData.cpp:
        (WebCore::createFontCustomPlatformData): Null-check the buffer
        parameter.

2008-01-24  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Anders.

        <rdar://problem/5588807> Crash in Flash when destroying plug-in (found
        using yahoo beta mail)

        Flash can dereference NULL in the call to NPP_URLNotify if a request
        made with NPN_PostURLNotify fails before NPP_NewStream is called.

        Work around this by creating a quirk, PluginQuirkFlashURLNotifyBug, and
        checking for this quirk before calling NPP_URLNotify for any request
        made with NPN_PostURLNotify. If the quirk is present, call NPP_NewStream
        and NPP_DestroyStream before calling NPP_URLNotify.

        * WebCore.vcproj/WebCore.vcproj:
        * plugins/PluginQuirkSet.h: Added. Moved quirks out of PluginViewWin so
        PluginViewWin and PluginStream could share it. Created a class,
        PluginQuirkSet, to store plug-in quirks
        (WebCore::):
        (WebCore::PluginQuirkSet::PluginQuirkSet):
        (WebCore::PluginQuirkSet::add):
        (WebCore::PluginQuirkSet::contains):
        * plugins/PluginStream.cpp:
        (WebCore::PluginStream::PluginStream): Copy the PluginQuirkSet for this
        plug-in
        (WebCore::PluginStream::destroyStream): Check for the FlashURLNotifyBug
        quirk
        * plugins/PluginStream.h:
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::performRequest): Pass the quirks when creating
        the PluginStream
        (WebCore::PluginViewWin::didReceiveResponse): Same
        (WebCore::PluginViewWin::wndProc): Use add / contains instead of
        bit ops
        (WebCore::PluginViewWin::userAgent): Same
        (WebCore::PluginViewWin::invalidateRect): Same
        (WebCore::PluginViewWin::~PluginViewWin): Same
        (WebCore::PluginViewWin::determineQuirks): Same
        (WebCore::PluginViewWin::setParameters): Same
        (WebCore::PluginViewWin::PluginViewWin): Same
        (WebCore::PluginViewWin::init): Same
        (WebCore::PluginViewWin::setCallingPlugin): Same
        * plugins/win/PluginViewWin.h:

2008-01-24  David Hyatt  <hyatt@apple.com>

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

        Make sure to make <head> the current block if it is created before a <body> already exists.

        Reviewed by Dan

        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::createHead):

2008-01-24  Alexey Proskuryakov  <ap@webkit.org>

        http://bugs.webkit.org/show_bug.cgi?id=16993
        <rdar://problem/5704331> REGRESSION: Loading page leads to many unexpected redirections

        Rolled out r29590, which was not a correct fix for <rdar://problem/5692566>.

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

2008-01-24  Antti Koivisto  <antti@apple.com>

        Reviewed by Adam.
        
        If the media is playing and the load stalls the playback wont restart by seeking backwards.
        
        We should be in CAN_PLAY state if the current time is less than the maximum loaded time. Rate 
        tricks were for streaming case and are not necessary now since that is now disabled.
        
        Windows patch coming separately.

        Test: http/tests/media/video-play-stall-seek.html

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::updateStates):

2008-01-24  Antti Koivisto  <antti@apple.com>

        Reviewed by Adam.

        Fix <rdar://problem/5684815>
        After navigating back to the page that contains a <audio> that has been muted, the audio is still heard
        
        - get rid of the separate muted state in MediaPlayer, maintain the state in the cross platform code only
        - remove volumeChanged() callbacks from HTMLMediaElement and OS X MediaPlayer, they were not used for anything
        - rename updateMediaPlayer -> updatePlayState which tells more about what it actually does

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::load):
        (WebCore::HTMLMediaElement::setReadyState):
        (WebCore::HTMLMediaElement::play):
        (WebCore::HTMLMediaElement::pause):
        (WebCore::HTMLMediaElement::setVolume):
        (WebCore::HTMLMediaElement::setMuted):
        (WebCore::HTMLMediaElement::checkIfSeekNeeded):
        (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
        (WebCore::HTMLMediaElement::updateVolume):
        (WebCore::HTMLMediaElement::updatePlayState):
        (WebCore::HTMLMediaElement::setPausedInternal):
        * html/HTMLMediaElement.h:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::MediaPlayer):
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::createQTMovie):
        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
        * platform/graphics/win/QTMovieWin.cpp:
        * platform/graphics/win/QTMovieWin.h:

2008-01-24  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Fix "QObject::startTimer: QTimer can only be used with threads started with QThread"
        * The JSC GCController gets automatically destructed on application exit, it will stop
        its timer and we try to schedule the next timer. Now the GCController can get destructed
        after our QApplication is gone. This will trigger the above warning, we can avoid this
        by checking if our qApp is still around.

        * platform/qt/SharedTimerQt.cpp:
        (WebCore::setSharedTimerFireTime):

2008-01-24  Morten Johan Sørvig  <msorvig@trolltech.com>

        Reviewed by Simon.

        Qt/Mac: Make sure the scrollbars does not overlap the grow box.

        When showing only one scrollbar we need to move it so it doesn't overlap the
        grow box. This is similar to the code in QAbstractScrollArea.


        * platform/qt/ScrollViewQt.cpp:
        (WebCore::ScrollView::updateScrollbars):

2008-01-15  Michael Goddard  <michael.goddard@trolltech.com>

        Reviewed by Darin.

        While parsing -webkit-border-image, store
        the border widths as naked pointers rather
        than as OwnPtrs, since they point to the
        middle of an array.

        Test: fast/css/border-image-crash.html

        * css/CSSParser.cpp:

2008-01-24  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Attempt to fix showing of popup again after a popup has been shown but
        the user did not select any item (e.g. clicked outside of the popup)
        * Keep track of the popup status using the virtuals showPopup and hidePopup
        and do not go into recursion when hiding a popup.

        * platform/qt/QWebPopup.cpp:
        (WebCore::QWebPopup::showPopup):
        (WebCore::QWebPopup::hidePopup):
        * platform/qt/QWebPopup.h:

2008-01-24  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Assert the presence of the PopupMenuClient

        * platform/qt/QWebPopup.cpp:
        (WebCore::QWebPopup::QWebPopup):
        (WebCore::QWebPopup::hideEvent):
        (WebCore::QWebPopup::activeChanged):

2008-01-23  David Kilzer  <ddkilzer@apple.com>

        <rdar://problem/5702947> WebCore: CGContextDrawPDFDocument will be deprecated

        Reviewed by Darin.

        No test cases added since there is no change in behavior.

        * platform/graphics/cg/PDFDocumentImage.cpp:
        (WebCore::PDFDocumentImage::draw): Replace CGContextDrawPDFDocument() with
        calls to CG methods that perform the equivalent work.

2008-01-23  Antti Koivisto  <antti@apple.com>

        Reviewed by Hyatt, Adele.

        Timers for media controls keep running when the page is in the page cache.
        
        Stop timers in RenderMedia and get rid of the controls tree when the page goes to the cache. 

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::willSaveToCache):
        (WebCore::HTMLMediaElement::didRestoreFromCache):
        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::inPageCache):
        * rendering/RenderMedia.cpp:
        (WebCore::RenderMedia::updateControls):

2008-01-23  Antti Koivisto  <antti@apple.com>

        Reviewed by Adam.

        Video that had already played to the end would start playing (from beginning) on back/forward navigation.
        
        Use setPausedInternal() instead of pause(). This avoid generating pause/play events and matches specification text.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::willSaveToCache):

2008-01-23  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        <rdar://problem/4200075> Missing support for accented chars in mailto forms

        With some combinations of form parameters, this was resulting in regressed behavior.

        Tests: fast/forms/mailto/get-non-ascii-text-plain-latin-1.html
               fast/forms/mailto/post-text-plain-with-accept-charset.html
               fast/forms/mailto/post-text-plain.html

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::formData): Ignore accept-charset for mailto forms, which are always
        encoded as UTF-8.
        (WebCore::HTMLFormElement::isMailtoForm): Added.
        (WebCore::HTMLFormElement::dataEncoding): Added (factored out from formData).
        (WebCore::HTMLFormElement::submit): When round-tripping in text/plain case, use utf-8 encoding.
        * html/HTMLFormElement.h: Added a isMailtoForm() function. It may be a bit unfortunate that
        its result is calculated repeatedly, but this doesn't seem to be anywhere near hot code.

2008-01-22  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Alice Liu.

        <rdar://problem/5658727> Undo/redo for pasted or typed text in yahoo mail becomes disabled after one round of being selected

        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::updateFromElement): If value == text() and
        m_innerText is empty, then value and text() are "". In that case both DOM 
        mutations are no-ops and there is no reason to clear the Undo stack.

2008-01-23  Steve Falkenburg  <sfalken@apple.com>

        <rdar://problem/5698732> Copyright strings should include 2008

        Reviewed by Sam.

        * WebCore.vcproj/QTMovieWin.rc:

2008-01-23  Steve Falkenburg  <sfalken@apple.com>

        <rdar://problem/5699509> Allow file upload dialog to be localized.

        Reviewed by Darin.

        * platform/LocalizedStrings.h:
        * platform/win/FileChooserWin.cpp:
        (WebCore::FileChooser::openFileChooser):

2008-01-23  Adam Roben  <aroben@apple.com>

        Fix behavior of type-to-select in <select> menus

        In r27825 we started posting both a WM_KEYDOWN and WM_CHAR message
        whenever a key was pressed in the dropdown menu. However, since posted
        messages go through TranslateMessage, the WM_KEYDOWN was generating
        another WM_CHAR message, so two WM_CHAR messages in a row would reach
        the WebView. This caused the searching to happen twice for each key,
        so typing "dog" would search for "ddoogg".

        Reviewed by Darin.

        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupWndProc): Repost the WM_KEYDOWN message to the WebView.
        This is will generate a WM_CHAR message which will trigger the
        type-to-select behavior. This is very similar to our behavior prior to
        r27825, except that we're now calling PostMessage instead of
        SendMessage.

2008-01-23  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Mark Rowe.

        Remove whitespace after -I in automake include lists.

        * GNUmakefile.am:

2008-01-23  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        * Rubber stamped by Simon

        * Load images incrementally. This will show warnings on the console
        and we want to fix them for Qt4.4. If that happens we have to remove
        the comment from the enum inside the ImageDecoderQt.cpp

        * platform/graphics/qt/ImageDecoderQt.cpp:
        (WebCore::ImageDecoderQt::setData):

2008-01-23  Lars Knoll  <lars@trolltech.com>

        Reviewed by Holger Freyther <holger.freyther@trolltech.com>.

        Fix rendering of the Scrollbar as well as mouse handling for some styles.

        The QStyle expects that that painter is set up to clip to the scrollbar bounds
        and some of the styles seem to paint somewhat outside of these bounds. Clipping to
        the scrollbar bounds before drawing removes some artifacts.

        Also set m_opt.rect.topLeft to (0/0) in the mouse handlers. Fixes some issues with
        the oxygen style.


        * platform/qt/PlatformScrollBarQt.cpp:
        (WebCore::PlatformScrollbar::paint):
        (WebCore::PlatformScrollbar::handleMouseMoveEvent):
        (WebCore::PlatformScrollbar::handleMousePressEvent):

2008-01-23  Michael Brasser  <michael.brasser@trolltech.com>

        Reviewed by Simon.

        Rendering fixes for Qtopia.

        Make the focus ring work with line breaks (until we have QPainterPath::simplify) and
        call QStyle with better arguments when painting themed elements.

        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::GraphicsContext::drawFocusRing):
        * platform/qt/RenderThemeQt.cpp:
        (WebCore::RenderThemeQt::paintButton):
        (WebCore::RenderThemeQt::applyTheme):

2008-01-23  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * FormData::flatten does not include to be uploaded files. Create our own QIODevice
        for the QNetworkAccessManager and feed the complete content of the FormData* to
        the (HTTP) backend.
        * Try to optimize the ::readData implementation to fill the buffer as best as possible

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::FormDataIODevice::FormDataIODevice):
        (WebCore::FormDataIODevice::~FormDataIODevice):
        (WebCore::FormDataIODevice::moveToNextElement):
        (WebCore::FormDataIODevice::readData):
        (WebCore::FormDataIODevice::writeData):
        (WebCore::FormDataIODevice::setParent):
        (WebCore::FormDataIODevice::isSequential):
        (WebCore::FormDataIODevice::slotFinished):
        (WebCore::QNetworkReplyHandler::start):
        * platform/network/qt/QNetworkReplyHandler.h:

2008-01-23  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Coding-Style fixes

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):

2008-01-23  Michael Brasser  <michael.brasser@trolltech.com>

        Reviewed by Simon.

        use PopupClient's font for popup menu. Otherwise, in Qtopia, the popup's font is much bigger (QApplication::font()?) and the text doesn't fit.

        * platform/qt/QWebPopup.cpp:
        (WebCore::QWebPopup::QWebPopup):

2008-01-23  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Lars.

        Implemented FrameLoaderClient::startDownload() and FrameLoaderClient::download().
        
        Added two signals to QWebPage to handle downloading of links and handling of
        unsupported content.
        

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::release):
        * platform/network/qt/QNetworkReplyHandler.h:

2008-01-22  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adele Peterson.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16905
          <rdar://problem/5692407> REGRESSION (3.0.4-TOT): "menu" pseudocolor is badly chosen

        The regression test for this is fast/css/css2-system-color.html which
        is currently disabled.

        * rendering/RenderThemeMac.mm:
        (WebCore::menuBackgroundColor): Added. Uses HIThemeDrawMenuBackground
        to draw the menu item background into a bitmap graphics context and
        returns the color of the pixel at (0, 0).
        (WebCore::RenderThemeMac::systemColor): Changed to call
        menuBackgroundColor for the CSS2 menu color.

2008-01-22  Darin Adler  <darin@apple.com>

        Reviewed by Oliver Hunt.

        - turn full repainting back on for <canvas> until we get incremental
          repaint working properly

        Ollie and I came up with a plan for testing this, but for now we should
        just fall back on the "repaint everything" behavior we have always had.

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::willDraw): Just call repaint.

2008-01-22  Alp Toker  <alp@atoker.com>

        GTK+/qmake build fix.

        * WebCore.pro:

2008-01-22  Adam Roben  <aroben@apple.com>

        Add HTMLFrameOwnerElement::scrollingMode

        This new virtual method is overridden by HTMLFrameElementBase to
        provide the scrolling mode set on the frame or iframe element. Object
        elements always have scrolling=auto, so there's no need to override
        this method for HTMLPlugInElement.

        Reviewed by Hyatt.

        * html/HTMLFrameElementBase.h: Declare scrollingMode as virtual.
        * html/HTMLFrameOwnerElement.h:
        (WebCore::HTMLFrameOwnerElement::scrollingMode): Added.

2008-01-22  David Hyatt  <hyatt@apple.com>

        Fix for <rdar://problem/5698481> REGRESSION: Web Inspector source view gutter double divider and no padding

        Now that cellpadding cascades properly on <td>s, we need to make the view source padding rules in the user
        agent sheet have !important in order to override author settings.

        Reviewed by Tim

        * css/view-source.css:

2008-01-22  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Alp.

        Allow to use SVGPaintServerSolid without RenderObject/RenderStyle. Used later to draw SVG Fonts in HTML.

        * svg/graphics/SVGPaintServer.cpp:
        (WebCore::SVGPaintServer::sharedSolidPaintServer):
        * svg/graphics/SVGPaintServer.h:
        * svg/graphics/cg/SVGPaintServerCg.cpp:
        (WebCore::SVGPaintServer::renderPath):
        (WebCore::SVGPaintServer::fillPath):
        (WebCore::SVGPaintServer::clipToFillPath):
        * svg/graphics/cg/SVGPaintServerSolidCg.cpp:
        (WebCore::SVGPaintServerSolid::setup):

2008-01-22  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Alp.

        Initialize missing variables, m_lineGap / m_lineSpacing.
        Only noticeable when trying to render HTML text using SVG Fonts (which is not possible with trunk, but with my local version).

        * platform/graphics/SimpleFontData.cpp:
        (WebCore::SimpleFontData::SimpleFontData):

2008-01-22  Alp Toker  <alp@atoker.com>

        Reviewed by Nikolas.

        Fix Cairo SVG fonts following changes in r29700.

        Set the font description's details as needed in FontPlatformData and
        eliminate GraphicsContext::setPlatformFont() since it was redundant
        and assumed all fonts were Cairo fonts.

        * platform/graphics/GraphicsContext.cpp:
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        * platform/graphics/gtk/FontPlatformDataGtk.cpp:
        (WebCore::FontPlatformData::FontPlatformData):

2008-01-22  Dan Bernstein  <mitz@apple.com>
 
         Reviewed by Eric.
 
         - fix http://bugs.webkit.org/show_bug.cgi?id=16967
           <rdar://problem/5699344> Reproducible crash when navigating back to a page using SVG fonts
 
         Test: svg/custom/font-platformDestroy-crash.svg
 
         * platform/graphics/SimpleFontData.cpp:
         (WebCore::SimpleFontData::~SimpleFontData): Changed to call
         platformDestroy() only if platformInit() was called from the
         constructor.

2008-01-22  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        cleanup the CookieJarQt implementation and implement cookiesEnabled.

        * platform/qt/CookieJarQt.cpp:
        (WebCore::cookieJar):
        (WebCore::setCookies):
        (WebCore::cookies):
        (WebCore::cookiesEnabled):

2008-01-22  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        Ported the font implementation to use the new QFont features of Qt 4.4.
        

        * platform/graphics/Font.h:
        (WebCore::Font::setWordSpacing):
        (WebCore::Font::setLetterSpacing):
        (WebCore::Font::font):
        (WebCore::Font::):
        * platform/graphics/qt/FontQt.cpp:
        (WebCore::Font::Font):
        (WebCore::Font::setWordSpacing):
        (WebCore::Font::setLetterSpacing):
        (WebCore::qstring):
        (WebCore::setupLayout):
        (WebCore::Font::drawText):
        (WebCore::Font::width):
        (WebCore::Font::floatWidth):
        (WebCore::Font::offsetForPosition):
        (WebCore::Font::selectionRectForText):
        (WebCore::generateComponents):
        (WebCore::cursorToX):
        (WebCore::Font::~Font):
        (WebCore::Font::operator=):
        (WebCore::Font::operator==):
        (WebCore::Font::update):

2008-01-21  Eric Seidel  <eric@webkit.org>

        Reviewed by Nikolas & Oliver.
        
        Tested by svg/custom/svg-features.html
        
        * dom/DOMImplementation.cpp:
        (WebCore::isSVG10Feature): use ENABLE(SVG_*) conditionals
        (WebCore::isSVG11Feature): use ENABLE(SVG_*) conditionals

2008-01-21  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Maciej Stachowiak.

        Adapted WebCore to the fix for http://bugs.webkit.org/show_bug.cgi?id=16909
        REGRESSION: Amazon.com crash (ActivationImp)

        * bindings/js/kjs_proxy.cpp:
        (WebCore::KJSProxy::~KJSProxy): No convenient way to make this assertion
        anymore. (It wasn't firing for anyone, anyway, so it's no big loss.)

        * bindings/objc/WebScriptObject.mm:
        (+[WebScriptObject throwException:]): Use the ExecState stack, instead
        of currentExec.
        (-[WebScriptObject setException:]): ditto. Also, a slight change in
        behavior: If no ExecStates are active, we no longer throw an exception
        in the global ExecState. The JavaScriptCore ChangeLog explains why.
        This also matches the behavior of +throwException.

2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Try to fix Qt build, after the rmdir() fixes.c

        * platform/graphics/qt/SimpleFontDataQt.cpp:
        (WebCore::SimpleFontData::SimpleFontData):

2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Another Wx build fix.

        * platform/graphics/wx/FontWx.cpp:
        (WebCore::Font::drawGlyphs):

2008-01-21  Darin Adler  <darin@apple.com>

        - try to fix Qt build

        * platform/qt/FileSystemQt.cpp:
        (WebCore::deleteEmptyDirectory): QDir::root().rmdir() instead of QDir::rmdir().

2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Yet another win/gtk build fix.

        * platform/graphics/gtk/FontPlatformDataGtk.cpp:
        (WebCore::FontPlatformData::FontPlatformData):
        * platform/graphics/win/FontWin.cpp:
        (WebCore::Font::drawGlyphs):

2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Another build fix for Gtk/Linux & Wx/Mac.

        * platform/graphics/SimpleFontData.cpp:
        (WebCore::SimpleFontData::SimpleFontData):

2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Build fix for Qt/Gtk & Wx.

        * css/CSSFontSelector.cpp:
        * platform/graphics/SegmentedFontData.cpp:
        (WebCore::SegmentedFontData::isSVGFont): Remove SVG_FONTS block, it's a pure virtual function in the base class.
        * platform/graphics/SegmentedFontData.h:

2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Build fix for ports that don't build SVG: wx.

        * css/CSSFontFaceSource.h: Wrap include in ENABLE(SVG_FONTS) blocks.
        * css/CSSFontFaceSrcValue.h: Ditto.

2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Build fix for Qt/Gtk.

        * platform/graphics/SimpleFontData.h:
        (WebCore::SimpleFontData::svgFontData):
        (WebCore::SimpleFontData::isSVGFont):

2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric. Older parts reviewed by Dan.

        Fixes: http://bugs.webkit.org/show_bug.cgi?id=16880 (SVGCSSFontFace should die, instead integrate within the FontCache.)
        Fixes: http://bugs.webkit.org/show_bug.cgi?id=16784 (In-document fonts work only as the first child to font-face-src)

        Proper integration of SVG Fonts within the existing custom font concept, removing the need for a custom SVGCSSFontFace.
        Integrate within the CSSFontFaceSource logic for caching support, as well as the framework for external SVG Fonts.

        Proper handling of missing glyphs, using <missing-glyph> element. If that is not specified in a font, fallback to non-SVG font rendering.

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSFontFaceSource.cpp:
        (WebCore::CSSFontFaceSource::getFontData):
        * css/CSSFontFaceSource.h:
        (WebCore::CSSFontFaceSource::svgFontFaceElement):
        (WebCore::CSSFontFaceSource::setSVGFontFaceElement):
        * css/CSSFontFaceSrcValue.h:
        (WebCore::CSSFontFaceSrcValue::m_isLocal):
        (WebCore::CSSFontFaceSrcValue::~CSSFontFaceSrcValue):
        (WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
        (WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule):
        * css/SVGCSSFontFace.cpp: Removed.
        * css/SVGCSSFontFace.h: Removed.
        * platform/graphics/Font.cpp:
        (WebCore::Font::ascent):
        (WebCore::Font::descent):
        (WebCore::Font::lineSpacing):
        (WebCore::Font::xHeight):
        (WebCore::Font::fontSelector):
        * platform/graphics/Font.h:
        * platform/graphics/FontData.h:
        * platform/graphics/SegmentedFontData.cpp:
        (WebCore::SegmentedFontData::isSVGFont):
        * platform/graphics/SegmentedFontData.h:
        * platform/graphics/SimpleFontData.cpp:
        (WebCore::SimpleFontData::SimpleFontData):
        * platform/graphics/SimpleFontData.h:
        (WebCore::SimpleFontData::ascent):
        (WebCore::SimpleFontData::descent):
        (WebCore::SimpleFontData::lineSpacing):
        (WebCore::SimpleFontData::lineGap):
        (WebCore::SimpleFontData::xHeight):
        (WebCore::SimpleFontData::isSVGFont):
        (WebCore::SimpleFontData::svgFontData):
        * platform/graphics/gtk/FontPlatformData.h:
        (WebCore::FontPlatformData::size):
        * platform/graphics/gtk/FontPlatformDataGtk.cpp:
        (WebCore::FontPlatformData):
        * platform/graphics/mac/FontPlatformData.h:
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::size):
        * platform/graphics/win/FontPlatformData.h:
        * platform/graphics/win/FontPlatformDataWin.cpp:
        (WebCore::FontPlatformData::FontPlatformData):
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::relativeBBox):
        * svg/SVGFont.cpp:
        (WebCore::convertEmUnitToPixel):
        (WebCore::isCompatibleGlyph):
        (WebCore::svgFontAndFontFaceElementForFontData):
        (WebCore::SVGTextRunWalker::SVGTextRunWalker):
        (WebCore::SVGTextRunWalker::walk):
        (WebCore::floatWidthUsingSVGFontCallback):
        (WebCore::floatWidthMissingGlyphCallback):
        (WebCore::floatWidthOfSubStringUsingSVGFont):
        (WebCore::drawTextUsingSVGFontCallback):
        (WebCore::drawTextMissingGlyphCallback):
        (WebCore::Font::drawTextUsingSVGFont):
        * svg/SVGFontData.cpp: Added.
        (WebCore::SVGFontData::SVGFontData):
        (WebCore::SVGFontData::~SVGFontData):
        * svg/SVGFontData.h: Added.
        (WebCore::SVGFontData::svgFontFaceElement):
        (WebCore::SVGFontData::horizontalOriginX):
        (WebCore::SVGFontData::horizontalOriginY):
        (WebCore::SVGFontData::horizontalAdvanceX):
        (WebCore::SVGFontData::verticalOriginX):
        (WebCore::SVGFontData::verticalOriginY):
        (WebCore::SVGFontData::verticalAdvanceY):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::unitsPerEm):
        (WebCore::SVGFontFaceElement::xHeight):
        (WebCore::SVGFontFaceElement::horizontalOriginX):
        (WebCore::SVGFontFaceElement::horizontalOriginY):
        (WebCore::SVGFontFaceElement::horizontalAdvanceX):
        (WebCore::SVGFontFaceElement::verticalOriginX):
        (WebCore::SVGFontFaceElement::verticalOriginY):
        (WebCore::SVGFontFaceElement::verticalAdvanceY):
        (WebCore::SVGFontFaceElement::ascent):
        (WebCore::SVGFontFaceElement::descent):
        (WebCore::SVGFontFaceElement::fontFamily):
        (WebCore::SVGFontFaceElement::associatedFontElement):
        (WebCore::SVGFontFaceElement::rebuildFontFace):
        * svg/SVGFontFaceElement.h:
        * svg/SVGGlyphElement.cpp:
        (WebCore::SVGGlyphElement::inheritUnspecifiedAttributes):
        (WebCore::parseSVGGlyphAttribute):
        (WebCore::SVGGlyphElement::buildGenericGlyphIdentifier):
        (WebCore::SVGGlyphElement::buildGlyphIdentifier):
        * svg/SVGGlyphElement.h:
        * svg/SVGMissingGlyphElement.cpp:
        * svg/svgattrs.in:

2008-01-21  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - fix <rdar://problem/5644324> Delegate-less WebKit clients should have no databases

        - remove the default database quota setting

        - simplify the quota-related client calls by merging the one for a new database with
          the one for an existing database, adding a feature where you can get details about
          a database being created using the same functions that work on the other databases,
          and removing the parameters and return values, instead having clients use a function
          to set the quota

        - fix unsafe multi-thread access to the database tracker's quota map
        - fix bug in deleteAllDatabases where it would iterate a HashMap while modifying it

        The tracker database is now only created when we set the quota for a database origin.
        Thus asking for info about databases won't cause anything to be written to disk.

        * WebCore.base.exp: Updated.

        * bindings/js/GCController.cpp: Added an #if to get rid of an unused function warning.

        * page/Chrome.cpp: Removed database-related functions. There's no problem having the
        code deal directly with the client.
        * page/Chrome.h: Ditto. Also made Chrome inherit from Noncopyable.

        * page/ChromeClient.h: Replaced the two quota-related functions with a single one.
        The details about the state of databases in the origin are now available by asking
        for database details. There's also no need to pass the security origin, since
        it's easy to get that from the frame's document.

        * page/Settings.cpp: Removed the default quota setting.
        * page/Settings.h: Ditto.

        * platform/FileSystem.h: Added deleteEmptyDirectory.
        * platform/gtk/FileSystemGtk.cpp:
        (WebCore::deleteEmptyDirectory): Added.
        * platform/posix/FileSystemPOSIX.cpp:
        (WebCore::deleteEmptyDirectory): Added.
        * platform/qt/FileSystemQt.cpp:
        (WebCore::deleteEmptyDirectory): Added.
        * platform/win/FileSystemWin.cpp:
        (WebCore::deleteEmptyDirectory): Added.
        * platform/wx/FileSystemWx.cpp:
        (WebCore::deleteEmptyDirectory): Added placeholder.

        * storage/DatabaseDetails.h: Removed the isValid() function since its name is
        confusing -- we removed our other isValid() functions. For the few callers that
        need this, it's fine to just check name().isEmpty(). Made the member functions
        all const.

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::DatabaseTracker): Removed m_defaultQuota initialization.
        Added m_proposedDatabase and m_thread.
        (WebCore::DatabaseTracker::setDatabaseDirectoryPath): Got rid of code that would
        open the tracker database here. This might slightly speed up launch time, since
        we won't do the I/O until we have to, and before we were actually creating an SQL
        database in this code that's run when we go to the first webpage.
        (WebCore::DatabaseTracker::trackerDatabasePath): Added.
        (WebCore::DatabaseTracker::openTrackerDatabase): Added a boolean parameter telling
        this function whether to create the database. Made this function safe to call if
        the database is already open. Also made the function fail quietly if the path has
        not been set yet.
        (WebCore::DatabaseTracker::canEstablishDatabase): Got rid of the call to the
        establishEntryForOrigin function. The origin is now put in the tracker database
        when the quota is set to a non-zero value. When judging if there's enough space
        for the new database, require at least one byte even if estimatedSize is 0, and
        check for overflow. Also added code here to populate the origins map, which
        guarantees it will be ready when the database uses it on another thread later.
        Also changed this to call the new ChromeClient function.
        (WebCore::DatabaseTracker::hasEntryForDatabase): Added code to open the
        tracker database, since that's no longer done by setDatabaseDirectoryPath.
        (WebCore::DatabaseTracker::originPath): Added.
        (WebCore::DatabaseTracker::fullPathForDatabase): Added code so that this will
        return a null string for the proposed database if called from within the
        ChromeClient function. Also switched from empty string to null string for the
        error cases.
        (WebCore::DatabaseTracker::populateOrigins): Added code to open the tracker
        database.
        (WebCore::DatabaseTracker::databaseNamesForOrigin): Ditto.
        (WebCore::DatabaseTracker::detailsForNameAndOrigin): Ditto. Also added code that
        will return the details of the proposed database if called from within the
        ChromeClient function. This is how the client can learn of the display name and
        the estimated size of the new database.
        (WebCore::DatabaseTracker::setDatabaseDetails): Added code to open the tracker
        database.
        (WebCore::DatabaseTracker::quotaForOrigin): Made this code OK to call on a non-main
        thread by using m_quotaMapGuard to guard access to the map. Other code runs on the
        main thread only, and only functions that write to the map use the lock.
        (WebCore::DatabaseTracker::setQuota): Changed this function so it can insert the
        initial quota as well as updating an existing quota. Added locking since this
        function modifies the quota map. Added code to open the tracker database. Added
        an early exit if the quota is already correct, which is guarantees that if you
        set a quota to 0 it won't trigger creation of a tracker database.
        (WebCore::DatabaseTracker::addDatabase): Added code to open the tracker database.
        (WebCore::DatabaseTracker::deleteAllDatabases): Made a copy of the quota map before
        iterating it to find all the origins. This fixes a problem with the old code where
        it would modify the map while iterating it, which gives assertions in debug builds
        and unpredictable results.
        (WebCore::DatabaseTracker::deleteOrigin): Replaced deleteDatabasesWithOrigin with
        this function. Added code to open the tracker database if needed. Added code to
        delete the origin from the tracker database, and to close the tracker database
        and delete files and directories as needed if we are deleting the final origin.
        (WebCore::DatabaseTracker::deleteDatabase): Added code to open the tracker database
        if needed.

        * storage/DatabaseTracker.h: Renamed databasePath to databaseDirectoryPath for
        clarity, including the data member, and the getter and setter functions.
        Replaced deleteDatabasesWithOrigin with deleteOrigin. Removed the functions
        dealing with default origin quota. There is no default any more; origins start
        with no quota and the client must set a quota. Added trackerDatabasePath and
        originPath helper functions. Added a boolean parameter to openTrackerDatabase
        to tell it whether to create the database or not. Removed the
        establishEntryForOrigin function. Renamed m_originQuotaMap to just m_quotaMap,
        and added m_quotaMapGuard. Added a QuotaMap typedef. Added m_proposedDatabase,
        which holds the origin and details for the current proposed database during
        the client callback function that must decide whether to grant quota. Added a
        m_thread data member for debugging use to assert if functions that can only
        be called on a single thread are misused.

        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Changed to call the
        new exceededDatabaseQuota function instead of the old one.

        * svg/graphics/SVGImageEmptyClients.h: Updated for the change to ChromeClient.

2008-01-21  David Hyatt  <hyatt@apple.com>

        Fix for http://bugs.webkit.org/show_bug.cgi?id=16935

        Fix a bug in layers where the positioned ancestor was being computed incorrectly (the root should not
        automatically be included).

        Reviewed by olliej

        Added fast/layers/positioned-inside-root-with-margins.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::stackingContext):
        (WebCore::RenderLayer::enclosingPositionedAncestor):

2008-01-21  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Fix KURL to QUrl conversion.
        
        Stick to the encoded version of the URL and in addition to KURL we encode the
        characters mentioned in section 2.4.3 of RFC 2396 as QUrl requires these, too.
        
        This fixes fast/css/import-rule-regression-11590.html,
        fast/css/import-style-update.html, svg/hixie/processing-model/003.xml and
        svg/hixie/processing-model/004.xml.


        * platform/qt/KURLQt.cpp:
        (WebCore::toHex):
        (WebCore::KURL::operator QUrl):

2008-01-21  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Fix focus chain handling and cycling through focusable objects (links) using tab/backtab.
        
        * Fix GraphicsContext::drawFocusRing to also draw single focus rects.
        * Implemented QWebPage::focusNextPrevChild by sending fake tab/shift-tab events
        and make the return value depend on whether we successfully determined a focusable
        node or not.
        * Changed QWebView::focusNextPrevChild() to call the base QWidget implementation correctly
        if we could not handle the focus chain ourselves.
        * Changed the focus policy of QWebView to correctly use WheelFocus instead of ClickFocus.
        * Made ChromeClientQt::canTakeFocus() and takeFocus() dummy method since they are only
        used to control the situation of stepping out of the focus chain inside the page.
        * Made inclusion of links in the focus chain configurable through QWebSettings::LinksIncludedInFocusChain.
        The layout tests expect this to be disabled but for the user it seems sensible to have it
        on by default, hence the default in qwebsettings.cpp

        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::GraphicsContext::drawFocusRing):

2008-01-21  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Fix access key support and fast/forms/legend-access-key.html

        SVN revision 26664 changed the default access key for the non-mac build to Alt
        while this test relies on Ctrl.

        * page/EventHandler.cpp:

2008-01-21  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Fix error reporting when parsing X(HT)ML fragments.
        
        We use the regular XMLTokenizer write()/.../end() sequence to parse those
        fragments, but we should not report any parsing errors inline inside the
        content. Instead we should just return the error and the DOM layer will take
        care of throwing an exception.
        
        This fixes fast/innerHTML/innerHTML-changing-document-properties.xhtml
        

        * dom/XMLTokenizer.cpp:
        (WebCore::createXHTMLParserErrorHeader):

2008-01-21  Holger Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        Fix some issues with redirections.
        
        * Ensure that we deliver the response to the ResourceHandleClient only once by
        setting m_responseSent back to false only before calling start() for the
        redirection
        * Added 307 as another HTTP status code that causes a redirection after POST to
        become get, just like in MainResourceLoader::isPostOrRedirectAfterPost
        * Also set the HTTP method on the ResourceRequest to GET before passing it to
        willSendRequest.
        * willSendRequest's newRequest argument is actually an in/out argument and could be
        modified in theory, so set m_request accordingly after the call.
        

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::finish):
        (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):

2008-01-21  Holger Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        Fixed WebCore::cookies() to return all cookies, not only the first one.
        
        Fixes login into mail.yahoo.com.
        

        * platform/qt/CookieJarQt.cpp:
        (WebCore::cookies):

2008-01-20  Oliver Hunt  <oliver@apple.com>

        Reviewed by Mitz.

        Fix http://bugs.webkit.org/show_bug.cgi?id=16816 , rdar://problem/5682985
        
        Correctly trigger willPerformDragDestinationAction when a drop causes a 
        load to occur.  The logic that originally did this was lost during the
        great drag migration of '07.

        * page/DragController.cpp:
        (WebCore::DragController::performDrag):

2008-01-20  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16951
          Assertion failure in FrameView::scheduleRelayout (!m_frame->document() || !m_frame->document()->inPageCache()) when going back from a page with a focused popup

        * dom/Document.cpp:
        (WebCore::Document::setFocusedNode): Bail out if the document is in the
        page cache. Documents in the back/forward cache are "frozen" and should
        not change state.

2008-01-20  Collin Jackson  <webkit@collinjackson.com>

        Reviewed by Sam Weinig.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=16775

        We now use frame()->loader()->url() for postMessage, preventing a
        malicious sender from overwriting the uri property (using a <base> tag,
        for example). Also, use frame->loader()->url().host() instead of 
        instead of document()->SecurityOrigin()->domain() to reflect a recent
        clarification in the HTML5 spec. 

        Tests: http/tests/security/postMessage/domain-affected-by-document-domain.html
               http/tests/security/postMessage/domain-and-uri-unaffected-by-base-tag.html
               http/tests/security/postMessage/javascript-page-still-sends-domain.html

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::postMessage):

2008-01-20  Antti Koivisto  <antti@apple.com>

        Reviewed by Adele.

        Fix <rdar://problem/5695451>
        Middle part of the media timeline missing on Windows if load failed

        Add some null checking to avoid getting garbage results from the functions.

        * platform/graphics/MediaPlayer.cpp:
        * platform/graphics/win/QTMovieWin.cpp:
        (QTMovieWin::duration):
        (QTMovieWin::currentTime):
        (QTMovieWin::setCurrentTime):
        (QTMovieWin::maxTimeLoaded):

2008-01-19  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=16944
        Use of GST_PLUGIN_DEFINE_STATIC results in a module-level constructor

        http://bugzilla.gnome.org/show_bug.cgi?id=510547
        Epiphany/Webkit fails to start due to initializing threads twice

        Don't call GST_PLUGIN_DEFINE_STATIC() as it performs g_thread_init()
        in the global initializer, breaking subsequent calls to
        g_thread_init() in applications.

        * platform/graphics/gtk/VideoSinkGStreamer.cpp:

2008-01-19  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Remove any fragment part from the URL to be requested just before
        passing it to curl, otherwise curl sends it as part of the HTTP/local
        file request, causing page loads to fail.

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::startJob):

2008-01-19  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        Add svg foreign object and svg experimental to the GTK+/autotools
        build system.

        * GNUmakefile.am:

2008-01-19  Dan Bernstein  <mitz@apple.com>

        Reviewed by Maciej Stachowiak.

        - fix <rdar://problem/5645813> CrashTracer: [USER] 6 crashes in Safari at com.apple.WebCore: WebCore::RenderBox::destroy + 116

        Test: editing/selection/inconsistent-in-removeChildNode.html

        * editing/SelectionController.cpp:
        (WebCore::SelectionController::nodeWillBeRemoved): If the selection
        base or extent are not visible any more, adjust the selection.

2008-01-19  Oliver Hunt  <oliver@apple.com>

        Reviewed by Eric Seidel.

        Build fix for --svg-foreign-object path

        * svg/SVGForeignObjectElement.idl:

2008-01-18  Stephanie  <slewis@apple.com>

        Reviewed by Oliver.

        Workaround for <rdar://problem/5695848>.  Set mime_type for local files based on file extension. 

        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::ResourceResponse::doUpdateResourceResponse):

2008-01-18  Ada Chan  <adachan@apple.com>

        <rdar://problem/5682340> REGRESSION (r28188): Context menu appears at wrong place when clicking in iframe whose parent is scrolled (16827)
        Calling absolutePosition() in EventHandler::hitTestResultAtPoint() is extremely inefficient and passing in
        true as fixed before was wrong.  Use HitTestResult::localPoint() instead, and take into account border and padding widths.

        Reviewed by Hyatt and Darin.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::hitTestResultAtPoint):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::operator=):

2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Darin, landed by Beth.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=15765

        The call to HTMLTokenizer::write might result in a call to ::end which will invoke
        HTMLParser::finished() or Document::finishedParsing(). HTMLParser::finished() will eventually
        call Document::finishedParsing. The Document will delete the calling HTMLTokenizer and from the deleted
        tokenizer we will call into FrameLoader::tokenizerProcessedData.
        -) FrameLoader::tokenizerProcessedData calls FrameLoader::checkCompleted which gets called from the Document::finishedParsing
           (FrameLoader::finishedParsing).

        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::timerFired):

2008-01-18  David Hyatt  <hyatt@apple.com>

        Don't apply the border/margin/padding check to root line boxes, since their renderers
        are blocks.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::computeLogicalBoxHeights):
        (WebCore::InlineFlowBox::placeBoxesVertically):

2008-01-18  Geoffrey Garen  <ggaren@apple.com>

        Not reviewed: rolling out a previous patch.
        
        Fixed <rdar://problem/5695439> Crash during GCController destructor on
        quitting browser

        Used svn merge to roll out r29603 because it introduced some crashes
        on quit.
        
        GC relies on static hash tables, so it's not safe to GC from a static
        destructor, which might run after the static hash tables' destructors.

        * bindings/js/GCController.cpp:
        (WebCore::GCController::garbageCollectNow):
        * bindings/js/GCController.h:

2008-01-18  David Hyatt  <hyatt@apple.com>

        Fix for http://bugs.webkit.org/show_bug.cgi?id=15665

        Building on Beth's earlier work to start building line boxes for empty inlines, this patch makes more
        empty inline cases work.  Empty inlines on lines by themselves now set isLineEmpty to false so that
        bidiReorderLine will get properly called.  In addition, the "shrink boxes with no text children" quirk
        needs to be disabled for inlines with padding, margins or borders.

        Reviewed by Beth

        Added fast/inline/inline-padding-disables-text-quirk.html

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::computeLogicalBoxHeights):
        (WebCore::InlineFlowBox::placeBoxesVertically):
        (WebCore::InlineFlowBox::shrinkBoxesWithNoTextChildren):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::hasBordersPaddingOrMargin):
        * rendering/bidi.cpp:
        (WebCore::inlineFlowRequiresLineBox):
        (WebCore::RenderBlock::findNextLineBreak):

2008-01-18  David Hyatt  <hyatt@apple.com>

        Fix for http://bugs.webkit.org/show_bug.cgi?id=14975

        Computed size of padding is incorrect because we default padding to auto.  This is a made-up value that
        was only used to implement cellpadding on tables.  We needed this made-up value in order to tell that
        padding wasn't set so that we could then apply cellpadding.
       
        This patch rewrites cellpadding to be like other browsers.  Instead of being a setting on the table
        renderer that applies to all cells (even ones that were not <td>s), cellpadding is now mapped into the
        style of <td>s.  With this change it effectively becomes a content model feature and not a rendering
        feature.

        For example, a <td> will pick up cellpadding even when it is not a cell and/or the enclosing <table> is
        not a table.  Anonymous cells and CSS-display-type cells will now never pick up cellpadding.  This behavior
        is all consistent with other browsers.

        Reviewed by Antti

        Added fast/css/padding-no-renderer.html

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::canShareStyleWithElement):
        (WebCore::CSSStyleSelector::styleForElement):
        * css/CSSStyleSelector.h:
        * dom/StyledElement.cpp:
        * dom/StyledElement.h:
        (WebCore::StyledElement::canHaveAdditionalAttributeStyleDecls):
        (WebCore::StyledElement::additionalAttributeStyleDecls):
        * html/HTMLTableCellElement.cpp:
        (WebCore::HTMLTableCellElement::additionalAttributeStyleDecls):
        * html/HTMLTableCellElement.h:
        (WebCore::HTMLTableCellElement::canHaveAdditionalAttributeStyleDecls):
        * html/HTMLTableColElement.cpp:
        (WebCore::HTMLTableColElement::additionalAttributeStyleDecls):
        * html/HTMLTableColElement.h:
        (WebCore::HTMLTableColElement::canHaveAdditionalAttributeStyleDecls):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::parseMappedAttribute):
        (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
        (WebCore::HTMLTableElement::addSharedCellDecls):
        (WebCore::HTMLTableElement::addSharedCellBordersDecl):
        (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
        (WebCore::HTMLTableElement::addSharedGroupDecls):
        (WebCore::HTMLTableElement::attach):
        * html/HTMLTableElement.h:
        (WebCore::HTMLTableElement::canHaveAdditionalAttributeStyleDecls):
        * html/HTMLTableSectionElement.cpp:
        (WebCore::HTMLTableSectionElement::additionalAttributeStyleDecls):
        * html/HTMLTableSectionElement.h:
        (WebCore::HTMLTableSectionElement::canHaveAdditionalAttributeStyleDecls):
        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::recalcColumn):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::paddingTop):
        (WebCore::RenderObject::paddingBottom):
        (WebCore::RenderObject::paddingLeft):
        (WebCore::RenderObject::paddingRight):
        * rendering/RenderStyle.cpp:
        (WebCore::StyleSurroundData::StyleSurroundData):
        * rendering/RenderStyle.h:
        (WebCore::RenderStyle::initialPadding):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::RenderTable):
        * rendering/RenderTable.h:

2008-01-18  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix <rdar://problem/5615307> Repro crash in WebKit!WebCore::RenderContainer::destroyLeftoverChildren

        Test: fast/table/insert-row-before-form.html

        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::addChild): Changed to ensure that the
        object a new cell is inserted before is a child of the row, and
        added an assertion that that object is either a cell or a form.
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::addChild): Changed to ensure that the
        object a new row is inserted before is a child of the table section, and
        added an assertion that that object is either a table row or a form.

2008-01-18  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Brady Eidson.

        Fixed <rdar://problem/5622424> World Leak dialog when closing a page
        that has a Database
        
        The problem was that each transaction and SQL statement would hold on
        to its callback indefinitely. By design, callbacks often establish
        reference cycles to temporarily protect their execution environments.
        To break the cycle, we need to explicitly release each callback as soon
        as it is no longer needed.

        * storage/SQLStatement.cpp:
        (WebCore::SQLStatement::performCallback): Release our callback objects
        after performing our callback.

        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::postflightAndCommit): Release our callback
        objects after the transaction has terminated.
        (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): ditto.

2008-01-18  Adele Peterson  <adele@apple.com>

        Reviewed by Antti.

        Fix for <rdar://problem/5679490> media controls fade in and out too jerkily and too slowly

        * rendering/RenderMedia.cpp: Shorten the duration for the fade in/out animation.

2008-01-18  Beth Dakin  <bdakin@apple.com>

        Reviewed by Oliver.

        Disables SVG foreign object for <rdar://problem/5686989> turn off 
        SVG foreignobject because it does not repaint/dirty correctly

        * DerivedSources.make:
        * WebCore.SVG.ForeignObject.exp: Added.
        * WebCore.SVG.exp:
        * bindings/js/JSSVGElementWrapperFactory.cpp:
        (WebCore::createJSSVGWrapper):
        * rendering/RenderForeignObject.cpp:
        * rendering/RenderForeignObject.h:
        * svg/SVGForeignObjectElement.cpp:
        * svg/SVGForeignObjectElement.h:
        * svg/SVGForeignObjectElement.idl:
        * svg/SVGLocatable.cpp:
        (WebCore::SVGLocatable::nearestViewportElement):
        (WebCore::SVGLocatable::farthestViewportElement):
        * svg/SVGUseElement.cpp:
        (WebCore::isDisallowedElement):
        * svg/svgtags.in:

2008-01-18  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Adam Roben.

        Fix mixed line endings in FileSystemWin.cpp and set svn:eol-style to native
        to try and keep them consistent in the future.

        * platform/win/FileSystemWin.cpp:
        (WebCore::fileSize):
        (WebCore::fileExists):
        (WebCore::deleteFile):
        (WebCore::pathByAppendingComponent):
        (WebCore::fileSystemRepresentation):
        (WebCore::makeAllDirectories):
        (WebCore::homeDirectoryPath):
        (WebCore::bundleName):
        (WebCore::storageDirectory):
        (WebCore::cachedStorageDirectory):

2008-01-18  Antti Koivisto  <antti@apple.com>

        Reviewed by Adam.

        Fix unreachable code warning in RenderVideo on Windows.
        
        Make switch cases explicit.

        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::isWidthSpecified):
        (WebCore::RenderImage::isHeightSpecified):
        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::isWidthSpecified):
        (WebCore::RenderVideo::isHeightSpecified):

2008-01-18  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben.

        <rdar://problem/5693558> REGRESSION (r29581): no form field focus
        rings and inactive text selection after loading a page
        Bug 16910: [GTK] REGRESSION: keyboard cursor doesn't blink
        Bug 16917: REGRESSION (r29581/2): Google Maps search box loses focused appearance

        * page/FocusController.cpp:
        (WebCore::FocusController::setActive): Use focusedOrMainFrame() instead of focusedFrame()
        to call selectionController()->pageActivationChanged() for cases when the focusedFrame()
        has not been set yet. 

2008-01-18  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Brady.

        Database origin tracking is broken.

        * storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::populateOrigins):
        Move reading from statement back into the loop (broken in r29386).

2008-01-18  Marius Storm-Olsen  <marius@trolltech.com>

        Reviewed by Simon Hausmann <hausmann@webkit.org>.

        Add use of precompiled header, when building inside Qt.
        
        Compiling WebKit was taking forever; 17 minutes on my machine for _one_ build! Adding the PCH at least brings it down to 12 minutes for one build, for me.
        

        * WebCore.pro:

2008-01-18  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Fix fast/forms/button-state-restore.html
        
        Similar to the fix for fast/forms/form-post-urlencoded.html transform POST
        requests to data urls into GET.
        

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::start):

2008-01-18  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Fix LayoutTests/fast/cookies/local-file-can-set-cookies.html
        
        In WebCore::cookies() don't return the full raw form but only the name=value
        part. This fixes the getter part of the above test. The above test also
        requires a parsing fix in Qt 4.4's QNetworkCookie to fully pass.
        

        * platform/qt/CookieJarQt.cpp:
        (WebCore::cookies):

2008-01-18  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Fix svg/custom/path-getTotalLength.svg
        
        Path::apply creates a PathElement and its points array on the stack,
        to fill it in from the QPainterPath data and then use the platform
        independent path applier functions to calculate properties such as
        the length. For converting a QPainterPath::CurveToElement we need
        three points in the path element. However we allocated only two
        on the stack and as a result we got memory corruption and the
        failing test.
        

        * platform/graphics/qt/PathQt.cpp:
        (WebCore::Path::apply):

2008-01-18  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Fix LayoutTests/fast/dom/document-attribute-js-null.html
        
        Don't crash when trying to get/set cookies without a frameloader.
        

        * platform/qt/CookieJarQt.cpp:
        (WebCore::setCookies):
        (WebCore::cookies):

2008-01-18  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Fix fast/dom/xmlhttprequest-get.xhtml
        
        For local file requests remove the content length and the last-modified
        headers in the response.
        

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):

2008-01-18  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Fix fast/forms/form-post-urlencoded.html.
        
        Post requests on files don't really make sense, but for
        fast/forms/form-post-urlencoded.html we still need to retrieve the file,
        which means we map it to a Get instead.
        

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::start):

2008-01-18  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Make QNetworkReplyHandler::abort() more robust against multiple invocations.

        During DRT runs I see cancel() being called on the same handle multiple times. Guard
        against this a bit better by setting m_reply to 0 after we called abort() on it.

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::abort):

2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * httpBody() can return 0 and other ports (cf/mac) check for this condition
        * Looking at the cf/mac implementation we might need to call setHTTPBody somewhere
        as well.
        

        WARNING: NO TEST CASES ADDED OR CHANGED

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::start):

2008-01-18  Prasanth Ullattil  <prasanth.ullattil@trolltech.com>

        Reviewed by Simon Hausmann <hausmann@webkit.org>.

        Fix compilation in Win64(3): Due to the size of size_t cast the return value explicitly to double() to make sure the right Value() constructor is called.

        * xml/XPathFunctions.cpp:
        (WebCore::XPath::FunCount::evaluate):

2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Remove our windowClipRect reimplementation and instead have our own
        Widget::invalidate implementation that is invalidating
        IntRect(0, 0, width(), height()) without trying to clip it (in contrast
        to Widget::invalidateRect)

        * platform/qt/PlatformScrollBar.h:
        * platform/qt/PlatformScrollBarQt.cpp:
        (WebCore::PlatformScrollbar::invalidate):

2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Change the coordinate transformation in the PlatformMouseEvent handlers
        * We want to convert from coordinates of the containing window to our local
        position on the scrollbar.

        * platform/qt/PlatformScrollBarQt.cpp:
        (WebCore::PlatformScrollbar::handleMouseMoveEvent):
        (WebCore::PlatformScrollbar::handleMousePressEvent):

2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Make the qDebug more usable. Do not have an additional newline and print
        the untranslated coordinates as well.

        * platform/qt/PlatformScrollBarQt.cpp:
        (WebCore::PlatformScrollbar::handleMouseMoveEvent):
        (WebCore::PlatformScrollbar::handleMousePressEvent):

2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Dead code, remove it

        * platform/qt/PlatformScrollBarQt.cpp:

2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Coding-Style fixes.

        * platform/qt/PlatformScrollBarQt.cpp:
        (WebCore::PlatformScrollbar::PlatformScrollbar):

2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Coding-Style fix

        * platform/graphics/qt/ImageDecoderQt.cpp:
        (WebCore::ImageDecoderQt::ReadContext::ReadContext):

2008-01-17  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Darin Adler.

        Fixed: lots of WebCore leaks reported when quitting Safari
        
        If we're quitting with a GC still scheduled, do the GC before quitting.
        That way, WebCore's leak counters won't count objects that were
        scheduled for GC.

        * bindings/js/GCController.cpp:
        (WebCore::GCController::~GCController):
        (WebCore::GCController::garbageCollectNow):
        * bindings/js/GCController.h:

2008-01-17  Alp Toker  <alp@atoker.com>

        Reviewed by Oliver Hunt.

        gdk_screen_get_font_options() returns NULL if no default options are
        set so we always have to NULL check to avoid crashes later on since
        Cairo doesn't accept NULL font options.

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

2008-01-17  Antti Koivisto  <antti@apple.com>

        Reviewed by Adele.

        Windows fix for <rdar://problem/5605682>
        Disallow streaming protocols for media elements
        and <rdar://problem/5668711>
        Limit the container and codec types that the <video> tag supports
        
        - Disable unsupported QuickTime tracks types. 
        - Disallow streaming protocols (for now).

        * WebCore.vcproj/WebCore.vcproj:
        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
        (WebCore::MediaPlayerPrivate::updateStates):
        * platform/graphics/win/QTMovieWin.cpp:
        (QTMovieWin::load):
        (QTMovieWin::disableUnsupportedTracks):
        * platform/graphics/win/QTMovieWin.h:

2008-01-17  Oliver Hunt  <oliver@apple.com>

        Support smart copy and paste during drag and drop
        
        Reviewed by Alice
        
        In order for the drag and drop tests in Windows DRT to pass
        we need to support smart cut and paste operations during
        drag and drop on windows.
        
        There is no layout test as drag and drop is still unsupported
        on windows.  Once supported smart drag/drop is tested by existing
        tests

        * platform/win/ClipboardUtilitiesWin.cpp:
        (WebCore::smartPasteFormat):
        * platform/win/ClipboardUtilitiesWin.h:
        * platform/win/ClipboardWin.cpp:
        (WebCore::ClipboardWin::writeRange):
        * platform/win/DragDataWin.cpp:

2008-01-17  Oliver Hunt  <oliver@apple.com>

        Reviewed by Anders.

        <rdar://problem/5692940> Crash when attempting to get text properties in
        SVG with no renderer

        We use the element renderer to calculate the text element bounds,
        however there was no check against the possibility of the text dimension
        properties being requested on a element with no renderer (eg. unattached, 
        display: none).

        Test: svg/text/text-property-with-display-none.html

        * svg/SVGTextContentElement.cpp:
        (WebCore::rootInlineBoxForTextContentElement):

2008-01-17  Anders Carlsson  <andersca@apple.com>

        Reviewed by Oliver.

        <rdar://problem/5636742>
        CrashTracer: [USER] 1302 crashes in Safari at com.apple.WebCore: WTF::Vector<char, 0ul>::reserveCapacity + 78
        
        When loading full-frame plug-ins, disable buffering data for the main resource loader. Otherwise, this can cause us
        to crash when loading large files such as movies in the browser. We already do this for embedded plug-ins.
        
        * WebCore.base.exp:
        * loader/DocumentLoader.h:
        (WebCore::DocumentLoader::mainResourceLoader):
        New accessor method.
        
        * loader/PluginDocument.cpp:
        (WebCore::PluginTokenizer::writeRawData):
        Disable buffering for the main resource loader.
        
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::setShouldBufferData):
        * loader/ResourceLoader.h:
        Have this free the buffer when disabling buffering.

2008-01-17  Adam Roben  <aroben@apple.com>

        More Qt/GTK+ build fixing.

        * platform/gtk/ScrollViewGtk.cpp:
        * platform/qt/ScrollViewQt.cpp:

2008-01-17  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=16902
        <rdar://problem/5692566> fast/encoding/mailto-always-utf-8.html fails when run after
        fast/dom/Window/window-property-shadowing.html

        Test: fast/dom/Window/window-property-shadowing_.html

        * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Clear the frame name, too.

2008-01-17  Adam Roben  <aroben@apple.com>

        Qt/GTK+ build fix.

        * platform/gtk/ScrollViewGtk.cpp:
        (WebCore::ScrollView::ScrollViewPrivate::isActive):
        * platform/qt/ScrollViewQt.cpp:
        (WebCore::ScrollView::ScrollViewPrivate::isActive):

2008-01-16  Adam Roben  <aroben@apple.com>

        Update scroll bars/form controls when FocusController::isActive changes

        Part of <rdar://5006915> Inactive look for Aqua controls

        Reviewed by Darin.

        All tests pass.

        * page/FocusController.cpp:
        (WebCore::FocusController::setActive): Update control tints when the
        active state changes.
        * page/FrameView.cpp:
        (WebCore::FrameView::updateControlTints): On Windows, we have to ask
        ScrollView to paint so that the outermost scroll bars will paint. On
        Mac, the outermost scroll bars are taken care of by NSScroller.
        * platform/PopupMenu.h: Updated for ScrollBarClient changes.
        * platform/ScrollBar.h: Added a new ScrollBarClient method.
        * platform/win/PlatformScrollBarSafari.cpp:
        (WebCore::PlatformScrollbar::paint): Invalidate when updating control
        tints so that we can paint with the new tint later.
        (WebCore::PlatformScrollbar::paintButton): Pass the active state down
        to SafariTheme.
        (WebCore::PlatformScrollbar::paintTrack): Ditto.
        (WebCore::PlatformScrollbar::paintThumb): Ditto.
        * platform/win/ScrollViewWin.cpp:
        (WebCore::ScrollView::ScrollViewPrivate::isActive): Added.
        (WebCore::ScrollView::paint): Pass paint calls on down if we're
        updating control tints so the scroll bars can invalidate.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::isActive): Added.
        * rendering/RenderLayer.h:
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::isActive): Added.
        * rendering/RenderListBox.h:
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::isActive): Added.
        * rendering/RenderTheme.h:
        * rendering/RenderThemeSafari.cpp:
        (WebCore::RenderThemeSafari::determineState): Pass the active state
        down to SafariTheme.

2008-01-16  Adam Roben  <aroben@apple.com>

        Move focused/active state from Frame to SelectionController/FocusController

        This is the first part of <rdar://5006915> Inactive look for Aqua
        controls.

        The following methods were moved/renamed:
            - Frame::setIsActive -> FocusController::setActive
            - Frame::isActive -> SelectionController::isActiveAndFocused
            - Frame::setWindowHasFocus -> SelectionController::setFocused

        Active state is now correctly a Page-level concept.

        The Mac parts of this patch were written by Darin.

        Reviewed by Darin.

        All tests pass.

        * WebCore.base.exp: Updated for method renames.
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkOneSelector): Ditto.
        * editing/SelectionController.cpp:
        (WebCore::SelectionController::SelectionController): Initialize new
        member.
        (WebCore::SelectionController::focusedOrActiveStateChanged): New
        private method. Most of this code came from Frame::setIsActive.
        (WebCore::SelectionController::pageActivationChanged): Added.
        (WebCore::SelectionController::setFocused): Added. Replaces
        Frame::setWindowHasFocus.
        (WebCore::SelectionController::isFocusedAndActive): Added. Replaces
        Frame::isActive.
        * editing/SelectionController.h:
        * page/FocusController.cpp:
        (WebCore::FocusController::FocusController): Initialize new member.
        (WebCore::FocusController::setFocusedFrame): Changed to just call
        SelectionController::setFocused, since active state has doesn't change
        when the focused frame changes.
        (WebCore::FocusController::setActive): Added. Replaces
        Frame::setIsActive.
        * page/FocusController.h:
        (WebCore::FocusController::isActive): Added.
        * page/Frame.cpp:
        (WebCore::Frame::setDocument): Updated for method renames.
        (WebCore::Frame::setFocusedNodeIfNeeded): Ditto.
        (WebCore::Frame::updateSecureKeyboardEntryIfActive): Ditto.
        (WebCore::FramePrivate::FramePrivate): Removed initialization of
        removed members.
        * page/Frame.h:
        * page/FramePrivate.h:
        * page/mac/WebCoreFrameBridge.h: Removed -selectionColor.
        * page/mac/WebCoreFrameBridge.mm: Ditto.
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::paintItemForeground): Updated for method
        renames.
        (WebCore::RenderListBox::paintItemBackground): Ditto.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::selectionBackgroundColor): Ditto.
        (WebCore::RenderObject::selectionForegroundColor): Ditto.
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::capsLockStateMayHaveChanged): Ditto.
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::isFocused): Ditto.

2008-01-17  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Make the nice 'safari' feature work on our port. When viewing a single image, clicking
        on the image will zoom it.
        * It seems like our platform can only determine the size of the image once it is completely
        loaded. Call m_doc->imageChanged on the last chunk of data as well.

        * loader/ImageDocument.cpp:
        (WebCore::ImageTokenizer::finish):

2008-01-17  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Lars.

        Set the library version of QtWebKit to the Qt version.

        * WebCore.pro:

2008-01-17  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Re-enable gzip compression as accepted encoding, now that the bug is fixed in Qt 4.4's network module.

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):

2008-01-17  Simon Hausmann  <hausmann@webkit.org>

        Another Windows build fix, setCookies accidentially had a const
        Document pointer.

        * platform/network/win/CookieJarWin.cpp:

2008-01-17  Simon Hausmann  <hausmann@webkit.org>

        MSVC Windows build fix. Forward declaring Document in CookieJar.h
        seems not enough for MSVC.

        * platform/network/win/CookieJarWin.cpp:

2008-01-17  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Maciej, Lars, Holger.

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

        Add a document parameter to WebCore::cookies, setCookies and cookiesEnabled.

        * WebCore.pro:
        * bindings/js/kjs_navigator.cpp:
        (KJS::Navigator::getValueProperty):
        * dom/Document.cpp:
        (WebCore::Document::cookie):
        * platform/CookieJar.h:
        * platform/gtk/CookieJarGtk.cpp:
        (WebCore::setCookies):
        (WebCore::cookies):
        * platform/mac/CookieJar.mm:
        * platform/network/win/CookieJarWin.cpp:
        * platform/qt/CookieJarQt.cpp:
        (WebCore::setCookies):
        (WebCore::cookies):
        (WebCore::cookiesEnabled):
        * platform/wx/TemporaryLinkStubs.cpp:

2008-01-17  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Windows build fix. (use localtime_r again instead of _s)

        * loader/FTPDirectoryDocument.cpp:
        (WebCore::processFileDateString):

2008-01-17  Frans Englich  <fenglich@trolltech.com>

        Reviewed by Simon Hausmann <hausmann@webkit.org>.

        Fix linking on MinGW and at least one MSVC platform by having gmtimeQt in the correct namespace.

        * loader/FTPDirectoryDocument.cpp:

2008-01-17  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger.

        Don't link QtWebKit against libQtXml when building against Qt 4.4.

        This is not necessary anymore since QXmlStream has been moved into QtCore.

        * WebCore.pro:

2008-01-17  Håvard Wall  <hwall@trolltech.com>

        Reviewed by Simon Hausmann <hausmann@webkit.org>.

        Fix compilation on arm

        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::GraphicsContext::endTransparencyLayer):

2008-01-17  Simon Hausmann  <shausman@trolltech.com>

        Reviewed by Holger.

        Fix compilation against Qt 4.4 without files that are specific for the Qt 4.3 build.

        * WebCore.pro:
        * platform/network/qt/ResourceHandleQt.cpp:
        * platform/qt/MIMETypeRegistryQt.cpp:
        * platform/qt/PlugInInfoStoreQt.cpp:

2008-01-17  Frans Englich  <fenglich@trolltech.com>

        Reviewed by Simon Hausmann <hausmann@webkit.org>.

        Fixes compilation with MinGW.
        Neither localtime_r nor localtime_s are available on MingW, so instead of
        calling back to the thread-unsafe localtime use QDateTime instead.

        * loader/FTPDirectoryDocument.cpp:
        (WebCore::FTPDirectoryTokenizer::WebCore::processFilesizeString):
        (WebCore::FTPDirectoryTokenizer::WebCore::wasLastDayOfMonth):
        (WebCore::FTPDirectoryTokenizer::WebCore::WebCore::gmtimeQt):
        * loader/FTPDirectoryParser.cpp:
        (WebCore::parseOneFTPLine):

2008-01-17  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix determinePitch for segmented fonts

        Covered by fast/css/font-face-implicit-local-font.html

        * platform/graphics/FontFallbackList.cpp:
        (WebCore::FontFallbackList::determinePitch): If the primary font is
        segmented, treat as fixed pitch only if it has only one segment
        and that segment is fixed-pitch.

2008-01-16  David Hyatt  <hyatt@apple.com>

        Fix for http://bugs.webkit.org/show_bug.cgi?id=16611

        Make sure vertical-align length values are offset from their parents rather than being absolute to the
        line.

        Reviewed by olliej

        Added fast/css/vertical-align-lengths.html

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

2008-01-16  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix for @font-face rules with unicode-range: always use a local font where not
          explicitly overlaid.

        Test: fast/css/font-face-implicit-local-font.html

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule): Changed to insert an implicit
        @font-face rule with the local font the matches the family and description before
        any explicit @font-face rules that overlay specific ranges of the same font.
        * css/CSSSegmentedFontFace.h:
        (WebCore::CSSSegmentedFontFace::numRanges): Addded.

2008-01-16  Antti Koivisto  <antti@apple.com>

        Fix Tiger build.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):

2008-01-16  Antti Koivisto  <antti@apple.com>

        Reviewed by Adele.
        
        OS X fix for <rdar://problem/5605682>
        Disallow streaming protocols for media elements
        and <rdar://problem/5668711>
        Limit the container and codec types that the <video> tag supports
        
        - Disable unsupported QuickTime tracks types. 
        - Disallow streaming protocols (for now).
        - Set QTMovie QTMoviePreventExternalURLLinksAttribute and QTSecurityPolicyNoCrossSiteAttribute 
          to limit QuickTime's access to external resources.
        
        Windows patch coming up.

        Tests: media/broken-video.html
               media/unsupported-rtsp.html
               media/unsupported-tracks.html

        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::createQTMovie):
        (WebCore::MediaPlayerPrivate::updateStates):
        (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):

2008-01-16  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16897
        Add shared plugins directory to INCLUDE path

        Add the plugins directory to INCLUDEPATH

        * GNUmakefile.am:
        * WebCore.pro:

2008-01-16  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.
        
        Added a debug counter for SQL transactions. This helped me debug an SQL
        leak.

        * bindings/js/JSCustomSQLTransactionCallback.cpp:
        (WebCore::):
        (WebCore::JSCustomSQLTransactionCallbackCounter::~JSCustomSQLTransactionCallbackCounter):
        (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
        (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback):
        * bindings/js/JSCustomSQLTransactionCallback.h:

        * bindings/js/kjs_window.cpp: Removed a silly comment.

2008-01-16  David Hyatt  <hyatt@apple.com>

        Fix for http://bugs.webkit.org/show_bug.cgi?id=14846, cell padding can't be changed dynamically.

        Reviewed by Eric Seidel

        Added fast/table/dynamic-cellpadding.html

        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::parseMappedAttribute):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::setCellPadding):
        * rendering/RenderTable.h:

2008-01-16  David Hyatt  <hyatt@apple.com>

        Fix for <rdar://problem/5681647> Item pages on http://www.stendmarsofa.com/ hang Safari

        This regression was caused by an attempt to implement a WinIE quirk in RenderBlock::calcInlinePrefWidths.
        The original patch introduced pathological O(n^2) behavior into this function even when the quirk didn't need
        to apply.  In addition the quirk was only partially implemented (the full quirk did not care what was adjacent
        to images and also needed bidi.cpp patched, since the quirk applies both when computing pref widths and when
        laying out).

        This new patch rewrites the quirk to be complete.  The original test case attached to the bug that tested a variety
        of image/text combinations now fully matches WinIE.

        Reviewed by Beth

        Added fast/table/unbreakable-images-quirk.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::calcInlinePrefWidths):
        * rendering/bidi.cpp:
        (WebCore::RenderBlock::findNextLineBreak):

2008-01-16  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewed by Jon Honeycutt

        Move isPluginBlacklisted to PluginPackageWin.cpp, to avoid
        a circular dependency on PluginDatabaseWin
        Remove the getFileVersion method, and just check the versions directly
        in isPluginBlacklisted, as it was the only caller

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

        * plugins/win/PluginDatabaseWin.cpp:
        * plugins/win/PluginDatabaseWin.h:
        * plugins/win/PluginPackageWin.cpp:
        * plugins/win/PluginPackageWin.h:

2008-01-16  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Lars.

        * Set the cursor on the containingWindow() instead of the
        nativeWidget()
        * This should be safe even with plugins as the cursor is set
        on the mouse events.

        * platform/qt/WidgetQt.cpp:
        (WebCore::Widget::setCursor):

2008-01-16  Brad Hughes  <bhughes@trolltech.com>

        Reviewed by Lars.

        Improve the sqlite3 dependency when building WebKit inside Qt.

        Build sqlite3 into QtWebKit if a system sqlite3 development package
        can't be found.

        * WebCore.pro:

2008-01-16  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon Hausmann <simon.hausmann@trolltech.com>.

        Implement GraphicsContext::clipOut and fix transparency layers.

        Transparency layers where broken in two ways: It always used the
        complete device rect as the size of the layer pixmap and the pixmaps
        where not correctly initialized to transparent.

        This fixes the worst drawing errors in the Inspector and makes drawing it
        10 times faster.

        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::toQtLineJoin):
        (WebCore::TransparencyLayer::TransparencyLayer):
        (WebCore::GraphicsContextPlatformPrivate::p):
        (WebCore::GraphicsContext::platformContext):
        (WebCore::GraphicsContext::savePlatformState):
        (WebCore::GraphicsContext::restorePlatformState):
        (WebCore::GraphicsContext::drawRect):
        (WebCore::GraphicsContext::drawLine):
        (WebCore::GraphicsContext::drawEllipse):
        (WebCore::GraphicsContext::strokeArc):
        (WebCore::GraphicsContext::drawConvexPolygon):
        (WebCore::GraphicsContext::fillRect):
        (WebCore::GraphicsContext::fillRoundedRect):
        (WebCore::GraphicsContext::clip):
        (WebCore::GraphicsContext::drawFocusRing):
        (WebCore::GraphicsContext::beginTransparencyLayer):
        (WebCore::GraphicsContext::endTransparencyLayer):
        (WebCore::GraphicsContext::clearRect):
        (WebCore::GraphicsContext::strokeRect):
        (WebCore::GraphicsContext::setLineCap):
        (WebCore::GraphicsContext::setLineJoin):
        (WebCore::GraphicsContext::setMiterLimit):
        (WebCore::GraphicsContext::setAlpha):
        (WebCore::GraphicsContext::setCompositeOperation):
        (WebCore::GraphicsContext::clipOut):
        (WebCore::GraphicsContext::translate):
        (WebCore::GraphicsContext::origin):
        (WebCore::GraphicsContext::rotate):
        (WebCore::GraphicsContext::scale):
        (WebCore::GraphicsContext::clipOutEllipseInRect):
        (WebCore::GraphicsContext::addInnerRoundedRectClip):
        (WebCore::GraphicsContext::setPlatformStrokeStyle):
        (WebCore::GraphicsContext::setPlatformStrokeThickness):
        (WebCore::GraphicsContext::setPlatformFillColor):
        (WebCore::GraphicsContext::setUseAntialiasing):

2008-01-16  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon Hausmann <simon.hausmann@trolltech.com>.

        Trivially implement the themed search field by mapping it to a text field

        Also add a bunch of notImplemented warnings for other places where we don't
        have an implementatin in RenderTheme.

        * platform/qt/RenderThemeQt.cpp:
        (WebCore::RenderThemeQt::paintTextField):
        (WebCore::RenderThemeQt::paintMenuListButton):
        (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
        (WebCore::RenderThemeQt::paintSliderTrack):
        (WebCore::RenderThemeQt::paintSliderThumb):
        (WebCore::RenderThemeQt::paintSearchField):
        (WebCore::RenderThemeQt::adjustSearchFieldStyle):
        (WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
        (WebCore::RenderThemeQt::adjustSearchFieldDecorationStyle):
        (WebCore::RenderThemeQt::paintSearchFieldDecoration):
        (WebCore::RenderThemeQt::adjustSearchFieldResultsDecorationStyle):
        (WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):

2008-01-16  Holger Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Follow the EventHandlerWin.cpp and always return true in the handlers.
        * Match the windows implementation more closely as well.
        * This is fixing "selection" bugs with the Web Inspector

        * page/qt/EventHandlerQt.cpp:
        (WebCore::EventHandler::focusDocumentView):
        (WebCore::EventHandler::passMousePressEventToSubframe):
        (WebCore::EventHandler::passMouseMoveEventToSubframe):
        (WebCore::EventHandler::passMouseReleaseEventToSubframe):
        (WebCore::EventHandler::passMousePressEventToScrollbar):

2008-01-16  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Fix crashes in the new networking code.

        When the ResourceLoader cancels the handle we have to make sure not to access
        the resource handle afterwards again.

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::finish):
        (WebCore::QNetworkReplyHandler::forwardData):

2008-01-16  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        add conversion methods from and to QUrl to KURL.

        Use them in the places I found at the moment. Fixes a bug
        where form data was encoded twice.
        Also fix QWebSettings to take a QUrl for the user style sheet
        location.

        * WebCore.pro:
        * platform/KURL.h:
        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
        * platform/network/qt/ResourceRequestQt.cpp:
        (WebCore::ResourceRequest::toNetworkRequest):
        * platform/qt/KURLQt.cpp: Added.
        (WebCore::KURL::KURL):
        (WebCore::KURL::operator QUrl):

2008-01-15  Darin Adler  <darin@apple.com>

        Rubber-stamped by Maciej Stachowiak and Oliver Hunt.

        - fix <rdar://problem/5689748> REGRESSION: Cannot redirect to protocols handled by external applications

        Put navigation policy delegate calls back for redirects.
        Just rolled out the change where I took them out.

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::callContinueAfterNavigationPolicy):
        (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
        (WebCore::MainResourceLoader::willSendRequest):
        * loader/MainResourceLoader.h:

2008-01-15  Adele Peterson  <adele@apple.com>

        Reviewed by Sam.

        Remove unused variable for old media control background drawing code.

        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::RenderThemeMac):
        (WebCore::RenderThemeMac::~RenderThemeMac):

2008-01-15  Sam Weinig  <sam@webkit.org>

        Reviewed by Geoffrey Garen.

        Fix <rdar://problem/5595552> r27608 introduced a 20% increase in JS binary size, 4% increase in WebCore binary size

        - Update JS Function implementations to use a static function based method. This decreases
          the binary size of an Intel only build by 1013.5K.

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::customGetOwnPropertySlot):
        * bindings/js/JSEventTargetBase.cpp:
        (WebCore::jsEventTargetAddEventListener):
        (WebCore::jsEventTargetRemoveEventListener):
        (WebCore::jsEventTargetDispatchEvent):
        (WebCore::retrieveEventTargetAndCorrespondingNode):
        * bindings/js/JSEventTargetBase.h:
        * bindings/js/JSHTMLInputElementBase.cpp:
        (WebCore::jsHTMLInputElementBaseFunctionSetSelectionRange):
        (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
        * bindings/js/JSHTMLInputElementBase.h:
        * bindings/js/JSLocation.cpp:
        (WebCore::JSLocation::getOwnPropertySlot):
        (WebCore::jsLocationProtoFuncReplace):
        (WebCore::jsLocationProtoFuncReload):
        (WebCore::jsLocationProtoFuncAssign):
        (WebCore::jsLocationProtoFuncToString):
        * bindings/js/JSLocation.h:
        * bindings/js/JSXMLHttpRequest.cpp:
        (KJS::jsXMLHttpRequestPrototypeFunctionAbort):
        (KJS::jsXMLHttpRequestPrototypeFunctionGetAllResponseHeaders):
        (KJS::jsXMLHttpRequestPrototypeFunctionGetResponseHeader):
        (KJS::jsXMLHttpRequestPrototypeFunctionOpen):
        (KJS::jsXMLHttpRequestPrototypeFunctionSend):
        (KJS::jsXMLHttpRequestPrototypeFunctionSetRequestHeader):
        (KJS::jsXMLHttpRequestPrototypeFunctionOverrideMIMEType):
        (KJS::jsXMLHttpRequestPrototypeFunctionAddEventListener):
        (KJS::jsXMLHttpRequestPrototypeFunctionRemoveEventListener):
        (KJS::jsXMLHttpRequestPrototypeFunctionDispatchEvent):
        * bindings/js/JSXMLHttpRequest.h:
        * bindings/js/JSXSLTProcessor.cpp:
        (KJS::jsXSLTProcessorPrototypeFunctionImportStylesheet):
        (KJS::jsXSLTProcessorPrototypeFunctionTransformToFragment):
        (KJS::jsXSLTProcessorPrototypeFunctionTransformToDocument):
        (KJS::jsXSLTProcessorPrototypeFunctionSetParameter):
        (KJS::jsXSLTProcessorPrototypeFunctionGetParameter):
        (KJS::jsXSLTProcessorPrototypeFunctionRemoveParameter):
        (KJS::jsXSLTProcessorPrototypeFunctionClearParameters):
        (KJS::jsXSLTProcessorPrototypeFunctionReset):
        * bindings/js/JSXSLTProcessor.h:
        * bindings/js/kjs_events.cpp:
        (WebCore::jsClipboardPrototypeFunctionClearData):
        (WebCore::jsClipboardPrototypeFunctionGetData):
        (WebCore::jsClipboardPrototypeFunctionSetData):
        (WebCore::jsClipboardPrototypeFunctionSetDragImage):
        * bindings/js/kjs_events.h:
        * bindings/js/kjs_navigator.cpp:
        (KJS::pluginsFunctionRefresh):
        (KJS::navigatorProtoFuncJavaEnabled):
        * bindings/js/kjs_navigator.h:
        * bindings/js/kjs_window.cpp:
        (KJS::Window::getOwnPropertySlot):
        (KJS::windowProtoFuncAToB):
        (KJS::windowProtoFuncBToA):
        (KJS::windowProtoFuncOpen):
        (KJS::windowProtoFuncSetTimeout):
        (KJS::windowProtoFuncClearTimeout):
        (KJS::windowProtoFuncSetInterval):
        (KJS::windowProtoFuncAddEventListener):
        (KJS::windowProtoFuncRemoveEventListener):
        (KJS::windowProtoFuncShowModalDialog):
        (KJS::windowProtoFuncNotImplemented):
        * bindings/js/kjs_window.h:
        * bindings/scripts/CodeGenerator.pm:
        * bindings/scripts/CodeGeneratorJS.pm:

2008-01-15  Adele Peterson  <adele@apple.com>

        Reviewed by Dan.

        Fix for <rdar://problem/5682492> With the <video> element, the audio is heard when forwarding or rewinding a movie while it's playing

        * rendering/MediaControlElements.cpp: (WebCore::MediaControlSeekButtonElement::defaultEventHandler):
          Instead of pausing the media when you stop seeking on mouse up, pause the video when you first start seeking on mouse down. 

2008-01-15  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Anders.

        Make the HTTP backend configurable in the GTK+ port. curl is currently
        the only option.

        * GNUmakefile.am:

2008-01-15  Adele Peterson  <adele@apple.com>

        Build fix.

        * rendering/RenderThemeSafari.cpp: Removing MediaBackgroundAppearance.

2008-01-14  Samuel Weinig  <sam@webkit.org>

        Reviewed by Darin.

        Fix for <rdar://problem/5671040>
        REGRESSION: 6% HTML iBench regression from r28722 (getElementsByClassName)

        On my most consistent tests, this brings the HTML iBench from 1.46 -> 1.41,
        which does not completely make up reported regression, but I was not able to
        reproduce those findings either.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchRules):
        (WebCore::CSSStyleSelector::checkOneSelector):
        * dom/ClassNames.cpp:
        (WebCore::ClassNames::parseClassAttribute):
        * dom/ClassNames.h:
        (WebCore::ClassNames::contains):
        (WebCore::ClassNames::operator[]):

2008-01-15  Adele Peterson  <adele@apple.com>

        Build fix.  This time for real.

        * rendering/RenderThemeSafari.cpp:

2008-01-15  Adele Peterson  <adele@apple.com>

        Build fix.

        * rendering/RenderThemeSafari.cpp:

2008-01-15  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix <rdar://problem/5666926> svg/custom/use-css-no-effect-on-shadow-tree.svg is failing

        * svg/SVGPreserveAspectRatio.cpp:
        (WebCore::SVGPreserveAspectRatio::getCTM): Changed the arguments' type
        from float to double in order to make the values passed to scale() and
        translate() on Mac OS X and on Windows the same.
        * svg/SVGPreserveAspectRatio.h:

2008-01-15  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        <rdar://problem/5342813> REGRESSION: Safari encodes mailto URLs incorrectly

        Test: fast/encoding/mailto-always-utf-8.html

        * platform/KURL.cpp: (WebCore::encodeRelativeString): Always use UTF-8 for mailto URLs.

2008-01-15  Adele Peterson  <adele@apple.com>

        Reviewed by Adam and Antti.

        WebCore part of fix for <rdar://problem/5619062> Add load progress indicator to video controls

        * WebCore.base.exp: Removed symbol for wkGetMediaControlBackgroundImageData.  Added symbol for wkDrawMediaSliderTrack.
        * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Removed case for MediaBackgroundAppearance.
        * css/html4.css: Removed -webkit-appearance: media-background rule for the media panel element.  Removed unnecessary margin for slider.
        * rendering/RenderStyle.h: (WebCore::): Removed MediaBackgroundAppearance.

        * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
          Call updateMediaPlayer more frequently so the load progress control gets updated appropriately.
        * platform/mac/WebCoreSystemInterface.h: Removed wkGetMediaControlBackgroundImageData.  Added wkDrawMediaSliderTrack.
        * platform/mac/WebCoreSystemInterface.mm: ditto.

        * rendering/RenderTheme.h: Removed paintMediaBackground. Added paintMediaSliderTrack.
        * rendering/RenderTheme.cpp: (WebCore::RenderTheme::paint): Call paintMediaSliderTrack for elements with MediaSliderAppearance.
        * rendering/RenderThemeMac.h: Removed paintMediaBackground. Added paintMediaSliderTrack.
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::adjustSliderThumbSize): Added different sizes for the media slider thumb.
        (WebCore::RenderThemeMac::paintMediaSliderTrack): Added.  Calls wkDrawMediaSliderTrack with the percentage the media has loaded.
        * rendering/RenderThemeSafari.cpp: ditto.
        (WebCore::RenderThemeSafari::adjustSliderThumbSize):
        (WebCore::RenderThemeSafari::paintMediaSliderTrack):
        * rendering/RenderThemeSafari.h:

2008-01-15  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Mark Rowe.

        Some logging channels weren't initialized from user defaults.

        * platform/mac/LoggingMac.mm: (WebCore::InitializeLoggingChannelsIfNecessary):
        Initialize LogPlatformLeaks, LogStorageAPI, LogMedia, LogPlugin.

2008-01-14  Steve Falkenburg  <sfalken@apple.com>

        Use shared vsprops for most vcproj properties.
        
        Reviewed by Darin.

        * WebCore.vcproj/QTMovieWin.vcproj:
        * WebCore.vcproj/WebCore.vcproj:
        * platform/graphics/win/QTMovieWin.cpp:
        (QTMovieWin::initializeQuickTime): Fix compiler warning.

2008-01-14  Eric Seidel  <eric@webkit.org>

        Reviewed by mjs.

        Remove a couple more uses of DeprecatedString

        No functional changes, thus no test case.

        * dom/Document.cpp:
        (WebCore::Document::write):
        (WebCore::Document::writeln):
        (WebCore::Document::recalcStyleSelector):
        * dom/Document.h:

2008-01-14  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>

        Reviewed by Alp Toker.

        Build fix: missing symbols when compiling WebKit/Gtk+ with --enable-svg-filters
        http://bugs.webkit.org/show_bug.cgi?id=16874

        * GNUmakefile.am:
        * svg/graphics/cairo/SVGResourceFilterCairo.cpp: Added.
        (WebCore::SVGResourceFilter::createPlatformData):
        (WebCore::SVGResourceFilter::prepareFilter):
        (WebCore::SVGResourceFilter::applyFilter):

2008-01-14  Finnur Thorarinsson  <finnur.webkit@gmail.com>

        Reviewed by hyatt & eseidel.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16844
        RenderText::addLineBoxRects erroneously includes last char for boundingBox

        This patch fixes an issue with addLineBoxRects not correctly calculating the 
        rects due to an off-by-one error in using box->end(). We were assuming that 
        end() gives the index past the last character, when in fact it gives the 
        index _of_ the last character. 

        Eric Seidel and I could not find a way to test this via DRT. This method is 
        only used by WebKit or Safari for displaying selection rects AFAICT.

        * rendering/RenderText.cpp:
        (WebCore::RenderText::addLineBoxRects):

2008-01-14  Darin Adler  <darin@apple.com>

        Reviewed by Geoff.

        - fix crash seen in layout tests

        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::attach):
        Remove incorrect cast to HTMLElement* for parentNode(). The parent is either an
        HTMLElement or a Document, not necessarily an HTMLElement.

2008-01-14  Darin Adler  <darin@apple.com>

        Reviewed by Sam.

        - fix mistakes Sam noticed in my re-speed-up patch

        * dom/Element.cpp:
        (WebCore::Element::virtualHasTagName): Moved out of header file. No reason to make
        this inline.
        * dom/Element.h: Moved virtualHasTagName out of header file.

        * dom/Node.cpp:
        (WebCore::Node::virtualHasTagName): Moved out of header file. No reason to make
        this inline.
        * dom/Node.h: Removed incorrect "virtual" on hasTagName and moved virtualHasTagName
        out of header file.

        * platform/text/StringBuffer.h: Added. Has just the new StringBuffer class.

        * platform/text/StringImpl.h: Removed StringBuffer class.

        * loader/DocumentLoader.cpp: Added StringBuffer.h include.
        * platform/text/String.cpp: Ditto.
        * platform/text/StringImpl.cpp: Ditto.
        * platform/text/TextCodecLatin1.cpp: Ditto.
        * platform/text/TextCodecUTF16.cpp: Ditto.
        * platform/text/TextCodecUserDefined.cpp: Ditto.

        * WebCore.vcproj/WebCore.vcproj: Added StringBuffer.h.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

2008-01-14  Dave Hyatt  <hyatt@apple.com>

        Clean up all the misplaced graphics files after the recent file moves.  Clean up the project to
        accurately reflect the location of all the graphics files.
        
        Reviewed by Adam

        * WebCore.vcproj/WebCore.vcproj:
        * platform/graphics/win/GraphicsContextWin.cpp: Copied from platform/win/GraphicsContextWin.cpp.
        * platform/graphics/win/UniscribeController.cpp: Copied from platform/win/UniscribeController.cpp.
        * platform/graphics/win/UniscribeController.h: Copied from platform/win/UniscribeController.h.
        * platform/win/GraphicsContextWin.cpp: Removed.
        * platform/win/UniscribeController.cpp: Removed.
        * platform/win/UniscribeController.h: Removed.

2008-01-14  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.
        
        Some cleanup to my last patch.

        Removed one unused setter declaration and one unused setter definition.
        
        Renamed DoNotCheckDomainSecurityOnRead to DoNotCheckDomainSecurityOnGet
        because "get" is all over the IDL files, and "read" is not.

        * bindings/scripts/CodeGeneratorJS.pm:
        * page/DOMWindow.h:
        (WebCore::DOMWindow::defaultstatus):
        * page/DOMWindow.idl:

2008-01-14  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Alice Liu.

        - remove reference to nonexistent file

        * WebCore.vcproj/WebCore.vcproj: Removed reference to SVGFont.h.

2008-01-14  Darin Adler  <darin@apple.com>

        Reviewed by Adam.

        - re-speed-up the page load test (my StringImpl change slowed it down)
          <rdar://problem/5677241> 1.5% PLT regression from r29098

        To reverse the slowdown I caused by changing StringImpl, I tightened it up,
        and also did a little optimization in the HTML tokenizer and in other clients
        of Vector.

        * WebCore.base.exp: Removed export of a now-inline function.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseTransitionProperty): Removed use of DeprecatedString
        to get property ID. This could be sped up even more by writing a fast path
        to use a local Vector<char> rather than allocating a string.
        (WebCore::convertASCIIToFloat): Added. Allows numeric conversion without
        allocating a string object to hold the number.
        (WebCore::CSSParser::lex): Changed to call convertASCIIToFloat instead of
        DeprecatedString::toFloat.

        * dom/Element.h:
        (WebCore::Element::hasTagName): Made this non-virtual and inline if you have
        an Element*. It's still virtual if you have a Node*.
        (WebCore::Element::virtualHasTagName): Virtual version that makes the Node*
        case work.

        * dom/Node.h:
        (WebCore::Node::hasTagName): Made this non-virtual and inline so that Element
        can override it with an inline. This is the same technique we use for
        firstChild and lastChild.
        (WebCore::Node::virtualHasTagName): This is the private virtual that Element
        overrides.

        * dom/Text.cpp:
        (WebCore::Text::splitText): Clean up by using a RefPtr here instead of a
        PassRefPtr.

        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::parseSpecial): Use the new advancePastNonNewline(),
        which is more efficient in cases where we know the character is not a newline
        and hence we don't have to update the line number.
        (WebCore::HTMLTokenizer::parseComment): Ditto.
        (WebCore::HTMLTokenizer::parseServer): Ditto.
        (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto.
        (WebCore::HTMLTokenizer::parseText): Ditto.
        (WebCore::HTMLTokenizer::parseEntity): Ditto.
        (WebCore::HTMLTokenizer::parseTag): Ditto. Also streamline the QuotedValue case
        so there's one less branch taken for non-punctuation characters since this
        code path is *so* hot.
        (WebCore::HTMLTokenizer::write): More of the same.

        * loader/Cache.cpp:
        (WebCore::Cache::lruListFor): Use Vector::grow instead of resize.

        * loader/DocumentLoader.cpp:
        (WebCore::canonicalizedTitle): Use StringBuffer instead of Vector<UChar>.

        * loader/TextResourceDecoder.cpp:
        (WebCore::TextResourceDecoder::checkForCSSCharset): Use Vector::grow instead of resize.
        (WebCore::TextResourceDecoder::checkForHeadCharset): Ditto.
        (WebCore::TextResourceDecoder::decode): Use Vector::grow and shrink instead of resize.
        (WebCore::TextResourceDecoder::flush): Use Vector::shrink instead of resize.

        * platform/KURL.cpp:
        (WebCore::KURL::decode_string): Use Vector::grow instead of resize.

        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::clear): Use Vector::shrink instead of resize.

        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::cacheFrame): Use Vector::grow instead of resize.

        * platform/network/FormData.cpp:
        (WebCore::FormData::appendData): Use Vector::grow instead of resize.
        (WebCore::FormData::flatten): Ditto.

        * platform/text/AtomicString.cpp:
        (WebCore::CStringTranslator::translate): Use a new StringImpl constructor made just
        for use by AtomicString. Avoids setting fields twice, and also preserves reference
        count behavior (which I changed for the other constructors, since they're entirely
        private and used only inside the class).
        (WebCore::UCharBufferTranslator::translate): Ditto.

        * platform/text/Base64.cpp:
        (WebCore::base64Encode): Use Vector::grow instead of resize.
        (WebCore::base64Decode): Use Vector::grow and shrink instead of resize.

        * platform/text/PlatformString.h:
        (WebCore::String::adopt): Added an overload for the new StringBuffer class. Also
        made both versions inline.

        * platform/text/SegmentedString.h:
        (WebCore::SegmentedString::advancePastNewline): Added. One less branch for case
        where the character is known to be a newline.
        (WebCore::SegmentedString::advancePastNonNewline): Added. Less code for case where
        the character is known not to be a newline.

        * platform/text/String.cpp:
        (WebCore::String::append): Use StringBuffer instead of Vector<UChar>.
        (WebCore::String::insert): Ditto.
        (WebCore::String::truncate): Ditto.
        (WebCore::String::remove): Ditto.
        (WebCore::String::format): Use Vector::grow instead of resize.

        * platform/text/StringImpl.cpp:
        (WebCore::StringImpl::StringImpl): Changed constructors to start with a refCount
        of 1 instead of 0, and made them all inline. Eliminates the WithOneRef constructor
        since they all behave this way now. The only exceptions are the constructors for
        AtomicString, which retain the old behavior.
        (WebCore::StringImpl::empty): Simplified, since we no longer need to use the
        special WithOneRef constructor.
        (WebCore::StringImpl::toCoordsArray): Use StringBuffer instead of Vector<UChar>.
        (WebCore::StringImpl::lower): Ditto.
        (WebCore::StringImpl::upper): Ditto.
        (WebCore::StringImpl::secure): Ditto.
        (WebCore::StringImpl::foldCase): Ditto.
        (WebCore::StringImpl::simplifyWhiteSpace): Ditto. Also change to use Vector::shrink
        instead of resize (since half of the function uses Vector<UChar>).
        (WebCore::StringImpl::capitalize): Use StringBuffer instead of Vector<UChar>.
        (WebCore::StringImpl::replace): Ditto.
        (WebCore::StringImpl::ascii): Streamlined a bit.
        (WebCore::StringImpl::createStrippingNullCharacters): Use StringBuffer insetad of
        Vector<UChar>. Took out checks for null characters and 0 length that aren't needed.
        Coded the check for null characters in a slightly more efficient way. Since this
        is so hot, didn't call adopt at all, putting the code right in here, including
        the call to the StringImpl constructor and adoptRef (for the fast case).
        (WebCore::StringImpl::adopt): Added a version for the new StringBuffer class.
        Removed the attempt to resize the buffer at the time we adopt based on measuring
        actual use and realizing that it's just a character here or there and not worth
        a call to fastRealloc. Changed to use adoptRef since the constructor now starts
        with a refCount of 1.
        (WebCore::StringImpl::create): Changed to use adoptRef since the constructor now
        starts with a refCount of 1.
        (WebCore::StringImpl::createWithTerminatingNullCharacter): Ditto.
        (WebCore::StringImpl::copy): Ditto. Also made non-inline since the constructor
        itself is now inline.

        * platform/text/StringImpl.h: Added a StringBuffer class that's useful for
        putting characters into a buffer before creating an immutable string. Not good
        at resizing the way Vector<UChar> is, so only useful for things that rarely need
        to be resized. Added a new AdoptBuffer constructor and empty constructor, but
        made all constructors private so they can be inlined and only used inside the
        StringImpl class. Added two new constructors for AtomicString. Made copy()
        no longer inline. Changed the type of the [] operator to unsigned instead of
        int and added an assertion. Made the hash functions inline.

        * platform/text/TextCodecICU.cpp:
        (WebCore::TextCodecICU::encode): Use Vector::grow instead of resize.

        * platform/text/TextCodecLatin1.cpp:
        (WebCore::TextCodecLatin1::decode): Use StringBuffer instead of Vector<UChar>.
        (WebCore::encodeComplexWindowsLatin1): Use Vector::grow instead of resize.

        * platform/text/TextCodecUTF16.cpp:
        (WebCore::TextCodecUTF16::decode): Use StringBuffer instead of Vector<UChar>.

        * platform/text/TextCodecUserDefined.cpp:
        (WebCore::TextCodecUserDefined::decode): Use StringBuffer instead of Vector<UChar>.
        (WebCore::encodeComplexUserDefined): Use Vector::grow instead of resize.

        * platform/text/TextEncoding.cpp:
        (WebCore::TextEncoding::encode): Use Vector::grow instead of resize.

        * platform/text/TextStream.cpp:
        (WebCore::TextStream::operator<<): Use Vector::grow instead of resize.

        * platform/text/mac/TextCodecMac.cpp:
        (WebCore::TextCodecMac::encode): Use Vector::grow instead of resize.

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::insertSpanCell): Use Vector::grow instead of resize.

        * rendering/RenderFrameSet.h:
        (WebCore::FrameEdgeInfo::FrameEdgeInfo): Allocate vectors with the correct initial
        size instead of calling resize on them after allocating empty.

        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::paint): Use Vector::grow instead of resize.

        * rendering/RenderStyle.cpp: Removed CursorList::operator==.
        * rendering/RenderStyle.h:
        (WebCore::CursorList::operator==): Implemented using the Vector ==.
        (WebCore::CursorList::operator!=): Ditto.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::splitColumn): Use Vector::grow instead of resize.
        (WebCore::RenderTable::appendColumn): Ditto.

        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::ensureRows): Use Vector::grow instead of resize.

        * rendering/bidi.cpp:
        (WebCore::addMidpoint): Use Vector::grow instead of resize.

        * xml/XPathNodeSet.h:
        (WebCore::XPath::NodeSet::clear): Use Vector::shrink instead of resize.

2008-01-13  Steve Falkenburg  <sfalken@apple.com>

        Share common files across projects.
        
        Unify vsprops files
        Debug:          common.vsprops, debug.vsprops
        Debug_Internal: common.vsprops, debug.vsprops, debug_internal.vsprops
        Release:        common.vsprops, release.vsprops
        
        Shared properties can go into common.vsprops, shared debug settings can go into debug.vsprops.
        debug_internal.vsprops will be mostly empty except for file path prefix modifiers.

        Pull auto-version.sh, VERSION, and PRODUCTVERSION from tools.

        Reviewed by Adam Roben.

        * WebCore.vcproj/PRODUCTVERSION: Removed.
        * WebCore.vcproj/QTMovieWin.vcproj:
        * WebCore.vcproj/VERSION: Removed.
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/auto-version.sh: Removed.
        * WebCore.vcproj/debug.vsprops: Removed.
        * WebCore.vcproj/debug_internal.vsprops: Removed.
        * WebCore.vcproj/release.vsprops: Removed.

2008-01-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16865
          fast/layers/resize-layer-deletion-crash.html crashes under GuardMalloc

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::destroy): Removed the call to
        RenderLayer::destroy() from here, because ~RenderLayer() calls
        RenderObject() methods.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::destroy): Added the call to
        RenderLayer::destroy() here.

2008-01-13  Eric Seidel  <eric@webkit.org>

        Reviewed by darin.

        Range.insertNode does not update endContainer endIndex correctly
        in the case where it had to split a text node.
        http://bugs.webkit.org/show_bug.cgi?id=16765
        
        Darin pointed out during review that we still don't handle the dynamic
        range case (where the dom tree changes not using range methods)
        Thus this code will get ripped out when we add that.  The test cases
        are still valid and useful however, so I'm landing this as-is.

        Tests: fast/dom/Range/range-insertNode-separate-endContainer.html
               fast/dom/Range/range-insertNode-splittext.html

        * dom/Range.cpp:
        (WebCore::Range::insertNode): handle the splitText case correctly.

2008-01-13  Darin Adler  <darin@apple.com>

        Reviewed by Eric.

        - http://bugs.webkit.org/show_bug.cgi?id=16861
          get rid of unnecessary string copying

        * dom/Document.cpp:
        (WebCore::Document::setDomain): Removed unneeded call to copy.
        (WebCore::Document::parseQualifiedName): Removed unneeded call to copy, and
        unneeded length argument to substring, which stops at the end of the string
        if you don't specify a length.
        (WebCore::Document::createAttributeNS): Replaced code that was calling copy
        with more-efficient code using the substring function.
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::addCSSColor): Removed unneeded call to copy.
        * editing/InsertIntoTextNodeCommand.cpp:
        (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand): Removed
        unneeded copy and also initialized text instead of assigning to it.
        (WebCore::InsertIntoTextNodeCommand::doApply): Removed redundant assertions.
        (WebCore::InsertIntoTextNodeCommand::doUnapply): Ditto.

        * editing/htmlediting.cpp:
        (WebCore::stringWithRebalancedWhitespace): Removed unneeded call to copy.
        This one was particularly bad since we just turned around and copied it again!

        * editing/markup.cpp:
        (WebCore::stringValueForRange): Removed unneeded call to copy.

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::performOpenInitialization): Changed logging code to not
        get the path from the database object. This was the only reason the database
        had to keep its path around.

        * platform/sql/SQLiteDatabase.cpp:
        (WebCore::SQLiteDatabase::open): Use a local variable instead of a data member to
        convert the string to a null-terminated one.
        (WebCore::SQLiteDatabase::close): Removed the code to clear out m_path.
        * platform/sql/SQLiteDatabase.h: Removed the m_path data member and the path
        functio member. Also tweaked formatting and comments a bit. Removed the unused
        escapeSQLString function.

        * platform/text/String.cpp: (WebCore::operator+): Removed uneeded calls to copy.

2008-01-13  Oliver Hunt  <oliver@apple.com>

        Attempt to fix QT build

        * html/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::willDraw):

2008-01-13  Oliver Hunt  <oliver@apple.com>

        Reviewed by Mark Rowe.

        Avoid repainting the entire canvas element when possible.

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

        We now only register the dirty regions of a canvas for repainting, rather
        than the entire element (though repaint coalescing may choose to combine
        these regions).  This doesn't cause a measurable regression in the worst
        case (clearing the canvas repeatedly), but is a moderate-large win if only
        a minor update has occurred.  If there is any CSS scaling applied to the
        canvas almost any update short of clearing the entire element is substantially
        faster.

        * html/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::willDraw):
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::willDraw):

2008-01-13  Michael Goddard  <michael.goddard@trolltech.com>

        Reviewed by Anders Carlsson.

        Move RuntimeObjectImp creations into Instance.
        Make the ctor protected, and Instance a friend class, so
        that all creation of RuntimeObjectImps goes through
        one place.

        * bindings/js/kjs_dom.cpp:
        (WebCore::getRuntimeObject):

2008-01-12  Rodney Dawes  <dobey@wayofthemonkey.com>

        Gtk debug build fix.  Reviewed by Mark Rowe.

        Add plugin logging channel, and use it rather than Win32-specific debugging methods _RPTF1 _RPTF2 and _CRT_WARN.

        * WebCore.pro: Add plugins directory to DEPENDPATH so dependencies are correctly tracked.
        * platform/Logging.cpp:
        * platform/Logging.h:
        * plugins/PluginDebug.h:

2008-01-12  Adam Barth  <hk9565@gmail.com>

        Reviewed by Maciej (and also tweaked a little bit).

        - more thorough fix for some crashing tests
          http://bugs.webkit.org/show_bug.cgi?id=16782

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::urlSelected):
        (WebCore::FrameLoader::submitForm):
        (WebCore::FrameLoader::executeIfJavaScriptURL):
        * loader/FrameLoader.h:

2008-01-12  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Sam.

        - fixed <rdar://problem/5556374> REGRESSION: cross-domain error when one URL uses an explicit port number and another doesn't
        
        * platform/SecurityOrigin.cpp:
        (WebCore::isDefaultPortForProtocol):
        (WebCore::SecurityOrigin::SecurityOrigin):

2008-01-11  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Oliver Hunt.
        
        Fixed <rdar://problem/5665251> REGRESSION (r28880-r28886): Global
        variable access (16644)
        
        Removed the ReadOnly bit from some properties, to match Firefox. Also
        removed status-related setters, to allow using their names as variable
        names.
        
        * bindings/scripts/CodeGeneratorJS.pm: Added support for properties that
        are one-way across domain boundaries, to match Firefox.

        * bindings/js/kjs_window.cpp: Changed ReadOnly declarations to match FF.

        * bindings/scripts/CodeGeneratorJS.pm: Don't use JSObject:: because
        we don't know that JSObject is our base class.

        * page/DOMWindow.idl: Replaced lots of readonly declarations with
        [Replaceable] declarations.

        * page/DOMWindow.h: Removed interfaces for setting status text via the
        DOM. (They were getting in the way of, e.g., "var status"
        declarations.) By default, IE 7 and FF disable these interfaces in order
        to defend against phishing attacks that try to spoof domain names in the
        statusbar.
        * page/DOMWindow.cpp:

2008-01-11  Anyang Ren  <anyang.ren@gmail.com>

        Reviewed by Darin Adler.

        http://bugs.webkit.org/show_bug.cgi?id=15960
        The view source mode should skip an empty attribute value only if
        the attribute name is not followed by an equal sign (=).

        Test: fast/frames/viewsource-empty-attribute-value.html

        * html/HTMLViewSourceDocument.cpp:
        (WebCore::HTMLViewSourceDocument::addViewSourceToken):

2008-01-11  Sylvain Pasche  <sylvain.pasche@gmail.com>

        Reviewed by Alp Toker.

        [Gtk] Uneven glyph spacing with subpixel antialiasing
        http://bugs.webkit.org/show_bug.cgi?id=16715

        Use cairo font options from the default GDK screen when creating a
        scaled font.

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

2008-01-11  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Maciej.

        Added a new forwarding header, because Activation.h has been separated
        from function.h

        * ForwardingHeaders/kjs/Activation.h: Added.

2008-01-11  Luca Bruno  <lethalman88@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16729
        [cURL] Allow multiple files for upload

        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
        * platform/network/curl/ResourceHandleCurl.cpp:
        (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::readCallback): added
        (WebCore::ResourceHandleManager::setupPOST): setup for streaming the POST
        (WebCore::ResourceHandleManager::startJob):
        (WebCore::ResourceHandleManager::cancel): revert the previous patch for regression
        * platform/network/curl/ResourceHandleManager.h:

2008-01-11  Christian Dywan  <christian@imendio.com>

        Reviewed by Alp Toker.

        [Gtk] Menu items need underscores
        http://bugs.webkit.org/show_bug.cgi?id=16817

        Add underscores to appropriate menu labels.
        Also adjust strings slightly.

        * platform/gtk/ContextMenuItemGtk.cpp:
        (WebCore::ContextMenuItem::createNativeMenuItem):
        * platform/gtk/LocalizedStringsGtk.cpp:
        (WebCore::searchableIndexIntroduction):
        (WebCore::fileButtonChooseFileLabel):
        (WebCore::fileButtonNoFileSelectedLabel):
        (WebCore::contextMenuItemTagOpenLinkInNewWindow):
        (WebCore::contextMenuItemTagDownloadLinkToDisk):
        (WebCore::contextMenuItemTagCopyLinkToClipboard):
        (WebCore::contextMenuItemTagOpenImageInNewWindow):
        (WebCore::contextMenuItemTagDownloadImageToDisk):
        (WebCore::contextMenuItemTagCopyImageToClipboard):
        (WebCore::contextMenuItemTagOpenFrameInNewWindow):
        (WebCore::contextMenuItemTagCopy):
        (WebCore::contextMenuItemTagGoBack):
        (WebCore::contextMenuItemTagGoForward):
        (WebCore::contextMenuItemTagStop):
        (WebCore::contextMenuItemTagReload):
        (WebCore::contextMenuItemTagCut):
        (WebCore::contextMenuItemTagPaste):
        (WebCore::contextMenuItemTagIgnoreSpelling):
        (WebCore::contextMenuItemTagLearnSpelling):
        (WebCore::contextMenuItemTagSearchWeb):
        (WebCore::contextMenuItemTagLookUpInDictionary):
        (WebCore::contextMenuItemTagOpenLink):
        (WebCore::contextMenuItemTagIgnoreGrammar):
        (WebCore::contextMenuItemTagSpellingMenu):
        (WebCore::contextMenuItemTagShowSpellingPanel):
        (WebCore::contextMenuItemTagCheckSpelling):
        (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
        (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
        (WebCore::contextMenuItemTagFontMenu):
        (WebCore::contextMenuItemTagBold):
        (WebCore::contextMenuItemTagItalic):
        (WebCore::contextMenuItemTagUnderline):
        (WebCore::contextMenuItemTagOutline):
        (WebCore::contextMenuItemTagWritingDirectionMenu):
        (WebCore::contextMenuItemTagDefaultDirection):
        (WebCore::contextMenuItemTagLeftToRight):
        (WebCore::contextMenuItemTagRightToLeft):
        (WebCore::contextMenuItemTagInspectElement):
        (WebCore::searchMenuClearRecentSearchesText):

2008-01-11  Ada Chan  <adachan@apple.com>

        <rdar://problem/5681557> On Windows Safari, mouse events are ignored after clicking on link that triggers download
        Moved the call to cache page from provisionalLoadStarted() to commitProvisionalLoad(), since 
        provisionalLoadStarted() can be called for cases that do not result in a page navigation, for example,
        when a link to download a file has been clicked.

        Reviewed by John and Anders.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::provisionalLoadStarted):
        (WebCore::FrameLoader::commitProvisionalLoad):

2008-01-11  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Anders.

        <rdar://problem/5683529> plugins/embed-inside-object.html is timing
        out/failing

        Revert to using FrameTree::find() so that frame aliases like "_self" and
        "_current" are interpreted properly

        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::performRequest):
        (WebCore::PluginViewWin::load):

2008-01-11  Alp Toker  <alp@atoker.com>

        Reviewed by Dave Hyatt and Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=16089
        [GTK] Support custom fonts, CachedFont::platformDataFromCustomData()

        Add support for CSS2 @font-face custom/downloadable fonts to the GTK+
        port.

        * GNUmakefile.am:
        * WebCore.pro:
        * loader/CachedFont.cpp:
        (WebCore::CachedFont::~CachedFont):
        (WebCore::CachedFont::ensureCustomFontData):
        (WebCore::CachedFont::platformDataFromCustomData):
        (WebCore::CachedFont::allReferencesRemoved):
        * platform/graphics/gtk/FontCustomPlatformData.cpp: Added.
        (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
        (WebCore::FontCustomPlatformData::fontPlatformData):
        (WebCore::releaseData):
        (WebCore::createFontCustomPlatformData):
        * platform/graphics/gtk/FontCustomPlatformData.h: Added.
        (WebCore::FontCustomPlatformData::FontCustomPlatformData):
        * platform/graphics/gtk/FontPlatformData.h:
        * platform/graphics/gtk/FontPlatformDataGtk.cpp:
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::init):
        (WebCore::FontPlatformData::isFixedPitch):
        * platform/graphics/gtk/SimpleFontDataGtk.cpp:
        (WebCore::SimpleFontData::platformDestroy):

2008-01-11  Adam Roben  <aroben@apple.com>

        Remove FrameLoader::committedFirstRealDocumentLoad
        
        This method no longer has any callers.

        Reviewed by Hyatt.

        * loader/FrameLoader.h:

2008-01-11  Antti Koivisto  <antti@apple.com>

        Add a standalone version of the blog post video player as a manual test.

        * manual-tests/resources/touch-poster.png: Added.
        * manual-tests/video-player.html: Added.

2008-01-10  Antti Koivisto  <antti@apple.com>

        Reviewed by Adam.

        Fix <rdar://problem/5682767>
        Video does not show up in http://webkit.org/blog/140/html5-media-support/ on Windows
        
        Take care that GWorld is created and deletes when needed as size or visibility changes.

        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
        (WebCore::MediaPlayerPrivate::load):
        * platform/graphics/win/QTMovieWin.cpp:
        (QTMovieWinPrivate::QTMovieWinPrivate):
        (QTMovieWinPrivate::updateGWorld):
        (QTMovieWinPrivate::setSize):
        (QTMovieWin::setVisible):
        (QTMovieWin::initializeQuickTime):

2008-01-11  David Hyatt  <hyatt@apple.com>

        Fix for bug 11188, setting hspace on a table overrides align=center.  Fix align=center to be done using
        mapped attributes so that it does not get overridden by hspace all the time.

        Reviewed by mitz

        Added fast/table/table-hspace-align-center.html

        * css/html4.css:
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::parseMappedAttribute):

2008-01-11  Mark Rowe  <mrowe@apple.com>

        Qt build fix.

        * platform/qt/TemporaryLinkStubs.cpp: Include CString.h.

2008-01-11  Mark Rowe  <mrowe@apple.com>

        Qt build fix.  Add link stubs for the new FileSystem.h functions introduced
        in r29399.

        * platform/qt/TemporaryLinkStubs.cpp:
        (WebCore::openTemporaryFile):

2008-01-11  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewed by Anders Carlsson.

        Bug 16779: Make the PluginStream implementation be shared across platforms
        http://bugs.webkit.org/show_bug.cgi?id=16779

        Add the new shared PluginStream files to the GTK+ and Win32 builds.
        Add PluginStreamClient class for the streamDidFinishLoading method.
        Add open/close/write methods to FileSystem for temporary file handling.
        Add PluginDebug.h and npfunctions.h for shared PluginStream.
        Add shared PluginStream.
        Remove PluginStreamWin.
        Update PluginViewWin to use shared PluginStream and PluginStreamClass.

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * platform/FileSystem.h:
        * platform/gtk/FileSystemGtk.cpp:
        * platform/win/FileSystemWin.cpp:
        * plugins/PluginDebug.h:
        * plugins/PluginStream.cpp:
        * plugins/PluginStream.h:
        * plugins/npfunctions.h:
        * plugins/win/PluginDebug: Moved to PluginDebug.h.
        * plugins/win/PluginStreamWin.cpp: Moved to PluginStream.cpp.
        * plugins/win/PluginStreamWin.h: Moved to PluginStream.h
        * plugins/win/PluginViewWin.cpp:
        * plugins/win/PluginViewWin.h:
        * plugins/win/npfunctions.h: Moved to npfunctions.h

2008-01-11  Geoffrey Garen  <ggaren@apple.com>

        Try to fix Mac build: Edit the right .exp file.

        * WebCore.base.exp:

2008-01-11  Geoffrey Garen  <ggaren@apple.com>

        Try to fix Qt build: don't use pthreads if they're not available.

        * bindings/js/GCController.cpp:

2008-01-10  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by John Sullivan.

        Fixed some world leak reports:
        * <rdar://problem/5669436> PLT complains about world leak of 1 JavaScript
        Interpreter after running cvs-base suite

        * <rdar://problem/5669423> PLT complains about world leak if browser
        window is open when PLT starts
        
        These were both bugs in the reporting mechanism, so I took the
        opportunity to do some house cleaning there.

        Stupid class, I kill you:
        * bridge/JavaScriptStatistics.cpp: Removed.
        * bridge/JavaScriptStatistics.h: Removed.

        * bindings/js/GCController.h: Adopted the only useful features of
        JavaScriptStatistics, since they were GC-related.
        * bindings/js/GCController.cpp:

2008-01-10  Eric Seidel  <eric@webkit.org>

        Reviewed by Adele.

        No functional changes, only code cleanup.

        * css/MediaQueryEvaluator.cpp:
        (WebCore::compareValue): renamed from cmpvalue
        (WebCore::colorMediaFeatureEval):
        (WebCore::device_aspect_ratioMediaFeatureEval):
        (WebCore::device_pixel_ratioMediaFeatureEval):
        (WebCore::gridMediaFeatureEval):
        (WebCore::device_heightMediaFeatureEval):
        (WebCore::device_widthMediaFeatureEval):
        (WebCore::heightMediaFeatureEval):
        (WebCore::widthMediaFeatureEval):

2008-01-10  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        - fix a crash when calling alert() from a repeating timer

        On non-Mac platforms, the PageGroupLoadDeferrer pauses DOM timers during
        alert() and other similar functions, which deletes the actual
        DOMWindowTimer objects and replaces them with new objects when resuming.

        * bindings/js/kjs_window.cpp:
        (KJS::Window::timerFired): Re-fetch the timer object from the map in
        case it has been deleted or replaced.

2008-01-10  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Sam.

        - remove SecurityOriginData and fold its functionality into SecurityOrigin

        * GNUmakefile.am:
        * WebCore.base.exp:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::postMessage):
        * dom/Document.cpp:
        (WebCore::Document::domain):
        * page/Chrome.cpp:
        (WebCore::Chrome::requestQuotaIncreaseForNewDatabase):
        (WebCore::Chrome::requestQuotaIncreaseForDatabaseOperation):
        * page/Chrome.h:
        * page/ChromeClient.h:
        * platform/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::copy):
        (WebCore::SecurityOrigin::createFromIdentifier):
        (WebCore::SecurityOrigin::stringIdentifier):
        * platform/SecurityOrigin.h:
        (WebCore::SecurityOrigin::host):
        (WebCore::SecurityOrigin::protocol):
        (WebCore::SecurityOrigin::port):
        (WebCore::SecurityOrigin::equal):
        * platform/SecurityOriginData.cpp: Removed.
        * platform/SecurityOriginData.h: Removed.
        * storage/Database.cpp:
        (WebCore::Database::openDatabase):
        (WebCore::Database::Database):
        (WebCore::Database::securityOriginCopy):
        * storage/Database.h:
        * storage/DatabaseTracker.cpp:
        (WebCore::SecurityOriginHash::hash):
        (WebCore::SecurityOriginHash::equal):
        (WebCore::SecurityOriginTraits::deletedValue):
        (WebCore::SecurityOriginTraits::emptyValue):
        (WebCore::DatabaseTracker::canEstablishDatabase):
        (WebCore::DatabaseTracker::hasEntryForOrigin):
        (WebCore::DatabaseTracker::hasEntryForDatabase):
        (WebCore::DatabaseTracker::establishEntryForOrigin):
        (WebCore::DatabaseTracker::fullPathForDatabase):
        (WebCore::DatabaseTracker::populateOrigins):
        (WebCore::DatabaseTracker::origins):
        (WebCore::DatabaseTracker::databaseNamesForOrigin):
        (WebCore::DatabaseTracker::detailsForNameAndOrigin):
        (WebCore::DatabaseTracker::setDatabaseDetails):
        (WebCore::DatabaseTracker::usageForDatabase):
        (WebCore::DatabaseTracker::usageForOrigin):
        (WebCore::DatabaseTracker::quotaForOrigin):
        (WebCore::DatabaseTracker::setQuota):
        (WebCore::DatabaseTracker::addDatabase):
        (WebCore::DatabaseTracker::deleteAllDatabases):
        (WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
        (WebCore::DatabaseTracker::deleteDatabase):
        (WebCore::DatabaseTracker::deleteDatabaseFile):
        (WebCore::notificationQueue):
        (WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):
        (WebCore::DatabaseTracker::notifyDatabasesChanged):
        * storage/DatabaseTracker.h:
        * storage/DatabaseTrackerClient.h:
        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::openTransactionAndPreflight):
        (WebCore::SQLTransaction::runStatements):
        (WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
        (WebCore::SQLTransaction::postflightAndCommit):
        (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
        * svg/graphics/SVGImageEmptyClients.h:
        (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForNewDatabase):
        (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForDatabaseOperation):

2008-01-10  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam.

        Use the correct frame loader load method. Using the old method would not cause a 
        new window to be open if the frame navigation was not allowed.
        
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::performRequest):

2008-01-10  Alp Toker  <alp@atoker.com>

        SVG font build fix for GTK+/autotools.

        * GNUmakefile.am:

2008-01-10  Adam Barth  <hk9565@gmail.com>

        Reviewed by Sam Weinig and Anders Carlsson.

        Fixes: http://bugs.webkit.org/show_bug.cgi?id=16522
        <rdar://problem/5657355>

        This patch makes two changes:

        1) Java calls FrameLoader::load in a slightly different way than
           JavaScript, which previously let a malicious web site bypass the
           shouldAllowNavigation check.  This patch adds that check to that
           code path.

        2) FrameLoader now wraps calls to m_frame->tree()->find(name) with
           findFrameForNavigation, which calls shouldAllowNavigation.  This
           treats disallowed frame navigations as if the named frame did not
           exist, resulting in a popup window when appropriate.

        Tests: http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html
               http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation.html

        * WebCore.base.exp:
        * bindings/js/kjs_window.cpp:
        (KJS::WindowProtoFuncOpen::callAsFunction):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::createWindow):
        (WebCore::FrameLoader::load):
        (WebCore::FrameLoader::post):
        (WebCore::FrameLoader::findFrameForNavigation):
        * loader/FrameLoader.h:

2008-01-10  John Sullivan  <sullivan@apple.com>

        Written by Hyatt, reviewed by me
        
        - fixed <rdar://problem/5654297> Mail crashes occurs at WebCore::FontFallbackList::fontDataAt() when attempting to display 
          a <video> element that uses controls attribute

        * rendering/MediaControlElements.cpp:
        (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
        force the render style to inherit from the media element's style; Hyatt filed 5682383 to cover cleaning
        up this architecture, but this one-line fix will prevent the crash in the meantime

2008-01-10  Ada Chan  <adachan@apple.com>

        Fix fast/forms/input-radio-checked-tab.html
        Meta key is not the same as Alt key on windows.

        Reviewed by Darin.

        * platform/win/KeyEventWin.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):

2008-01-10  Anders Carlsson  <andersca@apple.com>

        Reviewed by Jon.

        Fix an assert that would happen when a plug-in tries to load a URL while a provisional load is going.
        
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::performRequest):
        Move document loader check here since we don't start loading until here and a new document load could have started in the meantime.
        
        (WebCore::PluginViewWin::requestTimerFired):
        Don't leak the plugin requests.
        
        (WebCore::PluginViewWin::load):

2008-01-10  Anders Carlsson  <andersca@apple.com>

        Reviewed by John Sullivan.

        <rdar://problem/5455889>
        REGRESSION: BumperCar crashes when attempting to load a long invalid URL
        
        Make sure to call FrameLoader::receivedMainResourceError before calling
        FrameLoader::didFailToLoad. The call to receivedMainResourceError takes care of
        clearing out the provisional document loader so that we won't call the didFail
        ResourceLoadDelegate method twice. This also makes us call the FrameLoadDelegate method
        didFailPrivisionalLoad before calling the ResourceLoadDelegate method, which Safari 2.0 does.
        
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::receivedError):

2008-01-10  Antti Koivisto  <antti@apple.com>

        Reviewed by Adele.

        Fix <rdar://problem/5658048>
        After <video> has finished playing, dragging the scroller on different location of controller starts to play movie
        
        - Move to paused state if the playback had ended and the controller is used to seek to earlier time
        - Pause video playback during drag so the knob does not constantly try to escape from the mouse pointer

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::updateMediaPlayer):
        (WebCore::HTMLMediaElement::setPausedInternal):
        * html/HTMLMediaElement.h:
        * rendering/MediaControlElements.cpp:
        (WebCore::MediaControlTimelineElement::defaultEventHandler):

2008-01-10  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Adam Roben.

        <rdar://problem/5667003> fast/dom/xmlhttprequest-html-response-encoding.html is failing

        * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::send): Do not disable sniffing for file://
        requests, as CFNetwork doesn't perform extension to MIME type mapping then.

2008-01-10  Adam Roben  <aroben@apple.com>

        Fixes to allow multiple FrameViews on Windows

        Reviewed by Hyatt.

        * page/FrameView.cpp:
        (WebCore::FrameView::FrameView): Added a new constructor that takes an
        IntSize to specify the FrameView's initial size.
        (WebCore::FrameView::scheduleRelayout): Added an assertion that our
        Document is not in the page cache.
        * page/FrameView.h:
        * platform/gtk/WidgetGtk.cpp:
        (WebCore::Widget::~Widget): Add a warm, fuzzy ASSERT.
        * platform/qt/WidgetQt.cpp:
        (WebCore::Widget::~Widget): Ditto.
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::setWidget): Make sure to remove any existing
        Widget from the Widget hierarchy before deleting it. One instance
        where this is needed is when setWidget is called during FrameView
        creation on Windows.

2008-01-10  Alp Toker  <alp@atoker.com>

        Include math.h to get ceilf(). Part of the SVG font GTK+ build fix.

        * svg/SVGFontFaceElement.cpp:

2008-01-10  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Alice Liu.

        <rdar://problem/5658603> Crash in InsertNodeBefore::doUnapply() on Undo in Yahoo Mail
        <rdar://problem/5658709> Crash in RenderView::setSelection on Undo in Yahoo Mail
        
        Make sure we have an updated layout before we perform any editing work.

        * editing/EditCommand.cpp:
        (WebCore::EditCommand::apply):
        (WebCore::EditCommand::unapply):
        (WebCore::EditCommand::reapply):

2008-01-10  Luca Bruno  <lethalman88@gmail.com>

        Reviewed by Alp Toker.

        Back out r29206 which was causing regressions in curl http job
        cancellation.

        * platform/network/curl/ResourceHandleManager.cpp
        (ResourceHandleManager::cancel): 

2008-01-10  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Darin, Sam, and Adam.

        - <rdar://problem/5654486> REGRESSION (Safari 3.0.4-TOT): clicking on
        - link in gmail message displays JavaScript alert falsely complaining
        about pop-up blocking
        - When trying to open a new window, we now see if the user gesture 
        occurred in the global dynamic object instead of the frame since that is
        the only place an event can occur. 

        * bindings/js/kjs_window.cpp: - Check the dynamic global object instead
        of the frame.
        (KJS::allowPopUp):
        (KJS::showModalDialog):
        (KJS::WindowProtoFuncOpen::callAsFunction):

2008-01-10  David Hyatt  <hyatt@apple.com>

        Fix for bug 16247, visibility:hidden not honored when hit testing inline replaced elements.

        Reviewed by adele

        Added fast/css/visibility-hit-test.html test case.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::nodeAtPoint):

2008-01-10  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        rename QWebPageHistory to QWebHistory.

        * WebCore.pro:

2008-01-10  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        fix the drawing errors that where introduced due to refactoring.

        Correctly clip to the rectangle we want to draw in ScrollView::paint().

        * platform/qt/ScrollViewQt.cpp:
        (WebCore::ScrollView::paint):

2008-01-10  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Lars.

        Temporarily disable gzip decompression in qhttp due to a bug.

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):

2008-01-10  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Lars.

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

        Added a (last) Frame argument to ResourceHandle::loadResourceSynchronously.
        This allows implementing the synchronous loading correctly for the Qt port where the networking
        backend is bound to the page.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadResourceSynchronously):
        * platform/network/ResourceHandle.h:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        * platform/network/curl/ResourceHandleCurl.cpp:
        * platform/network/mac/ResourceHandleMac.mm:
        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::ResourceHandle::loadResourceSynchronously):

2008-01-10  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix for changes in r29328

        * WebCoreSources.bkl:

2008-01-09  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Sam.

        - refactor SecurityOrigin in preparation for merging with SecurityOriginData

        * platform/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::SecurityOrigin):
        (WebCore::SecurityOrigin::create):
        (WebCore::SecurityOrigin::createForFrame):
        * platform/SecurityOrigin.h:

2008-01-09  Ada Chan  <adachan@apple.com>

        Tabs with ctrl, meta, or altgraph modifier key down should not advance focus.

        Reviewed by Darin.

        Test: fast/forms/tabs-with-modifiers.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::defaultKeyboardEventHandler):
        (WebCore::EventHandler::defaultTabEventHandler): bail if ctrl, meta, or altgraph key is down.  
        Clean up the code a bit.
        * page/EventHandler.h:
        * page/FocusController.cpp: Remove the advanceFocus() that takes in a KeyboardEvent.  It was
        only called in EventHandler::defaultTabEventHandler() but we have cleaned up the code there and
        no longer needs it.
        * page/FocusController.h:

2008-01-09  Antti Koivisto  <antti@apple.com>

        Reviewed by Mitz.

        Fix http://bugs.webkit.org/show_bug.cgi?id=16376
        <rdar://problem/5665206>
        <video> element fails to play frames when navigating back to page (16376)
        
        Don't make MediaPlayer visible when it is actually in page cache.

        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::updatePlayer):

2008-01-09  Anders Carlsson  <andersca@apple.com>

        Reviewed by Darin.

        <rdar://problem/5532361> 
        CrashTracer: 9840 crashes in Safari at com.apple.JavaScriptCore: KJS::Bindings::CInstance::~CInstance [in-charge deleting] + 35
        
        Clear the frame's plugin root objects so that they don't outlive the plugin bundle.
        
        * page/Frame.cpp:
        (WebCore::Frame::pageDestroyed):

2008-01-09  John Sullivan  <sullivan@apple.com>

        Reviewed by Adam Roben and Anders Carlsson
        
        - fixed <rdar://problem/5469398> Repro assertion failure in context menu code due to 
          missing-but-expected Reload item

        * platform/ContextMenu.cpp:
        (WebCore::ContextMenu::populate):
        use isLoadingInAPISense when deciding whether to include Stop or Reload in context
        menu, to match the WebKit API

2008-01-09  Mark Rowe  <mrowe@apple.com>

        Fix Windows debug build for opensource developers.

        * WebCore.vcproj/QTMovieWin.vcproj: Use the correct library suffix.

2007-10-01  Allan Sandfeld Jensen  <sandfeld@kde.org>

        Reworked by Eric, Reviewed by Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=9454
        Add support for :lang inheritance and xml:lang support.

        Tests: fast/selectors/lang-inheritance.html
               fast/selectors/lang-inheritance2.html
               fast/selectors/lang-vs-xml-lang.html
               fast/selectors/lang-vs-xml-lang-xhtml.xhtml

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::canShareStyleWithElement): Do not share style between elements with
        different LANG-attribute.
        (WebCore::CSSStyleSelector::checkOneSelector): Change :lang() to recursively check the LANG attribute
        for all the elements parents and the content-language of the document.
        * dom/Document.cpp:
        (WebCore::Document::processHttpEquiv): Parse MIME Content-Language
        * dom/Document.h:
        (WebCore::Document::contentLanguage):
        (WebCore::Document::setContentLanguage):

2008-01-08  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Brady.

        Bug 16678: Unreproducible crash in KJS::JSObject::inherits() after using Web Inspector
        http://bugs.webkit.org/show_bug.cgi?id=16678

        Add a NULL check for controller before calling JSObjectSetPrivate.

        * page/InspectorController.cpp:
        (WebCore::InspectorController::~InspectorController):

2008-01-08  Xan Lopez  <xan@gnome.org>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=15610
        [GTK] Text rendering using Pango

        Use Pango to render Complex path text.

        * platform/graphics/gtk/FontGtk.cpp:
        (WebCore::utf16_to_utf8):
        (WebCore::convertUniCharToUTF8):
        (WebCore::setPangoAttributes):
        (WebCore::Font::drawGlyphs):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::floatWidthForComplexText):
        (WebCore::Font::offsetForPositionForComplexText):

2008-01-08  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5665860> With the web inspector displayed, a crash occurs
        at WebCore::Frame::document() when navigating back to previous page

        This fixes the crash, but the inspector was totally broken with back/forward.
        So this also fixes back/forward navigation so the right main resource shows
        up in the inspector.

        * page/InspectorController.cpp:
        (WebCore::addSourceToFrame): Add some null checks for the frame when
        getting the textEncoding. This was the crash.
        (WebCore::InspectorController::addScriptResource): Create a script object
        only if needed, and always add it by calling addResource.
        (WebCore::InspectorController::didCommitLoad): Check if the loader is 
        loading from the page cache, and clear m_mainResource. If the load is
        normal, then call addAndUpdateScriptResource with the main resource. 
        (WebCore::InspectorController::identifierForInitialRequest): If the load
        is from the page cache and the resource is the main resource call
        addAndUpdateScriptResource since didCommitLoad did not do it.

2008-01-08  Alp Toker  <alp@atoker.com>

        Back out VIDEO by default in the GTK+ qmake build. The build bot
        doesn't have the necessary libraries installed.

        * WebCore.pro:

2008-01-08  Alp Toker  <alp@atoker.com>

        Win build fix for breakage introduced in r29328.

        * WebCore.vcproj/WebCore.vcproj:

2008-01-08  Alp Toker  <alp@atoker.com>

        Rubber-stamped by Mark Rowe.

        Enable VIDEO by default in the GTK+ qmake build.

        * WebCore.pro:

2008-01-08  Alp Toker  <alp@atoker.com>

        GTK+ VIDEO build fix for breakage introduced in r29328.

        Issue noticed by Ori_B.

        * GNUmakefile.am:
        * WebCore.pro:

2008-01-08  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin.
        
        HTMLAudioElement needs generated constructor. Otherwise video instanceof HTMLAudioElement is true which is 
        bit strange.
        
        Renamed custom constructor JSHTMLAudioElementConstructor to JSAudioConstructor to avoid name clashes.

        Test: media/constructors.html

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSAudioConstructor.cpp: Copied from WebCore/bindings/js/JSHTMLAudioElementConstructor.cpp.
        (WebCore::JSAudioConstructor::JSAudioConstructor):
        (WebCore::JSAudioConstructor::implementsConstruct):
        (WebCore::JSAudioConstructor::construct):
        * bindings/js/JSAudioConstructor.h: Copied from WebCore/bindings/js/JSHTMLAudioElementConstructor.h.
        * bindings/js/JSHTMLAudioElementConstructor.cpp: Removed.
        * bindings/js/JSHTMLAudioElementConstructor.h: Removed.
        * bindings/js/kjs_window.cpp:
        (KJS::Window::getValueProperty):
        * html/HTMLAudioElement.idl:

2008-01-08  Anders Carlsson  <andersca@apple.com>

        Reviewed by Mitz.

        Don't add the applet widget to the view, that's done later by RenderApplet.
            
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::createJavaAppletWidget):

2008-01-08  Antti Koivisto  <antti@apple.com>

        Reviewed by Weinig.
        
        Add security check for Audio constructor.

        * bindings/js/kjs_window.cpp:
        (KJS::Window::getValueProperty):

2008-01-08  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben.

        <rdar://problem/5676515> List of scripts and images missing when opening Web Inspector from new window (16567)

        InspectorController::didLoadResourceFromMemoryCache was not being called for
        resources that loaded from the memory cache that the FrameLoader's client
        has already been notified about. This fix always calls the InspectorController
        when loading a memory cached resource. No test possible for the Web Inspector.

        * loader/DocLoader.cpp:
        (WebCore::DocLoader::checkCacheObjectStatus): Moved most of the logic to
        FrameLoader::loadedResourceFromMemoryCache so the InspectorController can always be notified.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::didTellClientAboutLoad): Renamed from didTellBridgeAboutLoad.
        (WebCore::FrameLoader::haveToldClientAboutLoad): Renamed from haveToldBridgeAboutLoad.
        (WebCore::FrameLoader::loadResourceSynchronously): Call the renamed didTellClientAboutLoad.
        (WebCore::FrameLoader::loadedResourceFromMemoryCache): Only takes a CachedResource now.
        Always call InspectorController. If the resource's sendResourceLoadCallbacks is false or
        didTellClientAboutLoad is true, do an early return. Otherwise call the client and call
        didTellClientAboutLoad.
        (WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache): Removed, work now done
        in FrameLoader::loadedResourceFromMemoryCache.
        * loader/FrameLoader.h: Renamed {didTell,haveTold}BridgeAboutLoad to {didTell,haveTold}ClientAboutLoad.
        Made loadedResourceFromMemoryCache only take a CachedResource. Renamed m_urlsBridgeKnowsAbout to 
        m_urlsClientKnowsAbout.
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::load): Call the renamed didTellClientAboutLoad.

2008-01-08  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Sam Weinig.

        - prefix all member variables in CSSStyleSelector with m_

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::CSSStyleSelector):
        (WebCore::CSSStyleSelector::init):
        (WebCore::CSSStyleSelector::setEncodedURL):
        (WebCore::CSSStyleSelector::loadDefaultStyle):
        (WebCore::CSSStyleSelector::matchRules):
        (WebCore::CSSStyleSelector::matchRulesForList):
        (WebCore::CSSStyleSelector::initElementAndPseudoState):
        (WebCore::CSSStyleSelector::initForStyleResolve):
        (WebCore::CSSStyleSelector::canShareStyleWithElement):
        (WebCore::CSSStyleSelector::locateSharedStyle):
        (WebCore::CSSStyleSelector::matchUARules):
        (WebCore::CSSStyleSelector::styleForElement):
        (WebCore::CSSStyleSelector::pseudoStyleForElement):
        (WebCore::CSSStyleSelector::updateFont):
        (WebCore::CSSStyleSelector::cacheBorderAndBackground):
        (WebCore::CSSStyleSelector::checkSelector):
        (WebCore::CSSStyleSelector::checkOneSelector):
        (WebCore::CSSStyleSelector::applyProperty):
        (WebCore::CSSStyleSelector::mapBackgroundImage):
        (WebCore::CSSStyleSelector::mapBackgroundSize):
        (WebCore::CSSStyleSelector::mapBackgroundXPosition):
        (WebCore::CSSStyleSelector::mapBackgroundYPosition):
        (WebCore::CSSStyleSelector::checkForTextSizeAdjust):
        (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
        * css/CSSStyleSelector.h:
        (WebCore::CSSStyleSelector::):
        (WebCore::CSSRuleData::CSSRuleData):
        (WebCore::CSSRuleDataList::CSSRuleDataList):
        (WebCore::CSSRuleDataList::append):
        * css/SVGCSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applySVGProperty):
        * rendering/RenderStyle.cpp:
        (WebCore::RenderStyle::isStyleAvailable):

2008-01-08  David D. Kilzer  <ddkilzer@apple.com>

        Removed unnecessary files from Copy Bundle Resources build phase.

        Reviewed by Sam.

        * WebCore.xcodeproj/project.pbxproj: Files removed from build phase:
        DOMCoreException.idl
        EventException.idl
        MessageEvent.idl
        SVGAElement.idl
        SVGAngle.idl
        SVGAnimateColorElement.idl
        SVGAnimateElement.idl
        SVGAnimateTransformElement.idl
        SVGAnimatedAngle.idl
        SVGAnimatedBoolean.idl
        SVGAnimatedEnumeration.idl
        SVGAnimatedInteger.idl
        SVGAnimatedLength.idl
        SVGAnimatedLengthList.idl
        SVGAnimatedNumber.idl
        SVGAnimatedNumberList.idl
        SVGAnimatedPathData.idl
        SVGAnimatedPoints.idl
        SVGAnimatedPreserveAspectRatio.idl
        SVGAnimatedRect.idl
        SVGAnimatedString.idl
        SVGAnimatedTransformList.idl
        SVGAnimationElement.idl
        SVGCSSPropertyNames.in
        SVGCSSValueKeywords.in
        SVGCircleElement.idl
        SVGClipPathElement.idl
        SVGColor.idl
        SVGComponentTransferFunctionElement.idl
        SVGCursorElement.idl
        SVGDefinitionSrcElement.idl
        SVGDefsElement.idl
        SVGDescElement.idl
        SVGDocument.idl
        SVGElement.idl
        SVGElementInstance.idl
        SVGElementInstanceList.idl
        SVGEllipseElement.idl
        SVGException.idl
        SVGExternalResourcesRequired.idl
        SVGFEBlendElement.idl
        SVGFEColorMatrixElement.idl
        SVGFEComponentTransferElement.idl
        SVGFECompositeElement.idl
        SVGFEDiffuseLightingElement.idl
        SVGFEDisplacementMapElement.idl
        SVGFEDistantLightElement.idl
        SVGFEFloodElement.idl
        SVGFEFuncAElement.idl
        SVGFEFuncBElement.idl
        SVGFEFuncGElement.idl
        SVGFEFuncRElement.idl
        SVGFEGaussianBlurElement.idl
        SVGFEImageElement.idl
        SVGFEMergeElement.idl
        SVGFEMergeNodeElement.idl
        SVGFEOffsetElement.idl
        SVGFEPointLightElement.idl
        SVGFESpecularLightingElement.idl
        SVGFESpotLightElement.idl
        SVGFETileElement.idl
        SVGFETurbulenceElement.idl
        SVGFilterElement.idl
        SVGFilterPrimitiveStandardAttributes.idl
        SVGFitToViewBox.idl
        SVGFontElement.idl
        SVGFontFaceElement.idl
        SVGFontFaceFormatElement.idl
        SVGFontFaceNameElement.idl
        SVGFontFaceSrcElement.idl
        SVGFontFaceUriElement.idl
        SVGForeignObjectElement.idl
        SVGGElement.idl
        SVGGlyphElement.idl
        SVGGradientElement.idl
        SVGImageElement.idl
        SVGLangSpace.idl
        SVGLength.idl
        SVGLengthList.idl
        SVGLineElement.idl
        SVGLinearGradientElement.idl
        SVGLocatable.idl
        SVGMarkerElement.idl
        SVGMaskElement.idl
        SVGMatrix.idl
        SVGMetadataElement.idl
        SVGMissingGlyphElement.idl
        SVGNumber.idl
        SVGNumberList.idl
        SVGPaint.idl
        SVGPathElement.idl
        SVGPathSeg.idl
        SVGPathSegArcAbs.idl
        SVGPathSegArcRel.idl
        SVGPathSegClosePath.idl
        SVGPathSegCurvetoCubicAbs.idl
        SVGPathSegCurvetoCubicRel.idl
        SVGPathSegCurvetoCubicSmoothAbs.idl
        SVGPathSegCurvetoCubicSmoothRel.idl
        SVGPathSegCurvetoQuadraticAbs.idl
        SVGPathSegCurvetoQuadraticRel.idl
        SVGPathSegCurvetoQuadraticSmoothAbs.idl
        SVGPathSegCurvetoQuadraticSmoothRel.idl
        SVGPathSegLinetoAbs.idl
        SVGPathSegLinetoHorizontalAbs.idl
        SVGPathSegLinetoHorizontalRel.idl
        SVGPathSegLinetoRel.idl
        SVGPathSegLinetoVerticalAbs.idl
        SVGPathSegLinetoVerticalRel.idl
        SVGPathSegList.idl
        SVGPathSegMovetoAbs.idl
        SVGPathSegMovetoRel.idl
        SVGPatternElement.idl
        SVGPoint.idl
        SVGPointList.idl
        SVGPolygonElement.idl
        SVGPolylineElement.idl
        SVGPreserveAspectRatio.idl
        SVGRadialGradientElement.idl
        SVGRect.idl
        SVGRectElement.idl
        SVGRenderingIntent.idl
        SVGSVGElement.idl
        SVGScriptElement.idl
        SVGSetElement.idl
        SVGStopElement.idl
        SVGStringList.idl
        SVGStylable.idl
        SVGStyleElement.idl
        SVGSwitchElement.idl
        SVGSymbolElement.idl
        SVGTRefElement.idl
        SVGTSpanElement.idl
        SVGTests.idl
        SVGTextContentElement.idl
        SVGTextElement.idl
        SVGTextPathElement.idl
        SVGTextPositioningElement.idl
        SVGTitleElement.idl
        SVGTransform.idl
        SVGTransformList.idl
        SVGTransformable.idl
        SVGURIReference.idl
        SVGUnitTypes.idl
        SVGUseElement.idl
        SVGViewElement.idl
        SVGViewSpec.idl
        SVGZoomAndPan.idl
        SVGZoomEvent.idl
        XMLHttpRequestException.idl
        XPathException.idl
        character-sets.txt
        mac-encodings.txt
        make-charset-table.pl
        svgattrs.in
        svgtags.in
        xlinkattrs.in

2008-01-08  Luca Bruno  <lethalman88@gmail.com>

        Reviewed by Alp Toker.

        Support copying the selected URL to the clipboard.

        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::Pasteboard::writeURL): implemented

2008-01-08  David D. Kilzer  <ddkilzer@webkit.org>

        Renamed CharacterData::m_str to m_data

        Rubber-stamped by Adam again.

        No test cases added since there is no change in behavior.

        * dom/CDATASection.cpp:
        * dom/CharacterData.cpp:
        (WebCore::CharacterData::CharacterData):
        (WebCore::CharacterData::setData):
        (WebCore::CharacterData::substringData):
        (WebCore::CharacterData::appendData):
        (WebCore::CharacterData::insertData):
        (WebCore::CharacterData::deleteData):
        (WebCore::CharacterData::replaceData):
        (WebCore::CharacterData::nodeValue):
        (WebCore::CharacterData::containsOnlyWhitespace):
        (WebCore::CharacterData::dispatchModifiedEvent):
        (WebCore::CharacterData::checkCharDataOperation):
        (WebCore::CharacterData::dump):
        * dom/CharacterData.h:
        * dom/Comment.cpp:
        * dom/Text.cpp:
        (WebCore::Text::splitText):
        (WebCore::Text::createRenderer):
        (WebCore::Text::recalcStyle):

2008-01-08  Steve Falkenburg  <sfalken@apple.com>

        Fix a couple of compiler warnings.
        
        Reviewed by Mitz.

        * platform/win/ThreadingWin.cpp:
        * platform/win/UniscribeController.cpp: Remove unused function.
        (WebCore::UniscribeController::advance): Fix bogus warning about un-initialized variable.

2008-01-08  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        Fix for <rdar://problem/5674667> fast/forms/slider-mouse-events.html is broken by media control checkin 29257

        * rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
          After fixing a bug in EventHandler to make sure events always go to the capturing node, this bug was exposed.
          MouseMove and MouseUp events were going to the thumb element, but not to the slider input element.  
          This change makes the input element the capturing node, and then the input element forwards the mouse events to the thumb element.
          I also added a missing call to setDefaultHandled for the mousemove event.

2008-01-08  Adele Peterson  <adele@apple.com>

        Reviewed by Adam. 

        * rendering/RenderThemeSafari.cpp: Use the SafariTheme version number to decide whether or not to
        paint the media controls in RenderThemeSafari.

2008-01-08  Oliver Hunt  <oliver@apple.com>

        Reviewed by Adele and John.

        Fix <rdar://problem/5652740> Crash occurs at WebCore::Widget::getView() after
        dragging file into window that contains web page ( http://www.econocraft.com/flood_arch.htm )

        We hit this crash if the page reloads between DragController::dragUpdated
        and DragController::performDrag, meaning that m_document starts pointing to
        a now viewless document.  This is picked up by an assertion in performDrag
        which I have now replaced with an assignment given that the assertion is 
        invalid -- it is possible for m_document to be changed between dragUpdated
        performDrag

        * page/DragController.cpp:
        (WebCore::DragController::performDrag):

2008-01-08  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        <rdar://problem/5659812> CrashTracer: 462 crashes in Safari at com.apple.WebCore:
        WebCore::Node::setChanged + 96

        Test: fast/dom/cssTarget-crash.html

        * dom/Node.cpp: (WebCore::Node::removedFromDocument):
        Check to see if the node being removed is currently set as the Document's cssTarget.
        If it is, clear the cssTarget to prevent a hanging reference to it.

2008-01-08  Adam Roben  <aroben@apple.com>

        * bindings/scripts/CodeGeneratorJS.pm: Touch this so the bindings will
        rebuild on Windows now that the media elements are enabled.

2008-01-08  Adam Roben  <aroben@apple.com>

        * svg/svgtags.in: Touch this again for the sake of the Windows bots.

2008-01-08  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben.

        Use JSRetainPtr in the Web Inspector everywhere we own a JSStringRef.
        Also added some #pragma marks to help find places in the file.

        * page/InspectorController.cpp:
        (WebCore::callSimpleFunction): Use JSRetainPtr<JSStringRef>.
        And return the result of JSObjectCallAsFunction.
        (WebCore::search): Use JSRetainPtr<JSStringRef>.
        (WebCore::databaseTableNames): Ditto.
        (WebCore::localizedStrings): Ditto.
        (WebCore::InspectorController::~InspectorController): Ditto.
        (WebCore::InspectorController::focusNode): Ditto.
        (WebCore::InspectorController::windowScriptObjectAvailable): Ditto.
        (WebCore::InspectorController::scriptObjectReady): Ditto.
        (WebCore::addHeaders): Ditto.
        (WebCore::InspectorController::addScriptResource): Ditto.
        (WebCore::InspectorController::removeScriptResource): Ditto.
        (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
        (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
        (WebCore::InspectorController::updateScriptResource): Ditto.
        (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
        (WebCore::InspectorController::removeDatabaseScriptResource): Ditto.
        (WebCore::InspectorController::addScriptConsoleMessage): Ditto.

2008-01-08  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Sam Weinig.

        - rename FontDataBaseClass.{cpp,h} back to FontData.{cpp,h}

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * editing/Editor.cpp:
        * platform/graphics/FontData.cpp: Copied from WebCore/platform/graphics/FontDataBaseClass.cpp.
        * platform/graphics/FontData.h: Copied from WebCore/platform/graphics/FontDataBaseClass.h.
        * platform/graphics/FontDataBaseClass.cpp: Removed.
        * platform/graphics/FontDataBaseClass.h: Removed.
        * platform/graphics/SegmentedFontData.h:
        * platform/graphics/SimpleFontData.h:

2008-01-08  Dan Bernstein  <mitz@apple.com>

        Fix a Wx build error.

        * platform/graphics/wx/GlyphMapWx.cpp:
        (WebCore::GlyphPage::fill):

2008-01-08  Dan Bernstein  <mitz@apple.com>

        Fix a Qt build error.

        * platform/graphics/qt/SimpleFontDataQt.cpp:
        (WebCore::SimpleFontData::containsCharacters):
        (WebCore::SimpleFontData::fontDataForCharacter):
        (WebCore::SimpleFontData::isSegmented):

2008-01-08  Adam Roben  <aroben@apple.com>

        Windows build fix.

        Touch config.h to force a rebuild (apparently changing preprocessor
        definitions in the .vcproj doesn't force a rebuild).

        * config.h:

2008-01-08  Dan Bernstein  <mitz@apple.com>

        Fix a Wx build failure.

        * webcore-wx.bkl:

2008-01-08  Dan Bernstein  <mitz@apple.com>

        Fix a Qt build failure.

        * WebCore.pro:

2008-01-08  John Sullivan  <sullivan@apple.com>

        Reviewed by Adam Roben
        
        - fixed <rdar://problem/5671668> REGRESSION (r28711-r28730): With caret in an empty form field, 
          Delete menu item is enabled but shouldn't be

        The enabled logic was incorrect for the Delete menu item. To fix this, I added an EditorCommandSource
        parameter to the enabled functions so that they can have parallel logic to the execute functions.

        * editing/EditorCommand.cpp:
        added EditorCommandSource parameter to isEnabled function prototype
        (WebCore::enabled):
        added unused EditorCommandSource parameter to these isEnabled functions:
        (WebCore::enabledAnySelection):
        (WebCore::enabledAnySelectionAndMark):
        (WebCore::enableCaretInEditableText):
        (WebCore::enabledCopy):
        (WebCore::enabledCut):

        (WebCore::enabledDelete):
        new function, uses logic previously used by Delete command for DOM sources; uses logic in enabledCut
        for menu source

        added unused EditorCommandSource parameter to these isEnabled functions:
        (WebCore::enabledInEditableText):
        (WebCore::enabledInRichlyEditableText):
        (WebCore::enabledPaste):
        (WebCore::enabledRangeInEditableText):
        (WebCore::enabledRangeInRichlyEditableText):
        (WebCore::enabledRedo):
        (WebCore::enabledUndo):
        
        (WebCore::CommandEntry::):
        wire up new enabledDelete function as delete function for Delete command
        
        (WebCore::Editor::Command::isEnabled):
        pass EditorCommandSource parameter to isEnabled function

2008-01-08  Adam Roben  <aroben@apple.com>

        Visual C++ Express build fix

        * WebCore.vcproj/QTMovieWin.vcproj: Explicitly link against user32.lib
        and advapi32.lib. VS implicitly links against these, VC++ Express
        doesn't.

2008-01-08  Dan Bernstein  <mitz@apple.com>

        - add bug number

        * platform/graphics/mac/FontCustomPlatformData.cpp:
        (WebCore::createFontCustomPlatformData):

2008-01-08  Dan Bernstein  <mitz@apple.com>

        Try to fix the Qt build.

        * WebCore.pro:

2008-01-08  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Try to fix Qt builds after Timothy's inspector changes.

        * page/inspector/WebKit.qrc:

2008-01-08  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Mark.

        - remove duplicate definition of getElementById from HTMLDocument IDL (and ObjC bindings)

        * bindings/objc/PublicDOMInterfaces.h:
        * html/HTMLDocument.idl:

2008-01-08  David D. Kilzer  <ddkilzer@webkit.org>

        Renamed CharacterData::str to m_str to match coding style

        Rubber-stamped by Adam.

        No test cases added since there is no change in behavior.

        * dom/CDATASection.cpp:
        * dom/CharacterData.cpp:
        (WebCore::CharacterData::CharacterData):
        (WebCore::CharacterData::setData):
        (WebCore::CharacterData::substringData):
        (WebCore::CharacterData::appendData):
        (WebCore::CharacterData::insertData):
        (WebCore::CharacterData::deleteData):
        (WebCore::CharacterData::replaceData):
        (WebCore::CharacterData::nodeValue):
        (WebCore::CharacterData::containsOnlyWhitespace):
        (WebCore::CharacterData::dispatchModifiedEvent):
        (WebCore::CharacterData::checkCharDataOperation):
        (WebCore::CharacterData::dump):
        * dom/CharacterData.h:
        * dom/Comment.cpp:
        * dom/Text.cpp:
        (WebCore::Text::splitText):
        (WebCore::Text::createRenderer):
        (WebCore::Text::recalcStyle):

2008-01-08  Oliver Hunt  <oliver@apple.com>

        Set the ENABLE_SVG_FONTS flag in Windows build, now builds, 
        I'm not sure if it just caused the right files to regenerate,
        or if there's some configuration weirdness in the non-SVG-fonts
        build. 

        * WebCore.vcproj/WebCore.vcproj:

2008-01-07  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Brady.

        - fixed <rdar://problem/5644300> Back/Forward Cache should not include pages with databases
        
        Track whether a document has ever opened a database; if so, exclude it from b/f caching (for now)
        
        * dom/Document.cpp:
        (WebCore::Document::Document):
        * dom/Document.h:
        (WebCore::Document::setHasOpenDatabases):
        (WebCore::Document::hasOpenDatabases):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::canCachePage):
        * storage/Database.cpp:
        (WebCore::Database::openDatabase):

2008-01-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Oliver Hunt.

        - fix leaks seen on the build bot

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule): Avoid creating a
        CSSFontFaceSource for SVG font-face elements going into an
        SVGCSSFontFace because it just leaks them. Avoid adding SVG font-
        face elements to a CSSFontFace because it will not work as expected.

2008-01-07  Mark Rowe  <mrowe@apple.com>

        Tiger build fix.

        * platform/graphics/mac/FontCustomPlatformData.cpp:
        (WebCore::createFontCustomPlatformData): Only include this code on Leopard.
        It's not needed on Tiger, and breaks the build.

2008-01-07  Antti Koivisto  <antti@apple.com>

        Reviewed by Steve.

        Re-enable media support in Windows build.

        * WebCore.vcproj/QTMovieWin.vcproj:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/build-generated-files.sh:

2008-01-07  Steve Falkenburg  <sfalken@apple.com>

        Add version resource to QTMovieWin.dll
        
        Reviewed by Adam.

        * WebCore.vcproj/PRODUCTVERSION: Copied from ../WebKit/win/WebKit.vcproj/PRODUCTVERSION.
        * WebCore.vcproj/QTMovieWin.rc: Added.
        * WebCore.vcproj/QTMovieWin.vcproj:
        * WebCore.vcproj/VERSION: Copied from ../WebKit/win/WebKit.vcproj/VERSION.
        * WebCore.vcproj/auto-version.sh: Copied from ../WebKit/win/WebKit.vcproj/auto-version.sh.

2008-01-07  Dan Bernstein  <mitz@apple.com>

        Build fix.

        * platform/graphics/qt/FontCustomPlatformData.cpp:
        (WebCore::FontCustomPlatformData::~FontCustomPlatformData): Added.
        Calls QFontDatabase::removeApplicationFont().
        * platform/graphics/qt/FontCustomPlatformData.h:
        * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
        (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData): Removed the
        implementation because Qt does not use the WebCore glyph cache.

2008-01-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Oliver Hunt.

        - fix an assertion failure in svg/W3C-SVG-1.1/fonts-elem-03-b.svg on
          Tiger and multiple SVG layout test failures on Leopard.

        * css/CSSSegmentedFontFace.cpp:
        (WebCore::CSSSegmentedFontFace::getFontData): Avoid returning an
        empty SegmentedFontData.
        * platform/graphics/mac/FontCustomPlatformData.cpp:
        (WebCore::createFontCustomPlatformData): Avoid creating a font that
        contains no glyphs. On Leopard, ATS might create such a font given
        data in an unsupported format (such as SVG).

2008-01-07  Steve Falkenburg  <sfalken@apple.com>

        Build fix.

        * WebCore.vcproj/WebCore.sln:
        * WebCore.vcproj/WebCore.submit.sln:

2008-01-07  Oliver Hunt  <oliver@apple.com>

        Reviewed by Niko.

        Fix painting of SVG <image> when the image must be scaled to retain aspect ratio

        Test: svg/custom/image-with-aspect-ratio-stretch.svg

        * rendering/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::adjustRectsForAspectRatio):

2008-01-07  Dan Bernstein  <mitz@apple.com>

        Build fix.

        * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
        (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):

2008-01-07  Adele Peterson  <adele@apple.com>

        Add missing newline.

        * rendering/MediaControlElements.cpp:

2008-01-07  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Hyatt.

        <rdar://problem/5673489> Safari does not render windowless plugins in an
        iframe when opacity < 1.0

        Plugins in transparency layers handle their own world transforms, so
        only apply the horizontal/vertical transform if we are not in a
        transparency layer.

        * platform/graphics/GraphicsContext.h: Add a Windows-platform-only
        inTransparencyLayer() function
        * platform/win/GraphicsContextWin.cpp:
        (WebCore::GraphicsContext::getWindowsContext): Use inTransparencyLayer()
        (WebCore::GraphicsContext::inTransparencyLayer):
        (WebCore::GraphicsContext::releaseWindowsContext): Use
        inTransparencyLayer()
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::paint): When retrieving the HDC, use the rect
        relative to the window. Pass m_isTransparent to
        get/releaseWindowsContext(). Only set the world transform if we are not
        in a transparency layer.

2008-01-07  Adele Peterson  <adele@apple.com>

        Build fix.  Need to wrap these classes in #if ENABLE(VIDEO)

        * rendering/MediaControlElements.cpp:
        * rendering/MediaControlElements.h:

2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Mark.

        Enable SVG_FONTS by default.

        * Configurations/WebCore.xcconfig:
        * WebCore.vcproj/build-generated-files.sh:

2008-01-07  Dan Bernstein  <mitz@apple.com>

        Build fix.

        * platform/graphics/qt/SimpleFontDataQt.cpp:
        (WebCore::SimpleFontData::SimpleFontData):
        (WebCore::SimpleFontData::~SimpleFontData):

2008-01-07  Adam Barth  <hk9565@gmail.com>

        Reviewed by Sam Weinig

        Fixes: http://bugs.webkit.org/show_bug.cgi?id=16523
        <rdar://problem/5657447>

        When a frame is created with the URL "about:blank" or "", it should
        inherit its SecurityOrigin from its opener.  However, once it has
        decided on that SecurityOrigin, it should not change its mind.
        Prior to this patch, several events could induce the frame to change
        its SecurityOrigin, permitting an attacker to inject script into an
        arbitrary SecurityOrigin.

        This patch makes several changes:

        1) Documents refuse to change from one SecurityOrigin to another
           unless explicitly instructed to do so.

        2) Navigating to a JavaScript URL that produces a value
           preserves the current SecurityOrigin explicitly instead of
           relying on the URL to preserve the origin (which fails for
           about:blank URLs and SecurityOrigins with document.domain set).

           Ideally, we should not preserve the URL at all.  Instead, the
           frame's URL should be the JavaScript URL, as in Firefox, but this
           would require changes that are too risky for this patch.  I'll
           file this as a separate issue.

        3) Various methods of navigating to JavaScript URLs were not
           properly handling JavaScript that returned a value (and should
           therefore replace the current document).  This patch unifies
           those code paths with the path that works.

           There are still a handful of bugs relating to the handling of
           JavaScript URLs, but I'll file those as separate issues.

        Tests: http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write.html
               http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url.html
               http/tests/security/aboutBlank/xss-DENIED-set-opener.html

        * dom/Document.cpp:
        (WebCore::Document::initSecurityOrigin):
        * dom/Document.h:
        (WebCore::Document::setSecurityOrigin):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::changeLocation):
        (WebCore::FrameLoader::urlSelected):
        (WebCore::FrameLoader::requestFrame):
        (WebCore::FrameLoader::submitForm):
        (WebCore::FrameLoader::executeIfJavaScriptURL):
        (WebCore::FrameLoader::begin):
        * loader/FrameLoader.h:
        * platform/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::setForURL):
        (WebCore::SecurityOrigin::createForFrame):
        * platform/SecurityOrigin.h:

2008-01-07  Adele Peterson  <adele@apple.com>

        Forgot to check in these changes in my last checkin.

        * rendering/RenderThemeSafari.cpp:

2008-01-07  Dan Bernstein  <mitz@apple.com>

        Build fixes.

        * WebCore.pro:
        * platform/graphics/qt/FontCacheQt.cpp:
        (WebCore::FontCache::getCachedFontData):

2008-01-07  Timothy Hatcher  <timothy@apple.com>

        Reviewed by John Sullivan.

        <rdar://problem/5674119> Make the Web Inspector toolbar the normal size when not docked

        * page/inspector/inspector.css: Changed CSS rules to have the toolbar and buttons be
          normal height when not docked, and small when docked. Also added some cursor properties
          prevent showing the text cursor over areas that are not selectable.
        * page/inspector/Images: A few images added and old ones removed or renamed.

2008-01-07  Alp Toker  <alp@atoker.com>

        Prospective GTK+ autotools/qmake VIDEO build fix for breakage
        introduced in r29257.

        * GNUmakefile.am:
        * WebCore.pro:

2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Oliver.

        Build fix affecting all builds - again related to the unicode-range addition.

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule):
        * css/SVGCSSFontFace.cpp:
        (WebCore::SVGCSSFontFace::SVGCSSFontFace):
        * css/SVGCSSFontFace.h:
        * rendering/RenderSVGText.cpp:
        * svg/SVGFont.cpp:
        (WebCore::svgFontAndFontFaceElementForFontData):
        (WebCore::floatWidthMissingGlyphCallback):
        (WebCore::drawTextMissingGlyphCallback):
        * svg/SVGFontFaceElement.cpp:

2008-01-07  Adele Peterson  <adele@apple.com>

        Reviewed by Antti, Adam, and Mitz.

        WebCore part of fix for 
        <rdar://problem/5619073> Updated look for <video> controls
        <rdar://problem/5619057> Add volume control to video controls

        * WebCore.base.exp: Added symbols for WebKitSystemInterface drawing methods.
        * WebCore.xcodeproj/project.pbxproj: Added MediaControlElements.h/cpp
        * WebCore.vcproj/WebCore.vcproj: ditto.

        * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added cases for new appearances.
        * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType): Added cases for new types.
        * css/CSSSelector.h: (WebCore::CSSSelector::): Added new pseudo elements.
        * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::checkOneSelector): ditto.
        * css/CSSValueKeywords.in: Added keywords for new control appearance styles.
        * css/html4.css: Added new styles for new controls.

        * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::canPlay): Added. Takes loading state into account.
        * html/HTMLMediaElement.h:

        * page/EventHandler.cpp: (WebCore::EventHandler::updateMouseEventTargetNode): Make sure the events always go to the capturing node, if there is one.

        * platform/mac/WebCoreSystemInterface.h: Added drawing methods for controls.
        * platform/mac/WebCoreSystemInterface.mm: ditto.

        * rendering/MediaControlElements.cpp: Added.
        (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement): Moved from RenderMedia.  Made this relatively positioned, instead of absolute.
        (WebCore::MediaControlInputElement::MediaControlInputElement): Moved from RenderMedia.  Removed call to updateFromElement, 
         since its too early to do this here, and causes crashes for the slider.
        (WebCore::MediaControlInputElement::attachToParent): Moved from RenderMedia.
        (WebCore::MediaControlInputElement::update): ditto.
        (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Added.
        (WebCore::MediaControlMuteButtonElement::defaultEventHandler): ditto.
        (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Moved from RenderMedia.
        (WebCore::MediaControlPlayButtonElement::defaultEventHandler): ditto.
        (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Added.
        (WebCore::MediaControlSeekButtonElement::defaultEventHandler): ditto.
        (WebCore::MediaControlSeekButtonElement::seekTimerFired): ditto.
        (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Moved from RenderMedia.
        (WebCore::MediaControlTimelineElement::defaultEventHandler): ditto.
        (WebCore::MediaControlTimelineElement::update): ditto. 
        (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Added.
        (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler): ditto.
        * rendering/MediaControlElements.h: Added. Moved from RenderMedia.
        (WebCore::MediaControlShadowRootElement::isShadowNode):
        (WebCore::MediaControlShadowRootElement::shadowParentNode):
        (WebCore::RenderMediaControlShadowRoot::RenderMediaControlShadowRoot):
        (WebCore::RenderMediaControlShadowRoot::setParent):

        * rendering/RenderMedia.cpp: Moved control element classes to MediaControlElements files.
        (WebCore::RenderMedia::RenderMedia): No need to initialize RefPtrs.
        (WebCore::RenderMedia::layout): Set the position for the controlsRenderer.
        (WebCore::RenderMedia::createPanel): Added nil check for the renderer.
        (WebCore::RenderMedia::createMuteButton): Added.
        (WebCore::RenderMedia::createSeekBackButton): ditto.
        (WebCore::RenderMedia::createSeekForwardButton): ditto.
        (WebCore::RenderMedia::createTimeDisplay): Added nil check for the renderer.
        (WebCore::RenderMedia::createFullscreenButton): Added.
        (WebCore::RenderMedia::updateControls): Create, delete, and update new controls when appropriate.
        (WebCore::RenderMedia::updateControlVisibility): Don't fade controls for audio controls. 
        (WebCore::RenderMedia::forwardEvent): Forward events for new controls.
        * rendering/RenderMedia.h: Added new methods for creating new controls.

        * rendering/RenderObject.cpp: (WebCore::RenderObject::containingBlock): Updated special case for media elements, which are replaced elements, 
          but also can contain children (the controls' container) that may need to look for the containing block.

        * rendering/RenderSlider.cpp: (WebCore::RenderSlider::createThumbStyle): Added case for MediaSliderAppearance.

        * rendering/RenderStyle.h: Added appearance constants and pseudo ids for new controls.
        (WebCore::):
        (WebCore::RenderStyle::):

        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::adjustStyle): Added cases for new appearances.
        (WebCore::RenderTheme::paint): ditto.
        * rendering/RenderTheme.h: Added new methods for painting new appearances.
        (WebCore::RenderTheme::paintMediaBackground):
        (WebCore::RenderTheme::paintMediaFullscreenButton):
        (WebCore::RenderTheme::paintMediaPlayButton):
        (WebCore::RenderTheme::paintMediaMuteButton):
        (WebCore::RenderTheme::paintMediaSeekBackButton):
        (WebCore::RenderTheme::paintMediaSeekForwardButton):
        (WebCore::RenderTheme::paintMediaSliderThumb):
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_mediaControlBackgroundImage.
        (WebCore::RenderThemeMac::~RenderThemeMac): Delete m_mediaControlBackgroundImage.
        (WebCore::RenderThemeMac::paintCapsLockIndicator): Use LocalCurrentGraphicsContext here too, since we use it in all other painting methods.
        (WebCore::RenderThemeMac::paintSliderTrack): Added case for MediaSliderAppearance.
        (WebCore::RenderThemeMac::adjustSliderThumbSize): Added case for MediaSliderThumbAppearance.
        (WebCore::RenderThemeMac::paintMediaBackground): Draws the new artwork for the controls.
        (WebCore::RenderThemeMac::paintMediaFullscreenButton): ditto.
        (WebCore::RenderThemeMac::paintMediaMuteButton): ditto.
        (WebCore::RenderThemeMac::paintMediaPlayButton): ditto.
        (WebCore::RenderThemeMac::paintMediaSeekBackButton): ditto.
        (WebCore::RenderThemeMac::paintMediaSeekForwardButton): ditto.
        (WebCore::RenderThemeMac::paintMediaSliderThumb): ditto.
        * rendering/RenderThemeSafari.cpp: Draws the new artwork on Windows.
        (WebCore::RenderThemeSafari::paintSliderTrack):
        (WebCore::RenderThemeSafari::adjustSliderThumbSize):
        (WebCore::RenderThemeSafari::paintMediaBackground):
        (WebCore::RenderThemeSafari::paintMediaFullscreenButton):
        (WebCore::RenderThemeSafari::paintMediaMuteButton):
        (WebCore::RenderThemeSafari::paintMediaPlayButton):
        (WebCore::RenderThemeSafari::paintMediaSeekBackButton):
        (WebCore::RenderThemeSafari::paintMediaSeekForwardButton):
        (WebCore::RenderThemeSafari::paintMediaSliderThumb):
        * rendering/RenderThemeSafari.h:

2008-01-07  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin Adler.

        Fix ASSERTION FAILED: dstOffset + srcSegmentLength == static_cast<int>(data.size())
        when the replacment string is a different length.

        * platform/text/StringImpl.cpp:
        (WebCore::StringImpl::replace): Move the parenthesis to be around only the subtraction in
        the Vector size calculation, correcting the order of math operations.

2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric. Hopefully fix build with mac tiger after the unicode-range addition. NSInteger not available there.

        * platform/graphics/mac/FontCacheMac.mm:

2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Oliver. Fix build error introduced by Dan's unicode-range support patch & enabling SVG_FONTS by default.

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::getFontData):

2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Next try to fix wx/mac leopard build.

        * css/CSSFontSelector.cpp: Need to wrap a SVG* include in ENABLE(SVG) blocks, as this port doesn't build this generated file.
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::createFontData): Fix double<->float conversion issue.
        * webcore-base.bkl: Undo svg/ include.

2008-01-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - <rdar://problem/5665216> Support the unicode-range property in @font-face rules

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * bindings/objc/DOM.mm:
        * bridge/mac/WebCoreAXObject.mm:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSFontFace.cpp:
        (WebCore::CSSFontFace::fontLoaded): Changed to call the owning segmented
        font face.
        (WebCore::CSSFontFace::getFontData):
        * css/CSSFontFace.h:
        (WebCore::CSSFontFace::CSSFontFace):
        (WebCore::CSSFontFace::setSegmentedFontFace):
        * css/CSSFontFaceSource.cpp:
        (WebCore::CSSFontFaceSource::pruneTable): Removed the calls to
        GlyphPageTreeNode::pruneTreeCustomFontData because the fonts in the
        font table are not exposed in the glyph page tree. Only the segmented
        font is, and that is taken care of by the segmented font face.
        (WebCore::CSSFontFaceSource::getFontData):
        * css/CSSFontFaceSource.h:
        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule): Changed to collect
        @font-face rules with the same family and traits into a single
        segmented font face, instead of just retaining the most recent one.
        (WebCore::CSSFontSelector::fontLoaded):
        (WebCore::CSSFontSelector::getFontData):
        * css/CSSFontSelector.h:
        * css/CSSGrammar.y:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseFontFaceUnicodeRange): Added. Parses a unicode
        range value.
        * css/CSSParser.h:
        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::):
        * css/CSSPropertyNames.in:
        * css/CSSSegmentedFontFace.cpp: Added.
        (WebCore::CSSSegmentedFontFace::CSSSegmentedFontFace):
        (WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace):
        (WebCore::CSSSegmentedFontFace::pruneTable):
        (WebCore::CSSSegmentedFontFace::isLoaded):
        (WebCore::CSSSegmentedFontFace::isValid):
        (WebCore::CSSSegmentedFontFace::fontLoaded):
        (WebCore::CSSSegmentedFontFace::overlayRange):
        (WebCore::CSSSegmentedFontFace::getFontData):
        * css/CSSSegmentedFontFace.h: Added.
        (WebCore::FontFaceRange::FontFaceRange):
        (WebCore::FontFaceRange::from):
        (WebCore::FontFaceRange::to):
        (WebCore::FontFaceRange::fontFace):
        (WebCore::CSSSegmentedFontFace::fontSelector):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSUnicodeRangeValue.cpp: Added.
        (WebCore::CSSUnicodeRangeValue::~CSSUnicodeRangeValue):
        (WebCore::CSSUnicodeRangeValue::cssText):
        * css/CSSUnicodeRangeValue.h: Added.
        (WebCore::CSSUnicodeRangeValue::CSSUnicodeRangeValue):
        (WebCore::CSSUnicodeRangeValue::from):
        (WebCore::CSSUnicodeRangeValue::to):
        * css/SVGCSSFontFace.cpp:
        (WebCore::SVGCSSFontFace::getFontData):
        * css/SVGCSSFontFace.h:
        * editing/Editor.cpp:
        (WebCore::Editor::fontForSelection):
        * editing/Editor.h:
        * page/mac/FrameMac.mm:
        * page/mac/WebCoreFrameBridge.mm:
        (-[WebCoreFrameBridge fontForSelection:]):
        * platform/graphics/Font.cpp:
        (WebCore::WidthIterator::advance):
        (WebCore::Font::glyphDataForCharacter):
        (WebCore::Font::primaryFont): Changed to return the simple font data
        used for the space character.
        (WebCore::Font::fontDataAt):
        (WebCore::Font::fontDataForCharacters):
        (WebCore::Font::drawGlyphBuffer):
        * platform/graphics/Font.h:
        * platform/graphics/FontCache.cpp:
        (WebCore::FontCache::getCachedFontData):
        (WebCore::FontCache::getFontData):
        * platform/graphics/FontCache.h:
        * platform/graphics/FontData.cpp: Renamed to SimpleFontData.cpp
        * platform/graphics/FontData.h: Renamed to SimpleFontData.cpp.
        * platform/graphics/FontDataBaseClass.cpp: Added. This will be renamed
        FontData.cpp.
        (WebCore::FontData::~FontData):
        * platform/graphics/FontDataBaseClass.h: Added. This will be renamed
        FontData.h.
        * platform/graphics/FontFallbackList.cpp:
        (WebCore::FontFallbackList::determinePitch):
        (WebCore::FontFallbackList::fontDataAt):
        (WebCore::FontFallbackList::fontDataForCharacters):
        * platform/graphics/FontFallbackList.h:
        (WebCore::FontFallbackList::primaryFont):
        * platform/graphics/FontSelector.h:
        * platform/graphics/GlyphBuffer.h:
        (WebCore::GlyphBuffer::fontDataAt):
        (WebCore::GlyphBuffer::swap):
        (WebCore::GlyphBuffer::add):
        * platform/graphics/GlyphPageTreeNode.cpp:
        (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
        (WebCore::GlyphPageTreeNode::initializePage): Added code to initialize
        pages for segmented font data.
        (WebCore::GlyphPageTreeNode::getChild):
        (WebCore::GlyphPageTreeNode::pruneCustomFontData):
        * platform/graphics/GlyphPageTreeNode.h:
        (WebCore::GlyphPage::setGlyphDataForCharacter):
        (WebCore::GlyphPage::setGlyphDataForIndex):
        (WebCore::GlyphPageTreeNode::getRootChild):
        * platform/graphics/SegmentedFontData.cpp: Added.
        (WebCore::SegmentedFontData::~SegmentedFontData):
        (WebCore::SegmentedFontData::fontDataForCharacter):
        (WebCore::SegmentedFontData::containsCharacters):
        (WebCore::SegmentedFontData::isCustomFont):
        (WebCore::SegmentedFontData::isLoading):
        (WebCore::SegmentedFontData::isSegmented):
        * platform/graphics/SegmentedFontData.h: Added.
        (WebCore::FontDataRange::FontDataRange):
        (WebCore::FontDataRange::from):
        (WebCore::FontDataRange::to):
        (WebCore::FontDataRange::fontData):
        (WebCore::SegmentedFontData::appendRange):
        (WebCore::SegmentedFontData::numRanges):
        (WebCore::SegmentedFontData::rangeAt):
        * platform/graphics/SimpleFontData.cpp: Copied from WebCore/platform/graphics/FontData.cpp.
        (WebCore::SimpleFontData::SimpleFontData):
        (WebCore::SimpleFontData::~SimpleFontData):
        (WebCore::SimpleFontData::ascent):
        (WebCore::SimpleFontData::descent):
        (WebCore::SimpleFontData::widthForGlyph):
        (WebCore::SimpleFontData::fontDataForCharacter):
        (WebCore::SimpleFontData::isSegmented):
        * platform/graphics/SimpleFontData.h: Copied from WebCore/platform/graphics/FontData.h.
        (WebCore::SimpleFontData::isCustomFont):
        (WebCore::SimpleFontData::isLoading):
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::setPlatformFont):
        * platform/graphics/gtk/FontCacheGtk.cpp:
        (WebCore::FontCache::getFontDataForCharacters):
        * platform/graphics/gtk/FontDataGtk.cpp: Renamed to
        SimpleFontDataGtk.cpp.
        * platform/graphics/gtk/FontGtk.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
        (WebCore::GlyphPage::fill):
        * platform/graphics/gtk/SimpleFontDataGtk.cpp: Copied from WebCore/platform/graphics/gtk/FontDataGtk.cpp.
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformDestroy):
        (WebCore::SimpleFontData::smallCapsFontData):
        (WebCore::SimpleFontData::containsCharacters):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        (WebCore::SimpleFontData::setFont):
        * platform/graphics/mac/FontCacheMac.mm:
        (WebCore::FontCache::getFontDataForCharacters):
        * platform/graphics/mac/FontDataMac.mm: Renamed to SimpleFontDataMac.mm.
        * platform/graphics/mac/FontMac.mm:
        (WebCore::initializeATSUStyle):
        (WebCore::overrideLayoutOperation):
        (WebCore::ATSULayoutParameters::initialize):
        (WebCore::Font::drawGlyphs):
        * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
        (WebCore::GlyphPage::fill):
        * platform/graphics/mac/SimpleFontDataMac.mm: Copied from WebCore/platform/graphics/mac/FontDataMac.mm.
        (WebCore::initFontData):
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformDestroy):
        (WebCore::SimpleFontData::smallCapsFontData):
        (WebCore::SimpleFontData::containsCharacters):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        (WebCore::SimpleFontData::checkShapesArabic):
        * platform/graphics/qt/FontDataQt.cpp: Renamed to SimpleFontDataQt.cpp.
        * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
        (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
        * platform/graphics/qt/SimpleFontDataQt.cpp: Copied from WebCore/platform/graphics/qt/FontDataQt.cpp.
        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::FontCache::getFontDataForCharacters):
        * platform/graphics/win/FontDataWin.cpp: Renamed to
        SimpleFontDataWin.cpp.
        * platform/graphics/win/FontWin.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/win/GlyphPageTreeNodeWin.cpp:
        (WebCore::GlyphPage::fill):
        * platform/graphics/win/SimpleFontDataWin.cpp: Copied from WebCore/platform/graphics/win/FontDataWin.cpp.
        (WebCore::SimpleFontData::setShouldApplyMacAscentHack):
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformDestroy):
        (WebCore::SimpleFontData::smallCapsFontData):
        (WebCore::SimpleFontData::containsCharacters):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        (WebCore::SimpleFontData::scriptFontProperties):
        * platform/graphics/wx/FontCacheWx.cpp:
        (WebCore::FontCache::getFontDataForCharacters):
        * platform/graphics/wx/FontDataWx.cpp: Renamed to SimpleFontDataWx.cpp.
        * platform/graphics/wx/FontWx.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/wx/GlyphMapWx.cpp:
        (WebCore::GlyphPage::fill):
        * platform/graphics/wx/SimpleFontDataWx.cpp: Copied from WebCore/platform/graphics/wx/FontDataWx.cpp.
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformDestroy):
        (WebCore::SimpleFontData::smallCapsFontData):
        (WebCore::SimpleFontData::containsCharacters):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        * platform/mac/FileChooserMac.mm:
        * platform/mac/PopupMenuMac.mm:
        * platform/mac/WebCoreTextRenderer.mm:
        * platform/win/PopupMenuWin.cpp:
        * platform/win/UniscribeController.cpp:
        (WebCore::UniscribeController::advance):
        (WebCore::UniscribeController::itemizeShapeAndPlace):
        (WebCore::UniscribeController::shapeAndPlaceItem):
        (WebCore::UniscribeController::shape):
        * platform/win/UniscribeController.h:
        * svg/SVGFont.cpp:
        (WebCore::Font::drawGlyphsWithSVGFont):
        * svg/SVGFontElement.cpp:
        (WebCore::SVGFontElement::collectGlyphs):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::createFontData):
        * svg/SVGFontFaceElement.h:
        * svg/SVGGlyphElement.cpp:

2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Try to fix mac build by forcing SVGNames regeneration.

        * svg/svgtags.in:

2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Proposed build fix for wx.

        * webcore-base.bkl:

2008-01-07  Dan Bernstein  <mitz@apple.com>

        64-bit build fix

        * platform/graphics/mac/FontCustomPlatformData.cpp:
        (WebCore::FontCustomPlatformData::fontPlatformData): Have to use a
        cast here since FMGetFontFromATSFontRef() is not available on 64-bit.

2008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Oliver. Parts reviewed by Eric, David Hyatt & Dan & Alexey.
        Fixes: http://bugs.webkit.org/show_bug.cgi?id=15741 (REGRESSION: svg/W3C-SVG-1.1/fonts-elem-03-b.svg shows worse behavior on TOT)

        Display SVG Fonts, fill svg/SVGFont.cpp with life by adding all needed code to
        measure & render glyphs contained in SVG Fonts, including ligature lookup support.

        Implement floatWidth/selectionRectForText for SVG Fonts, fixing text selection.

        Support horiz-origin-x/y, horiz-adv-x, vert-adv-y, vert-origin-x/y & arabic-form.
        Implement simple algorithm to determine the arabic forms for a string (initial, isolated, medial, terminal).

        Removed drawGlyphsWithSVGFont - create a new function drawTextWithSVGFont instead.
        This doesn't involve creating/using a 'GlyphBuffer' object anymore, which is not
        required for SVG Fonts anyway (we already know all our offsets/advances/etc..)

        Don't call it from drawSimpleText anymore, but directly in drawText - as Dan suggested.

        <glyph> elements now register themselves in the SVGFontElement's glyph cache.
        (insertedIntoDocument / removedFromDocument take care of this)

        The cache is built once now, and is kept updated - it's not rebuild anymore
        on painting (!) - which was a crude hack for testing.

        W3C testcase which include SVG Fonts:
        svg/W3C-SVG-1.1/animate-elem-03-t.svg (Fixed, of course not the anim itself, but it's SVG Fonts usage)
        svg/W3C-SVG-1.1/animate-elem-24-t.svg (Ditto)
        svg/W3C-SVG-1.1/animate-elem-36-t.svg (Ditto)
        svg/W3C-SVG-1.1/animate-elem-40-t.svg (Ditto)
        svg/W3C-SVG-1.1/fonts-kern-01-t.svg (missing <vkern>/<hkern> support)
        svg/W3C-SVG-1.1/fonts-desc-02-t.svg (Fixed, tests CSS font matching based on font-variant attribute)
        svg/W3C-SVG-1.1/fonts-elem-01-t.svg (Fixed, basic SVG font test)
        svg/W3C-SVG-1.1/fonts-elem-02-t.svg (Fixed, accuracy test for embedded SVG font)
        svg/W3C-SVG-1.1/fonts-elem-05-t.svg (Fixed, checks horiz-origin-x support, note: W3C reference image is wrong)
        svg/W3C-SVG-1.1/fonts-elem-06-t.svg (Fixed, checks horiz-adv-x support)
        svg/W3C-SVG-1.1/fonts-glyph-02-t.svg (Fixed, checks arabic-form support)
        svg/W3C-SVG-1.1/fonts-glyph-03-t.svg (Fixed, checks glyph matching based on xml:lang)
        svg/W3C-SVG-1.1/masking-mask-01-b.svg (Fixed, SVG Fonts & masking)
        svg/W3C-SVG-1.1/pservers-grad-08-b.svg (Fixed, SVG Fonts & gradient on fill/stroke)
        svg/W3C-SVG-1.1/render-elems-06-t.svg (Fixed, simple 'fill' property test)
        svg/W3C-SVG-1.1/render-elems-07-t.svg (Fixed, simple 'stroke' property test - shows SVG Font interprets stroke-width in glyph coordinate system, as demanded by spec)
        svg/W3C-SVG-1.1/render-elems-08-t.svg (Fixed, simple 'fill' & 'stroke' property test)
        svg/W3C-SVG-1.1/render-groups-01-b.svg (missing <vkern>/<hkern> support)
        svg/W3C-SVG-1.1/render-groups-03-t.svg (Ditto)
        svg/W3C-SVG-1.1/text-altglyph-01-b.svg (no <altGlyph> support yet)
        svg/W3C-SVG-1.1/text-text-04-t.svg (Fixed, absolute placing of characters pixel perfect now)
        svg/W3C-SVG-1.1/text-text-05-t.svg (FIXME: problem with text-anchor)
        svg/W3C-SVG-1.1/text-text-06-t.svg (highlights problem with ligatures & absolute positioned characters)

        Questionable testcases:
        svg/W3C-SVG-1.1/fonts-glyph-04-t.svg (tests that glyph selection is done in the order in the definition of the font element.)
        I am not sure why this behaviour is desired, no comment given in spec - doesn't make much sense to me, ignoring it for now.

        Several other batik testcases fixed, which use SVG Fonts in combination with gradients & filters.

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule):
        (WebCore::CSSFontSelector::getFontData):
        * platform/graphics/Font.cpp:
        (WebCore::Font::lineSpacing):
        (WebCore::Font::xHeight):
        (WebCore::Font::canUseGlyphCache):
        (WebCore::Font::drawGlyphBuffer):
        (WebCore::Font::drawText):
        (WebCore::Font::floatWidth):
        (WebCore::Font::selectionRectForText):
        * platform/graphics/Font.h:
        (WebCore::TextRun::TextRun):
        (WebCore::TextRun::activePaintServer):
        (WebCore::TextRun::setActivePaintServer):
        * platform/graphics/FontData.cpp:
        (WebCore::FontData::lineSpacing):
        (WebCore::FontData::lineGap):
        (WebCore::FontData::xHeight):
        * platform/graphics/FontData.h:
        * platform/graphics/win/FontWin.cpp:
        (WebCore::Font::drawGlyphs):
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::relativeBBox):
        * rendering/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::paintCharacters):
        * rendering/SVGInlineTextBox.h:
        * rendering/SVGRootInlineBox.cpp:
        (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
        * svg/SVGFont.cpp:
        (WebCore::):
        (WebCore::processArabicFormDetection):
        (WebCore::charactersWithArabicForm):
        (WebCore::isCompatibleArabicForm):
        (WebCore::isCompatibleGlyph):
        (WebCore::svgFontAndFontFaceElementForFontData):
        (WebCore::SVGTextRunWalker::SVGTextRunWalker):
        (WebCore::SVGTextRunWalker::walk):
        (WebCore::floatWidthUsingSVGFontCallback):
        (WebCore::floatWidthMissingGlyphCallback):
        (WebCore::floatWidthOfSubStringUsingSVGFont):
        (WebCore::Font::floatWidthUsingSVGFont):
        (WebCore::drawTextUsingSVGFontCallback):
        (WebCore::drawTextMissingGlyphCallback):
        (WebCore::Font::drawTextUsingSVGFont):
        (WebCore::Font::selectionRectForTextUsingSVGFont):
        * svg/SVGFontElement.cpp:
        (WebCore::SVGFontElement::SVGFontElement):
        (WebCore::SVGFontElement::addGlyphToCache):
        (WebCore::SVGFontElement::removeGlyphFromCache):
        (WebCore::SVGFontElement::firstMissingGlyphElement):
        (WebCore::SVGFontElement::glyphIdentifiersForString):
        * svg/SVGFontElement.h:
        (WebCore::SVGFontElement::maximumHashKeyLength):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::createFontData):
        (WebCore::SVGFontFaceElement::rebuildFontFace):
        (WebCore::SVGFontFaceElement::associatedFontElement):
        * svg/SVGFontFaceElement.h:
        * svg/SVGGlyphElement.cpp:
        (WebCore::SVGGlyphElement::insertedIntoDocument):
        (WebCore::SVGGlyphElement::removedFromDocument):
        (WebCore::parseArabicForm):
        (WebCore::SVGGlyphElement::inheritUnspecifiedAttributes):
        (WebCore::SVGGlyphElement::buildGlyphIdentifier):
        * svg/SVGGlyphElement.h:
        (WebCore::SVGGlyphIdentifier::):
        (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
        (WebCore::SVGGlyphIdentifier::inheritedValue):
        (WebCore::SVGGlyphIdentifier::operator==):
        (WebCore::SVGGlyphElement::~SVGGlyphElement):

2008-01-07  David Hyatt  <hyatt@apple.com>

        Fix for bug 13095, CSS3 multiple backgrounds don't work on table cells.

        Reviewed by Dan

        * rendering/RenderBox.h:
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::paintBackgroundsBehindCell):

2008-01-07  Holger Freyther  <zecke@selfish.org>

        Reviewed by Alp Toker.

        * Fix indention

        * platform/gtk/ContextMenuGtk.cpp:
        (WebCore::ContextMenu::~ContextMenu):

2008-01-07  Holger Freyther  <zecke@selfish.org>

        Reviewed by Alp Toker.

        * The ContextMenuController is going to live longer than the ContextMenu. It is
        going to live as long as the WebCore::Page is around where the ContextMenu, specially
        in the case of a SubMenu, is gone before we popup the menu.

        * platform/gtk/ContextMenuGtk.cpp:
        (WebCore::menuItemActivated):
        (WebCore::ContextMenu::appendItem):

2008-01-07  Holger Freyther  <zecke@selfish.org>

        Reviewed by Alp Toker.

        * Fix SubMenu handling
        * Do not connect to the activated signal if we are a separator or submenu
        * Change our type from ActionType to SubMenuType when we have a submenu
        * Initialize the SubMenu

        * platform/gtk/ContextMenuGtk.cpp:
        (WebCore::ContextMenu::appendItem):
        * platform/gtk/ContextMenuItemGtk.cpp:
        (WebCore::ContextMenuItem::ContextMenuItem):
        (WebCore::ContextMenuItem::createNativeMenuItem):
        (WebCore::ContextMenuItem::setSubMenu):

2008-01-07  Holger Freyther  <zecke@selfish.org>

        Reviewed by Alp Toker.

        * Qt and Gtk must know if a ContextMenuItem is checkable. Add a new ContextMenuItemType for checkable
        actions.
        * Use this information in the Gtk platform to create a GtkCheckMenuItem when needed.
        * Update the ContextMenuController to accept CheckableActionTypes as well.
        * Change ContextMenu.cpp to use the CheckableActionType. The information if a item is checkable
        was extracted from ContextMenu::checkOrEnableIfNeeded.
        * Update the Qt and Windows port.


        * page/ContextMenuController.cpp:
        * platform/ContextMenu.cpp:
        (WebCore::createAndAppendFontSubMenu):
        (WebCore::createAndAppendSpellingAndGrammarSubMenu):
        (WebCore::createAndAppendSpellingSubMenu):
        (WebCore::createAndAppendWritingDirectionSubMenu):
        * platform/ContextMenuItem.h:
        * platform/gtk/ContextMenuItemGtk.cpp:
        (WebCore::ContextMenuItem::ContextMenuItem):
        (WebCore::ContextMenuItem::createNativeMenuItem):

2008-01-07  Luca Bruno  <lethalman88@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16745
        [GTK] Context menu doesn't feel or look native - no icons

        Use GTK+ stock icons for menu items where possible.

        * platform/gtk/ContextMenuItemGtk.cpp:
        (WebCore::gtkStockIDFromContextMenuAction):
        (WebCore::ContextMenuItem::createNativeMenuItem):
        (WebCore::ContextMenuItem::setAction):

2008-01-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        - make the ATSUI code path work with custom fonts rather than crash

        * platform/graphics/mac/FontCustomPlatformData.cpp:
        (WebCore::FontCustomPlatformData::fontPlatformData):
        * platform/graphics/mac/FontMac.mm:
        (WebCore::initializeATSUStyle):

2008-01-07  Thiago Macieira  <thiago.macieira@trolltech.com>

        Reviewed by Simon.

        abort() now emits the signals, so disconnect them before you abort()

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::abort):

2008-01-07  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Lars.

        Use a faster and safer way of flattening the form data.

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::start):

2008-01-07  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Lars.

        Ported of the network backend of the Qt platform to Qt 4.4's new networking API.

        * WebCore.pro:
        * platform/network/ResourceHandleInternal.h:
        * platform/network/qt/QNetworkReplyHandler.cpp: Added.
        (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
        (WebCore::QNetworkReplyHandler::abort):
        (WebCore::QNetworkReplyHandler::finish):
        (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
        (WebCore::QNetworkReplyHandler::forwardData):
        (WebCore::QNetworkReplyHandler::start):
        * platform/network/qt/QNetworkReplyHandler.h: Added.
        (WebCore::QNetworkReplyHandler::reply):
        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::cancel):
        (WebCore::ResourceHandle::loadResourceSynchronously):
        * platform/network/qt/ResourceRequest.h:
        (WebCore::ResourceRequest::ResourceRequest):
        * platform/network/qt/ResourceRequestQt.cpp: Added.
        (WebCore::ResourceRequest::toNetworkRequest):
        * platform/qt/MIMETypeRegistryQt.cpp:
        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
        * platform/qt/PlugInInfoStoreQt.cpp:
        (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
        (WebCore::PlugInInfoStore::pluginCount):
        (WebCore::PlugInInfoStore::pluginNameForMIMEType):

2008-01-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Lars.

        * Remove m_dirtyRegion as it is not used as we pass every dirty region
        directly to the ChromeClient

        * platform/qt/ScrollViewQt.cpp:
        (WebCore::ScrollView::paint):

2008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Oliver.

        Small CG paint server cleanups - use more GraphicsContext method where possible.

        * svg/graphics/cg/CgSupport.cpp:
        (WebCore::applyStrokeStyleToContext):
        (WebCore::strokeBoundingBox):
        * svg/graphics/cg/CgSupport.h:
        * svg/graphics/cg/RenderPathCg.cpp:
        (WebCore::RenderPath::strokeContains):
        * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
        (WebCore::SVGPaintServerGradient::setup):
        * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
        (WebCore::SVGPaintServerPattern::setup):
        * svg/graphics/cg/SVGPaintServerSolidCg.cpp:
        (WebCore::SVGPaintServerSolid::setup):

2008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Dan.

        Use new helper function isArabicChar() - which also calls ublock_getCode() == UBLOCK_ARABIC on mac.

        * platform/graphics/mac/FontMac.mm:
        (WebCore::ATSULayoutParameters::initialize):

2008-01-06  Andrew Wellington  <proton@wiretapped.net>

        Reviewed by Darin.
        
        DOMRange doesn't correctly re-size when inserting items (Acid3)
        http://bugs.webkit.org/show_bug.cgi?id=16764
        
        Update the offset for the range when inserting items into the range.

        Test: fast/dom/Range/range-modifycontents.html

        * dom/Range.cpp:
        (WebCore::Range::insertNode):

2008-01-06  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=16731
        Incorrect node type for whitespace when setting innerHTML in an XHTML document

        Test: fast/dom/xhtml-fragment-whitespace.xhtml

        * dom/XMLTokenizer.cpp: (WebCore::parseXMLDocumentFragment):
        Use balancedCharactersHandler for ignorable whitespace.

2008-01-06  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=16701
        <rdar://problem/5666580> REGRESSION: URL-encoded space (%20) in livejournal url
        causes page load error

        Test: http/tests/misc/location-with-space.php

        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdatePlatformRequest): Do update its URL, too.

2008-01-06  Andrew Wellington  <proton@wiretapped.net>

        Reviewed by Darin.
        
        DOMRange.cloneContents does not work (Acid3 bug)
        http://bugs.webkit.org/show_bug.cgi?id=16748
        
        When cloning an empty range, return an empty DocmentFragment instead of
        null or undefined.

        Test: fast/dom/Range/range-clone-empty.html

        * dom/Range.cpp:
        (WebCore::Range::processContents):

2008-01-06  Luca Bruno  <lethalman88@gmail.com>

        Reviewed by Alp Toker.

        Remove curl handles immediately if the timer is not running.

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::cancel):

2008-01-06  Alp Toker  <alp@atoker.com>

        Reviewed by Eric.

        Cairo canvas refcounting fix. Reference the surface in the constructor
        to match its destruction in the destructor.

        Fixes a crash triggered by leaving this page:
          http://philip.html5.org/tests/canvas/misc/globalalpha-pattern.html

        * html/CanvasPattern.cpp:
        (WebCore::CanvasPattern::CanvasPattern):

2008-01-06  Eric Seidel  <eric@webkit.org>

        Reviewed by darin.

        Make attr selectors case-insensitive for certain HTML attributes
        http://bugs.webkit.org/show_bug.cgi?id=15470

        Test: fast/css/html-attr-case-sensitivity.html

        * css/CSSStyleSelector.cpp:
        (WebCore::addLocalNameToSet):
        (WebCore::createHtmlCaseInsensitiveAttributesSet):
        (WebCore::htmlAttributeHasCaseInsensitiveValue):
        (WebCore::CSSStyleSelector::checkOneSelector):

2008-01-06  Eric Seidel  <eric@webkit.org>

        Reviewed by Sam.

        Fix :checked matching type='text' and add test case
        http://bugs.webkit.org/show_bug.cgi?id=16750

        Test: fast/dom/HTMLInputElement/checked-pseudo-selector.html

        * html/HTMLInputElement.h: isChecked() can only be true for RADIO or CHECKBOX

2008-01-05  Sam Weinig  <sam@webkit.org>

        Reviewed by Eric Seidel.

        Patch for http://bugs.webkit.org/show_bug.cgi?id=16758
        ASSERT when using TreeWalker methods for a current node outside of the root (Acid3)

        - Ensure that returned nodes are within the root node, or return 0, in adherence with the spec.

        Test: fast/dom/TreeWalker/TreeWalker-currentNode.html

        * dom/TreeWalker.cpp:
        (WebCore::TreeWalker::parentNode):
        (WebCore::TreeWalker::firstChild):
        (WebCore::TreeWalker::lastChild):
        (WebCore::TreeWalker::previousSibling):
        (WebCore::TreeWalker::nextSibling):
        (WebCore::TreeWalker::previousNode):
        (WebCore::TreeWalker::nextNode):

2008-01-04  Oliver Hunt  <oliver@apple.com>

        Reviewed by Beth Dakin.

        Fix bounds computation bugs responsible for http://bugs.webkit.org/show_bug.cgi?id=16015
        and other image repaint bugs.

        We now cache the full local bounds for the <image> element, as otherwise certain
        combinations of attribute changes could result in incorrect dirty rects.
        Additionally we no longer use any of the integer bounds fields on RenderObject for
        determining repaint bounds (this was the principle cause of bug #16015).

        I also removed the outline painting code as it was both wrong, and not correctly
        repainted.  I feel safe doing this as no other browser or viewer supports outline
        properties on svg elements.

        I was unable to make a testcase for this unfortunately, despite seemingly deterministic 
        behaviour :(

        * rendering/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::layout):
        (WebCore::RenderSVGImage::paint):
        (WebCore::RenderSVGImage::nodeAtPoint):
        (WebCore::RenderSVGImage::calculateAbsoluteBounds):
        * rendering/RenderSVGImage.h:

2008-01-04  Beth Dakin  <bdakin@apple.com>

        Reviewed by Oliver.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=16704 input with 
        type="hidden" matches :enabled/:disabled (Acid3 bug)

        Prevent :enabled and :disabled from applying to input type="hidden" 

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkOneSelector): Rather than 
        allowing :enabled and :disabled to apply to all controls, only 
        allow it to apply to non-"hidden" controls
        * dom/Element.h:
        (WebCore::Element::isInputTypeHidden): 
        * html/HTMLInputElement.h:
        (WebCore::HTMLInputElement::isInputTypeHidden):

2008-01-04  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        - Match the spec when calling getFloatValue, getStringValue, getCounterValue,
          getRectValue and getRGBColorValue of CSSPrimitiveValue by throwing exceptions
          if the type of the CSSPrimitiveValue is not the same as the type requested.
        - Fix the intermittent assertion failure seen in svg/css/glyph-orientation-rounding-test.xhtml

        Test: fast/css/CSSPrimitiveValue-exceptions.html

        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::getDoubleValue):
        (WebCore::CSSPrimitiveValue::getStringValue):
        (WebCore::CSSPrimitiveValue::getCounterValue):
        (WebCore::CSSPrimitiveValue::getRectValue):
        (WebCore::CSSPrimitiveValue::getRGBColorValue):
        (WebCore::CSSPrimitiveValue::getPairValue):
        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::getFloatValue):
        (WebCore::CSSPrimitiveValue::getIntValue):
        (WebCore::CSSPrimitiveValue::getCounterValue):
        (WebCore::CSSPrimitiveValue::getRectValue):
        (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
        * css/CSSPrimitiveValue.idl:

2008-01-04  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin.
        
        Windows part of <rdar://problem/5647034>
        Media tests crash if an old version of QuickTime is installed

        Check QuickTime version on Windows too.

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::isAvailable):
        * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
        (WebCore::MediaPlayerPrivate::isAvailable):
        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
        (WebCore::MediaPlayerPrivate::isAvailable):
        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
        * platform/graphics/win/QTMovieWin.cpp:
        (QTMovieWin::initializeQuickTime):

2008-01-04  Darin Adler  <darin@apple.com>

        Reviewed by Maciej and Alice.

        - fix <rdar://problem/4404302> Borders where there should be none (canadasmountains.com)

        Test: fast/images/border.html

        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseMappedAttribute): Change the code that handles cases
        where the border value is not a number to use the value "0" for the border width instead
        of not setting the border width and style at all. This matches other browsers, and makes
        more sense.

2008-01-04  Antti Koivisto  <antti@apple.com>

        Try to fix 64-bit build

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::isAvailable):

2008-01-04  Stephanie  <slewis@apple.com>

        Reviewed by Oliver.

        WARNING: NO TEST CASES ADDED OR CHANGED

        Fix another stringImpl leak.

        * platform/text/StringImpl.cpp: remove an extra allocation
        (WebCore::StringImpl::StringImpl):

2008-01-04  Alice Liu  <alice.liu@apple.com>

        Reviewed by Mitz.

        * platform/graphics/win/FontCacheWin.cpp:
        fix loop condition that was causing crash

2008-01-04  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben.

        <rdar://problem/5671059> Always show the Timeline and Console buttons in the Inspector

        * page/inspector/inspector.css: Remove styles related to the toggle button
          and make the area always visible. 
        * page/inspector/inspector.html: Remove the toggle button.
        * page/inspector/inspector.js: Remove code to toggle the status area.

2008-01-04  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Adam Roben.

        Temporarily restore BackwardDelete for Windows nightlies to work correctly.

        * editing/EditorCommand.cpp: (WebCore::CommandEntry::):

2008-01-04  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        <rdar://problem/5611712> xsl:sort does not use a case folding sort, and the 'case-order' attribute is ignored (16077)

        Enable the fix on Windows.

        * xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::transformToString):
        Always set a custom sort function, even if it doesn't implement proper collation on the platform.

        * xml/XSLTUnicodeSort.cpp:
        (WebCore::xsltUnicodeSortFunction):
        * xml/XSLTUnicodeSort.h:
        If the platform does not use ICU, or ICU has collation support disabled, fall back to binary comparison.

2008-01-04  Antti Koivisto  <antti@apple.com>

        Fix build.

        * bindings/js/JSHTMLElementWrapperFactory.cpp:

2008-01-04  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin.
        
        Partial fix for <rdar://problem/5647034>
        Media tests crash if an old version of QuickTime is installed

        Disable media support if QuickTime is not current enough (>=7.3).
        
        Windows patch coming soon.

        * bindings/js/JSHTMLElementWrapperFactory.cpp:
        (WebCore::createJSHTMLWrapper):
        * bindings/js/kjs_window.cpp:
        (KJS::Window::getValueProperty):
        * html/HTMLElementFactory.cpp:
        (WebCore::audioConstructor):
        (WebCore::videoConstructor):
        (WebCore::sourceConstructor):
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::isAvailable):
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::isAvailable):

2008-01-04  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5604409> JavaScript privilege escalation when Web Inspector accesses page unsafely (16011)

        Check if the property is a getter before asking for the value.
        If the property is a getter, we no longer show the value.

        * page/inspector/PropertiesSidebarPane.js:
        * page/inspector/inspector.css:

2008-01-04  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix synthetic bold and italic on Windows

        Covered by an existing test.

        * platform/graphics/win/FontPlatformDataWin.cpp:
        (WebCore::FontPlatformData::FontPlatformData):

2008-01-04  Alp Toker  <alp@atoker.com>

        GTK+ autotools build fix. Terminate empty rules.

        * GNUmakefile.am:

2008-01-04  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        Remove most dependencies of Widget/ScrollView onto native QWidgets.

        This also brings the code closer in line with the Windows code. Seems
        to work nicely on first try :)

        * page/qt/FrameQt.cpp:
        (WebCore::Frame::createScriptInstanceForWidget):
        * platform/Widget.h:
        * platform/qt/PlatformScreenQt.cpp:
        (WebCore::screenDepth):
        (WebCore::screenDepthPerComponent):
        (WebCore::screenIsMonochrome):
        (WebCore::screenRect):
        * platform/qt/PlatformScrollBarQt.cpp:
        (WebCore::PlatformScrollbar::thumbPosition):
        (WebCore::PlatformScrollbar::handleMouseMoveEvent):
        * platform/qt/ScrollViewQt.cpp:
        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
        (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
        (WebCore::ScrollView::updateContents):
        (WebCore::ScrollView::update):
        (WebCore::ScrollView::scrollRectIntoViewRecursively):
        (WebCore::ScrollView::updateScrollbars):
        (WebCore::ScrollView::addChild):
        (WebCore::ScrollView::removeChild):
        (WebCore::ScrollView::paint):
        * platform/qt/WidgetQt.cpp:
        (WebCore::WidgetPrivate::WidgetPrivate):
        (WebCore::WidgetPrivate::~WidgetPrivate):
        (WebCore::Widget::frameGeometry):
        (WebCore::Widget::setFrameGeometry):
        (WebCore::Widget::setCursor):
        (WebCore::Widget::show):
        (WebCore::Widget::hide):
        (WebCore::Widget::nativeWidget):
        (WebCore::Widget::setNativeWidget):
        (WebCore::Widget::suppressInvalidation):
        (WebCore::Widget::setSuppressInvalidation):
        (WebCore::Widget::invalidateRect):
        (WebCore::Widget::topLevel):
        (WebCore::Widget::containingWindow):

2008-01-04  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        make QWebPage a QObject and get things to compile.

        Nothing works currently though.

        * platform/qt/ScrollViewQt.cpp:
        (WebCore::ScrollView::updateContents):
        (WebCore::ScrollView::update):
        * platform/qt/WidgetQt.cpp:
        (WebCore::Widget::qwidget):
        (WebCore::Widget::invalidateRect):

2008-01-04  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=16667
        make -j is failing with the autotools based system

        Support parallel code generation. Nearly every use of explicit
        multiple targets was a potential concurrency bug, though in practice
        the bison rules were the first to be noticed because they took longer
        to complete and broke the build immediately.

        * GNUmakefile.am:

2008-01-04  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Re-use a single static dummy surface rather than creating and
        destroying a surface for each CairoPath.

        * platform/graphics/cairo/CairoPath.h:
        (WebCore::CairoPath::CairoPath):

2008-01-04  Mark Rowe  <mrowe@apple.com>

        Tiger build fix.

        * platform/Threading.h: The OSAtomic functions take non-volatile pointers on Tiger.

2008-01-03  Mark Rowe  <mrowe@apple.com>

        Reviewed by Maciej Stachowiak.

        Use platform-provided atomic operations in place of inline assembly to
        increase portability.

        * platform/Threading.h:
        (WebCore::atomicIncrement):
        (WebCore::atomicDecrement):

2008-01-03  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej.

        Fix <rdar://problem/5668517> REGRESSION: Major under painting issues in SVG (carto.net dock example)

        We need to cache the absolute bounds of the <image>,
        as there's no reliable way to recompute the old bounding
        box one we have started layout.

        * rendering/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::layout):
        (WebCore::RenderSVGImage::calculateAbsoluteBounds):
        * rendering/RenderSVGImage.h:

2008-01-03  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Support building in Scratchbox, which has a version of make that fails
        on wildcard syntax. Use a vpath to match IDL files instead.

        * GNUmakefile.am:

2008-01-03  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Darin.

        <rdar://problem/5504775> PDF page will not load first time after Adobe
        Reader install, unless browser is relaunched

        Refresh and re-search the plugin database if the MIME type is not
        registered.

        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
        * plugins/win/PluginDatabaseWin.h:

2008-01-03  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16548
          <rdar://problem/5659452> REGRESSION(r28810): Font style and sizes are weird for Japanese text

        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::linkedFontEnumProc): Added. This callback is used to fetch
        a valid LOGFONT for a given family.
        (WebCore::getLinkedFonts): Added. Returns a vector of font families
        linked to the given font family by the Windows registry key
        HKLM\Software\...\FontLink\SystemLink. The registry values typically
        differ based on the installed language version of Windows.
        (WebCore::FontCache::getFontDataForCharacters): Changed to not use MLang
        font mapping, which is Windows code page based, except for characters in
        the range U+2000..U+200F. Instead, this function gets the font Uniscribe
        would use for the character. However, that font might not actually
        contain the character, in which case GDI font linking would substitute a
        different font. Therefore, this function walks the linked font list
        until it finds a font that actually contains the character.

2008-01-03  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16723
          tables/mozilla/bugs/bug30418.html test failing due to problems updating dynamic border rules

        Test: fast/table/border-changes.html

        * html/HTMLTableElement.h:
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::parseMappedAttribute): Check the border type before and after
        parsing attributes, rather than doing this only for the rules attribute.
        (WebCore::HTMLTableElement::cellBorders): Added.
        (WebCore::HTMLTableElement::getSharedCellDecl): Changed to use cellBorders to factor out the
        rule about what type of borders to use.

2008-01-02  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin.

        Pass the prototype of WebCore JS objects up the constructor chain
        rather than explicitly setting using setPrototype.  This removes many
        redundant settings of the prototype on construction.  To avoid a CG 
        hazard, the prototype must be constructed before calling the
        constructor of the JS object.

        - JS objects that inherit from DOMObject, which all bindings objects
          (except Window) do, now can't implicitly have a jsNull prototype, but
          must explicitly pass it up the construction chain.

        * bindings/js/JSCSSRuleCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSCSSValueCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSDocumentCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSEventCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSEventTargetNode.cpp:
        (WebCore::JSEventTargetNode::JSEventTargetNode):
        * bindings/js/JSEventTargetNode.h:
        * bindings/js/JSHTMLAllCollection.h:
        (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
        * bindings/js/JSHTMLAudioElementConstructor.cpp:
        (WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::getNamedItems):
        (WebCore::toJS):
        * bindings/js/JSHTMLElementWrapperFactory.cpp:
        (WebCore::createJSHTMLWrapper):
        * bindings/js/JSHTMLFormElementCustom.cpp:
        (WebCore::JSHTMLFormElement::nameGetter):
        * bindings/js/JSHTMLInputElementBase.cpp:
        (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
        * bindings/js/JSHTMLInputElementBase.h:
        * bindings/js/JSHTMLOptionElementConstructor.cpp:
        (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
        * bindings/js/JSLocation.cpp:
        (WebCore::JSLocation::JSLocation):
        * bindings/js/JSLocation.h:
        * bindings/js/JSNamedNodesCollection.cpp:
        (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
        * bindings/js/JSNamedNodesCollection.h:
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSSVGElementWrapperFactory.cpp:
        (WebCore::createJSSVGWrapper):
        * bindings/js/JSSVGPathSegCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSStyleSheetCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSXMLHttpRequest.cpp:
        (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
        (KJS::JSXMLHttpRequestConstructorImp::construct):
        (KJS::JSXMLHttpRequest::JSXMLHttpRequest):
        * bindings/js/JSXMLHttpRequest.h:
        * bindings/js/JSXSLTProcessor.cpp:
        (KJS::JSXSLTProcessor::JSXSLTProcessor):
        (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
        (KJS::XSLTProcessorConstructorImp::implementsConstruct):
        (KJS::XSLTProcessorConstructorImp::construct):
        * bindings/js/JSXSLTProcessor.h:
        * bindings/js/kjs_binding.h:
        (KJS::DOMObject::DOMObject):
        (KJS::cacheDOMObject):
        (KJS::cacheSVGDOMObject):
        * bindings/js/kjs_css.cpp:
        (WebCore::JSRGBColor::JSRGBColor):
        (WebCore::getJSRGBColor):
        * bindings/js/kjs_css.h:
        * bindings/js/kjs_events.cpp:
        (WebCore::JSClipboard::JSClipboard):
        (WebCore::toJS):
        * bindings/js/kjs_events.h:
        * bindings/js/kjs_html.cpp:
        (WebCore::ImageConstructorImp::ImageConstructorImp):
        * bindings/js/kjs_navigator.cpp:
        (KJS::Navigator::Navigator):
        (KJS::PluginBase::PluginBase):
        * bindings/js/kjs_navigator.h:
        * bindings/js/kjs_window.cpp:
        (KJS::Window::Window):
        (KJS::Window::location):
        (KJS::Window::getValueProperty):
        * bindings/js/kjs_window.h:
        * bindings/scripts/CodeGeneratorJS.pm:

2008-01-03  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Alp.

        -This is from http://bugs.webkit.org/show_bug.cgi?id=16115

        Change the Gtk ContextMenuItem code to generate the GtkMenuItem
        or GtkCheckMenuItem on the fly. Currently we will create a
        GtkCheckMenuItem if the ContextMenuItem has been checked. What needs
        to be done is to change WebCore to tell the platform code if an item
        is checkable or not.

        * platform/ContextMenuItem.h:
        (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
        * platform/gtk/ContextMenuGtk.cpp:
        (WebCore::ContextMenu::appendItem):
        * platform/gtk/ContextMenuItemGtk.cpp:
        (WebCore::ContextMenuItem::ContextMenuItem):
        (WebCore::ContextMenuItem::~ContextMenuItem):
        (WebCore::ContextMenuItem::createNativeMenuItem):
        (WebCore::ContextMenuItem::releasePlatformDescription):
        (WebCore::ContextMenuItem::type):
        (WebCore::ContextMenuItem::setType):
        (WebCore::ContextMenuItem::action):
        (WebCore::ContextMenuItem::setAction):
        (WebCore::ContextMenuItem::platformSubMenu):
        (WebCore::ContextMenuItem::setSubMenu):
        (WebCore::ContextMenuItem::setChecked):

2008-01-03  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Adam Roben.

        - update the project hierarchy to match the on-disk organization of
          the platform directory.

        * WebCore.vcproj/WebCore.vcproj:

2008-01-03  Adam Roben  <aroben@apple.com>

        Fix a buffer overrun and a leak introduced in r29098

        Reviewed by Mark.

        * platform/text/StringImpl.cpp:
        (WebCore::StringImpl::StringImpl): Only allocate one buffer, and make
        it be big enough to hold the string contents plus the null terminator.

2008-01-03  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Lars.

        Added the first revision of QWebView and started moving functionality from QWebPave over to QWebView and QWebFrame.

        * WebCore.pro:

2008-01-03  Alp Toker  <alp@atoker.com>

        Suggested by Mark Rowe.

        Fix indentation and remove trailing whitespace.

        * platform/network/curl/ResourceHandleManager.cpp:

2008-01-03  Luca Bruno  <lethalman88@gmail.com>

        Reviewed by Alp Toker.

        Fix HTTP POST-based logins to sites like Facebook, GMail by ensuring
        that the two POST methods don't conflict.

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::setupPOST):

2008-01-02  Darin Adler  <darin@apple.com>

        - touched some files to try to get the Windows buildbot building again

2008-01-02  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - fix small caps rendering

        Covered by an existing test.

        * platform/graphics/win/FontDataWin.cpp:
        (WebCore::FontData::smallCapsFontData):

2008-01-02  Antti Koivisto  <antti@apple.com>

        Reviewed by Oliver.

        Calculate video position and size within the renderer box in WebCore. This
        way the aspect ratio calculation is not needed in each MediaPlayer implementation.
        
        This fixes video aspect ratio on Windows.
        
        Covered by an existing pixel test.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::createQTMovieView):
        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::videoBox):
        (WebCore::RenderVideo::paintReplaced):
        (WebCore::RenderVideo::updatePlayer):
        * rendering/RenderVideo.h:

2008-01-02  Ada Chan  <adachan@apple.com>

        Fix windows build.

        * WebCore.vcproj/WebCore.vcproj:

2008-01-02  John Sullivan  <sullivan@apple.com>

        Reviewed by Dan Bernstein
        
        - fixed <rdar://problem/5579010> REGRESSION: Safari inserts newlines in tab names when U+2028 is present

        * loader/DocumentLoader.cpp:
        (WebCore::canonicalizedTitle):
        in the code that replaces control characters with white space, also replace the unicode line separator
        and paragraph separator characters

2008-01-02  Darin Adler  <darin@apple.com>

        - fix buffer overruns seen on buildbot

        * platform/text/StringImpl.cpp:
        (WebCore::countCharacter): Added this.
        (WebCore::StringImpl::toCoordsArray): Use countCharacter instead of incorrect find expression.
        (WebCore::StringImpl::toLengthArray): Ditto.
        (WebCore::StringImpl::replace): Added assertions.

2008-01-02  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16657
          Acid3 failure since table.caption and table.thead do not work for nodes added by appendChild
        - fix http://bugs.webkit.org/show_bug.cgi?id=16659
          Acid3 expects HTMLTableElement.rows to include a <tr> element that is an immediate child of the <table>

        Tests: dom/html/level2/html/HTMLCollection07.html
               dom/html/level2/html/HTMLCollection08.html
               dom/html/level2/xhtml/HTMLCollection07.xhtml
               dom/html/level2/xhtml/HTMLCollection08.xhtml
               fast/dom/HTMLTableElement/early-acid3-65-excerpt.html
               fast/dom/HTMLTableElement/early-acid3-66-excerpt.html

        * GNUmakefile.am: Added HTMLTableRowsCollection.
        * WebCore.pro: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * WebCoreSources.bkl: Ditto.

        * dom/XMLTokenizer.cpp: Took out stray include.

        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::itemAfter): Removed all the table rows code, since we now use
        a separate class for that collection. Also got rid of the distinct types for custom collections
        that don't need them (use Other for both).
        * html/HTMLCollection.h: Also made firstItem non-virtual because it doesn't need to be virtual.

        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::HTMLFormCollection): Use Other instead of FormElements
        for the HTMLCollection type.

        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::HTMLTableElement): Eliminated m_head, m_foot, m_firstBody, and m_caption.
        (WebCore::HTMLTableElement::caption): Added non-inline version. Finds the caption rather than
        keeping a pointer to it.
        (WebCore::HTMLTableElement::setCaption): Rewrote.
        (WebCore::HTMLTableElement::tHead): Ditto.
        (WebCore::HTMLTableElement::setTHead): Ditto.
        (WebCore::HTMLTableElement::tFoot): Ditto.
        (WebCore::HTMLTableElement::setTFoot): Ditto.
        (WebCore::HTMLTableElement::createTHead): Ditto.
        (WebCore::HTMLTableElement::deleteTHead): Ditto.
        (WebCore::HTMLTableElement::createTFoot): Ditto.
        (WebCore::HTMLTableElement::deleteTFoot): Ditto.
        (WebCore::HTMLTableElement::createCaption): Ditto.
        (WebCore::HTMLTableElement::deleteCaption): Ditto.
        (WebCore::HTMLTableElement::lastBody): Added.
        (WebCore::HTMLTableElement::insertRow): Rewrote to use a loop based on code in HTMLTableRowsCollection.
        This is different from the old code mainly in how it handles rows outside any section.
        (WebCore::HTMLTableElement::deleteRow): Ditto.
        (WebCore::HTMLTableElement::addChild): Removed code to set the various members. Keeping pointers to
        these was a possible source of serious bugs too, including crashes with stale pointers, although I
        didn't write any test cases to prove those bugs existed.
        (WebCore::HTMLTableElement::parseMappedAttribute): Changed the rules code to visit all cells, not
        just the cells of the first body. I believe this fixed rendering on some table tests. I think the code
        visits too many cells and also the use of recursion is overkill, but I didn't try to fix that.
        (WebCore::HTMLTableElement::rows): Changed to use the new HTMLTableRowsCollection.
        * html/HTMLTableElement.h: Changed functions to return PassRefPtr, which can be important if strange
        things like DOM mutation events take things ot of the tree before they are safely referenced by
        JavaScript wrappers. Also changed functions to take PassRefPtr and added exceptions. Removed unneeded
        firstTBody and setTBody functions and childrenChanged function override, as well as unused Rules and
        Frame enums. Removed m_head, m_foot, m_firstBody, and m_caption, and added lastBody function. Removed
        unneeded friend declaration for HTMLTableCellElement.
        * html/HTMLTableElement.idl: Allow the setteres for caption, tHead, and tFoot to raise exceptions.

        * html/HTMLTableRowsCollection.cpp: Added. Implements the HTML 5 rule for which rows are in the
        collection in which order.
        * html/HTMLTableRowsCollection.h: Added.

        * loader/FTPDirectoryDocument.cpp:
        (WebCore::FTPDirectoryTokenizer::appendEntry): Use the standard insertRow function instead of
        coming up with our own way of inserting a row. Simplifies things -- we can remove the code to
        create a tbody element.

2008-01-02  Darin Adler  <darin@apple.com>

        Reviewed by Alice and Tim.

        - try to fix GTK and Qt builds

        * platform/win/ScrollViewWin.cpp:
        (WebCore::ScrollView::scroll): Improve logic slightly for the case of
        vertical scrolling when there's no vertical scroll bar.

        * platform/gtk/ScrollViewGtk.cpp:
        (WebCore::ScrollView::scroll): Copy the code from Windows. Maybe this
        should be factored differently.
        * platform/qt/ScrollViewQt.cpp:
        (WebCore::ScrollView::scroll): Ditto.

2008-01-02  Darin Adler  <darin@apple.com>

        Reviewed by Anders.

        - http://bugs.webkit.org/show_bug.cgi?id=16712
          change StringImpl to take and return PassRefPtr instead of raw pointers

        Also eliminated use of const StringImpl. Since StringImpl is immutable there
        is no distinction between a const and non-const one at the moment.

        * WebCore.base.exp: Updated.

        * css/CSSHelper.cpp:
        (WebCore::parseURL): Make String directly, not by making a StringImpl.
        * dom/Attr.cpp:
        (WebCore::Attr::createTextChild): Convert AtomicString to String with domString,
        not via StringImpl.
        (WebCore::Attr::setValue): Remove unneed call to impl() when passing a String
        to a function that takes a String.

        * dom/CDATASection.cpp: Removed unused constructor.
        (WebCore::CDATASection::cloneNode): Added a now-needed .get().
        (WebCore::CDATASection::createNew): Changed function to take a PassRefPtr.
        * dom/CDATASection.h:

        * dom/CharacterData.cpp:
        (WebCore::CharacterData::CharacterData): Removed unneeded initialization and
        ref() now that the string is a RefPtr. Also updated to not call "new StringImpl".
        (WebCore::CharacterData::~CharacterData): Removed unneeded deref() since it's
        a RefPtr.
        (WebCore::CharacterData::setData): More of that.
        (WebCore::CharacterData::substringData): Ditto.
        (WebCore::CharacterData::appendData): Ditto.
        (WebCore::CharacterData::insertData): Ditto.
        (WebCore::CharacterData::deleteData): Ditto.
        (WebCore::CharacterData::replaceData): Ditto.
        (WebCore::CharacterData::nodeValue): Ditto.
        (WebCore::CharacterData::dispatchModifiedEvent): Ditto.
        (WebCore::CharacterData::dump): Ditto.
        * dom/CharacterData.h: Changed to use a RefPtr. I could have used a String
        instead, but since String adds extra branches to handle 0, I figured it was
        more conservative to just use RefPtr. Later it would be good to figure out
        which is preferred style and be more consistent. Maybe we'll phase out
        StringImpl, or maybe we'll go the other way and use it more since it can be
        more efficient.

        * dom/DOMImplementation.cpp:
        (WebCore::addString): Changed set to use String rather than StringImpl.
        (WebCore::isSVG10Feature): Ditto.
        (WebCore::isSVG11Feature): Ditto.
        (WebCore::DOMImplementation::createDocument): Replaced custom code to
        find a colon with a call to String::find.

        * dom/Range.cpp:
        (WebCore::Range::insertNode): Updated since the result of splitText is now
        a PassRefPtr.

        * dom/Text.cpp:
        (WebCore::Text::splitText): Updated since str is now a RefPtr. Also made the
        result of this function be a PassRefPtr.
        (WebCore::Text::createRenderer): Ditto.
        (WebCore::Text::createNew): Made the parameter and result both be PassRefPtr.
        * dom/Text.h:

        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::nodeName): Use String::upper.

        * html/HTMLInputElement.cpp:
        (WebCore::numGraphemeClusters): Remove now-unneeded const.
        (WebCore::numCharactersInGraphemeClusters): Ditto.

        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::processToken): Updated for function name change.

        * platform/text/AtomicString.cpp:
        (WebCore::CStringTranslator::translate): Updated since there is no longer
        a constructor that takes a string.

        * platform/text/PlatformString.h: Added new constructors that take
        PassRefPtr and RefPtr. Removed misleading comment.

        * platform/text/String.cpp:
        (WebCore::String::String): Changed to use StringImpl::create, which handles
        the empty string automatically.
        (WebCore::String::append): Ditto.
        (WebCore::String::charactersWithNullTermination): Similar.
        (WebCore::String::format): Ditto.

        * platform/text/StringHash.h: Took out unneeded const.

        * platform/text/StringImpl.cpp:
        (WebCore::deleteUCharVector): Changed to take a const pointer since the
        buffers are now const UChar buffers.
        (WebCore::StringImpl::StringImpl): Removed some constructors. Got rid of the
        separate init functions. The constructors are now private and used only in
        the create functions and one or two other places.
        (WebCore::StringImpl::containsOnlyWhitespace): Removed now-meaningless const.
        (WebCore::StringImpl::substring): Ditto. Also changed return value to be a
        PassRefPtr.
        (WebCore::StringImpl::characterStartingAt): Ditto.
        (WebCore::StringImpl::toLength): Ditto.
        (WebCore::StringImpl::toCoordsArray): Ditto.
        (WebCore::StringImpl::toLengthArray): Ditto.
        (WebCore::StringImpl::isLower): Ditto.
        (WebCore::StringImpl::lower): Ditto. Changed to use Vector and adopt so we
        don't have to use new directly here. Makes empty string handling more consistent.
        (WebCore::StringImpl::upper): Ditto.
        (WebCore::StringImpl::secure): Ditto.
        (WebCore::StringImpl::foldCase): Ditto.
        (WebCore::StringImpl::stripWhiteSpace): Ditto.
        (WebCore::StringImpl::simplifyWhiteSpace): Ditto.
        (WebCore::StringImpl::capitalize): Ditto.
        (WebCore::StringImpl::toInt): Removed now-meaningless const.
        (WebCore::StringImpl::toInt64): Ditto.
        (WebCore::StringImpl::toUInt64): Ditto.
        (WebCore::StringImpl::toDouble): Ditto.
        (WebCore::StringImpl::toFloat): Ditto.
        (WebCore::StringImpl::find): Ditto.
        (WebCore::StringImpl::reverseFind): Ditto.
        (WebCore::StringImpl::endsWith): Ditto.
        (WebCore::StringImpl::replace): Ditto.
        (WebCore::equal): Ditto.
        (WebCore::equalIgnoringCase): Ditto.
        (WebCore::StringImpl::ascii): Ditto.
        (WebCore::StringImpl::defaultWritingDirection): Ditto.
        (WebCore::StringImpl::createStrippingNullCharacters): Ditto.
        (WebCore::StringImpl::adopt): Added special case so this uses the shared
        empty string like other functions. Also optimized the common case where the
        vector happens to already have the right size so we don't do a fastRealloc
        at all in those cases.
        (WebCore::StringImpl::create): Added. These are now the public functions for
        creating new StringImpl objects. They all implement the shared empty string.
        (WebCore::StringImpl::createWithTerminatingNullCharacter):
        * platform/text/StringImpl.h:

        * platform/text/cf/StringCF.cpp:
        (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
        * platform/text/cf/StringImplCF.cpp:
        (WebCore::StringImpl::createCFString): Removed now-obsolete const.
        * platform/text/mac/StringImplMac.mm:
        (WebCore::StringImpl::operator NSString *): Ditto.
        * platform/text/mac/StringMac.mm:
        (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
        * platform/text/qt/StringQt.cpp:
        (WebCore::String::String): Ditto.
        * platform/text/wx/StringWx.cpp:
        (WebCore::String::String): Ditto.
        * rendering/RenderBR.cpp:
        (WebCore::RenderBR::RenderBR): Ditto.

        * rendering/RenderSVGInlineText.cpp:
        (WebCore::RenderSVGInlineText::RenderSVGInlineText): Use PassRefPtr.
        * rendering/RenderSVGInlineText.h:

        * rendering/RenderText.cpp:
        (WebCore::charactersAreAllASCII): Removed now-unneeded const.
        * rendering/RenderTextFragment.cpp:
        (WebCore::RenderTextFragment::originalText): Use RefPtr.

2008-01-02  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Oliver Hunt.

        <rdar://problem/5618086> WebInspector does not expand the DOM tree after being closed

        Closing the Web Inspector causes the DOM tree outline to be torn down, clearing the
        internal element lookup tables. The represented DOM node object still holds the identifier
        it was assigned, and a later call to findTreeElement will use that original identifier
        against a cleared lookup table. In that case we need to fallback on DOM ancestor lookup.

        * page/inspector/treeoutline.js:
        (TreeOutline.prototype.findTreeElement): If the DOM node already had a __treeElementIdentifier,
        but the TreeOutline no longer has the element in the _knownTreeElements list do an ancestor lookup
        instead of an early return.

2008-01-02  Alice Liu  <alice.liu@apple.com>

        Reviewed by Maciej.

        Fixed <rdar://5283861> (problems scrolling in gmail message content area)

        * platform/ScrollView.h:
        * platform/win/ScrollViewWin.cpp:
        (WebCore::ScrollView::scroll):
         Changed return value to bool to reflect success of scroll attempt

2008-01-02  Alexey Proskuryakov  <ap@webkit.org>

        Fixed a typo (pointed out in review, but I somehow missed it at first).

        * editing/EditorCommand.cpp: (WebCore::executeDelete):

2008-01-02  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        Resolved several FIXMEs in EditorCommand.
        Made recently added commands hidden from JS again.
        Removed BackwardDelete implementation, which used to be dead code, but got exposed now.

        Tests: editing/execCommand/delete-no-scroll.html
               editing/execCommand/forward-delete-no-scroll.html
               editing/execCommand/insert-line-break-no-scroll.html

        * editing/EditorCommand.cpp:
        (WebCore::executeDelete):
        (WebCore::executeForwardDelete):
        (WebCore::executeInsertLineBreak):
        (WebCore::supportedFromMenuOrKeyBinding):
        (WebCore::CommandEntry::):

2008-01-02  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=14555
        action=mailto + method=get - The generated mailto URI is incorrect and the hvalues are encoded twice

        http://bugs.webkit.org/show_bug.cgi?id=14774
        Submitted data only includes first input item

        Reworked encoding of mailto URLs to match other browsers.
        Moved most of related logic from FrameLoader::submitForm() to HTMLFormElement::submit().

        Tests: fast/forms/mailto/advanced-get.html
               fast/forms/mailto/advanced-put.html
               fast/forms/mailto/get-multiple-items-text-plain.html
               fast/forms/mailto/get-multiple-items-x-www-form-urlencoded.html
               fast/forms/mailto/get-multiple-items.html
               fast/forms/mailto/get-non-ascii.html
               fast/forms/mailto/get-non-ascii-text-plain.html
               fast/forms/mailto/get-overwrite-query.html
               fast/forms/mailto/post-append-query.html
               fast/forms/mailto/post-multiple-items-multipart-form-data.html
               fast/forms/mailto/post-multiple-items-text-plain.html
               fast/forms/mailto/post-multiple-items-x-www-form-urlencoded.html
               fast/forms/mailto/post-multiple-items.html

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::submit):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::submitForm):

2008-01-02  Mark Rowe  <mrowe@apple.com>

        Autotools build fix.

        * GNUmakefile.am: Remove files before generating them, not after.

2008-01-02  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Alp Toker.

        Add missing dependencies to some GNUmakefile.am rules.

        * GNUmakefile.am:

2008-01-02  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alp Toker.

        Autotools build fix.  Make can expand $@ to any of the targets for the rule,
        while we always want to use the name of the .cpp file as the output file.

        * GNUmakefile.am:

2008-01-02  Luca Bruno  <lethalman88@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16115
        [GTK] ContextMenu and ContextMenuItem lacks an implementation

        Add context menu support.

        Based on a patch by Holger Freyther.

        * platform/gtk/ContextMenuGtk.cpp:
        (WebCore::menuItemActivated):
        (WebCore::ContextMenu::ContextMenu):
        (WebCore::ContextMenu::~ContextMenu):
        (WebCore::ContextMenu::appendItem):
        (WebCore::ContextMenu::setPlatformDescription):
        (WebCore::ContextMenu::releasePlatformDescription):
        * platform/gtk/ContextMenuItemGtk.cpp:
        (WebCore::ContextMenuItem::ContextMenuItem):
        (WebCore::ContextMenuItem::~ContextMenuItem):
        (WebCore::ContextMenuItem::releasePlatformDescription):
        (WebCore::ContextMenuItem::type):
        (WebCore::ContextMenuItem::action):
        (WebCore::ContextMenuItem::setAction):
        (WebCore::ContextMenuItem::platformSubMenu):
        (WebCore::ContextMenuItem::setSubMenu):
        (WebCore::ContextMenuItem::setChecked):
        (WebCore::ContextMenuItem::setEnabled):

2008-01-02  Alp Toker  <alp@atoker.com>

        GTK+ autotools build fix. Track changes in r29073.

        * GNUmakefile.am:

2008-01-01  Darin Adler  <darin@apple.com>

        - fix release build

        * bindings/js/kjs_binding.cpp:
        (KJS::setDOMException): Initialize to avoid uninitialized variable warning.
        Removed default so we get a warning if there's a missing case.

2008-01-01  David D. Kilzer  <ddkilzer@webkit.org>

        Scripting MIME Types application/ecmascript, application/javascript not viewable
        <http://bugs.webkit.org/show_bug.cgi?id=11063>

        Reviewed by Darin.

        This patch consolidates the list of acceptable MIME types for JavaScript
        source into the MIMETypeRegistry class, and replaces checks for these
        types with a call to MIMETypeRegistry::isSupportedJavaScriptMIMEType().

        No tests added since viewing JavaScript source is not testable.

        * dom/DOMImplementation.cpp:
        (WebCore::DOMImplementation::isTextMIMEType): Use
        MIMETypeRegistry::isSupportedJavaScriptMIMEType() instead of a single
        hard-coded MIME type, "application/x-javascript".

        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript): Moved list of
        JavaScript MIME types from here to
        MIMETypeRegistry::initialiseSupportedJavaScriptMIMETypes().

        * platform/MIMETypeRegistry.cpp:
        (WebCore::initialiseSupportedJavaScriptMIMETypes): Added. List of
        MIME types came from HTMLScriptElement::shouldExecuteAsJavaScript().
        (WebCore::initialiseSupportedNonImageMimeTypes): Remove single
        hard-coded MIME type, "application/x-javascript", from the list.
        (WebCore::initialiseMIMETypeRegistry): Initialise
        supportedJavaScriptMIMETypes, then pre-populate supportedNonImageMIMETypes
        with values in supportedJavaScriptMIMETypes.
        (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType): Added.

        * platform/MIMETypeRegistry.h: Added isSupportedJavaScriptMIMEType().

2008-01-01  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin.

        Patch for http://bugs.webkit.org/show_bug.cgi?id=16691
        Use real JS objects for the rest of the DOMExceptions (EventException, RangeException, etc)

        - Create JS objects for all the different types of exceptions, each with there own prototype and constructor.
        - Abstract all the logic and storage for exception classes in to an ExceptionBase class.
        - Move specialized ExceptionCodes into the exception classes. (ie. the EventExceptionCode enum is now in EventException).

        Tests: fast/dom/DOMException/EventException.html
               fast/dom/DOMException/RangeException.html
               fast/dom/DOMException/XPathException.html
               http/tests/xmlhttprequest/XMLHttpRequestException.html
               svg/custom/SVGException.html

        * DerivedSources.make:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * bindings/js/JSSVGMatrixCustom.cpp:
        (WebCore::JSSVGMatrix::inverse):
        (WebCore::JSSVGMatrix::rotateFromVector):
        * bindings/js/kjs_binding.cpp:
        (KJS::setDOMException):
        * bindings/scripts/CodeGeneratorJS.pm: Use the constant values defined
        in the IDL as the ObjC bindings do.
        * bindings/scripts/CodeGeneratorObjC.pm:
        * dom/DOMCoreException.cpp: Removed.
        * dom/DOMCoreException.h:
        (WebCore::DOMCoreException::DOMCoreException):
        * dom/DOMCoreException.idl:
        * dom/Event.h:
        * dom/EventException.h: Copied from WebCore/dom/DOMCoreException.h.
        (WebCore::EventException::EventException):
        (WebCore::EventException::):
        * dom/EventException.idl: Copied from WebCore/dom/DOMCoreException.idl.
        * dom/EventTargetNode.cpp:
        (WebCore::EventTargetNode::dispatchEvent):
        * dom/ExceptionBase.cpp: Copied from WebCore/dom/DOMCoreException.cpp.
        (WebCore::ExceptionBase::ExceptionBase):
        (WebCore::ExceptionBase::toString):
        * dom/ExceptionBase.h: Copied from WebCore/dom/DOMCoreException.h.
        (WebCore::ExceptionBase::code):
        * dom/ExceptionCode.cpp:
        (WebCore::getExceptionCodeDescription):
        * dom/ExceptionCode.h:
        (WebCore::):
        * dom/Range.cpp:
        (WebCore::Range::insertNode):
        (WebCore::Range::checkNodeWOffset):
        (WebCore::Range::checkNodeBA):
        (WebCore::Range::selectNode):
        (WebCore::Range::selectNodeContents):
        (WebCore::Range::surroundContents):
        * dom/RangeException.h:
        (WebCore::RangeException::RangeException):
        (WebCore::RangeException::):
        * dom/RangeException.idl:
        * page/DOMWindow.idl:
        * svg/SVGColor.cpp:
        (WebCore::SVGColor::setRGBColor):
        * svg/SVGException.h:
        (WebCore::SVGException::SVGException):
        (WebCore::SVGException::):
        * svg/SVGException.idl:
        * svg/SVGLocatable.cpp:
        (WebCore::SVGLocatable::getTransformToElement):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::dispatchEvent):
        (WebCore::XMLHttpRequest::open):
        (WebCore::XMLHttpRequest::send):
        * xml/XMLHttpRequest.h:
        * xml/XMLHttpRequestException.h: Copied from WebCore/dom/DOMCoreException.h.
        (WebCore::XMLHttpRequestException::XMLHttpRequestException):
        (WebCore::XMLHttpRequestException::):
        * xml/XMLHttpRequestException.idl: Copied from WebCore/dom/DOMCoreException.idl.
        * xml/XPathEvaluator.h:
        * xml/XPathException.h: Copied from WebCore/dom/DOMCoreException.h.
        (WebCore::XPathException::XPathException):
        (WebCore::XPathException::):
        * xml/XPathException.idl: Copied from WebCore/dom/DOMCoreException.idl.
        * xml/XPathParser.cpp:
        (WebCore::XPath::Parser::parseStatement):
        * xml/XPathResult.cpp:
        (WebCore::XPathResult::convertTo):
        (WebCore::XPathResult::numberValue):
        (WebCore::XPathResult::stringValue):
        (WebCore::XPathResult::booleanValue):
        (WebCore::XPathResult::singleNodeValue):
        (WebCore::XPathResult::snapshotLength):
        (WebCore::XPathResult::iterateNext):
        (WebCore::XPathResult::snapshotItem):

2008-01-01  Sam Weinig  <sam@webkit.org>

        Remove JSDomExceptionConstructor.lut.h from clean step
        as it no longer exists.

        * GNUmakefile.am:

2008-01-01  Dan Bernstein  <mitz@apple.com>

        - Windows build fix

        * WebCore.vcproj/WebCore.vcproj:

2008-01-01  Sam Weinig  <sam@webkit.org>

        Try again to fix the builds

        * DerivedSources.make:

2008-01-01  Sam Weinig  <sam@webkit.org>

        Fix non-mac builds.

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCoreSources.bkl:

2008-01-01  Eric Seidel  <eric@webkit.org>

        Reviewed by Alexey.

        Don't replace \ with / in data: urls
        http://bugs.webkit.org/show_bug.cgi?id=16692

        Test: fast/loader/url-data-replace-backslash.html

        * platform/KURL.cpp:
        (WebCore::KURL::init):

2008-01-01  Alp Toker  <alp@atoker.com>

        GTK+ autotools build fix. Track changes in r29051, r29058 and pass the
        correct parameter to AM_INIT_AUTOMAKE.

        * GNUmakefile.am:

2007-12-31  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin.

        Patch for http://bugs.webkit.org/show_bug.cgi?id=16637
        Acid3 expects ExeceptionCode constants to be defined on DOMException objects

        - Make DOMException a real JS object.

        Test: fast/dom/DOMException/prototype-object.html

        * DerivedSources.make:
        * WebCore.xcodeproj/project.pbxproj:

        This is no longer needed as the autogenerated classes now includes the
        constructor.
        * bindings/js/JSDOMExceptionConstructor.cpp: Removed.
        * bindings/js/JSDOMExceptionConstructor.h: Removed.

        Create on demand and use the new class for DOMExceptions.
        * bindings/js/kjs_binding.cpp:
        (KJS::setDOMException):

        Remove no longer needed custom constructor getter.
        * bindings/js/kjs_window.cpp:
        (KJS::Window::getValueProperty):

        Don't expose DOMCoreException as the name of class by special casing
        the user visible class name to be DOMException.
        * bindings/scripts/CodeGeneratorJS.pm:

        The DOMException class/file needs to be named DOMCoreException because there is
        name conflict with one of the Objective-C bindings classes.  It should be renamed
        to DOMException when the Objective-C bindings are moved into WebKit.
        * dom/DOMCoreException.cpp: Added.
        (WebCore::DOMCoreException::DOMCoreException):
        (WebCore::DOMCoreException::toString):
        * dom/DOMCoreException.h: Added.
        (WebCore::DOMCoreException::):
        (WebCore::DOMCoreException::code):
        (WebCore::DOMCoreException::name):
        (WebCore::DOMCoreException::message):
        * dom/DOMCoreException.idl: Added.
        * page/DOMWindow.idl:

2007-12-31  Sam Weinig  <sam@webkit.org>

        Re-enable querySelector and querySelectorAll and touch the necessary files to not
        kill the windows build.

        * WebCore.vcproj/build-generated-files.sh:
        * bindings/scripts/CodeGeneratorCOM.pm:
        * dom/Document.idl:
        * dom/Element.idl:

2007-12-31  Darin Adler  <darin@apple.com>

        - fix Windows build

        * dom/Document.idl: Temporarily disable querySelector and querySelectorAll, since they are showing
        up as pure virtual functions. Sam can fix this later.
        * dom/Element.idl: Ditto.

2007-12-31  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix http://bugs.webkit.org/show_bug.cgi?id=14134
          <rdar://problem/5655160> REGRESSION (r25353): Whitespace nodes ignored between inline list items

        Test: fast/dynamic/create-renderer-for-whitespace-only-text.html

        * dom/Node.cpp:
        (WebCore::Node::attach): Added code to check if this node's renderer
        has become the "previous renderer" of any sibling text node, and if so,
        ensure that that node gets a renderer if it now needs one.
        (WebCore::Node::createRendererIfNeeded): Removed the assertion that the
        node is not attached.

2007-12-31  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16641
          Acid3 reveals HTMLFormElement.elements fails to update when element name changes

        Test: fast/dom/HTMLFormElement/elements-not-in-document.html

        This was a bug specific to forms that are not in the document tree.
        The fix was to change the code to increment the document version number to match
        up with other document change tracking. Maybe at some point we can clean these up
        so we don't have so many competing change notification systems.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::replaceChild): Removed bogus comment.
        (WebCore::ContainerNode::addChild): Added an explicit incDOMTreeVersion
        call here, since this code path bypasses the subtree-modified event code.

        * dom/Element.cpp:
        (WebCore::Element::setAttribute): Remove the inDocument() check -- not all HTML
        collections are for things in the document.
        (WebCore::Element::setAttributeMap): Ditto.

        * dom/EventTargetNode.cpp:
        (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent): Added a call to
        incDOMTreeVersion here; covers most cases of tree structure changes.

        * dom/Node.cpp:
        (WebCore::Node::attach): Remove call to incDOMTreeVersion -- creating a renderer
        has nothing to do with changes to the DOM tree!
        (WebCore::Node::detach): Ditto.

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::registerFormElement): Remove call to incDOMTreeVersion.
        This is handled at a lower level and doesn't need to be here.
        (WebCore::HTMLFormElement::removeFormElement): Ditto.

2007-12-31  Henry Mason  <hmason@mac.com>

        Reviewed by Darin.

        Patch for http://bugs.webkit.org/show_bug.cgi?id=14994
        Support for MessageEvent and cross-domain messaging

        Test: http/tests/messaging/cross-domain-message-send.html

        * DerivedSources.make:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::customGetOwnPropertySlot): Allow cross-domain access to the
        postMessage function.
        (WebCore::JSDOMWindow::postMessage):
        * bindings/js/JSEventCustom.cpp:
        (WebCore::toJS):
        * dom/Event.cpp:
        (WebCore::Event::isMessageEvent):
        * dom/Event.h:
        * dom/EventNames.h: New event name
        * dom/MessageEvent.cpp: Added.
        * dom/MessageEvent.h: Added.
        * dom/MessageEvent.idl: Added.
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::postMessage): Added.
        * page/DOMWindow.h:
        * page/DOMWindow.idl:

2007-12-31  Darin Adler  <darin@apple.com>

        Suggested by Antti.

        - turn ENABLE_VIDEO back off for Windows until we can install QuickTime on the build bots

        * WebCore.vcproj/WebCore.vcproj: Removed ENABLE_VIDEO.
        * WebCore.vcproj/build-generated-files.sh: Ditto.

2007-12-30  Alp Toker  <alp@atoker.com>

        Reviewed by Dan Bernstein.

        Silence warning.

        * dom/NodeList.h:

2007-12-30  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=16387
        Variable names can be enumerated across domains
        <rdar://problem/5640454>

        Test: http/tests/security/cross-frame-access-enumeration.html

        * bindings/js/kjs_window.cpp:
        (KJS::Window::getPropertyNames): Override method to test same-origin policy.
        * bindings/js/kjs_window.h:

2007-12-30  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Patch for http://bugs.webkit.org/show_bug.cgi?id=10686
        event instanceof MouseEvent throws exception

        Add JS constructors for all the Event types.

        Test: fast/events/event-instanceof.html

        * WebCore.xcodeproj/project.pbxproj:
        * dom/KeyboardEvent.idl:
        * dom/MouseEvent.idl:
        * dom/MutationEvent.idl:
        * dom/OverflowEvent.idl:
        * dom/ProgressEvent.idl:
        * dom/TextEvent.idl:
        * dom/UIEvent.idl:
        * dom/WheelEvent.idl:
        * page/DOMWindow.idl:

2007-12-30  David Kilzer  <ddkilzer@webkit.org>

        Reviewed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15359
          JPEG image not shown when height is specified as percentage inside a table

        The problem occurs when a replaced element (image, canvas, etc.) with
        a percent-height attribute is contained by a table cell with an auto-
        or percent-height attribute.  If there are no other conditions to cause
        the table cell's height to expand, an available height of zero will
        always be returned.  In these cases, the intrinsic height of the
        replaced element should be used if it is greater than the available
        height of the table cell.

        Tests: fast/replaced/table-percent-height.html
               tables/mozilla/bugs/bug137388-1.html
               tables/mozilla/bugs/bug137388-2.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::calcReplacedHeightUsing):

2007-12-30  Luca Bruno  <lethalman88@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16099
        Crash in CURL for empty POST

        We have to set POST even when the data is empty, otherwise cURL will
        hang while waiting for a response.

        * platform/network/curl/ResourceHandleManager.cpp
        (ResourceHandleManager::setupPOST): allow empty POST

2007-12-29  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        Move all SVG related stuff inside SVG block. Don't include
        SVGNames, SVGElementFactory, and XLinkNames when SVG is not
        enabled

        * GNUmakefile.am:

2007-12-29  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=14428
        FCKEditor: Images disappear on drag/drop and copy/paste

        Test: editing/pasteboard/drag-image-in-about-blank-frame.html

        * editing/markup.cpp: (WebCore::createFragmentFromMarkup): Don't use "about:blank" as a
        base URL, just like we don't use an empty one.

2007-12-29  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16669
        autotools update and fixes

        Autotools update and database/icon database inclusion guard fixes

        * GNUmakefile.am:
          - Update autotools config as per -r29012 changes
          - Fix CSSGrammar.h/cpp generation (Seo Sanghyeon, sanxiyn)
        * dom/Document.cpp:
        * loader/icon/IconDatabase.h:
        * page/DOMWindow.cpp:
        * page/InspectorController.cpp:
        * page/Settings.cpp:
        * storage/Database.h:
          - Remove ENABLE(DATABASE) inclusion guard. Let the includer add the guard instead.

2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Alexey.

        Respect horiz-origin-x / horiz-origin-y / vert-origin-x / vert-origin-y properties when drawing SVG Fonts.
        (Fixes fonts-elem-05-t.svg in a --svg-fonts build)

        * svg/SVGFont.cpp:
        (WebCore::Font::drawGlyphsWithSVGFont):

2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Oliver.

        Further SVG Font work. Parse all <glyph> attributes, using SVGGlyphElement::buildGlyphIdentifier.
        SVGFontElement::collectGlyphs() now uses this method. Per character advance values work well now.

        * platform/graphics/FontData.cpp:
        (WebCore::SVGFontData::convertEmUnitToPixel): Add helper function.
        (WebCore::FontData::ascent):
        (WebCore::FontData::descent):
        * platform/graphics/FontData.h:
        * svg/SVGFont.cpp:
        (WebCore::isVerticalWritingMode): Add helper function.
        (WebCore::Font::drawGlyphsWithSVGFont):
        * svg/SVGFontElement.cpp:
        (WebCore::SVGFontElement::collectGlyphs): Simplified implementation - SVGGlyphIdentifier now build by SVGGlyphElement.
        * svg/SVGGlyphElement.cpp:
        (WebCore::parseArabicForm): Helper function.
        (WebCore::parseOrientation): Ditto.
        (WebCore::parsePathData): Ditto.
        (WebCore::SVGGlyphElement::buildGlyphIdentifier):
        * svg/SVGGlyphElement.h:
        (WebCore::SVGGlyphElement::rendererIsNeeded):

2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Oliver.

        Refactor SVGAnimationElement::parseValues into a generic function parseDelimitedString.
        SVGAnimationElement needs to parse semicolon-seperated strings, SVGGlyphElement comma-seperated.

        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::parseMappedAttribute):
        * svg/SVGParserUtilities.cpp:
        (WebCore::parseDelimitedString):
        * svg/SVGParserUtilities.h:

2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Maciej.

        Add new helper structure SVGFontData - FontData holds this object as OwnPtr.
        Store several attribute values there (horiz-adv-x, horiz-origin-x etc..)

        To optimize for the common case ('FontData' used for HTML rendering) it feels
        better to hold one OwnPtr in FontData, than several floats.

        Parse all <font> attributes in SVGFontFaceElement::createFontData.

        * platform/graphics/FontData.cpp:
        (WebCore::SVGFontData::SVGFontData):
        (WebCore::FontData::FontData):
        (WebCore::FontData::ascent):
        (WebCore::FontData::descent):
        * platform/graphics/FontData.h:
        (WebCore::FontData::isSVGFont):
        (WebCore::FontData::svgFontData):
        * svg/SVGFont.cpp:
        (WebCore::Font::drawGlyphsWithSVGFont):
        * svg/SVGFontElement.cpp:
        * svg/SVGFontElement.h:
        (WebCore::SVGFontElement::rendererIsNeeded):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::unitsPerEm):
        (WebCore::SVGFontFaceElement::createFontData):

2007-12-28  Darin Adler  <darin@apple.com>

        - try to fix Windows and WX builds (broken by SVG Fonts check-in)

        * platform/graphics/win/FontWin.cpp:
        (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent, now that it requires it.
        I can't see how it can be right to require the font size for ascent and descent,
        but not for other metrics functions in FontData.

        * platform/graphics/wx/FontWx.cpp:
        (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent and FontData::descent.

2007-12-28  Dan Bernstein  <mitz@apple.com>

        Reviewed by Mark Rowe.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16650
          <rdar://problem/5664872> REGRESSION (r28278-r28314): ATSUI uses LTR writing direction for all text runs

        Covered by existing pixel tests.

        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::drawComplexText): Corrected to maintain the style
        information in the adjusted text run when passing it to
        ATSUILayoutParameters. Prior to r28298 the style was passed separately.

2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>

        Build fix, not reviewed.

        Add wtf/OwnPtr.h include, to fix --svg-fonts build.

        * css/SVGCSSFontFace.h:

2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric.

        Fixes: http://bugs.webkit.org/show_bug.cgi?id=10649 (WebKit SVG needs SVG Fonts support)

        Begin implementation of SVG Fonts module. Basic documents using SVG Fonts already work.
        Only local, in-document fonts who declare their glyphs using the <glyph d="..."> path syntax
        are supported. (<glyph> containing arbitary SVG content as child elements, not supported yet).

        Limited to single char <-> glyph mapping, no ligatures supported yet.
        (ie. <glyph unicode='A'/> <glyph unicode='AB'/> - it ignores the 'AB' glyph definition for now)

        Mark all SVG Font related classes & usages in ENABLE(SVG_FONTS) blocks.

        No layout test changes for a --no-svg-fonts build, heavy changes if enabled. Because a lot of SVG Font
        attributes are not processed yet, the rendering looks wrong - hence disabled by default.)

        * DerivedSources.make: Add SVGFontElement/SVGGlyphElement/SVGMissingGlyphElement
        * WebCore.pro: Updated build system.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGFontElement/JSSVGGlyphElement/JSSVGMissingGlyphElement
        * bindings/objc/DOM.mm: Ditto (for DOMSVG*).
        (WebCore::createElementClassMap):
        * bindings/objc/DOMInternal.h: Ditto.
        * bindings/objc/DOMSVG.h: Ditto.
        * css/CSSFontFace.h: Mark three functions 'virtual', to be overriden by SVGCSSFontFace
        * css/CSSFontFaceSrcValue.h: Add functionality to identify as SVG CSS font face source.
        (WebCore::CSSFontFaceSrcValue::m_fontFaceElement): Hold a pointer to the font face which created it.
        (WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
        (WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
        * css/CSSFontSelector.cpp: Build 'SVGCSSFontFace' objects for local, in-document SVG fonts.
        (WebCore::CSSFontSelector::addFontFaceRule):
        * css/SVGCSSFontFace.cpp: Added. (Simplified implementation for SVG Fonts)
        (WebCore::SVGCSSFontFace::SVGCSSFontFace):
        (WebCore::SVGCSSFontFace::~SVGCSSFontFace):
        (WebCore::SVGCSSFontFace::isValid):
        (WebCore::SVGCSSFontFace::addSource):
        (WebCore::SVGCSSFontFace::getFontData):
        * css/SVGCSSFontFace.h: Added.
        * platform/graphics/cg/PathCG.cpp:
        (WebCore::Path::closeSubpath): Silence a CG warning when calling closeSubpath() on empty path.
        * platform/graphics/Font.cpp: Add some logic to call into SVG Font code when operating on SVG Fonts.
        (WebCore::Font::ascent): Pass font size to FontData::ascent() call
        (WebCore::Font::descent): Pass font size to FontData::descent() call
        (WebCore::Font::canUseGlyphCache): Always return true for SVG fonts here.
        (WebCore::Font::drawGlyphBuffer): Call drawGlyphsWithSVGFont (instead of drawGlyphs) if the primary font is a SVG font.
        * platform/graphics/Font.h: Add (SVG-only!) ability to store a RenderObject pointer, to the element which invoked the drawText() call.
        (WebCore::TextRun::TextRun):
        (WebCore::TextRun::referencingRenderObject):
        (WebCore::TextRun::setReferencingRenderObject):
        * platform/graphics/FontData.cpp:
        (WebCore::FontData::FontData):
        (WebCore::FontData::ascent):
        (WebCore::FontData::descent):
        * platform/graphics/FontData.h: Store a pointer to the SVGFontFaceElement, which created this FontData object - needed for drawGlyphsWithSVGFont().
        (WebCore::FontData::isSVGFont): Offer a way to determine wheter this is a FontData object, created by a SVGFontFaceElement.
        (WebCore::FontData::svgFontFace):
        * rendering/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::calculateGlyphWidth): Add assertion.
        * rendering/SVGRootInlineBox.cpp:
        (WebCore::svgTextRunForInlineTextBox): Always call 'setReferencingRenderObject(myRenderSVGText)' on the new TextRun
        * svg/SVGFont.cpp: Added.
        (WebCore::Font::drawGlyphsWithSVGFont): Outsourced implementation of SVG Fonts into it's own file.
        * svg/SVGFontElement.cpp: Added. (Note: this holds the GlyphHashMap which associates certain <glyph> objects with unicode values)
        (WebCore::SVGFontElement::SVGFontElement):
        (WebCore::SVGFontElement::~SVGFontElement):
        (WebCore::SVGFontElement::parseMappedAttribute):
        (WebCore::SVGFontElement::collectGlyphs):
        (WebCore::SVGFontElement::glyphIdentifierForGlyphCode):
        * svg/SVGFontElement.h: Added.
        (WebCore::GlyphHash::hash):
        (WebCore::GlyphHash::equal):
        (WebCore::GlyphHashTraits::deletedValue):
        (WebCore::SVGFontElement::rendererIsNeeded):
        (WebCore::SVGFontElement::contextElement):
        * svg/SVGFontElement.idl: Added.
        * svg/SVGFontFaceElement.cpp: Build SVG specific 'FontData' object
        (WebCore::SVGFontFaceElement::unitsPerEm):
        (WebCore::SVGFontFaceElement::fontFamily):
        (WebCore::SVGFontFaceElement::createFontData): Builds SVG specified 'FontData' object with the markup specified ascent/descent values etc..
        (WebCore::SVGFontFaceElement::rebuildFontFace): Construct CSSFontFaceSrc object (marked as 'isSVGFontFaceSrc') to satisfy CSSFontSelector::addFontFaceRule.
        (WebCore::SVGFontFaceElement::insertedIntoDocument): Rebuild font face.
        (WebCore::SVGFontFaceElement::glyphIdentifierForGlyphCode): Allows drawGlyphsWithSVGFont to access the glyph hash map living in the SVGFontElement.
        * svg/SVGFontFaceElement.h: Fixed code formatting issues & wrap in ENABLE(SVG_FONTS) blocks.
        * svg/SVGFontFaceElement.idl: Ditto.
        * svg/SVGFontFaceFormatElement.cpp: Ditto.
        * svg/SVGFontFaceFormatElement.h: Ditto.
        * svg/SVGFontFaceFormatElement.idl: Ditto.
        * svg/SVGFontFaceNameElement.cpp: Ditto.
        * svg/SVGFontFaceNameElement.h: Ditto.
        * svg/SVGFontFaceNameElement.idl: Ditto.
        * svg/SVGFontFaceSrcElement.cpp: Ditto.
        * svg/SVGFontFaceSrcElement.h: Ditto.
        * svg/SVGFontFaceSrcElement.idl: Ditto.
        * svg/SVGFontFaceUriElement.cpp: Ditto.
        * svg/SVGFontFaceUriElement.h: Ditto.
        * svg/SVGFontFaceUriElement.idl: Ditto.
        * svg/SVGDefinitionSrcElement.cpp: Ditto.
        * svg/SVGDefinitionSrcElement.h: Ditto.
        * svg/SVGDefinitionSrcElement.idl: Ditto.
        * svg/SVGGlyphElement.cpp: Added.
        (WebCore::SVGGlyphElement::SVGGlyphElement):
        (WebCore::SVGGlyphElement::parseMappedAttribute):
        (WebCore::SVGGlyphElement::childrenChanged):
        * svg/SVGGlyphElement.h: Added.
        (WebCore::SVGGlyphElement::rendererIsNeeded):
        (WebCore::SVGGlyphIdentifier::): Structure holding all data to represent a SVG glyph (origin, advance, orientation etc..)
        (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
        * svg/SVGGlyphElement.idl: Added.
        * svg/SVGMissingGlyphElement.cpp: Added. (stub implementation)
        (WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
        (WebCore::SVGMissingGlyphElement::parseMappedAttribute):
        (WebCore::SVGMissingGlyphElement::childrenChanged):
        * svg/SVGMissingGlyphElement.h: Added.
        (WebCore::SVGMissingGlyphElement::rendererIsNeeded):
        * svg/SVGMissingGlyphElement.idl: Added.
        * svg/svgtags.in: Wrap all SVGFont* elements in ENABLE(SVG_FONTS) block - to assure --no-svg-fonts compilation works (which is the default for now!).

2007-12-27  Dan Bernstein  <mitz@apple.com>

        Reviewed by Alexey Proskuryakov.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16628
          ASSERTION FAILED: m_resizeLayer (running layout tests)

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::~RenderLayer): Avoid calling
        EventHandler::resizeLayerDestroyed() if the document is being destroyed.

2007-12-27  Dan Bernstein  <mitz@apple.com>

        Reviewed by Oliver Hunt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16603
          <rdar://problem/5664199> Crash when resizing text field

        Test: fast/layers/resize-layer-deletion-crash.html

        The event handler has only a weak reference to the layer that is
        currently in resize mode, so it is the layer's responsibility to let
        the event handler know if it has been destroyed while in that mode.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::resizeLayerDestroyed): Added. Resets
        m_resizeLayer to 0.
        * page/EventHandler.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::~RenderLayer): Added a call to
        EventHandler::resizeLayerDestroyed() if the layer is in resize mode.

2007-12-27  Collin Jackson  <webkit@collinjackson.com>

        Reviewed by Sam Weinig.

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

        The same-origin check was missing in the implementation of 
        setTimeout, setInterval, addEventListener, and removeEventListener.

        Suppose <http://www.badguy.com/> contains an iframe to 
        <http://www.goodguy.com/>. Now www.badguy.com can steal
        www.goodguy.com cookies by running this code:

        setTimeout.call(frames[0], "alert(document.cookie)", 1000);

        This patch changes the behavior so that setTimeout to does 
        nothing and returns an undefined value if the caller is not
        permitted to script the window whose setTimeout method is being
        called. The same applies to setInterval, addEventListener, and 
        removeEventListener.

        Tests: http/tests/security/cross-frame-access-call.html

        * bindings/js/kjs_window.cpp:
        (KJS::WindowProtoFuncSetTimeout::callAsFunction)
        (KJS::WindowProtoFuncSetInterval::callAsFunction)
        (KJS::WindowProtoFuncAddEventListener::callAsFunction)
        (KJS::WindowProtoFuncRemoveEventListener::callAsFunction)

2007-12-27  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt and Sam Weinig.

        - fix <rdar://problem/5605937> Inspector: Disclosure triangle not drawn in node's properties panel until click

        Test: fast/layers/add-layer-with-nested-stacking.html
        Test: fast/layers/remove-layer-with-nested-stacking.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::addChild): If the new child is overflow-only
        but has children of its own, dirty the stacking context's z-order lists
        since the grandchildren might need to be in them.
        (WebCore::RenderLayer::removeChild): Similarly for the old child.

2007-12-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16353
        [GTK] Check for deprecated API use (G_DISABLE_DEPRECATED etc.)

        Added the flags mentioned in the bug only when doing 'debug'
        builds. -DGST_DISABLE_DEPRECATED only added when video is enabled.

        * GNUmakefile.am:
        * WebCore.pro:

2007-12-27  Dan Bernstein  <mitz@apple.com>

        Reviewed by Eric Seidel.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16490
          ASSERT in ~FrameView while viewing/reloading WICD test case

        Test: fast/dynamic/paused-event-dispatch.html

        * page/FrameView.cpp:
        (WebCore::FrameView::~FrameView):
        (WebCore::FrameView::layout): Changed to always pause event dispatch and
        always resume event dispatch, regardless of whether the post-layout
        task timer is active. However, if it is active, assert that event
        dispatch is still paused.

2007-12-27  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=14500
        need to be more generous about charset declaration with meta tag
        
        http://bugs.webkit.org/show_bug.cgi?id=12526
        <rdar://problem/4867183> Safari ignores encoding description "charset=Shift_JIS" in invalid html

        <rdar://problem/4892428> Unlike other browsers, WebKit ignores <meta> charset definitions outside the head

        <rdar://problem/5643774> REGRESSION: Text is garbled when clicking a link inside an Arabic website

        Tests: fast/encoding/ahram-org-eg.html
               fast/encoding/bandai-co-jp-releases.html
               fast/encoding/floraexpress-ru.html
               fast/encoding/hanarei-blog32-fc2-com.html
               fast/encoding/yahoo-mail.html

        * loader/TextResourceDecoder.cpp:
        (WebCore::TextResourceDecoder::checkForHeadCharset): Don't stop looking for <meta> until we've
        seen at least 512 bytes of input.

2007-12-26  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16390
        Use autotools or GNU make as the build system for the GTK port

        * GNUmakefile.am: Added.

2007-12-26  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Sam Weinig.

        http://bugs.webkit.org/show_bug.cgi?id=16609
        Make manual-tests/xmlhttprequest-contenttype-empty.html test automatic

        * manual-tests/xmlhttprequest-contenttype-empty.html: Removed (moved to LayoutTests/http).

2007-12-26  Mark Rowe  <mrowe@apple.com>

        Windows build fix.

        * platform/Threading.h:

2007-12-25  Rob Buis  <buis@kde.org>

        Reviewed by Eric.

        http://bugs.webkit.org/show_bug.cgi?id=15514
        <clipPath> with <use> not respected
        http://bugs.webkit.org/show_bug.cgi?id=16557
        SVG circle elements have been clipped away completely, instead of partially.

        Add toClipPath to get clip path data for the clipping paths. Implement it for <use>, thereby allowing clip paths using use.

        * svg/SVGClipPathElement.cpp:
        (WebCore::SVGClipPathElement::canvasResource):
        * svg/SVGStyledTransformableElement.h:
        (WebCore::SVGStyledTransformableElement::toClipPath):
        * svg/SVGUseElement.cpp:
        (WebCore::isDirectReference):
        (WebCore::SVGUseElement::toClipPath):
        * svg/SVGUseElement.h:

2007-12-25  Sam Weinig  <sam@webkit.org>

        Reviewed by Eric Seidel.

        Clean up the files relating to NodeLists.

        * dom/ChildNodeList.cpp:
        (WebCore::ChildNodeList::ChildNodeList):
        (WebCore::ChildNodeList::length):
        (WebCore::ChildNodeList::item):
        (WebCore::ChildNodeList::nodeMatches):
        * dom/ChildNodeList.h:
        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicNodeList::itemForwardsFromCurrent):
        (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
        (WebCore::DynamicNodeList::itemWithName):
        * dom/DynamicNodeList.h:
        (WebCore::DynamicNodeList::needsNotifications):
        * dom/NameNodeList.cpp:
        (WebCore::NameNodeList::NameNodeList):
        (WebCore::NameNodeList::rootNodeAttributeChanged):
        (WebCore::NameNodeList::nodeMatches):
        * dom/NameNodeList.h:
        * dom/NodeList.h:
        * dom/SelectorNodeList.h:

2007-12-25  Sam Weinig  <sam@webkit.org>

        Fix non-mac builds.

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCoreSources.bkl:

2007-12-25  Sam Weinig  <sam@webkit.org>

        Rubber stamped by Eric Seidel.

        Move TagNodeList into its own file.

        * WebCore.xcodeproj/project.pbxproj:
        * dom/Node.cpp:
        * dom/TagNodeList.cpp: Copied from dom/Node.cpp.
        (WebCore::TagNodeList::TagNodeList):
        * dom/TagNodeList.h: Copied from dom/Node.cpp.

2007-12-25  Sam Weinig  <sam@webkit.org>

        Reviewed by Eric Seidel.

        Simplify the NodeList architecture.
        - Rename recursiveItem() to item(), since it is not recursive.
        - Make recursiveLength() iterative and rename to length().
        - Remove now unneeded overrides of item() and length() that used 
          to call the recursive variants.

        * dom/ClassNodeList.cpp:
        * dom/ClassNodeList.h:
        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicNodeList::length):
        (WebCore::DynamicNodeList::item):
        (WebCore::DynamicNodeList::rootNodeAttributeChanged): Move implementation 
        into the .cpp file since virtual methods can't be inlined.
        * dom/DynamicNodeList.h:
        * dom/NameNodeList.cpp:
        * dom/NameNodeList.h:
        * dom/Node.cpp:

2007-12-25  Alp Toker  <alp@atoker.com>

        More complete GTK+/Qt/Wx/Win build fixes for breakage introduced in
        r28981.

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCoreSources.bkl:

2007-12-25  Alp Toker  <alp@atoker.com>

        Win build fix for breakage introduced in r28981.

        * WebCore.vcproj/WebCore.vcproj:

2007-12-25  Alp Toker  <alp@atoker.com>

        Wx build fix for breakage introduced in r28981.

        * WebCoreSources.bkl:

2007-12-25  Alp Toker  <alp@atoker.com>

        GTK+/Qt build fix for breakage introduced in r28981.

        * WebCore.pro:

2007-12-25  David Smith  <catfish.man@gmail.com> and Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver.
        
        - http://bugs.webkit.org/show_bug.cgi?id=16587
        Implement the most useful part of the W3C Selectors API.

        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSStyleSelector.h: Make Node a friend of CSSStyleSelector so it can use checkSelector()
        * dom/ChildNodeList.cpp:
        (WebCore::ChildNodeList::ChildNodeList): Change to being a DynamicNodeList
        * dom/ChildNodeList.h:
        * dom/ClassNodeList.cpp:
        (WebCore::ClassNodeList::ClassNodeList): Change to being a DynamicNodeList
        * dom/ClassNodeList.h:
        * dom/Document.idl: Add the new functions
        * dom/DynamicNodeList.cpp: Copied from WebCore/dom/NodeList.cpp.
        (WebCore::DynamicNodeList::DynamicNodeList): Rename NodeList to DynamicNodeList, to differentiate it from the new StaticNodeList
        (WebCore::DynamicNodeList::~DynamicNodeList):
        (WebCore::DynamicNodeList::recursiveLength):
        (WebCore::DynamicNodeList::itemForwardsFromCurrent):
        (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
        (WebCore::DynamicNodeList::recursiveItem):
        (WebCore::DynamicNodeList::itemWithName):
        (WebCore::DynamicNodeList::rootNodeChildrenChanged):
        (WebCore::DynamicNodeList::Caches::Caches):
        (WebCore::DynamicNodeList::Caches::reset):
        * dom/DynamicNodeList.h: Copied from WebCore/dom/NodeList.h.
        (WebCore::DynamicNodeList::rootNodeAttributeChanged):
        * dom/Element.idl: Add the new functions
        * dom/NameNodeList.cpp: Change to being a DynamicNodeList
        (WebCore::NameNodeList::NameNodeList):
        * dom/NameNodeList.h:
        (WebCore::NameNodeList::rootNodeAttributeChanged):
        * dom/Node.cpp:
        (WebCore::TagNodeList::TagNodeList): Change to being a DynamicNodeList
        (WebCore::Node::registerDynamicNodeList):
        (WebCore::Node::unregisterDynamicNodeList):
        (WebCore::Node::getElementsByName):
        (WebCore::Node::getElementsByClassName):
        (WebCore::Node::querySelector): new
        (WebCore::Node::querySelectorAll): new
        * dom/Node.h:
        * dom/NodeList.cpp: Removed.
        * dom/NodeList.h: This is now an abstract superclass of DynamicNodeList and StaticNodeList
        (WebCore::NodeList::NodeList):
        (WebCore::NodeList::~NodeList):
        * dom/SelectorNodeList.cpp: Added.
        (WebCore::SelectorNodeList::SelectorNodeList): New StaticNodeList subclass that filters elements by CSS selector
        * dom/SelectorNodeList.h: Added.
        * dom/StaticNodeList.cpp: Added.
        (WebCore::StaticNodeList::length):
        (WebCore::StaticNodeList::item):
        (WebCore::StaticNodeList::itemWithName):
        * dom/StaticNodeList.h: Added.
        (WebCore::StaticNodeList::StaticNodeList):
        (WebCore::StaticNodeList::~StaticNodeList):

2007-12-25  Mark Rowe  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        Implement a lock-free ThreadSafeShared for i386, x86_64, ppc and ppc64.
        http://bugs.webkit.org/show_bug.cgi?id=16596

        This is a 1.7x as fast as the lock-based implementation on x86 for a single-threaded use
        of ThreadSafeShared but is closer to 280x as fast when there is heavy concurrent multi-threaded
        access to a single ThreadSafeShared object.

        The atomic operations are based on those used by the Boost C++ library's shared_ptr implementation.

        * platform/Threading.h:
        (WebCore::atomicIncrement):
        (WebCore::atomicDecrement):
        (WebCore::ThreadSafeShared::ThreadSafeShared):
        (WebCore::ThreadSafeShared::ref): Use lock-free operations if available.
        (WebCore::ThreadSafeShared::deref): Ditto.
        (WebCore::ThreadSafeShared::hasOneRef):
        (WebCore::ThreadSafeShared::refCount):
        (WebCore::ThreadSafeShared::isThreadSafe):

2007-12-24  Darin Adler  <darin@apple.com>

        * platform/text/PlatformString.h: Removed now-incorrect comment.
        Added a comment about copy().
        * platform/text/StringImpl.h: Added a comment about copy().

2007-12-24  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - http://bugs.webkit.org/show_bug.cgi?id=16550
          make StringImpl immutable

        I tried to keep the changes to a minimum. In some cases there is
        room for optimization -- I didn't try to add in the "single ref count"
        optimizations and there might be a tiny bit more string copying than
        we had before.

        * WebCore.base.exp: Updated.

        * dom/CharacterData.cpp:
        (WebCore::CharacterData::appendData): Changed to use String since
        StringImpl doesn't have mutating functions any more.
        (WebCore::CharacterData::insertData): Ditto.
        (WebCore::CharacterData::deleteData): Ditto.
        (WebCore::CharacterData::replaceData): Ditto.
        * dom/Text.cpp:
        (WebCore::Text::splitText): Changed to use substring instead of
        remove since StringImpl does't have mutating functions any more.
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::deleteInsignificantText): Changed
        to use String instead of StringImpl so we can use remove.

        * platform/text/PlatformString.h: Removed newUninitialized.
        Added append that takes a character pointer and length.

        * platform/text/String.cpp:
        (WebCore::String::insert): Added an implementation that does not
        rely on an underlying StringImpl function.
        (WebCore::String::append): Ditto.
        (WebCore::String::truncate): Ditto.
        (WebCore::String::remove): Ditto.
        (WebCore::String::charactersWithNullTermination): Added an
        implementation that uses the new StringImpl null termination feature,
        which does not require modifying a string.

        * platform/text/StringImpl.cpp:
        (WebCore::isSpace): Fix comment.
        (WebCore::StringImpl::StringImpl): Added a new constructor that makes
        a string with a trailing null character.
        (WebCore::StringImpl::substring): Marked const.
        (WebCore::StringImpl::replace): Marked const; had to add quite a few
        const_cast. Also rewrote one of these to work without modifying the
        existing string.

        * platform/text/StringImpl.h: Fixed a mistake where the empty string had
        m_hasTerminatingNullCharacter uninitialized. Added a type and constructor
        for creating strings that have a trailing null character. Added a
        hasTerminatingNullCharacter function. Removed newUninitialized,
        charactersWithNullTermination, append, insert, truncate, and remove.
        Marked lots of other functions const.

        * platform/text/TextCodecLatin1.cpp:
        (WebCore::TextCodecLatin1::decode): Rewrote to use a Vector instead of
        newUninitialized.
        * platform/text/TextCodecUTF16.cpp:
        (WebCore::TextCodecUTF16::decode): Ditto.
        * platform/text/TextCodecUserDefined.cpp:
        (WebCore::TextCodecUserDefined::decode): Ditto.

        * rendering/RenderStyle.cpp:
        (WebCore::RenderStyle::setContent): Changed to use String since
        StringImpl doesn't have mutating functions any more.

2007-12-24  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Oliver.

        Fix fast/events/arrow-keys-on-body.html, failing on Windows.

        * platform/win/KeyEventWin.cpp:
        (WebCore::isKeypadEvent):
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        Use HIWORD() macro instead of shifting the value explicitly (no change in behavior).

2007-12-23  Alexey Proskuryakov  <ap@webkit.org>

        Fix Debug and Release QTMovieWin bulds.

        * WebCore.vcproj/QTMovieWin.vcproj:
        * WebCore.vcproj/debug.vsprops:
        * WebCore.vcproj/debug_internal.vsprops:
        * WebCore.vcproj/release.vsprops:
        Use LibraryConfigSuffix instead of WebKitConfigSuffix for pthreadVC2.
        Build release import lib into \lib, not \bin.

2007-12-23  Alp Toker  <alp@atoker.com>

        Reviewed by Holger Freyther.

        http://bugs.webkit.org/show_bug.cgi?id=15382
        [CAIRO] Canvas pattern support

        http://bugs.webkit.org/show_bug.cgi?id=16577
        Merge Cairo enhancements from Apollo project

        Add support for canvas patterns.

        Make Image::nativeImageForCurrentFrame() public.

        Fix some typos along the way.

        The globalAlpha canvas fixes are not included in this patch as
        they're slightly more intrusive and may conflict conceptually with
        GraphicsContext::setAlpha().

        * html/CanvasPattern.cpp:
        (WebCore::CanvasPattern::CanvasPattern):
        (WebCore::CanvasPattern::~CanvasPattern):
        (WebCore::CanvasPattern::createPattern):
        * html/CanvasPattern.h:
        (WebCore::CanvasPattern::platformImage):
        * html/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setShadow):
        (WebCore::CanvasRenderingContext2D::applyShadow):
        (WebCore::CanvasRenderingContext2D::drawImage):
        (WebCore::CanvasRenderingContext2D::createPattern):
        (WebCore::CanvasRenderingContext2D::applyStrokePattern):
        (WebCore::CanvasRenderingContext2D::applyFillPattern):
        * platform/graphics/Image.h:
        (WebCore::Image::nativeImageForCurrentFrame):

2007-12-23  Kevin Ollivier  <kevino@theolliviers.com>

        Reviewed by Eric Seidel.

        Remove getWxBitmap as we have nativeImageForCurrentFrame now,
        and don't draw a border in fillRect.

        * platform/graphics/BitmapImage.h:
        * platform/graphics/wx/GraphicsContextWx.cpp:
        (WebCore::GraphicsContext::fillRect):
        * platform/graphics/wx/ImageWx.cpp:

2007-12-23  Alp Toker  <alp@atoker.com>

        Reviewed by Holger Freyther.

        http://bugs.webkit.org/show_bug.cgi?id=16577
        Merge Cairo enhancements from Apollo project

        This patch is based on initial merging work by Brent Fulgham. Adobe's
        code has been modified in a few places to better suit the existing
        coding style.

        Implement more clipping and drawing functions.

        Save and restore the fill rule manually when clipping.

        Avoid image surface creation when the image buffer has height zero.

        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::clip):
        (WebCore::GraphicsContext::addInnerRoundedRectClip):
        (WebCore::GraphicsContext::addPath):
        (WebCore::GraphicsContext::clipOut):
        (WebCore::GraphicsContext::clipOutEllipseInRect):
        (WebCore::GraphicsContext::fillRoundedRect):
        * platform/graphics/cairo/ImageSourceCairo.cpp:
        (WebCore::ImageSource::createFrameAtIndex):

2007-12-23  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Mark.

        Fix wrong placed ifdef - wrapping SVGDefsElement, instead of SVGDefinitionSrcElement in SVG_FONTS block.

        * bindings/objc/DOM.mm:
        (WebCore::createElementClassMap):

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.

        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::Pasteboard::documentFragment):

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.

        Hook into the WebView to get the correct clipboard object on the
        appropriate display. This is necessary because GTK+ does not have
        global clipboards.

        * WebCore.pro:
        * platform/Pasteboard.h:
        (WebCore::Pasteboard::setHelper): added for GTK
        (WebCore::Pasteboard::m_helper): private added for GTK
        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::PasteboardSelectionData): added to support GTK selection data callback
        (WebCore::clipboard_get_contents_cb): added
        (WebCore::clipboard_clear_contents_cb): added
        (WebCore::Pasteboard::~Pasteboard):
        (WebCore::Pasteboard::setHelper):
        (WebCore::Pasteboard::writeSelection): copy rich text
        (WebCore::Pasteboard::documentFragment): 
        (WebCore::Pasteboard::plainText): 
        * platform/gtk/PasteboardHelper.h: Added.

2007-12-22  Nikolas Zimmermann  <zimmermann@kde.org>

        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.

        * rendering/InlineBox.h:
        (WebCore::InlineBox::isSVGRootInlineBox):
        * rendering/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::svgRootInlineBox):
        (WebCore::SVGInlineTextBox::closestCharacterToPosition):
        (WebCore::SVGInlineTextBox::selectionRect):
        * rendering/SVGRenderTreeAsText.cpp:
        (WebCore::writeSVGInlineTextBox):
        * rendering/SVGRootInlineBox.h:
        (WebCore::SVGRootInlineBox::isSVGRootInlineBox):

2007-12-22  Alp Toker  <alp@atoker.com>

        LOW_BANDWIDTH_DISPLAY build fix

        Track recent KURL DeprecatedString changes.

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

2007-12-22  Dan Bernstein  <mitz@apple.com>

        - Windows build fix

        * WebCore.vcproj/WebCore.vcproj:

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

2007-12-21  Antti Koivisto  <antti@apple.com>

        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.

        * WebCore.vcproj/QTMovieWin.vcproj: Added.
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/build-generated-files.sh:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::setSrc):
        * platform/graphics/MediaPlayer.cpp:
        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: Added.
        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::load):
        (WebCore::MediaPlayerPrivate::play):
        (WebCore::MediaPlayerPrivate::pause):
        (WebCore::MediaPlayerPrivate::duration):
        (WebCore::MediaPlayerPrivate::currentTime):
        (WebCore::MediaPlayerPrivate::seek):
        (WebCore::MediaPlayerPrivate::doSeek):
        (WebCore::MediaPlayerPrivate::cancelSeek):
        (WebCore::MediaPlayerPrivate::seekTimerFired):
        (WebCore::MediaPlayerPrivate::setEndTime):
        (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
        (WebCore::MediaPlayerPrivate::endPointTimerFired):
        (WebCore::MediaPlayerPrivate::paused):
        (WebCore::MediaPlayerPrivate::seeking):
        (WebCore::MediaPlayerPrivate::naturalSize):
        (WebCore::MediaPlayerPrivate::hasVideo):
        (WebCore::MediaPlayerPrivate::setVolume):
        (WebCore::MediaPlayerPrivate::setMuted):
        (WebCore::MediaPlayerPrivate::setRate):
        (WebCore::MediaPlayerPrivate::dataRate):
        (WebCore::MediaPlayerPrivate::maxTimeBuffered):
        (WebCore::MediaPlayerPrivate::maxTimeSeekable):
        (WebCore::MediaPlayerPrivate::maxTimeLoaded):
        (WebCore::MediaPlayerPrivate::bytesLoaded):
        (WebCore::MediaPlayerPrivate::totalBytesKnown):
        (WebCore::MediaPlayerPrivate::totalBytes):
        (WebCore::MediaPlayerPrivate::cancelLoad):
        (WebCore::MediaPlayerPrivate::updateStates):
        (WebCore::MediaPlayerPrivate::didEnd):
        (WebCore::MediaPlayerPrivate::setRect):
        (WebCore::MediaPlayerPrivate::setVisible):
        (WebCore::MediaPlayerPrivate::paint):
        (WebCore::MediaPlayerPrivate::getSupportedTypes):
        (WebCore::MediaPlayerPrivate::movieEnded):
        (WebCore::MediaPlayerPrivate::movieLoadStateChanged):
        (WebCore::MediaPlayerPrivate::movieTimeChanged):
        (WebCore::MediaPlayerPrivate::movieNewImageAvailable):
        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h: Added.
        (WebCore::MediaPlayerPrivate::networkState):
        (WebCore::MediaPlayerPrivate::readyState):
        * platform/graphics/win/QTMovieWin.cpp: Added.
        (updateTaskTimer):
        (QTMovieWinPrivate::QTMovieWinPrivate):
        (QTMovieWinPrivate::~QTMovieWinPrivate):
        (taskTimerFired):
        (QTMovieWinPrivate::startTask):
        (QTMovieWinPrivate::endTask):
        (QTMovieWinPrivate::task):
        (QTMovieWinPrivate::registerDrawingCallback):
        (QTMovieWinPrivate::drawingComplete):
        (QTMovieWinPrivate::createGWorld):
        (QTMovieWinPrivate::setSize):
        (QTMovieWinPrivate::deleteGWorld):
        (QTMovieWin::QTMovieWin):
        (QTMovieWin::~QTMovieWin):
        (QTMovieWin::play):
        (QTMovieWin::pause):
        (QTMovieWin::rate):
        (QTMovieWin::setRate):
        (QTMovieWin::duration):
        (QTMovieWin::currentTime):
        (QTMovieWin::setCurrentTime):
        (QTMovieWin::setVolume):
        (QTMovieWin::setMuted):
        (QTMovieWin::dataSize):
        (QTMovieWin::maxTimeLoaded):
        (QTMovieWin::loadState):
        (QTMovieWin::getNaturalSize):
        (QTMovieWin::setSize):
        (QTMovieWin::setVisible):
        (QTMovieWin::paint):
        (QTMovieWin::load):
        (movieDrawingCompleteProc):
        (initializeSupportedTypes):
        (QTMovieWin::countSupportedTypes):
        (QTMovieWin::getSupportedType):
        (QTMovieWin::initializeQuickTime):
        (DllMain):
        * platform/graphics/win/QTMovieWin.h: Added.
        * platform/graphics/win/QTMovieWinTimer.cpp: Added.
        (TimerWindowWndProc):
        (initializeOffScreenTimerWindow):
        (setSharedTimerFiredFunction):
        (timerFired):
        (setSharedTimerFireDelay):
        (stopSharedTimer):
        (setSharedTimerInstanceHandle):
        (systemTime):
        * platform/graphics/win/QTMovieWinTimer.h: Added.
        * rendering/RenderMedia.cpp:
        (WebCore::MediaControlPlayButtonElement::update):

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:

2007-12-21  Alexey Proskuryakov  <ap@webkit.org>

        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.

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

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

2007-12-20  Justin Garcia  <justin.garcia@apple.com>

        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.

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.

        * platform/graphics/gtk/FontCacheGtk.cpp:
        (WebCore::FontCache::fontExists):
        * platform/graphics/gtk/FontDataGtk.cpp:
        (WebCore::FontData::platformDestroy):
        (WebCore::FontData::containsCharacters):
        * platform/graphics/gtk/FontPlatformData.h:
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::hash):
        * platform/graphics/gtk/FontPlatformDataGtk.cpp:
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::init):
        (WebCore::FontPlatformData::~FontPlatformData):
        (WebCore::FontPlatformData::isFixedPitch):
        (WebCore::FontPlatformData::operator==):
        * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
        (WebCore::GlyphPage::fill):

2007-12-20  Timothy Hatcher  <timothy@apple.com>

        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.

2007-12-20  Adam Barth  <hk9565@gmail.com>

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

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:

2007-12-19  johnnyding.webkit  <johnnyding.webkit@gmail.com>

        Reviewed by Alexey. Landed by Stephanie.

        - fix http://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.

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

2007-12-20  John Sullivan  <sullivan@apple.com>

        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

2007-12-20  Dan Bernstein  <mitz@apple.com>

        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.

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

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):
        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::mouseDown):

2007-12-19  Geoffrey Garen  <ggaren@apple.com>

        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.

2007-12-19  Dan Bernstein  <mitz@apple.com>

        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.

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:

2007-12-19  Alice Liu  <alice.liu@apple.com>

        build fix (Windows)

        Changed uint to unsigned int.  uint caused Windows build breakage

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

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.

        Implement search and highlighting logic directly in WebCore.

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

2007-12-19  Geoffrey Garen  <ggaren@apple.com>

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

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

2007-12-19  Alice Liu  <alice.liu@apple.com>

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

2007-12-19  Andre Boule  <aboule@apple.com>

        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:

2007-12-19  Dan Bernstein  <mitz@apple.com>

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

2007-12-19  Sam Weinig  <sam@webkit.org>

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

2007-12-19  Dave Hyatt  <hyatt@apple.com>

        Add support for GDI text rendering to WebKit.
      
        Reviewed by mitz
        
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * dom/Document.cpp:
        (WebCore::Document::recalcStyle):
        * page/Settings.cpp:
        (WebCore::Settings::setFontRenderingMode):
        (WebCore::Settings::fontRenderingMode):
        * page/Settings.h:
        * platform/graphics/Font.h:
        (WebCore::Font::renderingMode):
        * platform/graphics/FontCache.cpp:
        (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
        (WebCore::FontPlatformDataCacheKey::operator==):
        (WebCore::computeHash):
        (WebCore::FontCache::getCachedFontPlatformData):
        * platform/graphics/FontDescription.h:
        (WebCore::):
        (WebCore::FontDescription::FontDescription):
        (WebCore::FontDescription::renderingMode):
        (WebCore::FontDescription::setRenderingMode):
        (WebCore::FontDescription::operator==):
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::FontCache::fontExists):
        (WebCore::FontCache::createFontPlatformData):
        * platform/graphics/win/FontDataWin.cpp:
        (WebCore::FontData::platformInit):
        (WebCore::FontData::smallCapsFontData):
        (WebCore::FontData::containsCharacters):
        (WebCore::FontData::determinePitch):
        (WebCore::FontData::platformWidthForGlyph):
        * platform/graphics/win/FontPlatformData.h:
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::useGDI):
        (WebCore::FontPlatformData::operator==):
        * platform/graphics/win/FontPlatformDataWin.cpp:
        (WebCore::FontPlatformData::FontPlatformData):
        * platform/graphics/win/FontWin.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/win/IconWin.cpp:
        (WebCore::Icon::paint):
        * platform/win/GraphicsContextWin.cpp:
        (WebCore::GraphicsContext::getWindowsContext):
        (WebCore::GraphicsContext::releaseWindowsContext):
        * platform/win/UniscribeController.cpp:
        (WebCore::UniscribeController::shapeAndPlaceItem):
        * platform/win/UniscribeController.h:
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::paint):

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

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

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

2007-12-18  Sam Weinig  <sam@webkit.org>

        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:

2007-12-18  Beth Dakin  <bdakin@apple.com>

        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:

2007-12-18  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Maciej Stachowiak.

        Remove outdated and non-functioning project files for the Apollo port.

        * WebCore.apolloproj: Removed.

2007-12-18  Steve Falkenburg  <sfalken@apple.com>

        <rdar://problem/5649911> REGRESSION (304-306A9): Typing 'p' in popup menu for type-to-select brings up Safari Help
        
        Need to translate the char back into a key code for posting our WM_KEYDOWN.
        
        Reviewed by Ada.

        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupWndProc):

2007-12-18  Steve Falkenburg  <sfalken@apple.com>

        <rdar://problem/5651534> REGRESSION(r28764-r28765): GDI leak drawing text when no appropriate font is available
        
        Our captured metafile from Uniscribe may contain multiple calls to CreateFontIndirect.
        Only create a font with the last one.
        
        Reviewed by Mitz, Darin.

        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::metaFileEnumProc):
        (WebCore::FontCache::getFontDataForCharacters):

2007-12-17  Brent Fulgham  <bfulgham@gmail.com>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=16464
        Modify WebCore to use win32 thread primitives

        Updates to support native windows threading primitives
        rather than pthreads emulation library.

        * WebCore.vcproj/WebCore.vcproj:
        * config.h:
        * platform/Threading.h:
        * platform/win/MutexWin.cpp: Added.
        (WebCore::Mutex::Mutex):
        (WebCore::Mutex::~Mutex):
        (WebCore::Mutex::lock):
        (WebCore::Mutex::tryLock):
        (WebCore::Mutex::unlock):
        * platform/win/ThreadConditionWin.cpp: Added.
        (WebCore::ThreadCondition::ThreadCondition):
        (WebCore::ThreadCondition::~ThreadCondition):
        (WebCore::ThreadCondition::wait):
        (WebCore::ThreadCondition::signal):
        (WebCore::ThreadCondition::broadcast):
        * platform/win/ThreadingWin.cpp:
        (WebCore::threadMapMutex):
        (WebCore::threadMap):
        (WebCore::storeThreadHandleByIdentifier):
        (WebCore::identifierByThreadHandle):
        (WebCore::threadHandleForIdentifier):
        (WebCore::clearThreadHandleForIdentifier):
        (WebCore::createThread):
        (WebCore::waitForThreadCompletion):
        (WebCore::detachThread):
        (WebCore::currentThread):

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

        Reviewed by Darin Adler.

        Handle EINTR when set by select() and try the select() again
        http://bugs.webkit.org/show_bug.cgi?id=16071

        * platform/network/curl/ResourceHandleManager.cpp:
        (ResourceHandleManager::downloadTimerCallback):

2007-12-18  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - avoid the simplified Chinese font linking code for characters that are
          not in any Windows code page

        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::FontCache::getFontDataForCharacters):

2007-12-18  Brady Eidson <beidson@apple.com>

        Reviewed by Adele

        <rdar://problem/5525770> REGRESSION: HTTP Auth protected favicon request results in a password sheet

        Some http-auth protected sites have the main resource(s) unprotected, but many subresources are
        protected by authentication.  Occasionally one can view the main page of a site but the favicon
        is behind the iron curtain - in these cases, we should *not* prompt for a username and password
        solely for the favicon.

        * loader/ResourceLoader.h: Make didReceiveAuthenticationChallenge virtual

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didReceiveAuthenticationChallenge): Now that this method
          is virtual from ResourceLoader, SubresourceLoader can override.  First call to the 
          SubresourceLoaderClient.  If they cancel the resource load, return early. Otherwise, let
          ResourceLoader work its magic (resulting in the auth sheet coming down)
        * loader/SubresourceLoader.h:

        * loader/SubresourceLoaderClient.h:
        (WebCore::SubresourceLoaderClient::didReceiveAuthenticationChallenge):

        * loader/icon/IconLoader.cpp:
        (WebCore::IconLoader::didReceiveAuthenticationChallenge): Cancel the resource load, since we should
          never prompt the user for credentials just for a favicon.
        * loader/icon/IconLoader.h:

2007-12-18  John Sullivan  <sullivan@apple.com>

        Reviewed by Brady
        
        - fixed <rdar://problem/5652380> Initial prompt shows "" for databases with no user-visible name

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::canEstablishDatabase):
        pass "name" instead of "displayName" if there's no displayName

2007-12-17  Dan Bernstein  <mitz@apple.com>

        Reviewed by Maciej Stachowiak.

        - restore ButtonFace and ThreeDFace to their previous values for non-Mac
          platforms. The Mac port also uses the same values for now instead
          of NSColor-based ones.

        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::systemColor):

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

        Reviewed by Maciej Stachowiak.

        Define WTF_USE_NPOBJECT and WTF_USE_JAVASCRIPTCORE_BINDINGS for GTK+
        Add required Frame::createScriptInstanceForWidget to FrameGtk

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

2007-12-17  Alice Liu  <alice.liu@apple.com>

        Reviewed by Adam.

        Fixed <rdar://5566435> window with no scrollbars can be scrolled

        * platform/win/ScrollViewWin.cpp:
        (WebCore::ScrollView::maximumScroll):
        corrected maximumScroll() to account for scrolling not allowed.
        (WebCore::ScrollView::wheelEvent):

2007-12-14  Juan A. Suarez Romero  <jasuarez@igalia.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16042
        [GTK] Eliminate webkit_init()

        Move webkit initialization to WebView class init.

        * WebCore.pro:

2007-12-17  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Darin.

        <rdar://problem/5651291> REGRESSION: Flash content doesn't display
        (www.adobe.com)

        We were passing NPEvent** instead of NPEvent* to NPP_HandleEvent.

        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::dispatchNPEvent): Changed to take NPEvent&, not
        NPEvent*
        (WebCore::PluginViewWin::paint): Pass NPEvent, not NPEvent*
        (WebCore::PluginViewWin::handleKeyboardEvent): same
        (WebCore::PluginViewWin::handleMouseEvent): same
        * plugins/win/PluginViewWin.h:

2007-12-17  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        Live to the promise of never making AppKit special character codes visible via DOM.

        Test: fast/events/arrow-keys-on-body.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::keyEvent): Check for empty keypress characters after disambiguation,
        to let quirks-aware code strip special charactrers.
        * platform/mac/KeyEventMac.mm:
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): If not in keyboard event quirks
        mode, remove the text if it's a special character.

2007-12-17  Mark Rowe  <mrowe@apple.com>

        Reviewed by Darin Adler.

        Fix incorrect array size and incorrect array index in convertNSColorToColor.

        * rendering/RenderThemeMac.mm:
        (WebCore::convertNSColorToColor):

2007-12-17  Darin Adler  <darin@apple.com>

        Reviewed by Mark Rowe.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16468
          REGRESSION(r28781): Crash running storage/transaction_callback_exception_crash.html

        * storage/DatabaseThread.cpp:
        (WebCore::DatabaseThread::dispatchNextTaskIdentifier): Use a RefPtr for the database
        because there's no guarantee it won't lose its last reference otherwise.

2007-12-17  Dan Bernstein  <mitz@apple.com>

        Reviewed by Maciej Stachowiak.

        - fix <rdar://problem/5333260> Some Chinese characters in Text Encoding menu are bold, others are not
          and <rdar://problem/5280188> Chinese text looks worse on Safari for Windows cf. Safari for Mac

        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::FontCache::getFontDataForCharacters): To ensure that font
        linking gives consistent results for characters that are exclusive to
        the simplified Chinese code page and characters that belong to that
        code page and other code pages, always ask to map to simplified Chinese
        alone first.

2007-12-17  Christian Dywan  <christian@twotoasts.de>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16378
        Implement Icon for Gtk

        Icon provides a GdkPixbuf containing a themed icon.
        The icon theme is probed for an icon name according to the
        Icon Naming Specification or conventional Gnome icon names respectively.

        See http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html

        * platform/graphics/Icon.h:
        * platform/graphics/gtk/IconGtk.cpp:
        (WebCore::Icon::~Icon):
        (WebCore::lookupIconName):
        (WebCore::Icon::newIconForFile):
        (WebCore::Icon::paint):

2007-12-16  Sam Weinig  <sam@webkit.org>

        Reviewed by Mitz.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=16466
        Move the JS Location object to its own file

        - Move Location into its own file and rename it JSLocation.

        * DerivedSources.make:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * bindings/js/JSDocumentCustom.cpp:
        * bindings/js/JSLocation.cpp: Copied from WebCore/bindings/js/kjs_window.cpp.
        (WebCore::):
        (WebCore::JSLocation::JSLocation):
        (WebCore::JSLocation::getValueProperty):
        (WebCore::JSLocation::getOwnPropertySlot):
        (WebCore::JSLocation::put):
        (WebCore::JSLocationProtoFuncReplace::callAsFunction):
        (WebCore::JSLocationProtoFuncReload::callAsFunction):
        (WebCore::JSLocationProtoFuncAssign::callAsFunction):
        (WebCore::JSLocationProtoFuncToString::callAsFunction):
        * bindings/js/JSLocation.h: Copied from WebCore/bindings/js/kjs_window.h.
        (WebCore::JSLocation::):
        (WebCore::JSLocation::frame):
        (WebCore::JSLocation::classInfo):
        * bindings/js/kjs_window.cpp:
        (KJS::Window::location):
        * bindings/js/kjs_window.h:
        * history/CachedPage.cpp:

2007-12-16  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - make 'cursor: copy' and 'cursor: none' work.

        Already covered by manual-tests/cursor.html

        * rendering/RenderStyle.h: Increase the _cursor_style field to 6 bits,
        needed for the 33rd and 34th cursor values.

2007-12-16  Mark Rowe  <mrowe@apple.com>

        Reviewed by Maciej Stachowiak.

        Refactor Mac plugin stream code to use the shared NetscapePlugInStreamLoader implementation.

        * WebCore.base.exp:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/NetscapePlugInStreamLoader.h:
        * loader/mac/NetscapePlugInStreamLoaderMac.mm: Removed.
        * loader/mac/WebPlugInStreamLoaderDelegate.h: Moved to WebKit.

2007-12-16  Sam Weinig  <sam@webkit.org>

        Reviewed by Maciej.

        Yet more of http://bugs.webkit.org/show_bug.cgi?id=16385
        Cleanup kjs_window

        - Move ScheduledAction into its own file and put it in the WebCore namespace.

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * bindings/js/PausedTimeouts.cpp:
        * bindings/js/PausedTimeouts.h:
        * bindings/js/ScheduledAction.cpp: Copied from bindings/js/kjs_window.cpp.
        (WebCore::ScheduledAction::ScheduledAction):
        (WebCore::ScheduledAction::execute):
        * bindings/js/ScheduledAction.h: Copied from bindings/js/kjs_window.h.
        (WebCore::ScheduledAction::ScheduledAction):
        * bindings/js/kjs_window.cpp:
        (KJS::DOMWindowTimer::DOMWindowTimer):
        (KJS::DOMWindowTimer::action):
        (KJS::DOMWindowTimer::takeAction):
        (KJS::Window::installTimeout):
        (KJS::Window::timerFired):
        * bindings/js/kjs_window.h:

2007-12-16  Alp Toker  <alp@atoker.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=16356
        [GTK] Integrate GStreamer video with the graphics backend

        Integrate the GStreamer media backend with the Cairo graphics backend.
        There are still some issues: Data is copied more often than necessary,
        and repaint() is not called, causing transformed video not to update
        sometimes.

        * WebCore.pro:
        * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::currentTime):
        (WebCore::MediaPlayerPrivate::setEndTime):
        (WebCore::MediaPlayerPrivate::seeking):
        (WebCore::MediaPlayerPrivate::naturalSize):
        (WebCore::MediaPlayerPrivate::setMuted):
        (WebCore::MediaPlayerPrivate::setRect):
        (WebCore::MediaPlayerPrivate::setVisible):
        (WebCore::MediaPlayerPrivate::repaint):
        (WebCore::MediaPlayerPrivate::paint):
        (WebCore::MediaPlayerPrivate::createGSTPlayBin):
        * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
        * platform/graphics/gtk/VideoSinkGStreamer.cpp: Added.
        (webkit_video_sink_base_init):
        (webkit_video_sink_init):
        (webkit_video_sink_idle_func):
        (webkit_video_sink_render):
        (webkit_video_sink_set_caps):
        (webkit_video_sink_dispose):
        (webkit_video_sink_finalize):
        (webkit_video_sink_set_property):
        (webkit_video_sink_get_property):
        (webkit_video_sink_stop):
        (webkit_video_sink_class_init):
        (webkit_video_sink_new):
        (webkit_video_sink_set_surface):
        (plugin_init):
        * platform/graphics/gtk/VideoSinkGStreamer.h: Added.

2007-12-16  Mark Rowe  <mrowe@apple.com>

        Mac build fix.

        * WebCore.xcodeproj/project.pbxproj: Remove NetscapePlugInStreamLoader.cpp from the WebCore target.
        Mac currently has its own implementation in NetscapePlugInStreamLoaderMac.mm which conflicts with the
        new shared implementation.

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

        Reviewed by Maciej Stachowiak.

        http://bugs.webkit.org/show_bug.cgi?id=16389
        Bug 16389: Common Implementation of NetscapePlugInStreamLoader

        * WebCore.vcproj/WebCore.vcproj: Remove NetscapePlugInStreamLoaderWin.cpp.
        * loader/NetscapePlugInStreamLoader.cpp: Copy method implementations from NetscapePlugInStreamLoaderWin.cpp.
        * loader/win/NetscapePlugInStreamLoaderWin.cpp: Removed.

2007-12-16  Grace Kloba  <klobag@gmail.com>

        Reviewed by Darin Adler.

        Fix http://bugs.webkit.org/show_bug.cgi?id=16433.
        Bug 16433: LOW_BANDWIDTH_DISPLAY build is broken

        * dom/Document.cpp:
        (WebCore::Document::Document):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::addLowBandwidthDisplayRequest):
        (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):

2007-12-16  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fix <rdar://problem/5636065> First form of SQLTransaction.executeSql() fails with TYPE_ERROR dom exception

        Test: storage/execute-sql-args.html

        * bindings/js/JSSQLTransactionCustom.cpp:
        (WebCore::JSSQLTransaction::executeSql): Added exception handling code so that once an
        exception happens, we won't try to do any more argument processing. Changed processing
        of the second argument so that we allow an undefined value or null, and simply omit the
        array. Changed processing of the second argument so that we don't require an actual
        JavaScript array. Instead, as with the JavaScript array operations themselves, we use
        the length property and corresponding numeric properties of the object, allowing other
        objects to act as arrays. Changed processing of the third and fourth arguments to
        allow the undefined value as well as null; we check the value of the argument rather
        than looking at the size of the passed-in arguments list.

2007-12-16  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin.

        More of http://bugs.webkit.org/show_bug.cgi?id=16385
        Cleanup kjs_window

        - Move PausedTimeouts into its own file and put it in the WebCore namespace.

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * bindings/js/PausedTimeouts.cpp: Copied from bindings/js/kjs_window.cpp.
        * bindings/js/PausedTimeouts.h: Copied from bindings/js/kjs_window.h.
        * bindings/js/kjs_window.cpp:
        (KJS::Window::pauseTimeouts):
        * bindings/js/kjs_window.h:
        * history/CachedPage.cpp:
        * history/CachedPage.h:
        * page/Chrome.cpp:

2007-12-16  Beth Dakin  <bdakin@apple.com>

        Reviewed by Geoff.

        Make relative-size SVGs work in border-image.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::calculateBackgroundSize):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::paintBorderImage):

2007-12-16  Darin Adler  <darin@apple.com>

        - fix Tiger build (my fault it was broken)

        * rendering/RenderThemeMac.mm: Define NSUInteger if on Tiger.

2007-12-16  Andrew Wellington  <proton@wiretapped.net>

        Reviewed by Darin.
        
        http://bugs.webkit.org/show_bug.cgi?id=6129
        Incomplete implementation of CSS 2.1 system colors

        Test: fast/css/css2-system-color.html
        
        Based on original patch by Rob Buis.
        
        System colors are retrieved from NSColor as appropriate. If the color is a pattern color
        (and therefore NSColor won't let us retrieve a color from it) we draw a 1x1 image of the
        color and sample that to get a solid color.

        * css/CSSStyleSelector.cpp:
        (WebCore::):
        (WebCore::colorForCSSValue):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::systemColor):
        * rendering/RenderTheme.h:
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::getSystemColor):
        (WebCore::RenderThemeMac::platformColorsDidChange):
        (WebCore::RenderThemeMac::systemColor):

2007-12-16  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16426
          Divs with overflow:auto: scrollbars not correctly updated when contents change

        Test: fast/overflow/scrollbar-position-update.html

        * platform/mac/PlatformScrollBarMac.mm:
        (WebCore::PlatformScrollbar::updateThumbProportion): Update the
        NSScroller's value for the new proportions.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateScrollInfoAfterLayout): Removed unnecessary
        repaint(). Scrollbars repaint themselves as needed.

2007-12-16  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=14140
        <rdar://problem/5270958> REGRESSION: Complex system KeyBindings don't work properly

        * dom/KeyboardEvent.h:
        (WebCore::KeypressCommand::KeypressCommand):
        (WebCore::KeyboardEvent::keypressCommands):
        Change stored command class to preserve complete information about commands.

        * editing/EditorCommand.cpp: (WebCore::CommandEntry::): Mark InsertText as a text insertion
        command, which it is. Previously, we couldn't do it because WebKit didn't really treat insertText:
        as a command.

        * page/EventHandler.cpp: (WebCore::EventHandler::keyEvent): Copy commands saved while interpreting
        a keydown event into keypress, to avoid losing state when running interpretKeyEvents: again.

2007-12-16  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=16462
        REGRESSION: access keys broken on Windows

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleAccessKey):
        (WebCore::EventHandler::keyEvent):
        * page/EventHandler.h:
        Make handleAccessKey a class method; rely on WebKit to call it on Windows and wxWidgets.

2007-12-16  Xan Lopez  <xan@gnome.org>

        Reviewed by Alexey Proskuryakov.

        http://bugs.webkit.org/show_bug.cgi?id=16454
        [GTK] Text input doesn't work consistently on PPC

        * platform/gtk/KeyEventGtk.cpp:
        (WebCore::singleCharacterString):

        UChar is 2 bytes (UTF-16), so transform accordingly from
        gunichar (UCS-4). Fixes keyboard input on big endian systems.

2007-12-15  Darin Adler  <darin@apple.com>

        Reviewed by Mark Rowe.

        - better build fix for the problem affecting GTK and some other platforms
          "this time for sure"

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSEventTargetBase.cpp: Move the include of the .lut.h file here.
        * bindings/js/JSEventTargetBase.h: Instead of including the .lut.h file in the header,
        which won't work, declare the tables that are in the .lut.h file in the header.

2007-12-12  Kevin Watters  <kevin@dotsyntax.com>

        Reviewed by Darin Adler.

        Fixed the Wx port's FontPlatformData for use in HashTable.
        - FontPlatformData(Deleted) made unequal to FontPlatformData()

        * platform/graphics/wx/FontPlatformData

2007-12-15  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix <rdar://problem/5636090> Text in Georgia, Armenian, Inuktitut, Cree, or Cherokee (KA, HY, IU, CR, CHR) draws as all missing glyphs

        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::metaFileEnumProc): Added. Called during metafile record
        enumeration and extracts the font from the create font record.
        (WebCore::FontCache::getFontDataForCharacters): If font linking fails,
        let Uniscribe draw the characters and see what font it chooses.

2007-12-15  Darin Adler  <darin@apple.com>

        * WebCore.pro: Roll my last change out. Was wrong and didn't fix the build.

2007-12-15  Darin Adler  <darin@apple.com>

        Another try at a GTK build fix.

        * WebCore.pro: Add JSEventTargetBase.cpp to LUT_TABLE_FILES instead of LUT_FILES.

2007-12-15  Sam Weinig  <sam@webkit.org>

        Force windows to regenerate COM DOM bindings.

        * WebCore.vcproj/build-generated-files.sh: Add license. 
        * bindings/scripts/CodeGeneratorCOM.pm: Use shared WK_ucfirst.

2007-12-15  Sam Weinig  <sam@webkit.org>

        Fix Windows and wx builds.

        * WebCore.vcproj/WebCore.vcproj:
        * WebCoreSources.bkl:

2007-12-15  Mark Rowe  <mrowe@apple.com>

        Gtk build fix.  Add JSEventTargetBase.cpp to SOURCES.

        * WebCore.pro:

2007-12-15  Sam Weinig  <sam@webkit.org>

        Fix wx build.

        * WebCoreSources.bkl:

2007-12-15  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Build fix for Qt/Gtk.

        * WebCore.pro: Include JSEventTargetBase.lut.h in generation

2007-12-15  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric.

        Fixes: http://bugs.webkit.org/show_bug.cgi?id=16445 (Refactor EventTargetNode & JSEventTargetNode for an upcoming SVG patch)

        Split up JSEventTargetNode in JSEventTargetNode & JSEventTargetBase - where most functionality has been moved down
        in the base class. Applied the same refactorization to EventTargetNode.

        This makes it possible for the upcoming patch implementing the EventTarget interface for SVGElementInstance
        to share as much code as possible with the EventTargetNode classes.

        * DerivedSources.make:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSEventTargetBase.cpp: Added.
        (WebCore::retrieveEventTargetAndCorrespondingNode):
        (WebCore::eventNameForPropertyToken):
        * bindings/js/JSEventTargetBase.h: Added.
        (WebCore::JSEventTargetProperties::):
        (WebCore::JSEventTargetPrototypeFunctionBase::JSEventTargetPrototypeFunctionBase):
        (WebCore::JSEventTargetPrototypeFunction::JSEventTargetPrototypeFunction):
        (WebCore::):
        (WebCore::::create):
        (WebCore::JSEventTargetBase::JSEventTargetBase):
        (WebCore::JSEventTargetBase::getValueProperty):
        (WebCore::JSEventTargetBase::putValueProperty):
        (WebCore::JSEventTargetBase::getOwnPropertySlot):
        (WebCore::JSEventTargetBase::put):
        (WebCore::JSEventTargetPrototype::JSEventTargetPrototype):
        (WebCore::JSEventTargetPrototype::self):
        (WebCore::JSEventTargetPrototype::getOwnPropertySlot):
        (WebCore::JSEventTargetPrototype::classInfo):
        * bindings/js/JSEventTargetNode.cpp:
        (WebCore::JSEventTargetNode::getOwnPropertySlot):
        (WebCore::JSEventTargetNode::getValueProperty):
        (WebCore::JSEventTargetNode::put):
        (WebCore::JSEventTargetNode::putValueProperty):
        (WebCore::JSEventTargetNode::setListener):
        (WebCore::toEventTargetNode):
        * bindings/js/JSEventTargetNode.h:
        (WebCore::JSEventTargetPrototypeInformation::prototypeClassName):
        (WebCore::JSEventTargetPrototypeInformation::prototypeIdentifier):
        * dom/EventTarget.cpp:
        (WebCore::EventTarget::addEventListener):
        (WebCore::EventTarget::removeEventListener):
        (WebCore::EventTarget::dispatchGenericEvent):
        (WebCore::EventTarget::removeAllEventListeners):
        (WebCore::EventTarget::insertedIntoDocument):
        (WebCore::EventTarget::removedFromDocument):
        (WebCore::EventTarget::handleLocalEvents):
        (WebCore::EventTarget::applySVGEventTargetRules):
        (WebCore::forbidEventDispatch):
        (WebCore::allowEventDispatch):
        (WebCore::eventDispatchForbidden):
        * dom/EventTarget.h:
        (WebCore::EventTarget::preDispatchEventHandler):
        (WebCore::EventTarget::postDispatchEventHandler):
        (WebCore::forbidEventDispatch):
        (WebCore::allowEventDispatch):
        * dom/EventTargetNode.cpp:
        (WebCore::EventTargetNode::~EventTargetNode):
        (WebCore::EventTargetNode::insertedIntoDocument):
        (WebCore::EventTargetNode::removedFromDocument):
        (WebCore::EventTargetNode::addEventListener):
        (WebCore::EventTargetNode::removeEventListener):
        (WebCore::EventTargetNode::removeAllEventListeners):
        (WebCore::EventTargetNode::handleLocalEvents):
        (WebCore::EventTargetNode::dispatchEvent):
        (WebCore::EventTargetNode::dispatchWindowEvent):
        * dom/EventTargetNode.h:
        (WebCore::EventTargetNode::localEventListeners):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::sendSVGLoadEventIfPossible):
        (WebCore::SVGElement::dispatchEvent):

2007-12-15  Eric Seidel  <eric@webkit.org>

        Reviewed by Oliver.
        
        Width of SVG elements not applied to container elements
        http://bugs.webkit.org/show_bug.cgi?id=16305
        Added calcPrefWidths for RenderSVGRoot (copied from RenderReplaced)
        This is caused by poor factoring in the render tree.  RenderContainer probably should be a template.

        svg/css/css-box-min-width.html

        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::calcPrefWidths): Added.
        * rendering/RenderSVGRoot.h:
        * css/SVGCSSStyleSelector::applySVGProperty: fixed ASSERT in debug builds

2007-12-15  David Kilzer  <ddkilzer@apple.com>

        Fix comment after isSafeScript() was renamed to allowsAccessFrom().

        * bindings/js/kjs_window.cpp:
        (KJS::createWindow):

2007-12-15  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=16449
        cairo_arc() functions hang or crash when passed inf as radius or start/end angle

        Add checks. This matches a similar workaround for a CG bug in the CG
        graphics backend: <rdar://problem/5189233>

        Fixes:
          fast/canvas/arc-crash.html
          fast/canvas/canvas-with-incorrect-args.html

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

2007-12-15  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=16078
        Google Maps zooming via the scroll wheel (almost) always zooms IN only.

        * dom/WheelEvent.cpp: (WebCore::WheelEvent::WheelEvent):
        Ensure that delta is never rounded down to zero - we are getting values less than 1 from 
        many mice on OS X, and Google Maps code assumes scrolling up if event.wheelDelta is zero.

2007-12-14  Dan Bernstein  <mitz@apple.com>

        - Windows build fix

        * WebCore.vcproj/WebCore.vcproj:

2007-12-14  Alp Toker  <alp@atoker.com>

        GTK+/Qt build fix. Track added files in r28722.

        * WebCore.pro:

2007-12-14  Sam Weinig  <sam@webkit.org>

        Reviewed by Geoff.

        Speed up getElementByClassName.
        - This makes getElementByClassName 33% faster on the stress test
          linked to at http://bugs.webkit.org/show_bug.cgi?id=15760.

        * platform/text/StringImpl.cpp:
        (WebCore::StringImpl::foldCase): Optimize the case when all the characters are ASCII.

2007-12-14  Alp Toker  <alp@atoker.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=16432
        [GTK] Update license headers

        Consent has been given by the authors of these files to change license
        to the LGPL as outlined in the bug report.

        * platform/gtk/ClipboardGtk.cpp:
        * platform/gtk/ContextMenuGtk.cpp:
        * platform/gtk/ContextMenuItemGtk.cpp:
        * platform/gtk/CookieJarGtk.cpp:
        * platform/gtk/CursorGtk.cpp:
        * platform/gtk/DragDataGtk.cpp:
        * platform/gtk/DragImageGtk.cpp:
        * platform/gtk/PasteboardGtk.cpp:
        * platform/gtk/PlatformScreenGtk.cpp:
        * platform/gtk/PlatformScrollBarGtk.cpp:
        * platform/gtk/SearchPopupMenuGtk.cpp:
        * platform/gtk/WidgetGtk.cpp:

2007-12-14  Darin Adler  <darin@apple.com>

        Reviewed by Adele.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16442
          navigation policy delegate gets called twice for each load

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::willSendRequest): Removed call to checkNavigationPolicy.
        That's handled by FrameLoader.

        * loader/MainResourceLoader.h: Removed callContinueAfterNavigationPolicy
        and continueAfterNavigationPolicy.

2007-12-14  Anders Carlsson  <andersca@apple.com>

        Reviewed by Brady.

        Make document.open count as committing a document load, so that -[WebFrame dataSource:] won't
        return nil in that case.
        
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::didExplicitOpen):

2007-12-14  David Smith  <catfish.man@gmail.com>

        Reviewed by Mitz.

        - fix http://bugs.webkit.org/show_bug.cgi?id=14955
          Implement getElementsByClassName.

        This patch also renames AtomicStringList to ClassNames to better reflect its actual use,
        and takes advantage of admitting that it's class-specific to encapsulate class attribute 
        parsing so it can be shared.  It also changes the class to use a Vector, rather than a linked
        list to store the class names.

        Tests: fast/dom/getElementsByClassName/001.html
               fast/dom/getElementsByClassName/002.html
               fast/dom/getElementsByClassName/003.html
               fast/dom/getElementsByClassName/004.html
               fast/dom/getElementsByClassName/005.html
               fast/dom/getElementsByClassName/006.html
               fast/dom/getElementsByClassName/007.html
               fast/dom/getElementsByClassName/008.html
               fast/dom/getElementsByClassName/009.html
               fast/dom/getElementsByClassName/010.xml
               fast/dom/getElementsByClassName/011.xml
               fast/dom/getElementsByClassName/012.html
               fast/dom/getElementsByClassName/013.html
               fast/dom/getElementsByClassName/014.html
               fast/dom/getElementsByClassName/array/001.html
               fast/dom/getElementsByClassName/array/002.html
               fast/dom/getElementsByClassName/array/003.html
               fast/dom/getElementsByClassName/array/004.html
               fast/dom/getElementsByClassName/dumpNodeList.html

        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchRules):
        (WebCore::CSSStyleSelector::checkOneSelector):
        * dom/AtomicStringList.h: Removed.
        * dom/ClassNames.cpp: Added.
        (WebCore::ClassNames::contains):
        (WebCore::ClassNames::parseClassAttribute):
        * dom/ClassNames.h: Copied from WebCore/dom/AtomicStringList.h.
        (WebCore::ClassNames::ClassNames):
        (WebCore::ClassNames::size):
        (WebCore::ClassNames::clear):
        (WebCore::ClassNames::operator[]):
        (WebCore::isClassWhitespace):
        * dom/ClassNodeList.cpp: Added.
        (WebCore::ClassNodeList::ClassNodeList):
        (WebCore::ClassNodeList::length):
        (WebCore::ClassNodeList::item):
        (WebCore::ClassNodeList::nodeMatches):
        * dom/ClassNodeList.h: Added.
        * dom/Document.cpp:
        (WebCore::Document::getElementsByName):
        (WebCore::Document::getElementsByClassName):
        * dom/Document.h:
        * dom/Document.idl:
        * dom/Element.cpp:
        (WebCore::Element::getClassNames):
        (WebCore::Element::getElementsByClassName):
        * dom/Element.h:
        * dom/Element.idl:
        * dom/NameNodeList.cpp:
        (WebCore::NameNodeList::NameNodeList):
        (WebCore::NameNodeList::item):
        (WebCore::NameNodeList::nodeMatches):
        * dom/NameNodeList.h:
        * dom/NamedMappedAttrMap.cpp:
        (WebCore::NamedMappedAttrMap::clearAttributes):
        (WebCore::NamedMappedAttrMap::parseClassAttribute):
        * dom/NamedMappedAttrMap.h:
        (WebCore::NamedMappedAttrMap::getClassNames):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::getClassNames):
        * dom/StyledElement.h:

2007-12-14  Darin Adler  <darin@apple.com>

        Reviewed by Sam.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16351
          FontFallbackList.h doesn't include wtf/PassRefPtr.h
          
        * platform/graphics/FontFallbackList.h: Added include of <wtf/Forward.h>
        * platform/graphics/GlyphPageTreeNode.h: Removed an unneeded include.

2007-12-14  Darin Adler  <darin@apple.com>

        Reviewed by Alexey.

        - http://bugs.webkit.org/show_bug.cgi?id=16420
          change regression tests to use document.execCommand instead of textInputController.doCommand

        Add a few more operations to document.execCommand.

        Finished up the transition to the new Editor::Command, including removing
        the Editor::execCommand function.

        * WebCore.base.exp: Added Editor::Command::isSupported.
        * editing/Editor.h: Removed execCommand.
        * editing/EditorCommand.cpp:
        (WebCore::expandSelectionToGranularity): Added.
        (WebCore::verticalScrollDistance): Added; replaces canScroll.
        (WebCore::executeDeleteBackward): Added. Moved code here from WebHTMLView.
        (WebCore::executeDeleteBackwardByDecomposingPreviousCharacter): Ditto.
        (WebCore::executeDeleteForward): Ditto.
        (WebCore::executeDeleteToBeginningOfLine): Ditto.
        (WebCore::executeDeleteToBeginningOfParagraph): Ditto.
        (WebCore::executeDeleteToEndOfLine): Ditto.
        (WebCore::executeDeleteToEndOfParagraph): Ditto.
        (WebCore::executeMovePageDown): Renamed this command to be consistent with all the other
        Move commands. They all modify the caret. Reimplemented to match the Mac OS X version by
        removing the explicit scrolling, and letting it be done automatically by code that makes
        the caret visible. In some cases the old code would scroll twice which was harmless but
        unnecessary.
        (WebCore::executeMovePageDownAndModifySelection): Added. Moved code here from WebHTMLView.
        (WebCore::executeMovePageUp): See MovePageDown above.
        (WebCore::executeMovePageUpAndModifySelection): Added. Moved code here from WebHTMLView.
        (WebCore::executeSelectLine): Ditto.
        (WebCore::executeSelectParagraph): Ditto.
        (WebCore::executeSelectSentence): Ditto.
        (WebCore::executeSelectWord): Ditto.
        (WebCore::executeSwapWithMark): Some small tweaks.

        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::contextMenuItemSelected): Changed to use Editor::command()
        instead of Editor::execCommand(). This code could be changed to use Editor::Command quite a
        bit more, but I didn't do that this time.

        - Removed some obsolete unused code.

        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::passMouseDownEventToWidget): Removed the special case code for
        NSTextView. This was left over from when we used NSTextField and NSTextView for form
        elements and is no longer used at all.

        * page/mac/WebCoreFrameBridge.h: Removed 20 unused methods that were still on one side
        of the bridge or another. We really need to find a time to tear down the rest of the
        bridge, but that's not this patch.

        * page/mac/WebCoreFrameBridge.mm:
        (-[WebCoreFrameBridge addData:]): Changed to get at the _shouldCreateRenderers field directly
        instead of using a method.
        (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
        Took out obsolete comment about matching enums (we use a single enum now and have for some
        time).
        (-[WebCoreFrameBridge selectionGranularity]): Ditto.

2007-12-14  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5575101> GoogleDocs: Hang in SplitElementCommand::doApply when outdenting a list item in a particular list

        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::splitTreeToNode): Moved here.
        * editing/CompositeEditCommand.h:
        * editing/IndentOutdentCommand.cpp: Moved splitTreeToNode.
        * editing/IndentOutdentCommand.h: Ditto, and removed unimplemented splitTreeTo.
        * editing/InsertListCommand.cpp:
        (WebCore::InsertListCommand::doApply): Split ancestors of listChildNode between
        it and listNode, if they exists, so that moving listChildNode doesn't put it out
        of order.  Added a test case to cover each change.
        * editing/SplitElementCommand.cpp:
        (WebCore::SplitElementCommand::doApply): Added an ASSERT to catch code that
        tries to split a container at a bogus child, and an early return to avoid a
        hang in that case.

2007-12-14  Anders Carlsson  <andersca@apple.com>

        Reviewed by Darin and Geoff.

        <rdar://problem/5619295> 
        REGRESSION: 303-304: Embedded YouTube video fails to render- JS errors (16150) (Flash 9)

        _NPN_CreateScriptObject doesn't take an origin root object anymore.
        
        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::createNPObject):
        * page/Frame.cpp:
        (WebCore::Frame::windowScriptNPObject):

2007-12-14  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix <rdar://problem/5643663> text-shadow and box-shadow offsets 1px smaller than specified
          which is the root cause of:
          http://bugs.webkit.org/show_bug.cgi?id=12943
          box-shadow: small values don't affect shadow position
          http://bugs.webkit.org/show_bug.cgi?id=14736
          Safari implementation of text-shadow off by 1px

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::setShadow): Slightly increase the magnitude
        of the offsets passed to CGContextSetShadow* to ensure that the end
        result after truncation is the desired integer offsets.

2007-12-13  Alp Toker  <alp@atoker.com>

        curl backend build fix for breakage introduced in r28709.

        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):

2007-12-13  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Oliver Hunt.

        <rdar://problem/5607069> In Mail, a crash occurs at WebCore::AppendNodeCommand() after dragging image into a <FORM> element

        * editing/InsertLineBreakCommand.cpp:
        (WebCore::InsertLineBreakCommand::shouldUseBreakElement): Equip this function to
        handle editing positions, like [input, 0];
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply): Pass enclosingBlock a node peeled
        off of a non-editing position, to fix a bug where the enclosing block of [input, 0] was
        the input element itself.
        Insert a <br> when a <form> element is the enclosing block instead of splitting/cloning or
        nesting a <div>.

2007-12-13  Alp Toker  <alp@atoker.com>

        Reviewed by Oliver Hunt.

        http://bugs.webkit.org/show_bug.cgi?id=16365
        [cURL] Acid2 test segmentation fault

        This patch makes the Acid2 test pass.

        Defer the cleanup of cancelled jobs and halt further transfer as early
        as possible.

        Bug found by and initial patch provided by Luca Bruno.

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::writeCallback):
        (WebCore::headerCallback):
        (WebCore::ResourceHandleManager::downloadTimerCallback):
        (WebCore::ResourceHandleManager::cancel):

2007-12-13  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Fix typos and rename InspectorController::moveByUnrestricted to InspectorController::moveWindowBy.

        * page/InspectorController.cpp:
        (WebCore::moveByUnrestricted):
        (WebCore::InspectorController::windowScriptObjectAvailable):
        (WebCore::InspectorController::moveWindowBy):
        * page/InspectorController.h:
        * page/inspector/inspector.js:

2007-12-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix <rdar://problem/5642426> explicit cubic-bezier curves all treated as "default" for transition-timing-function

        Test: fast/css/transition-timing-function.html

        * css/CSSStyleSelector.cpp: Changed the HANDLE_MULTILAYER_VALUE macro to
        not reject non-primitive non-list values, and instead made sure that the
        mapping functions rejected them if necessary. This allows non-primitive
        timing functions to be mapped.
        (WebCore::CSSStyleSelector::mapBackgroundAttachment):
        (WebCore::CSSStyleSelector::mapBackgroundClip):
        (WebCore::CSSStyleSelector::mapBackgroundComposite):
        (WebCore::CSSStyleSelector::mapBackgroundOrigin):
        (WebCore::CSSStyleSelector::mapBackgroundImage):
        (WebCore::CSSStyleSelector::mapBackgroundRepeat):
        (WebCore::CSSStyleSelector::mapBackgroundXPosition):
        (WebCore::CSSStyleSelector::mapBackgroundYPosition):
        (WebCore::CSSStyleSelector::mapTransitionDuration):
        (WebCore::CSSStyleSelector::mapTransitionRepeatCount):
        (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
        (WebCore::CSSStyleSelector::mapTransitionProperty):
        * css/CSSTimingFunctionValue.cpp:
        (WebCore::CSSTimingFunctionValue::cssText): Implemented for use in the
        regression test.
        * css/CSSTimingFunctionValue.h:
        (WebCore::CSSTimingFunctionValue::isTransitionTimingFunctionValue):
        Added. Returns true.
        * css/CSSValue.h:
        (WebCore::CSSValue::isTransitionTimingFunctionValue): Added. Returns
        false.

2007-12-13  Steve Falkenburg  <sfalken@apple.com>

        Move source file generation into its own vcproj to fix build dependencies.

        Reviewed by Adam.

        * WebCore.vcproj/WebCore.make:
        * WebCore.vcproj/WebCore.sln:
        * WebCore.vcproj/WebCore.submit.sln:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/WebCoreGenerated.vcproj: Added.

2007-12-13  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Oliver Hunt.
        
        <rdar://problem/4145786> Undoing a color change of text in a compose window always changes it back to black
        
        Some of the operations performed in removeHTMLFontStyle were non-undoable.
        
        I'm having trouble writing a layout test for this because I can't get DRT to
        perform editing operations in separate Undo steps without adding unacceptably long
        wait times between operations.  I filed:
        
        <rdar://problem/5646779> Can't get DRT to perform editing operations in separate Undo steps

        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::removeHTMLFontStyle):

2007-12-13  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=16352
        Toolbar dragged inspector cannot be moved beyond screen edges

        * page/InspectorController.cpp:
        (WebCore::moveByUnrestricted):
        (WebCore::InspectorController::windowScriptObjectAvailable):
        (WebCore::InspectorController::moveByUnrestricted):
        * page/InspectorController.h:
        * page/inspector/inspector.js:

2007-12-13  Adam Roben  <aroben@apple.com>

        Fix <rdar://5517707> Crash on wptv.wp.pl when "make bigger" button is clicked

        Windows Media Player has a modal message loop that will deliver
        messages to us at inappropriate times and we will crash if we handle
        them when they are delivered. In PluginViewWin, we add a quirk for
        Media Player to set a flag whenever we give the plugin a chance to
        execute code, and in SharedTimerWin we check if the plugin is
        executing code and repost messages if so.

        Reviewed by Anders.

        * platform/win/SharedTimerWin.cpp:
        (WebCore::TimerWindowWndProc): Repost messages if we're calling a
        plugin.
        * plugins/win/PluginViewWin.cpp: Surround all calls to the plugin with
        setCallingPlugin(true/false).
        (WebCore::PluginViewWin::updateWindow):
        (WebCore::PluginViewWin::dispatchNPEvent):
        (WebCore::PluginViewWin::setNPWindowRect):
        (WebCore::PluginViewWin::start):
        (WebCore::PluginViewWin::stop):
        (WebCore::PluginViewWin::performRequest):
        (WebCore::PluginViewWin::bindingInstance):
        (WebCore::PluginViewWin::determineQuirks):
        (WebCore::PluginViewWin::setCallingPlugin): Added.
        (WebCore::PluginViewWin::isCallingPlugin): Added.
        * plugins/win/PluginViewWin.h: Added a new quirk.

2007-12-13  Alp Toker  <alp@atoker.com>

        Add a missing DEPENDPATH. Fixes non-clean builds following networking
        header changes.

        * WebCore.pro:

2007-12-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        - fix regression in fast/text/international/bidi-override on Tiger

        * platform/graphics/GlyphPageTreeNode.cpp:
        (WebCore::GlyphPageTreeNode::initializePage): Add bidi overrides here
        too. I forgot to add them when I added them to treatAsZeroWidthSpace in
        an earlier patch.

2007-12-13  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5601583> GMail Editor: Copied link doesn't paste as a link, just colored text
        
        The code that checks the selected Range to see if it's inside an anchor
        checks ancestors of the Range's commonAncestor() but not the
        commonAncestor() itself, and so we'd fail to add markup for the enclosing
        anchor to the pasteboard.
        
        Some enclosing element getters check the node passed to the getter and some
        don't.  There were a few places where we incorrectly assumed that enclosing 
        element getters check the node passed to the getter, but this is the only 
        case that I'm able to write a test case for at the moment.
        
        In this patch I've:
        Changed enclosingNodeWithType and enclosingNodeWithTag to take in positions,
        like the newer enclosing element getters.  This is important because we must
        soon add code to the getters so that they understand that some editing positions
        inside nodes don't actually refer to positions inside those nodes but positions
        before and after them.  Like [table, 0].
        Changed enclosingNodeWithType and enclosingNodeWithTag to check nodes starting with
        n where [n, o] is the position passed to the getter, instead of starting the the parent
        of n.  This makes all but a few of the enclosing element getters behave consistently.
        Changed enclosingNodeWithType and enclosingNodeWithTag to not return non-editable 
        nodes if the input position was editable.  This fixes a bug that that the above change
        exposed.
        Changed enclosingTableCell to simply call enclosingNodeWithType.  We should do
        this for the rest of the getters, or simply remove them in favor of enclosingNodeWithType
        unless doing so would affect readability, like it would in the case of enclosingTableCell.
        Ditto for enclosingBlock.

        * editing/AppendNodeCommand.cpp:
        (WebCore::AppendNodeCommand::doApply):
        * editing/DeleteButtonController.cpp:
        (WebCore::enclosingDeletableElement):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::initializePositionData):
        (WebCore::DeleteSelectionCommand::saveFullySelectedAnchor):
        * editing/Editor.cpp:
        (WebCore::Editor::selectionUnorderedListState):
        (WebCore::Editor::selectionOrderedListState):
        * editing/IndentOutdentCommand.cpp:
        (WebCore::IndentOutdentCommand::prepareBlockquoteLevelForInsertion):
        (WebCore::IndentOutdentCommand::outdentParagraph):
        * editing/InsertNodeBeforeCommand.cpp:
        (WebCore::InsertNodeBeforeCommand::doApply):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::shouldMerge):
        (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
        (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent):
        * editing/TextIterator.cpp:
        * editing/htmlediting.cpp:
        (WebCore::enclosingBlock):
        (WebCore::enclosingNodeWithTag):
        (WebCore::enclosingNodeOfType):
        (WebCore::enclosingTableCell):
        (WebCore::isTableCell):
        * editing/htmlediting.h:
        * editing/markup.cpp:
        (WebCore::appendStartMarkup):
        (WebCore::createMarkup):

2007-12-13  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        Turn on keyboard event processing quirks for feed views and old applications on Mac OS X.

        * WebCore.base.exp:
        * dom/KeyboardEvent.cpp:
        (WebCore::KeyboardEvent::charCode):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
        (WebCore::EventHandler::keyEvent):
        * page/EventHandler.h:
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        (WebCore::Settings::setNeedsKeyboardEventDisambiguationQuirks):
        * page/Settings.h:
        (WebCore::Settings::needsKeyboardEventDisambiguationQuirks):
        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
        * platform/PlatformKeyboardEvent.h:
        * platform/mac/KeyEventMac.mm:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):

2007-12-13  Dan Bernstein  <mitz@apple.com>

        - build fix

        * platform/network/cf/ResourceErrorCF.cpp:

2007-12-13  Antti Koivisto  <antti@apple.com>

        Reviewed by Tim Hatcher.

        Fix <rdar://problem/5605674> 
        Make <video> display WebKit context menu instead of the QTKit one.
    
        It doesn't really matter where the QTMovieView is.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::createQTMovieView):
        (WebCore::MediaPlayerPrivate::setRect):

2007-12-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben.

        - ensure that Unicode bidi control characters are rendered as zero width
          spaces

        Test: fast/text/international/bidi-control-chars-treated-as-ZWS.html

        * platform/graphics/Font.h:
        (WebCore::Font::treatAsZeroWidthSpace):
        * platform/graphics/GlyphPageTreeNode.cpp:
        (WebCore::GlyphPageTreeNode::initializePage):
        * platform/text/CharacterNames.h:

2007-12-13  Brady Eidson  <beidson@apple.com>

        Build fix

        * platform/wx/TemporaryLinkStubs.cpp:

2007-12-12  Brady Eidson  <beidson@apple.com>

        Build fix

        * platform/gtk/TemporaryLinkStubs.cpp:

2007-12-12  Brady Eidson  <beidson@apple.com>

        Build fix

        * WebCore.pro:
        * history/qt/CachedPageQt.cpp: Removed. Whole purpose for this method being platform-specific has been removed

2007-12-12  Brady Eidson  <beidson@apple.com>

        Build fix

        * platform/win/TemporaryLinkStubs.cpp:

2007-12-12  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam Weinig

        Fix for <rdar://problem/4886844> and lay groundwork for <rdar://problem/4516170> (Back/Forward Cache on Windows)

        All back/forward list and page cache related items used to be in WebKit.
        When they were pushed into WebCore, some sloppy compromises were made to keep the Back/Forward cache working on Mac.
        Namely, a WebCore::HistoryItem had to know how to keep a WebDocumentView alive.  We accomplished this via some #ifdefs
        in CachedPage and having the Mac-only CachedPageMac.mm

        To get rid of that nastiness and pave the way for adding Back/Forward cache on other platforms, this patch adds the 
        concept of "CachedPagePlatformData" which can contain anything the platform API wants.  

        I also took the opportunity to do other cleanup and renaming client methods to better fit their new purposes.

        * WebCore.base.exp:
        * WebCore.xcodeproj/project.pbxproj:

        * history/CachedPage.cpp:
        (WebCore::CachedPage::~CachedPage): Combined "close()" and "clear()" to just "clear()" - call it from here.
        (WebCore::CachedPage::clear): Call clear() on the CachedPagePlatformData if it exists.  Also delete the CachedPagePlatformData.
        (WebCore::CachedPage::setCachedPagePlatformData):
        (WebCore::CachedPage::cachedPagePlatformData):
        * history/CachedPage.h:

        * history/CachedPagePlatformData.h: Added.
        (WebCore::CachedPagePlatformData::~CachedPagePlatformData): Virtual d'tor.
        (WebCore::CachedPagePlatformData::clear): Virtual method for platforms that need to do cleanup at the same time as CachedPage::clear().

        * history/PageCache.cpp:
        (WebCore::PageCache::releaseAutoreleasedPagesNow): Call "clear()" instead of "close()"

        * history/mac/CachedPageMac.mm: Removed. Functionality replaced with CachedPagePlatformData.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::transitionToCommitted): Call the new client methods.  Make some work previously done by WebKitMac cross platform 
          (setting the cached DocumentLoader to the Frame).
        (WebCore::FrameLoader::cachePageForHistoryItem):  Renamed the client methods

        * loader/FrameLoaderClient.h:  The very Mac-centric "makeDocumentView", "setDocumentViewFromCachedPage", and "saveDocumentViewToCachedPage"
          become "transitionToCommittedForNewPage", "transitionToCommittedFromCachedPage", and "savePlatformDataToCachedPage" accordingly

        * svg/graphics/SVGImageEmptyClients.h:
        (WebCore::SVGEmptyFrameLoaderClient::savePlatformDataToCachedPage):
        (WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedFromCachedPage):
        (WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedForNewPage):

2007-12-12  Dan Bernstein  <mitz@apple.com>

        Reviewed by Oliver Hunt.

        - fix <rdar://problem/5074620> text with font:initial; fails to appear (causes fast/text/font-initial.html to fail)

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty): When the font property is
        set to 'initial', set the font size to its initial value, 'medium',
        and the font family to the standard family.

2007-12-12  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5433862> Mail crashes at WebCore::highestAncestor() when deleting a particular selection

        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
        Don't remove the table row that contained the end of the selection if it is where we are
        about to place the ending selection.
        Don't remove all empty rows after the row that contained the start of the selection,
        they might come after the row that contained the end of the selection.

2007-12-12  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Add button to clear the Web Inspector's console.

        * English.lproj/InspectorLocalizedStrings.js:
        * page/inspector/ConsolePanel.js:
        * page/inspector/inspector.css:

2007-12-12  Anders Carlsson  <andersca@apple.com>

        Reviewed by Adam and Jon.

        <rdar://problem/5349282>
        popup blocking is not applied to plugins on Windows.
        
        Implement popup blocking. If the plug-in supports the new 
        NPN_PushPopupsEnabledState/NPN_PopPopupsEnabledState API we just use that
        to determine if a plug-in request can open new windows.
        
        If a plug-in does not support the new API, we assume that a plug-in can open new windows
        in response to either mouse click or key press events.
        
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginRequestWin::PluginRequestWin):
        (WebCore::PluginRequestWin::shouldAllowPopups):
        Add new shouldAllowPopups member.
        
        (WebCore::PluginViewWin::popPopupsStateTimerFired):
        Reset the popup state.
        
        (WebCore::isWindowsMessageUserGesture):
        New function that given a windows message id returns whether it's a user gesture or not.
        
        (WebCore::PluginViewWin::wndProc):
        Allow popups if the window message is a user gesture.
        
        (WebCore::PluginViewWin::dispatchNPEvent):
        New method that dispatches an NPEvent, turning on popups if necessary.
        
        (WebCore::PluginViewWin::paint):
        (WebCore::PluginViewWin::handleKeyboardEvent):
        (WebCore::PluginViewWin::handleMouseEvent):
        Call dispatchNPEvent().
        
        (WebCore::PluginViewWin::performRequest):
        (WebCore::PluginViewWin::load):
        Add calls to shouldAllowPopups().
        
        (WebCore::PluginViewWin::pushPopupsEnabledState):
        (WebCore::PluginViewWin::popPopupsEnabledState):
        New methods that maintain the popup state stack.
        
        (WebCore::PluginViewWin::arePopupsAllowed):
        New method that returns whether popups are allowed.
        
        (WebCore::PluginViewWin::PluginViewWin):
        * plugins/win/PluginViewWin.h:
        Add new instance variables.
        
        * plugins/win/npapi.cpp:
        (NPN_PushPopupsEnabledState):
        (NPN_PopPopupsEnabledState):
        Implement these.

2007-12-12  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        - fix a bug in debug builds only where selecting an earlier item in
          a popup selects the first item

        Test: fast/forms/menulist-selection-reset.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::recalcListItems): Added an argument that
        tells that function whether it should update the selected state of
        option elements.
        (WebCore::HTMLSelectElement::checkListItems): Changed to pass false
        as the above argument.
        * html/HTMLSelectElement.h:

2007-12-12  Adele Peterson  <adele@apple.com>

        Reviewed by Geoff.

        Fix for <rdar://problem/5643054> Remove cue point implementation for media elements

        When the specification for cue ranges is more final, we will implement those.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::~HTMLMediaElement):
        (WebCore::HTMLMediaElement::load):
        * html/HTMLMediaElement.h:
        * html/HTMLMediaElement.idl:
        * platform/graphics/MediaPlayer.cpp:
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::mediaPlayerTimeChanged):
        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::load):
        (WebCore::MediaPlayerPrivate::play):
        (WebCore::MediaPlayerPrivate::pause):
        (WebCore::MediaPlayerPrivate::setEndTime):
        (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
        (WebCore::MediaPlayerPrivate::endPointTimerFired):
        (WebCore::MediaPlayerPrivate::timeChanged):
        (WebCore::MediaPlayerPrivate::didEnd):
        * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
        (WebCore::MediaPlayerPrivate::endPointTimerFired):
        * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:

2007-12-12  MorganL  <morganl.webkit@yahoo.com>

        Reviewed by Maciej.

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

        When navigating back/forward to a http:// link, we should prefer to
        load from cache if possible.

        * loader/FrameLoader.cpp:

2007-12-12  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam.

        <rdar://problem/5132003>
        dumpResourceLoadCallbacks is not implemented in DRT on Windows.
        
        * platform/network/cf/ResourceErrorCF.cpp:
        (WebCore::ResourceError::unpackPlatformError):
        Handle kCFErrorDomainWinSock.
        
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::willSendRequest):
        Ignore willSendRequest calls where the redirect response is null, like we do in 
        the Mac version.

2007-12-12  Steve Falkenburg  <sfalken@apple.com>

        <rdar://problem/5643785> Fix iBench regression caused by mis-placed nested timer check.
        
        Reviewed by Anders.

        * platform/win/SharedTimerWin.cpp:
        (WebCore::TimerWindowWndProc): Don't set high-resolution timer flag inside non-high-resolution timer proc.

2007-12-12  Beth Dakin  <bdakin@apple.com>

        Reviewed by Oliver.

        Fix for <rdar://problem/5643770> REGRESSION: Free-standing SVGs 
        with width and height 100% clip to 300 x 150

        Though it was correct in an earlier iteration of my patch, it is 
        not sufficient in the final, committed version to ask if the 
        relativeWidthValue() or relativeHeightValue() is greater than 0 
        just to determine if one has been set, for, they are now 
        initialized to 300 and 150 respectively! This patch instead adds a 
        bool to keep track of whether a container size has been set, and 
        only used the relative value if it has.

        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::calcViewport):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::SVGSVGElement):
        * svg/SVGSVGElement.h:
        (WebCore::SVGSVGElement::setContainerSize):
        (WebCore::SVGSVGElement::hasSetContainerSize):

2007-12-12  Brady Eidson  <beidson@apple.com>

        Reviewed by Steve Falkenburg 

        <rdar://problem/5012636> - WebURLProtectionSpace::realm returns the hostname rather than the authentication realm

        * platform/network/ProtectionSpace.cpp:
        (WebCore::ProtectionSpace::ProtectionSpace): Assign the realm to m_realm, instead of the host

2007-12-12  Alp Toker  <alp@atoker.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=16388
        [GTK] Widget::setCursor() gets called frequently

        Cache the current cursor to avoid calling gdk_window_set_cursor() when
        there's no change in cursor.

        * platform/gtk/WidgetGtk.cpp:
        (WebCore::Widget::Widget):
        (WebCore::Widget::cursor):
        (WebCore::Widget::setCursor):

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

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=16342
        Build Warning and Error fixes in WebCore GTK+

        Use C-style casts for casting function pointers to gpointer
        Use static_cast<int> to cast a float to int to fix a warning

        * platform/gtk/PlatformScrollBarGtk.cpp:
        (PlatformScrollbar::PlatformScrollbar):
        (PlatformScrollbar::~PlatformScrollbar):
        (PlatformScrollbar::gtkValueChanged):
        * platform/gtk/ThreadingGtk.cpp:
        (callFunctionOnMainThread):
        (callOnMainThread):

2007-12-12  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - better fix for a crash when pressing a key that is not associated
          with a command

        * editing/EditorCommand.cpp:
        (WebCore::Editor::command): Return the empty command if the command name
        is empty.

2007-12-12  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=16410
        Implement isKeypadEvent() on Windows

        Test: platform/win/fast/events/keyLocation-numpad.html

        * platform/win/KeyEventWin.cpp:
        (WebCore::isKeypadEvent): Added.
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Also fixed a mistake with autorepeat.

2007-12-12  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej.

        <rdar://problem/5071781> window.mouseout events are not sent 
        to window when mouse moves out of window 

        Make PlatformMouseEvent recognise WM_MOUSELEAVE.

        * platform/win/PlatformMouseEventWin.cpp:
        (WebCore::messageToEventType):
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):

2007-12-12  Sam Weinig  <sam@webkit.org>

        Fix Mac release build.

        * WebCore.base.exp:

2007-12-12  Sam Weinig  <sam@webkit.org>

        Build fix for Qt, Gtk, and Wx.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * loader/win/FrameLoaderWin.cpp:
        (WebCore::FrameLoader::urlSelected):
        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::parseDataUrl):
        (WebCore::ResourceHandleManager::startJob):
        * platform/network/win/CookieJarWin.cpp:
        (WebCore::setCookies):
        (WebCore::cookies):
        * platform/network/win/ResourceHandleWin.cpp:
        (WebCore::ResourceHandle::start):
        * platform/qt/PasteboardQt.cpp:
        (WebCore::Pasteboard::writeURL):

2007-12-11  Dan Bernstein  <mitz@apple.com>

        Reviewed by Maciej Stachowiak.

        - allow non-integer font sizes on Windows for small caps

        * platform/graphics/win/FontDataWin.cpp:
        (WebCore::FontData::smallCapsFontData):
        * platform/graphics/win/FontPlatformData.h:
        (WebCore::FontPlatformData::size):
        (WebCore::FontPlatformData::setSize):
        * platform/graphics/win/FontPlatformDataWin.cpp:
        (WebCore::FontPlatformData::FontPlatformData):

2007-12-11  Sam Weinig  <sam@webkit.org>

        Build fix for Qt, Gtk, and Wx.

        * platform/gtk/CookieJarGtk.cpp:
        (WebCore::setCookies):
        (WebCore::cookies):
        * platform/qt/ClipboardQt.cpp:
        (WebCore::ClipboardQt::writeURL):
        * platform/qt/CookieJarQt.cpp:
        (WebCore::setCookies):
        (WebCore::cookies):
        * platform/wx/PasteboardWx.cpp:
        (WebCore::Pasteboard::writeURL):

2007-12-11  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin Adler.

        Scrub URL out of the tree in preparation for renaming KURL to URL.
            - Renames Document::URL() -> Document::url()
            - Renames DocumentLoader::URL() -> DocumentLoader::url()
            - Renames KURL::url() to KURL::string() and KURL::deprecatedString()
            - Remove FrameLoader::URL()
            - Various variable renames.

        The change from Document::URL() to Document::url() required changes
        to the bindings scripts as well, because URL() is the name of a DOM
        method.  The code generation scripts now have code to special case URL()
        to url().

        * WebCore.base.exp:
        * bindings/js/kjs_events.cpp:
        (WebCore::JSLazyEventListener::parseCode):
        * bindings/js/kjs_navigator.cpp:
        (KJS::Navigator::getValueProperty):
        * bindings/js/kjs_proxy.cpp:
        (WebCore::KJSProxy::initScript):
        * bindings/js/kjs_window.cpp:
        (KJS::Window::put):
        (KJS::Window::allowsAccessFrom):
        (KJS::Location::put):
        (KJS::LocationProtoFuncReplace::callAsFunction):
        (KJS::LocationProtoFuncReload::callAsFunction):
        (KJS::LocationProtoFuncAssign::callAsFunction):
        * bindings/scripts/CodeGenerator.pm:
        * bindings/scripts/CodeGeneratorCOM.pm:
        * bindings/scripts/CodeGeneratorJS.pm:
        * bindings/scripts/CodeGeneratorObjC.pm:
        * css/CSSImportRule.cpp:
        (WebCore::CSSImportRule::insertedIntoParent):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseContent):
        (WebCore::CSSParser::parseBackgroundImage):
        (WebCore::CSSParser::parseFontFaceSrc):
        (WebCore::CSSParser::parseBorderImage):
        (WebCore::CSSParser::createImportRule):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::setEncodedURL):
        * dom/Document.cpp:
        (WebCore::Document::processHttpEquiv):
        (WebCore::Document::cookie):
        (WebCore::Document::setCookie):
        (WebCore::Document::domain):
        (WebCore::Document::setDomain):
        (WebCore::Document::getImageMap):
        (WebCore::Document::completeURL):
        * dom/Document.h:
        (WebCore::Document::url):
        (WebCore::Document::baseURL):
        * dom/Element.cpp:
        (WebCore::Element::baseURI):
        * dom/ProcessingInstruction.h:
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::addCSSImageProperty):
        * dom/StyledElement.h:
        * dom/XMLTokenizer.cpp:
        (WebCore::XMLTokenizer::endElementNs):
        (WebCore::XMLTokenizer::end):
        (WebCore::):
        * dom/XMLTokenizer.h:
        * editing/Editor.cpp:
        (WebCore::Editor::copy):
        * editing/markup.cpp:
        (WebCore::completeURLs):
        * history/CachedPage.h:
        (WebCore::CachedPage::url):
        * history/HistoryItem.cpp:
        (WebCore::HistoryItem::HistoryItem):
        (WebCore::HistoryItem::setURL):
        (WebCore::HistoryItem::isCurrentDocument):
        * html/HTMLBaseElement.cpp:
        (WebCore::HTMLBaseElement::process):
        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::reportErrorToConsole):
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::childrenChanged):
        (WebCore::HTMLScriptElement::insertedIntoDocument):
        (WebCore::HTMLScriptElement::evaluateScript):
        * html/HTMLScriptElement.h:
        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::scriptExecution):
        * loader/Cache.cpp:
        (WebCore::createResource):
        (WebCore::Cache::requestResource):
        * loader/CachedCSSStyleSheet.cpp:
        (WebCore::CachedCSSStyleSheet::checkNotify):
        * loader/CachedResource.cpp:
        (WebCore::CachedResource::CachedResource):
        * loader/CachedResource.h:
        (WebCore::CachedResource::):
        * loader/CachedScript.h:
        * loader/DocLoader.cpp:
        (WebCore::DocLoader::checkForReload):
        (WebCore::DocLoader::requestResource):
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::url):
        (WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
        (WebCore::DocumentLoader::setRequest):
        (WebCore::DocumentLoader::startLoadingMainResource):
        * loader/DocumentLoader.h:
        * loader/FrameLoader.cpp:
        (WebCore::FormSubmission::FormSubmission):
        (WebCore::ScheduledRedirection::ScheduledRedirection):
        (WebCore::FrameLoader::changeLocation):
        (WebCore::FrameLoader::urlSelected):
        (WebCore::FrameLoader::requestFrame):
        (WebCore::FrameLoader::loadSubframe):
        (WebCore::FrameLoader::submitFormAgain):
        (WebCore::FrameLoader::submitForm):
        (WebCore::FrameLoader::didExplicitOpen):
        (WebCore::FrameLoader::replaceContentsWithScriptResult):
        (WebCore::FrameLoader::executeScript):
        (WebCore::FrameLoader::receivedFirstData):
        (WebCore::FrameLoader::begin):
        (WebCore::FrameLoader::startIconLoader):
        (WebCore::FrameLoader::commitIconURLToIconDatabase):
        (WebCore::FrameLoader::scheduleRefresh):
        (WebCore::FrameLoader::redirectionTimerFired):
        (WebCore::FrameLoader::loadPlugin):
        (WebCore::FrameLoader::didNotOpenURL):
        (WebCore::FrameLoader::updatePolicyBaseURL):
        (WebCore::FrameLoader::scrollToAnchor):
        (WebCore::FrameLoader::startRedirectionTimer):
        (WebCore::FrameLoader::load):
        (WebCore::FrameLoader::canLoad):
        (WebCore::FrameLoader::shouldHideReferrer):
        (WebCore::FrameLoader::shouldAllowNavigation):
        (WebCore::FrameLoader::commitProvisionalLoad):
        (WebCore::FrameLoader::clientRedirected):
        (WebCore::FrameLoader::open):
        (WebCore::FrameLoader::didTellBridgeAboutLoad):
        (WebCore::FrameLoader::haveToldBridgeAboutLoad):
        (WebCore::FrameLoader::post):
        (WebCore::FrameLoader::loadResourceSynchronously):
        (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
        (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
        (WebCore::FrameLoader::createHistoryItem):
        (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
        (WebCore::FrameLoader::loadItem):
        (WebCore::FrameLoader::urlsMatchItem):
        (WebCore::FrameLoader::recursiveGoToItem):
        (WebCore::FrameLoader::updateHistoryForStandardLoad):
        (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
        * loader/FrameLoader.h:
        (WebCore::FrameLoader::url):
        * loader/ImageDocument.cpp:
        (WebCore::ImageDocument::createDocumentStructure):
        * loader/MainResourceLoader.cpp:
        (WebCore::shouldLoadAsEmptyDocument):
        (WebCore::MainResourceLoader::didFinishLoading):
        * loader/NavigationAction.cpp:
        (WebCore::NavigationAction::NavigationAction):
        * loader/NavigationAction.h:
        (WebCore::NavigationAction::url):
        * loader/PluginDocument.cpp:
        (WebCore::PluginTokenizer::createDocumentStructure):
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::load):
        (WebCore::SubresourceLoader::create):
        * loader/icon/IconLoader.cpp:
        (WebCore::IconLoader::startLoading):
        (WebCore::IconLoader::finishLoading):
        * loader/loader.cpp:
        (WebCore::Loader::servePendingRequests):
        * loader/mac/LoaderNSURLExtras.m:
        (urlOriginalData):
        * page/Chrome.cpp:
        (WebCore::Chrome::setToolTip):
        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::contextMenuItemSelected):
        * page/Frame.cpp:
        (WebCore::Frame::setUserStyleSheetLocation):
        * page/InspectorController.cpp:
        (WebCore::InspectorResource::type):
        (WebCore::addSourceToFrame):
        (WebCore::InspectorController::addScriptResource):
        (WebCore::InspectorController::updateScriptResourceRequest):
        (WebCore::InspectorController::didCommitLoad):
        * page/mac/WebCoreFrameBridge.mm:
        (-[WebCoreFrameBridge getData:andResponse:forURL:]):
        * platform/KURL.h:
        (WebCore::KURL::string):
        (WebCore::KURL::deprecatedString):
        * platform/mac/ClipboardMac.mm:
        (WebCore::ClipboardMac::getData):
        * platform/mac/CookieJar.mm:
        (WebCore::cookies):
        (WebCore::setCookies):
        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::writeURL):
        (WebCore::fileWrapperForImage):
        (WebCore::Pasteboard::writeImage):
        (WebCore::Pasteboard::plainText):
        * platform/network/ResourceHandle.cpp:
        (WebCore::ResourceHandle::portAllowed):
        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::isNull):
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::willSendRequest):
        (WebCore::didReceiveResponse):
        (WebCore::didReceiveData):
        (WebCore::didFinishLoading):
        (WebCore::didFail):
        (WebCore::didReceiveChallenge):
        (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
        (WebCore::ResourceHandle::~ResourceHandle):
        (WebCore::ResourceHandle::start):
        * platform/win/ClipboardUtilitiesWin.cpp:
        (WebCore::createGlobalData):
        (WebCore::urlToMarkup):
        * platform/win/ClipboardWin.cpp:
        (WebCore::writeURL):
        (WebCore::writeImageToDataObject):
        (WebCore::ClipboardWin::writeURL):
        (WebCore::ClipboardWin::writeRange):
        * platform/win/PasteboardWin.cpp:
        (WebCore::Pasteboard::writeSelection):
        (WebCore::Pasteboard::writeURL):
        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::PluginDatabaseWin::findPlugin):
        * plugins/win/PluginStreamWin.cpp:
        (WebCore::PluginStreamWin::startStream):
        (WebCore::PluginStreamWin::destroyStream):
        * plugins/win/PluginViewWin.cpp:
        (WebCore::scriptStringIfJavaScriptURL):
        (WebCore::PluginViewWin::performRequest):
        * svg/SVGImageLoader.cpp:
        (WebCore::SVGImageLoader::updateFromElement):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::getResponseXML):
        (WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
        * xml/XSLImportRule.cpp:
        (WebCore::XSLImportRule::loadSheet):
        * xml/XSLTProcessor.cpp:
        (WebCore::XSLTProcessor::createDocumentFromSource):
        (WebCore::xsltStylesheetPointer):
        (WebCore::xmlDocPtrFromNode):

2007-12-11  Beth Dakin  <bdakin@apple.com>

        Reviewed by Darin.

        Fix for <rdar://problem/5641255> SVGs with width and height 100% 
        fail to render when used as background images

        CachedImage now has a setImageContainerSize function. It is only 
        needed for SVG right now.
        * loader/CachedImage.cpp:
        (WebCore::CachedImage::setImageContainerSize):
        * loader/CachedImage.h:

        Relatively sized SVGs have no intrinsic size. Because this call is 
        low-level enough that we cannot pass in the container size and get 
        the real size of the SVG, we need to know if it has relative 
        dimensions, and if so, we need to get the size from scaledTileSize.
        * platform/graphics/Image.cpp:
        (WebCore::Image::drawTiled):
        * platform/graphics/Image.h:
        (WebCore::Image::setContainerSize):
        (WebCore::Image::hasRelativeWidth):
        (WebCore::Image::hasRelativeHeight):

        Re-factored calculateBackgroundSize a bit so that it returns an 
        IntSize. Made it a member function so that it can send m_width and 
        m_height along to setImageContainerSize.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::calculateBackgroundSize):
        (WebCore::RenderBox::calculateBackgroundImageGeometry):
        * rendering/RenderBox.h:

        Need to account for relatively sized SVGs in calcViewport()
        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::calcViewport):
        
        Added new member variables to store the size of the SVG container. 
        relativeWidthValue() and relativeHeightValue() use the stored SVG 
        container size to correctly calculate the width and height of a 
        relatively sized SVG.
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::SVGSVGElement):
        (WebCore::SVGSVGElement::setContainerSize):
        (WebCore::SVGSVGElement::relativeWidthValue):
        (WebCore::SVGSVGElement::relativeHeightValue):
        * svg/SVGSVGElement.h:
        (WebCore::SVGSVGElement::containerSize):
        
        Re-factored size calculations to use the size of the container.
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::setContainerSize):
        (WebCore::SVGImage::size):
        (WebCore::SVGImage::hasRelativeWidth):
        (WebCore::SVGImage::hasRelativeHeight):
        * svg/graphics/SVGImage.h:

2007-12-11  Darin Adler  <darin@apple.com>

        * editing/Editor.cpp:
        (WebCore::Editor::yankFromKillRing): Try to fix non-Mac builds by adding
        a missing return statement.

2007-12-11  Darin Adler  <darin@apple.com>

        Reviewed by Geoff.

        - exposed many new commands to the DOM Document executeCommand function by
          merging the JSEditor and Editor executeCommand implementations
        - replaced the execCommand function with a EditorCommand class
        - replaced the WTF::StrHash<> class template with the WebCore::StringHash class
        - replaced the WTF::CaseInsensitiveHash<> class template with the
          WebCore::CaseFoldingHash class

        * WebCore.base.exp: Updated.
        * WebCore.pro: Added EditorCommand.cpp, removed JSEditor.cpp.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * WebCoreSources.bkl: Ditto.

        * dom/Document.cpp:
        (WebCore::Document::Document): Removed code to set up m_jsEditor.
        (WebCore::Document::~Document): Removed code to delete m_jsEditor.
        (WebCore::command): Added. Helper function that gets an Editor::Command.
        (WebCore::Document::executeCommand): Changed to use Editor::Command instead of
        JSEditor.
        (WebCore::Document::queryCommandEnabled): Ditto.
        (WebCore::Document::queryCommandIndeterm):
        (WebCore::Document::queryCommandState): Ditto.
        (WebCore::Document::queryCommandSupported): Ditto.
        (WebCore::Document::queryCommandValue): Ditto.

        * dom/Document.h: Removed JSEditor, jsEditor, m_jsEditor. Changed to
        use CaseFoldingHash.

        * editing/Editor.cpp:
        (WebCore::Editor::selectionForCommand): Renamed from selectionForEvent and
        made into a member function so it is accessible from the new EditorCommand.cpp file.
        Also changed to get the selection from the passed-in frame instead of from the
        page, because this should work on the targeted frame unless the event overrides it.
        (WebCore::Editor::handleKeypress): Updated for selectionForCommand change.
        (WebCore::Editor::handleInputMethodKeypress): Ditto.
        (WebCore::imageElementFromImageDocument): Renamed and changed to return
        a HTMLImageElement instead of a Node*.
        (WebCore::Editor::canCopy): Updated for name change.
        (WebCore::Editor::selectionUnorderedListState): Updated for TriState change.
        (WebCore::Editor::selectionOrderedListState): Ditto.
        (WebCore::Editor::selectionStartHasStyle): Make type of local more specific.
        (WebCore::updateState): Moved here from Frame.
        (WebCore::Editor::selectionHasStyle): Ditto.
        (WebCore::Editor::Editor): Initialize m_shouldStartNewKillRingSequence.
        (WebCore::Editor::insertTextWithoutSendingTextEvent): Updated for
        selectionForCommand change.
        (WebCore::Editor::copy): Updated for imageElementFromImageDocument change.
        (WebCore::Editor::toggleBold): Call the ToggleBold command via the command
        machinery since it's no longer in this file as a local function.
        (WebCore::Editor::toggleUnderline): Call the ToggleUnderline command.
        (WebCore::Editor::setBaseWritingDirection): Change type of argument and of
        local variable.
        (WebCore::Editor::addToKillRing): Moved here from EditorMac. Not useful
        without a kill ring, but it's relatively straightforward to implement one.
        (WebCore::Editor::appendToKillRing): Put default implementation here for
        platforms other than Mac. We should probably put a simple kill ring
        implementation here -- doesn't need to be shared with the OS oh platforms
        other than Mac.
        (WebCore::Editor::prependToKillRing): Ditto.
        (WebCore::Editor::yankFromKillRing): Ditto.
        (WebCore::Editor::startNewKillRingSequence): Ditto.
        (WebCore::Editor::setKillRingToYankedState): Ditto.

        * editing/Editor.h: Moved the TriState enum here instead of inside the
        Frame class. Added EditorCommandSource enum. Moved selectionHasStyle
        here from the Frame class. Added Editor::Command class with five functions
        for the various things you can do with a command (execute it, check if it
        can be used, and its state and value). Changed hte parameter of
        setBaseWritingDirection to be a const String& rather than a String.
        Got rid of the kill-ring-related operations, but added the kill ring
        functions themselves. Made selectedRange() public. Made the
        m_startNewKillRingSequence not Mac-specific and added "should" to its
        name.

        * editing/EditorCommand.cpp: Copied from WebCore/editing/Editor.cpp.
        Retained only the editing commands.
        (WebCore::targetFrame): Moved to the top of the file.
        (WebCore::executeApplyStyle): Added. Helper function for commands
        that need to apply styles.
        (WebCore::executeToggleStyle): Added. Helper function for commands
        that need to toggle styles based on the style of the start of selection.
        (WebCore::executeApplyParagraphStyle): Added. Like executeApplyStyle, but
        for paragraph styles.
        (WebCore::executeInsertFragment): Added. Helper function for commands
        that need to insert a DOM fragment.
        (WebCore::executeInsertNode): Added. Helper function for commands that
        need to insert a tree rooted in a single DOM node.
        (WebCore::stateStyle): Added. Helper function for the state of commands
        that represent style.
        (WebCore::valueStyle): Added. Helper function for the value of commands
        that represent style.
        (WebCore::canScroll): Added. Helper functions for some move and scroll
        commands that need to determine if the renderer they are in can scroll.
        (WebCore::unionDOMRanges): Moved here from EditorMac.
        (WebCore::executeBackColor):
        (WebCore::executeBackwardDelete):
        (WebCore::executeCopy):
        (WebCore::executeCreateLink):
        (WebCore::executeCut):
        (WebCore::executeDelete):
        (WebCore::executeDeleteToMark):
        (WebCore::executeDeleteWordBackward):
        (WebCore::executeDeleteWordForward):
        (WebCore::executeFindString):
        (WebCore::executeFontName):
        (WebCore::executeFontSize):
        (WebCore::executeFontSizeDelta):
        (WebCore::executeForeColor):
        (WebCore::executeFormatBlock):
        (WebCore::executeForwardDelete):
        (WebCore::executeIndent):
        (WebCore::executeInsertBacktab):
        (WebCore::executeInsertHorizontalRule):
        (WebCore::executeInsertHTML):
        (WebCore::executeInsertImage):
        (WebCore::executeInsertLineBreak):
        (WebCore::executeInsertNewline):
        (WebCore::executeInsertNewlineInQuotedContent):
        (WebCore::executeInsertOrderedList):
        (WebCore::executeInsertParagraph):
        (WebCore::executeInsertTab):
        (WebCore::executeInsertText):
        (WebCore::executeInsertUnorderedList):
        (WebCore::executeJustifyCenter):
        (WebCore::executeJustifyFull):
        (WebCore::executeJustifyLeft):
        (WebCore::executeJustifyRight):
        (WebCore::executeMoveBackward):
        (WebCore::executeMoveBackwardAndModifySelection):
        (WebCore::executeMoveDown):
        (WebCore::executeMoveDownAndModifySelection):
        (WebCore::executeMoveDownByPageAndModifyCaret):
        (WebCore::executeMoveForward):
        (WebCore::executeMoveForwardAndModifySelection):
        (WebCore::executeMoveLeft):
        (WebCore::executeMoveLeftAndModifySelection):
        (WebCore::executeMoveRight):
        (WebCore::executeMoveRightAndModifySelection):
        (WebCore::executeMoveToBeginningOfDocument):
        (WebCore::executeMoveToBeginningOfDocumentAndModifySelection):
        (WebCore::executeMoveToBeginningOfLine):
        (WebCore::executeMoveToBeginningOfLineAndModifySelection):
        (WebCore::executeMoveToBeginningOfParagraph):
        (WebCore::executeMoveToBeginningOfParagraphAndModifySelection):
        (WebCore::executeMoveToBeginningOfSentence):
        (WebCore::executeMoveToBeginningOfSentenceAndModifySelection):
        (WebCore::executeMoveToEndOfDocument):
        (WebCore::executeMoveToEndOfDocumentAndModifySelection):
        (WebCore::executeMoveToEndOfSentence):
        (WebCore::executeMoveToEndOfSentenceAndModifySelection):
        (WebCore::executeMoveToEndOfLine):
        (WebCore::executeMoveToEndOfLineAndModifySelection):
        (WebCore::executeMoveToEndOfParagraph):
        (WebCore::executeMoveToEndOfParagraphAndModifySelection):
        (WebCore::executeMoveParagraphBackwardAndModifySelection):
        (WebCore::executeMoveParagraphForwardAndModifySelection):
        (WebCore::executeMoveUp):
        (WebCore::executeMoveUpAndModifySelection):
        (WebCore::executeMoveUpByPageAndModifyCaret):
        (WebCore::executeMoveWordBackward):
        (WebCore::executeMoveWordBackwardAndModifySelection):
        (WebCore::executeMoveWordForward):
        (WebCore::executeMoveWordForwardAndModifySelection):
        (WebCore::executeMoveWordLeft):
        (WebCore::executeMoveWordLeftAndModifySelection):
        (WebCore::executeMoveWordRight):
        (WebCore::executeMoveWordRightAndModifySelection):
        (WebCore::executeOutdent):
        (WebCore::executePaste):
        (WebCore::executePasteAndMatchStyle):
        (WebCore::executePrint):
        (WebCore::executeRedo):
        (WebCore::executeRemoveFormat):
        (WebCore::executeSelectAll):
        (WebCore::executeSelectToMark):
        (WebCore::executeSetMark):
        (WebCore::executeStrikethrough):
        (WebCore::executeSubscript):
        (WebCore::executeSuperscript):
        (WebCore::executeSwapWithMark):
        (WebCore::executeToggleBold):
        (WebCore::executeToggleItalic):
        (WebCore::executeTranspose):
        (WebCore::executeUnderline):
        (WebCore::executeUndo):
        (WebCore::executeUnlink):
        (WebCore::executeUnscript):
        (WebCore::executeUnselect):
        (WebCore::executeYank):
        (WebCore::executeYankAndSelect):
        (WebCore::supported):
        (WebCore::supportedPaste):
        (WebCore::enabled):
        (WebCore::enabledAnySelection):
        (WebCore::enabledAnySelectionAndMark):
        (WebCore::enableCaretInEditableText):
        (WebCore::enabledCopy):
        (WebCore::enabledCut):
        (WebCore::enabledInEditableText):
        (WebCore::enabledInRichlyEditableText):
        (WebCore::enabledPaste):
        (WebCore::enabledRangeInEditableText):
        (WebCore::enabledRangeInRichlyEditableText):
        (WebCore::enabledRedo):
        (WebCore::enabledUndo):
        (WebCore::stateNone):
        (WebCore::stateBold):
        (WebCore::stateItalic):
        (WebCore::stateOrderedList):
        (WebCore::stateStrikethrough):
        (WebCore::stateSubscript):
        (WebCore::stateSuperscript):
        (WebCore::stateUnderline):
        (WebCore::stateUnorderedList):
        (WebCore::valueNull):
        (WebCore::valueBackColor):
        (WebCore::valueFontName):
        (WebCore::valueFontSize):
        (WebCore::valueFontSizeDelta):
        (WebCore::valueForeColor):
        (WebCore::createCommandMap): Added lots of commands, including all the commands
        from JSEditor. A few commands needed different behavior based on whether they are
        invoked from the DOM or a keyboard binding.
        (WebCore::Editor::command): Added. Gets a command object given a name.
        (WebCore::Editor::Command::Command): Added.
        (WebCore::Editor::Command::execute): Added.
        (WebCore::Editor::Command::isSupported): Added.
        (WebCore::Editor::Command::isEnabled): Added.
        (WebCore::Editor::Command::state): Added.
        (WebCore::Editor::Command::value): Added.
        (WebCore::Editor::execCommand): Changed to call command().execute().

        * editing/JSEditor.cpp: Removed.
        * editing/JSEditor.h: Removed.

        * editing/mac/EditorMac.mm: Changed to provide kill ring primitives intead of
        kill ring commands, so the kill ring commands can be cross-platform.
        (WebCore::Editor::appendToKillRing): Added.
        (WebCore::Editor::prependToKillRing): Added.
        (WebCore::Editor::yankFromKillRing): Added.
        (WebCore::Editor::startNewKillRingSequence): Added.
        (WebCore::Editor::setKillRingToYankedState): Added.

        * page/Frame.cpp: Removed selectionHasStyle, TriState, and updateState.
        * page/Frame.h: Ditto.

        * page/mac/WebCoreFrameBridge.mm: Removed selectionHasStyle.
        * page/mac/WebCoreFrameBridge.h: Ditto.

        * platform/ContextMenu.cpp:
        (WebCore::ContextMenu::checkOrEnableIfNeeded): Updated for TriState change.

        * platform/text/StringHash.h:
        (WebCore::StringHash::hash): Merged the StrHash<> template classes into this.
        (WebCore::StringHash::equal): Ditto.
        (WebCore::CaseFoldingHash::hash): Merged the CaseInsensitiveHash<> template
        classes into this.
        (WebCore::CaseFoldingHash::equal): Ditto.

        * platform/text/StringImpl.cpp:
        (WebCore::equal): Changed to invoke StringHash.
        (WebCore::equalIgnoringCase): Changed to invoke CaseFoldingHash.

        * dom/DOMImplementation.cpp:
        (WebCore::addString): Updated to use StringHash and CaseFoldingHash.
        (WebCore::isSVG10Feature): Ditto.
        (WebCore::isSVG11Feature): Ditto.
        * loader/FrameLoader.cpp:
        (WebCore::localSchemes): Ditto.
        * platform/graphics/FontCache.cpp:
        (WebCore::computeHash): Ditto.
        * platform/network/HTTPHeaderMap.h: Ditto.
        * platform/text/PlatformString.h: Ditto.
        * platform/text/StringImpl.h: Ditto.
        * rendering/RenderPartObject.cpp:
        (WebCore::RenderPartObject::updateWidget): Ditto.
        * xml/XMLHttpRequest.cpp:
        (WebCore::canSetRequestHeader): Ditto.

        * rendering/RenderTreeAsText.cpp: Removed stray include of JSEditor.h.

2007-12-11  Darin Adler  <darin@apple.com>

        * platform/wx/KeyboardEventWx.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Another try at fixing the
        WX build. Changes the code around a little bit.

2007-12-11  Darin Adler  <darin@apple.com>

        * platform/wx/KeyboardEventWx.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Quick try at fixing build.

2007-12-11  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix <rdar://problem/5631507> Text doesn't wrap properly at Tamil version of Wikipedia

        Test: fast/text/international/complex-character-based-fallback.html

        * platform/graphics/Font.cpp:
        (WebCore::Font::glyphDataForCharacter): Added a forceSmallCaps argument
        that forces this function to use the small caps font. It is used for
        combining marks that need to combine with a small cap.
        * platform/graphics/Font.h:
        * platform/win/UniscribeController.cpp:
        (WebCore::UniscribeController::advance): Changed to split the string
        into runs of characters that will be rendered using the same FontData.
        This is done by calling glyphDataForCharacter() for each cahracter to
        find the FontData it should be rendered with.
        (WebCore::UniscribeController::itemizeShapeAndPlace): Added a fontData
        argument that is passed on to shapeAndPlaceItem() instead of the
        smallCaps argument.
        (WebCore::UniscribeController::shapeAndPlaceItem): Added a fontData
        argument and removed the font fallback logic from this function, as
        it is now expected to be called with an item all of whose characters
        can be rendered with the given fontData.
        * platform/win/UniscribeController.h:

2007-12-07  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        <rdar://problem/5535636>
        Have to press 4 times instead of 2 times to get the expected result of ^^ with german keyboard.

        http://bugs.webkit.org/show_bug.cgi?id=13916
        JavaScript detects Tab as a character input on a textfield validation

        Test: platform/win/fast/events/double-dead-char.html

        * platform/PlatformKeyboardEvent.h:
        (WebCore::PlatformKeyboardEvent::):
        (WebCore::PlatformKeyboardEvent::type):
        (WebCore::PlatformKeyboardEvent::windowsVirtualKeyCode):
        (WebCore::PlatformKeyboardEvent::setWindowsVirtualKeyCode):
        (WebCore::PlatformKeyboardEvent::keyIdentifier):
        (WebCore::PlatformKeyboardEvent::setIsAutoRepeat):
        Added an explicit type member to differentiate different kinds of events:
          RawKeyDown == keydown == WM_KEYDOWN
          KeyUp == keyup == WM_KEYUP
          Char == keypress == WM_CHAR
          KeyDown == e.g. NSKeyDown or NSFlagsChanged, used on platforms that have a different model for
          event processing, and needs to be converted to RawKeyDown (+ Char) for processing in DOM.

        * platform/mac/KeyEventMac.mm:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
        Fix Enter (numeric keypad) charCode to match Return, as we check for it from keypress default handlers.
        (WebCore::windowsKeyCodeForKeyEvent): 
        (WebCore::isKeyUpEvent): Made it do something closer to what it claims; added a FIXME explaining
        that it still fails.
        (WebCore::disambiguateKeyDownEvent): Downgrade from KeyDown to RawKeyDown or Char, removing information that
        should not be available in those (because it cannot be provided on Windows).

        * platform/win/KeyEventWin.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
        Used standard Windows constants for bit masks instead of our own ones.
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): Should never be called on Windows.

        * platform/gtk/KeyEventGtk.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
        * platform/qt/PlatformKeyboardEventQt.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
        * platform/wx/KeyboardEventWx.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
        Updated for cross-platform changes as much as it was possible without appropriate build
        environments.

        * WebCore.base.exp: Export PlatformKeyboardEvent::disambiguateKeyDownEvent(), used by platforms that need to
        convert their fancy key events to RawKeyDown/Char pairs. Export Editor::isTextInsertionCommand().

        * bridge/EditorClient.h:
        Renamed handleKeypress() to handleKeyboardEvent(), as it gets both keydowns and keypresses.
        Renamed handleInputMethodKeypress() to handleInputMethodKeydown(), as IMs work with raw keydowns.

        * dom/Document.h:
        * dom/Document.cpp:
        (WebCore::Document::defaultEventHandler): Moved accesskey processing to EventHandler.

        * dom/KeyboardEvent.h: Added comments describing keyCode/charCode behavior.

        * dom/KeyboardEvent.cpp:
        (WebCore::eventTypeForKeyboardEventType):
        (WebCore::KeyboardEvent::KeyboardEvent): Conversion between platform and DOM event types is
        now straightforward, so scary hacks such as using autorepeat to distinguish types are
        not needed.
        (WebCore::KeyboardEvent::keyCode): Added a comment describing other browsers' behavior.
        (WebCore::KeyboardEvent::charCode): Added a comment describing other browsers' behavior.
        Changed to a more compatible behavior: raw keydown/keyup events do not and can not have
        character codes.

        * editing/Editor.h:
        * editing/Editor.cpp:
        (WebCore::Editor::isTextInsertionCommand): Is this command actually text input in disguise?
        (WebCore::Editor::handleKeyboardEvent): Updated for new function names.
        (WebCore::Editor::handleInputMethodKeydown): Ditto.

        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::defaultEventHandler): Perform the default action when handling an
        appropriate event. Enter is processed on keypress (and thus should be checked for via charCode,
        not keyIdentifier), Space is processed on keydown+keyup! We now match IE in that a button is
        highlighted when Space is pressed.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::defaultEventHandler):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
        Made a number of fixes to when default actions take place, similar to HTMLButtonElement ones
        described above.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::keyEvent): Unless we have a combined KeyDown, just forward the event
        to the target. Call accesskey handling directly, as it doesn't seem to be part of normal event
        handling in IE. Also streamlined the code in KeyDown case, thanks to handleInputMethodKeypress()
        now being handleInputMethodKeydown().
        (WebCore::EventHandler::handleTextInputEvent): Check that we were not called from keydown.
        (WebCore::EventHandler::defaultTextInputEventHandler): Removed a call to defaultTabEventHandler,
        as default tab handling happens when processing keydown.
        (WebCore::handleAccessKey): Moved from Document, as access keys are processed outside normal
        event handling. Fixed accesskey processing to use information that's available in a raw keydown
        event.

        (WebCore::EventHandler::defaultKeyboardEventHandler): Do not ignore keydown; in particular,
        handle tabs during keydown processing.

        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::currentKeyboardEvent): Disambiguate KeyDown as RawKeyDown, as this is
        what callers want.

        * platform/text/PlatformString.h:
        * platform/text/String.cpp:
        (WebCore::String::characterStartingAt):
        * platform/text/StringImpl.cpp:
        (WebCore::StringImpl::characterStartingAt):
        * platform/text/StringImpl.h:
        Added a UChar32 accessor.

        * svg/graphics/SVGImageEmptyClients.h:
        (WebCore::SVGEmptyEditorClient::handleKeyboardEvent):
        (WebCore::SVGEmptyEditorClient::handleInputMethodKeydown):
        Updated for new function names.

2007-12-11  John Sullivan  <sullivan@apple.com>

        Reviewed by Adele

        Tiger build fix -- don't call QTMovieView setDelegate: directly because it's not public

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::createQTMovieView):
        (WebCore::MediaPlayerPrivate::detachQTMovieView):

2007-12-11  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=16325
        <rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work

        Fix this on Windows, too!

        Test: http/tests/misc/empty-cookie.html

        * platform/network/win/CookieJarWin.cpp:
        (WebCore::setCookies):
        (WebCore::cookies):
        Same fix as on Mac, translated into CF.

        * platform/win/CookieJarWin.cpp: Removed - the real one is in platform/network/win.

2007-12-11  Christian Dywan  <christian@twotoasts.de>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16371
        Implement additional mouse cursors for Gtk

        Added cursor bitmaps from Mozilla:
        http://lxr.mozilla.org/mozilla1.8/source/widget/src/gtk2/nsGtkCursors.h

        * platform/gtk/CursorGtk.cpp:
        (WebCore::customCursorNew):
        (WebCore::verticalTextCursor):
        (WebCore::cellCursor):
        (WebCore::contextMenuCursor):
        (WebCore::noDropCursor):
        (WebCore::copyCursor):
        (WebCore::progressCursor):
        (WebCore::aliasCursor):
        (WebCore::noneCursor):
        (WebCore::notAllowedCursor):
        (WebCore::zoomInCursor):
        (WebCore::zoomOutCursor):
        * platform/gtk/CursorGtk.h: Added.

2007-12-10  Oliver Hunt  <oliver@apple.com>

        Reviewed by Weinig, Dan, and Alexey.

        Fix character set used for dynamically loaded scripts.

        Fix for:
            <rdar://problem/5333163> Safari can not display the mouse over pop menu on ChinaTimes News site correctly.
            <rdar://problem/5530048> [Safari]? :Leopard9A576: The typed CH characters displays as garbage in Sina website after reloading the webpage.
            <rdar://problem/5416588> All menus for chinese IBM site have wrong encoding
            
        Use the same logic to determine the charset for a script loaded dynamically
        as we do for a statically loaded script.

        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::insertedIntoDocument):

2007-12-10  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Oliver Hunt.

        <rdar://problem/5482023> GoogleDocs: After FormatBlock in an empty document, certain functions are disabled
        
        We were trying to insert a block of the requested type before the body element.
        
        * editing/FormatBlockCommand.cpp:
        (WebCore::FormatBlockCommand::doApply): 
        Removed unnecessary ()s in the if condition.
        Removed "|| !upstreamStart.node()->isDescendantOf(root)" from the if condition, since
        a) upstreamStart will never be outside the root editable element, since in that case
        there would be no block inside the editable root to Format, and b) if upstreamStart.node() 
        *is* the root, then refNode is the root, and we shouldn't insert before the root, we should insert
        at [root, 0].
        Added comments to explain the use of upstream() in the second if-clause.
        Added an early return for case where there is nothing selected, in that case, there is nothing
        to move.

2007-12-10  Adele Peterson  <adele@apple.com>

        Reviewed and partially fixed by Tim Hatcher.

        Remaining part of fix for <rdar://problem/5633400>
        Transformed <video> is not clipped correctly until a repaint is forced

        Replace the implementation of a QTKit method to avoid repaints from the NSView system associated with the QTMovie
        from clobbering the WebCore repaints.

        * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerRepaint): Added.
        * html/HTMLMediaElement.h:
        * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::repaint): Added.
        * platform/graphics/MediaPlayer.h: (WebCore::MediaPlayerClient::mediaPlayerRepaint): Added.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (method_setImplementation): Added for Tiger.

        (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate): Call detachQTMovieView, which now does more cleanup.
        (WebCore::MediaPlayerPrivate::cancelLoad): ditto.
        (WebCore::MediaPlayerPrivate::setVisible): ditto.
        (WebCore::MediaPlayerPrivate::detachQTMovieView): Clear the delegate as well as m_qtMovieView pointer.

        (WebCore::MediaPlayerPrivate::repaint): Added.  Triggers a repaint on the video renderer.
        (-[WebCoreMovieObserver repaint]): ditto.

        (WebCore::mainThreadSetNeedsDisplay): Added.
         Does a WebCore repaint instead of going through the view repaint system for QTMovieView.
        (WebCore::MediaPlayerPrivate::createQTMovieView): Replace the implementation of _mainThreadSetNeedsDisplay.

2007-12-10  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Updated for rename in JavaScriptCore.

        * bridge/mac/WebCoreScriptDebugger.mm:
        (-[WebCoreScriptCallFrame scopeChain]):
        (-[WebCoreScriptCallFrame functionName]):
        (-[WebCoreScriptCallFrame evaluateWebScript:]):

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

        Bug 16383: Ambiguous Window Usage in kjs_dom.cpp
        <http://bugs.webkit.org/show_bug.cgi?id=16383>

        Use KJS::Window not the ambiguous Window

        Reviewed by ddkilzer.

        * bindings/js/kjs_dom.cpp (checkNodeSecurity):

2007-12-10  Sam Weinig  <sam@webkit.org>

        Fix non-mac builds.

        * page/WindowFeatures.cpp: #include <wtf/MathExtras.h> for isnan.

2007-12-10  Marvin Decker  <marv.decker@gmail.com>

        Reviewed by Darin.

        Fix a divide by 0 in the progress tracker.
        http://bugs.webkit.org/show_bug.cgi?id=15055

        * loader/ProgressTracker.cpp:
        (WebCore::ProgressTracker::incrementProgress):

2007-12-09  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin.

        More cleanup of kjs_window.
        - Move WindowFeatures from bridge/ to page/
        - Move functions related to WindowFeatures (boolFeature,
          floatFeature, setWindowFeature, parseWindowFeatures) into the class.
        - Fix up whitespace.

        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/kjs_window.cpp:
        (KJS::DOMWindowTimer::~DOMWindowTimer):
        (KJS::createWindow):
        (KJS::showModalDialog):
        (KJS::Window::getOwnPropertySlot):
        (KJS::Window::allowsAccessFrom):
        (KJS::Window::shouldInterruptScript):
        (KJS::WindowProtoFuncAToB::callAsFunction):
        (KJS::WindowProtoFuncOpen::callAsFunction):
        (KJS::Window::setReturnValueSlot):
        (KJS::ScheduledAction::execute):
        (KJS::Window::timerFired):
        (KJS::Location::Location):
        (KJS::Location::getValueProperty):
        (KJS::Location::getOwnPropertySlot):
        (KJS::Location::put):
        (KJS::LocationProtoFuncReplace::callAsFunction): Use better variable names.
        (KJS::LocationProtoFuncAssign::callAsFunction): Ditto.
        (KJS::LocationProtoFuncToString::callAsFunction): Remove extraneous calls to
        allowsAccessFrom, cleanup the function a little.
        (KJS::PausedTimeouts::~PausedTimeouts):
        * bridge/WindowFeatures.h: Removed.
        * page/WindowFeatures.cpp: Added.
        (WebCore::isSeparator):
        (WebCore::WindowFeatures::WindowFeatures):
        (WebCore::WindowFeatures::setWindowFeature):
        (WebCore::WindowFeatures::boolFeature):
        (WebCore::WindowFeatures::floatFeature):
        * page/WindowFeatures.h: Copied from WebCore/bridge/WindowFeatures.h.
        (WebCore::WindowFeatures::WindowFeatures):

2007-12-10  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Mark Rowe.

        <rdar://problem/5639463> Bundle versions on Tiger should be 4523.x not 523.x

        * Configurations/Version.xcconfig: Some Tiger versions of Xcode don't set MAC_OS_X_VERSION_MAJOR,
          so assume Tiger and use a 4 for the SYSTEM_VERSION_PREFIX.

2007-12-10  Alp Toker  <alp@atoker.com>

        Reviewed by Niko.

        Cairo implementation of GraphicsContext::setUseAntialiasing().

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

2007-12-10  Rob Buis  <buis@kde.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=16182
        SVG should disable antialiasing for shape-rendering="crispEdges"

        Turn off anti-aliasing of shapes when shape-rendering="crispEdges".

        * platform/graphics/GraphicsContext.h:
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::setUseAntialiasing):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::setUseAntialiasing):
        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::GraphicsContext::setUseAntialiasing):
        * platform/graphics/wx/GraphicsContextWx.cpp:
        (WebCore::GraphicsContext::setUseAntialiasing):
        * rendering/RenderPath.cpp:
        (WebCore::RenderPath::paint):

2007-12-09  Rob Buis  <buis@kde.org>

        Reviewed by Niko.

        http://bugs.webkit.org/show_bug.cgi?id=16163
        SVG crash in Node::setChanged() on Debug builds only (trashed parent)

        Fix the crash by properly unregistering as client from SVGResource
        when deleting a styled svg node.

        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::~SVGStyledElement):

2007-12-10  Brady Eidson  <beidson@apple.com>

        Rubberstamped by John

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::canEstablishDatabase): If the UI Delegate returns *exactly* the estimated size
          for the new quota, we should allow the database to be created

2007-12-10  David D. Kilzer  <ddkilzer@webkit.org>

        Bug 9683: Implement select.options.remove() method
        <http://bugs.webkit.org/show_bug.cgi?id=9683>

        Reviewed by Maciej.

        Implement select.options.remove() by calling select.remove()
        with the same arguments.  This is what MSIE 7 does, although its
        select.remove() method differs from WebKit's by throwing an
        exception when called with no arguments or with a negative
        integer argument.  Note that the DOM Level 1 documentation
        specifies that select.remove() does not throw an exception.

        Tests: fast/js/select-options-remove-gc.html
               fast/js/select-options-remove.html

        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        (WebCore::JSHTMLOptionsCollection::remove): Added.
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::remove): Added.
        * html/HTMLOptionsCollection.h:
        * html/HTMLOptionsCollection.idl:

2007-12-09  Sam Weinig  <sam@webkit.org>

        Rubber stamped by Mark Rowe.

        * WebCore.xcodeproj/project.pbxproj: Add missing DerivedSources files.

2007-12-09  Oliver Hunt  <oliver@apple.com>

        Reviewed by Niko.

        Correction, 'z' and 'Z' are the only commands that cannot have an extended
        list of arguments.

        * svg/SVGParserUtilities.cpp:
        (WebCore::SVGPathParser::parseSVG):

2007-12-09  Oliver Hunt  <oliver@apple.com>

        Reviewed by Niko.

        Prevent unlimited iteration in the case of invalid path data.
        
        The only path commands that can leave numbers trailing the command processing
        are 'm' and 'M', in which trailing numbers are parsed as arguments to an
        implicit lineto command.  In any case we should just terminate as an invalid
        path.

        * svg/SVGParserUtilities.cpp:
        (WebCore::SVGPathParser::parseSVG):

2007-12-09  Luca Bruno  <lethalman88@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=15825
        [GTK] curl - slow dns causing hangs.

        Create a vector of jobs, to satisfy requests in the right order.
        Set a limit to the number of simultaneous connections.

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::maxRunningJobs): added
        (WebCore::ResourceHandleManager::ResourceHandleManager):
        (WebCore::ResourceHandleManager::removeFromCurl):
        (WebCore::ResourceHandleManager::startScheduledJobs):

        * platform/network/curl/ResourceHandleManager.h:
        (WebCore::ResourceHandleList): removed
        (WebCore::ResourceHandleManager::m_runningJobs): added
        (WebCore::ResourceHandleManager::m_resourceHandleListHead): removed
        (WebCore::ResourceHandleManager::m_resourceHandleList): added

2007-12-08  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver.

        Cleanup kjs_window.h/cpp.

        * bindings/js/kjs_window.cpp:
        (KJS::WindowPrivate::WindowPrivate):
        (KJS::DOMWindowTimer::DOMWindowTimer):
        (KJS::Window::Window):
        (KJS::Window::retrieveWindow):
        (KJS::Window::retrieveActive):
        (KJS::Window::retrieve):
        (KJS::Window::location):
        (KJS::Window::mark):
        (KJS::allowPopUp):
        (KJS::parseModalDialogFeatures):
        (KJS::floatFeature):
        (KJS::canShowModalDialog):
        (KJS::canShowModalDialogNow):
        (KJS::showModalDialog):
        (KJS::Window::getValueProperty):
        (KJS::Window::getOwnPropertySlot):
        (KJS::Window::globalExec):
        (KJS::Window::setListener):
        (KJS::Window::getListener):
        (KJS::Window::findOrCreateJSEventListener):
        (KJS::Window::findOrCreateJSUnprotectedEventListener):
        (KJS::Window::clearHelperObjectProperties):
        (KJS::Window::setCurrentEvent):
        (KJS::WindowProtoFuncAToB::callAsFunction):
        (KJS::WindowProtoFuncBToA::callAsFunction):
        (KJS::WindowProtoFuncOpen::callAsFunction):
        (KJS::WindowProtoFuncSetTimeout::callAsFunction):
        (KJS::WindowProtoFuncClearTimeout::callAsFunction):
        (KJS::WindowProtoFuncSetInterval::callAsFunction):
        (KJS::WindowProtoFuncAddEventListener::callAsFunction):
        (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
        (KJS::WindowProtoFuncShowModalDialog::callAsFunction):
        (KJS::WindowProtoFuncNotImplemented::callAsFunction):
        * bindings/js/kjs_window.h:
        (KJS::PausedTimeouts::PausedTimeouts):
        (KJS::PausedTimeouts::takeTimeouts):
        (KJS::ScheduledAction::ScheduledAction):

2007-12-08  Sam Weinig  <sam@webkit.org>

        Reviewed by Mitz.

        Move window scrolling, moving and resizing methods from KJS::Window
        to WebCore::DOMWindow so that there bindings can be autogenerated.

        Tests: fast/dom/Window/window-resize-and-move-arguments.html
               fast/dom/Window/window-scroll-arguments.html

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/kjs_window.cpp:
        (KJS::Window::getValueProperty): Remove extraneous allowsAccessFrom check.
        (KJS::WindowProtoFuncOpen::callAsFunction):
        (KJS::WindowProtoFuncNotImplemented::callAsFunction): Remove extraneous allowsAccessFrom check.
        * bindings/js/kjs_window.h:
        * bindings/scripts/CodeGeneratorJS.pm: Add new extended attribute
        to ensure that the no less than the declared number of attributes
        is allowed.
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::adjustWindowRect): Moved from kjs_window.
        (WebCore::DOMWindow::scrollBy):
        (WebCore::DOMWindow::scrollTo):
        (WebCore::DOMWindow::moveBy):
        (WebCore::DOMWindow::moveTo):
        (WebCore::DOMWindow::resizeBy):
        (WebCore::DOMWindow::resizeTo):
        * page/DOMWindow.h:
        (WebCore::DOMWindow::scroll):
        * page/DOMWindow.idl:

2007-12-08  Kevin Ollivier  <kevino@theolliviers.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=14651
        [CURL] didReceiveResponse() only called for HTTP loads

        http://bugs.webkit.org/show_bug.cgi?id=14583
        [GDK] file:// relative CSS include URLs handled incorrectly

        Make sure CURL sets the ResourceResponse URL and calls
        didReceiveResponse for local files too. 

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::writeCallback):

2007-12-08  Oliver Hunt  <oliver@apple.com>

        Reviewed by Sam W.

        Split the ENABLE_SVG_EXPERIMENTAL_FEATURES flag into separate flags.
        
        Fixes <rdar://problem/5620249> Must disable SVG animation
        <rdar://problem/5612772> Disable SVG filters on Mac to match Windows behavior
        
        In order to allow finer grained control over the set of SVG features
        this patch splits ENABLE_SVG_EXPERIMENTAL_FEATURES into the following
        distinct flags:
        ENABLE_SVG_ANIMATION
        ENABLE_SVG_FILTERS
        ENABLE_SVG_FONTS
        ENABLE_SVG_AS_IMAGE
        ENABLE_SVG_USE
        
        by default only ENABLE_SVG_AS_IMAGE and ENABLE_SVG_USE are set.

        * Configurations/WebCore.xcconfig:
        * DerivedSources.make:
          Handle the increased number of build flags that may be necessary
          
        * WebCore.SVG.Animation.exp: Added.
        * WebCore.SVG.Filters.exp: Added.
        * WebCore.SVG.exp:
          We now may not need the animation or filter exports so 
          these need to be separate.
          
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/build-generated-files.sh:
          Update for new flags
          
        Remainder of changes are to swap ENABLE(SVG_EXPERIMENTAL_FEATURES) 
        with the appropriate specific feature flag.  
        * bindings/js/JSSVGElementWrapperFactory.cpp:
        (WebCore::createJSSVGWrapper):
        * bindings/objc/DOM.mm:
        (WebCore::createElementClassMap):
        * dom/make_names.pl:
        * loader/CachedImage.cpp:
        (WebCore::CachedImage::createImage):
        * page/DOMWindow.idl:
        * rendering/RenderPath.cpp:
        (WebCore::RenderPath::absoluteClippedOverflowRect):
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
        * rendering/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::paint):
        (WebCore::RenderSVGRoot::absoluteClippedOverflowRect):
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::absoluteClippedOverflowRect):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::prepareToRenderSVGContent):
        (WebCore::finishRenderSVGContent):
        * svg/SVGAnimateElement.cpp:
        * svg/SVGAnimateElement.h:
        * svg/SVGAnimateElement.idl:
        * svg/SVGAnimateMotionElement.cpp:
        * svg/SVGAnimateMotionElement.h:
        * svg/SVGAnimateTransformElement.cpp:
        * svg/SVGAnimateTransformElement.h:
        * svg/SVGAnimateTransformElement.idl:
        * svg/SVGComponentTransferFunctionElement.cpp:
        * svg/SVGComponentTransferFunctionElement.h:
        * svg/SVGComponentTransferFunctionElement.idl:
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::SVGDocumentExtensions::startAnimations):
        * svg/SVGFEBlendElement.cpp:
        * svg/SVGFEBlendElement.h:
        * svg/SVGFEBlendElement.idl:
        * svg/SVGFEColorMatrixElement.cpp:
        * svg/SVGFEColorMatrixElement.h:
        * svg/SVGFEColorMatrixElement.idl:
        * svg/SVGFEComponentTransferElement.cpp:
        * svg/SVGFEComponentTransferElement.h:
        * svg/SVGFEComponentTransferElement.idl:
        * svg/SVGFECompositeElement.cpp:
        * svg/SVGFECompositeElement.h:
        * svg/SVGFECompositeElement.idl:
        * svg/SVGFEDiffuseLightingElement.cpp:
        * svg/SVGFEDiffuseLightingElement.h:
        * svg/SVGFEDiffuseLightingElement.idl:
        * svg/SVGFEDisplacementMapElement.cpp:
        * svg/SVGFEDisplacementMapElement.h:
        * svg/SVGFEDisplacementMapElement.idl:
        * svg/SVGFEDistantLightElement.cpp:
        * svg/SVGFEDistantLightElement.h:
        * svg/SVGFEDistantLightElement.idl:
        * svg/SVGFEFloodElement.cpp:
        * svg/SVGFEFloodElement.h:
        * svg/SVGFEFloodElement.idl:
        * svg/SVGFEFuncAElement.cpp:
        * svg/SVGFEFuncAElement.h:
        * svg/SVGFEFuncAElement.idl:
        * svg/SVGFEFuncBElement.cpp:
        * svg/SVGFEFuncBElement.h:
        * svg/SVGFEFuncBElement.idl:
        * svg/SVGFEFuncGElement.cpp:
        * svg/SVGFEFuncGElement.h:
        * svg/SVGFEFuncGElement.idl:
        * svg/SVGFEFuncRElement.cpp:
        * svg/SVGFEFuncRElement.h:
        * svg/SVGFEFuncRElement.idl:
        * svg/SVGFEGaussianBlurElement.cpp:
        * svg/SVGFEGaussianBlurElement.h:
        * svg/SVGFEGaussianBlurElement.idl:
        * svg/SVGFEImageElement.cpp:
        * svg/SVGFEImageElement.h:
        * svg/SVGFEImageElement.idl:
        * svg/SVGFELightElement.cpp:
        * svg/SVGFELightElement.h:
        * svg/SVGFEMergeElement.cpp:
        * svg/SVGFEMergeElement.h:
        * svg/SVGFEMergeElement.idl:
        * svg/SVGFEMergeNodeElement.cpp:
        * svg/SVGFEMergeNodeElement.h:
        * svg/SVGFEMergeNodeElement.idl:
        * svg/SVGFEOffsetElement.cpp:
        * svg/SVGFEOffsetElement.h:
        * svg/SVGFEOffsetElement.idl:
        * svg/SVGFEPointLightElement.cpp:
        * svg/SVGFEPointLightElement.h:
        * svg/SVGFEPointLightElement.idl:
        * svg/SVGFESpecularLightingElement.cpp:
        * svg/SVGFESpecularLightingElement.h:
        * svg/SVGFESpecularLightingElement.idl:
        * svg/SVGFESpotLightElement.cpp:
        * svg/SVGFESpotLightElement.h:
        * svg/SVGFESpotLightElement.idl:
        * svg/SVGFETileElement.cpp:
        * svg/SVGFETileElement.h:
        * svg/SVGFETileElement.idl:
        * svg/SVGFETurbulenceElement.cpp:
        * svg/SVGFETurbulenceElement.h:
        * svg/SVGFETurbulenceElement.idl:
        * svg/SVGFilterElement.cpp:
        * svg/SVGFilterElement.h:
        * svg/SVGFilterElement.idl:
        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
        * svg/SVGTimer.cpp:
        (WebCore::SVGTimer::animationsByElement):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::buildPendingResource):
        (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
        * svg/SVGUseElement.h:
        * svg/TimeScheduler.cpp:
        (WebCore::TimeScheduler::connectIntervalTimer):
        (WebCore::TimeScheduler::disconnectIntervalTimer):
        * svg/graphics/SVGResourceFilter.cpp:
        * svg/graphics/SVGResourceFilter.h:
        * svg/graphics/cg/SVGResourceFilterCg.cpp:
        * svg/graphics/cg/SVGResourceFilterCg.mm:
        * svg/graphics/filters/SVGDistantLightSource.h:
        * svg/graphics/filters/SVGFEBlend.cpp:
        * svg/graphics/filters/SVGFEBlend.h:
        * svg/graphics/filters/SVGFEColorMatrix.cpp:
        * svg/graphics/filters/SVGFEColorMatrix.h:
        * svg/graphics/filters/SVGFEComponentTransfer.cpp:
        * svg/graphics/filters/SVGFEComponentTransfer.h:
        * svg/graphics/filters/SVGFEComposite.cpp:
        * svg/graphics/filters/SVGFEComposite.h:
        * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
        * svg/graphics/filters/SVGFEConvolveMatrix.h:
        * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
        * svg/graphics/filters/SVGFEDiffuseLighting.h:
        * svg/graphics/filters/SVGFEDisplacementMap.cpp:
        * svg/graphics/filters/SVGFEDisplacementMap.h:
        * svg/graphics/filters/SVGFEFlood.cpp:
        * svg/graphics/filters/SVGFEFlood.h:
        * svg/graphics/filters/SVGFEGaussianBlur.cpp:
        * svg/graphics/filters/SVGFEGaussianBlur.h:
        * svg/graphics/filters/SVGFEImage.cpp:
        * svg/graphics/filters/SVGFEImage.h:
        * svg/graphics/filters/SVGFEMerge.cpp:
        * svg/graphics/filters/SVGFEMerge.h:
        * svg/graphics/filters/SVGFEMorphology.cpp:
        * svg/graphics/filters/SVGFEMorphology.h:
        * svg/graphics/filters/SVGFEOffset.cpp:
        * svg/graphics/filters/SVGFEOffset.h:
        * svg/graphics/filters/SVGFESpecularLighting.cpp:
        * svg/graphics/filters/SVGFESpecularLighting.h:
        * svg/graphics/filters/SVGFETile.h:
        * svg/graphics/filters/SVGFETurbulence.cpp:
        * svg/graphics/filters/SVGFETurbulence.h:
        * svg/graphics/filters/SVGFilterEffect.cpp:
        * svg/graphics/filters/SVGFilterEffect.h:
        * svg/graphics/filters/SVGLightSource.cpp:
        * svg/graphics/filters/SVGLightSource.h:
        * svg/graphics/filters/SVGPointLightSource.h:
        * svg/graphics/filters/SVGSpotLightSource.h:
        * svg/graphics/filters/cg/SVGFEBlendCg.mm:
        * svg/graphics/filters/cg/SVGFEColorMatrixCg.mm:
        * svg/graphics/filters/cg/SVGFEComponentTransferCg.mm:
        * svg/graphics/filters/cg/SVGFECompositeCg.mm:
        * svg/graphics/filters/cg/SVGFEDiffuseLightingCg.mm:
        * svg/graphics/filters/cg/SVGFEDisplacementMapCg.mm:
        * svg/graphics/filters/cg/SVGFEFloodCg.mm:
        * svg/graphics/filters/cg/SVGFEGaussianBlurCg.mm:
        * svg/graphics/filters/cg/SVGFEHelpersCg.h:
        * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
        * svg/graphics/filters/cg/SVGFEImageCg.mm:
        * svg/graphics/filters/cg/SVGFEMergeCg.mm:
        * svg/graphics/filters/cg/SVGFEOffsetCg.mm:
        * svg/graphics/filters/cg/SVGFESpecularLightingCg.mm:
        * svg/graphics/filters/cg/SVGFETileCg.mm:
        * svg/graphics/filters/cg/SVGFilterEffectCg.mm:
        * svg/graphics/filters/cg/WKArithmeticFilter.h:
        * svg/graphics/filters/cg/WKArithmeticFilter.m:
        * svg/graphics/filters/cg/WKComponentMergeFilter.h:
        * svg/graphics/filters/cg/WKComponentMergeFilter.m:
        * svg/graphics/filters/cg/WKDiffuseLightingFilter.h:
        * svg/graphics/filters/cg/WKDiffuseLightingFilter.m:
        * svg/graphics/filters/cg/WKDiscreteTransferFilter.h:
        * svg/graphics/filters/cg/WKDiscreteTransferFilter.m:
        * svg/graphics/filters/cg/WKDisplacementMapFilter.h:
        * svg/graphics/filters/cg/WKDisplacementMapFilter.m:
        * svg/graphics/filters/cg/WKDistantLightFilter.h:
        * svg/graphics/filters/cg/WKDistantLightFilter.m:
        * svg/graphics/filters/cg/WKGammaTransferFilter.h:
        * svg/graphics/filters/cg/WKGammaTransferFilter.m:
        * svg/graphics/filters/cg/WKIdentityTransferFilter.h:
        * svg/graphics/filters/cg/WKIdentityTransferFilter.m:
        * svg/graphics/filters/cg/WKLinearTransferFilter.h:
        * svg/graphics/filters/cg/WKLinearTransferFilter.m:
        * svg/graphics/filters/cg/WKNormalMapFilter.h:
        * svg/graphics/filters/cg/WKNormalMapFilter.m:
        * svg/graphics/filters/cg/WKPointLightFilter.h:
        * svg/graphics/filters/cg/WKPointLightFilter.m:
        * svg/graphics/filters/cg/WKSpecularLightingFilter.h:
        * svg/graphics/filters/cg/WKSpecularLightingFilter.m:
        * svg/graphics/filters/cg/WKSpotLightFilter.h:
        * svg/graphics/filters/cg/WKSpotLightFilter.m:
        * svg/graphics/filters/cg/WKTableTransferFilter.h:
        * svg/graphics/filters/cg/WKTableTransferFilter.m:
        * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h:
        * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm:
        * svg/svgtags.in:

2007-12-08  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adele Peterson.

        - fix two bugs in parsing of stylesheets in <style> elements created by
          the parser:
          1. each such stylesheet is parsed twice, once when the text node is
             added and again when the </style> tag is reached
          2. re-inserting such a <style> element into the document fails to
             re-parse and apply its stylesheet.

        Test for bug #2: fast/dom/HTMLStyleElement/insert-parser-generated.html

        * html/HTMLStyleElement.cpp:
        (WebCore::HTMLStyleElement::finishedParsing):
        * svg/SVGStyleElement.cpp:
        (WebCore::SVGStyleElement::finishedParsing):

2007-12-07  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin.

        - Removes the faulty isSafeScript implementation that was only
          used for plugins.
        - Renames isSafeScript to allowsAccessFrom.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::customGetOwnPropertySlot):
        (WebCore::JSDOMWindow::customPut):
        * bindings/js/kjs_dom.cpp:
        (WebCore::checkNodeSecurity):
        * bindings/js/kjs_window.cpp:
        (KJS::createWindow):
        (KJS::Window::getValueProperty):
        (KJS::Window::namedItemGetter):
        (KJS::Window::getOwnPropertySlot):
        (KJS::Window::put):
        (KJS::Window::allowsAccessFrom):
        (KJS::Window::setListener):
        (KJS::Window::getListener):
        (KJS::WindowProtoFuncOpen::callAsFunction):
        (KJS::WindowProtoFuncSetTimeout::callAsFunction):
        (KJS::WindowProtoFuncClearTimeout::callAsFunction):
        (KJS::WindowProtoFuncSetInterval::callAsFunction):
        (KJS::WindowProtoFuncAddEventListener::callAsFunction):
        (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
        (KJS::WindowProtoFuncNotImplemented::callAsFunction):
        (KJS::Location::getOwnPropertySlot):
        (KJS::Location::put):
        (KJS::LocationProtoFuncReplace::callAsFunction):
        (KJS::LocationProtoFuncReload::callAsFunction):
        (KJS::LocationProtoFuncAssign::callAsFunction):
        (KJS::LocationProtoFuncToString::callAsFunction):
        * bindings/js/kjs_window.h:
        (KJS::Window::allowsAccessFrom):
        * bindings/objc/WebScriptObject.mm:
        (-[WebScriptObject _isSafeScript]): Reverse caller/argument of allowsAccessFrom to match
        the new call.
        * bindings/scripts/CodeGeneratorJS.pm:

2007-12-08  Rob Buis  <buis@kde.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15464
        SVGLengthList allows bad values

        Be more strict with svg lengths without a unit identifier.

        Test: svg/custom/invalid-lengthlist.svg

        * svg/SVGLength.cpp:
        (WebCore::SVGLength::setValueAsString):

2007-12-08  Rob Buis  <buis@kde.org>

        Mac Tiger build fix.

        Use the wtf prefix when including MathExtras.h.

        * rendering/RenderMedia.cpp:

2007-12-08  Alp Toker  <alp@atoker.com>

        GTK+ build fix (for ENABLE_VIDEO builds):

        Include MathExtras.h to get isfinite().

        * rendering/RenderMedia.cpp:

2007-12-08  Rob Buis  <buis@kde.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15528
        svg_dynamic_cast should be removed

        Replace svg_dynamic_cast with a combination of
        isSVGElement and static_cast.

        * rendering/SVGRootInlineBox.cpp:
        (WebCore::SVGRootInlineBox::buildLayoutInformation):
        (WebCore::SVGRootInlineBox::buildTextChunks):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::targetElement):
        * svg/SVGElement.h:
        * svg/SVGElementInstance.cpp:
        (WebCore::SVGElementInstance::updateInstance):
        * svg/SVGFilterElement.cpp:
        (WebCore::SVGFilterElement::canvasResource):
        * svg/SVGGradientElement.cpp:
        (WebCore::SVGGradientElement::buildStops):
        * svg/SVGLocatable.cpp:
        (WebCore::SVGLocatable::getTransformToElement):
        * svg/SVGMaskElement.cpp:
        (WebCore::SVGMaskElement::drawMaskerContent):
        * svg/SVGSwitchElement.cpp:
        (WebCore::SVGSwitchElement::childShouldCreateRenderer):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::insertedIntoDocument):
        (WebCore::SVGUseElement::buildPendingResource):
        (WebCore::SVGUseElement::buildInstanceTree):
        (WebCore::SVGUseElement::handleDeepUseReferencing):
        (WebCore::SVGUseElement::buildShadowTree):
        (WebCore::SVGUseElement::expandUseElementsInShadowTree):
        (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
        * svg/graphics/SVGResource.cpp:
        (WebCore::getResourceById):

2007-12-07  Antti Koivisto  <antti@apple.com>

        Reviewed by Adele.
        
        Partial fix for <rdar://problem/5633400>
        Transformed <video>, <img>, <embed> are not clipped correctly until a repaint is forced
        
        Fix video painting when transform is applied.

        Test: media/video-transformed.html

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::paint):

2007-12-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16348
          @font-face does not affect the default style

        Test: fast/css/font-face-default-font.html

        * dom/Document.cpp:
        (WebCore::Document::recalcStyle): Pass our font selector to
        Font::update() if we already have one.

2007-12-07  Darin Adler  <darin@apple.com>

        - fix Windows build

        * bridge/win/GlobalHistoryWin.cpp:
        (WebCore::historyContains): Missed a rename.

2007-12-07  Brady Eidson  <beidson@apple.com>

        Reviewed by Anders and Darin

        When a statement bumps up against the quota and the UI Delegate grants more space, we need to
        actually set the new maximum size on the SQLiteDatabase (in addition to storing the new max quota
        in the DatabaseTracker, which was already done)

        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::runStatements): If a statement is being retried, set the maximum size on
          the SQLiteDatabase to the new maximum size

2007-12-07  Darin Adler  <darin@apple.com>

        - fix Tiger build

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Tiger didn't even have
        QTKIT_VERSION_MAX_ALLOWED, so add logic to work without that.

2007-12-07  Darin Adler  <darin@apple.com>

        - fix 64-bit build, hopefully without breaking Tiger build

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::updateStates):
        Don't use Movies.h constants that are nonexistent in 64-bit.
        Define the new QTMovie.h constants, though, when using an older QTKit.

2007-12-07  Brady Eidson  <beidson@apple.com>

        Reviewed by Anders

        Fix <rdar://problem/5636115> - Prompted for quota increase to create database when it already existed

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::canEstablishDatabase): Check hasEntryForDatabase before doing any prompting
        (WebCore::DatabaseTracker::hasEntryForDatabase): Check and see if this database already exists
        * storage/DatabaseTracker.h:

2007-12-07  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - http://bugs.webkit.org/show_bug.cgi?id=15981
          speed up visited-link code a bit

        * bridge/GlobalHistory.h: Change historyContains to take a character pointer plus length
        instead of requiring a DeprecatedString.

        * bridge/mac/GlobalHistoryMac.mm: (WebCore::historyContains): Updated for above change.
        Also removes pointless "fast Latin-1" case that was never used.
        * bridge/win/GlobalHistoryWin.cpp: (WebCore::historyContains): Ditto.
        * platform/gtk/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.
        * platform/wx/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.

        * css/CSSStyleSelector.cpp:
        (WebCore::findHash): Added. Helper for cleanpath.
        (WebCore::findSlashDotDotSlash): Ditto.
        (WebCore::findSlashSlash): Ditto.
        (WebCore::findSlashDotSlash): Ditto.
        (WebCore::cleanpath): Changed to use fast helper functions instead of slower general-purpose
        DeprecatedString find function.
        (WebCore::containsColonSlashSlash): Added. Helper for checkPseudoState.
        (WebCore::checkPseudoState): Got rid of reference count churn by using an AtomicString*
        instead of an AtomicString for the attribute value. Changed to use fast helper function
        instead of slower DeprecatedString::contains function, and also made the fast case not
        bother allocating a DeprecatedConstString.

        - unrelated tiny cleanup

        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
        (WebCore::releaseCachedStops): Use static_cast instead of reinterpret_cast.
        (WebCore::cgGradientCallback): Ditto.

2007-12-07  Darin Adler  <darin@apple.com>

        Fix build on Tiger (Mark Rowe told me how).

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        Include <objc/objc-runtime.h>, which existed back on Tiger,
        rather than <objc/runtime.h>, which did not.

2007-12-07  Geoffrey Garen  <ggaren@apple.com>

        Build fix: rolling out last build fix to change #include path.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

2007-12-07  Steve Falkenburg  <sfalken@apple.com>

        Re-named our B&I flag from BUILDBOT to PRODUCTION.

        Reviewed by Sam Weinig.

        * WebCore.vcproj/WebCore.make:

2007-12-07  Geoffrey Garen  <ggaren@apple.com>

        Build fix: corrected #include path.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

2007-12-07  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Added some namespace qualifications and a forwarding header, now that
        KJS::Node is sometimes #included in WebCore by JavaScriptCore headers.

        * ForwardingHeaders/wtf/ListRefPtr.h: Added.
        * bindings/js/JSXSLTProcessor.cpp:
        (KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
        * bindings/js/kjs_binding.cpp:
        (KJS::ScriptInterpreter::getDOMNodeForDocument):
        (KJS::ScriptInterpreter::forgetDOMNodeForDocument):
        (KJS::ScriptInterpreter::putDOMNodeForDocument):
        (KJS::ScriptInterpreter::markDOMNodesForDocument):
        (KJS::ScriptInterpreter::updateDOMNodeDocument):

2007-12-07  Adam Roben  <aroben@apple.com>

        Add SoftLinking.h for Windows and use it in a few places

        Reviewed by Oliver.

        * WebCore.vcproj/WebCore.vcproj: Added new file to project.
        * platform/win/PlatformScrollBarSafari.cpp: Use SoftLinking.h.
        (WebCore::PlatformScrollbar::PlatformScrollbar): Removed manual
        soft-linking calls.
        (WebCore::PlatformScrollbar::paintButton): Check for the presence of
        the SafariTheme library now that we can't check for the presence of
        paintThemePart directly.
        (WebCore::PlatformScrollbar::paintTrack): Ditto.
        (WebCore::PlatformScrollbar::paintThumb): Ditto.
        * platform/win/SoftLinking.h: Copied from WebCore/platform/mac/SoftLinking.h.
        * rendering/RenderThemeSafari.cpp: Same basic changes as to
        PlatformScrollBarSafari.cpp.
        (WebCore::RenderThemeSafari::RenderThemeSafari):
        (WebCore::RenderThemeSafari::isControlStyled):
        (WebCore::RenderThemeSafari::paintCapsLockIndicator):
        * rendering/RenderThemeSafari.h: Removed m_themeDLL member.

2007-12-07  Darin Adler  <darin@apple.com>

        Reviewed by Adele.

        - fix <rdar://problem/5608795> CrashTracer: 481 crashes in Safari
          at WebCore::HTMLSelectElement::saveState const + 152

        Test: fast/forms/select-set-inner.html

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::removeChildren): Added a return value, as with other
        calls that change children, so we can optimize for the case where it does nothing.
        (WebCore::ContainerNode::cloneChildNodes): Changed parameter type to ContainerNode.
        * dom/ContainerNode.h: See above.

        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::removeChildren): Override removeChildren and call
        recalcSelectOptions in that case.
        (WebCore::HTMLOptGroupElement::childrenChanged): Override childrenChanged instead of
        addChild, for consistency with HTMLSelectElement; no need to override both.
        (WebCore::HTMLOptGroupElement::groupLabelText): Made const.
        * html/HTMLOptGroupElement.h: See above.

        * html/HTMLSelectElement.cpp: Don't override addChild any more, because we already
        override childrenChanged, and addChild calls that.
        (WebCore::HTMLSelectElement::removeChildren): Override removeChildren and call
        recalcSelectOptions in that case.
        (WebCore::HTMLSelectElement::recalcListItems): Tightened up the code a little bit
        by using a for loop and traverseNextSibling. Also added some new comments and
        removed some obsolete ones.
        (WebCore::HTMLSelectElement::checkListItems): Added. Debug-only check to make
        sure we don't have a stale list items vector.
        * html/HTMLSelectElement.h: Changed listItems() to invoke checkListItems().
        This will help us catch cases where we have too few calls to setRecalcListItems.

2007-12-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - WebCore part of fixing <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges

        Test: fast/repaint/focus-ring.html

        * editing/SelectionController.cpp:
        (WebCore::SelectionController::caretRepaintRect): Changed to return just
        the caret rect without any padding.
        (WebCore::SelectionController::recomputeCaretRect): Changed to repaint
        just the caret rect without any padding.
        * platform/graphics/GraphicsContext.h: Removed setFocusRingClip() and
        clearFocusRingClip().
        * platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto.
        * platform/graphics/cg/GraphicsContextCG.cpp: Ditto.
        * platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed
        m_focusRingClip member.
        * platform/graphics/mac/GraphicsContextMac.mm:
        (WebCore::GraphicsContext::drawFocusRing): Changed to call
        wkDrawFocusRing() once without setting up additional clip. On Leopard,
        wkDrawFocusRing() respects the context clip now. On Tiger, a
        transparency layer is used to apply clipping to the focus ring.
        * platform/graphics/qt/GraphicsContextQt.cpp: Removed focus ring clip
        methods and member.
        * platform/graphics/wx/GraphicsContextWx.cpp: Ditto.
        * platform/mac/WebCoreSystemInterface.h: Removed the clipRect argument
        to wkDrawFocusRing().
        * platform/mac/WebCoreSystemInterface.mm: Ditto.
        * rendering/RenderLayer.cpp:
        (WebCore::setClip): Removed call to set the focus ring clip.
        (WebCore::restoreClip): Removed call to reset the focus ring clip.

2007-12-07  Darin Adler  <darin@apple.com>

        Reviewed by Antti Koivisto and Kevin Decker.

        - fix <rdar://problem/5601586> QtKit should be dynamically loaded upon need, not linked at startup

        Also did a lot of small tweaks to MediaPlayerPrivateQTKit.

        * WebCore.xcodeproj/project.pbxproj: Don't link to QTKit.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Omit unneeded includes and declarations.
        Made a lot more functions const. Made a few more members private and a couple inline.
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Added soft linking machinery for all the
        things we currently use in QTKit. It's a little more awkward for classes and other data objects
        than it is for functions, but still relatively straightforward, with no changes needed to the
        client code. Added using namespace directives. Made a cuePointTimerInterval constant and put
        it at the top of the file. Use 0 consistently instead of sometimes 0 and sometimes 0.0f.
        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Removed unneeded initialization of RetainPtr
        members to nil.
        (WebCore::MediaPlayerPrivate::createQTMovie): Use adoptNS instead of autorelease.
        (WebCore::MediaPlayerPrivate::createQTMovieView): Ditto. Also use -[NSColor clearColor].
        (WebCore::MediaPlayerPrivate::createQTTime): Remove an unneeded type cast that had no effect.
        Changed to use long instead of int because that's the type for a QTTime time scale anyway.
        (WebCore::MediaPlayerPrivate::duration): Use a static_cast instead of a C-style cast.
        (WebCore::MediaPlayerPrivate::currentTime): Ditto. Also merged into a single expression.
        (WebCore::MediaPlayerPrivate::cuePointTimerFired): Added code to make a copy of the cue
        points set to avoid a potential problem with a set being modified as we iterate it.
        (WebCore::MediaPlayerPrivate::bytesLoaded): Removed unneeded null check of m_qtMovie.
        (WebCore::MediaPlayerPrivate::updateStates): Instead of comments explaining the numeric
        values, used the constants from the headers directly.
        (WebCore::MediaPlayerPrivate::getSupportedTypes): Instead of (QTMovieFileTypeOptions)0,
        pass the named constant with value 0, QTIncludeCommonTypes. Skipped the intermediate type
        of NSString to remove one cast. Replaced C-style cast with reinterpret_cast (arguably
        no better). Used RetainPtr instead of explicit CFRelease calls.

        * platform/mac/SoftLinking.h: Added macros to do soft linking for classes and for pointers.
        It's not quite as automatic as the soft linking we can do for functions, since these define
        functions to get the values, so you need to define macros to make what look like variable
        accesses turn into function calls. See MediaPlayerPrivateQTKit for the details.

        * html/HTMLMediaElement.h:
        * html/TimeRanges.h:
        * html/VoidCallback.h:
        * platform/graphics/MediaPlayer.h:
        Use angle brackets for wtf includes. Omit unneeded includes.

2007-12-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16334
          <rdar://problem/5634923> REGRESSION (r28299): Homepage of any DotMac Web Gallery won't load completely

        Test: fast/dynamic/subtree-no-common-root-static-y.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::markContainingBlocksForLayout): Changed the call
        to setChildNeedsLayout() to not mark containing blocks and added a
        separate call to markContainingBlocksForLayout() that will not schedule
        a layout if we are already in the middle of scheduleRelayoutOfSubtree().

2007-12-07  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=16325
        <rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
        
        Test: http/tests/misc/empty-cookie.html

        * platform/mac/CookieJar.mm:
        (WebCore::setCookies): Don't store empty cookies.
        (WebCore::cookies): Filter out empty cookies if we have them, as they could have been set
        with an earlier version of Leopard!

2007-12-06  Ada Chan  <adachan@apple.com>

        Fixed the if statement (ERROR_SUCCESS is 0 and we were actually
        returning true when there's an error).

        Reviewed by Steve.

        * platform/win/FileSystemWin.cpp:
        (WebCore::makeAllDirectories):

2007-12-06  Darin Adler  <darin@apple.com>

        - fix broken regression test

        * bindings/js/kjs_binding.cpp:
        (KJS::setDOMException): Oops, this was just supposed to be PERMISSION_DENIED.

2007-12-06  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16332
          ObjC DOM exception object descriptions should include the exception name

        * WebCore.pro: Added ExceptionCode.cpp.
        * WebCore.vcproj/WebCore.vcproj: Added ExceptionCode.cpp.
        * WebCore.xcodeproj/project.pbxproj: Added ExceptionCode.cpp.
        * WebCoreSources.bkl: Added ExceptionCode.cpp.

        * bindings/js/kjs_binding.cpp: (KJS::setDOMException): Moved the code to decompose an
        ExceptionCode into ExceptionCode.h/cpp -- getExceptionCodeDescription. Also removed
        the many unneeded includes that were here. Had to keep one special case here, for
        SECURITY_ERR.

        * bindings/objc/ExceptionHandlers.mm: (WebCore::raiseDOMException): Changed to use the
        new getExceptionCodeDescription function so that this shares the exception name
        information that was previously only available to JavaScript.

        * dom/ExceptionCode.cpp: Copied from bindings/js/kjs_binding.cpp.
        (WebCore::getExceptionCodeDescription): Added some assertions, and made the function
        handle exception names in a slightly more robust way that is not subject to integer
        overflow. (Not a real world issue since we should never receive a bad exception code.)

        * dom/ExceptionCode.h: Added the ExceptionCodeDescription struct and the
        getExceptionCodeDescription function.

        * svg/SVGException.h: Added a missing #include and got rid of some comments. Some of
        the comments were mildly helpful, but others were incorrect. This now matches the other
        exception-related headers such as RangeException.h.

2007-12-06  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin

        Fixed a glaring bug that would prevent a statement from getting run a second time

        * storage/SQLStatement.cpp:
        (WebCore::SQLStatement::execute): Clear failure due to quota *before* we check the error
          and return early
        (WebCore::SQLStatement::clearFailureDueToQuota): Only clear the error if it was a quota error

2007-12-06  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Oliver Hunt.

        Use keydown instead of keypress so keyIdentifier can be used.

        * page/inspector/ConsolePanel.js: Use keydown instead of keypress.
        * page/inspector/DatabasePanel.js: Ditto.
        * page/inspector/inspector.js: Ditto. Plus call removeEventListener
        before deleting windowLoaded.

2007-12-06  Adam Roben  <aroben@apple.com>

        Rename FontsTable.plist to FontsList.plist

        Rubberstamped by Hyatt.

        * platform/graphics/win/FontDatabase.cpp:

2007-12-06  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin

        Tweaked a comment and a few assertions from my last checkin

        * storage/SQLStatement.cpp:
        (WebCore::SQLStatement::execute):
        (WebCore::SQLStatement::clearFailureDueToQuota):
        (WebCore::SQLStatement::lastExecutionFailedDueToQuota):

2007-12-06  Brady Eidson <beidson@apple.com>

        Reviewed by Darin

        Finished hooking up UI Delegate for databases - Database operations will now enforce a size quota and
        will ask the UI Delegate for more space when that quota is met

        * platform/sql/SQLiteDatabase.cpp: Add the new SQLResultFull constant
        * platform/sql/SQLiteDatabase.h: Ditto

        * storage/Database.cpp:
        (WebCore::Database::securityOriginData): Added this accessor, copying for thread safety
        (WebCore::Database::stringIdentifier): Ditto
        * storage/Database.h:

        * storage/SQLStatement.cpp:
        (WebCore::SQLStatement::SQLStatement):
        (WebCore::SQLStatement::execute): Change to return an enum that represents 3 states - success, error, and quota.
          If the result is quota, this statement expects that it might be run again, presumably after the user increases 
          the quota
        (WebCore::SQLStatement::setFailureDueToQuota): Setup a quota failure, including a flag and the error
        (WebCore::SQLStatement::clearFailureDueToQuota): Clear a quota failure, for when the statement is rerun
        (WebCore::SQLStatement::lastExecutionFailedDueToQuota):
        * storage/SQLStatement.h:

        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::SQLTransaction):
        (WebCore::SQLTransaction::performPendingCallback): Added an acceptable callback pointer
        (WebCore::SQLTransaction::openTransactionAndPreflight): Setup the quota in the database that will remain for this 
          transaction.  Note that in this patch, the quota being set is wrong - it makes sense to fix that in a follow up patch
        (WebCore::SQLTransaction::runStatements): Modified to add the ability to re-run a statement based on the UI delegate
          decision and whether the current statement was already run
        (WebCore::SQLTransaction::runCurrentStatement): Added another result condition - the Quota result - and handle it
        (WebCore::SQLTransaction::handleCurrentStatementError): Statements can now error-out from two places, so the code
          that handles a statement error was moved here
        (WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Added - Consult the UI delegate for more quota, then 
          reschedule the current statement on the database thread
        * storage/SQLTransaction.h:

2007-12-06  Steve Falkenburg  <sfalken@apple.com>

        <rdar://problem/5614257> Crash in timer / hashtable code due to uncaught exception
        
        Don't use callback-based timers, since these cause Windows to eat Windows crashes
        in code the timers call.
        
        Windows appears to be defending against "shatter" attacks partially by setting
        up a structured exception block while dispatching callback-based WM_TIMERs.
        
        I verified this by adding a divide by zero into some timer callback code.
        In the case where the timer was dispatched via a callback, the divide by zero
        exception was silently handled and ignored, with execution continuing after
        our call to DispatchMessage.  When processed via the WNDPROC, no SEH
        block was established by Windows, and our divide by zero generated a real
        crash (which is what we wanted).
        
        Windows handling our crashes for us led us to leave the timer data structures
        in an invalid state so the next time a timer was set, we'd crash accessing an
        invalid HashMap of timer data.
        
        Reviewed by Hyatt.

        * platform/win/SharedTimerWin.cpp:
        (WebCore::TimerWindowWndProc):
        (WebCore::setSharedTimerFireTime):

2007-12-06  Adam Roben  <aroben@apple.com>

        Fix <rdar://5108390> Feed title is too low in blue banner

        Way back in r23069 we started applying the same font ascent hack that
        Mac WebKit applies to Helvetica, Times, and Courier. We did this so
        that those fonts would match the Mac metrics when we run the
        regression tests. However, this hack was applying to Arial on Windows
        when a site would specify the Helvetica font face because Windows will
        alias the font names. Instead of removing the hack entirely, we
        turn it off by default but provide some SPI so that DumpRenderTree can
        turn it on.

        Reviewed by Hyatt.

        All tests pass.

        * platform/graphics/FontData.h: Add a new static method to turn on the
        hack on Windows only.
        * platform/graphics/win/FontDataWin.cpp:
        (WebCore::FontData::setShouldApplyMacAscentHack): Added.
        (WebCore::FontData::platformInit): Only perform the hack if
        shouldApplyMacAscentHack is true.

2007-12-06  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Fixed http://bugs.webkit.org/show_bug.cgi?id=16328
        REGRESSION (r28470): Crash expanding a GMail conversation
        
        * page/Frame.cpp:
        (WebCore::Frame::scriptProxy): Only return 0 if JS seems disabled *and*
        we haven't created the proxy yet. If we've created the proxy already, a
        script may be in the midst of execution, even though we've lost our
        settings object. During execution, scripts assume they have free access
        to the proxy.

2007-12-06  Adele Peterson  <adele@apple.com>

        Reviewed by Oliver.

        Fix for <rdar://problem/5631356> Toggling display property on video causes controls to get lost

        * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::attach): Call updateFromElement.
        * html/HTMLMediaElement.h:

2007-12-05  Antti Koivisto  <antti@apple.com>

        Reviewed by Oliver.

        Rename

        Movie -> MediaPlayer
        MoviePrivate -> MediaPlayerPrivate
        
        Movie is QuickTime terminology and clashes with its C API.

        * WebCore.xcodeproj/project.pbxproj:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::~HTMLMediaElement):
        (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
        (WebCore::HTMLMediaElement::bufferingRate):
        (WebCore::HTMLMediaElement::load):
        (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
        (WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged):
        (WebCore::HTMLMediaElement::setReadyState):
        (WebCore::HTMLMediaElement::progressEventTimerFired):
        (WebCore::HTMLMediaElement::seek):
        (WebCore::HTMLMediaElement::currentTime):
        (WebCore::HTMLMediaElement::duration):
        (WebCore::HTMLMediaElement::playbackRate):
        (WebCore::HTMLMediaElement::setPlaybackRate):
        (WebCore::HTMLMediaElement::play):
        (WebCore::HTMLMediaElement::pause):
        (WebCore::HTMLMediaElement::setVolume):
        (WebCore::HTMLMediaElement::setMuted):
        (WebCore::HTMLMediaElement::pickMedia):
        (WebCore::HTMLMediaElement::checkIfSeekNeeded):
        (WebCore::HTMLMediaElement::mediaPlayerVolumeChanged):
        (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
        (WebCore::HTMLMediaElement::mediaPlayerCuePointReached):
        (WebCore::HTMLMediaElement::addCuePoint):
        (WebCore::HTMLMediaElement::buffered):
        (WebCore::HTMLMediaElement::seekable):
        (WebCore::HTMLMediaElement::effectiveStart):
        (WebCore::HTMLMediaElement::effectiveEnd):
        (WebCore::HTMLMediaElement::effectiveLoopStart):
        (WebCore::HTMLMediaElement::effectiveLoopEnd):
        (WebCore::HTMLMediaElement::updateMediaPlayer):
        (WebCore::HTMLMediaElement::willSaveToCache):
        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::player):
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::videoWidth):
        (WebCore::HTMLVideoElement::videoHeight):
        * platform/MIMETypeRegistry.cpp:
        (WebCore::initialiseSupportedMediaMIMETypes):
        (WebCore::MIMETypeRegistry::isSupportedMediaMIMEType):
        (WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes):
        * platform/MIMETypeRegistry.h:
        * platform/graphics/MediaPlayer.cpp: Copied from WebCore/platform/graphics/Movie.cpp.
        (WebCore::MediaPlayer::MediaPlayer):
        (WebCore::MediaPlayer::~MediaPlayer):
        (WebCore::MediaPlayer::load):
        (WebCore::MediaPlayer::cancelLoad):
        (WebCore::MediaPlayer::play):
        (WebCore::MediaPlayer::pause):
        (WebCore::MediaPlayer::duration):
        (WebCore::MediaPlayer::currentTime):
        (WebCore::MediaPlayer::seek):
        (WebCore::MediaPlayer::paused):
        (WebCore::MediaPlayer::seeking):
        (WebCore::MediaPlayer::naturalSize):
        (WebCore::MediaPlayer::hasVideo):
        (WebCore::MediaPlayer::networkState):
        (WebCore::MediaPlayer::readyState):
        (WebCore::MediaPlayer::volume):
        (WebCore::MediaPlayer::setVolume):
        (WebCore::MediaPlayer::rate):
        (WebCore::MediaPlayer::setRate):
        (WebCore::MediaPlayer::muted):
        (WebCore::MediaPlayer::setMuted):
        (WebCore::MediaPlayer::dataRate):
        (WebCore::MediaPlayer::setEndTime):
        (WebCore::MediaPlayer::addCuePoint):
        (WebCore::MediaPlayer::removeCuePoint):
        (WebCore::MediaPlayer::clearCuePoints):
        (WebCore::MediaPlayer::maxTimeBuffered):
        (WebCore::MediaPlayer::maxTimeSeekable):
        (WebCore::MediaPlayer::bytesLoaded):
        (WebCore::MediaPlayer::totalBytesKnown):
        (WebCore::MediaPlayer::totalBytes):
        (WebCore::MediaPlayer::setRect):
        (WebCore::MediaPlayer::visible):
        (WebCore::MediaPlayer::setVisible):
        (WebCore::MediaPlayer::paint):
        (WebCore::MediaPlayer::getSupportedTypes):
        (WebCore::MediaPlayer::networkStateChanged):
        (WebCore::MediaPlayer::readyStateChanged):
        (WebCore::MediaPlayer::volumeChanged):
        (WebCore::MediaPlayer::timeChanged):
        (WebCore::MediaPlayer::cuePointReached):
        * platform/graphics/MediaPlayer.h: Copied from WebCore/platform/graphics/Movie.h.
        (WebCore::MediaPlayerClient::~MediaPlayerClient):
        (WebCore::MediaPlayerClient::mediaPlayerNetworkStateChanged):
        (WebCore::MediaPlayerClient::mediaPlayerReadyStateChanged):
        (WebCore::MediaPlayerClient::mediaPlayerVolumeChanged):
        (WebCore::MediaPlayerClient::mediaPlayerTimeChanged):
        (WebCore::MediaPlayerClient::mediaPlayerCuePointReached):
        * platform/graphics/Movie.cpp: Removed.
        * platform/graphics/Movie.h: Removed.
        * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: Copied from WebCore/platform/graphics/gtk/MoviePrivateGStreamer.cpp.
        (WebCore::mediaPlayerPrivateErrorCallback):
        (WebCore::mediaPlayerPrivateEOSCallback):
        (WebCore::mediaPlayerPrivateStateCallback):
        (WebCore::mediaPlayerPrivateBufferingCallback):
        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::load):
        (WebCore::MediaPlayerPrivate::play):
        (WebCore::MediaPlayerPrivate::pause):
        (WebCore::MediaPlayerPrivate::duration):
        (WebCore::MediaPlayerPrivate::currentTime):
        (WebCore::MediaPlayerPrivate::seek):
        (WebCore::MediaPlayerPrivate::setEndTime):
        (WebCore::MediaPlayerPrivate::addCuePoint):
        (WebCore::MediaPlayerPrivate::removeCuePoint):
        (WebCore::MediaPlayerPrivate::clearCuePoints):
        (WebCore::MediaPlayerPrivate::startCuePointTimerIfNeeded):
        (WebCore::MediaPlayerPrivate::cancelSeek):
        (WebCore::MediaPlayerPrivate::cuePointTimerFired):
        (WebCore::MediaPlayerPrivate::paused):
        (WebCore::MediaPlayerPrivate::seeking):
        (WebCore::MediaPlayerPrivate::naturalSize):
        (WebCore::MediaPlayerPrivate::hasVideo):
        (WebCore::MediaPlayerPrivate::setVolume):
        (WebCore::MediaPlayerPrivate::setMuted):
        (WebCore::MediaPlayerPrivate::setRate):
        (WebCore::MediaPlayerPrivate::dataRate):
        (WebCore::MediaPlayerPrivate::networkState):
        (WebCore::MediaPlayerPrivate::readyState):
        (WebCore::MediaPlayerPrivate::maxTimeBuffered):
        (WebCore::MediaPlayerPrivate::maxTimeSeekable):
        (WebCore::MediaPlayerPrivate::maxTimeLoaded):
        (WebCore::MediaPlayerPrivate::bytesLoaded):
        (WebCore::MediaPlayerPrivate::totalBytesKnown):
        (WebCore::MediaPlayerPrivate::totalBytes):
        (WebCore::MediaPlayerPrivate::cancelLoad):
        (WebCore::MediaPlayerPrivate::updateStates):
        (WebCore::MediaPlayerPrivate::loadStateChanged):
        (WebCore::MediaPlayerPrivate::rateChanged):
        (WebCore::MediaPlayerPrivate::sizeChanged):
        (WebCore::MediaPlayerPrivate::timeChanged):
        (WebCore::MediaPlayerPrivate::volumeChanged):
        (WebCore::MediaPlayerPrivate::didEnd):
        (WebCore::MediaPlayerPrivate::loadingFailed):
        (WebCore::MediaPlayerPrivate::setRect):
        (WebCore::MediaPlayerPrivate::setVisible):
        (WebCore::MediaPlayerPrivate::paint):
        (WebCore::MediaPlayerPrivate::getSupportedTypes):
        (WebCore::MediaPlayerPrivate::createGSTPlayBin):
        * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h: Copied from WebCore/platform/graphics/gtk/MoviePrivateGStreamer.h.
        * platform/graphics/gtk/MoviePrivateGStreamer.cpp: Removed.
        * platform/graphics/gtk/MoviePrivateGStreamer.h: Removed.
        * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Copied from WebCore/platform/graphics/mac/MoviePrivateQTKit.h.
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Copied from WebCore/platform/graphics/mac/MoviePrivateQTKit.mm.
        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::createQTMovie):
        (WebCore::MediaPlayerPrivate::createQTMovieView):
        (WebCore::MediaPlayerPrivate::createQTTime):
        (WebCore::MediaPlayerPrivate::load):
        (WebCore::MediaPlayerPrivate::play):
        (WebCore::MediaPlayerPrivate::pause):
        (WebCore::MediaPlayerPrivate::duration):
        (WebCore::MediaPlayerPrivate::currentTime):
        (WebCore::MediaPlayerPrivate::seek):
        (WebCore::MediaPlayerPrivate::doSeek):
        (WebCore::MediaPlayerPrivate::cancelSeek):
        (WebCore::MediaPlayerPrivate::seekTimerFired):
        (WebCore::MediaPlayerPrivate::setEndTime):
        (WebCore::MediaPlayerPrivate::addCuePoint):
        (WebCore::MediaPlayerPrivate::removeCuePoint):
        (WebCore::MediaPlayerPrivate::clearCuePoints):
        (WebCore::MediaPlayerPrivate::startCuePointTimerIfNeeded):
        (WebCore::MediaPlayerPrivate::cuePointTimerFired):
        (WebCore::MediaPlayerPrivate::paused):
        (WebCore::MediaPlayerPrivate::seeking):
        (WebCore::MediaPlayerPrivate::naturalSize):
        (WebCore::MediaPlayerPrivate::hasVideo):
        (WebCore::MediaPlayerPrivate::setVolume):
        (WebCore::MediaPlayerPrivate::setMuted):
        (WebCore::MediaPlayerPrivate::setRate):
        (WebCore::MediaPlayerPrivate::dataRate):
        (WebCore::MediaPlayerPrivate::networkState):
        (WebCore::MediaPlayerPrivate::readyState):
        (WebCore::MediaPlayerPrivate::maxTimeBuffered):
        (WebCore::MediaPlayerPrivate::maxTimeSeekable):
        (WebCore::MediaPlayerPrivate::maxTimeLoaded):
        (WebCore::MediaPlayerPrivate::bytesLoaded):
        (WebCore::MediaPlayerPrivate::totalBytesKnown):
        (WebCore::MediaPlayerPrivate::totalBytes):
        (WebCore::MediaPlayerPrivate::cancelLoad):
        (WebCore::MediaPlayerPrivate::updateStates):
        (WebCore::MediaPlayerPrivate::loadStateChanged):
        (WebCore::MediaPlayerPrivate::rateChanged):
        (WebCore::MediaPlayerPrivate::sizeChanged):
        (WebCore::MediaPlayerPrivate::timeChanged):
        (WebCore::MediaPlayerPrivate::volumeChanged):
        (WebCore::MediaPlayerPrivate::didEnd):
        (WebCore::MediaPlayerPrivate::setRect):
        (WebCore::MediaPlayerPrivate::setVisible):
        (WebCore::MediaPlayerPrivate::paint):
        (WebCore::MediaPlayerPrivate::getSupportedTypes):
        (-[WebCoreMovieObserver initWithCallback:WebCore::]):
        * platform/graphics/mac/MoviePrivateQTKit.h: Removed.
        * platform/graphics/mac/MoviePrivateQTKit.mm: Removed.
        * rendering/RenderMedia.cpp:
        (WebCore::RenderMedia::player):
        * rendering/RenderMedia.h:
        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::RenderVideo):
        (WebCore::RenderVideo::~RenderVideo):
        (WebCore::RenderVideo::videoSizeChanged):
        (WebCore::RenderVideo::paintReplaced):
        (WebCore::RenderVideo::layout):
        (WebCore::RenderVideo::updateFromElement):
        (WebCore::RenderVideo::updatePlayer):
        * rendering/RenderVideo.h:

2007-12-06  Geoffrey Garen  <ggaren@apple.com>

        Build fix: access global object directly.

        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::bindingInstance):

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

        Reviewed by Eric.

        Fix bug spotted by GCC 4.2.

        * bindings/js/kjs_window.cpp:
        (KJS::allowPopUp): Remove extraneous semicolon that completely changed the meaning of allowPopUp.

2007-12-06  Holger Hans Peter Freyther <holger.freyther@trolltech.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16173
        Licensing change

        Change license from BSD to LGPL.

        * platform/gtk/FileSystemGtk.cpp:

2007-12-05  Rob Buis  <buis@kde.org>

        Reviewed by Mitz.

        http://bugs.webkit.org/show_bug.cgi?id=15289
        WebKit does not respect clip paths of a 0x0 rect

        Make empty clip paths clip the whole referencing graphic.

        * svg/SVGClipPathElement.cpp:
        (WebCore::SVGClipPathElement::canvasResource):
        * svg/graphics/SVGResourceClipper.h:
        (WebCore::ClipDataList::isEmpty):

2007-12-05  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16266
          <rdar://problem/5625279> REGRESSION: crash loading CNN.com at
          Interpreter::createObjectsForGlobalObjectProperties()

        I don't know how to reproduce this in a test.

        * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::mark):
        Call JSEventTargetNode::mark instead of DOMObject::mark. There's no difference
        right now, but it's best to call your base class, not your base's base.

        * bindings/js/kjs_events.h: Removed unneeded virtual from the
        JSUnprotectedEventListener::mark() function; it neither derives from or is
        derived from anyone else with a mark() function so there's no need for virtual.

        * bindings/js/kjs_window.cpp: (KJS::Window::mark): Call JSGlobalObject::mark,
        not JSObject::mark. This is the actual bug fix.

2007-12-05  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>

        http://bugs.webkit.org/show_bug.cgi?id=16145
        [gtk] Implement media support in GTK backend

        Reviewed by Alp Toker.

        Remove old comments, fix variable names, match WebKit coding style.

        * platform/graphics/gtk/MoviePrivateGStreamer.cpp:
        (WebCore::moviePrivateEOSCallback):
        (WebCore::MoviePrivate::MoviePrivate):
        (WebCore::MoviePrivate::load):
        (WebCore::MoviePrivate::play):
        (WebCore::MoviePrivate::pause):
        (WebCore::MoviePrivate::currentTime):
        (WebCore::MoviePrivate::seek):
        (WebCore::MoviePrivate::cancelSeek):
        (WebCore::MoviePrivate::seeking):
        (WebCore::MoviePrivate::naturalSize):
        (WebCore::MoviePrivate::setVolume):
        (WebCore::MoviePrivate::setMuted):
        (WebCore::MoviePrivate::maxTimeBuffered):
        (WebCore::MoviePrivate::bytesLoaded):
        (WebCore::MoviePrivate::totalBytesKnown):
        (WebCore::MoviePrivate::totalBytes):
        (WebCore::MoviePrivate::updateStates):
        (WebCore::MoviePrivate::didEnd):
        (WebCore::MoviePrivate::paint):
        (WebCore::MoviePrivate::createGSTPlayBin):
        * platform/graphics/gtk/MoviePrivateGStreamer.h:

2007-12-05  Mark Rowe  <mrowe@apple.com>

        Speculative wx build fix.  Add PlugInInfoStore::pluginNameForMIMEType to the temporary link stubs.

        * platform/wx/TemporaryLinkStubs.cpp:

2007-12-05  Alp Toker  <alp@atoker.com>

        Rubber stamped by Mark Rowe.

        Remove DEPENDPATH on the generated sources directory. This causes
        trouble and is no longer necessary following the glib-genmarshal
        generator split.

        * WebCore.pro:

2007-12-04  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Darin Adler.

        Third step in refactoring JSGlobalObject: Moved data members and data
        member access from Interpreter to JSGlobalObject. Changed Interpreter
        member functions to static functions. Same for the subclass, 
        ScriptInterpreter.
        
        This is a big change, but it's mostly code motion and renaming.
        
2007-12-05  Darin Adler  <darin@apple.com>

        "Reviewed" by Geoff.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Removed assertion.
        (WebCore::FrameLoader::dispatchDidCommitLoad): This one too.
        The assertions are firing like crazy. Not sure why yet.

2007-12-05  Darin Adler  <darin@apple.com>

        Reviewed by Adam Roben.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16306
          Assertion failed in WebCore/loader/FrameLoader.cpp:4642

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::dispatchDidCommitLoad): Check m_creatingInitialEmptyDocument
        and don't deliver the client call in that case.

2007-12-05  Mark Rowe  <mrowe@apple.com>

        Reviewed by Kevin Decker.

        Fix 64-bit debug build.

        * platform/text/mac/TextCodecMac.cpp:
        (WebCore::TextCodecMac::decode): OSStatus is a long for 32-bit but int on 64-bit,
        so we need to cast it to be able to use a single format specifier on both.

2007-12-05  Kevin Decker  <kdecker@apple.com>

        Reviewed by Hyatt.

        <rdar://problem/5613106> Acordex: REGRESSION (Tiger-Leopard): plug-ins can no longer take over TIFF images (affects uspto.gov)
       
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::shouldUsePlugin): Allow plug-ins (with the exception of QuickTime) to
        takeover TIFF once again.
        
2007-12-05  Luca Bruno  <lethalman88@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16290
        [GTK] Pasting clipboard in rich text.

        * platform/gtk/PasteboardGtk.cpp:
        (Pasteboard::documentFragment): Implement rich text paste support.

2007-12-05  Adele Peterson  <adele@apple.com>

        Reviewed by Hyatt.

        Reverting fix for <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges

        We need to just fix the underlying focus ring repaint problem.

        * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setStyle):

2007-12-04  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Darin.

        - <rdar://5621435>
        - Security Fix. Instead of having it off by default, WebKit now must
        explicitly turn off local-resource restriction when needed for backwards
        compatibility reasons.

        * loader/FrameLoader.cpp:

2007-12-05  Adam Roben  <aroben@apple.com>

        Set the menu item identifier for all menu items

        This allows WebKit clients to distinguish between submenus in the
        context menu.

        Reviewed by Darin.

        No test possible.

        * platform/win/ContextMenuItemWin.cpp:
        (WebCore::ContextMenuItem::ContextMenuItem):

2007-12-05  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - WebCore part of fixing <rdar://problem/5111082> Flash popup video ad doesn't close when clicked at http://www.firestonecompleteautocare.com/

        * manual-tests/nested-plug-ins.html: Added.
        * manual-tests/resources/nested-plug-ins-inner-frame.html: Added.
        * manual-tests/resources/nested-plug-ins-outer-frame.html: Added.
        * platform/ScrollView.h:
        * platform/Widget.h:
        (WebCore::Widget::attachToWindow): Added. Tells the widget that it is connected
        via visible ScrollViews to the root ScrollView of the WebView.
        (WebCore::Widget::detachFromWindow): Added. Tells the widget that it is no longer
        connected via visible ScrollViews to the root ScrollView of the WebView.
        * platform/win/ScrollViewWin.cpp:
        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate): Added
        m_visible and m_attachedToWindow members.
        (WebCore::ScrollView::attachToWindow): Added. Attaches all children if this
        view is visible.
        (WebCore::ScrollView::detachFromWindow): Added. Detaches all children if this
        view is visible (otherwise they would be detached already).
        (WebCore::ScrollView::show): Added. Attaches all children if this view
        is attached.
        (WebCore::ScrollView::hide): Added. Detaches all children if this view
        is attached (otherwise they would be detached already).
        (WebCore::ScrollView::isAttachedToWindow): Added.
        * platform/win/WidgetWin.cpp:
        (WebCore::Widget::setParent): Added calls to attachToWindow() and detachFromWindow()
        depending on whether the parent is set and attached or not.
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::setFocus):
        (WebCore::PluginViewWin::show): Changed to show the plug-in only if
        this view is attached.
        (WebCore::PluginViewWin::hide): Changed to hide the plug-in only if this
        view is attached (otherwise it would be hidden already).
        (WebCore::PluginViewWin::attachToWindow): Added. Shows the plug-in if this view
        is visible.
        (WebCore::PluginViewWin::detachFromWindow): Added. Hides the plug-in if this view
        is visible (otherwise it would be hidden already).
        (WebCore::PluginViewWin::PluginViewWin):
        * plugins/win/PluginViewWin.h: Added m_attachedToWindow member.

2007-12-04  Alp Toker  <alp@atoker.com>

        Potential GTK+ build fix for the glib-genmarshal issue.

        Split the glib-genmarshal qmake generator in two; one for the source
        file, another for the header.

        * WebCore.pro:

2007-12-04  Alp Toker  <alp@atoker.com>

        GTK+ build fix.

        * platform/PlugInInfoStore.h:

2007-12-04  Kevin Decker  <kdecker@apple.com>

        Reviewed by Anders.

        <rdar://problem/5629125> PluginInfoStore needs the ability to return the name of a plug-in for a given MIME type

        * page/mac/WebCoreViewFactory.h: Added pluginNameForMIMEType: method.
        * platform/PlugInInfoStore.h:
        * platform/gtk/TemporaryLinkStubs.cpp: Added stub version of pluginNameForMIMEType.
        (PlugInInfoStore::pluginNameForMIMEType):
        * platform/mac/PlugInInfoStoreMac.mm:
        (WebCore::PlugInInfoStore::pluginNameForMIMEType): Added.
        * platform/qt/PlugInInfoStoreQt.cpp: 
        (WebCore::PlugInInfoStore::pluginNameForMIMEType): Added stub version of pluginNameForMIMEType.
        * plugins/win/PlugInInfoStoreWin.cpp: 
        (WebCore::PlugInInfoStore::pluginNameForMIMEType): Added stub version of pluginNameForMIMEType.

2007-12-04  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        Fix for <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges

        * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setStyle):
        Adjust outline-offset so it doesn't extend beyond the border to interfere with typing

2007-12-04  Anders Carlsson  <andersca@apple.com>

        Reviewed by Jon.

        Always call NPP_NewStream, NPP_DestroyStream and NPP_URLNotify for JavaScript
        result streams, even if the JavaScript expression threw an exception or returned undefined.
        This matches what Firefox does.
        
        * plugins/win/PluginStreamWin.cpp:
        (WebCore::PluginStreamWin::sendJavaScriptStream):
        Handle the result string being null, and set the correct NPReason if it is.
        
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::performRequest):
        Always send the JavaScript stream, regardless of the result could be converted to a string or not.

2007-12-04  Adele Peterson  <adele@apple.com>

        Reviewed by Hyatt.

        Fix for <rdar://problem/5622464> controls should show up for audio element

        * css/html4.css: Added styles for audio controls.  This will need to be refined, since we may want a different look for audio controls.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::attributeChanged): When the controls attribute changes detach and reattach if necessary. 
        (WebCore::HTMLMediaElement::rendererIsNeeded): Added.
        (WebCore::HTMLMediaElement::createRenderer): Added.  Uses RenderMedia.
        * html/HTMLMediaElement.h:
        * rendering/RenderMedia.cpp: (WebCore::RenderMedia::RenderMedia): Added constructor that doesn't take intrinsic size.
        * rendering/RenderMedia.h:

2007-12-04  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam.

        Add isSafeScript(const JSGlobalObject*) so we won't get the JSGlobalObject
        implementation, which always returns true(!).
        
        * bindings/js/kjs_window.cpp:
        (KJS::Window::isSafeScript):
        Make the static isSafeScript method take two JSGlobalObjects.
        
        * bindings/js/kjs_window.h:
        (KJS::Window::isSafeScript):
        Implement isSafeScript and have it call the static method.

2007-11-27  Adam Roben  <aroben@apple.com>

        Make the implementation of Frame::setNeedsReapplyStyles cross-platform

        Reviewed by Hyatt.

        No change in functionality.

        * page/Frame.cpp:
        (WebCore::Frame::setNeedsReapplyStyles): Added. Invalidates the
        FrameView so that FrameView::layout will be called, which ends up
        calling reapplyStyles.
        (WebCore::Frame::needsReapplyStyles): Added.
        (WebCore::Frame::reapplyStyles): Renamed from reparseConfiguration.
        (WebCore::FramePrivate::FramePrivate):
        * page/Frame.h:
        * page/FramePrivate.h: Added new boolean member.
        * page/FrameView.cpp:
        (WebCore::FrameView::layout): Call Frame::reapplyStyles if needed.
        (WebCore::FrameView::needsLayout): Say that we need layout if the
        Frame needs styles reapplied.
        * page/mac/WebCoreFrameBridge.h: Removed setNeedsReapplyStyles.
        * page/mac/WebCoreFrameBridge.mm:
        (-[WebCoreFrameBridge reapplyStylesForDeviceType:]): Updated for
        rename.

        * bridge/win/FrameWin.cpp: Removed Frame::setNeedsReapplyStyles.
        * page/gtk/FrameGtk.cpp: Ditto.
        * page/mac/FrameMac.mm: Ditto.
        * page/qt/FrameQt.cpp: Ditto.
        * platform/wx/TemporaryLinkStubs.cpp: Ditto.

2007-12-04  Antti Koivisto  <antti@apple.com>

        Reviewed by Adele.

        Pass intrinsic size to the base class.

        * rendering/RenderMedia.cpp:
        (WebCore::RenderMedia::RenderMedia):

2007-12-04  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        Fix for <rdar://problem/5578209> REGRESSION: Crash in WebCore::DeprecatedValueListImpl::Private::copyList when going back on zoomerang.com/survey

        * loader/FrameLoader.cpp: (WebCore::FrameLoader::scheduleHistoryNavigation):
          When the new url is exactly the same as the old url, don't treat it like a fragment navigation, since its going to cause a reload.

2007-12-04  Darin Adler  <darin@apple.com>

        Reviewed by Kevin Decker.

        - added an assertion for a situation that leads to a Safari assertion:
          a commit that is not followed by a load completion

        - removed some unneeded FrameLoader stuff -- maybe some day we'll get this
          class cut down to size

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::FrameLoader): Added boolean for assertion.
        (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Added code to assert
        that we already sent a commit before sending a complete.
        (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): Call
        client directly instead of indirecting through a function.
        (WebCore::FrameLoader::loadItem): Ditto.
        (WebCore::FrameLoader::goToItem): Ditto.
        (WebCore::FrameLoader::addHistoryForCurrentLocation): Get the private browsing
        state from Settings instead of FrameLoaderClient. Also call client directly
        instead of indirecting through a function.
        (WebCore::FrameLoader::updateHistoryForReload): Call client directly instead
        of indirecting through a function.
        (WebCore::FrameLoader::dispatchDidCommitLoad): Added code to assert
        that we did not yet send a commit and set the flag that will be used to check
        that we don't do this twice in a row without an intervening completion call.

        * loader/FrameLoader.h: Added a boolean for the assertion. Removed six
        now-unneeded functions.

        * loader/FrameLoaderClient.h: Removed now-unneeded privateBrowsingEnabled function.

        * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willCacheResponse): Get
        the private browsing state from Settings instead of FrameLoaderClient.

        * svg/graphics/SVGImageEmptyClients.h: Removed obsolete privateBrowsingEnabled.

2007-12-03  Antti Koivisto  <antti@apple.com>

        Reviewed by Adele.
        
        Fix <rdar://problem/5624802> 
        Controller displays outside of <video> element when width and height aren't specified 

        - Explicitly adjust size of the controls tree root.
        - Switch RenderMedia base class back to RenderReplaced. It is easier to manage the shadow tree
          by hand. This also allows better code sharing with other replaced element classes.
        - Move duplicated layout and painting code from subclasses up to RenderReplaced.

        Test: media/video-controls-rendering.html

        * rendering/RenderHTMLCanvas.cpp:
        (WebCore::RenderHTMLCanvas::paintReplaced):
        * rendering/RenderHTMLCanvas.h:
            Share code.
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paintReplaced):
        (WebCore::RenderImage::minimumReplacedHeight):
        * rendering/RenderImage.h:
            Share code.
        * rendering/RenderMedia.cpp:
        (WebCore::RenderMediaControlShadowRoot::RenderMediaControlShadowRoot):
        (WebCore::RenderMediaControlShadowRoot::setParent):
            Add a subclass just to get through encapsulation to use setParent().
        (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
            Move initialization to the constructor.
        (WebCore::RenderMedia::RenderMedia):
        (WebCore::RenderMedia::~RenderMedia):
        (WebCore::RenderMedia::layout):
            Resize and layout the controller root by hand.
        (WebCore::RenderMedia::firstChild):
        (WebCore::RenderMedia::lastChild):
        (WebCore::RenderMedia::removeChild):
            Support one child renderer for controls.
        (WebCore::RenderMedia::createControlsShadowRoot):
        * rendering/RenderMedia.h:
        (WebCore::RenderMedia::isMedia):
            Switch base class to RenderReplaced, delete the now unnecessary stuff.
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::layout):
        (WebCore::RenderReplaced::paint):
        * rendering/RenderReplaced.h:
        (WebCore::RenderReplaced::minimumReplacedHeight):
        (WebCore::RenderReplaced::paintReplaced):
            Share code.
        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::videoSizeChanged):
            Simplify, just request relayout.
        (WebCore::RenderVideo::paintReplaced):
        (WebCore::RenderVideo::layout):
        * rendering/RenderVideo.h:
            Share code.

2007-12-04  Michael Natterer  <mitch@imendio.com>

        Reviewed by Alp Toker.

        * WebCore.pro: fix build of webkit-marshal by building the
        functions into a separate .cpp file instead of including them in
        the header. This way we can use the marshallers from more than one
        file without using bad hacks.

        Add the generated sources directory to DEPENDPATH.

2007-12-04  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16145
        [gtk] Implement media support in GTK backend

        This implements the media tags of HTML5 on the GTK+ port based on the 
        Mac port. Media tests pass although some tests required a small modifications: 
        As per the HTML5 spec, the loading of the clip should start only after 
        all script are done.  But in the case of the tests, the loading starts 
        before some callbacks get registered.  This has been discussed with 
        Antti Koivisto, and the tests should be updated.

        There is only one known issue: one time in 10 tries, loading a buffered 
        clip will never end buffering.  The buffering will stall at 97% for no 
        apparent reasons.  Reloading the page usually works around the problem.
        On the GStreamer side, some codecs don't return correct values, therefore
        they make the tests fail.  For instance H.264 will make the video-end 
        test fail.  This should be fixed in GStreamer 0.10.15.

        This version displays video in a pop up window.  A place holder is drawn
        on the page where the video should appear.

        By default, it is turned off in WebCore.pro until GStreamer/X
        detection issues are sorted out.

        * WebCore.pro:
        Disable video for now
        * platform/Logging.cpp:
        (WebCore::):
        * platform/Logging.h:
        Added a logging level for Media stuff
        * platform/graphics/Movie.cpp:
        * platform/graphics/gtk/MoviePrivateGStreamer.cpp: Added.
        (WebCore::moviePrivateErrorCallback):
        (WebCore::moviePrivateEOSCallback):
        (WebCore::moviePrivateStateCallback):
        (WebCore::moviePrivateBufferingCallback):
        (WebCore::moviePrivateWindowIDCallback):
        (WebCore::MoviePrivate::MoviePrivate):
        (WebCore::MoviePrivate::~MoviePrivate):
        (WebCore::MoviePrivate::load):
        (WebCore::MoviePrivate::play):
        (WebCore::MoviePrivate::pause):
        (WebCore::MoviePrivate::duration):
        (WebCore::MoviePrivate::currentTime):
        (WebCore::MoviePrivate::seek):
        (WebCore::MoviePrivate::setEndTime):
        (WebCore::MoviePrivate::addCuePoint):
        (WebCore::MoviePrivate::removeCuePoint):
        (WebCore::MoviePrivate::clearCuePoints):
        (WebCore::MoviePrivate::startCuePointTimerIfNeeded):
        (WebCore::MoviePrivate::cancelSeek):
        (WebCore::MoviePrivate::cuePointTimerFired):
        (WebCore::MoviePrivate::paused):
        (WebCore::MoviePrivate::seeking):
        (WebCore::MoviePrivate::naturalSize):
        (WebCore::MoviePrivate::hasVideo):
        (WebCore::MoviePrivate::setVolume):
        (WebCore::MoviePrivate::setMuted):
        (WebCore::MoviePrivate::setRate):
        (WebCore::MoviePrivate::dataRate):
        (WebCore::MoviePrivate::networkState):
        (WebCore::MoviePrivate::readyState):
        (WebCore::MoviePrivate::maxTimeBuffered):
        (WebCore::MoviePrivate::maxTimeSeekable):
        (WebCore::MoviePrivate::maxTimeLoaded):
        (WebCore::MoviePrivate::bytesLoaded):
        (WebCore::MoviePrivate::totalBytesKnown):
        (WebCore::MoviePrivate::totalBytes):
        (WebCore::MoviePrivate::cancelLoad):
        (WebCore::MoviePrivate::updateStates):
        (WebCore::MoviePrivate::loadStateChanged):
        (WebCore::MoviePrivate::rateChanged):
        (WebCore::MoviePrivate::sizeChanged):
        (WebCore::MoviePrivate::timeChanged):
        (WebCore::MoviePrivate::volumeChanged):
        (WebCore::MoviePrivate::didEnd):
        (WebCore::MoviePrivate::loadingFailed):
        (WebCore::MoviePrivate::setRect):
        (WebCore::MoviePrivate::setVisible):
        (WebCore::MoviePrivate::paint):
        (WebCore::MoviePrivate::getSupportedTypes):
        (WebCore::MoviePrivate::createGSTPlayBin):
        * platform/graphics/gtk/MoviePrivateGStreamer.h: Added.

2007-12-04  Holger Hans Peter Freyther <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Implement the InspectorClient for the Qt port
        * It does not support highlighting of nodes yet
        * Use QRC to open the internal page. The important thing is the
        '/' in the URL to make WebCore::Document::completeURL behave the
        way we want.
        * To make the InspectorClient work we will have to mark qrc as secure.

        * WebCore.pro:
        * loader/FrameLoader.cpp:
        (WebCore::localSchemes):
        * page/inspector/WebKit.qrc: Added.

2007-12-04  Alp Toker  <alp@atoker.com>

        Rubber stamped by Mark Rowe.

        Remove two unused variables to silence warnings.

        * html/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::fill):
        (WebCore::CanvasRenderingContext2D::stroke):

2007-12-03  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix <rdar://problem/5134044> fast/frames/frame-src-attribute.html fails on Windows

        * platform/win/ScrollViewWin.cpp:
        (WebCore::ScrollView::visibleWidth): Do not return negative values.
        (WebCore::ScrollView::visibleHeight): Ditto.

2007-12-03  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix <rdar://problem/5346452> Resize event doesn't fire on body element inside a frame

        Test: fast/events/resize-subframe.html

        * page/FrameView.cpp:
        (WebCore::FrameViewPrivate::FrameViewPrivate): Added a timer used when
        deferring tasks that need to be done after layout.
        (WebCore::FrameViewPrivate::reset):
        (WebCore::FrameView::~FrameView):
        (WebCore::FrameView::layout): Moved the updating of widget positions,
        loading plug-ins and sending events queued up during layout into
        performPostLayoutTasks(). performPostLayoutTasks() is called after
        layout unless the layout was triggered by a previous layout's post-
        layout tasks. In the latter case, performPostLayoutTasks() is scheduled
        to run later.
        (WebCore::FrameView::performPostLayoutTasks): Performs work that needs
        to be done after layout but which can result in arbitrary code
        execution and therefore may re-invalidate the layout. This includes
        updating widget positions, loading plug-ins, and dispatching layout-
        related DOM events (scroll, overflow and resize).
        (WebCore::FrameView::postLayoutTimerFired):
        (WebCore::FrameView::dispatchScheduledEvents):
        * page/FrameView.h:
        * page/mac/WebCoreFrameBridge.h:
        * page/mac/WebCoreFrameBridge.mm: Removed -sendResizeEvent since this
        is handled by FrameView now.

2007-12-03  Rob Buis  <buis@kde.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15767
        Text decorations do not respect "visibility" property

        Only paint decorations if visibility is "visible".

        * rendering/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::paintDecoration):

2007-12-03  Steve Falkenburg  <sfalken@apple.com>

        Fix build.

        * WebCore.vcproj/WebCore.vcproj:

2007-12-03  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by David.

        Fixes: http://bugs.webkit.org/show_bug.cgi?id=15645
        Don't allow selectors to interfere with the SVG shadow tree (<use> internal non-exposed tree).

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkSelector):

2007-12-03  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben.

        - fix <rdar://problem/5538651> REGRESSSION: domfuzz: null deref in WebCore::Document::canReplaceChild

        Test: fast/dom/Document/replaceChild-null-oldChild.html

        * dom/Document.cpp:
        (WebCore::Document::canReplaceChild):

2007-12-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Avoid crashes by making sure everything is layouted before
        we start painting. This avoids a crash in Widget::invalidateRect
        because QPainter::begin would fail
        * The QWebFrame::layout() methods and calls are left untouched because
        this would be an API decision.
        

        WARNING: NO TEST CASES ADDED OR CHANGED

        * page/FrameView.cpp:
        (WebCore::FrameView::updateControlTints):
        * page/FrameView.h:
        * platform/ScrollView.h:
        * platform/qt/ScrollViewQt.cpp:
        (WebCore::ScrollView::children):

2007-12-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Implement GraphicsContext::fillRoundedRect similiar to the
        CoreGraphics implementation only addPath is not called this
        seems to be only needed for CoreGraphics.
        

        WARNING: NO TEST CASES ADDED OR CHANGED

        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::GraphicsContext::fillRoundedRect):

2007-12-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Simon.

        * Coding Style fixes
        

        WARNING: NO TEST CASES ADDED OR CHANGED

        * platform/qt/ScrollViewQt.cpp:
        (WebCore::ScrollView::addChild):
        (WebCore::ScrollView::removeChild):

2007-12-03  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Don't delete the decoder if it's already been created. The one we have
        is fine.

        Cairo image cleanups. Nothing substantial.

        Notify ImageObservers where appropriate.

        * platform/graphics/cairo/ImageCairo.cpp:
        (WebCore::BitmapImage::draw):
        (WebCore::Image::drawPattern):
        * platform/graphics/cairo/ImageSourceCairo.cpp:
        (WebCore::ImageSource::setData):
        * platform/graphics/gtk/ImageGtk.cpp:

2007-12-03  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Lars.

        Fixed crash when rendering form elements with Qt 4.4

        QPainter::device() is not guaranteed to return a QWidget, so do the safe "cast" with the
        help of QPaintDevice::devType().
        Also fall back to the QApplication::style() if we don't have a widget.

        * platform/qt/RenderThemeQt.cpp:
        (WebCore::RenderThemeQt::paintButton):
        (WebCore::RenderThemeQt::paintTextField):
        (WebCore::RenderThemeQt::paintMenuList):
        (WebCore::RenderThemeQt::getStylePainterAndWidgetFromPaintInfo):

2007-12-02  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Sam Weinig.

        * Add FrameLoader::shouldTreatSchemeAsLocal which is similar to
        shouldTreatURLAsLocal.
        * Make use of FrameLoader::shouldTreatSchemeAsLocal in SecurityOrigin
        and do not hardcode "file". This is needed for the WebKit/qt port to make
        the Web Inspector work as it using the qrc protocol instead of file.


        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::shouldTreatSchemeAsLocal):
        * loader/FrameLoader.h:
        * platform/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::isSecureTransitionTo):

2007-12-02  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Rubber stamped by Sam Weinig.

        Only add applewebdata to the localSchemes when building for the
        mac. This is in preparation of adding qrc for the Qt port there
        as well and http://bugs.webkit.org/show_bug.cgi?id=15938.

        According to Anders applewebdata is not used on the win port.

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

2007-12-02  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Rubber stamped by Sam Weinig.

        Fix a typo. It is contains and not containts

        * loader/FrameLoader.cpp:

2007-12-03  Alp Toker  <alp@atoker.com>

        Add another missing DEPENDPATH.

        Noticed when fixing the build.

        * WebCore.pro:

2007-12-03  Adam Roben  <aroben@apple.com>

        Speculative Windows build fix

        * plugins/win/PluginViewWin.cpp:
        (WebCore::getString):

2007-12-03  Geoffrey Garen  <ggaren@apple.com>

        Build fix: added symbols to the right .exp file.

        * WebCore.base.exp:

2007-12-02  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Eric Seidel.

        Updated to match the JavaScriptCore change to move virtual methods from
        Interpreter to JSGlobalObject.
        
        Moved virtual ScriptInterpreter functions to Window.

2007-12-02  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - fix <rdar://problem/5601995> Hang/crash on http://ebay-uk.custhelp.com/

        There were two problems here:

            1) Incorrect HTMLCollection behavior led to us trying to insert a
               new row inside an existing row instead of next to it. The fix for
               this is to make HTMLCollection work better for table-related
               collections.

            2) HTMLTableRowElement::insertCell would return a bad pointer if
               the insertion failed. The code should have failed, but not crashed,
               so it's worth fixing that too.

        While fixing the HTMLCollection issues, I did some clean-up of that
        class and its derived classes.

        Test: fast/dom/HTMLTableElement/rows.html
        Test: fast/dom/HTMLTableElement/tBodies.html
        Test: fast/dom/HTMLTableRowElement/cells.html
        Test: fast/dom/HTMLTableRowElement/insertCell.html
        Test: fast/dom/HTMLTableSectionElement/rows.html

        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::toJS): Updated because collectionType() was renamed to type().

        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection): Updated for data member name
        changes. Also added a protected constructor for use by derived classes
        that pass in a CollectionInfo.
        (WebCore::HTMLCollection::CollectionInfo::copyCacheMap): Moved out of
        the header.
        (WebCore::isTableSection): Added.
        (WebCore::HTMLCollection::itemAfter): Renamed from traverseNextItem,
        because the old name was grammatically incorrect and thus a bit confusing.
        Changed to operate on Element* instead of Node*, and use 0 to start
        rather than passing in the base node (required since the base node can be
        a document, which is not an element). Generalized the code that made
        NodeChildren not descend into deeper descendants so it can be used for
        TRCells, TSectionRows, TableTBodies, and TableRows. Reformatted the
        switch statement and got rid of the "found" boolean since we can just
        return when we find something. Got rid of the default case, and instead
        listed all the enum values. Also changed to use a for loop for clarity.
        (WebCore::HTMLCollection::calcLength): Updated for itemAfter changes.
        (WebCore::HTMLCollection::item): Ditto.
        (WebCore::HTMLCollection::nextItem): Ditto.
        (WebCore::HTMLCollection::checkForNameMatch): Updated to take an Element
        instead of a Node pointer.
        (WebCore::HTMLCollection::namedItem): More of the same.
        (WebCore::HTMLCollection::updateNameCache): Ditto.
        (WebCore::HTMLCollection::namedItems): Ditto.
        (WebCore::HTMLCollection::nextNamedItem): Ditto.
        (WebCore::HTMLCollection::tags): Ditto.

        * html/HTMLCollection.h: Added a type FormElements, so that the
        HTMLFormCollection would not have a type of DocImages, which is what
        it previously did. Changed the base parameter to be a PassRefPtr to
        make it clear we take ownership of it. Added a comment explaining
        why we should change the name CollectionInfo. Made a lot more members
        private instead of protected. Renamed traverseNextItem to itemAfter.
        Changed most functions to take Element* instead of Node*.

        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::formCollectionInfo): Added.
        (WebCore::HTMLFormCollection::HTMLFormCollection): Updated to pass
        collection info into the base class.
        (WebCore::HTMLFormCollection::calcLength): Updated to use base() so we
        don't need to get at m_base directly.
        (WebCore::HTMLFormCollection::item): Same, but for info().
        (WebCore::HTMLFormCollection::getNamedItem): Removed unused first
        argument.
        (WebCore::HTMLFormCollection::getNamedFormItem): Got rid of unneeded
        checks that the base is still an element and still a form, since that's
        guaranteed.
        (WebCore::HTMLFormCollection::nextItem): Use info().
        (WebCore::HTMLFormCollection::nextNamedItemInternal): Node instead of
        Element, some name changes.
        (WebCore::HTMLFormCollection::namedItem): Update for changes elsewhere.
        (WebCore::HTMLFormCollection::nextNamedItem): Ditto, also rewrote loop
        to be much simpler.
        (WebCore::HTMLFormCollection::updateNameCache): More of the same.

        * html/HTMLFormCollection.h: Changed constructor to take an
        HTMLFormElement, using a PassRefPtr to communicate transfer of
        ownership. Made everything private instead of protected. Removed
        unneeded override of firstItem. Made getNamedItem and
        nextNamedItemInternal non-virtual. Removed unused first argument of
        getNamedItem. Added declaration of formCollectionInfo.

        * html/HTMLNameCollection.cpp:
        (WebCore::HTMLNameCollection::HTMLNameCollection): Updated to pass
        collection info into the base class.
        (WebCore::HTMLNameCollection::itemAfter): Reformatted a bit and
        changed into a for loop.

        * html/HTMLNameCollection.h: Updated for name changes. Made function
        private instead of public. Used PassRefPtr in constructor.

        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::HTMLOptionsCollection): Updated to
        pass collection info into the base class.
        (WebCore::HTMLOptionsCollection::add): Updated for public/private
        changes in the base class.
        (WebCore::HTMLOptionsCollection::selectedIndex): Ditto.
        (WebCore::HTMLOptionsCollection::setSelectedIndex): Ditto.
        (WebCore::HTMLOptionsCollection::setLength): Ditto.

        * html/HTMLOptionsCollection.h: Changed constructor parameter to be a
        PassRefPtr.

        * html/HTMLTableRowElement.cpp:
        (WebCore::HTMLTableRowElement::insertCell): Changed code to use RefPtr
        and PassRefPtr since this creates a new object. This alone fixed the
        crash. Also cleaned up logic a bit to be more readable.

        * html/HTMLTableRowElement.h: Changed insertCell to return a PassRefPtr.
        Also reordered functions a bit to make things a little more logical and
        removed the unused ncols data member.

        * html/HTMLTableSectionElement.cpp:
        (WebCore::HTMLTableSectionElement::rows): Pass TSectionRows, not
        TableRows. This mistake was harmless before because TableRows and
        TSectionRows were handled identically inside HTMLCollection, but that is
        no longer the case with this fix.

        * bindings/scripts/CodeGeneratorJS.pm: Add an include to cope with the
        fact that HTMLOptionsCollection no longer includes HTMLOptionElement.
        I don't think this really should be a special case -- might be worth
        returning later to see if this can be optimized.

2007-12-02  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Adam.

        RenderSVGViewportContainer sets wrong width/height.
        Share code with RenderSVGContainer in a central calcBounds() function.

        Fixes:
        - svg/custom/use-css-events.svg (http://bugs.webkit.org/show_bug.cgi?id=15403)
        - svg/custom/deep-dynamic-updates.svg
        - svg/custom/use-clipped-hit.svg
        - svg/custom/image-clipped-hit.svg

        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::layout):
        (WebCore::RenderSVGContainer::calcBounds):
        * rendering/RenderSVGContainer.h:
        * rendering/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::layout):

2007-12-02  Brady Eidson <beidson@apple.com>

        Reviewed by Darin

        databaseChanged notifications were being sent out on the database thread - they need to be on the main thread
        like all other notifications we send out!

        * platform/SecurityOriginData.cpp:
        (WebCore::SecurityOriginData::copy): Add a deep copy method, for when an object thread hops
        * platform/SecurityOriginData.h:

        * storage/DatabaseTracker.cpp:
        (WebCore::notificationMutex):
        (WebCore::notificationQueue):
        (WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged): Add the origin/name pair to a queue
        (WebCore::DatabaseTracker::scheduleForNotification): Schedule to deliver this queue of notifications
          on the main thread
        (WebCore::DatabaseTracker::notifyDatabasesChanged): Deliver all notifications in the queue
        * storage/DatabaseTracker.h:

        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::postflightAndCommit): scheduleNotifyDatabaseChanged() instead of "notify now!"
        (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto

2007-12-02  Rob Buis  <buis@kde.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=16002
        Load SVG (and other) UA StyleSheets dynamically when needed

        Load svg sheet when needed.

        * css/CSSStyleSelector.cpp:
        (WebCore::screenEval):
        (WebCore::printEval):
        (WebCore::CSSStyleSelector::CSSStyleSelector):
        (WebCore::CSSStyleSelector::loadDefaultStyle):
        (WebCore::CSSStyleSelector::styleForElement):
        (WebCore::CSSRuleSet::addRulesFromSheet):

2007-12-02  Mark Rowe  <mrowe@apple.com>

        Try and fix the Windows build.

        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::bindingInstance):

2007-12-02  Nikolas Zimmermann  <zimmermann@kde.org>

        Rubber stamped by Eric.

        Move platform/graphics/svg to graphics/svg as discussed on webkit-dev.
        Updated all project files.

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/svg: Removed.
        * platform/graphics/svg/SVGImage.cpp: Removed.
        * platform/graphics/svg/SVGImage.h: Removed.
        * platform/graphics/svg/SVGImageEmptyClients.h: Removed.
        * platform/graphics/svg/SVGPaintServer.cpp: Removed.
        * platform/graphics/svg/SVGPaintServer.h: Removed.
        * platform/graphics/svg/SVGPaintServerGradient.cpp: Removed.
        * platform/graphics/svg/SVGPaintServerGradient.h: Removed.
        * platform/graphics/svg/SVGPaintServerLinearGradient.cpp: Removed.
        * platform/graphics/svg/SVGPaintServerLinearGradient.h: Removed.
        * platform/graphics/svg/SVGPaintServerPattern.cpp: Removed.
        * platform/graphics/svg/SVGPaintServerPattern.h: Removed.
        * platform/graphics/svg/SVGPaintServerRadialGradient.cpp: Removed.
        * platform/graphics/svg/SVGPaintServerRadialGradient.h: Removed.
        * platform/graphics/svg/SVGPaintServerSolid.cpp: Removed.
        * platform/graphics/svg/SVGPaintServerSolid.h: Removed.
        * platform/graphics/svg/SVGResource.cpp: Removed.
        * platform/graphics/svg/SVGResource.h: Removed.
        * platform/graphics/svg/SVGResourceClipper.cpp: Removed.
        * platform/graphics/svg/SVGResourceClipper.h: Removed.
        * platform/graphics/svg/SVGResourceFilter.cpp: Removed.
        * platform/graphics/svg/SVGResourceFilter.h: Removed.
        * platform/graphics/svg/SVGResourceListener.h: Removed.
        * platform/graphics/svg/SVGResourceMarker.cpp: Removed.
        * platform/graphics/svg/SVGResourceMarker.h: Removed.
        * platform/graphics/svg/SVGResourceMasker.cpp: Removed.
        * platform/graphics/svg/SVGResourceMasker.h: Removed.
        * platform/graphics/svg/cairo: Removed.
        * platform/graphics/svg/cairo/RenderPathCairo.cpp: Removed.
        * platform/graphics/svg/cairo/SVGPaintServerCairo.cpp: Removed.
        * platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp: Removed.
        * platform/graphics/svg/cairo/SVGPaintServerPatternCairo.cpp: Removed.
        * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp: Removed.
        * platform/graphics/svg/cairo/SVGResourceClipperCairo.cpp: Removed.
        * platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp: Removed.
        * platform/graphics/svg/cg: Removed.
        * platform/graphics/svg/cg/CgSupport.cpp: Removed.
        * platform/graphics/svg/cg/CgSupport.h: Removed.
        * platform/graphics/svg/cg/RenderPathCg.cpp: Removed.
        * platform/graphics/svg/cg/SVGPaintServerCg.cpp: Removed.
        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp: Removed.
        * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp: Removed.
        * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp: Removed.
        * platform/graphics/svg/cg/SVGResourceClipperCg.cpp: Removed.
        * platform/graphics/svg/cg/SVGResourceFilterCg.cpp: Removed.
        * platform/graphics/svg/cg/SVGResourceFilterCg.mm: Removed.
        * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp: Removed.
        * platform/graphics/svg/cg/SVGResourceMaskerCg.mm: Removed.
        * platform/graphics/svg/filters: Removed.
        * platform/graphics/svg/filters/SVGDistantLightSource.h: Removed.
        * platform/graphics/svg/filters/SVGFEBlend.cpp: Removed.
        * platform/graphics/svg/filters/SVGFEBlend.h: Removed.
        * platform/graphics/svg/filters/SVGFEColorMatrix.cpp: Removed.
        * platform/graphics/svg/filters/SVGFEColorMatrix.h: Removed.
        * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp: Removed.
        * platform/graphics/svg/filters/SVGFEComponentTransfer.h: Removed.
        * platform/graphics/svg/filters/SVGFEComposite.cpp: Removed.
        * platform/graphics/svg/filters/SVGFEComposite.h: Removed.
        * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp: Removed.
        * platform/graphics/svg/filters/SVGFEConvolveMatrix.h: Removed.
        * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp: Removed.
        * platform/graphics/svg/filters/SVGFEDiffuseLighting.h: Removed.
        * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp: Removed.
        * platform/graphics/svg/filters/SVGFEDisplacementMap.h: Removed.
        * platform/graphics/svg/filters/SVGFEFlood.cpp: Removed.
        * platform/graphics/svg/filters/SVGFEFlood.h: Removed.
        * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp: Removed.
        * platform/graphics/svg/filters/SVGFEGaussianBlur.h: Removed.
        * platform/graphics/svg/filters/SVGFEImage.cpp: Removed.
        * platform/graphics/svg/filters/SVGFEImage.h: Removed.
        * platform/graphics/svg/filters/SVGFEMerge.cpp: Removed.
        * platform/graphics/svg/filters/SVGFEMerge.h: Removed.
        * platform/graphics/svg/filters/SVGFEMorphology.cpp: Removed.
        * platform/graphics/svg/filters/SVGFEMorphology.h: Removed.
        * platform/graphics/svg/filters/SVGFEOffset.cpp: Removed.
        * platform/graphics/svg/filters/SVGFEOffset.h: Removed.
        * platform/graphics/svg/filters/SVGFESpecularLighting.cpp: Removed.
        * platform/graphics/svg/filters/SVGFESpecularLighting.h: Removed.
        * platform/graphics/svg/filters/SVGFETile.h: Removed.
        * platform/graphics/svg/filters/SVGFETurbulence.cpp: Removed.
        * platform/graphics/svg/filters/SVGFETurbulence.h: Removed.
        * platform/graphics/svg/filters/SVGFilterEffect.cpp: Removed.
        * platform/graphics/svg/filters/SVGFilterEffect.h: Removed.
        * platform/graphics/svg/filters/SVGLightSource.cpp: Removed.
        * platform/graphics/svg/filters/SVGLightSource.h: Removed.
        * platform/graphics/svg/filters/SVGPointLightSource.h: Removed.
        * platform/graphics/svg/filters/SVGSpotLightSource.h: Removed.
        * platform/graphics/svg/filters/cg: Removed.
        * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h: Removed.
        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFEImageCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFETileCg.mm: Removed.
        * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm: Removed.
        * platform/graphics/svg/filters/cg/WKArithmeticFilter.cikernel: Removed.
        * platform/graphics/svg/filters/cg/WKArithmeticFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKArithmeticFilter.m: Removed.
        * platform/graphics/svg/filters/cg/WKComponentMergeFilter.cikernel: Removed.
        * platform/graphics/svg/filters/cg/WKComponentMergeFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKComponentMergeFilter.m: Removed.
        * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.cikernel: Removed.
        * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.m: Removed.
        * platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.cikernel: Removed.
        * platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.m: Removed.
        * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.cikernel: Removed.
        * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.m: Removed.
        * platform/graphics/svg/filters/cg/WKDistantLightFilter.cikernel: Removed.
        * platform/graphics/svg/filters/cg/WKDistantLightFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKDistantLightFilter.m: Removed.
        * platform/graphics/svg/filters/cg/WKGammaTransferFilter.cikernel: Removed.
        * platform/graphics/svg/filters/cg/WKGammaTransferFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKGammaTransferFilter.m: Removed.
        * platform/graphics/svg/filters/cg/WKIdentityTransferFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKIdentityTransferFilter.m: Removed.
        * platform/graphics/svg/filters/cg/WKLinearTransferFilter.cikernel: Removed.
        * platform/graphics/svg/filters/cg/WKLinearTransferFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKLinearTransferFilter.m: Removed.
        * platform/graphics/svg/filters/cg/WKNormalMapFilter.cikernel: Removed.
        * platform/graphics/svg/filters/cg/WKNormalMapFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKNormalMapFilter.m: Removed.
        * platform/graphics/svg/filters/cg/WKPointLightFilter.cikernel: Removed.
        * platform/graphics/svg/filters/cg/WKPointLightFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKPointLightFilter.m: Removed.
        * platform/graphics/svg/filters/cg/WKSpecularLightingFilter.cikernel: Removed.
        * platform/graphics/svg/filters/cg/WKSpecularLightingFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKSpecularLightingFilter.m: Removed.
        * platform/graphics/svg/filters/cg/WKSpotLightFilter.cikernel: Removed.
        * platform/graphics/svg/filters/cg/WKSpotLightFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKSpotLightFilter.m: Removed.
        * platform/graphics/svg/filters/cg/WKTableTransferFilter.cikernel: Removed.
        * platform/graphics/svg/filters/cg/WKTableTransferFilter.h: Removed.
        * platform/graphics/svg/filters/cg/WKTableTransferFilter.m: Removed.
        * platform/graphics/svg/mac: Removed.
        * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h: Removed.
        * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.mm: Removed.
        * platform/graphics/svg/qt: Removed.
        * platform/graphics/svg/qt/RenderPathQt.cpp: Removed.
        * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp: Removed.
        * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp: Removed.
        * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp: Removed.
        * platform/graphics/svg/qt/SVGPaintServerQt.cpp: Removed.
        * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp: Removed.
        * platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp: Removed.
        * platform/graphics/svg/qt/SVGResourceClipperQt.cpp: Removed.
        * platform/graphics/svg/qt/SVGResourceFilterQt.cpp: Removed.
        * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp: Removed.
        * svg/graphics: Copied from platform/graphics/svg.

2007-12-02  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Maciej.

        Fix IDL lookup in subdirectories. Missing 'my' prefix for the 'thisDir' variable.
        When entering subdirectories the 'thisDir' variable got altered - see snippet:

        THISDIR: WebCore/page FOUND FILE: FrameView.h (endCondition: 0)
        ..
        -> ENTER: WebCore/page/gtk (THIS DIR: WebCore/page)
        ...
        <- LEAVE: WebCore/page/gtk (THIS DIR: WebCore/page/gtk)
        THISDIR: WebCore/page/gtk FOUND FILE: History.cpp (endCondition: 0)

        'History.cpp' is located in WebCore/page not WebCore/page/gtk.

        * bindings/scripts/CodeGenerator.pm:

2007-12-01  Alp Toker  <alp@atoker.com>

        Reviewed by Adam Roben.

        Add the newly introduced webkit.h convenience header.

        * WebCore.pro:

2007-12-01  Antti Koivisto  <antti@apple.com>

        Reviewed by Adam.
        
        - Fix crash when removing a loading media element from the tree.
        - Follow the spec by invoking pause() when element is removed from the tree instead of unloading.

        Tests: http/tests/media/remove-while-loading.html
               media/remove-from-document.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::removedFromDocument):

2007-12-01  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Beth Dakin.

        Restored the test string in this test.

        * manual-tests/window-open-features-parsing.html:

2007-11-30  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Beth Dakin.
        
        Modified WebCore to follow the new JSGlobalObject/Interpreter ownership
        rules in JavaScriptCore.

        * bindings/js/kjs_binding.cpp:
        * bindings/js/kjs_binding.h: Removed stale, unused 
        interpreterForGlobalObject().

        * bindings/js/kjs_proxy.cpp: Changed to store a global object, rather
        than an interpreter.
        (WebCore::KJSProxy::finishedWithEvent): Need to NULL check 
        m_globalObject here because we no longer unnecessarily instantiate it.

        * bindings/js/kjs_window.cpp:
        (KJS::ScheduledAction::execute):
        * bindings/js/kjs_window.h: Removed redundant and less efficient 
        interpreter() function -- global objects have direct access to their
        interpreters now.

        Changed these functions to pass around JSGlobalObjects instead of 
        Interpreters:

        * page/Frame.cpp:
        (WebCore::Frame::bindingRootObject):
        (WebCore::Frame::createRootObject):
        * page/Frame.h:
        * page/mac/WebCoreFrameBridge.mm:
        (createRootObject):

2007-12-01  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - fix problem tracked by these bugs:
          http://bugs.webkit.org/show_bug.cgi?id=16097
          <rdar://problem/5619305> Safari crashes during load of LexisNexis search results
          <rdar://problem/5510779> CrashTracer: [USER] 25 crashes in Safari at
          WebCore::DocumentLoader::isLoadingMultipartContent const

        * loader/ImageDocument.cpp:
        (WebCore::ImageDocument::createDocumentStructure): Create an ImageDocumentElement
        instead of an HTMLImageElement.
        (WebCore::ImageDocument::scale): Added a null check for m_imageElement.
        (WebCore::ImageDocument::resizeImageToFit): Ditto.
        (WebCore::ImageDocument::restoreImageSize): Ditto.
        (WebCore::ImageDocument::imageFitsInWindow): Ditto.
        (WebCore::ImageDocument::windowSizeChanged): Ditto.
        (WebCore::ImageDocumentElement::~ImageDocumentElement): Call
        disconnectImageElement so m_imageElement will be set to 0
         if we're still connected to the document.
        (WebCore::ImageDocumentElement::willMoveToNewOwnerDocument): Ditto.

        * loader/ImageDocument.h: Changed image element type to be
        ImageDocumentElement instead of HTMLImageElement. Also added
        a disconnectImageElement function that sets m_imageElement to 0.

2007-12-01  Darin Adler  <darin@apple.com>

        - remove the empty directories

        * ksvg2: Removed.
        * ksvg2/css: Removed.
        * ksvg2/events: Removed.
        * ksvg2/misc: Removed.
        * ksvg2/scripts: Removed.

2007-12-01  Julien Chaffraix  <julien.chaffraix@gmail.com>

        Bug 16189: XMLHttpRequest::setRequestHeader() should not set certain headers

        Reviewed by Darin Adler.

        * xml/XMLHttpRequest.cpp:
        (WebCore::canSetRequestHeader):

        Test: http/tests/xmlhttprequest/set-dangerous-headers.html

2007-12-01  Rahul Abrol  <ra5ul@comcast.net>

        Reviewed by Adam Roben.

        http://bugs.webkit.org/show_bug.cgi?id=16128
        Ignore resizable=no for window.open().

        * bindings/js/kjs_window.cpp:
        (KJS::setWindowFeature):
        (KJS::parseWindowFeatures):
        * manual-tests/window-open-features-parsing.html:

2007-12-01  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix <rdar://problem/5619240> REGRESSION (Leopard-r28069): Reproducible crash with a Mootools-based calendar picker (jump to null in FrameView::layout)

        Test: fast/dynamic/subtree-common-root.html

        * page/FrameView.cpp:
        (WebCore::FrameView::layoutRoot): Added a parameter to let this method
        return the layout root for a pending layout as well.
        (WebCore::FrameView::scheduleRelayoutOfSubtree): Pass the new root
        to markContainingBlocksForLayout(). Otherwise,
        markContainingBlocksForLayout() could mark past the new root, if it had
        previously been marked as having a normal child needing layout and then
        was reached via a positioned child.
        * page/FrameView.h:
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::calcWidth):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::~RenderObject): Fixed the ASSERT so that
        it would really catch deletion of the layout root.
        (WebCore::RenderObject::markContainingBlocksForLayout): Added the
        newRoot parameter, which tells this method where to stop marking.
        * rendering/RenderObject.h:

2007-12-01  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fold FontStyle into TextRun

        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/Font.cpp:
        (WebCore::WidthIterator::WidthIterator):
        (WebCore::WidthIterator::advance):
        (WebCore::Font::width):
        (WebCore::Font::drawSimpleText):
        (WebCore::Font::drawGlyphBuffer):
        (WebCore::Font::drawText):
        (WebCore::Font::floatWidth):
        (WebCore::Font::floatWidthForSimpleText):
        (WebCore::Font::selectionRectForText):
        (WebCore::Font::selectionRectForSimpleText):
        (WebCore::Font::offsetForPosition):
        (WebCore::Font::offsetForPositionForSimpleText):
        * platform/graphics/Font.h:
        (WebCore::TextRun::TextRun):
        (WebCore::TextRun::setText):
        (WebCore::TextRun::allowTabs):
        (WebCore::TextRun::xPos):
        (WebCore::TextRun::padding):
        (WebCore::TextRun::rtl):
        (WebCore::TextRun::ltr):
        (WebCore::TextRun::directionalOverride):
        (WebCore::TextRun::applyRunRounding):
        (WebCore::TextRun::applyWordRounding):
        (WebCore::TextRun::spacingDisabled):
        (WebCore::TextRun::disableSpacing):
        (WebCore::TextRun::disableRoundingHacks):
        (WebCore::TextRun::setRTL):
        (WebCore::TextRun::setDirectionalOverride):
        * platform/graphics/FontStyle.h: Removed.
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawText):
        (WebCore::GraphicsContext::drawBidiText):
        (WebCore::GraphicsContext::drawHighlightForText):
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/StringTruncator.cpp:
        (WebCore::stringWidth):
        * platform/graphics/gtk/FontGtk.cpp:
        (WebCore::Font::drawComplexText):
        (WebCore::Font::floatWidthForComplexText):
        (WebCore::Font::offsetForPositionForComplexText):
        (WebCore::Font::selectionRectForComplexText):
        * platform/graphics/mac/FontMac.mm:
        (WebCore::ATSULayoutParameters::ATSULayoutParameters):
        (WebCore::addDirectionalOverride):
        (WebCore::overrideLayoutOperation):
        (WebCore::ATSULayoutParameters::initialize):
        (WebCore::Font::selectionRectForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::floatWidthForComplexText):
        (WebCore::Font::offsetForPositionForComplexText):
        * platform/graphics/qt/FontQt.cpp:
        (WebCore::generateComponents):
        (WebCore::Font::drawText):
        (WebCore::Font::width):
        (WebCore::Font::offsetForPosition):
        (WebCore::cursorToX):
        (WebCore::Font::selectionRectForText):
        * platform/graphics/win/FontWin.cpp:
        (WebCore::Font::selectionRectForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::floatWidthForComplexText):
        (WebCore::Font::offsetForPositionForComplexText):
        * platform/graphics/wx/FontWx.cpp:
        (WebCore::Font::selectionRectForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::floatWidthForComplexText):
        (WebCore::Font::offsetForPositionForComplexText):
        * platform/mac/WebCoreTextRenderer.mm:
        (WebCoreDrawTextAtPoint):
        (WebCoreTextFloatWidth):
        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenu::paint):
        * platform/win/UniscribeController.cpp:
        (WebCore::UniscribeController::UniscribeController):
        (WebCore::UniscribeController::offsetForPosition):
        (WebCore::UniscribeController::advance):
        (WebCore::UniscribeController::itemizeShapeAndPlace):
        (WebCore::UniscribeController::resetControlAndState):
        (WebCore::UniscribeController::shapeAndPlaceItem):
        * platform/win/UniscribeController.h:
        * platform/win/WebCoreTextRenderer.cpp:
        (WebCore::doDrawTextAtPoint):
        * rendering/EllipsisBox.cpp:
        (WebCore::EllipsisBox::paint):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::selectionRect):
        (WebCore::InlineTextBox::paint):
        (WebCore::InlineTextBox::paintSelection):
        (WebCore::InlineTextBox::paintCompositionBackground):
        (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
        (WebCore::InlineTextBox::paintTextMatchMarker):
        (WebCore::InlineTextBox::offsetForPosition):
        (WebCore::InlineTextBox::positionForOffset):
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::paintObject):
        (WebCore::RenderFileUploadControl::calcPrefWidths):
        * rendering/RenderImage.cpp:
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::updateFromElement):
        (WebCore::RenderListBox::paintItemForeground):
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::updateOptionsWidth):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::widthFromCache):
        (WebCore::RenderText::calcPrefWidths):
        (WebCore::RenderText::width):
        * rendering/RenderText.h:
        (WebCore::RenderText::allowTabs):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::calcPrefWidths):
        * rendering/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::calculateGlyphWidth):
        (WebCore::SVGInlineTextBox::paintCharacters):
        (WebCore::SVGInlineTextBox::paintSelection):
        * rendering/SVGRootInlineBox.cpp:
        (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
        (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
        (WebCore::svgTextRunForInlineTextBox):
        * rendering/SVGRootInlineBox.h:

2007-12-01  Adam Treat  <treat@kde.org>

        Reviewed by Simon.

        * Don't hide symbols when in Debug mode
        * On Linux (glibc) provide a backtrace in the test output for debugging purposes

        * WebCore.pro:

2007-11-30  Alp Toker  <alp@atoker.com>

        Reviewed by Adam Roben.

        http://bugs.webkit.org/show_bug.cgi?id=15691
        [GTK] Public API does not follow GTK+ conventions

        Refactor the WebKit/GTK+ public API. Changes:
          WebKitPage -> WebKitWebView
          WebKitFrame -> WebKitWebFrame

        Public API source and header names have been updated to mirror the API
        changes.

        The API is now kept in WebKit/gtk/WebView to match other ports in the
        same class such as Mac and Win.

        * WebCore.pro:

2007-11-30   Anders Carlsson  <andersca@apple.com>

        Add platform/text project group.
        
        * WebCore.vcproj/WebCore.vcproj:

2007-11-30   Anders Carlsson  <andersca@apple.com>

        Remove extra </Filter> tag which prevented the vcproj from being parsed correctly.
        
        * WebCore.vcproj/WebCore.vcproj:

2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Try to fix qt/gtk build.

        * WebCore.pro:

2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>

        Rubber stamped by Eric.

        Final integration of ksvg2 in WebKit. Moving ksvg2/ to svg/ and killing all it's subdirectories,
        by moving the files into approriate locations (css, rendering, ...) - as dicsussed on the
        mailing list and on IRC with David/Darin & Eric.

        Updated all build files - though I can't guarantee it builds on non-mac. Need buildbot to verify.

        * DerivedSources.make:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSSVGLazyEventListener.cpp: Copied from ksvg2/events/JSSVGLazyEventListener.cpp.
        * bindings/js/JSSVGLazyEventListener.h: Copied from ksvg2/events/JSSVGLazyEventListener.h.
        * css/SVGCSSComputedStyleDeclaration.cpp: Copied from ksvg2/css/SVGCSSComputedStyleDeclaration.cpp.
        * css/SVGCSSParser.cpp: Copied from ksvg2/css/SVGCSSParser.cpp.
        * css/SVGCSSPropertyNames.in: Copied from ksvg2/css/SVGCSSPropertyNames.in.
        * css/SVGCSSStyleSelector.cpp: Copied from ksvg2/css/SVGCSSStyleSelector.cpp.
        * css/SVGCSSValueKeywords.in: Copied from ksvg2/css/SVGCSSValueKeywords.in.
        * dom/make_names.pl: Copied from ksvg2/scripts/make_names.pl.
        * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp: Removed.
        * ksvg2/css/SVGCSSParser.cpp: Removed.
        * ksvg2/css/SVGCSSPropertyNames.in: Removed.
        * ksvg2/css/SVGCSSStyleSelector.cpp: Removed.
        * ksvg2/css/SVGCSSValueKeywords.in: Removed.
        * ksvg2/css/SVGRenderStyle.cpp: Removed.
        * ksvg2/css/SVGRenderStyle.h: Removed.
        * ksvg2/css/SVGRenderStyleDefs.cpp: Removed.
        * ksvg2/css/SVGRenderStyleDefs.h: Removed.
        * ksvg2/events/JSSVGLazyEventListener.cpp: Removed.
        * ksvg2/events/JSSVGLazyEventListener.h: Removed.
        * ksvg2/events/SVGZoomEvent.cpp: Removed.
        * ksvg2/events/SVGZoomEvent.h: Removed.
        * ksvg2/events/SVGZoomEvent.idl: Removed.
        * ksvg2/misc/PointerEventsHitRules.cpp: Removed.
        * ksvg2/misc/PointerEventsHitRules.h: Removed.
        * ksvg2/misc/SVGDocumentExtensions.cpp: Removed.
        * ksvg2/misc/SVGDocumentExtensions.h: Removed.
        * ksvg2/misc/SVGImageLoader.cpp: Removed.
        * ksvg2/misc/SVGImageLoader.h: Removed.
        * ksvg2/misc/SVGTimer.cpp: Removed.
        * ksvg2/misc/SVGTimer.h: Removed.
        * ksvg2/misc/TimeScheduler.cpp: Removed.
        * ksvg2/misc/TimeScheduler.h: Removed.
        * ksvg2/misc/xlinkattrs.in: Removed.
        * ksvg2/scripts/make_names.pl: Removed.
        * ksvg2/svg: Removed.
        * ksvg2/svg/ColorDistance.cpp: Removed.
        * ksvg2/svg/ColorDistance.h: Removed.
        * ksvg2/svg/GradientAttributes.h: Removed.
        * ksvg2/svg/LinearGradientAttributes.h: Removed.
        * ksvg2/svg/PatternAttributes.h: Removed.
        * ksvg2/svg/RadialGradientAttributes.h: Removed.
        * ksvg2/svg/SVGAElement.cpp: Removed.
        * ksvg2/svg/SVGAElement.h: Removed.
        * ksvg2/svg/SVGAElement.idl: Removed.
        * ksvg2/svg/SVGAngle.cpp: Removed.
        * ksvg2/svg/SVGAngle.h: Removed.
        * ksvg2/svg/SVGAngle.idl: Removed.
        * ksvg2/svg/SVGAnimateColorElement.cpp: Removed.
        * ksvg2/svg/SVGAnimateColorElement.h: Removed.
        * ksvg2/svg/SVGAnimateColorElement.idl: Removed.
        * ksvg2/svg/SVGAnimateElement.cpp: Removed.
        * ksvg2/svg/SVGAnimateElement.h: Removed.
        * ksvg2/svg/SVGAnimateElement.idl: Removed.
        * ksvg2/svg/SVGAnimateMotionElement.cpp: Removed.
        * ksvg2/svg/SVGAnimateMotionElement.h: Removed.
        * ksvg2/svg/SVGAnimateTransformElement.cpp: Removed.
        * ksvg2/svg/SVGAnimateTransformElement.h: Removed.
        * ksvg2/svg/SVGAnimateTransformElement.idl: Removed.
        * ksvg2/svg/SVGAnimatedAngle.idl: Removed.
        * ksvg2/svg/SVGAnimatedBoolean.idl: Removed.
        * ksvg2/svg/SVGAnimatedEnumeration.idl: Removed.
        * ksvg2/svg/SVGAnimatedInteger.idl: Removed.
        * ksvg2/svg/SVGAnimatedLength.idl: Removed.
        * ksvg2/svg/SVGAnimatedLengthList.idl: Removed.
        * ksvg2/svg/SVGAnimatedNumber.idl: Removed.
        * ksvg2/svg/SVGAnimatedNumberList.idl: Removed.
        * ksvg2/svg/SVGAnimatedPathData.cpp: Removed.
        * ksvg2/svg/SVGAnimatedPathData.h: Removed.
        * ksvg2/svg/SVGAnimatedPathData.idl: Removed.
        * ksvg2/svg/SVGAnimatedPoints.cpp: Removed.
        * ksvg2/svg/SVGAnimatedPoints.h: Removed.
        * ksvg2/svg/SVGAnimatedPoints.idl: Removed.
        * ksvg2/svg/SVGAnimatedPreserveAspectRatio.idl: Removed.
        * ksvg2/svg/SVGAnimatedRect.idl: Removed.
        * ksvg2/svg/SVGAnimatedString.idl: Removed.
        * ksvg2/svg/SVGAnimatedTemplate.h: Removed.
        * ksvg2/svg/SVGAnimatedTransformList.idl: Removed.
        * ksvg2/svg/SVGAnimationElement.cpp: Removed.
        * ksvg2/svg/SVGAnimationElement.h: Removed.
        * ksvg2/svg/SVGAnimationElement.idl: Removed.
        * ksvg2/svg/SVGCircleElement.cpp: Removed.
        * ksvg2/svg/SVGCircleElement.h: Removed.
        * ksvg2/svg/SVGCircleElement.idl: Removed.
        * ksvg2/svg/SVGClipPathElement.cpp: Removed.
        * ksvg2/svg/SVGClipPathElement.h: Removed.
        * ksvg2/svg/SVGClipPathElement.idl: Removed.
        * ksvg2/svg/SVGColor.cpp: Removed.
        * ksvg2/svg/SVGColor.h: Removed.
        * ksvg2/svg/SVGColor.idl: Removed.
        * ksvg2/svg/SVGComponentTransferFunctionElement.cpp: Removed.
        * ksvg2/svg/SVGComponentTransferFunctionElement.h: Removed.
        * ksvg2/svg/SVGComponentTransferFunctionElement.idl: Removed.
        * ksvg2/svg/SVGCursorElement.cpp: Removed.
        * ksvg2/svg/SVGCursorElement.h: Removed.
        * ksvg2/svg/SVGCursorElement.idl: Removed.
        * ksvg2/svg/SVGDefinitionSrcElement.cpp: Removed.
        * ksvg2/svg/SVGDefinitionSrcElement.h: Removed.
        * ksvg2/svg/SVGDefinitionSrcElement.idl: Removed.
        * ksvg2/svg/SVGDefsElement.cpp: Removed.
        * ksvg2/svg/SVGDefsElement.h: Removed.
        * ksvg2/svg/SVGDefsElement.idl: Removed.
        * ksvg2/svg/SVGDescElement.cpp: Removed.
        * ksvg2/svg/SVGDescElement.h: Removed.
        * ksvg2/svg/SVGDescElement.idl: Removed.
        * ksvg2/svg/SVGDocument.cpp: Removed.
        * ksvg2/svg/SVGDocument.h: Removed.
        * ksvg2/svg/SVGDocument.idl: Removed.
        * ksvg2/svg/SVGElement.cpp: Removed.
        * ksvg2/svg/SVGElement.h: Removed.
        * ksvg2/svg/SVGElement.idl: Removed.
        * ksvg2/svg/SVGElementInstance.cpp: Removed.
        * ksvg2/svg/SVGElementInstance.h: Removed.
        * ksvg2/svg/SVGElementInstance.idl: Removed.
        * ksvg2/svg/SVGElementInstanceList.cpp: Removed.
        * ksvg2/svg/SVGElementInstanceList.h: Removed.
        * ksvg2/svg/SVGElementInstanceList.idl: Removed.
        * ksvg2/svg/SVGEllipseElement.cpp: Removed.
        * ksvg2/svg/SVGEllipseElement.h: Removed.
        * ksvg2/svg/SVGEllipseElement.idl: Removed.
        * ksvg2/svg/SVGException.h: Removed.
        * ksvg2/svg/SVGException.idl: Removed.
        * ksvg2/svg/SVGExternalResourcesRequired.cpp: Removed.
        * ksvg2/svg/SVGExternalResourcesRequired.h: Removed.
        * ksvg2/svg/SVGExternalResourcesRequired.idl: Removed.
        * ksvg2/svg/SVGFEBlendElement.cpp: Removed.
        * ksvg2/svg/SVGFEBlendElement.h: Removed.
        * ksvg2/svg/SVGFEBlendElement.idl: Removed.
        * ksvg2/svg/SVGFEColorMatrixElement.cpp: Removed.
        * ksvg2/svg/SVGFEColorMatrixElement.h: Removed.
        * ksvg2/svg/SVGFEColorMatrixElement.idl: Removed.
        * ksvg2/svg/SVGFEComponentTransferElement.cpp: Removed.
        * ksvg2/svg/SVGFEComponentTransferElement.h: Removed.
        * ksvg2/svg/SVGFEComponentTransferElement.idl: Removed.
        * ksvg2/svg/SVGFECompositeElement.cpp: Removed.
        * ksvg2/svg/SVGFECompositeElement.h: Removed.
        * ksvg2/svg/SVGFECompositeElement.idl: Removed.
        * ksvg2/svg/SVGFEDiffuseLightingElement.cpp: Removed.
        * ksvg2/svg/SVGFEDiffuseLightingElement.h: Removed.
        * ksvg2/svg/SVGFEDiffuseLightingElement.idl: Removed.
        * ksvg2/svg/SVGFEDisplacementMapElement.cpp: Removed.
        * ksvg2/svg/SVGFEDisplacementMapElement.h: Removed.
        * ksvg2/svg/SVGFEDisplacementMapElement.idl: Removed.
        * ksvg2/svg/SVGFEDistantLightElement.cpp: Removed.
        * ksvg2/svg/SVGFEDistantLightElement.h: Removed.
        * ksvg2/svg/SVGFEDistantLightElement.idl: Removed.
        * ksvg2/svg/SVGFEFloodElement.cpp: Removed.
        * ksvg2/svg/SVGFEFloodElement.h: Removed.
        * ksvg2/svg/SVGFEFloodElement.idl: Removed.
        * ksvg2/svg/SVGFEFuncAElement.cpp: Removed.
        * ksvg2/svg/SVGFEFuncAElement.h: Removed.
        * ksvg2/svg/SVGFEFuncAElement.idl: Removed.
        * ksvg2/svg/SVGFEFuncBElement.cpp: Removed.
        * ksvg2/svg/SVGFEFuncBElement.h: Removed.
        * ksvg2/svg/SVGFEFuncBElement.idl: Removed.
        * ksvg2/svg/SVGFEFuncGElement.cpp: Removed.
        * ksvg2/svg/SVGFEFuncGElement.h: Removed.
        * ksvg2/svg/SVGFEFuncGElement.idl: Removed.
        * ksvg2/svg/SVGFEFuncRElement.cpp: Removed.
        * ksvg2/svg/SVGFEFuncRElement.h: Removed.
        * ksvg2/svg/SVGFEFuncRElement.idl: Removed.
        * ksvg2/svg/SVGFEGaussianBlurElement.cpp: Removed.
        * ksvg2/svg/SVGFEGaussianBlurElement.h: Removed.
        * ksvg2/svg/SVGFEGaussianBlurElement.idl: Removed.
        * ksvg2/svg/SVGFEImageElement.cpp: Removed.
        * ksvg2/svg/SVGFEImageElement.h: Removed.
        * ksvg2/svg/SVGFEImageElement.idl: Removed.
        * ksvg2/svg/SVGFELightElement.cpp: Removed.
        * ksvg2/svg/SVGFELightElement.h: Removed.
        * ksvg2/svg/SVGFEMergeElement.cpp: Removed.
        * ksvg2/svg/SVGFEMergeElement.h: Removed.
        * ksvg2/svg/SVGFEMergeElement.idl: Removed.
        * ksvg2/svg/SVGFEMergeNodeElement.cpp: Removed.
        * ksvg2/svg/SVGFEMergeNodeElement.h: Removed.
        * ksvg2/svg/SVGFEMergeNodeElement.idl: Removed.
        * ksvg2/svg/SVGFEOffsetElement.cpp: Removed.
        * ksvg2/svg/SVGFEOffsetElement.h: Removed.
        * ksvg2/svg/SVGFEOffsetElement.idl: Removed.
        * ksvg2/svg/SVGFEPointLightElement.cpp: Removed.
        * ksvg2/svg/SVGFEPointLightElement.h: Removed.
        * ksvg2/svg/SVGFEPointLightElement.idl: Removed.
        * ksvg2/svg/SVGFESpecularLightingElement.cpp: Removed.
        * ksvg2/svg/SVGFESpecularLightingElement.h: Removed.
        * ksvg2/svg/SVGFESpecularLightingElement.idl: Removed.
        * ksvg2/svg/SVGFESpotLightElement.cpp: Removed.
        * ksvg2/svg/SVGFESpotLightElement.h: Removed.
        * ksvg2/svg/SVGFESpotLightElement.idl: Removed.
        * ksvg2/svg/SVGFETileElement.cpp: Removed.
        * ksvg2/svg/SVGFETileElement.h: Removed.
        * ksvg2/svg/SVGFETileElement.idl: Removed.
        * ksvg2/svg/SVGFETurbulenceElement.cpp: Removed.
        * ksvg2/svg/SVGFETurbulenceElement.h: Removed.
        * ksvg2/svg/SVGFETurbulenceElement.idl: Removed.
        * ksvg2/svg/SVGFilterElement.cpp: Removed.
        * ksvg2/svg/SVGFilterElement.h: Removed.
        * ksvg2/svg/SVGFilterElement.idl: Removed.
        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp: Removed.
        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h: Removed.
        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.idl: Removed.
        * ksvg2/svg/SVGFitToViewBox.cpp: Removed.
        * ksvg2/svg/SVGFitToViewBox.h: Removed.
        * ksvg2/svg/SVGFitToViewBox.idl: Removed.
        * ksvg2/svg/SVGFontFaceElement.cpp: Removed.
        * ksvg2/svg/SVGFontFaceElement.h: Removed.
        * ksvg2/svg/SVGFontFaceElement.idl: Removed.
        * ksvg2/svg/SVGFontFaceFormatElement.cpp: Removed.
        * ksvg2/svg/SVGFontFaceFormatElement.h: Removed.
        * ksvg2/svg/SVGFontFaceFormatElement.idl: Removed.
        * ksvg2/svg/SVGFontFaceNameElement.cpp: Removed.
        * ksvg2/svg/SVGFontFaceNameElement.h: Removed.
        * ksvg2/svg/SVGFontFaceNameElement.idl: Removed.
        * ksvg2/svg/SVGFontFaceSrcElement.cpp: Removed.
        * ksvg2/svg/SVGFontFaceSrcElement.h: Removed.
        * ksvg2/svg/SVGFontFaceSrcElement.idl: Removed.
        * ksvg2/svg/SVGFontFaceUriElement.cpp: Removed.
        * ksvg2/svg/SVGFontFaceUriElement.h: Removed.
        * ksvg2/svg/SVGFontFaceUriElement.idl: Removed.
        * ksvg2/svg/SVGForeignObjectElement.cpp: Removed.
        * ksvg2/svg/SVGForeignObjectElement.h: Removed.
        * ksvg2/svg/SVGForeignObjectElement.idl: Removed.
        * ksvg2/svg/SVGGElement.cpp: Removed.
        * ksvg2/svg/SVGGElement.h: Removed.
        * ksvg2/svg/SVGGElement.idl: Removed.
        * ksvg2/svg/SVGGradientElement.cpp: Removed.
        * ksvg2/svg/SVGGradientElement.h: Removed.
        * ksvg2/svg/SVGGradientElement.idl: Removed.
        * ksvg2/svg/SVGImageElement.cpp: Removed.
        * ksvg2/svg/SVGImageElement.h: Removed.
        * ksvg2/svg/SVGImageElement.idl: Removed.
        * ksvg2/svg/SVGLangSpace.cpp: Removed.
        * ksvg2/svg/SVGLangSpace.h: Removed.
        * ksvg2/svg/SVGLangSpace.idl: Removed.
        * ksvg2/svg/SVGLength.cpp: Removed.
        * ksvg2/svg/SVGLength.h: Removed.
        * ksvg2/svg/SVGLength.idl: Removed.
        * ksvg2/svg/SVGLengthList.cpp: Removed.
        * ksvg2/svg/SVGLengthList.h: Removed.
        * ksvg2/svg/SVGLengthList.idl: Removed.
        * ksvg2/svg/SVGLineElement.cpp: Removed.
        * ksvg2/svg/SVGLineElement.h: Removed.
        * ksvg2/svg/SVGLineElement.idl: Removed.
        * ksvg2/svg/SVGLinearGradientElement.cpp: Removed.
        * ksvg2/svg/SVGLinearGradientElement.h: Removed.
        * ksvg2/svg/SVGLinearGradientElement.idl: Removed.
        * ksvg2/svg/SVGList.h: Removed.
        * ksvg2/svg/SVGListTraits.h: Removed.
        * ksvg2/svg/SVGLocatable.cpp: Removed.
        * ksvg2/svg/SVGLocatable.h: Removed.
        * ksvg2/svg/SVGLocatable.idl: Removed.
        * ksvg2/svg/SVGMPathElement.cpp: Removed.
        * ksvg2/svg/SVGMPathElement.h: Removed.
        * ksvg2/svg/SVGMarkerElement.cpp: Removed.
        * ksvg2/svg/SVGMarkerElement.h: Removed.
        * ksvg2/svg/SVGMarkerElement.idl: Removed.
        * ksvg2/svg/SVGMaskElement.cpp: Removed.
        * ksvg2/svg/SVGMaskElement.h: Removed.
        * ksvg2/svg/SVGMaskElement.idl: Removed.
        * ksvg2/svg/SVGMatrix.idl: Removed.
        * ksvg2/svg/SVGMetadataElement.cpp: Removed.
        * ksvg2/svg/SVGMetadataElement.h: Removed.
        * ksvg2/svg/SVGMetadataElement.idl: Removed.
        * ksvg2/svg/SVGNumber.idl: Removed.
        * ksvg2/svg/SVGNumberList.cpp: Removed.
        * ksvg2/svg/SVGNumberList.h: Removed.
        * ksvg2/svg/SVGNumberList.idl: Removed.
        * ksvg2/svg/SVGPaint.cpp: Removed.
        * ksvg2/svg/SVGPaint.h: Removed.
        * ksvg2/svg/SVGPaint.idl: Removed.
        * ksvg2/svg/SVGParserUtilities.cpp: Removed.
        * ksvg2/svg/SVGParserUtilities.h: Removed.
        * ksvg2/svg/SVGPathElement.cpp: Removed.
        * ksvg2/svg/SVGPathElement.h: Removed.
        * ksvg2/svg/SVGPathElement.idl: Removed.
        * ksvg2/svg/SVGPathSeg.h: Removed.
        * ksvg2/svg/SVGPathSeg.idl: Removed.
        * ksvg2/svg/SVGPathSegArc.cpp: Removed.
        * ksvg2/svg/SVGPathSegArc.h: Removed.
        * ksvg2/svg/SVGPathSegArcAbs.idl: Removed.
        * ksvg2/svg/SVGPathSegArcRel.idl: Removed.
        * ksvg2/svg/SVGPathSegClosePath.cpp: Removed.
        * ksvg2/svg/SVGPathSegClosePath.h: Removed.
        * ksvg2/svg/SVGPathSegClosePath.idl: Removed.
        * ksvg2/svg/SVGPathSegCurvetoCubic.cpp: Removed.
        * ksvg2/svg/SVGPathSegCurvetoCubic.h: Removed.
        * ksvg2/svg/SVGPathSegCurvetoCubicAbs.idl: Removed.
        * ksvg2/svg/SVGPathSegCurvetoCubicRel.idl: Removed.
        * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp: Removed.
        * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h: Removed.
        * ksvg2/svg/SVGPathSegCurvetoCubicSmoothAbs.idl: Removed.
        * ksvg2/svg/SVGPathSegCurvetoCubicSmoothRel.idl: Removed.
        * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp: Removed.
        * ksvg2/svg/SVGPathSegCurvetoQuadratic.h: Removed.
        * ksvg2/svg/SVGPathSegCurvetoQuadraticAbs.idl: Removed.
        * ksvg2/svg/SVGPathSegCurvetoQuadraticRel.idl: Removed.
        * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp: Removed.
        * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h: Removed.
        * ksvg2/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl: Removed.
        * ksvg2/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl: Removed.
        * ksvg2/svg/SVGPathSegLineto.cpp: Removed.
        * ksvg2/svg/SVGPathSegLineto.h: Removed.
        * ksvg2/svg/SVGPathSegLinetoAbs.idl: Removed.
        * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp: Removed.
        * ksvg2/svg/SVGPathSegLinetoHorizontal.h: Removed.
        * ksvg2/svg/SVGPathSegLinetoHorizontalAbs.idl: Removed.
        * ksvg2/svg/SVGPathSegLinetoHorizontalRel.idl: Removed.
        * ksvg2/svg/SVGPathSegLinetoRel.idl: Removed.
        * ksvg2/svg/SVGPathSegLinetoVertical.cpp: Removed.
        * ksvg2/svg/SVGPathSegLinetoVertical.h: Removed.
        * ksvg2/svg/SVGPathSegLinetoVerticalAbs.idl: Removed.
        * ksvg2/svg/SVGPathSegLinetoVerticalRel.idl: Removed.
        * ksvg2/svg/SVGPathSegList.cpp: Removed.
        * ksvg2/svg/SVGPathSegList.h: Removed.
        * ksvg2/svg/SVGPathSegList.idl: Removed.
        * ksvg2/svg/SVGPathSegMoveto.cpp: Removed.
        * ksvg2/svg/SVGPathSegMoveto.h: Removed.
        * ksvg2/svg/SVGPathSegMovetoAbs.idl: Removed.
        * ksvg2/svg/SVGPathSegMovetoRel.idl: Removed.
        * ksvg2/svg/SVGPatternElement.cpp: Removed.
        * ksvg2/svg/SVGPatternElement.h: Removed.
        * ksvg2/svg/SVGPatternElement.idl: Removed.
        * ksvg2/svg/SVGPoint.idl: Removed.
        * ksvg2/svg/SVGPointList.cpp: Removed.
        * ksvg2/svg/SVGPointList.h: Removed.
        * ksvg2/svg/SVGPointList.idl: Removed.
        * ksvg2/svg/SVGPolyElement.cpp: Removed.
        * ksvg2/svg/SVGPolyElement.h: Removed.
        * ksvg2/svg/SVGPolygonElement.cpp: Removed.
        * ksvg2/svg/SVGPolygonElement.h: Removed.
        * ksvg2/svg/SVGPolygonElement.idl: Removed.
        * ksvg2/svg/SVGPolylineElement.cpp: Removed.
        * ksvg2/svg/SVGPolylineElement.h: Removed.
        * ksvg2/svg/SVGPolylineElement.idl: Removed.
        * ksvg2/svg/SVGPreserveAspectRatio.cpp: Removed.
        * ksvg2/svg/SVGPreserveAspectRatio.h: Removed.
        * ksvg2/svg/SVGPreserveAspectRatio.idl: Removed.
        * ksvg2/svg/SVGRadialGradientElement.cpp: Removed.
        * ksvg2/svg/SVGRadialGradientElement.h: Removed.
        * ksvg2/svg/SVGRadialGradientElement.idl: Removed.
        * ksvg2/svg/SVGRect.idl: Removed.
        * ksvg2/svg/SVGRectElement.cpp: Removed.
        * ksvg2/svg/SVGRectElement.h: Removed.
        * ksvg2/svg/SVGRectElement.idl: Removed.
        * ksvg2/svg/SVGRenderingIntent.h: Removed.
        * ksvg2/svg/SVGRenderingIntent.idl: Removed.
        * ksvg2/svg/SVGSVGElement.cpp: Removed.
        * ksvg2/svg/SVGSVGElement.h: Removed.
        * ksvg2/svg/SVGSVGElement.idl: Removed.
        * ksvg2/svg/SVGScriptElement.cpp: Removed.
        * ksvg2/svg/SVGScriptElement.h: Removed.
        * ksvg2/svg/SVGScriptElement.idl: Removed.
        * ksvg2/svg/SVGSetElement.cpp: Removed.
        * ksvg2/svg/SVGSetElement.h: Removed.
        * ksvg2/svg/SVGSetElement.idl: Removed.
        * ksvg2/svg/SVGStopElement.cpp: Removed.
        * ksvg2/svg/SVGStopElement.h: Removed.
        * ksvg2/svg/SVGStopElement.idl: Removed.
        * ksvg2/svg/SVGStringList.cpp: Removed.
        * ksvg2/svg/SVGStringList.h: Removed.
        * ksvg2/svg/SVGStringList.idl: Removed.
        * ksvg2/svg/SVGStylable.cpp: Removed.
        * ksvg2/svg/SVGStylable.h: Removed.
        * ksvg2/svg/SVGStylable.idl: Removed.
        * ksvg2/svg/SVGStyleElement.cpp: Removed.
        * ksvg2/svg/SVGStyleElement.h: Removed.
        * ksvg2/svg/SVGStyleElement.idl: Removed.
        * ksvg2/svg/SVGStyledElement.cpp: Removed.
        * ksvg2/svg/SVGStyledElement.h: Removed.
        * ksvg2/svg/SVGStyledLocatableElement.cpp: Removed.
        * ksvg2/svg/SVGStyledLocatableElement.h: Removed.
        * ksvg2/svg/SVGStyledTransformableElement.cpp: Removed.
        * ksvg2/svg/SVGStyledTransformableElement.h: Removed.
        * ksvg2/svg/SVGSwitchElement.cpp: Removed.
        * ksvg2/svg/SVGSwitchElement.h: Removed.
        * ksvg2/svg/SVGSwitchElement.idl: Removed.
        * ksvg2/svg/SVGSymbolElement.cpp: Removed.
        * ksvg2/svg/SVGSymbolElement.h: Removed.
        * ksvg2/svg/SVGSymbolElement.idl: Removed.
        * ksvg2/svg/SVGTRefElement.cpp: Removed.
        * ksvg2/svg/SVGTRefElement.h: Removed.
        * ksvg2/svg/SVGTRefElement.idl: Removed.
        * ksvg2/svg/SVGTSpanElement.cpp: Removed.
        * ksvg2/svg/SVGTSpanElement.h: Removed.
        * ksvg2/svg/SVGTSpanElement.idl: Removed.
        * ksvg2/svg/SVGTests.cpp: Removed.
        * ksvg2/svg/SVGTests.h: Removed.
        * ksvg2/svg/SVGTests.idl: Removed.
        * ksvg2/svg/SVGTextContentElement.cpp: Removed.
        * ksvg2/svg/SVGTextContentElement.h: Removed.
        * ksvg2/svg/SVGTextContentElement.idl: Removed.
        * ksvg2/svg/SVGTextElement.cpp: Removed.
        * ksvg2/svg/SVGTextElement.h: Removed.
        * ksvg2/svg/SVGTextElement.idl: Removed.
        * ksvg2/svg/SVGTextPathElement.cpp: Removed.
        * ksvg2/svg/SVGTextPathElement.h: Removed.
        * ksvg2/svg/SVGTextPathElement.idl: Removed.
        * ksvg2/svg/SVGTextPositioningElement.cpp: Removed.
        * ksvg2/svg/SVGTextPositioningElement.h: Removed.
        * ksvg2/svg/SVGTextPositioningElement.idl: Removed.
        * ksvg2/svg/SVGTitleElement.cpp: Removed.
        * ksvg2/svg/SVGTitleElement.h: Removed.
        * ksvg2/svg/SVGTitleElement.idl: Removed.
        * ksvg2/svg/SVGTransform.cpp: Removed.
        * ksvg2/svg/SVGTransform.h: Removed.
        * ksvg2/svg/SVGTransform.idl: Removed.
        * ksvg2/svg/SVGTransformDistance.cpp: Removed.
        * ksvg2/svg/SVGTransformDistance.h: Removed.
        * ksvg2/svg/SVGTransformList.cpp: Removed.
        * ksvg2/svg/SVGTransformList.h: Removed.
        * ksvg2/svg/SVGTransformList.idl: Removed.
        * ksvg2/svg/SVGTransformable.cpp: Removed.
        * ksvg2/svg/SVGTransformable.h: Removed.
        * ksvg2/svg/SVGTransformable.idl: Removed.
        * ksvg2/svg/SVGURIReference.cpp: Removed.
        * ksvg2/svg/SVGURIReference.h: Removed.
        * ksvg2/svg/SVGURIReference.idl: Removed.
        * ksvg2/svg/SVGUnitTypes.h: Removed.
        * ksvg2/svg/SVGUnitTypes.idl: Removed.
        * ksvg2/svg/SVGUseElement.cpp: Removed.
        * ksvg2/svg/SVGUseElement.h: Removed.
        * ksvg2/svg/SVGUseElement.idl: Removed.
        * ksvg2/svg/SVGViewElement.cpp: Removed.
        * ksvg2/svg/SVGViewElement.h: Removed.
        * ksvg2/svg/SVGViewElement.idl: Removed.
        * ksvg2/svg/SVGViewSpec.cpp: Removed.
        * ksvg2/svg/SVGViewSpec.h: Removed.
        * ksvg2/svg/SVGViewSpec.idl: Removed.
        * ksvg2/svg/SVGZoomAndPan.cpp: Removed.
        * ksvg2/svg/SVGZoomAndPan.h: Removed.
        * ksvg2/svg/SVGZoomAndPan.idl: Removed.
        * ksvg2/svg/svgattrs.in: Removed.
        * ksvg2/svg/svgtags.in: Removed.
        * rendering/PointerEventsHitRules.cpp: Copied from ksvg2/misc/PointerEventsHitRules.cpp.
        * rendering/PointerEventsHitRules.h: Copied from ksvg2/misc/PointerEventsHitRules.h.
        * rendering/SVGRenderStyle.cpp: Copied from ksvg2/css/SVGRenderStyle.cpp.
        * rendering/SVGRenderStyle.h: Copied from ksvg2/css/SVGRenderStyle.h.
        * rendering/SVGRenderStyleDefs.cpp: Copied from ksvg2/css/SVGRenderStyleDefs.cpp.
        * rendering/SVGRenderStyleDefs.h: Copied from ksvg2/css/SVGRenderStyleDefs.h.
        * svg: Copied from ksvg2/svg.
        * svg/SVGDocumentExtensions.cpp: Copied from ksvg2/misc/SVGDocumentExtensions.cpp.
        * svg/SVGDocumentExtensions.h: Copied from ksvg2/misc/SVGDocumentExtensions.h.
        * svg/SVGImageLoader.cpp: Copied from ksvg2/misc/SVGImageLoader.cpp.
        * svg/SVGImageLoader.h: Copied from ksvg2/misc/SVGImageLoader.h.
        * svg/SVGTimer.cpp: Copied from ksvg2/misc/SVGTimer.cpp.
        * svg/SVGTimer.h: Copied from ksvg2/misc/SVGTimer.h.
        * svg/SVGZoomEvent.cpp: Copied from ksvg2/events/SVGZoomEvent.cpp.
        * svg/SVGZoomEvent.h: Copied from ksvg2/events/SVGZoomEvent.h.
        * svg/SVGZoomEvent.idl: Copied from ksvg2/events/SVGZoomEvent.idl.
        * svg/TimeScheduler.cpp: Copied from ksvg2/misc/TimeScheduler.cpp.
        * svg/TimeScheduler.h: Copied from ksvg2/misc/TimeScheduler.h.
        * svg/xlinkattrs.in: Copied from ksvg2/misc/xlinkattrs.in.

2007-11-30  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix. Add WebCore/platform/graphics/wx to includes.

        * webcore-wx.bkl:

2007-11-30  Brady Eidson  <beidson@apple.com>

        Reviewed by Geoff

        Further hookup of Database API
        With this change, any database operation that writes to the database (UPDATE, INSERT, CREATE, etc) will
        result in a didModifyDatabase notification when the transaction is successfully committed

        * storage/DatabaseAuthorizer.cpp: Global rename of "m_lastActionIncreasedSize" to "m_lastActionChangedDatabase"
        (WebCore::DatabaseAuthorizer::reset):
        (WebCore::DatabaseAuthorizer::createTable):
        (WebCore::DatabaseAuthorizer::allowAlterTable):
        (WebCore::DatabaseAuthorizer::createIndex):
        (WebCore::DatabaseAuthorizer::createTrigger):
        (WebCore::DatabaseAuthorizer::createVTable):
        (WebCore::DatabaseAuthorizer::allowInsert):
        (WebCore::DatabaseAuthorizer::allowUpdate):
        * storage/DatabaseAuthorizer.h:
        (WebCore::DatabaseAuthorizer::lastActionChangedDatabase):

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::notifyDatabaseChanged): Added.  Allow external entities (SQLTransaction) to be able
          to request a didModifyDatabase notification to the delegate
        * storage/DatabaseTracker.h:

        * storage/SQLTransaction.cpp: Added m_modifiedDatabase flag which tracks if any statement over the course of 
          a transaction resulted in a change to the database.
        (WebCore::SQLTransaction::SQLTransaction):
        (WebCore::SQLTransaction::runCurrentStatement): Set m_modifiedDatabase to true if the authorizer reports a mutation
          statement occurred
        (WebCore::SQLTransaction::postflightAndCommit): If the transaction successfully commits, call DatabaseTracker::notifyDatabaseChanged
        (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto
        * storage/SQLTransaction.h:

2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>

        Rubber stamped by David.

        Next round of moves - platform reorganization.
        Move text/font/glyph related files from the individual port directories
        into platform/text/<port> or platform/graphics/<port>.

        * DerivedSources.make:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/cf/StringCF.cpp: Removed.
        * platform/cf/StringImplCF.cpp: Removed.
        * platform/graphics/gtk/FontCacheGtk.cpp: Copied from platform/gtk/FontCacheGtk.cpp.
        * platform/graphics/gtk/FontDataGtk.cpp: Copied from platform/gtk/FontDataGtk.cpp.
        * platform/graphics/gtk/FontGtk.cpp: Copied from platform/gtk/FontGtk.cpp.
        * platform/graphics/gtk/FontPlatformData.h: Copied from platform/gtk/FontPlatformData.h.
        * platform/graphics/gtk/FontPlatformDataGtk.cpp: Copied from platform/gtk/FontPlatformDataGtk.cpp.
        * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp: Copied from platform/gtk/GlyphPageTreeNodeGtk.cpp.
        * platform/graphics/mac/FontCacheMac.mm: Copied from platform/mac/FontCacheMac.mm.
        * platform/graphics/mac/FontCustomPlatformData.cpp: Copied from platform/mac/FontCustomPlatformData.cpp.
        * platform/graphics/mac/FontCustomPlatformData.h: Copied from platform/mac/FontCustomPlatformData.h.
        * platform/graphics/mac/FontDataMac.mm: Copied from platform/mac/FontDataMac.mm.
        * platform/graphics/mac/FontMac.mm: Copied from platform/mac/FontMac.mm.
        * platform/graphics/mac/FontPlatformData.h: Copied from platform/mac/FontPlatformData.h.
        * platform/graphics/mac/FontPlatformDataMac.mm: Copied from platform/mac/FontPlatformDataMac.mm.
        * platform/graphics/mac/GlyphPageTreeNodeMac.cpp: Copied from platform/mac/GlyphPageTreeNodeMac.cpp.
        * platform/graphics/qt/FontCacheQt.cpp: Copied from platform/qt/FontCacheQt.cpp.
        * platform/graphics/qt/FontCustomPlatformData.cpp: Copied from platform/qt/FontCustomPlatformData.cpp.
        * platform/graphics/qt/FontCustomPlatformData.h: Copied from platform/qt/FontCustomPlatformData.h.
        * platform/graphics/qt/FontDataQt.cpp: Copied from platform/qt/FontDataQt.cpp.
        * platform/graphics/qt/FontPlatformData.h: Copied from platform/qt/FontPlatformData.h.
        * platform/graphics/qt/FontQt.cpp: Copied from platform/qt/FontQt.cpp.
        * platform/graphics/qt/GlyphPageTreeNodeQt.cpp: Copied from platform/qt/GlyphPageTreeNodeQt.cpp.
        * platform/graphics/win/FontCacheWin.cpp: Copied from platform/win/FontCacheWin.cpp.
        * platform/graphics/win/FontCustomPlatformData.cpp: Copied from platform/win/FontCustomPlatformData.cpp.
        * platform/graphics/win/FontCustomPlatformData.h: Copied from platform/win/FontCustomPlatformData.h.
        * platform/graphics/win/FontDataWin.cpp: Copied from platform/win/FontDataWin.cpp.
        * platform/graphics/win/FontDatabase.cpp: Copied from platform/win/FontDatabase.cpp.
        * platform/graphics/win/FontDatabase.h: Copied from platform/win/FontDatabase.h.
        * platform/graphics/win/FontPlatformData.h: Copied from platform/win/FontPlatformData.h.
        * platform/graphics/win/FontPlatformDataWin.cpp: Copied from platform/win/FontPlatformDataWin.cpp.
        * platform/graphics/win/FontWin.cpp: Copied from platform/win/FontWin.cpp.
        * platform/graphics/win/GlyphPageTreeNodeWin.cpp: Copied from platform/win/GlyphPageTreeNodeWin.cpp.
        * platform/graphics/wx/FontCacheWx.cpp: Copied from platform/wx/FontCacheWx.cpp.
        * platform/graphics/wx/FontDataWx.cpp: Copied from platform/wx/FontDataWx.cpp.
        * platform/graphics/wx/FontPlatformData.h: Copied from platform/wx/FontPlatformData.h.
        * platform/graphics/wx/FontPlatformDataWx.cpp: Copied from platform/wx/FontPlatformDataWx.cpp.
        * platform/graphics/wx/FontWx.cpp: Copied from platform/wx/FontWx.cpp.
        * platform/graphics/wx/GlyphMapWx.cpp: Copied from platform/wx/GlyphMapWx.cpp.
        * platform/gtk/FontCacheGtk.cpp: Removed.
        * platform/gtk/FontDataGtk.cpp: Removed.
        * platform/gtk/FontGtk.cpp: Removed.
        * platform/gtk/FontPlatformData.h: Removed.
        * platform/gtk/FontPlatformDataGtk.cpp: Removed.
        * platform/gtk/GlyphPageTreeNodeGtk.cpp: Removed.
        * platform/gtk/TextBreakIteratorInternalICUGtk.cpp: Removed.
        * platform/mac/FontCacheMac.mm: Removed.
        * platform/mac/FontCustomPlatformData.cpp: Removed.
        * platform/mac/FontCustomPlatformData.h: Removed.
        * platform/mac/FontDataMac.mm: Removed.
        * platform/mac/FontMac.mm: Removed.
        * platform/mac/FontPlatformData.h: Removed.
        * platform/mac/FontPlatformDataMac.mm: Removed.
        * platform/mac/GlyphPageTreeNodeMac.cpp: Removed.
        * platform/mac/ShapeArabic.c: Removed.
        * platform/mac/ShapeArabic.h: Removed.
        * platform/mac/StringImplMac.mm: Removed.
        * platform/mac/StringMac.mm: Removed.
        * platform/mac/TextBoundaries.mm: Removed.
        * platform/mac/TextBreakIteratorInternalICUMac.mm: Removed.
        * platform/mac/TextCodecMac.cpp: Removed.
        * platform/mac/TextCodecMac.h: Removed.
        * platform/mac/character-sets.txt: Removed.
        * platform/mac/mac-encodings.txt: Removed.
        * platform/mac/make-charset-table.pl: Removed.
        * platform/qt/FontCacheQt.cpp: Removed.
        * platform/qt/FontCustomPlatformData.cpp: Removed.
        * platform/qt/FontCustomPlatformData.h: Removed.
        * platform/qt/FontDataQt.cpp: Removed.
        * platform/qt/FontPlatformData.h: Removed.
        * platform/qt/FontQt.cpp: Removed.
        * platform/qt/GlyphPageTreeNodeQt.cpp: Removed.
        * platform/qt/StringQt.cpp: Removed.
        * platform/qt/TextBoundaries.cpp: Removed.
        * platform/qt/TextBreakIteratorQt.cpp: Removed.
        * platform/qt/TextCodecQt.cpp: Removed.
        * platform/qt/TextCodecQt.h: Removed.
        * platform/symbian/StringImplSymbian.cpp: Removed.
        * platform/symbian/StringSymbian.cpp: Removed.
        * platform/text/cf: Added.
        * platform/text/cf/StringCF.cpp: Copied from platform/cf/StringCF.cpp.
        * platform/text/cf/StringImplCF.cpp: Copied from platform/cf/StringImplCF.cpp.
        * platform/text/gtk: Added.
        * platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp: Copied from platform/gtk/TextBreakIteratorInternalICUGtk.cpp.
        * platform/text/mac/ShapeArabic.c: Copied from platform/mac/ShapeArabic.c.
        * platform/text/mac/ShapeArabic.h: Copied from platform/mac/ShapeArabic.h.
        * platform/text/mac/StringImplMac.mm: Copied from platform/mac/StringImplMac.mm.
        * platform/text/mac/StringMac.mm: Copied from platform/mac/StringMac.mm.
        * platform/text/mac/TextBoundaries.mm: Copied from platform/mac/TextBoundaries.mm.
        * platform/text/mac/TextBreakIteratorInternalICUMac.mm: Copied from platform/mac/TextBreakIteratorInternalICUMac.mm.
        * platform/text/mac/TextCodecMac.cpp: Copied from platform/mac/TextCodecMac.cpp.
        * platform/text/mac/TextCodecMac.h: Copied from platform/mac/TextCodecMac.h.
        * platform/text/mac/character-sets.txt: Copied from platform/mac/character-sets.txt.
        * platform/text/mac/mac-encodings.txt: Copied from platform/mac/mac-encodings.txt.
        * platform/text/mac/make-charset-table.pl: Copied from platform/mac/make-charset-table.pl.
        * platform/text/qt: Added.
        * platform/text/qt/StringQt.cpp: Copied from platform/qt/StringQt.cpp.
        * platform/text/qt/TextBoundaries.cpp: Copied from platform/qt/TextBoundaries.cpp.
        * platform/text/qt/TextBreakIteratorQt.cpp: Copied from platform/qt/TextBreakIteratorQt.cpp.
        * platform/text/qt/TextCodecQt.cpp: Copied from platform/qt/TextCodecQt.cpp.
        * platform/text/qt/TextCodecQt.h: Copied from platform/qt/TextCodecQt.h.
        * platform/text/symbian: Added.
        * platform/text/symbian/StringImplSymbian.cpp: Copied from platform/symbian/StringImplSymbian.cpp.
        * platform/text/symbian/StringSymbian.cpp: Copied from platform/symbian/StringSymbian.cpp.
        * platform/text/win: Added.
        * platform/text/win/TextBreakIteratorInternalICUWin.cpp: Copied from platform/win/TextBreakIteratorInternalICUWin.cpp.
        * platform/text/wx: Added.
        * platform/text/wx/StringWx.cpp: Copied from platform/wx/StringWx.cpp.
        * platform/win/FontCacheWin.cpp: Removed.
        * platform/win/FontCustomPlatformData.cpp: Removed.
        * platform/win/FontCustomPlatformData.h: Removed.
        * platform/win/FontDataWin.cpp: Removed.
        * platform/win/FontDatabase.cpp: Removed.
        * platform/win/FontDatabase.h: Removed.
        * platform/win/FontPlatformData.h: Removed.
        * platform/win/FontPlatformDataWin.cpp: Removed.
        * platform/win/FontWin.cpp: Removed.
        * platform/win/GlyphPageTreeNodeWin.cpp: Removed.
        * platform/win/TextBreakIteratorInternalICUWin.cpp: Removed.
        * platform/wx/FontCacheWx.cpp: Removed.
        * platform/wx/FontDataWx.cpp: Removed.
        * platform/wx/FontPlatformData.h: Removed.
        * platform/wx/FontPlatformDataWx.cpp: Removed.
        * platform/wx/FontWx.cpp: Removed.
        * platform/wx/GlyphMapWx.cpp: Removed.
        * platform/wx/StringWx.cpp: Removed.
        * webcore-wx.bkl:

2007-11-30  Kevin Ollivier  <kevino@theolliviers.com>

        Build fix for wx port. Adding editing/RemoveFormatCommand.cpp

        * WebCoreSources.bkl:

2007-11-30  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Adam Roben.

        Fix the build with DATABASE=0.

        * page/Settings.cpp:
        (WebCore::Settings::setDefaultDatabaseOriginQuota):
        (WebCore::Settings::defaultDatabaseOriginQuota):

2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>

        Rubber stamped by Darin.

        Fix misplaced file. The name "FontStyle" is not correct though - it probably
        needs yet another move - but this time inside platform/graphics - as soon
        as we agree on a better name.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/FontStyle.h: Copied from platform/text/FontStyle.h.
        * platform/text/FontStyle.h: Removed.

2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Sam.

        Rename "FontStyle FontStyle(...)" to "FontStyle fontStyle(...)".
        I scripted a bit too much while doing the TextStyle -> FontStyle change.

        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenu::paint):
        * rendering/EllipsisBox.cpp:
        (WebCore::EllipsisBox::paint):
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::paintObject):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::updateFromElement):
        (WebCore::RenderListBox::paintItemForeground):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::setStyle):
        (WebCore::RenderTextControl::createInnerTextStyle):
        (WebCore::RenderTextControl::createSubtreeIfNeeded):
        * rendering/RenderTextControl.h:
        * rendering/SVGRootInlineBox.cpp:
        (WebCore::svgFontStyleForInlineTextBox):

2007-11-30  Alp Toker  <alp@atoker.com>

        GTK+ build fix following the recent text reorganization.

        * WebCore.pro:

2007-11-29  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Adam.

        Part of <rdar://problem/5506522> Seed: cannot type into text box in
        Facebook, don't see plugin content (Adobe Flash)

        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::handleMouseEvent): Focus the plugin's parent
        frame  

2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>

        Not reviewed. Trying to fix gtk/qt/wx build. (I expected problems because of the moves)

        * WebCore.pro:
        * webcore-base.bkl:

2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>

        Rubber stamped by Brady.

        Started platform reorganization (platform/text addition).
        Moving string/text/font related classes into new places - as discussed on webkit-dev.

        In a follow-up commit I'll move classes out of platform/{mac,win,...} into
        platform/text/{mac,win,...}, and also do the ksvg2/ -> svg/ move.

        * WebCore.order:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplacementFragment::insertFragmentForTestRendering):
        * platform/AtomicString.cpp: Removed.
        * platform/AtomicString.h: Removed.
        * platform/AtomicStringImpl.h: Removed.
        * platform/Base64.cpp: Removed.
        * platform/Base64.h: Removed.
        * platform/BidiContext.cpp: Removed.
        * platform/BidiContext.h: Removed.
        * platform/BidiResolver.h: Removed.
        * platform/CString.cpp: Removed.
        * platform/CString.h: Removed.
        * platform/CharacterNames.h: Removed.
        * platform/CharsetData.h: Removed.
        * platform/Font.cpp: Removed.
        * platform/Font.h: Removed.
        * platform/FontCache.cpp: Removed.
        * platform/FontCache.h: Removed.
        * platform/FontData.cpp: Removed.
        * platform/FontData.h: Removed.
        * platform/FontDescription.h: Removed.
        * platform/FontFallbackList.cpp: Removed.
        * platform/FontFallbackList.h: Removed.
        * platform/FontFamily.cpp: Removed.
        * platform/FontFamily.h: Removed.
        * platform/FontSelector.h: Removed.
        * platform/GlyphBuffer.h: Removed.
        * platform/GlyphPageTreeNode.cpp: Removed.
        * platform/GlyphPageTreeNode.h: Removed.
        * platform/GlyphWidthMap.cpp: Removed.
        * platform/GlyphWidthMap.h: Removed.
        * platform/PlatformString.h: Removed.
        * platform/RegularExpression.cpp: Removed.
        * platform/RegularExpression.h: Removed.
        * platform/SegmentedString.cpp: Removed.
        * platform/SegmentedString.h: Removed.
        * platform/String.cpp: Removed.
        * platform/StringHash.h: Removed.
        * platform/StringImpl.cpp: Removed.
        * platform/StringImpl.h: Removed.
        * platform/StringTruncator.cpp: Removed.
        * platform/StringTruncator.h: Removed.
        * platform/TextBoundaries.h: Removed.
        * platform/TextBoundariesICU.cpp: Removed.
        * platform/TextBreakIterator.h: Removed.
        * platform/TextBreakIteratorICU.cpp: Removed.
        * platform/TextBreakIteratorInternalICU.h: Removed.
        * platform/TextCodec.cpp: Removed.
        * platform/TextCodec.h: Removed.
        * platform/TextCodecICU.cpp: Removed.
        * platform/TextCodecICU.h: Removed.
        * platform/TextCodecLatin1.cpp: Removed.
        * platform/TextCodecLatin1.h: Removed.
        * platform/TextCodecUTF16.cpp: Removed.
        * platform/TextCodecUTF16.h: Removed.
        * platform/TextCodecUserDefined.cpp: Removed.
        * platform/TextCodecUserDefined.h: Removed.
        * platform/TextDecoder.cpp: Removed.
        * platform/TextDecoder.h: Removed.
        * platform/TextDirection.h: Removed.
        * platform/TextEncoding.cpp: Removed.
        * platform/TextEncoding.h: Removed.
        * platform/TextEncodingRegistry.cpp: Removed.
        * platform/TextEncodingRegistry.h: Removed.
        * platform/TextStream.cpp: Removed.
        * platform/TextStream.h: Removed.
        * platform/TextStyle.h: Removed.
        * platform/UnicodeRange.cpp: Removed.
        * platform/UnicodeRange.h: Removed.
        * platform/graphics/Font.cpp: Copied from platform/Font.cpp.
        (WebCore::WidthIterator::WidthIterator):
        (WebCore::Font::width):
        (WebCore::Font::drawSimpleText):
        (WebCore::Font::drawGlyphBuffer):
        (WebCore::Font::drawText):
        (WebCore::Font::floatWidth):
        (WebCore::Font::floatWidthForSimpleText):
        (WebCore::Font::selectionRectForText):
        (WebCore::Font::selectionRectForSimpleText):
        (WebCore::Font::offsetForPosition):
        (WebCore::Font::offsetForPositionForSimpleText):
        * platform/graphics/Font.h: Copied from platform/Font.h.
        * platform/graphics/FontCache.cpp: Copied from platform/FontCache.cpp.
        * platform/graphics/FontCache.h: Copied from platform/FontCache.h.
        * platform/graphics/FontData.cpp: Copied from platform/FontData.cpp.
        * platform/graphics/FontData.h: Copied from platform/FontData.h.
        * platform/graphics/FontDescription.h: Copied from platform/FontDescription.h.
        * platform/graphics/FontFallbackList.cpp: Copied from platform/FontFallbackList.cpp.
        * platform/graphics/FontFallbackList.h: Copied from platform/FontFallbackList.h.
        * platform/graphics/FontFamily.cpp: Copied from platform/FontFamily.cpp.
        * platform/graphics/FontFamily.h: Copied from platform/FontFamily.h.
        * platform/graphics/FontSelector.h: Copied from platform/FontSelector.h.
        * platform/graphics/GlyphBuffer.h: Copied from platform/GlyphBuffer.h.
        * platform/graphics/GlyphPageTreeNode.cpp: Copied from platform/GlyphPageTreeNode.cpp.
        * platform/graphics/GlyphPageTreeNode.h: Copied from platform/GlyphPageTreeNode.h.
        * platform/graphics/GlyphWidthMap.cpp: Copied from platform/GlyphWidthMap.cpp.
        * platform/graphics/GlyphWidthMap.h: Copied from platform/GlyphWidthMap.h.
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawText):
        (WebCore::GraphicsContext::drawBidiText):
        (WebCore::GraphicsContext::drawHighlightForText):
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/StringTruncator.cpp: Copied from platform/StringTruncator.cpp.
        (WebCore::stringWidth):
        * platform/graphics/StringTruncator.h: Copied from platform/StringTruncator.h.
        * platform/graphics/qt/GraphicsContextQt.cpp:
        * platform/gtk/FontGtk.cpp:
        (WebCore::Font::drawComplexText):
        (WebCore::Font::floatWidthForComplexText):
        (WebCore::Font::offsetForPositionForComplexText):
        (WebCore::Font::selectionRectForComplexText):
        * platform/mac/FontMac.mm:
        (WebCore::ATSULayoutParameters::ATSULayoutParameters):
        (WebCore::Font::selectionRectForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::floatWidthForComplexText):
        (WebCore::Font::offsetForPositionForComplexText):
        * platform/mac/WebCoreTextRenderer.mm:
        (WebCoreDrawTextAtPoint):
        (WebCoreTextFloatWidth):
        * platform/qt/FontQt.cpp:
        (WebCore::generateComponents):
        (WebCore::Font::drawText):
        (WebCore::Font::width):
        (WebCore::Font::floatWidth):
        (WebCore::Font::offsetForPosition):
        (WebCore::cursorToX):
        (WebCore::Font::selectionRectForText):
        * platform/text: Added.
        * platform/text/AtomicString.cpp: Copied from platform/AtomicString.cpp.
        * platform/text/AtomicString.h: Copied from platform/AtomicString.h.
        * platform/text/AtomicStringImpl.h: Copied from platform/AtomicStringImpl.h.
        * platform/text/Base64.cpp: Copied from platform/Base64.cpp.
        * platform/text/Base64.h: Copied from platform/Base64.h.
        * platform/text/BidiContext.cpp: Copied from platform/BidiContext.cpp.
        * platform/text/BidiContext.h: Copied from platform/BidiContext.h.
        * platform/text/BidiResolver.h: Copied from platform/BidiResolver.h.
        * platform/text/CString.cpp: Copied from platform/CString.cpp.
        * platform/text/CString.h: Copied from platform/CString.h.
        * platform/text/CharacterNames.h: Copied from platform/CharacterNames.h.
        * platform/text/FontStyle.h: Copied from platform/TextStyle.h.
        (WebCore::FontStyle::FontStyle):
        * platform/text/PlatformString.h: Copied from platform/PlatformString.h.
        * platform/text/RegularExpression.cpp: Copied from platform/RegularExpression.cpp.
        * platform/text/RegularExpression.h: Copied from platform/RegularExpression.h.
        * platform/text/SegmentedString.cpp: Copied from platform/SegmentedString.cpp.
        * platform/text/SegmentedString.h: Copied from platform/SegmentedString.h.
        * platform/text/String.cpp: Copied from platform/String.cpp.
        * platform/text/StringHash.h: Copied from platform/StringHash.h.
        * platform/text/StringImpl.cpp: Copied from platform/StringImpl.cpp.
        * platform/text/StringImpl.h: Copied from platform/StringImpl.h.
        * platform/text/TextBoundaries.h: Copied from platform/TextBoundaries.h.
        * platform/text/TextBoundariesICU.cpp: Copied from platform/TextBoundariesICU.cpp.
        (WebCore::findNextWordFromIndex):
        * platform/text/TextBreakIterator.h: Copied from platform/TextBreakIterator.h.
        * platform/text/TextBreakIteratorICU.cpp: Copied from platform/TextBreakIteratorICU.cpp.
        * platform/text/TextBreakIteratorInternalICU.h: Copied from platform/TextBreakIteratorInternalICU.h.
        * platform/text/TextCodec.cpp: Copied from platform/TextCodec.cpp.
        * platform/text/TextCodec.h: Copied from platform/TextCodec.h.
        * platform/text/TextCodecICU.cpp: Copied from platform/TextCodecICU.cpp.
        * platform/text/TextCodecICU.h: Copied from platform/TextCodecICU.h.
        * platform/text/TextCodecLatin1.cpp: Copied from platform/TextCodecLatin1.cpp.
        * platform/text/TextCodecLatin1.h: Copied from platform/TextCodecLatin1.h.
        * platform/text/TextCodecUTF16.cpp: Copied from platform/TextCodecUTF16.cpp.
        * platform/text/TextCodecUTF16.h: Copied from platform/TextCodecUTF16.h.
        * platform/text/TextCodecUserDefined.cpp: Copied from platform/TextCodecUserDefined.cpp.
        * platform/text/TextCodecUserDefined.h: Copied from platform/TextCodecUserDefined.h.
        * platform/text/TextDecoder.cpp: Copied from platform/TextDecoder.cpp.
        * platform/text/TextDecoder.h: Copied from platform/TextDecoder.h.
        * platform/text/TextDirection.h: Copied from platform/TextDirection.h.
        * platform/text/TextEncoding.cpp: Copied from platform/TextEncoding.cpp.
        * platform/text/TextEncoding.h: Copied from platform/TextEncoding.h.
        * platform/text/TextEncodingRegistry.cpp: Copied from platform/TextEncodingRegistry.cpp.
        * platform/text/TextEncodingRegistry.h: Copied from platform/TextEncodingRegistry.h.
        * platform/text/TextStream.cpp: Copied from platform/TextStream.cpp.
        * platform/text/TextStream.h: Copied from platform/TextStream.h.
        * platform/text/UnicodeRange.cpp: Copied from platform/UnicodeRange.cpp.
        * platform/text/UnicodeRange.h: Copied from platform/UnicodeRange.h.
        * platform/text/mac: Added.
        * platform/text/mac/CharsetData.h: Copied from platform/CharsetData.h.
        * platform/win/FontWin.cpp:
        (WebCore::Font::selectionRectForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::floatWidthForComplexText):
        (WebCore::Font::offsetForPositionForComplexText):
        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenu::paint):
        * platform/win/UniscribeController.cpp:
        (WebCore::UniscribeController::UniscribeController):
        * platform/win/UniscribeController.h:
        * platform/win/WebCoreTextRenderer.cpp:
        (WebCore::doDrawTextAtPoint):
        * platform/wx/FontWx.cpp:
        (WebCore::Font::selectionRectForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::floatWidthForComplexText):
        (WebCore::Font::offsetForPositionForComplexText):
        * rendering/EllipsisBox.cpp:
        (WebCore::EllipsisBox::paint):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::selectionRect):
        (WebCore::InlineTextBox::paint):
        (WebCore::InlineTextBox::paintSelection):
        (WebCore::InlineTextBox::paintCompositionBackground):
        (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
        (WebCore::InlineTextBox::paintTextMatchMarker):
        (WebCore::InlineTextBox::offsetForPosition):
        (WebCore::InlineTextBox::positionForOffset):
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::paintObject):
        (WebCore::RenderFileUploadControl::calcPrefWidths):
        * rendering/RenderImage.cpp:
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::updateFromElement):
        (WebCore::RenderListBox::paintItemForeground):
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::updateOptionsWidth):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::widthFromCache):
        (WebCore::RenderText::calcPrefWidths):
        (WebCore::RenderText::width):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::setStyle):
        (WebCore::RenderTextControl::createInnerFontStyle):
        (WebCore::RenderTextControl::createSubtreeIfNeeded):
        (WebCore::RenderTextControl::calcPrefWidths):
        * rendering/RenderTextControl.h:
        * rendering/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::calculateGlyphWidth):
        (WebCore::SVGInlineTextBox::paintCharacters):
        (WebCore::SVGInlineTextBox::paintSelection):
        * rendering/SVGRootInlineBox.cpp:
        (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
        (WebCore::svgFontStyleForInlineTextBox):
        * rendering/SVGRootInlineBox.h:

2007-11-30  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=16072
        <rdar://problem/5463821> REGRESSION: Mousemove event isn't fired when mouse moves over scrollbar with pressed button (16072)

        Test: fast/events/mousemove-after-drag-over-scrollbar.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseMoveEvent): If the mouse is pressed, and we've moved over a new scrollbar, then we can clear m_lastScrollbarUnderMouse.
         We should only need to show the hover effect when the mouse isn't pressed.

2007-11-29  Brady Eidson <beidson@apple.com>

        Reviewed by Tim

        Part of <rdar://problem/5556377> - Need to accurately track and enforce database quota

        SQLite has the ability to enforce the page usage for databases.  This gives us bulletproof
        enforcement of the database size limit with reasonable granularity (within 1023 bytes by 
        default on OS X with SQLite 3.4.0)

        This also involved enhancing the ability to install/remove the authorizer to run the PRAGMA
        statements involved

        Note this patch does not actually use the new maximumSize() functionality of the 
        SQLiteDatabase class - that can be reviewed/landed seperately
        
        * platform/sql/SQLiteDatabase.cpp:
        (WebCore::SQLiteDatabase::SQLiteDatabase): 
        (WebCore::SQLiteDatabase::maximumSize): Return the current maximum size in bytes
        (WebCore::SQLiteDatabase::setMaximumSize): Based on m_pageSize, set the maximum page count
          to enforce the maximum size in bytes
        (WebCore::SQLiteDatabase::pageSize): Fetch m_pageSize if it hasn't been fetched, or return
          the cached value
        (WebCore::SQLiteDatabase::setAuthorizer): Use enableAuthorizer for the sqlite_* level 
          authorizer setup
        (WebCore::SQLiteDatabase::enableAuthorizer): Install or remove the sqlite authorizer handler
        * platform/sql/SQLiteDatabase.h: Add the m_pageSize member so we only have to fetch it once

2007-11-29  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Maciej.

        * Fix fast/events/mousedown_in_scrollbar.html
        * This test used to crash in PlatformScrollbarQt::mouse*Event due parent() returning 0.
        * Extend the current check that the scrollbar in the mev can be go away.
        This happens if we destroy a RenderLayer as the result of a click. In the
        case of Qt we can have this scrollbar in m_lastScrollbarUnderMouse. The RenderLayer
        is the ScrollbarClient, m_lastScrollbarUnderMouse is a RefPtr and keeps the
        last reference. When calling into this scrollbar the m_client pointer is a dangling pointer.
        We extend the check to set m_lastScrollbarUnderMouse back to zero when it was the
        scrollbar in the old mev and is gone in the new one.
        * This happens only on the Qt port because we send more/different move events.

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

2007-11-29  Antti Koivisto  <antti@apple.com>

        Reviewed by Mitz.

        Fix aspect ratio calculation of video.
        
        Video should always be treated as a replaced element in size calculation.
        
        Test: media/video-aspect-ratio.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::calcWidth):
        (WebCore::RenderBox::calcHeight):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::shouldCalculateSizeAsReplaced):
        * rendering/RenderMedia.h:
        (WebCore::RenderMedia::shouldCalculateSizeAsReplaced):

2007-11-29  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver.

        Additional fix for <rdar://problem/5592988> / http://bugs.webkit.org/show_bug.cgi?id=15936
        - More closely match IE's policy for frame navigation.

        * bindings/js/kjs_window.cpp:
        (KJS::WindowProtoFuncOpen::callAsFunction):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::shouldAllowNavigation):
        * page/FrameTree.cpp:
        (WebCore::FrameTree::top):
        * page/FrameTree.h:

2007-11-29  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben and John Sullivan.

        - make the recent searches popup extend only along the straight part of
          the search field (unless it needs to be wider).

        * platform/PopupMenuClient.h:
          Added clientInsetLeft() and clientInsetRight() for clients to
          specify desired horizontal insets for the menu.
        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenu::calculatePositionAndSize):
        (WebCore::PopupMenu::paint):
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::clientInsetLeft): Added. Returns 0.
        (WebCore::RenderMenuList::clientInsetRight): Ditto.
        * rendering/RenderMenuList.h:
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::clientInsetLeft): Added. Returns half the
        control's height, which is the radius of the cap on the left.
        (WebCore::RenderTextControl::clientInsetRight): Added.
        * rendering/RenderTextControl.h:

2007-11-30  Alp Toker  <alp@atoker.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=16173
        Licensing change

        Change license from BSD to LGPL.

        This is being done to encourage vendors to contribute their fixes back
        upstream.

        * platform/graphics/gtk/ColorGtk.cpp:
        * platform/graphics/gtk/IntPointGtk.cpp:
        * platform/graphics/gtk/IntRectGtk.cpp:
        * platform/graphics/svg/cairo/RenderPathCairo.cpp:
        * platform/graphics/svg/cairo/SVGPaintServerCairo.cpp:
        * platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp:
        * platform/graphics/svg/cairo/SVGPaintServerPatternCairo.cpp:
        * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp:
        * platform/graphics/svg/cairo/SVGResourceClipperCairo.cpp:
        * platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp:
        * platform/gtk/Language.cpp:
        * platform/gtk/LoggingGtk.cpp:
        * platform/gtk/SoundGtk.cpp:
        * platform/gtk/SystemTimeGtk.cpp:
        * platform/gtk/TextBreakIteratorInternalICUGtk.cpp:

2007-11-29  Darin Adler  <darin@apple.com>

        Reviewed by Adele.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16191
          REGRESSION: cannot tab to radio input after setting checked to false

        Test: fast/forms/input-radio-checked-tab.html

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::CheckedRadioButtons::addButton): Fix this code
        so that it doesn't call setChecked(false) until after the map has been updated.
        Otherwise, we can end up deallocating the map before manipulating it. As long
        as I was changing the function, I decided to make it do only a single hash
        table lookup.

        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::setChecked):
        Remove the button from the radio buttons set before changing the checked
        state. This matches the idiom used elsewhere and fixes the problem where
        setting checked to false would not remove it from the set.

2007-11-29  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5620093> Brief hang when Safari caches page text of XML document

        * editing/TextIterator.cpp:
        (WebCore::TextIterator::representNodeOffsetZero): When we haven't been emitting any 
        characters, shouldRepresentNodeOffsetZero() can create VisiblePositions, which is
        expensive.  So, we perform the inexpensive checks on m_node to see if it necessitates 
        emitting a character first and will early return before encountering 
        shouldRepresentNodeOffsetZero()s worse case behavior.

2007-11-29  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam.

        Don't install event handlers or set the zoom cursor if auto-shrink has been disabled.

        * loader/ImageDocument.cpp:
        (WebCore::ImageDocument::createDocumentStructure):
        (WebCore::ImageDocument::imageChanged):

2007-11-29  Beth Dakin  <bdakin@apple.com>

        Reviewed by Geoff.

        Fix for <rdar://problem/5620151> Disable JavaScript for SVG as 
        image for <img> and CSS images

        * platform/graphics/svg/SVGImage.cpp:
        (WebCore::SVGImage::dataChanged): When we create the empty clients, 
        explicitly disable JavaScript in the settings.

2007-11-29  Brady Eidson  <beidson@apple.com>

        Reviewed by Anders

        Support for <rdar://problem/5556381> and <rdar://problem/5556379>

        The Database feature in the engine needs to support delegate calls for policy decisions and
        also provide notifications when origins and databases change their state.

        This patch also polishes off the missing features of the management API

        * page/Chrome.cpp: Implement the two UIDelegate methods
        (WebCore::Chrome::requestQuotaIncreaseForNewDatabase): Ask for more space to create a new database if it won't fit
        (WebCore::Chrome::requestQuotaIncreaseForDatabaseOperation): Ask for more space to complete an in-progress operation
        * page/Chrome.h:
        * page/ChromeClient.h:
        * platform/graphics/svg/SVGImageEmptyClients.h:
        (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForNewDatabase):
        (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForDatabaseOperation):

        * storage/Database.cpp:
        (WebCore::Database::openDatabase): Check to see if this database can be opened - the quota must be high 
          enough and if it isn't, the UIDelegate should have a change to bump the quota.
          Also update the UI-relevant details (display name and estimated size) upon successful opening of the database

        * storage/DatabaseDetails.h: Remove the version parameter as it is a programatic detail of a
          site database and is not important to API clients
        (WebCore::DatabaseDetails::DatabaseDetails):
        (WebCore::DatabaseDetails::isValid):
        (WebCore::DatabaseDetails::name):

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::openTrackerDatabase): Tweaked the schema here - there was a horrible bug with the old schema that would
          prevent you from having two databases of the same name from two different origins.  Also simplify the origin-management schema
        (WebCore::DatabaseTracker::canEstablishDatabase): Added.  Does some estimated size vs quota checks, and asks the UI delegate for 
          more space if necessary
        (WebCore::DatabaseTracker::hasEntryForOrigin):
        (WebCore::DatabaseTracker::establishEntryForOrigin): Establishes a tracker entry for the given origin with the current default quota
          Also notifies the client of the new origin
        (WebCore::DatabaseTracker::setDatabaseDetails): Update the display name and estimated size for the given database
        (WebCore::DatabaseTracker::fullPathForDatabase): Tweak to add the ability to get the path without creating it - for management purposes
        (WebCore::DatabaseTracker::populateOrigins): Populate origins from the Origins table instead of the Databases table
        (WebCore::DatabaseTracker::origins):
        (WebCore::DatabaseTracker::detailsForNameAndOrigin): For API management
        (WebCore::DatabaseTracker::usageForDatabase):
        (WebCore::DatabaseTracker::usageForOrigin):
        (WebCore::DatabaseTracker::quotaForOrigin):
        (WebCore::DatabaseTracker::setQuota): Notify the client
        (WebCore::DatabaseTracker::addDatabase): Notify the client 
        (WebCore::DatabaseTracker::deleteAllDatabases):
        (WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
        (WebCore::DatabaseTracker::deleteDatabase):
        (WebCore::DatabaseTracker::deleteDatabaseFile):
        * storage/DatabaseTracker.h:

2007-11-29  Dan Bernstein  <mitz@apple.com>

        Reviewed by Beth Dakin and Darin Adler.

        - manual test for <rdar://problem/5346394> Contextmenu event doesn't fire on body element inside frame

        * manual-tests/context-click-unfocused-frame.html: Added.

2007-11-28  Antti Koivisto  <antti@apple.com>

        Reviewed by Geoff.
        
        Fallback content inside media elements should not be rendered.

        Test: media/fallback.html

        * rendering/RenderMedia.h:
        (WebCore::RenderMedia::canHaveChildren):

2007-11-28  Mark Rowe  <mrowe@apple.com>

        Windows build fix.

        * WebCore.vcproj/WebCore.vcproj:

2007-11-28  Mark Rowe  <mrowe@apple.com>

        Gtk build fix.

        * WebCore.pro:

2007-11-28  Antti Koivisto  <antti@apple.com>

        Reviewed by Oliver.

        Make QTMovieView fill color transparent. This behavior matches the specification
        (and allows nice alpha blended video).

        * platform/graphics/mac/MoviePrivateQTKit.mm:
        (WebCore::MoviePrivate::createQTMovieView):

2007-11-28  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin.

        Test: media/video-controls.html
        
        <rdar://problem/5605668>
        Implement controls attribute for video element
        
        - Add RenderMedia and make RenderVideo its subclass. Controls code goes to RenderMedia while
          video specific (painting etc) code stays in RenderVideo. For example audio controls can be implemented
          later by just instantiating RenderMedia as renderer.
        - Make media renderer hierarchy inherit from RenderBlock instead of RenderReplaced so it can 
          have child nodes (for controls).
        - Controls are implemented as a shadow DOM.
        - Current look is a placeholder. It is defined purely in CSS.
        - Some things like volume controls are not yet implemented.
        - Fade-in/out is done manually, CSS animations don't work well in shadow trees.
          
        * WebCore.xcodeproj/project.pbxproj:
        * css/html4.css:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::attributeChanged):
        (WebCore::HTMLMediaElement::updateMovie):
        (WebCore::HTMLMediaElement::defaultEventHandler):
        * html/HTMLMediaElement.h:
        * rendering/RenderMedia.cpp: Added.
        (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
        (WebCore::MediaControlShadowRootElement::isShadowNode):
        (WebCore::MediaControlShadowRootElement::shadowParentNode):
        (WebCore::MediaControlInputElement::MediaControlInputElement):
        (WebCore::MediaControlInputElement::attachToParent):
        (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
        (WebCore::MediaControlPlayButtonElement::inPausedState):
        (WebCore::MediaControlPlayButtonElement::defaultEventHandler):
        (WebCore::MediaControlPlayButtonElement::update):
        (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
        (WebCore::MediaControlTimelineElement::defaultEventHandler):
        (WebCore::MediaControlTimelineElement::update):
        (WebCore::RenderMedia::RenderMedia):
        (WebCore::RenderMedia::~RenderMedia):
        (WebCore::RenderMedia::mediaElement):
        (WebCore::RenderMedia::movie):
        (WebCore::RenderMedia::setStyle):
        (WebCore::RenderMedia::createControlsShadowRoot):
        (WebCore::RenderMedia::createPanel):
        (WebCore::RenderMedia::createPlayButton):
        (WebCore::RenderMedia::createTimeline):
        (WebCore::RenderMedia::createTimeDisplay):
        (WebCore::RenderMedia::updateFromElement):
        (WebCore::RenderMedia::updateControls):
        (WebCore::RenderMedia::timeUpdateTimerFired):
        (WebCore::RenderMedia::updateTimeDisplay):
        (WebCore::RenderMedia::updateControlVisibility):
        (WebCore::RenderMedia::changeOpacity):
        (WebCore::RenderMedia::opacityAnimationTimerFired):
        (WebCore::RenderMedia::forwardEvent):
        * rendering/RenderMedia.h: Added.
        (WebCore::RenderMedia::renderName):
        (WebCore::RenderMedia::isMedia):
        (WebCore::RenderMedia::intrinsicSize):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::isMedia):
        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::RenderVideo):
        (WebCore::RenderVideo::videoSizeChanged):
        (WebCore::RenderVideo::paintObject):
        (WebCore::RenderVideo::layout):
        (WebCore::RenderVideo::updateFromElement):
        (WebCore::RenderVideo::calcAspectRatioWidth):
        (WebCore::RenderVideo::calcAspectRatioHeight):
        * rendering/RenderVideo.h:

2007-11-28  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5573879> GMail Beta: Crash in when undoing Remove Formating
        
        In the new beta, Google has added some custom code on top of our RemoveFormat
        to work around a bug where fully selected lists aren't removed.  This code corrupts
        the undo stack and causes crashes.  This change fixes two problems with RemoveFormat
        so that Google doesn't have to have any custom code. After checking this in I'll 
        work on bulletproofing the undo stack

        * WebCore.xcodeproj/project.pbxproj: 
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::insertLineBreak): Added this convenience method.
        (WebCore::CompositeEditCommand::inputText): Added code to select all inserted text, not
        just the last paragraph.  Added code to support an input string with '\n's.
        * editing/CompositeEditCommand.h:
        * editing/Editor.cpp:
        (WebCore::Editor::removeFormattingAndStyle): Moved code to its own EditCommand.
        * editing/RemoveFormatCommand.cpp: Added. Moved code from removeFormattingAndStyle here.
        (WebCore::RemoveFormatCommand::RemoveFormatCommand):
        (WebCore::RemoveFormatCommand::doApply): Added code to remove fully selected lists.
        * editing/RemoveFormatCommand.h: Added.
        (WebCore::RemoveFormatCommand::editingAction):

2007-11-28  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix <rdar://problem/5612459> CrashTracer: [REGRESSION] 61 crashes in Safari at com.apple.WebCore: WebCore::AutoTableLayout::layout + 2046

        Test: fast/table/empty-auto-column-zero-divide.html

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::recalcColumn):
        (WebCore::AutoTableLayout::fullRecalc):
        (WebCore::AutoTableLayout::calcEffectiveWidth):
        (WebCore::AutoTableLayout::layout): When distributing the remaining
        width among columns, skip those whose effective (rather than
        specified) width is auto and contain only empty cells.

2007-11-28  Peter Kasting  <zerodpx@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16169
        GIF decoder needs to set hasAlpha() correctly on subsequent frames.
        
        This also removes the workaround for this problem in
        ImageSourceCairo.cpp.

        * platform/graphics/cairo/ImageSourceCairo.cpp:
        (WebCore::ImageSource::frameHasAlphaAtIndex):
        * platform/image-decoders/gif/GIFImageDecoder.cpp:
        (WebCore::GIFImageDecoder::initFrameBuffer):

2007-11-28  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler and Adam Roben.

        - <rdar://problem/5057218> Reenable "recent searches" search field menu when menu is fully implemented

        * platform/win/SearchPopupMenuWin.cpp:
        (WebCore::SearchPopupMenu::enabled): Changed to return true.
        (WebCore::autosaveKey): Added. Returns a preferences key for the
        autosave name by prefixing it with "com.apple.WebKit.searchField:".
        (WebCore::SearchPopupMenu::saveRecentSearches): Implemented.
        (WebCore::SearchPopupMenu::loadRecentSearches): Implemented.

2007-11-28  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=15689
        [GTK] Background of loading images is always black

        frameHasAlphaAtIndex() exists only to allow optimization for cases we
        are certain the image can be blitted rather than composited.

        Thus we need to be conservative, returning false only when we are
        absolutely certain there is no need for composited copying, and true
        otherwise.

        CG doesn't even bother with this optimization at all and always
        returns true.

        Patch includes a workaround for
          http://bugs.webkit.org/show_bug.cgi?id=16169
          GIF ImageDecoder hasAlpha() return value incorrect

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

2007-11-27  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Install the JavaScriptCore headers as part of the GTK+ port.

        * WebCore.pro:

2007-11-27  Beth Dakin  <bdakin@apple.com>

        Reviewed by Oliver.

        Fix for <rdar://problem/5616052> SVGs with width or height of 100% 
        hang when used as a background-image (16164)

        * platform/graphics/svg/SVGImage.cpp:
        (WebCore::SVGImage::size): Use valueAsPercentage() for percents 
        instead of valueInSpecifiedUnits(). valueInSpecifiedUnits() 
        returns, for example, 50 for 50%, so multiplying percentages by the 
        default size of 300 x 150 led to ridiculously huge dimensions for 
        SVG images, and the subsequent hang. 

2007-11-27  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Adam.

        Set haveRegisteredWindowClass when we register the window class.

        * plugins/win/PluginViewWin.cpp:
        (WebCore::registerPluginView):

2007-11-27  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Sam Weinig.

        Bug 16165: Dragging the inspector toolbar should move the window
        http://bugs.webkit.org/show_bug.cgi?id=16165

        * page/inspector/DocumentPanel.js: Call the new drag functions, and cleanup code.
        * page/inspector/inspector.css: Only make the toolbar transparent in detached mode.
        * page/inspector/inspector.js: Call the new drag functions, and cleanup code. Add
          toolbar drag functions that move the window.

2007-11-27  Antti Koivisto  <antti@apple.com>

        Reviewed by Mitz.

        Small changes to make RenderSlider a bit more generic so it can be used in video controls.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::defaultEventHandler): Fix coordinates with forwarded events.
        * rendering/RenderSlider.cpp:
        (WebCore::HTMLSliderThumbElement::defaultEventHandler): Fix coordinates with forwarded events.
        (WebCore::RenderSlider::setStyle):
        (WebCore::RenderSlider::createThumbStyle): Copy thumb left and top from the orginal style so position does not reset.
        (WebCore::RenderSlider::mouseEventIsInThumb): Make this work with forwarded events.
        * rendering/RenderSlider.h:

2007-11-27  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin.

        - Don't use hasPseudoId() optimization for pseudo styles used in shadow trees. These styles
          generally exist when asked for so the optimization does not do much. This reverses the continuing
          growth of the _pseudoBits bitfield in RenderStyle.
        - Add some pseudo elements for media controls

        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::extractPseudoType):
        * css/CSSSelector.h:
        (WebCore::CSSSelector::):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchRulesForList):
        (WebCore::CSSStyleSelector::checkOneSelector):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::getPseudoStyle):
        * rendering/RenderStyle.cpp:
        (WebCore::pseudoBit):
        (WebCore::RenderStyle::hasPseudoStyle):
        (WebCore::RenderStyle::setHasPseudoStyle):
        * rendering/RenderStyle.h:
        (WebCore::RenderStyle::):

2007-11-27  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Kevin McCullough.

        Bug 16161: window.moveBy(0, 0) moves the window by -22px vertically
        http://bugs.webkit.org/show_bug.cgi?id=16161

        Removed the "Adjust the window rect to be in the coordinate space of
        the screen rect" step which was always adding (0,22) to the window
        position (on the main screen). Instead, account for screen X and Y
        in the bottom and right constrain step.

        Added more test cases to: fast/dom/Window/window-resize.html

        * bindings/js/kjs_window.cpp:
        (KJS::adjustWindowRect):

2007-11-27  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben.

        * page/inspector/inspector.css: Make the text in the Network
        panel legend more readable.

2007-11-27  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben.

        Don't call setNeedsReapplyStylesInAllFrames if the
        authorAndUserStylesEnabled setting didn't change.

        * page/Settings.cpp:
        (WebCore::Settings::setAuthorAndUserStylesEnabled):

2007-11-27  Alp Toker  <alp@atoker.com>

        Fix potential broken build due to a missing DEPENDPATH.

        * WebCore.pro:

2007-11-26  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Dave Hyatt.

        <rdar://problem/5569233> Add the ability to disable author and user CSS styles

        * WebCore.base.exp: Add the Settings::setAuthorAndUserStylesEnabled symbol.
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::CSSStyleSelector): Add a new matchAuthorAndUserStyles parameter.
        (WebCore::CSSStyleSelector::styleForElement): Check m_matchAuthorAndUserStyles before
        matching user and author rules.
        (WebCore::CSSStyleSelector::pseudoStyleForElement): Ditto.
        (WebCore::CSSStyleSelector::styleRulesForElement): Ditto.
        * css/CSSStyleSelector.h: Add m_matchAuthorAndUserStyles and new constructor parameter.
        * dom/Document.cpp:
        (WebCore::Document::Document): Pass Settings::authorAndUserStylesEnabled to the CSSStyleSelector.
        (WebCore::Document::recalcStyleSelector): Skip collecting the author stylesheets if
        Settings::authorAndUserStylesEnabled is false, and pass that to the CSSStyleSelector.
        * page/Settings.cpp:
        (WebCore::Settings::Settings): Initialize m_authorAndUserStylesEnabled to true.
        (WebCore::Settings::setAuthorAndUserStylesEnabled): Recalc style in all the frames
        when the setting changes.
        * page/Settings.h: Add m_authorAndUserStylesEnabled.
        (WebCore::Settings::authorAndUserStylesEnabled): Return m_authorAndUserStylesEnabled.

2007-11-27  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Based on changes by Mike Emmel.

        CURL HTTP backend local file fixes:

        Set a MIME type for local files based on the file extension.

        Remove any HTTP query part sent to a local file.

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::startJob):

2007-11-26  Brady Eidson  <beidson@apple.com>

        Reviewed by Mark Rowe

        Allow setting the default storage quota per database origin

        * WebCore.base.exp:

        * page/Settings.cpp:
        (WebCore::Settings::setDefaultDatabaseOriginQuota):
        (WebCore::Settings::defaultDatabaseOriginQuota):
        * page/Settings.h:

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::DatabaseTracker):
        (WebCore::DatabaseTracker::setDefaultOriginQuota):
        (WebCore::DatabaseTracker::defaultOriginQuota):
        * storage/DatabaseTracker.h:

2007-11-26  Peter Kasting  <zerodpx@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=15974
        GIF decoding should respect frames' specified disposal methods.

        * platform/image-decoders/ImageDecoder.h:
        (WebCore::RGBA32Buffer::):
        (WebCore::RGBA32Buffer::RGBA32Buffer):
        (WebCore::RGBA32Buffer::disposalMethod):
        (WebCore::RGBA32Buffer::setDisposalMethod):
        * platform/image-decoders/gif/GIFImageDecoder.cpp:
        (WebCore::GIFImageDecoder::frameBufferAtIndex):
        (WebCore::GIFImageDecoder::initFrameBuffer):
        (WebCore::GIFImageDecoder::prepEmptyFrameBuffer):
        (WebCore::GIFImageDecoder::haveDecodedRow):
        (WebCore::GIFImageDecoder::frameComplete):
        * platform/image-decoders/gif/GIFImageDecoder.h:
        * platform/image-decoders/gif/GIFImageReader.cpp:
        (GIFImageReader::read):
        * platform/image-decoders/gif/GIFImageReader.h:
        (GIFFrameReader::GIFFrameReader):

2007-11-26  Adam Roben  <aroben@apple.com>

        Add a Color(CGColorRef) constructor

        Reviewed by Darin.

        * platform/graphics/Color.h:
        * platform/graphics/cg/ColorCG.cpp:
        (WebCore::Color::Color): Added.

2007-11-26  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        Update to last change.  Moved addPendingSheet call to within nil check for m_cachedSheet.

        * page/Frame.cpp:
        (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):

2007-11-26  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        Fix for <rdar://problem/5591583> CrashTracer: [USER] 157 in Mail crashes at -[WebCoreFrameBridge reapplyStylesForDeviceType:]

        * page/Frame.cpp: Add nil checks since every other caller of requestCSSStyleSheet checks for nil.
        (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
        (WebCore::UserStyleSheetLoader::~UserStyleSheetLoader):

2007-11-26  Mark Rowe  <mrowe@apple.com>

        GCC 4.2 build fix.

        * xml/XSLTUnicodeSort.cpp: Add another WTF_ATTRIBUTE_PRINTF.

2007-11-26  Feng Qian <ian.eng.webkit@gmail.com>

        Reviewed and touched up by Sam Weinig.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=16073

        Test: http/tests/security/xss-DENIED-invalid-domain-change.html

        * dom/Document.cpp:
        (WebCore::Document::setDomain): Don't set the securityOrigin policy unless
        the set succeeds.  Adds some early returns as well.

2007-11-26  Steve Falkenburg  <sfalken@apple.com>

        Build fix.

        * WebCore.vcproj/WebCore.make:
        * WebCore.vcproj/migrate-idls.sh:

2007-11-26  Sam Weinig  <sam@webkit.org>

        Fix potential null-dereference.

        Reviewed by Adam Roben.

        * page/FrameTree.cpp:
        (WebCore::FrameTree::isDescendantOf):

2007-11-26  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin.

        Fix for <rdar://problem/5592988>
        - Enforce tighter restrictions on what frames in other domains
          can be navigated.

        Tests: http/tests/security/frameNavigation/xss-ALLOWED-parent-navigation-change.html
               http/tests/security/frameNavigation/xss-ALLOWED-targeted-subframe-navigation-change.html

        * bindings/js/kjs_window.cpp:
        (KJS::Window::put):
        (KJS::Location::put):
        (KJS::LocationProtoFuncReplace::callAsFunction):
        (KJS::LocationProtoFuncAssign::callAsFunction):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::createWindow):
        (WebCore::FrameLoader::load):
        (WebCore::FrameLoader::shouldAllowNavigation): Move and update logic from canTarget().
        * loader/FrameLoader.h:
        * page/FrameTree.cpp:
        (WebCore::FrameTree::isDescendantOf): Make this O(1) in the case when both frames are not
        in the same page.

2007-11-26  Steve Falkenburg  <sfalken@apple.com>

        Build fix.

        * WebCore.vcproj/migrate-idls.sh:

2007-11-26  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix <rdar://problem/5609337> Making a float shorter does not remove it from the floating object list of a nested block it intruded into

        Test: fast/dynamic/float-withdrawal-2.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlockChildren): When a float may have
        been withdrawn from a child, mark all descendants if necessary and not
        just the child.

2007-11-26  Steve Falkenburg  <sfalken@apple.com>

        Build fix.

        * WebCore.vcproj/MigrateIDLAndScripts: Copied from WebCore.vcproj/MigrateIDLAndScripts.make.
        * WebCore.vcproj/MigrateIDLAndScripts.make: Removed.
        * WebCore.vcproj/migrate-idls.sh:

2007-11-26  Brady Eidson  <beidson@apple.com>

        Reviewed by Anders (and typo lovingly found by Adam)

        Change Databases to be stored in a per-origin directory hierarchy - this will make
        storage quotas much easier to enforce

        * platform/SecurityOriginData.cpp:
        (WebCore::SecurityOriginData::SecurityOriginData): Parse string based on '_' instead of ':'
        (WebCore::SecurityOriginData::stringIdentifier): Change to use '_' as a separator instead of ':'.  
          '_' still works due to not being allowed in domain names, but also is a valid filename character '
          on all filesystems we care about

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::fullPathForDatabase): Create a per-origin directory hierarchy to categorize
          databases by origin

2007-11-26  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben.

        Bug 16137: Web Inspector window on Leopard should have a unified toolbar and window title
        http://bugs.webkit.org/show_bug.cgi?id=16137

        On Leopard the toolbar background will be transparent, to allow the
        window background to show through the transparent WebView. The 
        search results divs needed to move inside the "main" div, so they
        would be clipped and not show where the toolbar is.

        * page/InspectorController.cpp:
        (WebCore::platform): Return a string for which platform we are.
        (WebCore::InspectorController::windowScriptObjectAvailable):
        Define the platform function on the JavaScript class.
        * page/inspector/Panel.js: Add panels to the panels div.
        * page/inspector/inspector.css: On the Leopard platform make
        the toolbar background transparent so the window background shows.
        * page/inspector/inspector.html: Add a panels div and move search
        result divs inside the main div.
        * page/inspector/inspector.js: Tweak the resize code to acount for
        the search results divs moving inside the main div.

2007-11-25  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewed by Maciej Stachowiak.

        Remove the unneeded CFNETWORK #ifdefs.

        * loader/NetscapePlugInStreamLoader.h:

2007-11-24  Laszlo Gombos  <laszlo.gombos@gmail.com>

        Reviewed by Sam Weinig.

        Add printf format attribute to several functions. Use the the new WTF_ATTRIBUTE_PRINTF define.

        * dom/XMLTokenizer.cpp:
        * dom/XMLTokenizer.h:
        * platform/DeprecatedString.h:
        * platform/PlatformString.h:

2007-11-25  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben.

        - fix off-center error images

        Covered by many pixel tests with missing images

        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paint): Account for the 1 pixel outline when
        positioning the error image.

2007-11-25  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix. Fix filename case for case-sensitive filesystems.

        * WebCoreSources.bkl:

2007-11-22  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Adam Roben.

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

        Fix problems with hidden glyphs. They were taken into account for quite
        some operations (hit testing, length calulcations etc..) except painting.
        Especially fixes boundaries of <textPath> (see using Web Inspector) if
        text-anchor isn't equal to 'start'.

        Added testcase:
        svg/text/textPathBoundsBug.svg

        Fixed testcase: (all showed text selection problems on text paths)
        svg/batik/text/textGlyphOrientationHorizontal.svg
        svg/batik/text/textOnPath.svg
        svg/batik/text/textOnPath3.svg
        svg/batik/text/verticalTextOnPath.svg
        svg/text/text-align-04-b.svg
        svg/W3C-SVG-1.1/text-align-04-b.svg

        * rendering/SVGCharacterLayoutInfo.cpp:
        (WebCore::SVGChar::isHidden):
        * rendering/SVGCharacterLayoutInfo.h:
        (WebCore::SVGCharOnPath::SVGCharOnPath):
        * rendering/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
        (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
        * rendering/SVGRootInlineBox.cpp:
        (WebCore::topLeftPositionOfCharacterRange):
        (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
        (WebCore::cummulatedWidthOrHeightOfTextChunk):
        (WebCore::applyTextAnchorToTextChunk):
        (WebCore::applyTextLengthCorrectionToTextChunk):
        (WebCore::SVGRootInlineBox::layoutInlineBoxes):
        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
        (WebCore::SVGRootInlineBox::buildTextChunks):

2007-11-25  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=15919
        XSLTProcessor.transformToFragment creates an extra not defined TEXT_NODE at the end

        Test: fast/xsl/extra-lf-at-end.html

        * xml/XSLTProcessor.cpp:
        (WebCore::writeToVector): Changed to use Vector to avoid slow String::apend().
        (WebCore::saveResultToString): Remove trailing line feed if present.

2007-11-24  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        Fix <rdar://problem/5432686> 333MB RPRVT seems to leak @ www.43folders.com (1hr plug-in stream).
        http://bugs.webkit.org/show_bug.cgi?id=13705

        Don't buffer the entire stream contents in memory in the ResourceLoader.

        * loader/mac/NetscapePlugInStreamLoaderMac.mm:
        (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
        (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
        * loader/mac/WebPlugInStreamLoaderDelegate.h:

2007-11-23  Adam Roben  <aroben@apple.com>

        Get rid of WebCoreSystemInterface on Windows

        The one function defined in that file is now in WebKitSystemInterface.

        Reviewed by Tim.

        * WebCore.vcproj/WebCore.vcproj: Removed
        WebCoreSystemInterface.{cpp,h}.
        * platform/graphics/cg/ImageCG.cpp: Made #include of
        WebCoreSystemInterface.h Mac-only.
        * platform/win/GraphicsContextWin.cpp: Ditto.
        * platform/win/WebCoreSystemInterface.cpp: Removed.
        * platform/win/WebCoreSystemInterface.h: Removed.

2007-11-24  Adam Roben  <aroben@apple.com>

        Replace uses of %@ with %s in the inspector

        Rubberstamped by Tim.

        * English.lproj/InspectorLocalizedStrings.js: Changed %@ to %s.
        * page/inspector/DatabasePanel.js: Ditto.
        * page/inspector/StylesSidebarPane.js: Ditto.
        * page/inspector/inspector.js: Ditto.
        * page/inspector/utilities.js:
        (String.vsprintf): Removed @ as a format specifier.

2007-11-24  Adam Roben  <aroben@apple.com>

        Windows build fix

        Turn off the change made in r27984 on Windows for now.

        * xml/XSLTProcessor.cpp:
        (WebCore::XSLTProcessor::transformToString):
        * xml/XSLTUnicodeSort.cpp:

2007-11-24  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben.

        Bug 16121: Web Inspector needs helper functions that pass a 'this' object to
        addEventListener and setTimeout
        http://bugs.webkit.org/show_bug.cgi?id=16121

        Add Function.prototype.bind. This helper will return a wrapper function
        that will call the original function with the supplied arguments
        and using the supplied 'this' object.

        * page/inspector/Database.js: Remove a use of setTimeout by
          inheriting some common functions from Resource.
        * page/inspector/DatabasePanel.js: Use the new bind function.
        * page/inspector/ConsolePanel.js: Ditto.
        * page/inspector/DocumentPanel.js: Ditto.
        * page/inspector/NetworkPanel.js: Ditto.
        * page/inspector/PropertiesSection.js: Ditto.
        * page/inspector/Resource.js: Ditto.
        * page/inspector/SidebarPane.js: Ditto.
        * page/inspector/inspector.html: Moved Database.js after Resource.js,
          now that Database.js uses it.
        * page/inspector/inspector.js: Use the new bind function. Also
          removed a setTimeout used for the localized strings code. There is
          now a load event listener added to the localized strings script
          element that will call WebInspector.loaded.
        * page/inspector/utilities.js: Add Function.prototype.bind.

2007-11-24  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben.

        Bug 16112: Some Web Inspector UI elements use offsetWidth and offsetHeight before the stylesheet loads
        http://bugs.webkit.org/show_bug.cgi?id=16112

        In the places where we use offsetWidth and offsetHeight before
        the stylesheet loads there is now a check. If the body's
        offsetWidth is not greater than zero, then set a timeout
        to do the updates requiring the stylesheet later.

        The three places this happened:
        - DOM tree selection highlight would show up at the wrong height
          when using Inspect Element to open the inspector.
        - DOM tree breadcrumbs would not collapse when using Inspect Element
          to open the inspector.
        - Network Timeline divider lines would not show when opening directly
          into the timeline.

        * page/inspector/DocumentPanel.js: Check if the stylesheet loaded.
        * page/inspector/NetworkPanel.js: Ditto.
        * page/inspector/inspector.html: Include the stylesheet before
          any scripts, this will help get it loaded sooner.

2007-11-24  Kevin Ollivier  <kevino@theolliviers.com>

        Add wx implementation for pathGetFilename

        Reviewed by David D. Kilzer.

        * html/HTMLFormElement.cpp:
        (WebCore::pathGetFilename):

2007-11-23  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben.

        Bug 16110: Clicking inside the resource headers in the network timeline collapses them
        http://bugs.webkit.org/show_bug.cgi?id=16110

        Toggle the resource headers only if the click happens on the
        resource row, not within the headers area.

        * WebCore.xcodeproj/project.pbxproj:
        * page/inspector/NetworkPanel.js:

2007-11-23  Kevin Ollivier  <kevino@theolliviers.com>

        Win build fixes. CURL needs winsock, so don't disable it, and
        include pthreads.h to get the threadsafe *_r functions.

        Reviewed by Adam Roben.

        * config.h:
        * loader/FTPDirectoryDocument.cpp:
        * loader/FTPDirectoryParser.cpp:

2007-11-23  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix. Move wx settings to project build settings,
        remove some old settings that were masking a build problem,
        and fix include ordering to ensure proper config.h and
        unicode/utf8.h headers are used. 

        * webcore-base.bkl:
        * webcore-wx.bkl:

2007-11-23  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by George Staikos <staikos@kde.org>.

        Another build fix specific to trunk (instead of the stable branch) to fix make clean (which the buildbots call).

        * WebCore.pro:

2007-11-23  Alexey Proskuryakov  <ap@webkit.org>

        Not reviewed, trivial leak fix.

        Fix xsltUnicodeSortFunction() memory leaks.

        * xml/XSLTUnicodeSort.cpp:
        (WebCore::xsltUnicodeSortFunction):

2007-11-23  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Maciej.

        <rdar://problem/5539306> REGRESSION: redirect fails when subframe's document is opened but
        not closed (affects digg.com)

        Tests: fast/loader/meta-refresh-vs-open.html
               fast/loader/redirect-with-open-subframe-2.html
               fast/loader/redirect-with-open-subframe.html
               http/tests/loading/onload-vs-immediate-refresh.pl

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::scheduleRedirection): Only check whether the load is complete for
        HTTP redirects - JavaScript-initiated ones are effective immediately.

2007-11-23  Dan Bernstein  <mitz@apple.com>

        Reviewed by Alexey Proskuryakov.

        - apply matrix transforms on the correct side of the transformation
          matrix (not on the side where the vector is multiplied).

        Test: fast/transforms/matrix-02.html

        * rendering/RenderStyle.h:
        (WebCore::MatrixTransformOperation::apply):

2007-11-23  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=16077
        <rdar://problem/5609785> XSLT processor <xsl:sort> algorithm is incompatible with other
        browser implementations

        Test: fast/xsl/sort-unicode.xml

        * xml/XSLTProcessor.cpp:
        (WebCore::XSLTProcessor::transformToString): Set a custom sort function.

        * xml/XSLTUnicodeSort.cpp: Added.
        (init_xsltTransformError):
        (xsltTransformError):
        (WebCore::xsltUnicodeSortFunction):
        * xml/XSLTUnicodeSort.h: Added.
        ICU-based implementation of xsl:sort, using an example from libxslt distribution.
        Only minimal coding style fixes to ease synchronization with upstream in the future.

        * icu/unicode/ucol.h: Added.
        * icu/unicode/uset.h: Added.
        Taken from ICU 3.2

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        Added XSLTUnicodeSort.cpp.

2007-11-22  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=14977
        Hixie's DOM Core performance test shows insert >10x slower than append

        Each invocation of Element.childNodes[n] was creating and registering a new ChildNodeList,
        which persisted and listened to notifications until GC.

        A fix is to avoid registering child node lists for notifications - they don't need them, as
        they share a common cache in Node.

        * dom/Node.cpp:
        (WebCore::Node::registerNodeList):
        (WebCore::Node::unregisterNodeList):
        (WebCore::Node::notifyLocalNodeListsAttributeChanged):
        (WebCore::Node::notifyLocalNodeListsChildrenChanged):
        * dom/NodeList.h:
        (WebCore::NodeList::needsNotifications):

2007-11-22  Dan Bernstein  <mitz@apple.com>

        Reviewed by Antti Koivisto.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15811
          WebKit plug-ins can re-enter WebKit under attach()
          <rdar://problem/5577978>

        Defer plug-in loading until after attach and recalcStyle using the
        post-attach callback mechanism. Netscape plug-ins are still loaded only
        after layout.

        * dom/ContainerNode.cpp:
        Made NodeCallbackQueue elements retain the Node because callbacks might
        delete nodes that are in the callback queue.
        (WebCore::ContainerNode::suspendPostAttachCallbacks): Added. Needed to
        prevent post-attach callbacks from being dispatched under recalcStyle().
        (WebCore::ContainerNode::resumePostAttachCallbacks): Ditto.
        (WebCore::ContainerNode::dispatchPostAttachCallbacks): Factored out from
        attach().
        (WebCore::ContainerNode::attach):
        * dom/ContainerNode.h:
        * dom/Document.cpp:
        (WebCore::Document::recalcStyle): Added calls to
        suspendPostAttachCallbacks() and resumePostAttachCallbacks().
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::HTMLEmbedElement):
        (WebCore::HTMLEmbedElement::attach): Changed to queue the widget update
        for post-attach.
        (WebCore::HTMLEmbedElement::updateWidget): Added. Called by the
        post-attach callback.
        * html/HTMLEmbedElement.h: Added an m_needWidgetUpdate member needed to
        prevent a double update if another plug-in's post-attach updateWidget()
        triggers a layout which updates the widget before this plug-in's
        post-attach callback is invoked.
        (WebCore::HTMLEmbedElement::setNeedWidgetUpdate): Added a setter for
        m_needWidgetUpdate.
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::attach): Changed to queue the widget update
        for post-attach.
        (WebCore::HTMLObjectElement::updateWidget): Added. Called by the
        post-attach callback.
        * html/HTMLObjectElement.h:
        (WebCore::HTMLObjectElement::setNeedWidgetUpdate): Added a setter for
        m_needWidgetUpdate.
        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::updateWidgetCallback): Added.
        * html/HTMLPlugInElement.h:
        (WebCore::HTMLPlugInElement::updateWidget):
        * rendering/RenderPartObject.cpp:
        (WebCore::RenderPartObject::updateWidget): Added calls to
        setNeedWidgetUpdate(false) so that if this method is called from
        FrameView::layout() during post-attach dispatch of another plug-in,
        it will not be called again when this plug-in's post-attach callback
        is dispatched.
        * rendering/RenderPartObject.h:
        (WebCore::RenderPartObject::updateWidget) Renamed argument to match
        the method definition.

2007-11-22  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Dan Bernstein.

        Fix the Element.hasStyleClass and Element.removeStyleClass helpers
        to not find and replace substrings, but whole class names at the
        beginning or end of the string or surrounded by whitespace.

        * page/inspector/utilities.js:

2007-11-22  Timothy Hatcher  <timothy@apple.com>

        Revert part of my r27935 change that made the Tip balloons
        animate with CSS transitions. The balloon was only opacity 0,
        so it would cause its row to highlight when hovering over
        another row.

        * page/inspector/NetworkPanel.js:
        * page/inspector/inspector.css:

2007-11-22  Dan Bernstein  <mitz@apple.com>

        Reviewed by Maciej Stachowiak.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15943
          -webkit-transform matrix does not work

        Test: fast/transforms/matrix-01.html

        Parse all six matrix entries as numbers.

        * css/CSSParser.cpp:
        (WebCore::TransformOperationInfo::TransformOperationInfo):
        (WebCore::CSSParser::parseTransform):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/RenderStyle.cpp:
        (WebCore::MatrixTransformOperation::blend):
        * rendering/RenderStyle.h:
        (WebCore::MatrixTransformOperation::MatrixTransformOperation):
        (WebCore::MatrixTransformOperation::apply):

2007-11-22  Laszlo Gombos  <laszlo.gombos@gmail.com>

        Reviewed by Alp Toker.

        Fix some compilation warnings.  Do not reference undefined (platform) specific type (WebCore::CachedFont::m_fontData)

        * loader/CachedFont.cpp:
        (WebCore::CachedFont::~CachedFont):
        (WebCore::CachedFont::allReferencesRemoved):

2007-11-22  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        GTK+ drawing fix.

        Add a check to avoid crashing when the GraphicsContext is not
        associated with a GdkEventExpose. This was noticed when adding
        printing support but might be triggered in other situations too.

        * platform/gtk/WidgetGtk.cpp:
        (WebCore::Widget::paint):

2007-11-22  Julien Chaffraix  <julien.chaffraix@gmail.com>

        Reviewed by Alexey.

        Bug 15530: XMLHttpRequest should not support certain methods

        Test: http/tests/xmlhttprequest/xmlhttprequest-forbidden-methods-exception.html

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::open):

2007-11-22  Simon Hausmann  <hausmann@kde.org>

        Reviewed by George.

        For the build inside Qt include qbase.pri and don't duplicate what qbase.pri otherwise does (install targets, etc.)

        * WebCore.pro:

2007-11-22  Simon Hausmann  <hausmann@kde.org>

        Reviewed by George.

        Don't set OBJECTS_DIR when building inside Qt

        * WebCore.pro:

2007-11-22  Simon Hausmann  <hausmann@kde.org>

        Reviewed by George.

        Use ../generated as path for the generated sources for builds inside Qt

        * WebCore.pro:

2007-11-22  Simon Hausmann  <hausmann@kde.org>

        Reviewed by George.

        Make the directory of where to put the generated sources configurable through the GENERATED_SOURCE_DIR variable

        * WebCore.pro:

2007-11-22  Simon Hausmann  <hausmann@kde.org>

        Reviewed by George.

        Centralize the setup for all the extra compilers in a addExtraCompiler function.
        
        This allows adding a "generated_files" target that builds all generated files using "make generated_files".
        For the build inside Qt we do not generate actual rules for the extra compilers but instead
        do the variable substitution of compiler.output manually and add the generated sources to SOURCES.

        * WebCore.pro:

2007-11-21  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Eric Seidel.

        Show Fonts as Yellow in the network timeline.

        * page/inspector/NetworkPanel.js:
        * page/inspector/inspector.css:

2007-11-21  Dan Bernstein  <mitz@apple.com>

        Reviewed by Eric Seidel.

        - fix <rdar://problem/5607037> REGRESSION (r27351): Departure date does not repaint when changed on Google Maps public transit planner (16034)

        Test: fast/repaint/subtree-root-skipped.html

        * page/FrameView.cpp:
        (WebCore::FrameViewPrivate::FrameViewPrivate): Initialize the layout
        root to 0.
        (WebCore::FrameView::layoutRoot): Changed to return a RenderObject
        instead of a Node.
        (WebCore::FrameView::layout): Changed for layout root being a renderer
        rather than a DOM node. Also replaced clearing the repaint rects
        set with asserting that it is empty if this is the top-level call to
        layout(). If it is not, the set may contain rects from enclosing
        layout() and those should not be removed.
        (WebCore::FrameView::scheduleRelayout): Changed for layout root being
        a renderer rather than a DOM node.
        (WebCore::isObjectAncestorContainerOf): Added this helper function that
        tests whether one object will be marked by calling
        markContainingBlocksForLayout() on the other.
        (WebCore::FrameView::scheduleRelayoutOfSubtree): Changed for layout
        root being a renderer rather than a DOM node. Changed the check if new
        and current layout roots are on the same path from the root to use
        the subgraph of the render tree defined by container()hood instead of
        the DOM tree and parenthood.
        * page/FrameView.h:
        * rendering/RenderBox.cpp: 
        (WebCore::RenderBox::calcWidth): Changed for layout root being a
        renderer rather than a DOM node.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::~RenderObject): Added an assertion that the
        object being deleted is not currently the layout root.
        (WebCore::RenderObject::scheduleRelayout): Changed for layout root being
        a renderer rather than a DOM node.

2007-11-21  Mark Rowe  <mrowe@apple.com>

        Reviewed by Eric.

        Fix WebCore to build without warnings under GCC 4.2.

        * Configurations/Base.xcconfig:
        * css/CSSRuleList.cpp:
        (WebCore::CSSRuleList::deleteRule):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::locateSharedStyle):
        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::allowNestedRedundantTag):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::fillInlineSelectionGaps):
        (WebCore::RenderBlock::fillBlockSelectionGaps):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::stackingContext):
        (WebCore::RenderLayer::enclosingPositionedAncestor):
        (WebCore::RenderLayer::transparentAncestor):
        * rendering/RenderStyle.cpp:
        (WebCore::BackgroundLayer::fillUnsetProperties):
        (WebCore::Transition::fillUnsetProperties):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::containsOnlyWhitespace):
        * rendering/bidi.cpp:
        (WebCore::RenderBlock::determineStartPosition):

2007-11-21  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=16071
        Curl backend handles EINTR incorrectly

        Defer timers during select() to avoid interruption by timer signals.

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::downloadTimerCallback):

2007-11-21  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        Changes due to <rdar://problem/5602936> Need to resolve new GCC 4.2 warnings

        Update format strings to use format specifiers that match the argument types.

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::performURLImport):
        (WebCore::IconDatabase::writeToDatabase):
        * platform/mac/TextCodecMac.cpp:
        (WebCore::TextCodecMac::decode):
        * storage/Database.cpp:
        (WebCore::Database::deliverAllPendingCallbacks):

2007-11-21  Xan Lopez  <xan@gnome.org>

        Reviewed by Alp Toker.

        Clarify scroll event processing with a comment.

        * platform/gtk/PlatformScrollBarGtk.cpp:
        (gtkScrollEventCallback):

2007-11-21  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben.

        Bug 16085: Web Inspector's Network Timeline graph code clean up and misc. fixes
        http://bugs.webkit.org/show_bug.cgi?id=16085
        
        Changes include:
        - Refactor the drawing code as nested functions instead of global functions.
        - Compute the segment percentages only once per call to drawSummaryGraph.
        - Account for percentages that rounded down to total less-than 100%.
        - Draw the pill shadow better using the canvas shadow drawing properties.
        - Removes a couple canvas context saves and restores.

        * page/inspector/NetworkPanel.js:

2007-11-21  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Adam Roben.

        http://bugs.webkit.org/show_bug.cgi?id=16056
        Unicode not being interpreted correctly in Web Inspector source view

        Cannot be tested automatically.

        * loader/CachedCSSStyleSheet.cpp:
        (WebCore::CachedCSSStyleSheet::encoding):
        * loader/CachedCSSStyleSheet.h:
        * loader/CachedResource.h:
        (WebCore::CachedResource::encoding):
        * loader/CachedScript.cpp:
        (WebCore::CachedScript::encoding):
        * loader/CachedScript.h:
        * loader/CachedXBLDocument.cpp:
        (WebCore::CachedXBLDocument::encoding):
        * loader/CachedXBLDocument.h:
        * loader/CachedXSLStyleSheet.cpp:
        (WebCore::CachedXSLStyleSheet::encoding):
        * loader/CachedXSLStyleSheet.h:
        Teach textual CachedResources to report their encodings.

        * page/InspectorController.cpp:
        (WebCore::addSourceToFrame):
        (WebCore::updateResourceResponse):
        Use the actual encoding - the network layer has little idea about it.

2007-11-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Maciej Stachowiak.

        Fix <rdar://problem/5609579> (DOMParser().parseFromString() freezes Safari when parsing large nodes with XML entities)
        http://bugs.webkit.org/show_bug.cgi?id=16076

        XMLTokenizer was calling CharacterData::appendData twice per entity in the fragment of XML being
        parsed (once for text before the entity, once for the entity itself).  This triggered O(n^2) copying
        of the CharacterData's string due to resizing.  We now prevent this happening by buffering all the
        content for a given Text node in the XMLTokenizer before sending it out to the node in a single go.

        * dom/XMLTokenizer.cpp:
        (WebCore::XMLTokenizer::characters): Append the characters to the buffer.
        (WebCore::XMLTokenizer::endDocument): Ensure the buffer is flushed when the document has ended.
        (WebCore::endDocumentHandler):
        (WebCore::XMLTokenizer::enterText):
        (WebCore::XMLTokenizer::exitText): Append the contents of the buffer to the node.
        (WebCore::XMLTokenizer::initializeParserContext): Add the endDocument handler.
        (WebCore::parseXMLDocumentFragment): Force endDocument to be called when parsing a fragment to ensure
        that the buffer gets flushed to the node.
        * dom/XMLTokenizer.h:

2007-11-20  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Mark Rowe.

        Animate the status area and tip balloons in the Web Inspector
        with CSS animations.

        * page/inspector/NetworkPanel.js:
        * page/inspector/inspector.css:
        * page/inspector/inspector.js:

2007-11-20  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix for Windows. Don't use WebCore/move-js-headers.sh as
        it indiscriminately copies any headers inside JavaScriptCore,
        which includes Tiger ICU headers. 

        * webcore-base.bkl:
        Remove references to the WebCore/include dir generated by
        move-js-headers.sh, and also get headers from JavaScriptCore
        directly rather than from WebCore/ForwardingHeaders. 

2007-11-20  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Avoid pointlessly mallocing and freeing this transform matrix.

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

2007-11-20  Naiem Shaik  <naiem.shaik@gmail.com>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=15763
        [GTK] Enter key does not take to the link highlighted.

        Add missing keycode cases.

        * platform/gtk/KeyEventGtk.cpp:
        (WebCore::keyIdentifierForGdkKeyCode):
        (WebCore::windowsKeyCodeForKeyEvent):
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):

2007-11-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        Fix http://bugs.webkit.org/show_bug.cgi?id=16074
        Bug 16074: execCommand("InsertHorizontalRule", false, "") results in id="" being inserted

        For consistency with InsertOrderedList and InsertUnorderedList a value parameter of "" should
        not result in an id being set.

        * editing/JSEditor.cpp: Don't set the id attribute if value is empty.

2007-11-20  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben.

        - fix <rdar://problem/5090708> Textareas render broken-looking scrollbars when too short to show full scrollbar

        * platform/win/PlatformScrollBar.h:
        * platform/win/PlatformScrollBarSafari.cpp:
        Added the "hit inset" constants (representing how far the track eats
        into the button).
        (WebCore::PlatformScrollbar::paint): Changed to paint the buttons and
        the thumb only if they should be showing.
        (WebCore::PlatformScrollbar::hasButtons): Added. Returns whether the
        arrows should be drawn.
        (WebCore::PlatformScrollbar::hasThumb): Added. Returns whether the thumb
        should be drawn.
        (WebCore::PlatformScrollbar::forwardButtonRect):
        (WebCore::PlatformScrollbar::trackRect): Changed to return the entire
        bounds of the scrollbar if the scrollbar has no buttons.
        (WebCore::PlatformScrollbar::paintTrack): Changed to paint a disabled
        track along the entire scrollbar if it has not buttons.
        (WebCore::PlatformScrollbar::hitTest): Changed to hit test only the
        parts that the scrollbar has in its current dimensions.

2007-11-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alp Toker.

        * config.h: Change #if to #ifdef to silence warnings on non-Apple platforms.

2007-11-20  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Adam Treat <treat@kde.org>.

        Remove static linkage of QtWebKit against the ICO image format plugin.
        Instead build the support for the ICO image format as a proper standalone qt image format plugin and install it.

        * WebCore.pro:
        * platform/graphics/qt/ImageDecoderQt.cpp:

2007-11-20  David D. Kilzer  <ddkilzer@webkit.org>

        no-svg build broken after r27278
        <http://bugs.webkit.org/show_bug.cgi?id=16061>

        Reviewed by Eric.

        * bindings/scripts/CodeGeneratorObjC.pm: Always generate DOMHTMLEmbedElementPrivate.h
        and DOMHTMLObjectElementPrivate.h for no-svg build.

2007-11-20  Adam Treat  <treat@kde.org>

        Reviewed by Simon.

        * Don't use so much heap memory.

        * platform/graphics/qt/ImageDecoderQt.cpp:
        * platform/graphics/qt/ImageDecoderQt.h:
        * platform/graphics/qt/ImageSourceQt.cpp:
        (WebCore::ImageSource::createFrameAtIndex):

2007-11-20  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        Fix text break interators.
        
        The break iterators where trying to be smart about the input
        string and caching their results. Unfortunately a pointer/string length
        comparison is not good enough in all cases (since some input is stack based
        temp strings). Removed the caching but at the same time started to use a more
        efficient constructor of QTextBoundaryFinder that doesn't need to malloc for
        most strings.
        
        Fixes two test cases that test "text-transform: capitalize".

        * platform/qt/TextBreakIteratorQt.cpp:
        (WebCore::wordBreakIterator):
        (WebCore::characterBreakIterator):
        (WebCore::lineBreakIterator):
        (WebCore::sentenceBreakIterator):

2007-11-20  Adam Treat  <treat@kde.org>

        Reviewed by George.

        * Make gif animations work for instance.

        * platform/graphics/qt/ImageDecoderQt.cpp:
        (WebCore::ImageDecoderQt::reset):
        (WebCore::ImageDecoderQt::setData):
        (WebCore::ImageDecoderQt::frameCount):
        (WebCore::ImageDecoderQt::repetitionCount):
        * platform/graphics/qt/ImageDecoderQt.h:

2007-11-20  Adam Treat  <treat@kde.org>

        * Build in release mode

        * platform/NotImplemented.h:

2007-11-20  Adam Treat  <treat@kde.org>

        Reviewed by Simon and George.

        * Be quiet and allow suppression of NotImplemented calls at runtime.

        * platform/NotImplemented.h:

2007-11-19  Doug Turner  <dougt@meer.net>

        Reviewed by Alp Toker.

        http://bugs.webkit.org/show_bug.cgi?id=16054
        Crash when GlyphPage::fill is called with more than 256 bytes of data

        http://bugs.webkit.org/show_bug.cgi?id=14446
        [GDK] Crash on http://www.wikipedia.org/

        setGlyphDataForIndex() uses a fixed array of size 256 which we can't
        exceed. We need to return failure if the buffer has Unicode
        supplementary characters for now.

        This strategy matches the Win port, which also doesn't support this
        case yet.

        Add an assertion so nobody makes this mistake again.

        * platform/GlyphPageTreeNode.h:
        (WebCore::GlyphPage::setGlyphDataForIndex):
        * platform/gtk/GlyphPageTreeNodeGtk.cpp:
        (WebCore::GlyphPage::fill):

2007-11-19  Doug Turner  <dougt@meer.net>

        Reviewed by Timothy Hatcher.

        http://bugs.webkit.org/show_bug.cgi?id=16050
        sqlite3_prepare16_v2 build bustage.

        Using the correct SQLITE_VERSION_NUMBER around sqlite_prepare16_v2
        to fix build bustage.

        * platform/sql/SQLiteStatement.cpp:
        (WebCore::SQLiteStatement::prepare):

2007-11-19  Mark Rowe  <mrowe@apple.com>

        Build fix.  Don't over-qualify the constructor name.

        * storage/DatabaseDetails.h:

2007-11-19  Brady Eidson <beidson@apple.com>

        Reviewed by Maciej

        Stub out the WebCore parts of the WebKit API

        * WebCore.base.exp:
        * WebCore.xcodeproj/project.pbxproj:

        * storage/DatabaseDetails.h: Added.  Simple container for vitals on a specific database
        (WebCore::DatabaseDetails::DatabaseDetails::DatabaseDetails):
        (WebCore::DatabaseDetails::DatabaseDetails):
        (WebCore::DatabaseDetails::isValid):
        (WebCore::DatabaseDetails::name):
        (WebCore::DatabaseDetails::version):
        (WebCore::DatabaseDetails::displayName):
        (WebCore::DatabaseDetails::expectedUsage):
        (WebCore::DatabaseDetails::currentUsage):

        * storage/DatabaseTracker.cpp:  Added various methods for API usage
        (WebCore::DatabaseTracker::detailsForNameAndOrigin):
        (WebCore::DatabaseTracker::usageForOrigin):
        (WebCore::DatabaseTracker::quotaForOrigin):
        (WebCore::DatabaseTracker::setQuota):
        * storage/DatabaseTracker.h:

2007-11-19  Kevin Ollivier  <kevino@theolliviers.com>

        wx port build fix.

        * platform/graphics/wx/AffineTransformWx.cpp:
        (WebCore::AffineTransform::operator== ):
        m_transform is only available when using wxGraphicsContext.

2007-11-19  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        GTK+ drawing fixes.

        Add a check to avoid crashing when the GraphicsContext is not
        associated with a GdkDrawable. This was noticed when adding printing
        support but might be triggered in other situations too.

        Do not render themes when painting is disabled. This is an
        optimisation for cases where GraphicsContext is used to calculate page
        dimensions etc. without actually rendering.

        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::gdkDrawable):
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::paintMozWidget):

2007-11-13  Rahul Abrol  <ra5ul@comcast.net>

        Reviewed by Tim Hatcher.

        http://bugs.webkit.org/show_bug.cgi?id=15977
        Resizing images preference now toggles default image state.

        * loader/ImageDocument.cpp:
        (WebCore::ImageDocument::ImageDocument):
        (WebCore::ImageDocument::createDocumentStructure):
        (WebCore::ImageDocument::imageChanged):

2007-11-19  Kevin Ollivier  <kevino@theolliviers.com>

        Update wx port build sources with recent changes, update
        wx FontPlatformData to be a class (MSVC7 gets confused
        otherwise...) and implement its hash() method.

        Reviewed by Adam.

        * WebCoreSources.bkl:
        * platform/wx/FontPlatformData.h:
        (WebCore::FontPlatformData::hash):

2007-11-19  Julien Chaffraix  <julien.chaffraix@gmail.com>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=12194
        Bug 12194: Trying to access XMLHttpRequest.responseText or responseXML when they 
        are not available should raise an exception

        Tests: http/tests/xmlhttprequest/xmlhttprequest-responseText-exception.html
               http/tests/xmlhttprequest/xmlhttprequest-responseXML-exception.html

        * bindings/js/JSXMLHttpRequest.cpp:
        (KJS::JSXMLHttpRequest::getValueProperty):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::getResponseText):
        (WebCore::XMLHttpRequest::getResponseXML):
        * xml/XMLHttpRequest.h:

2007-11-19  Peter Kasting  <zerodpx@gmail.com>

        Reviewed by Darin Adler.

        http://bugs.webkit.org/show_bug.cgi?id=15971
        The GIF decoder should not fail decoding if the caller asks it to
        decode again when no new data has arrived since the last call.

        * platform/image-decoders/gif/GIFImageReader.cpp:
        (GIFImageReader::read):

2007-11-18  Brady Eidson <beidson@apple.com>

        Reviewed by Eric

        Fix a crash hashing a default SecurityOriginData object 

        * storage/DatabaseTracker.cpp:
        (WebCore::SecurityOriginDataHash::hash): The default object has some default strings with NULL
          StringImpls - don't try to hash those!

2007-11-18  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Sam Weinig.

        Bug 16043: Remove InspectorController.log now that console.log works
        http://bugs.webkit.org/show_bug.cgi?id=16043

        Remove the last uses of InspectorController.log. Once use was no longer needed,
        checking an erro case that can't happen anymore. The other case now uses console.error.

        * page/InspectorController.cpp: Remove the log function.
        (WebCore::InspectorController::windowScriptObjectAvailable): Remove the log function from
        InspectorController script class.
        * page/inspector/DocumentPanel.js: Remove a use of InspectorController.log that isn't needed.
        * page/inspector/Panel.js: Change InspectorController.log to console.log and early return.

2007-11-18  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Brady.

        Bug 16041: REGRESSION: the Database panel in the Inspector stopped showing errors
        http://bugs.webkit.org/show_bug.cgi?id=16041

        * page/inspector/DatabasePanel.js: Implement error callbacks to pass to executeSql()
          and transaction(). Refactored some code for the success and error callbacks to use.

2007-11-18  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Maciej.

        <rdar://problem/5546393> Whitespace handling doesn't match HTML5.

        HTML5 definition is the same as MSIE's, with the exception that the latter strips null
        characters. Firefox also treats U+0008 as whitespace, but not U+000B or U+000C.

        Test: fast/parser/html-whitespace.html

        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::parseSpecial):
        (WebCore::HTMLTokenizer::parseTag):
        Use isASCIISpace, which matches HTML5 definition of whitespace, and also what we use to
        check for whitespace almost everywhere.

2007-11-17  Mark Rowe  <mrowe@apple.com>

        Reviewed by Darin Adler.

        Fix: <rdar://problem/5607032> REGRESSION: testapi exits with assertion failure in debug build
             <rdar://problem/5440659> JSGlobalContextCreate throws away globalObjectClass's prototype
             http://bugs.webkit.org/show_bug.cgi?id=16033

        Update for changes in Interpreter method signatures.

        * bindings/js/kjs_binding.cpp:
        (KJS::ScriptInterpreter::ScriptInterpreter):
        * bindings/js/kjs_window.cpp:
        (KJS::Window::clear):

2007-11-17  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Mark Rowe.

        Bug 13470: i18n: The Web Inspector is not localizable
        http://bugs.webkit.org/show_bug.cgi?id=13470

        Add support for localization to the Web Inspector. Clients need to
        implement localizedStringsURL() to return the URL of the
        InspectorLocalizedStrings.js that best matches the user's language.

        * English.lproj: Added.
        * English.lproj/InspectorLocalizedStrings.js: Added.
        * WebCore.xcodeproj/project.pbxproj: Add InspectorLocalizedStrings.js.
        * page/InspectorClient.h: Add localizedStringsURL.
        * page/InspectorController.cpp: Add localizedStringsURL that calls
          the client. Also added a version exposed to JavaScript.
        * page/InspectorController.h: Add localizedStringsURL.
        * page/inspector/ConsolePanel.js: Call WebInspector.UIString
          for user visible strings.
        * page/inspector/DatabasePanel.js: Ditto.
        * page/inspector/DocumentPanel.js: Ditto.
        * page/inspector/ImagePanel.js: Ditto.
        * page/inspector/MetricsSidebarPane.js: Ditto.
        * page/inspector/NetworkPanel.js: Ditto.
        * page/inspector/Panel.js: Ditto.
        * page/inspector/PropertiesSidebarPane.js: Ditto.
        * page/inspector/Resource.js: Ditto.
        * page/inspector/ResourceCategory.js: Ditto.
        * page/inspector/SourcePanel.js: Ditto.
        * page/inspector/StylesSidebarPane.js: Ditto.
        * page/inspector/inspector.css: Use pre-wrap so database errors can use \n.
        * page/inspector/inspector.html: Remove some user visible strings.
        * page/inspector/inspector.js: Added WebInspector.UIString and call
          WebInspector.UIString for user visible strings. Some code needed to be 
          moved to WebInspector.loaded to use UIString after the localized strings
          get loaded.
        * platform/graphics/svg/SVGImageEmptyClients.h:
        (WebCore::SVGEmptyFrameLoaderClient::redirectDataToPlugin): Remove WebCore:: prefix.
        (WebCore::SVGEmptyInspectorClient::createPage): Ditto.
        (WebCore::SVGEmptyInspectorClient::localizedStringsURL): Add empty stub.
        (WebCore::SVGEmptyInspectorClient::highlight): Remove WebCore:: prefix.
        (WebCore::SVGEmptyInspectorClient::inspectedURLChanged): Ditto.

2007-11-17  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Reworte String.sprintf to fix many bad bugs and to not use RegExp. Also added
        String.vsprintf so it can be used later for the localization function.

        This version only supports argument reordering, precision for floats, and these
        format characters: d, f, s and @. Any unsupported format characters are logged
        and substituted like strings.

        * page/inspector/utilities.js:

2007-11-17  Alexey Proskuryakov  <ap@webkit.org>

        Windows build fix.

        * editing/Editor.h: Made canSmartCopyOrDelete public, as Windows WebView still needs it.

2007-11-17  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15969
        Eliminate Editor::deleteRange()

        No change in functionality.

        * editing/CompositeEditCommand.h: Removed unimplemented deleteKeyPressed().

        * editing/Editor.cpp:
        (WebCore::Editor::deleteWithDirection):
        (WebCore::Editor::cut):
        (WebCore::Editor::performDelete):
        * editing/Editor.h:
        Moved relevant Editor::deleteRange() functionality to its callers.
        Removed deleteSelectionWithSmartDelete(void), which was more confusing than helpful
        in my opinion.

        * editing/mac/EditorMac.mm:
        (WebCore::initializeKillRingIfNeeded):
        (WebCore::Editor::addToKillRing):
        (WebCore::Editor::yank):
        (WebCore::Editor::yankAndSelect):
        (WebCore::Editor::setMark):
        (WebCore::unionDOMRanges):
        (WebCore::Editor::deleteToMark):
        (WebCore::Editor::selectToMark):
        (WebCore::Editor::swapWithMark):
        Pushed kill ring handling down from WebCore.

        * page/mac/WebCoreFrameBridge.h:
        * page/mac/WebCoreFrameBridge.mm:
        Removed setMarkDOMRange (the corresponding getter is still needed).

        * WebCore.base.exp: No longer need to export Editor::deleteRange() and Editor::insertTextWithoutSendingTextEvent().
        Export the new kill ring functions.

2007-11-16  Ryan Leavengood  <leavengood@gmail.com>

        Reviewed by David Kilzer.

        Build fix: the needed headers for POSIX file functions were not
        included.

        * platform/posix/FileSystemPOSIX.cpp:

2007-11-16  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix the common case of <http://bugs.webkit.org/show_bug.cgi?id=15994>
          REGRESSION: Incomplete repaint of CSS image substitution

        Test: fast/repaint/clip-with-layout-delta.html

        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::LayoutState): Account for layout delta when
        pushing additional clip.

2007-11-16  Antti Koivisto  <antti@apple.com>

        Reviewed by Adele.
        
        Seeking related fixes, updates to match the latest specification
        - rename loopCount of HTMLMediaElement to playCount
        - add explicit seeking attribute to HTMLMediaElement to get semantics right
        - implement the specification behavior that currentTime must immediately return seeked position in HTMLMediaElement 
          instead of MoviePrivateQTKit 
        - fix broken behavior when seeking past end of the media, add tests
        - replace Movie didEnd callback with broader timeChanged callback (which gets called in didEnd case too)
        - use setDelayCallbacks: in various MoviePrivateQTKit methods to avoid bug prone synchronous callbacks from QT, make
          HTMLMediaElement not depend on synchronous callbacks
        - do some cleanups and simplifications in MoviePrivateQTKit, get rid of m_rateBeforeSeek and m_blockStateUpdate variables

        Tests: http/tests/media/video-seekable-stall.html
               media/video-seeking.html
               media/video-seek-past-end-paused.html
               media/video-seek-past-end-playing.html

        * html/HTMLAttributeNames.in: 
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::load):
        (WebCore::HTMLMediaElement::movieNetworkStateChanged):
        (WebCore::HTMLMediaElement::setReadyState):
        (WebCore::HTMLMediaElement::seek):
        (WebCore::HTMLMediaElement::seeking):
        (WebCore::HTMLMediaElement::currentTime):
        (WebCore::HTMLMediaElement::ended):
        (WebCore::HTMLMediaElement::play):
        (WebCore::HTMLMediaElement::pause):
        (WebCore::HTMLMediaElement::playCount):
        (WebCore::HTMLMediaElement::setPlayCount):
        (WebCore::HTMLMediaElement::checkIfSeekNeeded):
        (WebCore::HTMLMediaElement::movieTimeChanged):
        (WebCore::HTMLMediaElement::endedPlayback):
        (WebCore::HTMLMediaElement::updateMovie):
        * html/HTMLMediaElement.h:
        * html/HTMLMediaElement.idl:
        * platform/graphics/Movie.cpp:
        (WebCore::Movie::timeChanged):
        * platform/graphics/Movie.h:
        (WebCore::MovieClient::movieTimeChanged):
        * platform/graphics/mac/MoviePrivateQTKit.h:
        * platform/graphics/mac/MoviePrivateQTKit.mm:
        (WebCore::MoviePrivate::MoviePrivate):
        (WebCore::MoviePrivate::load):
        (WebCore::MoviePrivate::play):
        (WebCore::MoviePrivate::pause):
        (WebCore::MoviePrivate::currentTime):
        (WebCore::MoviePrivate::seek):
        (WebCore::MoviePrivate::doSeek):
        (WebCore::MoviePrivate::cancelSeek):
        (WebCore::MoviePrivate::seekTimerFired):
        (WebCore::MoviePrivate::startCuePointTimerIfNeeded):
        (WebCore::MoviePrivate::paused):
        (WebCore::MoviePrivate::updateStates):
        (WebCore::MoviePrivate::timeChanged):
        (WebCore::MoviePrivate::didEnd):

2007-11-16  Anders Carlsson  <andersca@apple.com>

        Reviewed by Adam.

        <rdar://problem/5603832>
        XMLHttpRequest readyState 3 & responseText buffer issues.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::makeFinalRequest):
        Add new parameter which controls whether content sniffing should be turned off.
        
        (WebCore::ResourceHandle::loadResourceSynchronously):
        Always content sniff sync loads.
        
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        If the ResourceRequest already has a backing CFURLRequest, make a copy of it. This preserves
        any properties set on the CFURLRequest.

2007-11-16  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Ollie.

        <rdar://problem/5605175> Crash closing or leaving window with ViewPoint 
        Media player plugin

        ViewPoint plugin requires that we pass a valid NPSavedData* to
        NPP_Destroy.

        * plugins/win/PluginViewWin.cpp: Pass a valid NPSavedData* to
        NPP_Destroy. If the plugin allocates data, discard it

2007-11-16  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        Build WebCore as a sub-framework of WebKit in all configurations.

        * Configurations/WebCore.xcconfig:
        * WebCore.xcodeproj/project.pbxproj:

2007-11-16  Doug Turner  <dougt@meer.net>

        Reviewed by Alp.

        http://bugs.webkit.org/show_bug.cgi?id=16018
        build bustage when building on debian 4.0

        Fix build bustage on GTK+ with older versions of Pango.

        Don't cache the return value since the docs say it can change.

        * platform/gtk/Language.cpp:
        (WebCore::defaultLanguage):

2007-11-16  Brady Eidson  <beidson@apple.com>

        Build fix

        * platform/SecurityOriginData.h:
        (WebCore::operator!=): Whoops!

2007-11-16  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam

        Further purify DatabaseTracker to use SecurityOriginData instead of "a String"

        * WebCore.base.exp:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCore.vcproj/WebCore.vcproj
        * WebCore.pro

        * platform/SecurityOriginData.cpp: Added.
        (WebCore::SecurityOriginData::SecurityOriginData): Add a constructor that takes a "stringIdentifier"-style string,
          since that form is what will be stored in the Databases.db on disk
        (WebCore::SecurityOriginData::stringIdentifier):
        * platform/SecurityOriginData.h:
        (WebCore::SecurityOriginData::protocol):
        (WebCore::SecurityOriginData::host):
        (WebCore::SecurityOriginData::port):

        * storage/DatabaseTracker.cpp:
        (WebCore::SecurityOriginDataHash::hash): Follow the pattern Darin set in FontCache.cpp to make a decent hash for 
          a SecurityOriginData object
        (WebCore::SecurityOriginDataHash::equal):
        (WebCore::SecurityOriginDataTraits::deletedValue): "file::1" will never exist in normal operation
        (WebCore::SecurityOriginDataTraits::emptyValue): "file::2" will never exist in normal operation
        (WebCore::DatabaseTracker::fullPathForDatabase):
        (WebCore::DatabaseTracker::populateOrigins):
        (WebCore::DatabaseTracker::origins):
        (WebCore::DatabaseTracker::addDatabase):
        * storage/DatabaseTracker.h:

2007-11-16  Alexey Proskuryakov  <ap@webkit.org>

        Windows build fix.

        * WebCore.vcproj/WebCore.vcproj: Removed VoidCallback.cpp, added JSCustomVoidCallback.{h,cpp}.

2007-11-16  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric.

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

        Implement all SVGTextContentElement DOM methods.
        This is the last missing SVG text feature. SVG fonts is next.

        Added testcase: svg/custom/text-dom-01-f.svg (tests all new methods)

        * ksvg2/svg/SVGTextContentElement.cpp:
        (WebCore::cummulatedCharacterRangeLength):
        (WebCore::SVGInlineTextBoxQueryWalker::):
        (WebCore::SVGInlineTextBoxQueryWalker::SVGInlineTextBoxQueryWalker):
        (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
        (WebCore::SVGInlineTextBoxQueryWalker::setQueryInputParameters):
        (WebCore::SVGInlineTextBoxQueryWalker::longResult):
        (WebCore::SVGInlineTextBoxQueryWalker::floatResult):
        (WebCore::SVGInlineTextBoxQueryWalker::pointResult):
        (WebCore::SVGInlineTextBoxQueryWalker::rectResult):
        (WebCore::SVGInlineTextBoxQueryWalker::stopProcessing):
        (WebCore::findInlineTextBoxInTextChunks):
        (WebCore::rootInlineBoxForTextContentElement):
        (WebCore::executeTextQuery):
        (WebCore::SVGTextContentElement::getNumberOfChars):
        (WebCore::SVGTextContentElement::getComputedTextLength):
        (WebCore::SVGTextContentElement::getSubStringLength):
        (WebCore::SVGTextContentElement::getStartPositionOfChar):
        (WebCore::SVGTextContentElement::getEndPositionOfChar):
        (WebCore::SVGTextContentElement::getExtentOfChar):
        (WebCore::SVGTextContentElement::getRotationOfChar):
        (WebCore::SVGTextContentElement::getCharNumAtPosition):
        (WebCore::SVGTextContentElement::selectSubString):
        * ksvg2/svg/SVGTextContentElement.h:
        * rendering/SVGInlineTextBox.h:

2007-11-15  Adele Peterson  <adele@apple.com>

        Reviewed by Oliver.

        Fix for <rdar://problem/5566652> CrashTracer: [USER] 3 crashes in Safari at HTMLSelectElement::menuListDefaultEventHandler (reproducible on mactc30.com)

        Test: fast/forms/menulist-no-renderer-onmousedown.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::defaultEventHandler): Nil check the renderer here.  None of the default behavior makes sense if there's no renderer.
        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Moved the nil check to the main defaultEventHandler.

2007-11-15  Antti Koivisto  <antti@apple.com>

        Reviewed by Adele.

        Fix <rdar://problem/5601598>
        The movie tag should do initialization on need and not during startup.
        
        Initialize Movie MIME type hash on demand

        * platform/MIMETypeRegistry.cpp:
        (WebCore::initialiseSupportedMovieMIMETypes):
        (WebCore::initialiseMIMETypeRegistry):
        (WebCore::MIMETypeRegistry::isSupportedMovieMIMEType):
        (WebCore::MIMETypeRegistry::getSupportedMovieMIMETypes):

2007-11-15  Mark Rowe  <mrowe@apple.com>

        Build fix for Qt on Windows.

        * xml/XPathStep.cpp:
        (WebCore::XPath::Step::nodesInAxis):

2007-11-15  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Mark Rowe.

        Bug 14761: Web Inspector leaks JS objects and DOM nodes
        http://bugs.webkit.org/show_bug.cgi?id=14761

        * page/InspectorController.cpp:
        (WebCore::InspectorController::~InspectorController):
        Change the tear down order so that inspectorDestroyed() is called before
        InspectorController private data is set to Zero. The inspectorDestroyed()
        call ends up closing the WebView and triggering InspectorController::close()
        which unprotects m_scriptObject. This didn't happen when the private data
        was cleared before calling inspectorDestroyed().

2007-11-15  Mark Rowe  <mrowe@apple.com>

        Gtk build fix.

        * WebCore.pro:

2007-11-15  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15989
        XPath queries with predicates incorrectly retains the current node across unions

        Test: fast/xpath/union-context-node.xhtml

        * xml/XPathPath.cpp:
        (WebCore::XPath::LocationPath::evaluate): Restore context after evaluation.
        * xml/XPathStep.cpp:
        (WebCore::XPath::Step::evaluate): Do not backup context, as we can easily re-create it.

2007-11-15  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15988
        REGRESSION: XPath preceding-axis query misses nested elements

        Test: fast/xpath/preceding-axis.xhtml

        * xml/XPathStep.cpp:
        (WebCore::XPath::Step::nodesInAxis): Hopefully correct this time.

2007-11-15  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Mark Rowe and Sam.

        This corrects a couple of issues in the Web Inspector where selected search results
        would not have the right text color when the window is inactive or the results are focused.

        * page/inspector/inspector.css:

2007-11-15  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Sam.

        Bug 16007: REGRESSION: Disclosure triangle click zone for resource categories is off by 10 pixels
        http://bugs.webkit.org/show_bug.cgi?id=16007

        Makes the click width an option on TreeElement and make ResourceCategoryTreeElement
        a true subclass of TreeElement. The click width for ResourceCategoryTreeElement is 
        20 pixels, and the default is 10 pixels.

        * page/inspector/ResourceCategory.js:
        * page/inspector/treeoutline.js:

2007-11-15  Anders Carlsson  <andersca@apple.com>

        Reviewed by Brady.

        Pass a VoidCallback to Database::transaction and Database::changeVersion.
        This is not yet hooked up to the database machinery.
        
        * WebCore.vcproj/WebCore.vcproj:
        * bindings/js/JSDatabaseCustom.cpp:
        (WebCore::JSDatabase::changeVersion):
        (WebCore::JSDatabase::transaction):
        * storage/Database.cpp:
        (WebCore::Database::changeVersion):
        (WebCore::Database::transaction):
        * storage/Database.h:

2007-11-15  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Bug 16005: Hovering in the breadcrumbs causes jumpy behavior
        http://bugs.webkit.org/show_bug.cgi?id=16005

        Hovering over cumbs no longer exposes new crumbs. Clicking on a collapsed
        crumb will expose as many hidden crumbs as possible to the user. Also crumbs
        that have ID attributes will compact to the ID over the tag name.

        * page/inspector/DocumentPanel.js:

2007-11-15  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam.

        Make the VoidCallback DOM interface behave more like our other DOM interfaces.
        
        * bindings/js/JSCustomVoidCallback.h: Added.
        * bindings/js/JSCustomVoidCallback.cpp: Added.
        (WebCore::JSCustomVoidCallback::JSCustomVoidCallback):
        (WebCore::JSCustomVoidCallback::handleEvent):
        VoidCallback implementation that wraps a JS object.
        
        (WebCore::toVoidCallback):
        New method that creates a VoidCallback implementation given a JS object.
        
        * bindings/scripts/CodeGeneratorJS.pm:
        Specify that VoidCallback can fail conversion and add a custom conversion function.
        
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::movieCuePointReached):
        Call handleEvent on the callback.
        
        (WebCore::HTMLMediaElement::removeCuePoint):
        Comment out parts of this method, it has already been removed in the HTML5 spec and it relies
        on overriding VoidCallback equality.
        
        * html/VoidCallback.cpp: Removed.
        
        * html/VoidCallback.h:
        (WebCore::VoidCallback::VoidCallback):
        (WebCore::VoidCallback::~VoidCallback):
        Make this an abstract class with a pure virtual handleEvent method.
        
2007-11-15  Adam Roben  <aroben@apple.com>

        Fix <rdar://5485108> Type-select while a <select> menu is open doesn't work

        There were two things broken here:
           - WebView now requires a WM_CHAR message to be sent before it will
             create a keyboard event with a charCode, but we were only sending
             a WM_KEYDOWN event.
           - The popup menu was not updating its focused index when the
             <select> element's selectedIndex changed.

        Reviewed by Adele.

        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenu::updateFromElement): Update the focused index from
        the client's selected index.
        (WebCore::PopupWndProc): When we receive a WM_CHAR message for a
        printable character, manufacture a WM_KEYDOWN message for it and post
        both that and the current WM_CHAR message to the WebView.

2007-11-15  Brady Eidson  <beidson@apple.com>

        Build fix

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::fullPathForDatabase):
        (WebCore::DatabaseTracker::databaseNamesForOrigin):

2007-11-15  Brady Eidson  <beidson@apple.com>

        Reviewed by John and Sam

        Stubbing out everything required for a WebKit API for databases

        Biggest change in WebCore is that we passed around SecurityOriginData as the representation
        of a SecurityOrigin, instead of a String or a SecurityOrigin itself (which is an opaque object
        that has a different purpose besides just hanging on to the data)

        * WebCore.base.exp:
        * WebCore.xcodeproj/project.pbxproj:

        * platform/SecurityOrigin.cpp:
        * platform/SecurityOrigin.h:
        * platform/SecurityOriginData.h: Added.  Simple object to encapsulate the 3
          pieces of data in the SecurityOrigin tuple
        (WebCore::SecurityOriginData::SecurityOriginData):
        (WebCore::SecurityOriginData::protocol):
        (WebCore::SecurityOriginData::host):
        (WebCore::SecurityOriginData::port):
        (WebCore::SecurityOriginData::toString): Simple concatenation of the 3 components,
          colon separated

        * storage/Database.cpp:
        (WebCore::Database::Database): Use SecurityOriginData instead

        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::fullPathForDatabase):
        (WebCore::DatabaseTracker::databaseNamesForOrigin):
        (WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
        (WebCore::DatabaseTracker::deleteDatabase):
        * storage/DatabaseTracker.h:

        * storage/DatabaseTrackerClient.h: Added.  For dispatching notifications up to WebKit
        (WebCore::DatabaseTrackerClient::~DatabaseTrackerClient):2007-11-15  Jon Honeycutt  <jhoneycutt@apple.com>

2007-11-15  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Anders.

        NP_ASFILEONLY streams should not buffer data in m_deliveryData.

        * plugins/win/PluginStreamWin.cpp:
        (WebCore::PluginStreamWin::didReceiveData):

2007-11-15  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Adele Peterson.

        <rdar://problem/5497643> Crash at Node::isDescendantOf when switching out of Edit HTML Source mode
        
        A textarea that contained the selection was removed but the selection wasn't cleared,
        and we'd crash in code that assumed a valid, in-document selection.

        * editing/SelectionController.cpp:
        (WebCore::removingNodeRemovesPosition): Clear the selection if the node being removed is the
        shadowAncestorNode of the node that contains the position, not just if the node being removed
        contains that shadowAncestorNode.

2007-11-15  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Maciej.

        Fix logic error: calculateGlyphBoundaries takes RTL text into account itself, no need to adjust offsets before.

        * rendering/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
        (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):

2007-11-15  Anders Carlsson  <andersca@apple.com>

        Reviewed by Brady.

        <rdar://problem/5562470>
        openDatabase does not work when the version string is empty

        If the string is empty, pass a real empty string to sqlite3_bind_text16.
        
        * platform/sql/SQLiteStatement.cpp:
        (WebCore::SQLiteStatement::bindText):

2007-11-15  Anders Carlsson  <andersca@apple.com>

        Reviewed by Brady.

        Get rid of SQLiteStatement::bindText and rename bindText16 to bindText.
        Remove the copy parameter from bindText and bindBlob and always copy passed in data instead.

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
        (WebCore::IconDatabase::removePageURLFromSQLDatabase):
        (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
        (WebCore::IconDatabase::addIconURLToSQLDatabase):
        (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
        (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
        * platform/sql/SQLiteStatement.cpp:
        (WebCore::SQLiteStatement::prepare):
        * platform/sql/SQLiteStatement.h:
        * storage/Database.cpp:
        (WebCore::setTextValueInDatabase):
        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::fullPathForDatabase):
        (WebCore::DatabaseTracker::databaseNamesForOrigin):
        (WebCore::DatabaseTracker::addDatabase):

2007-11-14  Brady Eidson <beidson@apple.com>

        Rubberstamped by Sam

        * platform/SecurityOrigin.h: Lets make this an unsigned short and *not* rule out half the possible ports?

2007-11-14  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Justin Garcia.

        http://bugs.webkit.org/show_bug.cgi?id=15781
        REGRESSION: Ligatures fail to form when typing in Devanagari (because WebKit can't handle
        a marked range that covers half of a composed character sequence)

        Test: platform/mac/editing/input/devanagari-ligature.html

        This fix is somewhat of a hack, as it asks editing commands to work with invalid selections.
        However, this is not entirely new for them, as Roman accents are typed in a similar manner.

        In the future, we probably want to make commands work with ranges (or Positions explicitly).

        * editing/Editor.cpp:
        (WebCore::Editor::selectComposition): Force selection to composition range.
        * editing/InsertTextCommand.cpp:
        (WebCore::InsertTextCommand::input): Force ending selection to inserted text range.

2007-11-14  Beth Dakin  <bdakin@apple.com>

        Reviewed by Hyatt.

        Fix for <rdar://problem/5540855> REGRESSION: Combination of client-
        side image map and <a> tag is not working properly (15522)

        * html/HTMLMapElement.cpp:
        (WebCore::HTMLMapElement::checkDTD): Allow <map> to have both block 
        and inline children rather than just block children. This matches 
        Firefox. 

2007-11-14  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Alexey Proskuryakov.

        <rdar://problem/5546763> CrashTracer: [USER] 362 crashes at WebCore::DeleteSelectionCommand::mergeParagraphs

        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::handleGeneralDelete): 
        Removed an irrelevant FIXME.
        (WebCore::DeleteSelectionCommand::mergeParagraphs): If the block that contained the end of the selection
        hasn't been removed but has been emptied by deletion, we would to try and fail to create a VisiblePosition
        inside that block, which could lead to a crash.  If that happens, there's no content in the block to move,
        so just remove the block and return.
        Preserve m_needPlaceholder during the call to moveParagraphs, since it may change it and since it does
        its own placeholder insertion when necessary.
        (WebCore::DeleteSelectionCommand::doApply): No need to check m_needPlaceholder before calling mergeParagraphs,
        because it handles preserving m_needPlaceholder when it calls moveParagraphs.
        
2007-11-14  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Bug 14380: Long DOM ancestry breadcrumb lists get cut off
        http://bugs.webkit.org/show_bug.cgi?id=14380

        The breadcumbs will now be compacted and collapsed if there isn't enough room
        to show everything. The collapsing algorithm always affects the crumbs that
        are farthest away from the selected or hovered crumb first.

        * page/inspector/DocumentPanel.js:
        * page/inspector/inspector.css:

2007-11-14  Anders Carlsson  <andersca@apple.com>

        Use the correct include path.
        
        * platform/Cursor.h:
        * plugins/win/PluginPackageWin.h:
        * plugins/win/PluginStreamWin.h:

2007-11-13  Brady Eidson  <beidson@apple.com>

        Reviewed by Adam

        http://bugs.webkit.org/show_bug.cgi?id=15976 - ASSERT/crash when SQLTransactionCallback throws an exception

        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::deliverTransactionCallback): Make a transaction error for the case where the 
          SQLTransactionCallback fails
        (WebCore::SQLTransaction::deliverTransactionErrorCallback): Don't assert on the error callback, but null check it
          and make the commit/rollback decision accordingly

2007-11-13  Oliver Hunt  <oliver@apple.com>

        Reviewed by Anders.

        <rdar://problem/5365030> calling dataWithPDFInsideRect on an SVG with a gradient crashes (14780)

        When drawing directly to PDF CG may delay the use of the gradient function until outside our
        standard drawing path, which in turn could let us invalidate the caches before they were used.

        To work around this we now store the cached stops in a RefCounted object, so that we can ensure
        that cache exists as long as required.
        
        * platform/graphics/svg/SVGPaintServerGradient.cpp:
        (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
        * platform/graphics/svg/SVGPaintServerGradient.h:
        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
        (WebCore::cgGradientCallback):
        (WebCore::CGShadingRefForLinearGradient):
        (WebCore::CGShadingRefForRadialGradient):
        (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):

2007-11-13  Anders Carlsson  <andersca@apple.com>

        Fix Windows build.
        
        * platform/Cursor.h:
        * plugins/win/PluginPackageWin.h:
        * plugins/win/PluginStreamWin.h:

2007-11-13  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Anders Carlsson.

        Renamed Shared to RefCounted.

        * ForwardingHeaders/wtf/RefCounted.h: Copied from WebCore/ForwardingHeaders/wtf/Shared.h.
        * ForwardingHeaders/wtf/Shared.h: Removed.
        * bindings/js/JSSVGPODTypeWrapper.h:
        * css/CSSFontFace.h:
        * css/CSSRuleList.h:
        * css/Counter.h:
        * css/Pair.h:
        * css/Rect.h:
        * css/StyleBase.h:
        * css/StyleSheetList.h:
        * dom/Attribute.h:
        * dom/Clipboard.h:
        * dom/DOMImplementation.h:
        * dom/Event.h:
        * dom/EventListener.h:
        * dom/NamedNodeMap.h:
        * dom/NodeFilter.h:
        * dom/NodeFilterCondition.h:
        * dom/NodeList.h:
        * dom/QualifiedName.h:
        * dom/Range.h:
        * dom/RangeException.h:
        * dom/RegisteredEventListener.h:
        * dom/Traversal.h:
        * editing/EditCommand.h:
        * history/BackForwardList.h:
        * history/CachedPage.h:
        * history/HistoryItem.cpp:
        (WebCore::HistoryItem::HistoryItem):
        * history/HistoryItem.h:
        * html/CanvasGradient.h:
        * html/CanvasPattern.h:
        * html/CanvasRenderingContext2D.h:
        * html/CanvasStyle.h:
        * html/HTMLCollection.h:
        * html/MediaError.h:
        * html/TimeRanges.h:
        * html/VoidCallback.h:
        * ksvg2/css/SVGRenderStyle.cpp:
        (WebCore::SVGRenderStyle::SVGRenderStyle):
        * ksvg2/css/SVGRenderStyle.h:
        * ksvg2/css/SVGRenderStyleDefs.cpp:
        (StyleFillData::StyleFillData):
        (StyleStrokeData::StyleStrokeData):
        (StyleStopData::StyleStopData):
        (StyleTextData::StyleTextData):
        (StyleClipData::StyleClipData):
        (StyleMaskData::StyleMaskData):
        (StyleMarkerData::StyleMarkerData):
        (StyleMiscData::StyleMiscData):
        * ksvg2/css/SVGRenderStyleDefs.h:
        * ksvg2/svg/SVGAngle.cpp:
        (WebCore::SVGAngle::SVGAngle):
        * ksvg2/svg/SVGAngle.h:
        * ksvg2/svg/SVGAnimatedTemplate.h:
        * ksvg2/svg/SVGElementInstanceList.h:
        * ksvg2/svg/SVGException.h:
        * ksvg2/svg/SVGList.h:
        * ksvg2/svg/SVGPathSeg.h:
        * ksvg2/svg/SVGPreserveAspectRatio.cpp:
        (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
        * ksvg2/svg/SVGPreserveAspectRatio.h:
        * ksvg2/svg/SVGRenderingIntent.h:
        * ksvg2/svg/SVGTransform.h:
        * ksvg2/svg/SVGUnitTypes.h:
        * loader/DocumentLoader.h:
        * loader/FormState.h:
        * loader/ResourceLoader.h:
        * loader/TextResourceDecoder.h:
        * loader/icon/IconRecord.h:
        * page/BarInfo.h:
        * page/Console.h:
        * page/DOMSelection.h:
        * page/DOMWindow.h:
        * page/Frame.h:
        * page/History.h:
        * page/InspectorController.cpp:
        * page/Plugin.h:
        * page/Screen.h:
        * platform/ArrayImpl.h:
        * platform/CString.h:
        * platform/Cursor.h:
        * platform/DeprecatedValueListImpl.cpp:
        (WebCore::DeprecatedValueListImpl::Private::Private):
        * platform/FileChooser.h:
        * platform/FontFallbackList.h:
        * platform/FontFamily.cpp:
        (WebCore::FontFamily::FontFamily):
        * platform/FontFamily.h:
        * platform/FontSelector.h:
        * platform/GlyphPageTreeNode.h:
        * platform/PopupMenu.h:
        * platform/RegularExpression.cpp:
        * platform/ScrollBar.h:
        * platform/SharedBuffer.h:
        * platform/StringImpl.h:
        * platform/graphics/Icon.h:
        * platform/graphics/svg/SVGResource.h:
        * platform/network/FormData.cpp:
        (WebCore::FormData::FormData):
        * platform/network/FormData.h:
        * platform/network/ResourceHandle.h:
        * platform/network/ResourceHandleClient.h:
        * rendering/RenderStyle.cpp:
        (WebCore::StyleSurroundData::StyleSurroundData):
        (WebCore::StyleBoxData::StyleBoxData):
        (WebCore::StyleVisualData::StyleVisualData):
        (WebCore::StyleBackgroundData::StyleBackgroundData):
        (WebCore::StyleMarqueeData::StyleMarqueeData):
        (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
        (WebCore::StyleMultiColData::StyleMultiColData):
        (WebCore::StyleTransformData::StyleTransformData):
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
        (WebCore::StyleInheritedData::StyleInheritedData):
        * rendering/RenderStyle.h:
        * rendering/SVGCharacterLayoutInfo.h:
        (WebCore::SVGCharOnPath::SVGCharOnPath):
        * storage/SQLResultSetRowList.h:
        * xml/DOMParser.h:
        * xml/XMLHttpRequest.h:
        * xml/XMLSerializer.h:
        * xml/XPathEvaluator.h:
        * xml/XPathExpression.h:
        * xml/XPathNSResolver.h:
        * xml/XPathResult.h:
        * xml/XPathValue.h:
        * xml/XSLTProcessor.h:

2007-11-13  Brady Eidson  <beidson@apple.com>

        Reviewed by Mark Rowe

        Remove errantly added files, and fix the idl (for reference's sake)

        * storage/JSCustomSQLStatementCallback.h: Removed.
        * storage/JSCustomSQLStatementErrorCallback.h: Removed.
        * storage/JSCustomSQLTransactionCallback.h: Removed.
        * storage/JSCustomSQLTransactionErrorCallback.h: Removed.
        * storage/SQLStatementCallback.idl:

2007-11-13  Adam Roben  <aroben@apple.com>

        Fix a bug and improve upon Brady's fix

        Reviewed by Anders.

        * bindings/js/JSSQLTransactionCustom.cpp:
        (WebCore::JSSQLTransaction::executeSql): Made the code a little
        clearer and more correct.
        * loader/icon/IconDatabase.cpp: Put parentheses around the expansion
        of IS_ICON_SYNC_THREAD() so that ASSERT_NOT_SYNC_THREAD() does the
        comparison it meant to.

2007-11-13  Sam Weinig  <sam@webkit.org>

        Fix Qt and Gtk builds.

        * WebCore.pro: Remove non-generated idl files.

2007-11-13  Mark Rowe  <mrowe@apple.com>

        Remove removed file from the project.

        * WebCore.pro:

2007-11-13  Brady Eidson  <beidson@apple.com>

        Release build fix

        * bindings/js/JSSQLTransactionCustom.cpp:
        (WebCore::JSSQLTransaction::executeSql):

2007-11-13  Adam Roben  <aroben@apple.com>

        Add WindowMessageBroadcaster

        This class is used to listen in on messages sent to HWNDs. Multiple
        WindowMessageListeners can be notified about messages sent to a single
        HWND, and one WindowMessageListener can listen to messages from
        multiple HWNDs.

        Reviewed by Ada.

        * WebCore.vcproj/WebCore.vcproj: Added new files to project.
        * platform/win/WindowMessageBroadcaster.cpp: Added.
        (WebCore::instancesMap): Static helper.
        (WebCore::WindowMessageBroadcaster::addListener): Registers a listener
        for a particular HWND.
        (WebCore::WindowMessageBroadcaster::removeListener): Removes a
        listener for a particular HWND.
        (WebCore::WindowMessageBroadcaster::WindowMessageBroadcaster):
        (WebCore::WindowMessageBroadcaster::~WindowMessageBroadcaster):
        (WebCore::WindowMessageBroadcaster::destroy): Removes this broadcaster
        from the instancesMap, removes all of its listeners, unsubclasses the
        window, and deletes the broadcaster.
        (WebCore::WindowMessageBroadcaster::unsubclassWindow): Unsubclasses
        the window (which means that SubclassedWndProc won't be called again
        for this window).
        (WebCore::WindowMessageBroadcaster::SubclassedWndProc): Notifies all
        the listeners about every message sent to the HWND
        * platform/win/WindowMessageBroadcaster.h: Added.
        (WebCore::WindowMessageBroadcaster::listeners):
        (WebCore::WindowMessageBroadcaster::originalWndProc):
        * platform/win/WindowMessageListener.h: Added.

2007-11-13  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Moved Shared.h into wtf so it could be used in more places. Retained 
        TreeShared, but moved it to its own file, TreeShared.h.

        * ForwardingHeaders/wtf/Shared.h: Added.
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSSVGPODTypeWrapper.h:
        * css/CSSFontFace.h:
        * css/CSSRuleList.h:
        * css/Counter.h:
        * css/Pair.h:
        * css/Rect.h:
        * css/StyleBase.h:
        * css/StyleSheetList.h:
        * dom/Clipboard.h:
        * dom/DOMImplementation.h:
        * dom/Event.h:
        * dom/EventListener.h:
        * dom/NamedNodeMap.h:
        * dom/NodeFilterCondition.h:
        * dom/NodeList.h:
        * dom/Range.h:
        * dom/RangeException.h:
        * dom/RegisteredEventListener.h:
        * dom/Traversal.h:
        * history/BackForwardList.h:
        * history/CachedPage.h:
        * history/HistoryItem.h:
        * html/CanvasGradient.h:
        * html/CanvasPattern.h:
        * html/HTMLCollection.h:
        * html/MediaError.h:
        * html/TimeRanges.h:
        * html/VoidCallback.h:
        * ksvg2/css/SVGRenderStyleDefs.h:
        * ksvg2/svg/SVGAnimatedTemplate.h:
        * ksvg2/svg/SVGElementInstanceList.h:
        * ksvg2/svg/SVGList.h:
        * ksvg2/svg/SVGPathSeg.h:
        * ksvg2/svg/SVGPreserveAspectRatio.h:
        * ksvg2/svg/SVGRenderingIntent.h:
        * ksvg2/svg/SVGTransform.h:
        * ksvg2/svg/SVGUnitTypes.h:
        * loader/DocumentLoader.h:
        * loader/FormState.h:
        * loader/ResourceLoader.h:
        * loader/TextResourceDecoder.h:
        * loader/icon/IconRecord.h:
        * page/BarInfo.h:
        * page/Console.h:
        * page/DOMSelection.h:
        * page/DOMWindow.h:
        * page/History.h:
        * page/InspectorController.cpp:
        * page/Plugin.h:
        * page/Screen.h:
        * platform/ArrayImpl.h:
        * platform/CString.h:
        * platform/DeprecatedValueListImpl.cpp:
        * platform/FontFallbackList.h:
        * platform/FontFamily.h:
        * platform/FontSelector.h:
        * platform/GlyphPageTreeNode.h:
        * platform/PopupMenu.h:
        * platform/RegularExpression.cpp:
        * platform/ScrollBar.h:
        * platform/Shared.h: Removed.
        * platform/SharedBuffer.h:
        * platform/StringImpl.h:
        * platform/graphics/Icon.h:
        * platform/graphics/svg/SVGResource.h:
        * platform/network/FormData.h:
        * platform/network/ResourceHandleClient.h:
        * rendering/RenderStyle.h:
        * rendering/SVGCharacterLayoutInfo.h:
        * storage/SQLResultSetRowList.h:
        * xml/DOMParser.h:
        * xml/XMLSerializer.h:
        * xml/XPathEvaluator.h:
        * xml/XPathExpression.h:
        * xml/XPathNSResolver.h:
        * xml/XPathResult.h:

2007-11-13  Brady Eidson  <beidson@apple.com>

        JS bindings by Anders, reviewed by Brady
        WebCore changes by Brady, reviewed by Anders and Tim

        Adapt to the new iteration of the HTML5 client-side storage spec.

        Based largely on implementation feedback we generated in landing our first version of this API and also
        on the input of others in the community, the database spec went through a large overhaul that addresses
        many concerns.  Amongst other changes/improvements:
        - SQLTransaction object is added and all transactions are explicit.  In addition, since the API manages
          transactions explicitly, transaction-related language in SQL statements is disallowed
        - executeSql() is now on a transaction object instead of the database object.
        - Database.changeVersion() now takes place within the context of a transaction.  Therefore the version 
          change can be atomic along with the statements that modify the DB schema

        Most of the logic now takes place during the "transaction steps," which the specification clearly lays out
        as a chain of events on the SQLTransaction object where processing is handed off between being processed 
        asynchronously and calling back up to javascript.  To accomplish this voodoo, SQLTransaction has a series of 
        methods that roughly match up with the "transaction steps" and it keeps a pointer to the next step.

        * DerivedSources.make:
        * WebCore.xcodeproj/project.pbxproj:

        * bindings/js/JSDatabaseCustom.cpp:
        (WebCore::JSDatabase::changeVersion): Adapt to the new API
        (WebCore::JSDatabase::transaction): Added

        * bindings/js/JSSQLTransactionCustom.cpp: Added.
        (WebCore::JSSQLTransaction::executeSql): Added

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::openDatabase): Add the new arguments
        * page/DOMWindow.h:
        * page/DOMWindow.idl:

        * page/inspector/DatabasePanel.js: Use the new API

        * storage/ChangeVersionWrapper.cpp: Added.  Implementation of "SQLTransactionWrapper" that enforces
          changing the version of the database
        (WebCore::ChangeVersionWrapper::ChangeVersionWrapper):
        (WebCore::ChangeVersionWrapper::performPreflight):
        (WebCore::ChangeVersionWrapper::performPostflight):
        * storage/ChangeVersionWrapper.h: Added.
        (WebCore::ChangeVersionWrapper::sqlError):

        * storage/Database.cpp: Removed the "main thread" and "background thread" sqlite handles as all sqlite operations can now
          happen solely on the background thread - most of these changes result from that change
        (WebCore::Database::Database): Removed an obsolete FIXME
        (WebCore::Database::openAndVerifyVersion): 
        (WebCore::Database::getVersionFromDatabase):
        (WebCore::Database::setVersionInDatabase):
        (WebCore::Database::versionMatchesExpected): Atomically guarantee that the current version and expected version are the same
        (WebCore::Database::performOpenAndVerify):
        (WebCore::Database::performTransactionStep): Added, as a hook for the DatabaseTransactionTask on the DatabaseThread
        (WebCore::Database::changeVersion): Changed for the new API from JS
        (WebCore::Database::transaction): Added, for the new API from JS
        (WebCore::Database::scheduleTransaction): Add a transaction to this Database's transaction queue
        (WebCore::Database::scheduleTransactionStep): Schedule the current transaction to be called on the background thread
        (WebCore::Database::scheduleTransactionCallback): Schedule the current transaction to perform a callback on the main thread
        (WebCore::Database::performGetTableNames):
        (WebCore::Database::deliverAllPendingCallbacks):
        (WebCore::Database::deliverPendingCallback):
        (WebCore::Database::setExpectedVersion):
        * storage/Database.h: 
        * storage/Database.idl:

        * storage/DatabaseTask.cpp:  Changed DatabaseTask to create a mutex on demand, and use the existence of that mutex
          to replace the m_synchronous flag
        (WebCore::DatabaseTask::performTask):
        (WebCore::DatabaseTask::lockForSynchronousScheduling):
        (WebCore::DatabaseTask::waitForSynchronousCompletion):
        (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
        * storage/DatabaseTask.h:

        * storage/SQLError.h: New API object

        * storage/SQLResultSet.cpp:
        (WebCore::SQLResultSet::SQLResultSet): Small changes to the API object
        * storage/SQLResultSet.h:
        * storage/SQLResultSet.idl:

        * storage/SQLStatement.cpp: Added.
        (WebCore::SQLStatement::SQLStatement):
        (WebCore::SQLStatement::execute): Actually execute the sql statement on the SQLiteDatabase if it's still valid
        (WebCore::SQLStatement::setVersionMismatchedError): Flag this statement as bad before it even starts in case
          of an actual version vs. expected version mismatch
        (WebCore::SQLStatement::performCallback): Call the right callback (SQLStatement or SQLStatementError) for this statement
        * storage/SQLStatement.h: Added.
        (WebCore::SQLStatement::hasStatementCallback):
        (WebCore::SQLStatement::hasStatementErrorCallback):
        (WebCore::SQLStatement::sqlError): Get the error for this statement, if any

        * storage/SQLTransaction.cpp: Added.
        (WebCore::SQLTransaction::SQLTransaction):
        (WebCore::SQLTransaction::executeSQL): Entry point for the API from JS
        (WebCore::SQLTransaction::enqueueStatement): Add a new statement onto the queue
        (WebCore::SQLTransaction::performNextStep): Call the method for the next step
        (WebCore::SQLTransaction::performPendingCallback): Call the method for the pending callback
        (WebCore::SQLTransaction::openTransactionAndPreflight): Open a transaction to the database and preflight 
          using the SQLTransactionWrapper, if any
        (WebCore::SQLTransaction::deliverTransactionCallback): Deliver the transaction callback to the javascript thread
        (WebCore::SQLTransaction::scheduleToRunStatements): Convinience to schedule this transaction on the database thread 
          and make runStatements() the next step
        (WebCore::SQLTransaction::runStatements): Start running the sql statements queued up for this transaction 
        (WebCore::SQLTransaction::getNextStatement): Bring the next statement off the queue
        (WebCore::SQLTransaction::runCurrentStatement): Execute the current statement
        (WebCore::SQLTransaction::deliverStatementCallback): Deliver the SQLStatementCallback for this statement
        (WebCore::SQLTransaction::postflightAndCommit): Postflight the transaction using SQLTransactionWrapper and commit it
        (WebCore::SQLTransaction::handleTransactionError): Make the right call for any error that occurred on the Transaction
        (WebCore::SQLTransaction::deliverTransactionErrorCallback): Deliver the SQLTransactionErrorCallback
        (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Either do a final commit or rollback to cleanup the
          transaction after it error'ed out
        * storage/SQLTransaction.h:
        (WebCore::SQLTransactionWrapper::~SQLTransactionWrapper): 
        (WebCore::SQLTransaction::database):
        * storage/SQLTransaction.idl:

        The following were made obsolete by the new version of the API:
        * bindings/js/JSCustomSQLCallback.cpp: Removed.
        * bindings/js/JSCustomSQLCallback.h: Removed.
        * bindings/js/JSCustomVersionChangeCallback.cpp: Removed.
        * bindings/js/JSCustomVersionChangeCallback.h: Removed.
        * storage/DatabaseCallback.cpp: Removed.
        * storage/DatabaseCallback.h: Removed.
        * storage/SQLCallback.h: Removed.
        * storage/SQLCallback.idl: Removed.
        * storage/VersionChangeCallback.h: Removed.
        * storage/VersionChangeCallback.idl: Removed.

2007-11-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by Beth Dakin.

        - fix <rdar://problem/5551163> REGRESSION: Cursor does not change to arrow on "X" button in google maps, making it hard to click

        * css/html4.css: Added a 'cursor: auto' rule for links.
        * manual-tests/link-cursor-auto.html: Added.

2007-11-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by Beth Dakin.

        - fix <rdar://problem/5516272> Reproducible crash in RenderObject::setStyle involving going Back from a non-HTML document (Bookmarks view, PDF view)

        The root cause for the crash is that when a non-HTML view enters the
        frame, the frame's document pointer keeps pointing at the last HTML-type
        document it contained. This patch does not address the root cause, but
        makes changes to account for that condition.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::receivedMainResourceError): Do not change the
        frame's current document's page cache state here.
        (WebCore::FrameLoader::invalidateCurrentItemCachedPage): If the frame's
        current document is in fact the history item being invalidated, then
        set its page cache state here.

2007-11-12  Antti Koivisto  <antti@apple.com>

        Reviewed by Adele.

        Fix that 'timeupdate' and 'waiting' events were never dispatched.
        
        Add explicit m_paused attribute instead of trying to derive paused state from
        underlying media. Call updatePlayState() to start/stop media playback
        when any attribute that affects active playback state changes. This matches 
        specification text.
        
        Test: http/tests/media/video-play-stall.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::setReadyState):
        (WebCore::HTMLMediaElement::paused):
        (WebCore::HTMLMediaElement::play):
        (WebCore::HTMLMediaElement::pause):
        (WebCore::HTMLMediaElement::checkIfSeekNeeded):
        (WebCore::HTMLMediaElement::movieDidEnd):
        (WebCore::HTMLMediaElement::updatePlayState):
        * html/HTMLMediaElement.h:

2007-11-13  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.

        removed recently-added PreferredType concept; we found a better way to do what
        ths was accomplishing

        * bridge/WindowFeatures.h:
        (WebCore::WindowFeatures::WindowFeatures):
        removed definition of PreferredType
                        
        * page/ContextMenuController.cpp:
        (WebCore::openNewWindow):
        removed use of PreferredType

2007-11-12  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15954
        Move DOM Selection operations out of SelectionController

        No change in functionality.

        * editing/SelectionController.cpp:
        (WebCore::SelectionController::setSelectedRange):
        * editing/SelectionController.h:
        * page/DOMSelection.cpp:
        (WebCore::DOMSelection::anchorNode):
        (WebCore::DOMSelection::baseNode):
        (WebCore::DOMSelection::anchorOffset):
        (WebCore::DOMSelection::baseOffset):
        (WebCore::DOMSelection::focusNode):
        (WebCore::DOMSelection::extentNode):
        (WebCore::DOMSelection::focusOffset):
        (WebCore::DOMSelection::extentOffset):
        (WebCore::DOMSelection::isCollapsed):
        (WebCore::DOMSelection::type):
        (WebCore::DOMSelection::rangeCount):
        (WebCore::DOMSelection::collapse):
        (WebCore::DOMSelection::collapseToEnd):
        (WebCore::DOMSelection::collapseToStart):
        (WebCore::DOMSelection::empty):
        (WebCore::DOMSelection::setBaseAndExtent):
        (WebCore::DOMSelection::setPosition):
        (WebCore::DOMSelection::modify):
        (WebCore::DOMSelection::extend):
        (WebCore::DOMSelection::getRangeAt):
        (WebCore::DOMSelection::removeAllRanges):
        (WebCore::DOMSelection::addRange):
        (WebCore::DOMSelection::deleteFromDocument):
        (WebCore::DOMSelection::containsNode):
        (WebCore::DOMSelection::selectAllChildren):
        (WebCore::DOMSelection::toString):
        * page/DOMSelection.h:
        Moved all DOM API methods to DOMSelection; changed SelectionController::setSelectedRange()
        to return its result directly instead of via an ExceptionCode that no caller wanted.

        * editing/Editor.cpp:
        (WebCore::Editor::deleteRange):
        (WebCore::Editor::removeFormattingAndStyle):
        (WebCore::Editor::selectComposition):
        (WebCore::Editor::setComposition):
        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
        Adapted for SelectionController::setSelectedRange() now returning a bool.
        SelectionController::toString() is no longer avasilable, use plainText() explicitly.

        * WebCore.base.exp: Changed SelectionController::setSelectedRange() signature.

2007-11-12  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - <http://bugs.webkit.org/show_bug.cgi?id=15890>
          Most of www.aol.com still redraws unnecessarily when headline/photo section changes

        Test: fast/repaint/invisible-objects.html

        Avoid repainting invisible blocks if they are enclosed in a layer that
        contains no visible objects.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlock):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::absoluteClippedOverflowRect):

2007-11-12  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Mark Rowe.

        Prevent selecting a word in the breadcrumb or the styles section when double
        clicking on a DOM node in the outline tree.

        * page/inspector/DocumentPanel.js: Call preventDefault() when a mousedown event
          with a detail of 2 or higher comes in. This prevents the selection.
        * page/inspector/inspector.css: Mark the breadcrumb as user-select: none.

2007-11-12  Oliver Hunt  <oliver@apple.com>

        Reviewed by John S.

        <rdar://problem/5537289> REGRESSION: Dragging a link or an image from an IFrame causes the page to not respond to clicks afterwards (15460)
        
        EventHandler needs to reset these fields when a drag terminates, otherwise
        EventHandler is left in an inconsistent state when a drag is initiated on a
        page with multiple frames.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::cancelDragAndDrop):
        (WebCore::EventHandler::performDragAndDrop):
        (WebCore::EventHandler::clearDragState):
        * page/EventHandler.h:

2007-11-12  Oliver Hunt  <oliver@apple.com>

        Reviewed by Darin and Antti.

        Return behaviour for 0 sized pattern back to what it was prior to r27704

        This change in behaviour broke two layout tests in DRT, so correcting it
        corrects existing tests.

        * platform/graphics/cg/ImageBufferCG.cpp:

2007-11-12  Timothy Hatcher  <timothy@apple.com>

        Reviewed by John.

        <rdar://problem/5268311> REGRESSION (Safari 2-3): Exception thrown when calling -[WebDataSource subresources]

        * page/mac/WebCoreFrameBridge.mm:
        (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
        If the SharedBuffer is null insert an empty NSData instead of nil.

2007-11-12  Darin Adler  <darin@apple.com>

        Reviewed by Tim.

        - http://bugs.webkit.org/show_bug.cgi?id=15947
          speed up page loading a bit by inlining

        * loader/FrameLoader.cpp: (WebCore::FrameLoader::isLocationChange):
        Factored out the slow case of isScheduledLocationChangePending into this.

        * loader/FrameLoader.h:
        (WebCore::FrameLoader::isScheduledLocationChangePending): Added an
        inline check of the far and away most common case, where m_scheduledRedirection
        is 0; the rest is in the isLocationChange function.

2007-11-12  George Staikos  <staikos@kde.org>

        Reviewed by Tim.

        Extract the text match marker highlight color into RenderTheme instead
        of the hardcoded yellow.

        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paintTextMatchMarker):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::platformTextSearchHighlightColor):
        * rendering/RenderTheme.h:

2007-11-12  Mark Rowe  <mrowe@apple.com>

        Fix deadlock on launch on the Mac.

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::open): Restore unlock that was mistakenly removed in r27717.

2007-11-12  Justin Haygood  <jhaygood@reaktix.com>

        Reviewed by Brady.

        http://bugs.webkit.org/show_bug.cgi?id=15955
        Reimplement threading functions in IconDatabase and SQLiteDatabase in terms of the threading abstractions

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::open):
        (WebCore::IconDatabase::close):
        * loader/icon/IconDatabase.h:
        * platform/sql/SQLiteDatabase.cpp:
        (WebCore::SQLiteDatabase::SQLiteDatabase):
        (WebCore::SQLiteDatabase::open):
        (WebCore::SQLiteDatabase::close):
        * platform/sql/SQLiteDatabase.h:

2007-11-12  Adam Roben  <aroben@apple.com>

        Windows build fix

        * config.h: Touch because VS apparently can't figure out which files
        depend on ResourceResponse.h.
        * WebCore.vcproj/WebCore.vcproj: Add ResourceResponseBase files to
        project and remove old ResourceResponse files.

2007-11-12  Julien Chaffraix  <julien.chaffraix@gmail.com>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15334
        Split ResourceResponse into platform specific files

        * WebCore.base.exp:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/network/ResourceResponse.cpp: Removed.
        * platform/network/ResourceResponse.h: Removed.
        * platform/network/ResourceResponseBase.cpp: Copied from platform/network/ResourceResponse.cpp.
        (WebCore::ResourceResponseBase::asResourceResponse):
        (WebCore::ResourceResponseBase::isHTTP):
        (WebCore::ResourceResponseBase::url):
        (WebCore::ResourceResponseBase::setUrl):
        (WebCore::ResourceResponseBase::mimeType):
        (WebCore::ResourceResponseBase::setMimeType):
        (WebCore::ResourceResponseBase::expectedContentLength):
        (WebCore::ResourceResponseBase::setExpectedContentLength):
        (WebCore::ResourceResponseBase::textEncodingName):
        (WebCore::ResourceResponseBase::setTextEncodingName):
        (WebCore::ResourceResponseBase::suggestedFilename):
        (WebCore::ResourceResponseBase::setSuggestedFilename):
        (WebCore::ResourceResponseBase::httpStatusCode):
        (WebCore::ResourceResponseBase::setHTTPStatusCode):
        (WebCore::ResourceResponseBase::httpStatusText):
        (WebCore::ResourceResponseBase::setHTTPStatusText):
        (WebCore::ResourceResponseBase::httpHeaderField):
        (WebCore::ResourceResponseBase::setHTTPHeaderField):
        (WebCore::ResourceResponseBase::httpHeaderFields):
        (WebCore::ResourceResponseBase::isAttachment):
        (WebCore::ResourceResponseBase::setExpirationDate):
        (WebCore::ResourceResponseBase::expirationDate):
        (WebCore::ResourceResponseBase::setLastModifiedDate):
        (WebCore::ResourceResponseBase::lastModifiedDate):
        (WebCore::ResourceResponseBase::updateResourceResponse):
        * platform/network/ResourceResponseBase.h: Copied from platform/network/ResourceResponse.h.
        (WebCore::ResourceResponseBase::ResourceResponseBase):
        * platform/network/cf/ResourceResponse.h: Added.
        (WebCore::ResourceResponse::ResourceResponse):
        * platform/network/curl/ResourceResponse.h: Added.
        (WebCore::ResourceResponse::ResourceResponse):
        (WebCore::ResourceResponse::doUpdateResourceResponse):
        * platform/network/mac/ResourceResponse.h: Added.
        (WebCore::ResourceResponse::ResourceResponse):
        * platform/network/qt/ResourceResponse.h: Added.
        (WebCore::ResourceResponse::ResourceResponse):
        (WebCore::ResourceResponse::doUpdateResourceResponse):

2007-11-11  Justin Haygood  <jhaygood@reaktix.com>

        Reviewed by Adam Roben.

        http://bugs.webkit.org/show_bug.cgi?id=15939
        Adds a currentThread API for use by SQLiteDatabase, etc.

        * platform/Threading.h:
        * platform/ThreadingNone.cpp:
        (WebCore::currentThread):
        * platform/gtk/ThreadingGtk.cpp:
        (WebCore::identifierByGthreadHandle):
        (WebCore::):
        * platform/pthreads/ThreadingPthreads.cpp:
        (WebCore::identifierByPthreadHandle):
        (WebCore::currentThread):

2007-11-11  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15942
          REGRESSION: Selecting "Edit Html" tab in Blogger causes crash (Assertion failed: isRange())

        Test: editing/selection/cleared-by-relayout.html

        * editing/Selection.cpp:
        (WebCore::Selection::toRange): Check if the selection has been cleared
        by updating layout.

2007-11-11  Darin Adler  <darin@apple.com>

        Reviewed by Mark Rowe.

        - fix line numbers that were off since my recent patch

        * platform/SegmentedString.h:
        (WebCore::SegmentedSubstring::SegmentedSubstring): Reversed the sense of m_excludeLineNumbers
        and rename it to m_doNotExcludeLineNumbers.
        (WebCore::SegmentedSubstring::excludeLineNumbers): Updated.
        (WebCore::SegmentedSubstring::doNotExcludeLineNumbers): Added.
        (WebCore::SegmentedSubstring::setExcludeLineNumbers): Updated.
        (WebCore::SegmentedString::advance): Use doNotExcludeLineNumbers to reverse the sense and fix
        the regression, but keep the speediness. I accidentally had removed a ! here.

        * platform/SegmentedString.cpp:
        (WebCore::SegmentedString::advanceSlowCase): Use doNotExcludeLineNumbers.

2007-11-11  Oliver Hunt  <oliver@apple.com>

        Reviewed by Darin.

        Fix for <rdar://problem/5585334> numfuzz: integer overflows opening
        malformed SVG file in WebCore::ImageBuffer::create. Add protection
        against a potential overflow.

        * platform/graphics/cg/ImageBufferCG.cpp:

2007-11-11  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin.

        Fix a bunch of cases where the exception code is checked by the function but is not zeroed first.

        * bindings/js/kjs_binding.cpp:
        (KJS::setDOMException):
        * dom/Attr.cpp:
        (WebCore::Attr::setPrefix):
        * dom/Document.cpp:
        (WebCore::Document::createElement):
        * dom/Element.cpp:
        (WebCore::Element::setPrefix):
        * dom/Range.cpp:
        (WebCore::Range::setStart):
        (WebCore::Range::setEnd):
        (WebCore::Range::isPointInRange):
        (WebCore::Range::comparePoint):
        (WebCore::Range::compareBoundaryPoints):
        (WebCore::Range::deleteContents):
        (WebCore::Range::processContents):
        (WebCore::Range::extractContents):
        (WebCore::Range::insertNode):
        (WebCore::Range::setStartAfter):
        (WebCore::Range::setEndBefore):
        (WebCore::Range::setEndAfter):
        (WebCore::Range::selectNode):
        (WebCore::Range::surroundContents):
        (WebCore::Range::setStartBefore):
        * editing/TextIterator.cpp:
        (WebCore::TextIterator::TextIterator):
        * html/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::createPattern):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::play):
        (WebCore::HTMLMediaElement::pause):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::add):
        (WebCore::HTMLSelectElement::setOption):
        * xml/XPathEvaluator.cpp:
        (WebCore::XPathEvaluator::evaluate):

2007-11-11  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - http://bugs.webkit.org/show_bug.cgi?id=15945
          speed up GraphicsContextCG typical case by skipping roundToDevicePixels

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::restorePlatformState): Clear the flag since we no
        longer know if the transform is identity or not.
        (WebCore::GraphicsContext::strokeArc): Removed an extra set of redundant
        CGContextSave/RestoreGState.
        (WebCore::GraphicsContext::beginTransparencyLayer): Clear the flag since we no
        longer know if the transform is identity or not.
        (WebCore::GraphicsContext::endTransparencyLayer): Ditto.
        (WebCore::GraphicsContext::scale): Ditto.
        (WebCore::GraphicsContext::rotate): Ditto.
        (WebCore::GraphicsContext::translate): Ditto.
        (WebCore::GraphicsContext::concatCTM): Ditto.
        (WebCore::GraphicsContext::roundToDevicePixels): Return quickly if the transform
        is known to be identity, and record that fact when we discover it otherwise.

        * platform/graphics/cg/GraphicsContextPlatformPrivate.h:
        (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
        Added a m_userToDeviceTransformKnownToBeIdentity flag, initialized to false.

2007-11-11  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - http://bugs.webkit.org/show_bug.cgi?id=15944
          streamline SegmentedString to speed up parsing

        I measured a speed-up of the page load test while developing this patch. I don't
        have a precise figure, though.

        * html/HTMLTokenizer.h: Removed unneeded lineNumberPtr() function. Also renamed
        lineno to m_lineNumber.
        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::processListing): Don't pass 0 to the advance function
        since we don't want to update a line number.
        (WebCore::HTMLTokenizer::parseSpecial): Ditto.
        (WebCore::HTMLTokenizer::parseComment): Pass the line number data member directly
        instead of lineNumberPtr() since the advance function now takes a reference.
        (WebCore::HTMLTokenizer::parseServer): Ditto.
        (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto.
        (WebCore::HTMLTokenizer::parseText): Ditto.
        (WebCore::HTMLTokenizer::parseEntity): Ditto.
        (WebCore::HTMLTokenizer::parseTag): Ditto.
        (WebCore::HTMLTokenizer::write): Ditto.

        * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryTokenizer::write):
        * loader/TextDocument.cpp: (WebCore::TextTokenizer::write):
        Don't pass 0 to the advance function.

        * platform/SegmentedString.h: (WebCore::SegmentedString::advance): Streamlined
        the most common case, and pushed less common cases into a separate function
        that is not inlined. Also got rid of a branch by separating the case with a
        line number from the case without one.

        * platform/SegmentedString.cpp: (WebCore::SegmentedString::advanceSlowCase):
        Added. The aforementioned less common cases are here.

2007-11-11  Antti Koivisto  <antti@apple.com>

        Forgot to do this review change (and test HTTP commit).

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::play):

2007-11-11  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin.
        
        - Update play() and pause() to match current HTML5 draft
            - send events asynchronously
            - add timeupdate event to pause
            - rethrow load() exception, not others
        - Use list for async events to get ordering right

        Tests: media/video-pause-empty-events.html
               media/video-play-empty-events.html
               media/video-play-pause-events.html
               media/video-play-pause-exception.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::dispatchEventAsync): 
        (WebCore::HTMLMediaElement::asyncEventTimerFired):
        (WebCore::HTMLMediaElement::play):
        (WebCore::HTMLMediaElement::pause):
        * html/HTMLMediaElement.h:

2007-11-11  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric.

        Fixes: http://bugs.webkit.org/show_bug.cgi?id=6424 (<text>, <tspan> dominant-baseline attribute is not respected)

        Add (basic) support for dominant-baseline / alignment-baseline text properties.
        Note: there are no official testcases, and no-one implemented it before. Only ASV3
              supported dominant-baseline, but not correct it seems.

        * rendering/SVGRootInlineBox.cpp:
        (WebCore::dominantBaselineToShift):
        (WebCore::alignmentBaselineToShift):
        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):

2007-11-11  Adam Roben  <aroben@apple.com>

        Add wrappers around CoCreateInstance to COMPtr

        I followed the example of the Query constructor and query method by
        adding a Create constructor and create method.

        Reviewed by Darin.

        * platform/win/COMPtr.h:
        (COMPtr::COMPtr): Added a new constructor that calls
        CoCreateInstance.
        (COMPtr::create): Added.
        (COMPtr::createInstance): Added.

2007-11-11  Alexey Proskuryakov  <ap@nypop.com>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15896
        More editing cleanup

        No functionality changes.

        * dom/Node.h: Moved several editing-related methods elsewhere.
        * dom/Node.cpp: (WebCore::Node::maxCharacterOffset): Renamed from maxOffset()
        to highlight that it is a match to offsetInCharacters(), and much different from other
        offset-related methods. Added ASSERT_NOT_REACHED(), as callers are supposed to check
        offsetInCharacters() before calling this.

        * dom/CharacterData.cpp: (WebCore::CharacterData::maxCharacterOffset):
        * dom/CharacterData.h: (WebCore::CharacterData::isCharacterDataNode):
        Updated for above renamings.

        * dom/Comment.{h,cpp}: Removed an override for offsetInCharacters(), which is already present in CharacterData.

        * dom/Document.{h,cpp}: Folded updateSelection() into Frame::selectionLayoutChanged().

        * dom/Position.h:
        * dom/Position.cpp:
        (WebCore::Position::uncheckedPreviousOffset): Moved from Node::previousOffset().
        (WebCore::Position::uncheckedNextOffset): Moved from Node::NextOffset().
        (WebCore::Position::previous): Adapted to the above move.
        (WebCore::Position::next): Ditto.
        (WebCore::Position::upstream): Removed an isBR() check, since a non-BR element cannot have a BR renderer (I think),
        and BR elements are covered by editingIgnoresContent().
        (WebCore::Position::downstream): Ditto.
        (WebCore::caretMaxRenderedOffset): Moved from Node::caretMaxRenderedOffset().
        (WebCore::Position::rendersInDifferentPosition): Updated for the above moves.

        * dom/PositionIterator.h: Added a comment describing this class from the original check-in.
        * dom/PositionIterator.cpp:
        (WebCore::PositionIterator::increment): Updated for the above moves.
        (WebCore::PositionIterator::decrement): Ditto.

        * dom/ProcessingInstruction.h:
        * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::maxCharacterOffset):
        ProcessingInstruction was already returning true from offsetInCharacters(), but didn't override maxCharacterOffset().
        I think that implementing it has no actual effect, as PIs are not rendered, but it looks cleaner this way.

        * dom/Range.cpp:
        (WebCore::Range::selectNodeContents):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        (WebCore::ApplyStyleCommand::applyInlineStyle):
        (WebCore::maxRangeOffset):
        (WebCore::ApplyStyleCommand::removeInlineStyle):
        (WebCore::ApplyStyleCommand::splitTextAtStartIfNeeded):
        (WebCore::ApplyStyleCommand::splitTextAtEndIfNeeded):
        (WebCore::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
        (WebCore::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
        (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::insertNodeAt):
        (WebCore::CompositeEditCommand::positionOutsideTabSpan):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
        * editing/InsertLineBreakCommand.cpp:
        (WebCore::InsertLineBreakCommand::doApply):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):
        * editing/InsertTextCommand.cpp:
        (WebCore::InsertTextCommand::insertTab):
        * editing/visible_units.cpp:
        (WebCore::previousLinePosition):
        (WebCore::nextLinePosition):
        Updated for the above moves.

        * editing/Editor.cpp:
        (WebCore::Editor::advanceToNextMisspelling): Added a missing rangeCompliantEquivalent() call.

        * editing/TextIterator.cpp:
        (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Changed the condition to obviously
        match a maxCharacterOffset() call made after it; hopefully, this doesn't break any border cases.
        (WebCore::SimplifiedBackwardsTextIterator::advance): Updated for the above moves.

        * editing/htmlediting.h:
        * editing/htmlediting.cpp:
        (WebCore::canHaveChildrenForEditing): Removed a bogus comment: I don't thin BRs have a special ability to accept
        child nodes, other than via DOM manipulation, which is not specific to BRs.
        (WebCore::rangeCompliantEquivalent): Removed a check for BR, which is already covered by editingIgnoresContent().
        (WebCore::maxDeepOffset): Ditto.
        (WebCore::caretMinOffset): Moved from Node. Changed some runtime checks that seemingly cannot fail into assertions.
        (WebCore::caretMaxOffset): Ditto.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEventSingleClick): Pass 0 to VisiblePosition constructor instead of
        caretMinOffset. I didn't want to include htmlediting.h here, and I think that VisiblePosition constructor
        will take care of adjusting the offset.

        * page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): Folded Document::updateSelection() here.
        * page/mac/WebCoreFrameBridge.mm:
        (-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]): Added missing rangeCompliantEquivalent() calls.
        * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForRenderer): Changed to not round-trip via editing.
        Changed some runtime checks that seemingly cannot fail into assertions.

2007-11-11  Darin Adler  <darin@apple.com>

        Reviewed by Sam.

        - updated for JSRegExp function changes

        * platform/RegularExpression.cpp:
        (WebCore::RegularExpression::Private::compile):
        (WebCore::RegularExpression::match):

2007-11-10  Mark Rowe  <mrowe@apple.com>

        Qt Linux build fix.

        * platform/UnicodeRange.h:

2007-11-10  Mark Rowe  <mrowe@apple.com>

        Qt Windows build fix.

        * platform/UnicodeRange.h:

2007-11-10  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric.

        Fixes: http://bugs.webkit.org/show_bug.cgi?id=15937 (Add glyph-orientation-horizontal/vertical support)
        Fixes: http://bugs.webkit.org/show_bug.cgi?id=13971 (text-anchor support on vertical text seems slightly off)

        Add glyph-orientation-* support for text & textPath. (90/180/270 and 'auto')
        Also fix all vertical text handling - for text & textPath! (especially latin1 characters auto orientation in vertical writing modes)

        * WebCore.pro: Add platform/UnicodeRange.cpp to build
        * WebCore.xcodeproj/project.pbxproj: Dito.
        * rendering/SVGCharacterLayoutInfo.cpp: Respect orientationShiftX/Y & angle in characterTransform()
        (WebCore::SVGChar::characterTransform):
        * rendering/SVGCharacterLayoutInfo.h: New variables.
        (WebCore::SVGCharOnPath::SVGCharOnPath):
        (WebCore::SVGChar::SVGChar):
        * rendering/SVGRootInlineBox.cpp: Added glyph-orientation-* handling.
        (WebCore::glyphOrientationToAngle):
        (WebCore::glyphOrientationIsMultiplyOf180Degrees):
        (WebCore::calculateGlyphAdvanceAndShiftRespectingOrientation):
        (WebCore::cummulatedHeightOfInlineBoxCharacterRange):
        (WebCore::cummulatedWidthOrHeightOfTextChunk):
        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):

2007-11-10  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Sam Weinig.

        * page/inspector/StylesSidebarPane.js: Fix the wording of a comment
          and switch over to use getUniqueProperties in another place.

2007-11-10  John Sullivan  <sullivan@apple.com>

        Reviewed by Sam Weinig

        Rest of fix for 5394877

        * bindings/js/kjs_window.cpp:
        (KJS::Window::isSafeScript):
        Don't log unsafe JavaScript attempts in the other version of isSafeScript() if in
        private browsing mode either.

2007-11-10  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Oliver.

        Fix function name difference - header said 'unicodeRangeForCharacter', actually
        implemented function is 'findCharUnicodeRange'. They are not compiled yet.

        * platform/UnicodeRange.h:

2007-11-10  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix <rdar://problem/5450655> Control-clicking text in a link can surprisingly select only part of the link, should select entire link

        No test because context menu events cannot be tested in DumpRenderTree.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent): Added.
        If the click occurred in an active link, selects the entire link
        element. Otherwise selects the closest word.
        (WebCore::EventHandler::sendContextMenuEvent): Call
        selectClosestWordOrLinkFromMouseEvent().
        * page/EventHandler.h:

2007-11-10  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Hatcher

        - fixed <rdar://problem/5394877> Safari should not log unsafe JavaScript attempts when 
          in private browsing mode (only an issue if Log JavaScript Exceptions is turned on)

        * bindings/js/kjs_window.cpp:
        (KJS::Window::isSafeScript):
        Don't log unsafe JavaScript attempts to console or chromeClient if in private browsing mode

2007-11-10  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15922
        Implement more of Mozilla Selection API

        Tests: editing/selection/containsNode.html
               editing/selection/deleteFromDocument.html
               editing/selection/extend.html
               editing/selection/selectAllChildren.html

        * editing/SelectionController.cpp:
        (WebCore::SelectionController::deleteFromDocument):
        (WebCore::SelectionController::containsNode):
        (WebCore::SelectionController::selectAllChildren):
        (WebCore::SelectionController::extend):
        * editing/SelectionController.h:
        Added deleteFromDocument(), containsNode(), and selectAllChildren(). Reimplemented extend(),
        which existed, but didn't match Firefox behavior and wasn't exposed via bindings.
        Removed a comment mentioning removeRange(), as this method makes no sense without multiple
        selection range support.

        * page/DOMSelection.cpp:
        (WebCore::DOMSelection::extend):
        (WebCore::DOMSelection::deleteFromDocument):
        (WebCore::DOMSelection::containsNode):
        (WebCore::DOMSelection::selectAllChildren):
        * page/DOMSelection.h:
        * page/DOMSelection.idl:
        Exposed the new methods.

2007-11-10  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15892
        DOM Range operations are not implemented for ProcessingInstruction nodes

        Test: fast/dom/Range/range-processing-instructions.html

        * dom/Range.cpp:
        (WebCore::Range::processContents): Implemented ProcessingInstruction cases.
        (WebCore::Range::checkNodeWOffset): Removed a FIXME - yes, I think that we are supposed
        to use ProcessingInstruction.data.

2007-11-09  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Mark Rowe.

        Bug 12054: Ability to serialize an element subtree (into clipboard?) from the DOM inspector
        http://bugs.webkit.org/show_bug.cgi?id=12054

        - Add support code for routing copy events to the focused element.
        - Implement copying the currently selected DOM node. The node
          and it's subtree is copied to the clipboard. If the node has no
          outerHTML, the nodeValue is copied (text nodes, etc.)
        - Implement copy for the resource sidebar. The URL is copied for the
          currently selected resource.

        * page/inspector/DocumentPanel.js:
        * page/inspector/inspector.js:

2007-11-09  Antti Koivisto  <antti@apple.com>

        Reviewed by Adele.

        Fix occasional blank video with poster attribute.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::load):
        (WebCore::HTMLMediaElement::didRestoreFromCache):
        Just calling updateFromElement() does the right thing for both poster image and video.

2007-11-04  Sam Weinig  <sam@webkit.org>

        Reviewed by Adam Roben.

        <rdar://problem/5435940>
        The COM bindings for the DOM should be autogenerated like the other DOM bindings

        Initial commit of the autogeneration of the COM DOM Bindings.  No behavior change
        is being introduced in this patch and to insure that no conflicts arise, a temporary
        prefix of "GEN_" has been used for all the new classes.

        The build architecture for these bindings differs slightly from the other autogenerated
        bindings.  Instead of building in WebCore and migrating the resuting code to WebKit (as
        is done for the Objective-C bindigs currently), the IDLs and generation scripts are
        migrated to WebKit and built there.  This is done with a series of scripts and Makefiles.

        This commit includes:
            - Hand rolled root class/Interface GEN_DOMObject used to facilated object creation
              and ref-counting.
            - Generating all of the Core DOM and most of HTML and CSS
            - Generating Event, EventTarget, and EventListener

        * WebCore.vcproj/MigrateIDLAndScripts.make: Added.
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/migrate-idls.sh: Added.
        * bindings/scripts/CodeGenerator.pm:
        * bindings/scripts/CodeGeneratorCOM.pm: Added.
        * dom/EventListener.h: Make the isWindowEvent parameter default to false
        to allow autogeneration based on the IDL.

2007-11-09  Tristan O'Tierney  <tristan@apple.com>

        Reviewed by Timothy Hatcher.
        
        This patch is for the WebKit side of <rdar://problem/5591115>.
        We need a way to tell context menu navigations, such as "Open in New Window"
        to override any sort of browser preference for tab based navigation.

        * bridge/WindowFeatures.h:
        (WebCore::WindowFeatures::WindowFeatures):
        Added a new struct member var, preferredType
        and an accompanying enum type PreferredType
        to send a window type recommendation up to the Chrome. 
        
        * page/ContextMenuController.cpp:
        (WebCore::openNewWindow):
        Set the window features to recommend a new Window for
        "Open in New Window" context menu action.

2007-11-08  Adam Roben  <aroben@apple.com>

        Fix <rdar://5483519> Pressing Enter on selected buttons should fire onclick

        We now match the behavior of Firefox and IE, which is to always just
        send a click event to the focused button when the Enter key is pressed
        (previously we were submitting forms directly in some cases).

        Reviewed by Adele.

        Test: fast/forms/enter-clicks-buttons.html

        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::defaultEventHandler): Don't do anything
        fancy when Enter is pressed on a <button type=button> -- just send a
        click event like we do for other button types.
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::defaultEventHandler): Treat type=button
        the same way we treat type=submit and type=reset: just send a click
        event when Enter is pressed.

2007-11-09  Dan Bernstein  <mitz@apple.com>

        Reviewed by Antti Koivisto.

        - fix a bug in invisible layer culling: dynamically changing a 
          descendant of an invisible layer to be visible did not work

        Test: fast/layers/layer-content-visibility-change.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::setHasVisibleContent): If we got visible content,
        make sure that our stacking context rebuilds its z-order lists to
        include us.

2007-11-09  David Hyatt  <hyatt@apple.com>

        Clean up matrix() parsing.  Make sure the first four arguments can be lengths or numbers.  The last two
        args can be lengths or numbers or percents.

        Reviewed by Beth

        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSParser.cpp:
        (WebCore::TransformOperationInfo::TransformOperationInfo):
        (WebCore::CSSParser::parseTransform):
        * rendering/RenderStyle.h:
        (WebCore::MatrixTransformOperation::apply):

2007-11-09  Beth Dakin  <bdakin@apple.com>

        Reviewed by Oliver.

        Fix for <rdar://problem/5586370> CSS Transform - incorrect matrix 
        math leads to crazy problems

        Transform matrices accept the first four parameters as CSS lengths. 
        CSS lengths get mapped into WebCore::Lengths as percents by 
        WebCore::convertToLength(). Percent lengths cannot call value(). It 
        does not yield a correct result and it asserts on Debug builds. 

        * rendering/RenderStyle.h:
        (WebCore::MatrixTransformOperation::apply): Instead of calling 
        value() on the lengths, call calcValue. This fixes the assert and 
        the bad rendering. 

2007-11-09  Simon Hausmann  <hausmann@kde.org>

        build/link fix for Qt/Windows.

        userIdleTime() is stubbed in win/SystemTimeWin.cpp, so don't
        define it twice.

        * platform/qt/TemporaryLinkStubs.cpp:

2007-11-09  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Holger.

        Fix ContextMenu allocation in the Qt port.

        Store all items and submenus value based in ContextMenu and ContextMenuItem.
        That fixes the crashes when the context menu was populated with sub-menus because
        of the use of temporary ContextMenu objects like this:

        ContextMenu subMenu(...);
        subMenu.appendItem(...);
        subMenu.appendItem(...);

        subMenuItem.setSubMenu(&subMenu); // temporary pointer, need to _copy_ contents

        * platform/ContextMenu.h:
        * platform/ContextMenuItem.h:
        * platform/PlatformMenuDescription.h:
        * platform/qt/ContextMenuItemQt.cpp:
        (WebCore::ContextMenuItem::ContextMenuItem):
        (WebCore::ContextMenuItem::platformSubMenu):
        * platform/qt/ContextMenuQt.cpp:
        (WebCore::ContextMenu::ContextMenu):
        (WebCore::ContextMenu::~ContextMenu):
        (WebCore::ContextMenu::appendItem):
        (WebCore::ContextMenu::itemCount):

2007-11-09  Peter Kasting  <zerodpx@gmail.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=15909
        Malformed GIFs should not result in memory corruption.

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

2007-11-08  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Sam Weinig.

        Some Web Inspector CSS editing changes.
        - Only delete the property if all the text is delete or the new user input correctly parses.
          This prevents deleting the existing property if the new text is invalid.
        - Intercept the Escape key and cancel editing, not saving any changes.

        * page/inspector/StylesSidebarPane.js:

2007-11-08  Kevin Ollivier  <kevino@theolliviers.com>

        Bakefiles for building WebCore, needed by wx port.

        Reviewed by Mark Rowe.

        * WebCoreSources.bkl: Added.
        * webcore-base.bkl: Added.
        * webcore-wx.bkl: Added.

2007-11-08  Justin Haygood  <jhaygood@reaktix.com>

        Reviewed by Mark Rowe.

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

        Fix builds with HTML 5 Storage support disabled.
        ENABLE(DATABASE) needs to be added in a few places.

        * page/InspectorController.cpp:
        * storage/Database.h:

2007-11-08  Steve Falkenburg  <sfalken@apple.com>

        <rdar://problem/5524082> Allow images to be dragged out directly into other apps
        
        We weren't including CF_HDROP in our image drops.  This broke drag of
        images out of the browser window directly into other apps (examples
        include notepad, mspaint, msword).
        
        Reviewed by Oliver, Ada.

        * platform/win/ClipboardWin.cpp:
        (WebCore::createGlobalImageFileContent): Removed unused variable.
        (WebCore::createGlobalHDropContent): Added
        (WebCore::writeFileToDataObject): Write HDROP data if available.
        (WebCore::writeImageToDataObject): Write HDROP for dragged images.
        (WebCore::ClipboardWin::writeURL): Don't write HDROP for dragged URLs.

2007-11-08  Xan Lopez  <xan@gnome.org>

        Reviewed by Alp.

        http://bugs.webkit.org/show_bug.cgi?id=15908
        Use g_object_ref_sink when available

        * platform/gtk/PopupMenuGtk.cpp:
        (WebCore::PopupMenu::show):
        * platform/gtk/ScrollViewGtk.cpp:
        (WebCore::ScrollView::setGtkAdjustments):

2007-11-08  Dan Bernstein  <mitz@apple.com>

        Reviewed by Beth Dakin.

        - fix <rdar://problem/5491922> REGRESSION (Safari 2-3): Flash-based "Cash Optimizer" on etrade.com does not draw completely

        Test: fast/dom/length-attribute-mapping.html

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::addCSSLength): Changed the garbage-stripping
        logic to stop after the first "%" or "*" in the string. This allows for
        "100%25" to be mapped to "100%" like it is in Firefox and WinIE.

2007-11-08  Kevin McCullough  <kmccullough@apple.com>

        - Build fix.

        * loader/FrameLoaderClient.h:
        * platform/graphics/svg/SVGImageEmptyClients.h:
        (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):

2007-11-08  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Sam.

        - windowObjectCleared() is no longer const.  It needs to setup the
        script debugger and cannot be const to do so.

        * loader/FrameLoaderClient.h:
        * platform/graphics/svg/SVGImageEmptyClients.h:
        (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):

2007-11-08  Adam Roben  <aroben@apple.com>

        Hopeful Windows build fix

        * rendering/RenderObject.cpp: Touch this file to make it recompile.

2007-11-08  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin.

        Convert JavaScript internal function objects to use one class per
        function.  This avoids a switch statement inside what used to be
        the shared function classes and will allow Shark to better analyze
        the code.

        To make this switch, the value property of the HashEntry was changed
        to a union of an intptr_t (which is used to continue handle valueGetters)
        and function pointer which points to a static constructor for the
        individual new function objects.

        SunSpider claims this is a 1.0% speedup.

        - On the WebCore side, I updated CodeGeneratorJS.pm to generate the
          new classes and hand updated the remain non-generated (groan) classes.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::customGetOwnPropertySlot):
        * bindings/js/JSEventTargetNode.cpp:
        (WebCore::JSEventTargetNodePrototypeFunctionAddEventListener::callAsFunction):
        (WebCore::JSEventTargetNodePrototypeFunctionRemoveEventListener::callAsFunction):
        (WebCore::JSEventTargetNodePrototypeFunctionDispatchEvent::callAsFunction):
        * bindings/js/JSEventTargetNode.h:
        * bindings/js/JSHTMLInputElementBase.cpp:
        (WebCore::JSHTMLInputElementBaseFunctionSetSelectionRange::callAsFunction):
        (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
        * bindings/js/JSHTMLInputElementBase.h:
        (WebCore::JSHTMLInputElementBase::):
        * bindings/js/JSXMLHttpRequest.cpp:
        (KJS::JSXMLHttpRequestPrototypeFunctionAbort::callAsFunction):
        (KJS::JSXMLHttpRequestPrototypeFunctionGetAllResponseHeaders::callAsFunction):
        (KJS::JSXMLHttpRequestPrototypeFunctionGetResponseHeader::callAsFunction):
        (KJS::JSXMLHttpRequestPrototypeFunctionOpen::callAsFunction):
        (KJS::JSXMLHttpRequestPrototypeFunctionSend::callAsFunction):
        (KJS::JSXMLHttpRequestPrototypeFunctionSetRequestHeader::callAsFunction):
        (KJS::JSXMLHttpRequestPrototypeFunctionOverrideMIMEType::callAsFunction):
        (KJS::JSXMLHttpRequestPrototypeFunctionAddEventListener::callAsFunction):
        (KJS::JSXMLHttpRequestPrototypeFunctionRemoveEventListener::callAsFunction):
        (KJS::JSXMLHttpRequestPrototypeFunctionDispatchEvent::callAsFunction):
        * bindings/js/JSXMLHttpRequest.h:
        (KJS::JSXMLHttpRequest::impl):
        * bindings/js/JSXSLTProcessor.cpp:
        (KJS::JSXSLTProcessorPrototypeFunctionImportStylesheet::callAsFunction):
        (KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
        (KJS::JSXSLTProcessorPrototypeFunctionTransformToDocument::callAsFunction):
        (KJS::JSXSLTProcessorPrototypeFunctionSetParameter::callAsFunction):
        (KJS::JSXSLTProcessorPrototypeFunctionGetParameter::callAsFunction):
        (KJS::JSXSLTProcessorPrototypeFunctionRemoveParameter::callAsFunction):
        (KJS::JSXSLTProcessorPrototypeFunctionClearParameters::callAsFunction):
        (KJS::JSXSLTProcessorPrototypeFunctionReset::callAsFunction):
        * bindings/js/JSXSLTProcessor.h:
        * bindings/js/kjs_events.cpp:
        (WebCore::JSClipboardPrototypeFunctionClearData::callAsFunction):
        (WebCore::JSClipboardPrototypeFunctionGetData::callAsFunction):
        (WebCore::JSClipboardPrototypeFunctionSetData::callAsFunction):
        (WebCore::JSClipboardPrototypeFunctionSetDragImage::callAsFunction):
        * bindings/js/kjs_events.h:
        * bindings/js/kjs_navigator.cpp:
        (KJS::Plugins::):
        (KJS::Navigator::getOwnPropertySlot):
        (KJS::Plugins::getOwnPropertySlot):
        (KJS::PluginsFunctionRefresh::callAsFunction):
        (KJS::NavigatorProtoFuncJavaEnabled::callAsFunction):
        * bindings/js/kjs_navigator.h:
        (KJS::Navigator::):
        * bindings/js/kjs_window.cpp:
        (KJS::Window::getOwnPropertySlot):
        (KJS::Window::put):
        (KJS::WindowProtoFuncAToB::callAsFunction):
        (KJS::WindowProtoFuncBToA::callAsFunction):
        (KJS::WindowProtoFuncOpen::callAsFunction):
        (KJS::WindowProtoFuncScrollBy::callAsFunction):
        (KJS::WindowProtoFuncScrollTo::callAsFunction):
        (KJS::WindowProtoFuncMoveBy::callAsFunction):
        (KJS::WindowProtoFuncMoveTo::callAsFunction):
        (KJS::WindowProtoFuncResizeBy::callAsFunction):
        (KJS::WindowProtoFuncResizeTo::callAsFunction):
        (KJS::WindowProtoFuncSetTimeout::callAsFunction):
        (KJS::WindowProtoFuncClearTimeout::callAsFunction):
        (KJS::WindowProtoFuncSetInterval::callAsFunction):
        (KJS::WindowProtoFuncAddEventListener::callAsFunction):
        (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
        (KJS::WindowProtoFuncShowModalDialog::callAsFunction):
        (KJS::WindowProtoFuncNotImplemented::callAsFunction):
        (KJS::Location::getOwnPropertySlot):
        (KJS::Location::put):
        (KJS::LocationProtoFuncReplace::callAsFunction):
        (KJS::LocationProtoFuncReload::callAsFunction):
        (KJS::LocationProtoFuncAssign::callAsFunction):
        (KJS::LocationProtoFuncToString::callAsFunction):
        * bindings/js/kjs_window.h:
        (KJS::Window::):
        * bindings/scripts/CodeGeneratorJS.pm:

2007-11-08  Mark Rowe  <mrowe@apple.com>

        Fix the Gtk, Qt and Wx builds.

        * platform/gtk/TemporaryLinkStubs.cpp:
        * platform/qt/TemporaryLinkStubs.cpp:
        * platform/wx/TemporaryLinkStubs.cpp:

2007-11-08  Mark Rowe  <mrowe@apple.com>

        Not reviewed.  Fix two instances of includes using the wrong case in the filename.

        * platform/graphics/mac/MoviePrivateQTKit.mm:
        * platform/wx/MimeTypeRegistryWx.cpp:

2007-11-08  Darin Adler  <darin@apple.com>

        Reviewed by Adam.

        - fix <rdar://problem/5552943> accesskey does not focus <button> elements

        Test: fast/forms/access-key.html

        * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::accessKeyAction):
        Added a call to focus.

2007-11-07  Darin Adler  <darin@apple.com>

        Reviewed by Steve.

        - cut down on notImplemented() functions on Windows

        * bridge/AXObjectCache.h: Put #if around the accessibility
        global.

        * bridge/win/FrameWin.cpp: (WebCore::Frame::setNeedsReapplyStyles):
        Moved here from TemporaryLinkStubs.

        * dom/Document.cpp: (WebCore::Document::lastModified): Re-implemented
        using the ResourceResponse that's now available from the DocumentLoader.

        * editing/JSEditor.cpp: (execTranspose): Changed to call transpose() on
        the Editor instead of the obsolete one on the Frame.

        * loader/DocumentLoader.h: Removed getResponseModifiedHeader.
        * loader/FrameLoader.h: Removed overrideMediaType.

        * loader/gtk/DocumentLoaderGtk.cpp: Removed.
        * loader/mac/DocumentLoaderMac.mm: Removed.
        * loader/qt/DocumentLoaderQt.cpp: Removed.

        * page/Frame.cpp: Removed transpose.
        * page/Frame.h: Ditto.
        * page/FrameView.h: Removed updateBorder.
        * page/gtk/FrameGtk.cpp: Removed issueTransposeCommand.
        * page/mac/FrameMac.mm: Ditto.
        * page/mac/WebCoreFrameBridge.h: Removed issueTransposeCommand and
        overrideMediaType.
        * page/qt/FrameQt.cpp: Removed issueTransposeCommand.

        * platform/gtk/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled.
        * platform/qt/TemporaryLinkStubs.cpp: Ditto.
        * platform/win/TemporaryLinkStubs.cpp: Removed or moved all but 3 of the stubs.
        * platform/wx/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled,
        issueTransposeCommand, and overrideMediaType.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::loadsBlocked): Moved here from TemporaryLinkStubs.
        (WebCore::ResourceHandle::willLoadFromCache): Ditto.
        * platform/win/GraphicsContextWin.cpp:
        (WebCore::GraphicsContextPlatformPrivate::clip): Ditto.
        * platform/win/ScrollViewWin.cpp: (WebCore::ScrollView::inWindow): Ditto.
        * platform/win/SystemTimeWin.cpp: (WebCore::userIdleTime): Ditto.
        * platform/win/WidgetWin.cpp: (WebCore::Widget::setIsSelected): Ditto.

        * WebCore.pro: Updated for removed files.
        * WebCore.xcodeproj/project.pbxproj: Updated for removed file.

2007-11-08  Mark Rowe  <mrowe@apple.com>

       Build fix for case-sensitive file systems.  Fix case of file names
       in #include's.

        * html/HTMLMediaElement.cpp:
        * platform/graphics/Movie.cpp:

2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Remove some warnings about not implemented methods.

        * ResourceHandle::loadsBlocked and ResourceHandle::supportsBufferedData are
        specific to the NS API and won't be implemented on Qt.
        * ResourceHandle::bufferedData can not be reached as we return false in
        ResourceHandle::supportsBufferedData.


        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::ResourceHandle::supportsBufferedData):

2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Cleanup checking for the request method.

        * Check the request method only in QWebNetworkManager::add.
        * Currently HEAD, GET, POST are allowed and for everything else
        QWebNetworkManager::add returns false.
        * Returning false is compatible with ResourceHandle::start and it
        can be used in ResourceHandle::loadResourceSynchronously to generate
        a ResourceError


        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::loadResourceSynchronously):

2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Implement WebCore::callOnMainThread

        Implemented using a global QObject, that is moved to the main thread
        and then sending a custom event to it.
        Picked a number below QEvent::User but above any other documented value.


        * platform/qt/ThreadingQt.cpp:
        (WebCore::PerformFunctionEvent::PerformFunctionEvent):
        (WebCore::MainThreadInvoker::MainThreadInvoker):
        (WebCore::MainThreadInvoker::event):
        (WebCore::callOnMainThread):

2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Avoid problems with calling QPainter::begin() on an already active paintdevice

        * Partial pick from 6200e04c3e0a77873c3b3f3969b65bc701020326 to avoid getting
        crashes on Qt/Mac 4.4 with QPainter::begin to fail because we already draw.
        * If we are in a layout or need one do not paint. This can happen for the PlatformScrollBar
        used by the ScrollView on a layout triggered by QWebPage::paintEvent.


        * platform/qt/WidgetQt.cpp:
        (WebCore::Widget::invalidateRect):

2007-11-08  Eric Seidel  <eric@webkit.org>

        No review.

        * ksvg2/svg/SVGPathElement.h: remove old comment

2007-11-07  Antti Koivisto  <antti@apple.com>

        Reviewed by Ollie.

        Ensure video renderer has correct size if video has already been loaded
        when it is constructed.

        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::RenderVideo):

2007-11-07  Antti Koivisto  <antti@apple.com>

        Reviewed by Ollie.

        Ensure video is visible when it should be.

        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::updateMovie):

2007-11-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix <rdar://problem/5523503> Safari crashes clicking scroll bar in FaceBook 'Trips'

        Layers and listboxes are two kinds of ScrollBarClient that can be
        removed while the scrollbar is tracking the mouse. The scrollbar is not
        destroyed until later, and meanwhile it can try to call the client,
        which results in a crash.

        * manual-tests/stale-scrollbar-client-crash.html: Added.
        * platform/ScrollBar.h:
        (WebCore::Scrollbar::setClient): Added.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::destroyScrollbar): Call Scrollbar::setClient().
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::~RenderListBox): Ditto.

2007-11-07  Adam Roben  <aroben@apple.com>

        Fix <rdar://5569268> Crash when opening any FTP site in second tab/window

        Reviewed by Sam.

        No test possible.

        * platform/win/SharedBufferWin.cpp:
        (WebCore::SharedBuffer::createWithContentsOfFile): Bail if we get an
        empty path, because _wfopen_s will crash if we pass it a null pointer.

2007-11-07  David Kilzer  <ddkilzer@apple.com>

        WebKit confuses width/height for Media Queries device-aspect-ratio evaluation
        <http://bugs.webkit.org/show_bug.cgi?id=14893>
        <rdar://problem/5380295>

        Reviewed by Darin.

        Tests: fast/css/device-aspect-ratio.html
               fast/css/max-device-aspect-ratio.html
               fast/css/min-device-aspect-ratio.html

        * css/MediaQueryEvaluator.cpp:
        (WebCore::parseAspectRatio): Renamed method parameters from a/b to h/v.
        (WebCore::device_aspect_ratioMediaFeatureEval): Renamed local variables from
        a/b to h/v.  Switched first two arguments of the call to cmpvalue() to fix
        the bug.

2007-11-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15887
          REGRESSION (r27576): Crash in RenderStyle::affectedByHoverRules clicking link on Digg

        Test: fast/css/display-none-inline-style-change-crash.html

        * dom/Element.cpp:
        (WebCore::Element::recalcStyle): Fixed the crash by null-checking
        the current style and removed other checks that are not strictly
        necessary.

2007-11-07  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Sam

        Remove FrameLoaderClient methods from SVG that were pruned awhile ago

        * platform/graphics/svg/SVGImageEmptyClients.h:

2007-11-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix a bug where CSS rules with :hover in the ancestor chain stopped
          working after changing the inline style declaration of the ancestor

        Test: fast/css/affected-by-hover-after-style-change.html

        * dom/Element.cpp:
        (WebCore::Element::recalcStyle): If we are not forcing style
        recalculation for all descendants, preserve any "affected by
        {hover|active|drag} bits that we may have acquired from them.
        Also renamed _style to currentStyle.

2007-11-06  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Bug 11920: Web Inspector should have Firebug-like CSS editing
        http://bugs.webkit.org/show_bug.cgi?id=11920

        * css/CSSComputedStyleDeclaration.h:
          (WebCore::CSSComputedStyleDeclaration::isPropertyImplicit): Return false. I'm not sure why
          this was true, but computed style has no concept of implicit. So false makes more sense
          and makes the code simpler in the inspector. This function was added for the inspector,
          so this isn't a compatibility change.
        * page/inspector/PropertiesSection.js: Add a getter/setter to reset populated status.
        * page/inspector/StylesSidebarPane.js: Some refactoring along with the main support for
          style editing.
        * page/inspector/inspector.css: Style changes for propery editing and focus correctness.
        * page/inspector/inspector.js: Look for a handleKeyEvent function of the focus element before
          trying to call a function based on the element's id. Call focused and blurred on the focused
          element when currentFocusElement is changed. Use the new listItemElement getter instead of
          the private property.
        * page/inspector/treeoutline.js: No longer expand on double click if ondblclick is implemented.
          Shrink the toggle zone to 10px to better match the size of the arrow. Add an onattach call
          to allow generation of the title using the DOM element. Add listItemElement and
          childrenListElement getters.
        * page/inspector/utilities.js: Add new helper prototype methods on CSSStyleDeclaration.
        * page/inspector/DocumentPanel.js: Use the new listItemElement getter instead of the private
          property. Also expand the DOM node on double click now that the TreeOutline dosen't do it.
        * page/inspector/Resource.js: Use the new listItemElement and childrenListElement getters
          instead of the private properties.

2007-11-07  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Alexey Proskuryakov.

        Coding style fix, don't use inline explicitly.

        * bridge/WindowFeatures.h:

2007-11-07  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Maciej.

        For safety provide a default constructor for WindowFeatures().
        ContextMenuController.cpp: createNewWindow as well as QWebPage need to
        create a default initialized WindowFeatures object on the fly.

        * bridge/WindowFeatures.h:
        (WebCore::WindowFeatures::WindowFeatures):

2007-11-07  Simon Hausmann  <shausman@trolltech.com>

        Reviewed by Lars.

        Fix "nmake clean" for the Qt/Windows build by replacing tmp/ with a variable that ends with the correct type of slash/backslash depending on the choice of compiler/make tool.

        * WebCore.pro:

2007-11-07  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Made the QWebSettings::webGraphic functions static. The implementation was using QWebSettings::global() anyway.

        * platform/graphics/qt/ImageQt.cpp:
        (loadResourcePixmap):

2007-11-07  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Moved the WebCore::Image specific function loadResourcePixmap from qwebsettings.cpp to ImageQt.cpp and made it static.

        * platform/graphics/qt/ImageQt.cpp:
        (loadResourcePixmap):

2007-11-07  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Restructure the context menu classes for the Qt port. ContextMenu and ContextMenuItem don't store
        QActions/QMenus anymore but just store the action type, tag, title and optionally submenu as created
        in ContextMenu::populate().
        For the actual Qt context menu we traverse this structure after sendContextMenuEvent and create a QMenu
        out of it. That menu is currently not functional anymore though.

        * platform/ContextMenu.h:
        * platform/ContextMenuItem.h:
        (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
        * platform/PlatformMenuDescription.h:
        * platform/qt/ContextMenuItemQt.cpp:
        (WebCore::ContextMenuItem::ContextMenuItem):
        (WebCore::ContextMenuItem::type):
        (WebCore::ContextMenuItem::setType):
        (WebCore::ContextMenuItem::action):
        (WebCore::ContextMenuItem::setAction):
        (WebCore::ContextMenuItem::title):
        (WebCore::ContextMenuItem::setTitle):
        (WebCore::ContextMenuItem::platformSubMenu):
        (WebCore::ContextMenuItem::setSubMenu):
        (WebCore::ContextMenuItem::setChecked):
        (WebCore::ContextMenuItem::setEnabled):
        * platform/qt/ContextMenuQt.cpp:
        (WebCore::ContextMenu::ContextMenu):
        (WebCore::ContextMenu::~ContextMenu):
        (WebCore::ContextMenu::appendItem):
        (WebCore::ContextMenu::itemCount):
        (WebCore::ContextMenu::insertItem):
        (WebCore::ContextMenu::setPlatformDescription):
        (WebCore::ContextMenu::platformDescription):

2007-11-07  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Changed ContextMenu::setPlatformDescription for the Qt port to not show the qmenu right away
        but instead just behave as a normal setter that takes ownership of the platform menu description (the qmenu).
        Instead now QWebPage::contextMenuEvent() retrieves the QMenu after calling sendContextMenuEvent and calls exec()
        on it.

        * platform/qt/ContextMenuQt.cpp:

2007-11-07  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Changed to PlatformMouseEvent constructor to allow construction from a QContextMenuEvent.
        Call sendContextMenuEvent on the event handler from a QWidget::contextMenuEvent re-implementation instead of in mousePressEvent.

        * platform/PlatformMouseEvent.h:
        * platform/qt/PlatformMouseEventQt.cpp:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):

2007-11-07  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        don't put nbsp's into the plan text paste
        
        Fix both ClipboardQt and PasteboardQt to replace
        nbsp's with spaces before putting the text onto the
        native clipboard. This is consistent with Mac and Win
        and fixes at least editing/pasteboard/4076267-3.html

        * platform/qt/ClipboardQt.cpp:
        (WebCore::ClipboardQt::writeRange):
        * platform/qt/PasteboardQt.cpp:
        (WebCore::Pasteboard::writeSelection):

2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Implement Pasteboard::writeImage()
        
        * Pasteboard is now fully implemented. Copying of Images into the Clipboard
        is now supported.
        * As with URLs we only copy into the Clipboard (and not additionally to the
        Selection)

        * platform/qt/PasteboardQt.cpp:
        (WebCore::Pasteboard::writeImage):

2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Apple CodingStyle fixes

        * platform/qt/PasteboardQt.cpp:
        (WebCore::Pasteboard::documentFragment):

2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Implement Pasteboard::writeURL()
        * The URL currently gets written as text/plain and text/uri-list.
        The win and mac port have some more types which we currently do
        not support. When supporting them we can use the 'titleString'
        as well.
        * As with writeSelection we only copy into the Clipboard. We could
        consider copying into the Selection as well.

        * platform/qt/PasteboardQt.cpp:
        (WebCore::Pasteboard::writeURL):

2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Kill whitespace

        * platform/qt/PasteboardQt.cpp:
        (WebCore::Pasteboard::documentFragment):

2007-11-07  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        Use the correct function calls to convert a selection to
        HTML or plain text.

        * platform/qt/ClipboardQt.cpp:
        (WebCore::ClipboardQt::setData):
        (WebCore::ClipboardQt::writeRange):
        * platform/qt/PasteboardQt.cpp:
        (WebCore::Pasteboard::writeSelection):

2007-11-07  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        Some more clipboard fixes.
        
        We have to set things immediately on the QClipBoard if the
        Clipboard object is not for dragging.
        
        This is due to the fact that the Clipboard object might be
        rather long lived if accessed through javascript (it'll only
        get deleted by JS garbage collection). We have to transfer
        the data over to the QClipboard before that to make things work.
        
        Fixes editing/execCommand/copy-without-selection.html

        * platform/qt/ClipboardQt.cpp:
        (WebCore::ClipboardQt::ClipboardQt):
        (WebCore::ClipboardQt::~ClipboardQt):
        (WebCore::ClipboardQt::clearData):
        (WebCore::ClipboardQt::clearAllData):
        (WebCore::ClipboardQt::getData):
        (WebCore::ClipboardQt::setData):
        (WebCore::ClipboardQt::declareAndWriteDragImage):
        (WebCore::ClipboardQt::writeURL):
        (WebCore::ClipboardQt::writeRange):

2007-11-07  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Mark.

        Fix compilation on Windows with non-cygwin perl. open FILE, "|-" is
        not supported due to implicit forks, use IPC::Open2 instead.

        * bindings/scripts/IDLParser.pm:

2007-11-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Brady Eidson.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15877
          REGRESSION: r27486 caused a layout regression at my bank's website

        Test: fast/block/float/overhanging-after-height-decrease-offsets.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlock):

2007-11-06  Beth Dakin  <bdakin@apple.com>

        Reviewed by Sam.

        <rdar://problem/5575812> REGRESSION:When using absolute positioning 
        with overflow:auto div, WebKit seems to add an additional 15px

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::containingBlockWidthForPositioned): We need to 
        subtract off the vertical scrollbar width too.

2007-11-06  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Dan Bernstein.
        
        <rdar://problem/5583387> ASSERTION FAILED: !refChild->hasTagName(bodyTag) when pasting newline in plain text into rich text Mail
        <rdar://problem/5583362> REGRESSION (5523.10.3-TOT): Newlines stripped when pasting plain text in Mail

        * editing/markup.cpp:
        (WebCore::createFragmentFromText): Put paragraphs of text into clones of the block
        that encloses the input context, unless that block is the body, which shouldn't
        be cloned.  In that case, use regular divs, as we did before r27369.

2007-11-06  Christian Dywan  <christian@twotoasts.de>

        Reviewed by Darin.

        Fix http://bugs.webkit.org/show_bug.cgi?id=15828
        Bug 15828: WebKit GTK include and lib directory is installed in qt4-named directory

        * WebCore.pro: Use sane default install paths for the gtk port.

2007-11-06  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.
        
        <rdar://problem/5576619> 
        REGRESSION: Caret disappears after deleting the last character in inline hole (15714)

        * editing/TypingCommand.cpp:
        (WebCore::TypingCommand::deleteSelection): Like the other TypingCommands, including
        both of the other deletion commands, call typingAddedToOpenCommand(), which takes 
        the command's endingSelection and sets it as selection.

2007-11-06  Dan Bernstein  <mitz@apple.com>

        Reviewed by Antti Koivisto and Dave Hyatt.

        - fix <rdar://problem/5582961> Incorrect layout and floating object list corruption when CSS decreases a block's height

        Test: fast/block/float/overhanging-after-height-decrease.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlock): If after calculating the height
        it turns out that there are overhanging floats that were not overhanging
        before, rescan children with overhanging floats and add them. 
        (WebCore::RenderBlock::layoutBlockChildren): Added a parameter that
        returns the lowest float bottom of any of the children.
        (WebCore::RenderBlock::addOverhangingFloats): Changed to return the
        lowest float bottom.
        * rendering/RenderBlock.h:

2007-11-06  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        Switched all uses of HTMLImageLoader to use OwnPtrs.

        * html/HTMLInputElement.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::init):
        (WebCore::HTMLInputElement::~HTMLInputElement):
        (WebCore::HTMLInputElement::setInputType):
        (WebCore::HTMLInputElement::parseMappedAttribute):
        (WebCore::HTMLInputElement::attach):
        * html/HTMLObjectElement.h:
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::HTMLObjectElement):
        (WebCore::HTMLObjectElement::~HTMLObjectElement):
        (WebCore::HTMLObjectElement::parseMappedAttribute):
        (WebCore::HTMLObjectElement::attach):
        * html/HTMLVideoElement.h:
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::HTMLVideoElement):
        (WebCore::HTMLVideoElement::attach):
        (WebCore::HTMLVideoElement::detach):
        (WebCore::HTMLVideoElement::parseMappedAttribute):

2007-11-06  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin.
        
        Trigger media load on on src attribute changes as specified in new HTML5 draft.

        Tests: media/video-src-change.html
               media/video-src-remove.html
               media/video-src-set.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::attributeChanged):
        * html/HTMLMediaElement.h:

2007-11-06  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15838
          Incomplete repaint toggling "How you know this person" on Facebook

        Test: fast/repaint/make-children-non-inline.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::makeChildrenNonInline): Repaint the block. This
        is needed because the inline children may be repositioned as they move
        into new anonymous blocks, but those blocks have no knowledge of where
        their children used to be, so they cannot invalidate those areas.

2007-11-06  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15847
        Some editing cleanup

        No change in functionality.

        * editing/TextIterator.cpp:
        (WebCore::plainText):
        * editing/TextIterator.h:
        Made WebCore::plainText() return String instead of DeprecatedString.

        * bridge/mac/WebCoreAXObject.mm:
        (-[WebCoreAXObject textUnderElement]):
        (-[WebCoreAXObject value]):
        (-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
        (-[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]):
        (-[WebCoreAXObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
        Updated for the above change. There is no need to explicitly convert to NSString now.

        * editing/EditCommand.cpp:
        (WebCore::EditCommand::EditCommand): m_startingSelection and m_endingSelection are actually
        initialized in constructor body, so the work done in initializer list was wasted.

        (WebCore::EditCommand::apply): Moved some stars.
        (WebCore::EditCommand::unapply): Ditto.
        (WebCore::EditCommand::reapply): Ditto.
        (WebCore::EditCommand::setStartingSelection): The loop exit condition was evaluated twice,
        removed one of the checks.

        * editing/SelectionController.cpp:
        (WebCore::SelectionController::toString): plainText() result type now matches what we need here.

        * page/mac/WebCoreFrameBridge.h:
        * page/mac/WebCoreFrameBridge.mm:
        Removed unused -[WebCoreFrameBridge deleteKeyPressedWithSmartDelete:granularity:] and
        -[WebCoreFrameBridge forwardDeleteKeyPressedWithSmartDelete:granularity:].

2007-11-05  Mark Rowe  <mrowe@apple.com>

        Mac build fix.

        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::writeHelper):

2007-11-05  Adam Roben  <aroben@apple.com>

        Don't crash if SafariTheme can't be loaded

        PlatformScrollBarSafari and RenderThemeSafari were not checking
        whether SafariTheme was successfully loaded. All other uses of
        SafariTheme already check this.

        Reviewed by Steve.

        * platform/win/PlatformScrollBarSafari.cpp: Don't paint if SafariTheme
        couldn't be loaded.
        (WebCore::PlatformScrollbar::paintButton):
        (WebCore::PlatformScrollbar::paintTrack):
        (WebCore::PlatformScrollbar::paintThumb):
        * rendering/RenderThemeSafari.cpp:
        (WebCore::RenderThemeSafari::isControlStyled): Always return true if
        we couldn't load SafariTheme. This way we should never try to paint
        themed controls (and we assert as such in the paint functions).
        (WebCore::RenderThemeSafari::paintCheckbox):
        (WebCore::RenderThemeSafari::paintRadio):
        (WebCore::RenderThemeSafari::paintButton):
        (WebCore::RenderThemeSafari::paintTextField):
        (WebCore::RenderThemeSafari::paintCapsLockIndicator):
        (WebCore::RenderThemeSafari::paintTextArea):
        (WebCore::RenderThemeSafari::paintMenuList):
        (WebCore::RenderThemeSafari::paintSliderThumb):
        (WebCore::RenderThemeSafari::paintSearchField):
        (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
        (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
        (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):

2007-11-05  Kevin Ollivier  <kevino@theolliviers.com>

        Adding the rest of wx port's graphics impl. 

        Rubber-stamped by Maciej Stachowiak.

        * platform/graphics/wx/AffineTransformWx.cpp: Added.
        * platform/graphics/wx/GraphicsContextWx.cpp: Added.
        * platform/graphics/wx/ImageBufferWx.cpp: Added.
        * platform/graphics/wx/ImageSourceWx.cpp: Added.
        * platform/graphics/wx/ImageWx.cpp: Added.
        * platform/graphics/wx/PathWx.cpp: Added.

2007-11-05  Kevin Ollivier  <kevino@theolliviers.com>

        wx port bug fixes and new files to get platform/wx building on trunk.

        Rubber-stamped by Maciej Stachowiak.

        * platform/wx/CursorWx.cpp:
        * platform/wx/FileSystemWx.cpp: Added.
        * platform/wx/FontCacheWx.cpp:
        * platform/wx/FontPlatformDataWx.cpp:
        * platform/wx/FontWx.cpp:
        * platform/wx/KeyboardEventWx.cpp:
        * platform/wx/LocalizedStringsWx.cpp: Added.
        * platform/wx/LoggingWx.cpp: Added.
        * platform/wx/RenderThemeWx.cpp:
        * platform/wx/ScrollViewWx.cpp:
        * platform/wx/SharedTimerWx.cpp:
        * platform/wx/StringWx.cpp:
        * platform/wx/ThreadingWx.cpp: Added.
        * platform/wx/WidgetWx.cpp:

2007-11-05  Adele Peterson  <adele@apple.com>

        Reviewed by Maciej.

        Fix for <rdar://problem/5579999> Add poster attribute for video element

        * html/HTMLAttributeNames.in: Added poster attribute.

        * html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::updateFromElement):
          Calls imageSourceAttributeName instead of having special cases for the different kinds of elements. 
        * dom/Element.cpp: (WebCore::Element::imageSourceAttributeName): Added.
        * dom/Element.h:
        * html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::imageSourceAttributeName): Added.
        * html/HTMLObjectElement.h:

        * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::movieNetworkStateChanged):
          Calls updatePosterImage when the network state is empty and when the first frame has been loaded.
        * html/HTMLMediaElement.h: (WebCore::HTMLMediaElement::rendererIsNeeded): Made this inline.  HTMLVideoElement now also implements this.

        * html/HTMLVideoElement.idl: Added case for poster attribute.
        * html/HTMLVideoElement.h: Added image loader and flag to keep track of whether or not the poster image should be shown.
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::HTMLVideoElement): Initialize m_imageLoader and m_shouldShowPosterImage.
        (WebCore::HTMLVideoElement::rendererIsNeeded): Calls HTMLElement::rendererIsNeeded since HTMLMediaElements have renderer by default.
        (WebCore::HTMLVideoElement::createRenderer): Create a RenderImage or RenderVideo depending on whether or not the poster image should be shown.
        (WebCore::HTMLVideoElement::attach): Set up image loader and RenderImage if necessary.
        (WebCore::HTMLVideoElement::detach): Delete image loader if its no longer needed.
        (WebCore::HTMLVideoElement::parseMappedAttribute): Added case to process poster attribute.
        (WebCore::HTMLVideoElement::poster): Added getter for poster attribute.
        (WebCore::HTMLVideoElement::setPoster): Added setter for poster attribute.
        (WebCore::HTMLVideoElement::isURLAttribute): Added.
        (WebCore::HTMLVideoElement::imageSourceAttributeName): Added.
        (WebCore::HTMLVideoElement::updatePosterImage): Added.  Updates m_shouldShowPosterImage and if its changed, detaches and attaches so the renderer is correct.

2007-11-05  Adam Roben  <aroben@apple.com>

        Fix <rdar://5563572> SVG image support is turned off

        Turned on SVG images for all platforms.

        Reviewed by Eric.

        * WebCore.vcproj/WebCore.vcproj: Added SVGImage.{cpp,h}
        * loader/CachedImage.cpp:
        (WebCore::CachedImage::createImage): Removed platform checks for
        SVGImage.

2007-11-05  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin.

        QTMovieView can generate callbacks during paint. This can lead to crashes.
        
        Delay callbacks so they get handled after painting is completed. No test case,
        I don't know how to reliably reproduce this.

        * platform/graphics/mac/MoviePrivateQTKit.mm:
        (WebCore::MoviePrivate::MoviePrivate):
        (WebCore::MoviePrivate::~MoviePrivate):
        (WebCore::MoviePrivate::paint):
        (-[WebCoreMovieObserver initWithCallback:WebCore::]):
        (-[WebCoreMovieObserver disconnect]):
        (-[WebCoreMovieObserver loadStateChanged:]):
        (-[WebCoreMovieObserver rateChanged:]):
        (-[WebCoreMovieObserver sizeChanged:]):
        (-[WebCoreMovieObserver timeChanged:]):
        (-[WebCoreMovieObserver volumeChanged:]):
        (-[WebCoreMovieObserver didEnd:]):
        (-[WebCoreMovieObserver setDelayCallbacks:]):

2007-11-05  Antti Koivisto  <antti@apple.com>

        Reviewed by Adam.

        Add some missing WebCore* prefixes to ObjC classes

        * platform/mac/FileChooserMac.mm:
        (WebCore::FileChooser::FileChooser):
        * platform/mac/SharedBufferMac.mm:
        (WebCore::SharedBuffer::createNSData):
        (WebCore::SharedBuffer::createCFData):
        * platform/mac/SharedTimerMac.cpp:
        (WebCore::setSharedTimerFireTime):

2007-11-05  Ada Chan  <adachan@apple.com>

        <rdar://problem/5579772> Regression: AltGr does not work
        We now store the system key event info in PlatforkKeyboardEvent().

        Reviewed by Oliver.

        * platform/PlatformKeyboardEvent.h:
        (WebCore::PlatformKeyboardEvent::isSystemKey):
        * platform/win/KeyEventWin.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):

2007-11-02  Tristan O'Tierney  <tristan@apple.com>

        Reviewed by Darin Adler.

        * WebCore.xcodeproj/project.pbxproj:
        Set WindowFeatures.h as a Private header.
        
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::createWindow):
        Revised to use a single createWindow function instead of
        two createWindow functions and one createModalDialog function.
        The logic for this is now addressed in WebKit in an effort
        to make this easier to follow.
        
        * page/Chrome.cpp:
        (WebCore::Chrome::createWindow):
        * page/Chrome.h:
        * page/ChromeClient.h:
        * page/ContextMenuController.cpp:
        (WebCore::openNewWindow):
        * platform/graphics/svg/SVGImageEmptyClients.h:
        (WebCore::SVGEmptyChromeClient::createWindow):
        Revised to take new additional windowFeatures parameter.

2007-11-04  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Darin Adler.
        
        http://bugs.webkit.org/show_bug.cgi?id=15835

        Small adaptations to new KJS::List class.

        * bindings/js/kjs_window.cpp:
        (KJS::WindowFunc::callAsFunction):
        (KJS::ScheduledAction::ScheduledAction):

2007-11-05  Adam Roben  <aroben@apple.com>

        Allow passing a base class pointer to COMPtr::copyRefTo

        Reviewed by Sam.

        * platform/win/COMPtr.h:

2007-11-05  Dan Bernstein  <mitz@apple.com>

        Reviewed by Oliver Hunt.

        - fix ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) when a class attribute is all-whitespace

        Test: fast/dom/class-all-whitespace.html

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::parseMappedAttribute): Check if there is any
        non-whitespace character in the class attribute.

2007-11-05  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam

        Add transaction blocking to the DatabaseAuthorizer in preparation for the new version
        of the sql storage API

        * storage/DatabaseAuthorizer.cpp:
        (WebCore::DatabaseAuthorizer::allowTransaction):
        * storage/DatabaseAuthorizer.h:

2007-11-05  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alp Toker.

        Have getMIMETypeForExtension return a null string when no MIME type is known
        for the extension rather than returning "text/plain".  This prevents plugin data
        being dumped into object elements when plugins are disabled.

        * platform/gtk/MIMETypeRegistryGtk.cpp:
        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):

2007-11-04  Sam Weinig  <sam@webkit.org>

        Rubber-stamped by Adam Roben.

        Rename SecurityOrigin::allowsAccessFrom to SecurityOrigin::canAccess to 
        clear up ambiguity.

        * bindings/js/kjs_window.cpp:
        (KJS::Window::isSafeScript):
        * platform/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::canAccess):
        * platform/SecurityOrigin.h:

2007-11-04  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Bug 15834: There are many subtle bugs in the Styles pane of the Web Inspector
        http://bugs.webkit.org/show_bug.cgi?id=15834

        - Broke up DocumentPanel and added three SidebarPane sub-classes.
        - Fixed many Style pane bugs, including:
          * Poor handling of duplicate properties in the same rule. Some of this can't be
            fixed since we can't only get the "winning" value for duplicate properties.
            So we should only show one entry per unique property name.
          * Computed style does not show font shorthand sub-properties if 'font' was used.
          * Property priority was broken, the wrong properties were crossed out.
          * The 'border' shorthand shows null for the shorthand value.
          * Shorthands didn't show their priority (e.g. !important).
          * HSL and HTML hex colors didn't have preview swatch blocks.
          * Code refactoring, making it easier to reuse for console.log later.

        * page/inspector/DocumentPanel.js: Move sidebar pane code to three seperate
          classes in new files.
        * page/inspector/MetricsSidebarPane.js: Added.
        * page/inspector/Panel.js: Remove an InspectorController.log() call.
        * page/inspector/PropertiesSection.js: Add the section to the TreeOutline.
          So TreeElements can access properties on their section.
        * page/inspector/PropertiesSidebarPane.js: Added.
        * page/inspector/SidebarPane.js: Remove the explicit asignment of the
          onexpand and oncollapse to null. These were hiding prototypes.
        * page/inspector/StylesSidebarPane.js: Added.
        * page/inspector/inspector.html: Include the new script files.
        * page/inspector/treeoutline.js: If a null representedObject is passed
          in just use a empty object.

2007-11-04  David D. Kilzer  <ddkilzer@webkit.org>

        Fix build when spaces appear in the WebKit source path.

        Reviewed by Mark Rowe.

        * bindings/scripts/IDLParser.pm: Use safer open() method which lists
        arguments individually and prevents the need to work around spaces
        in the path.

2007-11-04  Alp Toker  <alp@atoker.com>

        Reviewed by Alexey Proskuryakov.

        Fix a crash when no clipboard text is available

        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::Pasteboard::plainText):

2007-11-03  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - WebCore part of http://bugs.webkit.org/show_bug.cgi?id=15821
          remove unused PCRE features for speed

        * page/Frame.cpp: (WebCore::Frame::matchLabelsAgainstElement):
        * page/mac/FrameMac.mm: (WebCore::Frame::matchLabelsAgainstElement):
        Remove use of "[[:digit:]]" syntax. This hasn't worked for some time.
        Use "\d" instead.

        * platform/RegularExpression.h: Remove the unused cap function. We can
        add it back later if we find we need it.
        * platform/RegularExpression.cpp:
        (WebCore::RegularExpression::Private::compile): Update for JavaScriptCore
        regular expression entry point changes.
        (WebCore::RegularExpression::Private::~Private): Ditto.
        (WebCore::RegularExpression::match): Remove the code to set PCRE_NOTBOL.
        This means that regular expressions with metacharactesr like ^ in them
        won't work any more with non-whole-string searches, but we don't use
        any regular expressions like that.

2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>

        Update the link stubs to match the current build,
        and fix coding style issues.

        Reviewed by Mark Rowe.

        * platform/wx/TemporaryLinkStubs.cpp:
        (loadResourceIntoArray):
        (findNextSentenceFromIndex):
        (findSentenceBoundary):
        (Frame::dashboardRegionsChanged):
        (WebCore::historyContains):
        (CachedPage::close):
        (Editor::showStylesPanel):
        (EventHandler::passSubframeEventToSubframe):
        (EventHandler::passWheelEventToWidget):
        (WebCore::currentTextBreakLocaleID):

2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>

        wx <-> WebKit conversions for IntPoint, IntRect and FloatRect

        Reviewed by Mark Rowe.

        * platform/graphics/wx/FloatRectWx.cpp: Added.
        * platform/graphics/wx/IntPointWx.cpp: Added.
        * platform/graphics/wx/IntRectWx.cpp: Added.

2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>

        wx <-> WebKit data type conversions for Pen and Color.

        Reviewed by Darin Adler.

        * platform/graphics/wx: Added.
        * platform/graphics/wx/ColorWx.cpp: Added.
        * platform/graphics/wx/PenWx.cpp: Added.

2007-11-03  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver.

        Remove dummy variable from ClassInfo reducing the size of the struct by 1 word.
        The variable had been kept around for binary compatibility, but since nothing
        else is there is no point in continuing to keep it around.

        * bindings/js/JSDOMExceptionConstructor.cpp:
        (WebCore::):
        * bindings/js/JSHTMLInputElementBase.cpp:
        (WebCore::):
        * bindings/js/JSNamedNodesCollection.cpp:
        (WebCore::):
        * bindings/js/JSXMLHttpRequest.cpp:
        (KJS::):
        * bindings/js/JSXSLTProcessor.cpp:
        (KJS::):
        * bindings/js/kjs_css.cpp:
        (WebCore::):
        * bindings/js/kjs_events.cpp:
        (WebCore::):
        * bindings/js/kjs_navigator.cpp:
        (KJS::):
        * bindings/js/kjs_window.cpp:
        (KJS::):
        * bindings/scripts/CodeGeneratorJS.pm:

2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>

        Build fixes to get wx impls. building on trunk.

        Reviewed by Mark Rowe.

        * platform/wx/DragDataWx.cpp:
        (WebCore::DragData::containsFiles):
        (WebCore::DragData::asFilenames):
        * platform/wx/DragImageWx.cpp:
        (WebCore::scaleDragImage):
        * platform/wx/MimeTypeRegistryWx.cpp:
        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
        * platform/wx/MouseEventWx.cpp:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/wx/MouseWheelEventWx.cpp:
        * platform/wx/PasteboardWx.cpp:
        (WebCore::Pasteboard::writeImage):
        * platform/wx/WidgetWx.cpp:
        (WebCore::Widget::setCursor):

2007-11-03  David D. Kilzer  <ddkilzer@webkit.org>

        Sort files(...); sections of Xcode project files.

        Rubber-stamped by Darin.

        * WebCore.xcodeproj/project.pbxproj:
        * manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj:

2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>

        Coding style fixes for platform/wx files.

        Reviewed by Mark Rowe.

        * platform/wx/ClipboardWx.cpp:
        * platform/wx/GlyphMapWx.cpp:
        * platform/wx/ScreenWx.cpp:

2007-11-03  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Implement platform scrollbar static width/height getters

        * platform/gtk/PlatformScrollBar.h:
        * platform/gtk/PlatformScrollBarGtk.cpp:
        (scrollbarSize):
        (PlatformScrollbar::horizontalScrollbarHeight):

2007-11-03  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Cast function pointers to gpointer.

        * platform/gtk/PlatformScrollBarGtk.cpp:
        (PlatformScrollbar::~PlatformScrollbar):

2007-11-03  Alp Toker  <alp@atoker.com>

        Reviewed by Adam Roben.

        RenderThemeGtk implementation based on Mozilla's GTK+ style code

        There is still work needed to complete this feature.

        * WebCore.pro:
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::theme):
        (WebCore::RenderThemeGtk::RenderThemeGtk):
        (WebCore::supportsFocus):
        (WebCore::RenderThemeGtk::supportsFocusRing):
        (WebCore::RenderThemeGtk::controlSupportsTints):
        (WebCore::RenderThemeGtk::baselinePosition):
        (WebCore::adjustMozStyle):
        (WebCore::setMozState):
        (WebCore::paintMozWidget):
        (WebCore::setButtonPadding):
        (WebCore::setToggleSize):
        (WebCore::RenderThemeGtk::setCheckboxSize):
        (WebCore::RenderThemeGtk::paintCheckbox):
        (WebCore::RenderThemeGtk::setRadioSize):
        (WebCore::RenderThemeGtk::paintRadio):
        (WebCore::RenderThemeGtk::adjustButtonStyle):
        (WebCore::RenderThemeGtk::paintButton):
        (WebCore::RenderThemeGtk::adjustMenuListStyle):
        (WebCore::RenderThemeGtk::paintMenuList):
        (WebCore::RenderThemeGtk::adjustTextFieldStyle):
        (WebCore::RenderThemeGtk::paintTextField):
        (WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle):
        (WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
        (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationStyle):
        (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
        (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
        (WebCore::RenderThemeGtk::adjustSearchFieldStyle):
        (WebCore::RenderThemeGtk::paintSearchField):
        (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
        (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
        (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor):
        (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor):
        (WebCore::RenderThemeGtk::caretBlinkFrequency):
        (WebCore::RenderThemeGtk::systemFont):
        (WebCore::gtkStyleSetCallback):
        (WebCore::RenderThemeGtk::gtkContainer):
        (WebCore::RenderThemeGtk::gtkEntry):
        (WebCore::RenderThemeGtk::gtkTreeView):
        * platform/gtk/RenderThemeGtk.h:
        * platform/gtk/gtk2drawing.c: Added.
        (moz_gtk_enable_style_props):
        (ensure_window_widget):
        (setup_widget_prototype):
        (ensure_button_widget):
        (ensure_checkbox_widget):
        (ensure_radiobutton_widget):
        (ensure_scrollbar_widget):
        (ensure_spin_widget):
        (ensure_scale_widget):
        (ensure_entry_widget):
        (ensure_option_menu_widget):
        (ensure_arrow_widget):
        (ensure_handlebox_widget):
        (ensure_toolbar_widget):
        (ensure_tooltip_widget):
        (ensure_tab_widget):
        (ensure_progress_widget):
        (ensure_frame_widget):
        (ensure_menu_bar_widget):
        (ensure_menu_bar_item_widget):
        (ensure_menu_popup_widget):
        (ensure_menu_item_widget):
        (ensure_check_menu_item_widget):
        (ConvertGtkState):
        (TSOffsetStyleGCArray):
        (TSOffsetStyleGCs):
        (moz_gtk_button_paint):
        (moz_gtk_init):
        (moz_gtk_checkbox_get_metrics):
        (moz_gtk_radio_get_metrics):
        (moz_gtk_checkbox_get_focus):
        (moz_gtk_radio_get_focus):
        (moz_gtk_button_get_focus):
        (moz_gtk_option_menu_get_metrics):
        (moz_gtk_toggle_paint):
        (calculate_arrow_dimensions):
        (moz_gtk_scrollbar_button_paint):
        (moz_gtk_scrollbar_trough_paint):
        (moz_gtk_scrollbar_thumb_paint):
        (moz_gtk_spin_paint):
        (moz_gtk_scale_paint):
        (moz_gtk_scale_thumb_paint):
        (moz_gtk_gripper_paint):
        (moz_gtk_entry_paint):
        (moz_gtk_option_menu_paint):
        (moz_gtk_dropdown_arrow_paint):
        (moz_gtk_container_paint):
        (moz_gtk_toggle_label_paint):
        (moz_gtk_toolbar_paint):
        (moz_gtk_tooltip_paint):
        (moz_gtk_frame_paint):
        (moz_gtk_progressbar_paint):
        (moz_gtk_progress_chunk_paint):
        (moz_gtk_tab_paint):
        (moz_gtk_tabpanels_paint):
        (moz_gtk_menu_bar_paint):
        (moz_gtk_menu_popup_paint):
        (moz_gtk_menu_item_paint):
        (moz_gtk_check_menu_item_paint):
        (moz_gtk_window_paint):
        (moz_gtk_get_widget_border):
        (moz_gtk_get_dropdown_arrow_size):
        (moz_gtk_get_scalethumb_metrics):
        (moz_gtk_get_scrollbar_metrics):
        (moz_gtk_widget_paint):
        (moz_gtk_get_scrollbar_widget):
        (moz_gtk_shutdown):
        * platform/gtk/gtkdrawing.h: Added.

2007-11-03  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Do not allow scrollbars to handle wheel events
        
        We bubble the wheel event up so the parent can handle it instead.

        * platform/gtk/PlatformScrollBarGtk.cpp:
        (gtkScrollEventCallback):
        (PlatformScrollbar::PlatformScrollbar):
        (PlatformScrollbar::~PlatformScrollbar):

2007-11-03  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Frame scrolling and invalidation fixes

        Make upward scroll events have a positive delta to match other ports.

        Fix the invalidation rect offset for frames so that scrolling works properly.

        Avoid allocating negative sizes to widgets to avoid GTK+ warnings.

        Allow tabbing to all widgets and links.

        Fix event returns, improving the focus situation and correcting scroll wheel
        behavior.

        * page/gtk/EventHandlerGtk.cpp:
        (WebCore::EventHandler::tabsToAllControls):
        (WebCore::EventHandler::passWheelEventToWidget):
        * platform/gtk/ScrollViewGtk.cpp:
        (WebCore::ScrollViewScrollbar::geometryChanged):
        (WebCore::ScrollView::updateContents):
        (WebCore::ScrollView::update):
        (WebCore::ScrollView::wheelEvent):
        (WebCore::ScrollView::updateScrollbars):
        * platform/gtk/WheelEventGtk.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):

2007-11-03  David D. Kilzer  <ddkilzer@webkit.org>

        LGPL'ed files contain incorrect FSF address
        <http://bugs.webkit.org/show_bug.cgi?id=14885>

        * bindings/js/JSSVGTransformListCustom.cpp:
        * ksvg2/svg/SVGException.idl:
        * ksvg2/svg/SVGTextPathElement.cpp:
        * ksvg2/svg/SVGTextPathElement.h:
        * ksvg2/svg/SVGViewSpec.cpp:
        * ksvg2/svg/SVGViewSpec.h:
        * platform/mac/FontCustomPlatformData.cpp:
        * platform/mac/FontCustomPlatformData.h:
        * platform/mac/FontPlatformDataMac.mm:
        * platform/win/FontCustomPlatformData.cpp:
        * platform/win/FontCustomPlatformData.h:
        * rendering/RenderSVGRoot.cpp:
        * rendering/RenderSVGRoot.h:
        * rendering/RenderSVGTextPath.cpp:
        * rendering/RenderSVGTextPath.h:
        * rendering/RenderSVGTransformableContainer.h:
        * rendering/RenderSVGViewportContainer.cpp:
        * rendering/RenderSVGViewportContainer.h:
        * rendering/SVGCharacterLayoutInfo.cpp:
        * rendering/SVGCharacterLayoutInfo.h:
        * rendering/SVGRenderSupport.cpp:
        * rendering/SVGRenderSupport.h:

2007-11-02  Antti Koivisto  <antti@apple.com>

        Reviewed by Adam.
        
        Add video width/height DOM and content attributes from latest HTML5 draft.

        Test: media/video-width-height.html

        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::parseMappedAttribute):
        (WebCore::HTMLVideoElement::width):
        (WebCore::HTMLVideoElement::setWidth):
        (WebCore::HTMLVideoElement::height):
        (WebCore::HTMLVideoElement::setHeight):
        * html/HTMLVideoElement.h:
        * html/HTMLVideoElement.idl:

2007-11-02  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        * DerivedSources.make: Remove a few explicit filenames from some rules by using
        make variables a little more.
        * WebCore.LP64.exp: Fix typo, grammar.

2007-11-02  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - use the new HashMap::take function where appropriate

        * bindings/js/kjs_binding.cpp:
        (KJS::addWrapper): Made an inline rather than a macro; inlines good, macros bad.
        (KJS::removeWrapper): Ditto.
        (KJS::removeWrappers): Ditto.
        (KJS::ScriptInterpreter::putDOMObject): Use the inline instead of the macro.
        (KJS::ScriptInterpreter::forgetDOMObject): Ditto. This involves using take instead
        of remove -- in theory ever so slightly less efficient, but I think it's fine.
        (KJS::ScriptInterpreter::forgetDOMNodeForDocument): Ditto.
        (KJS::ScriptInterpreter::putDOMNodeForDocument): Use the inline instead of the macro.
        (KJS::ScriptInterpreter::forgetAllDOMNodesForDocument): Use take instead of find/remove.
        (KJS::ScriptInterpreter::updateDOMNodeDocument): Use the inlines instead of the macros.

        * bindings/js/kjs_window.cpp: (KJS::Window::clearTimeout): Use take instead of find/remove.
        * bridge/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::remove): Ditto.
        * page/AnimationController.cpp: (WebCore::AnimationControllerPrivate::clear): Ditto.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::~RenderBlock): Ditto.
        (WebCore::RenderBlock::setDesiredColumnCountAndWidth): Ditto.
        * rendering/RootInlineBox.cpp: Ditto.(WebCore::RootInlineBox::detachEllipsisBox): Ditto.

2007-11-02  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin.

        Enable video composition.

        * WebCore.base.exp:
        * platform/graphics/mac/MoviePrivateQTKit.mm:
        (WebCore::MoviePrivate::createQTMovieView):
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

2007-11-02  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15806
          <rdar://problem/5561626> ASSERT(element->isRadioButton()) fires destroying form elements

        Test: fast/forms/remove-radio-button-assert.html

        * html/HTMLGenericFormElement.cpp: (WebCore::HTMLGenericFormElement::removeFromForm):
        Added protected function to be used by derived classes that need to do the same sort
        of removal from form that's automatically done by the base class in certain circumstances.
        * html/HTMLGenericFormElement.h: Added removeFromForm.

        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::~HTMLInputElement):
        Call removeFromForm here so the element is removed before we destroy the HTMLInputElement
        part of this object. By the time we get to the base class's destructor it's too late.
        The problem is specific to radio buttons so we don't have to worry about other classes
        derived from HTMLGenericFormElement.

2007-11-02  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - speculative fix for http://bugs.webkit.org/show_bug.cgi?id=15805
          <rdar://problem/5510779> crashes in isLoadingMultipartContent

        * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::isLoadingMultipartContent):
        Instead of asserting the frame loader is non-0, return false if it is 0.

2007-11-02  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - fix <rdar://problem/5530185> WebKit does not show <object> fallback content when both
          URL and MIME type is omitted

        Already covered by existing tests (that had incorrect results).

        * loader/FrameLoader.cpp: (WebCore::FrameLoader::requestObject): Return false to indicate
        failure when both URL and MIME type are empty. The old code would not attempt a load, but
        it would indicate success.

        * rendering/RenderPartObject.cpp: (WebCore::RenderPartObject::updateWidget): Remove
        non-helpful early exit for the case where there is no URL and no type. Returning early
        prevents the fallback code from running.

2007-11-02  Alp Toker  <alp@atoker.com>

        Reviewed by Darin.

        Include Cairo headers properly

        * platform/graphics/AffineTransform.h:
        * platform/graphics/ImageBuffer.h:
        * platform/graphics/cairo/AffineTransformCairo.cpp:
        * platform/gtk/FontPlatformDataGtk.cpp:

2007-11-01  Oliver Hunt  <oliver@apple.com>

        Reviewed by Alexey.

        Make sure we send the correct events for Capslock, Shift, Ctrl, Alt and the Windows key        

        * platform/win/KeyEventWin.cpp:
        (WebCore::keyIdentifierForWindowsKeyCode):
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):

2007-11-01  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Maciej Stachowiak.
        
        In preparation for making List a simple stack-allocated Vector:

        Removed all instances of List copying, assignment, and/or storage.
        
        Layout tests and JS tests pass.

        * bindings/js/kjs_window.cpp:
        (KJS::WindowFunc::callAsFunction): Stores a Vector of protected 
        JSValue*'s instead of a List now. Converts to List on the fly when 
        calling the timer function. This is slightly less efficient, but the 
        common case is 0-2 arguments, so it's no biggie.

        (HTML iBench shows no regression. PLT does not use JS timers.)
        
        (KJS::ScheduledAction::execute): Uses the more efficient and non-copying
        List::slice now.
        (KJS::ScheduledAction::ScheduledAction): ditto

        * bindings/objc/WebScriptObject.mm:
        (getListFromNSArray): Takes a List out parameter now, to avoid copying.

2007-11-01  Oliver Hunt  <oliver@apple.com>

        Reviewed by Geoff.

        Correct event behaviour on certain control keys

        Make sure we send the correct keyDown and keyUp events for the
        control keys CapsLock, Shift, Ctrl, Alt, and Meta/Command, and
        uses Windows key codes for the event keyCode.

        * WebCore.base.exp:
        * page/EventHandler.cpp:
        (WebCore::EventHandler::keyEvent):
        * platform/PlatformKeyboardEvent.h:
        * platform/gtk/KeyEventGtk.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/mac/KeyEventMac.mm:
        (WebCore::keyIdentifierForKeyEvent):
        (WebCore::WindowsKeyCodeForKeyEvent):
        (WebCore::isKeyUpEvent):
        (WebCore::textFromEvent):
        (WebCore::unmodifiedTextFromEvent):
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/win/KeyEventWin.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/wx/KeyEventWin.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):

2007-11-01  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Sam.

        * page/inspector/inspector.css: Use the white disclosure triangles
          when a parent DOM element is sepected.

2007-11-01  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Oliver Hunt.

        <rdar://problem/5195056> Huge plain text pastes are slow, time spent in ApplyStyleCommand::doApply

        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::doApply): No need to match style when pasting
        into a plaintext-only region, since when we build the fragment to insert from
        plain text, we don't put any style information on it, so it will automatically
        match style with no intervention.
        * editing/markup.cpp:
        (WebCore::createFragmentFromText): Place paragraphs into clones of the
        block being inserted into, instead of default paragraph elements,
        so that when inserted content will match the surrounding paragraph style.
        This was broken before, but I haven't added a layout test yet because
        there currently isn't a way to get only plain text onto the pasteboard
        in a layout test.

2007-11-01  Sam Weinig  <sam@webkit.org>

        Reviewed by Adam Roben. 

        Add a releaseRef method to COMPtr which matches the behavior
        of the method by the same name in PassRefPtr.  This is in
        preparation of adding autogenerated COM DOM bindings.

        * platform/win/COMPtr.h:
        (COMPtr::releaseRef):

2007-11-01  Kevin Ollivier  <kevino@theolliviers.com>

        wx impl. for DragController and EventHandler interfaces.

        Reviewed by Adam Roben.

        * page/wx: Added.
        * page/wx/DragControllerWx.cpp: Added.
        (WebCore::DragController::isCopyKeyDown):
        (WebCore::DragController::dragOperation):
        (WebCore::DragController::maxDragImageSize):
        * page/wx/EventHandlerWx.cpp: Added.
        (WebCore::EventHandler::passMousePressEventToSubframe):
        (WebCore::EventHandler::passMouseMoveEventToSubframe):
        (WebCore::EventHandler::passMouseReleaseEventToSubframe):
        (WebCore::EventHandler::passMousePressEventToScrollbar):
        (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
        (WebCore::EventHandler::focusDocumentView):
        (WebCore::EventHandler::eventActivatedView):
        (WebCore::EventHandler::createDraggingClipboard):

2007-11-01  Kevin Ollivier  <kevino@theolliviers.com>

        Adding files for wx impl. of editing interfaces.

        Reviewed by Adam Roben.

        * editing/wx: Added.
        * editing/wx/EditorWx.cpp: Added.
        (WebCore::Editor::newGeneralClipboard):

2007-11-01  Sam Weinig  <sam@webkit.org>

        Reviewed by Adam Roben.

        Make implicit conversions from LPCSTRs and BSTRs to WebCore string
        types possible in preparation of adding autogenerated COM DOM bindings.

        * platform/AtomicString.cpp: 
        (WebCore::AtomicString::add):
        * platform/AtomicString.h:
        (WebCore::AtomicString::AtomicString):
        * platform/PlatformString.h:
        * platform/win/BString.cpp:
        (WebCore::BString::BString):
        * platform/win/BString.h:

2007-11-01  Brady Eidson  <beidson@apple.com>

        Reviewed by Anders

        Renamed a flag inside of SQLiteTransaction and added an accessor (for future work)

        * platform/sql/SQLiteTransaction.cpp:
        (WebCore::SQLiteTransaction::SQLiteTransaction):
        (WebCore::SQLiteTransaction::~SQLiteTransaction):
        (WebCore::SQLiteTransaction::begin):
        (WebCore::SQLiteTransaction::commit):
        (WebCore::SQLiteTransaction::rollback):
        * platform/sql/SQLiteTransaction.h:
        (WebCore::SQLiteTransaction::inProgress):

2007-11-01  Adam Roben  <aroben@apple.com>

        Remove all duplicate xcopy commands from WebCore's post-build step

        Also add the /d option to the copy of platform/sql.

        Rubberstamped by Sam.

        * WebCore.vcproj/WebCore.vcproj:

2007-11-01  Adele Peterson  <adele@apple.com>

        Reviewed by Maciej.

        Add support for the animation of the -webkit-border-raduis properties.

        * page/AnimationController.cpp:
        (WebCore::blendFunc): Added for IntSize.
        (WebCore::ImplicitAnimation::animate): Added cases for border radius properties.

2007-11-01  Alp Toker  <alp@atoker.com>

        Reviewed by Mitz Pettel.

        Fix an unbalanced save/restore.

        * platform/graphics/cg/ImageCG.cpp:
        (WebCore::BitmapImage::draw):

2007-11-01  David Hyatt  <hyatt@apple.com>

        Add support for the animation of the visibility property.

        Reviewed by oliver, aroben

        * page/AnimationController.cpp:
        (WebCore::blendFunc):
        (WebCore::ImplicitAnimation::animate):

2007-11-01  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Adam.

        - Made COMPtr be able to be used by certain other templates,
        specifically HashSet.

        * platform/win/COMPtr.h:
        (WTF::):

2007-11-01  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15015
          <rdar://problem/5420308> Most of www.aol.com redraws unnecessarily when headline/photo section changes

        Test: fast/repaint/overflow-clip-subtree-layout.html

        This patch does not address the bigger issue of doing a full relayout
        of inline flows containing floats, but it addresses the problem on
        aol.com, where the changes that trigger layout are confined to an
        overflow area inside the float.

        * page/FrameView.cpp:
        (WebCore::FrameView::scheduleRelayoutOfSubtree): If the new and old
        layout roots are different but one descends from the other, make (or
        keep) the ancestor as the layout root.
        * rendering/RenderObject.cpp:
        (WebCore::objectIsRelayoutBoundary): Made boxes with overflow
        clipping and non-auto width and height relayout boundaries.

2007-11-01  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Mark Rowe.

        Fixed line endings that got confused in this file somehow.

        * platform/network/ResourceResponse.cpp:
        (WebCore::ResourceResponse::isAttachment):

2007-11-01  Peter Kasting  <zerodpx@gmail.com>

        Reviewed by Dave Hyatt.

        http://bugs.webkit.org/show_bug.cgi?id=15778
        Malformed GIFs should not result in memory corruption.

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

2007-10-31  Adam Roben  <aroben@apple.com>

        Fix a crash when parsing a cubic-bezier function

        Reviewed by Hyatt.

        Test: fast/css/parse-timing-function-crash.html

        * WebCore.vcproj/WebCore.vcproj:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseTimingFunctionValue): Don't walk off the end
        of the ValueList.

2007-10-31  David Hyatt  <hyatt@apple.com>

        Fix a merge error from when I applied my patch to ToT.  A couple of lines should be part of an if.

        * rendering/RenderStyle.cpp:
        (WebCore::RenderStyle::adjustTransitions):

2007-10-31  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam.

        Add new SQL callback interfaces and JS implementations of them.
        
        * DerivedSources.make:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSCustomSQLStatementCallback.cpp: Added.
        (WebCore::JSCustomSQLStatementCallback::JSCustomSQLStatementCallback):
        (WebCore::JSCustomSQLStatementCallback::handleEvent):
        * bindings/js/JSCustomSQLStatementCallback.h: Added.
        * bindings/js/JSCustomSQLStatementErrorCallback.cpp: Added.
        (WebCore::JSCustomSQLStatementErrorCallback::JSCustomSQLStatementErrorCallback):
        (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
        * bindings/js/JSCustomSQLStatementErrorCallback.h: Added.
        * bindings/js/JSCustomSQLTransactionCallback.cpp: Added.
        (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
        (WebCore::JSCustomSQLTransactionCallback::handleEvent):
        * bindings/js/JSCustomSQLTransactionCallback.h: Added.
        * bindings/js/JSCustomSQLTransactionErrorCallback.cpp: Added.
        (WebCore::JSCustomSQLTransactionErrorCallback::JSCustomSQLTransactionErrorCallback):
        (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
        * bindings/js/JSCustomSQLTransactionErrorCallback.h: Added.
        * storage/JSCustomSQLStatementCallback.h: Added.
        * storage/JSCustomSQLStatementErrorCallback.h: Added.
        * storage/JSCustomSQLTransactionCallback.h: Added.
        * storage/JSCustomSQLTransactionErrorCallback.h: Added.
        * storage/SQLStatementCallback.h: Added.
        (WebCore::SQLStatementCallback::~SQLStatementCallback):
        * storage/SQLStatementCallback.idl: Added.
        * storage/SQLStatementErrorCallback.h: Added.
        (WebCore::SQLStatementErrorCallback::~SQLStatementErrorCallback):
        * storage/SQLStatementErrorCallback.idl: Added.
        * storage/SQLTransaction.h: Added.
        * storage/SQLTransaction.idl: Added.
        * storage/SQLTransactionCallback.h: Added.
        (WebCore::SQLTransactionCallback::~SQLTransactionCallback):
        * storage/SQLTransactionCallback.idl: Added.
        * storage/SQLTransactionErrorCallback.h: Added.
        (WebCore::SQLTransactionErrorCallback::~SQLTransactionErrorCallback):
        * storage/SQLTransactionErrorCallback.idl: Added.

2007-10-31  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Dave Harrison.

        <rdar://problem/5569741> Pasting content with a line break into a list can remove the list

        * editing/htmlediting.cpp:
        (WebCore::enclosingEmptyListItem): A single list item can contain multiple 
        paragraphs, so if the incoming VisiblePosition is in an empty paragraph in a 
        list item, that list item isn't necessarily empty.

2007-10-31  David Hyatt  <hyatt@apple.com>

        Disable style sharing for animating styles.

        Reviewed by mitzpettel

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::canShareStyleWithElement):

2007-10-31  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix intermediate length calculation

        * rendering/Length.h:
        (WebCore::Length::blend):

2007-10-31  Anders Carlsson  <andersca@apple.com>

        Reviewed by Darin.

        Add new SQLError implementation.
        
        * DerivedSources.make:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * storage/SQLError.h: Added.
        (WebCore::SQLError::SQLError):
        (WebCore::SQLError::code):
        (WebCore::SQLError::message):
        * storage/SQLError.idl: Added.

2007-10-31  David Hyatt  <hyatt@apple.com>

        Change the initial value of transition-property to all.  Change the initial value of
        transition-duration to 0.

        Reviewed by antti

        * rendering/RenderStyle.h:
        (WebCore::RenderStyle::initialTransitionDuration):
        (WebCore::RenderStyle::initialTransitionProperty):

2007-10-31  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        The new Color must be marked valid.

        * platform/graphics/gtk/ColorGtk.cpp:

2007-10-31  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Maciej;

        Build fix for non-Qt builds.

        * dom/XMLTokenizer.cpp:
        (WebCore::XMLTokenizer::XMLTokenizer):

2007-10-31  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Fix dependency path to header files of the public API of the Qt port.

        * WebCore.pro:

2007-10-31  Holger Freyther  <zecke@selfish.org>

        Reviewed by Simon.

        * QXmlStreamNamespaceDeclaration doesn't have the constructor we
        want to use for Qt4.3. Reenable the old code path which is likely
        to be dead as I have not checked if m_prefixToNamespaceMap is actually
        used.
        * Guard the entity resolver with the QT_VERSION as well.
        * Partially reverts 369506279abdaa863e15efed649ca19e062f2c30 and
        d2b54d0fc1b07a2480f4f7a1417abd7a636b0107 for Qt4.3.

        * dom/XMLTokenizer.cpp:
        (WebCore::XMLTokenizer::XMLTokenizer):
        * dom/XMLTokenizer.h:

2007-10-31  Holger Freyther  <zecke@selfish.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        * QMimeData::removeData will be new in Qt4.4, don't use it for Qt4.3 
        * Provide a bad fallback implementation to filter the format list.

        * platform/qt/ClipboardQt.cpp:
        (WebCore::ClipboardQt::clearData):

2007-10-31  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        add an entitiy resolver to QXmlStream.
        Fixes fast/parser/entities-in-attributes.xhtml.

        * dom/XMLTokenizer.cpp:
        (WebCore::EntityResolver::resolveUndeclaredEntity):
        (WebCore::XMLTokenizer::XMLTokenizer):
        (WebCore::XMLTokenizer::~XMLTokenizer):

2007-10-31  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        Fixes in the XML tokenizer when using QXmlStream.
        
        Use new functionality of QXmlStream in Qt 4.4 to simplify
        the code (but keep the old code for now to still support Qt 4.3).
        
        Add proper support for namespace handling when parsing into
        a document fragment.

        * dom/XMLTokenizer.cpp:
        (WebCore::XMLTokenizer::XMLTokenizer):
        (WebCore::XMLTokenizer::write):
        (WebCore::XMLTokenizer::startElementNs):
        (WebCore::):
        * dom/XMLTokenizer.h:

2007-10-31  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        add support for dragging images.

        * platform/DragImage.h:
        * platform/qt/ClipboardQt.cpp:
        (WebCore::ClipboardQt::clearData):
        (WebCore::ClipboardQt::setDragImage):
        (WebCore::ClipboardQt::setDragImageElement):
        (WebCore::ClipboardQt::createDragImage):
        (WebCore::getCachedImage):
        (WebCore::ClipboardQt::declareAndWriteDragImage):
        * platform/qt/ClipboardQt.h:

2007-10-31  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        fix most of the issues I found with Clipboard and DnD.

        * editing/qt/EditorQt.cpp:
        * platform/qt/ClipboardQt.cpp:
        (WebCore::ClipboardQt::ClipboardQt):
        (WebCore::ClipboardQt::~ClipboardQt):
        (WebCore::ClipboardQt::clearData):
        (WebCore::ClipboardQt::clearAllData):
        (WebCore::ClipboardQt::getData):
        (WebCore::ClipboardQt::setData):
        (WebCore::ClipboardQt::types):
        (WebCore::ClipboardQt::setDragImage):
        (WebCore::ClipboardQt::setDragImageElement):
        (WebCore::ClipboardQt::declareAndWriteDragImage):
        (WebCore::ClipboardQt::writeURL):
        (WebCore::ClipboardQt::writeRange):
        (WebCore::ClipboardQt::hasData):
        * platform/qt/ClipboardQt.h:
        * platform/qt/DragDataQt.cpp:
        (WebCore::DragData::asURL):

2007-10-30  Mark Rowe  <mrowe@apple.com>

        Fix the Gtk and Qt builds by stubbing out PlatformKeyboardEvent::currentCapsLockState.

        * platform/gtk/KeyEventGtk.cpp:
        (WebCore::PlatformKeyboardEvent::currentCapsLockState):
        * platform/qt/PlatformKeyboardEventQt.cpp:
        (WebCore::PlatformKeyboardEvent::currentCapsLockState):

2007-10-31  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Anders.

        http://bugs.webkit.org/show_bug.cgi?id=15762
        XSLStylesheet loads subresources from a wrong URL

        Covered by corrected existing tests.

        * xml/XSLStyleSheet.cpp:
        (WebCore::XSLStyleSheet::parseString): Pass stylesheet URL, not
        the document one.

2007-10-31  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=10818
        String::append does 2 full copies instead of 1 (or zero!)

        No change in functionality, thus no test.

        * platform/String.cpp:
        (WebCore::String::append): Rewrote to copy once. Also removed an ancient
        FIXME that doesn't seem to make any sense. Note that append() behavior doesn't 
        match documented String behavior ("modifications to one instance will
        also modify all others"), but there are a lot of methods that don't.

2007-10-31  Adam Roben  <aroben@apple.com>

        Windows build fix

        * WebCore.vcproj/WebCore.vcproj: Add [JS]ProgressEvent.{cpp,h} files.

2007-10-30  Adam Roben  <aroben@apple.com>

        Windows build fixes

        I'm not completely sure why these const issues weren't caught by GCC,
        but MSVC was certainly not happy with them.

        * editing/IndentOutdentCommand.cpp:
        (WebCore::isIndentBlockquote):
        * editing/markup.cpp:
        (WebCore::styleFromMatchedRulesAndInlineDecl):

2007-10-30  David Hyatt  <hyatt@apple.com>

        transition-property was defaulting to all when it should default to none.  

        It was taking a string type.  I figured out how to make it take an ident instead, so you can write:

        transition-property: opacity

        instead of

        transition-property: "opacity"

        Transition layers also weren't properly repeating patterns the way they were supposed to.  I fixed that.

        Finally, I fixed a bug in the code to fix up transition layers where something was misplaced that should have been inside a null check.

        Reviewed by aroben

        * css/CSSHelper.h:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseTransitionProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::adjustRenderStyle):
        * page/AnimationController.cpp:
        (WebCore::ImplicitAnimation::animate):
        * rendering/RenderStyle.cpp:
        (WebCore::RenderStyle::adjustTransitions):
        * rendering/RenderStyle.h:
        (WebCore::RenderStyle::initialTransitionProperty):

2007-10-30  Antti Koivisto  <antti@apple.com>

        Reviewed by Geoff.

        Leak fix

        * platform/graphics/mac/MoviePrivateQTKit.mm:
        (WebCore::MoviePrivate::getSupportedTypes):

2007-10-30  Dan Bernstein  <mitz@apple.com>

        Reviewed by Stephanie Lewis.

        - fix <rdar://problem/5547237> REGRESSION (304-ToT): Repro font-related crash in fontdatawin.cpp Line 93 (many sites)

        * platform/win/FontDataWin.cpp:
        (WebCore::FontData::platformInit): Handle the case where the font has no
        glyphs on page zero.

2007-10-30  David Hyatt  <hyatt@apple.com>

        Make sure CSS transforms can be animated using the CSS transition property.

        Reviewed by Dan and Antti

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * page/AnimationController.cpp:
        (WebCore::blendFunc):
        (WebCore::ImplicitAnimation::animate):
        * rendering/Length.h:
        (WebCore::Length::blend):
        * rendering/RenderStyle.cpp:
        (WebCore::StyleTransformData::operator==):
        (WebCore::TransformOperations::operator==):
        (WebCore::blendLengths):
        (WebCore::ScaleTransformOperation::blend):
        (WebCore::RotateTransformOperation::blend):
        (WebCore::SkewTransformOperation::blend):
        (WebCore::TranslateTransformOperation::blend):
        (WebCore::MatrixTransformOperation::blend):
        * rendering/RenderStyle.h:
        (WebCore::TransformOperations::operator!=):
        (WebCore::TransformOperations::isEmpty):
        (WebCore::TransformOperations::size):
        (WebCore::TransformOperations::operator[]):
        (WebCore::TransformOperations::append):
        (WebCore::RenderStyle::transform):
        (WebCore::RenderStyle::setTransform):
        (WebCore::RenderStyle::initialTransform):

2007-10-30  Antti Koivisto  <antti@apple.com>

        Another Qt/GTK build fix.

        * bindings/js/JSHTMLElementWrapperFactory.cpp:

2007-10-30  Antti Koivisto  <antti@apple.com>

        Attempt to fix Qt/GTK build.

        * WebCore.pro:

2007-10-30  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5549929> CrashTracer: [USER] 35 crashes at WebCore::CharacterData::insertData
        
        We were trying to insert a tab into a br, after the br incorrectly ended up inside
        a tab span.
        
        * editing/DeleteButtonController.cpp: 
        (WebCore::isDeletableElement): Changed to take in a const Node* instead of a Node*.
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::isTableRow): Ditto.
        * editing/IndentOutdentCommand.cpp:
        (WebCore::isIndentBlockquote): Ditto.
        (WebCore::isListOrIndentBlockquote): Ditto.
        * editing/InsertLineBreakCommand.cpp:
        (WebCore::InsertLineBreakCommand::shouldUseBreakElement): Added, moved code from
        doApply here.
        (WebCore::InsertLineBreakCommand::doApply): 
        Don't upstream() the insertion position.  upstream()ing it will only have an effect
        when the insertion position is the first in its paragraph (since we canonicalize
        VisiblePositions to the upstream() candidate).  In this start of paragraph case, 
        upstream() can move outside inline elements like tab spans or elements that might
        have a different whitespace mode (added two test cases to cover these).
        Moved code to decide whether to insert a br or a '\n' to its own method.
        Removed special case code for inserting at a position inside a tab span.  We instead
        adjust the insertion position before insertion if it is inside a tab span and
        handle insertion in the appropriate if-block.  This fixes a bug where we would 
        only insert one line break when two were needed (added a testcase).
        Removed special case code for inserting before and after tables and horizontal
        rules.  We handle these insertions in the appropriate if-block.
        * editing/InsertLineBreakCommand.h:
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::isMailPasteAsQuotationNode): Change to take in a const Node*.
        * editing/htmlediting.cpp:
        (WebCore::isContentEditable): Ditto.
        (WebCore::isBlock): Ditto.
        (WebCore::enclosingNodeOfType): Changed to take a function pointer to a function
        that takes in a const Node*.
        (WebCore::isTabSpanTextNode): Check to see that the node actually a text node,
        and not, say, a br.
        * editing/htmlediting.h:
        * editing/markup.cpp:
        (WebCore::styleFromMatchedRulesAndInlineDecl): Changed to take in a const Node*.
        (WebCore::elementHasTextDecorationProperty): Ditto.

2007-10-30  Antti Koivisto  <antti@apple.com>

        Add missing files.

        * html/VoidCallback.cpp: Added.
        (VoidCallback::VoidCallback):
        (VoidCallback::~VoidCallback):
        (VoidCallback::handleEvent):
        (VoidCallback::execute):
        (VoidCallback::operator==):
        (WebCore::toVoidCallback):
        * html/VoidCallback.h: Added.
        * html/VoidCallback.idl: Added.

2007-10-30  David Kilzer  <ddkilzer@webkit.org>

        Generated files missing from WebCore's Xcode project file
        <http://bugs.webkit.org/show_bug.cgi?id=15406>

        Reviewed by Darin.

        Added the following files to the Xcode project file (note that
        JSHTMLInputElementBaseTable.cpp is used as a header file):

        - DOMCSSStyleSheetPrivate.h
        - DOMEventPrivate.h
        - DOMHTMLCollectionPrivate.h
        - DOMHTMLEmbedElementPrivate.h
        - DOMHTMLIFrameElementPrivate.h
        - DOMHTMLObjectElementPrivate.h
        - DOMHTMLSelectElementPrivate.h
        - DOMTextEventInternal.h
        - JSHTMLInputElementBaseTable.cpp

        * DerivedSources.make: Removed DOMSVGException.h and JSSVGAnimatedPoints.h
        since their generated code was not used.
        * WebCore.xcodeproj/project.pbxproj: Added missing header files.

2007-10-29  Antti Koivisto  <antti@apple.com>

        Rubber stamped by Adele.

        Initial media (<video> and <audio>) support from feature branch and 
        QTKit based platform implementation.
        
        This will need to be updated to match current draft specification.

        * Configurations/WebCore.xcconfig:
        * DerivedSources.make:
        * WebCore.base.exp:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSEventCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSHTMLAudioElementConstructor.cpp: Added.
        (WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
        (WebCore::JSHTMLAudioElementConstructor::implementsConstruct):
        (WebCore::JSHTMLAudioElementConstructor::construct):
        * bindings/js/JSHTMLAudioElementConstructor.h: Added.
        * bindings/js/JSHTMLElementWrapperFactory.cpp:
        (WebCore::createJSHTMLWrapper):
        * bindings/js/kjs_window.cpp:
        (KJS::Window::getValueProperty):
        * bindings/js/kjs_window.h:
        (KJS::Window::):
        * bindings/scripts/CodeGeneratorJS.pm:
        * dom/Document.cpp:
        (WebCore::Document::createEvent):
        (WebCore::Document::willSaveToCache):
        (WebCore::Document::didRestoreFromCache):
        (WebCore::Document::registerForCacheCallbacks):
        (WebCore::Document::unregisterForCacheCallbacks):
        * dom/Document.h:
        * dom/Element.cpp:
        (WebCore::Element::setBooleanAttribute):
        * dom/Element.h:
        (WebCore::Element::willSaveToCache):
        * dom/Event.cpp:
        (WebCore::Event::isProgressEvent):
        * dom/Event.h:
        * dom/EventNames.h:
        * dom/EventTargetNode.cpp:
        (WebCore::EventTargetNode::dispatchProgressEvent):
        * dom/EventTargetNode.h:
        * dom/ProgressEvent.cpp: Added.
        (WebCore::ProgressEvent::ProgressEvent):
        (WebCore::ProgressEvent::initProgressEvent):
        (WebCore::ProgressEvent::initProgressEventNS):
        * dom/ProgressEvent.h: Added.
        (WebCore::ProgressEvent::lengthComputable):
        (WebCore::ProgressEvent::loaded):
        (WebCore::ProgressEvent::total):
        (WebCore::ProgressEvent::isProgressEvent):
        * dom/ProgressEvent.idl: Added.
        * history/CachedPage.cpp:
        (WebCore::CachedPage::CachedPage):
        * html/HTMLAttributeNames.in:
        * html/HTMLAudioElement.cpp: Added.
        (WebCore::HTMLAudioElement::HTMLAudioElement):
        * html/HTMLAudioElement.h: Added.
        (WebCore::HTMLAudioElement::tagPriority):
        * html/HTMLAudioElement.idl: Added.
        * html/HTMLElement.cpp:
        (WebCore::inlineTagList):
        * html/HTMLElementFactory.cpp:
        (WebCore::audioConstructor):
        (WebCore::videoConstructor):
        (WebCore::sourceConstructor):
        (WebCore::createFunctionMap):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::~HTMLInputElement):
        (WebCore::HTMLInputElement::setInputType):
        (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
        (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
        * html/HTMLMediaElement.cpp: Added.
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::~HTMLMediaElement):
        (WebCore::HTMLMediaElement::checkDTD):
        (WebCore::HTMLMediaElement::rendererIsNeeded):
        (WebCore::HTMLMediaElement::createRenderer):
        (WebCore::HTMLMediaElement::insertedIntoDocument):
        (WebCore::HTMLMediaElement::removedFromDocument):
        (WebCore::HTMLMediaElement::scheduleLoad):
        (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
        (WebCore::HTMLMediaElement::dispatchEventAsync):
        (WebCore::HTMLMediaElement::loadTimerFired):
        (WebCore::HTMLMediaElement::asyncEventTimerFired):
        (WebCore::serializeTimeOffset):
        (WebCore::parseTimeOffset):
        (WebCore::HTMLMediaElement::getTimeOffsetAttribute):
        (WebCore::HTMLMediaElement::setTimeOffsetAttribute):
        (WebCore::HTMLMediaElement::error):
        (WebCore::HTMLMediaElement::src):
        (WebCore::HTMLMediaElement::HTMLMediaElement::setSrc):
        (WebCore::HTMLMediaElement::currentSrc):
        (WebCore::HTMLMediaElement::networkState):
        (WebCore::HTMLMediaElement::bufferingRate):
        (WebCore::HTMLMediaElement::load):
        (WebCore::HTMLMediaElement::movieNetworkStateChanged):
        (WebCore::HTMLMediaElement::movieReadyStateChanged):
        (WebCore::HTMLMediaElement::setReadyState):
        (WebCore::HTMLMediaElement::progressEventTimerFired):
        (WebCore::HTMLMediaElement::seek):
        (WebCore::HTMLMediaElement::readyState):
        (WebCore::HTMLMediaElement::seeking):
        (WebCore::HTMLMediaElement::currentTime):
        (WebCore::HTMLMediaElement::setCurrentTime):
        (WebCore::HTMLMediaElement::duration):
        (WebCore::HTMLMediaElement::paused):
        (WebCore::HTMLMediaElement::defaultPlaybackRate):
        (WebCore::HTMLMediaElement::setDefaultPlaybackRate):
        (WebCore::HTMLMediaElement::playbackRate):
        (WebCore::HTMLMediaElement::setPlaybackRate):
        (WebCore::HTMLMediaElement::ended):
        (WebCore::HTMLMediaElement::autoplay):
        (WebCore::HTMLMediaElement::setAutoplay):
        (WebCore::HTMLMediaElement::play):
        (WebCore::HTMLMediaElement::pause):
        (WebCore::HTMLMediaElement::loopCount):
        (WebCore::HTMLMediaElement::setLoopCount):
        (WebCore::HTMLMediaElement::start):
        (WebCore::HTMLMediaElement::setStart):
        (WebCore::HTMLMediaElement::end):
        (WebCore::HTMLMediaElement::setEnd):
        (WebCore::HTMLMediaElement::loopStart):
        (WebCore::HTMLMediaElement::setLoopStart):
        (WebCore::HTMLMediaElement::loopEnd):
        (WebCore::HTMLMediaElement::setLoopEnd):
        (WebCore::HTMLMediaElement::currentLoop):
        (WebCore::HTMLMediaElement::setCurrentLoop):
        (WebCore::HTMLMediaElement::controls):
        (WebCore::HTMLMediaElement::setControls):
        (WebCore::HTMLMediaElement::volume):
        (WebCore::HTMLMediaElement::setVolume):
        (WebCore::HTMLMediaElement::muted):
        (WebCore::HTMLMediaElement::setMuted):
        (WebCore::HTMLMediaElement::pickMedia):
        (WebCore::HTMLMediaElement::checkIfSeekNeeded):
        (WebCore::HTMLMediaElement::movieVolumeChanged):
        (WebCore::HTMLMediaElement::movieDidEnd):
        (WebCore::HTMLMediaElement::movieCuePointReached):
        (WebCore::HTMLMediaElement::addCuePoint):
        (WebCore::HTMLMediaElement::removeCuePoint):
        (WebCore::HTMLMediaElement::buffered):
        (WebCore::HTMLMediaElement::played):
        (WebCore::HTMLMediaElement::seekable):
        (WebCore::HTMLMediaElement::effectiveStart):
        (WebCore::HTMLMediaElement::effectiveEnd):
        (WebCore::HTMLMediaElement::effectiveLoopStart):
        (WebCore::HTMLMediaElement::effectiveLoopEnd):
        (WebCore::HTMLMediaElement::activelyPlaying):
        (WebCore::HTMLMediaElement::endedPlayback):
        (WebCore::HTMLMediaElement::willSaveToCache):
        (WebCore::HTMLMediaElement::didRestoreFromCache):
        * html/HTMLMediaElement.h: Added.
        (WebCore::HTMLMediaElement::movie):
        (WebCore::HTMLMediaElement::isVideo):
        (WebCore::HTMLMediaElement::):
        (WebCore::HTMLMediaElement::CallbackEntry::CallbackEntry):
        * html/HTMLMediaElement.idl: Added.
        * html/HTMLSourceElement.cpp: Added.
        (WebCore::HTMLSourceElement::HTMLSourceElement):
        (WebCore::HTMLSourceElement::~HTMLSourceElement):
        (WebCore::HTMLSourceElement::insertedIntoDocument):
        (WebCore::HTMLSourceElement::src):
        (WebCore::HTMLSourceElement::setSrc):
        (WebCore::HTMLSourceElement::media):
        (WebCore::HTMLSourceElement::setMedia):
        (WebCore::HTMLSourceElement::type):
        (WebCore::HTMLSourceElement::setType):
        * html/HTMLSourceElement.h: Added.
        (WebCore::HTMLSourceElement::endTagRequirement):
        (WebCore::HTMLSourceElement::tagPriority):
        * html/HTMLSourceElement.idl: Added.
        * html/HTMLTagNames.in:
        * html/HTMLVideoElement.cpp: Added.
        (WebCore::HTMLVideoElement::HTMLVideoElement):
        (WebCore::HTMLVideoElement::videoWidth):
        (WebCore::HTMLVideoElement::videoHeight):
        * html/HTMLVideoElement.h: Added.
        (WebCore::HTMLVideoElement::tagPriority):
        (WebCore::HTMLVideoElement::isVideo):
        * html/HTMLVideoElement.idl: Added.
        * html/MediaError.h: Added.
        (WebCore::MediaError::):
        (WebCore::MediaError::MediaError):
        (WebCore::MediaError::code):
        * html/MediaError.idl: Added.
        * html/TimeRanges.cpp: Added.
        (TimeRanges::TimeRanges):
        (TimeRanges::start):
        (TimeRanges::end):
        (TimeRanges::add):
        (TimeRanges::contain):
        * html/TimeRanges.h: Added.
        (WebCore::TimeRanges::TimeRanges):
        (WebCore::TimeRanges::length):
        (WebCore::TimeRanges::Range::Range):
        * html/TimeRanges.idl: Added.
        * page/DOMWindow.idl:
        * platform/MIMETypeRegistry.cpp:
        (WebCore::initialiseSupportedMovieMIMETypes):
        (WebCore::initialiseMIMETypeRegistry):
        (WebCore::MIMETypeRegistry::isSupportedMovieMIMEType):
        (WebCore::MIMETypeRegistry::getSupportedMovieMIMETypes):
        * platform/MIMETypeRegistry.h:
        * platform/graphics/Movie.cpp: Added.
        (WebCore::Movie::Movie):
        (WebCore::Movie::~Movie):
        (WebCore::Movie::load):
        (WebCore::Movie::cancelLoad):
        (WebCore::Movie::play):
        (WebCore::Movie::pause):
        (WebCore::Movie::duration):
        (WebCore::Movie::currentTime):
        (WebCore::Movie::seek):
        (WebCore::Movie::paused):
        (WebCore::Movie::seeking):
        (WebCore::Movie::naturalSize):
        (WebCore::Movie::hasVideo):
        (WebCore::Movie::networkState):
        (WebCore::Movie::readyState):
        (WebCore::Movie::volume):
        (WebCore::Movie::setVolume):
        (WebCore::Movie::rate):
        (WebCore::Movie::setRate):
        (WebCore::Movie::muted):
        (WebCore::Movie::setMuted):
        (WebCore::Movie::dataRate):
        (WebCore::Movie::setEndTime):
        (WebCore::Movie::addCuePoint):
        (WebCore::Movie::removeCuePoint):
        (WebCore::Movie::clearCuePoints):
        (WebCore::Movie::maxTimeBuffered):
        (WebCore::Movie::maxTimeSeekable):
        (WebCore::Movie::bytesLoaded):
        (WebCore::Movie::totalBytesKnown):
        (WebCore::Movie::totalBytes):
        (WebCore::Movie::setRect):
        (WebCore::Movie::visible):
        (WebCore::Movie::setVisible):
        (WebCore::Movie::paint):
        (WebCore::Movie::getSupportedTypes):
        (WebCore::Movie::networkStateChanged):
        (WebCore::Movie::readyStateChanged):
        (WebCore::Movie::volumeChanged):
        (WebCore::Movie::didEnd):
        (WebCore::Movie::cuePointReached):
        * platform/graphics/Movie.h: Added.
        (WebCore::MovieClient::~MovieClient):
        (WebCore::MovieClient::movieNetworkStateChanged):
        (WebCore::MovieClient::movieReadyStateChanged):
        (WebCore::MovieClient::movieVolumeChanged):
        (WebCore::MovieClient::movieDidEnd):
        (WebCore::MovieClient::movieCuePointReached):
        (WebCore::Movie::parentWidget):
        (WebCore::Movie::setParentWidget):
        (WebCore::Movie::rect):
        (WebCore::Movie::):
        * platform/graphics/mac/MoviePrivateQTKit.h: Added.
        * platform/graphics/mac/MoviePrivateQTKit.mm: Added.
        (WebCore::MoviePrivate::MoviePrivate):
        (WebCore::MoviePrivate::~MoviePrivate):
        (WebCore::MoviePrivate::createQTMovie):
        (WebCore::MoviePrivate::createQTMovieView):
        (WebCore::MoviePrivate::createQTTime):
        (WebCore::MoviePrivate::load):
        (WebCore::MoviePrivate::play):
        (WebCore::MoviePrivate::pause):
        (WebCore::MoviePrivate::duration):
        (WebCore::MoviePrivate::currentTime):
        (WebCore::MoviePrivate::seek):
        (WebCore::MoviePrivate::setEndTime):
        (WebCore::MoviePrivate::addCuePoint):
        (WebCore::MoviePrivate::removeCuePoint):
        (WebCore::MoviePrivate::clearCuePoints):
        (WebCore::MoviePrivate::startCuePointTimerIfNeeded):
        (WebCore::MoviePrivate::cancelSeek):
        (WebCore::MoviePrivate::seekTimerFired):
        (WebCore::MoviePrivate::cuePointTimerFired):
        (WebCore::MoviePrivate::paused):
        (WebCore::MoviePrivate::seeking):
        (WebCore::MoviePrivate::naturalSize):
        (WebCore::MoviePrivate::hasVideo):
        (WebCore::MoviePrivate::setVolume):
        (WebCore::MoviePrivate::setMuted):
        (WebCore::MoviePrivate::setRate):
        (WebCore::MoviePrivate::dataRate):
        (WebCore::MoviePrivate::networkState):
        (WebCore::MoviePrivate::readyState):
        (WebCore::MoviePrivate::maxTimeBuffered):
        (WebCore::MoviePrivate::maxTimeSeekable):
        (WebCore::MoviePrivate::maxTimeLoaded):
        (WebCore::MoviePrivate::bytesLoaded):
        (WebCore::MoviePrivate::totalBytesKnown):
        (WebCore::MoviePrivate::totalBytes):
        (WebCore::MoviePrivate::cancelLoad):
        (WebCore::MoviePrivate::updateStates):
        (WebCore::MoviePrivate::loadStateChanged):
        (WebCore::MoviePrivate::rateChanged):
        (WebCore::MoviePrivate::sizeChanged):
        (WebCore::MoviePrivate::timeChanged):
        (WebCore::MoviePrivate::volumeChanged):
        (WebCore::MoviePrivate::didEnd):
        (WebCore::MoviePrivate::setRect):
        (WebCore::MoviePrivate::setVisible):
        (WebCore::MoviePrivate::paint):
        (WebCore::MoviePrivate::getSupportedTypes):
        (-[WebCoreMovieObserver loadStateChanged:]):
        (-[WebCoreMovieObserver rateChanged:]):
        (-[WebCoreMovieObserver sizeChanged:]):
        (-[WebCoreMovieObserver timeChanged:]):
        (-[WebCoreMovieObserver volumeChanged:]):
        (-[WebCoreMovieObserver didEnd:]):
        (-[WebCoreMovieObserver setCallback:WebCore::]):
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::collectLayers):
        * rendering/RenderVideo.cpp: Added.
        (WebCore::RenderVideo::RenderVideo):
        (WebCore::RenderVideo::~RenderVideo):
        (WebCore::RenderVideo::movie):
        (WebCore::RenderVideo::videoSizeChanged):
        (WebCore::RenderVideo::paint):
        (WebCore::RenderVideo::layout):
        (WebCore::RenderVideo::updateFromElement):
        (WebCore::RenderVideo::updateMovie):
        (WebCore::RenderVideo::isWidthSpecified):
        (WebCore::RenderVideo::isHeightSpecified):
        (WebCore::RenderVideo::calcReplacedWidth):
        (WebCore::RenderVideo::calcReplacedHeight):
        (WebCore::RenderVideo::calcAspectRatioWidth):
        (WebCore::RenderVideo::calcAspectRatioHeight):
        (WebCore::RenderVideo::calcPrefWidths):
        * rendering/RenderVideo.h: Added.
        (WebCore::RenderVideo::renderName):

2007-10-30  Sam Weinig  <sam@webkit.org>

        Reviewed by Adam Roben.

        Add Interface and Class UUIDs to the IDLs in preparation of adding
        autogeneration of the COM DOM bindings.

        * bindings/scripts/IDLParser.pm: Relax parsing rules to allow newlines as whitespace.
        * css/CSSCharsetRule.idl:
        * css/CSSFontFaceRule.idl:
        * css/CSSImportRule.idl:
        * css/CSSMediaRule.idl:
        * css/CSSPageRule.idl:
        * css/CSSPrimitiveValue.idl:
        * css/CSSRule.idl:
        * css/CSSRuleList.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSStyleRule.idl:
        * css/CSSStyleSheet.idl:
        * css/CSSUnknownRule.idl:
        * css/CSSValue.idl:
        * css/CSSValueList.idl:
        * css/Counter.idl:
        * css/MediaList.idl:
        * css/RGBColor.idl:
        * css/Rect.idl:
        * css/StyleSheet.idl:
        * css/StyleSheetList.idl:
        * dom/Attr.idl:
        * dom/CDATASection.idl:
        * dom/CharacterData.idl:
        * dom/Comment.idl:
        * dom/DOMImplementation.idl:
        * dom/Document.idl:
        * dom/DocumentFragment.idl:
        * dom/DocumentType.idl:
        * dom/Element.idl:
        * dom/Entity.idl:
        * dom/EntityReference.idl:
        * dom/Event.idl:
        * dom/EventListener.idl:
        * dom/EventTarget.idl:
        * dom/NamedNodeMap.idl:
        * dom/Node.idl:
        * dom/NodeList.idl:
        * dom/Notation.idl:
        * dom/ProcessingInstruction.idl:
        * dom/Text.idl:
        * html/CanvasGradient.idl:
        * html/CanvasPattern.idl:
        * html/CanvasRenderingContext2D.idl:
        * html/HTMLAnchorElement.idl:
        * html/HTMLAppletElement.idl:
        * html/HTMLAreaElement.idl:
        * html/HTMLBRElement.idl:
        * html/HTMLBaseElement.idl:
        * html/HTMLBaseFontElement.idl:
        * html/HTMLBlockquoteElement.idl:
        * html/HTMLBodyElement.idl:
        * html/HTMLButtonElement.idl:
        * html/HTMLCanvasElement.idl:
        * html/HTMLCollection.idl:
        * html/HTMLDListElement.idl:
        * html/HTMLDirectoryElement.idl:
        * html/HTMLDivElement.idl:
        * html/HTMLDocument.idl:
        * html/HTMLElement.idl:
        * html/HTMLEmbedElement.idl:
        * html/HTMLFieldSetElement.idl:
        * html/HTMLFontElement.idl:
        * html/HTMLFormElement.idl:
        * html/HTMLFrameElement.idl:
        * html/HTMLFrameSetElement.idl:
        * html/HTMLHRElement.idl:
        * html/HTMLHeadElement.idl:
        * html/HTMLHeadingElement.idl:
        * html/HTMLHtmlElement.idl:
        * html/HTMLIFrameElement.idl:
        * html/HTMLImageElement.idl:
        * html/HTMLInputElement.idl:
        * html/HTMLIsIndexElement.idl:
        * html/HTMLLIElement.idl:
        * html/HTMLLabelElement.idl:
        * html/HTMLLegendElement.idl:
        * html/HTMLLinkElement.idl:
        * html/HTMLMapElement.idl:
        * html/HTMLMarqueeElement.idl:
        * html/HTMLMenuElement.idl:
        * html/HTMLMetaElement.idl:
        * html/HTMLModElement.idl:
        * html/HTMLOListElement.idl:
        * html/HTMLObjectElement.idl:
        * html/HTMLOptGroupElement.idl:
        * html/HTMLOptionElement.idl:
        * html/HTMLOptionsCollection.idl:
        * html/HTMLParagraphElement.idl:
        * html/HTMLParamElement.idl:
        * html/HTMLPreElement.idl:
        * html/HTMLQuoteElement.idl:
        * html/HTMLScriptElement.idl:
        * html/HTMLSelectElement.idl:
        * html/HTMLStyleElement.idl:
        * html/HTMLTableCaptionElement.idl:
        * html/HTMLTableCellElement.idl:
        * html/HTMLTableColElement.idl:
        * html/HTMLTableElement.idl:
        * html/HTMLTableRowElement.idl:
        * html/HTMLTableSectionElement.idl:
        * html/HTMLTextAreaElement.idl:
        * html/HTMLTitleElement.idl:
        * html/HTMLUListElement.idl:

2007-10-30  Adele Peterson  <adele@apple.com>

        RS by Darin.

        * page/AnimationController.cpp: (WebCore::blendFunc): Use lround instead of round.

2007-10-29  Timothy Hatcher  <timothy@apple.com>

        Reviewed by John Sullivan.

        - Allow showing and closing the inspector programatically.
        - Add showConsole() and showTimeline() methods. 

        * WebCore.base.exp: Add exports for WebKit.
        * page/InspectorController.cpp:
        (WebCore::callSimpleFunction): Renamed from callClearFunction().
        (WebCore::unloading): Renamed to close().
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::inspect): Moved showing code to show().
        (WebCore::InspectorController::setWindowVisible): Show the timeline or console if needed.
        (WebCore::InspectorController::show): Code factored out of inspect().
        (WebCore::InspectorController::showConsole): Call show() and the JS showConsole().
        (WebCore::InspectorController::showTimeline): Call show() and the JS showTimeline().
        (WebCore::InspectorController::close):
        (WebCore::InspectorController::clearScriptResources): Call the new callSimpleFunction.
        (WebCore::InspectorController::clearDatabaseScriptResources): Ditto.
        (WebCore::InspectorController::clearScriptConsoleMessages): Ditto.
        (WebCore::InspectorController::clearNetworkTimeline): Ditto.
        * page/InspectorController.h: Add and rename methods.
        * page/inspector/inspector.js: Add showConsole() and showTimeline().

2007-10-30  Adele Peterson  <adele@apple.com>

        Reviewed by Sam.

        Build fix.

        * page/AnimationController.cpp: (WebCore::blendFunc):

2007-10-30  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        WebCore part of fix for http://bugs.webkit.org/show_bug.cgi?id=10577
        <rdar://problem/5103625> REGRESSION: Caps lock icon should show in password fields

        Test: manual-tests/password-caps-lock.html

        * WebCore.base.exp: Added symbol for capsLockStateMayHaveChanged.

        * page/Frame.cpp: (WebCore::Frame::setIsActive): Calls capsLockStateMayHaveChanged.
        * page/EventHandler.cpp: (WebCore::EventHandler::capsLockStateMayHaveChanged): Added. Tells the focused node's renderer that the capsLockStateMayHaveChanged.
        * page/EventHandler.h:

        * platform/PlatformKeyboardEvent.h:
        * platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::currentCapsLockState): Added.
        * platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::currentCapsLockState): Added.

        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::RenderTextControl):
        (WebCore::RenderTextControl::paint): Added.  If m_shouldDrawCapsLockIndicator is true, paints the caps lock indicator after the background.
        (WebCore::RenderTextControl::forwardEvent): When the control gets and loses focus, update the caps lock state.
        (WebCore::RenderTextControl::capsLockStateMayHaveChanged): Added. Updates m_shouldDrawCapsLockIndicator, which is true if the field is a password field, 
         and the frame is active, and the element is focused, and the caps lock is on.  Causes a repaint when m_shouldDrawCapsLockIndicator changes state.
        * rendering/RenderTextControl.h: Added m_shouldDrawCapsLockIndicator.
        * rendering/RenderObject.h: (WebCore::RenderObject::capsLockStateMayHaveChanged): Added.

        * rendering/RenderTheme.h: (WebCore::RenderTheme::paintCapsLockIndicator): Added.
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintCapsLockIndicator): Added.  Calls wkDrawCapsLockIndicator.
        * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintCapsLockIndicator): Added.  Calls paintThemePart for the CapsLockPart.
        * rendering/RenderThemeSafari.h:

2007-10-30  David Hyatt  <hyatt@apple.com>

        Land support for implicit animation in CSS.

        Reviewed by mitz, darin

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseTimingFunctionValue):
        (WebCore::CSSParser::parseTransitionTimingFunction):
        (WebCore::CSSParser::parseTransitionProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::mapTransitionDuration):
        (WebCore::CSSStyleSelector::mapTransitionRepeatCount):
        (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
        (WebCore::CSSStyleSelector::mapTransitionProperty):
        * css/CSSTimingFunctionValue.h:
        (WebCore::CSSTimingFunctionValue::CSSTimingFunctionValue):
        (WebCore::CSSTimingFunctionValue::x1):
        (WebCore::CSSTimingFunctionValue::y1):
        (WebCore::CSSTimingFunctionValue::x2):
        (WebCore::CSSTimingFunctionValue::y2):
        * dom/Element.cpp:
        (WebCore::Element::styleForRenderer):
        (WebCore::Element::createRenderer):
        * dom/Node.cpp:
        (WebCore::Node::createRendererIfNeeded):
        (WebCore::Node::setRenderStyle):
        * page/AnimationController.cpp:
        (WebCore::CurveData::CurveData):
        (WebCore::CurveData::sampleCurveX):
        (WebCore::CurveData::sampleCurveY):
        (WebCore::CurveData::sampleCurveDerivativeX):
        (WebCore::CurveData::solveCurveX):
        (WebCore::solveEpsilon):
        (WebCore::solveCubicBezierFunction):
        (WebCore::ImplicitAnimation::finished):
        (WebCore::CompositeImplicitAnimation::~CompositeImplicitAnimation):
        (WebCore::CompositeImplicitAnimation::hasAnimationForProperty):
        (WebCore::ImplicitAnimation::ImplicitAnimation):
        (WebCore::ImplicitAnimation::~ImplicitAnimation):
        (WebCore::ImplicitAnimation::reset):
        (WebCore::ImplicitAnimation::progress):
        (WebCore::blendFunc):
        (WebCore::ImplicitAnimation::animate):
        (WebCore::CompositeImplicitAnimation::animate):
        (WebCore::CompositeImplicitAnimation::animating):
        (WebCore::CompositeImplicitAnimation::reset):
        (WebCore::AnimationControllerPrivate::hasImplicitAnimations):
        (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
        (WebCore::AnimationControllerPrivate::~AnimationControllerPrivate):
        (WebCore::AnimationControllerPrivate::get):
        (WebCore::AnimationControllerPrivate::clear):
        (WebCore::AnimationControllerPrivate::updateTimer):
        (WebCore::AnimationControllerPrivate::timerFired):
        (WebCore:::m_data):
        (WebCore::AnimationController::~AnimationController):
        (WebCore::AnimationController::cancelImplicitAnimations):
        (WebCore::AnimationController::updateImplicitAnimations):
        (WebCore::AnimationController::suspendAnimations):
        (WebCore::AnimationController::resumeAnimations):
        * page/AnimationController.h:
        * page/Frame.cpp:
        (WebCore::FramePrivate::FramePrivate):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::setStyle):
        (WebCore::RenderBox::destroy):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::setAnimatableStyle):
        (WebCore::RenderObject::destroy):
        * rendering/RenderObject.h:
        * rendering/RenderStyle.h:
        (WebCore::TimingFunction::TimingFunction):
        (WebCore::TimingFunction::operator==):
        (WebCore::TimingFunction::x1):
        (WebCore::TimingFunction::y1):
        (WebCore::TimingFunction::x2):
        (WebCore::TimingFunction::y2):
        (WebCore::TimingFunction::type):
        (WebCore::Transition::transitionProperty):
        (WebCore::Transition::setTransitionProperty):
        (WebCore::RenderStyle::initialTransitionProperty):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::destroy):

2007-10-29  Beth Dakin  <bdakin@apple.com>

        Reviewed by Hyatt.

        Fix for <rdar://problem/5399614> anchor tag is not rendered without 
        text content, works in Firefox with CSS background-image (13237)

        This patch allows empty inlines that have box decorations or width 
        from border/padding/margin to have line boxes.

        * rendering/bidi.cpp:
        (WebCore::inlineFlowAllowsLineBox): Convenience function that 
        defines when we allow an inline flow to have a line box.
        (WebCore::requiresLineBox): Call inlineFlowAllowsLineBox.
        (WebCore::shouldSkipWhitespaceAfterStartObject): New function to 
        merge some shared code between list markers and empty inline flows 
        that fall at the beginning of a line.
        (WebCore::RenderBlock::findNextLineBreak): Make flows more like 
        list markers.

        One interesting side effect of this bug appeared in our xhtml/svg 
        tests that generate parser error tags. The tag we generate was 
        actually an empty inline with box decorations. This patch causes 
        those inlines to draw now, and the parser errors looked strange. So 
        I changed it so that the parsererror tag is display:block. This 
        matches Firefox, and I think was the original intent of the tag 
        since that causes its red background and border to show up.
        * dom/XMLTokenizer.cpp:
        (WebCore::createXHTMLParserErrorHeader):

2007-10-29  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix crashing tests fast/frames/inline-object-inside-frameset.html and
          fast/forms/form-hides-table.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::destroy):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::destroy):

2007-10-29  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15750
          REGRESSION(r27173): Web Inspector freezes beneath Image::drawPattern()

        Test: fast/backgrounds/size/zero.html

        * platform/graphics/cg/ImageCG.cpp:
        (WebCore::Image::drawPattern): Added an ASSERT and an early return
        to guard against singular pattern transforms.
        * rendering/RenderBox.cpp:
        (WebCore::cacluateBackgroundSize): Changed to ensure a minimum tile
        size of 1x1.

2007-10-29  Alp Toker  <alp@atoker.com>

        Reviewed by Maciej.

        Add GTK+ convenience conversions for various primitives

        * WebCore.pro:
        * platform/graphics/Color.h:
        * platform/graphics/IntPoint.h:
        * platform/graphics/IntRect.h:
        * platform/graphics/gtk/ColorGtk.cpp: Added.
        (WebCore::Color::Color):
        * platform/graphics/gtk/IntPointGtk.cpp: Added.
        (WebCore::IntPoint::IntPoint):
        (WebCore::IntPoint::operator GdkPoint):
        * platform/graphics/gtk/IntRectGtk.cpp: Added.
        (WebCore::IntRect::IntRect):
        (WebCore::IntRect::operator GdkRectangle):

2007-10-29  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Anders.

        Speculative fix for <rdar://5538489> Safari 3.0.4 seed hangs at
        http://tgmonline.futuregamer.it/ (works fine on Safari 2.0.4 and Safari
        Beta for Mac)
        
        I cannot reproduce this hang, but it is likely due to our not limiting
        WM_USER+1 messages or InvalidateRect calls for a plugin with initially-
        unknown MIME type. The embed tag on the page is missing a type
        attribute, so as fallback, we choose to load the Flash plugin based on
        the file extension of "swf." However, we do not record this determined
        MIME type, and so our quirks cannot be established.
        
        Changed findPlugin() so that, if it fails to find a plugin for the
        given MIME type, it will lookup the MIME type for the file extension -
        overwriting its passed MIME type parameter - and search for a plugin
        for that MIME type.

        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::PluginDatabaseWin::pluginForMIMEType): Added an early return
        if the MIME type is empty
        (WebCore::PluginDatabaseWin::MIMETypeForExtension): Added to replace
        pluginForExtension. Returns a String with the MIME type for the file
        extension. Also, changed to use case-insensitive compares
        (WebCore::PluginDatabaseWin::findPlugin): If we fail to find a plugin
        for the given extension, overwrite the incoming MIME type parameter
        with the MIME type for the file extension, and search for a plugin for
        that MIME type. Also, changed the way that the extension is determined
        (WebCore::PluginDatabaseWin::createPluginView): Pass a mutable String
        to findPlugin() so that it can be updated if necessary
        * plugins/win/PluginDatabaseWin.h: Changed findPlugin() to take a non-
        const String, removed definition of pluginForExtension, added
        definition for MIMETypeForExtension
        * plugins/win/PluginPackageWin.cpp: 
        (WebCore::PluginPackageWin::fetchInfo): Store the MIME type in
        lowercase for easier compares

2007-10-29  Andrew Wellington  <proton@wiretapped.net>

        Not reviewed - build fix

        Fix Mac Build.
        
        WebKit/WebCore/xml/XSLTProcessor.cpp:79: warning: 'level' may be used uninitialized
        in this function

        * xml/XSLTProcessor.cpp:
        (WebCore::XSLTProcessor::parseErrorFunc):

2007-10-29  Alp Toker  <alp@atoker.com>

        Reviewed by Adam Roben.

        http://bugs.webkit.org/show_bug.cgi?id=15725
        [GTK] WebCore.pro header dependencies are incorrect

        Fix header dependencies in the build system

        INCLUDEPATH and DEPENDPATH are now up to date.

        * WebCore.pro:

2007-10-29  Beth Dakin  <bdakin@apple.com>

        Build fix.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseTimingFunctionValue):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::mapTransitionTimingFunction):

2007-10-29  David Hyatt  <hyatt@apple.com>

        Land the back end for CSS animated property transitions.  I am landing this in stages, so the AnimationController
        class is deliberately left empty.

        Reviewed by darin/aroben

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSPropertyNames.in:
        * css/CSSTimingFunctionValue.cpp: Added.
        (WebCore::CSSTimingFunctionValue::cssText):
        * css/CSSTimingFunctionValue.h: Added.
        (WebCore::CSSTimingFunctionValue::CSSTimingFunctionValue):
        (WebCore::CSSTimingFunctionValue::firstPoint):
        (WebCore::CSSTimingFunctionValue::secondPoint):
        * css/CSSValueKeywords.in:
        * history/CachedPage.cpp:
        (WebCore::CachedPage::restore):
        * page/AnimationController.cpp: Added.
        (WebCore::AnimationController::AnimationController):
        (WebCore::AnimationController::~AnimationController):
        (WebCore::AnimationController::cancelTransitions):
        (WebCore::AnimationController::updateTransitions):
        (WebCore::AnimationController::suspendAnimations):
        (WebCore::AnimationController::resumeAnimations):
        * page/AnimationController.h: Added.
        * page/Frame.cpp:
        (WebCore::Frame::animationController):
        (WebCore::Frame::clearTimers):
        * page/Frame.h:
        * page/FramePrivate.h:
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::setStyle):
        (WebCore::RenderBox::destroy):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::animationController):
        * rendering/RenderObject.h:
        * rendering/RenderStyle.cpp:
        (WebCore::Transition::Transition):
        (WebCore::Transition::~Transition):
        (WebCore::Transition::operator=):
        (WebCore::Transition::operator==):
        (WebCore::Transition::fillUnsetProperties):
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        (WebCore::StyleRareNonInheritedData::transitionDataEquivalent):
        (WebCore::RenderStyle::diff):
        (WebCore::RenderStyle::adjustTransitions):
        (WebCore::RenderStyle::accessTransitions):
        * rendering/RenderStyle.h:
        (WebCore::BackgroundLayer::next):
        (WebCore::):
        (WebCore::TimingFunction::TimingFunction):
        (WebCore::TimingFunction::operator==):
        (WebCore::Transition::next):
        (WebCore::Transition::isTransitionDurationSet):
        (WebCore::Transition::isTransitionRepeatCountSet):
        (WebCore::Transition::isTransitionTimingFunctionSet):
        (WebCore::Transition::isTransitionPropertySet):
        (WebCore::Transition::isEmpty):
        (WebCore::Transition::clearTransitionDuration):
        (WebCore::Transition::clearTransitionRepeatCount):
        (WebCore::Transition::clearTransitionTimingFunction):
        (WebCore::Transition::clearTransitionProperty):
        (WebCore::Transition::transitionDuration):
        (WebCore::Transition::transitionRepeatCount):
        (WebCore::Transition::transitionTimingFunction):
        (WebCore::Transition::transitionProperty):
        (WebCore::Transition::setTransitionDuration):
        (WebCore::Transition::setTransitionRepeatCount):
        (WebCore::Transition::setTransitionTimingFunction):
        (WebCore::Transition::setTransitionProperty):
        (WebCore::Transition::setNext):
        (WebCore::Transition::operator!=):
        (WebCore::RenderStyle::transitions):
        (WebCore::RenderStyle::clearTransitions):
        (WebCore::RenderStyle::inheritTransitions):
        (WebCore::RenderStyle::initialTransitionDuration):
        (WebCore::RenderStyle::initialTransitionRepeatCount):
        (WebCore::RenderStyle::initialTransitionTimingFunction):
        (WebCore::RenderStyle::initialTransitionProperty):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::destroy):

2007-10-29  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=6040
        XSLT does not report errors to the user

        Made parseErrorFunc a static member function of XSLTProcessor to be reusable from XSLStylesheet.
        Switched to xmlSetStructuredErrorFunc to get an error structure instead of pre-formatted console
        output. Got rid of DeprecatedString in XSLTProcessor.

        * dom/Document.cpp:
        (WebCore::Document::applyXSLTransform):
        * xml/XSLStyleSheet.cpp:
        (WebCore::XSLStyleSheet::parseString):
        * xml/XSLTProcessor.cpp:
        (WebCore::XSLTProcessor::parseErrorFunc):
        (WebCore::docLoaderFunc):
        (WebCore::setXSLTLoadCallBack):
        (WebCore::writeToString):
        (WebCore::saveResultToString):
        (WebCore::transformTextStringToXHTMLDocumentString):
        (WebCore::xsltParamArrayFromParameterMap):
        (WebCore::freeXsltParamArray):
        (WebCore::XSLTProcessor::createDocumentFromSource):
        (WebCore::createFragmentFromSource):
        (WebCore::xsltStylesheetPointer):
        (WebCore::xmlDocPtrFromNode):
        (WebCore::resultMIMEType):
        (WebCore::XSLTProcessor::transformToString):
        (WebCore::XSLTProcessor::transformToDocument):
        (WebCore::XSLTProcessor::transformToFragment):
        * xml/XSLTProcessor.h:
        (WebCore::XSLTProcessor::setXSLStylesheet):
        (WebCore::XSLTProcessor::importStylesheet):
        (WebCore::XSLTProcessor::xslStylesheet):

2007-10-29  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        - fix <rdar://problem/5424455> REGRESSION (r21168-r21193, Tiger only): Safari scrollbar is clipped at top when loading particular RSS page

        Test: fast/repaint/layout-state-only-positioned.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutOnlyPositionedObjects): Pop layout state
        before updating scroll info, which possibly repaints us.

2007-10-29  David Kilzer  <ddkilzer@webkit.org>

        REGRESSION (r17701): Favicons should be viewable as image documents
        <http://bugs.webkit.org/show_bug.cgi?id=15640>

        Reviewed by Darin.

        On Tiger and Leopard, the image/x-icon MIME type is not returned from
        CGImageSourceCopyTypeIdentifiers(), so opening a URL to a favicon caused
        the icon to be downloaded instead being displayed in an image document.

        Test: fast/images/favicon-as-image.html

        * platform/MIMETypeRegistry.cpp:
        (WebCore::initialiseSupportedImageMIMETypes): Manually add image/x-icon to
        supportedImageMIMETypes and supportedImageResourceMIMETypes.  Also fixed
        comment about the image/bmp MIME type since it applies to both Tiger and
        Leopard.

2007-10-29  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Mark.

        - fixed assertion failures detected by the new assertions

        * bindings/objc/DOMRGBColor.mm:
        (-[DOMRGBColor dealloc]): Clear _internal before calling [super dealloc]
        because it's not a pointer and shouldn't be in the normal wrapper cache.
        * dom/Document.cpp:
        (WebCore::Document::addImageMap): Don't access hashmap if name is null.
        (WebCore::Document::removeImageMap): ditto
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::parseMappedAttribute): Don't claim we have a class
        when the class attribute is empty.
        * platform/TextCodecICU.cpp:
        (WebCore::gbkCallbackEscape): Don't look up 0 code points.

2007-10-28  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=10734
        Made HTMLOptionElement.index read-only, matching IE and DOM standard.

        Test: fast/dom/HTMLOptionElement/set-option-index-text.html

        * html/HTMLOptionElement.idl: Marked index as readonly.

        * html/HTMLOptionElement.cpp:
        * html/HTMLOptionElement.h:
        Removed setIndex().

2007-10-28  Eric Seidel  <eric@webkit.org>

        Reviewed by darin.

        Fix leaks on TOT and prevent Path code from logging to console so frequently

        * platform/graphics/svg/SVGResourceFilter.h:
        (WebCore::SVGResourceFilterPlatformData::SVGResourceFilterPlatformData):
        (WebCore::SVGResourceFilterPlatformData::~SVGResourceFilterPlatformData):
        * platform/graphics/svg/cg/CgSupport.cpp:
        (WebCore::strokeBoundingBox):
        * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
        * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h:

2007-10-28  Mark Rowe  <mrowe@apple.com>

        Reviewed by Maciej.

        Replace uses of isNaN and isInf with isnan and isinf.

        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        (WebCore::JSHTMLOptionsCollection::setLength):

2007-10-28  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Mark.

        - fixed REGRESSION(r27176): Reproducible crash while trying to order dinner makes bdash sad
        http://bugs.webkit.org/show_bug.cgi?id=15731

        * bindings/js/kjs_window.cpp:
        (KJS::Window::installTimeout): Avoid putting in or accessing empty or deleted keys.
        (KJS::Window::clearTimeout): ditto
        * manual-tests/bad-clearTimeout-crash.html: Added. Automated test not possible.

2007-10-28  Kevin Ollivier  <kevino@theolliviers.com>

        wx port defines for graphics and network layers.

        Reviewed by Darin Adler.

        * platform/graphics/AffineTransform.h:
        * platform/graphics/BitmapImage.h:
        * platform/graphics/Color.h:
        * platform/graphics/FloatRect.h:
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/ImageSource.h:
        * platform/graphics/IntPoint.h:
        * platform/graphics/IntRect.h:
        * platform/graphics/Path.h:
        * platform/graphics/Pen.h:
        * platform/network/ResourceHandle.h:


2007-10-28  Alp Toker  <alp@atoker.com>

        Reviewed by Anders Carlsson.

        http://bugs.webkit.org/show_bug.cgi?id=14124
        [CURL] Support data URLs

        Add data URL support (both Base64 and percent-encoded formats).

        Inspired by code from the Qt port.

        * platform/Base64.cpp:
        (WebCore::base64Decode):
        * platform/Base64.h:
        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::startScheduledJobs):
        (WebCore::parseDataUrl):

2007-10-28  Alp Toker  <alp@atoker.com>

        Reviewed by Adam Roben.

        http://bugs.webkit.org/show_bug.cgi?id=15701
        The curl http backend does not deal properly with redirects

        Implement http redirect support.

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::headerCallback):

2007-10-28  Kevin Ollivier  <kevino@theolliviers.com>

        Define types and accessors needed for wx implementation
        of platform classes. Also, turn off DisallowCTypes.h because
        disallowed methods appear in wx headers.

        Reviewed by Adam Roben.

        * config.h:
        * platform/ContextMenuItem.h:
        * platform/Cursor.h:
        * platform/DeprecatedString.h:
        * platform/DragData.h:
        * platform/DragImage.h:
        * platform/FontData.h:
        (WebCore::FontData::getWxFont):
        * platform/GlyphBuffer.h:
        (WebCore::GlyphBuffer::glyphAt):
        (WebCore::GlyphBuffer::advanceAt):
        (WebCore::GlyphBuffer::add):
        * platform/PlatformKeyboardEvent.h:
        (WebCore::PlatformKeyboardEvent::isWxCharEvent):
        * platform/PlatformMenuDescription.h:
        * platform/PlatformMouseEvent.h:
        * platform/PlatformString.h:
        * platform/PlatformWheelEvent.h:
        * platform/ScrollView.h:
        * platform/Widget.h:
        * platform/image-decoders/bmp/BMPImageDecoder.cpp:
        * platform/image-decoders/gif/GIFImageDecoder.cpp:
        * platform/image-decoders/gif/GIFImageReader.cpp:
        * platform/image-decoders/ico/ICOImageDecoder.cpp:
        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        * platform/image-decoders/png/PNGImageDecoder.cpp:
        * platform/image-decoders/xbm/XBMImageDecoder.cpp:

2007-10-28  Mark Rowe  <mrowe@apple.com>

        We don't include "config.h" in headers.

        * dom/XMLTokenizer.h:
        * platform/graphics/svg/SVGResourceFilter.h:
        * platform/image-decoders/ImageDecoder.h:
        * platform/wx/FontPlatformData.h:

2007-10-28  Darin Adler  <darin@apple.com>

        * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h:
        We don't include "config.h" in headers. Hope this desn't break
        the non-SVG build again.

2007-10-28  Eric Seidel  <eric@webkit.org>

        Build fix for non-SVG build, no review.

        * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h:
        * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.mm:

2007-10-28  Eric Seidel  <eric@webkit.org>

        Reviewed by Oliver.

        Push SVGResourceFilter platform specific data down into m_platformData
        in preparation for implementing a non-mac filter solution.
        
        Also update a very old email address in copyright headers

        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/FloatPoint3D.cpp:
        (WebCore::FloatPoint3D::FloatPoint3D):
        * platform/graphics/FloatPoint3D.h:
        * platform/graphics/svg/SVGResourceFilter.cpp:
        (WebCore::SVGResourceFilter::SVGResourceFilter):
        * platform/graphics/svg/SVGResourceFilter.h:
        (WebCore::SVGResourceFilter::platformData):
        (WebCore::SVGResourceFilter::effects):
        * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
        (WebCore::SVGResourceFilter::createPlatformData):l
        (WebCore::SVGResourceFilter::prepareFilter):
        (WebCore::SVGResourceFilter::applyFilter):
        * platform/graphics/svg/filters/SVGDistantLightSource.h:
        * platform/graphics/svg/filters/SVGFEBlend.cpp:
        * platform/graphics/svg/filters/SVGFEBlend.h:
        * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
        * platform/graphics/svg/filters/SVGFEColorMatrix.h:
        * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
        * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
        * platform/graphics/svg/filters/SVGFEComposite.cpp:
        * platform/graphics/svg/filters/SVGFEComposite.h:
        * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
        * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
        * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
        * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
        * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
        * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
        * platform/graphics/svg/filters/SVGFEFlood.cpp:
        * platform/graphics/svg/filters/SVGFEFlood.h:
        * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
        * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
        * platform/graphics/svg/filters/SVGFEImage.cpp:
        * platform/graphics/svg/filters/SVGFEImage.h:
        * platform/graphics/svg/filters/SVGFEMerge.cpp:
        * platform/graphics/svg/filters/SVGFEMerge.h:
        * platform/graphics/svg/filters/SVGFEMorphology.cpp:
        * platform/graphics/svg/filters/SVGFEMorphology.h:
        * platform/graphics/svg/filters/SVGFEOffset.cpp:
        * platform/graphics/svg/filters/SVGFEOffset.h:
        * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
        * platform/graphics/svg/filters/SVGFESpecularLighting.h:
        * platform/graphics/svg/filters/SVGFETile.h:
        * platform/graphics/svg/filters/SVGFETurbulence.cpp:
        * platform/graphics/svg/filters/SVGFETurbulence.h:
        * platform/graphics/svg/filters/SVGFilterEffect.cpp:
        * platform/graphics/svg/filters/SVGFilterEffect.h:
        * platform/graphics/svg/filters/SVGLightSource.cpp:
        * platform/graphics/svg/filters/SVGLightSource.h:
        * platform/graphics/svg/filters/SVGPointLightSource.h:
        * platform/graphics/svg/filters/SVGSpotLightSource.h:
        * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
        (WebCore::SVGFEBlend::getCIFilter):
        * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
        (WebCore::SVGFEColorMatrix::getCIFilter):
        * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
        (WebCore::SVGFEComponentTransfer::getCIFilter):
        * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
        (WebCore::SVGFEComposite::getCIFilter):
        * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
        (WebCore::SVGFEDiffuseLighting::getCIFilter):
        * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
        (WebCore::SVGFEDisplacementMap::getCIFilter):
        * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
        (WebCore::SVGFEFlood::getCIFilter):
        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
        * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
        (WebCore::SVGFEImage::getCIFilter):
        * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
        (WebCore::SVGFEMerge::getCIFilter):
        * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
        (WebCore::SVGFESpecularLighting::getCIFilter):
        * platform/graphics/svg/mac: Added.
        * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h: Added.
        * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.mm: Added.
        (WebCore::SVGResourceFilterPlatformDataMac::SVGResourceFilterPlatformDataMac):
        (WebCore::SVGResourceFilterPlatformDataMac::~SVGResourceFilterPlatformDataMac):
        (WebCore::SVGResourceFilterPlatformDataMac::getCIFilterStack):
        (WebCore::alphaImageForImage):
        (WebCore::SVGResourceFilterPlatformDataMac::imageForName):
        (WebCore::SVGResourceFilterPlatformDataMac::setImageForName):
        (WebCore::SVGResourceFilterPlatformDataMac::setOutputImage):
        (WebCore::SVGResourceFilterPlatformDataMac::inputImage):

2007-10-28  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Adam Roben.

        http://bugs.webkit.org/show_bug.cgi?id=15217
        Plugin complains that xpcom_core.dll missing

        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::PluginDatabaseWin::isPluginBlacklisted): Blacklist npmozax.dll.

2007-10-28  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Pass the Document's domain to InspectorController:didOpenDatabase. This matches
        what the Inspector shows for other resources.

        * storage/Database.cpp:
        (WebCore::Database::openDatabase):

        * dom/Document.h: Remove KURL.h, no longer needed.

2007-10-28  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Bug 15728: Selected Resource background image gradient has banding
        http://bugs.webkit.org/show_bug.cgi?id=15728

        - Reduced images to 1px wide that are tiled horizontally in CSS.
        - Corrected the -webkit-background-size usage to specify auto for the width.

        * page/inspector/Images/attachedShadow.png:
        * page/inspector/Images/bottomShadow.png:
        * page/inspector/Images/darkShadow.png:
        * page/inspector/Images/gradient.png:
        * page/inspector/Images/gradientHighlight.png:
        * page/inspector/Images/gradientHighlightBottom.png:
        * page/inspector/Images/sidebarSelection.png:
        * page/inspector/Images/sidebarSelectionBlurred.png:
        * page/inspector/Images/sidebarSelectionBlurredTall.png:
        * page/inspector/Images/sidebarSelectionGray.png:
        * page/inspector/Images/sidebarSelectionGrayTall.png:
        * page/inspector/Images/sidebarSelectionTall.png:
        * page/inspector/inspector.css:

2007-10-27  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Bug 15727: Resizing the resource sidebar doesn't scale the font preview or network timeline
        http://bugs.webkit.org/show_bug.cgi?id=15727

        Add one window resize listener and call the new resize function on the currentPanel.
        Also call the currentPanel's resize function when resizing the sidebar.

        * page/inspector/DocumentPanel.js: Implement resize and call updateTreeSelection() when
          the panel is shown and when resizing the DOM sidebar.
        * page/inspector/FontPanel.js: Implement resize.
        * page/inspector/NetworkPanel.js: Ditto.
        * page/inspector/inspector.js: Add a window resize listener.

2007-10-27  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Oliver.
        
        - update for HashTable changes

        * bindings/js/JSSVGPODTypeWrapper.h:
        * dom/Document.h:
        * dom/QualifiedName.cpp:
        * dom/StyledElement.cpp:
        * ksvg2/svg/SVGAnimatedTemplate.h:
        * platform/FontCache.cpp:
        * platform/StringHash.h:
        (WTF::):
        * platform/TextEncodingRegistry.cpp:
        * platform/graphics/IntSizeHash.h:
        (WTF::):
        * plugins/win/PluginPackageWin.h:

2007-10-28  Alp Toker  <alp@atoker.com>

        Reviewed by Adam Roben.

        http://bugs.webkit.org/show_bug.cgi?id=15646
        [GTK] caretBlinkFrequency is hard-coded in Frame.cpp

        Abstract caretBlinkFrequency to RenderTheme.

        * page/Frame.cpp:
        (WebCore::Frame::selectionLayoutChanged):
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::caretShouldBlink):
        (WebCore::RenderThemeGtk::caretBlinkFrequency):
        * platform/gtk/RenderThemeGtk.h:
        * rendering/RenderTheme.h:

2007-10-27  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Don't print the line number in the Inspector Console if it is Zero.

        * page/inspector/ConsolePanel.js:

2007-10-27  Sam Weinig  <sam@webkit.org>

        Reviewed by Adam Roben.

        Fix http://bugs.webkit.org/show_bug.cgi?id=14953
        Implement window.console in WebCore

        - Adds a window.console object that has 4 methods (log, info, warn, and error)
          that send messages to the Chrome.  This moves functionality that was in the
          app down into WebCore.

        * DerivedSources.make:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/scripts/CodeGeneratorJS.pm: Add extended attribute
        to mark attributes as [Replacable] which indicates they can 
        overridden when set.
        * page/Chrome.cpp:
        (WebCore::Chrome::addMessageToConsole): Allow all messages to go
        up to the ChromeClient.
        * page/Console.cpp: Added.
        (WebCore::Console::Console):
        (WebCore::Console::disconnectFrame):
        (WebCore::Console::error):
        (WebCore::Console::info):
        (WebCore::Console::log):
        (WebCore::Console::warn):
        * page/Console.h: Added.
        * page/Console.idl: Added.
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::clear):
        (WebCore::DOMWindow::console):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:

2007-10-27  Eric Seidel  <eric@webkit.org>

        Reviewed by aroben.
        
        Remove legacy createFilterEffect function (causing extra filter tests to fail on windows)

        No functional changes, thus no tests.

        * ksvg2/svg/SVGFEBlendElement.cpp:
        (WebCore::SVGFEBlendElement::filterEffect):
        * ksvg2/svg/SVGFEColorMatrixElement.cpp:
        (WebCore::SVGFEColorMatrixElement::filterEffect):
        * ksvg2/svg/SVGFEComponentTransferElement.cpp:
        (WebCore::SVGFEComponentTransferElement::filterEffect):
        * ksvg2/svg/SVGFECompositeElement.cpp:
        (WebCore::SVGFECompositeElement::filterEffect):
        * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
        (WebCore::SVGFEDiffuseLightingElement::filterEffect):
        * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
        (WebCore::SVGFEDisplacementMapElement::filterEffect):
        * ksvg2/svg/SVGFEFloodElement.cpp:
        (WebCore::SVGFEFloodElement::filterEffect):
        * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
        (WebCore::SVGFEGaussianBlurElement::filterEffect):
        * ksvg2/svg/SVGFEImageElement.cpp:
        (WebCore::SVGFEImageElement::filterEffect):
        * ksvg2/svg/SVGFEMergeElement.cpp:
        (WebCore::SVGFEMergeElement::filterEffect):
        * ksvg2/svg/SVGFEOffsetElement.cpp:
        (WebCore::SVGFEOffsetElement::filterEffect):
        * ksvg2/svg/SVGFESpecularLightingElement.cpp:
        (WebCore::SVGFESpecularLightingElement::filterEffect):
        * ksvg2/svg/SVGFETileElement.cpp:
        (WebCore::SVGFETileElement::filterEffect):
        * ksvg2/svg/SVGFETurbulenceElement.cpp:
        (WebCore::SVGFETurbulenceElement::filterEffect):
        * platform/graphics/svg/SVGResourceFilter.h:
        * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
        * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
        * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:

2007-10-27  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix a crash when opening Zenoss server history view
          <rdar://problem/5530657>

        Test: fast/table/colgroup-relative.html

        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::LayoutState): Added a hasLayer() check before
        accessing layer().

2007-10-27  Julien  <julien.chaffraix@gmail.com>

        Reviewed by Alexey.

        http://bugs.webkit.org/show_bug.cgi?id=13141
        XMLHttpRequest should set readyState to 0 after abort()
        
        Test: http/tests/xmlhttprequest/xmlhttprequest-abort-readyState.html

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::open):
        (WebCore::XMLHttpRequest::abort):

2007-10-27  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix rotated border images by using a temporary subimage containing
          only the part we want to tile

        Test: fast/borders/border-image-rotate-transform.html

        * platform/graphics/cg/ImageCG.cpp:
        (WebCore::Image::drawPatternCallback):
        (WebCore::Image::drawPattern):

2007-10-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp.

        http://bugs.webkit.org/show_bug.cgi?id=15722
        [GTK] Refactor gtk/RenderThemeGtk and implement a few more methods

        Refactor/enhance GTK RenderTheme

        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::supportsFocus): added TextArea, Menulist, Radio, and Checkbox Appearances
        (WebCore::RenderThemeGtk::supportsFocusRing): call supportsFocus() to check if focus on appearance is supported
        (WebCore::RenderThemeGtk::controlSupportsTints): copied from Qt and Safari ports
        (WebCore::RenderThemeGtk::baselinePosition): copied from Qt and Safari ports
        (WebCore::RenderThemeGtk::paintCheckbox): moved painting in paintButton
        (WebCore::RenderThemeGtk::paintRadio): moved painting in paintButton
        (WebCore::RenderThemeGtk::paintButton): paint the different buttons here, checking for the right appearance before doing so
        (WebCore::RenderThemeGtk::paintMenuList): use 0 instead of NULLs
        (WebCore::RenderThemeGtk::adjustTextFieldStyle):
        (WebCore::RenderThemeGtk::getThemeData):
        * platform/gtk/RenderThemeGtk.h:
        (WebCore::RenderThemeGtk::supportsControlTints):

2007-10-27  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15555
        XMLHttpRequest does not support charset "x-user-defined", which can
        facilitate loading of binary data

        Test: http/tests/xmlhttprequest/binary-x-user-defined.html

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/TextCodecUserDefined.cpp: Added.
        (WebCore::TextCodecUserDefined::registerEncodingNames):
        (WebCore::newStreamingTextDecoderUserDefined):
        (WebCore::TextCodecUserDefined::registerCodecs):
        (WebCore::TextCodecUserDefined::decode):
        (WebCore::encodeComplexUserDefined):
        (WebCore::TextCodecUserDefined::encode):
        * platform/TextCodecUserDefined.h: Added.
        * platform/TextEncodingRegistry.cpp:
        (WebCore::buildBaseTextCodecMaps):

2007-10-27  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15467
        Setting innerHTML to blank string in application/xhtml+xml mode
        throws DOM Exception 7

        Test: fast/dom/blank-innerHTML.xhtml

        * dom/XMLTokenizer.cpp:
        (WebCore::parseXMLDocumentFragment): Bail out early if the input string is empty.

2007-10-26  Sam Weinig  <sam@webkit.org>

        Enable dragging the left sidebar using the separator.

        Reviewed by Anders (unless Mitz says otherwise).

        * page/inspector/DocumentPanel.js:
        * page/inspector/inspector.css:
        * page/inspector/inspector.html:
        * page/inspector/inspector.js:

2007-10-26  Sam Weinig  <sam@webkit.org>

        Fix an off by one error when resizing the Inspector find window.

        Reviewed by Hyatt.

        * page/inspector/inspector.js:

2007-10-26  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Adam.

        Fix fallout from r26072, which leads to all plugin streams for local
        resources being cancelled

        * loader/win/NetscapePlugInStreamLoaderWin.cpp:
        (WebCore::NetscapePlugInStreamLoader::didReceiveResponse): Ensure this
        is an HTTP response before checking the HTTP response code

2007-10-26  David Hyatt  <hyatt@apple.com>

        Fix for http://bugs.webkit.org/show_bug.cgi?id=15719, transformed box doesn't repaint properly
        when only translation changes.

        Move the updating of the transform to in between the old repaint and the new repaint.

        Reviewed by mitz

        fast/repaint/transform-translate.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositions):

2007-10-26  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Darin.

        <rdar://5557379> Crash in Silverlight when opening microsoft.com

        The crash is within Silverlight, and the latest version of the plugin
        does not exhibit this crash, so just avoid loading this version of the
        plugin.

        * plugins/win/PluginDatabaseWin.cpp: Added isPluginBlacklisted() and
        constants silverlightPluginMinRequiredVersionMSDWORD and
        silverlightPluginMinRequiredVersionLSDWORD. Their values are taken from 
        the version info of Silverlight 1.0.20926.0, which is a version known
        not to exhibit this crash
        (WebCore::PluginDatabaseWin::isPluginBlacklisted): Determine whether
        this plugin is blacklisted
        * plugins/win/PluginDatabaseWin.h:
        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackageWin::PluginPackageWin): Initialize m_fileVersion*
        (WebCore::PluginPackageWin::getFileVersion):
        (WebCore::PluginPackageWin::storeFileVersion): Read version info for
        the plugin, and store the file version
        (WebCore::PluginPackageWin::fetchInfo): After determining the name,
        description, and file version, determine whether this plug-in is
        blacklisted. If so, return false so this plug-in isn't loaded
        * plugins/win/PluginPackageWin.h:

2007-10-26  Sam Weinig  <sam@webkit.org>

        Reviewed by Adele Peterson.

        Fix for <rdar://problem/5421754>
        m_frameName member variable in HTMLPlugInElement unnecessary

        - Refactor the willRemove() method down into HTMLFrameOwnerElement now that
          we no longer need to use the m_frameName variable.

        * html/HTMLFrameElementBase.cpp:
        * html/HTMLFrameElementBase.h:
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::willRemove):
        * html/HTMLFrameOwnerElement.h:
        * html/HTMLPlugInElement.cpp:
        * html/HTMLPlugInElement.h:
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::requestObject):

2007-10-26  Adele Peterson  <adele@apple.com>

        Export _wkDrawCapsLockIndicator.

        * WebCore.base.exp:

2007-10-26  Adele Peterson  <adele@apple.com>

        Reviewed by Oliver.

        Adding WebKitSystemInterface support for the caps lock indicator

        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

2007-10-26  Tristan O'Tierney  <tristan@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5555053> REGRESSION:9A581: Window disappears when opening http://research.microsoft.com/users/darkok/
        The problem was caused by checkin r24654. This change moved explicit bounds checking into adjustWindowRect
        but failed to account for bounds checking (instead replaced with bounds clipping).  This caused issues
        when NaN was used. This patch goes one step further and does NaN checking to prevent the possibility of
        setting window bounds to NaN before an update occurs.

        Test: fast/dom/Window/window-resize-nan.html
        
        * bindings/js/kjs_window.cpp:
        (KJS::adjustWindowRect):
        Added a new parameter, pendingChanges, which takes pending changes to the window
        rect, and if they are valid (not NaN) sets them on window.
        
        (KJS::WindowFunc::callAsFunction):
        Adjusted uses of adjustWindowRect to take new update parameter.

2007-10-26  Sam Weinig  <sam@webkit.org>

        Reviewed by Tim Hatcher.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=15175
        Cannot copy text of errors from Web Inspector from Console view

        * page/inspector/inspector.css: add -webkit-user-select: text for console messages.

2007-10-26  Sam Weinig  <sam@webkit.org>

        Reviewed by Tim Hatcher.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=15446
        Web Inspector find window is not resizable

        - Adds ability to resize the find window.
        - Fixes bug that messed up the find window when resizing the left sidebar. 

        * page/inspector/inspector.css:
        * page/inspector/inspector.html:
        * page/inspector/inspector.js:

2007-10-26  Ada Chan  <adachan@apple.com>

        Update m_current index after we've removed an item:
        - if item removed is before m_current, decrement m_current
        - if the current item is removed, make sure m_current is within bounds.

        Reviewed by Darin.

        * history/BackForwardList.cpp:
        (WebCore::BackForwardList::removeItem):

2007-10-26  Mark Rowe  <mrowe@apple.com>

        Debug build fix.

        * bindings/js/kjs_proxy.cpp:
        (WebCore::KJSProxy::~KJSProxy):

2007-10-26  Maciej Stachowiak  <mjs@apple.com>

        No review, build fix.

        * bindings/objc/WebScriptObject.mm:
        (+[WebScriptObject throwException:]):
        (-[WebScriptObject setException:]):

2007-10-26  Maciej Stachowiak  <mjs@apple.com>

        Rubber Stamped by Mark.

        - fix build

        * bridge/mac/WebCoreScriptDebugger.mm:
        (-[WebCoreScriptCallFrame scopeChain]):
        (-[WebCoreScriptCallFrame functionName]):
        (-[WebCoreScriptCallFrame evaluateWebScript:]):

2007-10-26  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Oliver.

        - update for JavaScriptCore header changes

        * bindings/objc/WebScriptObject.mm:
        * bridge/mac/WebCoreScriptDebugger.mm:

2007-10-26  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=15693
        [GTK] Paging does not work when widget is added to a GtkScrolledWindow

        Eliminate MagicGtkScrollConstant in favour of the same calculations as
        GtkTextView for step and page increments. This also makes paging work,
        as the page increment was previously always 0.

        * platform/gtk/ScrollViewGtk.cpp:
        (WebCore::ScrollView::updateScrollbars):

2007-10-25  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt and Sam Weinig.

        Build fix

        * platform/graphics/cg/ImageCG.cpp:
        (WebCore::Image::drawPattern):

2007-10-23  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp.

        http://bugs.webkit.org/show_bug.cgi?id=15656
        [GTK] Implement WebCore::Widget::isEnabled/setEnabled

        * platform/gtk/WidgetGtk.cpp:
        (WebCore::Widget::isEnabled):
        (WebCore::Widget::setEnabled): Implemented.

2007-10-25  David Hyatt  <hyatt@apple.com>

        Fix for bug 15672, background images don't tile properly inside transforms.  This patch fixes background
        tiling to work in the presence of transforms and fixes bugs in both SVG and CSS transforms.

        Reviewed by aroben and mitz

        * WebCore.base.exp:
        * platform/graphics/Image.cpp:
        (WebCore::Image::setData):
        * platform/graphics/cg/ImageCG.cpp:
        (WebCore::ImageInfo::ImageInfo):
        (WebCore::Image::drawPatternCallback):
        (WebCore::Image::drawPattern):
        * platform/graphics/mac/GraphicsContextMac.mm:
        (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

2007-10-25  Brady Eidson  <beidson@apple.com>

        Blind build fix attempt

        * WebCore.pro:

2007-10-25  Brady Eidson  <beidson@apple.com>

        Reviewed by Anders and Sam

        Bulk rename of platform/sql/SQL* to platform/sql/SQLite*
        
        This is more accurate in that there is no realistic "SQL" abstraction, the classes are obviously
        tied extremely close to SQLite, and is necessitated by the introduction of "SQLTransaction" in 
        the HTML5 database API which we are adopting.

        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::iconDatabaseSyncThread):
        (WebCore::databaseVersionNumber):
        (WebCore::isValidDatabase):
        (WebCore::createDatabaseTables):
        (WebCore::IconDatabase::performOpenInitialization):
        (WebCore::IconDatabase::checkIntegrity):
        (WebCore::IconDatabase::performURLImport):
        (WebCore::IconDatabase::writeToDatabase):
        (WebCore::IconDatabase::pruneUnretainedIcons):
        (WebCore::IconDatabase::checkForDanglingPageURLs):
        (WebCore::IconDatabase::imported):
        (WebCore::IconDatabase::setImported):
        (WebCore::readySQLiteStatement):
        (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
        (WebCore::IconDatabase::removePageURLFromSQLDatabase):
        (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
        (WebCore::IconDatabase::addIconURLToSQLDatabase):
        (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
        (WebCore::IconDatabase::removeIconFromSQLDatabase):
        (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
        * loader/icon/IconDatabase.h:
        * loader/icon/IconRecord.cpp:
        * platform/sql/SQLAuthorizer.cpp: Removed.
        * platform/sql/SQLAuthorizer.h: Removed.
        * platform/sql/SQLDatabase.cpp: Removed.
        * platform/sql/SQLDatabase.h: Removed.
        * platform/sql/SQLStatement.cpp: Removed.
        * platform/sql/SQLStatement.h: Removed.
        * platform/sql/SQLTransaction.cpp: Removed.
        * platform/sql/SQLTransaction.h: Removed.
        * platform/sql/SQLiteAuthorizer.cpp: Copied from platform/sql/SQLAuthorizer.cpp.
        * platform/sql/SQLiteAuthorizer.h: Copied from platform/sql/SQLAuthorizer.h.
        (WebCore::SQLiteAuthorizer::~SQLiteAuthorizer):
        * platform/sql/SQLiteDatabase.cpp: Copied from platform/sql/SQLDatabase.cpp.
        (WebCore::SQLiteDatabase::SQLiteDatabase):
        (WebCore::SQLiteDatabase::~SQLiteDatabase):
        (WebCore::SQLiteDatabase::open):
        (WebCore::SQLiteDatabase::close):
        (WebCore::SQLiteDatabase::setFullsync):
        (WebCore::SQLiteDatabase::setSynchronous):
        (WebCore::SQLiteDatabase::setBusyTimeout):
        (WebCore::SQLiteDatabase::setBusyHandler):
        (WebCore::SQLiteDatabase::executeCommand):
        (WebCore::SQLiteDatabase::returnsAtLeastOneResult):
        (WebCore::SQLiteDatabase::tableExists):
        (WebCore::SQLiteDatabase::clearAllTables):
        (WebCore::SQLiteDatabase::runVacuumCommand):
        (WebCore::SQLiteDatabase::lastInsertRowID):
        (WebCore::SQLiteDatabase::lastChanges):
        (WebCore::SQLiteDatabase::lastError):
        (WebCore::SQLiteDatabase::lastErrorMsg):
        (WebCore::SQLiteDatabase::authorizerFunction):
        (WebCore::SQLiteDatabase::setAuthorizer):
        (WebCore::SQLiteDatabase::lock):
        (WebCore::SQLiteDatabase::unlock):
        * platform/sql/SQLiteDatabase.h: Copied from platform/sql/SQLDatabase.h.
        * platform/sql/SQLiteStatement.cpp: Copied from platform/sql/SQLStatement.cpp.
        (WebCore::SQLiteStatement::SQLiteStatement):
        (WebCore::SQLiteStatement::~SQLiteStatement):
        (WebCore::SQLiteStatement::prepare):
        * platform/sql/SQLiteStatement.h: Copied from platform/sql/SQLStatement.h.
        (WebCore::SQLiteStatement::database):
        * platform/sql/SQLiteTransaction.cpp: Copied from platform/sql/SQLTransaction.cpp.
        (WebCore::SQLiteTransaction::SQLiteTransaction):
        (WebCore::SQLiteTransaction::~SQLiteTransaction):
        (WebCore::SQLiteTransaction::begin):
        (WebCore::SQLiteTransaction::commit):
        (WebCore::SQLiteTransaction::rollback):
        * platform/sql/SQLiteTransaction.h: Copied from platform/sql/SQLTransaction.h.
        * storage/Database.cpp:
        (WebCore::retrieveTextResultFromDatabase):
        (WebCore::setTextValueInDatabase):
        (WebCore::Database::performExecuteSql):
        (WebCore::Database::performGetTableNames):
        (WebCore::Database::executeSql):
        * storage/Database.h:
        * storage/DatabaseAuthorizer.h:
        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::fullPathForDatabase):
        (WebCore::DatabaseTracker::populateOrigins):
        (WebCore::DatabaseTracker::databaseNamesForOrigin):
        (WebCore::DatabaseTracker::addDatabase):
        * storage/DatabaseTracker.h:

2007-10-25  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15650
        XML attribute nodes are not importable

        Tests: fast/dom/import-attribute-node.html
               fast/dom/import-document-fragment.html

        * dom/Document.cpp:
        (WebCore::Document::importNode): Implemented for Attribute and DocumentFragment nodes.

2007-10-25  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15362
          <rdar://problem/5558715> Safari Crashes when opening a JS TreeGrid widget

        Test: fast/dynamic/insert-before-table-part-in-continuation.html

        * rendering/RenderFlow.cpp:
        (WebCore::RenderFlow::addChildWithContinuation): If beforeChild's
        parent is an anonymous table part, let the table figure out where to
        insert the new child.

2007-10-25  Alp Toker  <alp@atoker.com>

        Reviewed by Brady.

        http://bugs.webkit.org/show_bug.cgi?id=15686
        GtkLauncher aborts on launch due to uninitialized threading subsystem

        Re-enable database support in the GTK+ port, with a fix.

        * WebCore.pro:

2007-10-25  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Steve.

        <rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a 
        java page

        Previous patch erroneously compared a path and a
        path-including-filename. This corrects that. It also caches the result
        of safariPluginsPath() and uses shell API funcs for determining filename
        and parent directory from a full path.

        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::safariPluginsPath): Cache return value. Use API functions to
        build the path
        (WebCore::PluginDatabaseWin::pluginForMIMEType): Compare again plugin's
        parent directory, not full path
        (WebCore::PluginDatabaseWin::pluginForExtension): Same
        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackageWin::PluginPackageWin): Store parent directory
        * plugins/win/PluginPackageWin.h:
        (WebCore::PluginPackageWin::parentDirectory):
        * plugins/win/PluginStreamWin.cpp:
        (WebCore::PluginStreamWin::didReceiveData):

2007-10-25  Alp Toker  <alp@atoker.com>

        Unreviewed fix to make the GTK+ port run.

        http://bugs.webkit.org/show_bug.cgi?id=15686
        GtkLauncher aborts on launch due to uninitialized threading subsystem

        Disable database support until #15686 is fixed.

        * WebCore.pro:

2007-10-25  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Fixed a crash in the Qt 4.4 based text iterators when they're called with a null string.

        * platform/qt/TextBreakIteratorQt.cpp:
        (WebCore::wordBreakIterator):
        (WebCore::characterBreakIterator):
        (WebCore::lineBreakIterator):
        (WebCore::sentenceBreakIterator):

2007-10-25  Holger Freyther  <zecke@selfish.org>

        Reviewed by Simon Hausmann <hausmann@kde.org>.

        * We need to set a != 0 status code for the fast/loader/xmlhttprequest-missing-file-exception.html
        * libxml2 has the semantic that when writing an empty string and finishing it will report an error. For QXmlStreamReader this is valid.
        * This is causing some regressions...
        

        * dom/XMLTokenizer.cpp:
        (WebCore::XMLTokenizer::XMLTokenizer):
        (WebCore::XMLTokenizer::write):
        (WebCore::XMLTokenizer::end):
        * dom/XMLTokenizer.h:

2007-10-25  Holger Freyther  <zecke@selfish.org>

        Reviewed by Simon Hausmann <hausmann@kde.org>.

        * fast/dom/onerror-img.html regressed due checking the JobStates because in case of error (e.g. not being able to connect) the job will no be started.
        * Use the error message from Qt. It might or might not be translated.

        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::WebCoreSynchronousLoader::didFail):

2007-10-25  Holger Freyther  <zecke@selfish.org>

        Reviewed by Simon Hausmann <hausmann@kde.org>.

        * Implement our own queuing of network jobs to allow special handling of synchronous jobs. This makes us pass the fast/dom/xmlhttprequest-html-response-encoding.html test without a crash. Sync jobs will get a special treatment over the normals ones and in theory more than one sync job is supported.
        * This should be thread-safe besides QWebNetworkJob::{ref,deref}
        

        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::ResourceHandle::loadResourceSynchronously):

2007-10-25  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Add support for list box theme colors and styled menu list buttons.

        Remove obsolete FIXMEs.

        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::RenderThemeGtk):
        (WebCore::RenderThemeGtk::paintCheckbox):
        (WebCore::RenderThemeGtk::paintRadio):
        (WebCore::RenderThemeGtk::paintButton):
        (WebCore::RenderThemeGtk::adjustMenuListStyle):
        (WebCore::RenderThemeGtk::paintMenuList):
        (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor):
        (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor):
        (WebCore::RenderThemeGtk::gtkTreeView):
        * platform/gtk/RenderThemeGtk.h:

2007-10-25  Eric Seidel  <eric@webkit.org>

        Reviewed by Geoff.

        * bindings/js/kjs_window.h: fix bogus comment, s/DOMNode/DOMObject/

2007-10-24  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej.
        
        Make Window subclass from JSGlobalObject (for a .5% win in Sunspider)
        http://bugs.webkit.org/show_bug.cgi?id=15681

        No test cases necessary, no functional changes.

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/kjs_binding.cpp:
        (KJS::ScriptInterpreter::ScriptInterpreter):
        * bindings/js/kjs_binding.h:
        * bindings/js/kjs_proxy.cpp:
        (WebCore::KJSProxy::initScriptIfNeeded):
        * bindings/js/kjs_window.cpp:
        (KJS::Window::Window):
        * bindings/js/kjs_window.h:
        * bindings/objc/WebScriptObject.mm:
        (_didExecute):
        * bridge/mac/WebCoreScriptDebugger.mm:

2007-10-24  Adam Roben  <aroben@apple.com>

        Add font database initialization code to WebCore

        Reviewed by Ada.

        * WebCore.vcproj/WebCore.vcproj: Added FontDatabase.{cpp,h}.
        * platform/win/FontDatabase.cpp: Added.
        (WebCore::systemFontsDirectory):
        (WebCore::fontsPlistPath):
        (WebCore::systemHasFontsNewerThanFontsPlist):
        (WebCore::readFontPlist):
        (WebCore::populateFontDatabaseFromPlist):
        (WebCore::populateFontDatabaseFromFileSystem):
        (WebCore::writeFontDatabaseToPlist):
        (WebCore::populateFontDatabase): This is the only function callable
        from outside this file. It populates the font database once, either
        from the fonts plist, or from the filesystem (and then saves a new
        fonts plist).
        * platform/win/FontDatabase.h: Added.

2007-10-24  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.

        Correcting the fix for:
        <rdar://problem/5544856> 
        REGRESSION: After typing 2-byte text, undo only undoes one keystroke at a time
        
        Made removal of the previous composition part of the current Undo step in the 
        case where the new composition is the empty string, too.

        * editing/Editor.cpp:
        (WebCore::Editor::confirmComposition): Call the new TypingCommand::deleteSelection,
        which either has the currently open typing command delete the current selection, or
        opens a new typing command (of type DeleteSelection) if one is not already open.
        (WebCore::Editor::setComposition): Ditto.
        * editing/TypingCommand.cpp:
        (WebCore::TypingCommand::deleteSelection): Added.
        (WebCore::TypingCommand::doApply): Handle DeleteSelection.
        (WebCore::TypingCommand::deleteKeyPressed): Clarified which deleteSelection
        is called.
        (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
        (WebCore::TypingCommand::preservesTypingStyle): Handle DeleteSelection.
        * editing/TypingCommand.h:

2007-10-24  Sam Weinig  <sam@webkit.org>

        Build fix.

        * WebCore.vcproj/WebCore.vcproj:

2007-10-24  Alice Liu  <alice.liu@apple.com>

        Reviewed by Oliver.

        Fix <rdar://5410959>  editing/selection/drag-to-contenteditable-iframe.html fails on Windows
        
        * page/win/EventHandlerWin.cpp:
        (WebCore::EventHandler::passMouseMoveEventToSubframe):
        Some mouse move events are actually drags, which on mac return early from this function.
        Adding the same logic to its Windows equivalent.  

2007-10-24  Brady Eidson  <beidson@apple.com>

        Reviewed by Anders

        <rdar://5554130> DatabaseTracker.o has a global initializer

        Since DatabaseTracker is a singleton, it makes much more sense to keep the database path as a member variable.
        Now constructing the shared DatabaseTracker no longer implicitly opens it - It is only opened when the databases 
        path is set.
        
        * WebCore.vcproj/WebCore.vcproj: Copy WebCore/storage headers for WebKit build
        
        * storage/Database.cpp:
        (WebCore::Database::~Database): Remove bogus assertion
        
        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::DatabaseTracker): Does nothing now!  Move this code to openTrackerDatabase
        (WebCore::DatabaseTracker::setDatabasePath): Set the member variable, also closing/opening the database if needed
        (WebCore::DatabaseTracker::databasePath):
        (WebCore::DatabaseTracker::openTrackerDatabase): To open and validate the Databases db, moved from the c'tor
        (WebCore::DatabaseTracker::fullPathForDatabase): Return the member variable
        * storage/DatabaseTracker.h:

2007-10-24  David Hyatt  <hyatt@apple.com>

        Don't try to gap fill transformed selections.  Fix the invalidation of selection to use the clip to visible content
        code path so that it works with multi-column layouts and transforms.

        Reviewed by aroben

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::isSelectionRoot):
        (WebCore::RenderBlock::fillSelectionGaps):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::setSelection):

2007-10-24  Eric Seidel  <eric@webkit.org>

        No review, I want to tickle the CIA bot to test changes,
        and took this as an opportunity to clean up some old change logs.

        * ChangeLog-2005-08-23: update email address
        * ChangeLog-2006-12-31: fix spelling mistakes

2007-10-24  Dan Bernstein  <mitz@apple.com>

        Reviewed by Oliver Hunt.

        - add "(anonymous)" to the renderName of anonymous table cells, rows and sections

        * rendering/RenderTableCell.h:
        (WebCore::RenderTableCell::renderName):
        * rendering/RenderTableRow.h:
        (WebCore::RenderTableRow::renderName):
        * rendering/RenderTableSection.h:
        (WebCore::RenderTableSection::renderName):

2007-10-24  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Bug 15476: DOM tree fully expands some elements when arrowing up
        http://bugs.webkit.org/show_bug.cgi?id=15476

        Add a new expandTreeElementsWhenArrowing option to TreeOutline. This option
        is used only for the sidebar and search results.

        * page/inspector/inspector.js: Opt-in for the sidebar and search results.
        * page/inspector/treeoutline.js: Add expandTreeElementsWhenArrowing and pass
          this option to traverseNextTreeElement and traversePreviousTreeElement.

2007-10-24  Anders Carlsson  <andersca@apple.com>

        Reviewed by Geoff and Mitz.

        <rdar://problem/5493833>
        REGRESSION: ~5MB of image data leaked @ cuteoverload.com (often seen while browsing other sites, too)

        * bindings/js/kjs_binding.cpp:
        (KJS::ScriptInterpreter::markDOMNodesForDocument):
        If an image element that is currently loading an image is not in the document,
        it should still be marked.
        
        * bindings/js/kjs_html.cpp:
        (WebCore::ImageConstructorImp::construct):
        Force the document wrapper to be created.
        
        * html/HTMLImageElement.h:
        (WebCore::HTMLImageElement::haveFiredLoadEvent):
        New method which calls down to the image loader.
        
        * html/HTMLImageLoader.cpp:
        (WebCore::HTMLImageLoader::HTMLImageLoader):
        (WebCore::HTMLImageLoader::~HTMLImageLoader):
        (WebCore::HTMLImageLoader::setLoadingImage):
        (WebCore::HTMLImageLoader::dispatchLoadEvent):
        Remove code that's not needed anymore.
        
        * html/HTMLImageLoader.h:
        (WebCore::HTMLImageLoader::haveFiredLoadEvent):
        Make this public.

2007-10-23  Adam Roben  <aroben@apple.com>

        Move Windows safe file creation code into WebCore from WebPreferences

        Reviewed by Brady.

        * platform/FileSystem.h:
        * platform/win/FileSystemWin.cpp:
        (WebCore::safeCreateFile): Moved here from WebKit/win/WebPreferences.cpp.

2007-10-23  Adam Roben  <aroben@apple.com>

        Add methods to FileSystemWin to get some user profile directories

        These directories are used to hold things like preferences, caches,
        etc.

        Reviewed by Brady.

        * platform/FileSystem.h: Added new method declarations for Windows
        only.
        * platform/win/FileSystemWin.cpp:
        (WebCore::bundleName): Added.
        (WebCore::storageDirectory): Added.
        (WebCore::cachedStorageDirectory): Added.
        (WebCore::localUserSpecificStorageDirectory): Added. Returns the
        directory where WebKit should store any user-specific data that should
        stay local to the current machine (i.e., shouldn't be stored in a
        roaming profile).
        (WebCore::roamingUserSpecificStorageDirectory): Added. Returns the
        directory where WebKit should store any user-specific data that should
        move with the user from machine to machine (i.e., should be stored in
        a roaming profile).

2007-10-24  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=15659
        InlineTextBox does not setStrokeStyle() as needed

        GraphicsContextCairo workaround to support a GraphicsContextCG quirk:

        Save and restore the StrokeStyle manually.

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

2007-10-24  Julien Chaffraix  <julien.chaffraix@gmail.com>

        Reviewed by Darin.

        Patch for http://bugs.webkit.org/show_bug.cgi?id=15356
        Bug 15356: getResponseHeader and getAllResponseHeaders do not throw exceptions

        - getAllResponseHeaders and getResponseHeader throws INVALID_STATE_ERR exception as specified in the specification

        - Add the check to field-name production in getResponseHeader (call to isValidToken) and returns an empty string if the header is not valid (Opera and IE behaviour)

        - Updated XMLHttpRequest::responseMIMEType() to keep its behaviour

        Tests: http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getAllRequestHeaders.html
               http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getRequestHeader.html
               http/tests/xmlhttprequest/xmlhttprequest-invalidHeader-getRequestHeader.html

        * bindings/js/JSXMLHttpRequest.cpp:
        (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::getAllResponseHeaders):
        (WebCore::XMLHttpRequest::getResponseHeader):
        (WebCore::XMLHttpRequest::responseMIMEType):
        * xml/XMLHttpRequest.h:

2007-10-24  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        implement most of DragData.

        * platform/qt/DragDataQt.cpp:
        (WebCore::DragData::containsColor):
        (WebCore::DragData::containsFiles):
        (WebCore::DragData::asFilenames):
        (WebCore::DragData::containsPlainText):
        (WebCore::DragData::asPlainText):
        (WebCore::DragData::asColor):
        (WebCore::DragData::containsCompatibleContent):
        (WebCore::DragData::containsURL):

2007-10-24  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        remove a stupid notImplemented() warning and implement PasteBoad::clear().

        * platform/qt/PasteboardQt.cpp:

2007-10-24  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        implement Pasteboard::documentFragment(), and fix a mem leak.

        * platform/qt/PasteboardQt.cpp:
        (WebCore::Pasteboard::generalPasteboard):
        (WebCore::Pasteboard::documentFragment):

2007-10-24  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        Simplify the PlatformKeyEvent constructor. No need to have an extra boolean for isKeyUp in there, as the QKeyEvent has the information.

        * platform/PlatformKeyboardEvent.h:
        * platform/qt/PlatformKeyboardEventQt.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):

2007-10-24  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        use the new QTextBoundaryFinder class in Qt.

        * platform/qt/TextBoundaries.cpp:
        (WebCore::findNextWordFromIndex):
        (WebCore::findWordBoundary):
        * platform/qt/TextBreakIteratorQt.cpp:
        (WebCore::wordBreakIterator):
        (WebCore::characterBreakIterator):
        (WebCore::lineBreakIterator):
        (WebCore::sentenceBreakIterator):
        (WebCore::textBreakFirst):
        (WebCore::textBreakNext):
        (WebCore::textBreakPreceding):
        (WebCore::textBreakFollowing):
        (WebCore::textBreakCurrent):
        (WebCore::isTextBreak):

2007-10-24  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - http://bugs.webkit.org/show_bug.cgi?id=15657
          change static hash tables to use powers of two for speed

        * bindings/scripts/CodeGeneratorJS.pm: Updated to generate new format.

2007-10-24  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Make the implementation of pathByAppendingComponent use QDir.

        * platform/qt/FileSystemQt.cpp:

2007-10-24  David Hyatt  <hyatt@apple.com>

        Make repainting work with transforms.

        Reviewed by John Sullivan

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeAbsoluteRepaintRect):

2007-10-23  Alp Toker  <alp@atoker.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=14412
        [GDK] Clipboard support

        Initial clipboard implementation for the GTK+ port.

        * platform/gtk/ClipboardGtk.cpp:
        (WebCore::Editor::newGeneralClipboard):
        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::Pasteboard::generalPasteboard):
        (WebCore::Pasteboard::Pasteboard):
        (WebCore::Pasteboard::~Pasteboard):
        (WebCore::Pasteboard::writeSelection):
        (WebCore::Pasteboard::writeImage):
        (WebCore::Pasteboard::clear):
        (WebCore::Pasteboard::plainText):
        * platform/gtk/TemporaryLinkStubs.cpp:

2007-10-23  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Fixes the Network panel so that it refreshes as needed.

        * page/inspector/ConsolePanel.js: Call the base class show() and hide() first.
        * page/inspector/NetworkPanel.js: Add refreshNeeded and refreshIfNeeded back. Ditto.

2007-10-23  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Oliver Hunt.

        <rdar://problem/5544856> 
        REGRESSION: After typing 2-byte text, undo only undoes one keystroke at a time
        
        No layout test for now because I'm having trouble getting Undo during a layout
        test to only undo the last Undo step, and I want to write a test that fails
        without the code change.

        * editing/Editor.cpp:
        (WebCore::Editor::confirmComposition): When we replace the previous composition,
        delete it with a sub-command of the command used to insert the new composition,
        instead of with a separate command.  No new code was added because insertText
        already deletes the current selection.
        (WebCore::Editor::setComposition): Ditto.

2007-10-23  Adam Roben  <aroben@apple.com>

        Fix the behavior of pathByAppendingComponent when path is empty

        We now use the Windows Shell API function PathAppendW instead of
        rolling our own broken implementation.

        Reviewed by Anders.

        * platform/win/FileSystemWin.cpp:
        (WebCore::pathByAppendingComponent):

2007-10-23  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        Fix for <rdar://problem/5543228> CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::HTMLInputElement::defaultEventHandler + 872

        Test: fast/forms/textfield-onchange-deletion.html

        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
          Refetch the renderer since arbitrary JS code run during onchange can do anything, including destroying it.

2007-10-23  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Sam Weinig.

        - Made seperate files for the various classes in ResourcePanel.js.
        - Broke up ResourcePanel.js and created seperate panel classes for different resource types.
        - Moved View code down to the Panel base-class.
        - Reduced code duplication in DatabasePanel.js by sub-classing from the new ResourcePanel.

        * page/inspector/DatabasePanel.js:
        * page/inspector/DocumentPanel.js: Added.
        * page/inspector/FontPanel.js: Added.
        * page/inspector/ImagePanel.js: Added.
        * page/inspector/Panel.js: Added.
        * page/inspector/PropertiesSection.js: Added.
        * page/inspector/Resource.js:
        * page/inspector/ResourcePanel.js:
        * page/inspector/SidebarPane.js: Added.
        * page/inspector/SourcePanel.js: Added.
        * page/inspector/inspector.css:
        * page/inspector/inspector.html:
        * page/inspector/inspector.js:

2007-10-23  Anders Carlsson  <andersca@apple.com>

        Correct the version #if check.
        
        * platform/sql/SQLDatabase.cpp:
        (WebCore::SQLDatabase::authorizerFunction):

2007-10-23  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Anders.

        <rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a 
        java page

        It is possible to load Mozilla's Java plugin instead of our own, which
        can lead to a crash. The fix is to prefer plugins in our own Plugins
        directory when searching for a plugin.

        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::safariPluginsPath): Return the path to our own Plugins
        directory
        (WebCore::PluginDatabaseWin::defaultPluginPaths): Use new method
        safariPluginsPath()
        (WebCore::PluginDatabaseWin::pluginForMIMEType): If the plugin's path is
        our Plugins path, return this plugin. Otherwise, continue scanning the
        list of plugins
        (WebCore::PluginDatabaseWin::pluginForExtension): Same
        * plugins/win/PluginPackageWin.h:
        (WebCore::PluginPackageWin::path): Return this plugin's path

2007-10-23  Jasper Bryant-Greene  <m@ni.ac.nz>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15058
        Precedence fault in KeyEventGdk causes shift, control, alt etc to work incorrectly

        Corrected precendence fault which was causing Shift, Alt, Control and
        Meta to behave incorrectly on GTK.

        Coding style fix by Alp.

        * platform/gtk/KeyEventGtk.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):

2007-10-23  Sam Weinig  <sam@webkit.org>

        Reviewed by Tim Hatcher.

        Add resizing of the DOM view right sidebar.  This allows us to actually see the values now.

        * page/inspector/ResourcePanel.js:
        * page/inspector/inspector.css:
        * page/inspector/inspector.js:
        * page/inspector/utilities.js:

2007-10-23  David Hyatt  <hyatt@apple.com>

        Get basic hit testing right for transforms.

        Reviewed by ollliej

        * platform/graphics/AffineTransform.cpp:
        (WebCore::AffineTransform::mapPoint):
        * platform/graphics/AffineTransform.h:
        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::nodeAtPoint):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::nodeAtPoint):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::hitTest):
        (WebCore::RenderLayer::hitTestLayer):
        * rendering/RenderLayer.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::hitTest):
        * rendering/RenderObject.h:

2007-10-23  Eric Seidel  <eric@webkit.org>

        Reviewed by Mark Rowe.

        Fix leaks seen on TOT from new font-face code.

        * ksvg2/svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::rebuildFontFace): use a stack allocated CSSProperty instead of mallocing

2007-10-23  Eric Seidel  <eric@webkit.org>

        Build fix only, no review.

        Sacrifice three virgin hours upon the altar of the heathen XCode gods
        and pray that our build troubles are finally over. :(

        * DerivedSources.make: add DOMSVGException.h
        * WebCore.xcodeproj/project.pbxproj: Remove DOMSVG*Interal.h files from "Copy Generated Headers" phase. Why?  Who knows.

2007-10-22  Steve Falkenburg  <sfalken@apple.com>

        Fix build.

        * plugins/win/PluginViewWin.cpp:

2007-10-22  Eric Seidel  <eric@webkit.org>

        Build fix only, no review.

        * WebCore.xcodeproj/project.pbxproj: re-add all DOMSVG headers to copy-files phase to make sure.

2007-10-22  Eric Seidel  <eric@webkit.org>

        Build fix only, no review.

        * WebCore.xcodeproj/project.pbxproj: make sure DOMSVGAnimateElement.h is copied into headers.

2007-10-22  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej.

        Fix build by properly exposing SVG font-face dom bindings.

        * DerivedSources.make:
        * WebCore.vcproj/WebCore.vcproj: add font-face files to build
        * WebCore.xcodeproj/project.pbxproj: add missing DOM bindings files
        * bindings/js/JSSVGElementWrapperFactory.cpp:
        * bindings/objc/DOM.mm:
        (WebCore::createElementClassMap):
        * bindings/objc/DOMSVG.h:
        * ksvg2/svg/SVGDefinitionSrcElement.idl: inherit from SVGElement

2007-10-22  Mark Rowe  <mrowe@apple.com>

        Gtk build fix.

        * WebCore.pro:

2007-10-22  Darin Adler  <darin@apple.com>

        - a first cut at fixing the Qt and GTK builds

        * WebCore.pro: Add new .idl and .cpp files.
        * DerivedSources.make: Re-sorted.

2007-10-22  Eric Seidel  <eric@webkit.org>

        Reviewed by hyatt.

        Implement <font-face> and friends for SVG.
        http://bugs.webkit.org/show_bug.cgi?id=10652

        * DerivedSources.make:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSSVGElementWrapperFactory.cpp:
        * dom/Document.cpp:
        (WebCore::Document::mappedElementSheet):
        (WebCore::Document::recalcStyleSelector):
        * dom/Document.h:
        * ksvg2/scripts/make_names.pl:
        * ksvg2/svg/SVGDefinitionSrcElement.cpp: Added.
        (WebCore::SVGDefinitionSrcElement::SVGDefinitionSrcElement):
        (WebCore::SVGDefinitionSrcElement::~SVGDefinitionSrcElement):
        (WebCore::SVGDefinitionSrcElement::childrenChanged):
        * ksvg2/svg/SVGDefinitionSrcElement.h: Added.
        * ksvg2/svg/SVGDefinitionSrcElement.idl: Added.
        * ksvg2/svg/SVGFontFaceElement.cpp: Added.
        (WebCore::SVGFontFaceElement::SVGFontFaceElement):
        (WebCore::SVGFontFaceElement::~SVGFontFaceElement):
        (WebCore::cssPropertyIdForName):
        (WebCore::mapAttributeToCSSProperty):
        (WebCore::cssPropertyIdForSVGAttributeName):
        (WebCore::SVGFontFaceElement::parseMappedAttribute):
        (WebCore::SVGFontFaceElement::rebuildFontFace):
        (WebCore::SVGFontFaceElement::childrenChanged):
        * ksvg2/svg/SVGFontFaceElement.h: Added.
        * ksvg2/svg/SVGFontFaceElement.idl: Added.
        * ksvg2/svg/SVGFontFaceFormatElement.cpp: Added.
        (WebCore::SVGFontFaceFormatElement::SVGFontFaceFormatElement):
        (WebCore::SVGFontFaceFormatElement::~SVGFontFaceFormatElement):
        (WebCore::SVGFontFaceFormatElement::childrenChanged):
        * ksvg2/svg/SVGFontFaceFormatElement.h: Added.
        * ksvg2/svg/SVGFontFaceFormatElement.idl: Added.
        * ksvg2/svg/SVGFontFaceNameElement.cpp: Added.
        (WebCore::SVGFontFaceNameElement::SVGFontFaceNameElement):
        (WebCore::SVGFontFaceNameElement::~SVGFontFaceNameElement):
        (WebCore::SVGFontFaceNameElement::srcValue):
        * ksvg2/svg/SVGFontFaceNameElement.h: Added.
        * ksvg2/svg/SVGFontFaceNameElement.idl: Added.
        * ksvg2/svg/SVGFontFaceSrcElement.cpp: Added.
        (WebCore::SVGFontFaceSrcElement::SVGFontFaceSrcElement):
        (WebCore::SVGFontFaceSrcElement::~SVGFontFaceSrcElement):
        (WebCore::SVGFontFaceSrcElement::srcValue):
        (WebCore::SVGFontFaceSrcElement::childrenChanged):
        * ksvg2/svg/SVGFontFaceSrcElement.h: Added.
        * ksvg2/svg/SVGFontFaceSrcElement.idl: Added.
        * ksvg2/svg/SVGFontFaceUriElement.cpp: Added.
        (WebCore::SVGFontFaceUriElement::SVGFontFaceUriElement):
        (WebCore::SVGFontFaceUriElement::~SVGFontFaceUriElement):
        (WebCore::SVGFontFaceUriElement::srcValue):
        (WebCore::SVGFontFaceUriElement::childrenChanged):
        * ksvg2/svg/SVGFontFaceUriElement.h: Added.
        * ksvg2/svg/SVGFontFaceUriElement.idl: Added.
        * ksvg2/svg/svgtags.in:

2007-10-22  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Anders.

        <rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a 
        java page

        We purposefully do not destroy our Java VM when its reference count
        reaches 0, but we were unloading our JavaPlugin.dll when its reference
        count reached 0, which lost the reference to the VM. This led to our
        process trying to create a new VM the next time a page using Java was
        loaded, and the JNI spec states that a single process is not allowed to
        create more than one VM. The fix is to avoid unloading the Java plugin
        via our PluginQuirkDontUnloadPlugin. 

        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::determineQuirks):

2007-10-22  David Hyatt  <hyatt@apple.com>

        Fix for bug 15624, make transforms work properly with opacity.

        Make sure a unitless 0 is allowed as an angle argument to rotation/skew.

        Reviewed by Mitz Pettel

        fast/transforms/transforms-with-opacity.html
        fast/transforms/skew-with-unitless-zero.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::validUnit):
        * rendering/RenderLayer.cpp:
        (WebCore::transparencyClipBox):
        (WebCore::RenderLayer::beginTransparencyLayers):
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::transform):

2007-10-22  Adam Roben  <aroben@apple.com>

        Windows build fix

        * WebCore.vcproj/WebCore.vcproj: Copy header files from platform/sql.
        * page/Page.cpp: Touched to force the header files to be copied.

2007-10-22  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Simon.

        Move textPath related SVGChar data in it's own structure SVGCharOnPath.
        Store a pointer to that datastructure inside SVGChar, instead of 4 floats & one bool.

        Saves space for the common case. And allows me to add more data (another float) to support
        glyph-orientation-* on textPath later on...

        * rendering/SVGCharacterLayoutInfo.cpp:
        (WebCore::SVGChar::characterTransform):
        * rendering/SVGCharacterLayoutInfo.h:
        * rendering/SVGRootInlineBox.cpp:
        (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):

2007-10-22  Alp Toker  <alp@atoker.com>

        Reviewed by Nikolas Zimmermann.

        Implement more GraphicsContextCairo stubs.

        Remove a hack "to work around no current point bug" that was breaking
        canvas tests.

        Fix warnings.

        * platform/graphics/cairo/CairoPath.h:
        (WebCore::CairoPath::CairoPath):
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::addInnerRoundedRectClip):
        (WebCore::GraphicsContext::strokeRect):
        * platform/graphics/cairo/PathCairo.cpp:
        (WebCore::Path::isEmpty):
        * platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp:
        (WebCore::SVGPaintServerGradient::setup):
        * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp:
        (WebCore::SVGPaintServerSolid::setup):

2007-10-22  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Nikolas.

        Fix compilation from a clean build with the database feature disabled.
        JSCustomVersionChangeCallback.cpp doesn't actually need the SQL header file, just ScriptInterpreter.

        * bindings/js/JSCustomVersionChangeCallback.cpp:
        * page/InspectorController.cpp:

2007-10-22  Andrew Wellington  <proton@wiretapped.net>

        Reviewed by Mark Rowe.

        Fix for local database support after r26879
        Ensure that ENABLE_DATABASE and ENABLE_ICONDATABASE are correctly set

        * Configurations/WebCore.xcconfig:
        * WebCore.pro:
        * WebCore.vcproj/build-generated-files.sh:

2007-10-22  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Disable the Database feature for the qmake build for now.

        * WebCore.pro:

2007-10-22  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Make disabling the database feature (ENABLE_DATABASE=0) work by
        placing various #ifdefs into the code and making the compilation of
        some files optional.

        * WebCore.pro:
        * dom/Document.cpp:
        (WebCore::Document::~Document):
        (WebCore::Document::defaultEventHandler):
        * dom/Document.h:
        * page/DOMWindow.cpp:
        * page/DOMWindow.h:
        * page/DOMWindow.idl:
        * page/InspectorController.cpp:
        (WebCore::InspectorController::windowScriptObjectAvailable):
        (WebCore::InspectorController::populateScriptResources):
        (WebCore::InspectorController::clearDatabaseScriptResources):
        (WebCore::InspectorController::didCommitLoad):
        * page/InspectorController.h:

2007-10-22  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=15611
        [GTK] Text selection behaviour different in Debug and Release builds

        http://bugs.webkit.org/show_bug.cgi?id=15578
        [GTK] Text editor caret does not blink

        Never allow control to reach the end of non-void functions.

        Return more sensible values, or in some cases, nulls.

        * page/gtk/EventHandlerGtk.cpp:
        (WebCore::isKeyboardOptionTab):
        (WebCore::EventHandler::tabsToAllControls):
        (WebCore::EventHandler::eventActivatedView):

2007-10-22  Holger Freyther  <zecke@selfish.org>

        Reviewed by Simon Hausmann <hausmann@kde.org>.

        Implement ResourceHandle::loadResourceSynchronously using ResourceHandle and a special ResourceHandleClient. This approach has the possible danger of reentrancy.

        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::WebCoreSynchronousLoader::resourceResponse):
        (WebCore::WebCoreSynchronousLoader::resourceError):
        (WebCore::WebCoreSynchronousLoader::data):
        (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
        (WebCore::WebCoreSynchronousLoader::didReceiveResponse):
        (WebCore::WebCoreSynchronousLoader::didReceiveData):
        (WebCore::WebCoreSynchronousLoader::didFinishLoading):
        (WebCore::WebCoreSynchronousLoader::didFail):
        (WebCore::WebCoreSynchronousLoader::waitForCompletion):
        (WebCore::ResourceHandle::loadResourceSynchronously):

2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Style fix. It is allowed to attempt to delete 0.

        * platform/qt/ClipboardQt.cpp:

2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Make it actually localizable....

        * platform/qt/Localizations.cpp:
        (WebCore::submitButtonDefaultLabel):
        (WebCore::inputElementAltText):
        (WebCore::searchableIndexIntroduction):
        (WebCore::fileButtonChooseFileLabel):
        (WebCore::fileButtonNoFileSelectedLabel):
        (WebCore::contextMenuItemTagOpenLinkInNewWindow):
        (WebCore::contextMenuItemTagDownloadLinkToDisk):
        (WebCore::contextMenuItemTagCopyLinkToClipboard):
        (WebCore::contextMenuItemTagOpenImageInNewWindow):
        (WebCore::contextMenuItemTagDownloadImageToDisk):
        (WebCore::contextMenuItemTagCopyImageToClipboard):
        (WebCore::contextMenuItemTagOpenFrameInNewWindow):
        (WebCore::contextMenuItemTagCopy):
        (WebCore::contextMenuItemTagGoBack):
        (WebCore::contextMenuItemTagGoForward):
        (WebCore::contextMenuItemTagStop):
        (WebCore::contextMenuItemTagReload):
        (WebCore::contextMenuItemTagCut):
        (WebCore::contextMenuItemTagPaste):
        (WebCore::contextMenuItemTagNoGuessesFound):
        (WebCore::contextMenuItemTagIgnoreSpelling):
        (WebCore::contextMenuItemTagLearnSpelling):
        (WebCore::contextMenuItemTagSearchWeb):
        (WebCore::contextMenuItemTagLookUpInDictionary):
        (WebCore::contextMenuItemTagOpenLink):
        (WebCore::contextMenuItemTagIgnoreGrammar):
        (WebCore::contextMenuItemTagSpellingMenu):
        (WebCore::contextMenuItemTagShowSpellingPanel):
        (WebCore::contextMenuItemTagCheckSpelling):
        (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
        (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
        (WebCore::contextMenuItemTagFontMenu):
        (WebCore::contextMenuItemTagBold):
        (WebCore::contextMenuItemTagItalic):
        (WebCore::contextMenuItemTagUnderline):
        (WebCore::contextMenuItemTagOutline):
        (WebCore::contextMenuItemTagWritingDirectionMenu):
        (WebCore::contextMenuItemTagDefaultDirection):
        (WebCore::contextMenuItemTagLeftToRight):
        (WebCore::contextMenuItemTagRightToLeft):
        (WebCore::contextMenuItemTagInspectElement):
        (WebCore::searchMenuNoRecentSearchesText):
        (WebCore::searchMenuRecentSearchesText):

2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Adjust the code to obey the Coding Style.

        * platform/qt/Localizations.cpp:
        (WebCore::submitButtonDefaultLabel):
        (WebCore::inputElementAltText):
        (WebCore::resetButtonDefaultLabel):
        (WebCore::defaultLanguage):
        (WebCore::searchableIndexIntroduction):
        (WebCore::fileButtonChooseFileLabel):
        (WebCore::fileButtonNoFileSelectedLabel):
        (WebCore::contextMenuItemTagOpenLinkInNewWindow):
        (WebCore::contextMenuItemTagDownloadLinkToDisk):
        (WebCore::contextMenuItemTagCopyLinkToClipboard):
        (WebCore::contextMenuItemTagOpenImageInNewWindow):
        (WebCore::contextMenuItemTagDownloadImageToDisk):
        (WebCore::contextMenuItemTagCopyImageToClipboard):
        (WebCore::contextMenuItemTagOpenFrameInNewWindow):
        (WebCore::contextMenuItemTagCopy):
        (WebCore::contextMenuItemTagGoBack):
        (WebCore::contextMenuItemTagGoForward):
        (WebCore::contextMenuItemTagStop):
        (WebCore::contextMenuItemTagReload):
        (WebCore::contextMenuItemTagCut):
        (WebCore::contextMenuItemTagPaste):
        (WebCore::contextMenuItemTagNoGuessesFound):
        (WebCore::contextMenuItemTagIgnoreSpelling):
        (WebCore::contextMenuItemTagLearnSpelling):
        (WebCore::contextMenuItemTagSearchWeb):
        (WebCore::contextMenuItemTagLookUpInDictionary):
        (WebCore::contextMenuItemTagOpenLink):
        (WebCore::contextMenuItemTagIgnoreGrammar):
        (WebCore::contextMenuItemTagSpellingMenu):
        (WebCore::contextMenuItemTagShowSpellingPanel):
        (WebCore::contextMenuItemTagCheckSpelling):
        (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
        (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
        (WebCore::contextMenuItemTagFontMenu):
        (WebCore::contextMenuItemTagBold):
        (WebCore::contextMenuItemTagItalic):
        (WebCore::contextMenuItemTagUnderline):
        (WebCore::contextMenuItemTagOutline):
        (WebCore::contextMenuItemTagWritingDirectionMenu):
        (WebCore::contextMenuItemTagDefaultDirection):
        (WebCore::contextMenuItemTagLeftToRight):
        (WebCore::contextMenuItemTagRightToLeft):
        (WebCore::contextMenuItemTagInspectElement):
        (WebCore::searchMenuNoRecentSearchesText):
        (WebCore::searchMenuRecentSearchesText):
        (WebCore::searchMenuClearRecentSearchesText):
        (WebCore::AXWebAreaText):
        (WebCore::AXLinkText):
        (WebCore::AXListMarkerText):
        (WebCore::AXImageMapText):
        (WebCore::AXHeadingText):
        (WebCore::unknownFileSizeText):

2007-10-22 Holger Hans Peter Freyther <zecke@selfish.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Return a non empty string in more functions.

        * platform/qt/Localizations.cpp:
        (WebCore::contextMenuItemTagShowSpellingPanel):

2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Shrink the TemporaryLinkStubs and move the
        Frame::setNeedsReapplyStyles stub to FrameQt.cpp

        * page/qt/FrameQt.cpp:
        (WebCore::Frame::setNeedsReapplyStyles):
        * platform/qt/TemporaryLinkStubs.cpp:

2007-10-22  Holger Freyther  <zecke@selfish.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Implement the WebCore::fileSize function. The
        implementation assumes that QFileInfo will cache
        the result of the stat so that info.size() and
        info.exists() use the same stat result.

        * platform/qt/FileSystemQt.cpp:
        (WebCore::deleteFile):
        * platform/qt/TemporaryLinkStubs.cpp:

2007-10-21  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Use the portable GLib time function.

        Use event timestamps rather than the current time where available.

        Rename SharedTimerLinux.cpp since it isn't Linux-specific.

        * WebCore.pro:
        * platform/gtk/MouseEventGtk.cpp:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/gtk/SystemTimeGtk.cpp: Added.
        (WebCore::currentTime):
        * platform/gtk/SharedTimerGtk.cpp: Copied from platform/gtk/SharedTimerLinux.cpp.
        * platform/gtk/SharedTimerLinux.cpp: Removed.

2007-10-22  David Hyatt  <hyatt@apple.com>

        Fix for 15596, regression from my transform changes.  Preserve null checks on the clip rects calls for parent(),
        since the method is called on orphaned layers.  This is not very well understood.

        Reviewed by eric

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):
        (WebCore::RenderLayer::calculateRects):

2007-10-21  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alp.

        http://bugs.webkit.org/show_bug.cgi?id=15575
        Bug 15575: [GTK] Implement threading using GThread

        * WebCore.pro: Remove ThreadingPthreads.cpp from the Gtk build and link against libgthreads.
        * loader/icon/IconDatabase.cpp: Initialize threading before the mutex is created to be compatible with gthreads.
        (WebCore::iconDatabase):
        (WebCore::IconDatabase::open):
        * platform/Threading.h:
        * platform/gtk/ThreadingGtk.cpp: Threading implementation in terms of GThread, based heavily on the pthreads implementation.
        (WebCore::initializeThreading):
        (WebCore::threadMapMutex):
        (WebCore::threadMap):
        (WebCore::establishIdentifierForThread):
        (WebCore::threadForIdentifier):
        (WebCore::clearThreadForIdentifier):
        (WebCore::createThread):
        (WebCore::waitForThreadCompletion):
        (WebCore::detachThread):
        (WebCore::Mutex::Mutex):
        (WebCore::Mutex::~Mutex):
        (WebCore::Mutex::lock):
        (WebCore::Mutex::tryLock):
        (WebCore::Mutex::unlock):
        (WebCore::ThreadCondition::ThreadCondition):
        (WebCore::ThreadCondition::~ThreadCondition):
        (WebCore::ThreadCondition::wait):
        (WebCore::ThreadCondition::signal):
        (WebCore::ThreadCondition::broadcast):
        * storage/Database.cpp:
        (WebCore::Database::Database): Initialize threading when Database is used so that it will be initialized even
        if the icon database is compiled out

2007-10-21  Mark Rowe  <mrowe@apple.com>

        Build fix.

        * ksvg2/css/SVGCSSStyleSelector.cpp: Use fabsf when dealing with a float to prevent the
        implicit conversion warning.

2007-10-21  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Implement spelling and grammar mistake underlining with Pango/Cairo.

        This change does not add any actual support for spelling or grammar
        checking to any port.

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

2007-10-21  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Cairo canvas fixes:

        Fix a refcounting issue leading to leaks and crashes on canvas
        content.

        Delegate memory management of canvas images to Cairo.

        Mark unhandled conditions with notImplemented() instead of silently
        ignoring them.

        * html/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawImage):
        * html/CanvasStyle.cpp:
        (WebCore::CanvasStyle::applyStrokeColor):
        * html/CanvasStyle.h:
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::HTMLCanvasElement):
        (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
        (WebCore::HTMLCanvasElement::reset):
        (WebCore::HTMLCanvasElement::paint):
        (WebCore::HTMLCanvasElement::createDrawingContext):
        (WebCore::HTMLCanvasElement::createPlatformImage):

2007-10-21  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric.

        Handle glyph-orientation-vertical / glyph-orientation-horizontal SVG CSS properties.

        The SVG layouting code itself doesn't handle these properties yet,
        it's just about recognizing them in the SVG CSS engine.

        * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
        * ksvg2/css/SVGCSSParser.cpp:
        (WebCore::CSSParser::parseSVGValue):
        * ksvg2/css/SVGCSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applySVGProperty):
        * ksvg2/css/SVGRenderStyle.h:
        (WebCore::SVGRenderStyle::InheritedFlags::operator==):
        (WebCore::SVGRenderStyle::InheritedFlags::operator!=):
        (WebCore::SVGRenderStyle::setBitDefaults):
        * ksvg2/css/SVGRenderStyleDefs.h:

2007-10-21  Christian Dywan  <christian@twotoasts.de>

        Reviewed by Alp.

        http://bugs.webkit.org/show_bug.cgi?id=15589
        Use glib's path separator on gtk

        * platform/gtk/FileSystemGtk.cpp:
        (WebCore::pathByAppendingComponent):

2007-10-21  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15259
          <rdar://problem/5499902> REGRESSION: Text overflows when using word spacing and centering (affects myspace.com music videos page)

        Test: fast/text/word-space.html

        * rendering/RenderBlock.cpp:
        (WebCore::stripTrailingSpace): Added word-spacing to the width of the
        space being stripped out.
        * rendering/RenderText.cpp:
        (WebCore::RenderText::trimmedPrefWidths): Changed handling of
        leading space. Since Font::width includes leading space width but not
        leading word spacing, this method needs to either remove the width of a
        space character or add word spacing,
        depending on stripFrontSpaces. 
        (WebCore::RenderText::calcPrefWidths): Corrected the check for adding
        trailing word spacing so that it would work in the case where the last
        space is ignored.
        * rendering/bidi.cpp:
        (WebCore::RenderBlock::computeHorizontalPositionsForLine): Changed to
        actually add word spacing to the total width.

2007-10-20  David Hyatt  <hyatt@apple.com>

        Land support for the transform CSS property.  Basic painting now works properly. There are many open issues
        that will have to be covered by individual bugs.

        Reviewed by olliej

        * css/CSSParser.cpp:
        (WebCore::CSSParser::validUnit):
        (WebCore::CSSParser::parseTransform):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::~RenderLayer):
        (WebCore::RenderLayer::updateLayerPositions):
        (WebCore::RenderLayer::updateTransform):
        (WebCore::transparencyClipBox):
        (WebCore::RenderLayer::beginTransparencyLayers):
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::calculateClipRects):
        (WebCore::RenderLayer::calculateRects):
        (WebCore::RenderLayer::childrenClipRect):
        (WebCore::RenderLayer::selfClipRect):
        (WebCore::RenderLayer::intersectsDamageRect):
        (WebCore::RenderLayer::boundingBox):
        * rendering/RenderLayer.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::containingBlock):
        (WebCore::RenderObject::container):
        * rendering/RenderStyle.cpp:
        (WebCore::RenderStyle::applyTransform):
        * rendering/RenderStyle.h:
        (WebCore::TransformOperation::isScaleOperation):
        (WebCore::TransformOperation::isRotateOperation):
        (WebCore::TransformOperation::isSkewOperation):
        (WebCore::TransformOperation::isTranslateOperation):
        (WebCore::TransformOperation::isMatrixOperation):
        (WebCore::ScaleTransformOperation::isScaleOperation):
        (WebCore::RotateTransformOperation::isRotateOperation):
        (WebCore::SkewTransformOperation::isSkewOperation):
        (WebCore::TranslateTransformOperation::isTranslateOperation):
        (WebCore::MatrixTransformOperation::isMatrixOperation):
        * rendering/RenderTableRow.h:
        (WebCore::RenderTableRow::requiresLayer):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::writeLayers):

2007-10-20  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Add basic @font-face to the Web Inspector.

        * page/InspectorController.cpp:
        (WebCore::InspectorResource::type): Check for CachedResource::FontResource.
        * page/inspector/Resource.js: Add support for Font types and font preview in the icon.
        * page/inspector/ResourcePanel.js: Show a font preview for font resources.
        * page/inspector/inspector.css: Style for the font preview and font icon.
        * page/inspector/inspector.js: Add font mime types.

2007-10-20  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Fixes:
            - http://bugs.webkit.org/show_bug.cgi?id=14393
              Column on the left side of the Web Inspector should have a smaller minimum width for resizing
            - http://bugs.webkit.org/show_bug.cgi?id=14394
              Left pane of the Web Inspector "shakes" when resizing it to maximum width

        * page/inspector/inspector.js: Change the constraint logic to only enforce a 100px min-width
          and window.innerWidth - 100 max-width for the sidebar.  The change also makes the viewbuttons
          move with the sidebar.

2007-10-20  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15208
          display:table causes the collapsed text to show at a different position when expanded

        Test: fast/table/insert-before-anonymous-ancestors.html

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild): Rolled out r11579. I think whatever
        that change was supposed to accomplish has since been done in other
        places in the code.

2007-10-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dave Hyatt.

        Fix http://bugs.webkit.org/show_bug.cgi?id=15584
        Bug 15584: REGRESSION(r26696): GtkLauncher segfaults on WebCore::WidthIterator::advance

        * platform/Font.cpp:
        (WebCore::Font::glyphDataForCharacter): If the fallback page exists but does not have a
        glyph for the character, fall back to the missing glyph data rather than returning an
        invalid GlyphData.

2007-10-20  Jasper Bryant-Greene  <m@ni.ac.nz>

        Reviewed by Maciej.

        Changed the hard-coded scroll delta in WheelEventGtk from 120 to 0.25,
        as suggested by George Wright in #15108 (which this patch will
        resolve).

        This gives a more sane scrolling behaviour, rather than the
        jumping to the end or start of the document as occurred previously.

        * platform/gtk/WheelEventGtk.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):

2007-10-20  Alp Toker  <alp@atoker.com>

        Reviewed by Eric.

        Support text boundary detection.
        Move TextBoundariesWin.cpp to platform/ since it's portable and useful.
        Split out and implement some TemporaryLinkStubs.

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * platform/TextBoundariesICU.cpp: Copied from WebCore/platform/win/TextBoundariesWin.cpp.
        * platform/gtk/Language.cpp: Added.
        (WebCore::defaultLanguage):
        * platform/gtk/TemporaryLinkStubs.cpp:
        * platform/gtk/TextBreakIteratorInternalICUGtk.cpp: Added.
        (WebCore::currentTextBreakLocaleID):
        * platform/win/TextBoundariesWin.cpp: Removed.

2007-10-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        Workaround for http://bugs.webkit.org/show_bug.cgi?id=15574
        Bug 15574: Web Inspector doesn't work with the new Database feature

        The executeSql callback is executed in the security domain of the web page that owns the database,
        while the inspector's window object is in the callback functions scope chain.  This is leading to a
        security violation when the callback attempts to access "document".  We can work around this by
        ensuring that "document" can be found in the scope chain before the window object.

        * page/inspector/DatabasePanel.js:

2007-10-20  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - http://bugs.webkit.org/show_bug.cgi?id=15567
          speed up hashing const char* by removing call to strlen

        This includes one other fix as well. Both were from a day where I did some
        profiling to find hot spots when running the page load test.

        * platform/StringImpl.cpp:
        (WebCore::StringImpl::computeHash): Compute the hash without calling strlen.
        Also change the argument names to not confusingly use m_ prefixes.
        (WebCore::StringImpl::createStrippingNull): Added a faster case for strings that
        don't have null.

2007-10-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alp.

        Gtk changes needed to enable HTML 5 client-side database storage.

        * WebCore.pro: Have Gtk use ThreadingPthreads.cpp.
        * platform/pthreads/ThreadingPthreads.cpp: Include errno so that EDEADLK and EBUSY are available.

2007-10-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alp.

        Implement callOnMainThread for Gtk+ via a one-shot zero-delay timer that will be dispatched
        from the main event loop.

        * WebCore.pro:
        * platform/gtk/TemporaryLinkStubs.cpp:
        * platform/gtk/ThreadingGtk.cpp: Added.
        (WebCore::callFunctionOnMainThread):
        (WebCore::callOnMainThread):

2007-10-20  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric.

        Fix non-functional display="inline" / display="none" for SVG text.

        Fixes: svg/W3C-SVG-1.1/animate-elem-39-t.svg (display="inline" support)
        Fixes: svg/batik/text/textProperties2.svg (display="inline/none" support)
        Fixes: svg/carto.net/tabgroup.svg (display="none" support, stray content before layouting)
        
        * css/svg.css: Remove "important" flag on text/foreignObject display: block property
        * rendering/RenderSVGBlock.cpp:
        (WebCore::RenderSVGBlock::setStyle):

2007-10-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alp.

        Replace #ifdef'd code with the appropriate use of a forwarding header.

        * ForwardingHeaders/kjs/array_instance.h: Added.
        * bindings/js/JSDatabaseCustom.cpp:

2007-10-20  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Oliver.

        Add support for 'kerning' property in SVG text layout code.
        Support all textLength/lengthAdjust modes on normal text & textPaths.

        Support letter & word spacing on textPath.
        Fix text selection when any spacing (letter/word/kerning) is involved.

        Fixes: http://bugs.webkit.org/show_bug.cgi?id=15571
        Fixes: svg/batik/text/textOnPathSpaces.svg (spacing)
               svg/batik/text/textLayout.svg (kerning support)
               svg/text/text-spacing-01-b.svg (text selection)

        * platform/Font.cpp:
        (WebCore::WidthIterator::advance):
        * platform/TextStyle.h:
        (WebCore::TextStyle::TextStyle):
        (WebCore::TextStyle::spacingDisabled):
        (WebCore::TextStyle::disableSpacing):
        * rendering/SVGCharacterLayoutInfo.cpp:
        (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
        (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
        (WebCore::SVGCharacterLayoutInfo::setInPathLayout):
        (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
        (WebCore::SVGChar::characterTransform):
        * rendering/SVGCharacterLayoutInfo.h:
        (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
        * rendering/SVGRootInlineBox.cpp:
        (WebCore::closeTextChunk):
        (WebCore::calculateKerning):
        (WebCore::SVGRootInlineBox::placeBoxesHorizontally):
        (WebCore::svgTextStyleForInlineTextBox):
        (WebCore::calculateTextAnchorShiftForTextChunk):
        (WebCore::applyTextAnchorToTextChunk):
        (WebCore::calculateTextLengthCorrectionForTextChunk):
        (WebCore::applyTextLengthCorrectionToTextChunk):
        (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
        (WebCore::SVGRootInlineBox::buildLayoutInformation):
        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
        (WebCore::SVGRootInlineBox::buildTextChunks):
        (WebCore::SVGRootInlineBox::layoutTextChunks):
        * rendering/SVGRootInlineBox.h:

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

        Reviewd by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15563
        Fix conflict with X11 Window type in WebCore

        * WebCore/bindings/js/JSDocumentCustom.cpp:
        * WebCore/bindings/js/JSHTMLDocumentCustom.cpp:
        * WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp:
        * WebCore/bindings/js/kjs_dom.cpp:
        * WebCore/bindings/js/kjs_events.cpp:
        * WebCore/bindings/js/kjs_proxy.cpp:
        * WebCore/history/CachedPage.cpp:
        * WebCore/page/Chrome.cpp:
        * WebCore/page/Frame.cpp:

2007-10-20  Simon Hausmann  <hausmann@kde.org>

        Build fix, not reviewed.

        Fix the Qt build by adding the two missing FileSystem functions.

        * platform/qt/FileSystemQt.cpp:
        (WebCore::makeAllDirectories):
        (WebCore::pathByAppendingComponent):

2007-10-19  Alp Toker  <alp@atoker.com>

        Reviewed by Oliver.

        GTK+ build fix enabling the new local database storage feature.
        There is also a prospective Qt build fix.

        * WebCore.pro:
        * bindings/js/JSDatabaseCustom.cpp:
        * platform/gtk/FileSystemGtk.cpp:
        (WebCore::pathByAppendingComponent):
        (WebCore::makeAllDirectories):

2007-10-19  Andrew Wellington  <proton@wiretapped.net>

        Reviewed by Brady Eidson.

        Mac build fix.

        * WebCore.xcodeproj/project.pbxproj:

2007-10-19  Alp Toker  <alp@atoker.com>

        Reviewed by Oliver.

        Use platform colors for text selection.
        Update the cache when the GTK style is changed.

        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
        (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
        (WebCore::RenderThemeGtk::gtkStyleSet):
        (WebCore::RenderThemeGtk::gtkEntry):
        * platform/gtk/RenderThemeGtk.h:

2007-10-19  Adele Peterson  <adele@apple.com>

        Reviewed by Beth.

        Fix for: <rdar://problem/5518461> REGRESSION (2.0.4-3): Popup arrows are missing in small popups at homedepot.com

        Test: fast/forms/menulist-no-overflow.html

        * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::setStyle): Don't allow overflow on menu lists.

2007-10-19  Anders Carlsson  <andersca@apple.com>

        Reviewed by Brady.

        Move some SQL-related classes to platform/sql.
        
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/icon/SQLDatabase.cpp: Removed.
        * loader/icon/SQLDatabase.h: Removed.
        * loader/icon/SQLStatement.cpp: Removed.
        * loader/icon/SQLStatement.h: Removed.
        * loader/icon/SQLTransaction.cpp: Removed.
        * loader/icon/SQLTransaction.h: Removed.
        * platform/sql/SQLDatabase.cpp: Copied from loader/icon/SQLDatabase.cpp.
        * platform/sql/SQLDatabase.h: Copied from loader/icon/SQLDatabase.h.
        * platform/sql/SQLStatement.cpp: Copied from loader/icon/SQLStatement.cpp.
        * platform/sql/SQLStatement.h: Copied from loader/icon/SQLStatement.h.
        * platform/sql/SQLTransaction.cpp: Copied from loader/icon/SQLTransaction.cpp.
        * platform/sql/SQLTransaction.h: Copied from loader/icon/SQLTransaction.h.

2007-10-19  Anders Carlsson  <andersca@apple.com>

        Reviewed by Adam.

        Update to match the latest version of the spec. Now, executeSQL takes an array
        of SQL parameters instead of them being passed as arguments.
        
        * bindings/js/JSDatabaseCustom.cpp:
        (WebCore::JSDatabase::executeSql):
        * page/inspector/DatabasePanel.js:
        * storage/Database.idl:

2007-10-19  Brady Eidson  <beidson@apple.com>

        Reviewed by Tim

        Tiger's SQLite doesn't support CREATE TABLE IF NOT EXISTS :(

        * storage/Database.cpp:
        (WebCore::Database::performOpenAndVerify):
        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::DatabaseTracker):

2007-10-19  Anders Carlsson  <andersca@apple.com>

        Release build fix.
        
        * WebCore.vcproj/WebCore.vcproj:

2007-10-19  Brady Eidson  <beidson@apple.com>

        Remove stray printfs

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::~Document):

2007-10-19  Anders Carlsson  <andersca@apple.com>

        Reviewed by Brady.

        Apparently the Win32 pthreads impl we use does not allow unlocking a mutex that has not
        already been locked, so lock the mutex first.
        
        * storage/DatabaseThread.cpp:
        (WebCore::DatabaseThread::databaseThread):

2007-10-19  Brady Eidson  <beidson@apple.com>

        Better build fix

        * loader/icon/SQLDatabase.cpp:
        (WebCore::SQLDatabase::authorizerFunction):  Definite works by 3.3.13

2007-10-19  Brady Eidson  <beidson@apple.com>

        Build fix

        * loader/icon/SQLDatabase.cpp:
        (WebCore::SQLDatabase::authorizerFunction): I don't know *when* these constants were
          added to SQLite, but I know they were by 3.4.0

2007-10-19  Brady Eidson  <beidson@apple.com>
        Reviewed by Anders

        Windows specific changes, as well as renaming Queue -> Deque

        * ForwardingHeaders/wtf/Deque.h: Added.
        * ForwardingHeaders/wtf/Queue.h: Removed.
        * platform/win/FileSystemWin.cpp:
        (WebCore::fileSize):
        (WebCore::fileExists):
        (WebCore::deleteFile):
        (WebCore::pathByAppendingComponent):
        (WebCore::fileSystemRepresentation):
        (WebCore::makeAllDirectories):
        (WebCore::homeDirectoryPath):
        * storage/Database.h:
        * storage/DatabaseThread.cpp:
        (WebCore::DatabaseThread::documentGoingAway):
        (WebCore::DatabaseThread::databaseGoingAway):
        (WebCore::DatabaseThread::dispatchNextTaskIdentifier):
        (WebCore::DatabaseThread::scheduleTask):
        (WebCore::DatabaseThread::scheduleImmediateTask):
        * storage/DatabaseThread.h:

2007-10-19  Brady Eidson <beidson@apple.com>

        Reviewed by Tim and Anders

        Preliminary support for HTML5 local database storage (http://www.whatwg.org/specs/web-apps/current-work/)

        The specification is still in flux but the fundamentals are pretty solid and we can start using and testing 
        this implementation even while filing bugs to track changes in the spec as it becomes more final

        There are some implementation details in this patch that seem unused or useless, but they remain in place 
        while the spec is in flux and might go one way or another.

        * platform/Logging.cpp: Add StorageAPI logging channel
        * platform/Logging.h:

        * storage/Database.cpp: Added.
        (WebCore::Database::databaseInfoTableName):
        (WebCore::databaseVersionKey):
        (WebCore::Database::openDatabase): C++ version of the window.openDatabase() javascript API
        (WebCore::Database::Database):
        (WebCore::Database::~Database):
        (WebCore::Database::openAndVerifyVersion):
        (WebCore::retrieveTextResultFromDatabase):
        (WebCore::Database::getVersionFromDatabase):
        (WebCore::setTextValueInDatabase):
        (WebCore::Database::setVersionInDatabase):
        (WebCore::Database::databaseThreadGoingAway): May be removed in the future
        (WebCore::Database::disableAuthorizer): For internal (WebInspector) use to get around the authorizer's restrictions
        (WebCore::Database::enableAuthorizer):
        (WebCore::Database::guidForOriginAndName): Candidate for refactoring and/or moving to the database tracker.  
          The GUID for each database identifier is currently for tracking the database version, but might be rescoped in the future
        (WebCore::Database::resetAuthorizer):
        (WebCore::Database::performPolicyChecks): Currently, the only post-executeSql policy check planned is the origin size usage 
        (WebCore::Database::scheduleDatabaseCallback):
        (WebCore::Database::performOpenAndVerify): 
        (WebCore::Database::performChangeVersion):
        (WebCore::Database::performExecuteSql):
        (WebCore::Database::performCloseTransaction):
        (WebCore::Database::performGetTableNames):
        (WebCore::Database::version): C++ version of the javascript API
        (WebCore::Database::changeVersion): Ditto
        (WebCore::Database::executeSql): Ditto
        (WebCore::Database::closeTransaction): Ditto
        (WebCore::Database::tableNames): For internal (WebInspector) use
        (WebCore::Database::deliverAllPendingCallbacks):
        (WebCore::Database::deliverPendingCallbacks):
        * storage/Database.h: Added.
        (WebCore::Database::databaseDebugName): For debug logging purposes
        * storage/Database.idl: Added.

        * storage/DatabaseAuthorizer.cpp: Added.
          The DatabaseAuthorizer is used to both prevent the script from doing "illegal" things in sql as well as
          tracking when effects certain sql statements might have (such as increasing the size of the database)
        (WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
        (WebCore::DatabaseAuthorizer::reset):
        (WebCore::DatabaseAuthorizer::createTable):
        (WebCore::DatabaseAuthorizer::createTempTable):
        (WebCore::DatabaseAuthorizer::dropTable):
        (WebCore::DatabaseAuthorizer::dropTempTable):
        (WebCore::DatabaseAuthorizer::allowAlterTable):
        (WebCore::DatabaseAuthorizer::createIndex):
        (WebCore::DatabaseAuthorizer::createTempIndex):
        (WebCore::DatabaseAuthorizer::dropIndex):
        (WebCore::DatabaseAuthorizer::dropTempIndex):
        (WebCore::DatabaseAuthorizer::createTrigger):
        (WebCore::DatabaseAuthorizer::createTempTrigger):
        (WebCore::DatabaseAuthorizer::dropTrigger):
        (WebCore::DatabaseAuthorizer::dropTempTrigger):
        (WebCore::DatabaseAuthorizer::createVTable):
        (WebCore::DatabaseAuthorizer::dropVTable):
        (WebCore::DatabaseAuthorizer::allowDelete):
        (WebCore::DatabaseAuthorizer::allowInsert):
        (WebCore::DatabaseAuthorizer::allowUpdate):
        (WebCore::DatabaseAuthorizer::allowRead):
        (WebCore::DatabaseAuthorizer::allowAnalyze):
        (WebCore::DatabaseAuthorizer::allowPragma):
        (WebCore::DatabaseAuthorizer::allowAttach):
        (WebCore::DatabaseAuthorizer::allowDetach):
        (WebCore::DatabaseAuthorizer::allowFunction):
        (WebCore::DatabaseAuthorizer::disable):
        (WebCore::DatabaseAuthorizer::enable):
        (WebCore::DatabaseAuthorizer::denyBasedOnTableName): Don't allow access to the __WebKit meta info table as
          it should be invisible to scripts
        * storage/DatabaseAuthorizer.h: Added.
        (WebCore::DatabaseAuthorizer::lastActionWasInsert):
        (WebCore::DatabaseAuthorizer::lastActionIncreasedSize):

        * storage/DatabaseCallback.cpp: Added.
          Generic item to queue up for callbacks on the main thread for database activities that take place on 
          a secondary thread
        (WebCore::DatabaseChangeVersionCallback::DatabaseChangeVersionCallback):
        (WebCore::DatabaseChangeVersionCallback::performCallback):
        (WebCore::DatabaseExecuteSqlCallback::DatabaseExecuteSqlCallback):
        (WebCore::DatabaseExecuteSqlCallback::performCallback):
        * storage/DatabaseCallback.h: Added.
        (WebCore::DatabaseCallback::~DatabaseCallback):
        (WebCore::DatabaseChangeVersionCallback::~DatabaseChangeVersionCallback):
        (WebCore::DatabaseExecuteSqlCallback::~DatabaseExecuteSqlCallback):

        * storage/DatabaseTask.h: Added.
          Generic work-item to be queued up on the background database thread
        (WebCore::DatabaseTask::isComplete):
        (WebCore::DatabaseOpenTask::exceptionCode):
        (WebCore::DatabaseOpenTask::openSuccessful):
        (WebCore::DatabaseTableNamesTask::tableNames):
        * storage/DatabaseTask.cpp: Added.
        (WebCore::DatabaseTask::DatabaseTask):
        (WebCore::DatabaseTask::~DatabaseTask):
        (WebCore::DatabaseTask::performTask):
        (WebCore::DatabaseTask::lockForSynchronousScheduling): Used when the main thread needs this task accomplished 
          synchronously
        (WebCore::DatabaseTask::waitForSynchronousCompletion):

        (WebCore::DatabaseOpenTask::DatabaseOpenTask):
        (WebCore::DatabaseOpenTask::doPerformTask):

        (WebCore::DatabaseExecuteSqlTask::DatabaseExecuteSqlTask):
        (WebCore::DatabaseExecuteSqlTask::doPerformTask):

        (WebCore::DatabaseChangeVersionTask::DatabaseChangeVersionTask):
        (WebCore::DatabaseChangeVersionTask::doPerformTask):

        (WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
        (WebCore::DatabaseTableNamesTask::doPerformTask):

        * storage/DatabaseThread.cpp: Added.
          The current design is that each Document will have its own DatabaseThread.  This makes scripts on each
          individual document more response at the cost of adding more threads and potentially creating concurrency
          issues when the same database is open twice from two different documents
        (WebCore::DatabaseThread::DatabaseThread):
        (WebCore::DatabaseThread::~DatabaseThread):
        (WebCore::DatabaseThread::start):
        (WebCore::DatabaseThread::documentGoingAway): Called to shut the thread down when the document is destroyed
        (WebCore::DatabaseThread::databaseGoingAway): Remove all pending tasks for this database
        (WebCore::DatabaseThread::databaseThreadStart):
        (WebCore::DatabaseThread::databaseThread):
        (WebCore::DatabaseThread::dispatchNextTaskIdentifier):
        (WebCore::DatabaseThread::scheduleTask):
        (WebCore::DatabaseThread::scheduleImmediateTask): Schedule a task that gets to "cut to the front of the line" when
          the main thread requires a task be performed synchronously
        (WebCore::DatabaseThread::wakeWorkThread):
        * storage/DatabaseThread.h: Added.

        * storage/DatabaseTracker.cpp: Added.
          The DatabaseTracker is the master management of all databases.  It will keep track of the filename for a given
          unique database, keep track of the total disk usage per-origin, and policys per database/origin
        (WebCore::DatabaseTracker::setDatabasePath):
        (WebCore::DatabaseTracker::databasePath):
        (WebCore::DatabaseTracker::tracker):
        (WebCore::DatabaseTracker::DatabaseTracker):
        (WebCore::DatabaseTracker::fullPathForDatabase):
        (WebCore::DatabaseTracker::populateOrigins):
        (WebCore::DatabaseTracker::origins):
        (WebCore::DatabaseTracker::databaseNamesForOrigin):
        (WebCore::DatabaseTracker::addDatabase):
        (WebCore::DatabaseTracker::deleteAllDatabases):
        (WebCore::DatabaseTracker::deleteAllDatabasesForOrigin):
        * storage/DatabaseTracker.h: Added.

        * storage/SQLCallback.h: Added. C++ version of the javascript executeSql() callback
        (WebCore::SQLCallback::~SQLCallback):
        * storage/SQLCallback.idl: Added.

        * storage/SQLResultSet.cpp: Added. C++ version of the javascript SQLResultSet object
        (WebCore::SQLResultSet::SQLResultSet):
        (WebCore::SQLResultSet::insertId):
        (WebCore::SQLResultSet::rowsAffected):
        (WebCore::SQLResultSet::errorCode):
        (WebCore::SQLResultSet::error):
        (WebCore::SQLResultSet::rows):
        (WebCore::SQLResultSet::setInsertId):
        (WebCore::SQLResultSet::setRowsAffected):
        (WebCore::SQLResultSet::setErrorCode):
        (WebCore::SQLResultSet::setErrorMessage):
        * storage/SQLResultSet.h: Added.
        * storage/SQLResultSet.idl: Added.

        * storage/SQLResultSetRowList.cpp: Added. C++ version of the javascript SQLResultSetRowList object
        (WebCore::SQLResultSetRowList::length):
        * storage/SQLResultSetRowList.h: Added.
        (WebCore::SQLResultSetRowList::columnNames):
        (WebCore::SQLResultSetRowList::values):
        (WebCore::SQLResultSetRowList::addColumn):
        (WebCore::SQLResultSetRowList::addResult):
        * storage/SQLResultSetRowList.idl: Added.

        * storage/VersionChangeCallback.h: Added. C++ version of the javascript changeVersion() callback
        (WebCore::VersionChangeCallback::~VersionChangeCallback):
        * storage/VersionChangeCallback.idl: Added.

2007-10-19  Brady Eidson <beidson@apple.com>

        Reviewed by Oliver + Same

        Forwarding header for the new wtf/Queue.h

        * ForwardingHeaders/wtf/Queue.h: Added.

2007-10-19  Anders Carlsson <beidson@apple.com>

        Reviewed by Sam Weinig

        Most of the Javascript binding support for the Storage API

        * bindings/js/JSCustomSQLCallback.cpp: Added.
        (WebCore::JSCustomSQLCallback::JSCustomSQLCallback):
        (WebCore::JSCustomSQLCallback::handleEvent):
        * bindings/js/JSCustomSQLCallback.h: Added.
                Add JSCustomSQLCallback which is an SQLCallback implementation that dispatches
                handleEvent to a JS function or a JS object with a handleEvent function.

        * bindings/js/JSCustomVersionChangeCallback.cpp: Added.
        (WebCore::JSCustomVersionChangeCallback::JSCustomVersionChangeCallback):
        (WebCore::JSCustomVersionChangeCallback::handleEvent):
        * bindings/js/JSCustomVersionChangeCallback.h: Added.
                Add JSCustomSQLCallback which is an SQLCallback implementation that dispatches
                handleEvent to a JS function or a JS object with a handleEvent function.

        * bindings/js/JSDatabaseCustom.cpp: Added.
        (WebCore::JSDatabase::executeSql):
                Custom implementation of executeSql that takes an array of parameters.
                
        (WebCore::JSDatabase::changeVersion):
                Custom implementation of changeVersion.
                
        * bindings/js/JSSQLResultSetRowListCustom.cpp: Added.
        (WebCore::JSSQLResultSetRowList::item):
                Custom method that returns a JS object that corresponds to a given row in the database.

        * bindings/scripts/CodeGeneratorJS.pm:

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::openDatabase):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:
                Add openDatabase implementation.

2007-10-19  Brady Eidson <beidson@apple.com>

        Reviewed by Oliver

        Added tons of utility to the FileSystem abstractions, including moving
        some stuff over from IconDatabase

        * platform/FileSystem.h:

        * platform/cf/FileSystemCF.cpp: Added.
        (WebCore::fileSystemRepresentation):

        * platform/mac/FileSystemMac.mm:

        * platform/posix/FileSystemPOSIX.cpp: Added.
        (WebCore::fileExists):
        (WebCore::deleteFile):
        (WebCore::fileSize):
        (WebCore::pathByAppendingComponent):
        (WebCore::makeAllDirectories):

2007-10-19  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben

        Preliminary Web Inspector support for the Storage API
        (This patch does not include the support artwork)

        * page/InspectorController.cpp:
        (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
        (WebCore::InspectorDatabaseResource::setScriptObject):
        (WebCore::databaseTableNames): Return the table names for a Database object.
        (WebCore::InspectorController::setWindowVisible):
        (WebCore::InspectorController::windowScriptObjectAvailable):
        (WebCore::InspectorController::populateScriptResources):
        (WebCore::InspectorController::addDatabaseScriptResource): Add the script object for the database.
        (WebCore::InspectorController::removeDatabaseScriptResource): Remove the script object for the database.
        (WebCore::InspectorController::clearDatabaseScriptResources): Remove all the database resources.
        (WebCore::InspectorController::didCommitLoad): Call clearDatabaseScriptResources().
        (WebCore::InspectorController::didOpenDatabase): Make a new InspectorDatabaseResource and add it to m_databaseResources.
        * page/InspectorController.h:
        * page/inspector/Database.js: Added.
        * page/inspector/DatabasePanel.js: Added.
        * page/inspector/ResourceCategory.js: Make resource categories assume less about the resource.
        * page/inspector/inspector.css: Add styles for the database panel.
        * page/inspector/inspector.html: Include DatabasePanel.js
        * page/inspector/inspector.js: Support for adding and removing Database resources.

2007-10-19  Brady Eidson <beidson@apple.com>

        Reviewed by Tim Hatcher

        Added support for Chrome prompts required by the Storage API

        * page/Chrome.cpp:
        (WebCore::Chrome::runDatabaseSizeLimitPrompt):
        * page/Chrome.h:
        * page/ChromeClient.h:
        * platform/graphics/svg/SVGImageEmptyClients.h:

2007-10-19  Brady Eidson <beidson@apple.com>

        Contributions and Review by Anders

        Various SQLite tweaks in preparation for the storage API

        * loader/icon/SQLDatabase.cpp:
        (WebCore::SQLDatabase::~SQLDatabase):
        (WebCore::SQLDatabase::authorizerFunction): Static callback from sqlite for authorizer functions
        (WebCore::SQLDatabase::setAuthorizer):
        (WebCore::SQLDatabase::lock):
        (WebCore::SQLDatabase::unlock):
        * loader/icon/SQLDatabase.h:

        * loader/icon/SQLStatement.cpp:
        (WebCore::SQLStatement::prepare): Switch to prepare16_v2
        (WebCore::SQLStatement::bindDouble): Added
        (WebCore::SQLStatement::bindValue): Bind a wrapped SQLValue object (described later)
        (WebCore::SQLStatement::bindParameterCount): Accessor to the sqlite3 API for validating statements
        * loader/icon/SQLStatement.h:
        (WebCore::SQLStatement::isPrepared):

        * platform/sql/SQLAuthorizer.cpp: Added.  Fully virtual interface to implement your own SQLite authorizer
        * platform/sql/SQLAuthorizer.h: Added.
        (WebCore::SQLAuthorizer::~SQLAuthorizer):
        (WebCore::SQLAuthorizer::createTable):
        (WebCore::SQLAuthorizer::createTempTable):
        (WebCore::SQLAuthorizer::dropTable):
        (WebCore::SQLAuthorizer::dropTempTable):
        (WebCore::SQLAuthorizer::allowAlterTable):
        (WebCore::SQLAuthorizer::createIndex):
        (WebCore::SQLAuthorizer::createTempIndex):
        (WebCore::SQLAuthorizer::dropIndex):
        (WebCore::SQLAuthorizer::dropTempIndex):
        (WebCore::SQLAuthorizer::createTrigger):
        (WebCore::SQLAuthorizer::createTempTrigger):
        (WebCore::SQLAuthorizer::dropTrigger):
        (WebCore::SQLAuthorizer::dropTempTrigger):
        (WebCore::SQLAuthorizer::createView):
        (WebCore::SQLAuthorizer::createTempView):
        (WebCore::SQLAuthorizer::dropView):
        (WebCore::SQLAuthorizer::dropTempView):
        (WebCore::SQLAuthorizer::createVTable):
        (WebCore::SQLAuthorizer::dropVTable):
        (WebCore::SQLAuthorizer::allowDelete):
        (WebCore::SQLAuthorizer::allowInsert):
        (WebCore::SQLAuthorizer::allowUpdate):
        (WebCore::SQLAuthorizer::allowTransaction):
        (WebCore::SQLAuthorizer::allowSelect):
        (WebCore::SQLAuthorizer::allowRead):
        (WebCore::SQLAuthorizer::allowAttach):
        (WebCore::SQLAuthorizer::allowDetach):
        (WebCore::SQLAuthorizer::allowReindex):
        (WebCore::SQLAuthorizer::allowAnalyze):
        (WebCore::SQLAuthorizer::allowFunction):

        * platform/sql/SQLValue.cpp: Added.  Contains a value for a SQLite database that can be one of a few types.  
          For now, just a String or a double
        (WebCore::SQLValue::SQLValue):
        (WebCore::SQLValue::string):
        (WebCore::SQLValue::number):
        * platform/sql/SQLValue.h: Added.
        (WebCore::SQLValue::):
        (WebCore::SQLValue::SQLValue):
        (WebCore::SQLValue::type):

2007-10-19  Brady Eidson <beidson@apple.com>

        Reviewed by Maciej

        Changed IconDatabase over to use new FileSystem apis

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::open):

2007-10-19  David Hyatt  <hyatt@apple.com>

        Fix for ebay parser crash.

        Reviewed by Beth

        fast/invalid/table-residual-style-crash.html added as a test

        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):

2007-10-19  Sam Weinig  <sam@webkit.org>

        Fix Windows, Qt and GTK builds.

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:

2007-10-19  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin.

        Encapsulate the same origin check into the new SecurityOrigin class.

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/kjs_window.cpp:
        (KJS::Window::isSafeScript):
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::defaultEventHandler):
        * dom/Document.h:
        (WebCore::Document::securityOrigin):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::begin):
        (WebCore::FrameLoader::setOpener):
        * loader/FrameLoader.h:
        * platform/SecurityOrigin.cpp: Added.
        (WebCore::SecurityOrigin::SecurityOrigin):
        (WebCore::SecurityOrigin::clear):
        (WebCore::SecurityOrigin::isEmpty):
        (WebCore::SecurityOrigin::setForFrame):
        (WebCore::SecurityOrigin::setDomainFromDOM):
        (WebCore::SecurityOrigin::allowsAccessFrom):
        (WebCore::SecurityOrigin::isSecureTransitionTo):
        * platform/SecurityOrigin.h: Added.

2007-10-19  Simon Hausmann  <hausmann@kde.org>

        Fix the Qt/Windows build: Added missing FontSelector.h include.

        * platform/qt/FontQt.cpp:

2007-10-19  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Qt/Windows build fix: Threading.h uses int32_t but doesn't include stdint.h.

        * platform/Threading.h:

2007-10-19  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Fix the Qt/Windows build, don't use cat but use the perl print trick
        instead.

        * WebCore.pro:

2007-10-18  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Kevin McCullough.

        <rdar://problem/5483526> 
        GoogleDocs: A hang occurs when applying list styling to a selection containing a table and line breaks

        * editing/TextIterator.cpp:
        (WebCore::TextIterator::exitNode): For selection preservation, we must emit a character
        between every VisiblePosition.  We weren't emitting a space after some tables, because
        we won't try to emit a space if shouldEmitNewlineAFterNode is true, even if no newline
        was emitted.

2007-10-18  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adam Roben.

        - fix <rdar://problem/5313523>
        REGRESSION(Leopard): http/tests/incremental/slow-utf8-text.pl fails on Leopard

        * platform/network/mac/ResourceResponseMac.mm:
        (WebCore::ResourceResponse::doUpdateResourceResponse): Work around
        <rdar://problem/5321972> by testing for the case of a response
        with a MIME type of application/octet-stream and a Content-Type header
        starting with text/plain and setting the MIME type to text/plain in
        that case.

2007-10-18  Mark Rowe  <mrowe@apple.com>

        Fix the no-SVG build.

        * css/CSSPrimitiveValueMappings.h: Move the CSSPrimitiveValue implementations for
        LineCap, LineJoin and WindRule inside #if ENABLE(SVG).

2007-10-18  Darin Adler  <darin@apple.com>

        Reviewed by Anders.

        - some small tweaks to the threading implementation

        I had trouble building on Windows. Either the problem went away by itself
        or one of these changes fixed it.

        * platform/Threading.h: Eliminated the use of friend, and shared a single
        declaration for the initializeThreading function.

        * platform/pthreads/ThreadingPthreads.cpp: (WebCore::ThreadCondition::wait):
        Call impl() here.

        * platform/win/ThreadingWin.cpp: Got rid of two globals here with static
        constructors. Also added a typedef for the type of the function queue.
        (WebCore::functionQueueMutex): Added function.
        (WebCore::functionQueue): Ditto.
        (WebCore::callFunctionsOnMainThread): Use functions instead of using the
        globals directly.
        (WebCore::callOnMainThread): Ditto.

        * css/CSSParser.cpp: Had to touch this file to make things build.

2007-10-18  Adam Roben  <aroben@apple.com>

        Fix <rdar://5547462> Need to copy Inspector resources in Production builds

        I also added an excludes file for the xcopy command to avoid copying
        .svn folders.

        Reviewed by Geoff.

        * WebCore.vcproj/WebCore.make: Make sure we copy the Inspector
        resources.
        * WebCore.vcproj/WebCore.vcproj: Pass /exclude:xcopy.excludes to
        xcopy.
        * WebCore.vcproj/xcopy.excludes: Added.

2007-10-18  Darin Adler  <darin@apple.com>

        Reviewed by Sam.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15541
          REGRESSION (r26616): prompt with one argument uses the literal "undefined" as default reply

        * page/DOMWindow.idl: Add ConvertUndefinedOrNullToNullString back for defaultValue.

2007-10-18  Nikolas Zimmermann  <zimmermann@kde.org>

        Build fix. Not reviewed.

        Hopefully fix win build by including wtf/MathExtras.h.

        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:

2007-10-18  Dan Bernstein  <mitz@apple.com>

        Reviewed by Nikolas Zimmermann.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15367
          Assertion failure inspecting a document including soft hyphen code (0xad)

        Test: fast/text/word-break-soft-hyphen.html

        * rendering/RenderText.cpp:
        (WebCore::RenderText::calcPrefWidths): Changed to treat soft hyphens as 
        word boundaries. This fixes the bug and is consistent with the fact that
        run rounding does occur at soft hyphens.

2007-10-18  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Anders.

        Fix last layout test failure seen on buildbot "trunk-mac-ppc-release".
        Problem: "svg/custom/mask-excessive-malloc.svg -> crashed"

        Clamp any ImageBuffer allocation within SVG to the RenderView's visibleSize
        to avoid excessive mallocs (in the testcase above 1000000x1000000)

        * ksvg2/svg/SVGMaskElement.cpp:
        (WebCore::SVGMaskElement::drawMaskerContent):
        * ksvg2/svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::buildPattern):
        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
        (WebCore::SVGPaintServerGradient::teardown):
        (WebCore::SVGPaintServerGradient::setup):
        * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
        (WebCore::SVGResourceMasker::applyMask):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::clampImageBufferSizeToViewport):
        * rendering/SVGRenderSupport.h:

2007-10-18  Alexey Proskuryakov  <ap@webkit.org>

        Windows build fix.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty): Add braces around cases that have local variables now.

2007-10-18  Alexey Proskuryakov  <ap@webkit.org>

        Release build fix.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty): 

2007-10-18  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        Split most of CSSPrimitiveValue enum mapping out of CSSComputedStyleDeclaration::getPropertyCSSValue()
        and CSSStyleSelector::applyProperty() (and their SVG counterparts). This should make the code more readable.

        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::getPositionOffsetValue):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::init):
        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        * css/CSSPrimitiveValueMappings.h: Added.
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EBorderStyle):
        (WebCore::CSSPrimitiveValue::operator CompositeOperator):
        (WebCore::CSSPrimitiveValue::operator EAppearance):
        (WebCore::CSSPrimitiveValue::operator EBackgroundBox):
        (WebCore::CSSPrimitiveValue::operator EBackgroundRepeat):
        (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
        (WebCore::CSSPrimitiveValue::operator EBoxDirection):
        (WebCore::CSSPrimitiveValue::operator EBoxLines):
        (WebCore::CSSPrimitiveValue::operator EBoxOrient):
        (WebCore::CSSPrimitiveValue::operator ECaptionSide):
        (WebCore::CSSPrimitiveValue::operator EClear):
        (WebCore::CSSPrimitiveValue::operator ECursor):
        (WebCore::CSSPrimitiveValue::operator EDisplay):
        (WebCore::CSSPrimitiveValue::operator EEmptyCell):
        (WebCore::CSSPrimitiveValue::operator EFloat):
        (WebCore::CSSPrimitiveValue::operator EKHTMLLineBreak):
        (WebCore::CSSPrimitiveValue::operator EListStylePosition):
        (WebCore::CSSPrimitiveValue::operator EListStyleType):
        (WebCore::CSSPrimitiveValue::operator EMarginCollapse):
        (WebCore::CSSPrimitiveValue::operator EMarqueeBehavior):
        (WebCore::CSSPrimitiveValue::operator EMarqueeDirection):
        (WebCore::CSSPrimitiveValue::operator EMatchNearestMailBlockquoteColor):
        (WebCore::CSSPrimitiveValue::operator ENBSPMode):
        (WebCore::CSSPrimitiveValue::operator EOverflow):
        (WebCore::CSSPrimitiveValue::operator EPageBreak):
        (WebCore::CSSPrimitiveValue::operator EPosition):
        (WebCore::CSSPrimitiveValue::operator EResize):
        (WebCore::CSSPrimitiveValue::operator ETableLayout):
        (WebCore::CSSPrimitiveValue::operator ETextAlign):
        (WebCore::CSSPrimitiveValue::operator ETextSecurity):
        (WebCore::CSSPrimitiveValue::operator ETextTransform):
        (WebCore::CSSPrimitiveValue::operator EUnicodeBidi):
        (WebCore::CSSPrimitiveValue::operator EUserDrag):
        (WebCore::CSSPrimitiveValue::operator EUserModify):
        (WebCore::CSSPrimitiveValue::operator EUserSelect):
        (WebCore::CSSPrimitiveValue::operator EVisibility):
        (WebCore::CSSPrimitiveValue::operator EWhiteSpace):
        (WebCore::CSSPrimitiveValue::operator EWordBreak):
        (WebCore::CSSPrimitiveValue::operator EWordWrap):
        (WebCore::CSSPrimitiveValue::operator LineCap):
        (WebCore::CSSPrimitiveValue::operator LineJoin):
        (WebCore::CSSPrimitiveValue::operator TextDirection):
        (WebCore::CSSPrimitiveValue::operator WindRule):
        (WebCore::CSSPrimitiveValue::operator EAlignmentBaseline):
        (WebCore::CSSPrimitiveValue::operator EColorInterpolation):
        (WebCore::CSSPrimitiveValue::operator EColorRendering):
        (WebCore::CSSPrimitiveValue::operator EDominantBaseline):
        (WebCore::CSSPrimitiveValue::operator EImageRendering):
        (WebCore::CSSPrimitiveValue::operator EPointerEvents):
        (WebCore::CSSPrimitiveValue::operator EShapeRendering):
        (WebCore::CSSPrimitiveValue::operator ETextAnchor):
        (WebCore::CSSPrimitiveValue::operator ETextRendering):
        (WebCore::CSSPrimitiveValue::operator EWritingMode):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkSelector):
        (WebCore::CSSStyleSelector::checkOneSelector):
        (WebCore::CSSRuleSet::addRulesFromSheet):
        (WebCore::convertToLength):
        (WebCore::CSSStyleSelector::applyDeclarations):
        (WebCore::CSSStyleSelector::applyProperty):
        (WebCore::CSSStyleSelector::mapBackgroundAttachment):
        (WebCore::CSSStyleSelector::mapBackgroundClip):
        (WebCore::CSSStyleSelector::mapBackgroundComposite):
        (WebCore::CSSStyleSelector::mapBackgroundOrigin):
        (WebCore::CSSStyleSelector::mapBackgroundRepeat):
        (WebCore::CSSStyleSelector::mapBackgroundXPosition):
        (WebCore::CSSStyleSelector::mapBackgroundYPosition):
        * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
        * ksvg2/css/SVGCSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applySVGProperty):

2007-10-18  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej.

        Fix crashers in SVGViewSpec::parseViewSpec
        http://bugs.webkit.org/show_bug.cgi?id=15504

        Test is blocked by bug 15503, landed as:
        * svg/dom/viewspec-parser.html-disabled

        * bindings/scripts/CodeGeneratorObjC.pm: support classes where all parents are interfaces
        * ksvg2/svg/SVGViewSpec.cpp:
        (WebCore::SVGViewSpec::parseViewSpec):
        * ksvg2/svg/SVGViewSpec.idl: Added.

2007-10-17  Rob Buis  <buis@kde.org>

        Reviewed by Darin, Adam, and Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=12988
        First element (in document order) is not returned when other duplicate ID-ed elements were created first

        Reset the element id cache when an id is added and there is a duplicate for that id.

        * dom/Document.cpp:
        (WebCore::Document::addElementById):

2007-10-17  Mark Rowe  <mrowe@apple.com>

        Mac build fix.

        * Configurations/WebCore.xcconfig:  Make it possible to include CoreGraphics header files.

2007-10-17  Adam Roben  <aroben@apple.com>

        Fix an ASSERT on launch on Windows

        Fix dictated to me by Brady.

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::syncThreadMainLoop): Make sure we hold
        m_syncLock before going into the loop.

2007-10-17  Adam Roben  <aroben@apple.com>

        Windows build fix

        * platform/graphics/AffineTransform.h: Don't #include
        ApplicationServices.h.
        * platform/graphics/cg/GraphicsContextCG.cpp: Add an #include that's
        needed now that we're not #including ApplicationServices.h.

2007-10-17  Mark Rowe  <mrowe@apple.com>

        Gtk build fix.  Move non-pthread stubs from Threading.h to ThreadingNone.cpp to prevent
        multiple-definition link errors.

        * WebCore.pro:
        * platform/Threading.h:
        * platform/ThreadingNone.cpp: Added.
        (WebCore::createThread):
        (WebCore::waitForThreadCompletion):
        (WebCore::detachThread):
        (WebCore::Mutex::Mutex):
        (WebCore::Mutex::~Mutex):
        (WebCore::Mutex::lock):
        (WebCore::Mutex::tryLock):
        (WebCore::Mutex::unlock):
        (WebCore::ThreadCondition::ThreadCondition):

2007-10-17  Anders Carlsson  <andersca@apple.com>

        Reviewed by Oliver.

        * WebCore.xcodeproj/project.pbxproj:
        * WebCore.vcproj/WebCore.vcproj:
        
        * config.h:
        #define USE_PTHREADS on Windows.
        
        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::getOrCreateIconRecord):
        (WebCore::IconDatabase::getOrCreatePageURLRecord):
        Update for mutex changes.
        
        * platform/Threading.h:
        (WebCore::):
        (WebCore::ThreadSafeShared::ThreadSafeShared):
        (WebCore::ThreadSafeShared::ref):
        (WebCore::ThreadSafeShared::deref):
        (WebCore::ThreadSafeShared::hasOneRef):
        (WebCore::ThreadSafeShared::refCount):
        (WebCore::ThreadSafeShared::isThreadSafe):
        Add a new Shared base class that uses a mutex to manage its refcount.
        
        (WebCore::createThread):
        (WebCore::waitForThreadCompletion):
        (WebCore::detachThread):
        New functions for thread creation.
        
        (WebCore::Mutex::Mutex):
        (WebCore::Mutex::~Mutex):
        (WebCore::Mutex::lock):
        (WebCore::Mutex::tryLock):
        (WebCore::Mutex::unlock):
        Move the definitions to ThreadingPthreads.cpp
        
        (WebCore::ThreadCondition::ThreadCondition):
        (WebCore::ThreadCondition::~ThreadCondition):
        (WebCore::ThreadCondition::wait):
        (WebCore::ThreadCondition::signal):
        (WebCore::ThreadCondition::broadcast):
        Move the definitions to ThreadingPthreads.cpp
        
        * platform/pthreads: Added.
        * platform/pthreads/ThreadingPthreads.cpp: Added.
        Add pthread specific implementation of the thread creation functions, Mutex and ThreadCondition.

2007-10-17  David Hyatt  <hyatt@apple.com>

        Add support for creating a layer when a transform is in effect.  Add support to RenderStyle for
        handing back a computed AffineTransform.

        Reviewed by Mitz Pettel

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::adjustRenderStyle):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::setStyle):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::RenderObject):
        (WebCore::RenderObject::requiresLayer):
        (WebCore::RenderObject::setStyle):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::hasTransform):
        (WebCore::RenderObject::setHasTransform):
        * rendering/RenderStyle.cpp:
        (WebCore::RenderStyle::applyTransform):
        * rendering/RenderStyle.h:
        (WebCore::RenderStyle::hasTransform):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::requiresLayer):
        * rendering/RenderTableRow.h:
        (WebCore::RenderTableRow::requiresLayer):

2007-10-17  David Hyatt  <hyatt@apple.com>

        Add support for mapping of the transform CSS property into RenderStyles.  Everything is now ready for the front
        end to use.

        Reviewed by Mitz Pettel

        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSTransformValue.h:
        (WebCore::CSSTransformValue::type):
        (WebCore::CSSTransformValue::values):
        * platform/graphics/AffineTransform.cpp:
        (WebCore::AffineTransform::skew):
        * platform/graphics/AffineTransform.h:
        * rendering/RenderStyle.cpp:
        (WebCore::StyleTransformData::StyleTransformData):
        (WebCore::StyleTransformData::operator==):
        (WebCore::StyleTransformData::transformDataEquivalent):
        * rendering/RenderStyle.h:
        (WebCore::TransformOperation::~TransformOperation):
        (WebCore::TransformOperation::operator!=):
        (WebCore::TransformOperation::isScaleOperation):
        (WebCore::TransformOperation::isRotateOperation):
        (WebCore::TransformOperation::isSkewOperation):
        (WebCore::TransformOperation::isTranslateOperation):
        (WebCore::TransformOperation::isMatrixOperation):
        (WebCore::ScaleTransformOperation::ScaleTransformOperation):
        (WebCore::ScaleTransformOperation::isScaleOperation):
        (WebCore::ScaleTransformOperation::operator==):
        (WebCore::ScaleTransformOperation::apply):
        (WebCore::RotateTransformOperation::RotateTransformOperation):
        (WebCore::RotateTransformOperation::isRotateOperation):
        (WebCore::RotateTransformOperation::operator==):
        (WebCore::RotateTransformOperation::apply):
        (WebCore::SkewTransformOperation::SkewTransformOperation):
        (WebCore::SkewTransformOperation::isSkewOperation):
        (WebCore::SkewTransformOperation::operator==):
        (WebCore::SkewTransformOperation::apply):
        (WebCore::TranslateTransformOperation::TranslateTransformOperation):
        (WebCore::TranslateTransformOperation::isTranslateOperation):
        (WebCore::TranslateTransformOperation::operator==):
        (WebCore::TranslateTransformOperation::apply):
        (WebCore::MatrixTransformOperation::MatrixTransformOperation):
        (WebCore::MatrixTransformOperation::isMatrixOperation):
        (WebCore::MatrixTransformOperation::operator==):
        (WebCore::MatrixTransformOperation::apply):
        (WebCore::StyleTransformData::operator!=):
        (WebCore::RenderStyle::transform):
        (WebCore::RenderStyle::setTransform):
        (WebCore::RenderStyle::initialTransform):

2007-10-17  Adam Roben  <aroben@apple.com>

        * page/Frame.cpp: I had to touch this file when fixing the Windows
        build. Checking it in in case it helps others, too.

2007-10-17  Eric Seidel  <eric@webkit.org>

        Reviewed by Mark Rowe.
        
        Remove a couple more uses of svg_dynamic_cast.

        No functional changes, no tests.

        * ksvg2/svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::buildPattern):

2007-10-17  Mark Rowe  <mrowe@apple.com>

        Reviewed by Eric and Geoff.

        <rdar://problem/5453743> Repro ASSERT in CachedResource::setEncodedSize() loading image in background tab
        http://bugs.webkit.org/show_bug.cgi?id=15191

        * loader/DocLoader.cpp:
        (WebCore::DocLoader::setAutoLoadImages): Don't start a load if the CachedImage is already loading.

2007-10-17  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Harrison.
        
        <rdar://problem/5481523> 
        GoogleDocs: Safari hangs when indenting a particular table twice
        
        Fixed by fixing problems with the selection preservation done by IndentOutdentCommand.
        It is now more difficult to create selections that cause hangs.  Those are covered by:
        <rdar://problem/5543472>

        * editing/IndentOutdentCommand.cpp:
        (WebCore::indexForVisiblePosition): Compute indices from the first VisiblePosition
        in the document, instead of the first Position.
        Use rangeCompliantEquivalents when creating the Range that we pass to rangeLength.
        Tell TextIterator::rangeLength that we're doing selection preservation, so that it
        will emit characters between all VisiblePositions.
        (WebCore::IndentOutdentCommand::indentRegion): Fixed a bug where the range and location
        passed to rangeFromLocationAndLength were reversed.
        Tell rangeFromLocationAndLength that we're doing doing selection preservation, as
        above.
        * editing/TextIterator.cpp:
        (WebCore::CharacterIterator::CharacterIterator): 
        (WebCore::TextIterator::rangeLength): Rename emitSpacesForReplacedElements
        to forSelectionPreservation, to match the name of the boolean inside TextIterator and
        to match its meaning after r25522.
        (WebCore::TextIterator::rangeFromLocationAndLength): Ditto.

2007-10-16  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15536
          need to cache missing glyph so we're not slow on pages that show missing glyphs

        - <rdar://problem/5404359> UI thread stall (>60sec) in MLANG running stress test
          (related to font data caching)

        * platform/Font.cpp: (WebCore::Font::glyphDataForCharacter): Check for a null value
        for fontData rather than for glyph to detect non-cached entries in the glyph data.

        * platform/gtk/GlyphPageTreeNodeGtk.cpp: (WebCore::GlyphPage::fill):
        * platform/mac/GlyphPageTreeNodeMac.cpp: (WebCore::GlyphPage::fill):
        * platform/win/GlyphPageTreeNodeWin.cpp: (WebCore::GlyphPage::fill):
        Set fontData to 0 for missing glyph entries. Also fixed the Windows and GTK versions
        to return the proper value for haveGlyphs.

2007-10-16  Mark Rowe  <mrowe@apple.com>

        Gtk build fix.  Replace use of assert with ASSERT_NOT_REACHED.

        * platform/gtk/FontCacheGtk.cpp:
        (WebCore::FontCache::platformInit):

2007-10-16  Darin Adler  <darin@apple.com>

        Reviewed by Adam.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15534
          WebScriptObject.h has some formatting and editorial mistakes

        * bindings/objc/WebScriptObject.h: Fix wording and formatting.

2007-10-16  Darin Adler  <darin@apple.com>

        - try to fix the Qt build

        * config.h: Don't use DisallowCType.h, since it's incompatible with some C++ headers
        that are used in some Qt-specific source files.

2007-10-16  Darin Adler  <darin@apple.com>

        Reviewed by Adele.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15525
          transpose (control-T) should do the last two characters on a line if at end of line
        - remove unused CommandByName class
        - move transpose command implementation here from Mac OS X WebKit

        * editing/Editor.h:
        * editing/Editor.cpp:
        (WebCore::execTranspose): Added.
        (WebCore::Editor::transpose): Added. This has the transpose implementation from
        WebCoreFrameBridge and WebHTMLView, translated into WebCore-style C++ and with
        a special case for the end of a paragraph.

        * page/Frame.h: Removed unused command() function member.
        * page/FramePrivate.h: Removed unused m_command data member.
        * page/Frame.cpp: Ditto.

        * page/mac/WebCoreFrameBridge.h: Removed rangeOfCharactersAroundCaret method.
        * page/mac/WebCoreFrameBridge.mm: Ditto.

        * WebCore.pro: Removed CommandByName.h/cpp.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * editing/CommandByName.cpp: Removed.
        * editing/CommandByName.h: Removed.

2007-10-16  Darin Adler  <darin@apple.com>

        Reviewed by Maciej and Geoff (and looked over by Eric).

        - http://bugs.webkit.org/show_bug.cgi?id=15519
          eliminate use of <ctype.h> for processing ASCII

        * ForwardingHeaders/wtf/ASCIICType.h: Added.
        * ForwardingHeaders/wtf/DisallowCType.h: Added.

        * WebCorePrefix.h: Get rid of inclusion of <ctype.h>.
        * config.h: Include DisallowCType.h.

        * css/CSSParser.cpp:
        (WebCore::ParseString::lower):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::isCSSTokenizerIdentifier):
        * css/CSSStyleDeclaration.cpp:
        (WebCore::propertyID):
        * html/HTMLSelectElement.cpp:
        (WebCore::stripLeadingWhiteSpace):
        * html/HTMLTokenizer.cpp:
        (WebCore::tagMatch):
        * loader/FTPDirectoryParser.cpp:
        (WebCore::parseOneFTPLine):
        * loader/TextResourceDecoder.cpp:
        (WebCore::TextResourceDecoder::checkForHeadCharset):
        * platform/DeprecatedCString.cpp:
        (WebCore::DeprecatedCString::lower):
        (WebCore::DeprecatedCString::upper):
        (WebCore::DeprecatedCString::find):
        (WebCore::DeprecatedCString::contains):
        * platform/DeprecatedString.cpp:
        (WebCore::equalCaseInsensitive):
        (WebCore::isCharacterAllowedInBase):
        (WebCore::DeprecatedString::find):
        (WebCore::DeprecatedString::contains):
        (WebCore::toIntegralType):
        * platform/DeprecatedString.h:
        (WebCore::DeprecatedChar::isSpace):
        (WebCore::DeprecatedChar::lower):
        (WebCore::DeprecatedChar::upper):
        * platform/KURL.cpp:
        (WebCore::KURL::parse):
        * platform/StringImpl.cpp:
        (WebCore::isSpace):
        (WebCore::StringImpl::containsOnlyWhitespace):
        (WebCore::StringImpl::isLower):
        (WebCore::StringImpl::lower):
        (WebCore::StringImpl::find):
        (WebCore::StringImpl::reverseFind):
        (WebCore::equalIgnoringCase):
        * platform/TextEncodingRegistry.cpp:
        (WebCore::TextEncodingNameHash::equal):
        (WebCore::TextEncodingNameHash::hash):
        (WebCore::atomicCanonicalTextEncodingName):
        * platform/mac/KeyEventMac.mm:
        (WebCore::keyIdentifierForKeyEvent):
        * platform/win/KeyEventWin.cpp:
        (WebCore::keyIdentifierForWindowsKeyCode):
        * platform/win/PopupMenuWin.cpp:
        (WebCore::isASCIIPrintable):
        (WebCore::PopupWndProc):
        * plugins/win/PluginViewWin.cpp:
        (WebCore::capitalizeRFC822HeaderFieldName):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::widthFromCache):
        Use ASCIICType.h functions instead of ctype.h ones.

2007-10-16  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15296
          REGRESSION (r19716-r19719): width not specified for <marquee> tag is causing the alignment issue.

        Test: fast/block/float/marquee-shrink-to-avoid-floats.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::shrinkToAvoidFloats): Changed to return 'true' for <marquee>s with auto width.

2007-10-16  Beth Dakin  <bdakin@apple.com>

        Reviewed by Darin.

        Fix for <rdar://problem/5517118> REGRESSION: 9A570 - Safari renders 
        Amazon seller page way too small

        The font size at Amazon was way too small because the calls to 
        getComputedStyle and getPropertyValue did not cause the div to 
        attach because there was a pending stylesheet. The fix is to call 
        updateLayoutIgnorePendingStylesheets() instead of just 
        updateLayout().

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2007-10-16  David Hyatt  <hyatt@apple.com>

        Get transform-origin(x/y) mapped into the front end RenderStyle.  Adds a new StyleTransformData struct that
        holds transform-origin (and that will also eventually hold the parsed transform operations as well).

        Reviewed by Beth

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/RenderStyle.cpp:
        (WebCore::StyleTransformData::StyleTransformData):
        (WebCore::StyleTransformData::operator==):
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        (WebCore::RenderStyle::RenderStyle):
        (WebCore::RenderStyle::diff):
        * rendering/RenderStyle.h:
        (WebCore::StyleTransformData::operator!=):
        (WebCore::RenderStyle::transformOriginX):
        (WebCore::RenderStyle::transformOriginY):
        (WebCore::RenderStyle::setTransformOriginX):
        (WebCore::RenderStyle::setTransformOriginY):
        (WebCore::RenderStyle::initialTransformOriginX):
        (WebCore::RenderStyle::initialTransformOriginY):

2007-10-16  Adele Peterson  <adele@apple.com>

        Reviewed by Alice.

        Fix for <rdar://problem/5538793> REGRESSION: Failing layout test: fast/forms/select-change-listbox-to-popup.html (due to landing feature branch)

        * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::parseMappedAttribute):  When switching between types of select elements, call setRecalcListItems
          since recalcListItems updates the default selection in different ways for the different controls. 

2007-10-16  Alice Liu  <alice.liu@apple.com>

        rubber-stamped by Darin.

        flipping my previous fix around so that mac is special-cased instead of win.

        * dom/Document.cpp:
        (WebCore::Document::defaultEventHandler):

2007-10-16  David Hyatt  <hyatt@apple.com>

        Clean up transform parsing.  Fix a crash, ditch the extra parse context class, and use RefPtr/PassRefPtr more
        to simplify the code.

        Reviewed by aroben

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseTransform):
        * css/CSSParser.h:

2007-10-16  Alice Liu  <alice.liu@apple.com>

        Reviewed by Adele.

        fixed <rdar://5085596> Accesskeys don't work
        
        * dom/Document.cpp:
        (WebCore::Document::defaultEventHandler):
        accesskey modifier is platform-depedent.

2007-10-15  Mark Rowe  <mrowe@apple.com>

        Reviewed by John.

        <rdar://problem/5494040> Reproducible assertion failure in WebCore::IconDatabase::iconForPageURL

        A race condition between icon database import and Safari asking for an icon for the empty URL
        was resulting in a PageURLRecord being created for a URL that can never be retained.  By enforcing
        that PageURLRecord's cannot be created for the empty URL we can prevent the assertion from failing.

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::iconForPageURL):
        (WebCore::IconDatabase::getOrCreatePageURLRecord): Bail out early if the URL is empty.
        (WebCore::IconDatabase::performURLImport): Don't create the PageURLRecord if the URL is empty.

2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Ollie.

        Use OwnPtr for m_deliveryData, and fix a bug where we were memmove()ing
        over m_deliveryData instead of its data buffer

        * plugins/win/PluginStreamWin.cpp:
        (WebCore::PluginStreamWin::~PluginStreamWin): Don't delete
        m_deliveryData
        (WebCore::PluginStreamWin::deliverData): Fix memmove() call
        (WebCore::PluginStreamWin::didReceiveData): Assign using OwnPtr::set()
        * plugins/win/PluginStreamWin.h: Use OwnPtr

2007-10-15  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Oliver.

        Add missing null check.

        * platform/network/cf/AuthenticationCF.cpp:
        (WebCore::core):

2007-10-15  Mark Rowe  <mrowe@apple.com>

        Fix the no-SVG build again.  Add new transform CSS properties to the switch statements.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2007-10-15  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - http://bugs.webkit.org/show_bug.cgi?id=15518
          Remove the unused attemptFontSubstitution feature and do some
          cleanup of glyphDataForCharacter.

        * platform/Font.h:
        * platform/Font.cpp:
        (WebCore::WidthIterator::advance): Eliminated uneeded attemptFontSubstitution
        and cluster parameters to the glyphDataForCharacter function.
        (WebCore::Font::glyphDataForCharacter): Removed the cluster parameter and
        attemptFontSubstitution parameter. Removed the isUpper check before calling
        toUpper in the small caps code path. Split up the inner loop into separate
        copies for non-small-caps and small caps. Broke out the system fallback
        page handling so it's not inside the loop. Changed system fallback so it uses
        the character and breaks it up into UTF-16 as needed, instead of using a
        passed-in "character cluster".

        * platform/TextStyle.h:
        (WebCore::TextStyle::TextStyle): Removed attemptFontSubstitution.
        (WebCore::TextStyle::applyWordRounding): Ditto.

2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Ollie.

        Remove an operator precedence warning on Windows

        * editing/markup.cpp:
        (WebCore::escapeContentText): Use (a) | (b)
        (WebCore::appendEscapedContent): Use (a) | (b)

2007-10-15  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Darin.

        - <rdar://problem/5238818> window.resizeTo doesn't restrict the resized window to the size of the screen
        - Now we take the doc into account when resizing.
        - Also I found an issue where we would resize to outside the window, because
          the resize would be smaller than the window size but the location of the
          window would make the resize go off-screen. Now we move the window back into the screen.

        * bindings/js/kjs_window.cpp:
        (KJS::adjustWindowRect):
        (KJS::WindowFunc::callAsFunction):

2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Anders.

        <rdar://5510700> Repro crash loading embedded Windows Media Player
        content

        Anders noticed that the older Windows Media Player plugin (npdsplay.dll)
        will crash if it receives its resource requests out of order, whereas we
        were immediately fulfilling untargeted, non-JavaScript requests and
        scheduling targeted or JavaScript resource requests. Implement his
        suggested fix, which is to schedule PluginRequests for all resource
        requests 

        * plugins/win/PluginViewWin.cpp:
        (WebCore::getString):
        (WebCore::PluginViewWin::performRequest): If this non-JavaScript request
        has no target, create a stream for it
        (WebCore::PluginViewWin::load): Schedule PluginRequests for all resource
        requests

2007-10-15  Mark Rowe  <mrowe@apple.com>

        Gtk and Qt build fix.  Add new .cpp file to project.

        * WebCore.pro:

2007-10-15  John Sullivan  <sullivan@apple.com>

        * platform/mac/FontDataMac.mm:
        D'oh! Added missing #import to fix build

2007-10-15  John Sullivan  <sullivan@apple.com>

        Reviewed by Geoff

        * platform/mac/FontDataMac.mm:
        (WebCore::FontData::smallCapsFontData):
        replace NS_DURING/NS_HANDLER with WebCore-style BEGIN/END_BLOCK_OBJC_EXCEPTIONS

2007-10-15  David Hyatt  <hyatt@apple.com>

        The CSS WG has been discussing the concept of rotation.  In the latest draft specification, two properties
        have been introduced: rotation and rotation-point.  I believe these properties should be generalized to
        allow for arbitrary transformations (e.g., translation, skew, rotate, scale).

        This patch adds support for the back-end parsing of two new CSS properties: transform and transform-origin.
        They are directly analogous to the properties specified by the CSS WG, except that they are designed to allow
        for arbitrary affine transforms rather than just rotation.

        Reviewed by Beth Dakin

        * WebCore.xcodeproj/project.pbxproj:
        * WebCore.vcproj/WebCore.vcproj:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::TransformParseContext:::m_list):
        (WebCore::TransformParseContext::list):
        (WebCore::TransformParseContext::failed):
        (WebCore::TransformParseContext::addValue):
        (WebCore::TransformOperationInfo::TransformOperationInfo):
        (WebCore::TransformOperationInfo::type):
        (WebCore::TransformOperationInfo::argCount):
        (WebCore::TransformOperationInfo::unit):
        (WebCore::TransformOperationInfo::unknown):
        (WebCore::TransformOperationInfo::hasCorrectArgCount):
        (WebCore::CSSParser::parseTransform):
        (WebCore::CSSParser::parseTransformOrigin):
        * css/CSSParser.h:
        * css/CSSPropertyNames.in:
        * css/CSSTransformValue.cpp: Added.
        (WebCore::CSSTransformValue::CSSTransformValue):
        (WebCore::CSSTransformValue::~CSSTransformValue):
        (WebCore::CSSTransformValue::addValue):
        (WebCore::CSSTransformValue::cssText):
        * css/CSSTransformValue.h: Added.
        (WebCore::CSSTransformValue::):

2007-10-15  Mark Rowe  <mrowe@apple.com>

        Reviewed by Oliver.

        Fix the no-SVG build.

        * DerivedSources.make: Use the correct file as input to generate CSSPropertyNames.h.
        * rendering/RenderObject.cpp:
        (WebCore::objectIsRelayoutBoundary):

2007-10-15  Darin Adler  <darin@apple.com>

        Reviewed by Sam.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15520
          alert(undefined) should say "undefined" in the alert

        Test: fast/dom/Window/alert-undefined.html

        * page/DOMWindow.idl: Remove ConvertUndefinedOrNullToNullString from alert, confirm, and prompt.
        It turns out that the default behavior is what the other browsers do (browsers tested: IE 7,
        Firefox 2).

2007-10-15  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=15252
        <rdar://problem/5498184> REGRESSION: <select multiple> doesn't scroll to top when old options are removed and new ones are added, leaving listbox empty-looking

        * rendering/RenderListBox.cpp: (WebCore::RenderListBox::calcHeight): If the scrollbar is disabled, make sure the scroll offset gets reset to 0.  In general,
          we don't want to unnecessarily adjust the scroll offset, but in this case, there won't be an obvious way for the user to adjust the scroller position once it's disabled.

2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Maciej.

        Return a more appropriate error from NPN_RequestRange, which is
        currently unimplemented

        * plugins/win/npapi.cpp: return NPERR_STREAM_NOT_SEEKABLE 
        (NPN_RequestRead):

2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Maciej.

        Add a missing function pointer to the m_browserFuncs structure

        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackageWin::load):

2007-10-15  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Fix the compilation of the Font code in the Qt port by adding the necessary stubs to support downloadable fonts through the @font-face rules.

        * WebCore.pro:
        * loader/CachedFont.cpp:
        * platform/qt/FontCacheQt.cpp: Removed.
        * platform/qt/FontCustomPlatformData.cpp: Removed.
        * platform/qt/FontCustomPlatformData.h: Removed.
        * platform/qt/FontDataQt.cpp: Removed.
        * platform/qt/FontPlatformData.h: Removed.
        * platform/qt/FontQt.cpp:
        * platform/qt/GlyphPageTreeNodeQt.cpp: Removed.

2007-10-15  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Adapt to the latest API changes in the SVG API/Code.

        * platform/graphics/svg/qt/RenderPathQt.cpp:
        (WebCore::RenderPath::strokeContains):
        (WebCore::getPathStroke):
        * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
        (WebCore::SVGPaintServer::setPenProperties):
        * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:

2007-10-14  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric.

        Fix bad abstraction in ImageBuffer class.
        While the class itself is platform-aware and thus it's location in platform/graphics
        is fine, it contains the "renderSubtreeToImage" method which operates on RenderObject.

        As it's SVG specific I decided to move this method into SVGRenderSupport, to avoid
        implicit platform/ <-> rendering/ dependencies.

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * ksvg2/svg/SVGMaskElement.cpp:
        (WebCore::SVGMaskElement::drawMaskerContent):
        * ksvg2/svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::buildPattern):
        * platform/graphics/ImageBuffer.cpp: Removed.
        * platform/graphics/ImageBuffer.h:
        (WebCore::ImageBuffer::size):
        * platform/graphics/svg/SVGImage.cpp:
        (WebCore::SVGImage::nativeImageForCurrentFrame):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::renderSubtreeToImage):
        * rendering/SVGRenderSupport.h:

2007-10-14  Peter Kasting  <zerodpx@gmail.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=15210
        Draw the image outline even for broken images.

        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paint):

2007-10-14  Kevin Ollivier  <kevino@theolliviers.com>

        Reviewed by Adam.

        Add support for MSVC7, and fix cases where PLATFORM(WIN) should
        be PLATFORM(WIN_OS) for other ports building on Windows.

        * dom/XMLTokenizer.cpp:
        * page/FrameTree.cpp:
        * platform/StaticConstructors.h:
        * platform/String.cpp:

2007-10-14  Maxime Britto  <mbritto@pleyo.com>

        Reviewed by Mitz.

        Fix an error in the goBackOrForward() function : confusion between forwardListCount and backListCount.
        http://bugs.webkit.org/show_bug.cgi?id=15212

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

2007-10-14  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15181
          text-transform: uppercase not working in input (submit, reset, button) elements
          <rdar://problem/5474647>

        Test: fast/forms/button-text-transform.html

        Text transformations require access to the original text. The button's inner
        text was an anonymous RenderText, meaning it did not have a node to retrieve
        the original text from. The patch fixes this by changing the inner text into a
        RenderTextFragment, which stores its own original text.

        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::setText):
        * rendering/RenderButton.h:

2007-10-14  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej.

        REGRESSION: Javascript bug in getElementsByName
        http://bugs.webkit.org/show_bug.cgi?id=15274

        Test: fast/dom/getelementbyname-invalidation.html

        * dom/NameNodeList.h: remove empty rootNodeChildrenChanged override

2007-10-14  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Maciej.

        - http://bugs.webkit.org/show_bug.cgi?id=15303
          Remove now-redundant code to restore dialog arguments after clear

        This patch reverts the kjs_window.* parts of r25576 because following
        r25783, window properties, including dialog arguments, are not cleared
        when the newly created modal dialog transitions to the document.

        * bindings/js/kjs_window.cpp:
        (KJS::WindowPrivate::WindowPrivate):
        (KJS::createWindow):
        (KJS::showModalDialog):
        (KJS::Window::clear):
        (KJS::WindowFunc::callAsFunction):
        (KJS::Window::setReturnValueSlot):
        * bindings/js/kjs_window.h:

2007-10-14  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15309
          <rdar://problem/5512020> Crash due to infinite recursion in RenderTable::addChild

        Test: fast/table/generated-caption.html

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild): Changed to make sure that the child is
        not added into generated after content. Also made adding a child before
        a table caption work correctly instead of adding the child after the caption.

2007-10-14  Peter Kasting  <zerodpx@gmail.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=15141
        Feed GIF reader data from the point in the stream it expects.  Also,
        mirror the reader's failure state up to the wrapping decoder.

        * platform/image-decoders/gif/GIFImageReader.cpp:
        (GIFImageReader::read):

2007-10-14  Peter Kasting  <zerodpx@gmail.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=15142
        Return correct frame count in GIFImageDecoder::frameBufferAtIndex(),
        even if more data has arrived since the last decoding pass.

        * platform/image-decoders/gif/GIFImageDecoder.cpp:
        (WebCore::GIFImageDecoder::frameBufferAtIndex):

== Rolled over to ChangeLog-2007-10-14 ==
