ChangeLog   [plain text]


2009-03-19  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (OOPS!).

        <rdar://problem/6702386> Incorrect bound check in SVGList::insertItemBefore

        SVGList::insertItemBefore would not perform a bounds check on the
        index it was provided, potentially leading to a buffer overflow.

        Test: svg/dom/svglist-exception-on-out-bounds-error.html

        * svg/SVGList.h:
        (WebCore::SVGList::insertItemBefore):

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

        Merge r41190.

    2009-02-24  Sam Weinig  <sam@webkit.org>

        Reviewed by Geoffrey Garen.

        Related to <rdar://problem/6590295>
        Allow disabling javascript: urls.

        * WebCore.base.exp:
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::parseMappedAttribute):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::executeIfJavaScriptURL):
        * page/Page.cpp:
        (WebCore::Page::Page):
        (WebCore::Page::setJavaScriptURLsAreAllowed):
        (WebCore::Page::javaScriptURLsAreAllowed):
        * page/Page.h:

2009-01-28  Ada Chan  <adachan@apple.com>

        Merge the rest of r33579.

        Reviewed by Steve Falkenburg.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::makeFinalRequest):
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        * platform/network/win/CookieJarWin.cpp:
        (WebCore::setCookies):
        (WebCore::cookies):
        (WebCore::cookiesEnabled):

2009-01-20  Mark Rowe  <mrowe@apple.com>

        Merge r33579.

    2008-05-19  Ada Chan  <adachan@apple.com>

        Added CookieStorageWin.h/cpp, introducing methods to get/set the current CFHTTPCookieStorageRef.
        When setting cookies-related attributes in CFURLRequest, make sure we get them from the
        current CFHTTPCookieStorageRef.  Also, set the cookie storage in CFURLRequest.

        Reviewed by Steve Falkenburg.

        * WebCore.vcproj/WebCore.vcproj:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::makeFinalRequest):
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        * platform/network/win/CookieJarCFNetWin.cpp:
        (WebCore::setCookies):
        (WebCore::cookies):
        (WebCore::cookiesEnabled):
        * platform/network/win/CookieStorageWin.cpp: Added.
        (WebCore::currentCookieStorage):
        (WebCore::setCurrentCookieStorage):
        * platform/network/win/CookieStorageWin.h: Added.

2009-01-19  Mark Rowe  <mrowe@apple.com>

        Merge r33993.

    2008-05-21  Beth Dakin  <bdakin@apple.com>

        Reviewed by Anders.

        Fix for <rdar://problem/5848161> REGRESSION (r31438?): Crash 
        beneath ResourceHandle::setDefersLoading while running fast/loader/
        simultaneous-reloads-assert.html (null CFURLConnection)

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::setDefersLoading): Added simple null-
        check.

2009-01-19  Mark Rowe  <mrowe@apple.com>

        Merge r39247.

    2008-12-11  Steve Falkenburg  <sfalken@apple.com>

        Delete the previous timer-queue timer in the main thread, just prior to scheduling a new timer.
        The code previously called DeleteTimerQueueTimer in the timer callback proc.
        
        The new technique simplifies the code, since we now create and delete timers on the
        same thread, and don't access the timer queue or timer handles in the callback.
        This allows us to remove some mutex use, and more importantly, it solves a race
        condition that was occuring between ChangeTimerQueueTimer and DeleteTimerQueueTimer.
        
        Since the timer callback isn't passed the timer handle, we were retrieving that handle
        via a global. If the timer callback code was entered, but then a new timer was immediately
        scheduled (prior to the callback acquiring the mutex and calling DeleteTimerQueueTimer),
        there was a small window where the timer could be re-scheduled via ChangeTimerQueueTimer
        and then immediately deleted once the already running callback acquired the mutex and
        then called DeleteTimerQueueTimer. This resulted in the newly scheduled timer never firing.
        
        Reviewed by Oliver Hunt.

        * platform/win/SharedTimerWin.cpp:
        (WebCore::queueTimerProc): Don't delete the timer in the callback.
        (WebCore::setSharedTimerFireTime): Always delete and create the timer instead of using ChangeTimerQueueTimer.
        (WebCore::stopSharedTimer): Call DeleteTimerQueueTimer directly.

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

        Merge r37628.

    2008-10-15  Jon Honeycutt  <jhoneycutt@apple.com>

        Remove unneeded check of whether a Page defers loading before running it
        in a modal dialog.

        No test possible.

        Reviewed by Tim Hatcher.

        * page/Chrome.cpp:

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

        Merge r37897.

    2008-10-27  Anders Carlsson  <andersca@apple.com>

        Reviewed by Kevin Decker.

        <rdar://problem/6322650> Crash in fast/loader/simultaneous-reloads-assert.html
        
        Make sure to null check the NSURLConnection object.
        
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::setDefersLoading):

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

        Merge r37793.

    2008-10-22  Brady Eidson  <beidson@apple.com>

        Reviewed by Adam Roben

        <rdar://6261773> - autocomplete="off" doesn't work on Windows

        Visual Studio makes a poor decision regarding the combination of enums and bitfields, such that a 
        statement like "m_autocomplete = Off" followed by "return m_autocomplete == Off" would return "false" 
        instead of the much more correct "true."
        
        In the past we have worked around this by declaring the bitfield member as an unsigned instead 
        of the enum type.

        For more discussion, see http://trac.webkit.org/changeset/25329

        * html/HTMLInputElement.h:  Work around insane Visual Studio enum issue  *sigh*

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

        Merge r37704.

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

        Reviewed by Timothy Hatcher.

        - lower the default button repaint frequency

        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::styleDidChange): Changed the timer interval from
        0.01 to 0.03.

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

        Merge r31577.

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

        Reviewed by Oliver Hunt.

        Ensure that debug symbols are generated for x86_64 and ppc64 builds.

        * Configurations/Base.xcconfig:

2008-10-13  Steve Falkenburg  <sfalken@apple.com>

        Roll out r36884.

        * platform/graphics/GraphicsContext.h:
        * platform/graphics/win/GraphicsContextCGWin.cpp:
        (WebCore::CGContextWithHDC):
        (WebCore::GraphicsContext::GraphicsContext):

2008-10-07  Mark Rowe  <mrowe@apple.com>

        Merge r35415.

    2008-07-28  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam Weinig

        Test: security/autocomplete-cleared-on-back.html

        <rdar://problem/6093281> - autocomplete="off" should work when going back

        Taken care of in two ways:
        1 - Listening for the page cache notification to clear the form, in cases where the page
            is being restored from the page cache
        2 - Not saving such form elements when doing the normal "save state" to a history item,
            for cases with no page cache

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::~HTMLFormElement):
        (WebCore::HTMLFormElement::parseMappedAttribute):
        (WebCore::HTMLFormElement::didRestoreFromCache):
        (WebCore::HTMLFormElement::willMoveToNewOwnerDocument):
        (WebCore::HTMLFormElement::didMoveToNewOwnerDocument):
        * html/HTMLFormElement.h:

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::~HTMLInputElement):
        (WebCore::HTMLInputElement::setInputType):
        (WebCore::HTMLInputElement::saveState):
        (WebCore::HTMLInputElement::parseMappedAttribute):
        (WebCore::HTMLInputElement::needsCacheCallback):
        (WebCore::HTMLInputElement::registerForCacheCallbackIfNeeded): Only register if the type or attribute
          indicate we should.
        (WebCore::HTMLInputElement::unregisterForCacheCallbackIfNeeded): Only unregister if both the type
          and attribute are clear of needing registration.
        (WebCore::HTMLInputElement::didRestoreFromCache):
        (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
        (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
        * html/HTMLInputElement.h:

2008-10-07  Mark Rowe  <mrowe@apple.com>

        Merge r35362.

    2008-07-25  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam

        Test: security/set-form-autocomplete-attribute.html

        Part of the fix for <rdar://problem/6093281> - Improper handling of autocomplete

        The autocomplete attribute works on both <form> and <input> elements, but was not
        inherited properly when someone asked an <input> if it should autocomplete.

        I fixed this up based on the rules in the current WF2 spec so if the <input> element
        has its own autocomplete attribute set, it will follow that but otherwise it will
        inherit from its parent <form>

        * WebCore.base.exp:

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::init):
        (WebCore::HTMLInputElement::autoComplete):
        (WebCore::HTMLInputElement::parseMappedAttribute):
        * html/HTMLInputElement.h:
        (WebCore::HTMLInputElement::):

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

        Merge r33567.

    2008-05-18  Darin Adler  <darin@apple.com>

        Reviewed by Sam.

        - fix <rdar://problem/5943569> crash due to stale ownerNode pointer

        Test: fast/dom/StyleSheet/ownerNode-lifetime.html

        * bindings/js/JSStyleSheetCustom.cpp:
        (WebCore::JSStyleSheet::mark): Added code to mark ownerNode. Includes a comment about how
        it would be even better to solve this in the DOM rather than just in the JavaScript binding.

        * css/StyleSheet.idl: Added CustomMarkFunction attribute.

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

        Merge r36108.

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

        Reviewed by Mitz

        <rdar://problem/6180236> - Safari times out connections after 1 or 2 minutes

        A 60-second default timeout was added in http://trac.webkit.org/changeset/17144 in an attempt 
        to model default NSURLRequest behavior in a cross-platform manner.  

        Sadly by always enforcing this 60 second timeout, WebCore was stomping over the wishes of any Webkit 
        client that wished to enforce a much larger default timeout using NSURLRequest API.

        Additionally, upon reviewing what all other browsers do, it seems apparent that "no limit" is desirable
        behavior on the web and this restores previous Safari/WebKit behavior.

        It would be easy to write a layout test for this, but to be effective it would have
        to run for at least 61 seconds, which seems insane until will can parallelize run-webkit-tests

        * manual-tests/timeout-test.html: Added.
        * manual-tests/timeout-test.php: Added.

        * platform/network/ResourceRequestBase.h:
        (WebCore::ResourceRequestBase::ResourceRequestBase):  Rename the constant to "unspecifiedTimeoutInterval"
          and make it UINT_MAX so platforms that do set it have an effective "no timeout."  (Windows, for example)
        * platform/network/mac/ResourceRequestMac.mm:
        (WebCore::ResourceRequest::doUpdatePlatformRequest):  If the timeout for this request is 
          "unspecifiedTimeoutInterval", then don't bother setting the timeout using NSURLRequest API, allowing
          WebKit applications to enforce their own default timeout.

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

        Merge r36811.

    2008-09-23  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Oliver Hunt, okayed by Darin Adler.

        <rdar://problem/5575547> REGRESSION: ATOK has no phrase boundary on Safari/Mail.app

        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paintCompositionUnderline): Add 2 pixel spacing between clauses.

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

        Merge r37008.

    2008-09-27  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=21178
        <rdar://problem/6248651>

        Check if the plug-in is allowed to load the resource. This matches Firefox.

        Test: http/tests/plugins/local-geturl-from-remote.html

        * plugins/PluginView.cpp:
        (WebCore::PluginView::load):

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

        Merge r35278.

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

        Reviewed by Sam Weinig.

        <rdar://problem/6091287> Revamp the handling of CFBundleShortVersionString to be fixed at the major component of the version number.

        * Configurations/Version.xcconfig:
        * Info.plist:

2008-09-21  Steve Falkenburg  <sfalken@apple.com>

        Merge r36748, r36750

    2008-09-21  Steve Falkenburg  <sfalken@apple.com>

        Removed unnecessary nested timer check.
        
        Rubber-stamped by Dan Bernstein.

        * platform/win/SharedTimerWin.cpp:
        (WebCore::TimerWindowWndProc):

    2008-09-21  Steve Falkenburg  <sfalken@apple.com>

        Improve timer resolution on WinXP.
        https://bugs.webkit.org/show_bug.cgi?id=20979
        
        Removed last-chance timer. It should not be necessary.
        Change timeEndPeriod timer to fire in 300ms instead of 20ms. Calling timeBeginPeriod/timeEndPeriod too often throws off accuracy.
        Remove Vista checks. We now run the same code on both XP and Vista.
        
        Call through to JSC::getCurrentUTCTimeWithMicroseconds from WebCore::currentTime.
        The code previously called GetSystemTimeAsFileTime, which is always low-resolution on XP, even within timeBeginPeriod(1).
        
        Reviewed by Maciej Stachowiak.

        * platform/win/SharedTimerWin.cpp:
        (WebCore::):
        (WebCore::TimerWindowWndProc):
        (WebCore::setSharedTimerFireTime):
        * platform/win/SystemTimeWin.cpp:
        (WebCore::currentTime):

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

        Merge r35182.

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

        WebCore part of adding WebKit[Set]ShouldUseFontSmoothing functions

        <rdar://6059127>

        Reviewed by John Sullivan.

        * platform/graphics/win/FontCGWin.cpp:
        (WebCore::Font::drawGlyphs): Pass the result of
        WebCoreShouldUseFontSmoothing() into wkSetFontSmoothingStyle.
        * platform/win/WebCoreTextRenderer.cpp:
        (WebCore::WebCoreSetShouldUseFontSmoothing):
        (WebCore::WebCoreShouldUseFontSmoothing):
        Added.
        * platform/win/WebCoreTextRenderer.h:

2008-09-14  Mark Rowe  <mrowe@apple.com>

        Merge r35950.

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

        Add support for support for -webkit-appearance: default-button on the Mac platform.

        <rdar://problem/6173530>

        Reviewed by Dave Hyatt.

        * WebCore.base.exp: Export new symbols.
        * platform/mac/WebCoreSystemInterface.h: Add wkAdvanceDefaultButtonPulseAnimation.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::RenderButton): Remove #if PLATFORM(WIN).
        (WebCore::RenderButton::setStyle): Ditto.
        * rendering/RenderButton.h: Ditto.
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::adjustRepaintRect): Add a case for DefaultButtonAppearance.
        (WebCore::RenderThemeMac::setButtonCellState): Set the key equivalent to the return
        key if the button is default, otherwise reset the key equivalent.
        (WebCore::RenderThemeMac::paintButton): If the button is default call setDefaultButtonCell:
        on the window, then wkAdvanceDefaultButtonPulseAnimation before painting. Restore
        the window's previous default button cell when finished.

2008-09-14  Mark Rowe  <mrowe@apple.com>

        Merge r32881.

    2008-05-05  Steve Falkenburg  <sfalken@apple.com>

        Add support for default button appearance.
        Add WebCore setting for app chrome mode.
        
        Reviewed by Dave Hyatt.

        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        * css/CSSValueKeywords.in: Added default-button value keyword.
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        (WebCore::Settings::setApplicationChromeMode):
        * page/Settings.h:
        (WebCore::Settings::inApplicationChromeMode):
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::RenderButton):
        (WebCore::RenderButton::setStyle):
        (WebCore::RenderButton::timerFired):
        * rendering/RenderButton.h:
        * rendering/RenderStyle.h:
        (WebCore::):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::adjustStyle):
        (WebCore::RenderTheme::paint):
        (WebCore::RenderTheme::paintBorderOnly):
        (WebCore::RenderTheme::paintDecorations):
        (WebCore::RenderTheme::isControlStyled):
        (WebCore::RenderTheme::isDefault):
        * rendering/RenderTheme.h:
        (WebCore::):
        * rendering/RenderThemeSafari.cpp:
        (WebCore::RenderThemeSafari::determineState):
        (WebCore::RenderThemeSafari::adjustRepaintRect):
        (WebCore::RenderThemeSafari::adjustButtonStyle):
        * rendering/RenderThemeWin.cpp:
        (WebCore::RenderThemeWin::supportsFocus):

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/SVGPathSegCurvetoQ