diff --git a/.circleci/scripts/chrome-install.sh b/.circleci/scripts/chrome-install.sh index 450293197..cba84785f 100755 --- a/.circleci/scripts/chrome-install.sh +++ b/.circleci/scripts/chrome-install.sh @@ -7,12 +7,12 @@ set -o pipefail sudo apt-get update # To get the latest version, see -CHROME_VERSION='111.0.5563.64-1' +CHROME_VERSION='114.0.5735.133-1' CHROME_BINARY="google-chrome-stable_${CHROME_VERSION}_amd64.deb" CHROME_BINARY_URL="https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/${CHROME_BINARY}" # To retrieve this checksum, run the `wget` and `shasum` commands below -CHROME_BINARY_SHA512SUM='bbfd436c17d6f0554b91211ecf1324aeeac012f1d000d610f93956dbfb8387c0adb56f921c5b7bcc1833c49ab2abbd3bbc250001f650b3ca4f79cebe708c29ae' +CHROME_BINARY_SHA512SUM='0b1a18c44efb72ed3e69a5f78419ff5fa973df42b18a8becfcc3d4f6825957c637e9396d07756f910f2d9c7c85a3e2b64cc30cca18182ae8811feadd609f159d' wget -O "${CHROME_BINARY}" -t 5 "${CHROME_BINARY_URL}" diff --git a/development/build/index.js b/development/build/index.js index 1ca565043..33051f5a3 100755 --- a/development/build/index.js +++ b/development/build/index.js @@ -81,6 +81,65 @@ async function defineAndRunBuildTasks() { // scuttle on production/tests environment only const shouldScuttle = entryTask !== BUILD_TARGETS.DEV; + let scuttleGlobalThisExceptions = [ + // globals used by different mm deps outside of lm compartment + 'toString', + 'getComputedStyle', + 'addEventListener', + 'removeEventListener', + 'ShadowRoot', + 'HTMLElement', + 'Element', + 'pageXOffset', + 'pageYOffset', + 'visualViewport', + 'Reflect', + 'Set', + 'Object', + 'navigator', + 'harden', + 'console', + 'Image', // Used by browser to generate notifications + // globals chromedriver needs to function + /cdc_[a-zA-Z0-9]+_[a-zA-Z]+/iu, + 'performance', + 'parseFloat', + 'innerWidth', + 'innerHeight', + 'Symbol', + 'Math', + 'DOMRect', + 'Number', + 'Array', + 'crypto', + 'Function', + 'Uint8Array', + 'String', + 'Promise', + 'JSON', + 'Date', + // globals sentry needs to function + '__SENTRY__', + 'appState', + 'extra', + 'stateHooks', + 'sentryHooks', + 'sentry', + ]; + + if ( + entryTask === BUILD_TARGETS.TEST || + entryTask === BUILD_TARGETS.TEST_DEV + ) { + scuttleGlobalThisExceptions = [ + ...scuttleGlobalThisExceptions, + // more globals chromedriver needs to function + // in the future, more of the globals above can be put in this list + 'Proxy', + 'ret_nodes', + ]; + } + console.log( `Building lavamoat runtime file`, `(scuttling is ${shouldScuttle ? 'on' : 'off'})`, @@ -89,52 +148,7 @@ async function defineAndRunBuildTasks() { // build lavamoat runtime file await lavapack.buildRuntime({ scuttleGlobalThis: applyLavaMoat && shouldScuttle, - scuttleGlobalThisExceptions: [ - // globals used by different mm deps outside of lm compartment - 'toString', - 'getComputedStyle', - 'addEventListener', - 'removeEventListener', - 'ShadowRoot', - 'HTMLElement', - 'Element', - 'pageXOffset', - 'pageYOffset', - 'visualViewport', - 'Reflect', - 'Set', - 'Object', - 'navigator', - 'harden', - 'console', - 'Image', // Used by browser to generate notifications - // globals chrome driver needs to function (test env) - /cdc_[a-zA-Z0-9]+_[a-zA-Z]+/iu, - 'performance', - 'parseFloat', - 'innerWidth', - 'innerHeight', - 'Symbol', - 'Math', - 'DOMRect', - 'Number', - 'Array', - 'crypto', - 'Function', - 'Uint8Array', - 'String', - 'Promise', - 'JSON', - 'Date', - 'Proxy', - // globals sentry needs to function - '__SENTRY__', - 'appState', - 'extra', - 'stateHooks', - 'sentryHooks', - 'sentry', - ], + scuttleGlobalThisExceptions, }); } diff --git a/lavamoat/build-system/policy.json b/lavamoat/build-system/policy.json index 9ee988092..89e2820e1 100644 --- a/lavamoat/build-system/policy.json +++ b/lavamoat/build-system/policy.json @@ -980,6 +980,7 @@ "packages": { "@lavamoat/allow-scripts>@npmcli/run-script>node-gyp>npmlog>are-we-there-yet": true, "@lavamoat/allow-scripts>@npmcli/run-script>node-gyp>npmlog>gauge": true, + "@storybook/addon-mdx-gfm>@storybook/node-logger>npmlog>console-control-strings": true, "@storybook/react>@storybook/node-logger>npmlog>console-control-strings": true, "nyc>yargs>set-blocking": true } @@ -1008,6 +1009,9 @@ "@lavamoat/allow-scripts>@npmcli/run-script>node-gyp>npmlog>gauge>aproba": true, "@lavamoat/allow-scripts>@npmcli/run-script>node-gyp>npmlog>gauge>string-width": true, "@lavamoat/allow-scripts>@npmcli/run-script>node-gyp>npmlog>gauge>strip-ansi": true, + "@storybook/addon-mdx-gfm>@storybook/node-logger>npmlog>console-control-strings": true, + "@storybook/addon-mdx-gfm>@storybook/node-logger>npmlog>gauge>has-unicode": true, + "@storybook/addon-mdx-gfm>@storybook/node-logger>npmlog>gauge>wide-align": true, "@storybook/react>@storybook/node-logger>npmlog>console-control-strings": true, "@storybook/react>@storybook/node-logger>npmlog>gauge>has-unicode": true, "@storybook/react>@storybook/node-logger>npmlog>gauge>wide-align": true, @@ -1133,11 +1137,33 @@ "@metamask/jazzicon>color>color-convert>color-name": true } }, + "@sentry/cli>mkdirp": { + "builtin": { + "fs": true, + "path.dirname": true, + "path.resolve": true + } + }, "@storybook/addon-knobs>qs": { "packages": { "string.prototype.matchall>side-channel": true } }, + "@storybook/addon-mdx-gfm>@storybook/node-logger>npmlog>gauge>has-unicode": { + "builtin": { + "os.type": true + }, + "globals": { + "process.env.LANG": true, + "process.env.LC_ALL": true, + "process.env.LC_CTYPE": true + } + }, + "@storybook/addon-mdx-gfm>@storybook/node-logger>npmlog>gauge>wide-align": { + "packages": { + "yargs>string-width": true + } + }, "@storybook/core>@storybook/core-server>x-default-browser>default-browser-id>untildify>os-homedir": { "builtin": { "os.homedir": true @@ -4869,9 +4895,20 @@ }, "packages": { "@storybook/core>@storybook/core-server>x-default-browser>default-browser-id>untildify>os-homedir": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-homedir": true, "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-tmpdir": true } }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-homedir": { + "builtin": { + "os.homedir": true + }, + "globals": { + "process.env": true, + "process.getuid": true, + "process.platform": true + } + }, "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-tmpdir": { "globals": { "process.env.SystemRoot": true, @@ -4893,9 +4930,34 @@ "setTimeout": true }, "packages": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob": true, "nyc>glob": true } }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob": { + "builtin": { + "assert": true, + "events.EventEmitter": true, + "fs": true, + "path.join": true, + "path.resolve": true, + "util": true + }, + "globals": { + "console.error": true, + "process.cwd": true, + "process.nextTick": true, + "process.platform": true + }, + "packages": { + "eslint>minimatch": true, + "gulp-watch>path-is-absolute": true, + "nyc>glob>fs.realpath": true, + "nyc>glob>inflight": true, + "pump>once": true, + "pumpify>inherits": true + } + }, "gulp-watch>chokidar>fsevents>node-pre-gyp>semver": { "globals": { "console": true, @@ -8184,14 +8246,7 @@ "path.dirname": true }, "packages": { - "stylelint>file-entry-cache>flat-cache>write>mkdirp": true - } - }, - "stylelint>file-entry-cache>flat-cache>write>mkdirp": { - "builtin": { - "fs": true, - "path.dirname": true, - "path.resolve": true + "@sentry/cli>mkdirp": true } }, "stylelint>global-modules": { diff --git a/package.json b/package.json index c7ed2b232..8ccf3b50c 100644 --- a/package.json +++ b/package.json @@ -444,7 +444,7 @@ "browserify": "^16.5.1", "chalk": "^4.1.2", "chokidar": "^3.5.3", - "chromedriver": "^111.0.0", + "chromedriver": "^114.0.0", "concurrently": "^7.6.0", "copy-webpack-plugin": "^6.0.3", "cross-spawn": "^7.0.3", diff --git a/yarn.lock b/yarn.lock index 90f343739..2ac67adc8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10180,7 +10180,7 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.2.1": +"axios@npm:^1.4.0": version: 1.4.0 resolution: "axios@npm:1.4.0" dependencies: @@ -12006,20 +12006,20 @@ __metadata: languageName: node linkType: hard -"chromedriver@npm:^111.0.0": - version: 111.0.0 - resolution: "chromedriver@npm:111.0.0" +"chromedriver@npm:^114.0.0": + version: 114.0.2 + resolution: "chromedriver@npm:114.0.2" dependencies: "@testim/chrome-version": ^1.1.3 - axios: ^1.2.1 - compare-versions: ^5.0.1 + axios: ^1.4.0 + compare-versions: ^5.0.3 extract-zip: ^2.0.1 https-proxy-agent: ^5.0.1 proxy-from-env: ^1.1.0 tcp-port-used: ^1.0.1 bin: chromedriver: bin/chromedriver - checksum: 3331d0d2c84aa90c9cfb6945067b4634806e823452d345feedc20cd1c940a9179eb7f2b5067e1bdbceba47c9acc719fd876235ba972d3987f73d95550897fbed + checksum: fe8b9fa768e5689e8d2f2c76d31042cf7fe843a387c746e1fc68fce068817f26754c8dd4f825c0b416444ff94bdc6b522a5102d776737475622bf727b33ada38 languageName: node linkType: hard @@ -12580,7 +12580,7 @@ __metadata: languageName: node linkType: hard -"compare-versions@npm:^5.0.1": +"compare-versions@npm:^5.0.3": version: 5.0.3 resolution: "compare-versions@npm:5.0.3" checksum: f66a4bb6ef8ff32031cc92c04dea4bbead039e72a7f6c7df7ef05f5a42ddca9202f8875b7449add54181e73b89f039662a8760c8db0ab036c4e8f653a7cd29c1 @@ -24456,7 +24456,7 @@ __metadata: browserify: ^16.5.1 chalk: ^4.1.2 chokidar: ^3.5.3 - chromedriver: ^111.0.0 + chromedriver: ^114.0.0 classnames: ^2.2.6 concurrently: ^7.6.0 copy-to-clipboard: ^3.0.8