From 58aee15eeb6fd926ee1ab63d15993ce18390c91d Mon Sep 17 00:00:00 2001 From: "commit-queue@webkit.org" Date: Wed, 1 Feb 2012 23:32:37 +0000 Subject: [PATCH] Make one able to set the local storage (tracker) database dir's path https://bugs.webkit.org/show_bug.cgi?id=77006 Patch by Gustavo Lima Chaves on 2012-02-01 Reviewed by Darin Adler. There are no behavior changes with the diff, so no need for new tests. * storage/StorageTracker.cpp: (WebCore::StorageTracker::setDatabaseDirectoryPath): (WebCore): (WebCore::StorageTracker::databaseDirectoryPath): * storage/StorageTracker.h: (StorageTracker): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@106506 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- Source/WebCore/ChangeLog | 16 ++++++++++++++++ Source/WebCore/storage/StorageTracker.cpp | 25 +++++++++++++++++++++++++ Source/WebCore/storage/StorageTracker.h | 3 +++ 3 files changed, 44 insertions(+) diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index 2743af3..5c00a7c 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,19 @@ +2012-02-01 Gustavo Lima Chaves + + Make one able to set the local storage (tracker) database dir's path + https://bugs.webkit.org/show_bug.cgi?id=77006 + + Reviewed by Darin Adler. + + There are no behavior changes with the diff, so no need for new tests. + + * storage/StorageTracker.cpp: + (WebCore::StorageTracker::setDatabaseDirectoryPath): + (WebCore): + (WebCore::StorageTracker::databaseDirectoryPath): + * storage/StorageTracker.h: + (StorageTracker): + 2012-02-01 Anders Carlsson Fix Window build. diff --git a/Source/WebCore/storage/StorageTracker.cpp b/Source/WebCore/storage/StorageTracker.cpp index 4e5c105..f981e6b 100644 --- a/Source/WebCore/storage/StorageTracker.cpp +++ b/Source/WebCore/storage/StorageTracker.cpp @@ -94,6 +94,31 @@ StorageTracker::StorageTracker(const String& storagePath) { } +void StorageTracker::setDatabaseDirectoryPath(const String& path) +{ + MutexLocker lockStorage(m_databaseGuard); + + if (m_database.isOpen()) + m_database.close(); + + m_storageDirectoryPath = path.isolatedCopy(); + + { + MutexLocker lockOrigins(m_originSetGuard); + m_originSet.clear(); + } + + if (!m_isActive) + return; + + importOriginIdentifiers(); +} + +String StorageTracker::databaseDirectoryPath() const +{ + return m_storageDirectoryPath.isolatedCopy(); +} + String StorageTracker::trackerDatabasePath() { ASSERT(!m_databaseGuard.tryLock()); diff --git a/Source/WebCore/storage/StorageTracker.h b/Source/WebCore/storage/StorageTracker.h index c8e2175..d7cb824 100644 --- a/Source/WebCore/storage/StorageTracker.h +++ b/Source/WebCore/storage/StorageTracker.h @@ -47,6 +47,9 @@ public: static void initializeTracker(const String& storagePath, StorageTrackerClient*); static StorageTracker& tracker(); + void setDatabaseDirectoryPath(const String&); + String databaseDirectoryPath() const; + void setOriginDetails(const String& originIdentifier, const String& databaseFile); void deleteAllOrigins(); -- 2.7.4