blob: 4020bea5b39d7ac3770bb70737e93f3b33e7cf5a [file] [log] [blame]
// 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 = {});
};