| 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 |