mirror of
https://github.com/electron/electron.git
synced 2026-02-19 03:14:51 -05:00
Compare commits
360 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4afc8fb832 | ||
|
|
dcf18e23f6 | ||
|
|
509801d77b | ||
|
|
129555af5d | ||
|
|
750ef114bc | ||
|
|
a84b44a1ee | ||
|
|
af90ed022e | ||
|
|
3faad259e8 | ||
|
|
2a9780141c | ||
|
|
550d390d24 | ||
|
|
e120f43f11 | ||
|
|
79b71dfe50 | ||
|
|
2511cfbafa | ||
|
|
49f2343ed0 | ||
|
|
3f92511cde | ||
|
|
e94855be21 | ||
|
|
ea7e51a8b2 | ||
|
|
2c6107b2b3 | ||
|
|
e2212067ae | ||
|
|
116c24aaf2 | ||
|
|
f4e6a361de | ||
|
|
9a788ad231 | ||
|
|
c72e0bd90b | ||
|
|
b6dbb2bab7 | ||
|
|
9b058a45bc | ||
|
|
ec2c6a4498 | ||
|
|
1072c4830f | ||
|
|
ce6d4b0d64 | ||
|
|
8b161f0b33 | ||
|
|
7133cbab7f | ||
|
|
e6ac03d0ee | ||
|
|
c787127e91 | ||
|
|
61ba91a254 | ||
|
|
6a9ff4df34 | ||
|
|
e32dc4fa36 | ||
|
|
1ac47ee8cf | ||
|
|
d2af972af4 | ||
|
|
c41d692473 | ||
|
|
0af4b6c1ed | ||
|
|
a2d43f4a39 | ||
|
|
b180cfee6c | ||
|
|
4a81ae7954 | ||
|
|
ef9212a112 | ||
|
|
1c0cec1872 | ||
|
|
440fb9a73e | ||
|
|
8c974c022a | ||
|
|
ea4d43d59e | ||
|
|
d4ccd31264 | ||
|
|
d342296f81 | ||
|
|
3c75d600bf | ||
|
|
9d7adf22af | ||
|
|
8c747d82e1 | ||
|
|
99cda5805d | ||
|
|
4e86467751 | ||
|
|
f4bc4c2999 | ||
|
|
b4a439fb4f | ||
|
|
ed82dba57e | ||
|
|
3c396a674e | ||
|
|
1169e25f9d | ||
|
|
c9c4c36a72 | ||
|
|
e39cf315dc | ||
|
|
ceefcd1d32 | ||
|
|
729ceb4360 | ||
|
|
fd131e30aa | ||
|
|
da2f4eb2a9 | ||
|
|
37be7b0f63 | ||
|
|
387394e084 | ||
|
|
668ded5ea3 | ||
|
|
78f78bf8be | ||
|
|
5eb6cec6e9 | ||
|
|
bddc661684 | ||
|
|
33d23f5e00 | ||
|
|
e90282d57a | ||
|
|
13ceef30b7 | ||
|
|
c2a3d240c3 | ||
|
|
d4a93c896d | ||
|
|
cd42e9ba05 | ||
|
|
c15c6d9118 | ||
|
|
2d9cb53a86 | ||
|
|
abda6bfda5 | ||
|
|
20dc3dbc3a | ||
|
|
f9cba35a25 | ||
|
|
8d2654c47e | ||
|
|
e98530ab7d | ||
|
|
573c8aa656 | ||
|
|
ddee51eb9e | ||
|
|
351e6e36f4 | ||
|
|
55557dd3a6 | ||
|
|
5e9f4eaa3c | ||
|
|
e3939f2e60 | ||
|
|
cac475579e | ||
|
|
47caba64ab | ||
|
|
15e536b14b | ||
|
|
b328de39e5 | ||
|
|
ec1704a1dd | ||
|
|
a997e6e53a | ||
|
|
bb09671746 | ||
|
|
b66cc92391 | ||
|
|
a0633d9e25 | ||
|
|
92dd952757 | ||
|
|
8e93599b53 | ||
|
|
62fbb1d67a | ||
|
|
63c7215cd1 | ||
|
|
2336cd67b7 | ||
|
|
492589670b | ||
|
|
8988a372da | ||
|
|
2a707ffbd8 | ||
|
|
1487f5d8b4 | ||
|
|
d647bb4bd0 | ||
|
|
6e22f50bf8 | ||
|
|
14ba395d45 | ||
|
|
dd054ea748 | ||
|
|
3da28fd115 | ||
|
|
45542e197b | ||
|
|
6a884abe6b | ||
|
|
0c226d8d79 | ||
|
|
38e990c6e0 | ||
|
|
5bfea79b67 | ||
|
|
1c132a3fdb | ||
|
|
9b624e143e | ||
|
|
fc2df39c33 | ||
|
|
bbb000e896 | ||
|
|
5d098dfc82 | ||
|
|
0755f426c6 | ||
|
|
a4c32b1f3d | ||
|
|
15ff33a92c | ||
|
|
2d71d65415 | ||
|
|
a4dfd9b6f3 | ||
|
|
6dea52b6c0 | ||
|
|
cadaaaf714 | ||
|
|
ef6a71a0c6 | ||
|
|
6350b7535f | ||
|
|
577ea02d64 | ||
|
|
ef9a67e00b | ||
|
|
0bd0c54cea | ||
|
|
7d73997d5f | ||
|
|
8f908ffce2 | ||
|
|
ae232703de | ||
|
|
747b2f62e0 | ||
|
|
6eac8d8af9 | ||
|
|
4f9bca79d3 | ||
|
|
12528c6739 | ||
|
|
9c3331ea83 | ||
|
|
6a0e31633a | ||
|
|
8b2b155c5d | ||
|
|
de81d8a4a6 | ||
|
|
748977b1d8 | ||
|
|
bc553af826 | ||
|
|
615b65b2a2 | ||
|
|
7030816fe1 | ||
|
|
f5bb2f480d | ||
|
|
07c0357366 | ||
|
|
c7d9fb602e | ||
|
|
be43a76440 | ||
|
|
de7cf88f17 | ||
|
|
12dd4d91bd | ||
|
|
3c9e7f97a1 | ||
|
|
b822478057 | ||
|
|
366daf192a | ||
|
|
7779b6a4ad | ||
|
|
695448e142 | ||
|
|
fdc322c93f | ||
|
|
13fe994d0d | ||
|
|
7240a14126 | ||
|
|
3f23f01762 | ||
|
|
5223225fb5 | ||
|
|
5045ba29a5 | ||
|
|
c27bd7bb3c | ||
|
|
aada99e53d | ||
|
|
1b596f6261 | ||
|
|
bac01a33cd | ||
|
|
bb4ab67e52 | ||
|
|
17e1ff2675 | ||
|
|
1687b95849 | ||
|
|
3d4a4b9343 | ||
|
|
c24f330b45 | ||
|
|
ee65ab75f5 | ||
|
|
77b945dd0a | ||
|
|
643b35503f | ||
|
|
98380468bb | ||
|
|
069ca16b9e | ||
|
|
dcd8224c15 | ||
|
|
65081e8939 | ||
|
|
6bb07bf277 | ||
|
|
698bff0efa | ||
|
|
34adb976b6 | ||
|
|
5c2f70c1d5 | ||
|
|
3981c173ef | ||
|
|
61d6872dcf | ||
|
|
1a797beeea | ||
|
|
66f55ead4e | ||
|
|
108fdac02c | ||
|
|
d52670c749 | ||
|
|
5dab95335b | ||
|
|
c4302ab58c | ||
|
|
197444181d | ||
|
|
02e4e109d5 | ||
|
|
08a4c333a3 | ||
|
|
5a4ef1cc33 | ||
|
|
4e8c09f46a | ||
|
|
fc319e0ea3 | ||
|
|
2629b31c19 | ||
|
|
11c820c537 | ||
|
|
07a7ebb714 | ||
|
|
b0d4c12247 | ||
|
|
8f40f8126e | ||
|
|
b821cf1adc | ||
|
|
3f8340d9f3 | ||
|
|
0e30f5e2a1 | ||
|
|
fdc6a3b108 | ||
|
|
3348ac08b4 | ||
|
|
e8188ef271 | ||
|
|
2960f93ea5 | ||
|
|
361753f61f | ||
|
|
ec75ddd715 | ||
|
|
301f7b4e64 | ||
|
|
7b66361ca8 | ||
|
|
f8a55100cc | ||
|
|
c785b40703 | ||
|
|
339e0040ef | ||
|
|
e825107f8a | ||
|
|
53633fcaeb | ||
|
|
285d347b51 | ||
|
|
a2ee5547e0 | ||
|
|
b518e4ad36 | ||
|
|
9d3696e4b3 | ||
|
|
22b6eefc50 | ||
|
|
70fd706ea4 | ||
|
|
8b3c52f242 | ||
|
|
33fafd508c | ||
|
|
28eb0e6f3d | ||
|
|
b234733555 | ||
|
|
ffb4f0f812 | ||
|
|
33964528e1 | ||
|
|
4f54c91ee2 | ||
|
|
3fdcd38b8b | ||
|
|
feaa9ec5b9 | ||
|
|
de933233e6 | ||
|
|
1046842f73 | ||
|
|
2dd4b77ae0 | ||
|
|
5942ac580b | ||
|
|
ec34d8ee49 | ||
|
|
64c9afcf77 | ||
|
|
4392cb9434 | ||
|
|
c3b5e5527f | ||
|
|
31e3c84843 | ||
|
|
42514326ca | ||
|
|
7be433c0b7 | ||
|
|
c92412761d | ||
|
|
4e3baa4d8e | ||
|
|
10fb533bc3 | ||
|
|
3d8df7684b | ||
|
|
5a6ed32592 | ||
|
|
99c3728a93 | ||
|
|
e0a24f08a1 | ||
|
|
0cb42911ea | ||
|
|
8fec7adfa6 | ||
|
|
30ccda8ba0 | ||
|
|
3acd5774da | ||
|
|
a0ac690881 | ||
|
|
7299dd1501 | ||
|
|
92b03cb91f | ||
|
|
01ce103ae1 | ||
|
|
58b2c2e651 | ||
|
|
4db5a2a2b2 | ||
|
|
6126cc2bfe | ||
|
|
33eff16e9a | ||
|
|
e2b9cedf0f | ||
|
|
75e44e5f05 | ||
|
|
71e53c925e | ||
|
|
17487df08d | ||
|
|
6b1d1bf893 | ||
|
|
8327ed0eea | ||
|
|
7e80e8f610 | ||
|
|
33df588e8e | ||
|
|
45c78deff8 | ||
|
|
b647c8935d | ||
|
|
11c35626da | ||
|
|
f78a66d988 | ||
|
|
200550da3c | ||
|
|
cb7335b4f0 | ||
|
|
b4fc140f1a | ||
|
|
c89bebdee1 | ||
|
|
4df1063e30 | ||
|
|
8b05b6e59b | ||
|
|
71f17fcf5b | ||
|
|
bf87315ae8 | ||
|
|
dde045db9c | ||
|
|
3ff5c4ea5f | ||
|
|
32c352bff5 | ||
|
|
3e2aa2f443 | ||
|
|
12d11c09a1 | ||
|
|
06ad763412 | ||
|
|
5b9f71602d | ||
|
|
bb882b4f3d | ||
|
|
9efacb6147 | ||
|
|
5cddcdf190 | ||
|
|
25e5055065 | ||
|
|
6f3c9fcf99 | ||
|
|
7ee88bbdcb | ||
|
|
96197d9597 | ||
|
|
7d2c27c83e | ||
|
|
32a341288c | ||
|
|
2466232460 | ||
|
|
a5579fb71f | ||
|
|
76fa5b7af1 | ||
|
|
e1b2b8ef0c | ||
|
|
243016b31e | ||
|
|
5f0be2e153 | ||
|
|
6d2c7c2ab3 | ||
|
|
c4e0cae3ee | ||
|
|
7e0d84f19c | ||
|
|
dea35330c0 | ||
|
|
7f85c85b71 | ||
|
|
4b0d49898f | ||
|
|
6927f649ee | ||
|
|
33bde96d73 | ||
|
|
3772e267c3 | ||
|
|
b7a28f31d8 | ||
|
|
1ba56c8696 | ||
|
|
cee2c2ceeb | ||
|
|
b3526da28e | ||
|
|
d23aaadcd5 | ||
|
|
ef22986d1d | ||
|
|
b0d207e384 | ||
|
|
1424da9131 | ||
|
|
29ead1bc25 | ||
|
|
859cff24ec | ||
|
|
0ba2441963 | ||
|
|
7ea2daf456 | ||
|
|
bc9389df9a | ||
|
|
9716b6623e | ||
|
|
56fced3d0d | ||
|
|
3faedae91c | ||
|
|
463e0d0ab7 | ||
|
|
c5310fff80 | ||
|
|
4b72738b41 | ||
|
|
585075d776 | ||
|
|
c87fd357fc | ||
|
|
a1ec212049 | ||
|
|
a3af41674f | ||
|
|
5c73799f52 | ||
|
|
8275f7e402 | ||
|
|
0ea8decb0a | ||
|
|
515f5847e1 | ||
|
|
1fc3a60655 | ||
|
|
3e5cabde39 | ||
|
|
98adbbb593 | ||
|
|
c62db7d49d | ||
|
|
313aee6cbb | ||
|
|
9f0fb54918 | ||
|
|
c39683b2cb | ||
|
|
0e8300399d | ||
|
|
ca91235c51 | ||
|
|
f90de88c63 | ||
|
|
d41ed8a118 | ||
|
|
daa37826f8 | ||
|
|
e74e1ab4c5 | ||
|
|
7d0f24420f | ||
|
|
d1663a5ac6 |
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"name": "Electron Core Development Environment",
|
||||
"dockerComposeFile": "docker-compose.yml",
|
||||
"service": "buildtools",
|
||||
"onCreateCommand": ".devcontainer/on-create-command.sh",
|
||||
@@ -34,15 +33,27 @@
|
||||
"surajbarkale.ninja",
|
||||
"ms-vscode.cpptools",
|
||||
"mutantdino.resourcemonitor",
|
||||
"dsanders11.vscode-electron-build-tools",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"shakram02.bash-beautify",
|
||||
"marshallofsound.gnls-electron"
|
||||
"marshallofsound.gnls-electron",
|
||||
],
|
||||
"settings": {
|
||||
"editor.tabSize": 2,
|
||||
"bashBeautify.tabSize": 2,
|
||||
"typescript.tsdk": "node_modules/typescript/lib",
|
||||
"[gn]": {
|
||||
"editor.formatOnSave": true
|
||||
},
|
||||
"[javascript]": {
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": true
|
||||
}
|
||||
},
|
||||
"[typescript]": {
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": true
|
||||
}
|
||||
},
|
||||
"javascript.preferences.quoteStyle": "single",
|
||||
"typescript.preferences.quoteStyle": "single"
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ version: '3'
|
||||
|
||||
services:
|
||||
buildtools:
|
||||
image: ghcr.io/electron/devcontainer:933c7d6ff6802706875270bec2e3c891cf8add3f
|
||||
image: ghcr.io/electron/devcontainer:424eedbf277ad9749ffa9219068aa72ed4a5e373
|
||||
|
||||
volumes:
|
||||
- ..:/workspaces/gclient/src/electron:cached
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -73,7 +73,7 @@ body:
|
||||
- type: input
|
||||
attributes:
|
||||
label: Testcase Gist URL
|
||||
description: Electron maintainers need a standalone test case to reproduce and fix your issue. Please use [Electron Fiddle](https://github.com/electron/fiddle) to create one and to publish it as a [GitHub gist](https://gist.github.com). Then put the gist URL here. Issues without testcase gists receive less attention and might be closed without a maintainer taking a closer look. To maximize how much attention your issue receives, please include a testcase gist right from the start.
|
||||
description: If you can reproduce the issue in a standalone test case, please use [Electron Fiddle](https://github.com/electron/fiddle) to create one and to publish it as a [GitHub gist](https://gist.github.com) and put the gist URL here. This is **the best way** to ensure this issue is triaged quickly.
|
||||
placeholder: https://gist.github.com/...
|
||||
- type: textarea
|
||||
attributes:
|
||||
|
||||
48
.github/actions/build-electron/action.yml
vendored
48
.github/actions/build-electron/action.yml
vendored
@@ -60,24 +60,14 @@ runs:
|
||||
sudo launchctl limit maxfiles 65536 200000
|
||||
fi
|
||||
|
||||
if [ "${{ inputs.is-release }}" = "true" ]; then
|
||||
NINJA_SUMMARIZE_BUILD=1 e build --target electron:release_build
|
||||
else
|
||||
NINJA_SUMMARIZE_BUILD=1 e build --target electron:testing_build
|
||||
fi
|
||||
NINJA_SUMMARIZE_BUILD=1 e build
|
||||
cp out/Default/.ninja_log out/electron_ninja_log
|
||||
node electron/script/check-symlinks.js
|
||||
|
||||
# Upload build stats to Datadog
|
||||
if ! [ -z $DD_API_KEY ]; then
|
||||
npx node electron/script/build-stats.mjs out/Default/siso.INFO --upload-stats || true
|
||||
else
|
||||
echo "Skipping build-stats.mjs upload because DD_API_KEY is not set"
|
||||
fi
|
||||
- name: Verify dist.zip ${{ inputs.step-suffix }}
|
||||
- name: Build Electron dist.zip ${{ inputs.step-suffix }}
|
||||
shell: bash
|
||||
run: |
|
||||
cd src
|
||||
cd src
|
||||
e build --target electron:electron_dist_zip
|
||||
if [ "${{ inputs.is-asan }}" != "true" ]; then
|
||||
target_os=${{ inputs.target-platform == 'macos' && 'mac' || inputs.target-platform }}
|
||||
if [ "${{ inputs.artifact-platform }}" = "mas" ]; then
|
||||
@@ -85,10 +75,11 @@ runs:
|
||||
fi
|
||||
electron/script/zip_manifests/check-zip-manifest.py out/Default/dist.zip electron/script/zip_manifests/dist_zip.$target_os.${{ inputs.target-arch }}.manifest
|
||||
fi
|
||||
- name: Fixup Mksnapshot ${{ inputs.step-suffix }}
|
||||
- name: Build Mksnapshot ${{ inputs.step-suffix }}
|
||||
shell: bash
|
||||
run: |
|
||||
cd src
|
||||
e build --target electron:electron_mksnapshot
|
||||
ELECTRON_DEPOT_TOOLS_DISABLE_LOG=1 e d gn desc out/Default v8:run_mksnapshot_default args > out/Default/mksnapshot_args
|
||||
# Remove unused args from mksnapshot_args
|
||||
SEDOPTION="-i"
|
||||
@@ -98,6 +89,7 @@ runs:
|
||||
sed $SEDOPTION '/.*builtins-pgo/d' out/Default/mksnapshot_args
|
||||
sed $SEDOPTION '/--turbo-profiling-input/d' out/Default/mksnapshot_args
|
||||
|
||||
e build --target electron:electron_mksnapshot_zip
|
||||
if [ "${{ inputs.target-platform }}" = "win" ]; then
|
||||
cd out/Default
|
||||
powershell Compress-Archive -update mksnapshot_args mksnapshot.zip
|
||||
@@ -131,7 +123,13 @@ runs:
|
||||
shell: bash
|
||||
run: |
|
||||
cd src
|
||||
e build --target electron:electron_chromedriver
|
||||
e build --target electron:electron_chromedriver_zip
|
||||
- name: Build Node.js headers ${{ inputs.step-suffix }}
|
||||
shell: bash
|
||||
run: |
|
||||
cd src
|
||||
e build --target electron:node_headers
|
||||
- name: Create installed_software.json ${{ inputs.step-suffix }}
|
||||
shell: powershell
|
||||
if: ${{ inputs.is-release == 'true' && inputs.target-platform == 'win' }}
|
||||
@@ -151,11 +149,17 @@ runs:
|
||||
# Needed for msdia140.dll on 64-bit windows
|
||||
cd src
|
||||
export PATH="$PATH:$(pwd)/third_party/llvm-build/Release+Asserts/bin"
|
||||
- name: Zip Symbols ${{ inputs.step-suffix }}
|
||||
- name: Generate & Zip Symbols ${{ inputs.step-suffix }}
|
||||
shell: bash
|
||||
run: |
|
||||
# Generate breakpad symbols on release builds
|
||||
if [ "${{ inputs.generate-symbols }}" = "true" ]; then
|
||||
e build --target electron:electron_symbols
|
||||
fi
|
||||
cd src
|
||||
export BUILD_PATH="$(pwd)/out/Default"
|
||||
e build --target electron:licenses
|
||||
e build --target electron:electron_version_file
|
||||
if [ "${{ inputs.is-release }}" = "true" ]; then
|
||||
DELETE_DSYMS_AFTER_ZIP=1 electron/script/zip-symbols.py -b $BUILD_PATH
|
||||
else
|
||||
@@ -168,6 +172,18 @@ runs:
|
||||
cd src
|
||||
gn gen out/ffmpeg --args="import(\"//electron/build/args/ffmpeg.gn\") use_remoteexec=true use_siso=true $GN_EXTRA_ARGS"
|
||||
e build --target electron:electron_ffmpeg_zip -C ../../out/ffmpeg
|
||||
- name: Generate Hunspell Dictionaries ${{ inputs.step-suffix }}
|
||||
shell: bash
|
||||
if: ${{ inputs.is-release == 'true' && inputs.target-platform == 'linux' }}
|
||||
run: |
|
||||
e build --target electron:hunspell_dictionaries_zip
|
||||
- name: Generate Libcxx ${{ inputs.step-suffix }}
|
||||
shell: bash
|
||||
if: ${{ inputs.is-release == 'true' && inputs.target-platform == 'linux' }}
|
||||
run: |
|
||||
e build --target electron:libcxx_headers_zip
|
||||
e build --target electron:libcxxabi_headers_zip
|
||||
e build --target electron:libcxx_objects_zip
|
||||
- name: Remove Clang problem matcher
|
||||
shell: bash
|
||||
run: echo "::remove-matcher owner=clang::"
|
||||
|
||||
@@ -15,7 +15,7 @@ runs:
|
||||
git config --global core.preloadindex true
|
||||
git config --global core.longpaths true
|
||||
fi
|
||||
export BUILD_TOOLS_SHA=706147b2376f55078f718576b28129a0457f1795
|
||||
export BUILD_TOOLS_SHA=8559e5d325d61f195a255f41077ffc9e5b70b0e5
|
||||
npm i -g @electron/build-tools
|
||||
# Update depot_tools to ensure python
|
||||
e d update_depot_tools
|
||||
|
||||
4
.github/workflows/archaeologist-dig.yml
vendored
4
.github/workflows/archaeologist-dig.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Setup Node.js/npm
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
|
||||
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a
|
||||
with:
|
||||
node-version: 20.19.x
|
||||
- name: Setting Up Dig Site
|
||||
@@ -41,7 +41,7 @@ jobs:
|
||||
sha-file: .dig-old
|
||||
filename: electron.old.d.ts
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 #v4.6.2
|
||||
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 #v4.6.1
|
||||
with:
|
||||
name: artifacts
|
||||
path: electron/artifacts
|
||||
|
||||
9
.github/workflows/branch-created.yml
vendored
9
.github/workflows/branch-created.yml
vendored
@@ -94,7 +94,7 @@ jobs:
|
||||
}))
|
||||
- name: Create Release Project Board
|
||||
if: ${{ steps.check-major-version.outputs.MAJOR }}
|
||||
uses: dsanders11/project-actions/copy-project@2134fe7cc71c58b7ae259c82a8e63c6058255678 # v1.7.0
|
||||
uses: dsanders11/project-actions/copy-project@9c80cd31f58599941c64f74636bea95ba5d46090 # v1.5.1
|
||||
id: create-release-board
|
||||
with:
|
||||
drafts: true
|
||||
@@ -114,15 +114,14 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
|
||||
- name: Find Previous Release Project Board
|
||||
if: ${{ steps.check-major-version.outputs.MAJOR }}
|
||||
uses: dsanders11/project-actions/find-project@2134fe7cc71c58b7ae259c82a8e63c6058255678 # v1.7.0
|
||||
uses: dsanders11/project-actions/find-project@9c80cd31f58599941c64f74636bea95ba5d46090 # v1.5.1
|
||||
id: find-prev-release-board
|
||||
with:
|
||||
fail-if-project-not-found: false
|
||||
title: ${{ steps.generate-project-metadata.outputs.prev-prev-major }}-x-y
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
- name: Close Previous Release Project Board
|
||||
if: ${{ steps.find-prev-release-board.outputs.number }}
|
||||
uses: dsanders11/project-actions/close-project@2134fe7cc71c58b7ae259c82a8e63c6058255678 # v1.7.0
|
||||
if: ${{ steps.check-major-version.outputs.MAJOR }}
|
||||
uses: dsanders11/project-actions/close-project@9c80cd31f58599941c64f74636bea95ba5d46090 # v1.5.1
|
||||
with:
|
||||
project-number: ${{ steps.find-prev-release-board.outputs.number }}
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
|
||||
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@@ -6,7 +6,7 @@ on:
|
||||
build-image-sha:
|
||||
type: string
|
||||
description: 'SHA for electron/build image'
|
||||
default: '933c7d6ff6802706875270bec2e3c891cf8add3f'
|
||||
default: '424eedbf277ad9749ffa9219068aa72ed4a5e373'
|
||||
required: true
|
||||
skip-macos:
|
||||
type: boolean
|
||||
@@ -69,7 +69,7 @@ jobs:
|
||||
id: set-output
|
||||
run: |
|
||||
if [ -z "${{ inputs.build-image-sha }}" ]; then
|
||||
echo "build-image-sha=933c7d6ff6802706875270bec2e3c891cf8add3f" >> "$GITHUB_OUTPUT"
|
||||
echo "build-image-sha=424eedbf277ad9749ffa9219068aa72ed4a5e373" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "build-image-sha=${{ inputs.build-image-sha }}" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
4
.github/workflows/issue-labeled.yml
vendored
4
.github/workflows/issue-labeled.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
|
||||
org: electron
|
||||
- name: Set status
|
||||
uses: dsanders11/project-actions/edit-item@2134fe7cc71c58b7ae259c82a8e63c6058255678 # v1.7.0
|
||||
uses: dsanders11/project-actions/edit-item@9c80cd31f58599941c64f74636bea95ba5d46090 # v1.5.1
|
||||
with:
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
project-number: 90
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
|
||||
org: electron
|
||||
- name: Set status
|
||||
uses: dsanders11/project-actions/edit-item@2134fe7cc71c58b7ae259c82a8e63c6058255678 # v1.7.0
|
||||
uses: dsanders11/project-actions/edit-item@9c80cd31f58599941c64f74636bea95ba5d46090 # v1.5.1
|
||||
with:
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
project-number: 90
|
||||
|
||||
2
.github/workflows/issue-opened.yml
vendored
2
.github/workflows/issue-opened.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
|
||||
org: electron
|
||||
- name: Add to Issue Triage
|
||||
uses: dsanders11/project-actions/add-item@2134fe7cc71c58b7ae259c82a8e63c6058255678 # v1.7.0
|
||||
uses: dsanders11/project-actions/add-item@9c80cd31f58599941c64f74636bea95ba5d46090 # v1.5.1
|
||||
with:
|
||||
field: Reporter
|
||||
field-value: ${{ github.event.issue.user.login }}
|
||||
|
||||
2
.github/workflows/issue-transferred.yml
vendored
2
.github/workflows/issue-transferred.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
|
||||
org: electron
|
||||
- name: Remove from issue triage
|
||||
uses: dsanders11/project-actions/delete-item@2134fe7cc71c58b7ae259c82a8e63c6058255678 # v1.7.0
|
||||
uses: dsanders11/project-actions/delete-item@9c80cd31f58599941c64f74636bea95ba5d46090 # v1.5.1
|
||||
with:
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
project-number: 90
|
||||
|
||||
2
.github/workflows/issue-unlabeled.yml
vendored
2
.github/workflows/issue-unlabeled.yml
vendored
@@ -30,7 +30,7 @@ jobs:
|
||||
org: electron
|
||||
- name: Set status
|
||||
if: ${{ steps.check-for-blocked-labels.outputs.NOT_BLOCKED }}
|
||||
uses: dsanders11/project-actions/edit-item@2134fe7cc71c58b7ae259c82a8e63c6058255678 # v1.7.0
|
||||
uses: dsanders11/project-actions/edit-item@9c80cd31f58599941c64f74636bea95ba5d46090 # v1.5.1
|
||||
with:
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
project-number: 90
|
||||
|
||||
2
.github/workflows/linux-publish.yml
vendored
2
.github/workflows/linux-publish.yml
vendored
@@ -6,7 +6,7 @@ on:
|
||||
build-image-sha:
|
||||
type: string
|
||||
description: 'SHA for electron/build image'
|
||||
default: '933c7d6ff6802706875270bec2e3c891cf8add3f'
|
||||
default: '424eedbf277ad9749ffa9219068aa72ed4a5e373'
|
||||
upload-to-storage:
|
||||
description: 'Uploads to Azure storage'
|
||||
required: false
|
||||
|
||||
2
.github/workflows/macos-publish.yml
vendored
2
.github/workflows/macos-publish.yml
vendored
@@ -6,7 +6,7 @@ on:
|
||||
build-image-sha:
|
||||
type: string
|
||||
description: 'SHA for electron/build image'
|
||||
default: '933c7d6ff6802706875270bec2e3c891cf8add3f'
|
||||
default: '424eedbf277ad9749ffa9219068aa72ed4a5e373'
|
||||
required: true
|
||||
upload-to-storage:
|
||||
description: 'Uploads to Azure storage'
|
||||
|
||||
@@ -66,7 +66,6 @@ concurrency:
|
||||
env:
|
||||
CHROMIUM_GIT_COOKIE: ${{ secrets.CHROMIUM_GIT_COOKIE }}
|
||||
CHROMIUM_GIT_COOKIE_WINDOWS_STRING: ${{ secrets.CHROMIUM_GIT_COOKIE_WINDOWS_STRING }}
|
||||
DD_API_KEY: ${{ secrets.DD_API_KEY }}
|
||||
ELECTRON_ARTIFACTS_BLOB_STORAGE: ${{ secrets.ELECTRON_ARTIFACTS_BLOB_STORAGE }}
|
||||
ELECTRON_RBE_JWT: ${{ secrets.ELECTRON_RBE_JWT }}
|
||||
SUDOWOODO_EXCHANGE_URL: ${{ secrets.SUDOWOODO_EXCHANGE_URL }}
|
||||
@@ -85,7 +84,6 @@ jobs:
|
||||
environment: ${{ inputs.environment }}
|
||||
env:
|
||||
TARGET_ARCH: ${{ inputs.target-arch }}
|
||||
TARGET_PLATFORM: ${{ inputs.target-platform }}
|
||||
steps:
|
||||
- name: Create src dir
|
||||
run: |
|
||||
@@ -115,7 +113,7 @@ jobs:
|
||||
run: df -h
|
||||
- name: Setup Node.js/npm
|
||||
if: ${{ inputs.target-platform == 'macos' }}
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
|
||||
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a
|
||||
with:
|
||||
node-version: 20.19.x
|
||||
cache: yarn
|
||||
|
||||
@@ -70,7 +70,7 @@ jobs:
|
||||
cp $(which node) /mnt/runner-externals/node20/bin/
|
||||
- name: Setup Node.js/npm
|
||||
if: ${{ inputs.target-platform == 'win' }}
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
|
||||
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a
|
||||
with:
|
||||
node-version: 20.19.x
|
||||
- name: Add TCC permissions on macOS
|
||||
@@ -155,29 +155,33 @@ jobs:
|
||||
echo "DISABLE_CRASH_REPORTER_TESTS=true" >> $GITHUB_ENV
|
||||
echo "IS_ASAN=true" >> $GITHUB_ENV
|
||||
- name: Download Generated Artifacts
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
|
||||
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806
|
||||
with:
|
||||
name: generated_artifacts_${{ env.ARTIFACT_KEY }}
|
||||
path: ./generated_artifacts_${{ matrix.build-type }}_${{ inputs.target-arch }}
|
||||
- name: Download Src Artifacts
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
|
||||
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806
|
||||
with:
|
||||
name: src_artifacts_${{ env.ARTIFACT_KEY }}
|
||||
path: ./src_artifacts_${{ matrix.build-type }}_${{ inputs.target-arch }}
|
||||
- name: Restore Generated Artifacts
|
||||
run: ./src/electron/script/actions/restore-artifacts.sh
|
||||
- name: Unzip Dist (win)
|
||||
- name: Unzip Dist, Mksnapshot & Chromedriver (win)
|
||||
if: ${{ inputs.target-platform == 'win' }}
|
||||
shell: powershell
|
||||
run: |
|
||||
Set-ExecutionPolicy Bypass -Scope Process -Force
|
||||
cd src/out/Default
|
||||
Expand-Archive -Force dist.zip -DestinationPath ./
|
||||
- name: Unzip Dist (unix)
|
||||
Expand-Archive -Force chromedriver.zip -DestinationPath ./
|
||||
Expand-Archive -Force mksnapshot.zip -DestinationPath ./
|
||||
- name: Unzip Dist, Mksnapshot & Chromedriver (unix)
|
||||
if: ${{ inputs.target-platform != 'win' }}
|
||||
run: |
|
||||
cd src/out/Default
|
||||
unzip -:o dist.zip
|
||||
unzip -:o chromedriver.zip
|
||||
unzip -:o mksnapshot.zip
|
||||
- name: Import & Trust Self-Signed Codesigning Cert on MacOS
|
||||
if: ${{ inputs.target-platform == 'macos' && inputs.target-arch == 'x64' }}
|
||||
run: |
|
||||
@@ -213,7 +217,7 @@ jobs:
|
||||
export ELECTRON_FORCE_TEST_SUITE_EXIT="true"
|
||||
fi
|
||||
fi
|
||||
node script/yarn test --runners=main --enableRerun=3 --trace-uncaught --enable-logging --files $tests_files
|
||||
node script/yarn test --runners=main --trace-uncaught --enable-logging --files $tests_files
|
||||
else
|
||||
chown :builduser .. && chmod g+w ..
|
||||
chown -R :builduser . && chmod -R g+w .
|
||||
@@ -250,7 +254,7 @@ jobs:
|
||||
if: always() && !cancelled()
|
||||
- name: Upload Test Artifacts
|
||||
if: always() && !cancelled()
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
|
||||
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1
|
||||
with:
|
||||
name: test_artifacts_${{ env.ARTIFACT_KEY }}_${{ matrix.shard }}
|
||||
path: src/electron/spec/artifacts
|
||||
|
||||
@@ -61,12 +61,12 @@ jobs:
|
||||
- name: Install Dependencies
|
||||
uses: ./src/electron/.github/actions/install-dependencies
|
||||
- name: Download Generated Artifacts
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
|
||||
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806
|
||||
with:
|
||||
name: generated_artifacts_${{ env.BUILD_TYPE }}_${{ env.TARGET_ARCH }}
|
||||
path: ./generated_artifacts_${{ env.BUILD_TYPE }}_${{ env.TARGET_ARCH }}
|
||||
- name: Download Src Artifacts
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
|
||||
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806
|
||||
with:
|
||||
name: src_artifacts_linux_${{ env.TARGET_ARCH }}
|
||||
path: ./src_artifacts_linux_${{ env.TARGET_ARCH }}
|
||||
@@ -115,12 +115,12 @@ jobs:
|
||||
- name: Install Dependencies
|
||||
uses: ./src/electron/.github/actions/install-dependencies
|
||||
- name: Download Generated Artifacts
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
|
||||
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806
|
||||
with:
|
||||
name: generated_artifacts_${{ env.BUILD_TYPE }}_${{ env.TARGET_ARCH }}
|
||||
path: ./generated_artifacts_${{ env.BUILD_TYPE }}_${{ env.TARGET_ARCH }}
|
||||
- name: Download Src Artifacts
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
|
||||
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806
|
||||
with:
|
||||
name: src_artifacts_linux_${{ env.TARGET_ARCH }}
|
||||
path: ./src_artifacts_linux_${{ env.TARGET_ARCH }}
|
||||
|
||||
7
.github/workflows/pull-request-labeled.yml
vendored
7
.github/workflows/pull-request-labeled.yml
vendored
@@ -19,10 +19,7 @@ jobs:
|
||||
webhook-type: webhook-trigger
|
||||
payload: |
|
||||
{
|
||||
"base_ref": ${{ toJSON(github.event.pull_request.base.ref) }},
|
||||
"title": ${{ toJSON(github.event.pull_request.title) }},
|
||||
"url": ${{ toJSON(github.event.pull_request.html_url) }},
|
||||
"user": ${{ toJSON(github.event.pull_request.user.login) }}
|
||||
"url": "${{ github.event.pull_request.html_url }}"
|
||||
}
|
||||
pull-request-labeled-deprecation-review-complete:
|
||||
name: deprecation-review/complete label added
|
||||
@@ -36,7 +33,7 @@ jobs:
|
||||
creds: ${{ secrets.RELEASE_BOARD_GH_APP_CREDS }}
|
||||
org: electron
|
||||
- name: Set status
|
||||
uses: dsanders11/project-actions/edit-item@2134fe7cc71c58b7ae259c82a8e63c6058255678 # v1.7.0
|
||||
uses: dsanders11/project-actions/edit-item@9c80cd31f58599941c64f74636bea95ba5d46090 # v1.5.1
|
||||
with:
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
project-number: 94
|
||||
|
||||
4
.github/workflows/scorecards.yml
vendored
4
.github/workflows/scorecards.yml
vendored
@@ -42,7 +42,7 @@ jobs:
|
||||
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
||||
# format to the repository Actions tab.
|
||||
- name: "Upload artifact"
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
|
||||
with:
|
||||
name: SARIF file
|
||||
path: results.sarif
|
||||
@@ -50,6 +50,6 @@ jobs:
|
||||
|
||||
# Upload the results to GitHub's code scanning dashboard.
|
||||
- name: "Upload to code-scanning"
|
||||
uses: github/codeql-action/upload-sarif@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
|
||||
uses: github/codeql-action/upload-sarif@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
2
.github/workflows/stable-prep-items.yml
vendored
2
.github/workflows/stable-prep-items.yml
vendored
@@ -27,7 +27,7 @@ jobs:
|
||||
PROJECT_NUMBER=$(gh project list --owner electron --format json | jq -r '.projects | map(select(.title | test("^[0-9]+-x-y$"))) | max_by(.number) | .number')
|
||||
echo "PROJECT_NUMBER=$PROJECT_NUMBER" >> "$GITHUB_OUTPUT"
|
||||
- name: Update Completed Stable Prep Items
|
||||
uses: dsanders11/project-actions/completed-by@2134fe7cc71c58b7ae259c82a8e63c6058255678 # v1.7.0
|
||||
uses: dsanders11/project-actions/completed-by@9c80cd31f58599941c64f74636bea95ba5d46090 # v1.5.1
|
||||
with:
|
||||
field: Prep Status
|
||||
field-value: ✅ Complete
|
||||
|
||||
2
.github/workflows/windows-publish.yml
vendored
2
.github/workflows/windows-publish.yml
vendored
@@ -6,7 +6,7 @@ on:
|
||||
build-image-sha:
|
||||
type: string
|
||||
description: 'SHA for electron/build image'
|
||||
default: '933c7d6ff6802706875270bec2e3c891cf8add3f'
|
||||
default: '424eedbf277ad9749ffa9219068aa72ed4a5e373'
|
||||
required: true
|
||||
upload-to-storage:
|
||||
description: 'Uploads to Azure storage'
|
||||
|
||||
29
BUILD.gn
29
BUILD.gn
@@ -17,19 +17,19 @@ import("//tools/grit/repack.gni")
|
||||
import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
|
||||
import("//v8/gni/snapshot_toolchain.gni")
|
||||
import("build/asar.gni")
|
||||
import("build/electron_paks.gni")
|
||||
import("build/extract_symbols.gni")
|
||||
import("build/js2c_toolchain.gni")
|
||||
import("build/npm.gni")
|
||||
import("build/templated_file.gni")
|
||||
import("build/tsc.gni")
|
||||
import("build/webpack/webpack.gni")
|
||||
import("buildflags/buildflags.gni")
|
||||
import("electron_paks.gni")
|
||||
import("filenames.auto.gni")
|
||||
import("filenames.gni")
|
||||
import("filenames.hunspell.gni")
|
||||
import("filenames.libcxx.gni")
|
||||
import("filenames.libcxxabi.gni")
|
||||
import("js2c_toolchain.gni")
|
||||
|
||||
if (is_mac) {
|
||||
import("//build/config/mac/rules.gni")
|
||||
@@ -315,7 +315,7 @@ asar("default_app_asar") {
|
||||
}
|
||||
|
||||
grit("resources") {
|
||||
source = "build/electron_resources.grd"
|
||||
source = "electron_resources.grd"
|
||||
|
||||
outputs = [
|
||||
"grit/electron_resources.h",
|
||||
@@ -1614,29 +1614,6 @@ group("node_headers") {
|
||||
public_deps = [ ":tar_node_headers" ]
|
||||
}
|
||||
|
||||
group("testing_build") {
|
||||
public_deps = [
|
||||
":electron_dist_zip",
|
||||
":electron_mksnapshot_zip",
|
||||
":node_headers",
|
||||
]
|
||||
}
|
||||
|
||||
group("release_build") {
|
||||
public_deps = [ ":testing_build" ]
|
||||
if (is_official_build) {
|
||||
public_deps += [ ":electron_symbols" ]
|
||||
}
|
||||
if (is_linux) {
|
||||
public_deps += [
|
||||
":hunspell_dictionaries_zip",
|
||||
":libcxx_headers_zip",
|
||||
":libcxx_objects_zip",
|
||||
":libcxxabi_headers_zip",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
if (is_linux && is_official_build) {
|
||||
strip_binary("strip_electron_binary") {
|
||||
binary_input = "$root_out_dir/$electron_project_name"
|
||||
|
||||
4
DEPS
4
DEPS
@@ -2,9 +2,9 @@ gclient_gn_args_from = 'src'
|
||||
|
||||
vars = {
|
||||
'chromium_version':
|
||||
'138.0.7204.251',
|
||||
'136.0.7103.177',
|
||||
'node_version':
|
||||
'v22.21.1',
|
||||
'v22.19.0',
|
||||
'nan_version':
|
||||
'e14bdcd1f72d62bca1d541b66da43130384ec213',
|
||||
'squirrel.mac_version':
|
||||
|
||||
@@ -2,7 +2,7 @@ is_electron_build = true
|
||||
root_extra_deps = [ "//electron" ]
|
||||
|
||||
# Registry of NMVs --> https://github.com/nodejs/node/blob/main/doc/abi_version_registry.json
|
||||
node_module_version = 136
|
||||
node_module_version = 135
|
||||
|
||||
v8_promise_internal_field_count = 1
|
||||
v8_embedder_string = "-electron.0"
|
||||
@@ -24,6 +24,10 @@ enable_printing = true
|
||||
angle_enable_vulkan_validation_layers = false
|
||||
dawn_enable_vulkan_validation_layers = false
|
||||
|
||||
# Removes dxc dll's that are only used experimentally.
|
||||
# See https://bugs.chromium.org/p/chromium/issues/detail?id=1474897
|
||||
dawn_use_built_dxc = false
|
||||
|
||||
# These are disabled because they cause the zip manifest to differ between
|
||||
# testing and release builds.
|
||||
# See https://chromium-review.googlesource.com/c/chromium/src/+/2774898.
|
||||
@@ -70,5 +74,7 @@ enterprise_cloud_content_analysis = false
|
||||
# https://issues.chromium.org/issues/40943039
|
||||
content_enable_legacy_ipc = true
|
||||
|
||||
clang_unsafe_buffers_paths = "//electron/electron_unsafe_buffers_paths.txt"
|
||||
|
||||
# We don't use anything from here, and it causes target collisions
|
||||
enable_linux_installer = false
|
||||
|
||||
@@ -85,8 +85,6 @@ static_library("chrome") {
|
||||
"//chrome/browser/process_singleton.h",
|
||||
"//chrome/browser/process_singleton_internal.cc",
|
||||
"//chrome/browser/process_singleton_internal.h",
|
||||
"//chrome/browser/serial/serial_blocklist.cc",
|
||||
"//chrome/browser/serial/serial_blocklist.h",
|
||||
"//chrome/browser/themes/browser_theme_pack.cc",
|
||||
"//chrome/browser/themes/browser_theme_pack.h",
|
||||
"//chrome/browser/themes/custom_theme_supplier.cc",
|
||||
@@ -146,8 +144,6 @@ static_library("chrome") {
|
||||
"//chrome/browser/ui/views/overlay/video_overlay_window_views.h",
|
||||
"//chrome/browser/ui/webui/accessibility/accessibility_ui.cc",
|
||||
"//chrome/browser/ui/webui/accessibility/accessibility_ui.h",
|
||||
"//chrome/browser/usb/usb_blocklist.cc",
|
||||
"//chrome/browser/usb/usb_blocklist.h",
|
||||
"//extensions/browser/app_window/size_constraints.cc",
|
||||
"//extensions/browser/app_window/size_constraints.h",
|
||||
"//ui/base/accelerators/global_accelerator_listener/global_accelerator_listener.cc",
|
||||
|
||||
@@ -601,7 +601,6 @@ Returns `string` - The current application directory.
|
||||
* `%APPDATA%` on Windows
|
||||
* `$XDG_CONFIG_HOME` or `~/.config` on Linux
|
||||
* `~/Library/Application Support` on macOS
|
||||
* `assets` The directory where app assets such as `resources.pak` are stored. By default this is the same as the folder containing the `exe` path. Available on Windows and Linux only.
|
||||
* `userData` The directory for storing your app's configuration files, which
|
||||
by default is the `appData` directory appended with your app's name. By
|
||||
convention files storing user data should be written to this directory, and
|
||||
@@ -616,7 +615,7 @@ Returns `string` - The current application directory.
|
||||
directory.
|
||||
* `temp` Temporary directory.
|
||||
* `exe` The current executable file.
|
||||
* `module` The location of the Chromium module. By default this is synonymous with `exe`.
|
||||
* `module` The `libchromiumcontent` library.
|
||||
* `desktop` The current user's Desktop directory.
|
||||
* `documents` Directory for a user's "My Documents".
|
||||
* `downloads` Directory for a user's downloads.
|
||||
@@ -1212,13 +1211,6 @@ Disables hardware acceleration for current app.
|
||||
|
||||
This method can only be called before app is ready.
|
||||
|
||||
### `app.isHardwareAccelerationEnabled()`
|
||||
|
||||
Returns `boolean` - whether hardware acceleration is currently disabled.
|
||||
|
||||
> [!NOTE]
|
||||
> This information is only usable after the `gpu-info-update` event is emitted.
|
||||
|
||||
### `app.disableDomainBlockingFor3DAPIs()`
|
||||
|
||||
By default, Chromium disables 3D APIs (e.g. WebGL) until restart on a per
|
||||
@@ -1399,75 +1391,7 @@ details. Disabled by default.
|
||||
This API must be called after the `ready` event is emitted.
|
||||
|
||||
> [!NOTE]
|
||||
> Rendering accessibility tree can significantly affect the performance of your app. It should not be enabled by default. Calling this method will enable the following accessibility support features: `nativeAPIs`, `webContents`, `inlineTextBoxes`, and `extendedProperties`.
|
||||
|
||||
### `app.getAccessibilitySupportFeatures()` _macOS_ _Windows_
|
||||
|
||||
Returns `string[]` - Array of strings naming currently enabled accessibility support components. Possible values:
|
||||
|
||||
* `nativeAPIs` - Native OS accessibility APIs integration enabled.
|
||||
* `webContents` - Web contents accessibility tree exposure enabled.
|
||||
* `inlineTextBoxes` - Inline text boxes (character bounding boxes) enabled.
|
||||
* `extendedProperties` - Extended accessibility properties enabled.
|
||||
* `screenReader` - Screen reader specific mode enabled.
|
||||
* `html` - HTML accessibility tree construction enabled.
|
||||
* `labelImages` - Accessibility support for automatic image annotations.
|
||||
* `pdfPrinting` - Accessibility support for PDF printing enabled.
|
||||
|
||||
Notes:
|
||||
|
||||
* The array may be empty if no accessibility modes are active.
|
||||
* Use `app.isAccessibilitySupportEnabled()` for the legacy boolean check;
|
||||
prefer this method for granular diagnostics or telemetry.
|
||||
|
||||
Example:
|
||||
|
||||
```js
|
||||
const { app } = require('electron')
|
||||
|
||||
app.whenReady().then(() => {
|
||||
if (app.getAccessibilitySupportFeatures().includes('screenReader')) {
|
||||
// Change some app UI to better work with Screen Readers.
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
### `app.setAccessibilitySupportFeatures(features)` _macOS_ _Windows_
|
||||
|
||||
* `features` string[] - An array of the accessibility features to enable.
|
||||
|
||||
Possible values are:
|
||||
|
||||
* `nativeAPIs` - Native OS accessibility APIs integration enabled.
|
||||
* `webContents` - Web contents accessibility tree exposure enabled.
|
||||
* `inlineTextBoxes` - Inline text boxes (character bounding boxes) enabled.
|
||||
* `extendedProperties` - Extended accessibility properties enabled.
|
||||
* `screenReader` - Screen reader specific mode enabled.
|
||||
* `html` - HTML accessibility tree construction enabled.
|
||||
* `labelImages` - Accessibility support for automatic image annotations.
|
||||
* `pdfPrinting` - Accessibility support for PDF printing enabled.
|
||||
|
||||
To disable all supported features, pass an empty array `[]`.
|
||||
|
||||
Example:
|
||||
|
||||
```js
|
||||
const { app } = require('electron')
|
||||
|
||||
app.whenReady().then(() => {
|
||||
// Enable a subset of features:
|
||||
app.setAccessibilitySupportFeatures([
|
||||
'screenReader',
|
||||
'pdfPrinting',
|
||||
'webContents'
|
||||
])
|
||||
|
||||
// Other logic
|
||||
|
||||
// Some time later, disable all features:
|
||||
app.setAccessibilitySupportFeatures([])
|
||||
})
|
||||
```
|
||||
> Rendering accessibility tree can significantly affect the performance of your app. It should not be enabled by default.
|
||||
|
||||
### `app.showAboutPanel()`
|
||||
|
||||
|
||||
@@ -1564,8 +1564,8 @@ events.
|
||||
|
||||
Prevents the window contents from being captured by other apps.
|
||||
|
||||
On macOS it sets the NSWindow's [`sharingType`](https://developer.apple.com/documentation/appkit/nswindow/sharingtype-swift.property?language=objc) to [`NSWindowSharingNone`](https://developer.apple.com/documentation/appkit/nswindow/sharingtype-swift.enum/none?language=objc).
|
||||
On Windows it calls [`SetWindowDisplayAffinity`](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowdisplayaffinity) with `WDA_EXCLUDEFROMCAPTURE`.
|
||||
On macOS it sets the NSWindow's sharingType to NSWindowSharingNone.
|
||||
On Windows it calls SetWindowDisplayAffinity with `WDA_EXCLUDEFROMCAPTURE`.
|
||||
For Windows 10 version 2004 and up the window will be removed from capture entirely,
|
||||
older Windows versions behave as if `WDA_MONITOR` is applied capturing a black window.
|
||||
|
||||
|
||||
@@ -290,7 +290,7 @@ Specify ways of the inspector web socket url exposure.
|
||||
|
||||
By default inspector websocket url is available in stderr and under /json/list endpoint on `http://host:port/json/list`.
|
||||
|
||||
### `--experimental-network-inspection`
|
||||
### `--experimental-network-inspector`
|
||||
|
||||
Enable support for devtools network inspector events, for visibility into requests made by the nodejs `http` and `https` modules.
|
||||
|
||||
|
||||
@@ -51,17 +51,19 @@ Use the `system-ui` keyword to match the smoothness to the OS design language.
|
||||
|
||||
### Controlling availibility
|
||||
|
||||
This CSS rule can be disabled using the Blink feature flag `ElectronCSSCornerSmoothing`.
|
||||
This CSS rule can be disabled by setting [the `cornerSmoothingCSS` web preference](./structures/web-preferences.md) to `false`.
|
||||
|
||||
```js
|
||||
const myWindow = new BrowserWindow({
|
||||
// [...]
|
||||
webPreferences: {
|
||||
disableBlinkFeatures: 'ElectronCSSCornerSmoothing' // Disables the `-electron-corner-smoothing` CSS rule
|
||||
enableCornerSmoothingCSS: false // Disables the `-electron-corner-smoothing` CSS rule
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
The CSS rule will still parse, but will have no visual effect.
|
||||
|
||||
### Formal reference
|
||||
|
||||
* **Initial value**: `0%`
|
||||
|
||||
@@ -63,7 +63,7 @@ The `crashReporter` module has the following methods:
|
||||
* `extra` Record\<string, string\> (optional) - Extra string key/value
|
||||
annotations that will be sent along with crash reports that are generated
|
||||
in the main process. Only string values are supported. Crashes generated in
|
||||
child processes will not include these extra parameters. To add extra
|
||||
child processes will not contain these extra
|
||||
parameters to crash reports generated from child processes, call
|
||||
[`addExtraParameter`](#crashreporteraddextraparameterkey-value) from the
|
||||
child process.
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
# MenuItem
|
||||
|
||||
## Class: MenuItem
|
||||
|
||||
> Add items to native application menus and context menus.
|
||||
@@ -22,14 +20,8 @@ See [`Menu`](menu.md) for examples.
|
||||
* `event` [KeyboardEvent](structures/keyboard-event.md)
|
||||
* `role` string (optional) - Can be `undo`, `redo`, `cut`, `copy`, `paste`, `pasteAndMatchStyle`, `delete`, `selectAll`, `reload`, `forceReload`, `toggleDevTools`, `resetZoom`, `zoomIn`, `zoomOut`, `toggleSpellChecker`, `togglefullscreen`, `window`, `minimize`, `close`, `help`, `about`, `services`, `hide`, `hideOthers`, `unhide`, `quit`, `showSubstitutions`, `toggleSmartQuotes`, `toggleSmartDashes`, `toggleTextReplacement`, `startSpeaking`, `stopSpeaking`, `zoom`, `front`, `appMenu`, `fileMenu`, `editMenu`, `viewMenu`, `shareMenu`, `recentDocuments`, `toggleTabBar`, `selectNextTab`, `selectPreviousTab`, `showAllTabs`, `mergeAllWindows`, `clearRecentDocuments`, `moveTabToNewWindow` or `windowMenu` - Define the action of the menu item, when specified the
|
||||
`click` property will be ignored. See [roles](#roles).
|
||||
* `type` string (optional)
|
||||
* `normal`
|
||||
* `separator`
|
||||
* `submenu`
|
||||
* `checkbox`
|
||||
* `radio`
|
||||
* `header` - Only available on macOS 14 and up.
|
||||
* `palette` - Only available on macOS 14 and up.
|
||||
* `type` string (optional) - Can be `normal`, `separator`, `submenu`, `checkbox` or
|
||||
`radio`.
|
||||
* `label` string (optional)
|
||||
* `sublabel` string (optional) _macOS_ - Available in macOS >= 14.4
|
||||
* `toolTip` string (optional) _macOS_ - Hover text for this menu item.
|
||||
@@ -170,10 +162,7 @@ item's submenu, if present.
|
||||
|
||||
#### `menuItem.type`
|
||||
|
||||
A `string` indicating the type of the item. Can be `normal`, `separator`, `submenu`, `checkbox`, `radio`, `header` or `palette`.
|
||||
|
||||
> [!NOTE]
|
||||
> `header` and `palette` are only available on macOS 14 and up.
|
||||
A `string` indicating the type of the item. Can be `normal`, `separator`, `submenu`, `checkbox` or `radio`.
|
||||
|
||||
#### `menuItem.role`
|
||||
|
||||
|
||||
@@ -211,10 +211,6 @@ Returns `Object`:
|
||||
system.
|
||||
* `free` Integer - The total amount of memory not being used by applications or disk
|
||||
cache.
|
||||
* `fileBacked` Integer _macOS_ - The amount of memory that currently has been paged out to storage.
|
||||
Includes memory for file caches, network buffers, and other system services.
|
||||
* `purgeable` Integer _macOS_ - The amount of memory that is marked as "purgeable". The system can reclaim it
|
||||
if memory pressure increases.
|
||||
* `swapTotal` Integer _Windows_ _Linux_ - The total amount of swap memory in Kilobytes available to the
|
||||
system.
|
||||
* `swapFree` Integer _Windows_ _Linux_ - The free amount of swap memory in Kilobytes available to the
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
## Class: ServiceWorkerMain
|
||||
# ServiceWorkerMain
|
||||
|
||||
> An instance of a Service Worker representing a version of a script for a given scope.
|
||||
|
||||
Process: [Main](../glossary.md#main-process)
|
||||
|
||||
## Class: ServiceWorkerMain
|
||||
|
||||
Process: [Main](../glossary.md#main-process)<br />
|
||||
_This class is not exported from the `'electron'` module. It is only available as a return value of other methods in the Electron API._
|
||||
|
||||
@@ -42,10 +46,6 @@ An [`IpcMainServiceWorker`](ipc-main-service-worker.md) instance scoped to the s
|
||||
|
||||
A `string` representing the scope URL of the service worker.
|
||||
|
||||
#### `serviceWorker.scriptURL` _Readonly_ _Experimental_
|
||||
|
||||
A `string` representing the script URL of the service worker.
|
||||
|
||||
#### `serviceWorker.versionId` _Readonly_ _Experimental_
|
||||
|
||||
A `number` representing the ID of the specific version of the service worker script in its scope.
|
||||
|
||||
@@ -935,18 +935,14 @@ session.fromPartition('some-partition').setPermissionRequestHandler((webContents
|
||||
* `top-level-storage-access` - Allow top-level sites to request third-party cookie access on behalf of embedded content originating from another site in the same related website set using the [Storage Access API](https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API).
|
||||
* `usb` - Expose non-standard Universal Serial Bus (USB) compatible devices services to the web with the [WebUSB API](https://developer.mozilla.org/en-US/docs/Web/API/WebUSB_API).
|
||||
* `deprecated-sync-clipboard-read` _Deprecated_ - Request access to run `document.execCommand("paste")`
|
||||
* `fileSystem` - Access to read, write, and file management capabilities using the [File System API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API).
|
||||
* `requestingOrigin` string - The origin URL of the permission check
|
||||
* `details` Object - Some properties are only available on certain permission types.
|
||||
* `embeddingOrigin` string (optional) - The origin of the frame embedding the frame that made the permission check. Only set for cross-origin sub frames making permission checks.
|
||||
* `securityOrigin` string (optional) - The security origin of the `media` check.
|
||||
* `mediaType` string (optional) - The type of media access being requested, can be `video`,
|
||||
`audio` or `unknown`.
|
||||
`audio` or `unknown`
|
||||
* `requestingUrl` string (optional) - The last URL the requesting frame loaded. This is not provided for cross-origin sub frames making permission checks.
|
||||
* `isMainFrame` boolean - Whether the frame making the request is the main frame.
|
||||
* `filePath` string (optional) - The path of a `fileSystem` request.
|
||||
* `isDirectory` boolean (optional) - Whether a `fileSystem` request is a directory.
|
||||
* `fileAccessType` string (optional) - The access type of a `fileSystem` request. Can be `writable` or `readable`.
|
||||
* `isMainFrame` boolean - Whether the frame making the request is the main frame
|
||||
|
||||
Sets the handler which can be used to respond to permission checks for the `session`.
|
||||
Returning `true` will allow the permission and `false` will reject it. Please note that
|
||||
@@ -966,9 +962,6 @@ session.fromPartition('some-partition').setPermissionCheckHandler((webContents,
|
||||
})
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> `isMainFrame` will always be `false` for a `fileSystem` request as a result of Chromium limitations.
|
||||
|
||||
#### `ses.setDisplayMediaRequestHandler(handler[, opts])`
|
||||
|
||||
* `handler` Function | null
|
||||
|
||||
@@ -25,8 +25,9 @@
|
||||
and URL responses.
|
||||
* `method` string (optional) - The HTTP `method`. This is only used for file
|
||||
and URL responses.
|
||||
* `session` Session (optional) - The session used for requesting URL.
|
||||
The HTTP request will reuse the current session by default.
|
||||
* `session` Session (optional) - The session used for requesting URL, by default
|
||||
the HTTP request will reuse the current session. Setting `session` to `null`
|
||||
would use a random independent session. This is only used for URL responses.
|
||||
* `uploadData` [ProtocolResponseUploadData](protocol-response-upload-data.md) (optional) - The data used as upload data. This is only
|
||||
used for URL responses when `method` is `"POST"`.
|
||||
|
||||
|
||||
@@ -21,9 +21,7 @@
|
||||
associated with the window, making it compatible with the Chromium
|
||||
OS-level sandbox and disabling the Node.js engine. This is not the same as
|
||||
the `nodeIntegration` option and the APIs available to the preload script
|
||||
are more limited. Default is `true` since Electron 20. The sandbox will
|
||||
automatically be disabled when `nodeIntegration` is set to `true`.
|
||||
Read more about the option [here](../../tutorial/sandbox.md).
|
||||
are more limited. Read more about the option [here](../../tutorial/sandbox.md).
|
||||
* `session` [Session](../session.md#class-session) (optional) - Sets the session used by the
|
||||
page. Instead of passing the Session object directly, you can also choose to
|
||||
use the `partition` option instead, which accepts a partition string. When
|
||||
@@ -151,6 +149,7 @@
|
||||
`WebContents` when the preferred size changes. Default is `false`.
|
||||
* `transparent` boolean (optional) - Whether to enable background transparency for the guest page. Default is `true`. **Note:** The guest page's text and background colors are derived from the [color scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme) of its root element. When transparency is enabled, the text color will still change accordingly but the background will remain transparent.
|
||||
* `enableDeprecatedPaste` boolean (optional) _Deprecated_ - Whether to enable the `paste` [execCommand](https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand). Default is `false`.
|
||||
* `enableCornerSmoothingCSS` boolean (optional) _Experimental_ - Whether the [`-electron-corner-smoothing` CSS rule](../corner-smoothing-css.md) is enabled. Default is `true`.
|
||||
|
||||
[chrome-content-scripts]: https://developer.chrome.com/extensions/content_scripts#execution-environment
|
||||
[runtime-enabled-features]: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
|
||||
@@ -137,7 +137,7 @@ by its key, which is returned from `webFrame.insertCSS(css)`.
|
||||
|
||||
Inserts `text` to the focused element.
|
||||
|
||||
### `webFrame.executeJavaScript(code[, userGesture][, callback])`
|
||||
### `webFrame.executeJavaScript(code[, userGesture, callback])`
|
||||
|
||||
* `code` string
|
||||
* `userGesture` boolean (optional) - Default is `false`.
|
||||
@@ -158,7 +158,7 @@ In the browser window some HTML APIs like `requestFullScreen` can only be
|
||||
invoked by a gesture from the user. Setting `userGesture` to `true` will remove
|
||||
this limitation.
|
||||
|
||||
### `webFrame.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture][, callback])`
|
||||
### `webFrame.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture, callback])`
|
||||
|
||||
* `worldId` Integer - The ID of the world to run the javascript
|
||||
in, `0` is the default main world (where content runs), `999` is the
|
||||
|
||||
@@ -14,54 +14,11 @@ This document uses the following convention to categorize breaking changes:
|
||||
|
||||
## Planned Breaking API Changes (37.0)
|
||||
|
||||
### Utility Process unhandled rejection behavior change
|
||||
|
||||
Utility Processes will now warn with an error message when an unhandled
|
||||
rejection occurs instead of crashing the process.
|
||||
|
||||
To restore the previous behavior, you can use:
|
||||
|
||||
```js
|
||||
process.on('unhandledRejection', () => {
|
||||
process.exit(1)
|
||||
})
|
||||
```
|
||||
|
||||
### Behavior Changed: `process.exit()` kills utility process synchronously
|
||||
|
||||
Calling `process.exit()` in a utility process will now kill the utility process synchronously.
|
||||
This brings the behavior of `process.exit()` in line with Node.js behavior.
|
||||
|
||||
Please refer to the
|
||||
[Node.js docs](https://nodejs.org/docs/latest-v22.x/api/process.html#processexitcode) and
|
||||
[PR #45690](https://github.com/electron/electron/pull/45690) to understand the potential
|
||||
implications of that, e.g., when calling `console.log()` before `process.exit()`.
|
||||
|
||||
### Behavior Changed: WebUSB and WebSerial Blocklist Support
|
||||
|
||||
[WebUSB](https://developer.mozilla.org/en-US/docs/Web/API/WebUSB_API) and [Web Serial](https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API) now support the [WebUSB Blocklist](https://wicg.github.io/webusb/#blocklist) and [Web Serial Blocklist](https://wicg.github.io/serial/#blocklist) used by Chromium and outlined in their respective specifications.
|
||||
|
||||
To disable these, users can pass `disable-usb-blocklist` and `disable-serial-blocklist` as command line flags.
|
||||
|
||||
### Removed: `null` value for `session` property in `ProtocolResponse`
|
||||
|
||||
This deprecated feature has been removed.
|
||||
|
||||
Previously, setting the `ProtocolResponse.session` property to `null`
|
||||
would create a random independent session. This is no longer supported.
|
||||
|
||||
Using single-purpose sessions here is discouraged due to overhead costs;
|
||||
however, old code that needs to preserve this behavior can emulate it by
|
||||
creating a random session with `session.fromPartition(some_random_string)`
|
||||
and then using it in `ProtocolResponse.session`.
|
||||
|
||||
### Behavior Changed: `BrowserWindow.IsVisibleOnAllWorkspaces()` on Linux
|
||||
|
||||
`BrowserWindow.IsVisibleOnAllWorkspaces()` will now return false on Linux if the
|
||||
window is not currently visible.
|
||||
|
||||
## Planned Breaking API Changes (36.0)
|
||||
|
||||
### Behavior Changes: `app.commandLine`
|
||||
|
||||
`app.commandLine` will convert upper-cases switches and arguments to lowercase.
|
||||
@@ -83,7 +40,9 @@ bitmap = image.getBitmap()
|
||||
bitmap = image.toBitmap()
|
||||
```
|
||||
|
||||
### Removed: `isDefault` and `status` properties on `PrinterInfo`
|
||||
## Planned Breaking API Changes (36.0)
|
||||
|
||||
### Removed:`isDefault` and `status` properties on `PrinterInfo`
|
||||
|
||||
These properties have been removed from the PrinterInfo Object
|
||||
because they have been removed from upstream Chromium.
|
||||
@@ -95,6 +54,12 @@ When calling `Session.clearStorageData(options)`, the `options.quota` type
|
||||
[removed](https://chromium-review.googlesource.com/c/chromium/src/+/6309405)
|
||||
from upstream Chromium.
|
||||
|
||||
### Deprecated: `quota` property in `Session.clearStorageData(options)`
|
||||
|
||||
When calling `Session.clearStorageData(options)`, the `options.quota`
|
||||
property is deprecated. Since the `syncable` type was removed, there
|
||||
is only type left -- `'temporary'` -- so specifying it is unnecessary.
|
||||
|
||||
### Deprecated: `null` value for `session` property in `ProtocolResponse`
|
||||
|
||||
Previously, setting the ProtocolResponse.session property to `null`
|
||||
@@ -105,12 +70,6 @@ however, old code that needs to preserve this behavior can emulate it by
|
||||
creating a random session with `session.fromPartition(some_random_string)`
|
||||
and then using it in `ProtocolResponse.session`.
|
||||
|
||||
### Deprecated: `quota` property in `Session.clearStorageData(options)`
|
||||
|
||||
When calling `Session.clearStorageData(options)`, the `options.quota`
|
||||
property is deprecated. Since the `syncable` type was removed, there
|
||||
is only type left -- `'temporary'` -- so specifying it is unnecessary.
|
||||
|
||||
### Deprecated: Extension methods and events on `session`
|
||||
|
||||
`session.loadExtension`, `session.removeExtension`, `session.getExtension`,
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
const { app, BrowserWindow, ipcMain } = require('electron/main')
|
||||
const path = require('node:path')
|
||||
|
||||
function handleSetTitle (event, title) {
|
||||
const webContents = event.sender
|
||||
const win = BrowserWindow.fromWebContents(webContents)
|
||||
win.setTitle(title)
|
||||
}
|
||||
|
||||
function createWindow () {
|
||||
const mainWindow = new BrowserWindow({
|
||||
webPreferences: {
|
||||
@@ -14,11 +8,16 @@ function createWindow () {
|
||||
}
|
||||
})
|
||||
|
||||
ipcMain.on('set-title', (event, title) => {
|
||||
const webContents = event.sender
|
||||
const win = BrowserWindow.fromWebContents(webContents)
|
||||
win.setTitle(title)
|
||||
})
|
||||
|
||||
mainWindow.loadFile('index.html')
|
||||
}
|
||||
|
||||
app.whenReady().then(() => {
|
||||
ipcMain.on('set-title', handleSetTitle)
|
||||
createWindow()
|
||||
|
||||
app.on('activate', function () {
|
||||
|
||||
@@ -57,7 +57,7 @@ the WebHID API:
|
||||
|
||||
### Blocklist
|
||||
|
||||
By default Electron employs the same [blocklist](https://wicg.github.io/webhid/#blocklist)
|
||||
By default Electron employs the same [blocklist](https://github.com/WICG/webhid/blob/main/blocklist.txt)
|
||||
used by Chromium. If you wish to override this behavior, you can do so by
|
||||
setting the `disable-hid-blocklist` flag:
|
||||
|
||||
@@ -104,16 +104,6 @@ There are several additional APIs for working with the Web Serial API:
|
||||
* [`ses.setPermissionCheckHandler(handler)`](../api/session.md#sessetpermissioncheckhandlerhandler)
|
||||
can be used to disable serial access for specific origins.
|
||||
|
||||
### Blocklist
|
||||
|
||||
By default Electron employs the same [blocklist](https://wicg.github.io/serial/#blocklist)
|
||||
used by Chromium. If you wish to override this behavior, you can do so by
|
||||
setting the `disable-serial-blocklist` flag:
|
||||
|
||||
```js
|
||||
app.commandLine.appendSwitch('disable-serial-blocklist')
|
||||
```
|
||||
|
||||
### Example
|
||||
|
||||
This example demonstrates an Electron application that automatically selects
|
||||
@@ -155,16 +145,6 @@ Electron provides several APIs for working with the WebUSB API:
|
||||
* [`ses.setUSBProtectedClassesHandler](../api/session.md#sessetusbprotectedclasseshandlerhandler)
|
||||
can be used to allow usage of [protected USB classes](https://wicg.github.io/webusb/#usbinterface-interface) that are not available by default.
|
||||
|
||||
### Blocklist
|
||||
|
||||
By default Electron employs the same [blocklist](https://wicg.github.io/webusb/#blocklist)
|
||||
used by Chromium. If you wish to override this behavior, you can do so by
|
||||
setting the `disable-usb-blocklist` flag:
|
||||
|
||||
```js
|
||||
app.commandLine.appendSwitch('disable-usb-blocklist')
|
||||
```
|
||||
|
||||
### Example
|
||||
|
||||
This example demonstrates an Electron application that automatically selects
|
||||
|
||||
@@ -9,11 +9,10 @@ check out our [Electron Versioning](./electron-versioning.md) doc.
|
||||
|
||||
| Electron | Alpha | Beta | Stable | EOL | Chrome | Node | Supported |
|
||||
| ------- | ----- | ------- | ------ | ------ | ---- | ---- | ---- |
|
||||
| 38.0.0 | 2025-Jun-26 | 2025-Aug-06 | 2025-Sep-02 | 2026-Mar-10 | M140 | TBD | ✅ |
|
||||
| 37.0.0 | 2025-May-01 | 2025-May-28 | 2025-Jun-24 | 2026-Jan-13 | M138 | v22.16 | ✅ |
|
||||
| 37.0.0 | 2025-May-01 | 2025-May-28 | 2025-Jun-24 | 2026-Jan-13 | M138 | TBD | ✅ |
|
||||
| 36.0.0 | 2025-Mar-06 | 2025-Apr-02 | 2025-Apr-29 | 2025-Oct-28 | M136 | v22.14 | ✅ |
|
||||
| 35.0.0 | 2025-Jan-16 | 2025-Feb-05 | 2025-Mar-04 | 2025-Sep-02 | M134 | v22.14 | ✅ |
|
||||
| 34.0.0 | 2024-Oct-17 | 2024-Nov-13 | 2025-Jan-14 | 2025-Jun-24 | M132 | v20.18 | 🚫 |
|
||||
| 34.0.0 | 2024-Oct-17 | 2024-Nov-13 | 2025-Jan-14 | 2025-Jun-24 | M132 | v20.18 | ✅ |
|
||||
| 33.0.0 | 2024-Aug-22 | 2024-Sep-18 | 2024-Oct-15 | 2025-Apr-29 | M130 | v20.18 | 🚫 |
|
||||
| 32.0.0 | 2024-Jun-14 | 2024-Jul-24 | 2024-Aug-20 | 2025-Mar-04 | M128 | v20.16 | 🚫 |
|
||||
| 31.0.0 | 2024-Apr-18 | 2024-May-15 | 2024-Jun-11 | 2025-Jan-14 | M126 | v20.14 | 🚫 |
|
||||
|
||||
@@ -143,7 +143,7 @@ The `electron/electron` repository also enforces squash merging, so you only nee
|
||||
|
||||
## Historical versioning (Electron 1.X)
|
||||
|
||||
Electron versions _< 2.0_ did not conform to the [SemVer](https://semver.org) spec: major versions corresponded to end-user API changes, minor versions corresponded to Chromium major releases, and patch versions corresponded to new features and bug fixes. While convenient for developers merging features, it creates problems for developers of client-facing applications. The QA testing cycles of major apps like Slack, Teams, VS Code, and GitHub Desktop can be lengthy and stability is a highly desired outcome. There is a high risk in adopting new features while trying to absorb bug fixes.
|
||||
Electron versions _< 2.0_ did not conform to the [SemVer](https://semver.org) spec: major versions corresponded to end-user API changes, minor versions corresponded to Chromium major releases, and patch versions corresponded to new features and bug fixes. While convenient for developers merging features, it creates problems for developers of client-facing applications. The QA testing cycles of major apps like Slack, Teams, Skype, VS Code, and GitHub Desktop can be lengthy and stability is a highly desired outcome. There is a high risk in adopting new features while trying to absorb bug fixes.
|
||||
|
||||
Here is an example of the 1.x strategy:
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ This table gives a general overview of where ESM is supported and which ESM load
|
||||
| Main | Node.js | N/A | <ul><li> [You must use `await` generously before the app's `ready` event](#you-must-use-await-generously-before-the-apps-ready-event) </li></ul> |
|
||||
| Renderer (Sandboxed) | Chromium | Unsupported | <ul><li> [Sandboxed preload scripts can't use ESM imports](#sandboxed-preload-scripts-cant-use-esm-imports) </li></ul> |
|
||||
| Renderer (Unsandboxed & Context Isolated) | Chromium | Node.js | <ul><li> [Unsandboxed ESM preload scripts will run after page load on pages with no content](#unsandboxed-esm-preload-scripts-will-run-after-page-load-on-pages-with-no-content) </li> <li>[ESM Preload Scripts must have the `.mjs` extension](#esm-preload-scripts-must-have-the-mjs-extension)</li></ul> |
|
||||
| Renderer (Unsandboxed & Non Context Isolated) | Chromium | Node.js | <ul><li>[Unsandboxed ESM preload scripts will run after page load on pages with no content](#unsandboxed-esm-preload-scripts-will-run-after-page-load-on-pages-with-no-content)</li><li>[ESM Preload Scripts must have the `.mjs` extension](#esm-preload-scripts-must-have-the-mjs-extension)</li></ul> |
|
||||
| Renderer (Unsandboxed & Non Context Isolated) | Chromium | Node.js | <ul><li>[Unsandboxed ESM preload scripts will run after page load on pages with no content](#unsandboxed-esm-preload-scripts-will-run-after-page-load-on-pages-with-no-content)</li><li>[ESM Preload Scripts must have the `.mjs` extension](#esm-preload-scripts-must-have-the-mjs-extension)</li><li>[ESM preload scripts must be context isolated to use dynamic Node.js ESM imports](#esm-preload-scripts-must-be-context-isolated-to-use-dynamic-nodejs-esm-imports)</li></ul> |
|
||||
|
||||
## Main process
|
||||
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
|
||||
## Overview
|
||||
|
||||
Online and offline event detection can be implemented in both the main and renderer processes:
|
||||
|
||||
- **Renderer process**: Use the [`navigator.onLine`](http://html5index.org/Offline%20-%20NavigatorOnLine.html) attribute and [online/offline events](https://developer.mozilla.org/en-US/docs/Online_and_offline_events), part of standard HTML5 API.
|
||||
- **Main process**: Use the [`net.isOnline()`](../api/net.md#netisonline) method or the [`net.online`](../api/net.md#netonline-readonly) property.
|
||||
[Online and offline event](https://developer.mozilla.org/en-US/docs/Online_and_offline_events)
|
||||
detection can be implemented in the Renderer process using the
|
||||
[`navigator.onLine`](http://html5index.org/Offline%20-%20NavigatorOnLine.html)
|
||||
attribute, part of standard HTML5 API.
|
||||
|
||||
The `navigator.onLine` attribute returns:
|
||||
|
||||
- `false` if all network requests are guaranteed to fail (e.g. when disconnected from the network).
|
||||
- `true` in all other cases.
|
||||
* `false` if all network requests are guaranteed to fail (e.g. when disconnected from the network).
|
||||
* `true` in all other cases.
|
||||
|
||||
Since many cases return `true`, you should treat with care situations of
|
||||
getting false positives, as we cannot always assume that `true` value means
|
||||
@@ -19,27 +19,7 @@ is running a virtualization software that has virtual Ethernet adapters in "alwa
|
||||
connected" state. Therefore, if you want to determine the Internet access
|
||||
status of Electron, you should develop additional means for this check.
|
||||
|
||||
## Main Process Detection
|
||||
|
||||
In the main process, you can use the `net` module to detect online/offline status:
|
||||
|
||||
```js
|
||||
const { net } = require('electron')
|
||||
|
||||
// Method 1: Using net.isOnline()
|
||||
const isOnline = net.isOnline()
|
||||
console.log('Online status:', isOnline)
|
||||
|
||||
// Method 2: Using net.online property
|
||||
console.log('Online status:', net.online)
|
||||
```
|
||||
|
||||
Both `net.isOnline()` and `net.online` return the same boolean value with the same reliability characteristics as `navigator.onLine` - they provide a strong indicator when offline (`false`), but a `true` value doesn't guarantee successful internet connectivity.
|
||||
|
||||
> [!NOTE]
|
||||
> The `net` module is only available after the app emits the `ready` event.
|
||||
|
||||
## Renderer Process Example
|
||||
## Example
|
||||
|
||||
Starting with an HTML file `index.html`, this example will demonstrate how the `navigator.onLine` API can be used to build a connection status indicator.
|
||||
|
||||
@@ -104,4 +84,4 @@ After launching the Electron application, you should see the notification:
|
||||

|
||||
|
||||
> [!NOTE]
|
||||
> If you need to check the connection status in the main process, you can use [`net.isOnline()`](../api/net.md#netisonline) directly instead of communicating from the renderer process via [IPC](../api/ipc-renderer.md).
|
||||
> If you need to communicate the connection status to the main process, use the [IPC renderer](../api/ipc-renderer.md) API.
|
||||
|
||||
@@ -13,13 +13,7 @@ the GPU service and the network service.
|
||||
See Chromium's [Sandbox design document][sandbox] for more information.
|
||||
|
||||
Starting from Electron 20, the sandbox is enabled for renderer processes without any
|
||||
further configuration.
|
||||
|
||||
Sandboxing is tied to Node.js integration. _Enabling Node.js integration_ for a
|
||||
renderer process by setting `nodeIntegration: true` _disables the sandbox_ for the
|
||||
process.
|
||||
|
||||
If you want to disable the sandbox for a process, see the
|
||||
further configuration. If you want to disable the sandbox for a process, see the
|
||||
[Disabling the sandbox for a single process](#disabling-the-sandbox-for-a-single-process)
|
||||
section.
|
||||
|
||||
@@ -104,8 +98,7 @@ app.whenReady().then(() => {
|
||||
```
|
||||
|
||||
Sandboxing is also disabled whenever Node.js integration is enabled in the renderer.
|
||||
This can be done through the BrowserWindow constructor with the `nodeIntegration: true` flag
|
||||
or by providing the respective HTML boolean attribute for a `webview`.
|
||||
This can be done through the BrowserWindow constructor with the `nodeIntegration: true` flag.
|
||||
|
||||
```js title='main.js'
|
||||
app.whenReady().then(() => {
|
||||
@@ -118,10 +111,6 @@ app.whenReady().then(() => {
|
||||
})
|
||||
```
|
||||
|
||||
```html title='index.html (Renderer Process)'
|
||||
<webview nodeIntegration src="page.html"></webview>
|
||||
```
|
||||
|
||||
### Enabling the sandbox globally
|
||||
|
||||
If you want to force sandboxing for all renderers, you can also use the
|
||||
|
||||
@@ -244,10 +244,6 @@ to enable this behavior.
|
||||
Even when `nodeIntegration: false` is used, to truly enforce strong isolation
|
||||
and prevent the use of Node primitives `contextIsolation` **must** also be used.
|
||||
|
||||
Beware that _disabling context isolation_ for a renderer process by setting
|
||||
`nodeIntegration: true` _also disables process sandboxing_ for that process.
|
||||
See section below.
|
||||
|
||||
:::info
|
||||
For more information on what `contextIsolation` is and how to enable it please
|
||||
see our dedicated [Context Isolation](context-isolation.md) document.
|
||||
@@ -255,16 +251,6 @@ see our dedicated [Context Isolation](context-isolation.md) document.
|
||||
|
||||
### 4. Enable process sandboxing
|
||||
|
||||
:::info
|
||||
This recommendation is the default behavior in Electron since 20.0.0.
|
||||
|
||||
Additionally, process sandboxing can be enforced for all renderer processes
|
||||
application wide: [Enabling the sandbox globally](sandbox.md#enabling-the-sandbox-globally)
|
||||
|
||||
_Disabling context isolation_ (see above) _also disables process sandboxing_,
|
||||
regardless of the default, `sandbox: false` or globally enabled sandboxing!
|
||||
:::
|
||||
|
||||
[Sandboxing](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/design/sandbox.md)
|
||||
is a Chromium feature that uses the operating system to
|
||||
significantly limit what renderer processes have access to. You should enable
|
||||
|
||||
@@ -44,7 +44,7 @@ Electron combines Chromium, Node.js, and the ability to write custom native code
|
||||
|
||||
### Enterprise-grade
|
||||
|
||||
Electron is reliable, secure, stable, and mature. It is the premier choice for companies building their flagship product. We have a list of some of those companies on our homepage, but just among chat apps, Slack, Discord, and Signal are built with Electron. Among AI applications, both OpenAI’s ChatGPT and Anthropic’s Claude use Electron. Visual Studio Code, Loom, Canva, Notion, Docker, and countless other leading developers of software bet on Electron.
|
||||
Electron is reliable, secure, stable, and mature. It is the premier choice for companies building their flagship product. We have a list of some of those companies on our homepage, but just among chat apps, Slack, Discord, and Skype are built with Electron. Among AI applications, both OpenAI’s ChatGPT and Anthropic’s Claude use Electron. Visual Studio Code, Loom, Canva, Notion, Docker, and countless other leading developers of software bet on Electron.
|
||||
|
||||
We did make it a priority to make Electron easy to work with and a delight for developers. That’s likely the main reason why Electron became as popular as it is today — but what keeps Electron alive and thriving is the maintainer’s focus on making Electron as stable, secure, performant, and capable of mission-critical use cases for end users as possible. We’re building an Electron that is ready to be used in scenarios where unfixable bugs, unpatched security holes, and outages of any kind are worst-case scenarios.
|
||||
|
||||
|
||||
35
electron_unsafe_buffers_paths.txt
Normal file
35
electron_unsafe_buffers_paths.txt
Normal file
@@ -0,0 +1,35 @@
|
||||
# Copyright 2024 The Electron Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# The set of path prefixes that should be checked for unsafe buffer usage (see
|
||||
# -Wunsafe-buffer-usage in Clang).
|
||||
#
|
||||
# ***
|
||||
# Paths should be written as relative to the root of the source tree with
|
||||
# unix-style path separators. Directory prefixes should end with `/`, such
|
||||
# as `base/`.
|
||||
# ***
|
||||
#
|
||||
# Files in this set are known to not use pointer arithmetic/subscripting, and
|
||||
# make use of constructs like base::span or containers like std::vector instead.
|
||||
#
|
||||
# See `docs/unsafe_buffers.md`.
|
||||
|
||||
# These directories are excluded because they come from outside Electron and
|
||||
# we don't have control over their contents.
|
||||
-base/
|
||||
-chrome/
|
||||
-components/
|
||||
-content/browser/indexed_db
|
||||
-device/
|
||||
-extensions/
|
||||
-google_apis/
|
||||
-net/
|
||||
-services/
|
||||
-skia/
|
||||
-third_party/
|
||||
-tools/
|
||||
-ui/
|
||||
-url/
|
||||
-v8/
|
||||
@@ -65,7 +65,6 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__algorithm/next_permutation.h",
|
||||
"//third_party/libc++/src/include/__algorithm/none_of.h",
|
||||
"//third_party/libc++/src/include/__algorithm/nth_element.h",
|
||||
"//third_party/libc++/src/include/__algorithm/out_value_result.h",
|
||||
"//third_party/libc++/src/include/__algorithm/partial_sort.h",
|
||||
"//third_party/libc++/src/include/__algorithm/partial_sort_copy.h",
|
||||
"//third_party/libc++/src/include/__algorithm/partition.h",
|
||||
@@ -342,6 +341,7 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/all_of.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/any_of.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/binary_search.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/clamp.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/comp.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/comp_ref_type.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/copy.h",
|
||||
@@ -361,11 +361,19 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/find_if.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/find_if_not.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/find_segment_if.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/fold.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/for_each.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/for_each_n.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/for_each_segment.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/generate.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/generate_n.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/half_positive.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/in_found_result.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/in_fun_result.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/in_in_out_result.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/in_in_result.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/in_out_out_result.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/in_out_result.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/includes.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/inplace_merge.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/is_heap.h",
|
||||
@@ -377,6 +385,7 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/iter_swap.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/iterator_operations.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/lexicographical_compare.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/lexicographical_compare_three_way.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/lower_bound.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/make_heap.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/make_projected.h",
|
||||
@@ -385,6 +394,7 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/merge.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/min.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/min_element.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/min_max_result.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/minmax.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/minmax_element.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/mismatch.h",
|
||||
@@ -400,7 +410,99 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/partition_point.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/pop_heap.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/prev_permutation.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/pstl.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/push_heap.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_adjacent_find.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_all_of.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_any_of.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_binary_search.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_clamp.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_contains.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_contains_subrange.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_copy.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_copy_backward.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_copy_if.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_copy_n.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_count.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_count_if.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_ends_with.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_equal.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_equal_range.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_fill.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_fill_n.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_end.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_first_of.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_if.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_if_not.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_last.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_for_each.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_for_each_n.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_generate.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_generate_n.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_includes.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_inplace_merge.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_heap.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_heap_until.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_partitioned.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_permutation.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_sorted.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_sorted_until.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_iterator_concept.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_lexicographical_compare.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_lower_bound.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_make_heap.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_max.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_max_element.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_merge.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_min.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_min_element.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_minmax.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_minmax_element.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_mismatch.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_move.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_move_backward.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_next_permutation.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_none_of.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_nth_element.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partial_sort.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partial_sort_copy.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partition.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partition_copy.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partition_point.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_pop_heap.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_prev_permutation.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_push_heap.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_remove.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_remove_copy.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_remove_copy_if.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_remove_if.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_replace.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_replace_copy.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_replace_copy_if.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_replace_if.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_reverse.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_reverse_copy.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_rotate.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_rotate_copy.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_sample.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_search.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_search_n.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_set_difference.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_set_intersection.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_set_symmetric_difference.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_set_union.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_shuffle.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_sort.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_sort_heap.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_stable_partition.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_stable_sort.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_starts_with.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_swap_ranges.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_transform.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_unique.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_unique_copy.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/ranges_upper_bound.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/remove.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/remove_copy.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/remove_copy_if.h",
|
||||
@@ -413,12 +515,15 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/reverse_copy.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/rotate.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/rotate_copy.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/sample.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/search.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/search_n.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/set_difference.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/set_intersection.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/set_symmetric_difference.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/set_union.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/shift_left.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/shift_right.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/shuffle.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/sift_down.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__algorithm/simd_utils.h",
|
||||
@@ -442,6 +547,7 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__atomic/atomic_flag.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__atomic/atomic_init.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__atomic/atomic_lock_free.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__atomic/atomic_ref.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__atomic/atomic_sync.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__atomic/check_memory_order.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__atomic/contention_t.h",
|
||||
@@ -451,19 +557,100 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__atomic/kill_dependency.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__atomic/memory_order.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__atomic/to_gcc_order.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/bit_cast.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/bit_ceil.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/bit_floor.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/bit_log2.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/bit_width.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/blsr.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/byteswap.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/countl.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/countr.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/endian.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/has_single_bit.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/invert_if.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/popcount.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit/rotate.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__bit_reference",
|
||||
"//third_party/libc++/src/include/__cxx03/__charconv/chars_format.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__charconv/from_chars_integral.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__charconv/from_chars_result.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__charconv/tables.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__charconv/to_chars.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__charconv/to_chars_base_10.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__charconv/to_chars_floating_point.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__charconv/to_chars_integral.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__charconv/to_chars_result.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__charconv/traits.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/calendar.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/concepts.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/convert_to_timespec.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/convert_to_tm.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/day.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/duration.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/exception.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/file_clock.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/formatter.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/hh_mm_ss.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/high_resolution_clock.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/leap_second.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/literals.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/local_info.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/month.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/month_weekday.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/monthday.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/ostream.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/parser_std_format_spec.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/statically_widen.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/steady_clock.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/sys_info.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/system_clock.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/time_point.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/time_zone.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/time_zone_link.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/tzdb.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/tzdb_list.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/weekday.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/year.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/year_month.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/year_month_day.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/year_month_weekday.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__chrono/zoned_time.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__compare/common_comparison_category.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__compare/compare_partial_order_fallback.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__compare/compare_strong_order_fallback.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__compare/compare_three_way.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__compare/compare_three_way_result.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__compare/compare_weak_order_fallback.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__compare/is_eq.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__compare/ordering.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__compare/partial_order.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__compare/strong_order.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__compare/synth_three_way.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__compare/three_way_comparable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__compare/weak_order.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/arithmetic.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/assignable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/boolean_testable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/class_or_enum.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/common_reference_with.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/common_with.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/constructible.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/convertible_to.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/copyable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/derived_from.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/destructible.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/different_from.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/equality_comparable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/invocable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/movable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/predicate.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/regular.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/relation.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/same_as.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/semiregular.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/swappable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__concepts/totally_ordered.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__condition_variable/condition_variable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__config",
|
||||
"//third_party/libc++/src/include/__cxx03/__config_site.in",
|
||||
@@ -473,6 +660,10 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__configuration/config_site_shim.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__configuration/language.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__configuration/platform.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__coroutine/coroutine_handle.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__coroutine/coroutine_traits.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__coroutine/noop_coroutine_handle.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__coroutine/trivial_awaitables.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__debug_utils/randomize_range.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__debug_utils/sanitizers.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__debug_utils/strict_weak_ordering_check.h",
|
||||
@@ -481,18 +672,81 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__exception/nested_exception.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__exception/operations.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__exception/terminate.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__expected/bad_expected_access.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__expected/expected.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__expected/unexpect.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__expected/unexpected.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/copy_options.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/directory_entry.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/directory_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/directory_options.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/file_status.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/file_time_type.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/file_type.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/filesystem_error.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/operations.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/path.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/path_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/perm_options.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/perms.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/recursive_directory_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/space_info.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__filesystem/u8path.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/buffer.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/concepts.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/container_adaptor.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/enable_insertable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/escaped_output_table.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/extended_grapheme_cluster_table.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/format_arg.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/format_arg_store.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/format_args.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/format_context.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/format_error.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/format_functions.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/format_parse_context.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/format_string.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/format_to_n_result.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/formatter.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/formatter_bool.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/formatter_char.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/formatter_floating_point.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/formatter_integer.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/formatter_integral.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/formatter_output.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/formatter_pointer.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/formatter_string.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/formatter_tuple.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/indic_conjunct_break_table.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/parser_std_format_spec.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/range_default_formatter.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/range_formatter.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/unicode.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/width_estimation_table.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__format/write_escaped.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/binary_function.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/binary_negate.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/bind.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/bind_back.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/bind_front.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/binder1st.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/binder2nd.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/boyer_moore_searcher.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/compose.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/default_searcher.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/function.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/hash.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/identity.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/invoke.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/is_transparent.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/mem_fn.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/mem_fun_ref.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/not_fn.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/operations.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/perfect_forward.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/pointer_to_binary_function.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/pointer_to_unary_function.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/ranges_operations.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/reference_wrapper.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/unary_function.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__functional/unary_negate.h",
|
||||
@@ -501,19 +755,24 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/bit_reference.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/complex.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/deque.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/format.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/fstream.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/functional.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/ios.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/istream.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/mdspan.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/memory.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/memory_resource.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/ostream.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/pair.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/queue.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/span.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/sstream.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/stack.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/streambuf.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/string.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/string_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/subrange.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/tuple.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__fwd/vector.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__hash_table",
|
||||
@@ -523,22 +782,43 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/aliasing_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/back_insert_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/bounded_iter.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/common_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/concepts.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/counted_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/cpp17_iterator_concepts.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/data.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/default_sentinel.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/distance.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/empty.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/erase_if_container.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/front_insert_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/incrementable_traits.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/indirectly_comparable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/insert_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/istream_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/istreambuf_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/iter_move.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/iter_swap.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/iterator_traits.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/iterator_with_data.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/mergeable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/move_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/move_sentinel.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/next.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/ostream_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/ostreambuf_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/permutable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/prev.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/projected.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/ranges_iterator_traits.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/readable_traits.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/reverse_access.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/reverse_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/segmented_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/size.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/sortable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/unreachable_sentinel.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__iterator/wrap_iter.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__locale",
|
||||
"//third_party/libc++/src/include/__cxx03/__locale_dir/locale_base_api/android.h",
|
||||
@@ -569,9 +849,16 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__math/remainder.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__math/roots.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__math/rounding_functions.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__math/special_functions.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__math/traits.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__math/trigonometric_functions.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__mbstate_t.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__mdspan/default_accessor.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__mdspan/extents.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__mdspan/layout_left.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__mdspan/layout_right.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__mdspan/layout_stride.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__mdspan/mdspan.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/addressof.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/align.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/aligned_alloc.h",
|
||||
@@ -585,9 +872,14 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/auto_ptr.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/builtin_new_allocator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/compressed_pair.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/concepts.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/construct_at.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/destruct_n.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/inout_ptr.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/out_ptr.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/pointer_traits.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/ranges_construct_at.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/ranges_uninitialized_algorithms.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/raw_storage_iterator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/shared_ptr.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/swap_allocator.h",
|
||||
@@ -596,18 +888,54 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/uninitialized_algorithms.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/unique_ptr.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/uses_allocator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/uses_allocator_construction.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory/voidify.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory_resource/memory_resource.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory_resource/monotonic_buffer_resource.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory_resource/polymorphic_allocator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory_resource/pool_options.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory_resource/synchronized_pool_resource.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__memory_resource/unsynchronized_pool_resource.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__mutex/lock_guard.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__mutex/mutex.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__mutex/once_flag.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__mutex/tag_types.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__mutex/unique_lock.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__node_handle",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/accumulate.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/adjacent_difference.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/exclusive_scan.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/gcd_lcm.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/inclusive_scan.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/inner_product.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/iota.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/midpoint.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/partial_sum.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/pstl.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/reduce.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/saturation_arithmetic.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/transform_exclusive_scan.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/transform_inclusive_scan.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__numeric/transform_reduce.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ostream/basic_ostream.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ostream/print.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/backend.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/backend_fwd.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/backends/default.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/backends/libdispatch.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/backends/serial.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/backends/std_thread.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/any_of.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/cpu_traits.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/fill.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/find_if.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/for_each.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/merge.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/stable_sort.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/transform.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/transform_reduce.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/dispatch.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__pstl/handle_exception.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__random/bernoulli_distribution.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__random/binomial_distribution.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__random/cauchy_distribution.h",
|
||||
@@ -642,11 +970,62 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__random/student_t_distribution.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__random/subtract_with_carry_engine.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__random/uniform_int_distribution.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__random/uniform_random_bit_generator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__random/uniform_real_distribution.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__random/weibull_distribution.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/access.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/all.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/as_rvalue_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/chunk_by_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/common_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/concepts.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/container_compatible_range.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/counted.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/dangling.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/data.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/drop_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/drop_while_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/elements_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/empty.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/empty_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/enable_borrowed_range.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/enable_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/filter_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/from_range.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/iota_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/istream_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/join_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/lazy_split_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/movable_box.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/non_propagating_cache.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/owning_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/range_adaptor.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/rbegin.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/ref_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/rend.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/repeat_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/reverse_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/single_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/size.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/split_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/subrange.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/take_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/take_while_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/to.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/transform_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/view_interface.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/views.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__ranges/zip_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__split_buffer",
|
||||
"//third_party/libc++/src/include/__cxx03/__std_clang_module",
|
||||
"//third_party/libc++/src/include/__cxx03/__std_mbstate_t.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__stop_token/atomic_unique_lock.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__stop_token/intrusive_list_view.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__stop_token/intrusive_shared_ptr.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__stop_token/stop_callback.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__stop_token/stop_source.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__stop_token/stop_state.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__stop_token/stop_token.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__string/char_traits.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__string/constexpr_c_functions.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__string/extern_template_lists.h",
|
||||
@@ -661,7 +1040,9 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__system_error/error_code.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__system_error/error_condition.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__system_error/system_error.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__thread/formatter.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__thread/id.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__thread/jthread.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__thread/poll_with_backoff.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__thread/support/c11.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__thread/support/external.h",
|
||||
@@ -673,6 +1054,7 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__thread/timed_backoff_policy.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__tree",
|
||||
"//third_party/libc++/src/include/__cxx03/__tuple/find_index.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__tuple/ignore.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__tuple/make_tuple_types.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__tuple/sfinae_helpers.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__tuple/tuple_element.h",
|
||||
@@ -692,6 +1074,7 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/aligned_union.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/alignment_of.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/can_extract_key.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/common_reference.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/common_type.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/conditional.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/conjunction.h",
|
||||
@@ -704,10 +1087,12 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/disjunction.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/enable_if.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/extent.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/has_unique_object_representation.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/has_virtual_destructor.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/integral_constant.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/invoke.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/is_abstract.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/is_aggregate.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/is_allocator.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/is_always_bitcastable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/is_arithmetic.h",
|
||||
@@ -739,6 +1124,7 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/is_member_pointer.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/is_nothrow_assignable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/is_nothrow_constructible.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/is_nothrow_convertible.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/is_nothrow_destructible.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/is_null_pointer.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/is_object.h",
|
||||
@@ -798,13 +1184,18 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/unwrap_ref.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__type_traits/void_t.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__undef_macros",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/as_const.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/as_lvalue.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/auto_cast.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/cmp.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/convert_to_integral.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/declval.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/empty.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/exception_guard.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/exchange.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/forward.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/forward_like.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/in_place.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/integer_sequence.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/is_pointer_in_range.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/is_valid_range.h",
|
||||
@@ -817,12 +1208,16 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/rel_ops.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/small_buffer.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/swap.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/to_underlying.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__utility/unreachable.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__variant/monostate.h",
|
||||
"//third_party/libc++/src/include/__cxx03/__verbose_abort",
|
||||
"//third_party/libc++/src/include/__cxx03/algorithm",
|
||||
"//third_party/libc++/src/include/__cxx03/any",
|
||||
"//third_party/libc++/src/include/__cxx03/array",
|
||||
"//third_party/libc++/src/include/__cxx03/atomic",
|
||||
"//third_party/libc++/src/include/__cxx03/barrier",
|
||||
"//third_party/libc++/src/include/__cxx03/bit",
|
||||
"//third_party/libc++/src/include/__cxx03/bitset",
|
||||
"//third_party/libc++/src/include/__cxx03/cassert",
|
||||
"//third_party/libc++/src/include/__cxx03/ccomplex",
|
||||
@@ -830,6 +1225,7 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/cerrno",
|
||||
"//third_party/libc++/src/include/__cxx03/cfenv",
|
||||
"//third_party/libc++/src/include/__cxx03/cfloat",
|
||||
"//third_party/libc++/src/include/__cxx03/charconv",
|
||||
"//third_party/libc++/src/include/__cxx03/chrono",
|
||||
"//third_party/libc++/src/include/__cxx03/cinttypes",
|
||||
"//third_party/libc++/src/include/__cxx03/ciso646",
|
||||
@@ -837,9 +1233,12 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/clocale",
|
||||
"//third_party/libc++/src/include/__cxx03/cmath",
|
||||
"//third_party/libc++/src/include/__cxx03/codecvt",
|
||||
"//third_party/libc++/src/include/__cxx03/compare",
|
||||
"//third_party/libc++/src/include/__cxx03/complex",
|
||||
"//third_party/libc++/src/include/__cxx03/complex.h",
|
||||
"//third_party/libc++/src/include/__cxx03/concepts",
|
||||
"//third_party/libc++/src/include/__cxx03/condition_variable",
|
||||
"//third_party/libc++/src/include/__cxx03/coroutine",
|
||||
"//third_party/libc++/src/include/__cxx03/csetjmp",
|
||||
"//third_party/libc++/src/include/__cxx03/csignal",
|
||||
"//third_party/libc++/src/include/__cxx03/cstdarg",
|
||||
@@ -858,17 +1257,36 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/deque",
|
||||
"//third_party/libc++/src/include/__cxx03/errno.h",
|
||||
"//third_party/libc++/src/include/__cxx03/exception",
|
||||
"//third_party/libc++/src/include/__cxx03/execution",
|
||||
"//third_party/libc++/src/include/__cxx03/expected",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/__config",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/__simd/aligned_tag.h",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/__simd/declaration.h",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/__simd/reference.h",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/__simd/scalar.h",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/__simd/simd.h",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/__simd/simd_mask.h",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/__simd/traits.h",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/__simd/utility.h",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/__simd/vec_ext.h",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/iterator",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/memory",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/propagate_const",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/simd",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/type_traits",
|
||||
"//third_party/libc++/src/include/__cxx03/experimental/utility",
|
||||
"//third_party/libc++/src/include/__cxx03/ext/__hash",
|
||||
"//third_party/libc++/src/include/__cxx03/ext/hash_map",
|
||||
"//third_party/libc++/src/include/__cxx03/ext/hash_set",
|
||||
"//third_party/libc++/src/include/__cxx03/fenv.h",
|
||||
"//third_party/libc++/src/include/__cxx03/filesystem",
|
||||
"//third_party/libc++/src/include/__cxx03/float.h",
|
||||
"//third_party/libc++/src/include/__cxx03/format",
|
||||
"//third_party/libc++/src/include/__cxx03/forward_list",
|
||||
"//third_party/libc++/src/include/__cxx03/fstream",
|
||||
"//third_party/libc++/src/include/__cxx03/functional",
|
||||
"//third_party/libc++/src/include/__cxx03/future",
|
||||
"//third_party/libc++/src/include/__cxx03/initializer_list",
|
||||
"//third_party/libc++/src/include/__cxx03/inttypes.h",
|
||||
"//third_party/libc++/src/include/__cxx03/iomanip",
|
||||
"//third_party/libc++/src/include/__cxx03/ios",
|
||||
@@ -876,23 +1294,35 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/iostream",
|
||||
"//third_party/libc++/src/include/__cxx03/istream",
|
||||
"//third_party/libc++/src/include/__cxx03/iterator",
|
||||
"//third_party/libc++/src/include/__cxx03/latch",
|
||||
"//third_party/libc++/src/include/__cxx03/limits",
|
||||
"//third_party/libc++/src/include/__cxx03/list",
|
||||
"//third_party/libc++/src/include/__cxx03/locale",
|
||||
"//third_party/libc++/src/include/__cxx03/locale.h",
|
||||
"//third_party/libc++/src/include/__cxx03/map",
|
||||
"//third_party/libc++/src/include/__cxx03/math.h",
|
||||
"//third_party/libc++/src/include/__cxx03/mdspan",
|
||||
"//third_party/libc++/src/include/__cxx03/memory",
|
||||
"//third_party/libc++/src/include/__cxx03/memory_resource",
|
||||
"//third_party/libc++/src/include/__cxx03/module.modulemap",
|
||||
"//third_party/libc++/src/include/__cxx03/mutex",
|
||||
"//third_party/libc++/src/include/__cxx03/new",
|
||||
"//third_party/libc++/src/include/__cxx03/numbers",
|
||||
"//third_party/libc++/src/include/__cxx03/numeric",
|
||||
"//third_party/libc++/src/include/__cxx03/optional",
|
||||
"//third_party/libc++/src/include/__cxx03/ostream",
|
||||
"//third_party/libc++/src/include/__cxx03/print",
|
||||
"//third_party/libc++/src/include/__cxx03/queue",
|
||||
"//third_party/libc++/src/include/__cxx03/random",
|
||||
"//third_party/libc++/src/include/__cxx03/ranges",
|
||||
"//third_party/libc++/src/include/__cxx03/ratio",
|
||||
"//third_party/libc++/src/include/__cxx03/regex",
|
||||
"//third_party/libc++/src/include/__cxx03/scoped_allocator",
|
||||
"//third_party/libc++/src/include/__cxx03/semaphore",
|
||||
"//third_party/libc++/src/include/__cxx03/set",
|
||||
"//third_party/libc++/src/include/__cxx03/shared_mutex",
|
||||
"//third_party/libc++/src/include/__cxx03/source_location",
|
||||
"//third_party/libc++/src/include/__cxx03/span",
|
||||
"//third_party/libc++/src/include/__cxx03/sstream",
|
||||
"//third_party/libc++/src/include/__cxx03/stack",
|
||||
"//third_party/libc++/src/include/__cxx03/stdatomic.h",
|
||||
@@ -902,14 +1332,17 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/stdint.h",
|
||||
"//third_party/libc++/src/include/__cxx03/stdio.h",
|
||||
"//third_party/libc++/src/include/__cxx03/stdlib.h",
|
||||
"//third_party/libc++/src/include/__cxx03/stop_token",
|
||||
"//third_party/libc++/src/include/__cxx03/streambuf",
|
||||
"//third_party/libc++/src/include/__cxx03/string",
|
||||
"//third_party/libc++/src/include/__cxx03/string.h",
|
||||
"//third_party/libc++/src/include/__cxx03/string_view",
|
||||
"//third_party/libc++/src/include/__cxx03/strstream",
|
||||
"//third_party/libc++/src/include/__cxx03/syncstream",
|
||||
"//third_party/libc++/src/include/__cxx03/system_error",
|
||||
"//third_party/libc++/src/include/__cxx03/tgmath.h",
|
||||
"//third_party/libc++/src/include/__cxx03/thread",
|
||||
"//third_party/libc++/src/include/__cxx03/tuple",
|
||||
"//third_party/libc++/src/include/__cxx03/type_traits",
|
||||
"//third_party/libc++/src/include/__cxx03/typeindex",
|
||||
"//third_party/libc++/src/include/__cxx03/typeinfo",
|
||||
@@ -918,6 +1351,7 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__cxx03/unordered_set",
|
||||
"//third_party/libc++/src/include/__cxx03/utility",
|
||||
"//third_party/libc++/src/include/__cxx03/valarray",
|
||||
"//third_party/libc++/src/include/__cxx03/variant",
|
||||
"//third_party/libc++/src/include/__cxx03/vector",
|
||||
"//third_party/libc++/src/include/__cxx03/version",
|
||||
"//third_party/libc++/src/include/__cxx03/wchar.h",
|
||||
@@ -956,10 +1390,8 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__flat_map/sorted_equivalent.h",
|
||||
"//third_party/libc++/src/include/__flat_map/sorted_unique.h",
|
||||
"//third_party/libc++/src/include/__flat_map/utils.h",
|
||||
"//third_party/libc++/src/include/__flat_set/flat_multiset.h",
|
||||
"//third_party/libc++/src/include/__flat_set/flat_set.h",
|
||||
"//third_party/libc++/src/include/__flat_set/ra_iterator.h",
|
||||
"//third_party/libc++/src/include/__flat_set/utils.h",
|
||||
"//third_party/libc++/src/include/__format/buffer.h",
|
||||
"//third_party/libc++/src/include/__format/concepts.h",
|
||||
"//third_party/libc++/src/include/__format/container_adaptor.h",
|
||||
@@ -1131,7 +1563,6 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__math/traits.h",
|
||||
"//third_party/libc++/src/include/__math/trigonometric_functions.h",
|
||||
"//third_party/libc++/src/include/__mbstate_t.h",
|
||||
"//third_party/libc++/src/include/__mdspan/aligned_accessor.h",
|
||||
"//third_party/libc++/src/include/__mdspan/default_accessor.h",
|
||||
"//third_party/libc++/src/include/__mdspan/extents.h",
|
||||
"//third_party/libc++/src/include/__mdspan/layout_left.h",
|
||||
@@ -1156,7 +1587,6 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__memory/destroy.h",
|
||||
"//third_party/libc++/src/include/__memory/destruct_n.h",
|
||||
"//third_party/libc++/src/include/__memory/inout_ptr.h",
|
||||
"//third_party/libc++/src/include/__memory/is_sufficiently_aligned.h",
|
||||
"//third_party/libc++/src/include/__memory/noexcept_move_assign_container.h",
|
||||
"//third_party/libc++/src/include/__memory/out_ptr.h",
|
||||
"//third_party/libc++/src/include/__memory/pointer_traits.h",
|
||||
@@ -1206,7 +1636,6 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__numeric/midpoint.h",
|
||||
"//third_party/libc++/src/include/__numeric/partial_sum.h",
|
||||
"//third_party/libc++/src/include/__numeric/pstl.h",
|
||||
"//third_party/libc++/src/include/__numeric/ranges_iota.h",
|
||||
"//third_party/libc++/src/include/__numeric/reduce.h",
|
||||
"//third_party/libc++/src/include/__numeric/saturation_arithmetic.h",
|
||||
"//third_party/libc++/src/include/__numeric/transform_exclusive_scan.h",
|
||||
@@ -1421,6 +1850,7 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/__type_traits/is_member_pointer.h",
|
||||
"//third_party/libc++/src/include/__type_traits/is_nothrow_assignable.h",
|
||||
"//third_party/libc++/src/include/__type_traits/is_nothrow_constructible.h",
|
||||
"//third_party/libc++/src/include/__type_traits/is_nothrow_convertible.h",
|
||||
"//third_party/libc++/src/include/__type_traits/is_nothrow_destructible.h",
|
||||
"//third_party/libc++/src/include/__type_traits/is_null_pointer.h",
|
||||
"//third_party/libc++/src/include/__type_traits/is_object.h",
|
||||
@@ -1612,7 +2042,7 @@ libcxx_headers = [
|
||||
"//third_party/libc++/src/include/mdspan",
|
||||
"//third_party/libc++/src/include/memory",
|
||||
"//third_party/libc++/src/include/memory_resource",
|
||||
"//third_party/libc++/src/include/module.modulemap.in",
|
||||
"//third_party/libc++/src/include/module.modulemap",
|
||||
"//third_party/libc++/src/include/mutex",
|
||||
"//third_party/libc++/src/include/new",
|
||||
"//third_party/libc++/src/include/numbers",
|
||||
|
||||
@@ -199,14 +199,7 @@ BrowserWindow.prototype.setBackgroundThrottling = function (allowed: boolean) {
|
||||
};
|
||||
|
||||
BrowserWindow.prototype.addBrowserView = function (browserView: BrowserView) {
|
||||
if (this._browserViews.includes(browserView)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const ownerWindow = browserView.ownerWindow;
|
||||
if (ownerWindow && ownerWindow !== this) {
|
||||
ownerWindow.removeBrowserView(browserView);
|
||||
}
|
||||
if (browserView.ownerWindow) { browserView.ownerWindow.removeBrowserView(browserView); }
|
||||
this.contentView.addChildView(browserView.webContentsView);
|
||||
browserView.ownerWindow = this;
|
||||
browserView.webContents._setOwnerWindow(this);
|
||||
|
||||
@@ -71,7 +71,7 @@ const MenuItem = function (this: any, options: any) {
|
||||
};
|
||||
};
|
||||
|
||||
MenuItem.types = ['normal', 'separator', 'submenu', 'checkbox', 'radio', 'header', 'palette'];
|
||||
MenuItem.types = ['normal', 'separator', 'submenu', 'checkbox', 'radio'];
|
||||
|
||||
MenuItem.prototype.getDefaultRoleAccelerator = function () {
|
||||
return roles.getDefaultAccelerator(this.role);
|
||||
|
||||
@@ -143,9 +143,6 @@ Menu.prototype.insert = function (pos, item) {
|
||||
if (item.toolTip) this.setToolTip(pos, item.toolTip);
|
||||
if (item.icon) this.setIcon(pos, item.icon);
|
||||
if (item.role) this.setRole(pos, item.role);
|
||||
if (item.type === 'palette' || item.type === 'header') {
|
||||
this.setCustomType(pos, item.type);
|
||||
}
|
||||
|
||||
// Make menu accessible to items.
|
||||
item.overrideReadOnlyProperty('menu', this);
|
||||
@@ -267,11 +264,9 @@ function removeExtraSeparators (items: (MenuItemConstructorOptions | MenuItem)[]
|
||||
function insertItemByType (this: MenuType, item: MenuItem, pos: number) {
|
||||
const types = {
|
||||
normal: () => this.insertItem(pos, item.commandId, item.label),
|
||||
header: () => this.insertItem(pos, item.commandId, item.label),
|
||||
checkbox: () => this.insertCheckItem(pos, item.commandId, item.label),
|
||||
separator: () => this.insertSeparator(pos),
|
||||
submenu: () => this.insertSubMenu(pos, item.commandId, item.label, item.submenu),
|
||||
palette: () => this.insertSubMenu(pos, item.commandId, item.label, item.submenu),
|
||||
radio: () => {
|
||||
// Grouping radio menu items
|
||||
item.overrideReadOnlyProperty('groupId', generateGroupId(this.items, pos));
|
||||
|
||||
@@ -44,7 +44,7 @@ downloadArtifact({
|
||||
artifactName: 'electron',
|
||||
force: process.env.force_no_cache === 'true',
|
||||
cacheRoot: process.env.electron_config_cache,
|
||||
checksums: (process.env.electron_use_remote_checksums || process.env.npm_config_electron_use_remote_checksums) ? undefined : require('./checksums.json'),
|
||||
checksums: process.env.electron_use_remote_checksums ?? process.env.npm_config_electron_use_remote_checksums ? undefined : require('./checksums.json'),
|
||||
platform,
|
||||
arch
|
||||
}).then(extractFile).catch(err => {
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
"@types/temp": "^0.9.4",
|
||||
"@typescript-eslint/eslint-plugin": "^8.7.0",
|
||||
"@typescript-eslint/parser": "^8.7.0",
|
||||
"@xmldom/xmldom": "^0.8.11",
|
||||
"buffer": "^6.0.3",
|
||||
"chalk": "^4.1.0",
|
||||
"check-for-leaks": "^1.2.1",
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
cherry-pick-2f564f1ca07b.patch
|
||||
@@ -1,125 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Mentovai <mark@chromium.org>
|
||||
Date: Tue, 16 Sep 2025 16:46:36 -0400
|
||||
Subject: mac: handle Metal toolchain being unbundled from Xcode 26
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The Metal toolchain was formerly part of Xcode, but in Xcode 26, it has
|
||||
been unbundled and is now a separate install. Attempting to use the
|
||||
Metal toolchain without installing it results in a build error, such as:
|
||||
|
||||
error: error: cannot execute tool 'metal' due to missing Metal
|
||||
Toolchain; use: xcodebuild -downloadComponent MetalToolchain
|
||||
|
||||
By running the suggested command, the Metal toolchain can be installed,
|
||||
but the existing angle build does not know how to find it correctly.
|
||||
|
||||
For system Xcode installations, tools from the Metal toolchain (`metal`
|
||||
and `metallib`) can be run via `xcrun`. This construct should work
|
||||
equally well for older Xcode versions, for situations where it’s still
|
||||
in use.
|
||||
|
||||
For the hermetic toolchain, we’ll continue splicing the Metal toolchain
|
||||
into the location it had previously been avialable (see
|
||||
https://chromium-review.googlesource.com/c/6950738), although this is
|
||||
subject to change in the future.
|
||||
|
||||
Bug: chromium:423933062, chromium:445400016
|
||||
Change-Id: I139eca51938f7cecfec9b90fd488947160ef4ec9
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6955000
|
||||
Auto-Submit: Mark Mentovai <mark@chromium.org>
|
||||
Commit-Queue: Mark Mentovai <mark@chromium.org>
|
||||
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
||||
|
||||
diff --git a/src/libANGLE/renderer/metal/BUILD.gn b/src/libANGLE/renderer/metal/BUILD.gn
|
||||
index 96e9ee8420810f6a3ca9a0c290d4a654200eb7b9..50ac42a5b9a0f7c8b3b161af40c598cb34ff132a 100644
|
||||
--- a/src/libANGLE/renderer/metal/BUILD.gn
|
||||
+++ b/src/libANGLE/renderer/metal/BUILD.gn
|
||||
@@ -24,20 +24,56 @@ config("angle_metal_backend_config") {
|
||||
}
|
||||
|
||||
if (metal_internal_shader_compilation_supported) {
|
||||
+ template("run_metal_tool") {
|
||||
+ action(target_name) {
|
||||
+ forward_variables_from(invoker,
|
||||
+ [
|
||||
+ "deps",
|
||||
+ "sources",
|
||||
+ "outputs",
|
||||
+ "metal_tool",
|
||||
+ ])
|
||||
+ script = "shaders/metal_wrapper.py"
|
||||
+ if (use_system_xcode) {
|
||||
+ # System Xcode: run metal and metallib via xcrun. Since Xcode 26.0, the
|
||||
+ # Metal toolchain has been unbundled from Xcode, and must be installed
|
||||
+ # separately by running `xcodebuild -downloadComponent MetalToolchain`.
|
||||
+ # There is a vestigial metal executable in mac_bin_path, but it’s
|
||||
+ # incapable of running successfuly without the
|
||||
+ # rest of the Metal toolchain surrounding it. `xcrun` is able to find
|
||||
+ # and run the correct Metal toolchain when properly installed.
|
||||
+ #
|
||||
+ # If you’re using system Xcode and your build fails with this message:
|
||||
+ # error: error: cannot execute tool 'metal' due to missing Metal Toolchain; use: xcodebuild -downloadComponent MetalToolchain
|
||||
+ # then do what the error message suggests, and then retry your build.
|
||||
+ args = [
|
||||
+ "xcrun",
|
||||
+ metal_tool,
|
||||
+ ]
|
||||
+ } else {
|
||||
+ # Hermetic Xcode: at least for now, the Metal toolchain is
|
||||
+ # “spliced” into the location in the hermetic toolchain where it lived
|
||||
+ # before Xcode 26.0, so it can be run directly from there.
|
||||
+ args = [ mac_bin_path + metal_tool ]
|
||||
+ }
|
||||
+
|
||||
+ args += invoker.args
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
_metal_internal_shaders_air_file =
|
||||
"$root_gen_dir/angle/mtl_internal_shaders_autogen.air"
|
||||
|
||||
- action("angle_metal_internal_shaders_to_air") {
|
||||
- script = "shaders/metal_wrapper.py"
|
||||
-
|
||||
- outputs = [ _metal_internal_shaders_air_file ]
|
||||
-
|
||||
+ run_metal_tool("angle_metal_internal_shaders_to_air") {
|
||||
_metal_internal_shaders_metal_source =
|
||||
"shaders/mtl_internal_shaders_autogen.metal"
|
||||
sources = [ _metal_internal_shaders_metal_source ]
|
||||
|
||||
+ outputs = [ _metal_internal_shaders_air_file ]
|
||||
+
|
||||
+ metal_tool = "metal"
|
||||
+
|
||||
args = [
|
||||
- mac_bin_path + "metal",
|
||||
"-c",
|
||||
rebase_path(_metal_internal_shaders_metal_source, root_build_dir),
|
||||
"-o",
|
||||
@@ -60,17 +96,16 @@ if (metal_internal_shader_compilation_supported) {
|
||||
_metal_internal_shaders_metallib_file =
|
||||
"$root_gen_dir/angle/mtl_internal_shaders_autogen.metallib"
|
||||
|
||||
- action("angle_metal_internal_shaders_to_mtllib") {
|
||||
- script = "shaders/metal_wrapper.py"
|
||||
-
|
||||
- outputs = [ _metal_internal_shaders_metallib_file ]
|
||||
+ run_metal_tool("angle_metal_internal_shaders_to_mtllib") {
|
||||
+ deps = [ ":angle_metal_internal_shaders_to_air" ]
|
||||
|
||||
sources = [ _metal_internal_shaders_air_file ]
|
||||
|
||||
- deps = [ ":angle_metal_internal_shaders_to_air" ]
|
||||
+ outputs = [ _metal_internal_shaders_metallib_file ]
|
||||
+
|
||||
+ metal_tool = "metallib"
|
||||
|
||||
args = [
|
||||
- mac_bin_path + "metallib",
|
||||
rebase_path(_metal_internal_shaders_air_file, root_build_dir),
|
||||
"-o",
|
||||
rebase_path(_metal_internal_shaders_metallib_file, root_build_dir),
|
||||
@@ -10,7 +10,7 @@ this patch is required to provide ripemd160 support in the nodejs crypto
|
||||
module.
|
||||
|
||||
diff --git a/crypto/digest/digest_extra.cc b/crypto/digest/digest_extra.cc
|
||||
index 4cbfa1f53bb669c24c7f055f4fee7f144f72115a..120cb84e07e0539c038bca059b794d8f9f932a51 100644
|
||||
index f68ede9156ee57526f4578953c350798a1299f00..1de18075e1cfa7f9660fa3b065cd20bafcbe7ee8 100644
|
||||
--- a/crypto/digest/digest_extra.cc
|
||||
+++ b/crypto/digest/digest_extra.cc
|
||||
@@ -45,6 +45,7 @@ static const struct nid_to_digest nid_to_digest_mapping[] = {
|
||||
@@ -82,7 +82,7 @@ index e04b80cd6a1a215fc87f8fd8d750c3d258c3974f..8fdf1c624794f568bfc77b7b6b0c510b
|
||||
|
||||
void EVP_MD_do_all(void (*callback)(const EVP_MD *cipher, const char *name,
|
||||
diff --git a/include/openssl/digest.h b/include/openssl/digest.h
|
||||
index b5f76c34efea47fb52f1642c8ca7e8a78c1ae678..b2420a9614453de35e1918d65d42ff95fbf9cf9e 100644
|
||||
index b36c5885a31ff3242ac3104e6d875a008c7c39e4..8fe32508a00263295313e77992e2c208459ca42c 100644
|
||||
--- a/include/openssl/digest.h
|
||||
+++ b/include/openssl/digest.h
|
||||
@@ -48,6 +48,9 @@ OPENSSL_EXPORT const EVP_MD *EVP_blake2b256(void);
|
||||
|
||||
@@ -20,10 +20,10 @@ index 2cdcbc346175eeee69402ecee7f169e61c655199..f7226fe711e4214b216ea2c5173a0212
|
||||
|
||||
case ssl_open_record_error:
|
||||
diff --git a/ssl/ssl_lib.cc b/ssl/ssl_lib.cc
|
||||
index 69f3fe2f5c193a30dd90368048804109db563da3..52393736adee2d50de218ac86c9e7cbcd9d6bf6d 100644
|
||||
index d228b1c3b517e21fb8022c1927b0bc522f46bf78..4a94410d0ea4daabde1397c78c5e5de113398ddf 100644
|
||||
--- a/ssl/ssl_lib.cc
|
||||
+++ b/ssl/ssl_lib.cc
|
||||
@@ -1204,7 +1204,7 @@ int SSL_get_error(const SSL *ssl, int ret_code) {
|
||||
@@ -1205,7 +1205,7 @@ int SSL_get_error(const SSL *ssl, int ret_code) {
|
||||
}
|
||||
|
||||
if (ret_code == 0) {
|
||||
@@ -32,7 +32,7 @@ index 69f3fe2f5c193a30dd90368048804109db563da3..52393736adee2d50de218ac86c9e7cbc
|
||||
return SSL_ERROR_ZERO_RETURN;
|
||||
}
|
||||
// An EOF was observed which violates the protocol, and the underlying
|
||||
@@ -2571,13 +2571,7 @@ void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx) {
|
||||
@@ -2572,13 +2572,7 @@ void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx) {
|
||||
return CRYPTO_get_ex_data(&ctx->ex_data, idx);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ blink_local_frame.patch
|
||||
can_create_window.patch
|
||||
disable_hidden.patch
|
||||
dom_storage_limits.patch
|
||||
render_widget_host_view_base.patch
|
||||
render_widget_host_view_mac.patch
|
||||
webview_cross_drag.patch
|
||||
gin_enable_disable_v8_platform.patch
|
||||
@@ -117,6 +118,7 @@ build_run_reclient_cfg_generator_after_chrome.patch
|
||||
fix_getcursorscreenpoint_wrongly_returns_0_0.patch
|
||||
fix_add_support_for_skipping_first_2_no-op_refreshes_in_thumb_cap.patch
|
||||
refactor_expose_file_system_access_blocklist.patch
|
||||
partially_revert_is_newly_created_to_allow_for_browser_initiated.patch
|
||||
feat_add_support_for_missing_dialog_features_to_shell_dialogs.patch
|
||||
fix_font_face_resolution_when_renderer_is_blocked.patch
|
||||
feat_enable_passing_exit_code_on_service_process_crash.patch
|
||||
@@ -126,6 +128,7 @@ build_allow_electron_mojom_interfaces_to_depend_on_blink.patch
|
||||
osr_shared_texture_remove_keyed_mutex_on_win_dxgi.patch
|
||||
feat_allow_usage_of_sccontentsharingpicker_on_supported_platforms.patch
|
||||
chore_partial_revert_of.patch
|
||||
fix_software_compositing_infinite_loop.patch
|
||||
fix_adjust_headless_mode_handling_in_native_widget.patch
|
||||
refactor_unfilter_unresponsive_events.patch
|
||||
build_disable_thin_lto_mac.patch
|
||||
@@ -137,14 +140,14 @@ ignore_parse_errors_for_resolveshortcutproperties.patch
|
||||
feat_add_signals_when_embedder_cleanup_callbacks_run_for.patch
|
||||
feat_separate_content_settings_callback_for_sync_and_async_clipboard.patch
|
||||
fix_win32_synchronous_spellcheck.patch
|
||||
chore_remove_conflicting_allow_unsafe_libc_calls.patch
|
||||
fix_linter_error.patch
|
||||
chore_grandfather_in_electron_views_and_delegates.patch
|
||||
refactor_patch_electron_permissiontypes_into_blink.patch
|
||||
fix_add_macos_memory_query_fallback_to_avoid_crash.patch
|
||||
revert_enable_crel_for_arm32_targets.patch
|
||||
mac_fix_check_on_ime_reconversion_due_to_invalid_replacement_range.patch
|
||||
fix_osr_stutter_fix_backport_for_electron.patch
|
||||
do_not_check_the_order_of_display_id_order_on_windows.patch
|
||||
make_focus_methods_in_webcontentsviewchildframe_notimplemented.patch
|
||||
cherry-pick-f1e6422a355c.patch
|
||||
fix_resolve_dynamic_background_material_update_issue_on_windows_11.patch
|
||||
feat_add_support_for_embedder_snapshot_validation.patch
|
||||
band-aid_over_an_issue_with_using_deprecated_nsopenpanel_api.patch
|
||||
disable_nsautofillheuristiccontroller_on_macos_26.patch
|
||||
expose_referrerscriptinfo_hostdefinedoptionsindex.patch
|
||||
inspectorpageagent_provisional_frame_speculative_fix.patch
|
||||
fix_release_mouse_buttons_on_focus_loss_on_wayland.patch
|
||||
|
||||
@@ -5,11 +5,12 @@ Subject: fix: improve shortcut text of Accelerator
|
||||
|
||||
This patch makes three changes to Accelerator::GetShortcutText to improve shortcut display text in menus:
|
||||
|
||||
1. F2-F24 accelerators show up as such
|
||||
2. Ctrl-Shift-= and Ctrl-Plus show up as such
|
||||
1. Ctrl-Alt-<Key> accelerators show as Ctrl-Alt-<Key> instead of as Ctrl-<Key>
|
||||
2. F2-F24 accelerators show up as such
|
||||
3. Ctrl-Shift-= and Ctrl-Plus show up as such
|
||||
|
||||
diff --git a/ui/base/accelerators/accelerator.cc b/ui/base/accelerators/accelerator.cc
|
||||
index 5ad9332dd27ceda7d67cd3f571b12218a4415a40..ffe083836c39fb60b4bff1f9fbdd6cebb7fa9d1d 100644
|
||||
index 5590f9d425229d87373c5b53651d2e2d17b779e4..407cbd7e7811e3053e35e26f24e3c049cdd59a46 100644
|
||||
--- a/ui/base/accelerators/accelerator.cc
|
||||
+++ b/ui/base/accelerators/accelerator.cc
|
||||
@@ -12,6 +12,7 @@
|
||||
@@ -20,51 +21,51 @@ index 5ad9332dd27ceda7d67cd3f571b12218a4415a40..ffe083836c39fb60b4bff1f9fbdd6ceb
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/types/cxx23_to_underlying.h"
|
||||
#include "build/build_config.h"
|
||||
@@ -164,6 +165,11 @@ std::u16string Accelerator::GetKeyCodeStringForShortcut() const {
|
||||
@@ -109,6 +110,11 @@ std::u16string Accelerator::GetShortcutText() const {
|
||||
#endif
|
||||
|
||||
if (key_string.empty()) {
|
||||
if (shortcut.empty()) {
|
||||
+ // When a shifted char is explicitly specified, for example Ctrl+Plus,
|
||||
+ // use the shifted char directly.
|
||||
+ if (shifted_char) {
|
||||
+ key_string += *shifted_char;
|
||||
+ shortcut += *shifted_char;
|
||||
+ } else {
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
// Our fallback is to try translate the key code to a regular character
|
||||
// unless it is one of digits (VK_0 to VK_9). Some keyboard
|
||||
@@ -190,6 +196,10 @@ std::u16string Accelerator::GetKeyCodeStringForShortcut() const {
|
||||
@@ -133,6 +139,10 @@ std::u16string Accelerator::GetShortcutText() const {
|
||||
shortcut +=
|
||||
static_cast<std::u16string::value_type>(base::ToUpperASCII(c));
|
||||
}
|
||||
#endif
|
||||
+ }
|
||||
+ if (key_code_ > VKEY_F1 && key_code_ <= VKEY_F24)
|
||||
+ key_string = base::UTF8ToUTF16(
|
||||
+ shortcut = base::UTF8ToUTF16(
|
||||
+ base::StringPrintf("F%d", key_code_ - VKEY_F1 + 1));
|
||||
}
|
||||
|
||||
return key_string;
|
||||
@@ -350,7 +360,7 @@ std::vector<std::u16string> Accelerator::GetLongFormModifiers() const {
|
||||
modifiers.push_back(l10n_util::GetStringUTF16(IDS_APP_CTRL_KEY));
|
||||
}
|
||||
#if BUILDFLAG(IS_MAC)
|
||||
@@ -317,7 +327,7 @@ std::u16string Accelerator::ApplyLongFormModifiers(
|
||||
const std::u16string& shortcut) const {
|
||||
std::u16string result = shortcut;
|
||||
|
||||
- if (IsShiftDown()) {
|
||||
+ if (!shifted_char && IsShiftDown()) {
|
||||
modifiers.push_back(l10n_util::GetStringUTF16(IDS_APP_SHIFT_KEY));
|
||||
result = ApplyModifierToAcceleratorString(result, IDS_APP_SHIFT_KEY);
|
||||
}
|
||||
|
||||
diff --git a/ui/base/accelerators/accelerator.h b/ui/base/accelerators/accelerator.h
|
||||
index e7d5adfac920c97df8bab9bf4ed69a835ee314a9..9aeea7cb4c48d1ccc27304fa99238151b2811c87 100644
|
||||
index 198c7469f410d3516b8a18493c5e4588d02487c2..e4995824ae2f3bb8045a3841a6213a4b315845a8 100644
|
||||
--- a/ui/base/accelerators/accelerator.h
|
||||
+++ b/ui/base/accelerators/accelerator.h
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <vector>
|
||||
#include <utility>
|
||||
|
||||
#include "base/component_export.h"
|
||||
+#include "third_party/abseil-cpp/absl/types/optional.h"
|
||||
#include "base/time/time.h"
|
||||
#include "build/blink_buildflags.h"
|
||||
#include "build/build_config.h"
|
||||
@@ -189,6 +190,8 @@ class COMPONENT_EXPORT(UI_BASE) Accelerator {
|
||||
@@ -185,6 +186,8 @@ class COMPONENT_EXPORT(UI_BASE) Accelerator {
|
||||
return interrupted_by_mouse_event_;
|
||||
}
|
||||
|
||||
@@ -72,4 +73,4 @@ index e7d5adfac920c97df8bab9bf4ed69a835ee314a9..9aeea7cb4c48d1ccc27304fa99238151
|
||||
+
|
||||
private:
|
||||
friend class AcceleratorTestMac;
|
||||
std::vector<std::u16string> GetLongFormModifiers() const;
|
||||
std::u16string ApplyLongFormModifiers(const std::u16string& shortcut) const;
|
||||
|
||||
@@ -10,12 +10,12 @@ Allows Electron to restore WER when ELECTRON_DEFAULT_ERROR_MODE is set.
|
||||
This should be upstreamed.
|
||||
|
||||
diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
|
||||
index 5cf9e02f97e1378b0b1a55feb007b7d664fc4a84..d1fdf00a1b65fe0f5510608c165df93cf6c13e38 100644
|
||||
index 0d8bb93bf146c3058a30693673f0c23fdea90ae8..55f76337a445345c06531ce05e603db30daf759f 100644
|
||||
--- a/content/gpu/gpu_main.cc
|
||||
+++ b/content/gpu/gpu_main.cc
|
||||
@@ -269,6 +269,10 @@ int GpuMain(MainFunctionParams parameters) {
|
||||
@@ -268,6 +268,10 @@ int GpuMain(MainFunctionParams parameters) {
|
||||
// to the GpuProcessHost once the GpuServiceImpl has started.
|
||||
viz::GpuLogMessageManager::GetInstance()->InstallPreInitializeLogHandler();
|
||||
viz::GpuServiceImpl::InstallPreInitializeLogHandler();
|
||||
|
||||
+ auto* client = GetContentClient()->gpu();
|
||||
+ if (client)
|
||||
|
||||
@@ -10,7 +10,7 @@ DidCreateScriptContext is called, not all JS APIs are available in the
|
||||
context, which can cause some preload scripts to trip.
|
||||
|
||||
diff --git a/content/public/renderer/render_frame_observer.h b/content/public/renderer/render_frame_observer.h
|
||||
index db655a7b52eacb74f2a8637db36abd87f6b86792..8014cb08e2090a12ea8b9e92cb8f93c96921d400 100644
|
||||
index 44da0544b778d6ff4c14b6f4e8463cb8260d2f0d..8ae8939af4141a684b7a6d50a43e1abb354ea028 100644
|
||||
--- a/content/public/renderer/render_frame_observer.h
|
||||
+++ b/content/public/renderer/render_frame_observer.h
|
||||
@@ -149,6 +149,8 @@ class CONTENT_EXPORT RenderFrameObserver
|
||||
@@ -23,10 +23,10 @@ index db655a7b52eacb74f2a8637db36abd87f6b86792..8014cb08e2090a12ea8b9e92cb8f93c9
|
||||
int32_t world_id) {}
|
||||
virtual void DidClearWindowObject() {}
|
||||
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
||||
index 5c8ffb1462a21f5d798656efc872ba09d6c0de99..2129c419a3ac4d989f2316484779debaebf90d7c 100644
|
||||
index b78c7f64fd5e21a8d89318791bf639ab367d2d48..e8850312da428bcb9ec45b7c8605be1e516b22de 100644
|
||||
--- a/content/renderer/render_frame_impl.cc
|
||||
+++ b/content/renderer/render_frame_impl.cc
|
||||
@@ -4808,6 +4808,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
|
||||
@@ -4800,6 +4800,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
|
||||
observer.DidCreateScriptContext(context, world_id);
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ index 5c8ffb1462a21f5d798656efc872ba09d6c0de99..2129c419a3ac4d989f2316484779deba
|
||||
int world_id) {
|
||||
for (auto& observer : observers_)
|
||||
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
|
||||
index 6a9e696762cc0276f10971933363257591d12bfe..3cd045ed24c47465788c40cc68b050be11ed6f97 100644
|
||||
index a072319de5d16d8004cb33792b2275320627fe6a..f52aa0470ca53c9997961c398d2c79d25967562e 100644
|
||||
--- a/content/renderer/render_frame_impl.h
|
||||
+++ b/content/renderer/render_frame_impl.h
|
||||
@@ -653,6 +653,8 @@ class CONTENT_EXPORT RenderFrameImpl
|
||||
@@ -53,10 +53,10 @@ index 6a9e696762cc0276f10971933363257591d12bfe..3cd045ed24c47465788c40cc68b050be
|
||||
int world_id) override;
|
||||
void DidChangeScrollOffset() override;
|
||||
diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h
|
||||
index f59582f677806c07381bc608f9cca84a7af51a2b..174113297c8e5a5928c1d9166c417cb6328cfc82 100644
|
||||
index fade7618e12889da5a1c3cbe465dec0869634407..53aaf91fe5e68465c9ec8b181e33b5ee95a5a5aa 100644
|
||||
--- a/third_party/blink/public/web/web_local_frame_client.h
|
||||
+++ b/third_party/blink/public/web/web_local_frame_client.h
|
||||
@@ -661,6 +661,9 @@ class BLINK_EXPORT WebLocalFrameClient {
|
||||
@@ -664,6 +664,9 @@ class BLINK_EXPORT WebLocalFrameClient {
|
||||
virtual void DidCreateScriptContext(v8::Local<v8::Context>,
|
||||
int32_t world_id) {}
|
||||
|
||||
@@ -79,10 +79,10 @@ index f7e0144c74f879e9b29871d7c372b99e127966bb..c3cd7b77ed282f212a56d151dc3fbec3
|
||||
if (World().IsMainWorld()) {
|
||||
probe::DidCreateMainWorldContext(GetFrame());
|
||||
diff --git a/third_party/blink/renderer/core/frame/local_frame_client.h b/third_party/blink/renderer/core/frame/local_frame_client.h
|
||||
index e52a535450964b0938b66f7506225fda0cde04a2..841e9b36df4c32040d2b3c71514266fc330c99c7 100644
|
||||
index 8bb6b0465069529f79aaec21792e8b159535b3e9..f9782531c639d07002dda07732750a0007109468 100644
|
||||
--- a/third_party/blink/renderer/core/frame/local_frame_client.h
|
||||
+++ b/third_party/blink/renderer/core/frame/local_frame_client.h
|
||||
@@ -300,6 +300,8 @@ class CORE_EXPORT LocalFrameClient : public FrameClient {
|
||||
@@ -299,6 +299,8 @@ class CORE_EXPORT LocalFrameClient : public FrameClient {
|
||||
|
||||
virtual void DidCreateScriptContext(v8::Local<v8::Context>,
|
||||
int32_t world_id) = 0;
|
||||
@@ -92,7 +92,7 @@ index e52a535450964b0938b66f7506225fda0cde04a2..841e9b36df4c32040d2b3c71514266fc
|
||||
int32_t world_id) = 0;
|
||||
virtual bool AllowScriptExtensions() = 0;
|
||||
diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
|
||||
index 96fc9e0646f943e86e927de2686a8da94625ae6c..30e9721cccd285a347f35e2d7a539547ac41247c 100644
|
||||
index 66cc44003157657c68e90d295f877789395eca8d..19cd8460711d5d5b1b76c9e4cb82ed7fc71b410c 100644
|
||||
--- a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
|
||||
@@ -295,6 +295,13 @@ void LocalFrameClientImpl::DidCreateScriptContext(
|
||||
@@ -110,7 +110,7 @@ index 96fc9e0646f943e86e927de2686a8da94625ae6c..30e9721cccd285a347f35e2d7a539547
|
||||
v8::Local<v8::Context> context,
|
||||
int32_t world_id) {
|
||||
diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.h b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
|
||||
index 5dbc9c1f5f45c8753dd5510ffad2c5d4c20c814b..4223ba0db6c267a4574ab4a76c5a6f365223416c 100644
|
||||
index 4c7375a27a22f04694e14fecc17d633734d4cccc..ea2a32b151aaf07b5704e463d01714eb41680afb 100644
|
||||
--- a/third_party/blink/renderer/core/frame/local_frame_client_impl.h
|
||||
+++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
|
||||
@@ -82,6 +82,8 @@ class CORE_EXPORT LocalFrameClientImpl final : public LocalFrameClient {
|
||||
@@ -123,10 +123,10 @@ index 5dbc9c1f5f45c8753dd5510ffad2c5d4c20c814b..4223ba0db6c267a4574ab4a76c5a6f36
|
||||
int32_t world_id) override;
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/loader/empty_clients.h b/third_party/blink/renderer/core/loader/empty_clients.h
|
||||
index 069ccf925bc0c6f1a5b707670cc3c931dd2a25a9..49ccc167276ed544c800483c4a8655b254304ee8 100644
|
||||
index 286d95397da7b90ba28b4c4faaae26d6ab71a496..23fd67571152897b3bc93fde8e98e1d554cce275 100644
|
||||
--- a/third_party/blink/renderer/core/loader/empty_clients.h
|
||||
+++ b/third_party/blink/renderer/core/loader/empty_clients.h
|
||||
@@ -418,6 +418,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient {
|
||||
@@ -417,6 +417,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient {
|
||||
|
||||
void DidCreateScriptContext(v8::Local<v8::Context>,
|
||||
int32_t world_id) override {}
|
||||
|
||||
@@ -7,7 +7,7 @@ Ensure that licenses for the dependencies introduced by Electron
|
||||
are included in `LICENSES.chromium.html`
|
||||
|
||||
diff --git a/tools/licenses/licenses.py b/tools/licenses/licenses.py
|
||||
index b0807ee3d8ebcf34f0d740362aa46c8631562d38..118d200b74953c0068ad59300ccc0e3041d77a10 100755
|
||||
index 7b948007755d306babea73498c17031c437ae6dc..adcfad8931c314f86d26347ccda438af452b8167 100755
|
||||
--- a/tools/licenses/licenses.py
|
||||
+++ b/tools/licenses/licenses.py
|
||||
@@ -337,6 +337,31 @@ SPECIAL_CASES = {
|
||||
|
||||
@@ -10,7 +10,7 @@ usage of BrowserList and Browser as we subclass related methods and use our
|
||||
WindowList.
|
||||
|
||||
diff --git a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
|
||||
index afd58dd8c32582c17a3a9508f0755ac894022a40..7034cb00d27e2c6ca06d89ae59365934762a402b 100644
|
||||
index 628fe5557f963c52cbe0c5b24c6e06aaa81f9677..868f5eb60c35dfaa0a4e33e7f175743848e0cc2e 100644
|
||||
--- a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
|
||||
+++ b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
|
||||
@@ -48,6 +48,7 @@
|
||||
@@ -20,8 +20,8 @@ index afd58dd8c32582c17a3a9508f0755ac894022a40..7034cb00d27e2c6ca06d89ae59365934
|
||||
+#include "electron/shell/browser/electron_browser_context.h"
|
||||
#include "ui/accessibility/accessibility_features.h"
|
||||
#include "ui/accessibility/ax_updates_and_events.h"
|
||||
#include "ui/accessibility/platform/ax_platform.h"
|
||||
@@ -174,7 +175,7 @@ base::Value::Dict BuildTargetDescriptor(content::RenderViewHost* rvh) {
|
||||
#include "ui/accessibility/platform/ax_platform_node.h"
|
||||
@@ -171,7 +172,7 @@ base::Value::Dict BuildTargetDescriptor(content::RenderViewHost* rvh) {
|
||||
rvh->GetRoutingID(), accessibility_mode);
|
||||
}
|
||||
|
||||
@@ -30,17 +30,17 @@ index afd58dd8c32582c17a3a9508f0755ac894022a40..7034cb00d27e2c6ca06d89ae59365934
|
||||
base::Value::Dict BuildTargetDescriptor(Browser* browser) {
|
||||
base::Value::Dict target_data;
|
||||
target_data.Set(kSessionIdField, browser->session_id().id());
|
||||
@@ -198,7 +199,7 @@ void HandleAccessibilityRequestCallback(
|
||||
auto& browser_accessibility_state =
|
||||
*content::BrowserAccessibilityState::GetInstance();
|
||||
@@ -192,7 +193,7 @@ void HandleAccessibilityRequestCallback(
|
||||
DCHECK(ShouldHandleAccessibilityRequestCallback(path));
|
||||
|
||||
base::Value::Dict data;
|
||||
- PrefService* pref = Profile::FromBrowserContext(current_context)->GetPrefs();
|
||||
+ PrefService* pref = static_cast<electron::ElectronBrowserContext*>(current_context)->prefs();
|
||||
ui::AXMode mode = browser_accessibility_state.GetAccessibilityMode();
|
||||
bool native = mode.has_mode(ui::AXMode::kNativeAPIs);
|
||||
bool web = mode.has_mode(ui::AXMode::kWebContents);
|
||||
@@ -259,7 +260,7 @@ void HandleAccessibilityRequestCallback(
|
||||
data.Set(kIsScreenReaderActive, is_screen_reader_active);
|
||||
ui::AXMode mode =
|
||||
content::BrowserAccessibilityState::GetInstance()->GetAccessibilityMode();
|
||||
bool is_a11y_allowed = content::BrowserAccessibilityState::GetInstance()
|
||||
@@ -221,7 +222,7 @@ void HandleAccessibilityRequestCallback(
|
||||
data.Set(kPDFPrinting, pdf_printing ? kOn : kOff);
|
||||
|
||||
std::string pref_api_type =
|
||||
- pref->GetString(prefs::kShownAccessibilityApiType);
|
||||
@@ -48,7 +48,7 @@ index afd58dd8c32582c17a3a9508f0755ac894022a40..7034cb00d27e2c6ca06d89ae59365934
|
||||
bool pref_api_type_supported = false;
|
||||
|
||||
std::vector<ui::AXApiType::Type> supported_api_types =
|
||||
@@ -327,11 +328,11 @@ void HandleAccessibilityRequestCallback(
|
||||
@@ -288,11 +289,11 @@ void HandleAccessibilityRequestCallback(
|
||||
data.Set(kPagesField, std::move(page_list));
|
||||
|
||||
base::Value::List browser_list;
|
||||
@@ -62,7 +62,7 @@ index afd58dd8c32582c17a3a9508f0755ac894022a40..7034cb00d27e2c6ca06d89ae59365934
|
||||
data.Set(kBrowsersField, std::move(browser_list));
|
||||
|
||||
std::string json_string;
|
||||
@@ -805,7 +806,8 @@ void AccessibilityUIMessageHandler::SetGlobalString(
|
||||
@@ -762,7 +763,8 @@ void AccessibilityUIMessageHandler::SetGlobalString(
|
||||
const std::string value = CheckJSValue(data.FindString(kValueField));
|
||||
|
||||
if (string_name == kApiTypeField) {
|
||||
@@ -72,7 +72,7 @@ index afd58dd8c32582c17a3a9508f0755ac894022a40..7034cb00d27e2c6ca06d89ae59365934
|
||||
pref->SetString(prefs::kShownAccessibilityApiType, value);
|
||||
}
|
||||
}
|
||||
@@ -859,7 +861,8 @@ void AccessibilityUIMessageHandler::RequestWebContentsTree(
|
||||
@@ -816,7 +818,8 @@ void AccessibilityUIMessageHandler::RequestWebContentsTree(
|
||||
AXPropertyFilter::ALLOW_EMPTY);
|
||||
AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY);
|
||||
|
||||
@@ -82,7 +82,7 @@ index afd58dd8c32582c17a3a9508f0755ac894022a40..7034cb00d27e2c6ca06d89ae59365934
|
||||
ui::AXApiType::Type api_type =
|
||||
ui::AXApiType::From(pref->GetString(prefs::kShownAccessibilityApiType));
|
||||
std::string accessibility_contents =
|
||||
@@ -886,6 +889,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
|
||||
@@ -843,6 +846,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
|
||||
AXPropertyFilter::ALLOW_EMPTY);
|
||||
AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY);
|
||||
|
||||
@@ -90,7 +90,7 @@ index afd58dd8c32582c17a3a9508f0755ac894022a40..7034cb00d27e2c6ca06d89ae59365934
|
||||
for (Browser* browser : *BrowserList::GetInstance()) {
|
||||
if (browser->session_id().id() == session_id) {
|
||||
base::Value::Dict result = BuildTargetDescriptor(browser);
|
||||
@@ -898,6 +902,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
|
||||
@@ -855,6 +859,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -98,7 +98,7 @@ index afd58dd8c32582c17a3a9508f0755ac894022a40..7034cb00d27e2c6ca06d89ae59365934
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
// No browser with the specified |session_id| was found.
|
||||
base::Value::Dict result;
|
||||
@@ -941,11 +946,13 @@ void AccessibilityUIMessageHandler::StopRecording(
|
||||
@@ -898,11 +903,13 @@ void AccessibilityUIMessageHandler::StopRecording(
|
||||
}
|
||||
|
||||
ui::AXApiType::Type AccessibilityUIMessageHandler::GetRecordingApiType() {
|
||||
@@ -115,7 +115,7 @@ index afd58dd8c32582c17a3a9508f0755ac894022a40..7034cb00d27e2c6ca06d89ae59365934
|
||||
// Check to see if it is in the supported types list.
|
||||
if (std::find(supported_types.begin(), supported_types.end(), api_type) ==
|
||||
supported_types.end()) {
|
||||
@@ -1015,8 +1022,11 @@ void AccessibilityUIMessageHandler::RequestAccessibilityEvents(
|
||||
@@ -972,8 +979,11 @@ void AccessibilityUIMessageHandler::RequestAccessibilityEvents(
|
||||
// static
|
||||
void AccessibilityUIMessageHandler::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: allow disabling blink scheduler throttling per RenderView
|
||||
This allows us to disable throttling for hidden windows.
|
||||
|
||||
diff --git a/content/browser/renderer_host/navigation_controller_impl_unittest.cc b/content/browser/renderer_host/navigation_controller_impl_unittest.cc
|
||||
index 74e94044c3e18f513eb2ffa051039270f9bd56a1..f824ec4005b6640bdd3d35382f4dddf975893ea9 100644
|
||||
index 6c679ef877067297ec3bf1a23af6c03a2af8dcf5..1ac93433189580c13b69cd52ce62681a8620da3d 100644
|
||||
--- a/content/browser/renderer_host/navigation_controller_impl_unittest.cc
|
||||
+++ b/content/browser/renderer_host/navigation_controller_impl_unittest.cc
|
||||
@@ -167,6 +167,12 @@ class MockPageBroadcast : public blink::mojom::PageBroadcast {
|
||||
@@ -168,6 +168,12 @@ class MockPageBroadcast : public blink::mojom::PageBroadcast {
|
||||
(network::mojom::AttributionSupport support),
|
||||
(override));
|
||||
|
||||
@@ -23,10 +23,10 @@ index 74e94044c3e18f513eb2ffa051039270f9bd56a1..f824ec4005b6640bdd3d35382f4dddf9
|
||||
return receiver_.BindNewEndpointAndPassDedicatedRemote();
|
||||
}
|
||||
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
|
||||
index a0335fef252b46976ea2caf95e1bf3ef7d52585d..0a97013b60fcfeb8fac55d686b107b1175c9be04 100644
|
||||
index 6c1e46e58d975137eee6c0fd7b01d2ae970a2e10..5ca29616369e76e298eb03188e18ca545c76a162 100644
|
||||
--- a/content/browser/renderer_host/render_view_host_impl.cc
|
||||
+++ b/content/browser/renderer_host/render_view_host_impl.cc
|
||||
@@ -760,6 +760,11 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) {
|
||||
@@ -765,6 +765,11 @@ void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) {
|
||||
GetWidget()->GetAssociatedFrameWidget()->SetBackgroundOpaque(opaque);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ index a0335fef252b46976ea2caf95e1bf3ef7d52585d..0a97013b60fcfeb8fac55d686b107b11
|
||||
return is_active();
|
||||
}
|
||||
diff --git a/content/browser/renderer_host/render_view_host_impl.h b/content/browser/renderer_host/render_view_host_impl.h
|
||||
index 6eade0d29bc266a6a8928e768c923687bd12e656..53465bc76a22ae97ba4602d02a41f52e194af68b 100644
|
||||
index 56e52f079d1ad7c7a22764b976f0c8b2cc48dff2..1231fe522ad103e94d3c30ad7d5e5d23df9b3554 100644
|
||||
--- a/content/browser/renderer_host/render_view_host_impl.h
|
||||
+++ b/content/browser/renderer_host/render_view_host_impl.h
|
||||
@@ -135,6 +135,7 @@ class CONTENT_EXPORT RenderViewHostImpl
|
||||
@@ -51,7 +51,7 @@ index 6eade0d29bc266a6a8928e768c923687bd12e656..53465bc76a22ae97ba4602d02a41f52e
|
||||
void SendRendererPreferencesToRenderer(
|
||||
const blink::RendererPreferences& preferences);
|
||||
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
|
||||
index a13dd521b7263c66c94dac3d3caf6ebbed92d229..ce9295ee37ad58aab9f18f80daa72f91d5e0c27e 100644
|
||||
index d719b546b8c3c59003698b26dead065da7d76341..95a52f1cc2024e4a9cd694429d5304a5860a1c1e 100644
|
||||
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
|
||||
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
|
||||
@@ -579,8 +579,8 @@ void RenderWidgetHostViewAura::ShowImpl(PageVisibilityState page_visibility) {
|
||||
@@ -80,10 +80,10 @@ index 20ca763ff7f55e8176b77349b41917b11e051ae6..a50c122064b5f0092f57e3d508fb1938
|
||||
// This interface should only be implemented inside content.
|
||||
friend class RenderViewHostImpl;
|
||||
diff --git a/content/test/test_page_broadcast.h b/content/test/test_page_broadcast.h
|
||||
index 3f4fdfcdf2f701a394e182bd61baf226338ef7f8..f2faa1225e8ca6abb190e6f7a0775545fa3f785d 100644
|
||||
index 913e465918750df6852c3ede34a75ecebab8b1fa..c81d6ad098cf977cbd8933721e539c52056c258b 100644
|
||||
--- a/content/test/test_page_broadcast.h
|
||||
+++ b/content/test/test_page_broadcast.h
|
||||
@@ -51,6 +51,7 @@ class TestPageBroadcast : public blink::mojom::PageBroadcast {
|
||||
@@ -50,6 +50,7 @@ class TestPageBroadcast : public blink::mojom::PageBroadcast {
|
||||
network::mojom::AttributionSupport support) override;
|
||||
void UpdateColorProviders(
|
||||
const blink::ColorProviderColorMaps& color_provider_colors) override;
|
||||
@@ -92,10 +92,10 @@ index 3f4fdfcdf2f701a394e182bd61baf226338ef7f8..f2faa1225e8ca6abb190e6f7a0775545
|
||||
mojo::AssociatedReceiver<blink::mojom::PageBroadcast> receiver_;
|
||||
};
|
||||
diff --git a/third_party/blink/public/mojom/page/page.mojom b/third_party/blink/public/mojom/page/page.mojom
|
||||
index b6a4e3609af1f090f1f845d77fa0589e5b178d8a..989b2cf76ce88614b57e75ce2fcace101225f43e 100644
|
||||
index f868a3cc56b49b7fdac9fa1415386bd3a59a3dd7..ac7e92740bf7a61f3d8dcf8feff0fee978ffbfee 100644
|
||||
--- a/third_party/blink/public/mojom/page/page.mojom
|
||||
+++ b/third_party/blink/public/mojom/page/page.mojom
|
||||
@@ -175,4 +175,7 @@ interface PageBroadcast {
|
||||
@@ -173,4 +173,7 @@ interface PageBroadcast {
|
||||
// 2. The ColorProvider associated with the WebContents changes as a result
|
||||
// of theme changes.
|
||||
UpdateColorProviders(ColorProviderColorMaps color_provider_colors);
|
||||
@@ -104,10 +104,10 @@ index b6a4e3609af1f090f1f845d77fa0589e5b178d8a..989b2cf76ce88614b57e75ce2fcace10
|
||||
+ SetSchedulerThrottling(bool allowed);
|
||||
};
|
||||
diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/web/web_view.h
|
||||
index 7c1eb9baabfb9e0f3645421b5cbe467862252638..00d2cd41d795cb550e16fb80944b238252e4e53c 100644
|
||||
index b1689844282d6917b9750fbc6a875848ddf84b70..f1cc159b7c3448a33a6d9e213f8fbd3b47141fb7 100644
|
||||
--- a/third_party/blink/public/web/web_view.h
|
||||
+++ b/third_party/blink/public/web/web_view.h
|
||||
@@ -370,6 +370,7 @@ class BLINK_EXPORT WebView {
|
||||
@@ -371,6 +371,7 @@ class BLINK_EXPORT WebView {
|
||||
// Scheduling -----------------------------------------------------------
|
||||
|
||||
virtual PageScheduler* Scheduler() const = 0;
|
||||
@@ -116,10 +116,10 @@ index 7c1eb9baabfb9e0f3645421b5cbe467862252638..00d2cd41d795cb550e16fb80944b2382
|
||||
// Visibility -----------------------------------------------------------
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
|
||||
index 97141017fa2ca72746d5269d6da2e08201e85972..2390395a3df10aca3510a619e91dab674de60e67 100644
|
||||
index 1af1fa035b3da8967526d704e362ddbc5c3194ac..f470ada1bf84938427fb89f4508e5f56aaeebc1f 100644
|
||||
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
|
||||
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
|
||||
@@ -2469,6 +2469,10 @@ void WebViewImpl::SetPageLifecycleStateInternal(
|
||||
@@ -2466,6 +2466,10 @@ void WebViewImpl::SetPageLifecycleStateInternal(
|
||||
TRACE_EVENT2("navigation", "WebViewImpl::SetPageLifecycleStateInternal",
|
||||
"old_state", old_state, "new_state", new_state);
|
||||
|
||||
@@ -130,7 +130,7 @@ index 97141017fa2ca72746d5269d6da2e08201e85972..2390395a3df10aca3510a619e91dab67
|
||||
bool storing_in_bfcache = new_state->is_in_back_forward_cache &&
|
||||
!old_state->is_in_back_forward_cache;
|
||||
bool restoring_from_bfcache = !new_state->is_in_back_forward_cache &&
|
||||
@@ -3992,10 +3996,23 @@ PageScheduler* WebViewImpl::Scheduler() const {
|
||||
@@ -3989,10 +3993,23 @@ PageScheduler* WebViewImpl::Scheduler() const {
|
||||
return GetPage()->GetPageScheduler();
|
||||
}
|
||||
|
||||
@@ -155,7 +155,7 @@ index 97141017fa2ca72746d5269d6da2e08201e85972..2390395a3df10aca3510a619e91dab67
|
||||
// Do not throttle if the page should be painting.
|
||||
bool is_visible =
|
||||
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h
|
||||
index eaa593b41ec2e9a12fca53eb9925e6b868a4d9f1..8ce3ea0e5d6e5bdff982b956de305047347b4385 100644
|
||||
index 06f7cf79b4526ca3ec7670c234a6bb8faec32f04..b8fe2a9b7b6b4de2a689f3857c7ce44909e6f2dc 100644
|
||||
--- a/third_party/blink/renderer/core/exported/web_view_impl.h
|
||||
+++ b/third_party/blink/renderer/core/exported/web_view_impl.h
|
||||
@@ -448,6 +448,7 @@ class CORE_EXPORT WebViewImpl final : public WebView,
|
||||
|
||||
@@ -8,10 +8,10 @@ WebPreferences of in-process child windows, rather than relying on
|
||||
process-level command line switches, as before.
|
||||
|
||||
diff --git a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
|
||||
index 96bb1f2205a4f81b78626f8c277c0b82a048895b..881e6fa91b25758a3b3523119360bd92b5fc5802 100644
|
||||
index 2612e54a2b0d3c71bd8efe9340bc58c795500140..e590387effc958ba7215e75ea1e2a8173f624d02 100644
|
||||
--- a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
|
||||
+++ b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
|
||||
@@ -151,6 +151,19 @@ bool StructTraits<blink::mojom::WebPreferencesDataView,
|
||||
@@ -148,6 +148,19 @@ bool StructTraits<blink::mojom::WebPreferencesDataView,
|
||||
out->v8_cache_options = data.v8_cache_options();
|
||||
out->record_whole_document = data.record_whole_document();
|
||||
out->stylus_handwriting_enabled = data.stylus_handwriting_enabled();
|
||||
@@ -32,7 +32,7 @@ index 96bb1f2205a4f81b78626f8c277c0b82a048895b..881e6fa91b25758a3b3523119360bd92
|
||||
out->accelerated_video_decode_enabled =
|
||||
data.accelerated_video_decode_enabled();
|
||||
diff --git a/third_party/blink/public/common/web_preferences/web_preferences.h b/third_party/blink/public/common/web_preferences/web_preferences.h
|
||||
index 5c29a554f51023e63948bb7b28fcfdfa02089d66..ce0a19a2a848ac7c3543651a2b4de99dcfc66475 100644
|
||||
index 85f312a9ea1eca0ff7ba4c679fabb3156aabbc0b..a9dc007a93003610d68e3118b4a47a86d4e16f6e 100644
|
||||
--- a/third_party/blink/public/common/web_preferences/web_preferences.h
|
||||
+++ b/third_party/blink/public/common/web_preferences/web_preferences.h
|
||||
@@ -9,6 +9,7 @@
|
||||
@@ -43,7 +43,7 @@ index 5c29a554f51023e63948bb7b28fcfdfa02089d66..ce0a19a2a848ac7c3543651a2b4de99d
|
||||
#include "build/build_config.h"
|
||||
#include "net/nqe/effective_connection_type.h"
|
||||
#include "third_party/blink/public/common/common_export.h"
|
||||
@@ -452,6 +453,20 @@ struct BLINK_COMMON_EXPORT WebPreferences {
|
||||
@@ -451,6 +452,20 @@ struct BLINK_COMMON_EXPORT WebPreferences {
|
||||
// WebView and by `kWebPayments` feature flag everywhere.
|
||||
bool payment_request_enabled = false;
|
||||
|
||||
@@ -65,7 +65,7 @@ index 5c29a554f51023e63948bb7b28fcfdfa02089d66..ce0a19a2a848ac7c3543651a2b4de99d
|
||||
// chrome, except for the cases where it would require lots of extra work for
|
||||
// the embedder to use the same default value.
|
||||
diff --git a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
|
||||
index ce4074d601eca1d9ca6b30a8b5904366a47d0595..08cd7f1858a63d0d33fee5d345fefce19d2add93 100644
|
||||
index 9b7bc55a0e61de85688b2370012e14f8b47c43ab..63b035046ac3d565e5ee1f3a3c559da88d81f059 100644
|
||||
--- a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
|
||||
+++ b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
|
||||
@@ -8,6 +8,7 @@
|
||||
@@ -76,7 +76,7 @@ index ce4074d601eca1d9ca6b30a8b5904366a47d0595..08cd7f1858a63d0d33fee5d345fefce1
|
||||
#include "mojo/public/cpp/bindings/struct_traits.h"
|
||||
#include "net/nqe/effective_connection_type.h"
|
||||
#include "third_party/blink/public/common/common_export.h"
|
||||
@@ -443,6 +444,52 @@ struct BLINK_COMMON_EXPORT StructTraits<blink::mojom::WebPreferencesDataView,
|
||||
@@ -437,6 +438,52 @@ struct BLINK_COMMON_EXPORT StructTraits<blink::mojom::WebPreferencesDataView,
|
||||
return r.stylus_handwriting_enabled;
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ index ce4074d601eca1d9ca6b30a8b5904366a47d0595..08cd7f1858a63d0d33fee5d345fefce1
|
||||
return r.cookie_enabled;
|
||||
}
|
||||
diff --git a/third_party/blink/public/mojom/webpreferences/web_preferences.mojom b/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
|
||||
index 3d0dcedeb104f72a5b7022c990ed9c9fa1989cf6..2963bb74ecdceaf340a00ee984b9a3a65c25cfc9 100644
|
||||
index e7c3bc263844c0ddeb9011440e2c0fd8f848ca27..142dae3834fe96f120727ef9ffe1250607bcadec 100644
|
||||
--- a/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
|
||||
+++ b/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
|
||||
@@ -8,9 +8,11 @@ import "third_party/blink/public/mojom/css/preferred_color_scheme.mojom";
|
||||
@@ -145,7 +145,7 @@ index 3d0dcedeb104f72a5b7022c990ed9c9fa1989cf6..2963bb74ecdceaf340a00ee984b9a3a6
|
||||
enum PointerType {
|
||||
kPointerNone = 1, // 1 << 0
|
||||
kPointerFirstType = kPointerNone,
|
||||
@@ -219,6 +221,19 @@ struct WebPreferences {
|
||||
@@ -218,6 +220,19 @@ struct WebPreferences {
|
||||
// If true, stylus handwriting recognition to text input will be available in
|
||||
// editable input fields which are non-password type.
|
||||
bool stylus_handwriting_enabled;
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: allow new privileges in unsandboxed child processes
|
||||
This allows unsandboxed child process to launch setuid processes on Linux.
|
||||
|
||||
diff --git a/content/browser/child_process_launcher_helper_linux.cc b/content/browser/child_process_launcher_helper_linux.cc
|
||||
index 75cafbe0dbd7d4b3dca4c8fe56e17cd836123588..8f551374e1ffc729081f7d50e73671313c641bb6 100644
|
||||
index add20a2f81d66e51e1be5a3f3b35ef6b340b4cc3..31a2a14a95540477297943df9b09b1e4659a884d 100644
|
||||
--- a/content/browser/child_process_launcher_helper_linux.cc
|
||||
+++ b/content/browser/child_process_launcher_helper_linux.cc
|
||||
@@ -64,6 +64,15 @@ bool ChildProcessLauncherHelper::BeforeLaunchOnLauncherThread(
|
||||
|
||||
@@ -15,7 +15,7 @@ Refs changes in:
|
||||
This patch reverts the changes to fix associated crashes in Electron.
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/frame/frame.cc b/third_party/blink/renderer/core/frame/frame.cc
|
||||
index c9f34fa47702504ccdefb8d61c55f5eaae501085..26df03d777c9ea487cae37f3df91d1df233b75e2 100644
|
||||
index 2072f6b14289b1f3a76dbccc98f29aa178c1c35c..d7017437a7e7e6ac130677e52731d0482bf20664 100644
|
||||
--- a/third_party/blink/renderer/core/frame/frame.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/frame.cc
|
||||
@@ -134,14 +134,6 @@ bool Frame::Detach(FrameDetachType type) {
|
||||
@@ -33,7 +33,7 @@ index c9f34fa47702504ccdefb8d61c55f5eaae501085..26df03d777c9ea487cae37f3df91d1df
|
||||
if (type == FrameDetachType::kRemove) {
|
||||
if (provisional_frame_) {
|
||||
provisional_frame_->Detach(FrameDetachType::kRemove);
|
||||
@@ -166,6 +158,14 @@ bool Frame::Detach(FrameDetachType type) {
|
||||
@@ -165,6 +157,14 @@ bool Frame::Detach(FrameDetachType type) {
|
||||
GetWindowProxyManager()->ClearForSwap();
|
||||
}
|
||||
|
||||
@@ -49,10 +49,10 @@ index c9f34fa47702504ccdefb8d61c55f5eaae501085..26df03d777c9ea487cae37f3df91d1df
|
||||
// its owning reference back to our owning LocalFrame.
|
||||
client_->Detached(type);
|
||||
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
index 43759ed40b3356a838e30772b815d51d20136707..afa8d181e836739f4136cf51ae323f29b0b25ebe 100644
|
||||
index 84ce7a810816d8229f15b23a2f8bf36c00989378..f721051f30f517c863a935765d5dcd4760ab461e 100644
|
||||
--- a/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
@@ -727,10 +727,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {
|
||||
@@ -750,10 +750,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {
|
||||
}
|
||||
DCHECK(!view_ || !view_->IsAttached());
|
||||
|
||||
@@ -63,7 +63,7 @@ index 43759ed40b3356a838e30772b815d51d20136707..afa8d181e836739f4136cf51ae323f29
|
||||
if (!Client())
|
||||
return false;
|
||||
|
||||
@@ -784,6 +780,11 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {
|
||||
@@ -807,6 +803,11 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {
|
||||
DCHECK(!view_->IsAttached());
|
||||
Client()->WillBeDetached();
|
||||
|
||||
|
||||
@@ -8,14 +8,14 @@ categories in use are known / declared. This patch is required for us
|
||||
to introduce a new Electron category for Electron-specific tracing.
|
||||
|
||||
diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h
|
||||
index 31c41cb8e8cc0d0c43811ce7e97a03f4feb38feb..8adb5a1d415e3424f41d87b19100eedcb55c9e61 100644
|
||||
index 19e3f2fc7b3e08f690eb8c3b56c5b5222f645691..b0b7af16b6719a08ab7908ab4d96a5d2c3ea0340 100644
|
||||
--- a/base/trace_event/builtin_categories.h
|
||||
+++ b/base/trace_event/builtin_categories.h
|
||||
@@ -118,6 +118,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS(
|
||||
@@ -91,6 +91,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS(
|
||||
perfetto::Category("drm"),
|
||||
perfetto::Category("drmcursor"),
|
||||
perfetto::Category("dwrite"),
|
||||
+ perfetto::Category("electron"),
|
||||
perfetto::Category("evdev").SetTags("input"),
|
||||
perfetto::Category("evdev"),
|
||||
perfetto::Category("event"),
|
||||
perfetto::Category("exo"),
|
||||
|
||||
@@ -10,10 +10,10 @@ Needed for:
|
||||
2) //electron/shell/common:web_contents_utility
|
||||
|
||||
diff --git a/content/public/common/BUILD.gn b/content/public/common/BUILD.gn
|
||||
index 35fc76646e912075c744b48b5ddec73f885ea5e8..6ce2825bf558d5f50b9df45227284103375aa2e4 100644
|
||||
index 55921115094f7437ce10db1cac1debe9adc10ea9..7040d83af340f052f5cab4437433e3dd0a688390 100644
|
||||
--- a/content/public/common/BUILD.gn
|
||||
+++ b/content/public/common/BUILD.gn
|
||||
@@ -381,6 +381,8 @@ mojom("interfaces") {
|
||||
@@ -379,6 +379,8 @@ mojom("interfaces") {
|
||||
"//content/common/*",
|
||||
"//extensions/common:mojom",
|
||||
"//extensions/common:mojom_blink",
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: build: allow electron to use exec_script
|
||||
This is similar to the //build usecase so we're OK adding ourselves here
|
||||
|
||||
diff --git a/.gn b/.gn
|
||||
index ae58a0b0a64ae1fdb3f9cd8587041d71a121c6b9..0ed56526002b12deb6d29f3dd23a0d74d8e7473c 100644
|
||||
index 54d2631ec203207f44038a36439613709fec1669..d7e197dc75dd711b1b2eb179a58de9030bde0465 100644
|
||||
--- a/.gn
|
||||
+++ b/.gn
|
||||
@@ -167,4 +167,27 @@ exec_script_allowlist =
|
||||
@@ -173,4 +173,27 @@ exec_script_allowlist =
|
||||
|
||||
"//tools/grit/grit_rule.gni",
|
||||
"//tools/gritsettings/BUILD.gn",
|
||||
|
||||
@@ -11,7 +11,7 @@ This patch can (and should) be removed when we can prevent those symbols
|
||||
from being stripped in the release build.
|
||||
|
||||
diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
|
||||
index a47aa1cf4fb55c91908e15f1c406d79a48697cf8..a05a20229749e032e6d26d87177aebc4955ce081 100644
|
||||
index 5b98b4aedab5b700d21d6a8eac11c81cc13f6b39..8ee6f54f67c300a52074f33f9d6fe08a68e3be4b 100644
|
||||
--- a/build/config/compiler/compiler.gni
|
||||
+++ b/build/config/compiler/compiler.gni
|
||||
@@ -79,7 +79,7 @@ declare_args() {
|
||||
|
||||
@@ -11,10 +11,10 @@ if we ever align our .pak file generation with Chrome we can remove this
|
||||
patch.
|
||||
|
||||
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
|
||||
index 72c637f9f3ba48bb7ab06678fe833f33d2cfddc8..e9c8ae3cdb7ba400c59cc469a1a80b5063738ffa 100644
|
||||
index 95c73dcb082999d0a85d82f1fe330d27c88055ca..64cd976eba849435779b280b2941f9150b5d1d36 100644
|
||||
--- a/chrome/BUILD.gn
|
||||
+++ b/chrome/BUILD.gn
|
||||
@@ -197,11 +197,16 @@ if (!is_android && !is_mac) {
|
||||
@@ -200,11 +200,16 @@ if (!is_android && !is_mac) {
|
||||
"common/crash_keys.h",
|
||||
]
|
||||
|
||||
@@ -33,10 +33,10 @@ index 72c637f9f3ba48bb7ab06678fe833f33d2cfddc8..e9c8ae3cdb7ba400c59cc469a1a80b50
|
||||
"//base",
|
||||
"//build:branding_buildflags",
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
index 36fe07a692e9be5b99f9e59157b90963a6485f8b..d8cf68e953213f309537e74d954d874950ede24a 100644
|
||||
index b5783087429ee651d21e04f6f5f11f5cb6f015a8..dae1cca8cee4fccfed3183aca1ba7cc32652ea58 100644
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -4715,7 +4715,7 @@ static_library("browser") {
|
||||
@@ -4599,7 +4599,7 @@ static_library("browser") {
|
||||
[ "//chrome/browser/ui/webui/signin:profile_impl" ]
|
||||
}
|
||||
|
||||
@@ -46,10 +46,10 @@ index 36fe07a692e9be5b99f9e59157b90963a6485f8b..d8cf68e953213f309537e74d954d8749
|
||||
# than here in :chrome_dll.
|
||||
deps += [ "//chrome:packed_resources_integrity_header" ]
|
||||
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
|
||||
index 6fba5b32b266455d308ac11e2711588b78092c33..5905f62c8b516483026ee95a3dea4cda5f1161b1 100644
|
||||
index 4dac075ed00691be14546b8bcd8f1b14fdc038b1..593ef717845c2c4c98aacd077d0696de207cff29 100644
|
||||
--- a/chrome/test/BUILD.gn
|
||||
+++ b/chrome/test/BUILD.gn
|
||||
@@ -7243,9 +7243,12 @@ test("unit_tests") {
|
||||
@@ -7096,9 +7096,12 @@ test("unit_tests") {
|
||||
"//chrome/notification_helper",
|
||||
]
|
||||
|
||||
@@ -63,7 +63,7 @@ index 6fba5b32b266455d308ac11e2711588b78092c33..5905f62c8b516483026ee95a3dea4cda
|
||||
"//chrome//services/util_win:unit_tests",
|
||||
"//chrome/app:chrome_dll_resources",
|
||||
"//chrome/app:win_unit_tests",
|
||||
@@ -8209,6 +8212,10 @@ test("unit_tests") {
|
||||
@@ -8067,6 +8070,10 @@ test("unit_tests") {
|
||||
"../browser/performance_manager/policies/background_tab_loading_policy_unittest.cc",
|
||||
]
|
||||
|
||||
@@ -74,8 +74,8 @@ index 6fba5b32b266455d308ac11e2711588b78092c33..5905f62c8b516483026ee95a3dea4cda
|
||||
sources += [
|
||||
# The importer code is not used on Android.
|
||||
"../common/importer/firefox_importer_utils_unittest.cc",
|
||||
@@ -8266,7 +8273,6 @@ test("unit_tests") {
|
||||
# TODO(crbug.com/417513088): Maybe merge with the non-android `deps` declaration above?
|
||||
@@ -8122,7 +8129,6 @@ test("unit_tests") {
|
||||
# Non-android deps for "unit_tests" target.
|
||||
deps += [
|
||||
"../browser/screen_ai:screen_ai_install_state",
|
||||
- "//chrome:packed_resources_integrity_header",
|
||||
|
||||
@@ -7,7 +7,7 @@ These are variables we add to the root BUILDCONFIG so that they're available
|
||||
everywhere, without having to import("//electron/.../flags.gni").
|
||||
|
||||
diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
|
||||
index 706f0f32fe3d5b43692167ce8013699575fbf7b7..40ea2de7a32d7b720ebaa21f6bea4c46a9a20697 100644
|
||||
index a9d2caeb1c92e102daa9a8bd5bdc5a55af418cf4..efb5bf91722d4b18ae704ebf7355a13f253bef20 100644
|
||||
--- a/build/config/BUILDCONFIG.gn
|
||||
+++ b/build/config/BUILDCONFIG.gn
|
||||
@@ -123,6 +123,9 @@ if (current_os == "") {
|
||||
|
||||
@@ -7,10 +7,10 @@ Build libc++ as static library to compile and pass
|
||||
nan tests
|
||||
|
||||
diff --git a/buildtools/third_party/libc++/BUILD.gn b/buildtools/third_party/libc++/BUILD.gn
|
||||
index 78e270c731f1d40adb231fd16877f83ce1e34e31..cf15334412329f8e0dbdf11e744a425d6d571c7f 100644
|
||||
index d2e6e482d82782d1004e1f8ea377e69cbbe2677b..2bb9ec60180cf80be6e565081d56ea747820196b 100644
|
||||
--- a/buildtools/third_party/libc++/BUILD.gn
|
||||
+++ b/buildtools/third_party/libc++/BUILD.gn
|
||||
@@ -423,6 +423,7 @@ target(libcxx_target_type, "libc++") {
|
||||
@@ -272,6 +272,7 @@ target(libcxx_target_type, "libc++") {
|
||||
# need to explicitly depend on libc++.
|
||||
visibility = [
|
||||
"//build/config:common_deps",
|
||||
|
||||
@@ -5,20 +5,16 @@ Subject: build: make libcxx_abi_unstable false for electron
|
||||
|
||||
https://nornagon.medium.com/a-libc-odyssey-973e51649063
|
||||
|
||||
See also https://github.com/electron/electron/issues/45810#issuecomment-2691417213.
|
||||
|
||||
diff --git a/buildtools/third_party/libc++/__config_site b/buildtools/third_party/libc++/__config_site
|
||||
index 67075bd8b4d42e6e6d651cb0988d64eccb64cc23..ddf1693002aa171b3d91aa4ef08f5b360e4adddc 100644
|
||||
index 67075bd8b4d42e6e6d651cb0988d64eccb64cc23..e240ff6fff94a6cebf8662996712fe7eb22e5fff 100644
|
||||
--- a/buildtools/third_party/libc++/__config_site
|
||||
+++ b/buildtools/third_party/libc++/__config_site
|
||||
@@ -18,7 +18,9 @@
|
||||
@@ -18,7 +18,7 @@
|
||||
// _LIBCPP_ABI_NAMESPACE to a shorter value.
|
||||
#define _LIBCPP_ABI_NAMESPACE __Cr
|
||||
|
||||
-#define _LIBCPP_ABI_VERSION 2
|
||||
+#define _LIBCPP_ABI_VERSION 1
|
||||
+#define _LIBCPP_ABI_USE_WRAP_ITER_IN_STD_ARRAY
|
||||
+#define _LIBCPP_ABI_USE_WRAP_ITER_IN_STD_STRING_VIEW
|
||||
|
||||
#define _LIBCPP_ABI_FORCE_ITANIUM 0
|
||||
#define _LIBCPP_ABI_FORCE_MICROSOFT 0
|
||||
|
||||
@@ -9,10 +9,10 @@ potentially prevent a window from being created.
|
||||
TODO(loc): this patch is currently broken.
|
||||
|
||||
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
|
||||
index 23cd457563d7d534e924428ac6da2b475e579326..d8698f9f37eefa50bf4e29a164b2cc302c32ecdf 100644
|
||||
index 775a132ea523c509433a3a9560fe3a5419dfaa3f..2b99d0b584760ab3f51561c030ca199055bacd26 100644
|
||||
--- a/content/browser/renderer_host/render_frame_host_impl.cc
|
||||
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
|
||||
@@ -9725,6 +9725,7 @@ void RenderFrameHostImpl::CreateNewWindow(
|
||||
@@ -9652,6 +9652,7 @@ void RenderFrameHostImpl::CreateNewWindow(
|
||||
last_committed_origin_, params->window_container_type,
|
||||
params->target_url, params->referrer.To<Referrer>(),
|
||||
params->frame_name, params->disposition, *params->features,
|
||||
@@ -21,23 +21,12 @@ index 23cd457563d7d534e924428ac6da2b475e579326..d8698f9f37eefa50bf4e29a164b2cc30
|
||||
&no_javascript_access);
|
||||
|
||||
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
||||
index f3204a39253652a906f8976c666395e8afa033a8..d9b5a70e0c7acfaac312663ba336580eb062fae4 100644
|
||||
index 2896b2b15d9c22e27c37719867c20213b9983984..83c5918c1bc0417ed3c744828b9f93e7c00d22c3 100644
|
||||
--- a/content/browser/web_contents/web_contents_impl.cc
|
||||
+++ b/content/browser/web_contents/web_contents_impl.cc
|
||||
@@ -5238,6 +5238,10 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
create_params.initially_hidden = renderer_started_hidden;
|
||||
create_params.initial_popup_url = params.target_url;
|
||||
|
||||
+ // Potentially allow the delegate to override the create_params.
|
||||
+ if (delegate_)
|
||||
+ delegate_->MaybeOverrideCreateParamsForNewWindow(&create_params);
|
||||
+
|
||||
// Even though all codepaths leading here are in response to a renderer
|
||||
// trying to open a new window, if the new window ends up in a different
|
||||
// browsing instance, then the RenderViewHost, RenderWidgetHost,
|
||||
@@ -5293,6 +5297,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
// Sets the newly created WebContents WindowOpenDisposition.
|
||||
new_contents_impl->original_window_open_disposition_ = params.disposition;
|
||||
@@ -5101,6 +5101,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
SetPartitionedPopinOpenerOnNewWindowIfNeeded(new_contents_impl, params,
|
||||
opener);
|
||||
|
||||
+ if (delegate_) {
|
||||
+ delegate_->WebContentsCreatedWithFullParams(this, render_process_id,
|
||||
@@ -48,7 +37,7 @@ index f3204a39253652a906f8976c666395e8afa033a8..d9b5a70e0c7acfaac312663ba336580e
|
||||
// If the new frame has a name, make sure any SiteInstances that can find
|
||||
// this named frame have proxies for it. Must be called after
|
||||
// SetSessionStorageNamespace, since this calls CreateRenderView, which uses
|
||||
@@ -5334,12 +5344,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
@@ -5142,12 +5148,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
AddWebContentsDestructionObserver(new_contents_impl);
|
||||
}
|
||||
|
||||
@@ -62,10 +51,10 @@ index f3204a39253652a906f8976c666395e8afa033a8..d9b5a70e0c7acfaac312663ba336580e
|
||||
new_contents_impl, opener, params.target_url,
|
||||
params.referrer.To<Referrer>(), params.disposition,
|
||||
diff --git a/content/common/frame.mojom b/content/common/frame.mojom
|
||||
index 09f1899c9b044a05b2e40c291f17fdf1f9f2fcac..89643bf7059d4fc0d6de6116ffe0fdac883b3fc9 100644
|
||||
index 55bb4ae3bab4cdf20b3e1dde9450a5c0e4e62b37..fe444c7fa140166a1b65c7a8a2676e2de7c4e0fc 100644
|
||||
--- a/content/common/frame.mojom
|
||||
+++ b/content/common/frame.mojom
|
||||
@@ -653,6 +653,10 @@ struct CreateNewWindowParams {
|
||||
@@ -646,6 +646,10 @@ struct CreateNewWindowParams {
|
||||
pending_associated_remote<blink.mojom.Widget> widget;
|
||||
pending_associated_receiver<blink.mojom.FrameWidgetHost> frame_widget_host;
|
||||
pending_associated_remote<blink.mojom.FrameWidget> frame_widget;
|
||||
@@ -77,10 +66,10 @@ index 09f1899c9b044a05b2e40c291f17fdf1f9f2fcac..89643bf7059d4fc0d6de6116ffe0fdac
|
||||
|
||||
// Operation result when the renderer asks the browser to create a new window.
|
||||
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
|
||||
index 4a377944faaf947ef478e2d858444b5d3a000c47..f8fffc6d41d26d15ff1f563005d58039099d069e 100644
|
||||
index e2382e9769cb79d676715187a2b8b00392e5445c..22400e44369b8ffb4b3fd886c981afea7a90da02 100644
|
||||
--- a/content/public/browser/content_browser_client.cc
|
||||
+++ b/content/public/browser/content_browser_client.cc
|
||||
@@ -848,6 +848,8 @@ bool ContentBrowserClient::CanCreateWindow(
|
||||
@@ -820,6 +820,8 @@ bool ContentBrowserClient::CanCreateWindow(
|
||||
const std::string& frame_name,
|
||||
WindowOpenDisposition disposition,
|
||||
const blink::mojom::WindowFeatures& features,
|
||||
@@ -90,10 +79,10 @@ index 4a377944faaf947ef478e2d858444b5d3a000c47..f8fffc6d41d26d15ff1f563005d58039
|
||||
bool opener_suppressed,
|
||||
bool* no_javascript_access) {
|
||||
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
|
||||
index 0d0d957b353e0b147efce4380c445f664741d6f4..08b098fa486c77294250563edbc5d2421fda3d69 100644
|
||||
index 9b75a6c3c222a93319e0f26f351aed3dbe6ead28..8a7ea32eb4ea4a78662b96a2eef5a0de4229d214 100644
|
||||
--- a/content/public/browser/content_browser_client.h
|
||||
+++ b/content/public/browser/content_browser_client.h
|
||||
@@ -200,6 +200,7 @@ class NetworkService;
|
||||
@@ -199,6 +199,7 @@ class NetworkService;
|
||||
class TrustedURLLoaderHeaderClient;
|
||||
} // namespace mojom
|
||||
struct ResourceRequest;
|
||||
@@ -101,7 +90,7 @@ index 0d0d957b353e0b147efce4380c445f664741d6f4..08b098fa486c77294250563edbc5d242
|
||||
} // namespace network
|
||||
|
||||
namespace sandbox {
|
||||
@@ -1409,6 +1410,8 @@ class CONTENT_EXPORT ContentBrowserClient {
|
||||
@@ -1376,6 +1377,8 @@ class CONTENT_EXPORT ContentBrowserClient {
|
||||
const std::string& frame_name,
|
||||
WindowOpenDisposition disposition,
|
||||
const blink::mojom::WindowFeatures& features,
|
||||
@@ -111,7 +100,7 @@ index 0d0d957b353e0b147efce4380c445f664741d6f4..08b098fa486c77294250563edbc5d242
|
||||
bool opener_suppressed,
|
||||
bool* no_javascript_access);
|
||||
diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc
|
||||
index f42be2a1cc5ba3ccb52e48985e0532a34675e826..f6ab6ab2b036c7621b429181c3ff89d9f1ff77f9 100644
|
||||
index b390356721fa226c348923f33601c4a1a2d9702d..97a3ea6f292563a41fd41f812ac72526a96d8471 100644
|
||||
--- a/content/public/browser/web_contents_delegate.cc
|
||||
+++ b/content/public/browser/web_contents_delegate.cc
|
||||
@@ -32,6 +32,17 @@ namespace content {
|
||||
@@ -133,7 +122,7 @@ index f42be2a1cc5ba3ccb52e48985e0532a34675e826..f6ab6ab2b036c7621b429181c3ff89d9
|
||||
WebContents* source,
|
||||
const OpenURLParams& params,
|
||||
diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
|
||||
index d33274984bf6523beeb3ab5ee586499d224bff3c..89c3f86bc828c5bf844bb103477c0772ba275dc5 100644
|
||||
index da319cb20733150366d85bee95609f0f2d9def7f..8a18958035cc1dd26be558349f64f7727570c4ba 100644
|
||||
--- a/content/public/browser/web_contents_delegate.h
|
||||
+++ b/content/public/browser/web_contents_delegate.h
|
||||
@@ -18,6 +18,7 @@
|
||||
@@ -144,7 +133,7 @@ index d33274984bf6523beeb3ab5ee586499d224bff3c..89c3f86bc828c5bf844bb103477c0772
|
||||
#include "content/public/browser/eye_dropper.h"
|
||||
#include "content/public/browser/fullscreen_types.h"
|
||||
#include "content/public/browser/invalidate_type.h"
|
||||
@@ -380,6 +381,16 @@ class CONTENT_EXPORT WebContentsDelegate {
|
||||
@@ -376,6 +377,13 @@ class CONTENT_EXPORT WebContentsDelegate {
|
||||
const StoragePartitionConfig& partition_config,
|
||||
SessionStorageNamespace* session_storage_namespace);
|
||||
|
||||
@@ -154,18 +143,15 @@ index d33274984bf6523beeb3ab5ee586499d224bff3c..89c3f86bc828c5bf844bb103477c0772
|
||||
+ int opener_render_frame_id,
|
||||
+ const mojom::CreateNewWindowParams& params,
|
||||
+ WebContents* new_contents);
|
||||
+
|
||||
+ virtual void MaybeOverrideCreateParamsForNewWindow(
|
||||
+ content::WebContents::CreateParams* create_params) {}
|
||||
+
|
||||
// Notifies the delegate about the creation of a new WebContents. This
|
||||
// typically happens when popups are created.
|
||||
virtual void WebContentsCreated(WebContents* source_contents,
|
||||
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
||||
index d83b79b725d28b22903e3f6227e982a2ed5573f5..5c8ffb1462a21f5d798656efc872ba09d6c0de99 100644
|
||||
index b46ceca2998e6f3706aff3705b9639948eebf60b..b78c7f64fd5e21a8d89318791bf639ab367d2d48 100644
|
||||
--- a/content/renderer/render_frame_impl.cc
|
||||
+++ b/content/renderer/render_frame_impl.cc
|
||||
@@ -6937,6 +6937,10 @@ WebView* RenderFrameImpl::CreateNewWindow(
|
||||
@@ -6925,6 +6925,10 @@ WebView* RenderFrameImpl::CreateNewWindow(
|
||||
request.HasUserGesture(), GetWebFrame()->IsAdFrame(),
|
||||
GetWebFrame()->IsAdScriptInStack());
|
||||
|
||||
@@ -177,10 +163,10 @@ index d83b79b725d28b22903e3f6227e982a2ed5573f5..5c8ffb1462a21f5d798656efc872ba09
|
||||
// moved on send.
|
||||
bool is_background_tab =
|
||||
diff --git a/content/web_test/browser/web_test_content_browser_client.cc b/content/web_test/browser/web_test_content_browser_client.cc
|
||||
index 7f265db63f3fa34ab568e30e356db3cb259e7067..b55188e4b75913a531c2def09343b9ed3d589940 100644
|
||||
index fa36b9907988ab971c94eae317e6e1dc4d170762..a2cafef6cae2fd78580fdf90dae17ac6586a7312 100644
|
||||
--- a/content/web_test/browser/web_test_content_browser_client.cc
|
||||
+++ b/content/web_test/browser/web_test_content_browser_client.cc
|
||||
@@ -531,6 +531,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
|
||||
@@ -534,6 +534,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
|
||||
const std::string& frame_name,
|
||||
WindowOpenDisposition disposition,
|
||||
const blink::mojom::WindowFeatures& features,
|
||||
@@ -190,10 +176,10 @@ index 7f265db63f3fa34ab568e30e356db3cb259e7067..b55188e4b75913a531c2def09343b9ed
|
||||
bool opener_suppressed,
|
||||
bool* no_javascript_access) {
|
||||
diff --git a/content/web_test/browser/web_test_content_browser_client.h b/content/web_test/browser/web_test_content_browser_client.h
|
||||
index b50d5628cfe6dc3009d889b6a8c4a0925d19592b..43d67de5ef7552bec5ced1496318724c01a806ce 100644
|
||||
index 9c6bbdc4f8e4f78fd745ac4e71510d9534925a78..f4a68476f71e8283bb3da3642758416efb98c168 100644
|
||||
--- a/content/web_test/browser/web_test_content_browser_client.h
|
||||
+++ b/content/web_test/browser/web_test_content_browser_client.h
|
||||
@@ -94,6 +94,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient {
|
||||
@@ -93,6 +93,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient {
|
||||
const std::string& frame_name,
|
||||
WindowOpenDisposition disposition,
|
||||
const blink::mojom::WindowFeatures& features,
|
||||
@@ -224,10 +210,10 @@ index 82e9d3dfb5f7da76d89fe15ae61d379fa46e177d..fd035512099a54dff6cc951a2226c23a
|
||||
|
||||
} // namespace blink
|
||||
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc
|
||||
index 23e8b0820df2546e0097d667758c818ef725a2e7..ef692c6d82dee347bc8956cb2337fa7a35f0c50d 100644
|
||||
index f4a1ed78679c5efaea6494a4aa8b22fff31cba1b..afa637807b0a5bdef126031f219115ecee8d478d 100644
|
||||
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
|
||||
@@ -2318,6 +2318,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
|
||||
@@ -2272,6 +2272,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
|
||||
WebWindowFeatures window_features =
|
||||
GetWindowFeaturesFromString(features, entered_window);
|
||||
|
||||
|
||||
273
patches/chromium/cherry-pick-f1e6422a355c.patch
Normal file
273
patches/chromium/cherry-pick-f1e6422a355c.patch
Normal file
@@ -0,0 +1,273 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
|
||||
Date: Wed, 21 May 2025 23:25:12 -0700
|
||||
Subject: Enforce SharedWorker::Terminate() procedure order
|
||||
|
||||
During the investigation of crbug.com/409059706, we observed that
|
||||
PerformShutdownOnWorkerThread() is called during the status is
|
||||
running.
|
||||
|
||||
I suppose the root cause is race condition between `Terminate()`
|
||||
procedure and a child process termination procedure in different
|
||||
thread. WorkerThread can be terminated if two conditions are met;
|
||||
`Terminate()` is called and all child worker threads have been
|
||||
terminated. Both `Terminate()` and the child process termination
|
||||
procedure may call `PerformShutdownOnWorkerThread()`, and former
|
||||
is executed regardless of two conditions are met. The latter
|
||||
is called if `Terminate()` is called and no child processes.
|
||||
To be clear, "`Terminate()` is called" does not mean
|
||||
`PrepareForShutdownOnWorkerThread()` is executed. `Terminate()`
|
||||
queues it after the flag to tell `Terminate()` call. And, when
|
||||
the issue happen, I am quite sure the flag is set but,
|
||||
`PrepareForShutdownOnWorkerThread()` won't be executed yet.
|
||||
|
||||
The fix is that:
|
||||
1. The "Terminate() is called" flag to be multi staged.
|
||||
The flag is used for two purpose; a. avoid re-enter of
|
||||
`Terminate()`, and b. `PrepareForShutdownOnWorkerThread()` is
|
||||
in flight. The CL changed the flag to enum to represent
|
||||
the stage properly.
|
||||
2. `PerformShutdownOnWorkerThread()` is queued even if it is
|
||||
called within the child process termination procedure.
|
||||
It avoid the execution order flip between
|
||||
`PrepareForShutdownOnWorkerThread()` and
|
||||
`PerformShutdownOnWorkerThread()`.
|
||||
|
||||
In addition, this change ensures `PerformShutdownOnWorkerThread()`
|
||||
is called once. While `PerformShutdownOnWorkerThread()` touches
|
||||
fields inside, the fields must not be touched at some point within
|
||||
the function, the function is actually not re-entrant when it reaches
|
||||
to the end. Upon mikt@ suggestion, I made
|
||||
`PerformShutdownOnWorkerThread()` is called only when two conditions
|
||||
are fulfilled. i.e. `Terminate()` is called and the number of child
|
||||
threads is 0. Also, the CL uses the enum to show
|
||||
`PerformShutdownOnWorkerThread()` is in-flight to avoid re-entrance
|
||||
in this level.
|
||||
|
||||
Bug: 409059706
|
||||
Change-Id: I81a1c3b1a34e827fa75ec2d1a9b37023965dbe27
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6543412
|
||||
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
|
||||
Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1463892}
|
||||
|
||||
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
|
||||
index b6f2e57224c8a50ffa65b70b30cf0eda77691613..68ac835c14901a22cd8ae1b55470e4b0a3d9dea8 100644
|
||||
--- a/third_party/blink/common/features.cc
|
||||
+++ b/third_party/blink/common/features.cc
|
||||
@@ -2828,6 +2828,13 @@ BASE_FEATURE(kWebviewAccelerateSmallCanvases,
|
||||
"WebviewAccelerateSmallCanvases",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
+// WorkerThread termination procedure (prepare and shutdown) runs sequentially
|
||||
+// in the same task without calling another cross thread post task.
|
||||
+// Kill switch for crbug.com/409059706.
|
||||
+BASE_FEATURE(kWorkerThreadSequentialShutdown,
|
||||
+ "WorkerThreadSequentialShutdown",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+
|
||||
BASE_FEATURE(kNoReferrerForPreloadFromSubresource,
|
||||
"NoReferrerForPreloadFromSubresource",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
|
||||
index 9970347ef0ccb1801bbdd9e3ff904ae7591567c6..1cd31c80405bac33b11749587e5b05c0fd461856 100644
|
||||
--- a/third_party/blink/public/common/features.h
|
||||
+++ b/third_party/blink/public/common/features.h
|
||||
@@ -1844,6 +1844,8 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kWebUSBTransferSizeLimit);
|
||||
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kWebviewAccelerateSmallCanvases);
|
||||
|
||||
+BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kWorkerThreadSequentialShutdown);
|
||||
+
|
||||
// Kill switch for https://crbug.com/415810136.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kNoReferrerForPreloadFromSubresource);
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/workers/worker_thread.cc b/third_party/blink/renderer/core/workers/worker_thread.cc
|
||||
index 9b2878bc23c78f092816524608776dd32fbde5a1..6d1f954733fbc574bcb1fda229fd30e7303fb9aa 100644
|
||||
--- a/third_party/blink/renderer/core/workers/worker_thread.cc
|
||||
+++ b/third_party/blink/renderer/core/workers/worker_thread.cc
|
||||
@@ -264,9 +264,10 @@ void WorkerThread::Terminate() {
|
||||
DCHECK_CALLED_ON_VALID_THREAD(parent_thread_checker_);
|
||||
{
|
||||
base::AutoLock locker(lock_);
|
||||
- if (requested_to_terminate_)
|
||||
+ if (termination_progress_ != TerminationProgress::kNotRequested) {
|
||||
return;
|
||||
- requested_to_terminate_ = true;
|
||||
+ }
|
||||
+ termination_progress_ = TerminationProgress::kRequested;
|
||||
}
|
||||
|
||||
// Schedule a task to forcibly terminate the script execution in case that the
|
||||
@@ -282,10 +283,33 @@ void WorkerThread::Terminate() {
|
||||
*task_runner, FROM_HERE,
|
||||
CrossThreadBindOnce(&WorkerThread::PrepareForShutdownOnWorkerThread,
|
||||
CrossThreadUnretained(this)));
|
||||
- PostCrossThreadTask(
|
||||
- *task_runner, FROM_HERE,
|
||||
- CrossThreadBindOnce(&WorkerThread::PerformShutdownOnWorkerThread,
|
||||
- CrossThreadUnretained(this)));
|
||||
+
|
||||
+ if (!base::FeatureList::IsEnabled(
|
||||
+ blink::features::kWorkerThreadSequentialShutdown)) {
|
||||
+ PostCrossThreadTask(
|
||||
+ *task_runner, FROM_HERE,
|
||||
+ CrossThreadBindOnce(&WorkerThread::PerformShutdownOnWorkerThread,
|
||||
+ CrossThreadUnretained(this)));
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ bool perform_shutdown = false;
|
||||
+ {
|
||||
+ base::AutoLock locker(lock_);
|
||||
+ CHECK_EQ(TerminationProgress::kRequested, termination_progress_);
|
||||
+ termination_progress_ = TerminationProgress::kPrepared;
|
||||
+ if (num_child_threads_ == 0) {
|
||||
+ termination_progress_ = TerminationProgress::kPerforming;
|
||||
+ perform_shutdown = true;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (perform_shutdown) {
|
||||
+ PostCrossThreadTask(
|
||||
+ *task_runner, FROM_HERE,
|
||||
+ CrossThreadBindOnce(&WorkerThread::PerformShutdownOnWorkerThread,
|
||||
+ CrossThreadUnretained(this)));
|
||||
+ }
|
||||
}
|
||||
|
||||
void WorkerThread::TerminateForTesting() {
|
||||
@@ -422,20 +446,48 @@ scoped_refptr<base::SingleThreadTaskRunner> WorkerThread::GetTaskRunner(
|
||||
|
||||
void WorkerThread::ChildThreadStartedOnWorkerThread(WorkerThread* child) {
|
||||
DCHECK(IsCurrentThread());
|
||||
-#if DCHECK_IS_ON()
|
||||
+ child_threads_.insert(child);
|
||||
{
|
||||
base::AutoLock locker(lock_);
|
||||
DCHECK_EQ(ThreadState::kRunning, thread_state_);
|
||||
+ CHECK_EQ(TerminationProgress::kNotRequested, termination_progress_);
|
||||
+ if (base::FeatureList::IsEnabled(
|
||||
+ blink::features::kWorkerThreadSequentialShutdown)) {
|
||||
+ ++num_child_threads_;
|
||||
+ CHECK_EQ(child_threads_.size(), num_child_threads_);
|
||||
+ }
|
||||
}
|
||||
-#endif
|
||||
- child_threads_.insert(child);
|
||||
}
|
||||
|
||||
void WorkerThread::ChildThreadTerminatedOnWorkerThread(WorkerThread* child) {
|
||||
DCHECK(IsCurrentThread());
|
||||
child_threads_.erase(child);
|
||||
- if (child_threads_.empty() && CheckRequestedToTerminate())
|
||||
- PerformShutdownOnWorkerThread();
|
||||
+ if (!base::FeatureList::IsEnabled(
|
||||
+ blink::features::kWorkerThreadSequentialShutdown)) {
|
||||
+ if (child_threads_.empty() && CheckRequestedToTerminate()) {
|
||||
+ PerformShutdownOnWorkerThread();
|
||||
+ }
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ bool perform_shutdown = false;
|
||||
+ {
|
||||
+ base::AutoLock locker(lock_);
|
||||
+ --num_child_threads_;
|
||||
+ CHECK_EQ(child_threads_.size(), num_child_threads_);
|
||||
+ if (num_child_threads_ == 0 &&
|
||||
+ termination_progress_ == TerminationProgress::kPrepared) {
|
||||
+ termination_progress_ = TerminationProgress::kPerforming;
|
||||
+ perform_shutdown = true;
|
||||
+ }
|
||||
+ }
|
||||
+ if (perform_shutdown) {
|
||||
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner =
|
||||
+ GetWorkerBackingThread().BackingThread().GetTaskRunner();
|
||||
+ GetWorkerBackingThread().BackingThread().GetTaskRunner()->PostTask(
|
||||
+ FROM_HERE, WTF::BindOnce(&WorkerThread::PerformShutdownOnWorkerThread,
|
||||
+ WTF::Unretained(this)));
|
||||
+ }
|
||||
}
|
||||
|
||||
WorkerThread::WorkerThread(WorkerReportingProxy& worker_reporting_proxy)
|
||||
@@ -781,18 +833,32 @@ void WorkerThread::PerformShutdownOnWorkerThread() {
|
||||
DCHECK(IsCurrentThread());
|
||||
{
|
||||
base::AutoLock locker(lock_);
|
||||
- DCHECK(requested_to_terminate_);
|
||||
+ if (!base::FeatureList::IsEnabled(
|
||||
+ blink::features::kWorkerThreadSequentialShutdown)) {
|
||||
+ DCHECK_NE(TerminationProgress::kNotRequested, termination_progress_);
|
||||
+ } else {
|
||||
+ DCHECK_EQ(TerminationProgress::kPerforming, termination_progress_);
|
||||
+ }
|
||||
DCHECK_EQ(ThreadState::kReadyToShutdown, thread_state_);
|
||||
if (exit_code_ == ExitCode::kNotTerminated)
|
||||
SetExitCode(ExitCode::kGracefullyTerminated);
|
||||
}
|
||||
|
||||
- // When child workers are present, wait for them to shutdown before shutting
|
||||
- // down this thread. ChildThreadTerminatedOnWorkerThread() is responsible
|
||||
- // for completing shutdown on the worker thread after the last child shuts
|
||||
- // down.
|
||||
- if (!child_threads_.empty())
|
||||
- return;
|
||||
+ if (!base::FeatureList::IsEnabled(
|
||||
+ blink::features::kWorkerThreadSequentialShutdown)) {
|
||||
+ // When child workers are present, wait for them to shutdown before shutting
|
||||
+ // down this thread. ChildThreadTerminatedOnWorkerThread() is responsible
|
||||
+ // for completing shutdown on the worker thread after the last child shuts
|
||||
+ // down.
|
||||
+ if (!child_threads_.empty()) {
|
||||
+ return;
|
||||
+ }
|
||||
+ } else {
|
||||
+ // Child workers must not exist when `PerformShutdownOnWorkerThread()`
|
||||
+ // is called because it has already been checked before calling the
|
||||
+ // function.
|
||||
+ CHECK(child_threads_.empty());
|
||||
+ }
|
||||
|
||||
inspector_task_runner_->Dispose();
|
||||
if (worker_inspector_controller_) {
|
||||
@@ -848,7 +914,7 @@ void WorkerThread::SetExitCode(ExitCode exit_code) {
|
||||
|
||||
bool WorkerThread::CheckRequestedToTerminate() {
|
||||
base::AutoLock locker(lock_);
|
||||
- return requested_to_terminate_;
|
||||
+ return termination_progress_ != TerminationProgress::kNotRequested;
|
||||
}
|
||||
|
||||
void WorkerThread::PauseOrFreeze(mojom::blink::FrameLifecycleState state,
|
||||
diff --git a/third_party/blink/renderer/core/workers/worker_thread.h b/third_party/blink/renderer/core/workers/worker_thread.h
|
||||
index 48174fc364fd6d98f90b5a99a4ae403602691a52..e0423486b891d4d8638f455a01d07adc5b10b25b 100644
|
||||
--- a/third_party/blink/renderer/core/workers/worker_thread.h
|
||||
+++ b/third_party/blink/renderer/core/workers/worker_thread.h
|
||||
@@ -321,6 +321,13 @@ class CORE_EXPORT WorkerThread : public Thread::TaskObserver {
|
||||
kTerminationUnnecessary,
|
||||
};
|
||||
|
||||
+ enum class TerminationProgress {
|
||||
+ kNotRequested,
|
||||
+ kRequested,
|
||||
+ kPrepared,
|
||||
+ kPerforming,
|
||||
+ };
|
||||
+
|
||||
// Returns true if we should synchronously terminate the script execution so
|
||||
// that a shutdown task can be handled by the thread event loop.
|
||||
TerminationState ShouldTerminateScriptExecution()
|
||||
@@ -422,8 +429,10 @@ class CORE_EXPORT WorkerThread : public Thread::TaskObserver {
|
||||
// A unique identifier among all WorkerThreads.
|
||||
const int worker_thread_id_;
|
||||
|
||||
- // Set on the parent thread.
|
||||
- bool requested_to_terminate_ GUARDED_BY(lock_) = false;
|
||||
+ // Represents progress after the Terminate() call.
|
||||
+ TerminationProgress termination_progress_ GUARDED_BY(lock_) =
|
||||
+ TerminationProgress::kNotRequested;
|
||||
+ size_t num_child_threads_ GUARDED_BY(lock_) = 0;
|
||||
|
||||
ThreadState thread_state_ GUARDED_BY(lock_) = ThreadState::kNotStarted;
|
||||
ExitCode exit_code_ GUARDED_BY(lock_) = ExitCode::kNotTerminated;
|
||||
@@ -6,10 +6,10 @@ Subject: chore: add electron deps to gitignores
|
||||
Makes things like "git status" quicker when developing electron locally
|
||||
|
||||
diff --git a/.gitignore b/.gitignore
|
||||
index d69c2f1ff69789512d89eed5982da803e0fcd813..0d4ba5c34634785d297340a8168f7ea18448f8e2 100644
|
||||
index 0a0f0118d5c1a5a2f3ad28b068bebb849eba7246..5ca6d03b709ef119ccd6482b2f305f8a3aeb7438 100644
|
||||
--- a/.gitignore
|
||||
+++ b/.gitignore
|
||||
@@ -222,6 +222,7 @@ vs-chromium-project.txt
|
||||
@@ -217,6 +217,7 @@ vs-chromium-project.txt
|
||||
/data
|
||||
/delegate_execute
|
||||
/device/serial/device_serial_mojo.xml
|
||||
@@ -18,12 +18,12 @@ index d69c2f1ff69789512d89eed5982da803e0fcd813..0d4ba5c34634785d297340a8168f7ea1
|
||||
/googleurl
|
||||
/gpu/gles2_conform_test
|
||||
diff --git a/third_party/.gitignore b/third_party/.gitignore
|
||||
index ad591b3a0f2afe24d53dac76655f81790c1baa50..080d19d34659290e70f599e3d91da286013be76f 100644
|
||||
index 3e117f79191d5cea0fb4f1c6b0e95513562d7691..f197d17a55a802b01aaba602eff7c83f2a55c7b5 100644
|
||||
--- a/third_party/.gitignore
|
||||
+++ b/third_party/.gitignore
|
||||
@@ -46,7 +46,9 @@
|
||||
@@ -45,7 +45,9 @@
|
||||
/devserver
|
||||
/directxsdk
|
||||
/dragonbox/src
|
||||
/edk2
|
||||
+/electron_node
|
||||
/elfutils/src
|
||||
@@ -31,7 +31,7 @@ index ad591b3a0f2afe24d53dac76655f81790c1baa50..080d19d34659290e70f599e3d91da286
|
||||
/espresso/lib/
|
||||
/eyesfree/src
|
||||
/fast_float/src
|
||||
@@ -94,6 +96,7 @@
|
||||
@@ -93,6 +95,7 @@
|
||||
/mocha
|
||||
/mockito/src
|
||||
/nacl_sdk_binaries/
|
||||
@@ -39,7 +39,7 @@ index ad591b3a0f2afe24d53dac76655f81790c1baa50..080d19d34659290e70f599e3d91da286
|
||||
/ninja
|
||||
/node/*.tar.gz
|
||||
/node/linux/
|
||||
@@ -138,7 +141,7 @@
|
||||
@@ -137,7 +140,7 @@
|
||||
/spirv-cross/src
|
||||
/spirv-headers/src
|
||||
/spirv-tools/src
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Charles Kerr <charles@charleskerr.com>
|
||||
Date: Mon, 14 Apr 2025 11:34:25 -0500
|
||||
Subject: chore: "grandfather in" Electron Views and Delegates
|
||||
|
||||
6441736: Block further usage of WidgetDelegateView. | https://chromium-review.googlesource.com/c/chromium/src/+/6441736
|
||||
|
||||
6442265: Add a PassKey for std::make_unique<WidgetDelegateView>(). | https://chromium-review.googlesource.com/c/chromium/src/+/6442265
|
||||
|
||||
6448510: Lock further access to View::set_owned_by_client(). | https://chromium-review.googlesource.com/c/chromium/src/+/6448510
|
||||
|
||||
diff --git a/ui/views/view.h b/ui/views/view.h
|
||||
index 0dbbd7979ad79a7a74681222fcf36a315f0634ce..b04e77440c1273c5b866ea329e62ac07fdcf5404 100644
|
||||
--- a/ui/views/view.h
|
||||
+++ b/ui/views/view.h
|
||||
@@ -82,6 +82,19 @@ class ArcNotificationContentView;
|
||||
class WideFrameView;
|
||||
} // namespace ash
|
||||
|
||||
+namespace electron {
|
||||
+class DevToolsWindowDelegate;
|
||||
+class InspectableWebContentsView;
|
||||
+class MenuBar;
|
||||
+class RootView;
|
||||
+class RootViewMac;
|
||||
+}
|
||||
+
|
||||
+namespace electron::api {
|
||||
+class ImageView;
|
||||
+class View;
|
||||
+}
|
||||
+
|
||||
namespace exo {
|
||||
class ShellSurfaceBase;
|
||||
}
|
||||
@@ -324,6 +337,14 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
|
||||
public:
|
||||
class OwnedByClientPassKey {
|
||||
private:
|
||||
+ // TODO(ckerr) can this list be shortened?
|
||||
+ friend class electron::DevToolsWindowDelegate;
|
||||
+ friend class electron::InspectableWebContentsView;
|
||||
+ friend class electron::MenuBar;
|
||||
+ friend class electron::RootView;
|
||||
+ friend class electron::RootViewMac;
|
||||
+ friend class electron::api::ImageView;
|
||||
+ friend class electron::api::View;
|
||||
// DO NOT ADD TO THIS LIST!
|
||||
// These existing cases are "grandfathered in", but there shouldn't be more.
|
||||
// See comments atop class.
|
||||
diff --git a/ui/views/widget/widget_delegate.h b/ui/views/widget/widget_delegate.h
|
||||
index d2011a5c04973980e245f498ad4e6e1f65e6cc4b..f1aecd776878a368cc7debccfd5db6bd098c7ec4 100644
|
||||
--- a/ui/views/widget/widget_delegate.h
|
||||
+++ b/ui/views/widget/widget_delegate.h
|
||||
@@ -165,6 +165,12 @@ namespace crostini {
|
||||
class AppRestartDialog;
|
||||
}
|
||||
|
||||
+namespace electron {
|
||||
+class AutofillPopupView;
|
||||
+class DevToolsWindowDelegate;
|
||||
+class NativeWindowMac;
|
||||
+}
|
||||
+
|
||||
namespace enterprise_connectors {
|
||||
class ContentAnalysisDialogController;
|
||||
class ContentAnalysisDialogBehaviorBrowserTest;
|
||||
@@ -374,6 +380,7 @@ class VIEWS_EXPORT WidgetDelegate {
|
||||
|
||||
class OwnedByWidgetPassKey {
|
||||
private:
|
||||
+ friend class electron::DevToolsWindowDelegate;
|
||||
// DO NOT ADD TO THIS LIST!
|
||||
// These existing cases are "grandfathered in", but there shouldn't be more.
|
||||
// See comments atop `SetOwnedByWidget()`.
|
||||
@@ -470,6 +477,7 @@ class VIEWS_EXPORT WidgetDelegate {
|
||||
};
|
||||
class RegisterDeleteCallbackPassKey {
|
||||
private:
|
||||
+ friend class electron::NativeWindowMac;
|
||||
// DO NOT ADD TO THIS LIST!
|
||||
// These existing cases are "grandfathered in", but there shouldn't be more.
|
||||
// See comments atop `RegisterDeleteDelegateCallback()`.
|
||||
@@ -927,6 +935,7 @@ class VIEWS_EXPORT WidgetDelegateView : public WidgetDelegate, public View {
|
||||
View* GetContentsView() override;
|
||||
|
||||
private:
|
||||
+ friend class electron::AutofillPopupView;
|
||||
// DO NOT ADD TO THIS LIST!
|
||||
// These existing cases are "grandfathered in", but there shouldn't be more.
|
||||
// See comments atop class.
|
||||
@@ -7,7 +7,7 @@ This patch comes after Chromium removed the ScopedAllowIO API in favor
|
||||
of explicitly adding ScopedAllowBlocking calls as friends.
|
||||
|
||||
diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h
|
||||
index b1abcfaab58df4555d3a26481915d64ef5458e17..f2f43454c1c124da9983998564837ebf3589aefd 100644
|
||||
index d97240a7b0dcf63737808850b6ef83852155b794..4a58b1f3e8c2bee32084be82977239e911598077 100644
|
||||
--- a/base/threading/thread_restrictions.h
|
||||
+++ b/base/threading/thread_restrictions.h
|
||||
@@ -132,6 +132,7 @@ class KeyStorageLinux;
|
||||
@@ -28,7 +28,7 @@ index b1abcfaab58df4555d3a26481915d64ef5458e17..f2f43454c1c124da9983998564837ebf
|
||||
namespace enterprise_connectors {
|
||||
class LinuxKeyRotationCommand;
|
||||
} // namespace enterprise_connectors
|
||||
@@ -577,6 +581,7 @@ class BASE_EXPORT ScopedAllowBlocking {
|
||||
@@ -575,6 +579,7 @@ class BASE_EXPORT ScopedAllowBlocking {
|
||||
friend class ::DesktopNotificationBalloon;
|
||||
friend class ::FirefoxProfileLock;
|
||||
friend class ::GaiaConfig;
|
||||
@@ -36,10 +36,10 @@ index b1abcfaab58df4555d3a26481915d64ef5458e17..f2f43454c1c124da9983998564837ebf
|
||||
friend class ::ProfileImpl;
|
||||
friend class ::ScopedAllowBlockingForProfile;
|
||||
friend class ::StartupTabProviderImpl;
|
||||
@@ -615,6 +620,7 @@ class BASE_EXPORT ScopedAllowBlocking {
|
||||
friend class cronet::CronetPrefsManager;
|
||||
@@ -614,6 +619,7 @@ class BASE_EXPORT ScopedAllowBlocking {
|
||||
friend class crypto::ScopedAllowBlockingForNSS; // http://crbug.com/59847
|
||||
friend class drive::FakeDriveService;
|
||||
friend class extensions::DesktopAndroidExtensionSystem;
|
||||
+ friend class electron::ScopedAllowBlockingForElectron;
|
||||
friend class extensions::InstalledLoader;
|
||||
friend class extensions::UnpackedInstaller;
|
||||
|
||||
@@ -34,10 +34,10 @@ index 39b5a8fdd165efd74b00256552b51b5413107958..bfc4ef4f50efff4a77f2aef64335bb7e
|
||||
|
||||
class ScrollEvent;
|
||||
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
|
||||
index cc9f13770da77d9522a48abeb9d831b7b8b742f9..a415140b94e467adfbc3dbbaa026e897a0f66c06 100644
|
||||
index 1d298f66a2c2a0f02668af797b3a421fe5578d56..4780229a4453ad5ca2c89b786459f64c58bf2272 100644
|
||||
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
|
||||
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
|
||||
@@ -1358,6 +1358,10 @@ void DesktopWindowTreeHostWin::HandleHeadlessWindowBoundsChanged(
|
||||
@@ -1386,6 +1386,10 @@ void DesktopWindowTreeHostWin::HandleHeadlessWindowBoundsChanged(
|
||||
window()->SetProperty(aura::client::kHeadlessBoundsKey, bounds);
|
||||
}
|
||||
|
||||
@@ -49,22 +49,22 @@ index cc9f13770da77d9522a48abeb9d831b7b8b742f9..a415140b94e467adfbc3dbbaa026e897
|
||||
DesktopWindowTreeHostWin::GetSingletonDesktopNativeCursorManager() {
|
||||
return new DesktopNativeCursorManagerWin();
|
||||
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
|
||||
index c8339591dc55a792fd20f6c4340eac49f56a7f50..b85d1cdec49b10628d2f3d3d2e07513beb830456 100644
|
||||
index 2ee5e4b4673f4f18880dddecc48118c89823fd3f..37109b8d3d439073b5c9e2ea3597c36f32de5704 100644
|
||||
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
|
||||
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
|
||||
@@ -271,6 +271,7 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin
|
||||
@@ -268,6 +268,7 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin : public DesktopWindowTreeHost,
|
||||
void HandleWindowSizeUnchanged() override;
|
||||
void HandleWindowScaleFactorChanged(float window_scale_factor) override;
|
||||
void HandleHeadlessWindowBoundsChanged(const gfx::Rect& bounds) override;
|
||||
+ bool HandleMouseEventForCaption(UINT message) const override;
|
||||
|
||||
Widget* GetWidget();
|
||||
const Widget* GetWidget() const;
|
||||
// Overridden from WidgetObserver.
|
||||
void OnWidgetThemeChanged(Widget* widget) override;
|
||||
diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
|
||||
index 011448d24c557059423f6901b7e1100e476f0c9f..06fc8190385139f165bad0c2da2fb22d7a2c3d76 100644
|
||||
index 701f89b053674be1bad0a1a3612340a65c1ccfe7..ac7e189f26da75f6f8b40e69cf4bfee94acddd38 100644
|
||||
--- a/ui/views/win/hwnd_message_handler.cc
|
||||
+++ b/ui/views/win/hwnd_message_handler.cc
|
||||
@@ -3161,15 +3161,19 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
|
||||
@@ -3186,15 +3186,19 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
|
||||
}
|
||||
// We must let Windows handle the caption buttons if it's drawing them, or
|
||||
// they won't work.
|
||||
@@ -86,7 +86,7 @@ index 011448d24c557059423f6901b7e1100e476f0c9f..06fc8190385139f165bad0c2da2fb22d
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -3192,6 +3196,7 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
|
||||
@@ -3217,6 +3221,7 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
|
||||
// handle alt-space, or in the frame itself.
|
||||
is_right_mouse_pressed_on_caption_ = false;
|
||||
ReleaseCapture();
|
||||
@@ -94,7 +94,7 @@ index 011448d24c557059423f6901b7e1100e476f0c9f..06fc8190385139f165bad0c2da2fb22d
|
||||
// |point| is in window coordinates, but WM_NCHITTEST and TrackPopupMenu()
|
||||
// expect screen coordinates.
|
||||
POINT screen_point = CR_POINT_INITIALIZER_FROM_LPARAM(l_param);
|
||||
@@ -3199,7 +3204,17 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
|
||||
@@ -3224,7 +3229,17 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
|
||||
w_param = static_cast<WPARAM>(SendMessage(
|
||||
hwnd(), WM_NCHITTEST, 0, MAKELPARAM(screen_point.x, screen_point.y)));
|
||||
if (w_param == HTCAPTION || w_param == HTSYSMENU) {
|
||||
@@ -114,10 +114,10 @@ index 011448d24c557059423f6901b7e1100e476f0c9f..06fc8190385139f165bad0c2da2fb22d
|
||||
}
|
||||
} else if (message == WM_NCLBUTTONDOWN &&
|
||||
diff --git a/ui/views/win/hwnd_message_handler_delegate.h b/ui/views/win/hwnd_message_handler_delegate.h
|
||||
index 320b3263875807ccca2f013d51bc67a0c341cba3..67c761715aa2cc2ad52a5105a485af0514a4148f 100644
|
||||
index 83c26bf2b4bc11c0e3d839093eea56eed1bf581b..075e456e851bbde2b0174ca0cc34428cc32b6966 100644
|
||||
--- a/ui/views/win/hwnd_message_handler_delegate.h
|
||||
+++ b/ui/views/win/hwnd_message_handler_delegate.h
|
||||
@@ -252,6 +252,10 @@ class VIEWS_EXPORT HWNDMessageHandlerDelegate {
|
||||
@@ -255,6 +255,10 @@ class VIEWS_EXPORT HWNDMessageHandlerDelegate {
|
||||
// Called when the headless window bounds has changed.
|
||||
virtual void HandleHeadlessWindowBoundsChanged(const gfx::Rect& bounds) = 0;
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ track down the source of this problem & figure out if we can fix it
|
||||
by changing something in Electron.
|
||||
|
||||
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
||||
index c2ce5a360607a304d8435d6e58a4f0895dd08056..71d85d2e3111457eca540e80bf8a68ebc548d440 100644
|
||||
index 5465e9d42a5c4eed3b6f819418a7b0ab92c7eae2..54ff9675fef009c5bb79becb59146436508ad835 100644
|
||||
--- a/content/browser/web_contents/web_contents_impl.cc
|
||||
+++ b/content/browser/web_contents/web_contents_impl.cc
|
||||
@@ -5209,7 +5209,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
@@ -5020,7 +5020,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
: IsGuest();
|
||||
// While some guest types do not have a guest SiteInstance, the ones that
|
||||
// don't all override WebContents creation above.
|
||||
|
||||
@@ -14,10 +14,10 @@ This change patches it out to prevent the DCHECK.
|
||||
It can be removed once/if we see a better solution to the problem.
|
||||
|
||||
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc
|
||||
index c88f60749ed5c1371a4b85540f515c2124043f53..cea6f1123dcff9b7531783fb6d50c43e9e1cd5fb 100644
|
||||
index adaa1cd426c138972b088d0d0093b0e1653af231..be4684c94ba2214255c5dbe9cdcf1ea316c60c06 100644
|
||||
--- a/content/browser/site_instance_impl.cc
|
||||
+++ b/content/browser/site_instance_impl.cc
|
||||
@@ -227,7 +227,7 @@ scoped_refptr<SiteInstanceImpl> SiteInstanceImpl::CreateForGuest(
|
||||
@@ -229,7 +229,7 @@ scoped_refptr<SiteInstanceImpl> SiteInstanceImpl::CreateForGuest(
|
||||
BrowserContext* browser_context,
|
||||
const StoragePartitionConfig& partition_config) {
|
||||
DCHECK(browser_context);
|
||||
|
||||
@@ -28,21 +28,3 @@ index e3b9f14a4cf2167064ce6716053e663adffa1542..65f13a4607c8145858fd47d81cb9960c
|
||||
|
||||
// When the enterprise policy is not set, use finch/feature flag choice.
|
||||
return base::FeatureList::IsEnabled(
|
||||
diff --git a/chrome/browser/pdf/pdf_extension_util.cc b/chrome/browser/pdf/pdf_extension_util.cc
|
||||
index 8967bad0bc644d7a1541fdf86fa9d65c0b2c5dd0..25f75dd808e56dbcb3f6a4e284f7485427507e7e 100644
|
||||
--- a/chrome/browser/pdf/pdf_extension_util.cc
|
||||
+++ b/chrome/browser/pdf/pdf_extension_util.cc
|
||||
@@ -245,10 +245,13 @@ bool IsPrintingEnabled(content::BrowserContext* context) {
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(ENABLE_PDF_INK2)
|
||||
bool IsPdfAnnotationsEnabledByPolicy(content::BrowserContext* context) {
|
||||
+# if 0
|
||||
PrefService* prefs =
|
||||
context ? Profile::FromBrowserContext(context)->GetPrefs() : nullptr;
|
||||
return !prefs || !prefs->IsManagedPreference(prefs::kPdfAnnotationsEnabled) ||
|
||||
prefs->GetBoolean(prefs::kPdfAnnotationsEnabled);
|
||||
+#endif
|
||||
+ return true;
|
||||
}
|
||||
#endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(ENABLE_PDF_INK2)
|
||||
|
||||
|
||||
@@ -7,10 +7,10 @@ Pending upstream patch, this gives us fuller access to the window.open params
|
||||
so that we will be able to decide whether to cancel it or not.
|
||||
|
||||
diff --git a/chrome/browser/media/offscreen_tab.cc b/chrome/browser/media/offscreen_tab.cc
|
||||
index 7a9effeec99682ef063ebe71f209e6ed9fc4cad4..71ef44be47a8665ee36449a38333ddf9cff33ad4 100644
|
||||
index bfcdf050e603b953d15a0898200c8f031a1f84c6..b1f163b6da4d2197d404a5a0fbd31a5b346d3d69 100644
|
||||
--- a/chrome/browser/media/offscreen_tab.cc
|
||||
+++ b/chrome/browser/media/offscreen_tab.cc
|
||||
@@ -287,8 +287,7 @@ bool OffscreenTab::IsWebContentsCreationOverridden(
|
||||
@@ -286,8 +286,7 @@ bool OffscreenTab::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -21,10 +21,10 @@ index 7a9effeec99682ef063ebe71f209e6ed9fc4cad4..71ef44be47a8665ee36449a38333ddf9
|
||||
// uses this to spawn new windows/tabs, which is also not allowed for
|
||||
// offscreen tabs.
|
||||
diff --git a/chrome/browser/media/offscreen_tab.h b/chrome/browser/media/offscreen_tab.h
|
||||
index 231e3595f218aeebe28d0b13ce6182e7a4d6f4e1..609bd205d1cd0404cab3471765bef8b0e053d061 100644
|
||||
index 2fa0d6e1be27cc429e4a0237b5bfafa7aaa06c56..3decb327b10e3cd3edc1765491a7eb6056be7a51 100644
|
||||
--- a/chrome/browser/media/offscreen_tab.h
|
||||
+++ b/chrome/browser/media/offscreen_tab.h
|
||||
@@ -108,8 +108,7 @@ class OffscreenTab final : public ProfileObserver,
|
||||
@@ -107,8 +107,7 @@ class OffscreenTab final : public ProfileObserver,
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -35,10 +35,10 @@ index 231e3595f218aeebe28d0b13ce6182e7a4d6f4e1..609bd205d1cd0404cab3471765bef8b0
|
||||
content::RenderFrameHost* requesting_frame,
|
||||
const blink::mojom::FullscreenOptions& options) final;
|
||||
diff --git a/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.cc b/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.cc
|
||||
index a17c406b59530a8f57f6cb48905a697dd208a41f..0e22e90c1d570eb4c86ac1f24c5a6e9159be8ea1 100644
|
||||
index a0c24e09a5dffa8be119309738abe57e82ef76b3..3e362f622b72d7cb97a838e71014b035c47728c0 100644
|
||||
--- a/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.cc
|
||||
+++ b/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.cc
|
||||
@@ -80,8 +80,7 @@ class ChromeKeyboardContentsDelegate : public content::WebContentsDelegate,
|
||||
@@ -79,8 +79,7 @@ class ChromeKeyboardContentsDelegate : public content::WebContentsDelegate,
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -49,10 +49,10 @@ index a17c406b59530a8f57f6cb48905a697dd208a41f..0e22e90c1d570eb4c86ac1f24c5a6e91
|
||||
}
|
||||
|
||||
diff --git a/chrome/browser/ui/ash/web_view/ash_web_view_impl.cc b/chrome/browser/ui/ash/web_view/ash_web_view_impl.cc
|
||||
index 08c84ca91f7e477e4e8d6370513d90d2fb9801f1..41e04444274f40fdedbf8d97bfd149f2ac682e53 100644
|
||||
index 44be6359d6a7acf88072569d8d4f85c688f5ed81..ee377313b25e13c011b1ed4aa31ea059f020a5b7 100644
|
||||
--- a/chrome/browser/ui/ash/web_view/ash_web_view_impl.cc
|
||||
+++ b/chrome/browser/ui/ash/web_view/ash_web_view_impl.cc
|
||||
@@ -121,10 +121,9 @@ bool AshWebViewImpl::IsWebContentsCreationOverridden(
|
||||
@@ -120,10 +120,9 @@ bool AshWebViewImpl::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -66,10 +66,10 @@ index 08c84ca91f7e477e4e8d6370513d90d2fb9801f1..41e04444274f40fdedbf8d97bfd149f2
|
||||
/*from_user_gesture=*/true);
|
||||
return true;
|
||||
diff --git a/chrome/browser/ui/ash/web_view/ash_web_view_impl.h b/chrome/browser/ui/ash/web_view/ash_web_view_impl.h
|
||||
index b6582b4013d9682d32bd524b4053b443a4df00f8..afcbce72e0f247b4d5a637b27c9f25d913cfa14b 100644
|
||||
index 4fd8dff1089cd6afa6a66dc185734d7671657281..0a1f4268ea771a3d5d4a2668928c6e5d1b618c68 100644
|
||||
--- a/chrome/browser/ui/ash/web_view/ash_web_view_impl.h
|
||||
+++ b/chrome/browser/ui/ash/web_view/ash_web_view_impl.h
|
||||
@@ -60,8 +60,7 @@ class AshWebViewImpl : public ash::AshWebView,
|
||||
@@ -59,8 +59,7 @@ class AshWebViewImpl : public ash::AshWebView,
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -80,33 +80,29 @@ index b6582b4013d9682d32bd524b4053b443a4df00f8..afcbce72e0f247b4d5a637b27c9f25d9
|
||||
content::WebContents* source,
|
||||
const content::OpenURLParams& params,
|
||||
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
|
||||
index 8c5e577eb89cf1ee85e76fea6385f7a18a60143b..2ae70471cfa301570d696662182773e868054143 100644
|
||||
index d45f8f1713c875f2d430f9155f0cbe626a5f233f..00c7db5afa636d5d1da4e5d2cb01ebcbec70304b 100644
|
||||
--- a/chrome/browser/ui/browser.cc
|
||||
+++ b/chrome/browser/ui/browser.cc
|
||||
@@ -2392,8 +2392,7 @@ bool Browser::IsWebContentsCreationOverridden(
|
||||
@@ -2289,12 +2289,11 @@ bool Browser::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
- const std::string& frame_name,
|
||||
- const GURL& target_url) {
|
||||
+ const content::mojom::CreateNewWindowParams& params) {
|
||||
if (IsActorCoordinatorActingOnTab(
|
||||
profile(), content::WebContents::FromRenderFrameHost(opener))) {
|
||||
// If an ActorCoordinator is acting on the opener, prevent it from creating
|
||||
@@ -2405,7 +2404,7 @@ bool Browser::IsWebContentsCreationOverridden(
|
||||
return (window_container_type ==
|
||||
content::mojom::WindowContainerType::BACKGROUND &&
|
||||
ShouldCreateBackgroundContents(source_site_instance, opener_url,
|
||||
- frame_name));
|
||||
+ params.frame));
|
||||
return window_container_type ==
|
||||
content::mojom::WindowContainerType::BACKGROUND &&
|
||||
ShouldCreateBackgroundContents(source_site_instance, opener_url,
|
||||
- frame_name);
|
||||
+ params.frame_name);
|
||||
}
|
||||
|
||||
WebContents* Browser::CreateCustomWebContents(
|
||||
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
|
||||
index 1de7f9596b2f8f545ad5da7db51a35e5e0fc8592..0db8f52ef8375970f966fe8a2e3e06a8b2eeac02 100644
|
||||
index ce1e404e45a60e43de9580fe8d60fa72ec90b8f4..9267e93fdd03fad3848a45a1c6d090566cac317c 100644
|
||||
--- a/chrome/browser/ui/browser.h
|
||||
+++ b/chrome/browser/ui/browser.h
|
||||
@@ -1026,8 +1026,7 @@ class Browser : public TabStripModelObserver,
|
||||
@@ -1005,8 +1005,7 @@ class Browser : public TabStripModelObserver,
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -117,10 +113,10 @@ index 1de7f9596b2f8f545ad5da7db51a35e5e0fc8592..0db8f52ef8375970f966fe8a2e3e06a8
|
||||
content::RenderFrameHost* opener,
|
||||
content::SiteInstance* source_site_instance,
|
||||
diff --git a/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc b/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc
|
||||
index a05510eadf5c9ff24bb7999aa76229946319280f..a80ecc46f8a6b84de83d608257d45ae61ccc2170 100644
|
||||
index 0d2a68ea6b9f08b5c1f1113181b08d55a3265192..0dfa27fa14d1308c059534953e190922ddb3bc0a 100644
|
||||
--- a/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc
|
||||
+++ b/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc
|
||||
@@ -206,8 +206,7 @@ bool PresentationReceiverWindowController::IsWebContentsCreationOverridden(
|
||||
@@ -205,8 +205,7 @@ bool PresentationReceiverWindowController::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -131,10 +127,10 @@ index a05510eadf5c9ff24bb7999aa76229946319280f..a80ecc46f8a6b84de83d608257d45ae6
|
||||
// uses this to spawn new windows/tabs, which is also not allowed for
|
||||
// local presentations.
|
||||
diff --git a/chrome/browser/ui/media_router/presentation_receiver_window_controller.h b/chrome/browser/ui/media_router/presentation_receiver_window_controller.h
|
||||
index 3fc06be01f20e8cd314d95d73a3f58c2f0742fe9..c07910ae59a185442f37ea6e7b96fdf3a33aba82 100644
|
||||
index ca72b324bf7c3b81ac94b53f0ff454d2df177950..d60ef3075d126e2bbd50c8469f2bf67cfa05c6f7 100644
|
||||
--- a/chrome/browser/ui/media_router/presentation_receiver_window_controller.h
|
||||
+++ b/chrome/browser/ui/media_router/presentation_receiver_window_controller.h
|
||||
@@ -106,8 +106,7 @@ class PresentationReceiverWindowController final
|
||||
@@ -105,8 +105,7 @@ class PresentationReceiverWindowController final
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -145,10 +141,10 @@ index 3fc06be01f20e8cd314d95d73a3f58c2f0742fe9..c07910ae59a185442f37ea6e7b96fdf3
|
||||
// The profile used for the presentation.
|
||||
raw_ptr<Profile, DanglingUntriaged> otr_profile_;
|
||||
diff --git a/chrome/browser/ui/views/hats/hats_next_web_dialog.cc b/chrome/browser/ui/views/hats/hats_next_web_dialog.cc
|
||||
index 1c30afe192809d85ced6af595347353ec3cb5364..af48bb2755c33f6c372be6b51048b3cf3fd0be0b 100644
|
||||
index 1085003ab18d471d5c018ac68041924d458fcec7..4aac70febec9f0abadd1ecb96d9066e6c270efca 100644
|
||||
--- a/chrome/browser/ui/views/hats/hats_next_web_dialog.cc
|
||||
+++ b/chrome/browser/ui/views/hats/hats_next_web_dialog.cc
|
||||
@@ -101,8 +101,7 @@ class HatsNextWebDialog::HatsWebView : public views::WebView {
|
||||
@@ -100,8 +100,7 @@ class HatsNextWebDialog::HatsWebView : public views::WebView {
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -159,10 +155,10 @@ index 1c30afe192809d85ced6af595347353ec3cb5364..af48bb2755c33f6c372be6b51048b3cf
|
||||
}
|
||||
content::WebContents* CreateCustomWebContents(
|
||||
diff --git a/components/embedder_support/android/delegate/web_contents_delegate_android.cc b/components/embedder_support/android/delegate/web_contents_delegate_android.cc
|
||||
index 807f43c164015e9372623b6ca9db1293640a530f..5e1875cde93f27e3d0324c84b94f076b33123495 100644
|
||||
index e0264aff5b60bb5e76ac7687222403dfba516e66..915abd2475f6be95d973f827522f7ef12052a81c 100644
|
||||
--- a/components/embedder_support/android/delegate/web_contents_delegate_android.cc
|
||||
+++ b/components/embedder_support/android/delegate/web_contents_delegate_android.cc
|
||||
@@ -199,14 +199,13 @@ bool WebContentsDelegateAndroid::IsWebContentsCreationOverridden(
|
||||
@@ -189,14 +189,13 @@ bool WebContentsDelegateAndroid::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -180,10 +176,10 @@ index 807f43c164015e9372623b6ca9db1293640a530f..5e1875cde93f27e3d0324c84b94f076b
|
||||
java_gurl);
|
||||
}
|
||||
diff --git a/components/embedder_support/android/delegate/web_contents_delegate_android.h b/components/embedder_support/android/delegate/web_contents_delegate_android.h
|
||||
index 7a8cdc28f87399e494a58490cdc4ac0dd4b06520..0c2a83b44f6909b5b3a6303715e1611d039711bb 100644
|
||||
index 67a01b48ae88c7e25aeb5c5103b26afa037f4f97..0ceb539c9c3051b5521236cf866ccb107727c8a9 100644
|
||||
--- a/components/embedder_support/android/delegate/web_contents_delegate_android.h
|
||||
+++ b/components/embedder_support/android/delegate/web_contents_delegate_android.h
|
||||
@@ -84,8 +84,7 @@ class WebContentsDelegateAndroid : public content::WebContentsDelegate {
|
||||
@@ -82,8 +82,7 @@ class WebContentsDelegateAndroid : public content::WebContentsDelegate {
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -194,10 +190,10 @@ index 7a8cdc28f87399e494a58490cdc4ac0dd4b06520..0c2a83b44f6909b5b3a6303715e1611d
|
||||
bool DidAddMessageToConsole(content::WebContents* source,
|
||||
blink::mojom::ConsoleMessageLevel log_level,
|
||||
diff --git a/components/offline_pages/content/background_loader/background_loader_contents.cc b/components/offline_pages/content/background_loader/background_loader_contents.cc
|
||||
index 14f2758f2d71d4d4ba77e4fcb9be40bb878526e0..536db4f8fe9771b60f0359df5c680b298c89cad4 100644
|
||||
index e0e9a5a8c1d8c242d39935e2456052619af33cc6..80518793447c70e8fc1dae9b42a59d40427ae52b 100644
|
||||
--- a/components/offline_pages/content/background_loader/background_loader_contents.cc
|
||||
+++ b/components/offline_pages/content/background_loader/background_loader_contents.cc
|
||||
@@ -86,8 +86,7 @@ bool BackgroundLoaderContents::IsWebContentsCreationOverridden(
|
||||
@@ -89,8 +89,7 @@ bool BackgroundLoaderContents::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -208,7 +204,7 @@ index 14f2758f2d71d4d4ba77e4fcb9be40bb878526e0..536db4f8fe9771b60f0359df5c680b29
|
||||
return true;
|
||||
}
|
||||
diff --git a/components/offline_pages/content/background_loader/background_loader_contents.h b/components/offline_pages/content/background_loader/background_loader_contents.h
|
||||
index b969f1d97b7e3396119b579cfbe61e19ff7d2dd4..b8d6169652da28266a514938b45b39c58df53573 100644
|
||||
index c6838c83ef971b88769b1f3fba8095025ae25464..2da6a4e08340e72ba7de5d03444c2f17250c5eca 100644
|
||||
--- a/components/offline_pages/content/background_loader/background_loader_contents.h
|
||||
+++ b/components/offline_pages/content/background_loader/background_loader_contents.h
|
||||
@@ -66,8 +66,7 @@ class BackgroundLoaderContents : public content::WebContentsDelegate {
|
||||
@@ -222,24 +218,24 @@ index b969f1d97b7e3396119b579cfbe61e19ff7d2dd4..b8d6169652da28266a514938b45b39c5
|
||||
content::WebContents* AddNewContents(
|
||||
content::WebContents* source,
|
||||
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
||||
index d57f205ea7dd4737126ddd7f2284d72eddae9e8f..bf6a239f566ec39efdacce5b74014d2995ba868e 100644
|
||||
index d13c38de7a2e69565020ab92c874bf1289d63833..d7ec62c6761bcc8d4bb5889e873e22c4a27e7f17 100644
|
||||
--- a/content/browser/web_contents/web_contents_impl.cc
|
||||
+++ b/content/browser/web_contents/web_contents_impl.cc
|
||||
@@ -5172,8 +5172,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
if (delegate_ &&
|
||||
delegate_->IsWebContentsCreationOverridden(
|
||||
opener, source_site_instance, params.window_container_type,
|
||||
- opener->GetLastCommittedURL(), params.frame_name,
|
||||
- params.target_url)) {
|
||||
+ opener->GetLastCommittedURL(), params)) {
|
||||
@@ -4983,8 +4983,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
// TODO(crbug.com/40202416): Support a way for MPArch guests to support this.
|
||||
if (delegate_ && delegate_->IsWebContentsCreationOverridden(
|
||||
source_site_instance, params.window_container_type,
|
||||
- opener->GetLastCommittedURL(), params.frame_name,
|
||||
- params.target_url)) {
|
||||
+ opener->GetLastCommittedURL(), params)) {
|
||||
auto* web_contents_impl =
|
||||
static_cast<WebContentsImpl*>(delegate_->CreateCustomWebContents(
|
||||
opener, source_site_instance, is_new_browsing_instance,
|
||||
diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc
|
||||
index f6ab6ab2b036c7621b429181c3ff89d9f1ff77f9..d151ba757ae81c6f023ee08328ab155405b0fb95 100644
|
||||
index 97a3ea6f292563a41fd41f812ac72526a96d8471..b299dd5659100d317a3574e902bf2c29c5defd2c 100644
|
||||
--- a/content/public/browser/web_contents_delegate.cc
|
||||
+++ b/content/public/browser/web_contents_delegate.cc
|
||||
@@ -160,8 +160,7 @@ bool WebContentsDelegate::IsWebContentsCreationOverridden(
|
||||
@@ -159,8 +159,7 @@ bool WebContentsDelegate::IsWebContentsCreationOverridden(
|
||||
SiteInstance* source_site_instance,
|
||||
mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -250,10 +246,10 @@ index f6ab6ab2b036c7621b429181c3ff89d9f1ff77f9..d151ba757ae81c6f023ee08328ab1554
|
||||
}
|
||||
|
||||
diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
|
||||
index 89c3f86bc828c5bf844bb103477c0772ba275dc5..c3eef892eef2c42c46926be223fe950823e6943d 100644
|
||||
index 8a18958035cc1dd26be558349f64f7727570c4ba..7d9c9b06bcc57ef5eb0a2ca74ee20632a1393f9e 100644
|
||||
--- a/content/public/browser/web_contents_delegate.h
|
||||
+++ b/content/public/browser/web_contents_delegate.h
|
||||
@@ -359,8 +359,7 @@ class CONTENT_EXPORT WebContentsDelegate {
|
||||
@@ -355,8 +355,7 @@ class CONTENT_EXPORT WebContentsDelegate {
|
||||
SiteInstance* source_site_instance,
|
||||
mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -264,10 +260,10 @@ index 89c3f86bc828c5bf844bb103477c0772ba275dc5..c3eef892eef2c42c46926be223fe9508
|
||||
// Allow delegate to creates a custom WebContents when
|
||||
// WebContents::CreateNewWindow() is called. This function is only called
|
||||
diff --git a/extensions/browser/guest_view/app_view/app_view_guest.cc b/extensions/browser/guest_view/app_view/app_view_guest.cc
|
||||
index 0f2c21513e07e8ddb387c165754d7ec67942a719..c381abf67c261b92f1c65c485b69321f44080343 100644
|
||||
index f8b00fec3f2786822b22c052051c524f766c059d..85a535d0b1e49619fec8c9f5c67896204c9fb164 100644
|
||||
--- a/extensions/browser/guest_view/app_view/app_view_guest.cc
|
||||
+++ b/extensions/browser/guest_view/app_view/app_view_guest.cc
|
||||
@@ -154,8 +154,7 @@ bool AppViewGuest::IsWebContentsCreationOverridden(
|
||||
@@ -153,8 +153,7 @@ bool AppViewGuest::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -278,7 +274,7 @@ index 0f2c21513e07e8ddb387c165754d7ec67942a719..c381abf67c261b92f1c65c485b69321f
|
||||
|
||||
return true;
|
||||
diff --git a/extensions/browser/guest_view/app_view/app_view_guest.h b/extensions/browser/guest_view/app_view/app_view_guest.h
|
||||
index 7695578f626f2a0c7fefae2bc1d5c35e5ac154f2..78958bff12ce41ae5ad77f43279a4b35b9408a12 100644
|
||||
index 136448c9df06b9704e95d2797a60907d7ec5170a..21cc7b08dd8f9e4a32d29dd35c42ec2ce9f6cd53 100644
|
||||
--- a/extensions/browser/guest_view/app_view/app_view_guest.h
|
||||
+++ b/extensions/browser/guest_view/app_view/app_view_guest.h
|
||||
@@ -10,6 +10,7 @@
|
||||
@@ -289,7 +285,7 @@ index 7695578f626f2a0c7fefae2bc1d5c35e5ac154f2..78958bff12ce41ae5ad77f43279a4b35
|
||||
#include "extensions/browser/guest_view/app_view/app_view_guest_delegate.h"
|
||||
#include "extensions/browser/lazy_context_task_queue.h"
|
||||
|
||||
@@ -80,8 +81,7 @@ class AppViewGuest : public guest_view::GuestView<AppViewGuest> {
|
||||
@@ -79,8 +80,7 @@ class AppViewGuest : public guest_view::GuestView<AppViewGuest> {
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -300,10 +296,10 @@ index 7695578f626f2a0c7fefae2bc1d5c35e5ac154f2..78958bff12ce41ae5ad77f43279a4b35
|
||||
content::RenderFrameHost* opener,
|
||||
content::SiteInstance* source_site_instance,
|
||||
diff --git a/extensions/browser/guest_view/extension_options/extension_options_guest.cc b/extensions/browser/guest_view/extension_options/extension_options_guest.cc
|
||||
index 5bd9d59a961a03f3cd3a806bc1af58c3eaee2b58..40d7ae8d6248163524a8c1350b625e107a8ae64a 100644
|
||||
index 2fca443b4bebf29c2835440a9db8a56f7373032f..6b704b57c08714b0a314e98d49e58676987d2995 100644
|
||||
--- a/extensions/browser/guest_view/extension_options/extension_options_guest.cc
|
||||
+++ b/extensions/browser/guest_view/extension_options/extension_options_guest.cc
|
||||
@@ -263,8 +263,7 @@ bool ExtensionOptionsGuest::IsWebContentsCreationOverridden(
|
||||
@@ -262,8 +262,7 @@ bool ExtensionOptionsGuest::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -314,10 +310,10 @@ index 5bd9d59a961a03f3cd3a806bc1af58c3eaee2b58..40d7ae8d6248163524a8c1350b625e10
|
||||
|
||||
// This method handles opening links from within the guest. Since this guest
|
||||
diff --git a/extensions/browser/guest_view/extension_options/extension_options_guest.h b/extensions/browser/guest_view/extension_options/extension_options_guest.h
|
||||
index 56d86e3d1179df2d5f34eb6216989aef2687f49f..236f3ccf8354b156737e03929ee538f99f1f4adf 100644
|
||||
index e39031afd8fff7cb6e278555cc58a48d86407d65..f67f6a5603c1fa9e66ccdde9b601df9a11cae738 100644
|
||||
--- a/extensions/browser/guest_view/extension_options/extension_options_guest.h
|
||||
+++ b/extensions/browser/guest_view/extension_options/extension_options_guest.h
|
||||
@@ -74,8 +74,7 @@ class ExtensionOptionsGuest
|
||||
@@ -73,8 +73,7 @@ class ExtensionOptionsGuest
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -328,10 +324,10 @@ index 56d86e3d1179df2d5f34eb6216989aef2687f49f..236f3ccf8354b156737e03929ee538f9
|
||||
content::RenderFrameHost* opener,
|
||||
content::SiteInstance* source_site_instance,
|
||||
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
|
||||
index 0bba5f4b0abdaa55b7e406d39ccf3de33bf53194..ed4b8e0215a12adf95273109f7e4968d7b0cbf2a 100644
|
||||
index 60de0d74ee40fedcbae96e5049e21dc238bf33bf..c568d4d08f772e1d381820bed826a0b64a631449 100644
|
||||
--- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
|
||||
+++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
|
||||
@@ -453,8 +453,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden(
|
||||
@@ -452,8 +452,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -342,10 +338,10 @@ index 0bba5f4b0abdaa55b7e406d39ccf3de33bf53194..ed4b8e0215a12adf95273109f7e4968d
|
||||
|
||||
return true;
|
||||
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
|
||||
index 7eeffdfbda9611806c6f260f0c68f6d84689cb7e..5d8f6d132068d7fabaa52bc61354c71a8ac8cd20 100644
|
||||
index 2dcf51f335f5dac39f431c3e0f56f8789f33d40b..2b433624d0604e0b9da5117b9e83cc1559b74740 100644
|
||||
--- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
|
||||
+++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
|
||||
@@ -187,8 +187,7 @@ class MimeHandlerViewGuest
|
||||
@@ -186,8 +186,7 @@ class MimeHandlerViewGuest
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -356,10 +352,10 @@ index 7eeffdfbda9611806c6f260f0c68f6d84689cb7e..5d8f6d132068d7fabaa52bc61354c71a
|
||||
content::RenderFrameHost* opener,
|
||||
content::SiteInstance* source_site_instance,
|
||||
diff --git a/fuchsia_web/webengine/browser/frame_impl.cc b/fuchsia_web/webengine/browser/frame_impl.cc
|
||||
index bd09d0f34a1610d64a1438b618ef5b3786315e91..4b2a979db1e00bc0d7f3b1b54570c305070acccc 100644
|
||||
index 635050eedc20fb89608677bcebeb5f8187bd4b59..1220f377169f8209db39654b7ddbf1da52c017b7 100644
|
||||
--- a/fuchsia_web/webengine/browser/frame_impl.cc
|
||||
+++ b/fuchsia_web/webengine/browser/frame_impl.cc
|
||||
@@ -581,8 +581,7 @@ bool FrameImpl::IsWebContentsCreationOverridden(
|
||||
@@ -575,8 +575,7 @@ bool FrameImpl::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -370,10 +366,10 @@ index bd09d0f34a1610d64a1438b618ef5b3786315e91..4b2a979db1e00bc0d7f3b1b54570c305
|
||||
// can catch bad client behavior while not interfering with normal operation.
|
||||
constexpr size_t kMaxPendingWebContentsCount = 10;
|
||||
diff --git a/fuchsia_web/webengine/browser/frame_impl.h b/fuchsia_web/webengine/browser/frame_impl.h
|
||||
index 756d4192271d6a65cfe8e1511737c565b543cb1f..5688f6f745056565c3c01947f741c4d13e27b6ae 100644
|
||||
index 1012a909ef1fcae51c218ae519fe7e0db65ab087..127b1ae940bc9313aecb635e2b01bb6f541d9adb 100644
|
||||
--- a/fuchsia_web/webengine/browser/frame_impl.h
|
||||
+++ b/fuchsia_web/webengine/browser/frame_impl.h
|
||||
@@ -308,8 +308,7 @@ class WEB_ENGINE_EXPORT FrameImpl : public fuchsia::web::Frame,
|
||||
@@ -307,8 +307,7 @@ class WEB_ENGINE_EXPORT FrameImpl : public fuchsia::web::Frame,
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -384,10 +380,10 @@ index 756d4192271d6a65cfe8e1511737c565b543cb1f..5688f6f745056565c3c01947f741c4d1
|
||||
int opener_render_process_id,
|
||||
int opener_render_frame_id,
|
||||
diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc
|
||||
index b8f48c883d7adfd765b1561fd00e563ab54d20f5..0b3d8eef0ed0021d3546ff963e721eae277dcb1b 100644
|
||||
index 7ca1e83ba1fd2dc5ea7c7ce644c3b7c54b9999f9..c1639653714d6973bcb5a0b37cb7028db8406742 100644
|
||||
--- a/headless/lib/browser/headless_web_contents_impl.cc
|
||||
+++ b/headless/lib/browser/headless_web_contents_impl.cc
|
||||
@@ -207,8 +207,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate {
|
||||
@@ -206,8 +206,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate {
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -398,10 +394,10 @@ index b8f48c883d7adfd765b1561fd00e563ab54d20f5..0b3d8eef0ed0021d3546ff963e721eae
|
||||
->options()
|
||||
->block_new_web_contents();
|
||||
diff --git a/ui/views/controls/webview/web_dialog_view.cc b/ui/views/controls/webview/web_dialog_view.cc
|
||||
index 42e0654da5659ba647529c4b0b97ec5df61d59a1..406e2ca73c182005014b56824e89ddfb25fd28f5 100644
|
||||
index bf432db4ca8463f2451dc09d5ca484da1235634f..e144be74ce2d34f50d26d08d5bf206f7aa64c5d3 100644
|
||||
--- a/ui/views/controls/webview/web_dialog_view.cc
|
||||
+++ b/ui/views/controls/webview/web_dialog_view.cc
|
||||
@@ -490,8 +490,7 @@ bool WebDialogView::IsWebContentsCreationOverridden(
|
||||
@@ -487,8 +487,7 @@ bool WebDialogView::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
@@ -412,10 +408,10 @@ index 42e0654da5659ba647529c4b0b97ec5df61d59a1..406e2ca73c182005014b56824e89ddfb
|
||||
return delegate_->HandleShouldOverrideWebContentsCreation();
|
||||
}
|
||||
diff --git a/ui/views/controls/webview/web_dialog_view.h b/ui/views/controls/webview/web_dialog_view.h
|
||||
index 0fa7e807d22f6f04b84f2d949fbdf892b94996bf..b0490ae36c9999a766bbf346e35807740f4f9af6 100644
|
||||
index c96aeb2571961fa2ad033ca38600006e0e657699..2c733734103bf2cc0af9bcfb32d753053a287775 100644
|
||||
--- a/ui/views/controls/webview/web_dialog_view.h
|
||||
+++ b/ui/views/controls/webview/web_dialog_view.h
|
||||
@@ -168,8 +168,7 @@ class WEBVIEW_EXPORT WebDialogView : public ClientView,
|
||||
@@ -167,8 +167,7 @@ class WEBVIEW_EXPORT WebDialogView : public ClientView,
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Charles Kerr <charles@charleskerr.com>
|
||||
Date: Sat, 22 Feb 2025 13:15:39 -0600
|
||||
Subject: chore: remove conflicting allow_unsafe_libc_calls
|
||||
|
||||
We want builds to fail if a buffer warning comes from Electron code but
|
||||
not from code that we don't maintain (e.g. upstream Chromium code), so
|
||||
//electron/electron_unsafe_buffer_paths.txt turns off Chromium warnings.
|
||||
|
||||
There are some upstream files that generate warnings *and* also have
|
||||
pragmas that override //electron/electron_unsafe_buffer_paths.txt,
|
||||
forcing them to be tested. This breaks our build.
|
||||
|
||||
Files can be removed from this patch when upstream either removes the
|
||||
pragma or fixes the other warnings. This patch can be removed when no
|
||||
files are left.
|
||||
|
||||
diff --git a/net/cookies/parsed_cookie.cc b/net/cookies/parsed_cookie.cc
|
||||
index 7d5d0106a3675b3fa21b0e00a755f5c0ed11c87b..d26c645d70b54b31815c8140954ee6d0a34fa8af 100644
|
||||
--- a/net/cookies/parsed_cookie.cc
|
||||
+++ b/net/cookies/parsed_cookie.cc
|
||||
@@ -2,11 +2,6 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
-#ifdef UNSAFE_BUFFERS_BUILD
|
||||
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
|
||||
-#pragma allow_unsafe_libc_calls
|
||||
-#endif
|
||||
-
|
||||
// Portions of this code based on Mozilla:
|
||||
// (netwerk/cookie/src/nsCookieService.cpp)
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
diff --git a/net/http/http_response_headers.cc b/net/http/http_response_headers.cc
|
||||
index 11572f927d97da20627dec498b92e445b5db4589..9b02d35a19d8610ade71b96c11551a1050847b49 100644
|
||||
--- a/net/http/http_response_headers.cc
|
||||
+++ b/net/http/http_response_headers.cc
|
||||
@@ -2,11 +2,6 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
-#ifdef UNSAFE_BUFFERS_BUILD
|
||||
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
|
||||
-#pragma allow_unsafe_libc_calls
|
||||
-#endif
|
||||
-
|
||||
// The rules for header parsing were borrowed from Firefox:
|
||||
// http://lxr.mozilla.org/seamonkey/source/netwerk/protocol/http/src/nsHttpResponseHead.cpp
|
||||
// The rules for parsing content-types were also borrowed from Firefox:
|
||||
@@ -11,7 +11,7 @@ not need this dependency.
|
||||
refs https://chromium-review.googlesource.com/c/chromium/src/+/5573603
|
||||
|
||||
diff --git a/chrome/browser/ui/color/BUILD.gn b/chrome/browser/ui/color/BUILD.gn
|
||||
index 29c3dafa96df631e36aa1ced6798990c768adeaa..0281a50f04fecfc4ded3805a8f9637e184288581 100644
|
||||
index 77c7485b0fa885ddff38f336d1c7a52f2e969c73..045c0751a0c43f3360e334dd227b6cff7ddfd681 100644
|
||||
--- a/chrome/browser/ui/color/BUILD.gn
|
||||
+++ b/chrome/browser/ui/color/BUILD.gn
|
||||
@@ -84,9 +84,6 @@ source_set("mixers") {
|
||||
|
||||
@@ -39,10 +39,10 @@ index e87c180342b967756efeb701c73207fcee8754f1..42e37564e585987d367921568f0f1d2b
|
||||
NOTREACHED();
|
||||
}
|
||||
diff --git a/ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_ozone.cc b/ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_ozone.cc
|
||||
index b6985bd63a34c55154fcfae601add6ce6c451704..fb44cc65b1a15c8b69410a2a2cb925a0326bb438 100644
|
||||
index c98ecc36007185052481b6479b2ba4608e326021..dd0e4553b78997beea0f11242eeb9f759359066f 100644
|
||||
--- a/ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_ozone.cc
|
||||
+++ b/ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_ozone.cc
|
||||
@@ -147,7 +147,8 @@ bool GlobalAcceleratorListenerOzone::StartListeningForAccelerator(
|
||||
@@ -111,7 +111,8 @@ bool GlobalAcceleratorListenerOzone::StartListeningForAccelerator(
|
||||
const bool registered =
|
||||
platform_global_shortcut_listener_->RegisterAccelerator(
|
||||
accelerator.key_code(), accelerator.IsAltDown(),
|
||||
@@ -52,7 +52,7 @@ index b6985bd63a34c55154fcfae601add6ce6c451704..fb44cc65b1a15c8b69410a2a2cb925a0
|
||||
if (registered) {
|
||||
registered_hot_keys_.insert(accelerator);
|
||||
}
|
||||
@@ -162,14 +163,15 @@ void GlobalAcceleratorListenerOzone::StopListeningForAccelerator(
|
||||
@@ -126,14 +127,15 @@ void GlobalAcceleratorListenerOzone::StopListeningForAccelerator(
|
||||
|
||||
platform_global_shortcut_listener_->UnregisterAccelerator(
|
||||
accelerator.key_code(), accelerator.IsAltDown(), accelerator.IsCtrlDown(),
|
||||
@@ -70,7 +70,7 @@ index b6985bd63a34c55154fcfae601add6ce6c451704..fb44cc65b1a15c8b69410a2a2cb925a0
|
||||
int modifiers = 0;
|
||||
if (is_alt_down) {
|
||||
modifiers |= ui::EF_ALT_DOWN;
|
||||
@@ -180,6 +182,9 @@ void GlobalAcceleratorListenerOzone::OnKeyPressed(ui::KeyboardCode key_code,
|
||||
@@ -144,6 +146,9 @@ void GlobalAcceleratorListenerOzone::OnKeyPressed(ui::KeyboardCode key_code,
|
||||
if (is_shift_down) {
|
||||
modifiers |= ui::EF_SHIFT_DOWN;
|
||||
}
|
||||
@@ -95,10 +95,10 @@ index 9e63dd9d33abc89a7bbef75992925356470ebb26..9071afc9bb01db832164909a202effaf
|
||||
|
||||
bool is_listening_ = false;
|
||||
diff --git a/ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_win.cc b/ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_win.cc
|
||||
index d3838460df1f61dbcee1cc6586632cb218fec97a..4351cfeea03b8adc5da8500db1faf6d8b8811454 100644
|
||||
index 034ccea0cda4265abbfc889178f4cba4f3bd7eb8..384f0968aca07cde1fe6434a318e5334f6ecbe9e 100644
|
||||
--- a/ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_win.cc
|
||||
+++ b/ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_win.cc
|
||||
@@ -66,6 +66,8 @@ void GlobalAcceleratorListenerWin::OnWndProc(HWND hwnd,
|
||||
@@ -67,6 +67,8 @@ void GlobalAcceleratorListenerWin::OnWndProc(HWND hwnd,
|
||||
modifiers |= (LOWORD(lparam) & MOD_SHIFT) ? ui::EF_SHIFT_DOWN : 0;
|
||||
modifiers |= (LOWORD(lparam) & MOD_ALT) ? ui::EF_ALT_DOWN : 0;
|
||||
modifiers |= (LOWORD(lparam) & MOD_CONTROL) ? ui::EF_CONTROL_DOWN : 0;
|
||||
@@ -107,7 +107,7 @@ index d3838460df1f61dbcee1cc6586632cb218fec97a..4351cfeea03b8adc5da8500db1faf6d8
|
||||
ui::Accelerator accelerator(ui::KeyboardCodeForWindowsKeyCode(key_code),
|
||||
modifiers);
|
||||
|
||||
@@ -96,6 +98,7 @@ bool GlobalAcceleratorListenerWin::StartListeningForAccelerator(
|
||||
@@ -97,6 +99,7 @@ bool GlobalAcceleratorListenerWin::StartListeningForAccelerator(
|
||||
modifiers |= accelerator.IsShiftDown() ? MOD_SHIFT : 0;
|
||||
modifiers |= accelerator.IsCtrlDown() ? MOD_CONTROL : 0;
|
||||
modifiers |= accelerator.IsAltDown() ? MOD_ALT : 0;
|
||||
|
||||
@@ -116,10 +116,10 @@ index 42fe73aefe44f218d6a5e8cb1550ff48859c4b70..a1235f0c7ad44ae9c9fdc805af5b9dc5
|
||||
arguments.push_back("--monitor-self");
|
||||
}
|
||||
diff --git a/components/crash/core/app/crashpad_win.cc b/components/crash/core/app/crashpad_win.cc
|
||||
index 5b811cbbc51544cbff7c2e99c3a7ced824990002..f2376d74fbd2c8196184035fc0fb24a0a8ebfe0e 100644
|
||||
index 0e00d26f79231a01e88981b30ff950e427cd31f4..70f014c75031f9529501e102f97e0e1adadb8ffb 100644
|
||||
--- a/components/crash/core/app/crashpad_win.cc
|
||||
+++ b/components/crash/core/app/crashpad_win.cc
|
||||
@@ -93,6 +93,7 @@ bool PlatformCrashpadInitialization(
|
||||
@@ -92,6 +92,7 @@ bool PlatformCrashpadInitialization(
|
||||
|
||||
std::map<std::string, std::string> process_annotations;
|
||||
GetPlatformCrashpadAnnotations(&process_annotations);
|
||||
@@ -127,7 +127,7 @@ index 5b811cbbc51544cbff7c2e99c3a7ced824990002..f2376d74fbd2c8196184035fc0fb24a0
|
||||
|
||||
std::string url = crash_reporter_client->GetUploadUrl();
|
||||
|
||||
@@ -133,6 +134,13 @@ bool PlatformCrashpadInitialization(
|
||||
@@ -129,6 +130,13 @@ bool PlatformCrashpadInitialization(
|
||||
|
||||
std::vector<std::string> arguments(start_arguments);
|
||||
|
||||
|
||||
@@ -7,10 +7,10 @@ By default, chromium sets up one v8 snapshot to be used in all v8 contexts. This
|
||||
to have a dedicated browser process v8 snapshot defined by the file `browser_v8_context_snapshot.bin`.
|
||||
|
||||
diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc
|
||||
index d55c408557e15650897c9ed6d5b6bd83178a551f..f1c54919990af204004380b0d84ee750de5e3c35 100644
|
||||
index 7550d3eb796059aeb108f25071c8028bddebb100..db59a147bd6b4fb596170d9b86c5e71a20b62abc 100644
|
||||
--- a/content/app/content_main_runner_impl.cc
|
||||
+++ b/content/app/content_main_runner_impl.cc
|
||||
@@ -275,8 +275,13 @@ void AsanProcessInfoCB(const char*, bool*) {
|
||||
@@ -273,8 +273,13 @@ void AsanProcessInfoCB(const char*, bool*) {
|
||||
}
|
||||
#endif // defined(ADDRESS_SANITIZER)
|
||||
|
||||
@@ -25,7 +25,7 @@ index d55c408557e15650897c9ed6d5b6bd83178a551f..f1c54919990af204004380b0d84ee750
|
||||
#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
|
||||
base::FileDescriptorStore& file_descriptor_store =
|
||||
base::FileDescriptorStore::GetInstance();
|
||||
@@ -305,11 +310,12 @@ bool ShouldLoadV8Snapshot(const base::CommandLine& command_line,
|
||||
@@ -303,11 +308,12 @@ bool ShouldLoadV8Snapshot(const base::CommandLine& command_line,
|
||||
|
||||
#endif // V8_USE_EXTERNAL_STARTUP_DATA
|
||||
|
||||
@@ -40,7 +40,7 @@ index d55c408557e15650897c9ed6d5b6bd83178a551f..f1c54919990af204004380b0d84ee750
|
||||
#endif // V8_USE_EXTERNAL_STARTUP_DATA
|
||||
}
|
||||
|
||||
@@ -1005,7 +1011,7 @@ int ContentMainRunnerImpl::Initialize(ContentMainParams params) {
|
||||
@@ -980,7 +986,7 @@ int ContentMainRunnerImpl::Initialize(ContentMainParams params) {
|
||||
return TerminateForFatalInitializationError();
|
||||
#endif // BUILDFLAG(IS_ANDROID) && (ICU_UTIL_DATA_IMPL == ICU_UTIL_DATA_FILE)
|
||||
|
||||
@@ -94,7 +94,7 @@ index db611d99a6c0f18f39967b38791822fda7d175b5..cc150475de655d5ef20a107ae3ef80c0
|
||||
friend class ContentClientCreator;
|
||||
friend class ContentClientInitializer;
|
||||
diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc
|
||||
index c79f996e2cbfe3e71f7de29424329dfc0d39a726..03c9bc18566794a668981bba6235b226e07eff74 100644
|
||||
index 11cafc3e1588cce52b76cc2f09f66b3e451fb087..e07bdaeccecc8015462e35d5cf4606335e2e962c 100644
|
||||
--- a/gin/v8_initializer.cc
|
||||
+++ b/gin/v8_initializer.cc
|
||||
@@ -660,8 +660,7 @@ void V8Initializer::GetV8ExternalSnapshotData(const char** snapshot_data_out,
|
||||
|
||||
@@ -8,10 +8,10 @@ Allow registering custom protocols to handle service worker main script fetching
|
||||
Refs https://bugs.chromium.org/p/chromium/issues/detail?id=996511
|
||||
|
||||
diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc
|
||||
index 8d92bd66121e43992a1e26f7d5860b803ec8c3cb..edbf15cdbc45918d5ec86220cfe8c5398fa1af2c 100644
|
||||
index ff25eb3670d2391c6fb41b7c612c30ee8798983f..116763b520713a5c61462b2e048a7358486831a2 100644
|
||||
--- a/content/browser/service_worker/service_worker_context_wrapper.cc
|
||||
+++ b/content/browser/service_worker/service_worker_context_wrapper.cc
|
||||
@@ -1979,6 +1979,26 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
|
||||
@@ -1969,6 +1969,26 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
|
||||
loader_factory_bundle_info =
|
||||
context()->loader_factory_bundle_for_update_check()->Clone();
|
||||
|
||||
@@ -38,7 +38,7 @@ index 8d92bd66121e43992a1e26f7d5860b803ec8c3cb..edbf15cdbc45918d5ec86220cfe8c539
|
||||
if (auto* config = content::WebUIConfigMap::GetInstance().GetConfig(
|
||||
browser_context(), scope)) {
|
||||
// If this is a Service Worker for a WebUI, the WebUI's URLDataSource
|
||||
@@ -1998,9 +2018,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
|
||||
@@ -1988,9 +2008,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
|
||||
features::kEnableServiceWorkersForChromeScheme) &&
|
||||
scope.scheme_piece() == kChromeUIScheme) {
|
||||
config->RegisterURLDataSource(browser_context());
|
||||
@@ -49,7 +49,7 @@ index 8d92bd66121e43992a1e26f7d5860b803ec8c3cb..edbf15cdbc45918d5ec86220cfe8c539
|
||||
.emplace(kChromeUIScheme, CreateWebUIServiceWorkerLoaderFactory(
|
||||
browser_context(), kChromeUIScheme,
|
||||
base::flat_set<std::string>()));
|
||||
@@ -2008,9 +2026,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
|
||||
@@ -1998,9 +2016,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
|
||||
features::kEnableServiceWorkersForChromeUntrusted) &&
|
||||
scope.scheme_piece() == kChromeUIUntrustedScheme) {
|
||||
config->RegisterURLDataSource(browser_context());
|
||||
|
||||
@@ -41,7 +41,7 @@ index a82e0b1a7e999817c8ee420ceddeb7ca9ee78caf..e07f4ded61a7a64983da1b6d07315aee
|
||||
|
||||
int DesktopMediaListBase::GetSourceCount() const {
|
||||
diff --git a/chrome/browser/media/webrtc/desktop_media_list_base.h b/chrome/browser/media/webrtc/desktop_media_list_base.h
|
||||
index de56c9b94f92e9abf69b1d4894e5d386cad6d3cd..f8955ef7cc43b1854b29841ed65260a1966a4b19 100644
|
||||
index 9368d56f2b434b1a7101f28908f070ad9908be7e..804eb2c7ede137b8c9d0cf43042ff7f20dad5b91 100644
|
||||
--- a/chrome/browser/media/webrtc/desktop_media_list_base.h
|
||||
+++ b/chrome/browser/media/webrtc/desktop_media_list_base.h
|
||||
@@ -39,7 +39,7 @@ class DesktopMediaListBase : public DesktopMediaList {
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: fix: disabling compositor recycling
|
||||
Compositor recycling is useful for Chrome because there can be many tabs and spinning up a compositor for each one would be costly. In practice, Chrome uses the parent compositor code path of browser_compositor_view_mac.mm; the NSView of each tab is detached when it's hidden and attached when it's shown. For Electron, there is no parent compositor, so we're forced into the "own compositor" code path, which seems to be non-optimal and pretty ruthless in terms of the release of resources. Electron has no real concept of multiple tabs per window, so it should be okay to disable this ruthless recycling altogether in Electron.
|
||||
|
||||
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
||||
index dc1dc1c15db217c4b8640b9c6ec6c051c0abb12b..52d8e830a68a6dfa3e3065548df3b69a5756ede2 100644
|
||||
index 1a726fb4a9e8173dc7da6901eb1632c7f326358e..ae8a4117db2f6bac1d62981e7c0e35cf1eee68da 100644
|
||||
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
|
||||
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
||||
@@ -560,7 +560,11 @@
|
||||
@@ -561,7 +561,11 @@
|
||||
return;
|
||||
|
||||
host()->WasHidden();
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: disable_hidden.patch
|
||||
Electron uses this to disable background throttling for hidden windows.
|
||||
|
||||
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
|
||||
index 252edf0bb40ba4c16061425013d9e4c559b91e78..624094ba6459f3663a12f868c4cb47dfa9f8dce1 100644
|
||||
index 573269ba54150d5350e5c3589217c5e7f41d560d..20fcda4eb20459b69247003c51c2a3ed37c7b1e8 100644
|
||||
--- a/content/browser/renderer_host/render_widget_host_impl.cc
|
||||
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
|
||||
@@ -833,6 +833,10 @@ void RenderWidgetHostImpl::WasHidden() {
|
||||
@@ -832,6 +832,10 @@ void RenderWidgetHostImpl::WasHidden() {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -21,10 +21,10 @@ index 252edf0bb40ba4c16061425013d9e4c559b91e78..624094ba6459f3663a12f868c4cb47df
|
||||
// Prompts should remain open and functional across tab switches.
|
||||
if (!delegate_ || !delegate_->IsWaitingForPointerLockPrompt(this)) {
|
||||
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h
|
||||
index f24d02054c89c8bc6b75e127146cb97a72e3f94a..9b8919ab2d8c9432c5d908337e7a19bd055b440e 100644
|
||||
index 3b3eec99c80a8d3081bb0b1b5cfda76c70d8d23c..d4a2affd94a2aa11299222822485e9df84da18fc 100644
|
||||
--- a/content/browser/renderer_host/render_widget_host_impl.h
|
||||
+++ b/content/browser/renderer_host/render_widget_host_impl.h
|
||||
@@ -1021,6 +1021,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl
|
||||
@@ -1016,6 +1016,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl
|
||||
// Requests a commit and forced redraw in the renderer compositor.
|
||||
void ForceRedrawForTesting();
|
||||
|
||||
@@ -35,7 +35,7 @@ index f24d02054c89c8bc6b75e127146cb97a72e3f94a..9b8919ab2d8c9432c5d908337e7a19bd
|
||||
// |routing_id| must not be MSG_ROUTING_NONE.
|
||||
// If this object outlives |delegate|, DetachDelegate() must be called when
|
||||
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
|
||||
index e6235611a2ae643f4c968fcc0dcd5b47baa0a081..a13dd521b7263c66c94dac3d3caf6ebbed92d229 100644
|
||||
index 5867fc3e77326991f30d835d08d3cfafe2b6687c..d719b546b8c3c59003698b26dead065da7d76341 100644
|
||||
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
|
||||
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
|
||||
@@ -643,7 +643,7 @@ void RenderWidgetHostViewAura::HideImpl() {
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Perry <perryuwang@tencent.com>
|
||||
Date: Wed, 24 Sep 2025 09:56:23 -0700
|
||||
Subject: Disable NSAutoFillHeuristicController on macOS 26
|
||||
|
||||
The reason for this issue is that NSAutoFillHeuristicController is
|
||||
enabled by default on macOS 26. In pages with <input> tags, browser
|
||||
process sends synchronized IPC messages to renderer process. At this
|
||||
point, if the renderer process also sends synchronized IPC messages to
|
||||
the browser process, it will cause a deadlock.
|
||||
|
||||
This bug can be reproduced on many websites. From the perspective of
|
||||
user experience, we should first disable this feature on macOS 26.
|
||||
|
||||
Bug: 446070423, 446481994
|
||||
Change-Id: I2d3855648980a22678548e373756fc156e28ecd7
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6965487
|
||||
Reviewed-by: Mark Mentovai <mark@chromium.org>
|
||||
Commit-Queue: Mark Mentovai <mark@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1520058}
|
||||
|
||||
diff --git a/content/app/mac_init.mm b/content/app/mac_init.mm
|
||||
index 603c25a1bd4a11b9dbe57ac6add81647302e63be..963f45a8936850b59013390faf7890bc4215f2d9 100644
|
||||
--- a/content/app/mac_init.mm
|
||||
+++ b/content/app/mac_init.mm
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
+#include "base/mac/mac_util.h"
|
||||
#include "content/common/mac/system_policy.h"
|
||||
|
||||
namespace content {
|
||||
@@ -29,6 +30,19 @@ void InitializeMac() {
|
||||
@"NSAppSleepDisabled" : @YES,
|
||||
}];
|
||||
|
||||
+ if (base::mac::MacOSVersion() >= 26'00'00) {
|
||||
+ [NSUserDefaults.standardUserDefaults registerDefaults:@{
|
||||
+ // Disable NSAutoFillHeuristicController on macOS 26. On macOS 26, the
|
||||
+ // browser process sends synchronized IPC messages to the renderer process
|
||||
+ // on pages with <input> tags. At this point, if the renderer process
|
||||
+ // sends a synchronized IPC message to the browser process, it will cause
|
||||
+ // a deadlock.
|
||||
+ // https://crbug.com/446070423
|
||||
+ // https://crbug.com/446481994
|
||||
+ @"NSAutoFillHeuristicControllerEnabled" : @NO,
|
||||
+ }];
|
||||
+ }
|
||||
+
|
||||
SetSystemPolicyCrashKeys();
|
||||
}
|
||||
|
||||
@@ -24,10 +24,10 @@ This patch temporarily disables the metrics so we can have green CI, and we
|
||||
should continue seeking for a real fix.
|
||||
|
||||
diff --git a/content/browser/renderer_host/navigator.cc b/content/browser/renderer_host/navigator.cc
|
||||
index 3c736de224325fec247308ea8adef3c1186029f9..8b5fd128120b2a4db387bf42b632c9e2e94f7cd4 100644
|
||||
index d05708d42a0dc1aea4faad3be19f558c93e93265..13dda0bf6560ca03c4c88e787cc4165dfe745b26 100644
|
||||
--- a/content/browser/renderer_host/navigator.cc
|
||||
+++ b/content/browser/renderer_host/navigator.cc
|
||||
@@ -1478,6 +1478,7 @@ void Navigator::RecordNavigationMetrics(
|
||||
@@ -1464,6 +1464,7 @@ void Navigator::RecordNavigationMetrics(
|
||||
.InMilliseconds());
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ index 3c736de224325fec247308ea8adef3c1186029f9..8b5fd128120b2a4db387bf42b632c9e2
|
||||
// If this is a same-process navigation and we have timestamps for unload
|
||||
// durations, fill those metrics out as well.
|
||||
if (params.unload_start && params.unload_end &&
|
||||
@@ -1527,6 +1528,7 @@ void Navigator::RecordNavigationMetrics(
|
||||
@@ -1513,6 +1514,7 @@ void Navigator::RecordNavigationMetrics(
|
||||
first_before_unload_start_time)
|
||||
.InMilliseconds());
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user