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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 #include "components/signin/core/browser/profile_oauth2_token_service.h" | 47 #include "components/signin/core/browser/profile_oauth2_token_service.h" |
48 #include "components/signin/core/browser/signin_manager.h" | 48 #include "components/signin/core/browser/signin_manager.h" |
49 #include "content/public/browser/browser_thread.h" | 49 #include "content/public/browser/browser_thread.h" |
50 #include "extensions/browser/extension_system.h" | 50 #include "extensions/browser/extension_system.h" |
51 #include "extensions/browser/extension_system_provider.h" | 51 #include "extensions/browser/extension_system_provider.h" |
52 #include "extensions/browser/extensions_browser_client.h" | 52 #include "extensions/browser/extensions_browser_client.h" |
53 #include "extensions/common/extension.h" | 53 #include "extensions/common/extension.h" |
54 #include "google_apis/drive/drive_api_url_generator.h" | 54 #include "google_apis/drive/drive_api_url_generator.h" |
55 #include "google_apis/drive/gdata_wapi_url_generator.h" | 55 #include "google_apis/drive/gdata_wapi_url_generator.h" |
56 #include "net/url_request/url_request_context_getter.h" | 56 #include "net/url_request/url_request_context_getter.h" |
57 #include "webkit/common/blob/scoped_file.h" | 57 #include "storage/common/blob/scoped_file.h" |
58 #include "webkit/common/fileapi/file_system_util.h" | 58 #include "storage/common/fileapi/file_system_util.h" |
59 | 59 |
60 namespace sync_file_system { | 60 namespace sync_file_system { |
61 | 61 |
62 class RemoteChangeProcessor; | 62 class RemoteChangeProcessor; |
63 | 63 |
64 namespace drive_backend { | 64 namespace drive_backend { |
65 | 65 |
66 scoped_ptr<drive::DriveServiceInterface> | 66 scoped_ptr<drive::DriveServiceInterface> |
67 SyncEngine::DriveServiceFactory::CreateDriveService( | 67 SyncEngine::DriveServiceFactory::CreateDriveService( |
68 OAuth2TokenService* oauth2_token_service, | 68 OAuth2TokenService* oauth2_token_service, |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 } | 101 } |
102 | 102 |
103 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 103 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
104 ui_task_runner_->PostTask( | 104 ui_task_runner_->PostTask( |
105 FROM_HERE, | 105 FROM_HERE, |
106 base::Bind(&SyncEngine::OnPendingFileListUpdated, | 106 base::Bind(&SyncEngine::OnPendingFileListUpdated, |
107 sync_engine_, | 107 sync_engine_, |
108 item_count)); | 108 item_count)); |
109 } | 109 } |
110 | 110 |
111 virtual void OnFileStatusChanged(const fileapi::FileSystemURL& url, | 111 virtual void OnFileStatusChanged(const storage::FileSystemURL& url, |
112 SyncFileStatus file_status, | 112 SyncFileStatus file_status, |
113 SyncAction sync_action, | 113 SyncAction sync_action, |
114 SyncDirection direction) OVERRIDE { | 114 SyncDirection direction) OVERRIDE { |
115 if (ui_task_runner_->RunsTasksOnCurrentThread()) { | 115 if (ui_task_runner_->RunsTasksOnCurrentThread()) { |
116 if (sync_engine_) | 116 if (sync_engine_) |
117 sync_engine_->OnFileStatusChanged( | 117 sync_engine_->OnFileStatusChanged( |
118 url, file_status, sync_action, direction); | 118 url, file_status, sync_action, direction); |
119 return; | 119 return; |
120 } | 120 } |
121 | 121 |
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 FROM_HERE, TrackCallback(callback)); | 452 FROM_HERE, TrackCallback(callback)); |
453 worker_task_runner_->PostTask( | 453 worker_task_runner_->PostTask( |
454 FROM_HERE, | 454 FROM_HERE, |
455 base::Bind(&SyncWorkerInterface::UninstallOrigin, | 455 base::Bind(&SyncWorkerInterface::UninstallOrigin, |
456 base::Unretained(sync_worker_.get()), | 456 base::Unretained(sync_worker_.get()), |
457 origin, flag, relayed_callback)); | 457 origin, flag, relayed_callback)); |
458 } | 458 } |
459 | 459 |
460 void SyncEngine::ProcessRemoteChange(const SyncFileCallback& callback) { | 460 void SyncEngine::ProcessRemoteChange(const SyncFileCallback& callback) { |
461 if (GetCurrentState() == REMOTE_SERVICE_DISABLED) { | 461 if (GetCurrentState() == REMOTE_SERVICE_DISABLED) { |
462 callback.Run(SYNC_STATUS_SYNC_DISABLED, fileapi::FileSystemURL()); | 462 callback.Run(SYNC_STATUS_SYNC_DISABLED, storage::FileSystemURL()); |
463 return; | 463 return; |
464 } | 464 } |
465 | 465 |
466 base::Closure abort_closure = | 466 base::Closure abort_closure = |
467 base::Bind(callback, SYNC_STATUS_ABORT, fileapi::FileSystemURL()); | 467 base::Bind(callback, SYNC_STATUS_ABORT, storage::FileSystemURL()); |
468 | 468 |
469 if (!sync_worker_) { | 469 if (!sync_worker_) { |
470 abort_closure.Run(); | 470 abort_closure.Run(); |
471 return; | 471 return; |
472 } | 472 } |
473 | 473 |
474 SyncFileCallback tracked_callback = callback_tracker_.Register( | 474 SyncFileCallback tracked_callback = callback_tracker_.Register( |
475 abort_closure, callback); | 475 abort_closure, callback); |
476 SyncFileCallback relayed_callback = RelayCallbackToCurrentThread( | 476 SyncFileCallback relayed_callback = RelayCallbackToCurrentThread( |
477 FROM_HERE, tracked_callback); | 477 FROM_HERE, tracked_callback); |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
599 base::Closure relayed_callback = RelayCallbackToCurrentThread( | 599 base::Closure relayed_callback = RelayCallbackToCurrentThread( |
600 FROM_HERE, callback_tracker_.Register(callback, callback)); | 600 FROM_HERE, callback_tracker_.Register(callback, callback)); |
601 | 601 |
602 worker_task_runner_->PostTask( | 602 worker_task_runner_->PostTask( |
603 FROM_HERE, | 603 FROM_HERE, |
604 base::Bind(&SyncWorkerInterface::PromoteDemotedChanges, | 604 base::Bind(&SyncWorkerInterface::PromoteDemotedChanges, |
605 base::Unretained(sync_worker_.get()), | 605 base::Unretained(sync_worker_.get()), |
606 relayed_callback)); | 606 relayed_callback)); |
607 } | 607 } |
608 | 608 |
609 void SyncEngine::ApplyLocalChange( | 609 void SyncEngine::ApplyLocalChange(const FileChange& local_change, |
610 const FileChange& local_change, | 610 const base::FilePath& local_path, |
611 const base::FilePath& local_path, | 611 const SyncFileMetadata& local_metadata, |
612 const SyncFileMetadata& local_metadata, | 612 const storage::FileSystemURL& url, |
613 const fileapi::FileSystemURL& url, | 613 const SyncStatusCallback& callback) { |
614 const SyncStatusCallback& callback) { | |
615 if (GetCurrentState() == REMOTE_SERVICE_DISABLED) { | 614 if (GetCurrentState() == REMOTE_SERVICE_DISABLED) { |
616 callback.Run(SYNC_STATUS_SYNC_DISABLED); | 615 callback.Run(SYNC_STATUS_SYNC_DISABLED); |
617 return; | 616 return; |
618 } | 617 } |
619 | 618 |
620 if (!sync_worker_) { | 619 if (!sync_worker_) { |
621 callback.Run(SYNC_STATUS_ABORT); | 620 callback.Run(SYNC_STATUS_ABORT); |
622 return; | 621 return; |
623 } | 622 } |
624 | 623 |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
755 net::NetworkChangeNotifier::AddNetworkChangeObserver(this); | 754 net::NetworkChangeNotifier::AddNetworkChangeObserver(this); |
756 } | 755 } |
757 | 756 |
758 void SyncEngine::OnPendingFileListUpdated(int item_count) { | 757 void SyncEngine::OnPendingFileListUpdated(int item_count) { |
759 FOR_EACH_OBSERVER( | 758 FOR_EACH_OBSERVER( |
760 SyncServiceObserver, | 759 SyncServiceObserver, |
761 service_observers_, | 760 service_observers_, |
762 OnRemoteChangeQueueUpdated(item_count)); | 761 OnRemoteChangeQueueUpdated(item_count)); |
763 } | 762 } |
764 | 763 |
765 void SyncEngine::OnFileStatusChanged(const fileapi::FileSystemURL& url, | 764 void SyncEngine::OnFileStatusChanged(const storage::FileSystemURL& url, |
766 SyncFileStatus file_status, | 765 SyncFileStatus file_status, |
767 SyncAction sync_action, | 766 SyncAction sync_action, |
768 SyncDirection direction) { | 767 SyncDirection direction) { |
769 FOR_EACH_OBSERVER(FileStatusObserver, | 768 FOR_EACH_OBSERVER(FileStatusObserver, |
770 file_status_observers_, | 769 file_status_observers_, |
771 OnFileStatusChanged( | 770 OnFileStatusChanged( |
772 url, file_status, sync_action, direction)); | 771 url, file_status, sync_action, direction)); |
773 } | 772 } |
774 | 773 |
775 void SyncEngine::UpdateServiceState(RemoteServiceState state, | 774 void SyncEngine::UpdateServiceState(RemoteServiceState state, |
776 const std::string& description) { | 775 const std::string& description) { |
777 service_state_ = state; | 776 service_state_ = state; |
778 | 777 |
779 FOR_EACH_OBSERVER( | 778 FOR_EACH_OBSERVER( |
780 SyncServiceObserver, service_observers_, | 779 SyncServiceObserver, service_observers_, |
781 OnRemoteServiceStateUpdated(GetCurrentState(), description)); | 780 OnRemoteServiceStateUpdated(GetCurrentState(), description)); |
782 } | 781 } |
783 | 782 |
784 SyncStatusCallback SyncEngine::TrackCallback( | 783 SyncStatusCallback SyncEngine::TrackCallback( |
785 const SyncStatusCallback& callback) { | 784 const SyncStatusCallback& callback) { |
786 return callback_tracker_.Register( | 785 return callback_tracker_.Register( |
787 base::Bind(callback, SYNC_STATUS_ABORT), | 786 base::Bind(callback, SYNC_STATUS_ABORT), |
788 callback); | 787 callback); |
789 } | 788 } |
790 | 789 |
791 } // namespace drive_backend | 790 } // namespace drive_backend |
792 } // namespace sync_file_system | 791 } // namespace sync_file_system |
OLD | NEW |