Index: chrome/browser/chromeos/settings/device_settings_provider.cc |
diff --git a/chrome/browser/chromeos/settings/device_settings_provider.cc b/chrome/browser/chromeos/settings/device_settings_provider.cc |
index 7d6366080f07a45237ac838c5021465baf3f17a5..014a1eff711a9ac658fa28c90a7ab9e6a589d4f4 100644 |
--- a/chrome/browser/chromeos/settings/device_settings_provider.cc |
+++ b/chrome/browser/chromeos/settings/device_settings_provider.cc |
@@ -56,6 +56,7 @@ const char* kKnownSettings[] = { |
kDeviceOwner, |
kIdleLogoutTimeout, |
kIdleLogoutWarningDuration, |
+ kKioskVirtualKeyboardLayout, |
kPolicyMissingMitigationMode, |
kReleaseChannel, |
kReleaseChannelDelegated, |
@@ -394,6 +395,14 @@ void DeviceSettingsProvider::SetInPolicy() { |
} else { |
NOTREACHED(); |
} |
+ } else if (prop == kKioskVirtualKeyboardLayout) { |
+ em::KioskVirtualKeyboardProto* keyboard_settings = |
+ device_settings_.mutable_kiosk_virtual_keyboard(); |
+ std::string layout; |
+ if (value->GetAsString(&layout)) |
+ keyboard_settings->set_layout(layout); |
+ else |
+ NOTREACHED(); |
} else { |
// The remaining settings don't support Set(), since they are not |
// intended to be customizable by the user: |
@@ -773,6 +782,13 @@ void DeviceSettingsProvider::DecodeGenericPolicies( |
} else { |
new_values_cache->SetBoolean(kAttestationForContentProtectionEnabled, true); |
} |
+ |
+ if (policy.has_kiosk_virtual_keyboard() && |
+ policy.kiosk_virtual_keyboard().has_layout()) { |
+ new_values_cache->SetString( |
+ kKioskVirtualKeyboardLayout, |
+ policy.kiosk_virtual_keyboard().layout()); |
+ } |
} |
void DeviceSettingsProvider::UpdateValuesCache( |