Index: chrome/browser/sync_file_system/drive_backend/sync_engine.cc |
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc |
index be3a51a18477c1f3ae973dd9d3b7ed15d643fffe..894d3d01775e07e3137e413e2c11265085dbc0c7 100644 |
--- a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc |
+++ b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc |
@@ -8,6 +8,7 @@ |
#include "base/bind.h" |
#include "base/metrics/histogram.h" |
+#include "base/run_loop.h" |
tzik
2014/05/26 06:50:21
please drop this
peria
2014/05/26 07:55:09
Done.
|
#include "base/threading/sequenced_worker_pool.h" |
#include "base/time/time.h" |
#include "base/values.h" |
@@ -66,7 +67,6 @@ class SyncEngine::WorkerObserver : public SyncWorker::Observer { |
base::WeakPtr<SyncEngine> sync_engine) |
: ui_task_runner_(ui_task_runner), |
sync_engine_(sync_engine) {} |
- |
virtual ~WorkerObserver() {} |
virtual void OnPendingFileListUpdated(int item_count) OVERRIDE { |
@@ -183,6 +183,7 @@ scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext( |
notification_manager, |
extension_service, |
signin_manager)); |
+ |
sync_engine->Initialize(GetSyncFileSystemDir(context->GetPath()), |
file_task_runner.get(), |
NULL); |
@@ -205,7 +206,8 @@ SyncEngine::~SyncEngine() { |
if (notification_manager_) |
notification_manager_->RemoveObserver(this); |
- // TODO(tzik): Destroy |sync_worker_| and |worker_observer_| on the worker. |
+ worker_task_runner_->DeleteSoon(FROM_HERE, worker_observer_.release()); |
+ worker_task_runner_->DeleteSoon(FROM_HERE, sync_worker_.release()); |
} |
void SyncEngine::Initialize(const base::FilePath& base_dir, |
@@ -239,7 +241,6 @@ void SyncEngine::Initialize(const base::FilePath& base_dir, |
if (extension_service_) |
extension_service_weak_ptr = extension_service_->AsWeakPtr(); |
- // TODO(peria): Use PostTask on |worker_task_runner_| to call this function. |
sync_worker_ = SyncWorker::CreateOnWorker( |
base_dir, |
worker_observer_.get(), |
@@ -251,6 +252,12 @@ void SyncEngine::Initialize(const base::FilePath& base_dir, |
notification_manager_->AddObserver(this); |
GetDriveService()->AddObserver(this); |
net::NetworkChangeNotifier::AddNetworkChangeObserver(this); |
+ |
+ worker_task_runner_->PostTask( |
+ FROM_HERE, |
+ base::Bind(&SyncWorker::Initialize, |
+ sync_worker_->AsWeakPtr())); |
tzik
2014/05/26 06:50:21
Unretained?
peria
2014/05/26 07:55:09
Done.
|
+ |
} |
void SyncEngine::AddServiceObserver(SyncServiceObserver* observer) { |