diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/modules/webdatabase/DatabaseBackend.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/modules/webdatabase/DatabaseBackend.cpp | 22 |
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(); |