From bb3031eaa60e3028c7cf77aa0ba892054e51a94f Mon Sep 17 00:00:00 2001 From: Yi Gu <yigu@chromium.org> Date: Tue, 13 May 2025 06:46:28 -0700 Subject: [PATCH] [FedCM] Remove selective disclosure related logic This feature isn't being actively worked on. Bug: 40250484 Change-Id: I41369b647e1ced58ee63677589c7e66fb2454887 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6537107 Reviewed-by: Dave Tapuska <dtapuska@chromium.org> Commit-Queue: Yi Gu <yigu@chromium.org> Reviewed-by: Sam Goto <goto@chromium.org> Cr-Commit-Position: refs/heads/main@{#1459400} --- chrome/browser/about_flags.cc | 5 --- chrome/browser/flag-metadata.json | 5 --- chrome/browser/flag_descriptions.cc | 5 --- chrome/browser/flag_descriptions.h | 3 -- content/browser/webid/flags.cc | 4 -- content/browser/webid/flags.h | 3 -- content/child/runtime_features.cc | 2 - content/public/common/content_features.cc | 6 --- content/public/common/content_features.h | 1 - .../bindings/generated_in_modules.gni | 4 -- .../renderer/bindings/idl_in_modules.gni | 2 - .../identity_claim_requirement.idl | 21 ----------- .../identity_credential_request_options.idl | 2 - .../identity_standard_claims.idl | 37 ------------------- .../platform/runtime_enabled_features.json5 | 6 --- tools/metrics/histograms/enums.xml | 2 - 16 files changed, 108 deletions(-) delete mode 100644 third_party/blink/renderer/modules/credentialmanagement/identity_claim_requirement.idl delete mode 100644 third_party/blink/renderer/modules/credentialmanagement/identity_standard_claims.idl diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 34fe48cad4813..9b6739a06eaa3 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc @@ -9111,11 +9111,6 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kFedCmMultiIdpDescription, kOsAll, FEATURE_VALUE_TYPE(features::kFedCmMultipleIdentityProviders)}, - {"fedcm-selective-disclosure", - flag_descriptions::kFedCmSelectiveDisclosureName, - flag_descriptions::kFedCmSelectiveDisclosureDescription, kOsAll, - FEATURE_VALUE_TYPE(features::kFedCmSelectiveDisclosure)}, - {"fedcm-show-filtered-accounts", flag_descriptions::kFedCmShowFilteredAccountsName, flag_descriptions::kFedCmShowFilteredAccountsDescription, kOsAll, diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 7f849549eac58..136460105f46e 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json @@ -4878,11 +4878,6 @@ "owners": ["tanzachary@chromium.org", "web-identity-eng@google.com"], "expiry_milestone": 145 }, - { - "name": "fedcm-selective-disclosure", - "owners": ["goto@chromium.org", "web-identity-eng@google.com"], - "expiry_milestone": 140 - }, { "name": "fedcm-show-filtered-accounts", "owners": ["npm@chromium.org", "web-identity-eng@google.com"], diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 73a1d5b2ad48f..9dc7d9f5bea24 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc @@ -2076,11 +2076,6 @@ const char kFedCmMultiIdpDescription[] = "Allows the FedCM API to request multiple identity providers " "simultaneously. Requires FedCM to be enabled as well."; -const char kFedCmSelectiveDisclosureName[] = "FedCmSelectiveDisclosure"; -const char kFedCmSelectiveDisclosureDescription[] = - "Allows a relying party to selectively request a set of identity " - "attributes to be disclosed."; - const char kFedCmShowFilteredAccountsName[] = "FedCmShowFilteredAccounts"; const char kFedCmShowFilteredAccountsDescription[] = "Allows the FedCM API to show filtered accounts greyed out."; diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 7d58ce7e72b6a..6f4ca4afa1f24 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h @@ -1197,9 +1197,6 @@ extern const char kFedCmMultiIdpDescription[]; extern const char kFedCmQuietUiName[]; extern const char kFedCmQuietUiDescription[]; -extern const char kFedCmSelectiveDisclosureName[]; -extern const char kFedCmSelectiveDisclosureDescription[]; - extern const char kFedCmShowFilteredAccountsName[]; extern const char kFedCmShowFilteredAccountsDescription[]; diff --git a/content/browser/webid/flags.cc b/content/browser/webid/flags.cc index c40b8e51c681f..a5d50843d9d87 100644 --- a/content/browser/webid/flags.cc +++ b/content/browser/webid/flags.cc @@ -23,10 +23,6 @@ bool IsFedCmMetricsEndpointEnabled() { return base::FeatureList::IsEnabled(features::kFedCmMetricsEndpoint); } -bool IsFedCmSelectiveDisclosureEnabled() { - return base::FeatureList::IsEnabled(features::kFedCmSelectiveDisclosure); -} - bool IsFedCmDelegationEnabled() { return base::FeatureList::IsEnabled(features::kFedCmDelegation); } diff --git a/content/browser/webid/flags.h b/content/browser/webid/flags.h index 6a1cf6f3581b7..8bc9da8ae7c05 100644 --- a/content/browser/webid/flags.h +++ b/content/browser/webid/flags.h @@ -17,9 +17,6 @@ bool IsFedCmMultipleIdentityProvidersEnabled(); // Whether metrics endpoint is enabled. bool IsFedCmMetricsEndpointEnabled(); -// Whether the Selective Disclosure API is enabled. -bool IsFedCmSelectiveDisclosureEnabled(); - // Whether the Delegation API is enabled. bool IsFedCmDelegationEnabled(); diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc index 78972aa508c55..873f4a0a1aa8e 100644 --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc @@ -221,8 +221,6 @@ void SetRuntimeFeaturesFromChromiumFeatures() { {wf::EnableFedCmMultipleIdentityProviders, raw_ref(features::kFedCmMultipleIdentityProviders), kSetOnlyIfOverridden}, - {wf::EnableFedCmSelectiveDisclosure, - raw_ref(features::kFedCmSelectiveDisclosure), kDefault}, {wf::EnableFencedFrames, raw_ref(features::kPrivacySandboxAdsAPIsOverride), kSetOnlyIfOverridden}, diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc index 193728e963933..e2446ed6c4cfe 100644 --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc @@ -433,12 +433,6 @@ BASE_FEATURE(kFedCmMultipleIdentityProviders, "FedCmMultipleIdentityProviders", base::FEATURE_ENABLED_BY_DEFAULT); -// Enables usage of the FedCM API with the Selective Disclosure API at the same -// time. -BASE_FEATURE(kFedCmSelectiveDisclosure, - "FedCmSelectiveDisclosure", - base::FEATURE_DISABLED_BY_DEFAULT); - // Enables showing filtered out accounts in FedCM UI after the user attempts to // login to an account. These accounts are shown greyed out. BASE_FEATURE(kFedCmShowFilteredAccounts, diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h index 415dae8418c25..1ba07e8e11d90 100644 --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h @@ -111,7 +111,6 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kFedCmDelegation); CONTENT_EXPORT BASE_DECLARE_FEATURE(kFedCmIdPRegistration); CONTENT_EXPORT BASE_DECLARE_FEATURE(kFedCmMetricsEndpoint); CONTENT_EXPORT BASE_DECLARE_FEATURE(kFedCmMultipleIdentityProviders); -CONTENT_EXPORT BASE_DECLARE_FEATURE(kFedCmSelectiveDisclosure); CONTENT_EXPORT BASE_DECLARE_FEATURE(kFedCmShowFilteredAccounts); CONTENT_EXPORT BASE_DECLARE_FEATURE(kFedCmWithoutWellKnownEnforcement); CONTENT_EXPORT BASE_DECLARE_FEATURE(kFedCmLightweightMode); diff --git a/third_party/blink/renderer/bindings/generated_in_modules.gni b/third_party/blink/renderer/bindings/generated_in_modules.gni index 89a2f93776f68..e01bb34616c52 100644 --- a/third_party/blink/renderer/bindings/generated_in_modules.gni +++ b/third_party/blink/renderer/bindings/generated_in_modules.gni @@ -630,8 +630,6 @@ generated_dictionary_sources_in_modules = [ "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_idb_transaction_options.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_idb_version_change_event_init.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_idb_version_change_event_init.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_identity_claim_requirement.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_identity_claim_requirement.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_identity_credential_error_init.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_identity_credential_error_init.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_identity_credential_logout_r_ps_request.cc", @@ -654,8 +652,6 @@ generated_dictionary_sources_in_modules = [ "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_identity_request_provider.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_identity_resolve_options.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_identity_resolve_options.h", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_identity_standard_claims.cc", - "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_identity_standard_claims.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_identity_user_info.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_identity_user_info.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_idle_options.cc", diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni index ea5b584b2ecf0..5a1ae04cb05ef 100644 --- a/third_party/blink/renderer/bindings/idl_in_modules.gni +++ b/third_party/blink/renderer/bindings/idl_in_modules.gni @@ -195,7 +195,6 @@ static_idl_files_in_modules = [ "//third_party/blink/renderer/modules/credentialmanagement/federated_credential.idl", "//third_party/blink/renderer/modules/credentialmanagement/federated_credential_init.idl", "//third_party/blink/renderer/modules/credentialmanagement/federated_credential_request_options.idl", - "//third_party/blink/renderer/modules/credentialmanagement/identity_claim_requirement.idl", "//third_party/blink/renderer/modules/credentialmanagement/identity_credential.idl", "//third_party/blink/renderer/modules/credentialmanagement/identity_credential_error.idl", "//third_party/blink/renderer/modules/credentialmanagement/identity_credential_logout_r_ps_request.idl", @@ -203,7 +202,6 @@ static_idl_files_in_modules = [ "//third_party/blink/renderer/modules/credentialmanagement/identity_provider.idl", "//third_party/blink/renderer/modules/credentialmanagement/identity_provider_account.idl", "//third_party/blink/renderer/modules/credentialmanagement/identity_provider_config.idl", - "//third_party/blink/renderer/modules/credentialmanagement/identity_standard_claims.idl", "//third_party/blink/renderer/modules/credentialmanagement/navigator_credentials.idl", "//third_party/blink/renderer/modules/credentialmanagement/navigator_identity.idl", "//third_party/blink/renderer/modules/credentialmanagement/navigator_login.idl", diff --git a/third_party/blink/renderer/modules/credentialmanagement/identity_claim_requirement.idl b/third_party/blink/renderer/modules/credentialmanagement/identity_claim_requirement.idl deleted file mode 100644 index f19cedd051636..0000000000000 --- a/third_party/blink/renderer/modules/credentialmanagement/identity_claim_requirement.idl +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -dictionary IdentityClaimRequirement { - // Controls the optionality of the attribute. - // NOTE: "required" is a reserved WebIDL keyword, so we prefix it with - // the _ character to use it. - // https://webidl.spec.whatwg.org/#:~:text=escape%20an%20identifier - boolean _required; - - // TODO(crbug.com/1400878): introduce the other requirement types as needed. - // Requires the attribute to be verified. - // boolean verified; - // Requires the attribute to be over a certain number. - // long over; - // Requires the attribute to be under a certain number. - // long under; - // Requires the attribute to be equal to certain value. - // any value; -}; diff --git a/third_party/blink/renderer/modules/credentialmanagement/identity_credential_request_options.idl b/third_party/blink/renderer/modules/credentialmanagement/identity_credential_request_options.idl index d0942cdf294c7..56180b39a8147 100644 --- a/third_party/blink/renderer/modules/credentialmanagement/identity_credential_request_options.idl +++ b/third_party/blink/renderer/modules/credentialmanagement/identity_credential_request_options.idl @@ -21,8 +21,6 @@ dictionary IdentityCredentialRequestOptions { IdentityCredentialRequestOptionsContext context = "signin"; // Allows an RP to select between the two modes of operation: active or passive. [MeasureAs=FedCmButtonMode] IdentityCredentialRequestOptionsMode mode = "passive"; - // A querying language that allows an RP to ask what it wants from the IdPs. - [RuntimeEnabled=FedCmSelectiveDisclosure] IdentityStandardClaims claims; // This is a debugging aid string instead of an actual member of this dictionary. // `mediation` could be accidentally set by web developers here and this helps // with showing debugging info to developers when it happens. diff --git a/third_party/blink/renderer/modules/credentialmanagement/identity_standard_claims.idl b/third_party/blink/renderer/modules/credentialmanagement/identity_standard_claims.idl deleted file mode 100644 index 4eff1f82a4512..0000000000000 --- a/third_party/blink/renderer/modules/credentialmanagement/identity_standard_claims.idl +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -dictionary IdentityStandardClaims { - // The standard identity claims is derived and kept consistent with the <form> - // autocomplete spec. - // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-autocomplete - // We are starting with the attributes that are currently supported, so many - // of the attributes are left commented out to allow us to introduce them - // incrementally, while still testing if the generalization will hold. - // TODO(crbug.com/1400878): introduce the other attributes as needed. - IdentityClaimRequirement name; - IdentityClaimRequirement givenName; - // IdentityClaimRequirement familyName; - // IdentityClaimRequirement nickname; - // IdentityClaimRequirement username; - IdentityClaimRequirement email; - // IdentityClaimRequirement sex; - // IdentityClaimRequirement bday; - // IdentityClaimRequirement language; - // IdentityClaimRequirement phoneNumber; - // IdentityClaimRequirement streetAddress; - // IdentityClaimRequirement country; - // IdentityClaimRequirement url; - // IdentityClaimRequirement tel; - // Age is neither in the OIDC Standard Claims nor in HTML, but maps better - // than bday (HTML) / birthday (OIDC). - // IdentityClaimRequirement age; - // Picture currently follows the OIDC Standard Claims - // https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims - // Which we take as equivalent to photo from the HTML standard. - // We use both to keep backwards compatibility with the AccountList - // dictionary. - IdentityClaimRequirement picture; - // IdentityClaimRequirement photo; -}; diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index ad167379d327f..3660469b05d5b 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 @@ -2008,12 +2008,6 @@ origin_trial_os: ["win", "mac", "linux", "chromeos"], origin_trial_allows_third_party: true, }, - { - name: "FedCmSelectiveDisclosure", - depends_on: ["FedCm"], - public: true, - base_feature: "none", - }, { name: "FencedFrames", base_feature: "none", diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 821cc752adfd7..cc07c3e40b630 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml @@ -12386,7 +12386,6 @@ from previous Chrome versions. <int value="-630256330" label="EnableDrDc:enabled"/> <int value="-629084845" label="UseToastManager:disabled"/> <int value="-629041881" label="MuteNotificationsDuringScreenShare:disabled"/> - <int value="-628675321" label="FedCmSelectiveDisclosure:disabled"/> <int value="-628535358" label="AutofillPreventOverridingPrefilledValues:enabled"/> <int value="-626329144" label="SyncSupportTrustedVaultPassphrase:enabled"/> @@ -13221,7 +13220,6 @@ from previous Chrome versions. <int value="-304886342" label="QuickAnswersTranslation:disabled"/> <int value="-304841801" label="AccessibilityFlashScreenFeature:enabled"/> <int value="-304777110" label="PreconnectToSearch:disabled"/> - <int value="-304594674" label="FedCmSelectiveDisclosure:enabled"/> <int value="-304502255" label="DiscardRingImprovements:enabled"/> <int value="-304329578" label="OmniboxContextualSearchActionsAtTop:enabled"/> <int value="-303992327" label="SwipeToMoveCursor:disabled"/>