mirror of
https://github.com/bitwarden/browser
synced 2025-12-11 22:03:36 +00:00
[deps] Platform: Update @types/chrome to v0.0.306 (#12126)
* [deps] Platform: Update @types/chrome to v0.0.306 * Fix APIs * Add `await` * Fix tests --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
This commit is contained in:
@@ -364,7 +364,7 @@ export class AutofillComponent implements OnInit {
|
||||
return;
|
||||
}
|
||||
|
||||
BrowserApi.updateDefaultBrowserAutofillSettings(!this.defaultBrowserAutofillDisabled);
|
||||
await BrowserApi.updateDefaultBrowserAutofillSettings(!this.defaultBrowserAutofillDisabled);
|
||||
}
|
||||
|
||||
private handleOverrideDialogAccept = async () => {
|
||||
|
||||
@@ -103,6 +103,7 @@ export function createChromeTabMock(customFields = {}): chrome.tabs.Tab {
|
||||
selected: true,
|
||||
discarded: false,
|
||||
autoDiscardable: false,
|
||||
frozen: false,
|
||||
groupId: 2,
|
||||
url: "https://jest-testing-website.com",
|
||||
...customFields,
|
||||
|
||||
@@ -2,6 +2,8 @@ import { mock } from "jest-mock-extended";
|
||||
|
||||
import { BrowserApi } from "./browser-api";
|
||||
|
||||
type ChromeSettingsGet = chrome.types.ChromeSetting<boolean>["get"];
|
||||
|
||||
describe("BrowserApi", () => {
|
||||
const executeScriptResult = ["value"];
|
||||
|
||||
@@ -468,19 +470,23 @@ describe("BrowserApi", () => {
|
||||
|
||||
describe("browserAutofillSettingsOverridden", () => {
|
||||
it("returns true if the browser autofill settings are overridden", async () => {
|
||||
const expectedDetails = {
|
||||
value: false,
|
||||
levelOfControl: "controlled_by_this_extension",
|
||||
} as chrome.types.ChromeSettingGetResultDetails;
|
||||
chrome.privacy.services.autofillAddressEnabled.get = jest.fn((details, callback) =>
|
||||
callback(expectedDetails),
|
||||
);
|
||||
chrome.privacy.services.autofillCreditCardEnabled.get = jest.fn((details, callback) =>
|
||||
callback(expectedDetails),
|
||||
);
|
||||
chrome.privacy.services.passwordSavingEnabled.get = jest.fn((details, callback) =>
|
||||
callback(expectedDetails),
|
||||
);
|
||||
const mockFn = jest.fn<
|
||||
void,
|
||||
[
|
||||
details: chrome.types.ChromeSettingGetDetails,
|
||||
callback: (details: chrome.types.ChromeSettingGetResult<boolean>) => void,
|
||||
],
|
||||
never
|
||||
>((details, callback) => {
|
||||
callback({
|
||||
value: false,
|
||||
levelOfControl: "controlled_by_this_extension",
|
||||
});
|
||||
});
|
||||
chrome.privacy.services.autofillAddressEnabled.get = mockFn as unknown as ChromeSettingsGet;
|
||||
chrome.privacy.services.autofillCreditCardEnabled.get =
|
||||
mockFn as unknown as ChromeSettingsGet;
|
||||
chrome.privacy.services.passwordSavingEnabled.get = mockFn as unknown as ChromeSettingsGet;
|
||||
|
||||
const result = await BrowserApi.browserAutofillSettingsOverridden();
|
||||
|
||||
@@ -488,19 +494,24 @@ describe("BrowserApi", () => {
|
||||
});
|
||||
|
||||
it("returns false if the browser autofill settings are not overridden", async () => {
|
||||
const expectedDetails = {
|
||||
value: true,
|
||||
levelOfControl: "controlled_by_this_extension",
|
||||
} as chrome.types.ChromeSettingGetResultDetails;
|
||||
chrome.privacy.services.autofillAddressEnabled.get = jest.fn((details, callback) =>
|
||||
callback(expectedDetails),
|
||||
);
|
||||
chrome.privacy.services.autofillCreditCardEnabled.get = jest.fn((details, callback) =>
|
||||
callback(expectedDetails),
|
||||
);
|
||||
chrome.privacy.services.passwordSavingEnabled.get = jest.fn((details, callback) =>
|
||||
callback(expectedDetails),
|
||||
);
|
||||
const mockFn = jest.fn<
|
||||
void,
|
||||
[
|
||||
details: chrome.types.ChromeSettingGetDetails,
|
||||
callback: (details: chrome.types.ChromeSettingGetResult<boolean>) => void,
|
||||
],
|
||||
never
|
||||
>((details, callback) => {
|
||||
callback({
|
||||
value: true,
|
||||
levelOfControl: "controlled_by_this_extension",
|
||||
});
|
||||
});
|
||||
|
||||
chrome.privacy.services.autofillAddressEnabled.get = mockFn as unknown as ChromeSettingsGet;
|
||||
chrome.privacy.services.autofillCreditCardEnabled.get =
|
||||
mockFn as unknown as ChromeSettingsGet;
|
||||
chrome.privacy.services.passwordSavingEnabled.get = mockFn as unknown as ChromeSettingsGet;
|
||||
|
||||
const result = await BrowserApi.browserAutofillSettingsOverridden();
|
||||
|
||||
@@ -508,19 +519,23 @@ describe("BrowserApi", () => {
|
||||
});
|
||||
|
||||
it("returns false if the browser autofill settings are not controlled by the extension", async () => {
|
||||
const expectedDetails = {
|
||||
value: false,
|
||||
levelOfControl: "controlled_by_other_extensions",
|
||||
} as chrome.types.ChromeSettingGetResultDetails;
|
||||
chrome.privacy.services.autofillAddressEnabled.get = jest.fn((details, callback) =>
|
||||
callback(expectedDetails),
|
||||
);
|
||||
chrome.privacy.services.autofillCreditCardEnabled.get = jest.fn((details, callback) =>
|
||||
callback(expectedDetails),
|
||||
);
|
||||
chrome.privacy.services.passwordSavingEnabled.get = jest.fn((details, callback) =>
|
||||
callback(expectedDetails),
|
||||
);
|
||||
const mockFn = jest.fn<
|
||||
void,
|
||||
[
|
||||
details: chrome.types.ChromeSettingGetDetails,
|
||||
callback: (details: chrome.types.ChromeSettingGetResult<boolean>) => void,
|
||||
],
|
||||
never
|
||||
>((details, callback) => {
|
||||
callback({
|
||||
value: false,
|
||||
levelOfControl: "controlled_by_other_extensions",
|
||||
});
|
||||
});
|
||||
chrome.privacy.services.autofillAddressEnabled.get = mockFn as unknown as ChromeSettingsGet;
|
||||
chrome.privacy.services.autofillCreditCardEnabled.get =
|
||||
mockFn as unknown as ChromeSettingsGet;
|
||||
chrome.privacy.services.passwordSavingEnabled.get = mockFn as unknown as ChromeSettingsGet;
|
||||
|
||||
const result = await BrowserApi.browserAutofillSettingsOverridden();
|
||||
|
||||
|
||||
@@ -504,7 +504,9 @@ export class BrowserApi {
|
||||
*
|
||||
* @param permissions - The permissions to check.
|
||||
*/
|
||||
static async permissionsGranted(permissions: string[]): Promise<boolean> {
|
||||
static async permissionsGranted(
|
||||
permissions: chrome.runtime.ManifestPermissions[],
|
||||
): Promise<boolean> {
|
||||
return new Promise((resolve) =>
|
||||
chrome.permissions.contains({ permissions }, (result) => resolve(result)),
|
||||
);
|
||||
@@ -594,7 +596,7 @@ export class BrowserApi {
|
||||
* Identifies if the browser autofill settings are overridden by the extension.
|
||||
*/
|
||||
static async browserAutofillSettingsOverridden(): Promise<boolean> {
|
||||
const checkOverrideStatus = (details: chrome.types.ChromeSettingGetResultDetails) =>
|
||||
const checkOverrideStatus = (details: chrome.types.ChromeSettingGetResult<boolean>) =>
|
||||
details.levelOfControl === "controlled_by_this_extension" && !details.value;
|
||||
|
||||
const autofillAddressOverridden: boolean = await new Promise((resolve) =>
|
||||
@@ -623,10 +625,10 @@ export class BrowserApi {
|
||||
*
|
||||
* @param value - Determines whether to enable or disable the autofill settings.
|
||||
*/
|
||||
static updateDefaultBrowserAutofillSettings(value: boolean) {
|
||||
chrome.privacy.services.autofillAddressEnabled.set({ value });
|
||||
chrome.privacy.services.autofillCreditCardEnabled.set({ value });
|
||||
chrome.privacy.services.passwordSavingEnabled.set({ value });
|
||||
static async updateDefaultBrowserAutofillSettings(value: boolean) {
|
||||
await chrome.privacy.services.autofillAddressEnabled.set({ value });
|
||||
await chrome.privacy.services.autofillCreditCardEnabled.set({ value });
|
||||
await chrome.privacy.services.passwordSavingEnabled.set({ value });
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
8
package-lock.json
generated
8
package-lock.json
generated
@@ -96,7 +96,7 @@
|
||||
"@storybook/theming": "8.5.2",
|
||||
"@storybook/web-components-webpack5": "8.5.2",
|
||||
"@types/argon2-browser": "1.18.4",
|
||||
"@types/chrome": "0.0.280",
|
||||
"@types/chrome": "0.0.306",
|
||||
"@types/firefox-webext-browser": "120.0.4",
|
||||
"@types/inquirer": "8.2.10",
|
||||
"@types/jest": "29.5.12",
|
||||
@@ -10904,9 +10904,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/chrome": {
|
||||
"version": "0.0.280",
|
||||
"resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.280.tgz",
|
||||
"integrity": "sha512-AotSmZrL9bcZDDmSI1D9dE7PGbhOur5L0cKxXd7IqbVizQWCY4gcvupPUVsQ4FfDj3V2tt/iOpomT9EY0s+w1g==",
|
||||
"version": "0.0.306",
|
||||
"resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.306.tgz",
|
||||
"integrity": "sha512-95kgcqvTNcaZCXmx/kIKY6uo83IaRNT3cuPxYqlB2Iu+HzKDCP4t7TUe7KhJijTdibcvn+SzziIcfSLIlgRnhQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
"@storybook/theming": "8.5.2",
|
||||
"@storybook/web-components-webpack5": "8.5.2",
|
||||
"@types/argon2-browser": "1.18.4",
|
||||
"@types/chrome": "0.0.280",
|
||||
"@types/chrome": "0.0.306",
|
||||
"@types/firefox-webext-browser": "120.0.4",
|
||||
"@types/inquirer": "8.2.10",
|
||||
"@types/jest": "29.5.12",
|
||||
|
||||
Reference in New Issue
Block a user