Source code

Revision control

Copy as Markdown

Other Tools

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
webidl BrowsingContext;
webidl CredentialChooserOption;
interface mozIDOMWindow;
interface nsICredentialChosenCallback;
interface nsIPrincipal;
interface nsIURI;
[scriptable, uuid(673ddc19-03e2-4b30-a868-06297e8fed89)]
interface nsICredentialChooserService : nsISupports {
/**
* A service function to help any UI. Fetches and serializes images to
* data urls, which can be used in chrome UI.
*
* @param window Window which should perform the fetch
* @param uri Icon location to be fetched from
* @returns A promise resolving with the data URI encoded as a string representing the icon that was loaded
*/
Promise fetchImageToDataURI(in mozIDOMWindow window, in nsIURI uri);
/**
* A helper function that performs precisely the right Fetch for the well-known resource for FedCM.
*
* @param {nsIURI} uri Well known resource location
* @param {nsIPrincipal} triggeringPrincipal Principal of the IDP triggering this request
* @returns A promise that will be the result of fetching the resource and parsing the body as JSON,
* or reject along the way.
*/
Promise fetchWellKnown(in nsIURI uri, in nsIPrincipal triggeringPrincipal);
/**
* A helper function that performs precisely the right Fetch for the IDP configuration resource for FedCM.
*
* @param {nsIURI} uri Well known resource location
* @param {nsIPrincipal} triggeringPrincipal Principal of the IDP triggering this request
* @returns A promise that will be the result of fetching the resource and parsing the body as JSON,
* or reject along the way.
*/
Promise fetchConfig(in nsIURI uri, in nsIPrincipal triggeringPrincipal);
/**
* A helper function that performs precisely the right Fetch for the account list for FedCM.
*
* @param {nsIURI} uri Well known resource location
* @param {nsIPrincipal} triggeringPrincipal Principal of the IDP triggering this request
* @returns A promise that will be the result of fetching the resource and parsing the body as JSON,
* or reject along the way.
*/
Promise fetchAccounts(in nsIURI uri, in nsIPrincipal triggeringPrincipal);
/**
* A helper function that performs precisely the right Fetch for the token request for FedCM.
*
* @param {nsIURI} uri Well known resource location
* @param {string} body Body to be sent with the fetch, pre-serialized.
* @param {nsIPrincipal} triggeringPrincipal Principal of the IDP triggering this request
* @returns A promise that will be the result of fetching the resource and parsing the body as JSON,
* or reject along the way.
*/
Promise fetchToken(in nsIURI uri, in string body, in nsIPrincipal triggeringPrincipal);
/**
* A helper function that performs precisely the right Fetch for the token request for FedCM.
*
* @param {nsIURI} uri Well known resource location
* @param {string} body Body to be sent with the fetch, pre-serialized.
* @param {nsIPrincipal} triggeringPrincipal Principal of the IDP triggering this request
* @returns A promise that will be the result of fetching the resource and parsing the body as JSON,
* or reject along the way.
*/
Promise fetchDisconnect(in nsIURI uri, in string body, in nsIPrincipal triggeringPrincipal);
};