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 |