| 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 "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/threading/sequenced_worker_pool.h" | 8 #include "base/threading/sequenced_worker_pool.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "chrome/browser/drive/drive_api_service.h" | 10 #include "chrome/browser/drive/drive_api_service.h" |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 service_observers_.AddObserver(observer); | 141 service_observers_.AddObserver(observer); |
| 142 } | 142 } |
| 143 | 143 |
| 144 void SyncEngine::AddFileStatusObserver(FileStatusObserver* observer) { | 144 void SyncEngine::AddFileStatusObserver(FileStatusObserver* observer) { |
| 145 file_status_observers_.AddObserver(observer); | 145 file_status_observers_.AddObserver(observer); |
| 146 } | 146 } |
| 147 | 147 |
| 148 void SyncEngine::RegisterOrigin( | 148 void SyncEngine::RegisterOrigin( |
| 149 const GURL& origin, | 149 const GURL& origin, |
| 150 const SyncStatusCallback& callback) { | 150 const SyncStatusCallback& callback) { |
| 151 if (!metadata_database_ && drive_service_->HasRefreshToken()) | |
| 152 PostInitializeTask(); | |
| 153 | |
| 154 task_manager_->ScheduleSyncTaskAtPriority( | 151 task_manager_->ScheduleSyncTaskAtPriority( |
| 155 scoped_ptr<SyncTask>(new RegisterAppTask(this, origin.host())), | 152 scoped_ptr<SyncTask>(new RegisterAppTask(this, origin.host())), |
| 156 SyncTaskManager::PRIORITY_HIGH, | 153 SyncTaskManager::PRIORITY_HIGH, |
| 157 callback); | 154 callback); |
| 158 } | 155 } |
| 159 | 156 |
| 160 void SyncEngine::EnableOrigin( | 157 void SyncEngine::EnableOrigin( |
| 161 const GURL& origin, | 158 const GURL& origin, |
| 162 const SyncStatusCallback& callback) { | 159 const SyncStatusCallback& callback) { |
| 163 task_manager_->ScheduleTaskAtPriority( | 160 task_manager_->ScheduleTaskAtPriority( |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 326 if (metadata_database_) { | 323 if (metadata_database_) { |
| 327 FOR_EACH_OBSERVER( | 324 FOR_EACH_OBSERVER( |
| 328 Observer, | 325 Observer, |
| 329 service_observers_, | 326 service_observers_, |
| 330 OnRemoteChangeQueueUpdated( | 327 OnRemoteChangeQueueUpdated( |
| 331 metadata_database_->GetDirtyTrackerCount())); | 328 metadata_database_->GetDirtyTrackerCount())); |
| 332 } | 329 } |
| 333 } | 330 } |
| 334 | 331 |
| 335 void SyncEngine::OnNotificationReceived() { | 332 void SyncEngine::OnNotificationReceived() { |
| 336 if (service_state_ == REMOTE_SERVICE_TEMPORARY_UNAVAILABLE) | |
| 337 UpdateServiceState(REMOTE_SERVICE_OK, "Got push notification for Drive."); | |
| 338 | |
| 339 should_check_remote_change_ = true; | 333 should_check_remote_change_ = true; |
| 340 MaybeScheduleNextTask(); | 334 MaybeScheduleNextTask(); |
| 341 } | 335 } |
| 342 | 336 |
| 343 void SyncEngine::OnPushNotificationEnabled(bool enabled) {} | 337 void SyncEngine::OnPushNotificationEnabled(bool enabled) {} |
| 344 | 338 |
| 345 void SyncEngine::OnReadyToSendRequests() { | 339 void SyncEngine::OnReadyToSendRequests() { |
| 346 if (service_state_ == REMOTE_SERVICE_OK) | 340 if (service_state_ == REMOTE_SERVICE_OK) |
| 347 return; | 341 return; |
| 348 UpdateServiceState(REMOTE_SERVICE_OK, "Authenticated"); | 342 UpdateServiceState(REMOTE_SERVICE_OK, "Authenticated"); |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 void SyncEngine::PostInitializeTask() { | 430 void SyncEngine::PostInitializeTask() { |
| 437 DCHECK(!metadata_database_); | 431 DCHECK(!metadata_database_); |
| 438 | 432 |
| 439 // This initializer task may not run if metadata_database_ is already | 433 // This initializer task may not run if metadata_database_ is already |
| 440 // initialized when it runs. | 434 // initialized when it runs. |
| 441 SyncEngineInitializer* initializer = | 435 SyncEngineInitializer* initializer = |
| 442 new SyncEngineInitializer(this, | 436 new SyncEngineInitializer(this, |
| 443 task_runner_.get(), | 437 task_runner_.get(), |
| 444 drive_service_.get(), | 438 drive_service_.get(), |
| 445 base_dir_.Append(kDatabaseName)); | 439 base_dir_.Append(kDatabaseName)); |
| 446 task_manager_->ScheduleSyncTaskAtPriority( | 440 task_manager_->ScheduleSyncTask( |
| 447 scoped_ptr<SyncTask>(initializer), | 441 scoped_ptr<SyncTask>(initializer), |
| 448 SyncTaskManager::PRIORITY_HIGH, | |
| 449 base::Bind(&SyncEngine::DidInitialize, weak_ptr_factory_.GetWeakPtr(), | 442 base::Bind(&SyncEngine::DidInitialize, weak_ptr_factory_.GetWeakPtr(), |
| 450 initializer)); | 443 initializer)); |
| 451 } | 444 } |
| 452 | 445 |
| 453 void SyncEngine::DidInitialize(SyncEngineInitializer* initializer, | 446 void SyncEngine::DidInitialize(SyncEngineInitializer* initializer, |
| 454 SyncStatusCode status) { | 447 SyncStatusCode status) { |
| 455 if (status != SYNC_STATUS_OK) { | 448 if (status != SYNC_STATUS_OK) { |
| 456 if (drive_service_->HasRefreshToken()) { | 449 if (drive_service_->HasRefreshToken()) { |
| 457 UpdateServiceState(REMOTE_SERVICE_TEMPORARY_UNAVAILABLE, | 450 UpdateServiceState(REMOTE_SERVICE_TEMPORARY_UNAVAILABLE, |
| 458 "Could not initialize remote service"); | 451 "Could not initialize remote service"); |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 670 tracker.tracker_kind() == TRACKER_KIND_APP_ROOT; | 663 tracker.tracker_kind() == TRACKER_KIND_APP_ROOT; |
| 671 if (is_app_enabled && !is_app_root_tracker_enabled) | 664 if (is_app_enabled && !is_app_root_tracker_enabled) |
| 672 EnableOrigin(origin, base::Bind(&EmptyStatusCallback)); | 665 EnableOrigin(origin, base::Bind(&EmptyStatusCallback)); |
| 673 else if (!is_app_enabled && is_app_root_tracker_enabled) | 666 else if (!is_app_enabled && is_app_root_tracker_enabled) |
| 674 DisableOrigin(origin, base::Bind(&EmptyStatusCallback)); | 667 DisableOrigin(origin, base::Bind(&EmptyStatusCallback)); |
| 675 } | 668 } |
| 676 } | 669 } |
| 677 | 670 |
| 678 } // namespace drive_backend | 671 } // namespace drive_backend |
| 679 } // namespace sync_file_system | 672 } // namespace sync_file_system |
| OLD | NEW |