| 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 20 matching lines...) Expand all Loading... |
| 31 #include "chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h
" | 31 #include "chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h
" |
| 32 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" | 32 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" |
| 33 #include "chrome/browser/sync_file_system/drive_backend/register_app_task.h" | 33 #include "chrome/browser/sync_file_system/drive_backend/register_app_task.h" |
| 34 #include "chrome/browser/sync_file_system/drive_backend/remote_change_processor_
on_worker.h" | 34 #include "chrome/browser/sync_file_system/drive_backend/remote_change_processor_
on_worker.h" |
| 35 #include "chrome/browser/sync_file_system/drive_backend/remote_change_processor_
wrapper.h" | 35 #include "chrome/browser/sync_file_system/drive_backend/remote_change_processor_
wrapper.h" |
| 36 #include "chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.h
" | 36 #include "chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.h
" |
| 37 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_context.h" | 37 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_context.h" |
| 38 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.
h" | 38 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.
h" |
| 39 #include "chrome/browser/sync_file_system/drive_backend/sync_task.h" | 39 #include "chrome/browser/sync_file_system/drive_backend/sync_task.h" |
| 40 #include "chrome/browser/sync_file_system/drive_backend/sync_worker.h" | 40 #include "chrome/browser/sync_file_system/drive_backend/sync_worker.h" |
| 41 #include "chrome/browser/sync_file_system/drive_backend/sync_worker_interface.h" |
| 41 #include "chrome/browser/sync_file_system/drive_backend/uninstall_app_task.h" | 42 #include "chrome/browser/sync_file_system/drive_backend/uninstall_app_task.h" |
| 42 #include "chrome/browser/sync_file_system/file_status_observer.h" | 43 #include "chrome/browser/sync_file_system/file_status_observer.h" |
| 43 #include "chrome/browser/sync_file_system/logger.h" | 44 #include "chrome/browser/sync_file_system/logger.h" |
| 44 #include "chrome/browser/sync_file_system/syncable_file_system_util.h" | 45 #include "chrome/browser/sync_file_system/syncable_file_system_util.h" |
| 45 #include "components/signin/core/browser/profile_oauth2_token_service.h" | 46 #include "components/signin/core/browser/profile_oauth2_token_service.h" |
| 46 #include "components/signin/core/browser/signin_manager.h" | 47 #include "components/signin/core/browser/signin_manager.h" |
| 47 #include "content/public/browser/browser_thread.h" | 48 #include "content/public/browser/browser_thread.h" |
| 48 #include "extensions/browser/extension_system.h" | 49 #include "extensions/browser/extension_system.h" |
| 49 #include "extensions/browser/extension_system_provider.h" | 50 #include "extensions/browser/extension_system_provider.h" |
| 50 #include "extensions/browser/extensions_browser_client.h" | 51 #include "extensions/browser/extensions_browser_client.h" |
| 51 #include "extensions/common/extension.h" | 52 #include "extensions/common/extension.h" |
| 52 #include "google_apis/drive/drive_api_url_generator.h" | 53 #include "google_apis/drive/drive_api_url_generator.h" |
| 53 #include "google_apis/drive/gdata_wapi_url_generator.h" | 54 #include "google_apis/drive/gdata_wapi_url_generator.h" |
| 54 #include "net/url_request/url_request_context_getter.h" | 55 #include "net/url_request/url_request_context_getter.h" |
| 55 #include "webkit/common/blob/scoped_file.h" | 56 #include "webkit/common/blob/scoped_file.h" |
| 56 #include "webkit/common/fileapi/file_system_util.h" | 57 #include "webkit/common/fileapi/file_system_util.h" |
| 57 | 58 |
| 58 namespace sync_file_system { | 59 namespace sync_file_system { |
| 59 | 60 |
| 60 class RemoteChangeProcessor; | 61 class RemoteChangeProcessor; |
| 61 | 62 |
| 62 namespace drive_backend { | 63 namespace drive_backend { |
| 63 | 64 |
| 64 class SyncEngine::WorkerObserver : public SyncWorker::Observer { | 65 class SyncEngine::WorkerObserver : public SyncWorkerInterface::Observer { |
| 65 public: | 66 public: |
| 66 WorkerObserver(base::SequencedTaskRunner* ui_task_runner, | 67 WorkerObserver(base::SequencedTaskRunner* ui_task_runner, |
| 67 base::WeakPtr<SyncEngine> sync_engine) | 68 base::WeakPtr<SyncEngine> sync_engine) |
| 68 : ui_task_runner_(ui_task_runner), | 69 : ui_task_runner_(ui_task_runner), |
| 69 sync_engine_(sync_engine) { | 70 sync_engine_(sync_engine) { |
| 70 sequence_checker_.DetachFromSequence(); | 71 sequence_checker_.DetachFromSequence(); |
| 71 } | 72 } |
| 72 | 73 |
| 73 virtual ~WorkerObserver() { | 74 virtual ~WorkerObserver() { |
| 74 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 75 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 Reset(); | 232 Reset(); |
| 232 } | 233 } |
| 233 | 234 |
| 234 void SyncEngine::Reset() { | 235 void SyncEngine::Reset() { |
| 235 if (notification_manager_) | 236 if (notification_manager_) |
| 236 notification_manager_->RemoveObserver(this); | 237 notification_manager_->RemoveObserver(this); |
| 237 if (drive_service_) | 238 if (drive_service_) |
| 238 drive_service_->RemoveObserver(this); | 239 drive_service_->RemoveObserver(this); |
| 239 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); | 240 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); |
| 240 | 241 |
| 242 DeleteSoon(FROM_HERE, worker_task_runner_, sync_worker_.Pass()); |
| 241 DeleteSoon(FROM_HERE, worker_task_runner_, worker_observer_.Pass()); | 243 DeleteSoon(FROM_HERE, worker_task_runner_, worker_observer_.Pass()); |
| 242 DeleteSoon(FROM_HERE, worker_task_runner_, sync_worker_.Pass()); | |
| 243 DeleteSoon(FROM_HERE, worker_task_runner_, | 244 DeleteSoon(FROM_HERE, worker_task_runner_, |
| 244 remote_change_processor_on_worker_.Pass()); | 245 remote_change_processor_on_worker_.Pass()); |
| 245 | 246 |
| 246 drive_service_wrapper_.reset(); | 247 drive_service_wrapper_.reset(); |
| 247 drive_service_.reset(); | 248 drive_service_.reset(); |
| 248 drive_uploader_wrapper_.reset(); | 249 drive_uploader_wrapper_.reset(); |
| 249 drive_uploader_.reset(); | 250 drive_uploader_.reset(); |
| 250 remote_change_processor_wrapper_.reset(); | 251 remote_change_processor_wrapper_.reset(); |
| 251 callback_tracker_.AbortAll(); | 252 callback_tracker_.AbortAll(); |
| 252 } | 253 } |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 worker_task_runner_, | 311 worker_task_runner_, |
| 311 file_task_runner_)); | 312 file_task_runner_)); |
| 312 | 313 |
| 313 worker_observer_.reset( | 314 worker_observer_.reset( |
| 314 new WorkerObserver(ui_task_runner_, weak_ptr_factory_.GetWeakPtr())); | 315 new WorkerObserver(ui_task_runner_, weak_ptr_factory_.GetWeakPtr())); |
| 315 | 316 |
| 316 base::WeakPtr<ExtensionServiceInterface> extension_service_weak_ptr; | 317 base::WeakPtr<ExtensionServiceInterface> extension_service_weak_ptr; |
| 317 if (extension_service_) | 318 if (extension_service_) |
| 318 extension_service_weak_ptr = extension_service_->AsWeakPtr(); | 319 extension_service_weak_ptr = extension_service_->AsWeakPtr(); |
| 319 | 320 |
| 320 scoped_ptr<SyncWorker> worker(new SyncWorker( | 321 sync_worker_.reset(new SyncWorker( |
| 321 sync_file_system_dir_, | 322 sync_file_system_dir_, |
| 322 extension_service_weak_ptr, | 323 extension_service_weak_ptr, |
| 323 sync_engine_context.Pass(), | 324 sync_engine_context.Pass(), |
| 324 env_override_)); | 325 env_override_)); |
| 325 | 326 sync_worker_->AddObserver(worker_observer_.get()); |
| 326 worker->AddObserver(worker_observer_.get()); | |
| 327 sync_worker_ = worker.PassAs<SyncWorkerInterface>(); | |
| 328 | 327 |
| 329 if (remote_change_processor_) | 328 if (remote_change_processor_) |
| 330 SetRemoteChangeProcessor(remote_change_processor_); | 329 SetRemoteChangeProcessor(remote_change_processor_); |
| 331 | 330 |
| 332 worker_task_runner_->PostTask( | 331 worker_task_runner_->PostTask( |
| 333 FROM_HERE, | 332 FROM_HERE, |
| 334 base::Bind(&SyncWorkerInterface::Initialize, | 333 base::Bind(&SyncWorkerInterface::Initialize, |
| 335 base::Unretained(sync_worker_.get()))); | 334 base::Unretained(sync_worker_.get()))); |
| 336 | 335 |
| 337 if (notification_manager_) | 336 if (notification_manager_) |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 619 | 618 |
| 620 SyncStatusCallback SyncEngine::TrackCallback( | 619 SyncStatusCallback SyncEngine::TrackCallback( |
| 621 const SyncStatusCallback& callback) { | 620 const SyncStatusCallback& callback) { |
| 622 return callback_tracker_.Register( | 621 return callback_tracker_.Register( |
| 623 base::Bind(callback, SYNC_STATUS_ABORT), | 622 base::Bind(callback, SYNC_STATUS_ABORT), |
| 624 callback); | 623 callback); |
| 625 } | 624 } |
| 626 | 625 |
| 627 } // namespace drive_backend | 626 } // namespace drive_backend |
| 628 } // namespace sync_file_system | 627 } // namespace sync_file_system |
| OLD | NEW |