| Index: chrome/browser/chromeos/user_cros_settings_provider.cc
|
| diff --git a/chrome/browser/chromeos/user_cros_settings_provider.cc b/chrome/browser/chromeos/user_cros_settings_provider.cc
|
| index 41437f237a9aa9a75f9d3057fd6dab645bef545e..c50e429895399c73c5e8519a08951ff99de3f5b3 100644
|
| --- a/chrome/browser/chromeos/user_cros_settings_provider.cc
|
| +++ b/chrome/browser/chromeos/user_cros_settings_provider.cc
|
| @@ -308,6 +308,11 @@ class UserCrosSettingsTrust : public SignedSettingsHelper::Callback {
|
| return;
|
|
|
| NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary();
|
| + if (cros->IsCellularAlwaysInRoaming()) {
|
| + // If operator requires roaming always enabled, ignore supplied value
|
| + // and set data roaming allowed in true always.
|
| + new_value = true;
|
| + }
|
| cros->SetCellularDataRoamingAllowed(new_value);
|
| } else if (path == kStatsReportingPref) {
|
| // TODO(pastarmovj): Remove this once we don't need to regenerate the
|
| @@ -328,9 +333,15 @@ class UserCrosSettingsTrust : public SignedSettingsHelper::Callback {
|
| const NetworkDevice* cellular = cros->FindCellularDevice();
|
| if (cellular) {
|
| bool device_value = cellular->data_roaming_allowed();
|
| - bool new_value = (use_value == USE_VALUE_SUPPLIED) ? value : false;
|
| - if (device_value != new_value)
|
| - cros->SetCellularDataRoamingAllowed(new_value);
|
| + if (!device_value && cros->IsCellularAlwaysInRoaming()) {
|
| + // If operator requires roaming always enabled, ignore supplied value
|
| + // and set data roaming allowed in true always.
|
| + cros->SetCellularDataRoamingAllowed(true);
|
| + } else {
|
| + bool new_value = (use_value == USE_VALUE_SUPPLIED) ? value : false;
|
| + if (device_value != new_value)
|
| + cros->SetCellularDataRoamingAllowed(new_value);
|
| + }
|
| }
|
| } else if (path == kStatsReportingPref) {
|
| bool stats_consent = (use_value == USE_VALUE_SUPPLIED) ? value : false;
|
|
|