Skip to content

Commit

Permalink
Download profile pictures before filtering accounts
Browse files Browse the repository at this point in the history
For privacy reasons, all pictures should be downloaded before
filtering the list according to provided login or domain
hints.
  • Loading branch information
cbiesinger committed Oct 29, 2024
1 parent 026dbaa commit 692af52
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions spec/index.bs
Original file line number Diff line number Diff line change
Expand Up @@ -846,6 +846,15 @@ the exception thrown.
1. Assert: |accountsList| is not failure and the size of |accountsList| is not 0.
1. [=Set the login status=] for the [=/origin=] of the
{{IdentityProviderConfig/configURL}} to [=logged-in=].
1. For each |acc| in |accountsList|:
1. If |acc|["{{IdentityProviderAccount/picture}}"] is present, [=fetch the account picture=]
with |acc| and |globalObject|. If the [=user agent=] displays this picture to
the user at any point, it MUST reuse the result of this fetch instead of redownloading
the picture.

Note: We require downloading the pictures here before we potentially filter the account
list so that the identity provider cannot determine the provided hints based
on which fetches occured.
1. If |provider|'s {{IdentityProviderRequestOptions/loginHint}} is not empty:
1. For every |account| in |accountList|, remove |account| from |accountList| if |account|'s
{{IdentityProviderAccount/login_hints}} does not [=list/contain=] |provider|'s
Expand All @@ -860,13 +869,6 @@ the exception thrown.
{{IdentityProviderAccount/domain_hints}} does not [=list/contain=] |provider|'s
{{IdentityProviderRequestOptions/domainHint}}.
1. If |accountList| is now empty, go to the [=mismatch dialog step=].
1. For each |acc| in |accountsList|:
1. If |acc|["{{IdentityProviderAccount/picture}}"] is present, [=fetch the account picture=]
with |acc| and |globalObject|.

Note: The [=user agent=] may choose to show UI which does not initially require fetching the
account pictures. In these cases, the [=user agent=] may delay these fetches until they are
needed. Because errors from these fetches are ignored, they can happen in any order.
1. Let |registeredAccount|, |numRegisteredAccounts| be null and 0, respectively.
1. Let |account| be null.
1. For each |acc| in |accountsList|:
Expand Down

0 comments on commit 692af52

Please sign in to comment.