WebKitTools:
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Feb 2008 18:47:14 +0000 (18:47 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Feb 2008 18:47:14 +0000 (18:47 +0000)
        Reviewed by Darin Adler

        Add some much needed Database support to DRT

        * DumpRenderTree/LayoutTestController.cpp:
        (LayoutTestController::LayoutTestController):
        (dumpDatabaseCallbacksCallback): Flag to control if the UIDelegate methods related to
          databases are called
        (clearAllDatabasesCallback): Allow a test to delete all databases
        (setDatabaseQuotaCallback): Allow a test to set the quota new origins will get
        (LayoutTestController::staticFunctions):

        * DumpRenderTree/LayoutTestController.h:
        (LayoutTestController::dumpDatabaseCallbacks):
        (LayoutTestController::setDumpDatabaseCallbacks):

        * DumpRenderTree/mac/LayoutTestControllerMac.mm:
        (LayoutTestController::clearAllDatabases):
        (LayoutTestController::setDatabaseQuota):

        * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
        (LayoutTestController::clearAllDatabases): Stubbed out
        (LayoutTestController::setDatabaseQuota): Ditto
        * DumpRenderTree/win/LayoutTestControllerWin.cpp:
        (LayoutTestController::clearAllDatabases): Stubbed out with error message
        (LayoutTestController::setDatabaseQuota): Ditto

        * DumpRenderTree/mac/UIDelegate.mm:
        (-[UIDelegate webView:frame:exceededDatabaseQuotaForSecurityOrigin:database:]): Print a
          message with details about the event then return a 5mb quota like before

LayoutTests:

        Reviewed by Darin Adler

        Added layout tests to cover
        http://trac.webkit.org/projects/webkit/changeset/29983
        and
        http://trac.webkit.org/projects/webkit/changeset/30184

        * platform/gtk/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * storage/quota-tracking-expected.txt: Added.
        * storage/quota-tracking.html: Added.
        * storage/success-callback-expected.txt: Added.
        * storage/success-callback.html: Added.

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

15 files changed:
LayoutTests/ChangeLog
LayoutTests/platform/gtk/Skipped
LayoutTests/platform/qt/Skipped
LayoutTests/platform/win/Skipped
LayoutTests/storage/quota-tracking-expected.txt [new file with mode: 0644]
LayoutTests/storage/quota-tracking.html [new file with mode: 0644]
LayoutTests/storage/success-callback-expected.txt [new file with mode: 0644]
LayoutTests/storage/success-callback.html [new file with mode: 0644]
WebKitTools/ChangeLog
WebKitTools/DumpRenderTree/LayoutTestController.cpp
WebKitTools/DumpRenderTree/LayoutTestController.h
WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp
WebKitTools/DumpRenderTree/mac/LayoutTestControllerMac.mm
WebKitTools/DumpRenderTree/mac/UIDelegate.mm
WebKitTools/DumpRenderTree/win/LayoutTestControllerWin.cpp

index af7c6e4ba3880f29edf4c26377f97beb0daba350..df3c3ec2ebf59c105d171d1c4348c01fb7b4915d 100644 (file)
@@ -1,3 +1,20 @@
+2008-02-13  Brady Eidson  <beidson@apple.com>
+
+        Reviewed by Darin Adler
+
+        Added layout tests to cover
+        http://trac.webkit.org/projects/webkit/changeset/29983
+        and
+        http://trac.webkit.org/projects/webkit/changeset/30184
+
+        * platform/gtk/Skipped:
+        * platform/qt/Skipped:
+        * platform/win/Skipped:
+        * storage/quota-tracking-expected.txt: Added.
+        * storage/quota-tracking.html: Added.
+        * storage/success-callback-expected.txt: Added.
+        * storage/success-callback.html: Added.
+
 2008-02-13  Darin Adler  <darin@apple.com>
 
         * platform/mac/svg/hixie/perf/001-expected.txt: Removed.
index ea683bd46a85624a34479dd546bb3bc5aff2191a..3f82ae9d525e2621a9b66199dd1c7bc102d1f4eb 100644 (file)
@@ -1,2 +1,5 @@
 # print dialog hangs DRT
 editing/execCommand/print.html
+# Missing LayoutTestController implementations and database related delegate callback
+storage/quota-tracking.html
+storage/success-callback.html
index 7b3c65e216ea5c2fe042ed380fd3032519902c9f..d5d0fcf2d1e03d6ede9f7eda3f9e32b843d60a6a 100644 (file)
@@ -881,3 +881,8 @@ webarchive/loading/test-loading-archive.html
 
 # ------- <video> support
 media
+
+# ------- storage support
+# Missing LayoutTestController implementations and database related delegate callback
+storage/quota-tracking.html
+storage/success-callback.html
index 1064f4036afb01f65e1d1e86055ae5aa80f0b319..505877b4368c62ce3fc7fcdb206a39d192d9a1c7 100644 (file)
@@ -362,3 +362,7 @@ http/tests/xmlhttprequest/failed-auth.html
 http/tests/xmlhttprequest/connection-error-sync.html
 plugins/netscape-plugin-setwindow-size.html
 svg/custom/gradient-stop-style-change.svg
+
+# Missing LayoutTestController implementations and database related delegate callback
+storage/quota-tracking.html
+storage/success-callback.html
diff --git a/LayoutTests/storage/quota-tracking-expected.txt b/LayoutTests/storage/quota-tracking-expected.txt
new file mode 100644 (file)
index 0000000..1243889
--- /dev/null
@@ -0,0 +1,11 @@
+UI DELEGATE DATABASE CALLBACK: exceededDatabaseQuotaForSecurityOrigin:{file, , 0} database:QuotaManagementDatabase2
+This test checks to make sure that quotas are enforced per-origin instead of per-database, as they were prior to http://trac.webkit.org/projects/webkit/changeset/29983.
+The test clears all databases, sets the quota for the origin to 32k, then tries to insert 17k of data into two databases. If things go as planned, the UI Delegate will be informed of the exceeded quota.
+Adding a table
+Inserting some data
+Done adding data
+Adding a table
+Inserting some data
+Done adding data
+Test Complete
+
diff --git a/LayoutTests/storage/quota-tracking.html b/LayoutTests/storage/quota-tracking.html
new file mode 100644 (file)
index 0000000..730ccb2
--- /dev/null
@@ -0,0 +1,83 @@
+<html>
+<head>
+<script>
+var database1;
+var database2;
+
+function log(message)
+{
+    document.getElementById("console").innerHTML += message + "<br>";
+}
+
+function finishTest()
+{
+    log("Test Complete");
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+
+function errorFunction(tx, error)
+{
+    log("Test failed - " + error.message);
+    finishTest();
+}
+
+function checkCompletion(db)
+{
+    log("Done adding data");
+
+    db.complete = true;
+    if (database1.complete && database2.complete)
+        finishTest();
+    else
+        testDatabase(database2);
+}
+
+function addData(db)
+{
+    db.transaction(function(tx) { 
+        log("Inserting some data");
+        tx.executeSql("INSERT INTO DataTest (randomData) VALUES (randomblob(17408))", [], function(tx, result) { }, errorFunction); 
+    }, errorFunction, function() { 
+        checkCompletion(db); 
+    });
+}
+
+function testDatabase(db)
+{
+    db.transaction(function(tx) {
+        log("Adding a table");
+        tx.executeSql("CREATE TABLE DataTest (randomData)", [], function(tx, result) { }, errorFunction); 
+    }, errorFunction, function() { 
+        addData(db); 
+    });
+}
+
+function runTest() {
+    if (window.layoutTestController) {
+        layoutTestController.clearAllDatabases();
+        layoutTestController.dumpDatabaseCallbacks();
+        layoutTestController.setDatabaseQuota(32768);
+        layoutTestController.dumpAsText();
+        layoutTestController.waitUntilDone();
+    }
+    
+    database1 = openDatabase("QuotaManagementDatabase1", "1.0", "Test for quota management <rdar://5628468>", 1);
+    database2 = openDatabase("QuotaManagementDatabase2", "1.0", "Test for quota management <rdar://5628468>", 1);
+    database1.complete = false;
+    database2.complete = false;
+    
+    testDatabase(database1);
+}
+
+</script>
+</head>
+
+<body onload="runTest()">
+This test checks to make sure that quotas are enforced per-origin instead of per-database, as they were prior to http://trac.webkit.org/projects/webkit/changeset/29983.<br>
+The test clears all databases, sets the quota for the origin to 32k, then tries to insert 17k of data into two databases.  If things go as planned, the UI Delegate will be informed of the exceeded quota.
+<pre id="console">
+</pre>
+</body>
+
+</html>
diff --git a/LayoutTests/storage/success-callback-expected.txt b/LayoutTests/storage/success-callback-expected.txt
new file mode 100644 (file)
index 0000000..7619024
--- /dev/null
@@ -0,0 +1,5 @@
+This test confirms that a successful transaction - both with and without a statement - receives its successCallback
+Transaction succeeded - Transaction with one statement
+Transaction succeeded - Empty transaction
+Test Complete
+
diff --git a/LayoutTests/storage/success-callback.html b/LayoutTests/storage/success-callback.html
new file mode 100644 (file)
index 0000000..2ac1898
--- /dev/null
@@ -0,0 +1,53 @@
+<html>
+<head>
+<script>
+
+function log(message)
+{
+    document.getElementById("console").innerHTML += message + "<br>";
+}
+
+function finishTest()
+{
+    log("Test Complete");
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+
+function errorFunction(tx, error)
+{
+    log("Test failed - " + error.message);
+    finishTest();
+}
+
+var successCount = 0;
+
+function successFunction(message)
+{
+    log("Transaction succeeded - " + message);
+    if (++successCount == 2)
+        finishTest();
+}
+
+function runTest() {
+    if (window.layoutTestController) {
+        layoutTestController.clearAllDatabases();
+        layoutTestController.dumpAsText();
+        layoutTestController.waitUntilDone();
+    }
+    
+    var database = openDatabase("SuccessCallbackDatabase", "1.0", "Test for success callback <rdar://5737692>", 1);
+    database.transaction(function(tx) { tx.executeSql("CREATE TABLE IF NOT EXISTS SuccessCallbackTest (randomData)", []); }, errorFunction, function() { successFunction("Transaction with one statement"); });
+    database.transaction(function(tx) { }, errorFunction, function() { successFunction("Empty transaction"); });
+}
+
+</script>
+</head>
+
+<body onload="runTest()">
+This test confirms that a successful transaction - both with and without a statement - receives its successCallback
+<pre id="console">
+</pre>
+</body>
+
+</html>
index 9c1b124446f88555f1268c94110f3c97b3b18d74..c457f9c8f15243dcec7c504218b2b8a823cd79d4 100644 (file)
@@ -1,3 +1,37 @@
+2008-02-13  Brady Eidson  <beidson@apple.com>
+
+        Reviewed by Darin Adler
+
+        Add some much needed Database support to DRT
+
+        * DumpRenderTree/LayoutTestController.cpp:
+        (LayoutTestController::LayoutTestController):
+        (dumpDatabaseCallbacksCallback): Flag to control if the UIDelegate methods related to
+          databases are called
+        (clearAllDatabasesCallback): Allow a test to delete all databases
+        (setDatabaseQuotaCallback): Allow a test to set the quota new origins will get
+        (LayoutTestController::staticFunctions):
+
+        * DumpRenderTree/LayoutTestController.h:
+        (LayoutTestController::dumpDatabaseCallbacks):
+        (LayoutTestController::setDumpDatabaseCallbacks):
+
+        * DumpRenderTree/mac/LayoutTestControllerMac.mm:
+        (LayoutTestController::clearAllDatabases):
+        (LayoutTestController::setDatabaseQuota):
+
+        * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
+        (LayoutTestController::clearAllDatabases): Stubbed out
+        (LayoutTestController::setDatabaseQuota): Ditto
+        * DumpRenderTree/win/LayoutTestControllerWin.cpp:
+        (LayoutTestController::clearAllDatabases): Stubbed out with error message
+        (LayoutTestController::setDatabaseQuota): Ditto
+
+        * DumpRenderTree/mac/UIDelegate.mm:
+        (-[UIDelegate webView:frame:exceededDatabaseQuotaForSecurityOrigin:database:]): Print a
+          message with details about the event then return a 5mb quota like before
+
+
 2008-02-12  Steve Falkenburg  <sfalken@apple.com>
 
         Changes to support merged MIDL output.
index bda93cef44d9c5c33ebe810928c01a0fbfdcca03..6409f5b951d009bc50a2f27093c8ab71c5365928 100644 (file)
@@ -38,6 +38,7 @@ LayoutTestController::LayoutTestController(bool testRepaintDefault, bool testRep
     , m_dumpBackForwardList(false)
     , m_dumpChildFrameScrollPositions(false)
     , m_dumpChildFramesAsText(false)
+    , m_dumpDatabaseCallbacks(false)
     , m_dumpDOMAsWebArchive(false)
     , m_dumpSelectionRect(false)
     , m_dumpSourceAsWebArchive(false)
@@ -87,6 +88,13 @@ static JSValueRef dumpChildFrameScrollPositionsCallback(JSContextRef context, JS
     return JSValueMakeUndefined(context);
 }
 
+static JSValueRef dumpDatabaseCallbacksCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+    LayoutTestController* controller = reinterpret_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
+    controller->setDumpDatabaseCallbacks(true);
+    return JSValueMakeUndefined(context);
+}
+
 static JSValueRef dumpDOMAsWebArchiveCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
 {
     LayoutTestController* controller = reinterpret_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
@@ -215,6 +223,15 @@ static JSValueRef addDisallowedURLCallback(JSContextRef context, JSObjectRef fun
     return JSValueMakeUndefined(context);
 }
 
+static JSValueRef clearAllDatabasesCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+    // Has mac & windows implementation
+    LayoutTestController* controller = reinterpret_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
+    controller->clearAllDatabases();
+
+    return JSValueMakeUndefined(context);
+}
+
 static JSValueRef clearBackForwardListCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
 {
     // Has mac & windows implementation
@@ -432,6 +449,22 @@ static JSValueRef setCustomPolicyDelegateCallback(JSContextRef context, JSObject
     return JSValueMakeUndefined(context);
 }
 
+static JSValueRef setDatabaseQuotaCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+    // Has mac implementation
+    if (argumentCount < 1)
+        return JSValueMakeUndefined(context);
+
+    LayoutTestController* controller = reinterpret_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
+
+    double quota = JSValueToNumber(context, arguments[0], NULL);
+    if (!isnan(quota))
+        controller->setDatabaseQuota(static_cast<unsigned long long>(quota));
+        
+    return JSValueMakeUndefined(context);
+
+}
+
 static JSValueRef setMainFrameIsFirstResponderCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
 {
     // Has mac implementation
@@ -621,6 +654,7 @@ JSStaticFunction* LayoutTestController::staticFunctions()
     static JSStaticFunction staticFunctions[] = {
         { "addDisallowedURL", addDisallowedURLCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "addFileToPasteboardOnDrag", addFileToPasteboardOnDragCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+        { "clearAllDatabases", clearAllDatabasesCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "clearBackForwardList", clearBackForwardListCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "clearPersistentUserStyleSheet", clearPersistentUserStyleSheetCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "decodeHostName", decodeHostNameCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
@@ -629,6 +663,7 @@ JSStaticFunction* LayoutTestController::staticFunctions()
         { "dumpBackForwardList", dumpBackForwardListCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "dumpChildFramesAsText", dumpChildFramesAsTextCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "dumpChildFrameScrollPositions", dumpChildFrameScrollPositionsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+        { "dumpDatabaseCallbacks", dumpDatabaseCallbacksCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "dumpDOMAsWebArchive", dumpDOMAsWebArchiveCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "dumpEditingCallbacks", dumpEditingCallbacksCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "dumpFrameLoadCallbacks", dumpFrameLoadCallbacksCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
@@ -653,6 +688,7 @@ JSStaticFunction* LayoutTestController::staticFunctions()
         { "setCanOpenWindows", setCanOpenWindowsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "setCloseRemainingWindowsWhenComplete", setCloseRemainingWindowsWhenCompleteCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "setCustomPolicyDelegate", setCustomPolicyDelegateCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+        { "setDatabaseQuota", setDatabaseQuotaCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, 
         { "setMainFrameIsFirstResponder", setMainFrameIsFirstResponderCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "setPersistentUserStyleSheetLocation", setPersistentUserStyleSheetLocationCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "setPrivateBrowsingEnabled", setPrivateBrowsingEnabledCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
index 9677ffa022693e3e515460dfff8b17e505d4de42..87e24f67a28082b91d42f53b949e20242a163310 100644 (file)
@@ -40,6 +40,7 @@ public:
 
     // Controller Methods - platfrom independant implementations
     void addDisallowedURL(JSStringRef url);
+    void clearAllDatabases();
     void clearBackForwardList();
     JSStringRef copyDecodedHostName(JSStringRef name);
     JSStringRef copyEncodedHostName(JSStringRef name);
@@ -56,6 +57,7 @@ public:
     void setAcceptsEditing(bool acceptsEditing);
     void setAuthorAndUserStylesEnabled(bool);
     void setCustomPolicyDelegate(bool setDelegate);
+    void setDatabaseQuota(unsigned long long quota);
     void setMainFrameIsFirstResponder(bool flag);
     void setPrivateBrowsingEnabled(bool flag);
     void setPopupBlockingEnabled(bool flag);
@@ -79,6 +81,9 @@ public:
     bool dumpChildFramesAsText() const { return m_dumpChildFramesAsText; }
     void setDumpChildFramesAsText(bool dumpChildFramesAsText) { m_dumpChildFramesAsText = dumpChildFramesAsText; }
 
+    bool dumpDatabaseCallbacks() const { return m_dumpDatabaseCallbacks; }
+    void setDumpDatabaseCallbacks(bool dumpDatabaseCallbacks) { m_dumpDatabaseCallbacks = dumpDatabaseCallbacks; }
+
     bool dumpDOMAsWebArchive() const { return m_dumpDOMAsWebArchive; }
     void setDumpDOMAsWebArchive(bool dumpDOMAsWebArchive) { m_dumpDOMAsWebArchive = dumpDOMAsWebArchive; }
 
@@ -132,6 +137,7 @@ private:
     bool m_dumpBackForwardList;
     bool m_dumpChildFrameScrollPositions;
     bool m_dumpChildFramesAsText;
+    bool m_dumpDatabaseCallbacks;
     bool m_dumpDOMAsWebArchive;
     bool m_dumpSelectionRect;
     bool m_dumpSourceAsWebArchive;
index fead1193d0064f4bd5a91c59be644c62d1b29dac..eae73dbf3b488966b204aebc8178eb77c2440faf 100644 (file)
@@ -210,3 +210,14 @@ void LayoutTestController::clearPersistentUserStyleSheet()
 {
     // FIXME: implement
 }
+
+void LayoutTestController::clearAllDatabases()
+{
+    // FIXME: implement
+}
+void LayoutTestController::setDatabaseQuota(unsigned long long quota)
+{    
+    // FIXME: implement
+}
+
index b3213193db676cf7b97be3eaa95076474352d744..4774310e1db2844871411294fb9ca104dd5ffcf3 100644 (file)
 #import <JavaScriptCore/JSStringRef.h>
 #import <JavaScriptCore/JSStringRefCF.h>
 #import <WebKit/WebBackForwardList.h>
+#import <WebKit/WebDatabaseManagerPrivate.h>
 #import <WebKit/WebFrame.h>
 #import <WebKit/WebHTMLViewPrivate.h>
 #import <WebKit/WebHistory.h>
 #import <WebKit/WebNSURLExtras.h>
 #import <WebKit/WebPreferences.h>
 #import <WebKit/WebPreferencesPrivate.h>
+#import <WebKit/WebSecurityOriginPrivate.h>
 #import <WebKit/WebView.h>
 #import <WebKit/WebViewPrivate.h>
 #import <wtf/RetainPtr.h>
@@ -65,6 +67,11 @@ void LayoutTestController::addDisallowedURL(JSStringRef url)
     CFSetAddValue(disallowedURLs, [request URL]);
 }
 
+void LayoutTestController::clearAllDatabases()
+{
+    [[WebDatabaseManager sharedWebDatabaseManager] deleteAllDatabases];
+}
+
 void LayoutTestController::clearBackForwardList()
 {
     WebBackForwardList *backForwardList = [[mainFrame webView] backForwardList];
@@ -170,6 +177,13 @@ void LayoutTestController::setCustomPolicyDelegate(bool setDelegate)
         [[mainFrame webView] setPolicyDelegate:nil];
 }
 
+void LayoutTestController::setDatabaseQuota(unsigned long long quota)
+{    
+    WebSecurityOrigin *origin = [[WebSecurityOrigin alloc] initWithProtocol:@"file" domain:nil];
+    [origin setQuota:quota];
+    [origin release];
+}
+
 void LayoutTestController::setMainFrameIsFirstResponder(bool flag)
 {
     NSView *documentView = [[mainFrame frameView] documentView];
index 29f3ddd0e32a4de4c62673cefacc4d65940a0e11..dd804a6a585e32161348fea68900defb401507e6 100644 (file)
@@ -128,7 +128,11 @@ DumpRenderTreeDraggingInfo *draggingInfo = nil;
 
 - (void)webView:(WebView *)sender frame:(WebFrame *)frame exceededDatabaseQuotaForSecurityOrigin:(WebSecurityOrigin *)origin database:(NSString *)databaseIdentifier
 {
-    static const unsigned long long defaultQuota = 5 * 1024 * 1024;
+    if (!done && layoutTestController->dumpDatabaseCallbacks())
+        printf("UI DELEGATE DATABASE CALLBACK: exceededDatabaseQuotaForSecurityOrigin:{%s, %s, %i} database:%s\n", [[origin protocol] UTF8String], [[origin domain] UTF8String], 
+            [origin port], [databaseIdentifier UTF8String]);
+
+    static const unsigned long long defaultQuota = 5 * 1024 * 1024;    
     [origin setQuota:defaultQuota];
 }
 
index 340138d7c84214c2001a93933fb93ce860c84efc..373091b458d2e1524c4771b563551a10192703d0 100644 (file)
@@ -551,3 +551,13 @@ void LayoutTestController::execCommand(JSStringRef name, JSStringRef value)
     SysFreeString(nameBSTR);
     SysFreeString(valueBSTR);
 }
+
+void LayoutTestController::clearAllDatabases()
+{
+    printf("ERROR: LayoutTestController::clearAllDatabases() not implemented\n");
+}
+void LayoutTestController::setDatabaseQuota(unsigned long long quota)
+{    
+    printf("ERROR: LayoutTestController::setDatabaseQuota() not implemented\n");
+}