89 lines
2.4 KiB
JavaScript
89 lines
2.4 KiB
JavaScript
/* 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/. */
|
|
|
|
import { GeckoViewUtils } from "resource://gre/modules/GeckoViewUtils.sys.mjs";
|
|
|
|
const lazy = {};
|
|
|
|
ChromeUtils.defineESModuleGetters(lazy, {
|
|
GeckoViewPrompter: "resource://gre/modules/GeckoViewPrompter.sys.mjs",
|
|
});
|
|
|
|
export const GeckoViewIdentityCredential = {
|
|
async onShowProviderPrompt(aBrowser, providers, resolve, reject) {
|
|
const prompt = new lazy.GeckoViewPrompter(aBrowser.ownerGlobal);
|
|
debug`onShowProviderPrompt`;
|
|
|
|
prompt.asyncShowPrompt(
|
|
{
|
|
type: "IdentityCredential:Select:Provider",
|
|
providers,
|
|
},
|
|
result => {
|
|
if (result && result.providerIndex != null) {
|
|
debug`onShowProviderPrompt resolve with ${result.providerIndex}`;
|
|
resolve(result.providerIndex);
|
|
} else {
|
|
debug`onShowProviderPrompt rejected`;
|
|
reject();
|
|
}
|
|
}
|
|
);
|
|
},
|
|
async onShowAccountsPrompt(aBrowser, accounts, resolve, reject) {
|
|
const prompt = new lazy.GeckoViewPrompter(aBrowser.ownerGlobal);
|
|
debug`onShowAccountsPrompt`;
|
|
|
|
prompt.asyncShowPrompt(
|
|
{
|
|
type: "IdentityCredential:Select:Account",
|
|
accounts,
|
|
},
|
|
result => {
|
|
if (result && result.accountIndex != null) {
|
|
debug`onShowAccountsPrompt resolve with ${result.accountIndex}`;
|
|
resolve(result.accountIndex);
|
|
} else {
|
|
debug`onShowAccountsPrompt rejected`;
|
|
reject();
|
|
}
|
|
}
|
|
);
|
|
},
|
|
async onShowPolicyPrompt(
|
|
aBrowser,
|
|
privacyPolicyUrl,
|
|
termsOfServiceUrl,
|
|
providerDomain,
|
|
host,
|
|
icon,
|
|
resolve,
|
|
reject
|
|
) {
|
|
const prompt = new lazy.GeckoViewPrompter(aBrowser.ownerGlobal);
|
|
debug`onShowPolicyPrompt`;
|
|
|
|
prompt.asyncShowPrompt(
|
|
{
|
|
type: "IdentityCredential:Show:Policy",
|
|
privacyPolicyUrl,
|
|
termsOfServiceUrl,
|
|
providerDomain,
|
|
host,
|
|
icon,
|
|
},
|
|
result => {
|
|
if (result && result.accept != null) {
|
|
debug`onShowPolicyPrompt resolve with ${result.accept}`;
|
|
resolve(result.accept);
|
|
} else {
|
|
debug`onShowPolicyPrompt rejected`;
|
|
reject();
|
|
}
|
|
}
|
|
);
|
|
},
|
|
};
|
|
|
|
const { debug } = GeckoViewUtils.initLogging("GeckoViewIdentityCredential");
|