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

Side by Side Diff: chrome/browser/sync/backup_rollback_controller.cc

Issue 347653006: Define a single macro for enabling backup function. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/backup_rollback_controller.h" 5 #include "chrome/browser/sync/backup_rollback_controller.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "chrome/browser/sync/managed_user_signin_manager_wrapper.h" 9 #include "chrome/browser/sync/managed_user_signin_manager_wrapper.h"
10 #include "chrome/common/chrome_switches.h" 10 #include "chrome/common/chrome_switches.h"
11 #include "components/sync_driver/sync_prefs.h" 11 #include "components/sync_driver/sync_prefs.h"
12 12
13 namespace browser_sync { 13 namespace browser_sync {
14 14
15 #if defined(OS_WIN) || defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(OS_C HROMEOS)) 15 #if defined(ENABLE_PRE_SYNC_BACKUP)
16 // Number of rollback attempts to try before giving up. 16 // Number of rollback attempts to try before giving up.
17 static const int kRollbackLimits = 3; 17 static const int kRollbackLimits = 3;
18 #endif 18 #endif
19 19
20 BackupRollbackController::BackupRollbackController( 20 BackupRollbackController::BackupRollbackController(
21 sync_driver::SyncPrefs* sync_prefs, 21 sync_driver::SyncPrefs* sync_prefs,
22 const ManagedUserSigninManagerWrapper* signin, 22 const ManagedUserSigninManagerWrapper* signin,
23 base::Closure start_backup, 23 base::Closure start_backup,
24 base::Closure start_rollback) 24 base::Closure start_rollback)
25 : sync_prefs_(sync_prefs), 25 : sync_prefs_(sync_prefs),
26 signin_(signin), 26 signin_(signin),
27 start_backup_(start_backup), 27 start_backup_(start_backup),
28 start_rollback_(start_rollback), 28 start_rollback_(start_rollback),
29 weak_ptr_factory_(this) { 29 weak_ptr_factory_(this) {
30 } 30 }
31 31
32 BackupRollbackController::~BackupRollbackController() { 32 BackupRollbackController::~BackupRollbackController() {
33 } 33 }
34 34
35 void BackupRollbackController::Start(base::TimeDelta delay) { 35 void BackupRollbackController::Start(base::TimeDelta delay) {
36 #if defined(OS_WIN) || defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(OS_C HROMEOS)) 36 #if defined(ENABLE_PRE_SYNC_BACKUP)
37 if (CommandLine::ForCurrentProcess()->HasSwitch( 37 if (CommandLine::ForCurrentProcess()->HasSwitch(
38 switches::kSyncDisableBackup)) { 38 switches::kSyncDisableBackup)) {
39 return; 39 return;
40 } 40 }
41 41
42 if (!CommandLine::ForCurrentProcess()->HasSwitch( 42 if (!CommandLine::ForCurrentProcess()->HasSwitch(
43 switches::kSyncEnableRollback)) { 43 switches::kSyncEnableRollback)) {
44 sync_prefs_->SetRemainingRollbackTries(0); 44 sync_prefs_->SetRemainingRollbackTries(0);
45 } 45 }
46 46
47 if (delay == base::TimeDelta()) { 47 if (delay == base::TimeDelta()) {
48 TryStart(); 48 TryStart();
49 } else { 49 } else {
50 base::MessageLoop::current()->PostDelayedTask( 50 base::MessageLoop::current()->PostDelayedTask(
51 FROM_HERE, 51 FROM_HERE,
52 base::Bind(&BackupRollbackController::TryStart, 52 base::Bind(&BackupRollbackController::TryStart,
53 weak_ptr_factory_.GetWeakPtr()), 53 weak_ptr_factory_.GetWeakPtr()),
54 delay); 54 delay);
55 } 55 }
56 #endif 56 #endif
57 } 57 }
58 58
59 void BackupRollbackController::OnRollbackReceived() { 59 void BackupRollbackController::OnRollbackReceived() {
60 #if defined(OS_WIN) || defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(OS_C HROMEOS)) 60 #if defined(ENABLE_PRE_SYNC_BACKUP)
61 sync_prefs_->SetRemainingRollbackTries(kRollbackLimits); 61 sync_prefs_->SetRemainingRollbackTries(kRollbackLimits);
62 #endif 62 #endif
63 } 63 }
64 64
65 void BackupRollbackController::OnRollbackDone() { 65 void BackupRollbackController::OnRollbackDone() {
66 #if defined(OS_WIN) || defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(OS_C HROMEOS)) 66 #if defined(ENABLE_PRE_SYNC_BACKUP)
67 sync_prefs_->SetRemainingRollbackTries(0); 67 sync_prefs_->SetRemainingRollbackTries(0);
68 #endif 68 #endif
69 } 69 }
70 70
71 void BackupRollbackController::TryStart() { 71 void BackupRollbackController::TryStart() {
72 if (!signin_->GetEffectiveUsername().empty()) { 72 if (!signin_->GetEffectiveUsername().empty()) {
73 DVLOG(1) << "Don't start backup/rollback when user is signed in."; 73 DVLOG(1) << "Don't start backup/rollback when user is signed in.";
74 return; 74 return;
75 } 75 }
76 76
77 int rollback_tries = sync_prefs_->GetRemainingRollbackTries(); 77 int rollback_tries = sync_prefs_->GetRemainingRollbackTries();
78 if (rollback_tries > 0) { 78 if (rollback_tries > 0) {
79 DVLOG(1) << "Start rollback."; 79 DVLOG(1) << "Start rollback.";
80 sync_prefs_->SetRemainingRollbackTries(rollback_tries - 1); 80 sync_prefs_->SetRemainingRollbackTries(rollback_tries - 1);
81 start_rollback_.Run(); 81 start_rollback_.Run();
82 } else { 82 } else {
83 DVLOG(1) << "Start backup."; 83 DVLOG(1) << "Start backup.";
84 start_backup_.Run(); 84 start_backup_.Run();
85 } 85 }
86 } 86 }
87 87
88 } // namespace browser_sync 88 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698