summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/chromeos/settings/device_settings_provider.cc14
-rw-r--r--chrome/browser/chromeos/settings/device_settings_provider.h3
2 files changed, 9 insertions, 8 deletions
diff --git a/chrome/browser/chromeos/settings/device_settings_provider.cc b/chrome/browser/chromeos/settings/device_settings_provider.cc
index 47ab8fe..5fdfef7 100644
--- a/chrome/browser/chromeos/settings/device_settings_provider.cc
+++ b/chrome/browser/chromeos/settings/device_settings_provider.cc
@@ -168,7 +168,7 @@ void DeviceSettingsProvider::RetrieveCachedData() {
VLOG(1) << "Can't retrieve temp store, possibly not created yet.";
}
- UpdateValuesCache(policy_data, device_settings_);
+ UpdateValuesCache(policy_data, device_settings_, trusted_status_);
}
void DeviceSettingsProvider::SetInPolicy() {
@@ -311,7 +311,7 @@ void DeviceSettingsProvider::SetInPolicy() {
CHECK(device_settings_.SerializeToString(data.mutable_policy_value()));
// Set the cache to the updated value.
- UpdateValuesCache(data, device_settings_);
+ UpdateValuesCache(data, device_settings_, trusted_status_);
if (ownership_status_ == DeviceSettingsService::OWNERSHIP_TAKEN) {
StoreDeviceSettings();
@@ -533,7 +533,8 @@ void DeviceSettingsProvider::DecodeGenericPolicies(
void DeviceSettingsProvider::UpdateValuesCache(
const em::PolicyData& policy_data,
- const em::ChromeDeviceSettingsProto& settings) {
+ const em::ChromeDeviceSettingsProto& settings,
+ TrustedStatus trusted_status) {
PrefValueMap new_values_cache;
if (policy_data.has_username() && !policy_data.has_request_token())
@@ -565,6 +566,7 @@ void DeviceSettingsProvider::UpdateValuesCache(
}
// Swap and notify.
values_cache_.Swap(&new_values_cache);
+ trusted_status_ = trusted_status;
for (size_t i = 0; i < notifications.size(); ++i)
NotifyObservers(notifications[i]);
}
@@ -642,9 +644,8 @@ bool DeviceSettingsProvider::MitigateMissingPolicy() {
device_settings_.mutable_allow_new_users()->set_allow_new_users(true);
device_settings_.mutable_guest_mode_enabled()->set_guest_mode_enabled(true);
em::PolicyData empty_policy_data;
- UpdateValuesCache(empty_policy_data, device_settings_);
+ UpdateValuesCache(empty_policy_data, device_settings_, TRUSTED);
values_cache_.SetBoolean(kPolicyMissingMitigationMode, true);
- trusted_status_ = TRUSTED;
return true;
}
@@ -702,9 +703,8 @@ bool DeviceSettingsProvider::UpdateFromService() {
g_browser_process->local_state())) {
LOG(ERROR) << "Couldn't update the local state cache.";
}
- UpdateValuesCache(*policy_data, *device_settings);
+ UpdateValuesCache(*policy_data, *device_settings, TRUSTED);
device_settings_ = *device_settings;
- trusted_status_ = TRUSTED;
// TODO(pastarmovj): Make those side effects responsibility of the
// respective subsystems.
diff --git a/chrome/browser/chromeos/settings/device_settings_provider.h b/chrome/browser/chromeos/settings/device_settings_provider.h
index f834d4e..6ebf200 100644
--- a/chrome/browser/chromeos/settings/device_settings_provider.h
+++ b/chrome/browser/chromeos/settings/device_settings_provider.h
@@ -82,7 +82,8 @@ class DeviceSettingsProvider : public CrosSettingsProvider,
// Parses the policy data and fills in |values_cache_|.
void UpdateValuesCache(
const enterprise_management::PolicyData& policy_data,
- const enterprise_management::ChromeDeviceSettingsProto& settings);
+ const enterprise_management::ChromeDeviceSettingsProto& settings,
+ TrustedStatus trusted_status);
// Applies the metrics policy and if not set migrates the legacy file.
void ApplyMetricsSetting(bool use_file, bool new_value);