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

Side by Side Diff: components/proximity_auth/cryptauth/cryptauth_device_manager.cc

Issue 1912433002: Convert //components/proximity_auth from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits Created 4 years, 8 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/proximity_auth/cryptauth/cryptauth_device_manager.h" 5 #include "components/proximity_auth/cryptauth/cryptauth_device_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8
8 #include <utility> 9 #include <utility>
9 10
10 #include "base/base64url.h" 11 #include "base/base64url.h"
12 #include "base/memory/ptr_util.h"
11 #include "components/prefs/pref_registry_simple.h" 13 #include "components/prefs/pref_registry_simple.h"
12 #include "components/prefs/pref_service.h" 14 #include "components/prefs/pref_service.h"
13 #include "components/prefs/scoped_user_pref_update.h" 15 #include "components/prefs/scoped_user_pref_update.h"
14 #include "components/proximity_auth/cryptauth/cryptauth_client.h" 16 #include "components/proximity_auth/cryptauth/cryptauth_client.h"
15 #include "components/proximity_auth/cryptauth/pref_names.h" 17 #include "components/proximity_auth/cryptauth/pref_names.h"
16 #include "components/proximity_auth/cryptauth/sync_scheduler_impl.h" 18 #include "components/proximity_auth/cryptauth/sync_scheduler_impl.h"
17 #include "components/proximity_auth/logging/logging.h" 19 #include "components/proximity_auth/logging/logging.h"
18 20
19 namespace proximity_auth { 21 namespace proximity_auth {
20 22
(...skipping 10 matching lines...) Expand all
31 // The bound on the amount to jitter the period between syncs. 33 // The bound on the amount to jitter the period between syncs.
32 const double kDeviceSyncMaxJitterRatio = 0.2; 34 const double kDeviceSyncMaxJitterRatio = 0.2;
33 35
34 // Keys for ExternalDeviceInfo dictionaries that are stored in the user's prefs. 36 // Keys for ExternalDeviceInfo dictionaries that are stored in the user's prefs.
35 const char kExternalDeviceKeyPublicKey[] = "public_key"; 37 const char kExternalDeviceKeyPublicKey[] = "public_key";
36 const char kExternalDeviceKeyDeviceName[] = "device_name"; 38 const char kExternalDeviceKeyDeviceName[] = "device_name";
37 const char kExternalDeviceKeyBluetoothAddress[] = "bluetooth_address"; 39 const char kExternalDeviceKeyBluetoothAddress[] = "bluetooth_address";
38 40
39 // Converts an unlock key proto to a dictionary that can be stored in user 41 // Converts an unlock key proto to a dictionary that can be stored in user
40 // prefs. 42 // prefs.
41 scoped_ptr<base::DictionaryValue> UnlockKeyToDictionary( 43 std::unique_ptr<base::DictionaryValue> UnlockKeyToDictionary(
42 const cryptauth::ExternalDeviceInfo& device) { 44 const cryptauth::ExternalDeviceInfo& device) {
43 scoped_ptr<base::DictionaryValue> dictionary(new base::DictionaryValue()); 45 std::unique_ptr<base::DictionaryValue> dictionary(
46 new base::DictionaryValue());
44 47
45 // We store the device information in Base64Url form because dictionary values 48 // We store the device information in Base64Url form because dictionary values
46 // must be valid UTF8 strings. 49 // must be valid UTF8 strings.
47 std::string public_key_b64, device_name_b64, bluetooth_address_b64; 50 std::string public_key_b64, device_name_b64, bluetooth_address_b64;
48 base::Base64UrlEncode(device.public_key(), 51 base::Base64UrlEncode(device.public_key(),
49 base::Base64UrlEncodePolicy::INCLUDE_PADDING, 52 base::Base64UrlEncodePolicy::INCLUDE_PADDING,
50 &public_key_b64); 53 &public_key_b64);
51 base::Base64UrlEncode(device.friendly_device_name(), 54 base::Base64UrlEncode(device.friendly_device_name(),
52 base::Base64UrlEncodePolicy::INCLUDE_PADDING, 55 base::Base64UrlEncodePolicy::INCLUDE_PADDING,
53 &device_name_b64); 56 &device_name_b64);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 external_device->set_friendly_device_name(device_name); 97 external_device->set_friendly_device_name(device_name);
95 external_device->set_bluetooth_address(bluetooth_address); 98 external_device->set_bluetooth_address(bluetooth_address);
96 external_device->set_unlock_key(true); 99 external_device->set_unlock_key(true);
97 external_device->set_unlockable(false); 100 external_device->set_unlockable(false);
98 return true; 101 return true;
99 } 102 }
100 103
101 } // namespace 104 } // namespace
102 105
103 CryptAuthDeviceManager::CryptAuthDeviceManager( 106 CryptAuthDeviceManager::CryptAuthDeviceManager(
104 scoped_ptr<base::Clock> clock, 107 std::unique_ptr<base::Clock> clock,
105 scoped_ptr<CryptAuthClientFactory> client_factory, 108 std::unique_ptr<CryptAuthClientFactory> client_factory,
106 CryptAuthGCMManager* gcm_manager, 109 CryptAuthGCMManager* gcm_manager,
107 PrefService* pref_service) 110 PrefService* pref_service)
108 : clock_(std::move(clock)), 111 : clock_(std::move(clock)),
109 client_factory_(std::move(client_factory)), 112 client_factory_(std::move(client_factory)),
110 gcm_manager_(gcm_manager), 113 gcm_manager_(gcm_manager),
111 pref_service_(pref_service), 114 pref_service_(pref_service),
112 weak_ptr_factory_(this) { 115 weak_ptr_factory_(this) {
113 UpdateUnlockKeysFromPrefs(); 116 UpdateUnlockKeysFromPrefs();
114 } 117 }
115 118
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 } 180 }
178 181
179 bool CryptAuthDeviceManager::IsRecoveringFromFailure() const { 182 bool CryptAuthDeviceManager::IsRecoveringFromFailure() const {
180 return scheduler_->GetStrategy() == 183 return scheduler_->GetStrategy() ==
181 SyncScheduler::Strategy::AGGRESSIVE_RECOVERY; 184 SyncScheduler::Strategy::AGGRESSIVE_RECOVERY;
182 } 185 }
183 186
184 void CryptAuthDeviceManager::OnGetMyDevicesSuccess( 187 void CryptAuthDeviceManager::OnGetMyDevicesSuccess(
185 const cryptauth::GetMyDevicesResponse& response) { 188 const cryptauth::GetMyDevicesResponse& response) {
186 // Update the unlock keys stored in the user's prefs. 189 // Update the unlock keys stored in the user's prefs.
187 scoped_ptr<base::ListValue> unlock_keys_pref(new base::ListValue()); 190 std::unique_ptr<base::ListValue> unlock_keys_pref(new base::ListValue());
188 scoped_ptr<base::ListValue> devices_as_list(new base::ListValue()); 191 std::unique_ptr<base::ListValue> devices_as_list(new base::ListValue());
189 for (const auto& device : response.devices()) { 192 for (const auto& device : response.devices()) {
190 devices_as_list->Append(UnlockKeyToDictionary(device)); 193 devices_as_list->Append(UnlockKeyToDictionary(device));
191 if (device.unlock_key()) 194 if (device.unlock_key())
192 unlock_keys_pref->Append(UnlockKeyToDictionary(device)); 195 unlock_keys_pref->Append(UnlockKeyToDictionary(device));
193 } 196 }
194 PA_LOG(INFO) << "Devices Synced:\n" << *devices_as_list; 197 PA_LOG(INFO) << "Devices Synced:\n" << *devices_as_list;
195 198
196 bool unlock_keys_changed = !unlock_keys_pref->Equals( 199 bool unlock_keys_changed = !unlock_keys_pref->Equals(
197 pref_service_->GetList(prefs::kCryptAuthDeviceSyncUnlockKeys)); 200 pref_service_->GetList(prefs::kCryptAuthDeviceSyncUnlockKeys));
198 { 201 {
(...skipping 25 matching lines...) Expand all
224 pref_service_->SetBoolean(prefs::kCryptAuthDeviceSyncIsRecoveringFromFailure, 227 pref_service_->SetBoolean(prefs::kCryptAuthDeviceSyncIsRecoveringFromFailure,
225 true); 228 true);
226 sync_request_->OnDidComplete(false); 229 sync_request_->OnDidComplete(false);
227 cryptauth_client_.reset(); 230 cryptauth_client_.reset();
228 sync_request_.reset(); 231 sync_request_.reset();
229 FOR_EACH_OBSERVER( 232 FOR_EACH_OBSERVER(
230 Observer, observers_, 233 Observer, observers_,
231 OnSyncFinished(SyncResult::FAILURE, DeviceChangeResult::UNCHANGED)); 234 OnSyncFinished(SyncResult::FAILURE, DeviceChangeResult::UNCHANGED));
232 } 235 }
233 236
234 scoped_ptr<SyncScheduler> CryptAuthDeviceManager::CreateSyncScheduler() { 237 std::unique_ptr<SyncScheduler> CryptAuthDeviceManager::CreateSyncScheduler() {
235 return make_scoped_ptr(new SyncSchedulerImpl( 238 return base::WrapUnique(new SyncSchedulerImpl(
236 this, base::TimeDelta::FromHours(kRefreshPeriodHours), 239 this, base::TimeDelta::FromHours(kRefreshPeriodHours),
237 base::TimeDelta::FromMinutes(kDeviceSyncBaseRecoveryPeriodMinutes), 240 base::TimeDelta::FromMinutes(kDeviceSyncBaseRecoveryPeriodMinutes),
238 kDeviceSyncMaxJitterRatio, "CryptAuth DeviceSync")); 241 kDeviceSyncMaxJitterRatio, "CryptAuth DeviceSync"));
239 } 242 }
240 243
241 void CryptAuthDeviceManager::OnResyncMessage() { 244 void CryptAuthDeviceManager::OnResyncMessage() {
242 ForceSyncNow(cryptauth::INVOCATION_REASON_SERVER_INITIATED); 245 ForceSyncNow(cryptauth::INVOCATION_REASON_SERVER_INITIATED);
243 } 246 }
244 247
245 void CryptAuthDeviceManager::UpdateUnlockKeysFromPrefs() { 248 void CryptAuthDeviceManager::UpdateUnlockKeysFromPrefs() {
(...skipping 11 matching lines...) Expand all
257 << "(index=" << i << "):\n" << *unlock_key_dictionary; 260 << "(index=" << i << "):\n" << *unlock_key_dictionary;
258 } 261 }
259 } else { 262 } else {
260 PA_LOG(ERROR) << "Can not get dictionary in list of unlock keys " 263 PA_LOG(ERROR) << "Can not get dictionary in list of unlock keys "
261 << "(index=" << i << "):\n" << *unlock_key_list; 264 << "(index=" << i << "):\n" << *unlock_key_list;
262 } 265 }
263 } 266 }
264 } 267 }
265 268
266 void CryptAuthDeviceManager::OnSyncRequested( 269 void CryptAuthDeviceManager::OnSyncRequested(
267 scoped_ptr<SyncScheduler::SyncRequest> sync_request) { 270 std::unique_ptr<SyncScheduler::SyncRequest> sync_request) {
268 FOR_EACH_OBSERVER(Observer, observers_, OnSyncStarted()); 271 FOR_EACH_OBSERVER(Observer, observers_, OnSyncStarted());
269 272
270 sync_request_ = std::move(sync_request); 273 sync_request_ = std::move(sync_request);
271 cryptauth_client_ = client_factory_->CreateInstance(); 274 cryptauth_client_ = client_factory_->CreateInstance();
272 275
273 cryptauth::InvocationReason invocation_reason = 276 cryptauth::InvocationReason invocation_reason =
274 cryptauth::INVOCATION_REASON_UNKNOWN; 277 cryptauth::INVOCATION_REASON_UNKNOWN;
275 278
276 int reason_stored_in_prefs = 279 int reason_stored_in_prefs =
277 pref_service_->GetInteger(prefs::kCryptAuthDeviceSyncReason); 280 pref_service_->GetInteger(prefs::kCryptAuthDeviceSyncReason);
(...skipping 20 matching lines...) Expand all
298 request.set_invocation_reason(invocation_reason); 301 request.set_invocation_reason(invocation_reason);
299 request.set_allow_stale_read(is_sync_speculative); 302 request.set_allow_stale_read(is_sync_speculative);
300 cryptauth_client_->GetMyDevices( 303 cryptauth_client_->GetMyDevices(
301 request, base::Bind(&CryptAuthDeviceManager::OnGetMyDevicesSuccess, 304 request, base::Bind(&CryptAuthDeviceManager::OnGetMyDevicesSuccess,
302 weak_ptr_factory_.GetWeakPtr()), 305 weak_ptr_factory_.GetWeakPtr()),
303 base::Bind(&CryptAuthDeviceManager::OnGetMyDevicesFailure, 306 base::Bind(&CryptAuthDeviceManager::OnGetMyDevicesFailure,
304 weak_ptr_factory_.GetWeakPtr())); 307 weak_ptr_factory_.GetWeakPtr()));
305 } 308 }
306 309
307 } // namespace proximity_auth 310 } // namespace proximity_auth
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698