OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_worker.h" | 5 #include "chrome/browser/sync_file_system/drive_backend/sync_worker.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/memory/weak_ptr.h" | |
11 #include "base/threading/sequenced_worker_pool.h" | |
12 #include "base/values.h" | |
13 #include "chrome/browser/drive/drive_api_service.h" | |
14 #include "chrome/browser/drive/drive_notification_manager.h" | |
15 #include "chrome/browser/drive/drive_notification_manager_factory.h" | |
16 #include "chrome/browser/drive/drive_service_interface.h" | 10 #include "chrome/browser/drive/drive_service_interface.h" |
17 #include "chrome/browser/drive/drive_uploader.h" | |
18 #include "chrome/browser/extensions/extension_service.h" | 11 #include "chrome/browser/extensions/extension_service.h" |
19 #include "chrome/browser/profiles/profile.h" | |
20 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" | |
21 #include "chrome/browser/signin/signin_manager_factory.h" | |
22 #include "chrome/browser/sync_file_system/drive_backend/callback_helper.h" | 12 #include "chrome/browser/sync_file_system/drive_backend/callback_helper.h" |
23 #include "chrome/browser/sync_file_system/drive_backend/conflict_resolver.h" | 13 #include "chrome/browser/sync_file_system/drive_backend/conflict_resolver.h" |
24 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants.
h" | 14 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants.
h" |
25 #include "chrome/browser/sync_file_system/drive_backend/list_changes_task.h" | 15 #include "chrome/browser/sync_file_system/drive_backend/list_changes_task.h" |
26 #include "chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h
" | 16 #include "chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h
" |
27 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" | 17 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" |
28 #include "chrome/browser/sync_file_system/drive_backend/register_app_task.h" | 18 #include "chrome/browser/sync_file_system/drive_backend/register_app_task.h" |
29 #include "chrome/browser/sync_file_system/drive_backend/remote_change_processor_
on_worker.h" | 19 #include "chrome/browser/sync_file_system/drive_backend/remote_change_processor_
on_worker.h" |
30 #include "chrome/browser/sync_file_system/drive_backend/remote_change_processor_
wrapper.h" | |
31 #include "chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.h
" | 20 #include "chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.h
" |
32 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_context.h" | 21 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_context.h" |
33 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.
h" | 22 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.
h" |
34 #include "chrome/browser/sync_file_system/drive_backend/sync_task.h" | 23 #include "chrome/browser/sync_file_system/drive_backend/sync_task.h" |
35 #include "chrome/browser/sync_file_system/drive_backend/uninstall_app_task.h" | 24 #include "chrome/browser/sync_file_system/drive_backend/uninstall_app_task.h" |
36 #include "chrome/browser/sync_file_system/file_status_observer.h" | |
37 #include "chrome/browser/sync_file_system/logger.h" | 25 #include "chrome/browser/sync_file_system/logger.h" |
38 #include "chrome/browser/sync_file_system/syncable_file_system_util.h" | 26 #include "chrome/browser/sync_file_system/syncable_file_system_util.h" |
39 #include "components/signin/core/browser/profile_oauth2_token_service.h" | |
40 #include "components/signin/core/browser/signin_manager.h" | |
41 #include "content/public/browser/browser_thread.h" | |
42 #include "extensions/browser/extension_system.h" | |
43 #include "extensions/browser/extension_system_provider.h" | |
44 #include "extensions/browser/extensions_browser_client.h" | |
45 #include "extensions/common/extension.h" | |
46 #include "google_apis/drive/drive_api_url_generator.h" | |
47 #include "google_apis/drive/gdata_wapi_url_generator.h" | |
48 #include "webkit/common/blob/scoped_file.h" | |
49 #include "webkit/common/fileapi/file_system_util.h" | 27 #include "webkit/common/fileapi/file_system_util.h" |
50 | 28 |
51 namespace sync_file_system { | 29 namespace sync_file_system { |
52 | 30 |
53 class RemoteChangeProcessor; | 31 class RemoteChangeProcessor; |
54 | 32 |
55 namespace drive_backend { | 33 namespace drive_backend { |
56 | 34 |
57 namespace { | 35 namespace { |
58 | 36 |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 MetadataDatabase* metadata_db = GetMetadataDatabase(); | 262 MetadataDatabase* metadata_db = GetMetadataDatabase(); |
285 if (metadata_db && metadata_db->HasLowPriorityDirtyTracker()) { | 263 if (metadata_db && metadata_db->HasLowPriorityDirtyTracker()) { |
286 metadata_db->PromoteLowerPriorityTrackersToNormal(); | 264 metadata_db->PromoteLowerPriorityTrackersToNormal(); |
287 FOR_EACH_OBSERVER( | 265 FOR_EACH_OBSERVER( |
288 Observer, | 266 Observer, |
289 observers_, | 267 observers_, |
290 OnPendingFileListUpdated(metadata_db->CountDirtyTracker())); | 268 OnPendingFileListUpdated(metadata_db->CountDirtyTracker())); |
291 } | 269 } |
292 } | 270 } |
293 | 271 |
294 SyncStatusCode SyncWorker::SetDefaultConflictResolutionPolicy( | |
295 ConflictResolutionPolicy policy) { | |
296 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
297 | |
298 default_conflict_resolution_policy_ = policy; | |
299 return SYNC_STATUS_OK; | |
300 } | |
301 | |
302 SyncStatusCode SyncWorker::SetConflictResolutionPolicy( | |
303 const GURL& origin, | |
304 ConflictResolutionPolicy policy) { | |
305 NOTIMPLEMENTED(); | |
306 default_conflict_resolution_policy_ = policy; | |
307 return SYNC_STATUS_OK; | |
308 } | |
309 | |
310 ConflictResolutionPolicy SyncWorker::GetDefaultConflictResolutionPolicy() | |
311 const { | |
312 return default_conflict_resolution_policy_; | |
313 } | |
314 | |
315 ConflictResolutionPolicy SyncWorker::GetConflictResolutionPolicy( | |
316 const GURL& origin) const { | |
317 NOTIMPLEMENTED(); | |
318 return default_conflict_resolution_policy_; | |
319 } | |
320 | |
321 void SyncWorker::ApplyLocalChange( | 272 void SyncWorker::ApplyLocalChange( |
322 const FileChange& local_change, | 273 const FileChange& local_change, |
323 const base::FilePath& local_path, | 274 const base::FilePath& local_path, |
324 const SyncFileMetadata& local_metadata, | 275 const SyncFileMetadata& local_metadata, |
325 const fileapi::FileSystemURL& url, | 276 const fileapi::FileSystemURL& url, |
326 const SyncStatusCallback& callback) { | 277 const SyncStatusCallback& callback) { |
327 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 278 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
328 | 279 |
329 LocalToRemoteSyncer* syncer = new LocalToRemoteSyncer( | 280 LocalToRemoteSyncer* syncer = new LocalToRemoteSyncer( |
330 context_.get(), local_metadata, local_change, local_path, url); | 281 context_.get(), local_metadata, local_change, local_path, url); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
444 MetadataDatabase* SyncWorker::GetMetadataDatabase() { | 395 MetadataDatabase* SyncWorker::GetMetadataDatabase() { |
445 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 396 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
446 return context_->GetMetadataDatabase(); | 397 return context_->GetMetadataDatabase(); |
447 } | 398 } |
448 | 399 |
449 SyncTaskManager* SyncWorker::GetSyncTaskManager() { | 400 SyncTaskManager* SyncWorker::GetSyncTaskManager() { |
450 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 401 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
451 return task_manager_.get(); | 402 return task_manager_.get(); |
452 } | 403 } |
453 | 404 |
454 void SyncWorker::AddObserver(Observer* observer) { | |
455 observers_.AddObserver(observer); | |
456 } | |
457 | |
458 void SyncWorker::DetachFromSequence() { | 405 void SyncWorker::DetachFromSequence() { |
459 context_->DetachFromSequence(); | 406 context_->DetachFromSequence(); |
460 sequence_checker_.DetachFromSequence(); | 407 sequence_checker_.DetachFromSequence(); |
461 } | 408 } |
462 | 409 |
| 410 void SyncWorker::AddObserver(Observer* observer) { |
| 411 observers_.AddObserver(observer); |
| 412 } |
| 413 |
| 414 void SyncWorker::SetHasRefreshToken(bool has_refresh_token) { |
| 415 has_refresh_token_ = has_refresh_token; |
| 416 } |
| 417 |
463 void SyncWorker::DoDisableApp(const std::string& app_id, | 418 void SyncWorker::DoDisableApp(const std::string& app_id, |
464 const SyncStatusCallback& callback) { | 419 const SyncStatusCallback& callback) { |
465 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 420 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
466 | 421 |
467 if (GetMetadataDatabase()) { | 422 if (GetMetadataDatabase()) { |
468 GetMetadataDatabase()->DisableApp(app_id, callback); | 423 GetMetadataDatabase()->DisableApp(app_id, callback); |
469 } else { | 424 } else { |
470 context_->GetUITaskRunner()->PostTask( | 425 context_->GetUITaskRunner()->PostTask( |
471 FROM_HERE, base::Bind(callback, SYNC_STATUS_OK)); | 426 FROM_HERE, base::Bind(callback, SYNC_STATUS_OK)); |
472 } | 427 } |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
787 "Service state changed: %d->%d: %s", | 742 "Service state changed: %d->%d: %s", |
788 old_state, GetCurrentState(), description.c_str()); | 743 old_state, GetCurrentState(), description.c_str()); |
789 | 744 |
790 FOR_EACH_OBSERVER( | 745 FOR_EACH_OBSERVER( |
791 Observer, observers_, | 746 Observer, observers_, |
792 UpdateServiceState(GetCurrentState(), description)); | 747 UpdateServiceState(GetCurrentState(), description)); |
793 } | 748 } |
794 | 749 |
795 } // namespace drive_backend | 750 } // namespace drive_backend |
796 } // namespace sync_file_system | 751 } // namespace sync_file_system |
OLD | NEW |