OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/chromeos/settings/device_settings_provider.h" | 5 #include "chrome/browser/chromeos/settings/device_settings_provider.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 namespace { | 44 namespace { |
45 | 45 |
46 // List of settings handled by the DeviceSettingsProvider. | 46 // List of settings handled by the DeviceSettingsProvider. |
47 const char* kKnownSettings[] = { | 47 const char* kKnownSettings[] = { |
48 kAccountsPrefAllowGuest, | 48 kAccountsPrefAllowGuest, |
49 kAccountsPrefAllowNewUser, | 49 kAccountsPrefAllowNewUser, |
50 kAccountsPrefDeviceLocalAccounts, | 50 kAccountsPrefDeviceLocalAccounts, |
51 kAccountsPrefDeviceLocalAccountAutoLoginBailoutEnabled, | 51 kAccountsPrefDeviceLocalAccountAutoLoginBailoutEnabled, |
52 kAccountsPrefDeviceLocalAccountAutoLoginDelay, | 52 kAccountsPrefDeviceLocalAccountAutoLoginDelay, |
53 kAccountsPrefDeviceLocalAccountAutoLoginId, | 53 kAccountsPrefDeviceLocalAccountAutoLoginId, |
| 54 kAccountsPrefDeviceLocalAccountPromptForNetworkWhenOffline, |
54 kAccountsPrefEphemeralUsersEnabled, | 55 kAccountsPrefEphemeralUsersEnabled, |
55 kAccountsPrefShowUserNamesOnSignIn, | 56 kAccountsPrefShowUserNamesOnSignIn, |
56 kAccountsPrefSupervisedUsersEnabled, | 57 kAccountsPrefSupervisedUsersEnabled, |
57 kAccountsPrefUsers, | 58 kAccountsPrefUsers, |
58 kAllowRedeemChromeOsRegistrationOffers, | 59 kAllowRedeemChromeOsRegistrationOffers, |
59 kAllowedConnectionTypesForUpdate, | 60 kAllowedConnectionTypesForUpdate, |
60 kAppPack, | 61 kAppPack, |
61 kAttestationForContentProtectionEnabled, | 62 kAttestationForContentProtectionEnabled, |
62 kDeviceAttestationEnabled, | 63 kDeviceAttestationEnabled, |
63 kDeviceOwner, | 64 kDeviceOwner, |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 else | 301 else |
301 NOTREACHED(); | 302 NOTREACHED(); |
302 } else if (prop == kAccountsPrefDeviceLocalAccountAutoLoginBailoutEnabled) { | 303 } else if (prop == kAccountsPrefDeviceLocalAccountAutoLoginBailoutEnabled) { |
303 em::DeviceLocalAccountsProto* device_local_accounts = | 304 em::DeviceLocalAccountsProto* device_local_accounts = |
304 device_settings_.mutable_device_local_accounts(); | 305 device_settings_.mutable_device_local_accounts(); |
305 bool enabled; | 306 bool enabled; |
306 if (value->GetAsBoolean(&enabled)) | 307 if (value->GetAsBoolean(&enabled)) |
307 device_local_accounts->set_enable_auto_login_bailout(enabled); | 308 device_local_accounts->set_enable_auto_login_bailout(enabled); |
308 else | 309 else |
309 NOTREACHED(); | 310 NOTREACHED(); |
| 311 } else if (prop == |
| 312 kAccountsPrefDeviceLocalAccountPromptForNetworkWhenOffline) { |
| 313 em::DeviceLocalAccountsProto* device_local_accounts = |
| 314 device_settings_.mutable_device_local_accounts(); |
| 315 bool should_prompt; |
| 316 if (value->GetAsBoolean(&should_prompt)) |
| 317 device_local_accounts->set_prompt_for_network_when_offline(should_prompt); |
| 318 else |
| 319 NOTREACHED(); |
310 } else if (prop == kSignedDataRoamingEnabled) { | 320 } else if (prop == kSignedDataRoamingEnabled) { |
311 em::DataRoamingEnabledProto* roam = | 321 em::DataRoamingEnabledProto* roam = |
312 device_settings_.mutable_data_roaming_enabled(); | 322 device_settings_.mutable_data_roaming_enabled(); |
313 bool roaming_value = false; | 323 bool roaming_value = false; |
314 if (value->GetAsBoolean(&roaming_value)) | 324 if (value->GetAsBoolean(&roaming_value)) |
315 roam->set_data_roaming_enabled(roaming_value); | 325 roam->set_data_roaming_enabled(roaming_value); |
316 else | 326 else |
317 NOTREACHED(); | 327 NOTREACHED(); |
318 ApplyRoamingSetting(roaming_value); | 328 ApplyRoamingSetting(roaming_value); |
319 } else if (prop == kReleaseChannel) { | 329 } else if (prop == kReleaseChannel) { |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
547 if (policy.device_local_accounts().has_auto_login_delay()) { | 557 if (policy.device_local_accounts().has_auto_login_delay()) { |
548 new_values_cache->SetInteger( | 558 new_values_cache->SetInteger( |
549 kAccountsPrefDeviceLocalAccountAutoLoginDelay, | 559 kAccountsPrefDeviceLocalAccountAutoLoginDelay, |
550 policy.device_local_accounts().auto_login_delay()); | 560 policy.device_local_accounts().auto_login_delay()); |
551 } | 561 } |
552 } | 562 } |
553 | 563 |
554 new_values_cache->SetBoolean( | 564 new_values_cache->SetBoolean( |
555 kAccountsPrefDeviceLocalAccountAutoLoginBailoutEnabled, | 565 kAccountsPrefDeviceLocalAccountAutoLoginBailoutEnabled, |
556 policy.device_local_accounts().enable_auto_login_bailout()); | 566 policy.device_local_accounts().enable_auto_login_bailout()); |
| 567 new_values_cache->SetBoolean( |
| 568 kAccountsPrefDeviceLocalAccountPromptForNetworkWhenOffline, |
| 569 policy.device_local_accounts().prompt_for_network_when_offline()); |
557 | 570 |
558 if (policy.has_start_up_flags()) { | 571 if (policy.has_start_up_flags()) { |
559 base::ListValue* list = new base::ListValue(); | 572 base::ListValue* list = new base::ListValue(); |
560 const em::StartUpFlagsProto& flags_proto = policy.start_up_flags(); | 573 const em::StartUpFlagsProto& flags_proto = policy.start_up_flags(); |
561 const RepeatedPtrField<std::string>& flags = flags_proto.flags(); | 574 const RepeatedPtrField<std::string>& flags = flags_proto.flags(); |
562 for (RepeatedPtrField<std::string>::const_iterator it = flags.begin(); | 575 for (RepeatedPtrField<std::string>::const_iterator it = flags.begin(); |
563 it != flags.end(); ++it) { | 576 it != flags.end(); ++it) { |
564 list->Append(new base::StringValue(*it)); | 577 list->Append(new base::StringValue(*it)); |
565 } | 578 } |
566 new_values_cache->SetValue(kStartUpFlags, list); | 579 new_values_cache->SetValue(kStartUpFlags, list); |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
809 void DeviceSettingsProvider::ApplyMetricsSetting(bool use_file, | 822 void DeviceSettingsProvider::ApplyMetricsSetting(bool use_file, |
810 bool new_value) { | 823 bool new_value) { |
811 // TODO(pastarmovj): Remove this once migration is not needed anymore. | 824 // TODO(pastarmovj): Remove this once migration is not needed anymore. |
812 // If the value is not set we should try to migrate legacy consent file. | 825 // If the value is not set we should try to migrate legacy consent file. |
813 if (use_file) { | 826 if (use_file) { |
814 new_value = HasOldMetricsFile(); | 827 new_value = HasOldMetricsFile(); |
815 // Make sure the values will get eventually written to the policy file. | 828 // Make sure the values will get eventually written to the policy file. |
816 migration_values_.SetValue(kStatsReportingPref, | 829 migration_values_.SetValue(kStatsReportingPref, |
817 base::Value::CreateBooleanValue(new_value)); | 830 base::Value::CreateBooleanValue(new_value)); |
818 AttemptMigration(); | 831 AttemptMigration(); |
819 LOG(INFO) << "No metrics policy set will revert to checking " | 832 VLOG(1) << "No metrics policy set will revert to checking " |
820 << "consent file which is " | 833 << "consent file which is " |
821 << (new_value ? "on." : "off."); | 834 << (new_value ? "on." : "off."); |
822 UMA_HISTOGRAM_COUNTS("DeviceSettings.MetricsMigrated", 1); | 835 UMA_HISTOGRAM_COUNTS("DeviceSettings.MetricsMigrated", 1); |
823 } | 836 } |
824 VLOG(1) << "Metrics policy is being set to : " << new_value | 837 VLOG(1) << "Metrics policy is being set to : " << new_value |
825 << "(use file : " << use_file << ")"; | 838 << "(use file : " << use_file << ")"; |
826 // TODO(pastarmovj): Remove this once we don't need to regenerate the | 839 // TODO(pastarmovj): Remove this once we don't need to regenerate the |
827 // consent file for the GUID anymore. | 840 // consent file for the GUID anymore. |
828 OptionsUtil::ResolveMetricsReportingEnabled(new_value); | 841 OptionsUtil::ResolveMetricsReportingEnabled(new_value); |
829 } | 842 } |
830 | 843 |
831 void DeviceSettingsProvider::ApplyRoamingSetting(bool new_value) { | 844 void DeviceSettingsProvider::ApplyRoamingSetting(bool new_value) { |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1031 void DeviceSettingsProvider::AttemptMigration() { | 1044 void DeviceSettingsProvider::AttemptMigration() { |
1032 if (device_settings_service_->HasPrivateOwnerKey()) { | 1045 if (device_settings_service_->HasPrivateOwnerKey()) { |
1033 PrefValueMap::const_iterator i; | 1046 PrefValueMap::const_iterator i; |
1034 for (i = migration_values_.begin(); i != migration_values_.end(); ++i) | 1047 for (i = migration_values_.begin(); i != migration_values_.end(); ++i) |
1035 DoSet(i->first, *i->second); | 1048 DoSet(i->first, *i->second); |
1036 migration_values_.Clear(); | 1049 migration_values_.Clear(); |
1037 } | 1050 } |
1038 } | 1051 } |
1039 | 1052 |
1040 } // namespace chromeos | 1053 } // namespace chromeos |
OLD | NEW |