Index: third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.cpp |
diff --git a/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.cpp b/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.cpp |
index 6d400e6f0168b5d42dfa8ab67d0229005ecd4800..d1f589f8623c34ca7faacb7bc25cd7454ebd56c0 100644 |
--- a/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.cpp |
+++ b/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.cpp |
@@ -356,6 +356,7 @@ SQLTransactionBackend::SQLTransactionBackend(Database* db, SQLTransaction* front |
, m_readOnly(readOnly) |
, m_hasVersionMismatch(false) |
{ |
+ DCHECK(isMainThread()); |
ASSERT(m_database); |
m_frontend->setBackend(this); |
m_requestedState = SQLTransactionState::AcquireLock; |
@@ -368,11 +369,8 @@ SQLTransactionBackend::~SQLTransactionBackend() |
DEFINE_TRACE(SQLTransactionBackend) |
{ |
- visitor->trace(m_frontend); |
- visitor->trace(m_currentStatementBackend); |
visitor->trace(m_database); |
visitor->trace(m_wrapper); |
- visitor->trace(m_statementQueue); |
} |
void SQLTransactionBackend::doCleanup() |
@@ -467,12 +465,14 @@ SQLTransactionBackend::StateFunction SQLTransactionBackend::stateFunctionFor(SQL |
void SQLTransactionBackend::enqueueStatementBackend(SQLStatementBackend* statementBackend) |
{ |
+ DCHECK(isMainThread()); |
MutexLocker locker(m_statementMutex); |
m_statementQueue.append(statementBackend); |
} |
void SQLTransactionBackend::computeNextStateAndCleanupIfNeeded() |
{ |
+ DCHECK(database()->getDatabaseContext()->databaseThread()->isDatabaseThread()); |
// Only honor the requested state transition if we're not supposed to be |
// cleaning up and shutting down: |
if (m_database->opened()) { |
@@ -520,6 +520,7 @@ void SQLTransactionBackend::performNextStep() |
void SQLTransactionBackend::executeSQL(SQLStatement* statement, |
const String& sqlStatement, const Vector<SQLValue>& arguments, int permissions) |
{ |
+ DCHECK(isMainThread()); |
enqueueStatementBackend(SQLStatementBackend::create(statement, sqlStatement, arguments, permissions)); |
} |
@@ -549,6 +550,7 @@ void SQLTransactionBackend::lockAcquired() |
SQLTransactionState SQLTransactionBackend::openTransactionAndPreflight() |
{ |
+ DCHECK(database()->getDatabaseContext()->databaseThread()->isDatabaseThread()); |
ASSERT(!m_database->sqliteDatabase().transactionInProgress()); |
ASSERT(m_lockAcquired); |
@@ -615,6 +617,7 @@ SQLTransactionState SQLTransactionBackend::openTransactionAndPreflight() |
SQLTransactionState SQLTransactionBackend::runStatements() |
{ |
+ DCHECK(database()->getDatabaseContext()->databaseThread()->isDatabaseThread()); |
ASSERT(m_lockAcquired); |
SQLTransactionState nextState; |
@@ -649,6 +652,7 @@ SQLTransactionState SQLTransactionBackend::runStatements() |
void SQLTransactionBackend::getNextStatement() |
{ |
+ DCHECK(database()->getDatabaseContext()->databaseThread()->isDatabaseThread()); |
m_currentStatementBackend = nullptr; |
MutexLocker locker(m_statementMutex); |