| Index: chrome/browser/webdata/web_data_service.cc
|
| diff --git a/chrome/browser/webdata/web_data_service.cc b/chrome/browser/webdata/web_data_service.cc
|
| index f7016e7ebfc3e2630f3e3e0ca5fb79bd12ab37b1..2f8ce214cdb2362ced2e7c9a7e2cad6b23b3b5e9 100644
|
| --- a/chrome/browser/webdata/web_data_service.cc
|
| +++ b/chrome/browser/webdata/web_data_service.cc
|
| @@ -422,10 +422,6 @@ bool WebDataService::InitWithPath(const FilePath& path) {
|
| return true;
|
| }
|
|
|
| -void WebDataService::RequestCompleted(Handle h) {
|
| - request_manager_.RequestCompleted(h);
|
| -}
|
| -
|
| ////////////////////////////////////////////////////////////////////////////////
|
| //
|
| // The following methods are executed in Chrome_WebDataThread.
|
| @@ -526,11 +522,12 @@ void WebDataService::ScheduleTask(const tracked_objects::Location& from_here,
|
| void WebDataService::ScheduleDBTask(
|
| const tracked_objects::Location& from_here,
|
| const base::Closure& task) {
|
| - WebDataRequest* request =
|
| - new WebDataRequest(this, NULL, &request_manager_);
|
| + scoped_ptr<WebDataRequest> request(
|
| + new WebDataRequest(this, NULL, &request_manager_));
|
| if (is_running_) {
|
| BrowserThread::PostTask(BrowserThread::DB, from_here,
|
| - base::Bind(&WebDataService::DBTaskWrapper, this, task, request));
|
| + base::Bind(&WebDataService::DBTaskWrapper, this, task,
|
| + base::Passed(&request)));
|
| } else {
|
| NOTREACHED() << "Task scheduled after Shutdown()";
|
| }
|
| @@ -541,33 +538,35 @@ WebDataService::Handle WebDataService::ScheduleDBTaskWithResult(
|
| const ResultTask& task,
|
| WebDataServiceConsumer* consumer) {
|
| DCHECK(consumer);
|
| - WebDataRequest* request =
|
| - new WebDataRequest(this, consumer, &request_manager_);
|
| + scoped_ptr<WebDataRequest> request(
|
| + new WebDataRequest(this, consumer, &request_manager_));
|
| + WebDataService::Handle handle = request->GetHandle();
|
| if (is_running_) {
|
| BrowserThread::PostTask(BrowserThread::DB, from_here,
|
| - base::Bind(&WebDataService::DBResultTaskWrapper, this, task, request));
|
| + base::Bind(&WebDataService::DBResultTaskWrapper, this, task,
|
| + base::Passed(&request)));
|
| } else {
|
| NOTREACHED() << "Task scheduled after Shutdown()";
|
| }
|
| - return request->GetHandle();
|
| + return handle;
|
| }
|
|
|
| void WebDataService::DBTaskWrapper(const base::Closure& task,
|
| - WebDataRequest* request) {
|
| + scoped_ptr<WebDataRequest> request) {
|
| InitializeDatabaseIfNecessary();
|
| if (db_ && !request->IsCancelled()) {
|
| task.Run();
|
| }
|
| - request->RequestComplete();
|
| + request_manager_.RequestCompleted(request.Pass());
|
| }
|
|
|
| void WebDataService::DBResultTaskWrapper(const ResultTask& task,
|
| - WebDataRequest* request) {
|
| + scoped_ptr<WebDataRequest> request) {
|
| InitializeDatabaseIfNecessary();
|
| if (db_ && !request->IsCancelled()) {
|
| request->SetResult(task.Run().Pass());
|
| }
|
| - request->RequestComplete();
|
| + request_manager_.RequestCompleted(request.Pass());
|
| }
|
|
|
| void WebDataService::ScheduleCommit() {
|
|
|