| Index: third_party/WebKit/Source/modules/webdatabase/SQLTransaction.cpp
 | 
| diff --git a/third_party/WebKit/Source/modules/webdatabase/SQLTransaction.cpp b/third_party/WebKit/Source/modules/webdatabase/SQLTransaction.cpp
 | 
| index c1f8ed778c0256ec6a2f04805299c2274ecc790b..d258e51c4370df5bdfe43fc0223050382a12b0ee 100644
 | 
| --- a/third_party/WebKit/Source/modules/webdatabase/SQLTransaction.cpp
 | 
| +++ b/third_party/WebKit/Source/modules/webdatabase/SQLTransaction.cpp
 | 
| @@ -35,6 +35,7 @@
 | 
|  #include "modules/webdatabase/Database.h"
 | 
|  #include "modules/webdatabase/DatabaseAuthorizer.h"
 | 
|  #include "modules/webdatabase/DatabaseContext.h"
 | 
| +#include "modules/webdatabase/DatabaseThread.h"
 | 
|  #include "modules/webdatabase/SQLError.h"
 | 
|  #include "modules/webdatabase/SQLStatementCallback.h"
 | 
|  #include "modules/webdatabase/SQLStatementErrorCallback.h"
 | 
| @@ -64,6 +65,7 @@ SQLTransaction::SQLTransaction(Database* db, SQLTransactionCallback* callback,
 | 
|      , m_executeSqlAllowed(false)
 | 
|      , m_readOnly(readOnly)
 | 
|  {
 | 
| +    DCHECK(isMainThread());
 | 
|      ASSERT(m_database);
 | 
|      InspectorInstrumentation::asyncTaskScheduled(db->getExecutionContext(), "SQLTransaction", this, true);
 | 
|  }
 | 
| @@ -200,6 +202,7 @@ SQLTransactionState SQLTransaction::deliverTransactionErrorCallback()
 | 
|  
 | 
|  SQLTransactionState SQLTransaction::deliverStatementCallback()
 | 
|  {
 | 
| +    DCHECK(isMainThread());
 | 
|      // Spec 4.3.2.6.6 and 4.3.2.6.3: If the statement callback went wrong, jump to the transaction error callback
 | 
|      // Otherwise, continue to loop through the statement queue
 | 
|      m_executeSqlAllowed = true;
 | 
| @@ -221,6 +224,7 @@ SQLTransactionState SQLTransaction::deliverStatementCallback()
 | 
|  
 | 
|  SQLTransactionState SQLTransaction::deliverQuotaIncreaseCallback()
 | 
|  {
 | 
| +    DCHECK(isMainThread());
 | 
|      ASSERT(m_backend->currentStatement());
 | 
|  
 | 
|      bool shouldRetryCurrentStatement = m_database->transactionClient()->didExceedQuota(database());
 | 
| @@ -231,6 +235,7 @@ SQLTransactionState SQLTransaction::deliverQuotaIncreaseCallback()
 | 
|  
 | 
|  SQLTransactionState SQLTransaction::deliverSuccessCallback()
 | 
|  {
 | 
| +    DCHECK(isMainThread());
 | 
|      InspectorInstrumentation::AsyncTask asyncTask(m_database->getExecutionContext(), this);
 | 
|      InspectorInstrumentation::asyncTaskCanceled(m_database->getExecutionContext(), this);
 | 
|  
 | 
| @@ -263,12 +268,14 @@ SQLTransactionState SQLTransaction::sendToBackendState()
 | 
|  
 | 
|  void SQLTransaction::performPendingCallback()
 | 
|  {
 | 
| +    DCHECK(isMainThread());
 | 
|      computeNextStateAndCleanupIfNeeded();
 | 
|      runStateMachine();
 | 
|  }
 | 
|  
 | 
|  void SQLTransaction::executeSQL(const String& sqlStatement, const Vector<SQLValue>& arguments, SQLStatementCallback* callback, SQLStatementErrorCallback* callbackError, ExceptionState& exceptionState)
 | 
|  {
 | 
| +    DCHECK(isMainThread());
 | 
|      if (!m_executeSqlAllowed) {
 | 
|          exceptionState.throwDOMException(InvalidStateError, "SQL execution is disallowed.");
 | 
|          return;
 | 
| 
 |