summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/modules/webdatabase/DatabaseBackend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/modules/webdatabase/DatabaseBackend.cpp')
-rw-r--r--chromium/third_party/WebKit/Source/modules/webdatabase/DatabaseBackend.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/chromium/third_party/WebKit/Source/modules/webdatabase/DatabaseBackend.cpp b/chromium/third_party/WebKit/Source/modules/webdatabase/DatabaseBackend.cpp
index b85c826a1d3..7e18fe47e70 100644
--- a/chromium/third_party/WebKit/Source/modules/webdatabase/DatabaseBackend.cpp
+++ b/chromium/third_party/WebKit/Source/modules/webdatabase/DatabaseBackend.cpp
@@ -40,16 +40,22 @@
namespace WebCore {
-DatabaseBackend::DatabaseBackend(PassRefPtr<DatabaseContext> databaseContext, const String& name, const String& expectedVersion, const String& displayName, unsigned long estimatedSize)
+DatabaseBackend::DatabaseBackend(DatabaseContext* databaseContext, const String& name, const String& expectedVersion, const String& displayName, unsigned long estimatedSize)
: DatabaseBackendBase(databaseContext, name, expectedVersion, displayName, estimatedSize, DatabaseType::Async)
, m_transactionInProgress(false)
, m_isTransactionQueueEnabled(true)
{
}
+void DatabaseBackend::trace(Visitor* visitor)
+{
+ visitor->trace(m_transactionQueue);
+ DatabaseBackendBase::trace(visitor);
+}
+
bool DatabaseBackend::openAndVerifyVersion(bool setVersionInNewDatabase, DatabaseError& error, String& errorMessage)
{
- DatabaseTaskSynchronizer synchronizer;
+ TaskSynchronizer synchronizer;
if (!databaseContext()->databaseThread() || databaseContext()->databaseThread()->terminationRequested(&synchronizer))
return false;
@@ -85,7 +91,7 @@ void DatabaseBackend::close()
// Clean up transactions that have not been scheduled yet:
// Transaction phase 1 cleanup. See comment on "What happens if a
// transaction is interrupted?" at the top of SQLTransactionBackend.cpp.
- RefPtr<SQLTransactionBackend> transaction;
+ RefPtrWillBeRawPtr<SQLTransactionBackend> transaction = nullptr;
while (!m_transactionQueue.isEmpty()) {
transaction = m_transactionQueue.takeFirst();
transaction->notifyDatabaseThreadIsShuttingDown();
@@ -99,18 +105,18 @@ void DatabaseBackend::close()
databaseContext()->databaseThread()->recordDatabaseClosed(this);
}
-PassRefPtr<SQLTransactionBackend> DatabaseBackend::runTransaction(PassRefPtr<SQLTransaction> transaction,
+PassRefPtrWillBeRawPtr<SQLTransactionBackend> DatabaseBackend::runTransaction(PassRefPtrWillBeRawPtr<SQLTransaction> transaction,
bool readOnly, const ChangeVersionData* data)
{
MutexLocker locker(m_transactionInProgressMutex);
if (!m_isTransactionQueueEnabled)
- return 0;
+ return nullptr;
- RefPtr<SQLTransactionWrapper> wrapper;
+ RefPtrWillBeRawPtr<SQLTransactionWrapper> wrapper = nullptr;
if (data)
wrapper = ChangeVersionWrapper::create(data->oldVersion(), data->newVersion());
- RefPtr<SQLTransactionBackend> transactionBackend = SQLTransactionBackend::create(this, transaction, wrapper, readOnly);
+ RefPtrWillBeRawPtr<SQLTransactionBackend> transactionBackend = SQLTransactionBackend::create(this, transaction, wrapper.release(), readOnly);
m_transactionQueue.append(transactionBackend);
if (!m_transactionInProgress)
scheduleTransaction();
@@ -128,7 +134,7 @@ void DatabaseBackend::inProgressTransactionCompleted()
void DatabaseBackend::scheduleTransaction()
{
ASSERT(!m_transactionInProgressMutex.tryLock()); // Locked by caller.
- RefPtr<SQLTransactionBackend> transaction;
+ RefPtrWillBeRawPtr<SQLTransactionBackend> transaction = nullptr;
if (m_isTransactionQueueEnabled && !m_transactionQueue.isEmpty())
transaction = m_transactionQueue.takeFirst();