- Revision
- 149244
- Author
- [email protected]
- Date
- 2013-04-27 13:44:04 -0700 (Sat, 27 Apr 2013)
Log Message
Get rid of more uses of StorageTask
https://bugs.webkit.org/show_bug.cgi?id=115311
Reviewed by Dean Jackson.
Make StorageAreaSync derive from ThreadSafeRefCounted as well, since it's passed between threads.
* storage/StorageAreaSync.h:
* storage/StorageSyncManager.cpp:
(WebCore::StorageSyncManager::scheduleImport):
(WebCore::StorageSyncManager::scheduleSync):
(WebCore::StorageSyncManager::scheduleDeleteEmptyDatabase):
* storage/StorageTask.cpp:
(WebCore::StorageTask::StorageTask):
(WebCore::StorageTask::performTask):
* storage/StorageTask.h:
(StorageTask):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (149243 => 149244)
--- trunk/Source/WebCore/ChangeLog 2013-04-27 20:32:28 UTC (rev 149243)
+++ trunk/Source/WebCore/ChangeLog 2013-04-27 20:44:04 UTC (rev 149244)
@@ -1,5 +1,25 @@
2013-04-27 Anders Carlsson <[email protected]>
+ Get rid of more uses of StorageTask
+ https://bugs.webkit.org/show_bug.cgi?id=115311
+
+ Reviewed by Dean Jackson.
+
+ Make StorageAreaSync derive from ThreadSafeRefCounted as well, since it's passed between threads.
+
+ * storage/StorageAreaSync.h:
+ * storage/StorageSyncManager.cpp:
+ (WebCore::StorageSyncManager::scheduleImport):
+ (WebCore::StorageSyncManager::scheduleSync):
+ (WebCore::StorageSyncManager::scheduleDeleteEmptyDatabase):
+ * storage/StorageTask.cpp:
+ (WebCore::StorageTask::StorageTask):
+ (WebCore::StorageTask::performTask):
+ * storage/StorageTask.h:
+ (StorageTask):
+
+2013-04-27 Anders Carlsson <[email protected]>
+
Indent StorageAreaSync to match the style guidelines.
Rubber-stamped by Andreas Kling.
Modified: trunk/Source/WebCore/storage/StorageAreaSync.h (149243 => 149244)
--- trunk/Source/WebCore/storage/StorageAreaSync.h 2013-04-27 20:32:28 UTC (rev 149243)
+++ trunk/Source/WebCore/storage/StorageAreaSync.h 2013-04-27 20:44:04 UTC (rev 149244)
@@ -29,7 +29,6 @@
#include "SQLiteDatabase.h"
#include "Timer.h"
#include <wtf/HashMap.h>
-#include <wtf/RefCounted.h>
#include <wtf/text/StringHash.h>
namespace WebCore {
@@ -38,7 +37,7 @@
class StorageAreaImpl;
class StorageSyncManager;
-class StorageAreaSync : public RefCounted<StorageAreaSync> {
+class StorageAreaSync : public ThreadSafeRefCounted<StorageAreaSync> {
public:
static PassRefPtr<StorageAreaSync> create(PassRefPtr<StorageSyncManager>, PassRefPtr<StorageAreaImpl>, const String& databaseIdentifier);
~StorageAreaSync();
Modified: trunk/Source/WebCore/storage/StorageSyncManager.cpp (149243 => 149244)
--- trunk/Source/WebCore/storage/StorageSyncManager.cpp 2013-04-27 20:32:28 UTC (rev 149243)
+++ trunk/Source/WebCore/storage/StorageSyncManager.cpp 2013-04-27 20:44:04 UTC (rev 149244)
@@ -87,7 +87,7 @@
ASSERT(isMainThread());
ASSERT(m_thread);
if (m_thread)
- m_thread->scheduleTask(StorageTask::createImport(area.get()));
+ m_thread->dispatch(bind(&StorageAreaSync::performImport, area));
return m_thread;
}
@@ -96,7 +96,7 @@
ASSERT(isMainThread());
ASSERT(m_thread);
if (m_thread)
- m_thread->scheduleTask(StorageTask::createSync(area.get()));
+ m_thread->dispatch(bind(&StorageAreaSync::performSync, area));
}
void StorageSyncManager::scheduleDeleteEmptyDatabase(PassRefPtr<StorageAreaSync> area)
@@ -104,7 +104,7 @@
ASSERT(isMainThread());
ASSERT(m_thread);
if (m_thread)
- m_thread->scheduleTask(StorageTask::createDeleteEmptyDatabase(area.get()));
+ m_thread->dispatch(bind(&StorageAreaSync::deleteEmptyDatabase, area));
}
} // namespace WebCore
Modified: trunk/Source/WebCore/storage/StorageTask.cpp (149243 => 149244)
--- trunk/Source/WebCore/storage/StorageTask.cpp 2013-04-27 20:32:28 UTC (rev 149243)
+++ trunk/Source/WebCore/storage/StorageTask.cpp 2013-04-27 20:44:04 UTC (rev 149244)
@@ -35,23 +35,13 @@
StorageTask::StorageTask(Type type, const Function<void()>& function)
: m_type(type)
, m_function(function)
- , m_area(0)
{
ASSERT(!m_function.isNull());
ASSERT(m_type == Dispatch);
}
-StorageTask::StorageTask(Type type, StorageAreaSync* area)
- : m_type(type)
- , m_area(area)
-{
- ASSERT(m_area);
- ASSERT(m_type == AreaImport || m_type == AreaSync || m_type == DeleteEmptyDatabase);
-}
-
StorageTask::StorageTask(Type type, const String& originIdentifier)
: m_type(type)
- , m_area(0)
, m_originIdentifier(originIdentifier)
{
ASSERT(m_type == DeleteOrigin);
@@ -59,7 +49,6 @@
StorageTask::StorageTask(Type type, const String& originIdentifier, const String& databaseFilename)
: m_type(type)
- , m_area(0)
, m_originIdentifier(originIdentifier)
, m_databaseFilename(databaseFilename)
{
@@ -76,21 +65,12 @@
case Dispatch:
m_function();
break;
- case AreaImport:
- m_area->performImport();
- break;
- case AreaSync:
- m_area->performSync();
- break;
case SetOriginDetails:
StorageTracker::tracker().syncSetOriginDetails(m_originIdentifier, m_databaseFilename);
break;
case DeleteOrigin:
StorageTracker::tracker().syncDeleteOrigin(m_originIdentifier);
break;
- case DeleteEmptyDatabase:
- m_area->deleteEmptyDatabase();
- break;
}
}
Modified: trunk/Source/WebCore/storage/StorageTask.h (149243 => 149244)
--- trunk/Source/WebCore/storage/StorageTask.h 2013-04-27 20:32:28 UTC (rev 149243)
+++ trunk/Source/WebCore/storage/StorageTask.h 2013-04-27 20:44:04 UTC (rev 149244)
@@ -38,14 +38,11 @@
class StorageTask {
WTF_MAKE_NONCOPYABLE(StorageTask); WTF_MAKE_FAST_ALLOCATED;
public:
- enum Type { Dispatch, AreaImport, AreaSync, DeleteEmptyDatabase, SetOriginDetails, DeleteOrigin };
+ enum Type { Dispatch, SetOriginDetails, DeleteOrigin };
~StorageTask();
static PassOwnPtr<StorageTask> createDispatch(const Function<void()>& function) { return adoptPtr(new StorageTask(Dispatch, function)); }
- static PassOwnPtr<StorageTask> createImport(StorageAreaSync* area) { return adoptPtr(new StorageTask(AreaImport, area)); }
- static PassOwnPtr<StorageTask> createSync(StorageAreaSync* area) { return adoptPtr(new StorageTask(AreaSync, area)); }
- static PassOwnPtr<StorageTask> createDeleteEmptyDatabase(StorageAreaSync* area) { return adoptPtr(new StorageTask(DeleteEmptyDatabase, area)); }
static PassOwnPtr<StorageTask> createSetOriginDetails(const String& originIdentifier, const String& databaseFilename) { return adoptPtr(new StorageTask(SetOriginDetails, originIdentifier, databaseFilename)); }
static PassOwnPtr<StorageTask> createDeleteOrigin(const String& originIdentifier) { return adoptPtr(new StorageTask(DeleteOrigin, originIdentifier)); }
@@ -53,13 +50,11 @@
private:
StorageTask(Type, const Function<void()>&);
- StorageTask(Type, StorageAreaSync*);
StorageTask(Type, const String& originIdentifier);
StorageTask(Type, const String& originIdentifier, const String& databaseFilename);
Type m_type;
Function<void ()> m_function;
- StorageAreaSync* m_area;
String m_originIdentifier;
String m_databaseFilename;
};