From ecbfa4517b76c66eb76c1565f836f028a5cdc243 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 11:47:03 +0200 Subject: [PATCH] build(deps-dev): bump the npm-deps group with 4 updates (#5865) * build(deps-dev): bump the npm-deps group with 4 updates Bumps the npm-deps group with 4 updates: [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome), [eslint](https://github.com/eslint/eslint), [puppeteer](https://github.com/puppeteer/puppeteer) and [undici-types](https://github.com/nodejs/undici). Updates `@types/chrome` from 0.0.280 to 0.0.283 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome) Updates `eslint` from 9.14.0 to 9.15.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.14.0...v9.15.0) Updates `puppeteer` from 23.7.1 to 23.8.0 - [Release notes](https://github.com/puppeteer/puppeteer/releases) - [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json) - [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v23.7.1...puppeteer-v23.8.0) Updates `undici-types` from 6.20.0 to 6.21.0 - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v6.20.0...v6.21.0) --- updated-dependencies: - dependency-name: "@types/chrome" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-deps - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-deps - dependency-name: puppeteer dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-deps - dependency-name: undici-types dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-deps ... Signed-off-by: dependabot[bot] * fix --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Roma Sosnovsky --- .../webmail/gmail/gmail-webmail-startup.ts | 1 + package-lock.json | 96 ++++++++++--------- package.json | 8 +- test/source/browser/controllable.ts | 2 + test/source/patterns.ts | 2 + .../tests/page-recipe/abstract-page-recipe.ts | 1 + tooling/build-types-and-manifests.ts | 5 +- 7 files changed, 63 insertions(+), 52 deletions(-) diff --git a/extension/js/content_scripts/webmail/gmail/gmail-webmail-startup.ts b/extension/js/content_scripts/webmail/gmail/gmail-webmail-startup.ts index f376dbde4a8..0d035aaa882 100644 --- a/extension/js/content_scripts/webmail/gmail/gmail-webmail-startup.ts +++ b/extension/js/content_scripts/webmail/gmail/gmail-webmail-startup.ts @@ -88,6 +88,7 @@ export class GmailWebmailStartup { private injectFCVarScript = () => { const scriptElement = document.createElement('script'); + // eslint-disable-next-line @typescript-eslint/no-deprecated scriptElement.src = chrome.runtime.getURL('/js/common/core/feature-config-injector.js'); (document.head || document.documentElement).appendChild(scriptElement); }; diff --git a/package-lock.json b/package-lock.json index 24281bcae60..ebdf4c4d818 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,14 +31,14 @@ "@openpgp/web-stream-tools": "^0.0.13", "@types/chai": "4.3.19", "@types/chai-as-promised": "7.1.8", - "@types/chrome": "0.0.280", + "@types/chrome": "0.0.283", "@types/dompurify": "3.0.5", "@types/jquery": "3.5.32", "@types/mailparser": "3.4.5", "ava": "5.3.1", "chai": "4.5.0", "chai-as-promised": "7.1.2", - "eslint": "^9.14.0", + "eslint": "9.14.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-header": "github:FlowCrypt/eslint-plugin-header", "eslint-plugin-jsdoc": "^50.5.0", @@ -54,12 +54,12 @@ "openpgp": "5.11.2", "pdfjs-dist": "4.8.69", "prettier": "^3.3.3", - "puppeteer": "23.7.1", + "puppeteer": "23.8.0", "stylelint": "16.10.0", "stylelint-config-standard": "36.0.1", "typescript": "5.6.3", "typescript-eslint": "^8.13.0", - "undici-types": "^6.20.0", + "undici-types": "^6.21.0", "web-ext": "8.3.0", "webpack-cli": "^5.1.1" } @@ -355,9 +355,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "license": "MIT", "dependencies": { @@ -399,9 +399,9 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz", - "integrity": "sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -795,9 +795,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.283", + "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.283.tgz", + "integrity": "sha512-bPnu1JqeQxMceRP0oxFYrauoe0BlWxxQxhYL58gWLg5Ywsd3i3Dd6By9OW7BdkNQMokodWzBLR5FHDIeQZvJWg==", "dev": true, "license": "MIT", "dependencies": { @@ -2695,9 +2695,9 @@ } }, "node_modules/boxen/node_modules/type-fest": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", - "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.27.0.tgz", + "integrity": "sha512-3IMSWgP7C5KSQqmo1wjhKrwsvXAtF33jO3QY+Uy++ia7hqvgSK6iXbbg5PbDBc1P2ZbNEDgejOrN4YooXvhwCw==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -4012,9 +4012,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1354347", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1354347.tgz", - "integrity": "sha512-BlmkSqV0V84E2WnEnoPnwyix57rQxAM5SKJjf4TbYOCGLAWtz8CDH8RIaGOjPgPCXo2Mce3kxSY497OySidY3Q==", + "version": "0.0.1367902", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz", + "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==", "dev": true, "license": "BSD-3-Clause" }, @@ -4088,7 +4088,8 @@ "node_modules/dompurify": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.0.tgz", - "integrity": "sha512-AMdOzK44oFWqHEi0wpOqix/fUNY707OmoeFDnbi3Q5I8uOpy21ufUA5cDJPr0bosxrflOVD/H2DMSvuGKJGfmQ==" + "integrity": "sha512-AMdOzK44oFWqHEi0wpOqix/fUNY707OmoeFDnbi3Q5I8uOpy21ufUA5cDJPr0bosxrflOVD/H2DMSvuGKJGfmQ==", + "license": "(MPL-2.0 OR Apache-2.0)" }, "node_modules/domutils": { "version": "3.1.0", @@ -4121,9 +4122,9 @@ } }, "node_modules/dot-prop/node_modules/type-fest": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", - "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.27.0.tgz", + "integrity": "sha512-3IMSWgP7C5KSQqmo1wjhKrwsvXAtF33jO3QY+Uy++ia7hqvgSK6iXbbg5PbDBc1P2ZbNEDgejOrN4YooXvhwCw==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -4157,9 +4158,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.56", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.56.tgz", - "integrity": "sha512-7lXb9dAvimCFdvUMTyucD4mnIndt/xhRKFAlky0CyFogdnNmdPQNoHI23msF/2V4mpTxMzgMdjK4+YRlFlRQZw==", + "version": "1.5.62", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.62.tgz", + "integrity": "sha512-t8c+zLmJHa9dJy96yBZRXGQYoiCEnHYgFwn1asvSPZSUdVxnB62A4RASd7k41ytG3ErFBA0TpHlKg9D9SQBmLg==", "dev": true, "license": "ISC", "peer": true @@ -4460,6 +4461,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.5.0.tgz", "integrity": "sha512-xTkshfZrUbiSHXBwZ/9d5ulZ2OcHXxSvm/NPo494H/hadLRJwOq5PMV0EUpMqsb9V+kQo+9BAgi6Z7aJtdBp2A==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@es-joy/jsdoccomment": "~0.49.0", "are-docs-informative": "^0.0.2", @@ -5444,9 +5446,9 @@ } }, "node_modules/google-auth-library": { - "version": "9.14.2", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.14.2.tgz", - "integrity": "sha512-R+FRIfk1GBo3RdlRYWPdwk8nmtVUOn6+BkDomAC46KoU8kzXzE1HLmOasSCbWUByMMAGkknVF0G5kQ69Vj7dlA==", + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.0.tgz", + "integrity": "sha512-7ccSEJFDFO7exFbO6NRyC+xH8/mZ1GZGG2xxx9iHxZWcjUjJpjWxIMw3cofAKcueZ6DATiukmmprD7yavQHOyQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -8736,9 +8738,9 @@ } }, "node_modules/puppeteer": { - "version": "23.7.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.7.1.tgz", - "integrity": "sha512-jS6XehagMvxQ12etwY/4EOYZ0Sm8GAsrtGhdQn4AqpJAyHc3RYl7tGd4QYh/MmShDw8sF9FWYQqGidhoXaqokQ==", + "version": "23.8.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.8.0.tgz", + "integrity": "sha512-MFWDMWoCcOpwNwQIjA9gPKWrEUbj8bLCzkK56w5lZPMUT6wK4FfpgOEPxKffVmXEMYMZzgcjxzqy15b/Q1ibaw==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", @@ -8746,8 +8748,8 @@ "@puppeteer/browsers": "2.4.1", "chromium-bidi": "0.8.0", "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1354347", - "puppeteer-core": "23.7.1", + "devtools-protocol": "0.0.1367902", + "puppeteer-core": "23.8.0", "typed-query-selector": "^2.12.0" }, "bin": { @@ -8758,16 +8760,16 @@ } }, "node_modules/puppeteer-core": { - "version": "23.7.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.7.1.tgz", - "integrity": "sha512-Om/qCZhd+HLoAr7GltrRAZpS3uOXwHu7tXAoDbNcJADHjG2zeAlDArgyIPXYGG4QB/EQUHk13Q6RklNxGM73Pg==", + "version": "23.8.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.8.0.tgz", + "integrity": "sha512-c2ymGN2M//We7pC+JhP2dE/g4+qnT89BO+EMSZyJmecN3DN6RNqErA7eH7DrWoNIcU75r2nP4VHa4pswAL6NVg==", "dev": true, "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "2.4.1", "chromium-bidi": "0.8.0", "debug": "^4.3.7", - "devtools-protocol": "0.0.1354347", + "devtools-protocol": "0.0.1367902", "typed-query-selector": "^2.12.0", "ws": "^8.18.0" }, @@ -8776,9 +8778,9 @@ } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -9831,9 +9833,9 @@ } }, "node_modules/streamx": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz", - "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==", + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.2.tgz", + "integrity": "sha512-aDGDLU+j9tJcUdPGOaHmVF1u/hhI+CsGkT02V3OKlHDV7IukOI+nTWAGkiZEKCO35rWN1wIr4tS7YFr1f4qSvA==", "dev": true, "license": "MIT", "dependencies": { @@ -10975,9 +10977,9 @@ } }, "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index 5ebb7275ac3..596d587a54c 100644 --- a/package.json +++ b/package.json @@ -9,14 +9,14 @@ "@openpgp/web-stream-tools": "^0.0.13", "@types/chai": "4.3.19", "@types/chai-as-promised": "7.1.8", - "@types/chrome": "0.0.280", + "@types/chrome": "0.0.283", "@types/dompurify": "3.0.5", "@types/jquery": "3.5.32", "@types/mailparser": "3.4.5", "ava": "5.3.1", "chai": "4.5.0", "chai-as-promised": "7.1.2", - "eslint": "^9.14.0", + "eslint": "9.14.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-header": "github:FlowCrypt/eslint-plugin-header", "eslint-plugin-jsdoc": "^50.5.0", @@ -32,12 +32,12 @@ "openpgp": "5.11.2", "pdfjs-dist": "4.8.69", "prettier": "^3.3.3", - "puppeteer": "23.7.1", + "puppeteer": "23.8.0", "stylelint": "16.10.0", "stylelint-config-standard": "36.0.1", "typescript": "5.6.3", "typescript-eslint": "^8.13.0", - "undici-types": "^6.20.0", + "undici-types": "^6.21.0", "web-ext": "8.3.0", "webpack-cli": "^5.1.1" }, diff --git a/test/source/browser/controllable.ts b/test/source/browser/controllable.ts index 58df254bd0d..5d79c3ecdb8 100644 --- a/test/source/browser/controllable.ts +++ b/test/source/browser/controllable.ts @@ -867,6 +867,7 @@ export class ControllablePage extends ControllableBase { const result = await this.target.evaluate( async keys => await new Promise(resolve => { + // eslint-disable-next-line @typescript-eslint/no-deprecated chrome.storage.local.get(keys, resolve); }), keys @@ -875,6 +876,7 @@ export class ControllablePage extends ControllableBase { }; public setLocalStorage = async (key: string, value: string | null): Promise => { + // eslint-disable-next-line @typescript-eslint/no-deprecated await this.target.evaluate(async (key, value) => await chrome.storage.local.set({ [key]: value }), key, value); }; diff --git a/test/source/patterns.ts b/test/source/patterns.ts index bfa686ffa51..28d6129e6ef 100644 --- a/test/source/patterns.ts +++ b/test/source/patterns.ts @@ -78,10 +78,12 @@ for (const srcFilePath of getAllFilesInDir('./extension', /\.ts$/)) { * check for problems in manifest file (because dynamically generated) * https://github.com/FlowCrypt/flowcrypt-browser/issues/2934 */ +// eslint-disable-next-line @typescript-eslint/no-deprecated const expectedPermissions: chrome.runtime.ManifestPermissions[] = ['alarms', 'scripting', 'storage', 'tabs', 'unlimitedStorage']; const expectedConsumerHostPermissions = ['https://*.google.com/*', 'https://www.googleapis.com/*', 'https://flowcrypt.com/*']; const expectedEnterpriseHostPermissions = ['https://*.google.com/*', 'https://*.googleapis.com/*', 'https://flowcrypt.com/*']; for (const buildType of ['chrome-consumer', 'chrome-enterprise', 'thunderbird-consumer', 'firefox-consumer']) { + // eslint-disable-next-line @typescript-eslint/no-deprecated const manifest = JSON.parse(readFileSync(`./build/${buildType}/manifest.json`).toString()) as chrome.runtime.Manifest; const isManifestV3Build = buildType.includes('chrome') || buildType.includes('firefox'); const expectedHostPermissions = buildType.includes('consumer') ? expectedConsumerHostPermissions : expectedEnterpriseHostPermissions; diff --git a/test/source/tests/page-recipe/abstract-page-recipe.ts b/test/source/tests/page-recipe/abstract-page-recipe.ts index cecd1bee127..5247c522f63 100644 --- a/test/source/tests/page-recipe/abstract-page-recipe.ts +++ b/test/source/tests/page-recipe/abstract-page-recipe.ts @@ -56,6 +56,7 @@ export abstract class PageRecipe { return await controllable.target.evaluate( async msg => await new Promise(resolve => { + // eslint-disable-next-line @typescript-eslint/no-deprecated chrome.runtime.sendMessage(msg, resolve); }), msg diff --git a/tooling/build-types-and-manifests.ts b/tooling/build-types-and-manifests.ts index e24f7957216..033bf0cfa05 100644 --- a/tooling/build-types-and-manifests.ts +++ b/tooling/build-types-and-manifests.ts @@ -14,7 +14,9 @@ import { execSync as exec } from 'child_process'; const DIR = './build'; const version: string = (JSON.parse(readFileSync('./package.json').toString()) as { version: string }).version; +// eslint-disable-next-line @typescript-eslint/no-deprecated const addManifest = (toBuildType: string, transform: (manifest: chrome.runtime.Manifest) => void, fromBuildType = 'generic-extension-wip') => { + // eslint-disable-next-line @typescript-eslint/no-deprecated const manifest = JSON.parse(readFileSync(`${DIR}/${fromBuildType}/manifest.json`).toString()) as chrome.runtime.ManifestV3; transform(manifest); writeFileSync(`${DIR}/${toBuildType}/manifest.json`, JSON.stringify(manifest, undefined, 2)); @@ -37,7 +39,7 @@ addManifest('firefox-consumer', manifest => { type: 'module', scripts: ['/js/service_worker/background.js'], }; - // eslint-disable-next-line @typescript-eslint/naming-convention, @typescript-eslint/no-unused-vars + // eslint-disable-next-line @typescript-eslint/naming-convention, @typescript-eslint/no-unused-vars, @typescript-eslint/no-deprecated const { service_worker, ...newManifest } = manifest.background as chrome.runtime.ManifestV3; manifest = newManifest; manifest.permissions = manifest.permissions?.filter((p: string) => p !== 'unlimitedStorage'); @@ -52,6 +54,7 @@ addManifest( manifest.name = 'FlowCrypt Encryption for Thunderbird'; manifest.description = 'Simple end-to-end encryption to secure email and attachments on Thunderbird'; manifest.permissions = [...(manifest.permissions ?? []), 'compose', 'messagesRead', 'messagesUpdate', 'messagesModify', 'accountsRead']; + // eslint-disable-next-line @typescript-eslint/no-deprecated const manifestV3 = manifest as chrome.runtime.ManifestV3; manifest.web_accessible_resources = manifestV3.web_accessible_resources?.[0].resources; manifest.content_security_policy = manifestV3.content_security_policy?.extension_pages;