Reviewed by Adam.

        Return E_INVALIDARG if the databaseName BSTR is null;
        
        * WebDatabaseManager.cpp:
        (WebDatabaseManager::detailsForDatabaseWithOrigin):
        (WebDatabaseManager::deleteDatabaseWithOrigin):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28089 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Add COMEnumVariant.h to the project.
        
        * WebKit.vcproj/WebKit.vcproj:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28090 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by Adam.

        - Drosera now displays the console window, although it cannot currently
        process JavaScript.

        * Drosera/win/DebuggerClient.cpp: Shows the console window.
        (registerConsoleClass): Implemented.
        (consoleWndProc): Implemented.
        (DebuggerClient::onSize): Implemented.
        (DebuggerClient::createWebViewWithRequest): Implemented, now creates a
        new window.
        * Drosera/win/DebuggerClient.h: Added needed method and members for 
        creating and maintaining a new window.
        * Drosera/win/Drosera.cpp: Fixed some minor bugs, and moved a couple of
        lines of code to more appropriate places.
        (Drosera::handleCommand):
        (Drosera::initUI):
        (Drosera::onSize):
        (Drosera::attach):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28091 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by Adam.

        Some COM cleanup.
        
        * CFDictionaryPropertyBag.cpp:
        (CFDictionaryPropertyBag::QueryInterface):
        * CFDictionaryPropertyBag.h:
        * WebBackForwardList.cpp:
        (WebBackForwardList::addItem):
        (WebBackForwardList::removeItem):
        * WebDownload.cpp:
        (WebDownload::initWithRequest):
        * WebFrame.cpp:
        (WebFrame::loadRequest):
        (WebFrame::initWithWebFrameView):
        (WebFrame::webHistory):
        (WebFrame::dispatchWillSendRequest):
        * WebURLAuthenticationChallenge.cpp:
        (WebURLAuthenticationChallenge::QueryInterface):
        (WebURLAuthenticationChallenge::initWithProtectionSpace):
        * WebURLAuthenticationChallenge.h:
        * WebURLAuthenticationChallengeSender.cpp:
        (WebURLAuthenticationChallengeSender::QueryInterface):
        * WebURLAuthenticationChallengeSender.h:
        * WebURLResponse.cpp:
        (WebURLResponse::QueryInterface):
        * WebURLResponse.h:
        * WebView.cpp:
        (WebView::notifyDidAddIcon):
        (WebView::goToBackForwardItem):
        (WebView::canHandleRequest):
        (WebView::loadBackForwardListFromOtherView):
        (core):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28092 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by Sam Weinig.

        Bug 16165: Dragging the inspector toolbar should move the window
        http://bugs.webkit.org/show_bug.cgi?id=16165

        * page/inspector/DocumentPanel.js: Call the new drag functions, and cleanup code.
        * page/inspector/inspector.css: Only make the toolbar transparent in detached mode.
        * page/inspector/inspector.js: Call the new drag functions, and cleanup code. Add
          toolbar drag functions that move the window.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28093 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by Sam.

        Reset the authorAndUserStylesEnabled preference
        back to YES for each test. Fixes the broken tests.

        * DumpRenderTree/mac/DumpRenderTree.mm:
        (resetWebViewToConsistentStateBeforeTesting):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28094 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by Brady.

        * Storage/WebDatabaseManager.mm:
        * Storage/WebDatabaseManagerPrivate.h:
        * Storage/WebDatabaseTrackerClient.mm:
        (WebDatabaseTrackerClient::dispatchDidModifyOrigin):
        (WebDatabaseTrackerClient::dispatchDidModifyDatabase):
        * Storage/WebSecurityOrigin.mm:
        (-[WebSecurityOrigin _initWithWebCoreSecurityOriginData:]):
        * Storage/WebSecurityOriginInternal.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28095 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Speculative fix to get Drosera working.
        
        * COMEnumVariant.h:
        (::Next):
        Update the number of elements fetched correctly.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28096 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2007-11-27  Alp Toker  <alp@atoker.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=15569
        [gtk] GTK JavaScriptCore needs to export symbols for JSC API and WTF

        Introduce JS_EXPORT to mark symbols to be exported as public API.

        Export all public symbols in the JavaScriptCore C API.

        This matches conventions for exporting symbols set by the CF and CG
        frameworks.

        * API/JSBase.h:
        * API/JSContextRef.h:
        * API/JSObjectRef.h:
        * API/JSStringRef.h:
        * API/JSStringRefBSTR.h:
        * API/JSStringRefCF.h:
        * API/JSValueRef.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28097 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2007-11-27  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Adam.

        Set haveRegisteredWindowClass when we register the window class.

        * plugins/win/PluginViewWin.cpp:
        (WebCore::registerPluginView):




git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28098 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2007-11-27  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Adam.

        Return bool from registerWebViewWindowClass, as nothing uses the ATOM.
        Set haveRegisteredWindowClass to true

        * WebView.cpp:
        (registerWebViewWindowClass):




git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28099 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2007-11-27  Alp Toker  <alp@atoker.com>

        Prospective MSVC build fix.

        Roll back dllexport/dllimport support for now.

        * API/JSBase.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28100 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Not reviewed.

        Fix DumpRenderTree ObjC bug comparing strings.

        * DumpRenderTree/mac/ObjCController.m:
        (-[ObjCController identityIsEqual::]): Compare strings with string
        equality instead of identiy equality.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28101 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebCore:

        Reviewed by Oliver.

        Fix for <rdar://problem/5616052> SVGs with width or height of 100% 
        hang when used as a background-image (16164)

        * platform/graphics/svg/SVGImage.cpp:
        (WebCore::SVGImage::size): Use valueAsPercentage() for percents 
        instead of valueInSpecifiedUnits(). valueInSpecifiedUnits() 
        returns, for example, 50 for 50%, so multiplying percentages by the 
        default size of 300 x 150 led to ridiculously huge dimensions for 
        SVG images, and the subsequent hang. 

LayoutTests:

        Reviewed by Oliver.

        Test for <rdar://problem/5616052> SVGs with width or height of 100% 
        hang when used as a background-image (16164)

        * fast/images/resources/width-100-percent.svg: Added.
        * fast/images/svg-width-100p-as-background.html: Added.
        * platform/mac/fast/images/svg-width-100p-as-background-expected.checksum: Added.
        * platform/mac/fast/images/svg-width-100p-as-background-expected.png: Added.
        * platform/mac/fast/images/svg-width-100p-as-background-expected.txt: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28102 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2007-11-27  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Install the JavaScriptCore headers as part of the GTK+ port.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28103 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by Maciej Stachowiak.

        - fix <rdar://problem/5596160> fast/events/objc-event-api.html fails when run alone (or first)

        * WebView/WebHTMLView.mm:
        (-[WebHTMLView setDataSource:]): This method calls addMouseMovedObserver
        because addMouseMovedObserver returns early if the dataSource
        is not nil. But if the dataSource is already set (which happens when
        a WebHTMLView is being reused) then addMouseMovedObserver must not
        be called again.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28104 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Not reviewer for this patch.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28105 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore:

        Reviewed by Darin and Geoff.

        - Fixed "Stack overflow crash in JavaScript garbage collector mark pass"
        http://bugs.webkit.org/show_bug.cgi?id=12216
        
        Implement mark stack. This version is not suitable for prime time because it makes a
        huge allocation on every collect, and potentially makes marking of detached subtrees
        slow. But it is an 0.4% SunSpider speedup even without much tweaking.
        
        The basic approach is to replace mark() methods with
        markChildren(MarkStack&) methods. Reachable references are pushed
        onto a mark stack (which encapsulates ignoring already-marked
        references). 
        
        Objects are no longer responsible for actually setting their own
        mark bits, the collector does that. This means that for objects on
        the number heap we don't have to call markChildren() at all since
        we know there aren't any.
        
        The mark phase of collect pushes roots onto the mark stack
        and drains it as often as possible.
        
        To make this approach viable requires a constant-size mark stack
        and a slow fallback approach for when the stack size is exceeded,
        plus optimizations to make the required stack small in common
        cases. This should be doable.

        * JavaScriptCore.exp: Export new symbols.
        * JavaScriptCore.xcodeproj/project.pbxproj: Add new file.
        * kjs/collector.cpp:
        (KJS::Collector::heapAllocate):
        (KJS::drainMarkStack): Helper for all of the below.
        (KJS::Collector::markStackObjectsConservatively): Use mark stack.
        (KJS::Collector::markCurrentThreadConservatively): ditto
        (KJS::Collector::markOtherThreadConservatively): ditto
        (KJS::Collector::markProtectedObjects): ditto
        (KJS::Collector::markMainThreadOnlyObjects): ditto
        (KJS::Collector::collect): ditto
        * kjs/collector.h:
        (KJS::Collector::cellMayHaveRefs): Helper for MarkStack.

        * kjs/MarkStack.h: Added. The actual mark stack implementation.
        (KJS::MarkStack::push):
        (KJS::MarkStack::pushAtom):
        (KJS::MarkStack::pop):
        (KJS::MarkStack::isEmpty):
        (KJS::MarkStack::reserveCapacity):

        Changed mark() methods to markChildren() methods:
        
        * kjs/ExecState.cpp:
        (KJS::ExecState::markChildren):
        * kjs/ExecState.h:
        * kjs/JSWrapperObject.cpp:
        (KJS::JSWrapperObject::markChildren):
        * kjs/JSWrapperObject.h:
        * kjs/array_instance.cpp:
        (KJS::ArrayInstance::markChildren):
        * kjs/array_instance.h:
        * kjs/bool_object.cpp:
        (BooleanInstance::markChildren):
        * kjs/bool_object.h:
        * kjs/error_object.cpp:
        * kjs/error_object.h:
        * kjs/function.cpp:
        (KJS::FunctionImp::markChildren):
        (KJS::Arguments::Arguments):
        (KJS::Arguments::markChildren):
        (KJS::ActivationImp::markChildren):
        * kjs/function.h:
        * kjs/internal.cpp:
        (KJS::GetterSetterImp::markChildren):
        * kjs/interpreter.cpp:
        (KJS::Interpreter::markRoots):
        * kjs/interpreter.h:
        * kjs/list.cpp:
        (KJS::List::markProtectedListsSlowCase):
        * kjs/list.h:
        (KJS::List::markProtectedLists):
        * kjs/object.cpp:
        (KJS::JSObject::markChildren):
        * kjs/object.h:
        (KJS::ScopeChain::markChildren):
        * kjs/property_map.cpp:
        (KJS::PropertyMap::markChildren):
        * kjs/property_map.h:
        * kjs/scope_chain.h:
        * kjs/string_object.cpp:
        (KJS::StringInstance::markChildren):
        * kjs/string_object.h:

JavaScriptGlue:

        Reviewed by Darin and Geoff.

        Fixups for JavaScriptCore mark stack.

        * JSObject.cpp:
        (JSUserObject::Mark):
        * JSObject.h:
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSObjectMark):
        * JSValueWrapper.h:
        * UserObjectImp.cpp:
        * UserObjectImp.h:

WebCore:

        Reviewed by Darin and Geoff.

        Implement mark stack. This version is not suitable for prime time because it makes a
        huge allocation on every collect, and potentially makes marking of detached subtrees
        slow. But it is a .2% - .4% speedup even without much tweaking.

        I replaced mark() methods with markChildren() as usual. One
        optimization that is lost is avoiding walking detached DOM
        subtrees more than once to mark them; since marking is not
        recursive there's no obvious way to bracket operation on the tree
        any more.

        * bindings/js/JSDocumentCustom.cpp:
        (WebCore::JSDocument::markChildren):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::JSNode::markChildren):
        * bindings/js/JSNodeFilterCondition.cpp:
        * bindings/js/JSNodeFilterCondition.h:
        * bindings/js/JSNodeFilterCustom.cpp:
        (WebCore::JSNodeFilter::markChildren):
        * bindings/js/JSNodeIteratorCustom.cpp:
        (WebCore::JSNodeIterator::markChildren):
        * bindings/js/JSTreeWalkerCustom.cpp:
        (WebCore::JSTreeWalker::markChildren):
        * bindings/js/JSXMLHttpRequest.cpp:
        (KJS::JSXMLHttpRequest::markChildren):
        * bindings/js/JSXMLHttpRequest.h:
        * bindings/js/kjs_binding.cpp:
        (KJS::ScriptInterpreter::markDOMNodesForDocument):
        * bindings/js/kjs_binding.h:
        * bindings/js/kjs_events.cpp:
        (WebCore::JSUnprotectedEventListener::markChildren):
        * bindings/js/kjs_events.h:
        * bindings/js/kjs_window.cpp:
        (KJS::Window::markChildren):
        * bindings/js/kjs_window.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        * dom/Node.cpp:
        (WebCore::Node::Node):
        * dom/Node.h:
        * dom/NodeFilter.h:
        * dom/NodeFilterCondition.h:

LayoutTests:

        Not reviewed.
        
        - Test cases for "Stack overflow crash in JavaScript garbage collector mark pass"
        http://bugs.webkit.org/show_bug.cgi?id=12216

        I have fixed this with the mark stack work.
        
        * fast/js/gc-breadth-2-expected.txt: Added.
        * fast/js/gc-breadth-2.html: Added.
        * fast/js/gc-breadth-expected.txt: Added.
        * fast/js/gc-breadth.html: Added.
        * fast/js/gc-depth-expected.txt: Added.
        * fast/js/gc-depth.html: Added.
        * fast/js/resources/gc-breadth-2.js: Added.
        * fast/js/resources/gc-breadth.js: Added.
        * fast/js/resources/gc-depth.js: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28106 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2007-11-26  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewed by Mark Rowe.

        Set CONFIG option for the window system GTK+ is using

        * WebKit.pri:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28107 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore:

        Add files missing from previous commit.

        * kjs/MarkStack.h: Added.

LayoutTests:

        add files missing from previous commit.

        * fast/js/gc-breadth-2-expected.txt: Added.
        * fast/js/gc-breadth-2.html: Added.
        * fast/js/gc-breadth-expected.txt: Added.
        * fast/js/gc-breadth.html: Added.
        * fast/js/gc-depth-expected.txt: Added.
        * fast/js/gc-depth.html: Added.
        * fast/js/resources/gc-breadth-2.js: Added.
        * fast/js/resources/gc-breadth.js: Added.
        * fast/js/resources/gc-depth.js: Added.



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