| // 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 IdentityUserInfo { |
| USVString email; |
| USVString name; |
| USVString givenName; |
| USVString picture; |
| }; |
| |
| dictionary IdentityResolveOptions { |
| USVString accountId; |
| }; |
| |
| dictionary IdentityProviderToken { |
| required USVString token; |
| }; |
| |
| // https://fedidcg.github.io/FedCM/#identityprovider |
| [ |
| Exposed=Window, |
| SecureContext, |
| RuntimeEnabled=FedCm |
| ] interface IdentityProvider { |
| // Allows an IDP to request user info from its own iframe embeded on an RP. |
| [CallWith=ScriptState, RaisesException, MeasureAs=FedCmUserInfo] |
| static Promise<sequence<IdentityUserInfo>> getUserInfo(IdentityProviderConfig config); |
| |
| [CallWith=ScriptState] static void close(); |
| |
| [RuntimeEnabled=FedCmIdPRegistration, CallWith=ScriptState, ImplementedAs=registerIdentityProvider] |
| static Promise<boolean> register(USVString configURL); |
| [RuntimeEnabled=FedCmIdPRegistration, CallWith=ScriptState, ImplementedAs=unregisterIdentityProvider] |
| static Promise<undefined> unregister(USVString configURL); |
| |
| // Allows an IdP to return a token to the RP from the content area, as opposed to |
| // over HTTP with the id_assertion_endpoint. |
| [CallWith=ScriptState] static Promise<undefined> resolve(any token, optional IdentityResolveOptions options = {}); |
| }; |