[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

dumi at chromium.org dumi at chromium.org
Wed Apr 7 23:40:00 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit ffef21edb005dbb31eb87096b883bf8745e46128
Author: dumi at chromium.org <dumi at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Nov 13 20:25:06 2009 +0000

    Adding Chromium's DatabaseTracker implementation.
    
    Reviewed by Dimitri Glazkov.
    
    https://bugs.webkit.org/show_bug.cgi?id=31440
    
    WebCore:
    
    * WebCore.gyp/WebCore.gyp:
    * WebCore.gypi:
    * storage/DatabaseTracker.h:
    * storage/chromium/DatabaseTrackerChromium.cpp:
    (WebCore::DatabaseTracker::fullPathForDatabase):
    (WebCore::DatabaseTracker::getMaxSizeForDatabase):
    * storage/chromium/QuotaTracker.cpp:
    (WebCore::QuotaTracker::updateDatabaseSize):
    * storage/chromium/QuotaTracker.h:
    
    WebKit/chromium:
    
    * WebKit.gyp:
    * src/ChromeClientImpl.cpp:
    (WebKit::ChromeClientImpl::exceededDatabaseQuota):
    * src/DatabaseObserver.cpp: Added.
    (WebCore::DatabaseObserver::databaseOpened):
    (WebCore::DatabaseObserver::databaseModified):
    (WebCore::DatabaseObserver::databaseClosed):
    * src/WebDatabase.cpp:
    (WebKit::WebDatabase::name):
    (WebKit::WebDatabase::displayName):
    (WebKit::WebDatabase::estimatedSize):
    (WebKit::WebDatabase::securityOrigin):
    (WebKit::WebDatabase::updateDatabaseSize):
    * src/WebSecurityOrigin.cpp:
    (WebKit::WebSecurityOrigin::toString):
    (WebKit::WebSecurityOrigin::databaseIdentifier):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50961 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 5503e1b..6908799 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,21 @@
+2009-11-12  Dumitru Daniliuc  <dumi at chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Adding Chromium's DatabaseTracker implementation.
+
+        https://bugs.webkit.org/show_bug.cgi?id=31440
+
+        * WebCore.gyp/WebCore.gyp:
+        * WebCore.gypi:
+        * storage/DatabaseTracker.h:
+        * storage/chromium/DatabaseTrackerChromium.cpp:
+        (WebCore::DatabaseTracker::fullPathForDatabase):
+        (WebCore::DatabaseTracker::getMaxSizeForDatabase):
+        * storage/chromium/QuotaTracker.cpp:
+        (WebCore::QuotaTracker::updateDatabaseSize):
+        * storage/chromium/QuotaTracker.h:
+
 2009-11-13  Carol Szabo  <carol.szabo at nokia.com>
 
         Reviewed by Darin Adler.
diff --git a/WebCore/WebCore.gyp/WebCore.gyp b/WebCore/WebCore.gyp/WebCore.gyp
index eb10eee..f178857 100644
--- a/WebCore/WebCore.gyp/WebCore.gyp
+++ b/WebCore/WebCore.gyp/WebCore.gyp
@@ -152,6 +152,7 @@
       '../rendering',
       '../rendering/style',
       '../storage',
+      '../storage/chromium',
       '../svg',
       '../svg/animation',
       '../svg/graphics',
@@ -672,6 +673,13 @@
 
         # Exclude some DB-related files.
         ['exclude', 'platform/sql/SQLiteFileSystem.cpp'],
+        ['exclude', 'storage/DatabaseTracker.cpp'],
+        ['exclude', 'storage/DatabaseTrackerClient.h'],
+        ['exclude', 'storage/OriginQuotaManager.cpp'],
+        ['exclude', 'storage/OriginQuotaManager.h'],
+        ['exclude', 'storage/OriginUsageRecord.cpp'],
+        ['exclude', 'storage/OriginUsageRecord.h'],
+        ['exclude', 'storage/SQLTransactionClient.cpp'],
       ],
       'sources!': [
         # A few things can't be excluded by patterns.  List them individually.
diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi
index 0bc9996..84c8811 100644
--- a/WebCore/WebCore.gypi
+++ b/WebCore/WebCore.gypi
@@ -3100,6 +3100,11 @@
             'rendering/break_lines.h',
             'storage/ChangeVersionWrapper.cpp',
             'storage/ChangeVersionWrapper.h',
+            'storage/chromium/DatabaseObserver.h',
+            'storage/chromium/DatabaseTrackerChromium.cpp',
+            'storage/chromium/QuotaTracker.cpp',
+            'storage/chromium/QuotaTracker.h',
+            'storage/chromium/SQLTransactionClientChromium.cpp',
             'storage/Database.cpp',
             'storage/Database.h',
             'storage/DatabaseAuthorizer.cpp',
diff --git a/WebCore/storage/DatabaseTracker.h b/WebCore/storage/DatabaseTracker.h
index 85e4858..fd475a3 100644
--- a/WebCore/storage/DatabaseTracker.h
+++ b/WebCore/storage/DatabaseTracker.h
@@ -31,41 +31,56 @@
 
 #if ENABLE(DATABASE)
 
-#include "DatabaseDetails.h"
 #include "PlatformString.h"
+
+#if !PLATFORM(CHROMIUM)
+#include "DatabaseDetails.h"
 #include "SQLiteDatabase.h"
 #include "StringHash.h"
 #include <wtf/HashSet.h>
 #include <wtf/OwnPtr.h>
+#endif // !PLATFORM(CHROMIUM)
 
 namespace WebCore {
 
 class Database;
-class DatabaseTrackerClient;
 class Document;
-class OriginQuotaManager;
 class SecurityOrigin;
 
+#if !PLATFORM(CHROMIUM)
+class DatabaseTrackerClient;
+class OriginQuotaManager;
+
 struct SecurityOriginHash;
 struct SecurityOriginTraits;
+#endif // !PLATFORM(CHROMIUM)
 
 class DatabaseTracker {
 public:
-    void setDatabaseDirectoryPath(const String&);
-    const String& databaseDirectoryPath() const;
+    static DatabaseTracker& tracker();
 
     bool canEstablishDatabase(Document*, const String& name, const String& displayName, unsigned long estimatedSize);
     void setDatabaseDetails(SecurityOrigin*, const String& name, const String& displayName, unsigned long estimatedSize);
     String fullPathForDatabase(SecurityOrigin*, const String& name, bool createIfDoesNotExist = true);
 
+    void addOpenDatabase(Database*);
+    void removeOpenDatabase(Database*);
+
+    unsigned long long getMaxSizeForDatabase(const Database*);
+
+private:
+    DatabaseTracker();
+
+#if !PLATFORM(CHROMIUM)
+public:
+    void setDatabaseDirectoryPath(const String&);
+    const String& databaseDirectoryPath() const;
+
     void origins(Vector<RefPtr<SecurityOrigin> >& result);
     bool databaseNamesForOrigin(SecurityOrigin*, Vector<String>& result);
 
     DatabaseDetails detailsForNameAndOrigin(const String&, SecurityOrigin*);
 
-    void addOpenDatabase(Database*);
-    void removeOpenDatabase(Database*);
-
     unsigned long long usageForDatabase(const String&, SecurityOrigin*);
     unsigned long long usageForOrigin(SecurityOrigin*);
     unsigned long long quotaForOrigin(SecurityOrigin*);
@@ -82,15 +97,10 @@ public:
 
     OriginQuotaManager& originQuotaManager();
 
-    static DatabaseTracker& tracker();
 
     bool hasEntryForOrigin(SecurityOrigin*);
 
-    unsigned long long getMaxSizeForDatabase(const Database*);
-
 private:
-    DatabaseTracker();
-
     String trackerDatabasePath() const;
     void openTrackerDatabase(bool createIfDoesNotExist);
 
@@ -130,6 +140,7 @@ private:
 
     static void scheduleForNotification();
     static void notifyDatabasesChanged(void*);
+#endif // !PLATFORM(CHROMIUM)
 };
 
 } // namespace WebCore
diff --git a/WebCore/storage/chromium/DatabaseTrackerChromium.cpp b/WebCore/storage/chromium/DatabaseTrackerChromium.cpp
index 24ed642..e4b8178 100644
--- a/WebCore/storage/chromium/DatabaseTrackerChromium.cpp
+++ b/WebCore/storage/chromium/DatabaseTrackerChromium.cpp
@@ -40,6 +40,7 @@
 #include "SecurityOrigin.h"
 #include "SQLiteFileSystem.h"
 #include <wtf/HashSet.h>
+#include <wtf/StdLibExtras.h>
 
 namespace WebCore {
 
@@ -68,7 +69,7 @@ void DatabaseTracker::setDatabaseDetails(SecurityOrigin*, const String&, const S
 
 String DatabaseTracker::fullPathForDatabase(SecurityOrigin* origin, const String& name, bool)
 {
-    return origin->databaseIdentifier() + "/" + name;
+    return origin->databaseIdentifier() + "/" + name + "#";
 }
 
 void DatabaseTracker::addOpenDatabase(Database* database)
@@ -79,11 +80,13 @@ void DatabaseTracker::addOpenDatabase(Database* database)
 
 void DatabaseTracker::removeOpenDatabase(Database* database)
 {
-    ASSERT(isMainThread());
-    DatabaseObserver::databaseClosed(database);
+    // FIXME: once we know how to use this information, figure out
+    //        how to get this method called on the main thread
+    //ASSERT(isMainThread());
+    //DatabaseObserver::databaseClosed(database);
 }
 
-unsigned long long DatabaseTracker::getMaxSizeForDatabase(const Database* database) const
+unsigned long long DatabaseTracker::getMaxSizeForDatabase(const Database* database)
 {
     ASSERT(currentThread() == database->document()->databaseThread()->getThreadID());
     unsigned long long spaceAvailable = 0;
diff --git a/WebCore/storage/chromium/QuotaTracker.cpp b/WebCore/storage/chromium/QuotaTracker.cpp
index 9d15d72..b49639d 100644
--- a/WebCore/storage/chromium/QuotaTracker.cpp
+++ b/WebCore/storage/chromium/QuotaTracker.cpp
@@ -56,7 +56,7 @@ void QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin(
     *spaceAvailable = m_spaceAvailableToOrigins.get(originIdentifier);
 }
 
-void QuotaTracker::updateDatabaseSizeAndOriginSpace(
+void QuotaTracker::updateDatabaseSizeAndSpaceAvailableToOrigin(
     const String& originIdentifier, const String& databaseName,
     unsigned long long databaseSize, unsigned long long spaceAvailable)
 {
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index d423521..4b69c04 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,28 @@
+2009-11-12  Dumitru Daniliuc  <dumi at chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Adding Chromium's DatabaseTracker implementation.
+
+        https://bugs.webkit.org/show_bug.cgi?id=31440
+
+        * WebKit.gyp:
+        * src/ChromeClientImpl.cpp:
+        (WebKit::ChromeClientImpl::exceededDatabaseQuota):
+        * src/DatabaseObserver.cpp: Added.
+        (WebCore::DatabaseObserver::databaseOpened):
+        (WebCore::DatabaseObserver::databaseModified):
+        (WebCore::DatabaseObserver::databaseClosed):
+        * src/WebDatabase.cpp:
+        (WebKit::WebDatabase::name):
+        (WebKit::WebDatabase::displayName):
+        (WebKit::WebDatabase::estimatedSize):
+        (WebKit::WebDatabase::securityOrigin):
+        (WebKit::WebDatabase::updateDatabaseSize):
+        * src/WebSecurityOrigin.cpp:
+        (WebKit::WebSecurityOrigin::toString):
+        (WebKit::WebSecurityOrigin::databaseIdentifier):
+
 2009-11-13  Yaar Schnitman  <yaar at chromium.org>
 
         Reviewed by Dimitri Glazkov.
diff --git a/WebKit/chromium/WebKit.gyp b/WebKit/chromium/WebKit.gyp
index 64ad16b..8550e5a 100644
--- a/WebKit/chromium/WebKit.gyp
+++ b/WebKit/chromium/WebKit.gyp
@@ -188,6 +188,7 @@
                 'src/ChromiumThreading.cpp',
                 'src/ContextMenuClientImpl.cpp',
                 'src/ContextMenuClientImpl.h',
+                'src/DatabaseObserver.cpp',
                 'src/DOMUtilitiesPrivate.cpp',
                 'src/DOMUtilitiesPrivate.h',
                 'src/DragClientImpl.cpp',
diff --git a/WebKit/chromium/src/ChromeClientImpl.cpp b/WebKit/chromium/src/ChromeClientImpl.cpp
index f816315..4e20124 100644
--- a/WebKit/chromium/src/ChromeClientImpl.cpp
+++ b/WebKit/chromium/src/ChromeClientImpl.cpp
@@ -544,10 +544,7 @@ void ChromeClientImpl::print(Frame* frame)
 
 void ChromeClientImpl::exceededDatabaseQuota(Frame* frame, const String& databaseName)
 {
-    // set a reasonable quota for now -- 5Mb should be enough for anybody
-    // TODO(dglazkov): this should be configurable
-    SecurityOrigin* origin = frame->document()->securityOrigin();
-    DatabaseTracker::tracker().setQuota(origin, 1024 * 1024 * 5);
+    // Chromium users cannot currently change the default quota
 }
 
 #if ENABLE(OFFLINE_WEB_APPLICATIONS)
diff --git a/WebKit/chromium/src/DatabaseObserver.cpp b/WebKit/chromium/src/DatabaseObserver.cpp
new file mode 100644
index 0000000..54e93e1
--- /dev/null
+++ b/WebKit/chromium/src/DatabaseObserver.cpp
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "DatabaseObserver.h"
+
+#include "Database.h"
+#include "WebDatabase.h"
+#include "WebDatabaseObserver.h"
+
+using namespace WebKit;
+
+namespace WebCore {
+
+void DatabaseObserver::databaseOpened(Database* database)
+{
+    ASSERT(isMainThread());
+    WebDatabase::observer()->databaseOpened(WebDatabase(database));
+}
+
+void DatabaseObserver::databaseModified(Database* database)
+{
+    ASSERT(isMainThread());
+    WebDatabase::observer()->databaseModified(WebDatabase(database));
+}
+
+void DatabaseObserver::databaseClosed(Database* database)
+{
+    ASSERT(isMainThread());
+    WebDatabase::observer()->databaseClosed(WebDatabase(database));
+}
+
+} // namespace WebCore
diff --git a/WebKit/chromium/src/WebDatabase.cpp b/WebKit/chromium/src/WebDatabase.cpp
index d702eaf..2cd36b6 100644
--- a/WebKit/chromium/src/WebDatabase.cpp
+++ b/WebKit/chromium/src/WebDatabase.cpp
@@ -35,6 +35,7 @@
 #include "DatabaseThread.h"
 #include "Document.h"
 #include "KURL.h"
+#include "QuotaTracker.h"
 #include "SecurityOrigin.h"
 #include "WebDatabaseObserver.h"
 #include "WebString.h"
@@ -65,37 +66,26 @@ void WebDatabase::assign(const WebDatabase& other)
 
 WebString WebDatabase::name() const
 {
-    if (m_private)
-        return m_private->stringIdentifier();
-
-    return WebString::fromUTF8("null");
+    ASSERT(m_private);
+    return m_private->stringIdentifier();
 }
 
 WebString WebDatabase::displayName() const
 {
-// FIXME: add the Database::displayName() method.
-//     if (m_private)
-//         return m_private->displayName();
-
-    return WebString::fromUTF8("null");
+    ASSERT(m_private);
+    return m_private->displayName();
 }
 
 unsigned long WebDatabase::estimatedSize() const
 {
-// FIXME: add the Database::estimatedSize() method.
-//    if (m_private)
-//        return m_private->estimatedSize();
-
-    return -1;
+    ASSERT(m_private);
+    return m_private->estimatedSize();
 }
 
 WebSecurityOrigin WebDatabase::securityOrigin() const
 {
-// FIXME: add the Database::threadSafeSecurityOrigin() method.
-//     if (m_private)
-//         return WebSecurityOrigin(m_private->threadSafeSecurityOrigin());
-
-    return WebSecurityOrigin();
+    ASSERT(m_private);
+    return WebSecurityOrigin(m_private->securityOrigin());
 }
 
 void WebDatabase::setObserver(WebDatabaseObserver* observer)
@@ -112,9 +102,8 @@ void WebDatabase::updateDatabaseSize(
     const WebString& originIdentifier, const WebString& databaseName,
     unsigned long long databaseSize, unsigned long long spaceAvailable)
 {
-// FIXME: add the QuotaTracker class.
-//     WebCore::QuotaTracker::instance().updateDatabaseSize(
-//         originIdentifier, databaseName, databaseSize, spaceAvailable);
+    WebCore::QuotaTracker::instance().updateDatabaseSizeAndSpaceAvailableToOrigin(
+        originIdentifier, databaseName, databaseSize, spaceAvailable);
 }
 
 WebDatabase::WebDatabase(const WTF::PassRefPtr<Database>& database)
diff --git a/WebKit/chromium/src/WebSecurityOrigin.cpp b/WebKit/chromium/src/WebSecurityOrigin.cpp
index 2adf3db..3cf7364 100644
--- a/WebKit/chromium/src/WebSecurityOrigin.cpp
+++ b/WebKit/chromium/src/WebSecurityOrigin.cpp
@@ -81,20 +81,14 @@ bool WebSecurityOrigin::isEmpty() const
 
 WebString WebSecurityOrigin::toString() const
 {
-    // FIXME: We should not support calling this method when m_private is null.
-    if (m_private)
-        return m_private->toString();
-
-    return WebString::fromUTF8("null");
+    ASSERT(m_private);
+    return m_private->toString();
 }
 
 WebString WebSecurityOrigin::databaseIdentifier()
 {
-    // FIXME: We should not support calling this method when m_private is null.
-    if (m_private)
-        return m_private->databaseIdentifier();
-
-    return WebString::fromUTF8("null");
+    ASSERT(m_private);
+    return m_private->databaseIdentifier();
 }
 
 WebSecurityOrigin::WebSecurityOrigin(const WTF::PassRefPtr<WebCore::SecurityOrigin>& origin)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list