| Index: components/webdata/common/web_data_service_backend.cc
|
| diff --git a/components/webdata/common/web_data_service_backend.cc b/components/webdata/common/web_data_service_backend.cc
|
| index 3b945b0b540f721304917c9d135b52a16689f890..300b182bc84e856f02c857cce1428737585640cb 100644
|
| --- a/components/webdata/common/web_data_service_backend.cc
|
| +++ b/components/webdata/common/web_data_service_backend.cc
|
| @@ -73,23 +73,40 @@ void WebDataServiceBackend::ShutdownDatabase(bool should_reinit) {
|
| void WebDataServiceBackend::DBWriteTaskWrapper(
|
| const WebDatabaseService::WriteTask& task,
|
| scoped_ptr<WebDataRequest> request) {
|
| + if (request->IsCancelled())
|
| + return;
|
| +
|
| + ExecuteWriteTask(task);
|
| + request_manager_->RequestCompleted(request.Pass());
|
| +}
|
| +
|
| +void WebDataServiceBackend::ExecuteWriteTask(
|
| + const WebDatabaseService::WriteTask& task) {
|
| LoadDatabaseIfNecessary();
|
| - if (db_ && init_status_ == sql::INIT_OK && !request->IsCancelled()) {
|
| + if (db_ && init_status_ == sql::INIT_OK) {
|
| WebDatabase::State state = task.Run(db_.get());
|
| if (state == WebDatabase::COMMIT_NEEDED)
|
| Commit();
|
| }
|
| - request_manager_->RequestCompleted(request.Pass());
|
| }
|
|
|
| void WebDataServiceBackend::DBReadTaskWrapper(
|
| const WebDatabaseService::ReadTask& task,
|
| scoped_ptr<WebDataRequest> request) {
|
| + if (request->IsCancelled())
|
| + return;
|
| +
|
| + request->SetResult(ExecuteReadTask(task).Pass());
|
| + request_manager_->RequestCompleted(request.Pass());
|
| +}
|
| +
|
| +scoped_ptr<WDTypedResult> WebDataServiceBackend::ExecuteReadTask(
|
| + const WebDatabaseService::ReadTask& task) {
|
| LoadDatabaseIfNecessary();
|
| - if (db_ && init_status_ == sql::INIT_OK && !request->IsCancelled()) {
|
| - request->SetResult(task.Run(db_.get()).Pass());
|
| + if (db_ && init_status_ == sql::INIT_OK) {
|
| + return task.Run(db_.get());
|
| }
|
| - request_manager_->RequestCompleted(request.Pass());
|
| + return scoped_ptr<WDTypedResult>(NULL);
|
| }
|
|
|
| WebDataServiceBackend::~WebDataServiceBackend() {
|
|
|