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 |