summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/storage/LocalStorageTask.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/storage/LocalStorageTask.cpp')
-rw-r--r--Source/WebCore/storage/LocalStorageTask.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/Source/WebCore/storage/LocalStorageTask.cpp b/Source/WebCore/storage/LocalStorageTask.cpp
index d31c991..5d2c807 100644
--- a/Source/WebCore/storage/LocalStorageTask.cpp
+++ b/Source/WebCore/storage/LocalStorageTask.cpp
@@ -30,6 +30,7 @@
#include "LocalStorageThread.h"
#include "StorageAreaSync.h"
+#include "StorageTracker.h"
namespace WebCore {
@@ -50,6 +51,27 @@ LocalStorageTask::LocalStorageTask(Type type, LocalStorageThread* thread)
ASSERT(m_thread);
ASSERT(m_type == TerminateThread);
}
+
+LocalStorageTask::LocalStorageTask(Type type)
+ : m_type(type)
+{
+ ASSERT(m_type == ImportOrigins || m_type == DeleteAllOrigins);
+}
+
+LocalStorageTask::LocalStorageTask(Type type, const String& originIdentifier)
+ : m_type(type)
+ , m_originIdentifier(originIdentifier)
+{
+ ASSERT(m_type == DeleteOrigin);
+}
+
+LocalStorageTask::LocalStorageTask(Type type, const String& originIdentifier, const String& databaseFilename)
+ : m_type(type)
+ , m_originIdentifier(originIdentifier)
+ , m_databaseFilename(databaseFilename)
+{
+ ASSERT(m_type == SetOriginDetails);
+}
LocalStorageTask::~LocalStorageTask()
{
@@ -64,6 +86,18 @@ void LocalStorageTask::performTask()
case AreaSync:
m_area->performSync();
break;
+ case SetOriginDetails:
+ StorageTracker::tracker().syncSetOriginDetails(m_originIdentifier, m_databaseFilename);
+ break;
+ case ImportOrigins:
+ StorageTracker::tracker().syncImportOriginIdentifiers();
+ break;
+ case DeleteAllOrigins:
+ StorageTracker::tracker().syncDeleteAllOrigins();
+ break;
+ case DeleteOrigin:
+ StorageTracker::tracker().syncDeleteOrigin(m_originIdentifier);
+ break;
case DeleteEmptyDatabase:
m_area->deleteEmptyDatabase();
break;