0

[Android][Settings] Disable Phone as a Security Key fragment

PAASK settings fragment has been long there, not working as expected.
It seems like it has been replaced by Google Play Services'
"Passkey-linked devices" settings, and it actually works.

Removing the PAASK entry from Chrome settings behind a feature flag is
the right choice here. Linking is not handled by Chrome anymore, and it
is on its way to deprecation too (crbug.com/372493822)

Bug: 377475533
Change-Id: I75581c419d4271e10ae3c68a95e7e51e9226b8b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6017947
Reviewed-by: Nina Satragno <nsatragno@chromium.org>
Reviewed-by: Christian Dullweber <dullweber@chromium.org>
Commit-Queue: Adem Derinel <derinel@google.com>
Cr-Commit-Position: refs/heads/main@{#1382883}
This commit is contained in:
Adem Derinel
2024-11-14 09:45:10 +00:00
committed by Chromium LUCI CQ
parent f7e1e2a0b2
commit 7cd1ebebd1
5 changed files with 21 additions and 0 deletions
chrome/android/java/src/org/chromium/chrome/browser/privacy/settings
device/fido
services/device/public

@ -52,6 +52,8 @@ import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat;
import org.chromium.components.content_settings.CookieControlsMode;
import org.chromium.components.signin.identitymanager.ConsentLevel;
import org.chromium.components.user_prefs.UserPrefs;
import org.chromium.device.DeviceFeatureList;
import org.chromium.device.DeviceFeatureMap;
import org.chromium.ui.text.SpanApplier;
/** Fragment to keep track of the all the privacy related preferences. */
@ -67,6 +69,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
private static final String PREF_PRIVACY_GUIDE = "privacy_guide";
private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
private static final String PREF_PHONE_AS_A_SECURITY_KEY = "phone_as_a_security_key";
@VisibleForTesting static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
@VisibleForTesting static final String PREF_DO_NOT_TRACK = "do_not_track";
@VisibleForTesting static final String PREF_FP_PROTECTION = "fp_protection";
@ -229,6 +232,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
clearBrowsingDataAdvancedPreference.setVisible(true);
}
Preference phoneAsASecurityKey = findPreference(PREF_PHONE_AS_A_SECURITY_KEY);
phoneAsASecurityKey.setVisible(
DeviceFeatureMap.isEnabled(DeviceFeatureList.WEBAUTHN_ENABLE_PAASK_SETTING));
updatePreferences();
}

@ -53,6 +53,12 @@ BASE_FEATURE(kWebAuthnAndroidCredMan,
BASE_FEATURE(kWebAuthnAndroidUsePasskeyCache,
"WebAuthenticationAndroidUsePasskeyCache",
base::FEATURE_ENABLED_BY_DEFAULT);
// This is a deprecation flag for "Phone as a security key" privacy settings
// fragment. Disabled in M133, remove in or after M136.
BASE_FEATURE(kWebAuthnEnablePaaskFragment,
"WebAuthenticationEnablePaaskFragment",
base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_ANDROID)
// Enabled in M118. Remove in or after M121.

@ -42,6 +42,11 @@ inline constexpr base::FeatureParam<bool> kWebAuthnAndroidGpmInCredMan{
// passkeys from GMSCore. This is for comparison only.
COMPONENT_EXPORT(DEVICE_FIDO)
BASE_DECLARE_FEATURE(kWebAuthnAndroidUsePasskeyCache);
// Enable the "Phone as a security key" fragment in Privacy Settings. This flag
// is now handled by Gmscore, in Android Settings > "Passkey-linked devices".
COMPONENT_EXPORT(DEVICE_FIDO)
BASE_DECLARE_FEATURE(kWebAuthnEnablePaaskFragment);
#endif // BUILDFLAG(IS_ANDROID)
// These five feature flags control whether iCloud Keychain is the default

@ -24,6 +24,7 @@ namespace {
const base::Feature* const kFeaturesExposedToJava[] = {
&device::kWebAuthnAndroidCredMan,
&device::kWebAuthnAndroidUsePasskeyCache,
&device::kWebAuthnEnablePaaskFragment,
&kGenericSensorExtraClasses,
&kBatteryStatusManagerBroadcastReceiverInBackground,
};

@ -20,4 +20,6 @@ public abstract class DeviceFeatureList {
"WebAuthenticationAndroidUsePasskeyCache";
public static final String BATTERY_STATUS_MANAGER_BROADCAST_RECEIVER_IN_BACKGROUND =
"BatteryStatusManagerBroadcastReceiverInBackground";
public static final String WEBAUTHN_ENABLE_PAASK_SETTING =
"WebAuthenticationEnablePaaskFragment";
}