[wip] Introduce a new class for the embedder to query FedCM accounts [chromium/src : main]

0 views
Skip to first unread message

Sam Goto (Gerrit)

unread,
Jan 9, 2026, 12:20:20 PM (4 days ago) Jan 9
to Yi Gu, Christian Biesinger, chromium...@chromium.org, Kaan Icer, gcasto+w...@chromium.org, npm+...@chromium.org, vasilii+watchlis...@chromium.org, yigu+...@chromium.org
Attention needed from Yi Gu

Sam Goto added 6 comments

File chrome/browser/password_manager/actor_login/internal/actor_login_delegate_impl.cc
Line 227, Patchset 1 (Latest): if (base::FeatureList::IsEnabled(features::kFedCmNavigationCancellation)) {
Sam Goto . unresolved

return early here rather than nesting another if block

Line 234, Patchset 1 (Latest): std::vector<GURL> supported_idps = {GURL("https://accounts.google.com")};
Sam Goto . unresolved

how can we avoid this hard-coding? what would be the most scalable way to avoid hard-coding this, architecturally speaking?

Line 235, Patchset 1 (Latest): source->GetIdentityCredentialSuggestions(
Sam Goto . unresolved

i'm not sure i follow the semantics of this ... why are we "GetIdentityCredential" here in a "OngetCredentialsCompleted" callback? can you fix this with a code change rather than an answer explaining?

Line 244, Patchset 1 (Latest): std::move(callback).Run(std::move(result));
Sam Goto . unresolved

switch the order and return early here on the condition, so that the bulk of the work is done inside of the main block

File content/browser/webid/identity_credential_source_impl.h
Line 36, Patchset 1 (Latest): std::vector<GURL> embedder_requested_idps,
Sam Goto . unresolved

why should it be the responsiblity of the caller of this method to know which are the requested idps?

Line 27, Patchset 1 (Latest): : public DocumentUserData<IdentityCredentialSourceImpl>,
Sam Goto . unresolved

Why does this class need to be owned by UserData?

Open in Gerrit

Related details

Attention is currently required from:
  • Yi Gu
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I334625cbd0da8fa1bbdc1b3d734c3b4575e273a3
Gerrit-Change-Number: 7424785
Gerrit-PatchSet: 1
Gerrit-Owner: Yi Gu <yi...@chromium.org>
Gerrit-CC: Christian Biesinger <cbies...@chromium.org>
Gerrit-CC: Kaan Icer <ic...@chromium.org>
Gerrit-CC: Sam Goto <go...@chromium.org>
Gerrit-Attention: Yi Gu <yi...@chromium.org>
Gerrit-Comment-Date: Fri, 09 Jan 2026 17:20:10 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Yi Gu (Gerrit)

unread,
Jan 12, 2026, 11:03:31 AM (19 hours ago) Jan 12
to Sam Goto, Christian Biesinger, chromium...@chromium.org, Kaan Icer, gcasto+w...@chromium.org, npm+...@chromium.org, vasilii+watchlis...@chromium.org, yigu+...@chromium.org
Attention needed from Sam Goto

Yi Gu added 6 comments

File chrome/browser/password_manager/actor_login/internal/actor_login_delegate_impl.cc
Line 227, Patchset 1: if (base::FeatureList::IsEnabled(features::kFedCmNavigationCancellation)) {
Sam Goto . resolved

return early here rather than nesting another if block

Yi Gu

Acknowledged

Line 234, Patchset 1: std::vector<GURL> supported_idps = {GURL("https://accounts.google.com")};
Sam Goto . resolved

how can we avoid this hard-coding? what would be the most scalable way to avoid hard-coding this, architecturally speaking?

Yi Gu

This is just for demo purposes to show the interface. The changes in actor_login_delegate_impl will not be merged.

Line 235, Patchset 1: source->GetIdentityCredentialSuggestions(
Sam Goto . resolved

i'm not sure i follow the semantics of this ... why are we "GetIdentityCredential" here in a "OngetCredentialsCompleted" callback? can you fix this with a code change rather than an answer explaining?

Yi Gu

Acknowledged

Line 244, Patchset 1: std::move(callback).Run(std::move(result));
Sam Goto . resolved

switch the order and return early here on the condition, so that the bulk of the work is done inside of the main block

Yi Gu

Acknowledged

File content/browser/webid/identity_credential_source_impl.h
Line 36, Patchset 1: std::vector<GURL> embedder_requested_idps,
Sam Goto . unresolved

why should it be the responsiblity of the caller of this method to know which are the requested idps?

Yi Gu

The requester should know which IdPs are currently available on the site. It's possible that a "logged-in" IdP is not supported by the current RP. Right?

Line 27, Patchset 1: : public DocumentUserData<IdentityCredentialSourceImpl>,
Sam Goto . unresolved

Why does this class need to be owned by UserData?

Yi Gu

To have the same lifetime of a RFH. Any concerns?

Open in Gerrit

Related details

Attention is currently required from:
  • Sam Goto
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I334625cbd0da8fa1bbdc1b3d734c3b4575e273a3
Gerrit-Change-Number: 7424785
Gerrit-PatchSet: 2
Gerrit-Owner: Yi Gu <yi...@chromium.org>
Gerrit-CC: Christian Biesinger <cbies...@chromium.org>
Gerrit-CC: Kaan Icer <ic...@chromium.org>
Gerrit-CC: Sam Goto <go...@chromium.org>
Gerrit-Attention: Sam Goto <go...@chromium.org>
Gerrit-Comment-Date: Mon, 12 Jan 2026 16:03:18 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Sam Goto <go...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy
Reply all
Reply to author
Forward
0 new messages