Commit 3a32093d authored by Henrique Grandinetti's avatar Henrique Grandinetti Committed by Commit Bot

Disable timezone changes for children based on feature flag value

Bug: 988490
Change-Id: Ib26f0315a6fcebec7e25b6f2b3139b34f5221c38
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1724697Reviewed-by: default avatarAga Wronska <agawronska@chromium.org>
Reviewed-by: default avatarMichael Giuffrida <michaelpg@chromium.org>
Commit-Queue: Henrique Grandinetti <hgrandinetti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#683142}
parent 23f5c54e
...@@ -4,12 +4,14 @@ ...@@ -4,12 +4,14 @@
#include "chrome/browser/extensions/api/settings_private/chromeos_resolve_time_zone_by_geolocation_on_off.h" #include "chrome/browser/extensions/api/settings_private/chromeos_resolve_time_zone_by_geolocation_on_off.h"
#include "base/feature_list.h"
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/system/timezone_resolver_manager.h" #include "chrome/browser/chromeos/system/timezone_resolver_manager.h"
#include "chrome/browser/extensions/api/settings_private/generated_pref.h" #include "chrome/browser/extensions/api/settings_private/generated_pref.h"
#include "chrome/browser/extensions/api/settings_private/generated_time_zone_pref_base.h" #include "chrome/browser/extensions/api/settings_private/generated_time_zone_pref_base.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/profiles/profile_manager.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/extensions/api/settings_private.h" #include "chrome/common/extensions/api/settings_private.h"
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
...@@ -74,6 +76,13 @@ SetPrefResult GeneratedResolveTimezoneByGeolocationOnOff::SetPref( ...@@ -74,6 +76,13 @@ SetPrefResult GeneratedResolveTimezoneByGeolocationOnOff::SetPref(
return SetPrefResult::PREF_NOT_MODIFIABLE; return SetPrefResult::PREF_NOT_MODIFIABLE;
} }
// If the Parent Access Code feature is not available, children must use
// automatic timezone.
if (profile_->IsChild() &&
!base::FeatureList::IsEnabled(features::kParentAccessCodeForTimeChange)) {
return SetPrefResult::PREF_NOT_MODIFIABLE;
}
const bool new_value = value->GetBool(); const bool new_value = value->GetBool();
const bool current_value = g_browser_process->platform_part() const bool current_value = g_browser_process->platform_part()
->GetTimezoneResolverManager() ->GetTimezoneResolverManager()
......
...@@ -4,9 +4,11 @@ ...@@ -4,9 +4,11 @@
#include "chrome/browser/extensions/api/settings_private/generated_time_zone_pref_base.h" #include "chrome/browser/extensions/api/settings_private/generated_time_zone_pref_base.h"
#include "base/feature_list.h"
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/system/timezone_resolver_manager.h" #include "chrome/browser/chromeos/system/timezone_resolver_manager.h"
#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/profiles/profile_manager.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/extensions/api/settings_private.h" #include "chrome/common/extensions/api/settings_private.h"
#include "components/user_manager/user_manager.h" #include "components/user_manager/user_manager.h"
...@@ -40,6 +42,11 @@ void GeneratedTimeZonePrefBase::UpdateTimeZonePrefControlledBy( ...@@ -40,6 +42,11 @@ void GeneratedTimeZonePrefBase::UpdateTimeZonePrefControlledBy(
IsTimeZoneResolutionPolicyControlled()) { IsTimeZoneResolutionPolicyControlled()) {
out_pref->controlled_by = settings_api::CONTROLLED_BY_DEVICE_POLICY; out_pref->controlled_by = settings_api::CONTROLLED_BY_DEVICE_POLICY;
out_pref->enforcement = settings_api::ENFORCEMENT_ENFORCED; out_pref->enforcement = settings_api::ENFORCEMENT_ENFORCED;
} else if (profile_->IsChild() &&
!base::FeatureList::IsEnabled(
features::kParentAccessCodeForTimeChange)) {
out_pref->controlled_by = settings_api::ControlledBy::CONTROLLED_BY_PARENT;
out_pref->enforcement = settings_api::ENFORCEMENT_ENFORCED;
} else if (!profile_->IsSameProfile( } else if (!profile_->IsSameProfile(
ProfileManager::GetPrimaryUserProfile())) { ProfileManager::GetPrimaryUserProfile())) {
out_pref->controlled_by = settings_api::CONTROLLED_BY_PRIMARY_USER; out_pref->controlled_by = settings_api::CONTROLLED_BY_PRIMARY_USER;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment