| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine.h" | 5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 const SyncStatusCallback& callback, | 127 const SyncStatusCallback& callback, |
| 128 SyncStatusCode status) { | 128 SyncStatusCode status) { |
| 129 base::TimeDelta delta(base::TimeTicks::Now() - start_time); | 129 base::TimeDelta delta(base::TimeTicks::Now() - start_time); |
| 130 HISTOGRAM_TIMES("SyncFileSystem.RegisterOriginTime", delta); | 130 HISTOGRAM_TIMES("SyncFileSystem.RegisterOriginTime", delta); |
| 131 callback.Run(status); | 131 callback.Run(status); |
| 132 } | 132 } |
| 133 | 133 |
| 134 } // namespace | 134 } // namespace |
| 135 | 135 |
| 136 scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext( | 136 scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext( |
| 137 content::BrowserContext* context) { | 137 content::BrowserContext* context, |
| 138 TaskLogger* task_logger) { |
| 138 scoped_refptr<base::SequencedWorkerPool> worker_pool( | 139 scoped_refptr<base::SequencedWorkerPool> worker_pool( |
| 139 content::BrowserThread::GetBlockingPool()); | 140 content::BrowserThread::GetBlockingPool()); |
| 140 scoped_refptr<base::SequencedTaskRunner> drive_task_runner( | 141 scoped_refptr<base::SequencedTaskRunner> drive_task_runner( |
| 141 worker_pool->GetSequencedTaskRunnerWithShutdownBehavior( | 142 worker_pool->GetSequencedTaskRunnerWithShutdownBehavior( |
| 142 worker_pool->GetSequenceToken(), | 143 worker_pool->GetSequenceToken(), |
| 143 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)); | 144 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)); |
| 144 | 145 |
| 145 Profile* profile = Profile::FromBrowserContext(context); | 146 Profile* profile = Profile::FromBrowserContext(context); |
| 146 ProfileOAuth2TokenService* token_service = | 147 ProfileOAuth2TokenService* token_service = |
| 147 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); | 148 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 177 worker_task_runner = base::MessageLoopProxy::current(); | 178 worker_task_runner = base::MessageLoopProxy::current(); |
| 178 | 179 |
| 179 scoped_ptr<drive_backend::SyncEngine> sync_engine( | 180 scoped_ptr<drive_backend::SyncEngine> sync_engine( |
| 180 new SyncEngine(drive_service.Pass(), | 181 new SyncEngine(drive_service.Pass(), |
| 181 drive_uploader.Pass(), | 182 drive_uploader.Pass(), |
| 182 worker_task_runner, | 183 worker_task_runner, |
| 183 notification_manager, | 184 notification_manager, |
| 184 extension_service, | 185 extension_service, |
| 185 signin_manager)); | 186 signin_manager)); |
| 186 sync_engine->Initialize(GetSyncFileSystemDir(context->GetPath()), | 187 sync_engine->Initialize(GetSyncFileSystemDir(context->GetPath()), |
| 188 task_logger, |
| 187 file_task_runner.get(), | 189 file_task_runner.get(), |
| 188 NULL); | 190 NULL); |
| 189 | 191 |
| 190 return sync_engine.Pass(); | 192 return sync_engine.Pass(); |
| 191 } | 193 } |
| 192 | 194 |
| 193 void SyncEngine::AppendDependsOnFactories( | 195 void SyncEngine::AppendDependsOnFactories( |
| 194 std::set<BrowserContextKeyedServiceFactory*>* factories) { | 196 std::set<BrowserContextKeyedServiceFactory*>* factories) { |
| 195 DCHECK(factories); | 197 DCHECK(factories); |
| 196 factories->insert(drive::DriveNotificationManagerFactory::GetInstance()); | 198 factories->insert(drive::DriveNotificationManagerFactory::GetInstance()); |
| 197 factories->insert(SigninManagerFactory::GetInstance()); | 199 factories->insert(SigninManagerFactory::GetInstance()); |
| 198 factories->insert( | 200 factories->insert( |
| 199 extensions::ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); | 201 extensions::ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); |
| 200 } | 202 } |
| 201 | 203 |
| 202 SyncEngine::~SyncEngine() { | 204 SyncEngine::~SyncEngine() { |
| 203 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); | 205 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); |
| 204 GetDriveService()->RemoveObserver(this); | 206 GetDriveService()->RemoveObserver(this); |
| 205 if (notification_manager_) | 207 if (notification_manager_) |
| 206 notification_manager_->RemoveObserver(this); | 208 notification_manager_->RemoveObserver(this); |
| 207 | 209 |
| 208 // TODO(tzik): Destroy |sync_worker_| and |worker_observer_| on the worker. | 210 // TODO(tzik): Destroy |sync_worker_| and |worker_observer_| on the worker. |
| 209 } | 211 } |
| 210 | 212 |
| 211 void SyncEngine::Initialize(const base::FilePath& base_dir, | 213 void SyncEngine::Initialize(const base::FilePath& base_dir, |
| 214 TaskLogger* task_logger, |
| 212 base::SequencedTaskRunner* file_task_runner, | 215 base::SequencedTaskRunner* file_task_runner, |
| 213 leveldb::Env* env_override) { | 216 leveldb::Env* env_override) { |
| 214 // DriveServiceWrapper and DriveServiceOnWorker relay communications | 217 // DriveServiceWrapper and DriveServiceOnWorker relay communications |
| 215 // between DriveService and syncers in SyncWorker. | 218 // between DriveService and syncers in SyncWorker. |
| 216 scoped_ptr<drive::DriveServiceInterface> | 219 scoped_ptr<drive::DriveServiceInterface> drive_service_on_worker( |
| 217 drive_service_on_worker( | 220 new DriveServiceOnWorker(drive_service_wrapper_->AsWeakPtr(), |
| 218 new DriveServiceOnWorker(drive_service_wrapper_->AsWeakPtr(), | 221 base::MessageLoopProxy::current(), |
| 219 base::MessageLoopProxy::current(), | 222 worker_task_runner_)); |
| 220 worker_task_runner_)); | 223 scoped_ptr<drive::DriveUploaderInterface> drive_uploader_on_worker( |
| 221 scoped_ptr<drive::DriveUploaderInterface> | 224 new DriveUploaderOnWorker(drive_uploader_wrapper_->AsWeakPtr(), |
| 222 drive_uploader_on_worker( | |
| 223 new DriveUploaderOnWorker(drive_uploader_wrapper_->AsWeakPtr(), | |
| 224 base::MessageLoopProxy::current(), | |
| 225 worker_task_runner_)); | |
| 226 scoped_ptr<SyncEngineContext> | |
| 227 sync_engine_context( | |
| 228 new SyncEngineContext(drive_service_on_worker.Pass(), | |
| 229 drive_uploader_on_worker.Pass(), | |
| 230 base::MessageLoopProxy::current(), | 225 base::MessageLoopProxy::current(), |
| 231 worker_task_runner_, | 226 worker_task_runner_)); |
| 232 file_task_runner)); | 227 scoped_ptr<SyncEngineContext> sync_engine_context( |
| 228 new SyncEngineContext(drive_service_on_worker.Pass(), |
| 229 drive_uploader_on_worker.Pass(), |
| 230 task_logger, |
| 231 base::MessageLoopProxy::current(), |
| 232 worker_task_runner_, |
| 233 file_task_runner)); |
| 233 | 234 |
| 234 worker_observer_.reset( | 235 worker_observer_.reset( |
| 235 new WorkerObserver(base::MessageLoopProxy::current(), | 236 new WorkerObserver(base::MessageLoopProxy::current(), |
| 236 weak_ptr_factory_.GetWeakPtr())); | 237 weak_ptr_factory_.GetWeakPtr())); |
| 237 | 238 |
| 238 base::WeakPtr<ExtensionServiceInterface> extension_service_weak_ptr; | 239 base::WeakPtr<ExtensionServiceInterface> extension_service_weak_ptr; |
| 239 if (extension_service_) | 240 if (extension_service_) |
| 240 extension_service_weak_ptr = extension_service_->AsWeakPtr(); | 241 extension_service_weak_ptr = extension_service_->AsWeakPtr(); |
| 241 | 242 |
| 242 // TODO(peria): Use PostTask on |worker_task_runner_| to call this function. | 243 // TODO(peria): Use PostTask on |worker_task_runner_| to call this function. |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 540 tracker.tracker_kind() == TRACKER_KIND_APP_ROOT; | 541 tracker.tracker_kind() == TRACKER_KIND_APP_ROOT; |
| 541 if (is_app_enabled && !is_app_root_tracker_enabled) | 542 if (is_app_enabled && !is_app_root_tracker_enabled) |
| 542 EnableOrigin(origin, base::Bind(&EmptyStatusCallback)); | 543 EnableOrigin(origin, base::Bind(&EmptyStatusCallback)); |
| 543 else if (!is_app_enabled && is_app_root_tracker_enabled) | 544 else if (!is_app_enabled && is_app_root_tracker_enabled) |
| 544 DisableOrigin(origin, base::Bind(&EmptyStatusCallback)); | 545 DisableOrigin(origin, base::Bind(&EmptyStatusCallback)); |
| 545 } | 546 } |
| 546 } | 547 } |
| 547 | 548 |
| 548 } // namespace drive_backend | 549 } // namespace drive_backend |
| 549 } // namespace sync_file_system | 550 } // namespace sync_file_system |
| OLD | NEW |