1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-12 14:23:32 +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:
renovate[bot]
2025-03-12 11:56:11 -04:00
committed by GitHub
parent c0f9754bdf
commit 402db8e899
6 changed files with 69 additions and 51 deletions

View File

@@ -364,7 +364,7 @@ export class AutofillComponent implements OnInit {
return; return;
} }
BrowserApi.updateDefaultBrowserAutofillSettings(!this.defaultBrowserAutofillDisabled); await BrowserApi.updateDefaultBrowserAutofillSettings(!this.defaultBrowserAutofillDisabled);
} }
private handleOverrideDialogAccept = async () => { private handleOverrideDialogAccept = async () => {

View File

@@ -103,6 +103,7 @@ export function createChromeTabMock(customFields = {}): chrome.tabs.Tab {
selected: true, selected: true,
discarded: false, discarded: false,
autoDiscardable: false, autoDiscardable: false,
frozen: false,
groupId: 2, groupId: 2,
url: "https://jest-testing-website.com", url: "https://jest-testing-website.com",
...customFields, ...customFields,

View File

@@ -2,6 +2,8 @@ import { mock } from "jest-mock-extended";
import { BrowserApi } from "./browser-api"; import { BrowserApi } from "./browser-api";
type ChromeSettingsGet = chrome.types.ChromeSetting<boolean>["get"];
describe("BrowserApi", () => { describe("BrowserApi", () => {
const executeScriptResult = ["value"]; const executeScriptResult = ["value"];
@@ -468,19 +470,23 @@ describe("BrowserApi", () => {
describe("browserAutofillSettingsOverridden", () => { describe("browserAutofillSettingsOverridden", () => {
it("returns true if the browser autofill settings are overridden", async () => { it("returns true if the browser autofill settings are overridden", async () => {
const expectedDetails = { const mockFn = jest.fn<
value: false, void,
levelOfControl: "controlled_by_this_extension", [
} as chrome.types.ChromeSettingGetResultDetails; details: chrome.types.ChromeSettingGetDetails,
chrome.privacy.services.autofillAddressEnabled.get = jest.fn((details, callback) => callback: (details: chrome.types.ChromeSettingGetResult<boolean>) => void,
callback(expectedDetails), ],
); never
chrome.privacy.services.autofillCreditCardEnabled.get = jest.fn((details, callback) => >((details, callback) => {
callback(expectedDetails), callback({
); value: false,
chrome.privacy.services.passwordSavingEnabled.get = jest.fn((details, callback) => levelOfControl: "controlled_by_this_extension",
callback(expectedDetails), });
); });
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(); const result = await BrowserApi.browserAutofillSettingsOverridden();
@@ -488,19 +494,24 @@ describe("BrowserApi", () => {
}); });
it("returns false if the browser autofill settings are not overridden", async () => { it("returns false if the browser autofill settings are not overridden", async () => {
const expectedDetails = { const mockFn = jest.fn<
value: true, void,
levelOfControl: "controlled_by_this_extension", [
} as chrome.types.ChromeSettingGetResultDetails; details: chrome.types.ChromeSettingGetDetails,
chrome.privacy.services.autofillAddressEnabled.get = jest.fn((details, callback) => callback: (details: chrome.types.ChromeSettingGetResult<boolean>) => void,
callback(expectedDetails), ],
); never
chrome.privacy.services.autofillCreditCardEnabled.get = jest.fn((details, callback) => >((details, callback) => {
callback(expectedDetails), callback({
); value: true,
chrome.privacy.services.passwordSavingEnabled.get = jest.fn((details, callback) => levelOfControl: "controlled_by_this_extension",
callback(expectedDetails), });
); });
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(); 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 () => { it("returns false if the browser autofill settings are not controlled by the extension", async () => {
const expectedDetails = { const mockFn = jest.fn<
value: false, void,
levelOfControl: "controlled_by_other_extensions", [
} as chrome.types.ChromeSettingGetResultDetails; details: chrome.types.ChromeSettingGetDetails,
chrome.privacy.services.autofillAddressEnabled.get = jest.fn((details, callback) => callback: (details: chrome.types.ChromeSettingGetResult<boolean>) => void,
callback(expectedDetails), ],
); never
chrome.privacy.services.autofillCreditCardEnabled.get = jest.fn((details, callback) => >((details, callback) => {
callback(expectedDetails), callback({
); value: false,
chrome.privacy.services.passwordSavingEnabled.get = jest.fn((details, callback) => levelOfControl: "controlled_by_other_extensions",
callback(expectedDetails), });
); });
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(); const result = await BrowserApi.browserAutofillSettingsOverridden();

View File

@@ -504,7 +504,9 @@ export class BrowserApi {
* *
* @param permissions - The permissions to check. * @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) => return new Promise((resolve) =>
chrome.permissions.contains({ permissions }, (result) => resolve(result)), 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. * Identifies if the browser autofill settings are overridden by the extension.
*/ */
static async browserAutofillSettingsOverridden(): Promise<boolean> { 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; details.levelOfControl === "controlled_by_this_extension" && !details.value;
const autofillAddressOverridden: boolean = await new Promise((resolve) => 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. * @param value - Determines whether to enable or disable the autofill settings.
*/ */
static updateDefaultBrowserAutofillSettings(value: boolean) { static async updateDefaultBrowserAutofillSettings(value: boolean) {
chrome.privacy.services.autofillAddressEnabled.set({ value }); await chrome.privacy.services.autofillAddressEnabled.set({ value });
chrome.privacy.services.autofillCreditCardEnabled.set({ value }); await chrome.privacy.services.autofillCreditCardEnabled.set({ value });
chrome.privacy.services.passwordSavingEnabled.set({ value }); await chrome.privacy.services.passwordSavingEnabled.set({ value });
} }
/** /**

8
package-lock.json generated
View File

@@ -96,7 +96,7 @@
"@storybook/theming": "8.5.2", "@storybook/theming": "8.5.2",
"@storybook/web-components-webpack5": "8.5.2", "@storybook/web-components-webpack5": "8.5.2",
"@types/argon2-browser": "1.18.4", "@types/argon2-browser": "1.18.4",
"@types/chrome": "0.0.280", "@types/chrome": "0.0.306",
"@types/firefox-webext-browser": "120.0.4", "@types/firefox-webext-browser": "120.0.4",
"@types/inquirer": "8.2.10", "@types/inquirer": "8.2.10",
"@types/jest": "29.5.12", "@types/jest": "29.5.12",
@@ -10904,9 +10904,9 @@
} }
}, },
"node_modules/@types/chrome": { "node_modules/@types/chrome": {
"version": "0.0.280", "version": "0.0.306",
"resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.280.tgz", "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.306.tgz",
"integrity": "sha512-AotSmZrL9bcZDDmSI1D9dE7PGbhOur5L0cKxXd7IqbVizQWCY4gcvupPUVsQ4FfDj3V2tt/iOpomT9EY0s+w1g==", "integrity": "sha512-95kgcqvTNcaZCXmx/kIKY6uo83IaRNT3cuPxYqlB2Iu+HzKDCP4t7TUe7KhJijTdibcvn+SzziIcfSLIlgRnhQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {

View File

@@ -58,7 +58,7 @@
"@storybook/theming": "8.5.2", "@storybook/theming": "8.5.2",
"@storybook/web-components-webpack5": "8.5.2", "@storybook/web-components-webpack5": "8.5.2",
"@types/argon2-browser": "1.18.4", "@types/argon2-browser": "1.18.4",
"@types/chrome": "0.0.280", "@types/chrome": "0.0.306",
"@types/firefox-webext-browser": "120.0.4", "@types/firefox-webext-browser": "120.0.4",
"@types/inquirer": "8.2.10", "@types/inquirer": "8.2.10",
"@types/jest": "29.5.12", "@types/jest": "29.5.12",