Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/sync_engine.cc

Issue 87463002: Only re-enable remote service if the task used the network. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/values.h" 8 #include "base/values.h"
9 #include "chrome/browser/drive/drive_notification_manager.h" 9 #include "chrome/browser/drive/drive_notification_manager.h"
10 #include "chrome/browser/drive/drive_service_interface.h" 10 #include "chrome/browser/drive/drive_service_interface.h"
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 if (GetCurrentState() == REMOTE_SERVICE_DISABLED) 243 if (GetCurrentState() == REMOTE_SERVICE_DISABLED)
244 return; 244 return;
245 245
246 // TODO(tzik): Notify observer of OnRemoteChangeQueueUpdated. 246 // TODO(tzik): Notify observer of OnRemoteChangeQueueUpdated.
247 // TODO(tzik): Add an interface to get the number of dirty trackers to 247 // TODO(tzik): Add an interface to get the number of dirty trackers to
248 // MetadataDatabase. 248 // MetadataDatabase.
249 249
250 MaybeStartFetchChanges(); 250 MaybeStartFetchChanges();
251 } 251 }
252 252
253 void SyncEngine::NotifyLastOperationStatus(SyncStatusCode sync_status) { 253 void SyncEngine::NotifyLastOperationStatus(
254 UpdateServiceStateFromSyncStatusCode(sync_status); 254 SyncStatusCode sync_status,
255 bool used_network) {
256 UpdateServiceStateFromSyncStatusCode(sync_status, used_network);
255 } 257 }
256 258
257 void SyncEngine::OnNotificationReceived() { 259 void SyncEngine::OnNotificationReceived() {
258 should_check_remote_change_ = true; 260 should_check_remote_change_ = true;
259 MaybeScheduleNextTask(); 261 MaybeScheduleNextTask();
260 } 262 }
261 263
262 void SyncEngine::OnPushNotificationEnabled(bool enabled) {} 264 void SyncEngine::OnPushNotificationEnabled(bool enabled) {}
263 265
264 void SyncEngine::OnReadyToSendRequests() { 266 void SyncEngine::OnReadyToSendRequests() {
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 return; 360 return;
359 361
360 if (task_manager_->ScheduleSyncTaskIfIdle( 362 if (task_manager_->ScheduleSyncTaskIfIdle(
361 scoped_ptr<SyncTask>(new ListChangesTask(this)))) { 363 scoped_ptr<SyncTask>(new ListChangesTask(this)))) {
362 should_check_remote_change_ = false; 364 should_check_remote_change_ = false;
363 time_to_check_changes_ = 365 time_to_check_changes_ =
364 now + base::TimeDelta::FromSeconds(kListChangesRetryDelaySeconds); 366 now + base::TimeDelta::FromSeconds(kListChangesRetryDelaySeconds);
365 } 367 }
366 } 368 }
367 369
368 void SyncEngine::UpdateServiceStateFromSyncStatusCode(SyncStatusCode status) { 370 void SyncEngine::UpdateServiceStateFromSyncStatusCode(
371 SyncStatusCode status,
372 bool used_network) {
369 switch (status) { 373 switch (status) {
370 case SYNC_STATUS_OK: 374 case SYNC_STATUS_OK:
371 // FIXME(keishi) Do not turn remote service back on if the task did not 375 if (used_network)
372 // involve network access. 376 UpdateServiceState(REMOTE_SERVICE_OK, std::string());
373 UpdateServiceState(REMOTE_SERVICE_OK, std::string());
374 break; 377 break;
375 378
376 // Authentication error. 379 // Authentication error.
377 case SYNC_STATUS_AUTHENTICATION_FAILED: 380 case SYNC_STATUS_AUTHENTICATION_FAILED:
378 UpdateServiceState(REMOTE_SERVICE_AUTHENTICATION_REQUIRED, 381 UpdateServiceState(REMOTE_SERVICE_AUTHENTICATION_REQUIRED,
379 "Authentication required"); 382 "Authentication required");
380 break; 383 break;
381 384
382 // OAuth token error. 385 // OAuth token error.
383 case SYNC_STATUS_ACCESS_FORBIDDEN: 386 case SYNC_STATUS_ACCESS_FORBIDDEN:
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 tracker.tracker_kind() == TRACKER_KIND_APP_ROOT; 459 tracker.tracker_kind() == TRACKER_KIND_APP_ROOT;
457 if (is_app_enabled && !is_app_root_tracker_enabled) 460 if (is_app_enabled && !is_app_root_tracker_enabled)
458 EnableOrigin(origin, base::Bind(&EmptyStatusCallback)); 461 EnableOrigin(origin, base::Bind(&EmptyStatusCallback));
459 else if (!is_app_enabled && is_app_root_tracker_enabled) 462 else if (!is_app_enabled && is_app_root_tracker_enabled)
460 DisableOrigin(origin, base::Bind(&EmptyStatusCallback)); 463 DisableOrigin(origin, base::Bind(&EmptyStatusCallback));
461 } 464 }
462 } 465 }
463 466
464 } // namespace drive_backend 467 } // namespace drive_backend
465 } // namespace sync_file_system 468 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698