| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "content/browser/indexed_db/indexed_db_database_callbacks.h" |
| |
| #include "content/browser/indexed_db/indexed_db_database_error.h" |
| #include "content/browser/indexed_db/indexed_db_dispatcher_host.h" |
| #include "content/common/indexed_db/indexed_db_messages.h" |
| |
| namespace content { |
| |
| IndexedDBDatabaseCallbacks::IndexedDBDatabaseCallbacks( |
| IndexedDBDispatcherHost* dispatcher_host, |
| int ipc_thread_id, |
| int ipc_database_callbacks_id) |
| : dispatcher_host_(dispatcher_host), |
| ipc_thread_id_(ipc_thread_id), |
| ipc_database_callbacks_id_(ipc_database_callbacks_id) {} |
| |
| IndexedDBDatabaseCallbacks::~IndexedDBDatabaseCallbacks() {} |
| |
| void IndexedDBDatabaseCallbacks::OnForcedClose() { |
| if (!dispatcher_host_.get()) |
| return; |
| |
| dispatcher_host_->Send(new IndexedDBMsg_DatabaseCallbacksForcedClose( |
| ipc_thread_id_, ipc_database_callbacks_id_)); |
| |
| dispatcher_host_ = NULL; |
| } |
| |
| void IndexedDBDatabaseCallbacks::OnVersionChange(int64 old_version, |
| int64 new_version) { |
| if (!dispatcher_host_.get()) |
| return; |
| |
| dispatcher_host_->Send(new IndexedDBMsg_DatabaseCallbacksIntVersionChange( |
| ipc_thread_id_, ipc_database_callbacks_id_, old_version, new_version)); |
| } |
| |
| void IndexedDBDatabaseCallbacks::OnAbort( |
| int64 host_transaction_id, |
| const IndexedDBDatabaseError& error) { |
| if (!dispatcher_host_.get()) |
| return; |
| |
| dispatcher_host_->FinishTransaction(host_transaction_id, false); |
| dispatcher_host_->Send(new IndexedDBMsg_DatabaseCallbacksAbort( |
| ipc_thread_id_, |
| ipc_database_callbacks_id_, |
| dispatcher_host_->RendererTransactionId(host_transaction_id), |
| error.code(), |
| error.message())); |
| } |
| |
| void IndexedDBDatabaseCallbacks::OnComplete(int64 host_transaction_id) { |
| if (!dispatcher_host_.get()) |
| return; |
| |
| dispatcher_host_->FinishTransaction(host_transaction_id, true); |
| dispatcher_host_->Send(new IndexedDBMsg_DatabaseCallbacksComplete( |
| ipc_thread_id_, |
| ipc_database_callbacks_id_, |
| dispatcher_host_->RendererTransactionId(host_transaction_id))); |
| } |
| |
| } // namespace content |