[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.16-1409-g5afdf4d
dumi at chromium.org
dumi at chromium.org
Thu Dec 3 13:36:17 UTC 2009
The following commit has been merged in the webkit-1.1 branch:
commit b219c65bc181ccd6b6c159dbde03bae997a9ae8d
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