diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b080362a56bfa..359027206b3d4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,6 @@ jobs: runs-on: windows-2022 timeout-minutes: 60 env: - CHILD_CONCURRENCY: "1" GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 @@ -57,6 +56,7 @@ jobs: - name: Execute npm if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} env: + npm_config_foreground_scripts: "true" PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 ELECTRON_SKIP_BINARY_DOWNLOAD: 1 run: npm ci diff --git a/.github/workflows/rich-navigation.yml.off b/.github/workflows/rich-navigation.yml.off index cc22d83030d23..7850fed14cfb3 100644 --- a/.github/workflows/rich-navigation.yml.off +++ b/.github/workflows/rich-navigation.yml.off @@ -29,7 +29,7 @@ jobs: if: steps.caching-stage.outputs.cache-hit != 'true' run: npm ci env: - CHILD_CONCURRENCY: 1 + npm_config_foreground_scripts: "true" - uses: microsoft/RichCodeNavIndexer@v0.1 with: diff --git a/.npmrc b/.npmrc index b54679bde3c87..8addc73f673a6 100644 --- a/.npmrc +++ b/.npmrc @@ -1,6 +1,6 @@ disturl="https://electronjs.org/headers" -target="30.5.1" -ms_build_id="10306386" +target="32.1.2" +ms_build_id="10323173" runtime="electron" build_from_source="true" legacy-peer-deps="true" diff --git a/.nvmrc b/.nvmrc index 8ce7030825b5e..3516580bbbc04 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20.16.0 +20.17.0 diff --git a/build/azure-pipelines/alpine/product-build-alpine.yml b/build/azure-pipelines/alpine/product-build-alpine.yml index 077ec0ba11b7c..890bc68c7380d 100644 --- a/build/azure-pipelines/alpine/product-build-alpine.yml +++ b/build/azure-pipelines/alpine/product-build-alpine.yml @@ -73,6 +73,7 @@ steps: - script: | set -e + for i in {1..5}; do # try 5 times npm ci && break if [ $i -eq 5 ]; then diff --git a/build/azure-pipelines/darwin/product-build-darwin.yml b/build/azure-pipelines/darwin/product-build-darwin.yml index c863c60d5027c..19398a701429c 100644 --- a/build/azure-pipelines/darwin/product-build-darwin.yml +++ b/build/azure-pipelines/darwin/product-build-darwin.yml @@ -75,16 +75,10 @@ steps: condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none')) displayName: Setup NPM Authentication - - script: | - set -e - # Refs https://github.com/microsoft/vscode/issues/219893#issuecomment-2209313109 - sudo xcode-select --switch /Applications/Xcode_15.2.app - condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true')) - displayName: Switch to Xcode >= 15.1 - - script: | set -e c++ --version + xcode-select -print-path python3 -m pip install setuptools for i in {1..5}; do # try 5 times diff --git a/build/azure-pipelines/linux/product-build-linux-legacy-server.yml b/build/azure-pipelines/linux/product-build-linux-legacy-server.yml index 649a3d224d9d1..63f71890f1994 100644 --- a/build/azure-pipelines/linux/product-build-linux-legacy-server.yml +++ b/build/azure-pipelines/linux/product-build-linux-legacy-server.yml @@ -83,6 +83,28 @@ steps: imageName: vscode-linux-build-agent:centos7-devtoolset8-$(VSCODE_ARCH) containerCommand: uname + - ${{ if or(eq(parameters.VSCODE_ARCH, 'arm64'), eq(parameters.VSCODE_ARCH, 'armhf')) }}: + - script: | + set -e + includes=$(cat << 'EOF' + { + "target_defaults": { + "conditions": [ + ["OS=='linux'", { + 'cflags_cc!': [ '-std=gnu++20' ], + 'cflags_cc': [ '-std=gnu++2a' ], + }] + ] + } + } + EOF + ) + if [ ! -d "$HOME/.gyp" ]; then + mkdir -p "$HOME/.gyp" + fi + echo "$includes" > "$HOME/.gyp/include.gypi" + displayName: Override gnu target for arm64 and arm + - script: | set -e @@ -101,7 +123,7 @@ steps: set -e export VSCODE_SYSROOT_PREFIX='-glibc-2.17' - source ./build/azure-pipelines/linux/setup-env.sh --only-remote + source ./build/azure-pipelines/linux/setup-env.sh --skip-sysroot for i in {1..5}; do # try 5 times npm ci && break diff --git a/build/azure-pipelines/linux/product-build-linux.yml b/build/azure-pipelines/linux/product-build-linux.yml index 3fb7b4fe679f3..79a461c99d7a5 100644 --- a/build/azure-pipelines/linux/product-build-linux.yml +++ b/build/azure-pipelines/linux/product-build-linux.yml @@ -129,6 +129,28 @@ steps: GITHUB_TOKEN: "$(github-distro-mixin-password)" displayName: Download vscode sysroots + - ${{ if or(eq(parameters.VSCODE_ARCH, 'arm64'), eq(parameters.VSCODE_ARCH, 'armhf')) }}: + - script: | + set -e + includes=$(cat << 'EOF' + { + "target_defaults": { + "conditions": [ + ["OS=='linux'", { + 'cflags_cc!': [ '-std=gnu++20' ], + 'cflags_cc': [ '-std=gnu++2a' ], + }] + ] + } + } + EOF + ) + if [ ! -d "$HOME/.gyp" ]; then + mkdir -p "$HOME/.gyp" + fi + echo "$includes" > "$HOME/.gyp/include.gypi" + displayName: Override gnu target for arm64 and arm + - script: | set -e @@ -156,20 +178,6 @@ steps: condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true')) displayName: Mixin distro node modules - - ${{ else }}: - # Ref https://github.com/microsoft/vscode/issues/189019 - # for the node-gyp rebuild step - - script: | - set -e - - cd node_modules/native-keymap && npx node-gyp@9.4.0 -y rebuild --debug - cd ../.. && ./.github/workflows/check-clean-git-state.sh - env: - npm_config_arch: $(NPM_ARCH) - GITHUB_TOKEN: "$(github-distro-mixin-password)" - displayName: Rebuild debug version of native modules (OSS) - condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true')) - - script: | set -e node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt @@ -248,8 +256,6 @@ steps: - script: | set -e - source ./build/azure-pipelines/linux/setup-env.sh - EXPECTED_GLIBC_VERSION="2.28" \ EXPECTED_GLIBCXX_VERSION="3.4.25" \ ./build/azure-pipelines/linux/verify-glibc-requirements.sh @@ -263,8 +269,6 @@ steps: - script: | set -e - source ./build/azure-pipelines/linux/setup-env.sh - EXPECTED_GLIBC_VERSION="2.28" \ EXPECTED_GLIBCXX_VERSION="3.4.26" \ ./build/azure-pipelines/linux/verify-glibc-requirements.sh diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh index 1ce3ba742c188..03e5b49d5b1a9 100755 --- a/build/azure-pipelines/linux/setup-env.sh +++ b/build/azure-pipelines/linux/setup-env.sh @@ -16,9 +16,8 @@ else fi if [ "$npm_config_arch" == "x64" ]; then - if [ "$(echo "$@" | grep -c -- "--only-remote")" -eq 0 ]; then # Download clang based on chromium revision used by vscode - curl -s https://raw.githubusercontent.com/chromium/chromium/124.0.6367.243/tools/clang/scripts/update.py | python - --output-dir=$PWD/.build/CR_Clang --host-os=linux + curl -s https://raw.githubusercontent.com/chromium/chromium/128.0.6613.162/tools/clang/scripts/update.py | python - --output-dir=$PWD/.build/CR_Clang --host-os=linux # Download libcxx headers and objects from upstream electron releases DEBUG=libcxx-fetcher \ @@ -30,14 +29,15 @@ if [ "$npm_config_arch" == "x64" ]; then # Set compiler toolchain # Flags for the client build are based on - # https://source.chromium.org/chromium/chromium/src/+/refs/tags/124.0.6367.243:build/config/arm.gni - # https://source.chromium.org/chromium/chromium/src/+/refs/tags/124.0.6367.243:build/config/compiler/BUILD.gn - # https://source.chromium.org/chromium/chromium/src/+/refs/tags/124.0.6367.243:build/config/c++/BUILD.gn + # https://source.chromium.org/chromium/chromium/src/+/refs/tags/128.0.6613.162:build/config/arm.gni + # https://source.chromium.org/chromium/chromium/src/+/refs/tags/128.0.6613.162:build/config/compiler/BUILD.gn + # https://source.chromium.org/chromium/chromium/src/+/refs/tags/128.0.6613.162:build/config/c++/BUILD.gn export CC="$PWD/.build/CR_Clang/bin/clang --gcc-toolchain=$VSCODE_SYSROOT_DIR/x86_64-linux-gnu" export CXX="$PWD/.build/CR_Clang/bin/clang++ --gcc-toolchain=$VSCODE_SYSROOT_DIR/x86_64-linux-gnu" export CXXFLAGS="-nostdinc++ -D__NO_INLINE__ -I$PWD/.build/libcxx_headers -isystem$PWD/.build/libcxx_headers/include -isystem$PWD/.build/libcxxabi_headers/include -fPIC -flto=thin -fsplit-lto-unit -D_LIBCPP_ABI_NAMESPACE=Cr -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE --sysroot=$VSCODE_SYSROOT_DIR/x86_64-linux-gnu/x86_64-linux-gnu/sysroot" export LDFLAGS="-stdlib=libc++ --sysroot=$VSCODE_SYSROOT_DIR/x86_64-linux-gnu/x86_64-linux-gnu/sysroot -fuse-ld=lld -flto=thin -L$PWD/.build/libcxx-objects -lc++abi -L$VSCODE_SYSROOT_DIR/x86_64-linux-gnu/x86_64-linux-gnu/sysroot/usr/lib/x86_64-linux-gnu -L$VSCODE_SYSROOT_DIR/x86_64-linux-gnu/x86_64-linux-gnu/sysroot/lib/x86_64-linux-gnu -Wl,--lto-O0" + if [ "$(echo "$@" | grep -c -- "--skip-sysroot")" -eq 0 ]; then # Set compiler toolchain for remote server export VSCODE_REMOTE_CC=$VSCODE_SYSROOT_DIR/x86_64-linux-gnu/bin/x86_64-linux-gnu-gcc export VSCODE_REMOTE_CXX=$VSCODE_SYSROOT_DIR/x86_64-linux-gnu/bin/x86_64-linux-gnu-g++ @@ -45,7 +45,7 @@ if [ "$npm_config_arch" == "x64" ]; then export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/x86_64-linux-gnu/x86_64-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/x86_64-linux-gnu/x86_64-linux-gnu/sysroot/usr/lib/x86_64-linux-gnu -L$VSCODE_SYSROOT_DIR/x86_64-linux-gnu/x86_64-linux-gnu/sysroot/lib/x86_64-linux-gnu" fi elif [ "$npm_config_arch" == "arm64" ]; then - if [ "$(echo "$@" | grep -c -- "--only-remote")" -eq 0 ]; then + if [ "$(echo "$@" | grep -c -- "--skip-sysroot")" -eq 0 ]; then # Set compiler toolchain for client native modules export CC=$VSCODE_SYSROOT_DIR/aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc export CXX=$VSCODE_SYSROOT_DIR/aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ @@ -59,11 +59,13 @@ elif [ "$npm_config_arch" == "arm64" ]; then export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/aarch64-linux-gnu/aarch64-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/aarch64-linux-gnu/aarch64-linux-gnu/sysroot/usr/lib/aarch64-linux-gnu -L$VSCODE_SYSROOT_DIR/aarch64-linux-gnu/aarch64-linux-gnu/sysroot/lib/aarch64-linux-gnu" fi elif [ "$npm_config_arch" == "arm" ]; then - # Set compiler toolchain for client native modules - export CC=$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/bin/arm-rpi-linux-gnueabihf-gcc - export CXX=$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/bin/arm-rpi-linux-gnueabihf-g++ - export CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot" - export LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot -L$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/usr/lib/arm-linux-gnueabihf -L$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/lib/arm-linux-gnueabihf" + if [ "$(echo "$@" | grep -c -- "--skip-sysroot")" -eq 0 ]; then + # Set compiler toolchain for client native modules + export CC=$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/bin/arm-rpi-linux-gnueabihf-gcc + export CXX=$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/bin/arm-rpi-linux-gnueabihf-g++ + export CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot" + export LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot -L$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/usr/lib/arm-linux-gnueabihf -L$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/lib/arm-linux-gnueabihf" + fi # Set compiler toolchain for remote server export VSCODE_REMOTE_CC=$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/bin/arm-rpi-linux-gnueabihf-gcc diff --git a/build/azure-pipelines/oss/product-build-pr-cache-win32.yml b/build/azure-pipelines/oss/product-build-pr-cache-win32.yml index e1c8305bbb2e3..76944f69b1480 100644 --- a/build/azure-pipelines/oss/product-build-pr-cache-win32.yml +++ b/build/azure-pipelines/oss/product-build-pr-cache-win32.yml @@ -49,15 +49,15 @@ steps: - powershell: | . build/azure-pipelines/win32/exec.ps1 - . build/azure-pipelines/win32/retry.ps1 $ErrorActionPreference = "Stop" - $env:npm_config_arch="$(VSCODE_ARCH)" - $env:CHILD_CONCURRENCY="1" - retry { exec { npm ci } } + exec { npm ci } env: + npm_config_arch: $(VSCODE_ARCH) + npm_config_foreground_scripts: "true" ELECTRON_SKIP_BINARY_DOWNLOAD: 1 PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 GITHUB_TOKEN: "$(github-distro-mixin-password)" + retryCountOnTaskFailure: 5 displayName: Install dependencies condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true')) diff --git a/build/azure-pipelines/web/product-build-web.yml b/build/azure-pipelines/web/product-build-web.yml index 44122a2aad0d9..eb589b70bbf01 100644 --- a/build/azure-pipelines/web/product-build-web.yml +++ b/build/azure-pipelines/web/product-build-web.yml @@ -66,6 +66,7 @@ steps: - script: | set -e + for i in {1..5}; do # try 5 times npm ci && break if [ $i -eq 5 ]; then diff --git a/build/azure-pipelines/win32/product-build-win32-cli-sign.yml b/build/azure-pipelines/win32/product-build-win32-cli-sign.yml index 62b1b715af2fa..9d9af45d47473 100644 --- a/build/azure-pipelines/win32/product-build-win32-cli-sign.yml +++ b/build/azure-pipelines/win32/product-build-win32-cli-sign.yml @@ -36,11 +36,10 @@ steps: - powershell: | . azure-pipelines/win32/exec.ps1 - . azure-pipelines/win32/retry.ps1 $ErrorActionPreference = "Stop" - $env:CHILD_CONCURRENCY="1" - retry { exec { npm ci } } + exec { npm ci } workingDirectory: build + retryCountOnTaskFailure: 5 displayName: Install build dependencies - template: ../cli/cli-win32-sign.yml@self diff --git a/build/azure-pipelines/win32/product-build-win32.yml b/build/azure-pipelines/win32/product-build-win32.yml index a30d4ca8029b2..43020e27656e7 100644 --- a/build/azure-pipelines/win32/product-build-win32.yml +++ b/build/azure-pipelines/win32/product-build-win32.yml @@ -91,15 +91,15 @@ steps: - powershell: | . build/azure-pipelines/win32/exec.ps1 - . build/azure-pipelines/win32/retry.ps1 $ErrorActionPreference = "Stop" - retry { exec { npm ci } } + exec { npm ci } env: npm_config_arch: $(VSCODE_ARCH) - CHILD_CONCURRENCY: 1 + npm_config_foreground_scripts: "true" ELECTRON_SKIP_BINARY_DOWNLOAD: 1 PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 GITHUB_TOKEN: "$(github-distro-mixin-password)" + retryCountOnTaskFailure: 5 displayName: Install dependencies condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true')) diff --git a/build/azure-pipelines/win32/sdl-scan-win32.yml b/build/azure-pipelines/win32/sdl-scan-win32.yml index fc40b9a0e60d7..3f453c323b1ec 100644 --- a/build/azure-pipelines/win32/sdl-scan-win32.yml +++ b/build/azure-pipelines/win32/sdl-scan-win32.yml @@ -80,15 +80,15 @@ steps: - powershell: | . build/azure-pipelines/win32/exec.ps1 - . build/azure-pipelines/win32/retry.ps1 $ErrorActionPreference = "Stop" - retry { exec { npm ci } } + exec { npm ci } env: npm_config_arch: ${{ parameters.VSCODE_ARCH }} - CHILD_CONCURRENCY: 1 + npm_config_foreground_scripts: "true" ELECTRON_SKIP_BINARY_DOWNLOAD: 1 PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 GITHUB_TOKEN: "$(github-distro-mixin-password)" + retryCountOnTaskFailure: 5 displayName: Install dependencies - script: node build/azure-pipelines/distro/mixin-npm diff --git a/build/checksums/electron.txt b/build/checksums/electron.txt index 5365421380969..1653fbaa134fa 100644 --- a/build/checksums/electron.txt +++ b/build/checksums/electron.txt @@ -1,75 +1,75 @@ -3de7da4462c7690f75680aecac8fddedc4b998d0da769136d8eff2932b36004e *chromedriver-v30.5.1-darwin-arm64.zip -d89b89f7c2ba45cb10df7fc23722bacf6f77e13002c42648762cd18ae3fa9182 *chromedriver-v30.5.1-darwin-x64.zip -3722d46929fd2c7b33c17d37464a08150e60d9269053eb67195795254fb5e947 *chromedriver-v30.5.1-linux-arm64.zip -a786d51f834c24b768bd415bf9a2fc5c1d9abdf9dc0b1a091bf9a8ff101becfe *chromedriver-v30.5.1-linux-armv7l.zip -688e4da8dbcb7dbfacab6f29341d96736e6d06e4c8029835b83ef30b69885b01 *chromedriver-v30.5.1-linux-x64.zip -786a7c2659ad97d5a09866b9aafd55edc015cb17a87bd8d72aa5925f2bfcf55a *chromedriver-v30.5.1-mas-arm64.zip -398759d1dc02fc4928d48ff0f8fbade8811347e1a51d1cedcb2ba9350fbed04d *chromedriver-v30.5.1-mas-x64.zip -65766f1270d1876e2a81acfb4b1130dc4a41eb7165842afa8f41ea438bf2fecb *chromedriver-v30.5.1-win32-arm64.zip -ca9fe0abd1032ebd51497049cb1bb2ae1dd9592697b278f6b1ee2a1a25148891 *chromedriver-v30.5.1-win32-ia32.zip -b6b6ea2202e0139ea436288add736d19078bfb190fc0b22937283927f3024bb9 *chromedriver-v30.5.1-win32-x64.zip -50e8b2d59916bc180873324fdbeb8227dbb8b2375cc936e58b7c9885fb23376d *electron-api.json -595db4fa3f755432bf59cbbaf591ee44b576e15952d014d83d3748646b2e338c *electron-v30.5.1-darwin-arm64-dsym-snapshot.zip -c1beb80553f3c9575e638625ce0ffbfdb87b6f8b23799eb132954b2bb74a9a2f *electron-v30.5.1-darwin-arm64-dsym.zip -cba315d6d6f607a2ee6cfc437b46f92da88daded86f0130d85129adb4742bc48 *electron-v30.5.1-darwin-arm64-symbols.zip -d312544ea29844cf328b44b9dbde12f4fdced90cb442dfca6df36c098dbb6e7a *electron-v30.5.1-darwin-arm64.zip -fd24d585d28909c082d703db3fcc5ffa0b55e1077ff320e25ed510f36e6a3761 *electron-v30.5.1-darwin-x64-dsym-snapshot.zip -4d1a2adea4b98c4d0b03c6561fca146aab102d636d359e48ce418c465df891ae *electron-v30.5.1-darwin-x64-dsym.zip -d9065eaf659f4c3e8a75f5453ceb65269763b2e57110bdcc01904b9a1e33a62c *electron-v30.5.1-darwin-x64-symbols.zip -faf9dcc20d525607ea205f2f6a1dfe3270f6268aa439bb0ba5646c7e4fbbd842 *electron-v30.5.1-darwin-x64.zip -b85dba1cdb49591542dcecff3e710f29b81285569c8c5db8c1181c3ed818ba44 *electron-v30.5.1-linux-arm64-debug.zip -5e97cc105282783d1c20d8e8dd4ca1134342839235288840cb50f314ca7a6ede *electron-v30.5.1-linux-arm64-symbols.zip -eb31470c0d7cd6e23e7ce0d89cc93a2356c9dac8bcc997e335353b8aa995afa0 *electron-v30.5.1-linux-arm64.zip -b85dba1cdb49591542dcecff3e710f29b81285569c8c5db8c1181c3ed818ba44 *electron-v30.5.1-linux-armv7l-debug.zip -137548cd73cd648107f6e01c777e411838173309848a492b42825857cec7d110 *electron-v30.5.1-linux-armv7l-symbols.zip -224bd46983e503101c756c72d10b195f14712a7a56438718acb126017dd04edf *electron-v30.5.1-linux-armv7l.zip -1f87fadebc444c9c0de43f52972a3f61af83ca0594c3de368f7579ce613fcb60 *electron-v30.5.1-linux-x64-debug.zip -aae78654f599a68310bdbdc0e3de8db644320ef44e58a5c6e5c693dff5cd1970 *electron-v30.5.1-linux-x64-symbols.zip -ec4707783d39e86005f42899e30ae59e50dd5d9c7f28531ed494eb43f2361403 *electron-v30.5.1-linux-x64.zip -c61f3121e52fd29987814b7805b597ef3fc78b2ce891eba5e3fc6bbe14128f23 *electron-v30.5.1-mas-arm64-dsym-snapshot.zip -f934e55ef6c986d3ec56626b2605fed16030efc45efcd8b05afa9322d625ec56 *electron-v30.5.1-mas-arm64-dsym.zip -3cc36e99f2cd59d7cb2f47b52d19609c2a2358f6ddde35fd832872abe241cc8d *electron-v30.5.1-mas-arm64-symbols.zip -c5085ab1fb74dfa4a4e463dcb688989bc63baf44007419fd96db4e7c974fb6db *electron-v30.5.1-mas-arm64.zip -47102b6dcd5892de734be2b48e40bbbdbc5e0a228bf5fec33071661d2724d946 *electron-v30.5.1-mas-x64-dsym-snapshot.zip -607091ddfd313ed27bb5a0acb6fa58b0d65cb87e6c6ce9b373949b4b152476d8 *electron-v30.5.1-mas-x64-dsym.zip -ac49568635d41e1075bca39c97aca1f2fcede702f721ddce5d80f18cc2dd1067 *electron-v30.5.1-mas-x64-symbols.zip -3746bc4ba32ab9c11398a393d54ba81733088729ae7cef4e5dccf1e64dc82b0a *electron-v30.5.1-mas-x64.zip -930ad941c8bc0aa5e4e3457b235f104846939974d71bde5b42a8980de2d4a35d *electron-v30.5.1-win32-arm64-pdb.zip -11c1252547b381ab6e40cc032ee60c5209dee9ea1102d1b47ad3fcd4da03049f *electron-v30.5.1-win32-arm64-symbols.zip -7351fa5cb892853a7d4b67d8858d0f9cc6506c554a2e42c9ad7e8d5e29ae2743 *electron-v30.5.1-win32-arm64-toolchain-profile.zip -f18baa98ba9c04b346fda9f40fc3150a57b539d0cd510971a073983f78e0a20c *electron-v30.5.1-win32-arm64.zip -b03c7297dc61aa234ab2273c419d9ae064e52c2c0c3dd56f09135f81964630b5 *electron-v30.5.1-win32-ia32-pdb.zip -8fc570c7f4d97eb6b745fb4af5932311d1da57058da8f39a3d97d6e099cd6982 *electron-v30.5.1-win32-ia32-symbols.zip -7351fa5cb892853a7d4b67d8858d0f9cc6506c554a2e42c9ad7e8d5e29ae2743 *electron-v30.5.1-win32-ia32-toolchain-profile.zip -20845163bf9d5a4ead03c5f0280c9bae71f0ab1fc03362f3406ed12620e4d9cd *electron-v30.5.1-win32-ia32.zip -019f3ae97a69dc837d89c44d25e0e5dadc88564b74202c5a3524fc6ab59490bc *electron-v30.5.1-win32-x64-pdb.zip -2eb4889fe275e5ea42cf6f51821bcceb833d5714aa1b45ad7915495afb447e94 *electron-v30.5.1-win32-x64-symbols.zip -7351fa5cb892853a7d4b67d8858d0f9cc6506c554a2e42c9ad7e8d5e29ae2743 *electron-v30.5.1-win32-x64-toolchain-profile.zip -443119bb559fc2ca297a57cf79f2bce532e853ada070c1e71460c9657c13b4b3 *electron-v30.5.1-win32-x64.zip -deecdc1f3f5ea9548ef73774f412c7af489afeb7dca1c394b5add10e929aff42 *electron.d.ts -14319b51118a5c94e108731f6b5c4e701c700212e790198ba22242eb9674a334 *ffmpeg-v30.5.1-darwin-arm64.zip -bfd5110457438fa8b113a8806db45f30b8975304d95e5efb1b71b0f5e46757fe *ffmpeg-v30.5.1-darwin-x64.zip -44ebf3185fc24404647da0c1f9e496effefd32ff3dbc2499c022164b919d06ed *ffmpeg-v30.5.1-linux-arm64.zip -4f7583513d48b48c44a2cbc4430cbc9a33d8f9728622166db688e3de61190821 *ffmpeg-v30.5.1-linux-armv7l.zip -154900e5db5810f63e38fd4551cfff3d88d6eac39226e06e12e1e43558d360a4 *ffmpeg-v30.5.1-linux-x64.zip -14319b51118a5c94e108731f6b5c4e701c700212e790198ba22242eb9674a334 *ffmpeg-v30.5.1-mas-arm64.zip -bfd5110457438fa8b113a8806db45f30b8975304d95e5efb1b71b0f5e46757fe *ffmpeg-v30.5.1-mas-x64.zip -f2169c4b6b9f073c20652953599f2453947936e851ff25c9f2719e7d889faea3 *ffmpeg-v30.5.1-win32-arm64.zip -90745f1422ae0431b295cb5d27ff03e69c890f3572ef6c4655774b892419e94f *ffmpeg-v30.5.1-win32-ia32.zip -567fe8952f17b224d4492980af741b470e86b31d58e7c6a9262258eeae490122 *ffmpeg-v30.5.1-win32-x64.zip -8bbbadb52a19f074d9f8bd533891e2bacbe4813101ae6c344cfc88e28b1429a3 *hunspell_dictionaries.zip -61137508aee6837c70a2ead2e31dd106d753ec5fac01b49e7e8701be0e09e7aa *libcxx-objects-v30.5.1-linux-arm64.zip -3c285f012f256f767e777550a1f18054cfcffc4e13ad6fa4e4e90dd58ec22069 *libcxx-objects-v30.5.1-linux-armv7l.zip -9b96b53c8dfbc70a0f617f78dde89a1e8510ae2261bcddfbf7c12c61eb5a3d73 *libcxx-objects-v30.5.1-linux-x64.zip -1b5cbe24d6356a388e166bff60d7452583019ea7dec85f593c552eb287346f43 *libcxx_headers.zip -eae200a0d1fd0d4b881358bdef600111891c75ecc4db679b680b0cbaf87ecfc3 *libcxxabi_headers.zip -ed1f7463b5869acf57dd388208918652182b049b2846f572d52ed47e7c091d54 *mksnapshot-v30.5.1-darwin-arm64.zip -bc80de1f29b869cdb2676d2dc08cbb4bd6228a6825b1b0bfc13acee0b070ac3e *mksnapshot-v30.5.1-darwin-x64.zip -5e526ca4f4250a9b9b040d6eb60f1d2b8db974ab68c27e46198f4bf8dc1ef347 *mksnapshot-v30.5.1-linux-arm64-x64.zip -c40ca2a45cc9ab4e1668f063860ba243baef8c192a253638e4c93aaccb0ef8da *mksnapshot-v30.5.1-linux-armv7l-x64.zip -a3134e0b0980547167dd3ca2f17dd2f40a7db697ab563ba6257534f9ad0d256d *mksnapshot-v30.5.1-linux-x64.zip -82776eafcb3e4d053e275ad50d84151f41a651986baacda20c6ed722854cb8fb *mksnapshot-v30.5.1-mas-arm64.zip -9d6d95d4cb121a29fd68d64557edd8c9859345ac37d0645de8aff518391755ed *mksnapshot-v30.5.1-mas-x64.zip -94b9ce6cb40ae001962b77525d12483c3458776066a69a4e714b327bab1decfc *mksnapshot-v30.5.1-win32-arm64-x64.zip -4d89d06c2e85b25d52bb64f48258ad5d05b98ac21697ae9c49ccd19bad9d7d94 *mksnapshot-v30.5.1-win32-ia32.zip -ccfd322bafde0485a0ac6b0acc3669c7b08f30003a1c2e044eebc1bf02289de3 *mksnapshot-v30.5.1-win32-x64.zip +7fb7b8736fcd9dbde92628e4aa951fd2c54d3136bf20c1821ce2a1b85fef3046 *chromedriver-v32.1.2-darwin-arm64.zip +a9e43916cbe91c9a905f2bf38d326d5dc462c3d8a7d88f52c25c1e7c1b9ce7cc *chromedriver-v32.1.2-darwin-x64.zip +405664c1b6529cd6c2af65778f2c84bfe262ad0b8d9d044a39d2eff2ed218828 *chromedriver-v32.1.2-linux-arm64.zip +32682f487ed9307d0f40d35c4b998cee75272effd228093be3e008ca7b39e16e *chromedriver-v32.1.2-linux-armv7l.zip +d98aa7a90ebfe519700e47fa6bcb94a157483fac615920c5ee467dcc41c46702 *chromedriver-v32.1.2-linux-x64.zip +046737617a523278ebe1786f64b723c3bb3fcc9811b98b224029d7fa730485dd *chromedriver-v32.1.2-mas-arm64.zip +e05d44d95ebd0bd897499a1012980d9a7d87f63f4da8ce82dc15a6f82008d3ea *chromedriver-v32.1.2-mas-x64.zip +9940246d4017db30673c9e77db590ff11a6616b24ad630ec33600129694c6570 *chromedriver-v32.1.2-win32-arm64.zip +c8580f7596b54400a6018ab5a43046c99d8370f61127b414f048200a8f7f303b *chromedriver-v32.1.2-win32-ia32.zip +ab40ffd5a1cc5e9c854f02d11773f1dfab8a78a89f5f31b79cf229489a672a09 *chromedriver-v32.1.2-win32-x64.zip +649584a630e9e4b21b8f42a06ed01d9d2e12444ed39500c78f0b76388dd704c7 *electron-api.json +7edc15b6c0d1cfb05f641e091186041f557fc23be7e8517e132f0ab0026a7cfd *electron-v32.1.2-darwin-arm64-dsym-snapshot.zip +b879508f26eec70407c79724a69d3a98901ba388491128ed3a2952b010cb9da8 *electron-v32.1.2-darwin-arm64-dsym.zip +218791e68ce0177ff994b446f67f60e028edaf1c6a39bb490602847ceb77e9da *electron-v32.1.2-darwin-arm64-symbols.zip +b5f6db900997ba931c98addaef28744a0a6af0f2ec2e8e5755f7f50db2fe8bbc *electron-v32.1.2-darwin-arm64.zip +e52950f675119c4fe67de927a2a8b20507f8496b07dab72be82b341a4c96227b *electron-v32.1.2-darwin-x64-dsym-snapshot.zip +a3c64201aa41cf6ebe32dbc92296c91b11dd321be9584b3c1a46ea0bbacc7201 *electron-v32.1.2-darwin-x64-dsym.zip +711736bee5238aecb1b424d2c8c7ffc3007a0de1d32f784db97c8e44e92daf83 *electron-v32.1.2-darwin-x64-symbols.zip +150ac6a59e31ad516685bdbb9cee67c7e927b872ad94ffc900fbf6616433f8ab *electron-v32.1.2-darwin-x64.zip +1bc88c381f835d21a4cb95d81429d6bc2f01105276ef02fde562cb03eb493729 *electron-v32.1.2-linux-arm64-debug.zip +11853479e086ec020ac85cc438c74c61473808382408614bd8c8afb6b496a9b9 *electron-v32.1.2-linux-arm64-symbols.zip +702326c51679ed705bc22d7e4049b29cef2d66366d3387c401836aaae0fa450c *electron-v32.1.2-linux-arm64.zip +1bc88c381f835d21a4cb95d81429d6bc2f01105276ef02fde562cb03eb493729 *electron-v32.1.2-linux-armv7l-debug.zip +bd99cb482559ba3c24152a3563bf8f4dd2650c62585bcced0e4b1bb4f58c2d33 *electron-v32.1.2-linux-armv7l-symbols.zip +d9511449c328f90f47e499f44c6d84c6204d4a3a2caec5c5d52f176cfc77f50d *electron-v32.1.2-linux-armv7l.zip +8177e8084aef855cd5c5a5b72210fc948bd27b362f73801cf0d99ee28d5aa7a6 *electron-v32.1.2-linux-x64-debug.zip +38269028f07a405b4012df80f7fa9a65099e325cea67a4c0e654af890d2dca7f *electron-v32.1.2-linux-x64-symbols.zip +b51e5f1296f8971d7eb4ca86606b6f5d31fb3dab8caa91dcfbfa522be5679691 *electron-v32.1.2-linux-x64.zip +ae2e09fe44b8bf7ed6ca5c3ee2fae6a25415469b83125f0c370e819d208e1ca8 *electron-v32.1.2-mas-arm64-dsym-snapshot.zip +b882dd1adc0da2444e220ea213eb4fde838958f637040f11c62f986cb64532aa *electron-v32.1.2-mas-arm64-dsym.zip +6559e93a3e9e4c3f828ca0c457827c9dbade9124d6d6b92f6ca7a56943032e0c *electron-v32.1.2-mas-arm64-symbols.zip +5235c3b5f417c8a196a00732ee6ef79a55610465ef51c32b8ea481393a8a2214 *electron-v32.1.2-mas-arm64.zip +db68c078b17d5bfbca5dfd3ebf7b9f9eec9c84ec4a257b248b14ac9080e83e34 *electron-v32.1.2-mas-x64-dsym-snapshot.zip +b5f552ca41c4b7f197b0d584ec7fd5c027ae28c9162a80e8be7899bc59003a35 *electron-v32.1.2-mas-x64-dsym.zip +c7347605cb44bce675f2b08efd9a2c3dd4ae85ac85fd9444afe529379ad1c160 *electron-v32.1.2-mas-x64-symbols.zip +f27569c1c20e3f982b526e5e4ae3c091417e0cada77b772804ffeb94bc0a6744 *electron-v32.1.2-mas-x64.zip +4615c90817f137568e93208cabd3c3b90cfb03658fa12eda5d47060c921121b4 *electron-v32.1.2-win32-arm64-pdb.zip +7075092d2888d761f45978935b56dcdc4f08272a0454ea46cca4c0b21f617220 *electron-v32.1.2-win32-arm64-symbols.zip +7351fa5cb892853a7d4b67d8858d0f9cc6506c554a2e42c9ad7e8d5e29ae2743 *electron-v32.1.2-win32-arm64-toolchain-profile.zip +7eabd415f53b3180ce7ef73a6d12d67f8db62cac53db5edc9393acd4a1bb6312 *electron-v32.1.2-win32-arm64.zip +1524a0e4acc46c7f4d2a9361e60e1ef91bb2f3fdf14b8f58ee413219e4e1ed4c *electron-v32.1.2-win32-ia32-pdb.zip +58fd0edf38918f01d509750aad735fbbd811f603bfa67da1d5566a0ff3fc930d *electron-v32.1.2-win32-ia32-symbols.zip +7351fa5cb892853a7d4b67d8858d0f9cc6506c554a2e42c9ad7e8d5e29ae2743 *electron-v32.1.2-win32-ia32-toolchain-profile.zip +72cf49d2d54c474df4322c37ac2c1cee05db8e2cfd5066735bb9395271a05b6b *electron-v32.1.2-win32-ia32.zip +259b155478b26a69884683a2eb248819871c42ac777033e568068b7dcb668049 *electron-v32.1.2-win32-x64-pdb.zip +0246c4461414505ddcec690a48c77298446b96c5de61aba565840e0f8fb11167 *electron-v32.1.2-win32-x64-symbols.zip +7351fa5cb892853a7d4b67d8858d0f9cc6506c554a2e42c9ad7e8d5e29ae2743 *electron-v32.1.2-win32-x64-toolchain-profile.zip +02dadb152d508ba7ac4371ac84d9e1166cc96a63567022df155b4f1859707b8e *electron-v32.1.2-win32-x64.zip +6fd6176fd0f3214ef81b4a318663503fdcb0931f949eb7f98902fc7eee1502ee *electron.d.ts +4050fdcb3a783d67481653a7edf051d9df9b374a03a31c6f312d9b5a71b0dca7 *ffmpeg-v32.1.2-darwin-arm64.zip +55d758ad33095ef332ec528445f70499437b8da06b40b48ea8451e82caf87963 *ffmpeg-v32.1.2-darwin-x64.zip +b75410296a741951fab0a26a90c0dc986fdc0ffed090a18db511567cf572b02a *ffmpeg-v32.1.2-linux-arm64.zip +e70efbd03d587f2b772c0b40e92ea066fc4cb880a6df3a389552140cd70ad15c *ffmpeg-v32.1.2-linux-armv7l.zip +7b502f35be711a3d983754a4096751e5cb7c8df7cae349678f68407d51bc2123 *ffmpeg-v32.1.2-linux-x64.zip +7e4a3d9d32a9da96a3b4efbe413152c9da7a0a005a3e348e9afd5b2799b642f7 *ffmpeg-v32.1.2-mas-arm64.zip +153e20e4daaa9b5242d5260b3fafbb8d1f477e01d8bff4d5813c85e617ef7ac7 *ffmpeg-v32.1.2-mas-x64.zip +31061f9b762697c5bc85fb47b5838a1d391711c6efa58784c6f43e1e5347844e *ffmpeg-v32.1.2-win32-arm64.zip +726def466970a97c8001d311ae2ce044b4c7676e47037906f95d0bd70d3843ba *ffmpeg-v32.1.2-win32-ia32.zip +c1a6ab3a4d9f640a6cff7f287be7ee2c60c93b01ebba30cfd30851daeca06020 *ffmpeg-v32.1.2-win32-x64.zip +1a33ccc8d7c2327b578370c0bc55e44e93f3b2802a59b40621b5f595643c53d7 *hunspell_dictionaries.zip +c26dce5871a613b2f21fe5ba5c580e56e6444103c5f557cf2e026dc415e8a910 *libcxx-objects-v32.1.2-linux-arm64.zip +44f3c2ef522261187b0e919ea366be8489829580f3c2a593c0b971c382ff36db *libcxx-objects-v32.1.2-linux-armv7l.zip +2b544a48375d5bc24996ca6660bd09b55502982573d13a5d35ebccfa8d9d3433 *libcxx-objects-v32.1.2-linux-x64.zip +a69a52bc6cb45f39b1d441c03fc03b17665849e29db4c4a848b70e8b4dc8601a *libcxx_headers.zip +4da13f2694e3e07044d445492a28838f310e8082470c0b79cc341de9de6af9d4 *libcxxabi_headers.zip +7e0601c5b34eff190993a4e3e56978e5775e2449099a6c64b170605a7c05725d *mksnapshot-v32.1.2-darwin-arm64.zip +0c3e09d57fcf1401dc124c30b987e96dc0e97595fe9af23e49091d1ebbd1b6cb *mksnapshot-v32.1.2-darwin-x64.zip +a3897c6892a64d1ef3251e51d6711630ba5e8d4cc16d80f5941326ef089fd9d8 *mksnapshot-v32.1.2-linux-arm64-x64.zip +e30e6399ccf0a5207da201d5d8d32b83b7270a19e558a72936ea24eaf3f1772f *mksnapshot-v32.1.2-linux-armv7l-x64.zip +5ec39a59a1a2c2dd2a833406cf7ff0f155129e7f345a7d0c8b4efaa37825464a *mksnapshot-v32.1.2-linux-x64.zip +f9e493fc4a75012dcfb34bde465540fa0661275dec1c2aaee5a39cb957d89935 *mksnapshot-v32.1.2-mas-arm64.zip +1c32fd1892b77c58f3176046a2f60b6bdfc2f6f9b277e534e83da6b760b6aee8 *mksnapshot-v32.1.2-mas-x64.zip +286fbd00deb8e0c806230633703aeab692848235a2881fa746b6db0a5f425f97 *mksnapshot-v32.1.2-win32-arm64-x64.zip +a49e4c843e8f3e49fd8b8f35ab36d75eae56644d725eba3a9c68c2fc2a6aed17 *mksnapshot-v32.1.2-win32-ia32.zip +aaf24b934dddc724a171a550d18c2236fd660a0ef5b5b72385e4997519caf605 *mksnapshot-v32.1.2-win32-x64.zip diff --git a/build/checksums/nodejs.txt b/build/checksums/nodejs.txt index 3436ff37cc581..d10698b073011 100644 --- a/build/checksums/nodejs.txt +++ b/build/checksums/nodejs.txt @@ -1,7 +1,7 @@ -fc7355e778b181575153b7dea4879e8021776eeb376c43c50f65893d2ea70aa3 node-v20.16.0-darwin-arm64.tar.gz -e18942cd706e4d69a4845ddacee2f1c17a72e853a229e3d2623d2edeb7efde72 node-v20.16.0-darwin-x64.tar.gz -551588f8f5ca05c04efb53f1b2bb7d9834603327bdc82d60a944d385569866e1 node-v20.16.0-linux-arm64.tar.gz -1c77c52ab507ddee479012f0b4bf523dd8400df4504447d623632353076e2e27 node-v20.16.0-linux-armv7l.tar.gz -b3f874ea84e440d69ed02ca92429d0eccd17737fde86db69c1c153d16ec654f2 node-v20.16.0-linux-x64.tar.gz -7e773fba3a19eac5ccbe85c1f87a05d7b112ecf41440076e6b6de1c7bffa0fdf win-arm64/node.exe -ba221658a3b68bd583e3068903eb675b5206d86a883c084ed95502e8f634b82a win-x64/node.exe +476324108c4361935465631eec47df1c943ba2c87bc050853385b1d1c71f0b1f node-v20.17.0-darwin-arm64.tar.gz +eefe9447dbb0b5b233d42730989c6c364487de4043145db2f63da94e9623c380 node-v20.17.0-darwin-x64.tar.gz +18afbf2781edfcc9918343f4bf74a8c35d74d778b85d40a0c09b232adc0ea82c node-v20.17.0-linux-arm64.tar.gz +fcc19311817622f2e4693c3fff488c72fa1ce7c2c423c2bd114c86b24fa8c388 node-v20.17.0-linux-armv7l.tar.gz +21e656f6f4e34080ddc5d75fbfe58ce8482fe6e70a76aeae14afdcdc1e23079d node-v20.17.0-linux-x64.tar.gz +6f9118a87189bc101160929a94ddc6b999c30228da7d3d97c2b15eb11b258b95 win-arm64/node.exe +0740b4a681b320f966b57f51c87c11f897e8605064b6ae62d03e177bc66f01b9 win-x64/node.exe diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js index 77ff92151e8ce..354c67a2909eb 100644 --- a/build/linux/debian/install-sysroot.js +++ b/build/linux/debian/install-sysroot.js @@ -14,7 +14,7 @@ const path = require("path"); const crypto_1 = require("crypto"); const ansiColors = require("ansi-colors"); // Based on https://source.chromium.org/chromium/chromium/src/+/main:build/linux/sysroot_scripts/install-sysroot.py. -const URL_PREFIX = 'https://msftelectron.blob.core.windows.net'; +const URL_PREFIX = 'https://msftelectronbuild.z5.web.core.windows.net'; const URL_PATH = 'sysroots/toolchain'; const REPO_ROOT = path.dirname(path.dirname(path.dirname(__dirname))); const ghApiHeaders = { @@ -35,8 +35,7 @@ function getElectronVersion() { return { electronVersion, msBuildId }; } function getSha(filename) { - // CodeQL [SM04514] Hash logic cannot be changed due to external dependency, also the code is only used during build. - const hash = (0, crypto_1.createHash)('sha1'); + const hash = (0, crypto_1.createHash)('sha256'); // Read file 1 MB at a time const fd = fs.openSync(filename, 'r'); const buffer = Buffer.alloc(1024 * 1024); @@ -168,9 +167,9 @@ async function getChromiumSysroot(arch) { const sysrootArch = `bullseye_${arch}`; const sysrootDict = sysrootInfo[sysrootArch]; const tarballFilename = sysrootDict['Tarball']; - const tarballSha = sysrootDict['Sha1Sum']; + const tarballSha = sysrootDict['Sha256Sum']; const sysroot = path.join((0, os_1.tmpdir)(), sysrootDict['SysrootDir']); - const url = [URL_PREFIX, URL_PATH, tarballSha, tarballFilename].join('/'); + const url = [URL_PREFIX, URL_PATH, tarballSha].join('/'); const stamp = path.join(sysroot, '.stamp'); if (fs.existsSync(stamp) && fs.readFileSync(stamp).toString() === url) { return sysroot; diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts index 76a31d63cdbcc..8ea43a523cf3a 100644 --- a/build/linux/debian/install-sysroot.ts +++ b/build/linux/debian/install-sysroot.ts @@ -13,7 +13,7 @@ import { DebianArchString } from './types'; import * as ansiColors from 'ansi-colors'; // Based on https://source.chromium.org/chromium/chromium/src/+/main:build/linux/sysroot_scripts/install-sysroot.py. -const URL_PREFIX = 'https://msftelectron.blob.core.windows.net'; +const URL_PREFIX = 'https://msftelectronbuild.z5.web.core.windows.net'; const URL_PATH = 'sysroots/toolchain'; const REPO_ROOT = path.dirname(path.dirname(path.dirname(__dirname))); @@ -45,8 +45,7 @@ function getElectronVersion(): Record { } function getSha(filename: fs.PathLike): string { - // CodeQL [SM04514] Hash logic cannot be changed due to external dependency, also the code is only used during build. - const hash = createHash('sha1'); + const hash = createHash('sha256'); // Read file 1 MB at a time const fd = fs.openSync(filename, 'r'); const buffer = Buffer.alloc(1024 * 1024); @@ -129,7 +128,7 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000) } type SysrootDictEntry = { - Sha1Sum: string; + Sha256Sum: string; SysrootDir: string; Tarball: string; }; @@ -186,9 +185,9 @@ export async function getChromiumSysroot(arch: DebianArchString): Promise= 20" + } }, "node_modules/node-gyp-build": { "version": "4.8.1", diff --git a/extensions/package.json b/extensions/package.json index 5cd6099229c08..7f3fad949be9d 100644 --- a/extensions/package.json +++ b/extensions/package.json @@ -14,7 +14,10 @@ "esbuild": "0.23.0", "vscode-grammar-updater": "^1.1.0" }, - "resolutions": { - "node-gyp-build": "4.8.1" + "overrides": { + "node-gyp-build": "4.8.1", + "@parcel/watcher@2.1.0": { + "node-addon-api": "7.1.0" + } } } diff --git a/package-lock.json b/package-lock.json index 0770fcbad1811..950551b3de709 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,11 +15,11 @@ "@parcel/watcher": "2.1.0", "@vscode/deviceid": "^0.1.1", "@vscode/iconv-lite-umd": "0.7.0", - "@vscode/policy-watcher": "^1.1.4", + "@vscode/policy-watcher": "^1.1.8", "@vscode/proxy-agent": "^0.22.0", "@vscode/ripgrep": "^1.15.9", "@vscode/spdlog": "^0.15.0", - "@vscode/sqlite3": "5.1.6-vscode", + "@vscode/sqlite3": "5.1.8-vscode", "@vscode/sudo-prompt": "9.3.1", "@vscode/tree-sitter-wasm": "^0.0.4", "@vscode/vscode-languagedetection": "1.0.21", @@ -95,7 +95,7 @@ "cssnano": "^6.0.3", "debounce": "^1.0.0", "deemon": "^1.8.0", - "electron": "30.5.1", + "electron": "32.1.2", "eslint": "8.36.0", "eslint-plugin-header": "3.1.1", "eslint-plugin-jsdoc": "^46.5.0", @@ -2879,19 +2879,24 @@ } }, "node_modules/@vscode/policy-watcher": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@vscode/policy-watcher/-/policy-watcher-1.1.6.tgz", - "integrity": "sha512-EoJizB6aq/mgsL42mcNLGZ5vOwdZs/EHcLQkdY6Rg4uzcRkCapQdNy20wnCsrBpv3QntgBibsS6m+JXm8efY/Q==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@vscode/policy-watcher/-/policy-watcher-1.1.8.tgz", + "integrity": "sha512-IFT3eIPLIcjjgyOUBvbxfKlqTjSDJU+ZJrTlrgdjZrwS3HRLexAMTCfmBqIgZ+vS5N9QWtQW0yp8vX8UJv8JFg==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "bindings": "^1.5.0", - "node-addon-api": "^6.0.0" + "node-addon-api": "^8.2.0" } }, "node_modules/@vscode/policy-watcher/node_modules/node-addon-api": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.0.0.tgz", - "integrity": "sha512-GyHvgPvUXBvAkXa0YvYnhilSB1A+FRYMpIVggKzPZqdaZfevZOuzfWzyvgzOwRLHBeo/MMswmJFsrNF4Nw1pmA==" + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.2.0.tgz", + "integrity": "sha512-qnyuI2ROiCkye42n9Tj5aX1ns7rzj6n7zW1XReSnLSL9v/vbLeR6fJq6PU27YU/ICfYw6W7Ouk/N7cysWu/hlw==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } }, "node_modules/@vscode/proxy-agent": { "version": "0.22.0", @@ -2940,28 +2945,25 @@ "node-addon-api": "7.1.0" } }, - "node_modules/@vscode/spdlog/node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", - "engines": { - "node": "^16 || ^18 || >= 20" - } - }, "node_modules/@vscode/sqlite3": { - "version": "5.1.6-vscode", - "resolved": "https://registry.npmjs.org/@vscode/sqlite3/-/sqlite3-5.1.6-vscode.tgz", - "integrity": "sha512-SzNUiijrRyJr1ly6eHIs5UcCqH/V8aaoz9mHNm5SdnJCJOX5T9RcHqO1AJ9VreHcPcRPKuG2paUpMkTeyynmYQ==", + "version": "5.1.8-vscode", + "resolved": "https://registry.npmjs.org/@vscode/sqlite3/-/sqlite3-5.1.8-vscode.tgz", + "integrity": "sha512-9Ku18yZej1kxS7mh6dhCWxkCof043HljcLIdq+RRJr65QdOeAqPOUJ2i6qXRL63l1Kd72uXV/zLA2SBwhfgiOw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { - "node-addon-api": "^4.2.0", + "node-addon-api": "^8.2.0", "tar": "^6.1.11" } }, "node_modules/@vscode/sqlite3/node_modules/node-addon-api": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.2.0.tgz", - "integrity": "sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q==" + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.2.0.tgz", + "integrity": "sha512-qnyuI2ROiCkye42n9Tj5aX1ns7rzj6n7zW1XReSnLSL9v/vbLeR6fJq6PU27YU/ICfYw6W7Ouk/N7cysWu/hlw==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } }, "node_modules/@vscode/sudo-prompt": { "version": "9.3.1", @@ -3265,16 +3267,27 @@ } }, "node_modules/@vscode/windows-ca-certs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@vscode/windows-ca-certs/-/windows-ca-certs-0.3.1.tgz", - "integrity": "sha512-1B6hZAsqg125wuMsXiKIFkBgKx/J7YR4RT/ccYGkWAToPU9MVa40PRe+evLFUmLPH6NmPohEPlCzZLbqgvHCcQ==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@vscode/windows-ca-certs/-/windows-ca-certs-0.3.3.tgz", + "integrity": "sha512-C0Iq5RcH+H31GUZ8bsMORsX3LySVkGAqe4kQfUSVcCqJ0QOhXkhgwUMU7oCiqYLXaQWyXFp6Fj6eMdt05uK7VA==", "hasInstallScript": true, + "license": "BSD", "optional": true, "os": [ "win32" ], "dependencies": { - "node-addon-api": "^3.0.2" + "node-addon-api": "^8.2.0" + } + }, + "node_modules/@vscode/windows-ca-certs/node_modules/node-addon-api": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.2.0.tgz", + "integrity": "sha512-qnyuI2ROiCkye42n9Tj5aX1ns7rzj6n7zW1XReSnLSL9v/vbLeR6fJq6PU27YU/ICfYw6W7Ouk/N7cysWu/hlw==", + "license": "MIT", + "optional": true, + "engines": { + "node": "^18 || ^20 || >= 21" } }, "node_modules/@vscode/windows-mutex": { @@ -3287,14 +3300,6 @@ "node-addon-api": "7.1.0" } }, - "node_modules/@vscode/windows-mutex/node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", - "engines": { - "node": "^16 || ^18 || >= 20" - } - }, "node_modules/@vscode/windows-process-tree": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@vscode/windows-process-tree/-/windows-process-tree-0.6.0.tgz", @@ -3304,14 +3309,6 @@ "node-addon-api": "7.1.0" } }, - "node_modules/@vscode/windows-process-tree/node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", - "engines": { - "node": "^16 || ^18 || >= 20" - } - }, "node_modules/@vscode/windows-registry": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@vscode/windows-registry/-/windows-registry-1.1.0.tgz", @@ -6170,9 +6167,9 @@ "dev": true }, "node_modules/electron": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-30.5.1.tgz", - "integrity": "sha512-AhL7+mZ8Lg14iaNfoYTkXQ2qee8mmsQyllKdqxlpv/zrKgfxz6jNVtcRRbQtLxtF8yzcImWdfTQROpYiPumdbw==", + "version": "32.1.2", + "resolved": "https://registry.npmjs.org/electron/-/electron-32.1.2.tgz", + "integrity": "sha512-CXe6doFzhmh1U7daOvUzmF6Cj8hssdYWMeEPRnRO6rB9/bbwMlWctcQ7P8NJXhLQ88/vYUJQrJvlJPh8qM0BRQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -11178,11 +11175,6 @@ "node": ">=12.9.0" } }, - "node_modules/kerberos/node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" - }, "node_modules/keygrip": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", @@ -12693,9 +12685,13 @@ } }, "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", + "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "license": "MIT", + "engines": { + "node": "^16 || ^18 || >= 20" + } }, "node_modules/node-fetch": { "version": "2.6.8", @@ -12758,14 +12754,6 @@ "node-addon-api": "^7.1.0" } }, - "node_modules/node-pty/node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", - "engines": { - "node": "^16 || ^18 || >= 20" - } - }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", diff --git a/package.json b/package.json index b9d34543ce2ee..28051e63ba843 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-oss-dev", "version": "1.95.0", - "distro": "1f05cd9b265f2477905f0b7688a66cfb2c6061f5", + "distro": "388bd7fe1d02a9631b51f2ab0d57300f0e028c47", "author": { "name": "Microsoft Corporation" }, @@ -73,11 +73,11 @@ "@parcel/watcher": "2.1.0", "@vscode/deviceid": "^0.1.1", "@vscode/iconv-lite-umd": "0.7.0", - "@vscode/policy-watcher": "^1.1.4", + "@vscode/policy-watcher": "^1.1.8", "@vscode/proxy-agent": "^0.22.0", "@vscode/ripgrep": "^1.15.9", "@vscode/spdlog": "^0.15.0", - "@vscode/sqlite3": "5.1.6-vscode", + "@vscode/sqlite3": "5.1.8-vscode", "@vscode/sudo-prompt": "9.3.1", "@vscode/tree-sitter-wasm": "^0.0.4", "@vscode/vscode-languagedetection": "1.0.21", @@ -153,7 +153,7 @@ "cssnano": "^6.0.3", "debounce": "^1.0.0", "deemon": "^1.8.0", - "electron": "30.5.1", + "electron": "32.1.2", "eslint": "8.36.0", "eslint-plugin-header": "3.1.1", "eslint-plugin-jsdoc": "^46.5.0", @@ -221,7 +221,13 @@ "yaserver": "^0.4.0" }, "overrides": { - "node-gyp-build": "4.8.1" + "node-gyp-build": "4.8.1", + "kerberos@2.1.1": { + "node-addon-api": "7.1.0" + }, + "@parcel/watcher@2.1.0": { + "node-addon-api": "7.1.0" + } }, "repository": { "type": "git", diff --git a/remote/.npmrc b/remote/.npmrc index d6905a0c0f99a..122d9a51835e3 100644 --- a/remote/.npmrc +++ b/remote/.npmrc @@ -1,6 +1,6 @@ disturl="https://nodejs.org/dist" -target="20.16.0" -ms_build_id="289487" +target="20.17.0" +ms_build_id="296739" runtime="node" build_from_source="true" legacy-peer-deps="true" diff --git a/remote/package-lock.json b/remote/package-lock.json index 34367ce686be1..290e188418f50 100644 --- a/remote/package-lock.json +++ b/remote/package-lock.json @@ -175,14 +175,6 @@ "node-addon-api": "7.1.0" } }, - "node_modules/@vscode/spdlog/node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", - "engines": { - "node": "^16 || ^18 || >= 20" - } - }, "node_modules/@vscode/tree-sitter-wasm": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/@vscode/tree-sitter-wasm/-/tree-sitter-wasm-0.0.4.tgz", @@ -197,16 +189,27 @@ } }, "node_modules/@vscode/windows-ca-certs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@vscode/windows-ca-certs/-/windows-ca-certs-0.3.1.tgz", - "integrity": "sha512-1B6hZAsqg125wuMsXiKIFkBgKx/J7YR4RT/ccYGkWAToPU9MVa40PRe+evLFUmLPH6NmPohEPlCzZLbqgvHCcQ==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@vscode/windows-ca-certs/-/windows-ca-certs-0.3.3.tgz", + "integrity": "sha512-C0Iq5RcH+H31GUZ8bsMORsX3LySVkGAqe4kQfUSVcCqJ0QOhXkhgwUMU7oCiqYLXaQWyXFp6Fj6eMdt05uK7VA==", "hasInstallScript": true, + "license": "BSD", "optional": true, "os": [ "win32" ], "dependencies": { - "node-addon-api": "^3.0.2" + "node-addon-api": "^8.2.0" + } + }, + "node_modules/@vscode/windows-ca-certs/node_modules/node-addon-api": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.2.0.tgz", + "integrity": "sha512-qnyuI2ROiCkye42n9Tj5aX1ns7rzj6n7zW1XReSnLSL9v/vbLeR6fJq6PU27YU/ICfYw6W7Ouk/N7cysWu/hlw==", + "license": "MIT", + "optional": true, + "engines": { + "node": "^18 || ^20 || >= 21" } }, "node_modules/@vscode/windows-process-tree": { @@ -218,14 +221,6 @@ "node-addon-api": "7.1.0" } }, - "node_modules/@vscode/windows-process-tree/node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", - "engines": { - "node": "^16 || ^18 || >= 20" - } - }, "node_modules/@vscode/windows-registry": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@vscode/windows-registry/-/windows-registry-1.1.0.tgz", @@ -646,11 +641,6 @@ "node": ">=12.9.0" } }, - "node_modules/kerberos/node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" - }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -734,9 +724,13 @@ } }, "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", + "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "license": "MIT", + "engines": { + "node": "^16 || ^18 || >= 20" + } }, "node_modules/node-gyp-build": { "version": "4.8.1", @@ -757,14 +751,6 @@ "node-addon-api": "^7.1.0" } }, - "node_modules/node-pty/node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", - "engines": { - "node": "^16 || ^18 || >= 20" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", diff --git a/remote/package.json b/remote/package.json index 1c0d780abd877..e8ea8642b9821 100644 --- a/remote/package.json +++ b/remote/package.json @@ -39,6 +39,12 @@ "yazl": "^2.4.3" }, "overrides": { - "node-gyp-build": "4.8.1" + "node-gyp-build": "4.8.1", + "kerberos@2.1.1": { + "node-addon-api": "7.1.0" + }, + "@parcel/watcher@2.1.0": { + "node-addon-api": "7.1.0" + } } } diff --git a/src/vs/base/parts/sandbox/common/electronTypes.ts b/src/vs/base/parts/sandbox/common/electronTypes.ts index ef8c1026be25b..43fa75079d4cf 100644 --- a/src/vs/base/parts/sandbox/common/electronTypes.ts +++ b/src/vs/base/parts/sandbox/common/electronTypes.ts @@ -217,6 +217,24 @@ export interface FileFilter { name: string; } +export interface OpenDevToolsOptions { + /** + * Opens the devtools with specified dock state, can be `left`, `right`, `bottom`, + * `undocked`, `detach`. Defaults to last used dock state. In `undocked` mode it's + * possible to dock back. In `detach` mode it's not. + */ + mode: ('left' | 'right' | 'bottom' | 'undocked' | 'detach'); + /** + * Whether to bring the opened devtools window to the foreground. The default is + * `true`. + */ + activate?: boolean; + /** + * A title for the DevTools window (only in `undocked` or `detach` mode). + */ + title?: string; +} + interface InputEvent { // Docs: https://electronjs.org/docs/api/structures/input-event diff --git a/src/vs/platform/menubar/electron-main/menubar.ts b/src/vs/platform/menubar/electron-main/menubar.ts index 3ff82f2299158..f03e8832a52e8 100644 --- a/src/vs/platform/menubar/electron-main/menubar.ts +++ b/src/vs/platform/menubar/electron-main/menubar.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { app, BrowserWindow, KeyboardEvent, Menu, MenuItem, MenuItemConstructorOptions, WebContents } from 'electron'; +import { app, BrowserWindow, BaseWindow, KeyboardEvent, Menu, MenuItem, MenuItemConstructorOptions, WebContents } from 'electron'; import { WorkbenchActionExecutedClassification, WorkbenchActionExecutedEvent } from '../../../base/common/actions.js'; import { RunOnceScheduler } from '../../../base/common/async.js'; import { CancellationToken } from '../../../base/common/cancellation.js'; @@ -63,7 +63,7 @@ export class Menubar extends Disposable { private keybindings: { [commandId: string]: IMenubarKeybinding }; - private readonly fallbackMenuHandlers: { [id: string]: (menuItem: MenuItem, browserWindow: BrowserWindow | undefined, event: KeyboardEvent) => void } = Object.create(null); + private readonly fallbackMenuHandlers: { [id: string]: (menuItem: MenuItem, browserWindow: BaseWindow | undefined, event: KeyboardEvent) => void } = Object.create(null); constructor( @IUpdateService private readonly updateService: IUpdateService, @@ -744,8 +744,8 @@ export class Menubar extends Disposable { return new MenuItem(this.withKeybinding(commandId, options)); } - private makeContextAwareClickHandler(click: (menuItem: MenuItem, win: BrowserWindow, event: KeyboardEvent) => void, contextSpecificHandlers: IMenuItemClickHandler): (menuItem: MenuItem, win: BrowserWindow | undefined, event: KeyboardEvent) => void { - return (menuItem: MenuItem, win: BrowserWindow | undefined, event: KeyboardEvent) => { + private makeContextAwareClickHandler(click: (menuItem: MenuItem, win: BaseWindow, event: KeyboardEvent) => void, contextSpecificHandlers: IMenuItemClickHandler): (menuItem: MenuItem, win: BaseWindow | undefined, event: KeyboardEvent) => void { + return (menuItem: MenuItem, win: BaseWindow | undefined, event: KeyboardEvent) => { // No Active Window const activeWindow = BrowserWindow.getFocusedWindow(); diff --git a/src/vs/platform/native/common/native.ts b/src/vs/platform/native/common/native.ts index f2c1930b017a8..b62a24bc148f1 100644 --- a/src/vs/platform/native/common/native.ts +++ b/src/vs/platform/native/common/native.ts @@ -6,7 +6,7 @@ import { VSBuffer } from '../../../base/common/buffer.js'; import { Event } from '../../../base/common/event.js'; import { URI } from '../../../base/common/uri.js'; -import { MessageBoxOptions, MessageBoxReturnValue, OpenDialogOptions, OpenDialogReturnValue, SaveDialogOptions, SaveDialogReturnValue } from '../../../base/parts/sandbox/common/electronTypes.js'; +import { MessageBoxOptions, MessageBoxReturnValue, OpenDevToolsOptions, OpenDialogOptions, OpenDialogReturnValue, SaveDialogOptions, SaveDialogReturnValue } from '../../../base/parts/sandbox/common/electronTypes.js'; import { ISerializableCommandAction } from '../../action/common/action.js'; import { INativeOpenDialogOptions } from '../../dialogs/common/dialogs.js'; import { createDecorator } from '../../instantiation/common/instantiation.js'; @@ -179,7 +179,7 @@ export interface ICommonNativeHostService { exit(code: number): Promise; // Development - openDevTools(options?: INativeHostOptions): Promise; + openDevTools(options?: Partial & INativeHostOptions): Promise; toggleDevTools(options?: INativeHostOptions): Promise; // Perf Introspection diff --git a/src/vs/platform/native/electron-main/nativeHostMainService.ts b/src/vs/platform/native/electron-main/nativeHostMainService.ts index 6f57b9a7b44ac..26b5175291c31 100644 --- a/src/vs/platform/native/electron-main/nativeHostMainService.ts +++ b/src/vs/platform/native/electron-main/nativeHostMainService.ts @@ -5,7 +5,7 @@ import * as fs from 'fs'; import { exec } from 'child_process'; -import { app, BrowserWindow, clipboard, Display, Menu, MessageBoxOptions, MessageBoxReturnValue, OpenDialogOptions, OpenDialogReturnValue, powerMonitor, SaveDialogOptions, SaveDialogReturnValue, screen, shell, webContents } from 'electron'; +import { app, BrowserWindow, clipboard, Display, Menu, MessageBoxOptions, MessageBoxReturnValue, OpenDevToolsOptions, OpenDialogOptions, OpenDialogReturnValue, powerMonitor, SaveDialogOptions, SaveDialogReturnValue, screen, shell, webContents } from 'electron'; import { arch, cpus, freemem, loadavg, platform, release, totalmem, type } from 'os'; import { promisify } from 'util'; import { memoize } from '../../../base/common/decorators.js'; @@ -33,7 +33,7 @@ import { IProductService } from '../../product/common/productService.js'; import { IPartsSplash } from '../../theme/common/themeService.js'; import { IThemeMainService } from '../../theme/electron-main/themeMainService.js'; import { ICodeWindow } from '../../window/electron-main/window.js'; -import { IColorScheme, IOpenedAuxiliaryWindow, IOpenedMainWindow, IOpenEmptyWindowOptions, IOpenWindowOptions, IPoint, IRectangle, IWindowOpenable, useWindowControlsOverlay } from '../../window/common/window.js'; +import { IColorScheme, IOpenedAuxiliaryWindow, IOpenedMainWindow, IOpenEmptyWindowOptions, IOpenWindowOptions, IPoint, IRectangle, IWindowOpenable } from '../../window/common/window.js'; import { IWindowsMainService, OpenContext } from '../../windows/electron-main/windows.js'; import { isWorkspaceIdentifier, toWorkspaceIdentifier } from '../../workspace/common/workspace.js'; import { IWorkspacesManagementMainService } from '../../workspaces/electron-main/workspacesManagementMainService.js'; @@ -859,28 +859,14 @@ export class NativeHostMainService extends Disposable implements INativeHostMain //#region Development - async openDevTools(windowId: number | undefined, options?: INativeHostOptions): Promise { + async openDevTools(windowId: number | undefined, options?: Partial & INativeHostOptions): Promise { const window = this.windowById(options?.targetWindowId, windowId); - - let mode: 'bottom' | undefined = undefined; - if (isLinux && useWindowControlsOverlay(this.configurationService)) { - mode = 'bottom'; // TODO@bpasero WCO and devtools collide with default option 'right' - } - window?.win?.webContents.openDevTools(mode ? { mode } : undefined); + window?.win?.webContents.openDevTools(options?.mode ? { mode: options.mode, activate: options.activate } : undefined); } async toggleDevTools(windowId: number | undefined, options?: INativeHostOptions): Promise { const window = this.windowById(options?.targetWindowId, windowId); - const webContents = window?.win?.webContents; - if (!webContents) { - return; - } - - if (isLinux && useWindowControlsOverlay(this.configurationService) && !webContents.isDevToolsOpened()) { - webContents.openDevTools({ mode: 'bottom' }); // TODO@bpasero WCO and devtools collide with default option 'right' - } else { - webContents.toggleDevTools(); - } + window?.win?.webContents.toggleDevTools(); } //#endregion diff --git a/src/vs/platform/utilityProcess/electron-main/utilityProcess.ts b/src/vs/platform/utilityProcess/electron-main/utilityProcess.ts index 199813a3b8c7a..90b054ad13dd9 100644 --- a/src/vs/platform/utilityProcess/electron-main/utilityProcess.ts +++ b/src/vs/platform/utilityProcess/electron-main/utilityProcess.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { BrowserWindow, Details, MessageChannelMain, app, utilityProcess, UtilityProcess as ElectronUtilityProcess, ForkOptions } from 'electron'; +import { BrowserWindow, Details, MessageChannelMain, app, utilityProcess, UtilityProcess as ElectronUtilityProcess } from 'electron'; import { Disposable } from '../../../base/common/lifecycle.js'; import { Emitter, Event } from '../../../base/common/event.js'; import { ILogService } from '../../log/common/log.js'; @@ -18,7 +18,6 @@ import { removeDangerousEnvVariables } from '../../../base/common/processes.js'; import { deepClone } from '../../../base/common/objects.js'; import { isWindows } from '../../../base/common/platform.js'; import { isUNCAccessRestrictionsDisabled, getUNCHostAllowlist } from '../../../base/node/unc.js'; -import { upcast } from '../../../base/common/types.js'; export interface IUtilityProcessConfiguration { @@ -243,16 +242,14 @@ export class UtilityProcess extends Disposable { this.log('creating new...', Severity.Info); // Fork utility process - this.process = utilityProcess.fork(modulePath, args, upcast({ + this.process = utilityProcess.fork(modulePath, args, { serviceName, env, execArgv, allowLoadingUnsignedLibraries, respondToAuthRequestsFromMainProcess, stdio - })); + }); // Register to events this.registerListeners(this.process, this.configuration, serviceName); diff --git a/src/vs/workbench/test/electron-sandbox/workbenchTestServices.ts b/src/vs/workbench/test/electron-sandbox/workbenchTestServices.ts index 3ae1a6afeabf7..8eb37abc43b28 100644 --- a/src/vs/workbench/test/electron-sandbox/workbenchTestServices.ts +++ b/src/vs/workbench/test/electron-sandbox/workbenchTestServices.ts @@ -143,7 +143,7 @@ export class TestNativeHostService implements INativeHostService { async closeWindow(): Promise { } async quit(): Promise { } async exit(code: number): Promise { } - async openDevTools(): Promise { } + async openDevTools(options?: Partial & INativeHostOptions | undefined): Promise { } async toggleDevTools(): Promise { } async resolveProxy(url: string): Promise { return undefined; } async lookupAuthorization(authInfo: AuthInfo): Promise { return undefined; }