Chromium Code Reviews| Index: chrome/browser/chromeos/settings/device_settings_service.cc |
| diff --git a/chrome/browser/chromeos/settings/device_settings_service.cc b/chrome/browser/chromeos/settings/device_settings_service.cc |
| index 0895080c4f5b53dc585217054962ec7d632475bd..abbc8889c4a443c0c6f2dc0987a2d93e56791be9 100644 |
| --- a/chrome/browser/chromeos/settings/device_settings_service.cc |
| +++ b/chrome/browser/chromeos/settings/device_settings_service.cc |
| @@ -232,8 +232,16 @@ void DeviceSettingsService::IsCurrentUserOwnerAsync( |
| } |
| } |
| -void DeviceSettingsService::SetUsername(const std::string& username) { |
| +void DeviceSettingsService::InitOwner(const std::string& username, |
| + crypto::ScopedPK11Slot slot) { |
| + if (username_ == username) |
| + return; |
| + |
| + if (owner_key_.get() && owner_key_->public_key() && owner_key_->private_key()) |
| + return; |
|
Mattias Nissler (ping if slow)
2014/05/15 11:21:29
I think we should replaces these two checks with t
ygorshenin1
2014/05/15 11:58:37
Done.
|
| + |
| username_ = username; |
| + slot_ = slot.Pass(); |
| // The private key may have become available, so force a key reload. |
| owner_key_ = NULL; |
| @@ -292,14 +300,19 @@ void DeviceSettingsService::EnqueueLoad(bool force_key_load) { |
| weak_factory_.GetWeakPtr(), |
| base::Closure())); |
| operation->set_force_key_load(force_key_load); |
| + operation->set_username(username_); |
| + operation->set_slot(slot_.get()); |
| Enqueue(operation); |
| } |
| void DeviceSettingsService::EnsureReload(bool force_key_load) { |
| - if (!pending_operations_.empty()) |
| + if (!pending_operations_.empty()) { |
| + pending_operations_.front()->set_username(username_); |
| + pending_operations_.front()->set_slot(slot_.get()); |
| pending_operations_.front()->RestartLoad(force_key_load); |
| - else |
| + } else { |
| EnqueueLoad(force_key_load); |
| + } |
| } |
| void DeviceSettingsService::StartNextOperation() { |