Title: [149643] trunk/Source/WebKit2
Revision
149643
Author
ander...@apple.com
Date
2013-05-06 14:43:15 -0700 (Mon, 06 May 2013)

Log Message

Move local storage directory handling to LocalStorageDatabaseTracker
https://bugs.webkit.org/show_bug.cgi?id=115676

Reviewed by Andreas Kling.

* UIProcess/Storage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::create):
(WebKit::LocalStorageDatabase::LocalStorageDatabase):
* UIProcess/Storage/LocalStorageDatabase.h:
(WebCore):
(LocalStorageDatabase):
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::setLocalStorageDirectory):
(WebKit):
(WebKit::LocalStorageDatabaseTracker::databaseFilename):
(WebKit::LocalStorageDatabaseTracker::setLocalStorageDirectoryInternal):
* UIProcess/Storage/LocalStorageDatabaseTracker.h:
(WebCore):
(LocalStorageDatabaseTracker):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::StorageArea):
(WebKit::StorageManager::setLocalStorageDirectory):
* UIProcess/Storage/StorageManager.h:
(StorageManager):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (149642 => 149643)


--- trunk/Source/WebKit2/ChangeLog	2013-05-06 21:20:41 UTC (rev 149642)
+++ trunk/Source/WebKit2/ChangeLog	2013-05-06 21:43:15 UTC (rev 149643)
@@ -1,3 +1,30 @@
+2013-05-06  Anders Carlsson  <ander...@apple.com>
+
+        Move local storage directory handling to LocalStorageDatabaseTracker
+        https://bugs.webkit.org/show_bug.cgi?id=115676
+
+        Reviewed by Andreas Kling.
+
+        * UIProcess/Storage/LocalStorageDatabase.cpp:
+        (WebKit::LocalStorageDatabase::create):
+        (WebKit::LocalStorageDatabase::LocalStorageDatabase):
+        * UIProcess/Storage/LocalStorageDatabase.h:
+        (WebCore):
+        (LocalStorageDatabase):
+        * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
+        (WebKit::LocalStorageDatabaseTracker::setLocalStorageDirectory):
+        (WebKit):
+        (WebKit::LocalStorageDatabaseTracker::databaseFilename):
+        (WebKit::LocalStorageDatabaseTracker::setLocalStorageDirectoryInternal):
+        * UIProcess/Storage/LocalStorageDatabaseTracker.h:
+        (WebCore):
+        (LocalStorageDatabaseTracker):
+        * UIProcess/Storage/StorageManager.cpp:
+        (WebKit::StorageManager::StorageArea::StorageArea):
+        (WebKit::StorageManager::setLocalStorageDirectory):
+        * UIProcess/Storage/StorageManager.h:
+        (StorageManager):
+
 2013-05-06  Manuel Rego Casasnovas  <r...@igalia.com>
 
         [GTK] Add webkit_uri_scheme_request_finish_error

Modified: trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabase.cpp (149642 => 149643)


--- trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabase.cpp	2013-05-06 21:20:41 UTC (rev 149642)
+++ trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabase.cpp	2013-05-06 21:43:15 UTC (rev 149643)
@@ -44,15 +44,15 @@
 
 namespace WebKit {
 
-PassRefPtr<LocalStorageDatabase> LocalStorageDatabase::create(const String& databaseFilename, PassRefPtr<WorkQueue> queue, PassRefPtr<LocalStorageDatabaseTracker> tracker)
+PassRefPtr<LocalStorageDatabase> LocalStorageDatabase::create(PassRefPtr<WorkQueue> queue, PassRefPtr<LocalStorageDatabaseTracker> tracker, SecurityOrigin* securityOrigin)
 {
-    return adoptRef(new LocalStorageDatabase(databaseFilename, queue, tracker));
+    return adoptRef(new LocalStorageDatabase(queue, tracker, securityOrigin));
 }
 
-LocalStorageDatabase::LocalStorageDatabase(const String& databaseFilename, PassRefPtr<WorkQueue> queue, PassRefPtr<LocalStorageDatabaseTracker> tracker)
-    : m_databaseFilename(databaseFilename)
-    , m_queue(queue)
+LocalStorageDatabase::LocalStorageDatabase(PassRefPtr<WorkQueue> queue, PassRefPtr<LocalStorageDatabaseTracker> tracker, SecurityOrigin* securityOrigin)
+    : m_queue(queue)
     , m_tracker(tracker)
+    , m_databaseFilename(m_tracker->databaseFilename(securityOrigin))
     , m_failedToOpenDatabase(false)
     , m_didImportItems(false)
     , m_isClosed(false)

Modified: trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabase.h (149642 => 149643)


--- trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabase.h	2013-05-06 21:20:41 UTC (rev 149642)
+++ trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabase.h	2013-05-06 21:43:15 UTC (rev 149643)
@@ -35,6 +35,7 @@
 class WorkQueue;
 
 namespace WebCore {
+class SecurityOrigin;
 class StorageMap;
 }
 
@@ -44,7 +45,7 @@
 
 class LocalStorageDatabase : public ThreadSafeRefCounted<LocalStorageDatabase> {
 public:
-    static PassRefPtr<LocalStorageDatabase> create(const String& databaseFilename, PassRefPtr<WorkQueue>, PassRefPtr<LocalStorageDatabaseTracker>);
+    static PassRefPtr<LocalStorageDatabase> create(PassRefPtr<WorkQueue>, PassRefPtr<LocalStorageDatabaseTracker>, WebCore::SecurityOrigin*);
     ~LocalStorageDatabase();
 
     // Will block until the import is complete.
@@ -58,7 +59,7 @@
     void close();
 
 private:
-    LocalStorageDatabase(const String& databaseFilename, PassRefPtr<WorkQueue>, PassRefPtr<LocalStorageDatabaseTracker>);
+    LocalStorageDatabase(PassRefPtr<WorkQueue>, PassRefPtr<LocalStorageDatabaseTracker>, WebCore::SecurityOrigin*);
 
     enum DatabaseOpeningStrategy {
         CreateIfNonExistent,
@@ -75,10 +76,10 @@
     void updateDatabase();
     void updateDatabaseWithChangedItems(const HashMap<String, String>&);
 
-    String m_databaseFilename;
     RefPtr<WorkQueue> m_queue;
     RefPtr<LocalStorageDatabaseTracker> m_tracker;
 
+    String m_databaseFilename;
     WebCore::SQLiteDatabase m_database;
     bool m_failedToOpenDatabase;
     bool m_didImportItems;

Modified: trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp (149642 => 149643)


--- trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp	2013-05-06 21:20:41 UTC (rev 149642)
+++ trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp	2013-05-06 21:43:15 UTC (rev 149643)
@@ -27,7 +27,12 @@
 #include "LocalStorageDatabaseTracker.h"
 
 #include "WorkQueue.h"
+#include <WebCore/FileSystem.h>
+#include <WebCore/SecurityOrigin.h>
+#include <wtf/text/CString.h>
 
+using namespace WebCore;
+
 namespace WebKit {
 
 PassRefPtr<LocalStorageDatabaseTracker> LocalStorageDatabaseTracker::create(PassRefPtr<WorkQueue> queue)
@@ -44,4 +49,24 @@
 {
 }
 
+void LocalStorageDatabaseTracker::setLocalStorageDirectory(const String& localStorageDirectory)
+{
+    m_queue->dispatch(bind(&LocalStorageDatabaseTracker::setLocalStorageDirectoryInternal, this, localStorageDirectory.isolatedCopy()));
+}
+
+String LocalStorageDatabaseTracker::databaseFilename(SecurityOrigin* securityOrigin) const
+{
+    if (!makeAllDirectories(m_localStorageDirectory)) {
+        LOG_ERROR("Unabled to create LocalStorage database path %s", m_localStorageDirectory.utf8().data());
+        return String();
+    }
+
+    return pathByAppendingComponent(m_localStorageDirectory, securityOrigin->databaseIdentifier() + ".localstorage");
+}
+
+void LocalStorageDatabaseTracker::setLocalStorageDirectoryInternal(const String& localStorageDirectory)
+{
+    m_localStorageDirectory = localStorageDirectory;
+}
+
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h (149642 => 149643)


--- trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h	2013-05-06 21:20:41 UTC (rev 149642)
+++ trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.h	2013-05-06 21:43:15 UTC (rev 149643)
@@ -29,7 +29,12 @@
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefPtr.h>
 #include <wtf/ThreadSafeRefCounted.h>
+#include <wtf/text/WTFString.h>
 
+namespace WebCore {
+class SecurityOrigin;
+}
+
 class WorkQueue;
 
 namespace WebKit {
@@ -39,10 +44,17 @@
     static PassRefPtr<LocalStorageDatabaseTracker> create(PassRefPtr<WorkQueue>);
     ~LocalStorageDatabaseTracker();
 
+    void setLocalStorageDirectory(const String&);
+    String databaseFilename(WebCore::SecurityOrigin*) const;
+
 private:
     explicit LocalStorageDatabaseTracker(PassRefPtr<WorkQueue>);
 
+    void setLocalStorageDirectoryInternal(const String&);
+
     RefPtr<WorkQueue> m_queue;
+
+    String m_localStorageDirectory;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp (149642 => 149643)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-05-06 21:20:41 UTC (rev 149642)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-05-06 21:43:15 UTC (rev 149643)
@@ -33,7 +33,6 @@
 #include "StorageManagerMessages.h"
 #include "WebProcessProxy.h"
 #include "WorkQueue.h"
-#include <WebCore/FileSystem.h>
 #include <WebCore/SecurityOriginHash.h>
 #include <WebCore/StorageMap.h>
 
@@ -83,7 +82,6 @@
     ~LocalStorageNamespace();
 
     StorageManager* storageManager() const { return m_storageManager; }
-    String databaseFilename(SecurityOrigin*) const;
 
     PassRefPtr<StorageArea> getOrCreateStorageArea(PassRefPtr<SecurityOrigin>);
     void didDestroyStorageArea(StorageArea*);
@@ -111,7 +109,7 @@
     , m_storageMap(StorageMap::create(m_quotaInBytes))
 {
     if (m_localStorageNamespace)
-        m_localStorageDatabase = LocalStorageDatabase::create(m_localStorageNamespace->databaseFilename(m_securityOrigin.get()), m_localStorageNamespace->storageManager()->m_queue, m_localStorageNamespace->storageManager()->m_localStorageDatabaseTracker);
+        m_localStorageDatabase = LocalStorageDatabase::create(m_localStorageNamespace->storageManager()->m_queue, m_localStorageNamespace->storageManager()->m_localStorageDatabaseTracker, m_securityOrigin.get());
 }
 
 StorageManager::StorageArea::~StorageArea()
@@ -242,16 +240,6 @@
     ASSERT(m_storageAreaMap.isEmpty());
 }
 
-String StorageManager::LocalStorageNamespace::databaseFilename(SecurityOrigin* securityOrigin) const
-{
-    if (!makeAllDirectories(m_storageManager->m_localStorageDirectory)) {
-        LOG_ERROR("Unabled to create LocalStorage database path %s", m_storageManager->m_localStorageDirectory.utf8().data());
-        return String();
-    }
-
-    return pathByAppendingComponent(m_storageManager->m_localStorageDirectory, securityOrigin->databaseIdentifier() + ".localstorage");
-}
-
 PassRefPtr<StorageManager::StorageArea> StorageManager::LocalStorageNamespace::getOrCreateStorageArea(PassRefPtr<SecurityOrigin> securityOrigin)
 {
     HashMap<RefPtr<SecurityOrigin>, StorageArea*>::AddResult result = m_storageAreaMap.add(securityOrigin, 0);
@@ -355,7 +343,7 @@
 
 void StorageManager::setLocalStorageDirectory(const String& localStorageDirectory)
 {
-    m_queue->dispatch(bind(&StorageManager::setLocalStorageDirectoryInternal, this, localStorageDirectory.isolatedCopy()));
+    m_localStorageDatabaseTracker->setLocalStorageDirectory(localStorageDirectory);
 }
 
 void StorageManager::createSessionStorageNamespace(uint64_t storageNamespaceID, CoreIPC::Connection* allowedConnection, unsigned quotaInBytes)
@@ -499,11 +487,6 @@
     connection->send(Messages::StorageAreaMap::DidClear(), storageMapID);
 }
 
-void StorageManager::setLocalStorageDirectoryInternal(const String& localStorageDirectory)
-{
-    m_localStorageDirectory = localStorageDirectory;
-}
-
 void StorageManager::createSessionStorageNamespaceInternal(uint64_t storageNamespaceID, CoreIPC::Connection* allowedConnection, unsigned quotaInBytes)
 {
     ASSERT(!m_sessionStorageNamespaces.contains(storageNamespaceID));

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h (149642 => 149643)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h	2013-05-06 21:20:41 UTC (rev 149642)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h	2013-05-06 21:43:15 UTC (rev 149643)
@@ -70,8 +70,6 @@
     void removeItem(CoreIPC::Connection*, uint64_t storageMapID, uint64_t sourceStorageAreaID, const String& key, const String& urlString);
     void clear(CoreIPC::Connection*, uint64_t storageMapID, uint64_t sourceStorageAreaID, const String& urlString);
 
-    void setLocalStorageDirectoryInternal(const String&);
-
     void createSessionStorageNamespaceInternal(uint64_t storageNamespaceID, CoreIPC::Connection* allowedConnection, unsigned quotaInBytes);
     void destroySessionStorageNamespaceInternal(uint64_t storageNamespaceID);
     void setAllowedSessionStorageNamespaceConnectionInternal(uint64_t storageNamespaceID, CoreIPC::Connection* allowedConnection);
@@ -87,8 +85,6 @@
 
     RefPtr<WorkQueue> m_queue;
 
-    String m_localStorageDirectory;
-
     RefPtr<LocalStorageDatabaseTracker> m_localStorageDatabaseTracker;
     HashMap<uint64_t, RefPtr<LocalStorageNamespace> > m_localStorageNamespaces;
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to