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

Side by Side Diff: components/sync/driver/sync_service_base.cc

Issue 2710623003: [sync] Clean up path generation for the local sync database. (Closed)
Patch Set: Created 3 years, 10 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "components/sync/driver/sync_service_base.h" 5 #include "components/sync/driver/sync_service_base.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 } 51 }
52 return factory_switches; 52 return factory_switches;
53 } 53 }
54 54
55 } // namespace 55 } // namespace
56 56
57 SyncServiceBase::SyncServiceBase(std::unique_ptr<SyncClient> sync_client, 57 SyncServiceBase::SyncServiceBase(std::unique_ptr<SyncClient> sync_client,
58 std::unique_ptr<SigninManagerWrapper> signin, 58 std::unique_ptr<SigninManagerWrapper> signin,
59 const version_info::Channel& channel, 59 const version_info::Channel& channel,
60 const base::FilePath& base_directory, 60 const base::FilePath& base_directory,
61 const base::FilePath& local_sync_directory,
61 const std::string& debug_identifier) 62 const std::string& debug_identifier)
62 : sync_client_(std::move(sync_client)), 63 : sync_client_(std::move(sync_client)),
63 signin_(std::move(signin)), 64 signin_(std::move(signin)),
64 channel_(channel), 65 channel_(channel),
65 base_directory_(base_directory), 66 base_directory_(base_directory),
66 sync_data_folder_( 67 sync_data_folder_(
67 base_directory_.Append(base::FilePath(kSyncDataFolderName))), 68 base_directory_.Append(base::FilePath(kSyncDataFolderName))),
69 local_sync_directory_(local_sync_directory),
68 debug_identifier_(debug_identifier), 70 debug_identifier_(debug_identifier),
69 sync_prefs_(sync_client_->GetPrefService()) { 71 sync_prefs_(sync_client_->GetPrefService()) {
70 ResetCryptoState(); 72 ResetCryptoState();
71 } 73 }
72 74
73 SyncServiceBase::~SyncServiceBase() = default; 75 SyncServiceBase::~SyncServiceBase() = default;
74 76
75 void SyncServiceBase::AddObserver(SyncServiceObserver* observer) { 77 void SyncServiceBase::AddObserver(SyncServiceObserver* observer) {
76 DCHECK(thread_checker_.CalledOnValidThread()); 78 DCHECK(thread_checker_.CalledOnValidThread());
77 observers_.AddObserver(observer); 79 observers_.AddObserver(observer);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 base::Bind(ReportUnrecoverableError, channel_); 140 base::Bind(ReportUnrecoverableError, channel_);
139 params.saved_nigori_state = crypto_->TakeSavedNigoriState(); 141 params.saved_nigori_state = crypto_->TakeSavedNigoriState();
140 sync_prefs_.GetInvalidationVersions(&params.invalidation_versions); 142 sync_prefs_.GetInvalidationVersions(&params.invalidation_versions);
141 143
142 engine_->Initialize(std::move(params)); 144 engine_->Initialize(std::move(params));
143 } 145 }
144 146
145 bool SyncServiceBase::GetLocalSyncConfig( 147 bool SyncServiceBase::GetLocalSyncConfig(
146 base::FilePath* local_sync_backend_folder) const { 148 base::FilePath* local_sync_backend_folder) const {
147 bool enable_local_sync_backend = false; 149 bool enable_local_sync_backend = false;
148 *local_sync_backend_folder = sync_prefs_.GetLocalSyncBackendDir();
149 #if defined(OS_WIN) 150 #if defined(OS_WIN)
150 enable_local_sync_backend = sync_prefs_.IsLocalSyncEnabled(); 151 enable_local_sync_backend = sync_prefs_.IsLocalSyncEnabled();
152 *local_sync_backend_folder = local_sync_directory_;
151 UMA_HISTOGRAM_BOOLEAN("Sync.Local.Enabled", enable_local_sync_backend); 153 UMA_HISTOGRAM_BOOLEAN("Sync.Local.Enabled", enable_local_sync_backend);
152 if (local_sync_backend_folder->empty()) {
153 // TODO(pastarmovj): Add DIR_ROAMING_USER_DATA to PathService to simplify
154 // this code and move the logic in its right place. See crbug/657810.
155 if (!base::PathService::Get(base::DIR_APP_DATA,
156 local_sync_backend_folder)) {
157 SYSLOG(WARNING) << "Local sync can not get the roaming profile folder.";
158 UMA_HISTOGRAM_BOOLEAN("Sync.Local.RoamingProfileUnavailable", false);
159 return false;
160 }
161 *local_sync_backend_folder = local_sync_backend_folder->Append(
162 FILE_PATH_LITERAL("Chrome/User Data"));
163 }
164 // This code as it is now will assume the same profile order is present on all
165 // machines, which is not a given. It is to be defined if only the Default
166 // profile should get this treatment or all profile as is the case now. The
167 // solution for now will be to assume profiles are created in the same order
168 // on all machines and in the future decide if only the Default one should be
169 // considered roamed.
170 // See http://crbug.com/674928.
171 *local_sync_backend_folder =
172 local_sync_backend_folder->Append(base_directory_.BaseName());
173 *local_sync_backend_folder =
174 local_sync_backend_folder->Append(kLoopbackServerBackendFilename);
175 #endif // defined(OS_WIN) 154 #endif // defined(OS_WIN)
176 return enable_local_sync_backend; 155 return enable_local_sync_backend;
177 } 156 }
178 157
179 void SyncServiceBase::ResetCryptoState() { 158 void SyncServiceBase::ResetCryptoState() {
180 crypto_ = base::MakeUnique<SyncServiceCrypto>( 159 crypto_ = base::MakeUnique<SyncServiceCrypto>(
181 base::BindRepeating(&SyncServiceBase::NotifyObservers, 160 base::BindRepeating(&SyncServiceBase::NotifyObservers,
182 base::Unretained(this)), 161 base::Unretained(this)),
183 base::BindRepeating(&SyncService::GetPreferredDataTypes, 162 base::BindRepeating(&SyncService::GetPreferredDataTypes,
184 base::Unretained(this)), 163 base::Unretained(this)),
185 &sync_prefs_); 164 &sync_prefs_);
186 } 165 }
187 166
188 } // namespace syncer 167 } // namespace syncer
OLDNEW
« components/sync/driver/sync_service_base.h ('K') | « components/sync/driver/sync_service_base.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698