Compare commits
389
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
988c9e8110 | ||
|
|
cb3baf14f5 | ||
|
|
3dc5833d37 | ||
|
|
bd0ad9b858 | ||
|
|
8ed2e4a1e6 | ||
|
|
0c23c594a1 | ||
|
|
b855b1f4d3 | ||
|
|
43b0b3325f | ||
|
|
73bd3f72e0 | ||
|
|
fa29828566 | ||
|
|
b632e0d604 | ||
|
|
925f3452ce | ||
|
|
6b10069f92 | ||
|
|
932da2ddc3 | ||
|
|
08a05c03de | ||
|
|
d0acb9af5a | ||
|
|
0bf212cf9b | ||
|
|
62141931a7 | ||
|
|
5aab1a3f2a | ||
|
|
edba3a2430 | ||
|
|
2afc7b19a4 | ||
|
|
5e2e7d3817 | ||
|
|
ca9926de51 | ||
|
|
79b95d83fe | ||
|
|
c787e9a932 | ||
|
|
e8cb7f5b6c | ||
|
|
2a677c2453 | ||
|
|
9af44e67e6 | ||
|
|
0fb56ae592 | ||
|
|
880346893d | ||
|
|
0287d87391 | ||
|
|
f9ced0c819 | ||
|
|
50bf1e7137 | ||
|
|
8a021bb680 | ||
|
|
a8aed07597 | ||
|
|
6b30b1b2ba | ||
|
|
a23dc6d722 | ||
|
|
69724a461a | ||
|
|
1003da6c2e | ||
|
|
16109ace42 | ||
|
|
1468382f54 | ||
|
|
bf5b69343e | ||
|
|
63e4fcb119 | ||
|
|
271900671d | ||
|
|
a5159d2fd6 | ||
|
|
a48bb52d21 | ||
|
|
15d48b0614 | ||
|
|
c77fa98a16 | ||
|
|
6465669461 | ||
|
|
130b90c921 | ||
|
|
d1379887a6 | ||
|
|
bfd5fc63c2 | ||
|
|
416bb7c5cb | ||
|
|
32de090df4 | ||
|
|
31d4039f39 | ||
|
|
bc395b8bd9 | ||
|
|
41270b79c6 | ||
|
|
813bec3069 | ||
|
|
21fe58812e | ||
|
|
0cb2f33e3f | ||
|
|
d11d70028c | ||
|
|
b224fa6ab9 | ||
|
|
3d1185d594 | ||
|
|
ead22ceee7 | ||
|
|
d133d52d09 | ||
|
|
cdeda1d632 | ||
|
|
a1e722dbef | ||
|
|
8627614ac9 | ||
|
|
080634431f | ||
|
|
9b33511160 | ||
|
|
27d49f75f1 | ||
|
|
d0a7c9c0ae | ||
|
|
b947bec617 | ||
|
|
d24356fc41 | ||
|
|
50795297ae | ||
|
|
65d7b3483c | ||
|
|
c946bfccc2 | ||
|
|
90984b5000 | ||
|
|
8a4569c014 | ||
|
|
f964e2a760 | ||
|
|
3f39c33bc6 | ||
|
|
e30dd7c2d3 | ||
|
|
d19a6c6baf | ||
|
|
31e9cdbb46 | ||
|
|
1a191f7b3c | ||
|
|
a033b60f93 | ||
|
|
ad6c3e036a | ||
|
|
3171668658 | ||
|
|
5342ca5f64 | ||
|
|
da3acb5cc8 | ||
|
|
e14f3a6f11 | ||
|
|
b3c9bb99fa | ||
|
|
6ce74650ec | ||
|
|
153a54c07a | ||
|
|
7c97ec46c1 | ||
|
|
4a33091d47 | ||
|
|
ce00a93d11 | ||
|
|
52603e586c | ||
|
|
24808414a1 | ||
|
|
5ea94e4447 | ||
|
|
de48f82078 | ||
|
|
c8a1047c2a | ||
|
|
08596afae6 | ||
|
|
4e03cf9178 | ||
|
|
7ed59bd9d3 | ||
|
|
26bac9f92d | ||
|
|
2d042e369b | ||
|
|
876b263515 | ||
|
|
0b42946b0d | ||
|
|
00a870cadd | ||
|
|
eab93d000f | ||
|
|
0ae84a9ecb | ||
|
|
96b45f3e73 | ||
|
|
87ea617804 | ||
|
|
f2ac66e078 | ||
|
|
ebac364ef7 | ||
|
|
321e30c69e | ||
|
|
edd31a7ef7 | ||
|
|
be9bf4c7aa | ||
|
|
2ba2115028 | ||
|
|
e5fa7d55df | ||
|
|
22d97d6bd0 | ||
|
|
4f2dcb8c1f | ||
|
|
c4503f35da | ||
|
|
547f5f900f | ||
|
|
c7216dbf62 | ||
|
|
a449898e86 | ||
|
|
6d334c8b39 | ||
|
|
34ce904d75 | ||
|
|
644698ea2f | ||
|
|
6a62f6c5bc | ||
|
|
fac0478f88 | ||
|
|
a975b69283 | ||
|
|
db10f20ff4 | ||
|
|
870bc31b7f | ||
|
|
4aa9ca084d | ||
|
|
84d5f71b1a | ||
|
|
a27512888d | ||
|
|
02f8c36abe | ||
|
|
a086bfc8bf | ||
|
|
7287383fb1 | ||
|
|
75027203d5 | ||
|
|
4e72b80bf8 | ||
|
|
0d33718df5 | ||
|
|
7843b67b48 | ||
|
|
d102353b1b | ||
|
|
65ef4d754b | ||
|
|
4a5ca46798 | ||
|
|
054d093802 | ||
|
|
6cb4f95cb0 | ||
|
|
90c3c80a4e | ||
|
|
e77ef4cb3a | ||
|
|
245b33a600 | ||
|
|
5f09697d4c | ||
|
|
c82c4d77cf | ||
|
|
0f2a45495e | ||
|
|
558348760f | ||
|
|
cb29ab20ad | ||
|
|
e447987993 | ||
|
|
c713b95df6 | ||
|
|
3010fc430e | ||
|
|
90f190c76c | ||
|
|
8e844cf64f | ||
|
|
197769948d | ||
|
|
5bb45c09fe | ||
|
|
9c055b9658 | ||
|
|
b679afd33e | ||
|
|
c65ef30a0c | ||
|
|
43bed8c2c3 | ||
|
|
ff33bbeb52 | ||
|
|
224c227ee0 | ||
|
|
d2dd0ffb31 | ||
|
|
f1114a452e | ||
|
|
6605e1bf7e | ||
|
|
c11c063b9e | ||
|
|
0693a0e0f4 | ||
|
|
c17ff9e500 | ||
|
|
73028c53c5 | ||
|
|
2cec47c918 | ||
|
|
7b2759322a | ||
|
|
56c7cd99cd | ||
|
|
4648b0a301 | ||
|
|
03ac6cfc47 | ||
|
|
8a6d940119 | ||
|
|
07e31cfb37 | ||
|
|
4987ea1cfd | ||
|
|
cf3ef61d87 | ||
|
|
be1a99221e | ||
|
|
9e9b0660ce | ||
|
|
2e7927fab9 | ||
|
|
7d5f515019 | ||
|
|
1398295c85 | ||
|
|
b1cdb6763e | ||
|
|
ee072254f9 | ||
|
|
3cf5e136d8 | ||
|
|
2251675be7 | ||
|
|
97d638e44a | ||
|
|
f39022cb0c | ||
|
|
2124fd8aa7 | ||
|
|
d47193be86 | ||
|
|
b7e11987a4 | ||
|
|
a749ff3ef3 | ||
|
|
d83e1c3adf | ||
|
|
62ad38bed7 | ||
|
|
ec099bf550 | ||
|
|
71e8a62e51 | ||
|
|
830a6d560f | ||
|
|
0ce3d27376 | ||
|
|
f6863b03cd | ||
|
|
d306ffe4ae | ||
|
|
4a807a53f9 | ||
|
|
887cafc2b7 | ||
|
|
f44cbf8576 | ||
|
|
ec71bf728c | ||
|
|
56d2a9895f | ||
|
|
3ba00871a0 | ||
|
|
cc9036b369 | ||
|
|
ccf4ab91aa | ||
|
|
ed7af684bf | ||
|
|
851be9370b | ||
|
|
26d25d0ada | ||
|
|
ea1f596cfa | ||
|
|
fa513ce101 | ||
|
|
4549bfee99 | ||
|
|
d04c8d8c7d | ||
|
|
32f70ea69a | ||
|
|
f0704a2e31 | ||
|
|
8f2d973a11 | ||
|
|
f280140de8 | ||
|
|
020f02b474 | ||
|
|
5d614511d4 | ||
|
|
512449d26d | ||
|
|
8f68189b3b | ||
|
|
28351d9704 | ||
|
|
2eaadd2c39 | ||
|
|
69273cc9bb | ||
|
|
d22565d5db | ||
|
|
0867a78ab4 | ||
|
|
334b7a02b2 | ||
|
|
bdb2a4ef22 | ||
|
|
af12a65ed4 | ||
|
|
705a8e4ee7 | ||
|
|
106f3bbdd7 | ||
|
|
409ac177ee | ||
|
|
5e90c335b9 | ||
|
|
ea944bb5e6 | ||
|
|
86a6475730 | ||
|
|
6901f5c95c | ||
|
|
2b1534e8fa | ||
|
|
70b8bc3b69 | ||
|
|
af0c2dc9ba | ||
|
|
863f91eb53 | ||
|
|
33b5ec3a17 | ||
|
|
8472488087 | ||
|
|
54be9ddb29 | ||
|
|
8e1e69162a | ||
|
|
f670a4f607 | ||
|
|
540865281e | ||
|
|
6eca697ffb | ||
|
|
f9b2decefe | ||
|
|
57388ab4e3 | ||
|
|
cb240536bf | ||
|
|
a679a6763b | ||
|
|
5cf1c61c79 | ||
|
|
fb75694894 | ||
|
|
95f5d33c06 | ||
|
|
fdfab76bcb | ||
|
|
99ab223de2 | ||
|
|
25f72a0f55 | ||
|
|
6fa2e7b98f | ||
|
|
873bc4ea61 | ||
|
|
84c145ee0f | ||
|
|
04ddfbf174 | ||
|
|
b2824377c3 | ||
|
|
97edd08128 | ||
|
|
94a94e3723 | ||
|
|
c8b3003365 | ||
|
|
24bcd5b5e8 | ||
|
|
1e9da1d4e3 | ||
|
|
46d25fdcee | ||
|
|
5f64f84227 | ||
|
|
d053c28503 | ||
|
|
cf1d9c00eb | ||
|
|
ad41529d2c | ||
|
|
0c64054227 | ||
|
|
2c5a3eafdb | ||
|
|
610064ef2d | ||
|
|
f36bbcc871 | ||
|
|
52aa63df2f | ||
|
|
5a30f6fe3a | ||
|
|
8e5a82cb9e | ||
|
|
275c67ccfc | ||
|
|
fde090c0d3 | ||
|
|
093785d672 | ||
|
|
9640d4181e | ||
|
|
987bd8e182 | ||
|
|
6809060239 | ||
|
|
865e06194d | ||
|
|
af4b790e47 | ||
|
|
e465aeb3e3 | ||
|
|
949bde5919 | ||
|
|
63888d58b5 | ||
|
|
d605b439b5 | ||
|
|
158d0edb61 | ||
|
|
ca7ec7436f | ||
|
|
0f61cf27a2 | ||
|
|
a8d9bd2a5a | ||
|
|
13788fa3cd | ||
|
|
356eff743b | ||
|
|
9ef6219481 | ||
|
|
a9734772ef | ||
|
|
92f04466c5 | ||
|
|
fd33ddf3ed | ||
|
|
eadeb5b56a | ||
|
|
809d5d8d11 | ||
|
|
185dbf0bf1 | ||
|
|
aabb7ddc60 | ||
|
|
e17891afa7 | ||
|
|
7bb128eb6f | ||
|
|
3b57b30304 | ||
|
|
5c616c9244 | ||
|
|
edd60fee15 | ||
|
|
aeb696e438 | ||
|
|
4c05aa5e8c | ||
|
|
2a090f7e95 | ||
|
|
89f6b45f2b | ||
|
|
73b86425ae | ||
|
|
471b3db797 | ||
|
|
0600913c6e | ||
|
|
ce1c523641 | ||
|
|
39aa73de63 | ||
|
|
454dfbf192 | ||
|
|
acd8cb66d7 | ||
|
|
d15b126de7 | ||
|
|
82fe6e2890 | ||
|
|
bd40fa1341 | ||
|
|
e863789e56 | ||
|
|
1f48d03502 | ||
|
|
1a0a344a83 | ||
|
|
a048d60ff4 | ||
|
|
054870731c | ||
|
|
6d6ce62db9 | ||
|
|
e2c94716f4 | ||
|
|
7b63aafda8 | ||
|
|
7abd3f3248 | ||
|
|
5f1c3afb2c | ||
|
|
19305c3cce | ||
|
|
432114b0b2 | ||
|
|
70839b3003 | ||
|
|
7f78fca7ff | ||
|
|
ae0144b1ea | ||
|
|
358e4c93ae | ||
|
|
ae14559c83 | ||
|
|
9f621ec9c8 | ||
|
|
8b0ce0bcfd | ||
|
|
5bcfaea00d | ||
|
|
9746652b59 | ||
|
|
f3b10cb0df | ||
|
|
fca39bfad6 | ||
|
|
7335525354 | ||
|
|
446f62e18e | ||
|
|
acdbebf4ef | ||
|
|
7b8593a3a4 | ||
|
|
2035735bbb | ||
|
|
7fe8f0cac8 | ||
|
|
16a3bb2571 | ||
|
|
b954fbaff3 | ||
|
|
40e732c663 | ||
|
|
9d1714317b | ||
|
|
1d9b8e1b25 | ||
|
|
fcd9ffffda | ||
|
|
33376695eb | ||
|
|
4b8cc71d7b | ||
|
|
ef5008597f | ||
|
|
168513fda0 | ||
|
|
526f12aabe | ||
|
|
fcfee74206 | ||
|
|
8529298d06 | ||
|
|
ad07561b47 | ||
|
|
578650a021 | ||
|
|
3c75792a5f | ||
|
|
05044869f6 | ||
|
|
81257f2282 | ||
|
|
0e9691d965 | ||
|
|
42e58dacb5 | ||
|
|
8a22ade0e5 | ||
|
|
1057e27ed0 | ||
|
|
613a6f3248 | ||
|
|
4ee8223990 |
@@ -93,6 +93,7 @@ body:
|
|||||||
multiple: false
|
multiple: false
|
||||||
description: What version of Android are you running?
|
description: What version of Android are you running?
|
||||||
options:
|
options:
|
||||||
|
- Android 16
|
||||||
- Android 15
|
- Android 15
|
||||||
- Android 14
|
- Android 14
|
||||||
- Android 13
|
- Android 13
|
||||||
|
|||||||
@@ -148,6 +148,36 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
- name: Create issue ${{ env.VERSION }}
|
||||||
|
if: "${{ env.NEW_VERSION != '' }}"
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
GH=../../gh_2.18.1_linux_amd64/bin/gh
|
||||||
|
wget https://github.com/cli/cli/releases/download/v2.18.1/gh_2.18.1_linux_amd64.tar.gz
|
||||||
|
tar xfz gh_2.18.1_linux_amd64.tar.gz
|
||||||
|
|
||||||
|
cd cromite/tools
|
||||||
|
echo ${{ secrets.GITHUB_TOKEN }} | $GH auth login --with-token
|
||||||
|
|
||||||
|
echo Custom Release $CHR_VERSION >body.txt
|
||||||
|
|
||||||
|
if [[ "$LATEST_WIN" == "$CHR_VERSION" ]]; then
|
||||||
|
echo Using Windows Release >body.txt
|
||||||
|
echo "\`\`\`" >>body.txt
|
||||||
|
curl -s 'https://chromiumdash.appspot.com/fetch_releases?channel=Stable&platform=Windows&num=10&offset=0' | \
|
||||||
|
jq --arg LATEST "$LATEST_WIN" '.[] | select( .version == $LATEST )' >>body.txt
|
||||||
|
echo "\`\`\`" >>body.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$LATEST_ANDROID" == "$CHR_VERSION" ]]; then
|
||||||
|
echo Using Android Release >body.txt
|
||||||
|
echo "\`\`\`" >>body.txt
|
||||||
|
curl -s 'https://chromiumdash.appspot.com/fetch_releases?channel=Stable&platform=Android&num=10&offset=0' | \
|
||||||
|
jq --arg LATEST "$LATEST_ANDROID" '.[] | select( .version == $LATEST )' >>body.txt
|
||||||
|
echo "\`\`\`" >>body.txt
|
||||||
|
fi
|
||||||
|
$GH issue create -t "$CHR_VERSION: new chromium version" -F body.txt
|
||||||
|
|
||||||
- name: Update files under control
|
- name: Update files under control
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
@@ -197,33 +227,3 @@ jobs:
|
|||||||
body: ${{ env.MESSAGE }}
|
body: ${{ env.MESSAGE }}
|
||||||
delete-branch: true
|
delete-branch: true
|
||||||
branch-suffix: short-commit-hash
|
branch-suffix: short-commit-hash
|
||||||
|
|
||||||
- name: Create issue ${{ env.VERSION }}
|
|
||||||
if: "${{ env.NEW_VERSION != '' }}"
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
GH=../../gh_2.18.1_linux_amd64/bin/gh
|
|
||||||
wget https://github.com/cli/cli/releases/download/v2.18.1/gh_2.18.1_linux_amd64.tar.gz
|
|
||||||
tar xfz gh_2.18.1_linux_amd64.tar.gz
|
|
||||||
|
|
||||||
cd cromite/tools
|
|
||||||
echo ${{ secrets.GITHUB_TOKEN }} | $GH auth login --with-token
|
|
||||||
|
|
||||||
echo Custom Release $CHR_VERSION >body.txt
|
|
||||||
|
|
||||||
if [[ "$LATEST_WIN" == "$CHR_VERSION" ]]; then
|
|
||||||
echo Using Windows Release >body.txt
|
|
||||||
echo "\`\`\`" >>body.txt
|
|
||||||
curl -s 'https://chromiumdash.appspot.com/fetch_releases?channel=Stable&platform=Windows&num=10&offset=0' | \
|
|
||||||
jq --arg LATEST "$LATEST_WIN" '.[] | select( .version == $LATEST )' >>body.txt
|
|
||||||
echo "\`\`\`" >>body.txt
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$LATEST_ANDROID" == "$CHR_VERSION" ]]; then
|
|
||||||
echo Using Android Release >body.txt
|
|
||||||
echo "\`\`\`" >>body.txt
|
|
||||||
curl -s 'https://chromiumdash.appspot.com/fetch_releases?channel=Stable&platform=Android&num=10&offset=0' | \
|
|
||||||
jq --arg LATEST "$LATEST_ANDROID" '.[] | select( .version == $LATEST )' >>body.txt
|
|
||||||
echo "\`\`\`" >>body.txt
|
|
||||||
fi
|
|
||||||
$GH issue create -t "$CHR_VERSION: new chromium version" -F body.txt
|
|
||||||
|
|||||||
@@ -111,7 +111,6 @@ jobs:
|
|||||||
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/chr_arm64:/home/lg/working_dir/chromium/src/out/chr_arm64
|
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/chr_arm64:/home/lg/working_dir/chromium/src/out/chr_arm64
|
||||||
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/chr_x64:/home/lg/working_dir/chromium/src/out/chr_x64
|
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/chr_x64:/home/lg/working_dir/chromium/src/out/chr_x64
|
||||||
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/x64_webview:/home/lg/working_dir/chromium/src/out/x64_webview
|
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/x64_webview:/home/lg/working_dir/chromium/src/out/x64_webview
|
||||||
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/arm64_webview:/home/lg/working_dir/chromium/src/out/arm64_webview
|
|
||||||
- /tmp/proxy:/tmp/proxy
|
- /tmp/proxy:/tmp/proxy
|
||||||
- /win_sdk:/win_sdk
|
- /win_sdk:/win_sdk
|
||||||
|
|
||||||
@@ -129,7 +128,7 @@ jobs:
|
|||||||
http_proxy=
|
http_proxy=
|
||||||
https_proxy=
|
https_proxy=
|
||||||
|
|
||||||
# set out folder permissions
|
# setup folder permissions
|
||||||
test -d chromium/src/out/chr_arm || sudo mkdir -p chromium/src/out/chr_arm && \
|
test -d chromium/src/out/chr_arm || sudo mkdir -p chromium/src/out/chr_arm && \
|
||||||
sudo chown lg chromium/src/out &&
|
sudo chown lg chromium/src/out &&
|
||||||
sudo chown lg chromium/src/out/chr_arm
|
sudo chown lg chromium/src/out/chr_arm
|
||||||
@@ -146,9 +145,9 @@ jobs:
|
|||||||
sudo chown lg chromium/src/out &&
|
sudo chown lg chromium/src/out &&
|
||||||
sudo chown lg chromium/src/out/x64_webview
|
sudo chown lg chromium/src/out/x64_webview
|
||||||
|
|
||||||
test -d chromium/src/out/arm64_webview || sudo mkdir -p chromium/src/out/arm64_webview && \
|
sudo chown lg /home/lg/working_dir
|
||||||
sudo chown lg chromium/src/out &&
|
test -d /github/home/.config/depot_tools || sudo mkdir -p /github/home/.config/depot_tools
|
||||||
sudo chown lg chromium/src/out/arm64_webview
|
sudo chown lg /github/home/.config/depot_tools
|
||||||
|
|
||||||
sudo mkdir -p /run/user/1000/
|
sudo mkdir -p /run/user/1000/
|
||||||
sudo chown lg /run/user/1000/
|
sudo chown lg /run/user/1000/
|
||||||
@@ -177,27 +176,9 @@ jobs:
|
|||||||
gn args out/x64_webview/ --list >out/x64_webview/gn_list
|
gn args out/x64_webview/ --list >out/x64_webview/gn_list
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
ninja -C out/x64_webview system_webview_apk system_webview_shell
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/x64_webview system_webview_apk system_webview_shell --offline
|
||||||
cp ../../cromite/build/RELEASE out/x64_webview
|
cp ../../cromite/build/RELEASE out/x64_webview
|
||||||
|
|
||||||
- name: Build Cromite System WebView arm64
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
|
||||||
cd $WORKSPACE/chromium/src
|
|
||||||
|
|
||||||
echo "::group::-------- gn gen"
|
|
||||||
gn gen --args="target_os = \"android\" target_cpu = \"arm64\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) system_webview_package_name=\"com.android.webview\" enable_trybot_verification=false " out/arm64_webview
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
echo "::group::-------- gn args"
|
|
||||||
gn args out/arm64_webview/ --list --short
|
|
||||||
gn args out/arm64_webview/ --list >out/arm64_webview/gn_list
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
ninja -C out/arm64_webview system_webview_apk system_webview_shell
|
|
||||||
cp ../../cromite/build/RELEASE out/arm64_webview
|
|
||||||
|
|
||||||
- name: Prepare Build Container for vanilla chromium
|
- name: Prepare Build Container for vanilla chromium
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
@@ -224,7 +205,7 @@ jobs:
|
|||||||
gn args out/chr_x64/ --list >out/chr_x64/gn_list
|
gn args out/chr_x64/ --list >out/chr_x64/gn_list
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
ninja -C out/chr_x64 chrome_public_apk
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/chr_x64 chrome_public_apk --offline
|
||||||
|
|
||||||
cp ../../cromite/build/RELEASE out/chr_x64
|
cp ../../cromite/build/RELEASE out/chr_x64
|
||||||
|
|
||||||
@@ -243,7 +224,7 @@ jobs:
|
|||||||
gn args out/chr_arm64/ --list >out/chr_arm64/gn_list
|
gn args out/chr_arm64/ --list >out/chr_arm64/gn_list
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
ninja -C out/chr_arm64 chrome_public_apk
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/chr_arm64 chrome_public_apk --offline
|
||||||
|
|
||||||
cp ../../cromite/build/RELEASE out/chr_arm64
|
cp ../../cromite/build/RELEASE out/chr_arm64
|
||||||
|
|
||||||
@@ -262,6 +243,6 @@ jobs:
|
|||||||
gn args out/chr_arm/ --list >out/chr_arm/gn_list
|
gn args out/chr_arm/ --list >out/chr_arm/gn_list
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
ninja -C out/chr_arm chrome_public_apk
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/chr_arm chrome_public_apk --offline
|
||||||
|
|
||||||
cp ../../cromite/build/RELEASE out/chr_arm
|
cp ../../cromite/build/RELEASE out/chr_arm
|
||||||
|
|||||||
@@ -177,11 +177,12 @@ jobs:
|
|||||||
USELOCALIMAGE: true # CUSTOM RUNNER: permit use of local images
|
USELOCALIMAGE: true # CUSTOM RUNNER: permit use of local images
|
||||||
USEINTERNALNETWORK: true # CUSTOM RUNNER: create the docker network as internal
|
USEINTERNALNETWORK: true # CUSTOM RUNNER: create the docker network as internal
|
||||||
WORKSPACE: /home/lg/working_dir
|
WORKSPACE: /home/lg/working_dir
|
||||||
|
HOME: /home/lg/working_dir
|
||||||
# kythe
|
# kythe
|
||||||
KYTHE_CORPUS: chromium.googlesource.com/chromium/src
|
KYTHE_CORPUS: chromium.googlesource.com/chromium/src
|
||||||
KYTHE_ROOT_DIRECTORY: /home/lg/working_dir/chromium/src
|
KYTHE_ROOT_DIRECTORY: /home/lg/working_dir/chromium/src
|
||||||
KYTHE_OUTPUT_DIRECTORY: /home/lg/working_dir/chromium/src/out/arm64/kythe
|
KYTHE_OUTPUT_DIRECTORY: /home/lg/working_dir/chromium/src/out/arm64/kythe
|
||||||
# cross build
|
# cross build (change also release.yaml)
|
||||||
DEPOT_TOOLS_WIN_TOOLCHAIN_BASE_URL: /win_sdk/sdks/Win11SDK_10.0.26100.0/
|
DEPOT_TOOLS_WIN_TOOLCHAIN_BASE_URL: /win_sdk/sdks/Win11SDK_10.0.26100.0/
|
||||||
WINDOWSSDKDIR: "/win_sdk/sdks/Win11SDK_10.0.26100.0/Windows Kits/10/"
|
WINDOWSSDKDIR: "/win_sdk/sdks/Win11SDK_10.0.26100.0/Windows Kits/10/"
|
||||||
GYP_MSVS_OVERRIDE_PATH: /win_sdk/sdks/Win11SDK_10.0.26100.0/
|
GYP_MSVS_OVERRIDE_PATH: /win_sdk/sdks/Win11SDK_10.0.26100.0/
|
||||||
@@ -197,6 +198,7 @@ jobs:
|
|||||||
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/x64:/home/lg/working_dir/chromium/src/out/x64
|
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/x64:/home/lg/working_dir/chromium/src/out/x64
|
||||||
- /storage/images/${{ github.event.inputs.sha }}/linux/${{ github.event.inputs.debug }}/lin64:/home/lg/working_dir/chromium/src/out/lin64
|
- /storage/images/${{ github.event.inputs.sha }}/linux/${{ github.event.inputs.debug }}/lin64:/home/lg/working_dir/chromium/src/out/lin64
|
||||||
- /storage/images/${{ github.event.inputs.sha }}/win/x64:/home/lg/working_dir/chromium/src/out/win64
|
- /storage/images/${{ github.event.inputs.sha }}/win/x64:/home/lg/working_dir/chromium/src/out/win64
|
||||||
|
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/arm64_webview:/home/lg/working_dir/chromium/src/out/arm64_webview
|
||||||
- /tmp/proxy:/tmp/proxy
|
- /tmp/proxy:/tmp/proxy
|
||||||
- /win_sdk:/win_sdk
|
- /win_sdk:/win_sdk
|
||||||
|
|
||||||
@@ -214,7 +216,7 @@ jobs:
|
|||||||
http_proxy=
|
http_proxy=
|
||||||
https_proxy=
|
https_proxy=
|
||||||
|
|
||||||
# set out folder permissions
|
# setup folder permissions
|
||||||
test -d chromium/src/out/arm || sudo mkdir -p chromium/src/out/arm && \
|
test -d chromium/src/out/arm || sudo mkdir -p chromium/src/out/arm && \
|
||||||
sudo chown lg chromium/src/out &&
|
sudo chown lg chromium/src/out &&
|
||||||
sudo chown lg chromium/src/out/arm
|
sudo chown lg chromium/src/out/arm
|
||||||
@@ -235,6 +237,14 @@ jobs:
|
|||||||
sudo chown lg chromium/src/out &&
|
sudo chown lg chromium/src/out &&
|
||||||
sudo chown lg chromium/src/out/lin64
|
sudo chown lg chromium/src/out/lin64
|
||||||
|
|
||||||
|
test -d chromium/src/out/arm64_webview || sudo mkdir -p chromium/src/out/arm64_webview && \
|
||||||
|
sudo chown lg chromium/src/out &&
|
||||||
|
sudo chown lg chromium/src/out/arm64_webview
|
||||||
|
|
||||||
|
sudo chown lg /home/lg/working_dir
|
||||||
|
test -d /github/home/.config/depot_tools || sudo mkdir -p /github/home/.config/depot_tools
|
||||||
|
sudo chown lg /github/home/.config/depot_tools
|
||||||
|
|
||||||
# make kythe output directory
|
# make kythe output directory
|
||||||
test -d $KYTHE_OUTPUT_DIRECTORY || mkdir -p $KYTHE_OUTPUT_DIRECTORY
|
test -d $KYTHE_OUTPUT_DIRECTORY || mkdir -p $KYTHE_OUTPUT_DIRECTORY
|
||||||
|
|
||||||
@@ -261,16 +271,16 @@ jobs:
|
|||||||
cd $WORKSPACE/chromium/src
|
cd $WORKSPACE/chromium/src
|
||||||
|
|
||||||
echo "::group::-------- gn gen"
|
echo "::group::-------- gn gen"
|
||||||
gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/x64
|
gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/x64 || true
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
echo "::group::-------- gn args"
|
echo "::group::-------- gn args"
|
||||||
gn args out/x64/ --list --short
|
gn args out/x64/ --list --short || true
|
||||||
gn args out/x64/ --list >out/x64/gn_list
|
gn args out/x64/ --list >out/x64/gn_list || true
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
ninja -C out/x64 chrome_public_bundle
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/x64 chrome_public_bundle --offline
|
||||||
ninja -C out/x64 chrome_public_apk
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/x64 chrome_public_apk --offline
|
||||||
|
|
||||||
cp ../../cromite/build/RELEASE out/x64
|
cp ../../cromite/build/RELEASE out/x64
|
||||||
|
|
||||||
@@ -290,15 +300,15 @@ jobs:
|
|||||||
cd $WORKSPACE/chromium/src
|
cd $WORKSPACE/chromium/src
|
||||||
|
|
||||||
echo "::group::-------- gn gen"
|
echo "::group::-------- gn gen"
|
||||||
gn gen --args="target_os = \"win\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/win64
|
gn gen --args="target_os = \"win\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/win64 || true
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
echo "::group::-------- gn args"
|
echo "::group::-------- gn args"
|
||||||
gn args out/win64/ --list --short
|
gn args out/win64/ --list --short || true
|
||||||
gn args out/win64/ --list >out/win64/gn_list
|
gn args out/win64/ --list >out/win64/gn_list || true
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
ninja -C out/win64 chrome
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/win64 chrome --offline
|
||||||
|
|
||||||
cp ../../cromite/build/RELEASE out/win64
|
cp ../../cromite/build/RELEASE out/win64
|
||||||
|
|
||||||
@@ -318,16 +328,16 @@ jobs:
|
|||||||
cd $WORKSPACE/chromium/src
|
cd $WORKSPACE/chromium/src
|
||||||
|
|
||||||
echo "::group::-------- gn gen"
|
echo "::group::-------- gn gen"
|
||||||
gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"arm64\" " out/arm64
|
gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"arm64\" " out/arm64 || true
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
echo "::group::-------- gn args"
|
echo "::group::-------- gn args"
|
||||||
gn args out/arm64/ --list --short
|
gn args out/arm64/ --list --short || true
|
||||||
gn args out/arm64/ --list >out/arm64/gn_list
|
gn args out/arm64/ --list >out/arm64/gn_list || true
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
ninja -C out/arm64 chrome_public_bundle
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/arm64 chrome_public_bundle --offline
|
||||||
ninja -C out/arm64 chrome_public_apk
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/arm64 chrome_public_apk --offline
|
||||||
|
|
||||||
cp ../../cromite/build/RELEASE out/arm64
|
cp ../../cromite/build/RELEASE out/arm64
|
||||||
|
|
||||||
@@ -347,7 +357,7 @@ jobs:
|
|||||||
cd $WORKSPACE/chromium/src
|
cd $WORKSPACE/chromium/src
|
||||||
|
|
||||||
echo "::group::-------- generating breakpad symbols"
|
echo "::group::-------- generating breakpad symbols"
|
||||||
ninja -C out/arm64 minidump_stackwalk dump_syms
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/arm64 minidump_stackwalk dump_syms --offline
|
||||||
components/crash/content/tools/generate_breakpad_symbols.py --build-dir=out/arm64 \
|
components/crash/content/tools/generate_breakpad_symbols.py --build-dir=out/arm64 \
|
||||||
--symbols-dir=out/arm64/symbols/ --binary=out/arm64/lib.unstripped/libchrome.so \
|
--symbols-dir=out/arm64/symbols/ --binary=out/arm64/lib.unstripped/libchrome.so \
|
||||||
--platform=android --clear --verbose
|
--platform=android --clear --verbose
|
||||||
@@ -363,7 +373,7 @@ jobs:
|
|||||||
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
||||||
cd $WORKSPACE/chromium/src
|
cd $WORKSPACE/chromium/src
|
||||||
|
|
||||||
tools/binary_size/supersize archive out/arm64/chrome.size --apk-file out/arm64/apks/ChromePublic.apk -v
|
vpython3 tools/binary_size/libsupersize/main.py archive out/arm64/chrome.size --apk-file out/arm64/apks/ChromePublic.apk -v
|
||||||
|
|
||||||
- name: Build Cromite Android arm
|
- name: Build Cromite Android arm
|
||||||
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm' || github.event.inputs.build == 'all') }}
|
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm' || github.event.inputs.build == 'all') }}
|
||||||
@@ -373,16 +383,16 @@ jobs:
|
|||||||
cd $WORKSPACE/chromium/src
|
cd $WORKSPACE/chromium/src
|
||||||
|
|
||||||
echo "::group::-------- gn gen"
|
echo "::group::-------- gn gen"
|
||||||
gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"arm\" " out/arm
|
gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"arm\" " out/arm || true
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
echo "::group::-------- gn args"
|
echo "::group::-------- gn args"
|
||||||
gn args out/arm/ --list --short
|
gn args out/arm/ --list --short || true
|
||||||
gn args out/arm/ --list >out/arm/gn_list
|
gn args out/arm/ --list >out/arm/gn_list || true
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
ninja -C out/arm chrome_public_bundle
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/arm chrome_public_bundle --offline
|
||||||
ninja -C out/arm chrome_public_apk
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/arm chrome_public_apk --offline
|
||||||
|
|
||||||
cp ../../cromite/build/RELEASE out/arm
|
cp ../../cromite/build/RELEASE out/arm
|
||||||
|
|
||||||
@@ -402,15 +412,15 @@ jobs:
|
|||||||
cd $WORKSPACE/chromium/src
|
cd $WORKSPACE/chromium/src
|
||||||
|
|
||||||
echo "::group::-------- gn gen"
|
echo "::group::-------- gn gen"
|
||||||
gn gen --args="target_os = \"linux\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/lin64
|
gn gen --args="target_os = \"linux\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/lin64 || true
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
echo "::group::-------- gn args"
|
echo "::group::-------- gn args"
|
||||||
gn args out/lin64/ --list --short
|
gn args out/lin64/ --list --short || true
|
||||||
gn args out/lin64/ --list >out/lin64/gn_list
|
gn args out/lin64/ --list >out/lin64/gn_list || true
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
ninja -C out/lin64 chrome chrome_sandbox
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/lin64 chrome chrome_sandbox --offline
|
||||||
|
|
||||||
cp ../../cromite/build/RELEASE out/lin64
|
cp ../../cromite/build/RELEASE out/lin64
|
||||||
|
|
||||||
@@ -422,6 +432,24 @@ jobs:
|
|||||||
$WORKSPACE/ninjatracing/ninjatracing -a $WORKSPACE/chromium/src/out/lin64/.ninja_log >$WORKSPACE/chromium/src/out/lin64/ninja_log_trace.json
|
$WORKSPACE/ninjatracing/ninjatracing -a $WORKSPACE/chromium/src/out/lin64/.ninja_log >$WORKSPACE/chromium/src/out/lin64/ninja_log_trace.json
|
||||||
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/lin64/ninja_log_trace.json
|
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/lin64/ninja_log_trace.json
|
||||||
|
|
||||||
|
- name: Build Cromite System WebView arm64
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
||||||
|
cd $WORKSPACE/chromium/src
|
||||||
|
|
||||||
|
echo "::group::-------- gn gen"
|
||||||
|
gn gen --args="target_os = \"android\" target_cpu = \"arm64\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) system_webview_package_name=\"com.android.webview\" enable_trybot_verification=false " out/arm64_webview || true
|
||||||
|
echo "::endgroup::"
|
||||||
|
|
||||||
|
echo "::group::-------- gn args"
|
||||||
|
gn args out/arm64_webview/ --list --short || true
|
||||||
|
gn args out/arm64_webview/ --list >out/arm64_webview/gn_list || true
|
||||||
|
echo "::endgroup::"
|
||||||
|
|
||||||
|
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/arm64_webview system_webview_apk system_webview_shell --offline
|
||||||
|
cp ../../cromite/build/RELEASE out/arm64_webview
|
||||||
|
|
||||||
- name: Generate clangd index for Android arm64
|
- name: Generate clangd index for Android arm64
|
||||||
if: ${{ github.event.inputs.clangd == 'true' }}
|
if: ${{ github.event.inputs.clangd == 'true' }}
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
name: 'Check NIST database'
|
name: 'Check NIST database'
|
||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
|
||||||
- cron: '30 1 * * *'
|
|
||||||
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ jobs:
|
|||||||
OUTPUTFILE_X64: /storage/images/${{ github.event.inputs.sha }}/android/false/x64/
|
OUTPUTFILE_X64: /storage/images/${{ github.event.inputs.sha }}/android/false/x64/
|
||||||
OUTPUTFILE_WIN: /storage/images/${{ github.event.inputs.sha }}/win/x64/
|
OUTPUTFILE_WIN: /storage/images/${{ github.event.inputs.sha }}/win/x64/
|
||||||
OUTPUTFILE_LIN: /storage/images/${{ github.event.inputs.sha }}/linux/false/lin64/
|
OUTPUTFILE_LIN: /storage/images/${{ github.event.inputs.sha }}/linux/false/lin64/
|
||||||
|
OUTPUTFILE_WV_ARM64: /storage/images/${{ github.event.inputs.sha }}/android/false/arm64_webview/
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Login to Docker Hub
|
- name: Login to Docker Hub
|
||||||
@@ -130,10 +131,9 @@ jobs:
|
|||||||
cp $OUTPUTFILE_WIN/chrome_proxy.exe chrome-win/
|
cp $OUTPUTFILE_WIN/chrome_proxy.exe chrome-win/
|
||||||
cp $OUTPUTFILE_WIN/chrome_pwa_launcher.exe chrome-win/
|
cp $OUTPUTFILE_WIN/chrome_pwa_launcher.exe chrome-win/
|
||||||
cp $OUTPUTFILE_WIN/chrome_wer.dll chrome-win/
|
cp $OUTPUTFILE_WIN/chrome_wer.dll chrome-win/
|
||||||
cp "/win_sdk/10.0.22621.0/Windows Kits/10/Redist/D3D/x64/d3dcompiler_47.dll" chrome-win/
|
cp "/win_sdk/sdks/Win11SDK_10.0.26100.0/Windows Kits/10/Redist/D3D/x64/d3dcompiler_47.dll" chrome-win/
|
||||||
cp $OUTPUTFILE_WIN/elevation_service.exe chrome-win/
|
cp $OUTPUTFILE_WIN/elevation_service.exe chrome-win/
|
||||||
cp "$OUTPUTFILE_WIN/First Run" chrome-win/
|
cp "$OUTPUTFILE_WIN/First Run" chrome-win/
|
||||||
cp $OUTPUTFILE_WIN/headless_lib_data.pak chrome-win/
|
|
||||||
cp $OUTPUTFILE_WIN/icudtl.dat chrome-win/
|
cp $OUTPUTFILE_WIN/icudtl.dat chrome-win/
|
||||||
cp $OUTPUTFILE_WIN/libEGL.dll chrome-win/
|
cp $OUTPUTFILE_WIN/libEGL.dll chrome-win/
|
||||||
cp $OUTPUTFILE_WIN/libGLESv2.dll chrome-win/
|
cp $OUTPUTFILE_WIN/libGLESv2.dll chrome-win/
|
||||||
@@ -155,6 +155,10 @@ jobs:
|
|||||||
$GH release upload $VERSION-$CROMITE_SHA chrome-win.zip
|
$GH release upload $VERSION-$CROMITE_SHA chrome-win.zip
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
|
TIMESTAMP=$(date +%s -r chrome-win.zip)
|
||||||
|
echo >updateurl.txt "browser=chromium;os=windows;architecture=64-bit;timestamp=$TIMESTAMP;editor=uazo;channel=stable;repository=https://github.com/uazo/cromite/releases;download=https://github.com/uazo/cromite/releases/latest/download/chrome-win.zip;version=$(cat $OUTPUTFILE_WIN/RELEASE);revision=1;commit=$CROMITE_SHA"
|
||||||
|
$GH release upload $VERSION-$CROMITE_SHA updateurl.txt
|
||||||
|
|
||||||
## linux
|
## linux
|
||||||
echo "::group::-------- linux x64"
|
echo "::group::-------- linux x64"
|
||||||
mkdir chrome-lin/
|
mkdir chrome-lin/
|
||||||
@@ -184,6 +188,7 @@ jobs:
|
|||||||
$GH release upload $VERSION-$CROMITE_SHA chrome-lin64.tar.gz
|
$GH release upload $VERSION-$CROMITE_SHA chrome-lin64.tar.gz
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
|
# android arm64 symbols
|
||||||
echo "::group::-------- arm64 symbols"
|
echo "::group::-------- arm64 symbols"
|
||||||
zip arm64_symbols.zip ${{ env.OUTPUTFILE_ARM64 }}/dump_syms \
|
zip arm64_symbols.zip ${{ env.OUTPUTFILE_ARM64 }}/dump_syms \
|
||||||
${{ env.OUTPUTFILE_ARM64 }}/minidump_stackwalk \
|
${{ env.OUTPUTFILE_ARM64 }}/minidump_stackwalk \
|
||||||
@@ -191,9 +196,18 @@ jobs:
|
|||||||
$GH release upload $VERSION-$CROMITE_SHA arm64_symbols.zip
|
$GH release upload $VERSION-$CROMITE_SHA arm64_symbols.zip
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
TIMESTAMP=$(date +%s -r chrome-win.zip)
|
# android arm64
|
||||||
echo >updateurl.txt "browser=chromium;os=windows;architecture=64-bit;timestamp=$TIMESTAMP;editor=uazo;channel=stable;repository=https://github.com/uazo/cromite/releases;download=https://github.com/uazo/cromite/releases/latest/download/chrome-win.zip;version=$(cat $OUTPUTFILE_WIN/RELEASE);revision=1;commit=$CROMITE_SHA"
|
echo "::group::-------- android systemwebview arm64"
|
||||||
$GH release upload $VERSION-$CROMITE_SHA updateurl.txt
|
sudo cp ${{ env.OUTPUTFILE_WV_ARM64 }}/apks/SystemWebView.apk arm64_SystemWebView.apk
|
||||||
|
sudo chown runner arm64_SystemWebView.apk
|
||||||
|
|
||||||
|
sudo cp ${{ env.OUTPUTFILE_WV_ARM64 }}/apks/SystemWebViewShell.apk arm64_SystemWebViewShell.apk
|
||||||
|
sudo chown runner arm64_SystemWebViewShell.apk
|
||||||
|
|
||||||
|
echo Uploading arm64_SystemWebView
|
||||||
|
$GH release upload $VERSION-$CROMITE_SHA arm64_SystemWebView.apk
|
||||||
|
$GH release upload $VERSION-$CROMITE_SHA arm64_SystemWebViewShell.apk
|
||||||
|
echo "::endgroup::"
|
||||||
|
|
||||||
$GH release edit $VERSION-$CROMITE_SHA -t $VERSION-$CROMITE_SHA
|
$GH release edit $VERSION-$CROMITE_SHA -t $VERSION-$CROMITE_SHA
|
||||||
|
|
||||||
@@ -201,7 +215,4 @@ jobs:
|
|||||||
$GH release edit $VERSION-$CROMITE_SHA --draft=false
|
$GH release edit $VERSION-$CROMITE_SHA --draft=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
VERSION=$(cat ${{ env.OUTPUTFILE_ARM64 }}/RELEASE)
|
|
||||||
docker push uazo/cromite:$VERSION-$CROMITE_SHA
|
|
||||||
docker push uazo/cromite-build:$VERSION-$CROMITE_SHA
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ jobs:
|
|||||||
runs-on: ${{ github.event.inputs.type }}
|
runs-on: ${{ github.event.inputs.type }}
|
||||||
env:
|
env:
|
||||||
IS_DRAFT: ${{ github.event.inputs.draft }}
|
IS_DRAFT: ${{ github.event.inputs.draft }}
|
||||||
OUTPUTFILE_ARM64: /storage/images/${{ github.event.inputs.sha }}/android/false/arm64_webview/
|
|
||||||
OUTPUTFILE_X64: /storage/images/${{ github.event.inputs.sha }}/android/false/x64_webview/
|
OUTPUTFILE_X64: /storage/images/${{ github.event.inputs.sha }}/android/false/x64_webview/
|
||||||
OUTPUTFILE_CHR_ARM64: /storage/images/${{ github.event.inputs.sha }}/android/false/chr_arm64/
|
OUTPUTFILE_CHR_ARM64: /storage/images/${{ github.event.inputs.sha }}/android/false/chr_arm64/
|
||||||
OUTPUTFILE_CHR_ARM: /storage/images/${{ github.event.inputs.sha }}/android/false/chr_arm/
|
OUTPUTFILE_CHR_ARM: /storage/images/${{ github.event.inputs.sha }}/android/false/chr_arm/
|
||||||
@@ -48,7 +47,7 @@ jobs:
|
|||||||
- name: Create release
|
- name: Create release
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
VERSION=v$(cat ${{ env.OUTPUTFILE_ARM64 }}/RELEASE)
|
VERSION=v$(cat ${{ env.OUTPUTFILE_X64 }}/RELEASE)
|
||||||
|
|
||||||
cd cromite/tools
|
cd cromite/tools
|
||||||
|
|
||||||
@@ -58,19 +57,6 @@ jobs:
|
|||||||
|
|
||||||
echo ${{ secrets.GITHUB_TOKEN }} | $GH auth login --with-token
|
echo ${{ secrets.GITHUB_TOKEN }} | $GH auth login --with-token
|
||||||
|
|
||||||
# android arm64
|
|
||||||
echo "::group::-------- android systemwebview arm64"
|
|
||||||
sudo cp ${{ env.OUTPUTFILE_ARM64 }}/apks/SystemWebView.apk arm64_SystemWebView.apk
|
|
||||||
sudo chown runner arm64_SystemWebView.apk
|
|
||||||
|
|
||||||
sudo cp ${{ env.OUTPUTFILE_ARM64 }}/apks/SystemWebViewShell.apk arm64_SystemWebViewShell.apk
|
|
||||||
sudo chown runner arm64_SystemWebViewShell.apk
|
|
||||||
|
|
||||||
echo Uploading arm64_SystemWebView
|
|
||||||
$GH release upload $VERSION-$CROMITE_SHA arm64_SystemWebView.apk
|
|
||||||
$GH release upload $VERSION-$CROMITE_SHA arm64_SystemWebViewShell.apk
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
# android x64
|
# android x64
|
||||||
echo "::group::-------- android systemwebview x64"
|
echo "::group::-------- android systemwebview x64"
|
||||||
sudo cp ${{ env.OUTPUTFILE_X64 }}/apks/SystemWebView.apk x64_SystemWebView.apk
|
sudo cp ${{ env.OUTPUTFILE_X64 }}/apks/SystemWebView.apk x64_SystemWebView.apk
|
||||||
|
|||||||
@@ -37,9 +37,9 @@ jobs:
|
|||||||
apt update
|
apt update
|
||||||
|
|
||||||
DEBIAN_FRONTEND=noninteractive apt update && apt install -y wget unzip
|
DEBIAN_FRONTEND=noninteractive apt update && apt install -y wget unzip
|
||||||
wget https://github.com/rclone/rclone/releases/download/v1.64.0/rclone-v1.64.0-linux-amd64.zip
|
wget https://github.com/rclone/rclone/releases/download/v1.72.0/rclone-v1.72.0-linux-amd64.zip
|
||||||
unzip rclone-v1.64.0-linux-amd64.zip
|
unzip rclone-v1.72.0-linux-amd64.zip
|
||||||
export rclone=rclone-v1.64.0-linux-amd64/rclone
|
export rclone=rclone-v1.72.0-linux-amd64/rclone
|
||||||
|
|
||||||
mkdir -p ~/.config/rclone
|
mkdir -p ~/.config/rclone
|
||||||
echo "${{ secrets.RCLONE_CONF }}" > ~/.config/rclone/rclone.conf
|
echo "${{ secrets.RCLONE_CONF }}" > ~/.config/rclone/rclone.conf
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
Cromite is a [Chromium](https://www.chromium.org/Home) fork based on [Bromite](https://github.com/bromite/bromite) with built-in support for ad blocking and an eye for privacy.
|
Cromite is a [Chromium](https://www.chromium.org/Home) fork based on [Bromite](https://github.com/bromite/bromite) with built-in support for ad blocking and an eye for privacy.
|
||||||
|
|
||||||
Cromite is available for Android arm64-v8a, arm32-v7a and x86_64, Oreo and above (Minimum v8.0, API level 26), Windows and Linux 64bit.
|
Cromite is available for Android arm64-v8a, arm32-v7a and x86_64, Android 10 and above, Windows and Linux 64bit.
|
||||||
|
|
||||||
# Goals
|
# Goals
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@ ChromiumUpdateUrl=https://github.com/uazo/cromite/releases/latest/download/updat
|
|||||||
# Command line for Chromium (string):
|
# Command line for Chromium (string):
|
||||||
# note --user-data-dir= works better if path is absolute
|
# note --user-data-dir= works better if path is absolute
|
||||||
# See here: http://peter.sh/experiments/chromium-command-line-switches/
|
# See here: http://peter.sh/experiments/chromium-command-line-switches/
|
||||||
ChromiumCommandLine=--user-data-dir="C:\Users\<my user>\AppData\Local\Cromite\User Data" --no-default-browser-check
|
ChromiumCommandLine=--user-data-dir="%LOCALAPPDATA%\Cromite\User Data" --no-default-browser-check
|
||||||
|
|
||||||
# to enable full logging in c:\temp\log.txt (daily rotate, no automatic deletion)
|
# to enable full logging in c:\temp\log.txt (daily rotate, no automatic deletion)
|
||||||
# ChromiumCommandLine=--enable-logging --v=0 --log-file=C:\temp\log.txt --user-data-dir=".\User Data" --no-default-browser-check
|
# ChromiumCommandLine=--enable-logging --v=0 --log-file=C:\temp\log.txt --user-data-dir=".\User Data" --no-default-browser-check
|
||||||
@@ -133,6 +133,7 @@ you can activate (highly recommended) the 'RendererAppContainer' flag from the c
|
|||||||
```
|
```
|
||||||
--enable-features=RendererAppContainer
|
--enable-features=RendererAppContainer
|
||||||
```
|
```
|
||||||
|
In this case, it is also necessary to run icacls as indicated above.
|
||||||
|
|
||||||
### Auto-update setup for linux
|
### Auto-update setup for linux
|
||||||
working in progress in https://github.com/uazo/cromite/issues/771
|
working in progress in https://github.com/uazo/cromite/issues/771
|
||||||
@@ -188,10 +189,11 @@ thanks to [austinhuang0131](https://github.com/austinhuang0131) for the svg icon
|
|||||||
If you want, you can donate to support cromite development through [paypal](https://www.paypal.com/pools/c/9e5lO2OIzb).
|
If you want, you can donate to support cromite development through [paypal](https://www.paypal.com/pools/c/9e5lO2OIzb).
|
||||||
|
|
||||||
Current link:
|
Current link:
|
||||||
- https://www.paypal.com/pools/c/9e5lO2OIzb
|
- https://www.paypal.com/pools/c/9hEHZ6tElk
|
||||||
|
|
||||||
Historical fundraisings links:
|
Historical fundraisings links:
|
||||||
- https://www.paypal.com/pools/c/9cwNgAQhRL
|
- https://www.paypal.com/pools/c/9cwNgAQhRL
|
||||||
|
- https://www.paypal.com/pools/c/9e5lO2OIzb
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
138.0.7204.184
|
148.0.7778.168
|
||||||
+10
-23
@@ -1,15 +1,12 @@
|
|||||||
android_channel="stable"
|
android_channel="stable"
|
||||||
blink_symbol_level=1
|
blink_symbol_level=1
|
||||||
build_contextual_search=false
|
build_contextual_search=false
|
||||||
build_with_tflite_lib=false
|
|
||||||
chrome_pgo_phase=0
|
chrome_pgo_phase=0
|
||||||
dcheck_always_on=false
|
dcheck_always_on=false
|
||||||
disable_android_lint=true
|
|
||||||
disable_fieldtrial_testing_config=true
|
disable_fieldtrial_testing_config=true
|
||||||
enable_hangout_services_extension=false
|
enable_hangout_services_extension=false
|
||||||
enable_iterator_debugging=false
|
enable_iterator_debugging=false
|
||||||
enable_mdns=false
|
enable_mdns=false
|
||||||
enable_nacl=false
|
|
||||||
enable_remoting=false
|
enable_remoting=false
|
||||||
enable_reporting=false
|
enable_reporting=false
|
||||||
enable_vr=false
|
enable_vr=false
|
||||||
@@ -22,11 +19,8 @@ rtc_build_examples=false
|
|||||||
symbol_level=1
|
symbol_level=1
|
||||||
treat_warnings_as_errors=true
|
treat_warnings_as_errors=true
|
||||||
use_debug_fission=true
|
use_debug_fission=true
|
||||||
use_errorprone_java_compiler=false
|
|
||||||
use_official_google_api_keys=false
|
use_official_google_api_keys=false
|
||||||
use_rtti=false
|
use_rtti=false
|
||||||
use_sysroot=false
|
|
||||||
webview_includes_weblayer=false
|
|
||||||
enable_arcore=false
|
enable_arcore=false
|
||||||
enable_openxr=false
|
enable_openxr=false
|
||||||
enable_cardboard=false
|
enable_cardboard=false
|
||||||
@@ -66,30 +60,15 @@ if (target_os == "android" || target_os == "win") {
|
|||||||
|
|
||||||
# disable passthrough audio codecs
|
# disable passthrough audio codecs
|
||||||
enable_platform_dts_audio = false
|
enable_platform_dts_audio = false
|
||||||
enable_passthrough_audio_codecs = false
|
|
||||||
|
|
||||||
# Do not compile libmonochrome.so with RELR relocations
|
|
||||||
# since supported only on API 28+
|
|
||||||
use_relr_relocations=false
|
|
||||||
|
|
||||||
# disabled the use of the context snapshot
|
# disabled the use of the context snapshot
|
||||||
# see https://github.com/uazo/cromite/pull/317 for context
|
# see https://github.com/uazo/cromite/pull/317 for context
|
||||||
use_v8_context_snapshot = false
|
use_v8_context_snapshot = false
|
||||||
|
|
||||||
# enable libjxl support by default
|
|
||||||
enable_jxl_decoder = false
|
|
||||||
|
|
||||||
# disable minikin engine
|
|
||||||
# see https://github.com/uazo/cromite/issues/697
|
|
||||||
use_minikin_hyphenation = false
|
|
||||||
|
|
||||||
# disable automatic update of sync-related cookies
|
# disable automatic update of sync-related cookies
|
||||||
# initial commit: https://source.chromium.org/chromium/chromium/src/+/fd9a841f7a63b9f5510f6b713d9c833d259c63ad
|
# initial commit: https://source.chromium.org/chromium/chromium/src/+/fd9a841f7a63b9f5510f6b713d9c833d259c63ad
|
||||||
enable_bound_session_credentials = false
|
enable_bound_session_credentials = false
|
||||||
|
|
||||||
# Use LogErrorNotReached() for NOTREACHED_IN_MIGRATION()
|
|
||||||
enable_log_error_not_reached = true
|
|
||||||
|
|
||||||
# Allows building without //third_party/unrar included, for license reasons
|
# Allows building without //third_party/unrar included, for license reasons
|
||||||
safe_browsing_use_unrar = false
|
safe_browsing_use_unrar = false
|
||||||
|
|
||||||
@@ -100,6 +79,9 @@ enable_request_header_integrity = false
|
|||||||
# Disable precompiled headers because they are incompatible with the unsafe_buffers configuration
|
# Disable precompiled headers because they are incompatible with the unsafe_buffers configuration
|
||||||
enable_precompiled_headers = false
|
enable_precompiled_headers = false
|
||||||
|
|
||||||
|
# Disable TFLite with XNNPACK
|
||||||
|
build_tflite_with_xnnpack = false
|
||||||
|
|
||||||
declare_args() {
|
declare_args() {
|
||||||
_is_debug_build = ""
|
_is_debug_build = ""
|
||||||
build_webview = false
|
build_webview = false
|
||||||
@@ -117,6 +99,8 @@ if (target_os == "android") {
|
|||||||
|
|
||||||
chrome_pgo_phase = 2 # enable pgo
|
chrome_pgo_phase = 2 # enable pgo
|
||||||
|
|
||||||
|
use_errorprone_java_compiler = false
|
||||||
|
|
||||||
# do not split Developer UI split into a separate Dynamic Feature Module
|
# do not split Developer UI split into a separate Dynamic Feature Module
|
||||||
dfmify_dev_ui = false
|
dfmify_dev_ui = false
|
||||||
|
|
||||||
@@ -128,6 +112,8 @@ if (target_os == "android") {
|
|||||||
|
|
||||||
cromite_pref_hash_seed_bin = getenv("CROMITE_PREF_HASH_SEED_BIN")
|
cromite_pref_hash_seed_bin = getenv("CROMITE_PREF_HASH_SEED_BIN")
|
||||||
|
|
||||||
|
disable_android_lint = true
|
||||||
|
|
||||||
_is_debug_build = getenv("TARGET_ISDEBUG")
|
_is_debug_build = getenv("TARGET_ISDEBUG")
|
||||||
if (_is_debug_build == "true") {
|
if (_is_debug_build == "true") {
|
||||||
# print("Debug build on")
|
# print("Debug build on")
|
||||||
@@ -144,7 +130,10 @@ if (target_os == "android") {
|
|||||||
# Turns off all V8 debug features. Disables running V8 in a pseudo debug mode
|
# Turns off all V8 debug features. Disables running V8 in a pseudo debug mode
|
||||||
# bypass build error -5 in clang_x64/mksnapshot
|
# bypass build error -5 in clang_x64/mksnapshot
|
||||||
v8_enable_debugging_features = false
|
v8_enable_debugging_features = false
|
||||||
|
v8_dcheck_always_on = false
|
||||||
} else {
|
} else {
|
||||||
|
include_both_v8_snapshots = false
|
||||||
|
include_both_v8_snapshots_android_secondary_abi = false
|
||||||
generate_linker_map = true
|
generate_linker_map = true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,7 +152,6 @@ if (target_os == "win") {
|
|||||||
enable_pdf = true
|
enable_pdf = true
|
||||||
pdf_is_complete_lib = true
|
pdf_is_complete_lib = true
|
||||||
enable_plugins = true
|
enable_plugins = true
|
||||||
enable_ppapi = false
|
|
||||||
|
|
||||||
chrome_pgo_phase = 2 # enable pgo
|
chrome_pgo_phase = 2 # enable pgo
|
||||||
|
|
||||||
@@ -179,7 +167,6 @@ if (target_os == "linux") {
|
|||||||
enable_pdf = true
|
enable_pdf = true
|
||||||
pdf_is_complete_lib = true
|
pdf_is_complete_lib = true
|
||||||
enable_plugins = true
|
enable_plugins = true
|
||||||
enable_ppapi = false
|
|
||||||
|
|
||||||
use_sysroot = true
|
use_sysroot = true
|
||||||
chrome_pgo_phase = 2 # enable pgo
|
chrome_pgo_phase = 2 # enable pgo
|
||||||
|
|||||||
@@ -1,16 +1,14 @@
|
|||||||
Do-not-link-with-libatomic.patch
|
Do-not-link-with-libatomic.patch
|
||||||
Do-not-check-for-the-presence-of-use-remoteexec.patch
|
Force-use-vpython3-for-all-scripts.patch
|
||||||
bromite-build-utils.patch
|
bromite-build-utils.patch
|
||||||
Add-cromite-flags-support.patch
|
Add-cromite-flags-support.patch
|
||||||
Force-use-vpython3-for-some-scripts.patch
|
|
||||||
Permit-PGO-for-debug-builds.patch
|
Permit-PGO-for-debug-builds.patch
|
||||||
Fix-chromium-vanilla.patch
|
Fix-chromium-vanilla.patch
|
||||||
Final-patch-for-chromium-vanilla.patch
|
Final-patch-for-chromium-vanilla.patch
|
||||||
|
Restore-chrome-password-store.patch
|
||||||
Remove-EV-certificates.patch
|
Remove-EV-certificates.patch
|
||||||
do-not-hide-.orig-files.patch
|
do-not-hide-.orig-files.patch
|
||||||
do-not-add-suffix-to-package-name.patch
|
do-not-add-suffix-to-package-name.patch
|
||||||
exit-on-failure-of-inclusion.patch
|
|
||||||
Move-some-account-settings-back-to-privacy-settings.patch
|
Move-some-account-settings-back-to-privacy-settings.patch
|
||||||
kill-Vision.patch
|
kill-Vision.patch
|
||||||
kill-Location-fall-back-to-system.patch
|
kill-Location-fall-back-to-system.patch
|
||||||
@@ -93,15 +91,12 @@ Disable-feeds-support-by-default.patch
|
|||||||
Disable-DRM-media-origin-IDs-preprovisioning.patch
|
Disable-DRM-media-origin-IDs-preprovisioning.patch
|
||||||
Disable-smart-selection-by-default.patch
|
Disable-smart-selection-by-default.patch
|
||||||
Guard-for-user-agent-reduction.patch
|
Guard-for-user-agent-reduction.patch
|
||||||
AImageReader-CFI-crash-mitigations.patch
|
|
||||||
Add-menu-item-to-view-source.patch
|
Add-menu-item-to-view-source.patch
|
||||||
Revert-removal-of-execution-context-address-space.patch
|
Revert-removal-of-execution-context-address-space.patch
|
||||||
Block-gateway-attacks-via-websockets.patch
|
Block-gateway-attacks-via-websockets.patch
|
||||||
Enable-prefetch-privacy-changes-by-default.patch
|
|
||||||
Enable-darken-websites-checkbox-in-themes.patch
|
Enable-darken-websites-checkbox-in-themes.patch
|
||||||
Remove-blocklisted-URLs-upon-bookmark-creation.patch
|
Remove-blocklisted-URLs-upon-bookmark-creation.patch
|
||||||
Disable-the-DIAL-repeating-discovery.patch
|
Disable-the-DIAL-repeating-discovery.patch
|
||||||
Block-qjz9zk-or-trk-requests.patch
|
|
||||||
Hardening-against-incognito-mode-detection.patch
|
Hardening-against-incognito-mode-detection.patch
|
||||||
Restore-Simplified-NTP-launch.patch
|
Restore-Simplified-NTP-launch.patch
|
||||||
Add-option-to-use-home-page-as-NTP.patch
|
Add-option-to-use-home-page-as-NTP.patch
|
||||||
@@ -158,9 +153,7 @@ Enable-Certificate-Transparency.patch
|
|||||||
Invalidate-components-public-key.patch
|
Invalidate-components-public-key.patch
|
||||||
Improve-plain-text-rendering-on-mobile.patch
|
Improve-plain-text-rendering-on-mobile.patch
|
||||||
Remove-segmentation-platform.patch
|
Remove-segmentation-platform.patch
|
||||||
Follow-only-system-dark-mode.patch
|
|
||||||
Remove-window-name-on-cross-origin-navigation.patch
|
Remove-window-name-on-cross-origin-navigation.patch
|
||||||
Remove-preload-of-com.google.android.gms.fonts.patch
|
|
||||||
Partition-Blink-memory-cache.patch
|
Partition-Blink-memory-cache.patch
|
||||||
Remove-navigator.connection-info.patch
|
Remove-navigator.connection-info.patch
|
||||||
Disable-PrivacyGuide.patch
|
Disable-PrivacyGuide.patch
|
||||||
@@ -172,7 +165,6 @@ Remove-HTTP-referrals-in-cross-origin-navigation.patch
|
|||||||
Enable-third-party-storage-partitioning.patch
|
Enable-third-party-storage-partitioning.patch
|
||||||
Restore-adaptive-button-in-top-toolbar-customization.patch
|
Restore-adaptive-button-in-top-toolbar-customization.patch
|
||||||
Add-kill-switch-for-unsupported-clangd-flags.patch
|
Add-kill-switch-for-unsupported-clangd-flags.patch
|
||||||
|
|
||||||
WIN-enable-pdf-plugin.patch
|
WIN-enable-pdf-plugin.patch
|
||||||
WIN-disable-annotate-downloads.patch
|
WIN-disable-annotate-downloads.patch
|
||||||
Enable-HighEfficiencyMode-by-default.patch
|
Enable-HighEfficiencyMode-by-default.patch
|
||||||
@@ -182,7 +174,6 @@ WIN-Disable-updater.patch
|
|||||||
WIN-Disable-first-run.patch
|
WIN-Disable-first-run.patch
|
||||||
WIN-Add-some-prefs-to-secure-preferences.patch
|
WIN-Add-some-prefs-to-secure-preferences.patch
|
||||||
WIN-Disable-search-for-image.patch
|
WIN-Disable-search-for-image.patch
|
||||||
|
|
||||||
AudioBuffer-AnalyserNode-fp-mitigations.patch
|
AudioBuffer-AnalyserNode-fp-mitigations.patch
|
||||||
add-browser-policy.patch
|
add-browser-policy.patch
|
||||||
Always-open-browser-controls-in-new-tab.patch
|
Always-open-browser-controls-in-new-tab.patch
|
||||||
@@ -245,8 +236,6 @@ Partition-MediaDeviceId-by-default.patch
|
|||||||
Keep-disabled-FetchLaterAPI.patch
|
Keep-disabled-FetchLaterAPI.patch
|
||||||
Disable-ranker-url-fetcher.patch
|
Disable-ranker-url-fetcher.patch
|
||||||
Disable-prefers-reduced-transparency-media-query.patch
|
Disable-prefers-reduced-transparency-media-query.patch
|
||||||
libjxl-0-8-2.patch
|
|
||||||
Add-support-to-jxl.patch
|
|
||||||
Block-Intents-While-Locked.patch
|
Block-Intents-While-Locked.patch
|
||||||
Keep-Manta-Service-Disabled.patch
|
Keep-Manta-Service-Disabled.patch
|
||||||
Disable-Service-and-Shared-workers-on-3P-iframe.patch
|
Disable-Service-and-Shared-workers-on-3P-iframe.patch
|
||||||
@@ -255,7 +244,7 @@ Always-allow-inspect-fallback.patch
|
|||||||
Add-PartialLowEndModeOnMidRangeDevices-flag.patch
|
Add-PartialLowEndModeOnMidRangeDevices-flag.patch
|
||||||
Use-list-mode-for-tab-switcher.patch
|
Use-list-mode-for-tab-switcher.patch
|
||||||
Chrome-web-store-protection.patch
|
Chrome-web-store-protection.patch
|
||||||
Enable-search-engine-settings-desktop-ui.patch
|
Enables-keyword-based-site-search-on-Android-devices.patch
|
||||||
Disable-Android-AppRestrictions.patch
|
Disable-Android-AppRestrictions.patch
|
||||||
Customize-selection-popup.patch
|
Customize-selection-popup.patch
|
||||||
Enables-deactivation-of-the-js-debugger-statement.patch
|
Enables-deactivation-of-the-js-debugger-statement.patch
|
||||||
@@ -277,7 +266,6 @@ Enable-Global-Privacy-Control.patch
|
|||||||
Enable-Do-Not-Track-by-default.patch
|
Enable-Do-Not-Track-by-default.patch
|
||||||
Media-fingerprinting-mitigations.patch
|
Media-fingerprinting-mitigations.patch
|
||||||
Use-BoringSSL-for-RandBytes.patch
|
Use-BoringSSL-for-RandBytes.patch
|
||||||
Restore-chrome-password-store.patch
|
|
||||||
Disable-support-for-pointer-device-id.patch
|
Disable-support-for-pointer-device-id.patch
|
||||||
Disable-CSS-blink-feature-support.patch
|
Disable-CSS-blink-feature-support.patch
|
||||||
Close-Sessions-On-Ip-Change.patch
|
Close-Sessions-On-Ip-Change.patch
|
||||||
@@ -292,31 +280,45 @@ Disable-Posture-API.patch
|
|||||||
PublicKeyCredential-fingerprinting-mitigations.patch
|
PublicKeyCredential-fingerprinting-mitigations.patch
|
||||||
Disable-Web-Bluetooth-by-default-in-desktop-platforms.patch
|
Disable-Web-Bluetooth-by-default-in-desktop-platforms.patch
|
||||||
Enable-Cert-Management-UI.patch
|
Enable-Cert-Management-UI.patch
|
||||||
Enable-ProcessBoundStringEncryption-by-default.patch
|
|
||||||
Prevent-mouse-wheel-fingerprinting-on-Windows.patch
|
Prevent-mouse-wheel-fingerprinting-on-Windows.patch
|
||||||
Enable-component-updater.patch
|
Enable-component-updater.patch
|
||||||
Android-fonts-fingerprinting-mitigation.patch
|
Android-fonts-fingerprinting-mitigation.patch
|
||||||
Disable-Android-Tab-Declutter.patch
|
Disable-Android-Tab-Declutter.patch
|
||||||
Disable-CSSDynamicRangeLimit.patch
|
Disable-CSSDynamicRangeLimit.patch
|
||||||
Android-Import-Passwords.patch
|
|
||||||
Disable-prefers-reduced-motion.patch
|
Disable-prefers-reduced-motion.patch
|
||||||
Disable-css-preferred-text-scale.patch
|
Disable-css-preferred-text-scale.patch
|
||||||
Disable-Viewport-Segments.patch
|
Disable-Viewport-Segments.patch
|
||||||
Keep-disabled-cache-sharing-for-pervasive-scripts.patch
|
Keep-disabled-cache-sharing-for-pervasive-scripts.patch
|
||||||
High-Resolution-Timing-Mitigation.patch
|
High-Resolution-Timing-Mitigation.patch
|
||||||
|
Enable-snackbar-swipe.patch
|
||||||
|
Add-cromite-test-support.patch
|
||||||
|
Android-Pixel-Perfect-Mode.patch
|
||||||
|
Set-caret-blink-interval-to-default.patch
|
||||||
|
Set-the-screen-frame-rate-to-60-Hz.patch
|
||||||
|
Disable-Device-Attributes-API.patch
|
||||||
|
Add-setting-to-enable-Credman-for-passkeys.patch
|
||||||
Temp-disable-UseContextSnapshot.patch
|
Temp-disable-UseContextSnapshot.patch
|
||||||
|
Enable-ClientHello-Segmentation.patch
|
||||||
|
Disable-Sticky-User-Activation-Across-Same-Origin-Navigation.patch
|
||||||
|
Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch
|
||||||
|
Disable-device-bound-session.patch
|
||||||
|
Keep-disabled-CpuPerformance.patch
|
||||||
|
Immediately-destroy-shared-workers-when-closing-the-page.patch
|
||||||
|
Disable-minikin-hyphenation.patch
|
||||||
|
Disable-integration-with-Gemini.patch
|
||||||
|
Disable-AppRating.patch
|
||||||
|
Enable-Android-DevTools-Frontend.patch
|
||||||
|
|
||||||
# temporary or wip patches
|
# temporary or wip patches
|
||||||
Temp-PerformanceNavigationTiming-privacy-fix.patch
|
|
||||||
Temp-disable-predictive-back-gesture.patch
|
Temp-disable-predictive-back-gesture.patch
|
||||||
TEMP-Add-a-log-to-track-strange-behavior.patch
|
TEMP-Add-a-log-to-track-strange-behavior.patch
|
||||||
Temp-guard-FileSystemAccessPersistentPermissions.patch
|
Temp-guard-FileSystemAccessPersistentPermissions.patch
|
||||||
Never-treat-Proguard-warnings-as-errors.patch
|
Never-treat-Proguard-warnings-as-errors.patch
|
||||||
Temp-disable-experimental-web-platform-features.patch
|
Temp-disable-experimental-web-platform-features.patch
|
||||||
Block-leakage-of-urls-in-sandbox-iframes.patch
|
Block-leakage-of-urls-in-sandbox-iframes.patch
|
||||||
Temporarily-disable-Tab-Group-Sync-Android.patch
|
|
||||||
Fix-chromium-build-bugs.patch
|
Fix-chromium-build-bugs.patch
|
||||||
Try-to-fix-2082.patch
|
Try-to-fix-2082.patch
|
||||||
|
Temp-use-PREVIEW-for-IDCompositionDevice5.patch
|
||||||
|
|
||||||
# adblock patches
|
# adblock patches
|
||||||
eyeo-133.0.6943.49-base.patch
|
eyeo-133.0.6943.49-base.patch
|
||||||
@@ -325,3 +327,7 @@ eyeo-133.0.6943.49-android_api.patch
|
|||||||
eyeo-133.0.6943.49-android_settings.patch
|
eyeo-133.0.6943.49-android_settings.patch
|
||||||
eyeo-133.0.6943.49-extension_api.patch
|
eyeo-133.0.6943.49-extension_api.patch
|
||||||
Eyeo-Adblock-for-Cromite.patch
|
Eyeo-Adblock-for-Cromite.patch
|
||||||
|
|
||||||
|
# extension patches
|
||||||
|
Experimental-support-for-extensions-on-Android.patch
|
||||||
|
Enable-extension-in-incognito.patch
|
||||||
|
|||||||
@@ -1,249 +0,0 @@
|
|||||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
|
||||||
Date: Tue, 5 May 2020 07:22:20 +0200
|
|
||||||
Subject: AImageReader CFI crash mitigations
|
|
||||||
|
|
||||||
Revert "gpu/android: Remove setup for disabling AImageReader."
|
|
||||||
This reverts commit dcd5a39518246eb999f1cc63bf1ec95d93fd5b2f.
|
|
||||||
|
|
||||||
Revert "Remove flags to enable/disable AImageReader."
|
|
||||||
This reverts commit 463fa0f2e3b9e418bc26e2c8954463f0b0f76634.
|
|
||||||
|
|
||||||
Restore GPU bug blacklist for AImageReader on ARM and Qualcomm CPUs
|
|
||||||
|
|
||||||
Restore the AImageReader blacklist for ARM/Qualcomm chipsets which causes
|
|
||||||
crashes on Android 9 and 10 (at different code locations).
|
|
||||||
|
|
||||||
See discussions at:
|
|
||||||
* https://github.com/bromite/bromite/issues/445
|
|
||||||
* https://github.com/bromite/bromite/issues/814
|
|
||||||
* https://github.com/bromite/bromite/issues/1005
|
|
||||||
|
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|
||||||
---
|
|
||||||
base/android/android_image_reader_compat.cc | 16 ++++++++++++++++
|
|
||||||
base/android/android_image_reader_compat.h | 14 ++++++++++++++
|
|
||||||
chrome/browser/flag-metadata.json | 4 ++++
|
|
||||||
.../AImageReader-CFI-crash-mitigations.inc | 4 ++++
|
|
||||||
.../AImageReader-CFI-crash-mitigations.inc | 1 +
|
|
||||||
gpu/config/gpu_driver_bug_list.json | 16 ++++++++++++++++
|
|
||||||
gpu/config/gpu_finch_features.cc | 5 +++++
|
|
||||||
gpu/config/gpu_finch_features.h | 1 +
|
|
||||||
gpu/config/gpu_util.cc | 8 ++++++++
|
|
||||||
gpu/config/gpu_workaround_list.txt | 1 +
|
|
||||||
gpu/ipc/service/gpu_init.cc | 8 ++++++++
|
|
||||||
media/gpu/android/video_frame_factory_impl.cc | 4 +++-
|
|
||||||
12 files changed, 81 insertions(+), 1 deletion(-)
|
|
||||||
create mode 100644 cromite_flags/media/base/media_switches_cc/AImageReader-CFI-crash-mitigations.inc
|
|
||||||
create mode 100644 cromite_flags/media/base/media_switches_h/AImageReader-CFI-crash-mitigations.inc
|
|
||||||
|
|
||||||
diff --git a/base/android/android_image_reader_compat.cc b/base/android/android_image_reader_compat.cc
|
|
||||||
--- a/base/android/android_image_reader_compat.cc
|
|
||||||
+++ b/base/android/android_image_reader_compat.cc
|
|
||||||
@@ -7,7 +7,23 @@
|
|
||||||
namespace base {
|
|
||||||
namespace android {
|
|
||||||
|
|
||||||
+AndroidImageReader& AndroidImageReader::GetInstance() {
|
|
||||||
+ // C++11 static local variable initialization is
|
|
||||||
+ // thread-safe.
|
|
||||||
+ static AndroidImageReader instance;
|
|
||||||
+ return instance;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void AndroidImageReader::DisableSupport() {
|
|
||||||
+ disable_support_ = true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+bool AndroidImageReader::IsSupported() {
|
|
||||||
+ return !disable_support_;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
bool EnableAndroidImageReader() {
|
|
||||||
+ if (!AndroidImageReader::GetInstance().IsSupported()) return false;
|
|
||||||
// Currently we want to enable AImageReader only for android P+ devices.
|
|
||||||
if (__builtin_available(android 28, *)) {
|
|
||||||
return true;
|
|
||||||
diff --git a/base/android/android_image_reader_compat.h b/base/android/android_image_reader_compat.h
|
|
||||||
--- a/base/android/android_image_reader_compat.h
|
|
||||||
+++ b/base/android/android_image_reader_compat.h
|
|
||||||
@@ -10,6 +10,20 @@
|
|
||||||
namespace base {
|
|
||||||
namespace android {
|
|
||||||
|
|
||||||
+class BASE_EXPORT AndroidImageReader {
|
|
||||||
+ public:
|
|
||||||
+ // Thread safe GetInstance.
|
|
||||||
+ static AndroidImageReader& GetInstance();
|
|
||||||
+
|
|
||||||
+ bool IsSupported();
|
|
||||||
+
|
|
||||||
+ // Disable image reader support.
|
|
||||||
+ void DisableSupport();
|
|
||||||
+
|
|
||||||
+ private:
|
|
||||||
+ bool disable_support_ = false;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
// Check if the image reader usage is supported.
|
|
||||||
BASE_EXPORT bool EnableAndroidImageReader();
|
|
||||||
|
|
||||||
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
|
|
||||||
--- a/chrome/browser/flag-metadata.json
|
|
||||||
+++ b/chrome/browser/flag-metadata.json
|
|
||||||
@@ -3514,6 +3514,10 @@
|
|
||||||
"chrome-signin-team@google.com"
|
|
||||||
],
|
|
||||||
"expiry_milestone": 138
|
|
||||||
+ },{
|
|
||||||
+ "name": "enable-image-reader", // Bromite: do not expire
|
|
||||||
+ "owners": [ "vikassoni@chromium.org", "liberato@chromium.org" ], // flag
|
|
||||||
+ "expiry_milestone": -1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "enable-immersive-fullscreen-toolbar",
|
|
||||||
diff --git a/cromite_flags/media/base/media_switches_cc/AImageReader-CFI-crash-mitigations.inc b/cromite_flags/media/base/media_switches_cc/AImageReader-CFI-crash-mitigations.inc
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/cromite_flags/media/base/media_switches_cc/AImageReader-CFI-crash-mitigations.inc
|
|
||||||
@@ -0,0 +1,4 @@
|
|
||||||
+// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
|
|
||||||
+CROMITE_FEATURE(kAImageReaderVideoOutput,
|
|
||||||
+ "AImageReaderVideoOutput",
|
|
||||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
|
||||||
diff --git a/cromite_flags/media/base/media_switches_h/AImageReader-CFI-crash-mitigations.inc b/cromite_flags/media/base/media_switches_h/AImageReader-CFI-crash-mitigations.inc
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/cromite_flags/media/base/media_switches_h/AImageReader-CFI-crash-mitigations.inc
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+MEDIA_EXPORT BASE_DECLARE_FEATURE(kAImageReaderVideoOutput);
|
|
||||||
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
|
|
||||||
--- a/gpu/config/gpu_driver_bug_list.json
|
|
||||||
+++ b/gpu/config/gpu_driver_bug_list.json
|
|
||||||
@@ -2613,6 +2613,22 @@
|
|
||||||
"no_downscaled_overlay_promotion"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ "id":335,
|
|
||||||
+ "cr_bugs": [1051705],
|
|
||||||
+ "description": "Disable AImageReader on ARM GPUs",
|
|
||||||
+ "os": {
|
|
||||||
+ "type": "android",
|
|
||||||
+ "version": {
|
|
||||||
+ "op": "<",
|
|
||||||
+ "value": "10"
|
|
||||||
+ }
|
|
||||||
+ },
|
|
||||||
+ "gl_vendor": "ARM.*|Qualcomm.*",
|
|
||||||
+ "features": [
|
|
||||||
+ "disable_aimagereader"
|
|
||||||
+ ]
|
|
||||||
+ },
|
|
||||||
{
|
|
||||||
"id": 381,
|
|
||||||
"cr_bugs": [
|
|
||||||
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
|
|
||||||
--- a/gpu/config/gpu_finch_features.cc
|
|
||||||
+++ b/gpu/config/gpu_finch_features.cc
|
|
||||||
@@ -58,6 +58,11 @@ BASE_FEATURE(kAggressiveShaderCacheLimits,
|
|
||||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
|
||||||
|
|
||||||
#if BUILDFLAG(IS_ANDROID)
|
|
||||||
+// Use android AImageReader when playing videos with MediaPlayer.
|
|
||||||
+CROMITE_FEATURE(kAImageReaderMediaPlayer,
|
|
||||||
+ "AImageReaderMediaPlayer",
|
|
||||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
|
||||||
+
|
|
||||||
// Use android SurfaceControl API for managing display compositor's buffer queue
|
|
||||||
// and using overlays on Android. Also used by webview to disable surface
|
|
||||||
// SurfaceControl.
|
|
||||||
diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h
|
|
||||||
--- a/gpu/config/gpu_finch_features.h
|
|
||||||
+++ b/gpu/config/gpu_finch_features.h
|
|
||||||
@@ -26,6 +26,7 @@ GPU_EXPORT BASE_DECLARE_FEATURE(kUseGles2ForOopR);
|
|
||||||
GPU_EXPORT BASE_DECLARE_FEATURE(kAggressiveShaderCacheLimits);
|
|
||||||
|
|
||||||
#if BUILDFLAG(IS_ANDROID)
|
|
||||||
+GPU_EXPORT BASE_DECLARE_FEATURE(kAImageReaderMediaPlayer);
|
|
||||||
GPU_EXPORT BASE_DECLARE_FEATURE(kAndroidSurfaceControl);
|
|
||||||
GPU_EXPORT BASE_DECLARE_FEATURE(kWebViewSurfaceControl);
|
|
||||||
GPU_EXPORT BASE_DECLARE_FEATURE(kWebViewSurfaceControlForTV);
|
|
||||||
diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
|
|
||||||
--- a/gpu/config/gpu_util.cc
|
|
||||||
+++ b/gpu/config/gpu_util.cc
|
|
||||||
@@ -127,6 +127,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus(
|
|
||||||
#if !BUILDFLAG(IS_ANDROID)
|
|
||||||
return kGpuFeatureStatusDisabled;
|
|
||||||
#else
|
|
||||||
+ if (blocklisted_features.count(GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL))
|
|
||||||
+ return kGpuFeatureStatusBlocklisted;
|
|
||||||
+
|
|
||||||
if (!gpu_preferences.enable_android_surface_control)
|
|
||||||
return kGpuFeatureStatusDisabled;
|
|
||||||
|
|
||||||
@@ -348,6 +351,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info,
|
|
||||||
kGpuFeatureStatusSoftware;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ if (gpu_feature_info->IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
|
||||||
+ gpu_feature_info->status_values[GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL] =
|
|
||||||
+ kGpuFeatureStatusBlocklisted;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
// Estimates roughly user total disk space by counting in the drives where
|
|
||||||
diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt
|
|
||||||
--- a/gpu/config/gpu_workaround_list.txt
|
|
||||||
+++ b/gpu/config/gpu_workaround_list.txt
|
|
||||||
@@ -6,6 +6,7 @@ check_egl_fence_before_wait
|
|
||||||
check_ycbcr_studio_g22_left_p709_for_nv12_support
|
|
||||||
disable_2d_canvas_auto_flush
|
|
||||||
disable_accelerated_av1_decode
|
|
||||||
+disable_aimagereader
|
|
||||||
disable_accelerated_av1_encode
|
|
||||||
disable_accelerated_h264_decode
|
|
||||||
disable_accelerated_h264_encode
|
|
||||||
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
|
|
||||||
--- a/gpu/ipc/service/gpu_init.cc
|
|
||||||
+++ b/gpu/ipc/service/gpu_init.cc
|
|
||||||
@@ -70,6 +70,7 @@
|
|
||||||
|
|
||||||
#if BUILDFLAG(IS_ANDROID)
|
|
||||||
#include "ui/gfx/android/android_surface_control_compat.h"
|
|
||||||
+#include "base/android/android_image_reader_compat.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if BUILDFLAG(ENABLE_VULKAN)
|
|
||||||
@@ -687,6 +688,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
|
|
||||||
}
|
|
||||||
#endif // BUILDFLAG(IS_WIN)
|
|
||||||
|
|
||||||
+#if BUILDFLAG(IS_ANDROID)
|
|
||||||
+ // Disable AImageReader if the workaround is enabled.
|
|
||||||
+ if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
|
||||||
+ base::android::AndroidImageReader::GetInstance().DisableSupport();
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
if (gpu_feature_info_.status_values[GPU_FEATURE_TYPE_VULKAN] !=
|
|
||||||
kGpuFeatureStatusEnabled ||
|
|
||||||
!InitializeVulkan()) {
|
|
||||||
diff --git a/media/gpu/android/video_frame_factory_impl.cc b/media/gpu/android/video_frame_factory_impl.cc
|
|
||||||
--- a/media/gpu/android/video_frame_factory_impl.cc
|
|
||||||
+++ b/media/gpu/android/video_frame_factory_impl.cc
|
|
||||||
@@ -35,10 +35,12 @@ namespace {
|
|
||||||
|
|
||||||
gpu::TextureOwner::Mode GetTextureOwnerMode(
|
|
||||||
VideoFrameFactory::OverlayMode overlay_mode) {
|
|
||||||
+ const bool enabled = base::android::EnableAndroidImageReader() &&
|
|
||||||
+ base::FeatureList::IsEnabled(features::kAImageReaderMediaPlayer);
|
|
||||||
switch (overlay_mode) {
|
|
||||||
case VideoFrameFactory::OverlayMode::kDontRequestPromotionHints:
|
|
||||||
case VideoFrameFactory::OverlayMode::kRequestPromotionHints:
|
|
||||||
- return base::android::EnableAndroidImageReader()
|
|
||||||
+ return enabled
|
|
||||||
? gpu::TextureOwner::Mode::kAImageReaderInsecure
|
|
||||||
: gpu::TextureOwner::Mode::kSurfaceTextureInsecure;
|
|
||||||
case VideoFrameFactory::OverlayMode::kSurfaceControlSecure:
|
|
||||||
--
|
|
||||||
@@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
@@ -233,6 +233,7 @@ import org.chromium.content_public.browser.LoadUrlParams;
|
@@ -256,6 +256,7 @@ import org.chromium.content_public.browser.LoadUrlParams;
|
||||||
import org.chromium.content_public.browser.SelectionPopupController;
|
import org.chromium.content_public.browser.SelectionPopupController;
|
||||||
import org.chromium.content_public.browser.WebContents;
|
import org.chromium.content_public.browser.WebContents;
|
||||||
import org.chromium.content_public.common.ContentSwitches;
|
import org.chromium.content_public.common.ContentSwitches;
|
||||||
@@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||||||
import org.chromium.printing.PrintManagerDelegateImpl;
|
import org.chromium.printing.PrintManagerDelegateImpl;
|
||||||
import org.chromium.printing.PrintingController;
|
import org.chromium.printing.PrintingController;
|
||||||
import org.chromium.printing.PrintingControllerImpl;
|
import org.chromium.printing.PrintingControllerImpl;
|
||||||
@@ -981,6 +982,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
@@ -1137,6 +1138,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||||
super.onStartWithNative();
|
super.onStartWithNative();
|
||||||
|
|
||||||
ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier());
|
ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier());
|
||||||
@@ -40,42 +40,42 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||||||
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||||
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
||||||
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||||
@@ -169,6 +169,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
@@ -206,6 +206,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||||
|
&feed::kFeedNoViewCache,
|
||||||
&feed::kFeedPerformanceStudy,
|
&feed::kFeedPerformanceStudy,
|
||||||
&feed::kFeedShowSignInCommand,
|
|
||||||
&feed::kFeedSignedOutViewDemotion,
|
|
||||||
+ &kAllowUserCertificates,
|
|
||||||
&feed::kFeedRecyclerBinderUnmountOnDetach,
|
&feed::kFeedRecyclerBinderUnmountOnDetach,
|
||||||
|
+ &kAllowUserCertificates,
|
||||||
|
&feed::kFeedSignedOutViewDemotion,
|
||||||
&feed::kInterestFeedV2,
|
&feed::kInterestFeedV2,
|
||||||
&feed::kWebFeedAwareness,
|
&feed::kWebFeedAwareness,
|
||||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||||
@@ -162,6 +162,7 @@ public abstract class ChromeFeatureList {
|
@@ -168,6 +168,7 @@ public abstract class ChromeFeatureList {
|
||||||
"AccountForSuppressedKeyboardInsets";
|
"AccountForSuppressedKeyboardInsets";
|
||||||
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 =
|
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 =
|
||||||
"AdaptiveButtonInTopToolbarCustomizationV2";
|
"AdaptiveButtonInTopToolbarCustomizationV2";
|
||||||
+ public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates";
|
+ public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates";
|
||||||
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY =
|
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY =
|
||||||
"AdaptiveButtonInTopToolbarPageSummary";
|
"AdaptiveButtonInTopToolbarPageSummary";
|
||||||
public static final String ALLOW_TAB_CLOSING_UPON_MINIMIZATION =
|
// Don't clean up this flag yet, BCIV is launched, so this needs to be enabled by
|
||||||
@@ -680,6 +681,8 @@ public abstract class ChromeFeatureList {
|
@@ -836,6 +837,8 @@ public abstract class ChromeFeatureList {
|
||||||
public static final CachedFlag sAndroidWindowPopupLargeScreen =
|
public static final CachedFlag sAndroidXrImmersivePlayer =
|
||||||
newCachedFlag(ANDROID_WINDOW_POPUP_LARGE_SCREEN, false);
|
newCachedFlag(ANDROID_XR_IMMERSIVE_PLAYER, false);
|
||||||
public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true);
|
public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true);
|
||||||
+ public static final CachedFlag sAllowUserCertificates =
|
+ public static final CachedFlag sAllowUserCertificates =
|
||||||
+ newCachedFlag(ALLOW_USER_CERTIFICATES, false);
|
+ newCachedFlag(ALLOW_USER_CERTIFICATES, false);
|
||||||
|
public static final CachedFlag sAppSpecificHistoryViewIntent =
|
||||||
|
newCachedFlag(APP_SPECIFIC_HISTORY_VIEW_INTENT, true);
|
||||||
public static final CachedFlag sAsyncNotificationManager =
|
public static final CachedFlag sAsyncNotificationManager =
|
||||||
newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false, true);
|
@@ -1217,6 +1220,7 @@ public abstract class ChromeFeatureList {
|
||||||
public static final CachedFlag sAsyncNotificationManagerForDownload =
|
|
||||||
@@ -941,6 +944,7 @@ public abstract class ChromeFeatureList {
|
|
||||||
sAccountForSuppressedKeyboardInsets,
|
sAccountForSuppressedKeyboardInsets,
|
||||||
sAllowTabClosingUponMinimization,
|
sAndroidAnimatedProgressBarInBrowser,
|
||||||
sAndroidAppIntegration,
|
sAndroidApb144Patch1,
|
||||||
+ sAllowUserCertificates,
|
+ sAllowUserCertificates,
|
||||||
sAndroidAppIntegrationModule,
|
sAndroidApb144Patch2,
|
||||||
sAndroidAppIntegrationMultiDataSource,
|
sAndroidApb144Patch3,
|
||||||
sAndroidAppIntegrationV2,
|
sAndroidApb144Patch4,
|
||||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc
|
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
@@ -111,8 +111,8 @@ new file mode 100644
|
|||||||
diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java
|
diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java
|
||||||
--- a/net/android/java/src/org/chromium/net/X509Util.java
|
--- a/net/android/java/src/org/chromium/net/X509Util.java
|
||||||
+++ b/net/android/java/src/org/chromium/net/X509Util.java
|
+++ b/net/android/java/src/org/chromium/net/X509Util.java
|
||||||
@@ -537,6 +537,8 @@ public class X509Util {
|
@@ -472,6 +472,8 @@ public class X509Util {
|
||||||
return userRootBytes.toArray(new byte[0][]);
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ public static boolean AllowUserCertificates = false;
|
+ public static boolean AllowUserCertificates = false;
|
||||||
@@ -120,7 +120,7 @@ diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/j
|
|||||||
public static AndroidCertVerifyResult verifyServerCertificates(
|
public static AndroidCertVerifyResult verifyServerCertificates(
|
||||||
byte[][] certChain,
|
byte[][] certChain,
|
||||||
String authType,
|
String authType,
|
||||||
@@ -637,6 +639,9 @@ public class X509Util {
|
@@ -649,6 +651,9 @@ public class X509Util {
|
||||||
X509Certificate root = verifiedChain.get(verifiedChain.size() - 1);
|
X509Certificate root = verifiedChain.get(verifiedChain.size() - 1);
|
||||||
isIssuedByKnownRoot = isKnownRoot(root);
|
isIssuedByKnownRoot = isKnownRoot(root);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,21 +4,22 @@ Subject: Add Alt+D hotkey to focus address bar
|
|||||||
|
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
.../src/org/chromium/chrome/browser/KeyboardShortcuts.java | 5 +++++
|
.../src/org/chromium/chrome/browser/KeyboardShortcuts.java | 6 ++++++
|
||||||
1 file changed, 5 insertions(+)
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
|
||||||
@@ -839,6 +839,11 @@ public class KeyboardShortcuts {
|
@@ -939,6 +939,12 @@ public class KeyboardShortcuts {
|
||||||
KeyEvent.KEYCODE_B,
|
KeyEvent.KEYCODE_ESCAPE,
|
||||||
(KeyEvent.META_CTRL_ON | KeyEvent.META_SHIFT_ON));
|
KeyEvent.META_CTRL_ON);
|
||||||
}
|
}
|
||||||
+ addShortcut(context,
|
+ addShortcut(context,
|
||||||
+ shortcutGroupsById.get(R.string.keyboard_shortcut_chrome_feature_group_header),
|
+ shortcutGroupsById,
|
||||||
+ R.string.keyboard_shortcut_address_bar,
|
+ R.string.keyboard_shortcut_chrome_feature_group_header,
|
||||||
+ KeyEvent.KEYCODE_D,
|
+ R.string.keyboard_shortcut_address_bar,
|
||||||
+ KeyEvent.META_ALT_ON);
|
+ KeyEvent.KEYCODE_D,
|
||||||
|
+ KeyEvent.META_ALT_ON);
|
||||||
return new ArrayList<>(shortcutGroupsById.values());
|
return new ArrayList<>(shortcutGroupsById.values());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ new file mode 100644
|
|||||||
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
|
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
|
||||||
--- a/net/url_request/url_request_http_job.cc
|
--- a/net/url_request/url_request_http_job.cc
|
||||||
+++ b/net/url_request/url_request_http_job.cc
|
+++ b/net/url_request/url_request_http_job.cc
|
||||||
@@ -387,6 +387,11 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
|
@@ -403,6 +403,11 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,24 +7,55 @@ adds a new flag in chrome://flags to re-enable the experiment
|
|||||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
---
|
---
|
||||||
base/features.cc | 4 ++++
|
base/features.cc | 4 ++++
|
||||||
|
content/renderer/render_process_impl.cc | 9 +++++++++
|
||||||
.../Add-PartialLowEndModeOnMidRangeDevices-flag.inc | 12 ++++++++++++
|
.../Add-PartialLowEndModeOnMidRangeDevices-flag.inc | 12 ++++++++++++
|
||||||
2 files changed, 16 insertions(+)
|
3 files changed, 25 insertions(+)
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc
|
||||||
|
|
||||||
diff --git a/base/features.cc b/base/features.cc
|
diff --git a/base/features.cc b/base/features.cc
|
||||||
--- a/base/features.cc
|
--- a/base/features.cc
|
||||||
+++ b/base/features.cc
|
+++ b/base/features.cc
|
||||||
@@ -126,6 +126,10 @@ BASE_FEATURE(kUseSharedRebindServiceConnection,
|
@@ -199,6 +199,10 @@ bool IsReducePPMsEnabled() {
|
||||||
FEATURE_DISABLED_BY_DEFAULT);
|
return g_is_reduce_ppms_enabled.load(std::memory_order_relaxed);
|
||||||
#endif // BUILDFLAG(IS_ANDROID)
|
}
|
||||||
|
|
||||||
+#if BUILDFLAG(IS_ANDROID)
|
+#if BUILDFLAG(IS_ANDROID)
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kPartialLowEndModeOnMidRangeDevices);
|
+SET_CROMITE_FEATURE_DISABLED(kPartialLowEndModeOnMidRangeDevices);
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
void Init(EmitThreadControllerProfilerMetadata
|
void Init() {
|
||||||
emit_thread_controller_profiler_metadata) {
|
g_is_reduce_ppms_enabled.store(FeatureList::IsEnabled(kReducePPMs),
|
||||||
sequence_manager::internal::SequenceManagerImpl::InitializeFeatures();
|
std::memory_order_relaxed);
|
||||||
|
diff --git a/content/renderer/render_process_impl.cc b/content/renderer/render_process_impl.cc
|
||||||
|
--- a/content/renderer/render_process_impl.cc
|
||||||
|
+++ b/content/renderer/render_process_impl.cc
|
||||||
|
@@ -2,6 +2,7 @@
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
+#include "base/features.h"
|
||||||
|
#include "content/renderer/render_process_impl.h"
|
||||||
|
|
||||||
|
#include "build/build_config.h"
|
||||||
|
@@ -123,10 +124,18 @@ RenderProcessImpl::RenderProcessImpl()
|
||||||
|
base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||||
|
switches::kDisallowV8FeatureFlagOverrides);
|
||||||
|
if (!disallow_v8_feature_flag_overrides) {
|
||||||
|
+#if BUILDFLAG(IS_ANDROID)
|
||||||
|
+ if (base::SysInfo::IsLowEndDevice()
|
||||||
|
+ && base::FeatureList::IsEnabled(base::features::kPartialLowEndModeOnMidRangeDevices)) {
|
||||||
|
+ std::string_view optimize_flag("--optimize-for-size");
|
||||||
|
+ v8::V8::SetFlagsFromString(optimize_flag.data(), optimize_flag.size());
|
||||||
|
+ }
|
||||||
|
+#else
|
||||||
|
if (base::SysInfo::IsLowEndDevice()) {
|
||||||
|
std::string_view optimize_flag("--optimize-for-size");
|
||||||
|
v8::V8::SetFlagsFromString(optimize_flag.data(), optimize_flag.size());
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////
|
||||||
|
// V8 flags are typically set in gin/v8_initializer.cc. Only those flags
|
||||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc
|
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
|
|||||||
@@ -27,13 +27,14 @@ diff --git a/chrome/android/expectations/expectations.gni b/chrome/android/expec
|
|||||||
+enable_libs_and_assets_verification = enable_trybot_verification &&
|
+enable_libs_and_assets_verification = enable_trybot_verification &&
|
||||||
!enable_chrome_android_internal && !is_component_build &&
|
!enable_chrome_android_internal && !is_component_build &&
|
||||||
!use_jacoco_coverage && is_official_build &&
|
!use_jacoco_coverage && is_official_build &&
|
||||||
(target_cpu == "arm64" && android_channel == "stable")
|
((target_cpu == "arm64" || target_cpu == "x64") &&
|
||||||
@@ -15,6 +19,6 @@ enable_libs_and_assets_verification =
|
@@ -16,7 +20,7 @@ enable_libs_and_assets_verification =
|
||||||
# use_jacoco_coverage: Adds proguard flags.
|
# use_jacoco_coverage: Adds proguard flags.
|
||||||
# android_channel: Manifest entries vary based on channel.
|
# android_channel: Manifest entries vary based on channel.
|
||||||
# target_cpu: android:versionCode varies.
|
# target_cpu: android:versionCode varies.
|
||||||
-enable_manifest_verification =
|
-enable_manifest_verification =
|
||||||
+enable_manifest_verification = enable_trybot_verification &&
|
+enable_manifest_verification = enable_trybot_verification &&
|
||||||
!is_java_debug && !enable_chrome_android_internal && !use_jacoco_coverage &&
|
!is_java_debug && !enable_chrome_android_internal && !use_jacoco_coverage &&
|
||||||
(target_cpu == "arm64" && android_channel == "stable")
|
((target_cpu == "arm64" || target_cpu == "x64") &&
|
||||||
|
android_channel == "stable")
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -5,34 +5,18 @@ Subject: Add a flag to disable GamePad API
|
|||||||
Adds restrict-gamepad-access flag (default active) to disable GamePad API.
|
Adds restrict-gamepad-access flag (default active) to disable GamePad API.
|
||||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
---
|
---
|
||||||
chrome/browser/flag-metadata.json | 4 ++--
|
|
||||||
content/child/runtime_features.cc | 2 ++
|
content/child/runtime_features.cc | 2 ++
|
||||||
.../about_flags_cc/Add-a-flag-to-disable-GamePad-API.inc | 7 +++++++
|
.../about_flags_cc/Add-a-flag-to-disable-GamePad-API.inc | 7 +++++++
|
||||||
device/gamepad/public/cpp/gamepad_features.cc | 8 ++++++++
|
device/gamepad/public/cpp/gamepad_features.cc | 8 ++++++++
|
||||||
device/gamepad/public/cpp/gamepad_features.h | 2 ++
|
device/gamepad/public/cpp/gamepad_features.h | 2 ++
|
||||||
.../blink/renderer/modules/gamepad/navigator_gamepad.cc | 6 ++++++
|
.../blink/renderer/modules/gamepad/navigator_gamepad.cc | 6 ++++++
|
||||||
6 files changed, 27 insertions(+), 2 deletions(-)
|
5 files changed, 25 insertions(+)
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-a-flag-to-disable-GamePad-API.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-a-flag-to-disable-GamePad-API.inc
|
||||||
|
|
||||||
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
|
|
||||||
--- a/chrome/browser/flag-metadata.json
|
|
||||||
+++ b/chrome/browser/flag-metadata.json
|
|
||||||
@@ -8364,9 +8364,9 @@
|
|
||||||
"expiry_milestone": 140
|
|
||||||
},
|
|
||||||
{
|
|
||||||
- "name": "restrict-gamepad-access",
|
|
||||||
+ "name": "restrict-gamepad-access", // restrict-gamepad-access"
|
|
||||||
"owners": [ "//device/gamepad/OWNERS", "jameshollyer@chromium.org" ],
|
|
||||||
- "expiry_milestone": 96
|
|
||||||
+ "expiry_milestone": -1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "retain-omnibox-on-focus",
|
|
||||||
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
|
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
|
||||||
--- a/content/child/runtime_features.cc
|
--- a/content/child/runtime_features.cc
|
||||||
+++ b/content/child/runtime_features.cc
|
+++ b/content/child/runtime_features.cc
|
||||||
@@ -253,6 +253,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
|
@@ -246,6 +246,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
|
||||||
{wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)},
|
{wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)},
|
||||||
{wf::EnablePeriodicBackgroundSync,
|
{wf::EnablePeriodicBackgroundSync,
|
||||||
raw_ref(features::kPeriodicBackgroundSync)},
|
raw_ref(features::kPeriodicBackgroundSync)},
|
||||||
@@ -56,7 +40,7 @@ new file mode 100644
|
|||||||
diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/public/cpp/gamepad_features.cc
|
diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/public/cpp/gamepad_features.cc
|
||||||
--- a/device/gamepad/public/cpp/gamepad_features.cc
|
--- a/device/gamepad/public/cpp/gamepad_features.cc
|
||||||
+++ b/device/gamepad/public/cpp/gamepad_features.cc
|
+++ b/device/gamepad/public/cpp/gamepad_features.cc
|
||||||
@@ -36,4 +36,12 @@ bool IsGamepadMultitouchEnabled() {
|
@@ -59,4 +59,12 @@ bool IsGamepadMultitouchEnabled() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,12 +56,17 @@ diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/publ
|
|||||||
diff --git a/device/gamepad/public/cpp/gamepad_features.h b/device/gamepad/public/cpp/gamepad_features.h
|
diff --git a/device/gamepad/public/cpp/gamepad_features.h b/device/gamepad/public/cpp/gamepad_features.h
|
||||||
--- a/device/gamepad/public/cpp/gamepad_features.h
|
--- a/device/gamepad/public/cpp/gamepad_features.h
|
||||||
+++ b/device/gamepad/public/cpp/gamepad_features.h
|
+++ b/device/gamepad/public/cpp/gamepad_features.h
|
||||||
@@ -13,8 +13,10 @@ namespace features {
|
@@ -17,6 +17,7 @@ GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(
|
||||||
|
GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kGamepadRawInputChangeEvent);
|
||||||
GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(
|
GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(
|
||||||
kEnableWindowsGamingInputDataFetcher);
|
kClaimDuplicateGamepadsProductIdentifier);
|
||||||
GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kEnableGamepadMultitouch);
|
|
||||||
+GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kRestrictGamepadAccess);
|
+GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kRestrictGamepadAccess);
|
||||||
|
|
||||||
|
#if BUILDFLAG(IS_WIN)
|
||||||
|
GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kIgnorePS5GamepadsInWgi);
|
||||||
|
@@ -34,6 +35,7 @@ GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(
|
||||||
|
#endif // BUILDFLAG(IS_APPLE)
|
||||||
|
|
||||||
GAMEPAD_FEATURES_EXPORT bool IsGamepadMultitouchEnabled();
|
GAMEPAD_FEATURES_EXPORT bool IsGamepadMultitouchEnabled();
|
||||||
+GAMEPAD_FEATURES_EXPORT bool IsRestrictGamepadAccessEnabled();
|
+GAMEPAD_FEATURES_EXPORT bool IsRestrictGamepadAccessEnabled();
|
||||||
|
|
||||||
@@ -91,10 +80,10 @@ diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/t
|
|||||||
#include "base/auto_reset.h"
|
#include "base/auto_reset.h"
|
||||||
#include "device/gamepad/public/cpp/gamepads.h"
|
#include "device/gamepad/public/cpp/gamepads.h"
|
||||||
+#include "device/gamepad/public/cpp/gamepad_features.h"
|
+#include "device/gamepad/public/cpp/gamepad_features.h"
|
||||||
#include "third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h"
|
|
||||||
#include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h"
|
|
||||||
#include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-blink.h"
|
#include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-blink.h"
|
||||||
@@ -114,6 +115,9 @@ void RecordGamepadsForIdentifiabilityStudy(
|
#include "third_party/blink/public/platform/task_type.h"
|
||||||
|
#include "third_party/blink/renderer/bindings/modules/v8/v8_gamepad_mapping_type.h"
|
||||||
|
@@ -88,6 +89,9 @@ NavigatorGamepad& NavigatorGamepad::From(Navigator& navigator) {
|
||||||
HeapVector<Member<Gamepad>> NavigatorGamepad::getGamepads(
|
HeapVector<Member<Gamepad>> NavigatorGamepad::getGamepads(
|
||||||
Navigator& navigator,
|
Navigator& navigator,
|
||||||
ExceptionState& exception_state) {
|
ExceptionState& exception_state) {
|
||||||
@@ -104,10 +93,10 @@ diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/t
|
|||||||
if (!navigator.DomWindow()) {
|
if (!navigator.DomWindow()) {
|
||||||
// Using an existing NavigatorGamepad if one exists, but don't create one
|
// Using an existing NavigatorGamepad if one exists, but don't create one
|
||||||
// for a detached window, as its subclasses depend on a non-null window.
|
// for a detached window, as its subclasses depend on a non-null window.
|
||||||
@@ -420,6 +424,8 @@ void NavigatorGamepad::SampleAndCompareGamepadState() {
|
@@ -433,6 +437,8 @@ void NavigatorGamepad::MaybeDispatchGamepadEvents(
|
||||||
|
void NavigatorGamepad::DispatchGamepadConnectionChangedEvent(
|
||||||
void NavigatorGamepad::DispatchGamepadEvent(const AtomicString& event_name,
|
const AtomicString& event_name,
|
||||||
Gamepad* gamepad) {
|
Gamepad* gamepad) {
|
||||||
+ if (::features::IsRestrictGamepadAccessEnabled())
|
+ if (::features::IsRestrictGamepadAccessEnabled())
|
||||||
+ return;
|
+ return;
|
||||||
// Ensure that we're blocking re-entrancy.
|
// Ensure that we're blocking re-entrancy.
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ this implementation is the same as the one in ChromeOS which gets proxy informat
|
|||||||
for the system network context; this is strictly not correct on Android because the network context is
|
for the system network context; this is strictly not correct on Android because the network context is
|
||||||
never connected to any user profile and only gets proxy information from the system.
|
never connected to any user profile and only gets proxy information from the system.
|
||||||
Existing settings on Profile are migrated to LocalState on startup.
|
Existing settings on Profile are migrated to LocalState on startup.
|
||||||
|
Enable the support for multiple proxy chain via the bracketed [] sintax
|
||||||
|
|
||||||
Credits to @uazo for the LocalState integration.
|
Credits to @uazo for the LocalState integration.
|
||||||
|
|
||||||
@@ -32,16 +33,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
.../browser/ui/webui/chrome_web_ui_configs.cc | 5 +-
|
.../browser/ui/webui/chrome_web_ui_configs.cc | 5 +-
|
||||||
chrome/browser/ui/webui/proxy_config_ui.cc | 389 ++++++++++++++++++
|
chrome/browser/ui/webui/proxy_config_ui.cc | 389 ++++++++++++++++++
|
||||||
chrome/browser/ui/webui/proxy_config_ui.h | 41 ++
|
chrome/browser/ui/webui/proxy_config_ui.h | 41 ++
|
||||||
chrome/common/webui_url_constants.cc | 2 +
|
chrome/common/webui_url_constants.cc | 1 +
|
||||||
chrome/common/webui_url_constants.h | 2 +
|
chrome/common/webui_url_constants.h | 2 +
|
||||||
.../pref_proxy_config_tracker_impl.cc | 5 +-
|
.../pref_proxy_config_tracker_impl.cc | 5 +-
|
||||||
.../proxy_config/proxy_config_dictionary.cc | 30 +-
|
.../proxy_config/proxy_config_dictionary.cc | 30 +-
|
||||||
.../proxy_config/proxy_config_dictionary.h | 7 +-
|
.../proxy_config/proxy_config_dictionary.h | 7 +-
|
||||||
.../proxy_config/proxy_policy_handler.cc | 2 +-
|
.../proxy_config/proxy_policy_handler.cc | 2 +-
|
||||||
|
net/features.gni | 2 +-
|
||||||
net/proxy_resolution/pac_file_fetcher_impl.cc | 8 -
|
net/proxy_resolution/pac_file_fetcher_impl.cc | 8 -
|
||||||
net/proxy_resolution/proxy_config.cc | 53 ++-
|
net/proxy_resolution/proxy_config.cc | 53 ++-
|
||||||
net/proxy_resolution/proxy_config.h | 3 +
|
net/proxy_resolution/proxy_config.h | 3 +
|
||||||
26 files changed, 986 insertions(+), 26 deletions(-)
|
27 files changed, 986 insertions(+), 27 deletions(-)
|
||||||
create mode 100644 chrome/browser/resources/proxy_config.css
|
create mode 100644 chrome/browser/resources/proxy_config.css
|
||||||
create mode 100644 chrome/browser/resources/proxy_config.html
|
create mode 100644 chrome/browser/resources/proxy_config.html
|
||||||
create mode 100644 chrome/browser/resources/proxy_config.js
|
create mode 100644 chrome/browser/resources/proxy_config.js
|
||||||
@@ -78,7 +80,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
@@ -101,6 +101,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -110,6 +110,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection";
|
private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection";
|
||||||
private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
|
private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
|
||||||
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
||||||
@@ -89,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||||
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||||
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||||
@@ -372,6 +372,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
@@ -420,6 +420,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||||
builtins_to_provide.push_back(chrome::kChromeUISettingsURL16);
|
builtins_to_provide.push_back(chrome::kChromeUISettingsURL16);
|
||||||
#endif
|
#endif
|
||||||
builtins_to_provide.push_back(chrome::kChromeUIVersionURL16);
|
builtins_to_provide.push_back(chrome::kChromeUIVersionURL16);
|
||||||
@@ -100,9 +102,9 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
|||||||
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
|
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
|
||||||
--- a/chrome/browser/browser_resources.grd
|
--- a/chrome/browser/browser_resources.grd
|
||||||
+++ b/chrome/browser/browser_resources.grd
|
+++ b/chrome/browser/browser_resources.grd
|
||||||
@@ -221,6 +221,9 @@
|
@@ -236,6 +236,9 @@
|
||||||
|
<if expr="_google_chrome">
|
||||||
<include name="IDR_PREF_HASH_SEED_BIN" file="resources\settings\internal\pref_hash_seed.bin" type="BINDATA" />
|
<include name="IDR_PREF_HASH_SEED_BIN" file="resources\settings\internal\pref_hash_seed.bin" type="BINDATA" />
|
||||||
<include name="IDR_ADDITIONAL_MODULE_IDS" file="${additional_modules_list_file}" use_base_dir="false" type="BINDATA" />
|
|
||||||
</if>
|
</if>
|
||||||
+ <!-- Bromite Proxy Configuration UI -->
|
+ <!-- Bromite Proxy Configuration UI -->
|
||||||
+ <include name="IDR_PROXY_CONFIG_HTML" file="resources\proxy_config.html" flattenhtml="true" type="BINDATA" compress="gzip" />
|
+ <include name="IDR_PROXY_CONFIG_HTML" file="resources\proxy_config.html" flattenhtml="true" type="BINDATA" compress="gzip" />
|
||||||
@@ -113,7 +115,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
|
|||||||
diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
|
diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
|
||||||
--- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
|
--- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
|
||||||
+++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
|
+++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
|
||||||
@@ -372,7 +372,7 @@ std::optional<base::Value::Dict> CreateProxyConfigDict(
|
@@ -383,7 +383,7 @@ std::optional<base::DictValue> CreateProxyConfigDict(
|
||||||
return std::nullopt;
|
return std::nullopt;
|
||||||
}
|
}
|
||||||
return ProxyConfigDictionary::CreateFixedServers(proxy_rules_string,
|
return ProxyConfigDictionary::CreateFixedServers(proxy_rules_string,
|
||||||
@@ -150,7 +152,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/pr
|
|||||||
- return std::make_unique<PrefProxyConfigTrackerImpl>(profile_prefs, nullptr);
|
- return std::make_unique<PrefProxyConfigTrackerImpl>(profile_prefs, nullptr);
|
||||||
+ // Migrate from profile_prefs to local_state_prefs
|
+ // Migrate from profile_prefs to local_state_prefs
|
||||||
+ if (local_state_prefs->GetBoolean("proxy_migrated") == false) {
|
+ if (local_state_prefs->GetBoolean("proxy_migrated") == false) {
|
||||||
+ const base::Value::Dict& dict =
|
+ const base::DictValue& dict =
|
||||||
+ profile_prefs->GetDict(proxy_config::prefs::kProxy);
|
+ profile_prefs->GetDict(proxy_config::prefs::kProxy);
|
||||||
+
|
+
|
||||||
+ LOG(INFO) << "CreatePrefProxyConfigTrackerOfProfile: Migration from profile to local state";
|
+ LOG(INFO) << "CreatePrefProxyConfigTrackerOfProfile: Migration from profile to local state";
|
||||||
@@ -197,7 +199,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro
|
|||||||
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
||||||
--- a/chrome/browser/prefs/browser_prefs.cc
|
--- a/chrome/browser/prefs/browser_prefs.cc
|
||||||
+++ b/chrome/browser/prefs/browser_prefs.cc
|
+++ b/chrome/browser/prefs/browser_prefs.cc
|
||||||
@@ -204,6 +204,8 @@
|
@@ -212,6 +212,8 @@
|
||||||
#include "printing/buildflags/buildflags.h"
|
#include "printing/buildflags/buildflags.h"
|
||||||
#include "rlz/buildflags/buildflags.h"
|
#include "rlz/buildflags/buildflags.h"
|
||||||
|
|
||||||
@@ -206,7 +208,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
|
|||||||
#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
|
#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
|
||||||
#include "chrome/browser/background/extensions/background_mode_manager.h"
|
#include "chrome/browser/background/extensions/background_mode_manager.h"
|
||||||
#endif
|
#endif
|
||||||
@@ -1613,6 +1615,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
@@ -1374,6 +1376,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||||
component_updater::RegisterPrefs(registry);
|
component_updater::RegisterPrefs(registry);
|
||||||
domain_reliability::RegisterPrefs(registry);
|
domain_reliability::RegisterPrefs(registry);
|
||||||
embedder_support::OriginTrialPrefs::RegisterPrefs(registry);
|
embedder_support::OriginTrialPrefs::RegisterPrefs(registry);
|
||||||
@@ -218,7 +220,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
|
|||||||
diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc
|
diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc
|
||||||
--- a/chrome/browser/prefs/chrome_command_line_pref_store.cc
|
--- a/chrome/browser/prefs/chrome_command_line_pref_store.cc
|
||||||
+++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc
|
+++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc
|
||||||
@@ -160,7 +160,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() {
|
@@ -161,7 +161,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() {
|
||||||
command_line()->GetSwitchValueASCII(switches::kProxyBypassList);
|
command_line()->GetSwitchValueASCII(switches::kProxyBypassList);
|
||||||
SetValue(proxy_config::prefs::kProxy,
|
SetValue(proxy_config::prefs::kProxy,
|
||||||
base::Value(ProxyConfigDictionary::CreateFixedServers(
|
base::Value(ProxyConfigDictionary::CreateFixedServers(
|
||||||
@@ -661,7 +663,7 @@ new file mode 100644
|
|||||||
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
|
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
|
||||||
--- a/chrome/browser/ui/BUILD.gn
|
--- a/chrome/browser/ui/BUILD.gn
|
||||||
+++ b/chrome/browser/ui/BUILD.gn
|
+++ b/chrome/browser/ui/BUILD.gn
|
||||||
@@ -204,6 +204,8 @@ static_library("ui") {
|
@@ -156,6 +156,8 @@ static_library("ui") {
|
||||||
"webui/metrics_internals/metrics_internals_ui.h",
|
"webui/metrics_internals/metrics_internals_ui.h",
|
||||||
"webui/net_export_ui.cc",
|
"webui/net_export_ui.cc",
|
||||||
"webui/net_export_ui.h",
|
"webui/net_export_ui.h",
|
||||||
@@ -673,20 +675,20 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
|
|||||||
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
|
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
|
||||||
--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc
|
--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc
|
||||||
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
|
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
|
||||||
@@ -57,6 +57,9 @@
|
@@ -64,6 +64,9 @@
|
||||||
#include "extensions/buildflags/buildflags.h"
|
#include "extensions/buildflags/buildflags.h"
|
||||||
#include "printing/buildflags/buildflags.h"
|
#include "printing/buildflags/buildflags.h"
|
||||||
|
|
||||||
+#include "chrome/browser/ui/webui/proxy_config_ui.h"
|
+#include "chrome/browser/ui/webui/proxy_config_ui.h"
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
#if BUILDFLAG(ENABLE_NACL)
|
#if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER)
|
||||||
#include "chrome/browser/ui/webui/nacl_ui.h"
|
#include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h"
|
||||||
#endif
|
|
||||||
@@ -422,7 +425,7 @@ void RegisterChromeWebUIConfigs() {
|
|
||||||
map.AddWebUIConfig(std::make_unique<glic::GlicUIConfig>());
|
|
||||||
map.AddWebUIConfig(std::make_unique<glic::GlicFreUIConfig>());
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -453,7 +456,7 @@ void RegisterChromeWebUIConfigs() {
|
||||||
|
map.AddWebUIConfig(std::make_unique<SigninErrorUIConfig>());
|
||||||
|
map.AddWebUIConfig(std::make_unique<SigninEmailConfirmationUIConfig>());
|
||||||
|
#endif // !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
|
||||||
-
|
-
|
||||||
+ map.AddWebUIConfig(std::make_unique<ProxyConfigUIConfig>());
|
+ map.AddWebUIConfig(std::make_unique<ProxyConfigUIConfig>());
|
||||||
#if BUILDFLAG(SAFE_BROWSING_AVAILABLE)
|
#if BUILDFLAG(SAFE_BROWSING_AVAILABLE)
|
||||||
@@ -772,9 +774,9 @@ new file mode 100644
|
|||||||
+ void RegisterMessages() override;
|
+ void RegisterMessages() override;
|
||||||
+
|
+
|
||||||
+ // Messages
|
+ // Messages
|
||||||
+ void OnEnableNotifyUIWithState(const base::Value::List& args);
|
+ void OnEnableNotifyUIWithState(const base::ListValue& args);
|
||||||
+ void OnApply(const base::Value::List& args);
|
+ void OnApply(const base::ListValue& args);
|
||||||
+ void OnClear(const base::Value::List& args);
|
+ void OnClear(const base::ListValue& args);
|
||||||
+
|
+
|
||||||
+ // net::ProxyConfigService::Observer implementation:
|
+ // net::ProxyConfigService::Observer implementation:
|
||||||
+ // Calls ProxyConfigView.onProxyConfigChanged JavaScript function in the
|
+ // Calls ProxyConfigView.onProxyConfigChanged JavaScript function in the
|
||||||
@@ -791,7 +793,7 @@ new file mode 100644
|
|||||||
+ std::unique_ptr<PrefProxyConfigTracker> pref_proxy_config_tracker_;
|
+ std::unique_ptr<PrefProxyConfigTracker> pref_proxy_config_tracker_;
|
||||||
+ bool is_observing_;
|
+ bool is_observing_;
|
||||||
+
|
+
|
||||||
+ void encodeConfig(const net::ProxyConfig& config, base::Value::Dict& state);
|
+ void encodeConfig(const net::ProxyConfig& config, base::DictValue& state);
|
||||||
+
|
+
|
||||||
+ void apply(const net::ProxyConfig& config);
|
+ void apply(const net::ProxyConfig& config);
|
||||||
+
|
+
|
||||||
@@ -831,7 +833,7 @@ new file mode 100644
|
|||||||
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) ||
|
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) ||
|
||||||
+ !BrowserThread::IsThreadInitialized(BrowserThread::UI));
|
+ !BrowserThread::IsThreadInitialized(BrowserThread::UI));
|
||||||
+
|
+
|
||||||
+ base::Value::Dict state;
|
+ base::DictValue state;
|
||||||
+ bool pending = false;
|
+ bool pending = false;
|
||||||
+ switch (availability) {
|
+ switch (availability) {
|
||||||
+ case net::ProxyConfigService::CONFIG_VALID:
|
+ case net::ProxyConfigService::CONFIG_VALID:
|
||||||
@@ -859,7 +861,7 @@ new file mode 100644
|
|||||||
+ return pacString;
|
+ return pacString;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+void ProxyConfigMessageHandler::encodeConfig(const net::ProxyConfig& config, base::Value::Dict& state) {
|
+void ProxyConfigMessageHandler::encodeConfig(const net::ProxyConfig& config, base::DictValue& state) {
|
||||||
+ // when automatic settings are enabled they take precedence over manual settings
|
+ // when automatic settings are enabled they take precedence over manual settings
|
||||||
+ // automatic settings are either the "auto-detect" flag or the existance of a PAC URL
|
+ // automatic settings are either the "auto-detect" flag or the existance of a PAC URL
|
||||||
+
|
+
|
||||||
@@ -930,7 +932,7 @@ new file mode 100644
|
|||||||
+// The proxy configuration UI is not notified of state changes until this function runs.
|
+// The proxy configuration UI is not notified of state changes until this function runs.
|
||||||
+// After this function, OnProxyConfigChanged() will be called on all proxy state changes.
|
+// After this function, OnProxyConfigChanged() will be called on all proxy state changes.
|
||||||
+void ProxyConfigMessageHandler::OnEnableNotifyUIWithState(
|
+void ProxyConfigMessageHandler::OnEnableNotifyUIWithState(
|
||||||
+ const base::Value::List& list) {
|
+ const base::ListValue& list) {
|
||||||
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||||
+
|
+
|
||||||
+ if (!is_observing_) {
|
+ if (!is_observing_) {
|
||||||
@@ -952,23 +954,23 @@ new file mode 100644
|
|||||||
+ OnProxyConfigChanged(config, availability);
|
+ OnProxyConfigChanged(config, availability);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+void ProxyConfigMessageHandler::OnClear(const base::Value::List& list) {
|
+void ProxyConfigMessageHandler::OnClear(const base::ListValue& list) {
|
||||||
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||||
+
|
+
|
||||||
+ const base::Value::Dict cfg = ProxyConfigDictionary::CreateSystem();
|
+ const base::DictValue cfg = ProxyConfigDictionary::CreateSystem();
|
||||||
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
|
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
|
||||||
+ pref_service_->CommitPendingWrite();
|
+ pref_service_->CommitPendingWrite();
|
||||||
+ OnEnableNotifyUIWithState(list);
|
+ OnEnableNotifyUIWithState(list);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+void ProxyConfigMessageHandler::OnApply(const base::Value::List& list) {
|
+void ProxyConfigMessageHandler::OnApply(const base::ListValue& list) {
|
||||||
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||||
+
|
+
|
||||||
+ if ((list.size() != 1) || !list[0].is_dict()) {
|
+ if ((list.size() != 1) || !list[0].is_dict()) {
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ const base::Value::Dict& config = list[0].GetDict();
|
+ const base::DictValue& config = list[0].GetDict();
|
||||||
+
|
+
|
||||||
+ if (config.FindBool("auto_detect").value_or(false)) {
|
+ if (config.FindBool("auto_detect").value_or(false)) {
|
||||||
+ apply(net::ProxyConfig::CreateAutoDetect());
|
+ apply(net::ProxyConfig::CreateAutoDetect());
|
||||||
@@ -984,7 +986,7 @@ new file mode 100644
|
|||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ const base::Value::Dict* rules = config.FindDict("rules");
|
+ const base::DictValue* rules = config.FindDict("rules");
|
||||||
+ if (rules == nullptr)
|
+ if (rules == nullptr)
|
||||||
+ return;
|
+ return;
|
||||||
+
|
+
|
||||||
@@ -1021,7 +1023,7 @@ new file mode 100644
|
|||||||
+ } else if (*type == "direct") {
|
+ } else if (*type == "direct") {
|
||||||
+ proxyConfig.proxy_rules().type = net::ProxyConfig::ProxyRules::Type::EMPTY;
|
+ proxyConfig.proxy_rules().type = net::ProxyConfig::ProxyRules::Type::EMPTY;
|
||||||
+ } else if (*type == "none") {
|
+ } else if (*type == "none") {
|
||||||
+ base::Value::List empty;
|
+ base::ListValue empty;
|
||||||
+ OnClear(empty);
|
+ OnClear(empty);
|
||||||
+ return;
|
+ return;
|
||||||
+ } else {
|
+ } else {
|
||||||
@@ -1047,26 +1049,26 @@ new file mode 100644
|
|||||||
+
|
+
|
||||||
+void ProxyConfigMessageHandler::apply(const net::ProxyConfig& proxyConfig) {
|
+void ProxyConfigMessageHandler::apply(const net::ProxyConfig& proxyConfig) {
|
||||||
+ if (proxyConfig.auto_detect()) {
|
+ if (proxyConfig.auto_detect()) {
|
||||||
+ const base::Value::Dict cfg = ProxyConfigDictionary::CreateAutoDetect();
|
+ const base::DictValue cfg = ProxyConfigDictionary::CreateAutoDetect();
|
||||||
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
|
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
|
||||||
+ } else if (proxyConfig.has_pac_url()) {
|
+ } else if (proxyConfig.has_pac_url()) {
|
||||||
+ const base::Value::Dict cfg = ProxyConfigDictionary::CreatePacScript(proxyConfig.pac_url().spec(), proxyConfig.pac_mandatory());
|
+ const base::DictValue cfg = ProxyConfigDictionary::CreatePacScript(proxyConfig.pac_url().spec(), proxyConfig.pac_mandatory());
|
||||||
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
|
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
|
||||||
+ } else if (proxyConfig.proxy_rules().type == net::ProxyConfig::ProxyRules::Type::EMPTY) {
|
+ } else if (proxyConfig.proxy_rules().type == net::ProxyConfig::ProxyRules::Type::EMPTY) {
|
||||||
+ const base::Value::Dict cfg = ProxyConfigDictionary::CreateDirect();
|
+ const base::DictValue cfg = ProxyConfigDictionary::CreateDirect();
|
||||||
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
|
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
|
||||||
+ } else {
|
+ } else {
|
||||||
+ auto proxyRulesAsString = proxyConfig.proxy_rules().ToString();
|
+ auto proxyRulesAsString = proxyConfig.proxy_rules().ToString();
|
||||||
+ auto bypassRulesAsString = proxyConfig.proxy_rules().bypass_rules.ToString();
|
+ auto bypassRulesAsString = proxyConfig.proxy_rules().bypass_rules.ToString();
|
||||||
+
|
+
|
||||||
+ // fixed servers
|
+ // fixed servers
|
||||||
+ const base::Value::Dict cfg = ProxyConfigDictionary::CreateFixedServers(proxyRulesAsString,
|
+ const base::DictValue cfg = ProxyConfigDictionary::CreateFixedServers(proxyRulesAsString,
|
||||||
+ bypassRulesAsString, proxyConfig.proxy_rules().reverse_bypass);
|
+ bypassRulesAsString, proxyConfig.proxy_rules().reverse_bypass);
|
||||||
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
|
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
|
||||||
+ }
|
+ }
|
||||||
+ pref_service_->CommitPendingWrite();
|
+ pref_service_->CommitPendingWrite();
|
||||||
+
|
+
|
||||||
+ base::Value::List empty;
|
+ base::ListValue empty;
|
||||||
+ OnEnableNotifyUIWithState(empty);
|
+ OnEnableNotifyUIWithState(empty);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
@@ -1135,26 +1137,18 @@ new file mode 100644
|
|||||||
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
|
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
|
||||||
--- a/chrome/common/webui_url_constants.cc
|
--- a/chrome/common/webui_url_constants.cc
|
||||||
+++ b/chrome/common/webui_url_constants.cc
|
+++ b/chrome/common/webui_url_constants.cc
|
||||||
@@ -51,6 +51,7 @@ bool IsSystemWebUIHost(std::string_view host) {
|
@@ -120,6 +120,7 @@ bool IsSystemWebUIHost(std::string_view host) {
|
||||||
kChromeUILockScreenNetworkHost,
|
|
||||||
kChromeUILockScreenStartReauthHost,
|
|
||||||
kChromeUIMobileSetupHost,
|
|
||||||
+ kChromeUIProxyConfigHost,
|
|
||||||
kChromeUIMultiDeviceSetupHost,
|
|
||||||
kChromeUINetworkHost,
|
|
||||||
kChromeUINotificationTesterHost,
|
|
||||||
@@ -72,6 +73,7 @@ bool IsSystemWebUIHost(std::string_view host) {
|
|
||||||
// These hosts will also be suggested by BuiltinProvider.
|
// These hosts will also be suggested by BuiltinProvider.
|
||||||
base::span<const base::cstring_view> ChromeURLHosts() {
|
base::span<const base::cstring_view> ChromeURLHosts() {
|
||||||
static constexpr auto kChromeURLHosts = std::to_array<base::cstring_view>({
|
static constexpr auto kChromeURLHosts = std::to_array<base::cstring_view>({
|
||||||
+ kChromeUIProxyConfigHost,
|
+ kChromeUIProxyConfigHost,
|
||||||
kChromeUIAboutHost,
|
kChromeUIAboutHost,
|
||||||
kChromeUIAccessibilityHost,
|
kChromeUIAccessibilityHost,
|
||||||
#if !BUILDFLAG(IS_ANDROID)
|
kChromeUIActorInternalsHost,
|
||||||
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
|
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
|
||||||
--- a/chrome/common/webui_url_constants.h
|
--- a/chrome/common/webui_url_constants.h
|
||||||
+++ b/chrome/common/webui_url_constants.h
|
+++ b/chrome/common/webui_url_constants.h
|
||||||
@@ -179,6 +179,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals";
|
@@ -210,6 +210,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals";
|
||||||
inline constexpr char kChromeUINetInternalsURL[] = "chrome://net-internals/";
|
inline constexpr char kChromeUINetInternalsURL[] = "chrome://net-internals/";
|
||||||
inline constexpr char kChromeUINewTabHost[] = "newtab";
|
inline constexpr char kChromeUINewTabHost[] = "newtab";
|
||||||
inline constexpr char kChromeUINewTabFooterHost[] = "newtab-footer";
|
inline constexpr char kChromeUINewTabFooterHost[] = "newtab-footer";
|
||||||
@@ -1166,24 +1160,25 @@ diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_const
|
|||||||
diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/components/proxy_config/pref_proxy_config_tracker_impl.cc
|
diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/components/proxy_config/pref_proxy_config_tracker_impl.cc
|
||||||
--- a/components/proxy_config/pref_proxy_config_tracker_impl.cc
|
--- a/components/proxy_config/pref_proxy_config_tracker_impl.cc
|
||||||
+++ b/components/proxy_config/pref_proxy_config_tracker_impl.cc
|
+++ b/components/proxy_config/pref_proxy_config_tracker_impl.cc
|
||||||
@@ -253,14 +253,14 @@ PrefProxyConfigTrackerImpl::GetEffectiveProxyConfig(
|
@@ -525,7 +525,7 @@ PrefProxyConfigTrackerImpl::GetEffectiveProxyConfig(
|
||||||
// static
|
// static
|
||||||
void PrefProxyConfigTrackerImpl::RegisterPrefs(PrefRegistrySimple* registry) {
|
void PrefProxyConfigTrackerImpl::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||||
registry->RegisterDictionaryPref(proxy_config::prefs::kProxy,
|
registry->RegisterDictionaryPref(proxy_config::prefs::kProxy,
|
||||||
- ProxyConfigDictionary::CreateSystem());
|
- ProxyConfigDictionary::CreateSystem());
|
||||||
+ ProxyConfigDictionary::CreateDirect());
|
+ ProxyConfigDictionary::CreateDirect());
|
||||||
}
|
registry->RegisterListPref(proxy_config::prefs::kProxyOverrideRules);
|
||||||
|
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
|
||||||
// static
|
registry->RegisterIntegerPref(
|
||||||
|
@@ -541,7 +541,7 @@ void PrefProxyConfigTrackerImpl::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||||
void PrefProxyConfigTrackerImpl::RegisterProfilePrefs(
|
void PrefProxyConfigTrackerImpl::RegisterProfilePrefs(
|
||||||
PrefRegistrySimple* registry) {
|
PrefRegistrySimple* registry) {
|
||||||
registry->RegisterDictionaryPref(proxy_config::prefs::kProxy,
|
registry->RegisterDictionaryPref(proxy_config::prefs::kProxy,
|
||||||
- ProxyConfigDictionary::CreateSystem());
|
- ProxyConfigDictionary::CreateSystem());
|
||||||
+ ProxyConfigDictionary::CreateDirect());
|
+ ProxyConfigDictionary::CreateDirect());
|
||||||
registry->RegisterBooleanPref(proxy_config::prefs::kUseSharedProxies, false);
|
registry->RegisterBooleanPref(proxy_config::prefs::kUseSharedProxies, false);
|
||||||
}
|
registry->RegisterListPref(proxy_config::prefs::kProxyOverrideRules);
|
||||||
|
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
|
||||||
@@ -405,6 +405,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(
|
@@ -705,6 +705,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(
|
||||||
if (proxy_dict.GetBypassList(&proxy_bypass)) {
|
if (proxy_dict.GetBypassList(&proxy_bypass)) {
|
||||||
proxy_config.proxy_rules().bypass_rules.ParseFromString(proxy_bypass);
|
proxy_config.proxy_rules().bypass_rules.ParseFromString(proxy_bypass);
|
||||||
}
|
}
|
||||||
@@ -1196,7 +1191,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro
|
|||||||
+++ b/components/proxy_config/proxy_config_dictionary.cc
|
+++ b/components/proxy_config/proxy_config_dictionary.cc
|
||||||
@@ -30,6 +30,8 @@ const char kProxyPacMandatory[] = "pac_mandatory";
|
@@ -30,6 +30,8 @@ const char kProxyPacMandatory[] = "pac_mandatory";
|
||||||
// String containing proxy bypass rules. For a specification of the
|
// String containing proxy bypass rules. For a specification of the
|
||||||
// expected syntax see net::ProxyBypassRules::ParseFromString().
|
// expected syntax see net::ProxyHostMatchingRules::ParseFromString().
|
||||||
const char kProxyBypassList[] = "bypass_list";
|
const char kProxyBypassList[] = "bypass_list";
|
||||||
+// Boolean telling whether to reverse the meaning of the bypass list.
|
+// Boolean telling whether to reverse the meaning of the bypass list.
|
||||||
+const char kProxyReverseBypass[] = "reverse_bypass";
|
+const char kProxyReverseBypass[] = "reverse_bypass";
|
||||||
@@ -1215,26 +1210,26 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro
|
|||||||
+ return value->GetBool();
|
+ return value->GetBool();
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
const base::Value::Dict& ProxyConfigDictionary::GetDictionary() const {
|
const base::DictValue& ProxyConfigDictionary::GetDictionary() const {
|
||||||
return dict_;
|
return dict_;
|
||||||
}
|
}
|
||||||
@@ -83,13 +93,13 @@ const base::Value::Dict& ProxyConfigDictionary::GetDictionary() const {
|
@@ -83,13 +93,13 @@ const base::DictValue& ProxyConfigDictionary::GetDictionary() const {
|
||||||
// static
|
// static
|
||||||
base::Value::Dict ProxyConfigDictionary::CreateDirect() {
|
base::DictValue ProxyConfigDictionary::CreateDirect() {
|
||||||
return CreateDictionary(ProxyPrefs::MODE_DIRECT, std::string(), false,
|
return CreateDictionary(ProxyPrefs::MODE_DIRECT, std::string(), false,
|
||||||
- std::string(), std::string());
|
- std::string(), std::string());
|
||||||
+ std::string(), std::string(), false);
|
+ std::string(), std::string(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
base::Value::Dict ProxyConfigDictionary::CreateAutoDetect() {
|
base::DictValue ProxyConfigDictionary::CreateAutoDetect() {
|
||||||
return CreateDictionary(ProxyPrefs::MODE_AUTO_DETECT, std::string(), false,
|
return CreateDictionary(ProxyPrefs::MODE_AUTO_DETECT, std::string(), false,
|
||||||
- std::string(), std::string());
|
- std::string(), std::string());
|
||||||
+ std::string(), std::string(), false);
|
+ std::string(), std::string(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
@@ -97,16 +107,17 @@ base::Value::Dict ProxyConfigDictionary::CreatePacScript(
|
@@ -97,16 +107,17 @@ base::DictValue ProxyConfigDictionary::CreatePacScript(
|
||||||
const std::string& pac_url,
|
const std::string& pac_url,
|
||||||
bool pac_mandatory) {
|
bool pac_mandatory) {
|
||||||
return CreateDictionary(ProxyPrefs::MODE_PAC_SCRIPT, pac_url, pac_mandatory,
|
return CreateDictionary(ProxyPrefs::MODE_PAC_SCRIPT, pac_url, pac_mandatory,
|
||||||
@@ -1243,7 +1238,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro
|
|||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
base::Value::Dict ProxyConfigDictionary::CreateFixedServers(
|
base::DictValue ProxyConfigDictionary::CreateFixedServers(
|
||||||
const std::string& proxy_server,
|
const std::string& proxy_server,
|
||||||
- const std::string& bypass_list) {
|
- const std::string& bypass_list) {
|
||||||
+ const std::string& bypass_list,
|
+ const std::string& bypass_list,
|
||||||
@@ -1255,26 +1250,26 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro
|
|||||||
} else {
|
} else {
|
||||||
return CreateDirect();
|
return CreateDirect();
|
||||||
}
|
}
|
||||||
@@ -115,7 +126,7 @@ base::Value::Dict ProxyConfigDictionary::CreateFixedServers(
|
@@ -115,7 +126,7 @@ base::DictValue ProxyConfigDictionary::CreateFixedServers(
|
||||||
// static
|
// static
|
||||||
base::Value::Dict ProxyConfigDictionary::CreateSystem() {
|
base::DictValue ProxyConfigDictionary::CreateSystem() {
|
||||||
return CreateDictionary(ProxyPrefs::MODE_SYSTEM, std::string(), false,
|
return CreateDictionary(ProxyPrefs::MODE_SYSTEM, std::string(), false,
|
||||||
- std::string(), std::string());
|
- std::string(), std::string());
|
||||||
+ std::string(), std::string(), false);
|
+ std::string(), std::string(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
@@ -124,7 +135,8 @@ base::Value::Dict ProxyConfigDictionary::CreateDictionary(
|
@@ -124,7 +135,8 @@ base::DictValue ProxyConfigDictionary::CreateDictionary(
|
||||||
const std::string& pac_url,
|
const std::string& pac_url,
|
||||||
bool pac_mandatory,
|
bool pac_mandatory,
|
||||||
const std::string& proxy_server,
|
const std::string& proxy_server,
|
||||||
- const std::string& bypass_list) {
|
- const std::string& bypass_list) {
|
||||||
+ const std::string& bypass_list,
|
+ const std::string& bypass_list,
|
||||||
+ bool reverse_bypass) {
|
+ bool reverse_bypass) {
|
||||||
base::Value::Dict dict;
|
base::DictValue dict;
|
||||||
dict.Set(kProxyMode, base::Value(ProxyModeToString(mode)));
|
dict.Set(kProxyMode, base::Value(ProxyModeToString(mode)));
|
||||||
if (!pac_url.empty()) {
|
if (!pac_url.empty()) {
|
||||||
@@ -133,8 +145,10 @@ base::Value::Dict ProxyConfigDictionary::CreateDictionary(
|
@@ -133,8 +145,10 @@ base::DictValue ProxyConfigDictionary::CreateDictionary(
|
||||||
}
|
}
|
||||||
if (!proxy_server.empty())
|
if (!proxy_server.empty())
|
||||||
dict.Set(kProxyServer, base::Value(proxy_server));
|
dict.Set(kProxyServer, base::Value(proxy_server));
|
||||||
@@ -1295,27 +1290,27 @@ diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/prox
|
|||||||
bool HasBypassList() const;
|
bool HasBypassList() const;
|
||||||
+ bool HasReverseBypass() const;
|
+ bool HasReverseBypass() const;
|
||||||
|
|
||||||
const base::Value::Dict& GetDictionary() const;
|
const base::DictValue& GetDictionary() const;
|
||||||
|
|
||||||
@@ -50,7 +51,8 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary {
|
@@ -50,7 +51,8 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary {
|
||||||
static base::Value::Dict CreatePacScript(const std::string& pac_url,
|
static base::DictValue CreatePacScript(const std::string& pac_url,
|
||||||
bool pac_mandatory);
|
bool pac_mandatory);
|
||||||
static base::Value::Dict CreateFixedServers(const std::string& proxy_server,
|
static base::DictValue CreateFixedServers(const std::string& proxy_server,
|
||||||
- const std::string& bypass_list);
|
- const std::string& bypass_list);
|
||||||
+ const std::string& bypass_list,
|
+ const std::string& bypass_list,
|
||||||
+ bool reverse_bypass);
|
+ bool reverse_bypass);
|
||||||
static base::Value::Dict CreateSystem();
|
static base::DictValue CreateSystem();
|
||||||
|
|
||||||
// Encodes the proxy server as "<url-scheme>=<proxy-scheme>://<proxy>".
|
// Encodes the proxy server as "<url-scheme>=<proxy-scheme>://<proxy>".
|
||||||
@@ -66,7 +68,8 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary {
|
@@ -66,7 +68,8 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary {
|
||||||
const std::string& pac_url,
|
const std::string& pac_url,
|
||||||
bool pac_mandatory,
|
bool pac_mandatory,
|
||||||
const std::string& proxy_server,
|
const std::string& proxy_server,
|
||||||
- const std::string& bypass_list);
|
- const std::string& bypass_list);
|
||||||
+ const std::string& bypass_list,
|
+ const std::string& bypass_list,
|
||||||
+ bool reverse_bypass);
|
+ bool reverse_bypass);
|
||||||
|
|
||||||
base::Value::Dict dict_;
|
base::DictValue dict_;
|
||||||
};
|
};
|
||||||
diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_config/proxy_policy_handler.cc
|
diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_config/proxy_policy_handler.cc
|
||||||
--- a/components/proxy_config/proxy_policy_handler.cc
|
--- a/components/proxy_config/proxy_policy_handler.cc
|
||||||
@@ -1329,10 +1324,22 @@ diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
diff --git a/net/features.gni b/net/features.gni
|
||||||
|
--- a/net/features.gni
|
||||||
|
+++ b/net/features.gni
|
||||||
|
@@ -62,7 +62,7 @@ declare_args() {
|
||||||
|
# Bracketed URIs parsing is only available for debug builds.
|
||||||
|
# TODO(crbug.com/365771838): Ensure tests are updated if needed if this
|
||||||
|
# feature is changed at all.
|
||||||
|
- enable_bracketed_proxy_uris = is_debug
|
||||||
|
+ enable_bracketed_proxy_uris = true
|
||||||
|
|
||||||
|
# General QUIC proxy support is only available for debug builds.
|
||||||
|
# TODO(crbug.com/367400641): If flag is changed or removed, ensure all
|
||||||
diff --git a/net/proxy_resolution/pac_file_fetcher_impl.cc b/net/proxy_resolution/pac_file_fetcher_impl.cc
|
diff --git a/net/proxy_resolution/pac_file_fetcher_impl.cc b/net/proxy_resolution/pac_file_fetcher_impl.cc
|
||||||
--- a/net/proxy_resolution/pac_file_fetcher_impl.cc
|
--- a/net/proxy_resolution/pac_file_fetcher_impl.cc
|
||||||
+++ b/net/proxy_resolution/pac_file_fetcher_impl.cc
|
+++ b/net/proxy_resolution/pac_file_fetcher_impl.cc
|
||||||
@@ -359,14 +359,6 @@ bool PacFileFetcherImpl::ConsumeBytesRead(URLRequest* request, int num_bytes) {
|
@@ -364,14 +364,6 @@ bool PacFileFetcherImpl::ConsumeBytesRead(URLRequest* request, int num_bytes) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1420,7 +1427,7 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c
|
|||||||
diff --git a/net/proxy_resolution/proxy_config.h b/net/proxy_resolution/proxy_config.h
|
diff --git a/net/proxy_resolution/proxy_config.h b/net/proxy_resolution/proxy_config.h
|
||||||
--- a/net/proxy_resolution/proxy_config.h
|
--- a/net/proxy_resolution/proxy_config.h
|
||||||
+++ b/net/proxy_resolution/proxy_config.h
|
+++ b/net/proxy_resolution/proxy_config.h
|
||||||
@@ -107,6 +107,9 @@ class NET_EXPORT ProxyConfig {
|
@@ -106,6 +106,9 @@ class NET_EXPORT ProxyConfig {
|
||||||
void ParseFromString(std::string_view proxy_rules,
|
void ParseFromString(std::string_view proxy_rules,
|
||||||
bool allow_bracketed_proxy_chains = false,
|
bool allow_bracketed_proxy_chains = false,
|
||||||
bool is_quic_allowed = false);
|
bool is_quic_allowed = false);
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -164,7 +164,7 @@ new file mode 100644
|
|||||||
+import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting;
|
+import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting;
|
||||||
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
|
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
|
||||||
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
|
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
|
||||||
+import org.chromium.components.content_settings.ContentSettingValues;
|
+import org.chromium.components.content_settings.ContentSetting;
|
||||||
+import org.chromium.components.content_settings.ContentSettingsType;
|
+import org.chromium.components.content_settings.ContentSettingsType;
|
||||||
+import org.chromium.content_public.browser.BrowserContextHandle;
|
+import org.chromium.content_public.browser.BrowserContextHandle;
|
||||||
+
|
+
|
||||||
@@ -177,8 +177,8 @@ new file mode 100644
|
|||||||
+public class BromiteAutoplayContentSetting extends BromiteCustomContentSetting {
|
+public class BromiteAutoplayContentSetting extends BromiteCustomContentSetting {
|
||||||
+ public BromiteAutoplayContentSetting() {
|
+ public BromiteAutoplayContentSetting() {
|
||||||
+ super(/*contentSettingsType*/ ContentSettingsType.AUTOPLAY,
|
+ super(/*contentSettingsType*/ ContentSettingsType.AUTOPLAY,
|
||||||
+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW,
|
+ /*defaultEnabledValue*/ ContentSetting.ALLOW,
|
||||||
+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK,
|
+ /*defaultDisabledValue*/ ContentSetting.BLOCK,
|
||||||
+ /*allowException*/ true,
|
+ /*allowException*/ true,
|
||||||
+ /*preferenceKey*/ "autoplay",
|
+ /*preferenceKey*/ "autoplay",
|
||||||
+ /*profilePrefKey*/ "autoplay");
|
+ /*profilePrefKey*/ "autoplay");
|
||||||
@@ -197,11 +197,11 @@ new file mode 100644
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public int getCategorySummary(@Nullable @ContentSettingValues int value) {
|
+ public int getCategorySummary(@Nullable @ContentSetting int value) {
|
||||||
+ switch (value) {
|
+ switch (value) {
|
||||||
+ case ContentSettingValues.ALLOW:
|
+ case ContentSetting.ALLOW:
|
||||||
+ return R.string.website_settings_category_autoplay_enabled;
|
+ return R.string.website_settings_category_autoplay_enabled;
|
||||||
+ case ContentSettingValues.BLOCK:
|
+ case ContentSetting.BLOCK:
|
||||||
+ return R.string.website_settings_category_autoplay_disabled;
|
+ return R.string.website_settings_category_autoplay_disabled;
|
||||||
+ default:
|
+ default:
|
||||||
+ return 0;
|
+ return 0;
|
||||||
@@ -229,8 +229,8 @@ new file mode 100644
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) {
|
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) {
|
||||||
+ return value != ContentSettingValues.BLOCK;
|
+ return value != ContentSetting.BLOCK;
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/components/browser_ui/strings/bromite_content_settings/autoplay.grdp b/components/browser_ui/strings/bromite_content_settings/autoplay.grdp
|
diff --git a/components/browser_ui/strings/bromite_content_settings/autoplay.grdp b/components/browser_ui/strings/bromite_content_settings/autoplay.grdp
|
||||||
@@ -279,9 +279,9 @@ new file mode 100644
|
|||||||
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
|
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
|
||||||
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
||||||
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
||||||
@@ -249,7 +249,7 @@ void ContentSettingsRegistry::Init() {
|
@@ -254,7 +254,7 @@ void ContentSettingsRegistry::Init() {
|
||||||
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
||||||
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
|
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
|
||||||
|
|
||||||
- Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_ALLOW,
|
- Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_ALLOW,
|
||||||
+ Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_BLOCK,
|
+ Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_BLOCK,
|
||||||
@@ -308,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
|
|||||||
if (!IsLockedPendingUserGesture())
|
if (!IsLockedPendingUserGesture())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -458,6 +461,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
|
@@ -457,6 +460,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -329,7 +329,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
|
|||||||
diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.h b/third_party/blink/renderer/core/html/media/autoplay_policy.h
|
diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.h b/third_party/blink/renderer/core/html/media/autoplay_policy.h
|
||||||
--- a/third_party/blink/renderer/core/html/media/autoplay_policy.h
|
--- a/third_party/blink/renderer/core/html/media/autoplay_policy.h
|
||||||
+++ b/third_party/blink/renderer/core/html/media/autoplay_policy.h
|
+++ b/third_party/blink/renderer/core/html/media/autoplay_policy.h
|
||||||
@@ -151,6 +151,10 @@ class CORE_EXPORT AutoplayPolicy final
|
@@ -148,6 +148,10 @@ class CORE_EXPORT AutoplayPolicy final
|
||||||
// should use, if checking to see if an action is allowed.
|
// should use, if checking to see if an action is allowed.
|
||||||
bool IsLockedPendingUserGesture() const;
|
bool IsLockedPendingUserGesture() const;
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,932 @@
|
|||||||
|
From: uazo <uazo@users.noreply.github.com>
|
||||||
|
Date: Fri, 22 Aug 2025 15:41:58 +0000
|
||||||
|
Subject: Add cromite test support
|
||||||
|
|
||||||
|
Allows the activation of specific APIs used for cromite testing.
|
||||||
|
API are only available on the chrome://version page.
|
||||||
|
It allows the use of tools such as Browserstack for test automation.
|
||||||
|
Do not activate the corresponding options (available in the developer
|
||||||
|
settings) if you do not know what you are doing.
|
||||||
|
|
||||||
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
|
---
|
||||||
|
.../java/res/xml/developer_preferences.xml | 12 ++
|
||||||
|
.../init/ProcessInitializationHandler.java | 6 +-
|
||||||
|
.../tracing/settings/DeveloperSettings.java | 2 +-
|
||||||
|
chrome/browser/BUILD.gn | 5 +
|
||||||
|
chrome/browser/android/devtools_server.cc | 10 +
|
||||||
|
...ontent_browser_client_receiver_bindings.cc | 10 +
|
||||||
|
.../cromite/cromite_private_api_host.cc | 74 +++++++
|
||||||
|
.../cromite/cromite_private_api_host.h | 54 +++++
|
||||||
|
.../browser/flags/cromite/sActAsWebView.java | 33 +++
|
||||||
|
.../cromite/sEnableCromiteTestSupport.java | 33 +++
|
||||||
|
.../NotificationPermissionController.java | 1 +
|
||||||
|
chrome/browser/ui/startup/bad_flags_prompt.cc | 1 +
|
||||||
|
chrome/common/BUILD.gn | 1 +
|
||||||
|
.../cromite_private_api_extension.mojom | 7 +
|
||||||
|
chrome/renderer/BUILD.gn | 2 +
|
||||||
|
.../chrome_content_renderer_client.cc | 2 +
|
||||||
|
.../cromite/cromite_private_api_extension.cc | 203 ++++++++++++++++++
|
||||||
|
.../cromite/cromite_private_api_extension.h | 65 ++++++
|
||||||
|
.../component_updater_service.h | 1 +
|
||||||
|
.../browser/devtools/devtools_http_handler.cc | 7 +-
|
||||||
|
content/browser/log_console_message.cc | 15 +-
|
||||||
|
content/browser/log_console_message.h | 3 +-
|
||||||
|
.../renderer_host/render_frame_host_impl.cc | 13 +-
|
||||||
|
.../about_flags_cc/Enable-test-support.inc | 19 ++
|
||||||
|
.../Enable-test-support.inc | 7 +
|
||||||
|
.../Enable-test-support.inc | 2 +
|
||||||
|
26 files changed, 581 insertions(+), 7 deletions(-)
|
||||||
|
create mode 100644 chrome/browser/cromite/cromite_private_api_host.cc
|
||||||
|
create mode 100644 chrome/browser/cromite/cromite_private_api_host.h
|
||||||
|
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sActAsWebView.java
|
||||||
|
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableCromiteTestSupport.java
|
||||||
|
create mode 100644 chrome/common/cromite_private_api_extension.mojom
|
||||||
|
create mode 100644 chrome/renderer/cromite/cromite_private_api_extension.cc
|
||||||
|
create mode 100644 chrome/renderer/cromite/cromite_private_api_extension.h
|
||||||
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Enable-test-support.inc
|
||||||
|
create mode 100644 cromite_flags/content/public/common/content_features_cc/Enable-test-support.inc
|
||||||
|
create mode 100644 cromite_flags/content/public/common/content_features_h/Enable-test-support.inc
|
||||||
|
|
||||||
|
diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/android/java/res/xml/developer_preferences.xml
|
||||||
|
--- a/chrome/android/java/res/xml/developer_preferences.xml
|
||||||
|
+++ b/chrome/android/java/res/xml/developer_preferences.xml
|
||||||
|
@@ -12,6 +12,18 @@ found in the LICENSE file.
|
||||||
|
android:fragment="org.chromium.chrome.browser.tracing.settings.TracingSettings"
|
||||||
|
android:key="tracing"
|
||||||
|
android:title="Tracing" />
|
||||||
|
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||||
|
+ android:key="enable_cromite_test_support"
|
||||||
|
+ android:title="Enable support for cromite test"
|
||||||
|
+ android:summary="Setting allows the activation of specific APIs used for cromite testing. Do not activate if you do not know what you are doing."
|
||||||
|
+ app:featureName="enable-cromite-test-support"
|
||||||
|
+ app:needRestart="true" />
|
||||||
|
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||||
|
+ android:key="act_as_webview"
|
||||||
|
+ android:title="Enable webview support for cromite test"
|
||||||
|
+ android:summary="Setting allows the activation of specific APIs used for cromite testing. Do not activate if you do not know what you are doing."
|
||||||
|
+ app:featureName="act-as-webview"
|
||||||
|
+ app:needRestart="true" />
|
||||||
|
<Preference
|
||||||
|
android:key="test_gwp_asan"
|
||||||
|
android:title="Test Gwp Asan"/>
|
||||||
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
||||||
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
||||||
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
||||||
|
@@ -145,6 +145,7 @@ import org.chromium.ui.base.SelectFileDialog;
|
||||||
|
import org.chromium.ui.base.WindowAndroid;
|
||||||
|
import org.chromium.ui.edge_to_edge.EdgeToEdgeStateProvider;
|
||||||
|
import org.chromium.url.GURL;
|
||||||
|
+import org.chromium.chrome.browser.flags.cromite.sActAsWebView;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
@@ -696,7 +697,10 @@ public class ProcessInitializationHandler {
|
||||||
|
|
||||||
|
tasks.add(
|
||||||
|
() -> {
|
||||||
|
- mDevToolsServer = new DevToolsServer(DEV_TOOLS_SERVER_SOCKET_PREFIX);
|
||||||
|
+ String socketPrefix = DEV_TOOLS_SERVER_SOCKET_PREFIX;
|
||||||
|
+ if (sActAsWebView.getInstance().isEnabled())
|
||||||
|
+ socketPrefix = "weblayer";
|
||||||
|
+ mDevToolsServer = new DevToolsServer(socketPrefix);
|
||||||
|
mDevToolsServer.setRemoteDebuggingEnabled(
|
||||||
|
true, DevToolsServer.Security.ALLOW_DEBUG_PERMISSION);
|
||||||
|
});
|
||||||
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java
|
||||||
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java
|
||||||
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java
|
||||||
|
@@ -39,7 +39,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb
|
||||||
|
private final NonNullObservableSupplier<String> mPageTitle =
|
||||||
|
ObservableSuppliers.createNonNull(MSG_DEVELOPER_OPTIONS_TITLE);
|
||||||
|
|
||||||
|
- private static @Nullable Boolean sIsEnabledForTests;
|
||||||
|
+ private static @Nullable Boolean sIsEnabledForTests = true;
|
||||||
|
|
||||||
|
public static boolean shouldShowDeveloperSettings() {
|
||||||
|
// Always enabled on canary, dev and local builds, otherwise can be enabled by tapping the
|
||||||
|
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||||
|
--- a/chrome/browser/BUILD.gn
|
||||||
|
+++ b/chrome/browser/BUILD.gn
|
||||||
|
@@ -204,6 +204,11 @@ source_set("shell_integration") {
|
||||||
|
# require many files from it. This makes linking more efficient.
|
||||||
|
static_library("browser") {
|
||||||
|
sources = [
|
||||||
|
+ "cromite/cromite_private_api_host.cc",
|
||||||
|
+ "cromite/cromite_private_api_host.h",
|
||||||
|
+ ]
|
||||||
|
+
|
||||||
|
+ sources += [
|
||||||
|
"about_flags.cc",
|
||||||
|
"accessibility/accessibility_labels_service.cc",
|
||||||
|
"accessibility/accessibility_labels_service.h",
|
||||||
|
diff --git a/chrome/browser/android/devtools_server.cc b/chrome/browser/android/devtools_server.cc
|
||||||
|
--- a/chrome/browser/android/devtools_server.cc
|
||||||
|
+++ b/chrome/browser/android/devtools_server.cc
|
||||||
|
@@ -12,6 +12,7 @@
|
||||||
|
#include "base/command_line.h"
|
||||||
|
#include "base/compiler_specific.h"
|
||||||
|
#include "base/files/file_path.h"
|
||||||
|
+#include "base/feature_list.h"
|
||||||
|
#include "base/functional/bind.h"
|
||||||
|
#include "base/functional/callback.h"
|
||||||
|
#include "base/strings/string_number_conversions.h"
|
||||||
|
@@ -32,6 +33,7 @@
|
||||||
|
#include "content/public/browser/render_view_host.h"
|
||||||
|
#include "content/public/browser/web_contents.h"
|
||||||
|
#include "content/public/browser/web_contents_delegate.h"
|
||||||
|
+#include "content/public/common/content_features.h"
|
||||||
|
#include "content/public/common/content_switches.h"
|
||||||
|
#include "content/public/common/url_constants.h"
|
||||||
|
#include "net/base/net_errors.h"
|
||||||
|
@@ -64,6 +66,8 @@ const int kBackLog = 4096;
|
||||||
|
|
||||||
|
bool AuthorizeSocketAccessWithDebugPermission(
|
||||||
|
const net::UnixDomainServerSocket::Credentials& credentials) {
|
||||||
|
+ if (base::FeatureList::IsEnabled(features::kEnableCromiteTestSupport))
|
||||||
|
+ return true;
|
||||||
|
JNIEnv* env = base::android::AttachCurrentThread();
|
||||||
|
return Java_DevToolsServer_checkDebugPermission(env, credentials.process_id,
|
||||||
|
credentials.user_id) ||
|
||||||
|
@@ -127,6 +131,10 @@ DevToolsServer::DevToolsServer(const std::string& socket_name_prefix)
|
||||||
|
: socket_name_(base::StringPrintf(kDevToolsChannelNameFormat,
|
||||||
|
socket_name_prefix.c_str())),
|
||||||
|
is_started_(false) {
|
||||||
|
+ if (base::FeatureList::IsEnabled(features::kActAsWebView)) {
|
||||||
|
+ socket_name_ = base::StringPrintf("%s_devtools_remote_%d",
|
||||||
|
+ socket_name_prefix.c_str(), getpid());
|
||||||
|
+ }
|
||||||
|
// Override the socket name if one is specified on the command line.
|
||||||
|
const base::CommandLine& command_line =
|
||||||
|
*base::CommandLine::ForCurrentProcess();
|
||||||
|
@@ -144,6 +152,8 @@ void DevToolsServer::Start(bool allow_debug_permission) {
|
||||||
|
if (is_started_)
|
||||||
|
return;
|
||||||
|
|
||||||
|
+ DLOG(INFO) << "---DevToolsServer::Start allow_debug_permission=" << allow_debug_permission;
|
||||||
|
+ DLOG(INFO) << "---socket_name_=" << socket_name_;
|
||||||
|
net::UnixDomainServerSocket::AuthCallback auth_callback =
|
||||||
|
allow_debug_permission
|
||||||
|
? base::BindRepeating(&AuthorizeSocketAccessWithDebugPermission)
|
||||||
|
diff --git a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc
|
||||||
|
--- a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc
|
||||||
|
+++ b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc
|
||||||
|
@@ -10,6 +10,7 @@
|
||||||
|
#include "build/build_config.h"
|
||||||
|
#include "chrome/browser/browser_process.h"
|
||||||
|
#include "chrome/browser/chrome_browser_interface_binders.h"
|
||||||
|
+#include "chrome/browser/cromite/cromite_private_api_host.h"
|
||||||
|
#include "chrome/browser/chrome_browser_interface_binders_webui.h"
|
||||||
|
#include "chrome/browser/chrome_content_browser_client.h"
|
||||||
|
#include "chrome/browser/chrome_content_browser_client_parts.h"
|
||||||
|
@@ -491,6 +492,15 @@ void ChromeContentBrowserClient::
|
||||||
|
render_frame_host);
|
||||||
|
},
|
||||||
|
&render_frame_host));
|
||||||
|
+ associated_registry.AddInterface<
|
||||||
|
+ chrome::mojom::CromitePrivateApiExtension>(base::BindRepeating(
|
||||||
|
+ [](content::RenderFrameHost* render_frame_host,
|
||||||
|
+ mojo::PendingAssociatedReceiver<
|
||||||
|
+ chrome::mojom::CromitePrivateApiExtension> receiver) {
|
||||||
|
+ CromitePrivateApiHost::BindHost(std::move(receiver),
|
||||||
|
+ render_frame_host);
|
||||||
|
+ },
|
||||||
|
+ &render_frame_host));
|
||||||
|
associated_registry.AddInterface<
|
||||||
|
chrome::mojom::GoogleAccountsPrivateApiExtension>(base::BindRepeating(
|
||||||
|
[](content::RenderFrameHost* render_frame_host,
|
||||||
|
diff --git a/chrome/browser/cromite/cromite_private_api_host.cc b/chrome/browser/cromite/cromite_private_api_host.cc
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/chrome/browser/cromite/cromite_private_api_host.cc
|
||||||
|
@@ -0,0 +1,74 @@
|
||||||
|
+#include "chrome/browser/cromite/cromite_private_api_host.h"
|
||||||
|
+
|
||||||
|
+#include "base/json/json_writer.h"
|
||||||
|
+
|
||||||
|
+#include "chrome/browser/browser_process.h"
|
||||||
|
+#include "components/component_updater/component_updater_service.h"
|
||||||
|
+#include "components/update_client/crx_update_item.h"
|
||||||
|
+#include "content/public/browser/document_user_data.h"
|
||||||
|
+#include "content/public/browser/navigation_handle.h"
|
||||||
|
+#include "content/public/browser/render_frame_host.h"
|
||||||
|
+#include "content/public/browser/site_instance.h"
|
||||||
|
+
|
||||||
|
+CromitePrivateApiHost::CromitePrivateApiHost(
|
||||||
|
+ content::RenderFrameHost* rfh)
|
||||||
|
+ : DocumentUserData<CromitePrivateApiHost>(rfh),
|
||||||
|
+ receiver_(this) {}
|
||||||
|
+
|
||||||
|
+CromitePrivateApiHost::~CromitePrivateApiHost() = default;
|
||||||
|
+
|
||||||
|
+DOCUMENT_USER_DATA_KEY_IMPL(CromitePrivateApiHost);
|
||||||
|
+
|
||||||
|
+void CromitePrivateApiHost::BindReceiver(
|
||||||
|
+ mojo::PendingAssociatedReceiver<
|
||||||
|
+ chrome::mojom::CromitePrivateApiExtension> receiver) {
|
||||||
|
+ receiver_.Bind(std::move(receiver));
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void CromitePrivateApiHost::GetComponentData(
|
||||||
|
+ const std::string& id,
|
||||||
|
+ GetComponentDataCallback callback) {
|
||||||
|
+ LOG(INFO) << "---CromitePrivateApiHost::GetComponentData "
|
||||||
|
+ << "id=" << id;
|
||||||
|
+ const raw_ptr<component_updater::ComponentUpdateService>
|
||||||
|
+ component_updater = g_browser_process->component_updater();
|
||||||
|
+
|
||||||
|
+ update_client::CrxUpdateItem item;
|
||||||
|
+ if (component_updater->GetComponentDetails(id, &item) && item.component) {
|
||||||
|
+ base::DictValue dict;
|
||||||
|
+ dict.Set("id", id);
|
||||||
|
+ dict.Set("version", item.component->version.GetString());
|
||||||
|
+ dict.Set("status", (int)item.state);
|
||||||
|
+
|
||||||
|
+ std::string json_string;
|
||||||
|
+ base::JSONWriter::WriteWithOptions(
|
||||||
|
+ dict, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json_string);
|
||||||
|
+ base::TrimWhitespaceASCII(json_string, base::TRIM_ALL, &json_string);
|
||||||
|
+
|
||||||
|
+ std::move(callback).Run(json_string);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void CromitePrivateApiHost::StartComponentUpdate(const std::string& id) {
|
||||||
|
+ LOG(INFO) << "---CromitePrivateApiHost::StartComponentUpdate "
|
||||||
|
+ << "id=" << id;
|
||||||
|
+ const raw_ptr<component_updater::ComponentUpdateService>
|
||||||
|
+ component_updater = g_browser_process->component_updater();
|
||||||
|
+ component_updater->GetOnDemandUpdater().OnDemandUpdate(
|
||||||
|
+ id, component_updater::OnDemandUpdater::Priority::FOREGROUND,
|
||||||
|
+ component_updater::Callback());
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void CromitePrivateApiHost::SetEnableLogConsole(bool enabled) {
|
||||||
|
+ enable_log_console_ = enabled;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+// static
|
||||||
|
+void CromitePrivateApiHost::BindHost(
|
||||||
|
+ mojo::PendingAssociatedReceiver<
|
||||||
|
+ chrome::mojom::CromitePrivateApiExtension> receiver,
|
||||||
|
+ content::RenderFrameHost* render_frame_host) {
|
||||||
|
+ CromitePrivateApiHost* api_host =
|
||||||
|
+ CromitePrivateApiHost::GetOrCreateForCurrentDocument(render_frame_host);
|
||||||
|
+ api_host->BindReceiver(std::move(receiver));
|
||||||
|
+}
|
||||||
|
diff --git a/chrome/browser/cromite/cromite_private_api_host.h b/chrome/browser/cromite/cromite_private_api_host.h
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/chrome/browser/cromite/cromite_private_api_host.h
|
||||||
|
@@ -0,0 +1,54 @@
|
||||||
|
+#ifndef CHROME_BROWSER_CROMITE_PRIVATE_API_HOST_H_
|
||||||
|
+#define CHROME_BROWSER_CROMITE_PRIVATE_API_HOST_H_
|
||||||
|
+
|
||||||
|
+#include <string>
|
||||||
|
+
|
||||||
|
+#include "base/functional/callback.h"
|
||||||
|
+#include "chrome/common/cromite_private_api_extension.mojom.h"
|
||||||
|
+#include "content/public/browser/document_user_data.h"
|
||||||
|
+#include "mojo/public/cpp/bindings/associated_receiver.h"
|
||||||
|
+
|
||||||
|
+namespace content {
|
||||||
|
+class NavigationHandle;
|
||||||
|
+class RenderFrameHost;
|
||||||
|
+} // namespace content
|
||||||
|
+
|
||||||
|
+class CromitePrivateApiHost
|
||||||
|
+ : public chrome::mojom::CromitePrivateApiExtension,
|
||||||
|
+ public content::DocumentUserData<CromitePrivateApiHost> {
|
||||||
|
+ public:
|
||||||
|
+ ~CromitePrivateApiHost() override;
|
||||||
|
+ CromitePrivateApiHost(const CromitePrivateApiHost&) = delete;
|
||||||
|
+ CromitePrivateApiHost& operator=(const CromitePrivateApiHost&) =
|
||||||
|
+ delete;
|
||||||
|
+
|
||||||
|
+ static void BindHost(
|
||||||
|
+ mojo::PendingAssociatedReceiver<
|
||||||
|
+ chrome::mojom::CromitePrivateApiExtension> receiver,
|
||||||
|
+ content::RenderFrameHost* render_frame_host);
|
||||||
|
+
|
||||||
|
+ void BindReceiver(mojo::PendingAssociatedReceiver<
|
||||||
|
+ chrome::mojom::CromitePrivateApiExtension> receiver);
|
||||||
|
+
|
||||||
|
+ bool IsLogConsoleEnabled() const { return enable_log_console_; }
|
||||||
|
+
|
||||||
|
+ // chrome::mojom::CromitePrivateApiExtension:
|
||||||
|
+ void GetComponentData(const std::string& id,
|
||||||
|
+ GetComponentDataCallback callback) override;
|
||||||
|
+ void StartComponentUpdate(const std::string& id) override;
|
||||||
|
+ void SetEnableLogConsole(bool can_show) override;
|
||||||
|
+
|
||||||
|
+ private:
|
||||||
|
+ explicit CromitePrivateApiHost(
|
||||||
|
+ content::RenderFrameHost* rfh);
|
||||||
|
+
|
||||||
|
+ friend DocumentUserData;
|
||||||
|
+ DOCUMENT_USER_DATA_KEY_DECL();
|
||||||
|
+
|
||||||
|
+ mojo::AssociatedReceiver<chrome::mojom::CromitePrivateApiExtension>
|
||||||
|
+ receiver_;
|
||||||
|
+
|
||||||
|
+ bool enable_log_console_ = false;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+#endif // CHROME_BROWSER_CROMITE_PRIVATE_API_HOST_H_
|
||||||
|
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sActAsWebView.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sActAsWebView.java
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sActAsWebView.java
|
||||||
|
@@ -0,0 +1,33 @@
|
||||||
|
+/*
|
||||||
|
+ This file is part of Cromite.
|
||||||
|
+
|
||||||
|
+ Cromite is free software: you can redistribute it and/or modify
|
||||||
|
+ it under the terms of the GNU General Public License as published by
|
||||||
|
+ the Free Software Foundation, either version 3 of the License, or
|
||||||
|
+ (at your option) any later version.
|
||||||
|
+
|
||||||
|
+ Cromite is distributed in the hope that it will be useful,
|
||||||
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+ GNU General Public License for more details.
|
||||||
|
+
|
||||||
|
+ You should have received a copy of the GNU General Public License
|
||||||
|
+ along with Cromite. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
+*/
|
||||||
|
+
|
||||||
|
+package org.chromium.chrome.browser.flags.cromite;
|
||||||
|
+
|
||||||
|
+import org.chromium.components.cached_flags.CachedFlag;
|
||||||
|
+import org.chromium.chrome.browser.flags.ChromeFeatureMap;
|
||||||
|
+
|
||||||
|
+public class sActAsWebView {
|
||||||
|
+ private static final CachedFlag sInstance =
|
||||||
|
+ new CachedFlag(ChromeFeatureMap.getInstance(),
|
||||||
|
+ "ActAsWebView", false);
|
||||||
|
+
|
||||||
|
+ private sActAsWebView() {}
|
||||||
|
+
|
||||||
|
+ public static CachedFlag getInstance() {
|
||||||
|
+ return sInstance;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableCromiteTestSupport.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableCromiteTestSupport.java
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableCromiteTestSupport.java
|
||||||
|
@@ -0,0 +1,33 @@
|
||||||
|
+/*
|
||||||
|
+ This file is part of Cromite.
|
||||||
|
+
|
||||||
|
+ Cromite is free software: you can redistribute it and/or modify
|
||||||
|
+ it under the terms of the GNU General Public License as published by
|
||||||
|
+ the Free Software Foundation, either version 3 of the License, or
|
||||||
|
+ (at your option) any later version.
|
||||||
|
+
|
||||||
|
+ Cromite is distributed in the hope that it will be useful,
|
||||||
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+ GNU General Public License for more details.
|
||||||
|
+
|
||||||
|
+ You should have received a copy of the GNU General Public License
|
||||||
|
+ along with Cromite. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
+*/
|
||||||
|
+
|
||||||
|
+package org.chromium.chrome.browser.flags.cromite;
|
||||||
|
+
|
||||||
|
+import org.chromium.components.cached_flags.CachedFlag;
|
||||||
|
+import org.chromium.chrome.browser.flags.ChromeFeatureMap;
|
||||||
|
+
|
||||||
|
+public class sEnableCromiteTestSupport {
|
||||||
|
+ private static final CachedFlag sInstance =
|
||||||
|
+ new CachedFlag(ChromeFeatureMap.getInstance(),
|
||||||
|
+ "EnableCromiteTestSupport", false);
|
||||||
|
+
|
||||||
|
+ private sEnableCromiteTestSupport() {}
|
||||||
|
+
|
||||||
|
+ public static CachedFlag getInstance() {
|
||||||
|
+ return sInstance;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
diff --git a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java
|
||||||
|
--- a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java
|
||||||
|
+++ b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java
|
||||||
|
@@ -175,6 +175,7 @@ public class NotificationPermissionController {
|
||||||
|
* @return True if any UI was shown (either rationale dialog or OS prompt), false otherwise.
|
||||||
|
*/
|
||||||
|
public boolean requestPermissionIfNeeded(boolean contextual) {
|
||||||
|
+ if (!contextual) return false;
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU || DeviceInfo.isRetailDemoMode()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/startup/bad_flags_prompt.cc
|
||||||
|
--- a/chrome/browser/ui/startup/bad_flags_prompt.cc
|
||||||
|
+++ b/chrome/browser/ui/startup/bad_flags_prompt.cc
|
||||||
|
@@ -223,6 +223,7 @@ static const std::variant<const base::Feature*, const char*>
|
||||||
|
|
||||||
|
#if BUILDFLAG(IS_ANDROID)
|
||||||
|
&chrome::android::kCommandLineOnNonRooted,
|
||||||
|
+ &features::kEnableCromiteTestSupport,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// This flag disables security for the Page Embedded Permission Control,
|
||||||
|
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
|
||||||
|
--- a/chrome/common/BUILD.gn
|
||||||
|
+++ b/chrome/common/BUILD.gn
|
||||||
|
@@ -668,6 +668,7 @@ mojom("mojo_bindings") {
|
||||||
|
"actor.mojom",
|
||||||
|
"chrome_render_frame.mojom",
|
||||||
|
"google_accounts_private_api_extension.mojom",
|
||||||
|
+ "cromite_private_api_extension.mojom",
|
||||||
|
"media/webrtc_logging.mojom",
|
||||||
|
"net/net_error_page_support.mojom",
|
||||||
|
"net_benchmarking.mojom",
|
||||||
|
diff --git a/chrome/common/cromite_private_api_extension.mojom b/chrome/common/cromite_private_api_extension.mojom
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/chrome/common/cromite_private_api_extension.mojom
|
||||||
|
@@ -0,0 +1,7 @@
|
||||||
|
+module chrome.mojom;
|
||||||
|
+
|
||||||
|
+interface CromitePrivateApiExtension {
|
||||||
|
+ GetComponentData(string id) => (string response);
|
||||||
|
+ StartComponentUpdate(string id);
|
||||||
|
+ SetEnableLogConsole(bool enabled);
|
||||||
|
+};
|
||||||
|
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
|
||||||
|
--- a/chrome/renderer/BUILD.gn
|
||||||
|
+++ b/chrome/renderer/BUILD.gn
|
||||||
|
@@ -81,6 +81,8 @@ static_library("renderer") {
|
||||||
|
"chrome_render_thread_observer.cc",
|
||||||
|
"chrome_render_thread_observer.h",
|
||||||
|
"custom_menu_commands.h",
|
||||||
|
+ "cromite/cromite_private_api_extension.cc",
|
||||||
|
+ "cromite/cromite_private_api_extension.h",
|
||||||
|
"google_accounts_private_api_extension.cc",
|
||||||
|
"google_accounts_private_api_extension.h",
|
||||||
|
"google_accounts_private_api_util.cc",
|
||||||
|
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
|
||||||
|
--- a/chrome/renderer/chrome_content_renderer_client.cc
|
||||||
|
+++ b/chrome/renderer/chrome_content_renderer_client.cc
|
||||||
|
@@ -56,6 +56,7 @@
|
||||||
|
#include "chrome/renderer/chrome_render_frame_observer.h"
|
||||||
|
#include "chrome/renderer/chrome_render_thread_observer.h"
|
||||||
|
#include "chrome/renderer/controlled_frame/controlled_frame_extensions_renderer_api_provider.h"
|
||||||
|
+#include "chrome/renderer/cromite/cromite_private_api_extension.h"
|
||||||
|
#include "chrome/renderer/google_accounts_private_api_extension.h"
|
||||||
|
#include "chrome/renderer/loadtimes_extension_bindings.h"
|
||||||
|
#include "chrome/renderer/media/flash_embed_rewrite.h"
|
||||||
|
@@ -663,6 +664,7 @@ void ChromeContentRendererClient::RenderFrameCreated(
|
||||||
|
|
||||||
|
TrustedVaultEncryptionKeysExtension::Create(render_frame);
|
||||||
|
GoogleAccountsPrivateApiExtension::Create(render_frame);
|
||||||
|
+ CromitePrivateApiExtension::Create(render_frame);
|
||||||
|
|
||||||
|
if (render_frame->IsMainFrame())
|
||||||
|
new webapps::WebPageMetadataAgent(render_frame);
|
||||||
|
diff --git a/chrome/renderer/cromite/cromite_private_api_extension.cc b/chrome/renderer/cromite/cromite_private_api_extension.cc
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/chrome/renderer/cromite/cromite_private_api_extension.cc
|
||||||
|
@@ -0,0 +1,203 @@
|
||||||
|
+#include "chrome/renderer/cromite/cromite_private_api_extension.h"
|
||||||
|
+
|
||||||
|
+#include "chrome/common/chrome_features.h"
|
||||||
|
+#include "content/public/common/content_features.h"
|
||||||
|
+#include "content/public/common/isolated_world_ids.h"
|
||||||
|
+#include "content/public/renderer/chrome_object_extensions_utils.h"
|
||||||
|
+#include "content/public/renderer/render_frame.h"
|
||||||
|
+#include "gin/arguments.h"
|
||||||
|
+#include "gin/function_template.h"
|
||||||
|
+#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
|
||||||
|
+#include "third_party/blink/public/platform/platform.h"
|
||||||
|
+#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h"
|
||||||
|
+#include "third_party/blink/public/web/web_local_frame.h"
|
||||||
|
+#include "v8/include/v8-context.h"
|
||||||
|
+#include "v8/include/v8-function.h"
|
||||||
|
+
|
||||||
|
+namespace {
|
||||||
|
+
|
||||||
|
+bool ShouldExposeCromitePrivateApi(
|
||||||
|
+ content::RenderFrame* render_frame) {
|
||||||
|
+ DCHECK(render_frame);
|
||||||
|
+ if (!base::FeatureList::IsEnabled(features::kEnableCromiteTestSupport))
|
||||||
|
+ return false;
|
||||||
|
+
|
||||||
|
+ GURL origin_url = GURL("chrome://version");
|
||||||
|
+ const url::Origin& allowed_origin = url::Origin::Create(origin_url);
|
||||||
|
+
|
||||||
|
+ const url::Origin origin = render_frame->GetWebFrame()->GetSecurityOrigin();
|
||||||
|
+ return origin == allowed_origin;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+CromitePrivateApiExtension::PendingRequest::PendingRequest(
|
||||||
|
+ v8::Isolate* isolate,
|
||||||
|
+ v8::Local<v8::Context> context,
|
||||||
|
+ v8::Local<v8::Promise::Resolver> resolver)
|
||||||
|
+ : isolate(isolate),
|
||||||
|
+ context(isolate, context),
|
||||||
|
+ promise_resolver(isolate, resolver) {}
|
||||||
|
+
|
||||||
|
+CromitePrivateApiExtension::PendingRequest::~PendingRequest() = default;
|
||||||
|
+
|
||||||
|
+// static
|
||||||
|
+void CromitePrivateApiExtension::Create(content::RenderFrame* frame) {
|
||||||
|
+ new CromitePrivateApiExtension(frame);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+CromitePrivateApiExtension::CromitePrivateApiExtension(
|
||||||
|
+ content::RenderFrame* frame)
|
||||||
|
+ : content::RenderFrameObserver(frame) {}
|
||||||
|
+
|
||||||
|
+CromitePrivateApiExtension::~CromitePrivateApiExtension() =
|
||||||
|
+ default;
|
||||||
|
+
|
||||||
|
+void CromitePrivateApiExtension::OnDestruct() {
|
||||||
|
+ delete this;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void CromitePrivateApiExtension::DidCreateScriptContext(
|
||||||
|
+ v8::Local<v8::Context> v8_context,
|
||||||
|
+ int32_t world_id) {
|
||||||
|
+ if (!render_frame() || world_id != content::ISOLATED_WORLD_ID_GLOBAL) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (ShouldExposeCromitePrivateApi(render_frame())) {
|
||||||
|
+ InjectScript();
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void CromitePrivateApiExtension::InjectScript() {
|
||||||
|
+ DCHECK(render_frame());
|
||||||
|
+
|
||||||
|
+ blink::WebLocalFrame* web_frame = render_frame()->GetWebFrame();
|
||||||
|
+ v8::Isolate* isolate = web_frame->GetAgentGroupScheduler()->Isolate();
|
||||||
|
+ v8::HandleScope handle_scope(isolate);
|
||||||
|
+ v8::Local<v8::Context> context = web_frame->MainWorldScriptContext();
|
||||||
|
+ if (context.IsEmpty()) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ v8::Context::Scope context_scope(context);
|
||||||
|
+
|
||||||
|
+ v8::Local<v8::Object> window =
|
||||||
|
+ content::GetOrCreateObject(isolate, context, "window");
|
||||||
|
+ v8::Local<v8::Object> oCromiteObject =
|
||||||
|
+ content::GetOrCreateObject(isolate, context, window, "cromite");
|
||||||
|
+
|
||||||
|
+ oCromiteObject
|
||||||
|
+ ->Set(
|
||||||
|
+ context, gin::StringToSymbol(isolate, "getComponentData"),
|
||||||
|
+ gin::CreateFunctionTemplate(
|
||||||
|
+ isolate, base::BindRepeating(
|
||||||
|
+ &CromitePrivateApiExtension::GetComponentData,
|
||||||
|
+ weak_ptr_factory_.GetWeakPtr()))
|
||||||
|
+ ->GetFunction(context)
|
||||||
|
+ .ToLocalChecked())
|
||||||
|
+ .Check();
|
||||||
|
+
|
||||||
|
+ oCromiteObject
|
||||||
|
+ ->Set(
|
||||||
|
+ context, gin::StringToSymbol(isolate, "startComponentUpdate"),
|
||||||
|
+ gin::CreateFunctionTemplate(
|
||||||
|
+ isolate, base::BindRepeating(
|
||||||
|
+ &CromitePrivateApiExtension::StartComponentUpdate,
|
||||||
|
+ weak_ptr_factory_.GetWeakPtr()))
|
||||||
|
+ ->GetFunction(context)
|
||||||
|
+ .ToLocalChecked())
|
||||||
|
+ .Check();
|
||||||
|
+
|
||||||
|
+ oCromiteObject
|
||||||
|
+ ->Set(
|
||||||
|
+ context, gin::StringToSymbol(isolate, "setEnableLogConsole"),
|
||||||
|
+ gin::CreateFunctionTemplate(
|
||||||
|
+ isolate, base::BindRepeating(
|
||||||
|
+ &CromitePrivateApiExtension::SetEnableLogConsole,
|
||||||
|
+ weak_ptr_factory_.GetWeakPtr()))
|
||||||
|
+ ->GetFunction(context)
|
||||||
|
+ .ToLocalChecked())
|
||||||
|
+ .Check();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void CromitePrivateApiExtension::GetComponentData(gin::Arguments* args) {
|
||||||
|
+ std::string component_id;
|
||||||
|
+ if (!args->GetNext(&component_id)) {
|
||||||
|
+ args->ThrowError();
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!remote_.is_bound()) {
|
||||||
|
+ render_frame()->GetRemoteAssociatedInterfaces()->GetInterface(&remote_);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ v8::Isolate* isolate = args->isolate();
|
||||||
|
+ v8::Local<v8::Context> context = isolate->GetCurrentContext();
|
||||||
|
+
|
||||||
|
+ v8::Local<v8::Promise::Resolver> resolver =
|
||||||
|
+ v8::Promise::Resolver::New(context).ToLocalChecked();
|
||||||
|
+ v8::Local<v8::Promise> promise = resolver->GetPromise();
|
||||||
|
+
|
||||||
|
+ base::UnguessableToken request_id = base::UnguessableToken::Create();
|
||||||
|
+ pending_requests_.emplace(
|
||||||
|
+ request_id,
|
||||||
|
+ std::make_unique<PendingRequest>(isolate, context, resolver));
|
||||||
|
+
|
||||||
|
+ remote_->GetComponentData(component_id,
|
||||||
|
+ base::BindOnce(&CromitePrivateApiExtension::OnGetComponentData,
|
||||||
|
+ weak_ptr_factory_.GetWeakPtr(), request_id));
|
||||||
|
+
|
||||||
|
+ args->Return(promise);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void CromitePrivateApiExtension::OnGetComponentData(const base::UnguessableToken callback_id,
|
||||||
|
+ const std::string& result) {
|
||||||
|
+ auto iter = pending_requests_.find(callback_id);
|
||||||
|
+ if (iter == pending_requests_.end())
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ std::unique_ptr<PendingRequest> request = std::move(iter->second);
|
||||||
|
+ pending_requests_.erase(iter);
|
||||||
|
+
|
||||||
|
+ v8::HandleScope handle_scope(request->isolate);
|
||||||
|
+ v8::Local<v8::Context> context =
|
||||||
|
+ request->context.Get(request->isolate);
|
||||||
|
+ v8::Local<v8::Promise::Resolver> resolver =
|
||||||
|
+ request->promise_resolver.Get(request->isolate);
|
||||||
|
+
|
||||||
|
+ LOG(INFO) << "---CromitePrivateApiExtension::OnGetComponentData4";
|
||||||
|
+ resolver->Resolve(context,
|
||||||
|
+ gin::StringToV8(request->isolate, result))
|
||||||
|
+ .ToChecked();
|
||||||
|
+
|
||||||
|
+ LOG(INFO) << "---CromitePrivateApiExtension::OnGetComponentData5";
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void CromitePrivateApiExtension::StartComponentUpdate(gin::Arguments* args) {
|
||||||
|
+ std::string component_id;
|
||||||
|
+ if (!args->GetNext(&component_id)) {
|
||||||
|
+ args->ThrowError();
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!remote_.is_bound()) {
|
||||||
|
+ render_frame()->GetRemoteAssociatedInterfaces()->GetInterface(&remote_);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ remote_->StartComponentUpdate(component_id);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void CromitePrivateApiExtension::SetEnableLogConsole(gin::Arguments* args) {
|
||||||
|
+ bool enabled;
|
||||||
|
+ if (!args->GetNext(&enabled)) {
|
||||||
|
+ args->ThrowError();
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!remote_.is_bound()) {
|
||||||
|
+ render_frame()->GetRemoteAssociatedInterfaces()->GetInterface(&remote_);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ remote_->SetEnableLogConsole(enabled);
|
||||||
|
+}
|
||||||
|
diff --git a/chrome/renderer/cromite/cromite_private_api_extension.h b/chrome/renderer/cromite/cromite_private_api_extension.h
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/chrome/renderer/cromite/cromite_private_api_extension.h
|
||||||
|
@@ -0,0 +1,65 @@
|
||||||
|
+#ifndef CHROME_RENDERER_CROMITE_PRIVATE_API_EXTENSION_H_
|
||||||
|
+#define CHROME_RENDERER_CROMITE_PRIVATE_API_EXTENSION_H_
|
||||||
|
+
|
||||||
|
+#include "base/memory/weak_ptr.h"
|
||||||
|
+#include "chrome/common/cromite_private_api_extension.mojom.h"
|
||||||
|
+#include "content/public/renderer/render_frame_observer.h"
|
||||||
|
+#include "mojo/public/cpp/bindings/associated_remote.h"
|
||||||
|
+#include "v8/include/v8.h"
|
||||||
|
+
|
||||||
|
+namespace gin {
|
||||||
|
+class Arguments;
|
||||||
|
+} // namespace gin
|
||||||
|
+
|
||||||
|
+class CromitePrivateApiExtension : public content::RenderFrameObserver {
|
||||||
|
+ public:
|
||||||
|
+ // Creates a new instance, with ownership transferred to |*frame|.
|
||||||
|
+ static void Create(content::RenderFrame* frame);
|
||||||
|
+
|
||||||
|
+ CromitePrivateApiExtension(const CromitePrivateApiExtension&) =
|
||||||
|
+ delete;
|
||||||
|
+ CromitePrivateApiExtension& operator=(
|
||||||
|
+ const CromitePrivateApiExtension&) = delete;
|
||||||
|
+
|
||||||
|
+ ~CromitePrivateApiExtension() override;
|
||||||
|
+
|
||||||
|
+ // content::RenderFrameObserver:
|
||||||
|
+ void OnDestruct() override;
|
||||||
|
+ void DidCreateScriptContext(v8::Local<v8::Context> v8_context,
|
||||||
|
+ int32_t world_id) override;
|
||||||
|
+
|
||||||
|
+ private:
|
||||||
|
+
|
||||||
|
+ struct PendingRequest {
|
||||||
|
+ PendingRequest(
|
||||||
|
+ v8::Isolate* isolate,
|
||||||
|
+ v8::Local<v8::Context> context,
|
||||||
|
+ v8::Local<v8::Promise::Resolver> resolver);
|
||||||
|
+
|
||||||
|
+ ~PendingRequest();
|
||||||
|
+
|
||||||
|
+ raw_ptr<v8::Isolate> isolate;
|
||||||
|
+ v8::Global<v8::Context> context;
|
||||||
|
+ v8::Global<v8::Promise::Resolver> promise_resolver;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ explicit CromitePrivateApiExtension(content::RenderFrame* frame);
|
||||||
|
+
|
||||||
|
+ void InjectScript();
|
||||||
|
+
|
||||||
|
+ void GetComponentData(gin::Arguments* args);
|
||||||
|
+ void OnGetComponentData(const base::UnguessableToken callback_id,
|
||||||
|
+ const std::string& label);
|
||||||
|
+ void StartComponentUpdate(gin::Arguments* args);
|
||||||
|
+ void SetEnableLogConsole(gin::Arguments* args);
|
||||||
|
+
|
||||||
|
+ std::map<const base::UnguessableToken,
|
||||||
|
+ std::unique_ptr<PendingRequest>> pending_requests_;
|
||||||
|
+
|
||||||
|
+ mojo::AssociatedRemote<chrome::mojom::CromitePrivateApiExtension>
|
||||||
|
+ remote_;
|
||||||
|
+ base::WeakPtrFactory<CromitePrivateApiExtension> weak_ptr_factory_{
|
||||||
|
+ this};
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+#endif // CHROME_RENDERER_CROMITE_PRIVATE_API_EXTENSION_H_
|
||||||
|
diff --git a/components/component_updater/component_updater_service.h b/components/component_updater/component_updater_service.h
|
||||||
|
--- a/components/component_updater/component_updater_service.h
|
||||||
|
+++ b/components/component_updater/component_updater_service.h
|
||||||
|
@@ -243,6 +243,7 @@ class OnDemandUpdater {
|
||||||
|
// the update will be applied. The caller can subscribe to component update
|
||||||
|
// service notifications and provide an optional callback to get the result
|
||||||
|
// of the call. The function does not implement any cooldown interval.
|
||||||
|
+ public:
|
||||||
|
virtual void OnDemandUpdate(const std::string& id,
|
||||||
|
Priority priority,
|
||||||
|
Callback callback) = 0;
|
||||||
|
diff --git a/content/browser/devtools/devtools_http_handler.cc b/content/browser/devtools/devtools_http_handler.cc
|
||||||
|
--- a/content/browser/devtools/devtools_http_handler.cc
|
||||||
|
+++ b/content/browser/devtools/devtools_http_handler.cc
|
||||||
|
@@ -16,6 +16,7 @@
|
||||||
|
#include "base/command_line.h"
|
||||||
|
#include "base/compiler_specific.h"
|
||||||
|
#include "base/files/file_util.h"
|
||||||
|
+#include "base/feature_list.h"
|
||||||
|
#include "base/functional/bind.h"
|
||||||
|
#include "base/functional/callback_helpers.h"
|
||||||
|
#include "base/json/json_writer.h"
|
||||||
|
@@ -46,6 +47,7 @@
|
||||||
|
#include "content/public/browser/devtools_socket_factory.h"
|
||||||
|
#include "content/public/common/content_client.h"
|
||||||
|
#include "content/public/common/content_constants.h"
|
||||||
|
+#include "content/public/common/content_features.h"
|
||||||
|
#include "content/public/common/content_switches.h"
|
||||||
|
#include "content/public/common/url_constants.h"
|
||||||
|
#include "net/base/io_buffer.h"
|
||||||
|
@@ -616,9 +618,12 @@ void DevToolsHttpHandler::OnJsonRequest(
|
||||||
|
|
||||||
|
if (command == "version") {
|
||||||
|
base::DictValue version;
|
||||||
|
+ auto browser = GetContentClient()->browser()->GetProduct();
|
||||||
|
+ if (base::FeatureList::IsEnabled(features::kEnableCromiteTestSupport))
|
||||||
|
+ browser = "Chrome/0.0.0.0";
|
||||||
|
version.Set("Protocol-Version", DevToolsAgentHost::GetProtocolVersion());
|
||||||
|
version.Set("WebKit-Version", GetWebKitVersion());
|
||||||
|
- version.Set("Browser", GetContentClient()->browser()->GetProduct());
|
||||||
|
+ version.Set("Browser", browser);
|
||||||
|
version.Set("User-Agent", GetContentClient()->browser()->GetUserAgent());
|
||||||
|
version.Set("V8-Version", V8_VERSION_STRING);
|
||||||
|
std::string host = info.GetHeaderValue("host");
|
||||||
|
diff --git a/content/browser/log_console_message.cc b/content/browser/log_console_message.cc
|
||||||
|
--- a/content/browser/log_console_message.cc
|
||||||
|
+++ b/content/browser/log_console_message.cc
|
||||||
|
@@ -17,10 +17,23 @@ void LogConsoleMessage(blink::mojom::ConsoleMessageLevel log_level,
|
||||||
|
int32_t line_number,
|
||||||
|
bool is_builtin_component,
|
||||||
|
bool is_off_the_record,
|
||||||
|
- const std::u16string& source_id) {
|
||||||
|
+ const std::u16string& source_id,
|
||||||
|
+ bool is_log_console_enabled) {
|
||||||
|
+ if (base::FeatureList::IsEnabled(features::kEnableCromiteTestSupport)) {
|
||||||
|
+ LOG(INFO) << "CONSOLE:"
|
||||||
|
+ << "\"" << message << "\", source: " << source_id << " (" << line_number
|
||||||
|
+ << ")";
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
const int32_t resolved_level =
|
||||||
|
is_builtin_component ? ConsoleMessageLevelToLogSeverity(log_level)
|
||||||
|
: ::logging::LOGGING_INFO;
|
||||||
|
+ if (is_log_console_enabled) {
|
||||||
|
+ logging::LogMessage("CONSOLE", line_number, resolved_level).stream()
|
||||||
|
+ << "\"" << message << "\", source: " << source_id << " (" << line_number
|
||||||
|
+ << ")";
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
if (::logging::GetMinLogLevel() > resolved_level)
|
||||||
|
return;
|
||||||
|
|
||||||
|
diff --git a/content/browser/log_console_message.h b/content/browser/log_console_message.h
|
||||||
|
--- a/content/browser/log_console_message.h
|
||||||
|
+++ b/content/browser/log_console_message.h
|
||||||
|
@@ -19,7 +19,8 @@ void LogConsoleMessage(blink::mojom::ConsoleMessageLevel log_level,
|
||||||
|
int32_t line_number,
|
||||||
|
bool is_builtin_component,
|
||||||
|
bool is_off_the_record,
|
||||||
|
- const std::u16string& source_id);
|
||||||
|
+ const std::u16string& source_id,
|
||||||
|
+ bool is_log_console_enabled = false);
|
||||||
|
|
||||||
|
} // namespace content
|
||||||
|
|
||||||
|
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
|
||||||
|
--- a/content/browser/renderer_host/render_frame_host_impl.cc
|
||||||
|
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
|
||||||
|
@@ -335,6 +335,8 @@
|
||||||
|
#include "url/origin.h"
|
||||||
|
#include "url/url_constants.h"
|
||||||
|
|
||||||
|
+//#include "chrome/browser/cromite/cromite_private_api_host.h"
|
||||||
|
+
|
||||||
|
#if BUILDFLAG(IS_ANDROID)
|
||||||
|
#include "base/android/scoped_service_binding_batch.h"
|
||||||
|
#include "content/browser/accessibility/browser_accessibility_manager_android.h"
|
||||||
|
@@ -5049,7 +5051,8 @@ void RenderFrameHostImpl::DidAddMessageToConsole(
|
||||||
|
if (delegate_->DidAddMessageToConsole(this, log_level, message, line_no,
|
||||||
|
updated_source_id,
|
||||||
|
untrusted_stack_trace)) {
|
||||||
|
- return;
|
||||||
|
+ if (!base::FeatureList::IsEnabled(features::kEnableCromiteTestSupport))
|
||||||
|
+ return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pass through log severity only on builtin components pages to limit console
|
||||||
|
@@ -5066,8 +5069,14 @@ void RenderFrameHostImpl::DidAddMessageToConsole(
|
||||||
|
const bool is_off_the_record =
|
||||||
|
GetSiteInstance()->GetBrowserContext()->IsOffTheRecord();
|
||||||
|
|
||||||
|
+ bool is_log_console_enabled = false;
|
||||||
|
+ // CromitePrivateApiHost* cromite_data =
|
||||||
|
+ // CromitePrivateApiHost::GetForCurrentDocument(this);
|
||||||
|
+ // if (cromite_data) {
|
||||||
|
+ // is_log_console_enabled = cromite_data->IsLogConsoleEnabled();
|
||||||
|
+ // }
|
||||||
|
LogConsoleMessage(log_level, message, line_no, is_builtin_component,
|
||||||
|
- is_off_the_record, updated_source_id);
|
||||||
|
+ is_off_the_record, updated_source_id, is_log_console_enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
void RenderFrameHostImpl::FrameSizeChanged(const gfx::Size& frame_size) {
|
||||||
|
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Enable-test-support.inc b/cromite_flags/chrome/browser/about_flags_cc/Enable-test-support.inc
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/cromite_flags/chrome/browser/about_flags_cc/Enable-test-support.inc
|
||||||
|
@@ -0,0 +1,19 @@
|
||||||
|
+#ifdef FLAG_SECTION
|
||||||
|
+
|
||||||
|
+ {"enable-cromite-test-support",
|
||||||
|
+ "Enable support for cromite test",
|
||||||
|
+ "Setting allows the activation of specific APIs used for cromite testing. "
|
||||||
|
+ "Do not activate if you do not know what you are doing.", kOsAll,
|
||||||
|
+ FEATURE_VALUE_TYPE(features::kEnableCromiteTestSupport)},
|
||||||
|
+
|
||||||
|
+#if BUILDFLAG(IS_ANDROID)
|
||||||
|
+
|
||||||
|
+ {"act-as-webview",
|
||||||
|
+ "Enable webview support for cromite test",
|
||||||
|
+ "Setting allows the activation of specific APIs used for cromite testing. "
|
||||||
|
+ "Do not activate if you do not know what you are doing.", kOsAndroid,
|
||||||
|
+ FEATURE_VALUE_TYPE(features::kActAsWebView)},
|
||||||
|
+
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#endif
|
||||||
|
diff --git a/cromite_flags/content/public/common/content_features_cc/Enable-test-support.inc b/cromite_flags/content/public/common/content_features_cc/Enable-test-support.inc
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/cromite_flags/content/public/common/content_features_cc/Enable-test-support.inc
|
||||||
|
@@ -0,0 +1,7 @@
|
||||||
|
+CROMITE_FEATURE(kEnableCromiteTestSupport,
|
||||||
|
+ "EnableCromiteTestSupport",
|
||||||
|
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
|
+
|
||||||
|
+CROMITE_FEATURE(kActAsWebView,
|
||||||
|
+ "ActAsWebView",
|
||||||
|
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
|
diff --git a/cromite_flags/content/public/common/content_features_h/Enable-test-support.inc b/cromite_flags/content/public/common/content_features_h/Enable-test-support.inc
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/cromite_flags/content/public/common/content_features_h/Enable-test-support.inc
|
||||||
|
@@ -0,0 +1,2 @@
|
||||||
|
+CONTENT_EXPORT BASE_DECLARE_FEATURE(kEnableCromiteTestSupport);
|
||||||
|
+CONTENT_EXPORT BASE_DECLARE_FEATURE(kActAsWebView);
|
||||||
|
--
|
||||||
@@ -13,26 +13,26 @@ See also: https://github.com/bromite/bromite/issues/1474
|
|||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
.../java/res/xml/privacy_preferences.xml | 15 ++++++
|
.../java/res/xml/privacy_preferences.xml | 15 ++++++
|
||||||
.../browser/LaunchIntentDispatcher.java | 21 ++++++++
|
.../browser/LaunchIntentDispatcher.java | 22 ++++++++
|
||||||
.../CustomTabIntentDataProvider.java | 4 +-
|
.../CustomTabIntentDataProvider.java | 22 ++++----
|
||||||
.../customtabs/CustomTabsConnection.java | 1 +
|
.../customtabs/CustomTabsConnection.java | 3 +-
|
||||||
.../IncognitoCustomTabIntentDataProvider.java | 14 ++++++
|
.../IncognitoCustomTabIntentDataProvider.java | 14 +++++
|
||||||
.../privacy/settings/PrivacySettings.java | 50 +++++++++++++++++++
|
.../privacy/settings/PrivacySettings.java | 51 +++++++++++++++++++
|
||||||
.../flags/android/chrome_feature_list.cc | 2 +-
|
.../flags/android/chrome_feature_list.cc | 4 +-
|
||||||
.../browser/flags/ChromeFeatureList.java | 3 ++
|
.../browser/flags/ChromeFeatureList.java | 3 ++
|
||||||
.../chrome/browser/tab/TabAssociatedApp.java | 6 ++-
|
.../chrome/browser/tab/TabAssociatedApp.java | 6 ++-
|
||||||
...Add-custom-tab-intents-privacy-option.grdp | 25 ++++++++++
|
...Add-custom-tab-intents-privacy-option.grdp | 25 +++++++++
|
||||||
.../OriginVerifier.java | 5 ++
|
.../OriginVerifier.java | 5 ++
|
||||||
.../core/common/language_experiments.cc | 1 +
|
.../core/common/language_experiments.cc | 1 +
|
||||||
.../add-custom-tab-intents-privacy-option.inc | 1 +
|
.../add-custom-tab-intents-privacy-option.inc | 1 +
|
||||||
13 files changed, 145 insertions(+), 3 deletions(-)
|
13 files changed, 159 insertions(+), 13 deletions(-)
|
||||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-custom-tab-intents-privacy-option.grdp
|
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-custom-tab-intents-privacy-option.grdp
|
||||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc
|
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc
|
||||||
|
|
||||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
@@ -52,6 +52,21 @@ found in the LICENSE file.
|
@@ -40,6 +40,21 @@ found in the LICENSE file.
|
||||||
android:key="cromite_flags"
|
android:key="cromite_flags"
|
||||||
android:title="@string/cromite_flags_title"
|
android:title="@string/cromite_flags_title"
|
||||||
app:url="@string/cromite_flags_url" />
|
app:url="@string/cromite_flags_url" />
|
||||||
@@ -57,7 +57,15 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||||
@@ -61,6 +61,9 @@ import java.lang.annotation.Retention;
|
@@ -23,6 +23,7 @@ import androidx.core.os.BuildCompat;
|
||||||
|
import org.chromium.base.ApiCompatibilityUtils;
|
||||||
|
import org.chromium.base.ApplicationStatus;
|
||||||
|
import org.chromium.base.CommandLine;
|
||||||
|
+import org.chromium.base.ContextUtils;
|
||||||
|
import org.chromium.base.IntentUtils;
|
||||||
|
import org.chromium.base.Log;
|
||||||
|
import org.chromium.base.metrics.RecordHistogram;
|
||||||
|
@@ -53,6 +54,9 @@ import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -67,7 +75,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
|||||||
/**
|
/**
|
||||||
* Dispatches incoming intents to the appropriate activity based on the current configuration and
|
* Dispatches incoming intents to the appropriate activity based on the current configuration and
|
||||||
* Intent fired.
|
* Intent fired.
|
||||||
@@ -263,6 +266,9 @@ public class LaunchIntentDispatcher {
|
@@ -139,6 +143,9 @@ public class LaunchIntentDispatcher {
|
||||||
*/
|
*/
|
||||||
public static boolean isCustomTabIntent(Intent intent) {
|
public static boolean isCustomTabIntent(Intent intent) {
|
||||||
if (intent == null) return false;
|
if (intent == null) return false;
|
||||||
@@ -77,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
|||||||
Log.w(
|
Log.w(
|
||||||
TAG,
|
TAG,
|
||||||
"CustomTabsIntent#shouldAlwaysUseBrowserUI() = "
|
"CustomTabsIntent#shouldAlwaysUseBrowserUI() = "
|
||||||
@@ -291,6 +297,10 @@ public class LaunchIntentDispatcher {
|
@@ -165,6 +172,10 @@ public class LaunchIntentDispatcher {
|
||||||
// Make sure the result of the CustomTabActivity is forwarded to the client.
|
// Make sure the result of the CustomTabActivity is forwarded to the client.
|
||||||
newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
|
newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
|
||||||
|
|
||||||
@@ -88,7 +96,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
|||||||
// Since configureIntentForResizableCustomTab() might change the componenet/class
|
// Since configureIntentForResizableCustomTab() might change the componenet/class
|
||||||
// associated with the passed intent, it needs to be called after #setClassName(context,
|
// associated with the passed intent, it needs to be called after #setClassName(context,
|
||||||
// CustomTabActivity.class.getName());
|
// CustomTabActivity.class.getName());
|
||||||
@@ -483,6 +493,17 @@ public class LaunchIntentDispatcher {
|
@@ -342,6 +353,17 @@ public class LaunchIntentDispatcher {
|
||||||
|
|
||||||
if (Intent.ACTION_VIEW.equals(newIntent.getAction())
|
if (Intent.ACTION_VIEW.equals(newIntent.getAction())
|
||||||
&& !IntentHandler.wasIntentSenderChrome(newIntent)) {
|
&& !IntentHandler.wasIntentSenderChrome(newIntent)) {
|
||||||
@@ -103,13 +111,56 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
|||||||
+ IntentHandler.setTabLaunchType(newIntent, TabLaunchType.FROM_EXTERNAL_APP);
|
+ IntentHandler.setTabLaunchType(newIntent, TabLaunchType.FROM_EXTERNAL_APP);
|
||||||
+ newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
+ newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
+ }
|
+ }
|
||||||
if (!chromeTabbedTaskExists()) {
|
if (!chromeTabbedTaskExists(mActivity)) {
|
||||||
newIntent.putExtra(IntentHandler.EXTRA_STARTED_TABBED_CHROME_TASK, true);
|
newIntent.putExtra(IntentHandler.EXTRA_STARTED_TABBED_CHROME_TASK, true);
|
||||||
}
|
}
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
||||||
@@ -1257,7 +1257,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
@@ -248,16 +248,16 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||||
|
|
||||||
|
// Extra whose value is an array of ints that is supplied to
|
||||||
|
// SyntheticTrialRegistry::RegisterExternalExperiments().
|
||||||
|
- public static final String EXPERIMENT_IDS =
|
||||||
|
- "org.chromium.chrome.browser.customtabs.AGA_EXPERIMENT_IDS";
|
||||||
|
+ // public static final String EXPERIMENT_IDS =
|
||||||
|
+ // "org.chromium.chrome.browser.customtabs.AGA_EXPERIMENT_IDS";
|
||||||
|
|
||||||
|
// These Extra Intent parameters allow an Intent to enable or disable a set of Features.
|
||||||
|
// The set of Features that may be enabled or disabled is restricted by the code,
|
||||||
|
// and initially only two Features may be enabled together, or disabled together.
|
||||||
|
- public static final String EXPERIMENTS_ENABLE =
|
||||||
|
- "org.chromium.chrome.browser.customtabs.EXPERIMENTS_ENABLE";
|
||||||
|
- public static final String EXPERIMENTS_DISABLE =
|
||||||
|
- "org.chromium.chrome.browser.customtabs.EXPERIMENTS_DISABLE";
|
||||||
|
+ // public static final String EXPERIMENTS_ENABLE =
|
||||||
|
+ // "org.chromium.chrome.browser.customtabs.EXPERIMENTS_ENABLE";
|
||||||
|
+ // public static final String EXPERIMENTS_DISABLE =
|
||||||
|
+ // "org.chromium.chrome.browser.customtabs.EXPERIMENTS_DISABLE";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extra that, if set, makes the Custom Tab Activity's height to be x pixels, the Custom Tab
|
||||||
|
@@ -727,7 +727,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||||
|
TrustedWebActivityIntentBuilder.EXTRA_SCREEN_ORIENTATION,
|
||||||
|
ScreenOrientation.DEFAULT));
|
||||||
|
|
||||||
|
- mGsaExperimentIds = IntentUtils.safeGetIntArrayExtra(intent, EXPERIMENT_IDS);
|
||||||
|
+ mGsaExperimentIds = null; //IntentUtils.safeGetIntArrayExtra(intent, EXPERIMENT_IDS);
|
||||||
|
|
||||||
|
mBreakPointDp = getActivityBreakPointFromIntent(intent);
|
||||||
|
mInitialActivityHeight = getInitialActivityHeightFromIntent(intent);
|
||||||
|
@@ -740,8 +740,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||||
|
intent, EXTRA_ACTIVITY_HEIGHT_RESIZE_BEHAVIOR, ACTIVITY_HEIGHT_DEFAULT);
|
||||||
|
mIsPartialCustomTabFixedHeight = activityHeightResizeBehavior == ACTIVITY_HEIGHT_FIXED;
|
||||||
|
|
||||||
|
- mInteractWithBackground = CustomTabsIntent.isBackgroundInteractionEnabled(intent);
|
||||||
|
- if (IntentUtils.safeHasExtra(intent, EXTRA_ENABLE_BACKGROUND_INTERACTION)) {
|
||||||
|
+ mInteractWithBackground = false; // CustomTabsIntent.isBackgroundInteractionEnabled(intent);
|
||||||
|
+ if (((false)) && IntentUtils.safeHasExtra(intent, EXTRA_ENABLE_BACKGROUND_INTERACTION)) {
|
||||||
|
@BackgroundInteractBehavior
|
||||||
|
int backgroundInteractBehavior =
|
||||||
|
IntentUtils.safeGetIntExtra(
|
||||||
|
@@ -1410,7 +1410,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||||
public @CustomTabProfileType int getCustomTabMode() {
|
public @CustomTabProfileType int getCustomTabMode() {
|
||||||
return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()
|
return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()
|
||||||
? CustomTabProfileType.INCOGNITO
|
? CustomTabProfileType.INCOGNITO
|
||||||
@@ -123,7 +174,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
||||||
@@ -968,6 +968,7 @@ public class CustomTabsConnection {
|
@@ -786,7 +786,7 @@ public class CustomTabsConnection {
|
||||||
|
ThreadUtils.assertOnUiThread();
|
||||||
|
if (extras == null) return;
|
||||||
|
int[] experimentIds =
|
||||||
|
- IntentUtils.safeGetIntArray(extras, CustomTabIntentDataProvider.EXPERIMENT_IDS);
|
||||||
|
+ null; //IntentUtils.safeGetIntArray(extras, CustomTabIntentDataProvider.EXPERIMENT_IDS);
|
||||||
|
if (experimentIds == null) return;
|
||||||
|
// When ids are set through cct, they should not override existing ids.
|
||||||
|
boolean override = false;
|
||||||
|
@@ -1003,6 +1003,7 @@ public class CustomTabsConnection {
|
||||||
PostTask.postTask(
|
PostTask.postTask(
|
||||||
TaskTraits.UI_DEFAULT,
|
TaskTraits.UI_DEFAULT,
|
||||||
() -> {
|
() -> {
|
||||||
@@ -134,7 +194,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
|
||||||
@@ -40,6 +40,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable;
|
@@ -45,6 +45,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -144,7 +204,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
|
|||||||
/**
|
/**
|
||||||
* A model class that parses the incoming intent for incognito Custom Tabs specific customization
|
* A model class that parses the incoming intent for incognito Custom Tabs specific customization
|
||||||
* data.
|
* data.
|
||||||
@@ -121,6 +124,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
|
@@ -134,6 +137,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isIntentFromThirdPartyAllowed() {
|
private static boolean isIntentFromThirdPartyAllowed() {
|
||||||
@@ -154,7 +214,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
|
|||||||
return ChromeFeatureList.sCctIncognitoAvailableToThirdParty.isEnabled();
|
return ChromeFeatureList.sCctIncognitoAvailableToThirdParty.isEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -220,6 +226,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
|
@@ -231,6 +237,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isValidIncognitoIntent(Intent intent, boolean recordMetrics) {
|
public static boolean isValidIncognitoIntent(Intent intent, boolean recordMetrics) {
|
||||||
@@ -165,7 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
|
|||||||
if (!isIncognitoRequested(intent)) return false;
|
if (!isIncognitoRequested(intent)) return false;
|
||||||
var session = SessionHolder.getSessionHolderFromIntent(intent);
|
var session = SessionHolder.getSessionHolderFromIntent(intent);
|
||||||
if (isIntentFromThirdPartyAllowed()
|
if (isIntentFromThirdPartyAllowed()
|
||||||
@@ -329,6 +339,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
|
@@ -341,6 +351,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @CustomTabProfileType int getCustomTabMode() {
|
public @CustomTabProfileType int getCustomTabMode() {
|
||||||
@@ -179,7 +239,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
@@ -80,6 +80,15 @@ import org.chromium.ui.text.SpanApplier;
|
@@ -12,6 +12,7 @@ import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
|
+import android.os.Build;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.text.SpannableString;
|
||||||
|
import android.text.SpannableStringBuilder;
|
||||||
|
@@ -88,6 +89,15 @@ import org.chromium.ui.widget.ChromeBulletSpan;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
@@ -195,7 +263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
import androidx.preference.PreferenceCategory;
|
import androidx.preference.PreferenceCategory;
|
||||||
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
|
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
|
||||||
import org.chromium.base.shared_preferences.SharedPreferencesManager;
|
import org.chromium.base.shared_preferences.SharedPreferencesManager;
|
||||||
@@ -149,6 +158,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -163,6 +173,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
startTag, endTag, new ChromeClickableSpan(context, onClickCallback));
|
startTag, endTag, new ChromeClickableSpan(context, onClickCallback));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,7 +273,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
@Override
|
@Override
|
||||||
public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
|
public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
|
||||||
mPageTitle.set(getString(R.string.prefs_privacy_security));
|
mPageTitle.set(getString(R.string.prefs_privacy_security));
|
||||||
@@ -376,6 +388,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -420,6 +433,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink));
|
new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -215,7 +283,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
String key = preference.getKey();
|
String key = preference.getKey();
|
||||||
@@ -396,6 +411,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -440,6 +456,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
} else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
|
} else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
|
||||||
UserPrefs.get(getProfile())
|
UserPrefs.get(getProfile())
|
||||||
.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
|
.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
|
||||||
@@ -247,7 +315,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -428,6 +468,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -472,6 +513,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
|
UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -267,39 +335,41 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||||
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
||||||
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||||
@@ -1020,7 +1020,7 @@ BASE_FEATURE(kMagicStackAndroid,
|
@@ -741,7 +741,9 @@ BASE_FEATURE(kLogoViewRefactor, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
// Enables an experimental feature which forces mayLaunchUrl to use a different
|
// Enables an experimental feature which forces mayLaunchUrl to use a different
|
||||||
// storage partition. This may reduce performance. This should not be enabled by
|
// storage partition. This may reduce performance. This should not be enabled by
|
||||||
// default.
|
// default.
|
||||||
-BASE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition,
|
-BASE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
+CROMITE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition,
|
+CROMITE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition,
|
||||||
"MayLaunchUrlUsesSeparateStoragePartition",
|
+ "MayLaunchUrlUsesSeparateStoragePartition",
|
||||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
|
BASE_FEATURE(kMediaIndicatorsAndroid, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
|
BASE_FEATURE(kMostVisitedTilesCustomization, base::FEATURE_ENABLED_BY_DEFAULT);
|
||||||
|
BASE_FEATURE(kMostVisitedTilesReselect, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||||
@@ -825,6 +825,8 @@ public abstract class ChromeFeatureList {
|
@@ -1053,6 +1053,8 @@ public abstract class ChromeFeatureList {
|
||||||
public static final CachedFlag sMiniOriginBar = newCachedFlag(MINI_ORIGIN_BAR, false, true);
|
MOST_VISITED_TILES_CUSTOMIZATION,
|
||||||
public static final CachedFlag sMostVisitedTilesCustomization =
|
/* defaultValue= */ true,
|
||||||
newCachedFlag(MOST_VISITED_TILES_CUSTOMIZATION, false);
|
/* defaultValueInTests= */ true);
|
||||||
+ public static final CachedFlag sMayLaunchurlUsesSeparateStoragePartition =
|
+ public static final CachedFlag sMayLaunchurlUsesSeparateStoragePartition =
|
||||||
+ newCachedFlag(MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION, false);
|
+ newCachedFlag(MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION, false);
|
||||||
public static final CachedFlag sMostVisitedTilesReselect =
|
public static final CachedFlag sMostVisitedTilesReselect =
|
||||||
newCachedFlag(MOST_VISITED_TILES_RESELECT, false);
|
newCachedFlag(MOST_VISITED_TILES_RESELECT, false);
|
||||||
public static final CachedFlag sMultiInstanceApplicationStatusCleanup =
|
public static final CachedFlag sMoveToFrontInLaunchIntentDispatcher =
|
||||||
@@ -1013,6 +1015,7 @@ public abstract class ChromeFeatureList {
|
@@ -1330,6 +1332,7 @@ public abstract class ChromeFeatureList {
|
||||||
sMagicStackAndroid,
|
sMaliciousApkDownloadCheck,
|
||||||
sMiniOriginBar,
|
|
||||||
sMostVisitedTilesCustomization,
|
sMostVisitedTilesCustomization,
|
||||||
+ sMayLaunchurlUsesSeparateStoragePartition,
|
|
||||||
sMostVisitedTilesReselect,
|
sMostVisitedTilesReselect,
|
||||||
sMultiInstanceApplicationStatusCleanup,
|
+ sMayLaunchurlUsesSeparateStoragePartition,
|
||||||
|
sMoveToFrontInLaunchIntentDispatcher,
|
||||||
|
sMultiInstanceSharedPrefsMigration,
|
||||||
sMvcUpdateViewWhenModelChanged,
|
sMvcUpdateViewWhenModelChanged,
|
||||||
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
|
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
|
||||||
--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
|
--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
|
||||||
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
|
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
|
||||||
@@ -88,7 +88,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im
|
@@ -90,7 +90,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im
|
||||||
public static boolean isOpenedFromExternalApp(Tab tab) {
|
public static boolean isOpenedFromExternalApp(Tab tab) {
|
||||||
TabAssociatedApp app = get(tab);
|
TabAssociatedApp app = get(tab);
|
||||||
if (app == null) return false;
|
if (app == null) return false;
|
||||||
@@ -345,7 +415,7 @@ new file mode 100644
|
|||||||
diff --git a/components/content_relationship_verification/android/java/src/org/chromium/components/content_relationship_verification/OriginVerifier.java b/components/content_relationship_verification/android/java/src/org/chromium/components/content_relationship_verification/OriginVerifier.java
|
diff --git a/components/content_relationship_verification/android/java/src/org/chromium/components/content_relationship_verification/OriginVerifier.java b/components/content_relationship_verification/android/java/src/org/chromium/components/content_relationship_verification/OriginVerifier.java
|
||||||
--- a/components/content_relationship_verification/android/java/src/org/chromium/components/content_relationship_verification/OriginVerifier.java
|
--- a/components/content_relationship_verification/android/java/src/org/chromium/components/content_relationship_verification/OriginVerifier.java
|
||||||
+++ b/components/content_relationship_verification/android/java/src/org/chromium/components/content_relationship_verification/OriginVerifier.java
|
+++ b/components/content_relationship_verification/android/java/src/org/chromium/components/content_relationship_verification/OriginVerifier.java
|
||||||
@@ -180,6 +180,11 @@ public abstract class OriginVerifier {
|
@@ -181,6 +181,11 @@ public abstract class OriginVerifier {
|
||||||
assert mNativeOriginVerifier != 0
|
assert mNativeOriginVerifier != 0
|
||||||
: "Either provide a browserContextHandle to "
|
: "Either provide a browserContextHandle to "
|
||||||
+ "OriginVerifier#ctor or call initNativeOriginVerifier.";
|
+ "OriginVerifier#ctor or call initNativeOriginVerifier.";
|
||||||
@@ -360,9 +430,9 @@ diff --git a/components/content_relationship_verification/android/java/src/org/c
|
|||||||
diff --git a/components/language/core/common/language_experiments.cc b/components/language/core/common/language_experiments.cc
|
diff --git a/components/language/core/common/language_experiments.cc b/components/language/core/common/language_experiments.cc
|
||||||
--- a/components/language/core/common/language_experiments.cc
|
--- a/components/language/core/common/language_experiments.cc
|
||||||
+++ b/components/language/core/common/language_experiments.cc
|
+++ b/components/language/core/common/language_experiments.cc
|
||||||
@@ -32,4 +32,5 @@ BASE_FEATURE(kDisableGeoLanguageModel,
|
@@ -20,4 +20,5 @@ BASE_FEATURE(kTranslateOpenSettings, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
// Params:
|
|
||||||
const char kContentLanguagesDisableObserversParam[] = "disable_observers";
|
BASE_FEATURE(kDisableGeoLanguageModel, base::FEATURE_ENABLED_BY_DEFAULT);
|
||||||
|
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kCctAutoTranslate);
|
+SET_CROMITE_FEATURE_DISABLED(kCctAutoTranslate);
|
||||||
} // namespace language
|
} // namespace language
|
||||||
@@ -371,5 +441,5 @@ new file mode 100644
|
|||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc
|
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc
|
||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kCCTIntentFeatureOverrides);
|
+// explicitly empty
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -6,49 +6,38 @@ Corrected Exit functionality
|
|||||||
|
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
chrome/android/java/res/menu/main_menu.xml | 6 ++++++
|
chrome/android/java/res/values/ids.xml | 1 +
|
||||||
.../org/chromium/chrome/browser/ChromeTabbedActivity.java | 4 ++++
|
.../org/chromium/chrome/browser/ChromeTabbedActivity.java | 4 ++++
|
||||||
.../src/org/chromium/chrome/browser/app/ChromeActivity.java | 6 ++++++
|
.../org/chromium/chrome/browser/app/ChromeActivity.java | 6 ++++++
|
||||||
.../chrome/browser/init/ChromeLifetimeController.java | 2 ++
|
.../chrome/browser/init/ChromeLifetimeController.java | 2 ++
|
||||||
.../browser/ui/android/strings/android_chrome_strings.grd | 3 +++
|
.../tabbed_mode/TabbedAppMenuPropertiesDelegate.java | 7 +++++++
|
||||||
5 files changed, 21 insertions(+)
|
.../browser/ui/android/strings/android_chrome_strings.grd | 3 +++
|
||||||
|
6 files changed, 23 insertions(+)
|
||||||
|
|
||||||
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
|
diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml
|
||||||
--- a/chrome/android/java/res/menu/main_menu.xml
|
--- a/chrome/android/java/res/values/ids.xml
|
||||||
+++ b/chrome/android/java/res/menu/main_menu.xml
|
+++ b/chrome/android/java/res/values/ids.xml
|
||||||
@@ -181,6 +181,9 @@ found in the LICENSE file.
|
@@ -126,6 +126,7 @@ found in the LICENSE file.
|
||||||
<item android:id="@+id/managed_by_menu_id"
|
<item type="id" name="ntp_feed_header_menu_item_toggle_switch" />
|
||||||
android:title="@string/managed_browser"
|
|
||||||
android:icon="@drawable/ic_business" />
|
|
||||||
+ <item android:id="@+id/exit_id"
|
|
||||||
+ android:title="@string/menu_exit"
|
|
||||||
+ android:icon="@drawable/ic_exit_to_app_white_24dp" />
|
|
||||||
</group>
|
|
||||||
|
|
||||||
<!-- Items shown only in the tab switcher -->
|
<!-- App Menu -->
|
||||||
@@ -213,6 +216,9 @@ found in the LICENSE file.
|
+ <item type="id" name="exit_id" />
|
||||||
<item android:id="@id/preferences_id"
|
<item type="id" name="icon_row_menu_id" />
|
||||||
android:title="@string/menu_settings"
|
<item type="id" name="submenu_header_menu_id" />
|
||||||
android:icon="@drawable/settings_cog" />
|
<item type="id" name="back_menu_id" />
|
||||||
+ <item android:id="@+id/exit_id"
|
|
||||||
+ android:title="@string/menu_exit"
|
|
||||||
+ android:icon="@drawable/ic_exit_to_app_white_24dp" />
|
|
||||||
</group>
|
|
||||||
|
|
||||||
<!-- Items shown only when the tablet has no visible tabs -->
|
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
@@ -326,6 +326,8 @@ import java.util.Map;
|
@@ -401,6 +401,8 @@ import java.util.Set;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
+import org.chromium.chrome.browser.lifetime.ApplicationLifetime;
|
+import org.chromium.chrome.browser.lifetime.ApplicationLifetime;
|
||||||
+
|
+
|
||||||
/**
|
/**
|
||||||
* This is the main activity for ChromeMobile when not running in document mode. All the tabs are
|
* This is the main activity for ChromeMobile when not running in document mode. All the tabs are
|
||||||
* accessible via a chrome specific tab switching UI.
|
* accessible via a chrome specific tab switching UI.
|
||||||
@@ -3361,6 +3363,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
|
@@ -4160,6 +4162,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
|
||||||
.closeTabs(
|
.closeTabs(
|
||||||
TabClosureParams.closeTab(currentTab).build(), /* allowDialog= */ true);
|
TabClosureParams.closeTab(currentTab).build(), /* allowDialog= */ true);
|
||||||
RecordUserAction.record("MobileTabClosed");
|
RecordUserAction.record("MobileTabClosed");
|
||||||
@@ -60,7 +49,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
@@ -60,6 +60,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier;
|
@@ -69,6 +69,7 @@ import org.chromium.base.supplier.SettableNullableObservableSupplier;
|
||||||
import org.chromium.chrome.R;
|
import org.chromium.chrome.R;
|
||||||
import org.chromium.chrome.browser.ActivityTabProvider;
|
import org.chromium.chrome.browser.ActivityTabProvider;
|
||||||
import org.chromium.chrome.browser.ActivityUtils;
|
import org.chromium.chrome.browser.ActivityUtils;
|
||||||
@@ -68,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||||||
import org.chromium.chrome.browser.ChromeActivitySessionTracker;
|
import org.chromium.chrome.browser.ChromeActivitySessionTracker;
|
||||||
import org.chromium.chrome.browser.ChromeApplicationImpl;
|
import org.chromium.chrome.browser.ChromeApplicationImpl;
|
||||||
import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
|
import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
|
||||||
@@ -2419,6 +2420,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
@@ -2718,6 +2719,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,15 +72,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
||||||
@@ -18,6 +18,7 @@ import org.chromium.base.ContextUtils;
|
@@ -20,6 +20,7 @@ import org.chromium.build.annotations.MonotonicNonNull;
|
||||||
import org.chromium.base.ThreadUtils;
|
import org.chromium.build.annotations.NullMarked;
|
||||||
import org.chromium.chrome.browser.BrowserRestartActivity;
|
import org.chromium.chrome.browser.BrowserRestartActivity;
|
||||||
import org.chromium.chrome.browser.lifetime.ApplicationLifetime;
|
import org.chromium.chrome.browser.lifetime.ApplicationLifetime;
|
||||||
+import org.chromium.chrome.browser.incognito.IncognitoNotificationManager;
|
+import org.chromium.chrome.browser.incognito.IncognitoNotificationManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Answers requests to kill and (potentially) restart Chrome's main browser process.
|
* Answers requests to kill and (potentially) restart Chrome's main browser process.
|
||||||
@@ -73,6 +74,7 @@ class ChromeLifetimeController
|
@@ -76,6 +77,7 @@ class ChromeLifetimeController
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTerminate(boolean restart) {
|
public void onTerminate(boolean restart) {
|
||||||
@@ -99,12 +88,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
|
|||||||
mRestartChromeOnDestroy = restart;
|
mRestartChromeOnDestroy = restart;
|
||||||
|
|
||||||
// Tell all Chrome Activities to finish themselves.
|
// Tell all Chrome Activities to finish themselves.
|
||||||
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
||||||
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
||||||
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
||||||
|
@@ -492,6 +492,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
|
||||||
|
modelList.add(buildContentFilterHelpCenterMenuItem(currentTab));
|
||||||
|
}
|
||||||
|
|
||||||
|
+ modelList.add(new MVCListAdapter.ListItem(
|
||||||
|
+ AppMenuHandler.AppMenuItemType.STANDARD,
|
||||||
|
+ buildModelForStandardMenuItem(
|
||||||
|
+ R.id.exit_id,
|
||||||
|
+ R.string.menu_exit,
|
||||||
|
+ shouldShowIconBeforeItem() ? R.drawable.ic_exit_to_app_white_24dp : 0)));
|
||||||
|
+
|
||||||
|
// Default browser promo menu item (entry point).
|
||||||
|
if (shouldShowDefaultBrowserPromo()) {
|
||||||
|
maybeAddDividerLine(modelList, R.id.divider_line_id);
|
||||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
@@ -4436,6 +4436,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
@@ -4572,6 +4572,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||||
<message name="IDS_MENU_AUTO_DARK_WEB_CONTENTS" desc="Menu item in Chrome's overflow/options menu. When Chrome's browser UI is set to dark theme and this option is checked, sites will have a dark theme automatically applied as well. [CHAR_LIMIT=24]">
|
<message name="IDS_MENU_MORE_TOOLS" desc="Menu item to more tools. [CHAR_LIMIT=27]">
|
||||||
Dark theme
|
More tools
|
||||||
</message>
|
</message>
|
||||||
+ <message name="IDS_MENU_EXIT" desc="Menu item for exit browser. [CHAR-LIMIT=27]">
|
+ <message name="IDS_MENU_EXIT" desc="Menu item for exit browser. [CHAR-LIMIT=27]">
|
||||||
+ Exit
|
+ Exit
|
||||||
|
|||||||
@@ -10,42 +10,42 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
.../browser/autocomplete_controller.cc | 10 ++++++
|
.../browser/autocomplete_controller.cc | 10 ++++++
|
||||||
.../omnibox/browser/history_url_provider.cc | 3 ++
|
.../omnibox/browser/history_url_provider.cc | 3 ++
|
||||||
components/omnibox/browser/search_provider.cc | 4 +++
|
components/omnibox/browser/search_provider.cc | 4 +++
|
||||||
components/url_formatter/url_fixer.cc | 4 +++
|
components/url_formatter/url_fixer.cc | 3 ++
|
||||||
...lag-for-omnibox-autocomplete-filtering.inc | 32 +++++++++++++++++++
|
...lag-for-omnibox-autocomplete-filtering.inc | 32 +++++++++++++++++++
|
||||||
5 files changed, 53 insertions(+)
|
5 files changed, 52 insertions(+)
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-omnibox-autocomplete-filtering.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-omnibox-autocomplete-filtering.inc
|
||||||
|
|
||||||
diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc
|
diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc
|
||||||
--- a/components/omnibox/browser/autocomplete_controller.cc
|
--- a/components/omnibox/browser/autocomplete_controller.cc
|
||||||
+++ b/components/omnibox/browser/autocomplete_controller.cc
|
+++ b/components/omnibox/browser/autocomplete_controller.cc
|
||||||
@@ -22,6 +22,7 @@
|
@@ -22,6 +22,7 @@
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include "base/check_op.h"
|
#include "base/check_op.h"
|
||||||
#include "base/containers/contains.h"
|
|
||||||
+#include "base/command_line.h"
|
+#include "base/command_line.h"
|
||||||
#include "base/feature_list.h"
|
#include "base/feature_list.h"
|
||||||
#include "base/format_macros.h"
|
#include "base/format_macros.h"
|
||||||
#include "base/functional/bind.h"
|
#include "base/functional/bind.h"
|
||||||
@@ -567,6 +568,15 @@ AutocompleteController::AutocompleteController(
|
@@ -549,6 +550,15 @@ AutocompleteController::AutocompleteController(
|
||||||
provider_client_->GetOmniboxTriggeredFeatureService()),
|
|
||||||
steady_state_omnibox_position_(
|
steady_state_omnibox_position_(
|
||||||
metrics::OmniboxEventProto::UNKNOWN_POSITION) {
|
metrics::OmniboxEventProto::UNKNOWN_POSITION),
|
||||||
|
config_(config) {
|
||||||
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) {
|
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) {
|
||||||
+ const std::string flag_value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering");
|
+ const std::string flag_value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering");
|
||||||
+ provider_types &= AutocompleteProvider::TYPE_KEYWORD | AutocompleteProvider::TYPE_SEARCH |
|
+ config_.provider_types &= AutocompleteProvider::TYPE_KEYWORD | AutocompleteProvider::TYPE_SEARCH |
|
||||||
+ AutocompleteProvider::TYPE_HISTORY_URL | AutocompleteProvider::TYPE_BOOKMARK | AutocompleteProvider::TYPE_BUILTIN;
|
+ AutocompleteProvider::TYPE_HISTORY_URL | AutocompleteProvider::TYPE_BOOKMARK | AutocompleteProvider::TYPE_BUILTIN;
|
||||||
+ if (!base::Contains(flag_value, "bookmarks"))
|
+ if (!flag_value.contains("bookmarks"))
|
||||||
+ provider_types &= ~AutocompleteProvider::TYPE_BOOKMARK;
|
+ config_.provider_types &= ~AutocompleteProvider::TYPE_BOOKMARK;
|
||||||
+ if (!base::Contains(flag_value, "chrome"))
|
+ if (!flag_value.contains("chrome"))
|
||||||
+ provider_types &= ~AutocompleteProvider::TYPE_BUILTIN;
|
+ config_.provider_types &= ~AutocompleteProvider::TYPE_BUILTIN;
|
||||||
+ }
|
+ }
|
||||||
provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes();
|
config_.provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes();
|
||||||
|
|
||||||
// Providers run in the order they're added. Async providers should run first
|
// Providers run in the order they're added. Async providers should run first
|
||||||
diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc
|
diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc
|
||||||
--- a/components/omnibox/browser/history_url_provider.cc
|
--- a/components/omnibox/browser/history_url_provider.cc
|
||||||
+++ b/components/omnibox/browser/history_url_provider.cc
|
+++ b/components/omnibox/browser/history_url_provider.cc
|
||||||
@@ -488,6 +488,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input,
|
@@ -487,6 +487,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input,
|
||||||
if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY)
|
if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY)
|
||||||
matches_.push_back(what_you_typed_match);
|
matches_.push_back(what_you_typed_match);
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omn
|
|||||||
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
|
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
|
||||||
--- a/components/omnibox/browser/search_provider.cc
|
--- a/components/omnibox/browser/search_provider.cc
|
||||||
+++ b/components/omnibox/browser/search_provider.cc
|
+++ b/components/omnibox/browser/search_provider.cc
|
||||||
@@ -14,6 +14,7 @@
|
@@ -17,6 +17,7 @@
|
||||||
#include "base/base64.h"
|
#include "base/base64.h"
|
||||||
#include "base/feature_list.h"
|
#include "base/feature_list.h"
|
||||||
#include "base/functional/bind.h"
|
#include "base/functional/bind.h"
|
||||||
@@ -66,7 +66,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/
|
|||||||
#include "base/functional/callback.h"
|
#include "base/functional/callback.h"
|
||||||
#include "base/i18n/break_iterator.h"
|
#include "base/i18n/break_iterator.h"
|
||||||
#include "base/i18n/case_conversion.h"
|
#include "base/i18n/case_conversion.h"
|
||||||
@@ -628,6 +629,9 @@ void SearchProvider::Run(bool query_is_private) {
|
@@ -662,6 +663,9 @@ void SearchProvider::Run(bool query_is_private) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SearchProvider::DoHistoryQuery(bool minimal_changes) {
|
void SearchProvider::DoHistoryQuery(bool minimal_changes) {
|
||||||
@@ -79,21 +79,20 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/
|
|||||||
diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
|
diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
|
||||||
--- a/components/url_formatter/url_fixer.cc
|
--- a/components/url_formatter/url_fixer.cc
|
||||||
+++ b/components/url_formatter/url_fixer.cc
|
+++ b/components/url_formatter/url_fixer.cc
|
||||||
@@ -15,6 +15,8 @@
|
@@ -11,6 +11,7 @@
|
||||||
#include <string_view>
|
|
||||||
|
|
||||||
#include "base/check_op.h"
|
#include "base/check_op.h"
|
||||||
+#include "base/containers/contains.h"
|
#include "base/compiler_specific.h"
|
||||||
+#include "base/command_line.h"
|
+#include "base/command_line.h"
|
||||||
#include "base/files/file_path.h"
|
#include "base/files/file_path.h"
|
||||||
#include "base/files/file_util.h"
|
#include "base/files/file_util.h"
|
||||||
#include "base/i18n/char_iterator.h"
|
#include "base/i18n/char_iterator.h"
|
||||||
@@ -655,6 +657,8 @@ GURL FixupURLInternal(const std::string& text,
|
@@ -635,6 +636,8 @@ GURL FixupURLInternal(const std::string& text,
|
||||||
|
desired_tld, &url);
|
||||||
FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url);
|
}
|
||||||
if (chrome_url && !parts.host.is_valid()) {
|
if (chrome_url && !parts.host.is_valid()) {
|
||||||
+ if (!base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering") ||
|
+ if (!base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering") ||
|
||||||
+ base::Contains(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering"), "chrome"))
|
+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering").contains("chrome"))
|
||||||
url.append(kChromeUIDefaultHost);
|
url.append(kChromeUIDefaultHost);
|
||||||
}
|
}
|
||||||
FixupPort(trimmed, parts.port, &url);
|
FixupPort(trimmed, parts.port, &url);
|
||||||
|
|||||||
@@ -8,40 +8,13 @@ with limited CPU/memory resources and it is disabled by default.
|
|||||||
|
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
.../common/network_features.cc | 3 +++
|
|
||||||
.../common/network_features.h | 4 ++++
|
|
||||||
.../common/network_switch_list.h | 4 ++++
|
.../common/network_switch_list.h | 4 ++++
|
||||||
.../spoof_checks/top_domains/BUILD.gn | 1 +
|
.../spoof_checks/top_domains/BUILD.gn | 1 +
|
||||||
...o-configure-maximum-connections-per-host.inc | 17 +++++++++++++++++
|
...o-configure-maximum-connections-per-host.inc | 17 +++++++++++++++++
|
||||||
net/socket/client_socket_pool_manager.cc | 17 +++++++++++++++++
|
net/socket/client_socket_pool_manager.cc | 16 ++++++++++++++++
|
||||||
6 files changed, 46 insertions(+)
|
4 files changed, 38 insertions(+)
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-flag-to-configure-maximum-connections-per-host.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-flag-to-configure-maximum-connections-per-host.inc
|
||||||
|
|
||||||
diff --git a/components/network_session_configurator/common/network_features.cc b/components/network_session_configurator/common/network_features.cc
|
|
||||||
--- a/components/network_session_configurator/common/network_features.cc
|
|
||||||
+++ b/components/network_session_configurator/common/network_features.cc
|
|
||||||
@@ -8,4 +8,7 @@
|
|
||||||
|
|
||||||
namespace features {
|
|
||||||
|
|
||||||
+const char kMaxConnectionsPerHostChoiceDefault[] = "6",
|
|
||||||
+ kMaxConnectionsPerHostChoice15[] = "15";
|
|
||||||
+
|
|
||||||
} // namespace features
|
|
||||||
diff --git a/components/network_session_configurator/common/network_features.h b/components/network_session_configurator/common/network_features.h
|
|
||||||
--- a/components/network_session_configurator/common/network_features.h
|
|
||||||
+++ b/components/network_session_configurator/common/network_features.h
|
|
||||||
@@ -10,6 +10,10 @@
|
|
||||||
|
|
||||||
namespace features {
|
|
||||||
|
|
||||||
+NETWORK_SESSION_CONFIGURATOR_EXPORT extern const char kMaxConnectionsPerHostChoiceDefault[],
|
|
||||||
+ kMaxConnectionsPerHostChoice6[],
|
|
||||||
+ kMaxConnectionsPerHostChoice15[];
|
|
||||||
+
|
|
||||||
} // namespace features
|
|
||||||
|
|
||||||
#endif // COMPONENTS_NETWORK_SESSION_CONFIGURATOR_COMMON_NETWORK_FEATURES_H_
|
|
||||||
diff --git a/components/network_session_configurator/common/network_switch_list.h b/components/network_session_configurator/common/network_switch_list.h
|
diff --git a/components/network_session_configurator/common/network_switch_list.h b/components/network_session_configurator/common/network_switch_list.h
|
||||||
--- a/components/network_session_configurator/common/network_switch_list.h
|
--- a/components/network_session_configurator/common/network_switch_list.h
|
||||||
+++ b/components/network_session_configurator/common/network_switch_list.h
|
+++ b/components/network_session_configurator/common/network_switch_list.h
|
||||||
@@ -54,8 +27,8 @@ diff --git a/components/network_session_configurator/common/network_switch_list.
|
|||||||
+NETWORK_SWITCH(kMaxConnectionsPerHost, "max-connections-per-host")
|
+NETWORK_SWITCH(kMaxConnectionsPerHost, "max-connections-per-host")
|
||||||
+
|
+
|
||||||
// Ignores certificate-related errors.
|
// Ignores certificate-related errors.
|
||||||
NETWORK_SWITCH(kIgnoreCertificateErrors, "ignore-certificate-errors")
|
// Note: In tests using net::EmbeddedTestServer with a custom hostname not
|
||||||
|
// covered by the default test certs, using this switch is usually incorrect.
|
||||||
diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
||||||
--- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
--- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
||||||
+++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
+++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
|
||||||
@@ -75,8 +48,8 @@ new file mode 100644
|
|||||||
+#ifdef FEATURE_PARAM_SECTION
|
+#ifdef FEATURE_PARAM_SECTION
|
||||||
+
|
+
|
||||||
+const FeatureEntry::Choice kMaxConnectionsPerHostChoices[] = {
|
+const FeatureEntry::Choice kMaxConnectionsPerHostChoices[] = {
|
||||||
+ {features::kMaxConnectionsPerHostChoiceDefault, "", ""},
|
+ {/*features::kMaxConnectionsPerHostChoiceDefault*/ "6", "", ""},
|
||||||
+ {features::kMaxConnectionsPerHostChoice15, switches::kMaxConnectionsPerHost, "15"},
|
+ {/*features::kMaxConnectionsPerHostChoice15*/ "15", switches::kMaxConnectionsPerHost, "15"},
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
@@ -103,12 +76,11 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
|
|||||||
#include "net/ssl/ssl_config.h"
|
#include "net/ssl/ssl_config.h"
|
||||||
#include "url/gurl.h"
|
#include "url/gurl.h"
|
||||||
#include "url/scheme_host_port.h"
|
#include "url/scheme_host_port.h"
|
||||||
@@ -164,6 +168,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
|
@@ -169,6 +173,18 @@ void ClientSocketPoolManager::set_socket_soft_cap_per_pool_for_test(
|
||||||
int ClientSocketPoolManager::max_sockets_per_group(
|
// static
|
||||||
|
size_t ClientSocketPoolManager::max_sockets_per_group(
|
||||||
HttpNetworkSession::SocketPoolType pool_type) {
|
HttpNetworkSession::SocketPoolType pool_type) {
|
||||||
DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES);
|
+ if (pool_type == net::HttpNetworkSession::SocketPoolType::kNormal) {
|
||||||
+
|
|
||||||
+ if (pool_type == HttpNetworkSession::NORMAL_SOCKET_POOL) {
|
|
||||||
+ int maxConnectionsPerHost = 0;
|
+ int maxConnectionsPerHost = 0;
|
||||||
+ auto value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(switches::kMaxConnectionsPerHost);
|
+ auto value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(switches::kMaxConnectionsPerHost);
|
||||||
+ if (!value.empty() && !base::StringToInt(value, &maxConnectionsPerHost)) {
|
+ if (!value.empty() && !base::StringToInt(value, &maxConnectionsPerHost)) {
|
||||||
@@ -120,7 +92,7 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
|
|||||||
+ // fallthrough for default value
|
+ // fallthrough for default value
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
return g_max_sockets_per_group[pool_type];
|
return g_max_sockets_per_group[std::to_underlying(pool_type)];
|
||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -45,18 +45,18 @@ new file mode 100644
|
|||||||
diff --git a/net/BUILD.gn b/net/BUILD.gn
|
diff --git a/net/BUILD.gn b/net/BUILD.gn
|
||||||
--- a/net/BUILD.gn
|
--- a/net/BUILD.gn
|
||||||
+++ b/net/BUILD.gn
|
+++ b/net/BUILD.gn
|
||||||
@@ -1145,6 +1145,7 @@ component("net") {
|
@@ -1219,6 +1219,7 @@ component("net") {
|
||||||
":net_deps",
|
":net_deps",
|
||||||
"//components/miracle_parameter/common",
|
|
||||||
"//components/network_time/time_tracker",
|
"//components/network_time/time_tracker",
|
||||||
|
"//components/unexportable_keys",
|
||||||
+ "//components/network_session_configurator/common",
|
+ "//components/network_session_configurator/common",
|
||||||
"//net/http:transport_security_state_generated_files",
|
"//net/http:transport_security_state_generated_files",
|
||||||
"//third_party/simdutf:simdutf",
|
"//third_party/simdutf",
|
||||||
]
|
]
|
||||||
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
||||||
--- a/net/dns/host_resolver_manager.cc
|
--- a/net/dns/host_resolver_manager.cc
|
||||||
+++ b/net/dns/host_resolver_manager.cc
|
+++ b/net/dns/host_resolver_manager.cc
|
||||||
@@ -115,6 +115,7 @@
|
@@ -114,6 +114,7 @@
|
||||||
#include "net/log/net_log_event_type.h"
|
#include "net/log/net_log_event_type.h"
|
||||||
#include "net/log/net_log_source.h"
|
#include "net/log/net_log_source.h"
|
||||||
#include "net/log/net_log_source_type.h"
|
#include "net/log/net_log_source_type.h"
|
||||||
@@ -64,7 +64,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
|||||||
#include "net/log/net_log_with_source.h"
|
#include "net/log/net_log_with_source.h"
|
||||||
#include "net/socket/client_socket_factory.h"
|
#include "net/socket/client_socket_factory.h"
|
||||||
#include "net/url_request/url_request_context.h"
|
#include "net/url_request/url_request_context.h"
|
||||||
@@ -1489,6 +1490,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck(
|
@@ -1505,6 +1506,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck(
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,17 +12,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
---
|
---
|
||||||
.../java/res/xml/privacy_preferences.xml | 7 +++-
|
.../java/res/xml/privacy_preferences.xml | 7 +++-
|
||||||
.../customtabs/CustomTabDelegateFactory.java | 2 ++
|
.../customtabs/CustomTabDelegateFactory.java | 2 ++
|
||||||
.../ExternalNavigationDelegateImpl.java | 4 ++-
|
.../ExternalNavigationDelegateImpl.java | 6 ++--
|
||||||
.../cromite/sAllowExternalIntentRequests.java | 33 +++++++++++++++++++
|
.../cromite/sAllowExternalIntentRequests.java | 33 +++++++++++++++++++
|
||||||
...g-to-disable-external-intent-requests.grdp | 9 +++++
|
...g-to-disable-external-intent-requests.grdp | 9 +++++
|
||||||
.../android/external_intents_features.cc | 7 +++-
|
.../android/external_intents_features.cc | 6 ++++
|
||||||
.../android/external_intents_features.h | 1 +
|
.../android/external_intents_features.h | 1 +
|
||||||
.../ExternalIntentsFeatures.java | 6 ++++
|
.../ExternalIntentsFeatures.java | 6 ++++
|
||||||
.../ExternalNavigationHandler.java | 21 ++++++++++++
|
.../ExternalNavigationHandler.java | 21 ++++++++++++
|
||||||
...ag-to-disable-external-intent-requests.inc | 13 ++++++++
|
...ag-to-disable-external-intent-requests.inc | 13 ++++++++
|
||||||
...t-Delete-block-external-form-redirects.inc | 15 +++++++++
|
...t-Delete-block-external-form-redirects.inc | 15 +++++++++
|
||||||
...ag-to-disable-external-intent-requests.inc | 3 ++
|
...ag-to-disable-external-intent-requests.inc | 3 ++
|
||||||
12 files changed, 118 insertions(+), 3 deletions(-)
|
12 files changed, 119 insertions(+), 3 deletions(-)
|
||||||
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAllowExternalIntentRequests.java
|
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAllowExternalIntentRequests.java
|
||||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-flag-to-disable-external-intent-requests.grdp
|
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-flag-to-disable-external-intent-requests.grdp
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc
|
||||||
@@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
@@ -77,7 +77,12 @@ found in the LICENSE file.
|
@@ -65,7 +65,12 @@ found in the LICENSE file.
|
||||||
android:title="@string/settings_incognito_tab_lock_title"
|
android:title="@string/settings_incognito_tab_lock_title"
|
||||||
android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off"
|
android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off"
|
||||||
android:persistent="false" />
|
android:persistent="false" />
|
||||||
@@ -49,7 +49,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
|
||||||
@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator;
|
@@ -39,6 +39,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator;
|
||||||
import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl;
|
import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl;
|
||||||
import org.chromium.chrome.browser.flags.ActivityType;
|
import org.chromium.chrome.browser.flags.ActivityType;
|
||||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||||
@@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
|||||||
import org.chromium.chrome.browser.fullscreen.BrowserControlsManager;
|
import org.chromium.chrome.browser.fullscreen.BrowserControlsManager;
|
||||||
import org.chromium.chrome.browser.fullscreen.FullscreenManager;
|
import org.chromium.chrome.browser.fullscreen.FullscreenManager;
|
||||||
import org.chromium.chrome.browser.init.ChromeActivityNativeDelegate;
|
import org.chromium.chrome.browser.init.ChromeActivityNativeDelegate;
|
||||||
@@ -126,6 +127,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory {
|
@@ -167,6 +168,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean shouldDisableAllExternalIntents() {
|
public boolean shouldDisableAllExternalIntents() {
|
||||||
@@ -68,21 +68,30 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
||||||
@@ -20,6 +20,7 @@ import org.chromium.base.IntentUtils;
|
@@ -27,6 +27,7 @@ import org.chromium.base.ResettersForTesting;
|
||||||
import org.chromium.base.PackageManagerUtils;
|
import org.chromium.build.annotations.NullMarked;
|
||||||
import org.chromium.base.supplier.Supplier;
|
import org.chromium.build.annotations.Nullable;
|
||||||
import org.chromium.chrome.browser.ChromeTabbedActivity2;
|
import org.chromium.chrome.browser.ChromeTabbedActivity2;
|
||||||
+import org.chromium.chrome.browser.flags.cromite.sAllowExternalIntentRequests;
|
+import org.chromium.chrome.browser.flags.cromite.sAllowExternalIntentRequests;
|
||||||
import org.chromium.chrome.browser.IntentHandler;
|
import org.chromium.chrome.browser.IntentHandler;
|
||||||
import org.chromium.chrome.browser.password_manager.CctPasswordSavingMetricsRecorderBridge;
|
import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
|
||||||
import org.chromium.chrome.browser.safe_browsing.SafeBrowsingBridge;
|
import org.chromium.chrome.browser.document.ChromeLauncherActivity;
|
||||||
@@ -107,7 +108,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
@@ -139,7 +140,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
||||||
|
@Override
|
||||||
|
public boolean shouldDisableExternalIntentRequestsForUrl(
|
||||||
|
ExternalNavigationParams params, Intent intent) {
|
||||||
|
- return false;
|
||||||
|
+ if ("tel".equals(params.getUrl().getScheme())) return false;
|
||||||
|
+ return !sAllowExternalIntentRequests.getInstance().isEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean shouldDisableExternalIntentRequestsForUrl(GURL url) {
|
@@ -320,7 +322,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
||||||
- return false;
|
&& params.isInitialNavigationInFrame()
|
||||||
+ if ("tel".equals(url.getScheme())) return false;
|
// TODO(crbug.com/452537438): Figure out a better way to check whether we are in
|
||||||
+ return !sAllowExternalIntentRequests.getInstance().isEnabled();
|
// desktop windowing mode or if the device can enter desktop windowing mode.
|
||||||
|
- && (DeviceInfo.isDesktop() || params.isInDesktopWindowingMode());
|
||||||
|
+ && (params.isInDesktopWindowingMode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -141,28 +150,21 @@ new file mode 100644
|
|||||||
diff --git a/components/external_intents/android/external_intents_features.cc b/components/external_intents/android/external_intents_features.cc
|
diff --git a/components/external_intents/android/external_intents_features.cc b/components/external_intents/android/external_intents_features.cc
|
||||||
--- a/components/external_intents/android/external_intents_features.cc
|
--- a/components/external_intents/android/external_intents_features.cc
|
||||||
+++ b/components/external_intents/android/external_intents_features.cc
|
+++ b/components/external_intents/android/external_intents_features.cc
|
||||||
@@ -28,7 +28,6 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
@@ -32,8 +32,14 @@ BASE_FEATURE(kExternalNavigationDebugLogs, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
&kExternalNavigationDebugLogs, &kBlockIntentsToSelf,
|
BASE_FEATURE(kNavigationCaptureRefactorAndroid,
|
||||||
&kNavigationCaptureRefactorAndroid, &kAuxiliaryNavigationStaysInBrowser,
|
|
||||||
&kReparentTopLevelNavigationFromPWA, &kReparentAuxiliaryNavigationFromPWA};
|
|
||||||
-
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
// Alphabetical:
|
|
||||||
@@ -57,7 +56,13 @@ BASE_FEATURE(kReparentAuxiliaryNavigationFromPWA,
|
|
||||||
"ReparentAuxiliaryNavigationFromPWA",
|
|
||||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
|
|
||||||
+CROMITE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture,
|
+CROMITE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture,
|
||||||
+ "IntentBlockExternalFormRedirectsNoGesture",
|
+ "IntentBlockExternalFormRedirectsNoGesture",
|
||||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||||
+
|
+
|
||||||
static jlong JNI_ExternalIntentsFeatures_GetFeature(JNIEnv* env, jint ordinal) {
|
static int64_t JNI_ExternalIntentsFeatures_GetFeature(JNIEnv* env,
|
||||||
|
int32_t ordinal) {
|
||||||
+ if (ordinal == -1)
|
+ if (ordinal == -1)
|
||||||
+ return reinterpret_cast<jlong>(&kIntentBlockExternalFormRedirectsNoGesture);
|
+ return reinterpret_cast<int64_t>(&kIntentBlockExternalFormRedirectsNoGesture);
|
||||||
return reinterpret_cast<jlong>(kFeaturesExposedToJava[ordinal]);
|
return reinterpret_cast<int64_t>(
|
||||||
|
UNSAFE_TODO(kFeaturesExposedToJava[ordinal]));
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/components/external_intents/android/external_intents_features.h b/components/external_intents/android/external_intents_features.h
|
diff --git a/components/external_intents/android/external_intents_features.h b/components/external_intents/android/external_intents_features.h
|
||||||
--- a/components/external_intents/android/external_intents_features.h
|
--- a/components/external_intents/android/external_intents_features.h
|
||||||
+++ b/components/external_intents/android/external_intents_features.h
|
+++ b/components/external_intents/android/external_intents_features.h
|
||||||
@@ -173,7 +175,7 @@ diff --git a/components/external_intents/android/external_intents_features.h b/c
|
|||||||
+BASE_DECLARE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture);
|
+BASE_DECLARE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture);
|
||||||
BASE_DECLARE_FEATURE(kExternalNavigationDebugLogs);
|
BASE_DECLARE_FEATURE(kExternalNavigationDebugLogs);
|
||||||
BASE_DECLARE_FEATURE(kBlockFrameRenavigations);
|
BASE_DECLARE_FEATURE(kBlockFrameRenavigations);
|
||||||
BASE_DECLARE_FEATURE(kBlockIntentsToSelf);
|
BASE_DECLARE_FEATURE(kNavigationCaptureRefactorAndroid);
|
||||||
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java
|
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java
|
||||||
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java
|
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java
|
||||||
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java
|
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java
|
||||||
@@ -188,13 +190,13 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component
|
|||||||
+ new ExternalIntentsFeature(-1, INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE_NAME);
|
+ new ExternalIntentsFeature(-1, INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE_NAME);
|
||||||
+
|
+
|
||||||
public static final String EXTERNAL_NAVIGATION_DEBUG_LOGS_NAME = "ExternalNavigationDebugLogs";
|
public static final String EXTERNAL_NAVIGATION_DEBUG_LOGS_NAME = "ExternalNavigationDebugLogs";
|
||||||
public static final String BLOCK_INTENTS_TO_SELF_NAME = "BlockIntentsToSelf";
|
|
||||||
public static final String NAVIGATION_CAPTURE_REFACTOR_ANDROID_NAME =
|
public static final String NAVIGATION_CAPTURE_REFACTOR_ANDROID_NAME =
|
||||||
|
"NavigationCaptureRefactorAndroid";
|
||||||
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
|
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
|
||||||
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
|
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
|
||||||
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
|
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
|
||||||
@@ -1560,6 +1560,12 @@ public class ExternalNavigationHandler {
|
@@ -1793,6 +1793,12 @@ public class ExternalNavigationHandler implements ExternalNavigationHelper {
|
||||||
|| ignoreBackForwardNav(params);
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ /** Wrapper of check against the feature to support overriding for testing. */
|
+ /** Wrapper of check against the feature to support overriding for testing. */
|
||||||
@@ -206,7 +208,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component
|
|||||||
private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal(
|
private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal(
|
||||||
ExternalNavigationParams params,
|
ExternalNavigationParams params,
|
||||||
Intent targetIntent,
|
Intent targetIntent,
|
||||||
@@ -1617,6 +1623,21 @@ public class ExternalNavigationHandler {
|
@@ -1880,6 +1886,21 @@ public class ExternalNavigationHandler implements ExternalNavigationHelper {
|
||||||
return OverrideUrlLoadingResult.forNoOverride();
|
return OverrideUrlLoadingResult.forNoOverride();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
|
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
|
||||||
--- a/content/child/runtime_features.cc
|
--- a/content/child/runtime_features.cc
|
||||||
+++ b/content/child/runtime_features.cc
|
+++ b/content/child/runtime_features.cc
|
||||||
@@ -104,6 +104,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
|
@@ -82,6 +82,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
|
||||||
if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) {
|
if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) {
|
||||||
WebRuntimeFeatures::EnableMediaSession(false);
|
WebRuntimeFeatures::EnableMediaSession(false);
|
||||||
}
|
}
|
||||||
@@ -59,14 +59,14 @@ new file mode 100644
|
|||||||
diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
|
diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
|
||||||
--- a/third_party/blink/public/platform/web_runtime_features.h
|
--- a/third_party/blink/public/platform/web_runtime_features.h
|
||||||
+++ b/third_party/blink/public/platform/web_runtime_features.h
|
+++ b/third_party/blink/public/platform/web_runtime_features.h
|
||||||
@@ -71,6 +71,7 @@ class BLINK_PLATFORM_EXPORT WebRuntimeFeatures : public WebRuntimeFeaturesBase {
|
@@ -70,6 +70,7 @@ class BLINK_PLATFORM_EXPORT WebRuntimeFeatures : public WebRuntimeFeaturesBase {
|
||||||
static void EnableFingerprintingCanvasImageDataNoise(bool);
|
static void EnableFingerprintingCanvasImageDataNoise(bool);
|
||||||
static void EnableFluentScrollbars(bool);
|
static void EnableFluentScrollbars(bool);
|
||||||
static void EnableFluentOverlayScrollbars(bool);
|
static void EnableDesktopAndroidScrollbars(bool);
|
||||||
+ static void EnableVibration(bool);
|
+ static void EnableVibration(bool);
|
||||||
|
|
||||||
WebRuntimeFeatures() = delete;
|
static void EnableLocalNetworkAccessWebRTC(bool);
|
||||||
};
|
|
||||||
diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.cc b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
|
diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.cc b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
|
||||||
--- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc
|
--- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc
|
||||||
+++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
|
+++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
|
||||||
@@ -104,7 +104,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c
|
|||||||
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
@@ -987,6 +987,10 @@
|
@@ -1242,6 +1242,10 @@
|
||||||
{
|
{
|
||||||
name: "CompositingDecisionAtAnimationPhaseBoundaries"
|
name: "CompositingDecisionAtAnimationPhaseBoundaries"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,41 +7,44 @@ Allows build with clangd by suppressing unsupported parameters
|
|||||||
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
build/config/compiler/BUILD.gn | 14 +++++++++++---
|
build/config/compiler/BUILD.gn | 17 ++++++++++++++---
|
||||||
build_overrides/build.gni | 3 +++
|
build_overrides/build.gni | 5 +++++
|
||||||
2 files changed, 14 insertions(+), 3 deletions(-)
|
2 files changed, 19 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
||||||
--- a/build/config/compiler/BUILD.gn
|
--- a/build/config/compiler/BUILD.gn
|
||||||
+++ b/build/config/compiler/BUILD.gn
|
+++ b/build/config/compiler/BUILD.gn
|
||||||
@@ -640,7 +640,7 @@ config("compiler") {
|
@@ -681,7 +681,7 @@ config("compiler") {
|
||||||
# Enable ELF CREL (see crbug.com/357878242) for all platforms that use ELF
|
|
||||||
# (excluding toolchains that use an older version of LLVM).
|
|
||||||
# TODO(crbug.com/376278218): This causes segfault on Linux ARM builds.
|
# TODO(crbug.com/376278218): This causes segfault on Linux ARM builds.
|
||||||
- if (is_linux && use_lld && !llvm_android_mainline && current_cpu != "arm" &&
|
# It also causes segfault on Linux s390x:
|
||||||
+ if (is_linux && !skip_clangd_unsupported_options && use_lld && !llvm_android_mainline && current_cpu != "arm" &&
|
# https://github.com/llvm/llvm-project/issues/149511
|
||||||
default_toolchain != "//build/toolchain/cros:target") {
|
- if (is_linux && use_lld && current_cpu != "arm" && current_cpu != "s390x") {
|
||||||
|
+ if (is_linux && !skip_clangd_unsupported_options && use_lld && current_cpu != "arm" && current_cpu != "s390x") {
|
||||||
cflags += [ "-Wa,--crel,--allow-experimental-crel" ]
|
cflags += [ "-Wa,--crel,--allow-experimental-crel" ]
|
||||||
}
|
}
|
||||||
@@ -1784,7 +1784,7 @@ config("clang_revision") {
|
}
|
||||||
|
@@ -1886,7 +1886,7 @@ config("clang_revision") {
|
||||||
|
# e.g. by setting in the the project's .gn file.
|
||||||
config("clang_warning_suppression") {
|
config("clang_warning_suppression") {
|
||||||
# Some build configs use older versions of clang that don't support WSMs
|
# Some build configs use older versions of clang that don't support WSMs
|
||||||
if (!is_nacl && default_toolchain != "//build/toolchain/cros:target" &&
|
- if (use_clang_warning_suppression_file) {
|
||||||
- !llvm_android_mainline && is_clang &&
|
+ if (use_clang_warning_suppression_file && !skip_clangd_unsupported_options) {
|
||||||
+ !llvm_android_mainline && is_clang && !skip_clangd_unsupported_options &&
|
|
||||||
clang_warning_suppression_file != "") {
|
|
||||||
from_build_root =
|
from_build_root =
|
||||||
rebase_path(clang_warning_suppression_file, root_build_dir)
|
rebase_path(clang_warning_suppression_file, root_build_dir)
|
||||||
@@ -2146,7 +2146,6 @@ config("default_warnings") {
|
inputs = [ clang_warning_suppression_file ]
|
||||||
# TODO(crbug.com/376641662): Fix and re-enable.
|
@@ -2283,7 +2283,9 @@ config("default_warnings") {
|
||||||
"-Wno-nontrivial-memcall",
|
# TODO(crbug.com/432275627): Fix and re-enable.
|
||||||
]
|
"-Wno-uninitialized-const-pointer",
|
||||||
|
]
|
||||||
-
|
-
|
||||||
cflags_cc += [
|
+ if (skip_clangd_unsupported_options) {
|
||||||
# TODO(crbug.com/328490295): Fix and re-enable for C flags.
|
+ cflags -= [ "-Wno-uninitialized-const-pointer" ]
|
||||||
"-Wenum-compare-conditional",
|
+ }
|
||||||
@@ -2187,6 +2186,15 @@ config("default_warnings") {
|
cflags_cc += [
|
||||||
]
|
# TODO(crbug.com/328490295): Fix and re-enable for C flags.
|
||||||
|
"-Wenum-compare-conditional",
|
||||||
|
@@ -2337,6 +2339,15 @@ config("default_warnings") {
|
||||||
|
ldflags += [ "-Wno-version-check" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if (skip_clangd_unsupported_options) {
|
+ if (skip_clangd_unsupported_options) {
|
||||||
@@ -59,14 +62,16 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
|||||||
diff --git a/build_overrides/build.gni b/build_overrides/build.gni
|
diff --git a/build_overrides/build.gni b/build_overrides/build.gni
|
||||||
--- a/build_overrides/build.gni
|
--- a/build_overrides/build.gni
|
||||||
+++ b/build_overrides/build.gni
|
+++ b/build_overrides/build.gni
|
||||||
@@ -62,6 +62,9 @@ declare_args() {
|
@@ -54,6 +54,11 @@ declare_args() {
|
||||||
# to lack of toolchain support.
|
gtest_enable_absl_printers = true
|
||||||
gtest_enable_absl_printers = !is_nacl
|
}
|
||||||
|
|
||||||
|
+declare_args() {
|
||||||
+ # Allows clangd builds by suppressing unsupported parameters
|
+ # Allows clangd builds by suppressing unsupported parameters
|
||||||
+ skip_clangd_unsupported_options = false
|
+ skip_clangd_unsupported_options = false
|
||||||
|
+}
|
||||||
+
|
+
|
||||||
# Allow projects that wish to stay on C++17 to override Chromium's default.
|
# Features used by //base/trace_event.
|
||||||
# TODO(crbug.com/40251117): evaluate removing this end of 2023
|
declare_args() {
|
||||||
use_cxx17 = false
|
# Use Perfetto's trace processor for converting protobuf-encoded traces to
|
||||||
--
|
--
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -4,8 +4,9 @@ Subject: Add menu item to bookmark all tabs
|
|||||||
|
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
chrome/android/java/res/menu/main_menu.xml | 7 +++
|
chrome/android/java/res/values/ids.xml | 1 +
|
||||||
.../chrome/browser/ChromeTabbedActivity.java | 43 +++++++++++++++++++
|
.../chrome/browser/ChromeTabbedActivity.java | 43 +++++++++++++++++++
|
||||||
|
.../TabbedAppMenuPropertiesDelegate.java | 15 +++++++
|
||||||
.../bookmarks/android/bookmark_bridge.cc | 42 ++++++++++++++++++
|
.../bookmarks/android/bookmark_bridge.cc | 42 ++++++++++++++++++
|
||||||
.../bookmarks/android/bookmark_bridge.h | 8 ++++
|
.../bookmarks/android/bookmark_bridge.h | 8 ++++
|
||||||
.../browser/bookmarks/BookmarkBridge.java | 41 ++++++++++++++++++
|
.../browser/bookmarks/BookmarkBridge.java | 41 ++++++++++++++++++
|
||||||
@@ -13,53 +14,40 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
.../bookmarks/bookmark_parent_folder.cc | 1 +
|
.../bookmarks/bookmark_parent_folder.cc | 1 +
|
||||||
.../permanent_folder_ordering_tracker.cc | 2 +
|
.../permanent_folder_ordering_tracker.cc | 2 +
|
||||||
.../dialogs/DownloadLocationCustomView.java | 4 +-
|
.../dialogs/DownloadLocationCustomView.java | 4 +-
|
||||||
.../strings/android_chrome_strings.grd | 3 ++
|
.../strings/android_chrome_strings.grd | 6 +--
|
||||||
.../bookmark_ui_operations_helper.cc | 2 +
|
.../bookmark_ui_operations_helper.cc | 2 +
|
||||||
|
.../bookmark_bar_page_handler.cc | 2 +
|
||||||
components/bookmark_bar_strings.grdp | 6 +++
|
components/bookmark_bar_strings.grdp | 6 +++
|
||||||
.../bookmarks/browser/bookmark_codec.cc | 20 +++++++--
|
.../bookmarks/browser/bookmark_codec.cc | 14 +++++-
|
||||||
components/bookmarks/browser/bookmark_codec.h | 7 ++-
|
components/bookmarks/browser/bookmark_codec.h | 4 ++
|
||||||
.../browser/bookmark_load_details.cc | 15 +++++--
|
.../browser/bookmark_load_details.cc | 15 +++++--
|
||||||
.../bookmarks/browser/bookmark_load_details.h | 2 +
|
.../bookmarks/browser/bookmark_load_details.h | 2 +
|
||||||
.../bookmarks/browser/bookmark_model.cc | 3 +-
|
.../bookmarks/browser/bookmark_model.cc | 3 +-
|
||||||
components/bookmarks/browser/bookmark_model.h | 7 +++
|
components/bookmarks/browser/bookmark_model.h | 8 ++++
|
||||||
components/bookmarks/browser/bookmark_node.cc | 13 ++++++
|
components/bookmarks/browser/bookmark_node.cc | 13 ++++++
|
||||||
components/bookmarks/browser/bookmark_node.h | 4 ++
|
components/bookmarks/browser/bookmark_node.h | 4 ++
|
||||||
.../bookmarks/browser/bookmark_storage.cc | 2 +
|
.../bookmarks/browser/bookmark_storage.cc | 2 +
|
||||||
.../bookmarks/browser/bookmark_uuids.cc | 3 ++
|
.../bookmarks/browser/bookmark_uuids.cc | 3 ++
|
||||||
components/bookmarks/browser/bookmark_uuids.h | 1 +
|
components/bookmarks/browser/bookmark_uuids.h | 1 +
|
||||||
components/bookmarks/browser/model_loader.cc | 9 +++-
|
components/bookmarks/browser/model_loader.cc | 9 +++-
|
||||||
...ookmark_model_merger_comparison_metrics.cc | 4 ++
|
|
||||||
.../bookmark_specifics_conversions.cc | 1 +
|
.../bookmark_specifics_conversions.cc | 1 +
|
||||||
26 files changed, 250 insertions(+), 14 deletions(-)
|
27 files changed, 252 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
|
diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml
|
||||||
--- a/chrome/android/java/res/menu/main_menu.xml
|
--- a/chrome/android/java/res/values/ids.xml
|
||||||
+++ b/chrome/android/java/res/menu/main_menu.xml
|
+++ b/chrome/android/java/res/values/ids.xml
|
||||||
@@ -77,6 +77,10 @@ found in the LICENSE file.
|
@@ -206,6 +206,7 @@ found in the LICENSE file.
|
||||||
<item android:id="@+id/all_bookmarks_menu_id"
|
<item type="id" name="duplicate_tab_menu_id" />
|
||||||
android:title="@string/menu_bookmarks"
|
<item type="id" name="glic_menu_id" />
|
||||||
android:icon="@drawable/btn_star_filled" />
|
<item type="id" name="open_in_app_menu_id" />
|
||||||
+ <item android:id="@+id/bookmark_all_tabs_menu_id"
|
+ <item type="id" name="bookmark_all_tabs_menu_id" />
|
||||||
+ android:title="@string/menu_bookmark_all_tabs"
|
|
||||||
+ android:titleCondensed="@string/menu_bookmark_all_tabs"
|
<!-- Custom Tabs -->
|
||||||
+ android:icon="@drawable/ic_folder_blue_24dp" />
|
<item type="id" name="view_id_tag_key" />
|
||||||
<item android:id="@+id/recent_tabs_menu_id"
|
|
||||||
android:title="@string/menu_recent_tabs"
|
|
||||||
android:icon="@drawable/devices_black_24dp" />
|
|
||||||
@@ -207,6 +211,9 @@ found in the LICENSE file.
|
|
||||||
<item android:id="@id/tinker_tank_menu_id"
|
|
||||||
android:title="@string/menu_tinker_tank"
|
|
||||||
android:icon="@drawable/ic_add_box_rounded_corner" />
|
|
||||||
+ <item android:id="@+id/bookmark_all_tabs_menu_id"
|
|
||||||
+ android:title="@string/menu_bookmark_all_tabs"
|
|
||||||
+ android:icon="@drawable/ic_folder_blue_24dp" />
|
|
||||||
<item android:id="@+id/menu_select_tabs"
|
|
||||||
android:title="@string/menu_select_tabs"
|
|
||||||
android:icon="@drawable/ic_select_check_box_24dp" />
|
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
@@ -103,6 +103,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane;
|
@@ -114,6 +114,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane;
|
||||||
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
|
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
|
||||||
import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
|
import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
|
||||||
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
|
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
|
||||||
@@ -67,35 +55,35 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||||||
import org.chromium.chrome.browser.compositor.layouts.Layout;
|
import org.chromium.chrome.browser.compositor.layouts.Layout;
|
||||||
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
|
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
|
||||||
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
|
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
|
||||||
@@ -275,6 +276,9 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate;
|
@@ -333,6 +334,9 @@ import org.chromium.chrome.browser.ui.browser_window.BrowserWindowType;
|
||||||
import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils;
|
import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils;
|
||||||
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
|
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
|
||||||
import org.chromium.chrome.browser.ui.extensions.ExtensionKeybindingRegistry;
|
import org.chromium.chrome.browser.ui.edge_to_edge.TransitiveTopInsetProvider;
|
||||||
+import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
|
+import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
|
||||||
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
|
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
|
||||||
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController;
|
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController;
|
||||||
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient;
|
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient;
|
||||||
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin;
|
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin;
|
||||||
import org.chromium.chrome.browser.ui.signin.BottomSheetSigninAndHistorySyncConfig;
|
import org.chromium.chrome.browser.ui.signin.BottomSheetSigninAndHistorySyncConfig;
|
||||||
@@ -284,6 +288,8 @@ import org.chromium.chrome.browser.undo_tab_close_snackbar.UndoBarController;
|
@@ -350,6 +354,8 @@ import org.chromium.chrome.browser.util.ChromeAccessibilityUtil;
|
||||||
import org.chromium.chrome.browser.usage_stats.UsageStatsService;
|
import org.chromium.chrome.browser.util.DefaultBrowserInfo;
|
||||||
import org.chromium.chrome.browser.util.ChromeAccessibilityUtil;
|
import org.chromium.chrome.browser.xr.scenecore.XrModule;
|
||||||
import org.chromium.chrome.browser.xr.XrLayoutStateObserver;
|
import org.chromium.components.browser_ui.accessibility.AccessibilityFeatureMap;
|
||||||
+import org.chromium.components.bookmarks.BookmarkId;
|
+import org.chromium.components.bookmarks.BookmarkId;
|
||||||
+import org.chromium.components.bookmarks.BookmarkItem;
|
+import org.chromium.components.bookmarks.BookmarkItem;
|
||||||
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
|
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
|
||||||
import org.chromium.components.browser_ui.edge_to_edge.SystemBarColorHelper;
|
import org.chromium.components.browser_ui.share.ShareParams;
|
||||||
import org.chromium.components.browser_ui.edge_to_edge.TabbedSystemBarColorHelper;
|
import org.chromium.components.browser_ui.util.BrowserControlsVisibilityDelegate;
|
||||||
@@ -3394,6 +3400,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
|
@@ -4188,6 +4194,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
|
||||||
getTabModelSelectorSupplier().get(),
|
CloseAllTabsDialog.show(
|
||||||
closeAllTabsRunnable);
|
this, getModalDialogManagerSupplier(), tabModelSelector, closeAllTabsRunnable);
|
||||||
RecordUserAction.record("MobileMenuCloseAllTabs");
|
RecordUserAction.record("MobileMenuCloseAllTabs");
|
||||||
+ } else if (id == R.id.bookmark_all_tabs_menu_id) {
|
+ } else if (id == R.id.bookmark_all_tabs_menu_id) {
|
||||||
+ bookmarkAllTabs();
|
+ bookmarkAllTabs();
|
||||||
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
|
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
|
||||||
boolean allowUndo = TabClosureParamsUtils.shouldAllowUndo(triggeringMotion);
|
boolean allowUndo = TabClosureParamsUtils.shouldAllowUndo(triggeringMotion);
|
||||||
|
|
||||||
@@ -3502,6 +3510,41 @@ public class ChromeTabbedActivity extends ChromeActivity {
|
@@ -4335,6 +4343,41 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
|
||||||
getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus);
|
getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,17 +125,49 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||||||
private void recordLauncherShortcutAction(boolean isIncognito) {
|
private void recordLauncherShortcutAction(boolean isIncognito) {
|
||||||
if (isIncognito) {
|
if (isIncognito) {
|
||||||
RecordUserAction.record("Android.LauncherShortcut.NewIncognitoTab");
|
RecordUserAction.record("Android.LauncherShortcut.NewIncognitoTab");
|
||||||
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
||||||
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
||||||
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
||||||
|
@@ -328,6 +328,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
|
||||||
|
// Bookmarks
|
||||||
|
modelList.add(buildBookmarksItem());
|
||||||
|
|
||||||
|
+ // Add bookmark all item
|
||||||
|
+ modelList.add(new MVCListAdapter.ListItem(
|
||||||
|
+ AppMenuHandler.AppMenuItemType.STANDARD,
|
||||||
|
+ buildModelForStandardMenuItem(
|
||||||
|
+ R.id.bookmark_all_tabs_menu_id,
|
||||||
|
+ R.string.menu_bookmark_all_tabs,
|
||||||
|
+ shouldShowIconBeforeItem() ? R.drawable.ic_folder_blue_24dp : 0)));
|
||||||
|
+
|
||||||
|
// Recent Tabs
|
||||||
|
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.SUBMENUS_IN_APP_MENU)
|
||||||
|
&& shouldShowRecentTabsItem()) {
|
||||||
|
@@ -551,6 +559,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
|
||||||
|
modelList.add(buildNewTabGroupItem());
|
||||||
|
modelList.add(buildCloseAllTabsItem());
|
||||||
|
if (shouldShowSelectTabsItem()) modelList.add(buildSelectTabsItem());
|
||||||
|
+ // Add bookmark all item
|
||||||
|
+ modelList.add(new MVCListAdapter.ListItem(
|
||||||
|
+ AppMenuHandler.AppMenuItemType.STANDARD,
|
||||||
|
+ buildModelForStandardMenuItem(
|
||||||
|
+ R.id.bookmark_all_tabs_menu_id,
|
||||||
|
+ R.string.menu_bookmark_all_tabs,
|
||||||
|
+ shouldShowIconBeforeItem() ? R.drawable.ic_folder_blue_24dp : 0)));
|
||||||
|
if (shouldShowQuickDeleteItem()) modelList.add(buildQuickDeleteItem());
|
||||||
|
modelList.add(buildSettingsItem());
|
||||||
|
}
|
||||||
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
||||||
--- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
--- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
||||||
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
||||||
@@ -390,6 +390,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) {
|
@@ -337,6 +337,33 @@ bool BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) {
|
||||||
return bookmark_model_->account_mobile_node() != nullptr;
|
return bookmark_model_->account_mobile_node() != nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
+base::android::ScopedJavaLocalRef<jobject>
|
+base::android::ScopedJavaLocalRef<jobject>
|
||||||
+BookmarkBridge::GetBookmarkIdForTabsCollection(
|
+BookmarkBridge::GetBookmarkIdForTabsCollection(
|
||||||
+ JNIEnv* env,
|
+ JNIEnv* env,
|
||||||
+ const JavaParamRef<jobject>& url) {
|
+ const JavaRef<jobject>& url) {
|
||||||
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||||
+
|
+
|
||||||
+ GURL gurl = url::GURLAndroid::ToNativeGURL(env, url);
|
+ GURL gurl = url::GURLAndroid::ToNativeGURL(env, url);
|
||||||
@@ -174,7 +194,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
|||||||
base::android::ScopedJavaLocalRef<jobject>
|
base::android::ScopedJavaLocalRef<jobject>
|
||||||
BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env,
|
BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env,
|
||||||
const GURL& url) {
|
const GURL& url) {
|
||||||
@@ -502,6 +529,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
|
@@ -448,6 +475,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
|
||||||
// Vector to temporarily contain all child bookmarks at same level for sorting
|
// Vector to temporarily contain all child bookmarks at same level for sorting
|
||||||
std::vector<const BookmarkNode*> bookmarks = {
|
std::vector<const BookmarkNode*> bookmarks = {
|
||||||
bookmark_model_->mobile_node(),
|
bookmark_model_->mobile_node(),
|
||||||
@@ -182,7 +202,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
|||||||
bookmark_model_->bookmark_bar_node(),
|
bookmark_model_->bookmark_bar_node(),
|
||||||
bookmark_model_->other_node(),
|
bookmark_model_->other_node(),
|
||||||
};
|
};
|
||||||
@@ -610,6 +638,9 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
|
@@ -556,6 +584,9 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
|
||||||
top_level_folders.push_back(other_node);
|
top_level_folders.push_back(other_node);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -192,13 +212,13 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
|||||||
const BookmarkNode* reading_list_node =
|
const BookmarkNode* reading_list_node =
|
||||||
local_or_syncable_reading_list_manager_->GetRoot();
|
local_or_syncable_reading_list_manager_->GetRoot();
|
||||||
if (IsPermanentFolderVisible(
|
if (IsPermanentFolderVisible(
|
||||||
@@ -1337,6 +1368,17 @@ void BookmarkBridge::GetBookmarksOfType(
|
@@ -1223,6 +1254,17 @@ void BookmarkBridge::GetBookmarksOfType(
|
||||||
AddBookmarkNodesToBookmarkIdList(env, j_list, results);
|
AddBookmarkNodesToBookmarkIdList(env, j_list, results);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ScopedJavaLocalRef<jobject> BookmarkBridge::GetTabsCollectionFolderId(
|
+ScopedJavaLocalRef<jobject> BookmarkBridge::GetTabsCollectionFolderId(
|
||||||
+ JNIEnv* env,
|
+ JNIEnv* env,
|
||||||
+ const JavaParamRef<jobject>& obj) {
|
+ const JavaRef<jobject>& obj) {
|
||||||
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||||
+ const BookmarkNode* tabs_collection_node = bookmark_model_->tabs_collection_node();
|
+ const BookmarkNode* tabs_collection_node = bookmark_model_->tabs_collection_node();
|
||||||
+ ScopedJavaLocalRef<jobject> folder_id_obj =
|
+ ScopedJavaLocalRef<jobject> folder_id_obj =
|
||||||
@@ -209,32 +229,32 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
|||||||
+
|
+
|
||||||
ScopedJavaLocalRef<jobject> BookmarkBridge::AddFolder(
|
ScopedJavaLocalRef<jobject> BookmarkBridge::AddFolder(
|
||||||
JNIEnv* env,
|
JNIEnv* env,
|
||||||
const JavaParamRef<jobject>& j_parent_id_obj,
|
const JavaRef<jobject>& j_parent_id_obj,
|
||||||
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h
|
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h
|
||||||
--- a/chrome/browser/bookmarks/android/bookmark_bridge.h
|
--- a/chrome/browser/bookmarks/android/bookmark_bridge.h
|
||||||
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.h
|
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.h
|
||||||
@@ -106,6 +106,10 @@ class BookmarkBridge : public ProfileObserver,
|
@@ -105,6 +105,10 @@ class BookmarkBridge : public ProfileObserver,
|
||||||
|
|
||||||
jboolean AreAccountBookmarkFoldersActive(JNIEnv* env);
|
bool AreAccountBookmarkFoldersActive(JNIEnv* env);
|
||||||
|
|
||||||
+ base::android::ScopedJavaLocalRef<jobject> GetBookmarkIdForTabsCollection(
|
+ base::android::ScopedJavaLocalRef<jobject> GetBookmarkIdForTabsCollection(
|
||||||
+ JNIEnv* env,
|
+ JNIEnv* env,
|
||||||
+ const base::android::JavaParamRef<jobject>& url);
|
+ const base::android::JavaRef<jobject>& url);
|
||||||
+
|
+
|
||||||
base::android::ScopedJavaLocalRef<jobject>
|
base::android::ScopedJavaLocalRef<jobject>
|
||||||
GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url);
|
GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url);
|
||||||
const bookmarks::BookmarkNode* GetMostRecentlyAddedUserBookmarkIdForUrlImpl(
|
const bookmarks::BookmarkNode* GetMostRecentlyAddedUserBookmarkIdForUrlImpl(
|
||||||
@@ -250,6 +254,10 @@ class BookmarkBridge : public ProfileObserver,
|
@@ -232,6 +236,10 @@ class BookmarkBridge : public ProfileObserver,
|
||||||
const base::android::JavaParamRef<jobject>& j_list,
|
const base::android::JavaRef<jobject>& j_list,
|
||||||
jint type);
|
int32_t type);
|
||||||
|
|
||||||
+ base::android::ScopedJavaLocalRef<jobject> GetTabsCollectionFolderId(
|
+ base::android::ScopedJavaLocalRef<jobject> GetTabsCollectionFolderId(
|
||||||
+ JNIEnv* env,
|
+ JNIEnv* env,
|
||||||
+ const base::android::JavaParamRef<jobject>& obj);
|
+ const base::android::JavaRef<jobject>& obj);
|
||||||
+
|
+
|
||||||
base::android::ScopedJavaLocalRef<jobject> AddFolder(
|
base::android::ScopedJavaLocalRef<jobject> AddFolder(
|
||||||
JNIEnv* env,
|
JNIEnv* env,
|
||||||
const base::android::JavaParamRef<jobject>& j_parent_id_obj,
|
const base::android::JavaRef<jobject>& j_parent_id_obj,
|
||||||
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||||
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||||
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||||
@@ -279,7 +299,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
|
|||||||
/** Returns Id representing the special "other" folder from bookmark model. */
|
/** Returns Id representing the special "other" folder from bookmark model. */
|
||||||
public @Nullable BookmarkId getOtherFolderId() {
|
public @Nullable BookmarkId getOtherFolderId() {
|
||||||
ThreadUtils.assertOnUiThread();
|
ThreadUtils.assertOnUiThread();
|
||||||
@@ -898,6 +911,29 @@ class BookmarkBridge {
|
@@ -882,6 +895,29 @@ class BookmarkBridge {
|
||||||
.addToReadingList(mNativeBookmarkBridge, parentId, title, url);
|
.addToReadingList(mNativeBookmarkBridge, parentId, title, url);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -309,7 +329,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
|
|||||||
/**
|
/**
|
||||||
* Helper method to mark an item as read.
|
* Helper method to mark an item as read.
|
||||||
*
|
*
|
||||||
@@ -1115,6 +1151,9 @@ class BookmarkBridge {
|
@@ -1099,6 +1135,9 @@ class BookmarkBridge {
|
||||||
BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(
|
BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(
|
||||||
long nativeBookmarkBridge, @JniType("GURL") GURL url);
|
long nativeBookmarkBridge, @JniType("GURL") GURL url);
|
||||||
|
|
||||||
@@ -319,7 +339,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
|
|||||||
BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type);
|
BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type);
|
||||||
|
|
||||||
void getTopLevelFolderIds(
|
void getTopLevelFolderIds(
|
||||||
@@ -1136,6 +1175,8 @@ class BookmarkBridge {
|
@@ -1120,6 +1159,8 @@ class BookmarkBridge {
|
||||||
|
|
||||||
BookmarkId getRootFolderId(long nativeBookmarkBridge);
|
BookmarkId getRootFolderId(long nativeBookmarkBridge);
|
||||||
|
|
||||||
@@ -350,14 +370,14 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
|
|||||||
CHECK(!model->account_other_node());
|
CHECK(!model->account_other_node());
|
||||||
CHECK(!model->account_mobile_node());
|
CHECK(!model->account_mobile_node());
|
||||||
@@ -210,6 +211,9 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
@@ -210,6 +211,9 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||||
base::Value::Dict* mobile_folder_value = local_permanent_folders->FindDict(
|
base::DictValue* mobile_folder_value = local_permanent_folders->FindDict(
|
||||||
BookmarkCodec::kMobileBookmarkFolderNameKey);
|
BookmarkCodec::kMobileBookmarkFolderNameKey);
|
||||||
CHECK(mobile_folder_value);
|
CHECK(mobile_folder_value);
|
||||||
+ base::Value::Dict* tabs_collection_value =
|
+ base::DictValue* tabs_collection_value =
|
||||||
+ local_permanent_folders->FindDict(BookmarkCodec::kTabsBookmarkFolderNameKey);
|
+ local_permanent_folders->FindDict(BookmarkCodec::kTabsBookmarkFolderNameKey);
|
||||||
+ CHECK(tabs_collection_value);
|
+ CHECK(tabs_collection_value);
|
||||||
|
|
||||||
base::Value::Dict* account_permanent_folders =
|
base::DictValue* account_permanent_folders =
|
||||||
account_bookmarks_.FindDict(BookmarkCodec::kRootsKey);
|
account_bookmarks_.FindDict(BookmarkCodec::kRootsKey);
|
||||||
@@ -285,6 +289,10 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
@@ -285,6 +289,10 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||||
return bookmark_html_writer::Result::kCouldNotWriteNodes;
|
return bookmark_html_writer::Result::kCouldNotWriteNodes;
|
||||||
@@ -440,7 +460,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
|
|||||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
@@ -4541,6 +4541,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
@@ -4703,6 +4703,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||||
<message name="IDS_MENU_SELECT_TABS" desc="Menu item for bulk editing tabs. [CHAR_LIMIT=27]">
|
<message name="IDS_MENU_SELECT_TABS" desc="Menu item for bulk editing tabs. [CHAR_LIMIT=27]">
|
||||||
Select tabs
|
Select tabs
|
||||||
</message>
|
</message>
|
||||||
@@ -450,10 +470,20 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||||||
<message name="IDS_MENU_GET_IMAGE_DESCRIPTIONS" desc="Menu item to start getting alt text accessibility image labels/descriptions [CHAR_LIMIT=27]">
|
<message name="IDS_MENU_GET_IMAGE_DESCRIPTIONS" desc="Menu item to start getting alt text accessibility image labels/descriptions [CHAR_LIMIT=27]">
|
||||||
Get image descriptions
|
Get image descriptions
|
||||||
</message>
|
</message>
|
||||||
|
@@ -4742,9 +4745,6 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||||
|
<message name="IDS_MENU_REOPEN_CLOSED_GROUP" desc="Menu item for reopening the last closed tab group.">
|
||||||
|
Reopen closed group
|
||||||
|
</message>
|
||||||
|
- <message name="IDS_MENU_BOOKMARK_ALL_TABS" desc="Menu item for bookmarking all tabs.">
|
||||||
|
- Bookmark all tabs
|
||||||
|
- </message>
|
||||||
|
|
||||||
|
<!-- Bookmarks strings -->
|
||||||
|
<message name="IDS_BOOKMARKS" desc="Title of the bookmarks page, which shows a list of the user's bookmarks. [CHAR_LIMIT=18]">
|
||||||
diff --git a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc b/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc
|
diff --git a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc b/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc
|
||||||
--- a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc
|
--- a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc
|
||||||
+++ b/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc
|
+++ b/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc
|
||||||
@@ -104,6 +104,8 @@ ui::mojom::DragOperation BookmarkUIOperationsHelper::DropBookmarks(
|
@@ -114,6 +114,8 @@ ui::mojom::DragOperation BookmarkUIOperationsHelper::DropBookmarks(
|
||||||
if (is_reorder) {
|
if (is_reorder) {
|
||||||
base::UmaHistogramEnumeration("Bookmarks.ReorderDropTarget", target);
|
base::UmaHistogramEnumeration("Bookmarks.ReorderDropTarget", target);
|
||||||
switch (target_parent()->GetType()) {
|
switch (target_parent()->GetType()) {
|
||||||
@@ -462,6 +492,18 @@ diff --git a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc b/chro
|
|||||||
case bookmarks::BookmarkNode::URL:
|
case bookmarks::BookmarkNode::URL:
|
||||||
NOTREACHED();
|
NOTREACHED();
|
||||||
case bookmarks::BookmarkNode::FOLDER:
|
case bookmarks::BookmarkNode::FOLDER:
|
||||||
|
diff --git a/chrome/browser/ui/webui_browser/bookmark_bar_page_handler.cc b/chrome/browser/ui/webui_browser/bookmark_bar_page_handler.cc
|
||||||
|
--- a/chrome/browser/ui/webui_browser/bookmark_bar_page_handler.cc
|
||||||
|
+++ b/chrome/browser/ui/webui_browser/bookmark_bar_page_handler.cc
|
||||||
|
@@ -37,6 +37,8 @@ bookmark_bar::mojom::BookmarkType ConvertType(
|
||||||
|
return bookmark_bar::mojom::BookmarkType::OTHER_NODE;
|
||||||
|
case bookmarks::BookmarkNode::MOBILE:
|
||||||
|
return bookmark_bar::mojom::BookmarkType::MOBILE;
|
||||||
|
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
|
||||||
|
+ NOTREACHED();
|
||||||
|
}
|
||||||
|
NOTREACHED();
|
||||||
|
}
|
||||||
diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_strings.grdp
|
diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_strings.grdp
|
||||||
--- a/components/bookmark_bar_strings.grdp
|
--- a/components/bookmark_bar_strings.grdp
|
||||||
+++ b/components/bookmark_bar_strings.grdp
|
+++ b/components/bookmark_bar_strings.grdp
|
||||||
@@ -488,23 +530,23 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri
|
|||||||
diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc
|
diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc
|
||||||
--- a/components/bookmarks/browser/bookmark_codec.cc
|
--- a/components/bookmarks/browser/bookmark_codec.cc
|
||||||
+++ b/components/bookmarks/browser/bookmark_codec.cc
|
+++ b/components/bookmarks/browser/bookmark_codec.cc
|
||||||
@@ -36,6 +36,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar";
|
@@ -38,6 +38,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar";
|
||||||
const char BookmarkCodec::kOtherBookmarkFolderNameKey[] = "other";
|
const char BookmarkCodec::kOtherBookmarkFolderNameKey[] = "other";
|
||||||
// The value is left as 'synced' for historical reasons.
|
// The value is left as 'synced' for historical reasons.
|
||||||
const char BookmarkCodec::kMobileBookmarkFolderNameKey[] = "synced";
|
const char BookmarkCodec::kMobileBookmarkFolderNameKey[] = "synced";
|
||||||
+const char BookmarkCodec::kTabsBookmarkFolderNameKey[] = "tabs";
|
+const char BookmarkCodec::kTabsBookmarkFolderNameKey[] = "tabs";
|
||||||
const char BookmarkCodec::kVersionKey[] = "version";
|
const char BookmarkCodec::kVersionKey[] = "version";
|
||||||
const char BookmarkCodec::kChecksumKey[] = "checksum";
|
const char BookmarkCodec::kChecksumKey[] = "checksum";
|
||||||
const char BookmarkCodec::kIdKey[] = "id";
|
const char BookmarkCodec::kChecksumSHA256Key[] = "checksum_sha256";
|
||||||
@@ -73,6 +74,7 @@ base::Value::Dict BookmarkCodec::Encode(
|
@@ -97,6 +98,7 @@ BookmarkCodec::~BookmarkCodec() = default;
|
||||||
const BookmarkNode* bookmark_bar_node,
|
base::DictValue BookmarkCodec::Encode(const BookmarkNode* bookmark_bar_node,
|
||||||
const BookmarkNode* other_folder_node,
|
const BookmarkNode* other_folder_node,
|
||||||
const BookmarkNode* mobile_folder_node,
|
const BookmarkNode* mobile_folder_node,
|
||||||
+ const BookmarkNode* tabs_folder_node,
|
+ const BookmarkNode* tabs_folder_node,
|
||||||
std::string sync_metadata_str) {
|
std::string sync_metadata_str) {
|
||||||
ids_reassigned_ = false;
|
ids_reassigned_ = false;
|
||||||
uuids_reassigned_ = false;
|
uuids_reassigned_ = false;
|
||||||
@@ -98,6 +100,8 @@ base::Value::Dict BookmarkCodec::Encode(
|
@@ -122,6 +124,8 @@ base::DictValue BookmarkCodec::Encode(const BookmarkNode* bookmark_bar_node,
|
||||||
roots.Set(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node));
|
roots.Set(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node));
|
||||||
roots.Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node));
|
roots.Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node));
|
||||||
roots.Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node));
|
roots.Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node));
|
||||||
@@ -513,15 +555,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
|
|||||||
} else {
|
} else {
|
||||||
// No permanent node should have been provided.
|
// No permanent node should have been provided.
|
||||||
CHECK(!other_folder_node);
|
CHECK(!other_folder_node);
|
||||||
@@ -119,6 +123,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
|
@@ -142,6 +146,7 @@ bool BookmarkCodec::Decode(const base::DictValue& value,
|
||||||
BookmarkNode* bb_node,
|
BookmarkNode* bb_node,
|
||||||
BookmarkNode* other_folder_node,
|
BookmarkNode* other_folder_node,
|
||||||
BookmarkNode* mobile_folder_node,
|
BookmarkNode* mobile_folder_node,
|
||||||
+ BookmarkNode* tabs_folder_node,
|
+ BookmarkNode* tabs_folder_node,
|
||||||
int64_t* max_id,
|
int64_t* max_id,
|
||||||
std::string* sync_metadata_str) {
|
std::string* sync_metadata_str) {
|
||||||
const int64_t max_already_assigned_id =
|
if (sync_metadata_str) {
|
||||||
@@ -133,7 +138,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
|
@@ -154,13 +159,15 @@ bool BookmarkCodec::Decode(const base::DictValue& value,
|
||||||
base::Uuid::ParseLowercase(kBookmarkBarNodeUuid),
|
base::Uuid::ParseLowercase(kBookmarkBarNodeUuid),
|
||||||
base::Uuid::ParseLowercase(kOtherBookmarksNodeUuid),
|
base::Uuid::ParseLowercase(kOtherBookmarksNodeUuid),
|
||||||
base::Uuid::ParseLowercase(kMobileBookmarksNodeUuid),
|
base::Uuid::ParseLowercase(kMobileBookmarksNodeUuid),
|
||||||
@@ -530,41 +572,32 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
|
|||||||
+ base::Uuid::ParseLowercase(kTabsCollectionBookmarksNodeUuid)};
|
+ base::Uuid::ParseLowercase(kTabsCollectionBookmarksNodeUuid)};
|
||||||
ids_reassigned_ = false;
|
ids_reassigned_ = false;
|
||||||
uuids_reassigned_ = false;
|
uuids_reassigned_ = false;
|
||||||
ids_valid_ = true;
|
nodes_requiring_id_reassignment_.clear();
|
||||||
@@ -141,13 +147,14 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
|
reassigned_ids_per_old_id_.clear();
|
||||||
stored_checksum_.clear();
|
|
||||||
InitializeChecksum();
|
|
||||||
bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node,
|
bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node,
|
||||||
+ tabs_folder_node,
|
+ tabs_folder_node,
|
||||||
value, sync_metadata_str);
|
value, sync_metadata_str);
|
||||||
FinalizeChecksum();
|
ReassignIDsIfRequired();
|
||||||
// If either the checksums differ or some IDs were missing/not unique,
|
|
||||||
// reassign IDs.
|
@@ -218,6 +225,7 @@ base::DictValue BookmarkCodec::EncodeMetaInfo(
|
||||||
if (!ids_valid_ || computed_checksum_ != stored_checksum_) {
|
|
||||||
maximum_id_ = max_already_assigned_id;
|
|
||||||
- ReassignIDs(bb_node, other_folder_node, mobile_folder_node);
|
|
||||||
+ ReassignIDs(bb_node, other_folder_node, mobile_folder_node, tabs_folder_node);
|
|
||||||
}
|
|
||||||
*max_id = maximum_id_ + 1;
|
|
||||||
return success;
|
|
||||||
@@ -205,6 +212,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo(
|
|
||||||
bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||||
BookmarkNode* other_folder_node,
|
BookmarkNode* other_folder_node,
|
||||||
BookmarkNode* mobile_folder_node,
|
BookmarkNode* mobile_folder_node,
|
||||||
+ BookmarkNode* tabs_folder_node,
|
+ BookmarkNode* tabs_folder_node,
|
||||||
const base::Value::Dict& value,
|
const base::DictValue& value,
|
||||||
std::string* sync_metadata_str) {
|
std::string* sync_metadata_str) {
|
||||||
std::optional<int> version = value.FindInt(kVersionKey);
|
std::optional<int> version = value.FindInt(kVersionKey);
|
||||||
@@ -237,6 +245,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
@@ -240,6 +248,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||||
roots->FindDict(kOtherBookmarkFolderNameKey);
|
roots->FindDict(kOtherBookmarkFolderNameKey);
|
||||||
const base::Value::Dict* mobile_folder_value =
|
const base::DictValue* mobile_folder_value =
|
||||||
roots->FindDict(kMobileBookmarkFolderNameKey);
|
roots->FindDict(kMobileBookmarkFolderNameKey);
|
||||||
+ const base::Value::Dict* tabs_folder_value =
|
+ const base::DictValue* tabs_folder_value =
|
||||||
+ roots->FindDict(kTabsBookmarkFolderNameKey);
|
+ roots->FindDict(kTabsBookmarkFolderNameKey);
|
||||||
|
|
||||||
if (!bb_value || !other_folder_value || !mobile_folder_value)
|
if (!bb_value || !other_folder_value || !mobile_folder_value)
|
||||||
return false;
|
return false;
|
||||||
@@ -244,6 +254,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
@@ -247,6 +257,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||||
DecodeNode(*bb_value, nullptr, bb_node);
|
DecodeNode(*bb_value, nullptr, bb_node);
|
||||||
DecodeNode(*other_folder_value, nullptr, other_folder_node);
|
DecodeNode(*other_folder_value, nullptr, other_folder_node);
|
||||||
DecodeNode(*mobile_folder_value, nullptr, mobile_folder_node);
|
DecodeNode(*mobile_folder_value, nullptr, mobile_folder_node);
|
||||||
@@ -573,31 +606,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
|
|||||||
|
|
||||||
// Need to reset the title as the title is persisted and restored from
|
// Need to reset the title as the title is persisted and restored from
|
||||||
// the file.
|
// the file.
|
||||||
@@ -475,12 +487,14 @@ void BookmarkCodec::DecodeMetaInfoHelper(
|
|
||||||
|
|
||||||
void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node,
|
|
||||||
BookmarkNode* other_node,
|
|
||||||
- BookmarkNode* mobile_node) {
|
|
||||||
+ BookmarkNode* mobile_node,
|
|
||||||
+ BookmarkNode* tabs_folder_node) {
|
|
||||||
ids_.clear();
|
|
||||||
reassigned_ids_per_old_id_.clear();
|
|
||||||
ReassignIDsHelper(bb_node);
|
|
||||||
ReassignIDsHelper(other_node);
|
|
||||||
ReassignIDsHelper(mobile_node);
|
|
||||||
+ ReassignIDsHelper(tabs_folder_node);
|
|
||||||
ids_reassigned_ = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h
|
diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h
|
||||||
--- a/components/bookmarks/browser/bookmark_codec.h
|
--- a/components/bookmarks/browser/bookmark_codec.h
|
||||||
+++ b/components/bookmarks/browser/bookmark_codec.h
|
+++ b/components/bookmarks/browser/bookmark_codec.h
|
||||||
@@ -43,6 +43,7 @@ class BookmarkCodec {
|
@@ -43,6 +43,7 @@ class BookmarkCodec {
|
||||||
const BookmarkNode* bookmark_bar_node,
|
base::DictValue Encode(const BookmarkNode* bookmark_bar_node,
|
||||||
const BookmarkNode* other_folder_node,
|
const BookmarkNode* other_folder_node,
|
||||||
const BookmarkNode* mobile_folder_node,
|
const BookmarkNode* mobile_folder_node,
|
||||||
+ const BookmarkNode* tabs_folder_node,
|
+ const BookmarkNode* tabs_folder_node,
|
||||||
std::string sync_metadata_str);
|
std::string sync_metadata_str);
|
||||||
|
|
||||||
// Decodes the previously encoded value to the specified nodes as well as
|
// Decodes the previously encoded value to the specified nodes as well as
|
||||||
@@ -61,6 +62,7 @@ class BookmarkCodec {
|
@@ -61,6 +62,7 @@ class BookmarkCodec {
|
||||||
@@ -608,36 +625,26 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
|
|||||||
int64_t* max_node_id,
|
int64_t* max_node_id,
|
||||||
std::string* sync_metadata_str);
|
std::string* sync_metadata_str);
|
||||||
|
|
||||||
@@ -92,6 +94,7 @@ class BookmarkCodec {
|
@@ -94,6 +96,7 @@ class BookmarkCodec {
|
||||||
static const char kBookmarkBarFolderNameKey[];
|
static const char kBookmarkBarFolderNameKey[];
|
||||||
static const char kOtherBookmarkFolderNameKey[];
|
static const char kOtherBookmarkFolderNameKey[];
|
||||||
static const char kMobileBookmarkFolderNameKey[];
|
static const char kMobileBookmarkFolderNameKey[];
|
||||||
+ static const char kTabsBookmarkFolderNameKey[];
|
+ static const char kTabsBookmarkFolderNameKey[];
|
||||||
static const char kVersionKey[];
|
static const char kVersionKey[];
|
||||||
static const char kChecksumKey[];
|
static const char kChecksumKey[];
|
||||||
static const char kIdKey[];
|
static const char kChecksumSHA256Key[];
|
||||||
@@ -124,6 +127,7 @@ class BookmarkCodec {
|
@@ -127,6 +130,7 @@ class BookmarkCodec {
|
||||||
bool DecodeHelper(BookmarkNode* bb_node,
|
bool DecodeHelper(BookmarkNode* bb_node,
|
||||||
BookmarkNode* other_folder_node,
|
BookmarkNode* other_folder_node,
|
||||||
BookmarkNode* mobile_folder_node,
|
BookmarkNode* mobile_folder_node,
|
||||||
+ BookmarkNode* tabs_folder_node,
|
+ BookmarkNode* tabs_folder_node,
|
||||||
const base::Value::Dict& value,
|
const base::DictValue& value,
|
||||||
std::string* sync_metadata_str);
|
std::string* sync_metadata_str);
|
||||||
|
|
||||||
@@ -134,7 +138,8 @@ class BookmarkCodec {
|
|
||||||
// Reassigns bookmark IDs for all nodes.
|
|
||||||
void ReassignIDs(BookmarkNode* bb_node,
|
|
||||||
BookmarkNode* other_node,
|
|
||||||
- BookmarkNode* mobile_node);
|
|
||||||
+ BookmarkNode* mobile_node,
|
|
||||||
+ BookmarkNode* tabs_folder_node);
|
|
||||||
|
|
||||||
// Helper to recursively reassign IDs.
|
|
||||||
void ReassignIDsHelper(BookmarkNode* node);
|
|
||||||
diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/bookmarks/browser/bookmark_load_details.cc
|
diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/bookmarks/browser/bookmark_load_details.cc
|
||||||
--- a/components/bookmarks/browser/bookmark_load_details.cc
|
--- a/components/bookmarks/browser/bookmark_load_details.cc
|
||||||
+++ b/components/bookmarks/browser/bookmark_load_details.cc
|
+++ b/components/bookmarks/browser/bookmark_load_details.cc
|
||||||
@@ -16,7 +16,7 @@ namespace {
|
@@ -17,7 +17,7 @@ namespace {
|
||||||
|
|
||||||
// Number of top-level permanent folders excluding the managed node and account
|
// Number of top-level permanent folders excluding the managed node and account
|
||||||
// bookmarks.
|
// bookmarks.
|
||||||
@@ -646,7 +653,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/
|
|||||||
|
|
||||||
void UpdateUserFolderStatsRecursively(const BookmarkNode& node,
|
void UpdateUserFolderStatsRecursively(const BookmarkNode& node,
|
||||||
bool top_level,
|
bool top_level,
|
||||||
@@ -63,6 +63,9 @@ BookmarkLoadDetails::BookmarkLoadDetails()
|
@@ -64,6 +64,9 @@ BookmarkLoadDetails::BookmarkLoadDetails()
|
||||||
mobile_folder_node_ = static_cast<BookmarkPermanentNode*>(
|
mobile_folder_node_ = static_cast<BookmarkPermanentNode*>(
|
||||||
root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(
|
root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(
|
||||||
/*id=*/0, /*is_account_node=*/false)));
|
/*id=*/0, /*is_account_node=*/false)));
|
||||||
@@ -656,7 +663,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/
|
|||||||
|
|
||||||
// Set the nodes' `date_added` to the same time so that there is no inherent
|
// Set the nodes' `date_added` to the same time so that there is no inherent
|
||||||
// hierarchy in terms of their added time between them. This is relevant for
|
// hierarchy in terms of their added time between them. This is relevant for
|
||||||
@@ -119,6 +122,10 @@ void BookmarkLoadDetails::PopulateNodeIdsForLocalOrSyncablePermanentNodes() {
|
@@ -120,6 +123,10 @@ void BookmarkLoadDetails::PopulateNodeIdsForLocalOrSyncablePermanentNodes() {
|
||||||
if (mobile_folder_node_->id() == 0) {
|
if (mobile_folder_node_->id() == 0) {
|
||||||
mobile_folder_node_->set_id(max_id_++);
|
mobile_folder_node_->set_id(max_id_++);
|
||||||
}
|
}
|
||||||
@@ -667,7 +674,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/
|
|||||||
}
|
}
|
||||||
|
|
||||||
void BookmarkLoadDetails::AddManagedNode(
|
void BookmarkLoadDetails::AddManagedNode(
|
||||||
@@ -131,6 +138,7 @@ void BookmarkLoadDetails::AddManagedNode(
|
@@ -132,6 +139,7 @@ void BookmarkLoadDetails::AddManagedNode(
|
||||||
CHECK_NE(bb_node_->id(), 0);
|
CHECK_NE(bb_node_->id(), 0);
|
||||||
CHECK_NE(other_folder_node_->id(), 0);
|
CHECK_NE(other_folder_node_->id(), 0);
|
||||||
CHECK_NE(mobile_folder_node_->id(), 0);
|
CHECK_NE(mobile_folder_node_->id(), 0);
|
||||||
@@ -675,7 +682,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/
|
|||||||
|
|
||||||
has_managed_node_ = true;
|
has_managed_node_ = true;
|
||||||
root_node_->Add(std::move(managed_node));
|
root_node_->Add(std::move(managed_node));
|
||||||
@@ -138,8 +146,8 @@ void BookmarkLoadDetails::AddManagedNode(
|
@@ -139,8 +147,8 @@ void BookmarkLoadDetails::AddManagedNode(
|
||||||
|
|
||||||
void BookmarkLoadDetails::CreateIndices() {
|
void BookmarkLoadDetails::CreateIndices() {
|
||||||
local_or_syncable_uuid_index_.insert(root_node_.get());
|
local_or_syncable_uuid_index_.insert(root_node_.get());
|
||||||
@@ -686,7 +693,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/
|
|||||||
for (const auto& child : root_node_->children()) {
|
for (const auto& child : root_node_->children()) {
|
||||||
if (child.get() == account_bb_node_ ||
|
if (child.get() == account_bb_node_ ||
|
||||||
child.get() == account_other_folder_node_ ||
|
child.get() == account_other_folder_node_ ||
|
||||||
@@ -158,6 +166,7 @@ void BookmarkLoadDetails::ResetPermanentNodePointers() {
|
@@ -159,6 +167,7 @@ void BookmarkLoadDetails::ResetPermanentNodePointers() {
|
||||||
bb_node_ = nullptr;
|
bb_node_ = nullptr;
|
||||||
other_folder_node_ = nullptr;
|
other_folder_node_ = nullptr;
|
||||||
mobile_folder_node_ = nullptr;
|
mobile_folder_node_ = nullptr;
|
||||||
@@ -716,7 +723,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b
|
|||||||
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
|
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
|
||||||
--- a/components/bookmarks/browser/bookmark_model.cc
|
--- a/components/bookmarks/browser/bookmark_model.cc
|
||||||
+++ b/components/bookmarks/browser/bookmark_model.cc
|
+++ b/components/bookmarks/browser/bookmark_model.cc
|
||||||
@@ -908,7 +908,7 @@ bool BookmarkModel::HasUserCreatedBookmarksOrFolders() const {
|
@@ -946,7 +946,7 @@ bool BookmarkModel::HasUserCreatedBookmarksOrFolders() const {
|
||||||
(account_bookmark_bar_node_ &&
|
(account_bookmark_bar_node_ &&
|
||||||
!account_bookmark_bar_node_->children().empty()) ||
|
!account_bookmark_bar_node_->children().empty()) ||
|
||||||
(account_other_node_ && !account_other_node_->children().empty()) ||
|
(account_other_node_ && !account_other_node_->children().empty()) ||
|
||||||
@@ -725,7 +732,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool BookmarkModel::IsBookmarked(const GURL& url) const {
|
bool BookmarkModel::IsBookmarked(const GURL& url) const {
|
||||||
@@ -1240,6 +1240,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
|
@@ -1278,6 +1278,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
|
||||||
bookmark_bar_node_ = details->bb_node();
|
bookmark_bar_node_ = details->bb_node();
|
||||||
other_node_ = details->other_folder_node();
|
other_node_ = details->other_folder_node();
|
||||||
mobile_node_ = details->mobile_folder_node();
|
mobile_node_ = details->mobile_folder_node();
|
||||||
@@ -736,7 +743,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
|
|||||||
diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h
|
diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h
|
||||||
--- a/components/bookmarks/browser/bookmark_model.h
|
--- a/components/bookmarks/browser/bookmark_model.h
|
||||||
+++ b/components/bookmarks/browser/bookmark_model.h
|
+++ b/components/bookmarks/browser/bookmark_model.h
|
||||||
@@ -150,6 +150,12 @@ class BookmarkModel : public BookmarkUndoProvider,
|
@@ -149,6 +149,12 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||||
// bookmarks in the account storage).
|
// bookmarks in the account storage).
|
||||||
const BookmarkPermanentNode* account_mobile_node() const;
|
const BookmarkPermanentNode* account_mobile_node() const;
|
||||||
|
|
||||||
@@ -749,14 +756,15 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
|
|||||||
bool is_root_node(const BookmarkNode* node) const {
|
bool is_root_node(const BookmarkNode* node) const {
|
||||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||||
return node == root_;
|
return node == root_;
|
||||||
@@ -628,6 +634,7 @@ class BookmarkModel : public BookmarkUndoProvider,
|
@@ -633,6 +639,8 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||||
raw_ptr<BookmarkPermanentNode> account_bookmark_bar_node_ = nullptr;
|
nullptr;
|
||||||
raw_ptr<BookmarkPermanentNode> account_other_node_ = nullptr;
|
raw_ptr<BookmarkPermanentNode, AcrossTasksDanglingUntriaged> mobile_node_ =
|
||||||
raw_ptr<BookmarkPermanentNode> account_mobile_node_ = nullptr;
|
nullptr;
|
||||||
+ raw_ptr<BookmarkPermanentNode> tabs_collection_node_ = nullptr;
|
+ raw_ptr<BookmarkPermanentNode, AcrossTasksDanglingUntriaged> tabs_collection_node_ =
|
||||||
|
+ nullptr;
|
||||||
|
|
||||||
// The maximum ID assigned to the bookmark nodes in the model.
|
// Permanent nodes for account storage.
|
||||||
int64_t next_node_id_ = 1;
|
raw_ptr<BookmarkPermanentNode> account_bookmark_bar_node_ = nullptr;
|
||||||
diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc
|
diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc
|
||||||
--- a/components/bookmarks/browser/bookmark_node.cc
|
--- a/components/bookmarks/browser/bookmark_node.cc
|
||||||
+++ b/components/bookmarks/browser/bookmark_node.cc
|
+++ b/components/bookmarks/browser/bookmark_node.cc
|
||||||
@@ -811,7 +819,7 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
|
|||||||
diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc
|
diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc
|
||||||
--- a/components/bookmarks/browser/bookmark_storage.cc
|
--- a/components/bookmarks/browser/bookmark_storage.cc
|
||||||
+++ b/components/bookmarks/browser/bookmark_storage.cc
|
+++ b/components/bookmarks/browser/bookmark_storage.cc
|
||||||
@@ -45,6 +45,7 @@ base::Value::Dict EncodeModelToDict(
|
@@ -92,6 +92,7 @@ base::DictValue EncodeModelToDict(
|
||||||
case BookmarkStorage::kSelectLocalOrSyncableNodes:
|
case BookmarkStorage::kSelectLocalOrSyncableNodes:
|
||||||
return codec.Encode(
|
return codec.Encode(
|
||||||
model->bookmark_bar_node(), model->other_node(), model->mobile_node(),
|
model->bookmark_bar_node(), model->other_node(), model->mobile_node(),
|
||||||
@@ -819,7 +827,7 @@ diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookm
|
|||||||
model->client()->EncodeLocalOrSyncableBookmarkSyncMetadata());
|
model->client()->EncodeLocalOrSyncableBookmarkSyncMetadata());
|
||||||
case BookmarkStorage::kSelectAccountNodes:
|
case BookmarkStorage::kSelectAccountNodes:
|
||||||
// Either all permanent folders or none should exist.
|
// Either all permanent folders or none should exist.
|
||||||
@@ -61,6 +62,7 @@ base::Value::Dict EncodeModelToDict(
|
@@ -108,6 +109,7 @@ base::DictValue EncodeModelToDict(
|
||||||
return codec.Encode(model->account_bookmark_bar_node(),
|
return codec.Encode(model->account_bookmark_bar_node(),
|
||||||
model->account_other_node(),
|
model->account_other_node(),
|
||||||
model->account_mobile_node(),
|
model->account_mobile_node(),
|
||||||
@@ -854,61 +862,40 @@ diff --git a/components/bookmarks/browser/bookmark_uuids.h b/components/bookmark
|
|||||||
diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks/browser/model_loader.cc
|
diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks/browser/model_loader.cc
|
||||||
--- a/components/bookmarks/browser/model_loader.cc
|
--- a/components/bookmarks/browser/model_loader.cc
|
||||||
+++ b/components/bookmarks/browser/model_loader.cc
|
+++ b/components/bookmarks/browser/model_loader.cc
|
||||||
@@ -74,6 +74,9 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
|
@@ -255,6 +255,9 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
|
||||||
std::unique_ptr<BookmarkPermanentNode> account_mobile_folder_node =
|
std::unique_ptr<BookmarkPermanentNode> account_mobile_folder_node =
|
||||||
BookmarkPermanentNode::CreateMobileBookmarks(
|
BookmarkPermanentNode::CreateMobileBookmarks(0,
|
||||||
0, /*is_account_node=*/true);
|
/*is_account_node=*/true);
|
||||||
+ std::unique_ptr<BookmarkPermanentNode> tabs_collection_folder_node =
|
+ std::unique_ptr<BookmarkPermanentNode> tabs_collection_folder_node =
|
||||||
+ BookmarkPermanentNode::CreateTabsCollectionBookmarks(
|
+ BookmarkPermanentNode::CreateTabsCollectionBookmarks(
|
||||||
+ 0, /*is_account_node=*/true);
|
+ 0, /*is_account_node=*/true);
|
||||||
|
|
||||||
std::optional<base::Value::Dict> root_dict =
|
const base::expected<std::string, metrics::BookmarksFileLoadResult>
|
||||||
LoadFileToDict(account_file_path);
|
json_string = ReadFile(
|
||||||
@@ -81,7 +84,8 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
|
@@ -273,7 +276,8 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
|
||||||
if (root_dict.has_value() &&
|
} else if (codec.Decode(*root_dict, /*already_assigned_ids=*/{},
|
||||||
codec.Decode(*root_dict, /*already_assigned_ids=*/{},
|
account_bb_node.get(),
|
||||||
account_bb_node.get(), account_other_folder_node.get(),
|
account_other_folder_node.get(),
|
||||||
- account_mobile_folder_node.get(), &max_node_id,
|
- account_mobile_folder_node.get(), &max_node_id,
|
||||||
+ account_mobile_folder_node.get(),
|
+ account_mobile_folder_node.get(),
|
||||||
+ tabs_collection_folder_node.get(), &max_node_id,
|
+ tabs_collection_folder_node.get(), &max_node_id,
|
||||||
&sync_metadata_str)) {
|
&sync_metadata_str)) {
|
||||||
ids_assigned_to_account_nodes = codec.release_assigned_ids();
|
ids_assigned_to_account_nodes = codec.release_assigned_ids();
|
||||||
|
|
||||||
@@ -123,7 +127,8 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
|
@@ -360,7 +364,8 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
|
||||||
if (root_dict.has_value() &&
|
} else if (codec.Decode(*root_dict,
|
||||||
codec.Decode(*root_dict, std::move(ids_assigned_to_account_nodes),
|
std::move(ids_assigned_to_account_nodes),
|
||||||
details->bb_node(), details->other_folder_node(),
|
details->bb_node(), details->other_folder_node(),
|
||||||
- details->mobile_folder_node(), &max_node_id,
|
- details->mobile_folder_node(), &max_node_id,
|
||||||
+ details->mobile_folder_node(),
|
+ details->mobile_folder_node(),
|
||||||
+ details->tabs_collection_folder_node(), &max_node_id,
|
+ details->tabs_collection_folder_node(), &max_node_id,
|
||||||
&sync_metadata_str)) {
|
&sync_metadata_str)) {
|
||||||
details->set_local_or_syncable_sync_metadata_str(
|
details->set_local_or_syncable_sync_metadata_str(
|
||||||
std::move(sync_metadata_str));
|
std::move(sync_metadata_str));
|
||||||
diff --git a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc
|
|
||||||
--- a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc
|
|
||||||
+++ b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc
|
|
||||||
@@ -38,6 +38,7 @@ const char kOtherBookmarksTag[] = "other_bookmarks";
|
|
||||||
constexpr char16_t kBookmarkBarFolderName[] = u"__Bookmarks bar__";
|
|
||||||
constexpr char16_t kOtherBookmarksFolderName[] = u"__Other bookmarks__";
|
|
||||||
constexpr char16_t kMobileBookmarksFolderName[] = u"__Mobile bookmarks__";
|
|
||||||
+constexpr char16_t kTabsCollectionBookmarksFolderName[] = u"__Tabs collection__";
|
|
||||||
|
|
||||||
using RemoteForest = BookmarkModelMerger::RemoteForest;
|
|
||||||
using RemoteTreeNode = BookmarkModelMerger::RemoteTreeNode;
|
|
||||||
@@ -129,6 +130,9 @@ std::u16string_view GetBookmarkNodeTitle(const bookmarks::BookmarkNode* node) {
|
|
||||||
return kOtherBookmarksFolderName;
|
|
||||||
case bookmarks::BookmarkNode::MOBILE:
|
|
||||||
return kMobileBookmarksFolderName;
|
|
||||||
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
|
|
||||||
+ return kTabsCollectionBookmarksFolderName;
|
|
||||||
+
|
|
||||||
}
|
|
||||||
NOTREACHED();
|
|
||||||
}
|
|
||||||
diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc
|
diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc
|
||||||
--- a/components/sync_bookmarks/bookmark_specifics_conversions.cc
|
--- a/components/sync_bookmarks/bookmark_specifics_conversions.cc
|
||||||
+++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc
|
+++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc
|
||||||
@@ -442,6 +442,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode(
|
@@ -447,6 +447,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode(
|
||||||
case bookmarks::BookmarkNode::BOOKMARK_BAR:
|
case bookmarks::BookmarkNode::BOOKMARK_BAR:
|
||||||
case bookmarks::BookmarkNode::OTHER_NODE:
|
case bookmarks::BookmarkNode::OTHER_NODE:
|
||||||
case bookmarks::BookmarkNode::MOBILE:
|
case bookmarks::BookmarkNode::MOBILE:
|
||||||
|
|||||||
@@ -4,46 +4,30 @@ Subject: Add menu item to view source
|
|||||||
|
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
.../android/java/res/menu/custom_tabs_menu.xml | 3 +++
|
chrome/android/java/res/values/ids.xml | 1 +
|
||||||
chrome/android/java/res/menu/main_menu.xml | 3 +++
|
.../chrome/browser/ChromeTabbedActivity.java | 2 ++
|
||||||
.../chrome/browser/ChromeTabbedActivity.java | 2 ++
|
.../chrome/browser/app/ChromeActivity.java | 5 ++++
|
||||||
.../chrome/browser/app/ChromeActivity.java | 5 +++++
|
.../AppMenuPropertiesDelegateImpl.java | 24 +++++++++++++++++++
|
||||||
.../appmenu/AppMenuPropertiesDelegateImpl.java | 17 +++++++++++++++++
|
.../CustomTabAppMenuPropertiesDelegate.java | 3 +++
|
||||||
.../CustomTabAppMenuPropertiesDelegate.java | 2 +-
|
.../TabbedAppMenuPropertiesDelegate.java | 3 +++
|
||||||
.../TabbedAppMenuPropertiesDelegate.java | 6 +++---
|
.../strings/android_chrome_strings.grd | 4 ++++
|
||||||
.../android/strings/android_chrome_strings.grd | 4 ++++
|
7 files changed, 42 insertions(+)
|
||||||
8 files changed, 38 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml
|
||||||
--- a/chrome/android/java/res/menu/custom_tabs_menu.xml
|
--- a/chrome/android/java/res/values/ids.xml
|
||||||
+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
+++ b/chrome/android/java/res/values/ids.xml
|
||||||
@@ -73,6 +73,9 @@ found in the LICENSE file.
|
@@ -138,6 +138,7 @@ found in the LICENSE file.
|
||||||
<item android:id="@+id/universal_install"
|
<item type="id" name="update_menu_id" />
|
||||||
android:title="@string/menu_add_to_homescreen"
|
<item type="id" name="new_tab_menu_id" />
|
||||||
android:orderInCategory="2" />
|
<item type="id" name="new_incognito_tab_menu_id" />
|
||||||
+ <item android:id="@+id/view_source_id"
|
+ <item type="id" name="view_source_id" />
|
||||||
+ android:title="@string/view_source"
|
<item type="id" name="add_to_group_menu_id" />
|
||||||
+ android:orderInCategory="2" />
|
<item type="id" name="pin_tab_menu_id" />
|
||||||
<item android:id="@+id/open_webapk_id"
|
<item type="id" name="unpin_tab_menu_id" />
|
||||||
android:title="@string/menu_open_webapk"
|
|
||||||
android:orderInCategory="2" />
|
|
||||||
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
|
|
||||||
--- a/chrome/android/java/res/menu/main_menu.xml
|
|
||||||
+++ b/chrome/android/java/res/menu/main_menu.xml
|
|
||||||
@@ -131,6 +131,9 @@ found in the LICENSE file.
|
|
||||||
<item android:id="@+id/universal_install"
|
|
||||||
android:title="@string/menu_add_to_homescreen"
|
|
||||||
android:icon="@drawable/ic_add_to_home_screen" />
|
|
||||||
+ <item android:id="@+id/view_source_id"
|
|
||||||
+ android:title="@string/view_source"
|
|
||||||
+ android:icon="@drawable/ic_drive_document_24dp" />
|
|
||||||
<item android:id="@+id/open_webapk_id"
|
|
||||||
android:title="@string/menu_open_webapk"
|
|
||||||
android:icon="@drawable/ic_open_webapk" />
|
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
@@ -3434,6 +3434,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
|
@@ -4225,6 +4225,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
|
||||||
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
|
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
|
||||||
}
|
}
|
||||||
RecordUserAction.record("MobileMenuDownloadManager");
|
RecordUserAction.record("MobileMenuDownloadManager");
|
||||||
@@ -51,12 +35,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||||||
+ currentTab.getWebContents().getNavigationController().loadUrl(new LoadUrlParams("view-source:"+currentTab.getUrl().getSpec()));
|
+ currentTab.getWebContents().getNavigationController().loadUrl(new LoadUrlParams("view-source:"+currentTab.getUrl().getSpec()));
|
||||||
} else if (id == R.id.open_recently_closed_tab) {
|
} else if (id == R.id.open_recently_closed_tab) {
|
||||||
TabModel currentModel = mTabModelSelector.getCurrentModel();
|
TabModel currentModel = mTabModelSelector.getCurrentModel();
|
||||||
if (!currentModel.isIncognito()) currentModel.openMostRecentlyClosedEntry();
|
if (!currentModel.isIncognito()) {
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
@@ -2576,6 +2576,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
@@ -2884,6 +2884,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||||
return doOpenWebApk(currentTab);
|
return AppInstallMenuHandler.doOpenWebApk(this, currentTab);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if (id == R.id.view_source_id) {
|
+ if (id == R.id.view_source_id) {
|
||||||
@@ -70,8 +54,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||||
@@ -864,6 +864,23 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
|
@@ -1076,6 +1076,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
|
||||||
}
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ /**
|
+ /**
|
||||||
@@ -80,67 +64,58 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
|||||||
+ * @param menu {@link Menu} for view source.
|
+ * @param menu {@link Menu} for view source.
|
||||||
+ * @param currentTab Current tab being displayed.
|
+ * @param currentTab Current tab being displayed.
|
||||||
+ */
|
+ */
|
||||||
+ protected void updateViewSourceMenuItem(
|
+ protected void buildAddViewSourceItem(
|
||||||
+ Menu menu, Tab currentTab) {
|
+ MVCListAdapter.ModelList modelList,
|
||||||
+ MenuItem viewSourceMenuItem = menu.findItem(R.id.view_source_id);
|
+ @Nullable Tab currentTab) {
|
||||||
+ boolean visible = false;
|
+ boolean visible = false;
|
||||||
+ if (currentTab != null) {
|
+ if (currentTab != null) {
|
||||||
+ String url = currentTab.getUrl().getSpec();
|
+ String url = currentTab.getUrl().getSpec();
|
||||||
+ visible = !url.isEmpty() && !url.startsWith("view-source:");
|
+ visible = !url.isEmpty() && !url.startsWith("view-source:");
|
||||||
|
+ }
|
||||||
|
+ if (visible) {
|
||||||
|
+ modelList.add(new MVCListAdapter.ListItem(
|
||||||
|
+ AppMenuHandler.AppMenuItemType.STANDARD,
|
||||||
|
+ buildModelForStandardMenuItem(
|
||||||
|
+ R.id.view_source_id,
|
||||||
|
+ R.string.view_source,
|
||||||
|
+ shouldShowIconBeforeItem() ? R.drawable.ic_drive_document_24dp : 0)));
|
||||||
+ }
|
+ }
|
||||||
+ viewSourceMenuItem.setVisible(visible);
|
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
/**
|
/**
|
||||||
* Updates the request desktop site item's state.
|
* Updates the bookmark item's visibility.
|
||||||
*
|
*
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
||||||
@@ -331,7 +331,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
@@ -412,6 +412,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||||
// --- Request Desktop Site ---
|
modelList.add(buildOpenInAppItem());
|
||||||
updateRequestDesktopSiteMenuItem(
|
}
|
||||||
menu, currentTab, requestDesktopSiteVisible, isNativePage);
|
|
||||||
-
|
|
||||||
+ updateViewSourceMenuItem(menu, currentTab);
|
|
||||||
// --- Translate ---
|
|
||||||
prepareTranslateMenuItem(menu, currentTab);
|
|
||||||
|
|
||||||
|
+ // Add view source item
|
||||||
|
+ buildAddViewSourceItem(modelList, currentTab);
|
||||||
|
+
|
||||||
|
// --- Request Desktop Site ---
|
||||||
|
if (requestDesktopSiteVisible) {
|
||||||
|
MVCListAdapter.ListItem rdsListItem =
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
||||||
@@ -173,7 +173,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
|
@@ -438,6 +438,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
|
||||||
if (menuGroup == MenuGroup.PAGE_MENU) {
|
modelList.add(buildOpenInAppItem());
|
||||||
preparePageMenu(menu, currentTab, handler, isIncognito);
|
|
||||||
}
|
}
|
||||||
- prepareCommonMenuItems(menu, menuGroup, isIncognito);
|
|
||||||
+ prepareCommonMenuItems(menu, menuGroup, isIncognito, currentTab);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setMenuGroupVisibility(@MenuGroup int menuGroup, Menu menu) {
|
+ // Add view source item
|
||||||
@@ -338,7 +338,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
|
+ buildAddViewSourceItem(modelList, currentTab);
|
||||||
isNativePage, isFileScheme, isContentScheme, isIncognito, url));
|
+
|
||||||
|
// RDS
|
||||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isNativePage);
|
MVCListAdapter.ListItem rdsListItem =
|
||||||
-
|
maybeBuildRequestDesktopSiteListItem(
|
||||||
+ updateViewSourceMenuItem(menu, currentTab);
|
|
||||||
updateAutoDarkMenuItem(menu, currentTab, isNativePage);
|
|
||||||
|
|
||||||
// Only display reader mode settings menu option if the current page is in reader mode.
|
|
||||||
@@ -371,7 +371,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
|
|
||||||
&& UrlUtilities.isNtpUrl(currentTab.getUrl());
|
|
||||||
}
|
|
||||||
|
|
||||||
- private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
|
|
||||||
+ private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito, Tab currentTab) {
|
|
||||||
boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
|
|
||||||
if (always_incognito) {
|
|
||||||
final MenuItem newTabOption = menu.findItem(R.id.new_tab_menu_id);
|
|
||||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
@@ -321,6 +321,10 @@ CHAR_LIMIT guidelines:
|
@@ -355,6 +355,10 @@ CHAR_LIMIT guidelines:
|
||||||
Collaboration
|
Chrome finds
|
||||||
</message>
|
</message>
|
||||||
|
|
||||||
+ <message name="IDS_VIEW_SOURCE" desc="Title for the menu command to view the source of the current page. [CHAR-LIMIT=40]">
|
+ <message name="IDS_VIEW_SOURCE" desc="Title for the menu command to view the source of the current page. [CHAR-LIMIT=40]">
|
||||||
|
|||||||
@@ -15,12 +15,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
|
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
|
||||||
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
|
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
|
||||||
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
|
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
|
||||||
@@ -457,7 +457,12 @@ class TabGridViewBinder {
|
@@ -536,7 +536,12 @@ class TabGridViewBinder {
|
||||||
if (result != null) {
|
|
||||||
TabUtils.setDrawableAndUpdateImageMatrix(thumbnail, result, thumbnailSize);
|
TabUtils.setDrawableAndUpdateImageMatrix(thumbnail, result, thumbnailSize);
|
||||||
} else {
|
} else {
|
||||||
|
thumbnail.setThumbnailViewState(ThumbnailViewState.PLACEHOLDER_LOADED);
|
||||||
- thumbnail.setImageDrawable(null);
|
- thumbnail.setImageDrawable(null);
|
||||||
+ TabListFaviconProvider.TabFavicon tabFavicon = model.get(TabProperties.FAVICON);
|
+ TabFavicon tabFavicon = model.get(TabProperties.FAVICON);
|
||||||
+ if (tabFavicon != null) {
|
+ if (tabFavicon != null) {
|
||||||
+ thumbnail.setScaleType(ImageView.ScaleType.CENTER);
|
+ thumbnail.setScaleType(ImageView.ScaleType.CENTER);
|
||||||
+ thumbnail.setImageDrawable(
|
+ thumbnail.setImageDrawable(
|
||||||
@@ -29,10 +29,10 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (sThumbnailFetcherForTesting != null) {
|
if (sThumbnailFetcherForTesting != null) {
|
||||||
@@ -498,6 +503,7 @@ class TabGridViewBinder {
|
@@ -574,6 +579,7 @@ class TabGridViewBinder {
|
||||||
*/
|
*/
|
||||||
private static void setFavicon(
|
private static void setFavicon(
|
||||||
ImageView faviconView, PropertyModel model, TabListFaviconProvider.TabFavicon favicon) {
|
ImageView faviconView, PropertyModel model, @Nullable TabFavicon favicon) {
|
||||||
+ model.set(TabProperties.FAVICON, favicon);
|
+ model.set(TabProperties.FAVICON, favicon);
|
||||||
if (favicon == null) {
|
if (favicon == null) {
|
||||||
faviconView.setImageDrawable(null);
|
faviconView.setImageDrawable(null);
|
||||||
@@ -40,7 +40,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
|||||||
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
|
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
|
||||||
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
|
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
|
||||||
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
|
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
|
||||||
@@ -85,6 +85,9 @@ public class TabProperties {
|
@@ -131,6 +131,9 @@ public class TabProperties {
|
||||||
public static final WritableBooleanPropertyKey FAVICON_FETCHED =
|
public static final WritableBooleanPropertyKey FAVICON_FETCHED =
|
||||||
new WritableBooleanPropertyKey();
|
new WritableBooleanPropertyKey();
|
||||||
|
|
||||||
@@ -50,15 +50,15 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
|||||||
/** Property for lazily fetching favicons when required by an item in a UI. */
|
/** Property for lazily fetching favicons when required by an item in a UI. */
|
||||||
public static final WritableObjectPropertyKey<TabListFaviconProvider.TabFaviconFetcher>
|
public static final WritableObjectPropertyKey<TabListFaviconProvider.TabFaviconFetcher>
|
||||||
FAVICON_FETCHER = new WritableObjectPropertyKey<>();
|
FAVICON_FETCHER = new WritableObjectPropertyKey<>();
|
||||||
@@ -174,6 +177,7 @@ public class TabProperties {
|
@@ -233,6 +236,7 @@ public class TabProperties {
|
||||||
CARD_TYPE,
|
CARD_TYPE,
|
||||||
CONTENT_DESCRIPTION_TEXT_RESOLVER,
|
CONTENT_DESCRIPTION_TEXT_RESOLVER,
|
||||||
ACTION_BUTTON_DESCRIPTION_TEXT_RESOLVER,
|
ACTION_BUTTON_DESCRIPTION_TEXT_RESOLVER,
|
||||||
+ FAVICON,
|
+ FAVICON,
|
||||||
QUICK_DELETE_ANIMATION_STATUS,
|
QUICK_DELETE_ANIMATION_STATUS,
|
||||||
TAB_GROUP_COLOR_VIEW_PROVIDER,
|
TAB_GROUP_COLOR_VIEW_PROVIDER,
|
||||||
VISIBILITY,
|
TAB_GROUP_CARD_COLOR,
|
||||||
@@ -210,6 +214,7 @@ public class TabProperties {
|
@@ -274,6 +278,7 @@ public class TabProperties {
|
||||||
TAB_ACTION_BUTTON_DATA,
|
TAB_ACTION_BUTTON_DATA,
|
||||||
FAVICON_FETCHED,
|
FAVICON_FETCHED,
|
||||||
FAVICON_FETCHER,
|
FAVICON_FETCHER,
|
||||||
@@ -69,7 +69,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
|||||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
@@ -73,6 +73,11 @@ found in the LICENSE file.
|
@@ -61,6 +61,11 @@ found in the LICENSE file.
|
||||||
android:title="@string/open_external_links_incognito_title"
|
android:title="@string/open_external_links_incognito_title"
|
||||||
android:summary="@string/open_external_links_incognito_summary"
|
android:summary="@string/open_external_links_incognito_summary"
|
||||||
android:defaultValue="false" />
|
android:defaultValue="false" />
|
||||||
@@ -84,19 +84,19 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
@@ -145,6 +145,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
@@ -161,6 +161,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||||
import org.chromium.chrome.browser.preferences.Pref;
|
import org.chromium.chrome.browser.preferences.Pref;
|
||||||
import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory;
|
import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory;
|
||||||
import org.chromium.chrome.browser.printing.TabPrinter;
|
import org.chromium.chrome.browser.printing.TabPrinter;
|
||||||
+import org.chromium.chrome.browser.privacy.settings.PrivacySettings;
|
+import org.chromium.chrome.browser.privacy.settings.PrivacySettings;
|
||||||
import org.chromium.chrome.browser.profiles.Profile;
|
import org.chromium.chrome.browser.profiles.Profile;
|
||||||
import org.chromium.chrome.browser.profiles.ProfileManager;
|
import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||||
import org.chromium.chrome.browser.profiles.ProfileProvider;
|
import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
|
||||||
@@ -637,7 +638,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
@@ -699,7 +700,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||||
new TabContentManager(
|
new TabContentManager(
|
||||||
this,
|
this,
|
||||||
mBrowserControlsManagerSupplier.get(),
|
mBrowserControlsManagerSupplier.get(),
|
||||||
- !TabUiFeatureUtilities.shouldUseListMode(),
|
- /* snapshotsEnabled= */ true,
|
||||||
+ !TabUiFeatureUtilities.shouldUseListMode()
|
+ !TabUiFeatureUtilities.shouldUseListMode()
|
||||||
+ && !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false),
|
+ && !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false),
|
||||||
tabModelSelector != null ? tabModelSelector::getTabById : null,
|
tabModelSelector != null ? tabModelSelector::getTabById : null,
|
||||||
@@ -105,15 +105,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
@@ -28,6 +28,7 @@ import org.chromium.base.ContextUtils;
|
@@ -31,6 +31,7 @@ import org.chromium.base.ContextUtils;
|
||||||
import org.chromium.base.IntentUtils;
|
import org.chromium.base.IntentUtils;
|
||||||
import org.chromium.base.metrics.RecordHistogram;
|
import org.chromium.base.metrics.RecordHistogram;
|
||||||
import org.chromium.base.metrics.RecordUserAction;
|
import org.chromium.base.metrics.RecordUserAction;
|
||||||
+import org.chromium.base.supplier.Supplier;
|
+import java.util.function.Supplier;
|
||||||
import org.chromium.base.supplier.ObservableSupplier;
|
import org.chromium.base.supplier.MonotonicObservableSupplier;
|
||||||
import org.chromium.base.supplier.ObservableSupplierImpl;
|
import org.chromium.base.supplier.ObservableSuppliers;
|
||||||
import org.chromium.build.annotations.Nullable;
|
import org.chromium.base.supplier.SettableMonotonicObservableSupplier;
|
||||||
@@ -98,12 +99,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
@@ -107,13 +108,27 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||||
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||||
import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
|
import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
|
||||||
|
|
||||||
@@ -126,6 +126,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/** Fragment to keep track of the all the privacy related preferences. */
|
/** Fragment to keep track of the all the privacy related preferences. */
|
||||||
|
@NullMarked
|
||||||
public class PrivacySettings extends ChromeBaseSettingsFragment
|
public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
- implements Preference.OnPreferenceChangeListener {
|
- implements Preference.OnPreferenceChangeListener {
|
||||||
+ implements Preference.OnPreferenceChangeListener, INeedSnackbarManager {
|
+ implements Preference.OnPreferenceChangeListener, INeedSnackbarManager {
|
||||||
@@ -142,9 +143,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
private static final String PREF_PRELOAD_PAGES = "preload_pages";
|
private static final String PREF_PRELOAD_PAGES = "preload_pages";
|
||||||
private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
|
private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
|
||||||
@@ -206,6 +221,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -206,6 +221,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
}
|
if (shouldHideSandboxPref(privacySandboxBridge)) {
|
||||||
|
getPreferenceScreen().removePreference(sandboxPreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ mSnackbar = Snackbar.make(getActivity().getString(R.string.ui_relaunch_notice),
|
+ mSnackbar = Snackbar.make(getActivity().getString(R.string.ui_relaunch_notice),
|
||||||
+ new SnackbarManager.SnackbarController() {
|
+ new SnackbarManager.SnackbarController() {
|
||||||
+ @Override
|
+ @Override
|
||||||
@@ -155,7 +156,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
+ ApplicationLifetime.terminate(true);
|
+ ApplicationLifetime.terminate(true);
|
||||||
+ }
|
+ }
|
||||||
+ }, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_UNKNOWN)
|
+ }, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_UNKNOWN)
|
||||||
+ .setSingleLine(false)
|
+ .setDefaultLines(false)
|
||||||
+ .setAction(getActivity().getString(R.string.relaunch),
|
+ .setAction(getActivity().getString(R.string.relaunch),
|
||||||
+ /*actionData*/null)
|
+ /*actionData*/null)
|
||||||
+ .setDuration(/*durationMs*/70000);
|
+ .setDuration(/*durationMs*/70000);
|
||||||
@@ -163,7 +164,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE);
|
Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE);
|
||||||
// Record the launch of PG from the S&P link-row entry point
|
// Record the launch of PG from the S&P link-row entry point
|
||||||
privacyGuidePreference.setOnPreferenceClickListener(
|
privacyGuidePreference.setOnPreferenceClickListener(
|
||||||
@@ -432,6 +462,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -477,6 +507,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
|
|
||||||
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
|
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
|
||||||
public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito";
|
public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito";
|
||||||
@@ -171,7 +172,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
@@ -478,6 +509,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -523,6 +554,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||||
sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue);
|
sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue);
|
||||||
sharedPreferencesEditor.apply();
|
sharedPreferencesEditor.apply();
|
||||||
@@ -185,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -528,6 +566,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -573,6 +611,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
: R.string.text_off);
|
: R.string.text_off);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -199,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
@@ -6198,6 +6198,14 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
@@ -6691,6 +6691,14 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||||
Your <ph name="FQDN">%1$s<ex>www.amazon.com</ex></ph> timer ran out. It'll start again tomorrow.
|
Your <ph name="FQDN">%1$s<ex>www.amazon.com</ex></ph> timer ran out. It'll start again tomorrow.
|
||||||
</message>
|
</message>
|
||||||
|
|
||||||
|
|||||||
@@ -6,13 +6,13 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
---
|
---
|
||||||
.../layout/custom_tabs_control_container.xml | 2 +-
|
.../layout/custom_tabs_control_container.xml | 2 +-
|
||||||
.../java/res/layout/recent_tabs_page.xml | 2 +-
|
.../java/res/layout/recent_tabs_page.xml | 2 +-
|
||||||
.../java/res/values-sw600dp/dimens.xml | 4 ++--
|
.../java/res/values-sw600dp/dimens.xml | 3 ++-
|
||||||
chrome/android/java/res/values/dimens.xml | 6 +++++-
|
chrome/android/java/res/values/dimens.xml | 3 ++-
|
||||||
.../browser/ChromeBaseAppCompatActivity.java | 3 +++
|
.../browser/ChromeBaseAppCompatActivity.java | 3 +++
|
||||||
.../chrome/browser/WarmupManager.java | 5 ++++-
|
.../chrome/browser/WarmupManager.java | 7 +++++--
|
||||||
.../ChromeAccessibilitySettingsDelegate.java | 19 ++++++++++++++++++
|
.../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++++++
|
||||||
.../chrome/browser/app/ChromeActivity.java | 4 +++-
|
.../chrome/browser/app/ChromeActivity.java | 5 ++++-
|
||||||
.../overlays/strip/StripLayoutHelper.java | 10 ++++++++--
|
.../overlays/strip/StripLayoutHelper.java | 1 +
|
||||||
.../strip/StripLayoutHelperManager.java | 6 +++++-
|
.../strip/StripLayoutHelperManager.java | 6 +++++-
|
||||||
.../scene_layer/TabStripSceneLayer.java | 8 ++++++++
|
.../scene_layer/TabStripSceneLayer.java | 8 ++++++++
|
||||||
.../init/ChromeBrowserInitializer.java | 2 ++
|
.../init/ChromeBrowserInitializer.java | 2 ++
|
||||||
@@ -20,30 +20,29 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
.../chrome/browser/ui/RootUiCoordinator.java | 6 +++++-
|
.../chrome/browser/ui/RootUiCoordinator.java | 6 +++++-
|
||||||
chrome/browser/preferences/BUILD.gn | 1 +
|
chrome/browser/preferences/BUILD.gn | 1 +
|
||||||
.../preferences/ChromePreferenceKeys.java | 1 +
|
.../preferences/ChromePreferenceKeys.java | 1 +
|
||||||
.../preferences/ChromeSharedPreferences.java | 12 +++++++++++
|
.../preferences/ChromeSharedPreferences.java | 12 ++++++++++++
|
||||||
.../LegacyChromePreferenceKeys.java | 1 +
|
.../LegacyChromePreferenceKeys.java | 1 +
|
||||||
.../AppHeaderCoordinator.java | 2 ++
|
.../ui/desktop_windowing/AppHeaderUtils.java | 2 ++
|
||||||
.../omnibox/LocationBarCoordinator.java | 2 +-
|
.../omnibox/LocationBarCoordinator.java | 2 +-
|
||||||
.../strings/android_chrome_strings.grd | 7 +++++++
|
.../strings/android_chrome_strings.grd | 7 +++++++
|
||||||
.../java/res/layout/control_container.xml | 8 ++++----
|
.../java/res/layout/control_container.xml | 8 ++++----
|
||||||
.../java/res/layout/toolbar_tablet.xml | 2 +-
|
.../java/res/layout/toolbar_tablet.xml | 2 +-
|
||||||
.../java/res/values-sw600dp/dimens.xml | 5 +++--
|
.../java/res/values-sw600dp/dimens.xml | 5 +++--
|
||||||
.../toolbar/java/res/values/dimens.xml | 6 ++++--
|
.../toolbar/java/res/values/dimens.xml | 6 ++++--
|
||||||
.../browser/toolbar/ControlContainer.java | 2 +-
|
.../toolbar/top/ToolbarControlContainer.java | 6 ++++++
|
||||||
.../toolbar/top/ToolbarControlContainer.java | 20 ++++++++++++++++++-
|
|
||||||
.../browser/toolbar/top/ToolbarLayout.java | 5 ++++-
|
.../browser/toolbar/top/ToolbarLayout.java | 5 ++++-
|
||||||
.../tab_strip/HeightTransitionHandler.java | 2 ++
|
.../tab_strip/HeightTransitionHandler.java | 2 ++
|
||||||
.../TabStripTransitionCoordinator.java | 6 +++++-
|
.../TabStripTransitionCoordinator.java | 6 +++++-
|
||||||
.../res/xml/accessibility_preferences.xml | 5 +++++
|
.../res/xml/accessibility_preferences.xml | 5 +++++
|
||||||
.../accessibility/AccessibilitySettings.java | 13 ++++++++++++
|
.../accessibility/AccessibilitySettings.java | 13 +++++++++++++
|
||||||
.../AccessibilitySettingsDelegate.java | 2 ++
|
.../AccessibilitySettingsDelegate.java | 2 ++
|
||||||
.../chromium/ui/base/DeviceFormFactor.java | 14 +++++++++++++
|
.../chromium/ui/base/DeviceFormFactor.java | 14 ++++++++++++++
|
||||||
34 files changed, 171 insertions(+), 26 deletions(-)
|
33 files changed, 149 insertions(+), 22 deletions(-)
|
||||||
|
|
||||||
diff --git a/chrome/android/java/res/layout/custom_tabs_control_container.xml b/chrome/android/java/res/layout/custom_tabs_control_container.xml
|
diff --git a/chrome/android/java/res/layout/custom_tabs_control_container.xml b/chrome/android/java/res/layout/custom_tabs_control_container.xml
|
||||||
--- a/chrome/android/java/res/layout/custom_tabs_control_container.xml
|
--- a/chrome/android/java/res/layout/custom_tabs_control_container.xml
|
||||||
+++ b/chrome/android/java/res/layout/custom_tabs_control_container.xml
|
+++ b/chrome/android/java/res/layout/custom_tabs_control_container.xml
|
||||||
@@ -32,7 +32,7 @@ found in the LICENSE file.
|
@@ -31,7 +31,7 @@ found in the LICENSE file.
|
||||||
android:id="@+id/find_toolbar_stub"
|
android:id="@+id/find_toolbar_stub"
|
||||||
android:inflatedId="@+id/find_toolbar"
|
android:inflatedId="@+id/find_toolbar"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
@@ -67,47 +66,41 @@ diff --git a/chrome/android/java/res/layout/recent_tabs_page.xml b/chrome/androi
|
|||||||
diff --git a/chrome/android/java/res/values-sw600dp/dimens.xml b/chrome/android/java/res/values-sw600dp/dimens.xml
|
diff --git a/chrome/android/java/res/values-sw600dp/dimens.xml b/chrome/android/java/res/values-sw600dp/dimens.xml
|
||||||
--- a/chrome/android/java/res/values-sw600dp/dimens.xml
|
--- a/chrome/android/java/res/values-sw600dp/dimens.xml
|
||||||
+++ b/chrome/android/java/res/values-sw600dp/dimens.xml
|
+++ b/chrome/android/java/res/values-sw600dp/dimens.xml
|
||||||
@@ -14,8 +14,8 @@ found in the LICENSE file.
|
@@ -14,7 +14,8 @@ found in the LICENSE file.
|
||||||
<dimen name="compositor_tab_title_text_size">14sp</dimen>
|
<dimen name="compositor_tab_title_text_size">14sp</dimen>
|
||||||
|
|
||||||
<!-- Full Screen Dimensions -->
|
<!-- Full Screen Dimensions -->
|
||||||
- <dimen name="control_container_height">96dp</dimen>
|
- <dimen name="control_container_height">96dp</dimen>
|
||||||
- <dimen name="custom_tabs_control_container_height">64dp</dimen>
|
|
||||||
+ <dimen name="control_container_height_cromite">96dp</dimen>
|
+ <dimen name="control_container_height_cromite">96dp</dimen>
|
||||||
+ <dimen name="control_container_height_tabletui">96dp</dimen>
|
+ <dimen name="control_container_height_tabletui">56dp</dimen>
|
||||||
|
|
||||||
<!-- NTP dimensions -->
|
<!-- NTP dimensions -->
|
||||||
<dimen name="ntp_search_box_transition_start_offset">60dp</dimen>
|
<dimen name="ntp_search_box_transition_start_offset">60dp</dimen>
|
||||||
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
|
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
|
||||||
--- a/chrome/android/java/res/values/dimens.xml
|
--- a/chrome/android/java/res/values/dimens.xml
|
||||||
+++ b/chrome/android/java/res/values/dimens.xml
|
+++ b/chrome/android/java/res/values/dimens.xml
|
||||||
@@ -117,9 +117,13 @@ found in the LICENSE file.
|
@@ -116,7 +116,8 @@ found in the LICENSE file.
|
||||||
<dimen name="tab_modal_scrim_vertical_margin">16dp</dimen>
|
<dimen name="signin_screen_top_padding">50dp</dimen>
|
||||||
|
|
||||||
<!-- Should match toolbar_height_no_shadow -->
|
<!-- Should match toolbar_height_no_shadow -->
|
||||||
- <dimen name="control_container_height">@dimen/default_action_bar_height</dimen>
|
- <dimen name="control_container_height">@dimen/default_action_bar_height</dimen>
|
||||||
+ <dimen name="control_container_height_cromite">@dimen/default_action_bar_height</dimen>
|
+ <dimen name="control_container_height_cromite">@dimen/default_action_bar_height</dimen>
|
||||||
+ <dimen name="control_container_height_tabletui">96dp</dimen>
|
+ <dimen name="control_container_height_tabletui">56dp</dimen>
|
||||||
<dimen name="custom_tabs_control_container_height">@dimen/default_action_bar_height</dimen>
|
<dimen name="custom_tabs_control_container_height">@dimen/default_action_bar_height</dimen>
|
||||||
|
|
||||||
+ <!-- The combined height of the tab strip and toolbar. -->
|
|
||||||
+ <dimen name="tab_strip_and_toolbar_height_cromite">56dp</dimen>
|
|
||||||
+
|
|
||||||
<!-- Find in Page dimensions -->
|
<!-- Find in Page dimensions -->
|
||||||
<dimen name="find_in_page_popup_width">375dp</dimen>
|
|
||||||
<dimen name="find_in_page_popup_height">64dp</dimen>
|
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
|
||||||
@@ -58,6 +58,7 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats;
|
@@ -65,6 +65,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController;
|
||||||
import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder;
|
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeControllerCreator;
|
||||||
import org.chromium.chrome.browser.night_mode.NightModeStateProvider;
|
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeFieldTrialImpl;
|
||||||
import org.chromium.chrome.browser.night_mode.NightModeUtils;
|
|
||||||
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
|
||||||
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
|
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
|
||||||
import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeManager;
|
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||||
import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider;
|
import org.chromium.chrome.browser.ui.edge_to_edge.SimpleEdgeToEdgeController;
|
||||||
@@ -133,6 +134,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity
|
import org.chromium.components.browser_ui.styles.SemanticColorUtils;
|
||||||
|
import org.chromium.components.browser_ui.util.AutomotiveUtils;
|
||||||
|
@@ -154,6 +155,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity
|
||||||
protected void attachBaseContext(Context newBase) {
|
protected void attachBaseContext(Context newBase) {
|
||||||
super.attachBaseContext(newBase);
|
super.attachBaseContext(newBase);
|
||||||
|
|
||||||
@@ -119,29 +112,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
|
||||||
@@ -66,6 +66,7 @@ import org.chromium.content_public.browser.WebContents;
|
@@ -64,6 +64,7 @@ import org.chromium.chrome.browser.toolbar.ControlContainer;
|
||||||
import org.chromium.content_public.browser.WebContentsObserver;
|
import org.chromium.components.embedder_support.util.UrlConstants;
|
||||||
import org.chromium.net.NetId;
|
import org.chromium.content_public.browser.WebContents;
|
||||||
import org.chromium.ui.LayoutInflaterUtils;
|
import org.chromium.ui.LayoutInflaterUtils;
|
||||||
+import org.chromium.ui.base.DeviceFormFactor;
|
+import org.chromium.ui.base.DeviceFormFactor;
|
||||||
import org.chromium.ui.base.WindowAndroid;
|
import org.chromium.ui.base.WindowAndroid;
|
||||||
import org.chromium.ui.display.DisplayUtil;
|
import org.chromium.ui.display.DisplayUtil;
|
||||||
import org.chromium.url.GURL;
|
import org.chromium.url.GURL;
|
||||||
@@ -481,7 +482,9 @@ public class WarmupManager {
|
@@ -475,8 +476,10 @@ public class WarmupManager {
|
||||||
ControlContainer controlContainer = mainView.findViewById(R.id.control_container);
|
ControlContainer controlContainer = mainView.findViewById(R.id.control_container);
|
||||||
|
|
||||||
if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
|
if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
|
||||||
- controlContainer.initWithToolbar(toolbarId);
|
- controlContainer.initWithToolbar(
|
||||||
|
- toolbarId, R.dimen.custom_tabs_control_container_height);
|
||||||
+ controlContainer.initWithToolbar(toolbarId,
|
+ controlContainer.initWithToolbar(toolbarId,
|
||||||
+ DeviceFormFactor.isForceTabletUI()
|
+ DeviceFormFactor.isForceTabletUI()
|
||||||
+ ? R.dimen.control_container_height_tabletui : 0);
|
+ ? R.dimen.control_container_height_tabletui
|
||||||
|
+ : R.dimen.custom_tabs_control_container_height);
|
||||||
}
|
}
|
||||||
return mainView;
|
return mainView;
|
||||||
} catch (InflateException e) {
|
} catch (InflateException e) {
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||||
@@ -65,6 +65,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
@@ -67,6 +67,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,21 +165,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||||
@@ -787,7 +787,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
@@ -850,7 +850,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||||
// Inflate the correct toolbar layout for the device.
|
// Inflate the correct toolbar layout for the device.
|
||||||
int toolbarLayoutId = getToolbarLayoutId();
|
int toolbarLayoutId = getToolbarLayoutId();
|
||||||
if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
|
if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
|
||||||
- controlContainer.initWithToolbar(toolbarLayoutId);
|
- controlContainer.initWithToolbar(toolbarLayoutId, getToolbarLayoutHeightResId());
|
||||||
+ controlContainer.initWithToolbar(toolbarLayoutId,
|
+ controlContainer.initWithToolbar(toolbarLayoutId,
|
||||||
+ DeviceFormFactor.isForceTabletUI()
|
+ DeviceFormFactor.isForceTabletUI()
|
||||||
+ ? R.dimen.control_container_height_tabletui : 0);
|
+ ? R.dimen.control_container_height_tabletui
|
||||||
|
+ : getToolbarLayoutHeightResId());
|
||||||
}
|
}
|
||||||
onInitialLayoutInflationComplete();
|
onInitialLayoutInflationComplete();
|
||||||
}
|
}
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
|
||||||
@@ -120,6 +120,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService;
|
@@ -138,6 +138,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService;
|
||||||
import org.chromium.components.tab_group_sync.TriggerSource;
|
import org.chromium.components.tab_group_sync.TriggerSource;
|
||||||
import org.chromium.components.tab_groups.TabGroupColorId;
|
import org.chromium.components.tab_groups.TabGroupColorId;
|
||||||
import org.chromium.ui.accessibility.AccessibilityState;
|
import org.chromium.ui.accessibility.AccessibilityState;
|
||||||
@@ -192,36 +188,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
|||||||
import org.chromium.ui.base.LocalizationUtils;
|
import org.chromium.ui.base.LocalizationUtils;
|
||||||
import org.chromium.ui.base.WindowAndroid;
|
import org.chromium.ui.base.WindowAndroid;
|
||||||
import org.chromium.ui.util.ColorUtils;
|
import org.chromium.ui.util.ColorUtils;
|
||||||
@@ -4472,8 +4473,13 @@ public class StripLayoutHelper
|
|
||||||
mCloseButtonMenu.setAnchorView(tabView);
|
|
||||||
// 3. Set the vertical offset to align the close button menu with bottom of the tab strip
|
|
||||||
int tabHeight = mManagerHost.getHeight();
|
|
||||||
- int verticalOffset =
|
|
||||||
- -(tabHeight - (int) mContext.getResources().getDimension(R.dimen.tab_strip_height));
|
|
||||||
+ int tab_strip_height =
|
|
||||||
+ (int) mContext.getResources().getDimension(R.dimen.tab_strip_height_cromite);
|
|
||||||
+ if (DeviceFormFactor.isForceTabletUI()) {
|
|
||||||
+ tab_strip_height =
|
|
||||||
+ (int) mContext.getResources().getDimension(R.dimen.tab_strip_height_tabletui);
|
|
||||||
+ }
|
|
||||||
+ int verticalOffset = -(tabHeight - tab_strip_height);
|
|
||||||
mCloseButtonMenu.setVerticalOffset(verticalOffset);
|
|
||||||
|
|
||||||
// 4. Set the horizontal offset to align the close button menu with the right side of the
|
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
|
||||||
@@ -98,6 +98,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa
|
@@ -118,6 +118,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa
|
||||||
import org.chromium.components.browser_ui.styles.SemanticColorUtils;
|
import org.chromium.components.browser_ui.styles.SemanticColorUtils;
|
||||||
import org.chromium.components.browser_ui.widget.scrim.ScrimProperties;
|
import org.chromium.components.browser_ui.widget.gesture.BackPressHandler;
|
||||||
import org.chromium.content_public.browser.LoadUrlParams;
|
import org.chromium.content_public.browser.LoadUrlParams;
|
||||||
+import org.chromium.ui.base.DeviceFormFactor;
|
+import org.chromium.ui.base.DeviceFormFactor;
|
||||||
import org.chromium.ui.base.LocalizationUtils;
|
import org.chromium.ui.base.LocalizationUtils;
|
||||||
import org.chromium.ui.base.PageTransition;
|
import org.chromium.ui.base.PageTransition;
|
||||||
import org.chromium.ui.base.WindowAndroid;
|
import org.chromium.ui.base.WindowAndroid;
|
||||||
@@ -467,7 +468,10 @@ public class StripLayoutHelperManager
|
@@ -584,7 +585,10 @@ public class StripLayoutHelperManager
|
||||||
mIsLayoutOptimizationsEnabled =
|
mIsHeaderCustomizationSupported =
|
||||||
ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(
|
ToolbarFeatures.isAppHeaderCustomizationSupported(
|
||||||
/* isTablet= */ true, DisplayUtil.isContextInDefaultDisplay(mContext));
|
/* isTablet= */ true, DisplayUtil.isContextInDefaultDisplay(mContext));
|
||||||
- mScrollableStripHeight = res.getDimension(R.dimen.tab_strip_height) / mDensity;
|
- mScrollableStripHeight = res.getDimension(R.dimen.tab_strip_height) / mDensity;
|
||||||
+ mScrollableStripHeight =
|
+ mScrollableStripHeight =
|
||||||
@@ -229,12 +209,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
|||||||
+ ? res.getDimension(R.dimen.tab_strip_height_tabletui)
|
+ ? res.getDimension(R.dimen.tab_strip_height_tabletui)
|
||||||
+ : res.getDimension(R.dimen.tab_strip_height_cromite)) / mDensity;
|
+ : res.getDimension(R.dimen.tab_strip_height_cromite)) / mDensity;
|
||||||
mHeight =
|
mHeight =
|
||||||
mIsLayoutOptimizationsEnabled
|
mIsHeaderCustomizationSupported
|
||||||
? toolbarManager.getTabStripHeightSupplier().get() / mDensity
|
? toolbarManager.getTabStripHeightSupplier().get() / mDensity
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
|
||||||
@@ -111,6 +111,14 @@ public class TabStripSceneLayer extends SceneOverlayLayer {
|
@@ -124,6 +124,14 @@ public class TabStripSceneLayer extends SceneOverlayLayer {
|
||||||
if (mNativePtr == 0) return;
|
if (mNativePtr == 0) return;
|
||||||
final boolean visible = yOffset > -layoutHelper.getHeight();
|
final boolean visible = yOffset > -layoutHelper.getHeight();
|
||||||
|
|
||||||
@@ -248,19 +228,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen
|
|||||||
+
|
+
|
||||||
// This will hide the tab strips if necessary.
|
// This will hide the tab strips if necessary.
|
||||||
TabStripSceneLayerJni.get()
|
TabStripSceneLayerJni.get()
|
||||||
.beginBuildingFrame(mNativePtr, TabStripSceneLayer.this, visible);
|
.beginBuildingFrame(mNativePtr, visible, resourceManager, layerTitleCache);
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
|
||||||
@@ -17,6 +17,7 @@ import org.chromium.base.library_loader.LibraryProcessType;
|
@@ -18,6 +18,7 @@ import org.chromium.base.task.TaskTraits;
|
||||||
import org.chromium.base.task.ChainedTasks;
|
import org.chromium.build.annotations.NullMarked;
|
||||||
import org.chromium.base.task.TaskTraits;
|
import org.chromium.build.annotations.Nullable;
|
||||||
import org.chromium.chrome.browser.flags.ChromeSwitches;
|
import org.chromium.chrome.browser.flags.ChromeSwitches;
|
||||||
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||||
import org.chromium.chrome.browser.profiles.ProfileManager;
|
import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||||
import org.chromium.chrome.browser.signin.SigninCheckerProvider;
|
import org.chromium.chrome.browser.signin.SigninCheckerProvider;
|
||||||
import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
|
import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
|
||||||
@@ -107,6 +108,7 @@ public class ChromeBrowserInitializer {
|
@@ -110,6 +111,7 @@ public class ChromeBrowserInitializer {
|
||||||
public void handlePreNativeStartupAndLoadLibraries(final BrowserParts parts) {
|
public void handlePreNativeStartupAndLoadLibraries(final BrowserParts parts) {
|
||||||
ThreadUtils.checkUiThread();
|
ThreadUtils.checkUiThread();
|
||||||
if (parts.isActivityFinishingOrDestroyed()) return;
|
if (parts.isActivityFinishingOrDestroyed()) return;
|
||||||
@@ -271,7 +251,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||||
@@ -725,7 +725,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
@@ -934,7 +934,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getControlContainerHeightResource() {
|
public int getControlContainerHeightResource() {
|
||||||
@@ -285,7 +265,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
|
||||||
@@ -104,6 +104,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
|
@@ -135,6 +135,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
|
||||||
import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
|
import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
|
||||||
import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
|
import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
|
||||||
import org.chromium.chrome.browser.pdf.PdfPage;
|
import org.chromium.chrome.browser.pdf.PdfPage;
|
||||||
@@ -294,9 +274,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
|
|||||||
import org.chromium.chrome.browser.profiles.Profile;
|
import org.chromium.chrome.browser.profiles.Profile;
|
||||||
import org.chromium.chrome.browser.quick_delete.QuickDeleteController;
|
import org.chromium.chrome.browser.quick_delete.QuickDeleteController;
|
||||||
import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl;
|
import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl;
|
||||||
@@ -1645,7 +1647,9 @@ public class RootUiCoordinator
|
@@ -2096,7 +2098,9 @@ public class RootUiCoordinator
|
||||||
if (!mSupportsFindInPageSupplier.getAsBoolean()) return;
|
|
||||||
|
|
||||||
|
protected int getFindToolbarStub() {
|
||||||
int stubId = R.id.find_toolbar_stub;
|
int stubId = R.id.find_toolbar_stub;
|
||||||
- if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) {
|
- if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) {
|
||||||
+ if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity) &&
|
+ if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity) &&
|
||||||
@@ -304,11 +284,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
|
|||||||
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) {
|
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) {
|
||||||
stubId = R.id.find_toolbar_tablet_stub;
|
stubId = R.id.find_toolbar_tablet_stub;
|
||||||
}
|
}
|
||||||
mFindToolbarManager =
|
return stubId;
|
||||||
diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn
|
diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn
|
||||||
--- a/chrome/browser/preferences/BUILD.gn
|
--- a/chrome/browser/preferences/BUILD.gn
|
||||||
+++ b/chrome/browser/preferences/BUILD.gn
|
+++ b/chrome/browser/preferences/BUILD.gn
|
||||||
@@ -25,6 +25,7 @@ android_library("java") {
|
@@ -27,6 +27,7 @@ android_library("java") {
|
||||||
"//components/cached_flags:java",
|
"//components/cached_flags:java",
|
||||||
"//third_party/androidx:androidx_annotation_annotation_java",
|
"//third_party/androidx:androidx_annotation_annotation_java",
|
||||||
"//third_party/jni_zero:jni_zero_java",
|
"//third_party/jni_zero:jni_zero_java",
|
||||||
@@ -319,7 +299,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU
|
|||||||
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
||||||
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
||||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
||||||
@@ -313,6 +313,7 @@ public final class ChromePreferenceKeys {
|
@@ -413,6 +413,7 @@ public final class ChromePreferenceKeys {
|
||||||
/** Whether the app-specific history info text was already seen by users. */
|
/** Whether the app-specific history info text was already seen by users. */
|
||||||
public static final String HISTORY_APP_SPECIFIC_INFO_SEEN =
|
public static final String HISTORY_APP_SPECIFIC_INFO_SEEN =
|
||||||
"Chrome.History.AppSpecificInfoSeen";
|
"Chrome.History.AppSpecificInfoSeen";
|
||||||
@@ -367,29 +347,29 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
|||||||
ChromePreferenceKeys.FIRST_RUN_SKIP_WELCOME_PAGE,
|
ChromePreferenceKeys.FIRST_RUN_SKIP_WELCOME_PAGE,
|
||||||
ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO,
|
ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO,
|
||||||
ChromePreferenceKeys.HOMEPAGE_ENABLED,
|
ChromePreferenceKeys.HOMEPAGE_ENABLED,
|
||||||
diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java
|
diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderUtils.java b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderUtils.java
|
||||||
--- a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java
|
--- a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderUtils.java
|
||||||
+++ b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java
|
+++ b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderUtils.java
|
||||||
@@ -39,6 +39,7 @@ import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState;
|
@@ -20,6 +20,7 @@ import org.chromium.build.annotations.Nullable;
|
||||||
|
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
|
||||||
|
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher.ActivityState;
|
||||||
import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager;
|
import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager;
|
||||||
import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider;
|
|
||||||
import org.chromium.ui.CaptionBarInsetsRectProvider;
|
|
||||||
+import org.chromium.ui.base.DeviceFormFactor;
|
+import org.chromium.ui.base.DeviceFormFactor;
|
||||||
import org.chromium.ui.InsetObserver;
|
import org.chromium.ui.display.DisplayUtil;
|
||||||
import org.chromium.ui.InsetObserver.WindowInsetsConsumer;
|
import org.chromium.ui.insets.InsetsRectProvider;
|
||||||
import org.chromium.ui.InsetsRectProvider;
|
|
||||||
@@ -267,6 +268,7 @@ public class AppHeaderCoordinator
|
@@ -169,6 +170,7 @@ public class AppHeaderUtils {
|
||||||
InsetsRectProvider insetsRectProvider,
|
*/
|
||||||
@DesktopWindowHeuristicResult int currentResult,
|
static @DesktopWindowHeuristicResult int checkIsInDesktopWindow(
|
||||||
boolean isOnExternalDisplay) {
|
InsetsRectProvider insetsRectProvider, Context context) {
|
||||||
+ if (DeviceFormFactor.isForceTabletUI()) return DesktopWindowHeuristicResult.IN_DESKTOP_WINDOW;
|
+ if (DeviceFormFactor.isForceTabletUI()) return DesktopWindowHeuristicResult.IN_DESKTOP_WINDOW;
|
||||||
@DesktopWindowHeuristicResult int newResult;
|
@DesktopWindowHeuristicResult int newResult;
|
||||||
|
|
||||||
Insets captionBarInset = insetsRectProvider.getCachedInset();
|
boolean isOnExternalDisplay = !DisplayUtil.isContextInDefaultDisplay(context);
|
||||||
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
||||||
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
||||||
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
||||||
@@ -857,7 +857,7 @@ public class LocationBarCoordinator
|
@@ -1050,7 +1050,7 @@ public class LocationBarCoordinator
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isTabletWindow() {
|
private boolean isTabletWindow() {
|
||||||
@@ -401,7 +381,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
|||||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
@@ -1654,6 +1654,13 @@ Your Google account may have other forms of browsing history like searches and a
|
@@ -1635,6 +1635,13 @@ Your Google account may have other forms of browsing history like searches and a
|
||||||
Privacy guide explanation closed
|
Privacy guide explanation closed
|
||||||
</message>
|
</message>
|
||||||
|
|
||||||
@@ -422,30 +402,28 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/control_container
|
|||||||
android:id="@+id/control_container"
|
android:id="@+id/control_container"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
- android:minHeight="@dimen/control_container_height" >
|
- android:minHeight="@dimen/control_container_height">
|
||||||
+ android:minHeight="@dimen/control_container_height_cromite" >
|
+ android:minHeight="@dimen/control_container_height_cromite">
|
||||||
|
|
||||||
<view
|
<view
|
||||||
class="org.chromium.chrome.browser.toolbar.top.ToolbarControlContainer$ToolbarViewResourceFrameLayout"
|
class="org.chromium.chrome.browser.toolbar.top.ToolbarControlContainer$ToolbarViewResourceCoordinatorLayout"
|
||||||
@@ -20,7 +20,7 @@ found in the LICENSE file.
|
@@ -20,7 +20,7 @@ found in the LICENSE file.
|
||||||
<ViewStub
|
<ViewStub
|
||||||
android:id="@+id/toolbar_stub"
|
android:id="@+id/toolbar_stub"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
- android:layout_marginTop="@dimen/tab_strip_height"
|
- android:layout_marginTop="@dimen/tab_strip_height"
|
||||||
+ android:layout_marginTop="@dimen/tab_strip_height_cromite"
|
+ android:layout_marginTop="@dimen/tab_strip_height_cromite"
|
||||||
|
android:layout_marginBottom="@dimen/toolbar_hairline_height"
|
||||||
android:layout_height="@dimen/toolbar_height_no_shadow" />
|
android:layout_height="@dimen/toolbar_height_no_shadow" />
|
||||||
|
|
||||||
<ImageView
|
@@ -30,13 +30,13 @@ found in the LICENSE file.
|
||||||
@@ -28,7 +28,7 @@ found in the LICENSE file.
|
|
||||||
android:src="@drawable/toolbar_hairline"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
- android:layout_marginTop="@dimen/control_container_height"
|
android:layout_gravity="bottom"
|
||||||
+ android:layout_marginTop="@dimen/control_container_height_cromite"
|
app:layout_anchorGravity="bottom"
|
||||||
android:scaleType="fitXY"
|
- />
|
||||||
android:importantForAccessibility="no" />
|
+ android:layout_marginTop="@dimen/control_container_height_cromite" />
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ found in the LICENSE file.
|
<ViewStub
|
||||||
android:id="@+id/find_toolbar_stub"
|
android:id="@+id/find_toolbar_stub"
|
||||||
android:inflatedId="@+id/find_toolbar"
|
android:inflatedId="@+id/find_toolbar"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
@@ -457,14 +435,14 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/control_container
|
|||||||
diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml
|
diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml
|
||||||
--- a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml
|
--- a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml
|
||||||
+++ b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml
|
+++ b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml
|
||||||
@@ -15,7 +15,7 @@ found in the LICENSE file.
|
@@ -14,7 +14,7 @@ found in the LICENSE file.
|
||||||
android:id="@+id/toolbar"
|
android:id="@+id/toolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/toolbar_height_no_shadow"
|
android:layout_height="@dimen/toolbar_height_no_shadow"
|
||||||
- android:layout_marginTop="@dimen/tab_strip_height"
|
- android:layout_marginTop="@dimen/tab_strip_height"
|
||||||
+ android:layout_marginTop="@dimen/tab_strip_height_tabletui"
|
+ android:layout_marginTop="@dimen/tab_strip_height_tabletui"
|
||||||
android:background="@macro/default_bg_color"
|
android:background="@macro/default_bg_color"
|
||||||
>
|
>
|
||||||
|
|
||||||
diff --git a/chrome/browser/ui/android/toolbar/java/res/values-sw600dp/dimens.xml b/chrome/browser/ui/android/toolbar/java/res/values-sw600dp/dimens.xml
|
diff --git a/chrome/browser/ui/android/toolbar/java/res/values-sw600dp/dimens.xml b/chrome/browser/ui/android/toolbar/java/res/values-sw600dp/dimens.xml
|
||||||
--- a/chrome/browser/ui/android/toolbar/java/res/values-sw600dp/dimens.xml
|
--- a/chrome/browser/ui/android/toolbar/java/res/values-sw600dp/dimens.xml
|
||||||
@@ -494,19 +472,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml b/chro
|
|||||||
+ <dimen name="tab_strip_reserved_top_padding_tabletui">2dp</dimen>
|
+ <dimen name="tab_strip_reserved_top_padding_tabletui">2dp</dimen>
|
||||||
|
|
||||||
<dimen name="ntp_search_box_height">64dp</dimen>
|
<dimen name="ntp_search_box_height">64dp</dimen>
|
||||||
|
<dimen name="ntp_search_box_height_tall">72dp</dimen>
|
||||||
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java
|
|
||||||
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java
|
|
||||||
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java
|
|
||||||
@@ -27,7 +27,7 @@ public interface ControlContainer {
|
|
||||||
*
|
|
||||||
* @param toolbarLayoutId The ID of the toolbar layout to use.
|
|
||||||
*/
|
|
||||||
- void initWithToolbar(int toolbarLayoutId);
|
|
||||||
+ void initWithToolbar(int toolbarLayoutId, int controlContainerHeightOverrideId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return The {@link ViewResourceAdapter} that exposes this {@link View} as a CC resource.
|
|
||||||
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
||||||
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
||||||
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
||||||
@@ -518,37 +484,22 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
|
|||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.PorterDuff;
|
import android.graphics.PorterDuff;
|
||||||
@@ -157,8 +158,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout
|
@@ -176,6 +177,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout
|
||||||
|
|
||||||
@Override
|
|
||||||
@Initializer
|
@Initializer
|
||||||
- public void initWithToolbar(int toolbarLayoutId) {
|
public void initWithToolbar(int toolbarLayoutId, int toolbarLayoutHeightResId) {
|
||||||
+ public void initWithToolbar(int toolbarLayoutId, int controlContainerHeightOverrideId) {
|
|
||||||
try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) {
|
try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) {
|
||||||
+ if (controlContainerHeightOverrideId != 0) {
|
+ if (DeviceFormFactor.isForceTabletUI() && toolbarLayoutHeightResId != 0) {
|
||||||
|
+ toolbarLayoutHeightResId = R.dimen.control_container_height_tabletui;
|
||||||
+ Resources res = getContext().getResources();
|
+ Resources res = getContext().getResources();
|
||||||
+ setMinimumHeight((int) res.getDimension(controlContainerHeightOverrideId));
|
+ setMinimumHeight((int) res.getDimension(toolbarLayoutHeightResId));
|
||||||
+ int tab_strip_height =
|
|
||||||
+ (int) res.getDimension(R.dimen.tab_strip_height_tabletui);
|
|
||||||
+
|
|
||||||
+ View view = findViewById(R.id.toolbar_stub);
|
|
||||||
+ if (view != null)
|
|
||||||
+ ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height;
|
|
||||||
+
|
|
||||||
+ view = findViewById(R.id.toolbar_hairline);
|
|
||||||
+ if (view != null) view.setVisibility(View.GONE);
|
|
||||||
+
|
|
||||||
+ view = findViewById(R.id.find_toolbar_stub);
|
|
||||||
+ if (view != null)
|
|
||||||
+ ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height;
|
|
||||||
+ }
|
+ }
|
||||||
mToolbarContainer = findViewById(R.id.toolbar_container);
|
mToolbarContainer = findViewById(R.id.toolbar_container);
|
||||||
|
mToolbarLayoutHeight = getResources().getDimensionPixelSize(toolbarLayoutHeightResId);
|
||||||
ViewStub toolbarStub = findViewById(R.id.toolbar_stub);
|
ViewStub toolbarStub = findViewById(R.id.toolbar_stub);
|
||||||
toolbarStub.setLayoutResource(toolbarLayoutId);
|
|
||||||
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
|
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
|
||||||
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
|
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
|
||||||
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
|
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
|
||||||
@@ -68,6 +68,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp;
|
@@ -67,6 +67,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp;
|
||||||
import org.chromium.components.feature_engagement.Tracker;
|
import org.chromium.components.feature_engagement.Tracker;
|
||||||
import org.chromium.ui.base.ViewUtils;
|
import org.chromium.ui.base.ViewUtils;
|
||||||
import org.chromium.ui.util.MotionEventUtils;
|
import org.chromium.ui.util.MotionEventUtils;
|
||||||
@@ -556,10 +507,10 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
|
|||||||
import org.chromium.ui.util.TokenHolder;
|
import org.chromium.ui.util.TokenHolder;
|
||||||
import org.chromium.url.GURL;
|
import org.chromium.url.GURL;
|
||||||
|
|
||||||
@@ -586,7 +587,9 @@ public abstract class ToolbarLayout extends FrameLayout
|
@@ -599,7 +600,9 @@ public abstract class ToolbarLayout extends FrameLayout
|
||||||
* not have a tab strip.
|
* @see Toolbar#getTabStripHeight()
|
||||||
*/
|
*/
|
||||||
protected int getTabStripHeightFromResource() {
|
public int getTabStripHeightFromResource() {
|
||||||
- return getResources().getDimensionPixelSize(R.dimen.tab_strip_height);
|
- return getResources().getDimensionPixelSize(R.dimen.tab_strip_height);
|
||||||
+ if (DeviceFormFactor.isForceTabletUI())
|
+ if (DeviceFormFactor.isForceTabletUI())
|
||||||
+ return getResources().getDimensionPixelSize(R.dimen.tab_strip_height_tabletui);
|
+ return getResources().getDimensionPixelSize(R.dimen.tab_strip_height_tabletui);
|
||||||
@@ -570,34 +521,34 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
|
|||||||
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java
|
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java
|
||||||
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java
|
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java
|
||||||
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java
|
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java
|
||||||
@@ -29,6 +29,7 @@ import org.chromium.chrome.browser.toolbar.top.ToolbarLayout;
|
@@ -29,6 +29,7 @@ import org.chromium.chrome.browser.toolbar.ControlContainer;
|
||||||
import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripHeightObserver;
|
|
||||||
import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripTransitionDelegate;
|
import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripTransitionDelegate;
|
||||||
|
import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripTransitionHandler;
|
||||||
import org.chromium.ui.base.ViewUtils;
|
import org.chromium.ui.base.ViewUtils;
|
||||||
+import org.chromium.ui.base.DeviceFormFactor;
|
+import org.chromium.ui.base.DeviceFormFactor;
|
||||||
import org.chromium.ui.resources.dynamics.DynamicResourceReadyOnceCallback;
|
import org.chromium.ui.resources.dynamics.DynamicResourceReadyOnceCallback;
|
||||||
import org.chromium.ui.util.TokenHolder;
|
import org.chromium.ui.util.TokenHolder;
|
||||||
|
|
||||||
@@ -559,6 +560,7 @@ class HeightTransitionHandler {
|
@@ -514,6 +515,7 @@ class HeightTransitionHandler {
|
||||||
|
|
||||||
|
/** Get the min screen width (in dp) required for the tab strip to become visible. */
|
||||||
|
private static int getScreenWidthThresholdDp() {
|
||||||
|
+ if (DeviceFormFactor.isForceTabletUI()) return 0;
|
||||||
if (TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting != null) {
|
if (TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting != null) {
|
||||||
return TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting;
|
return TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting;
|
||||||
}
|
}
|
||||||
+ if (DeviceFormFactor.isForceTabletUI()) return 0;
|
|
||||||
return TRANSITION_THRESHOLD_DP;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
|
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
|
||||||
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
|
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
|
||||||
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
|
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
|
||||||
@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils;
|
@@ -25,6 +25,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils;
|
||||||
import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState;
|
import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState;
|
||||||
import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager;
|
import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager;
|
||||||
import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager.AppHeaderObserver;
|
import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager.AppHeaderObserver;
|
||||||
+import org.chromium.ui.base.DeviceFormFactor;
|
+import org.chromium.ui.base.DeviceFormFactor;
|
||||||
|
|
||||||
/** Class used to manage tab strip visibility and height updates. */
|
/**
|
||||||
@NullMarked
|
* Class used to manage tab strip visibility and height updates.
|
||||||
@@ -153,7 +154,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea
|
@@ -171,7 +172,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea
|
||||||
mTabStripReservedTopPadding =
|
mTabStripReservedTopPadding =
|
||||||
controlContainerView()
|
controlContainerView()
|
||||||
.getResources()
|
.getResources()
|
||||||
@@ -612,9 +563,9 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
|
|||||||
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
@@ -41,6 +41,11 @@ found in the LICENSE file.
|
@@ -46,6 +46,11 @@ found in the LICENSE file.
|
||||||
android:summary="@string/jump_start_omnibox_summary"
|
android:summary="@string/caret_browsing_summary"
|
||||||
android:title="@string/jump_start_omnibox_title" />
|
android:title="@string/caret_browsing_title" />
|
||||||
|
|
||||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||||
+ android:key="force_tablet_ui"
|
+ android:key="force_tablet_ui"
|
||||||
@@ -627,17 +578,17 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
|
|||||||
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
||||||
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
||||||
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
||||||
@@ -29,6 +29,7 @@ import org.chromium.content_public.browser.ContentFeatureList;
|
@@ -39,6 +39,7 @@ import org.chromium.content_public.browser.ContentFeatureMap;
|
||||||
import org.chromium.content_public.browser.ContentFeatureMap;
|
import org.chromium.ui.base.UiAndroidFeatureList;
|
||||||
|
|
||||||
import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
|
import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
|
||||||
+import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate;
|
+import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate;
|
||||||
|
|
||||||
/** Fragment to keep track of all the accessibility related preferences. */
|
/** Fragment to keep track of all the accessibility related preferences. */
|
||||||
@NullMarked
|
@NullMarked
|
||||||
@@ -44,6 +45,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
@@ -80,6 +81,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||||
public static final String PREF_ZOOM_INFO = "zoom_info";
|
}
|
||||||
public static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions";
|
};
|
||||||
|
|
||||||
+ private BooleanPreferenceDelegate mForceTabletUIDelegate;
|
+ private BooleanPreferenceDelegate mForceTabletUIDelegate;
|
||||||
+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
|
+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
|
||||||
@@ -645,9 +596,9 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
|||||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||||
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
|
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
|
||||||
@@ -108,6 +112,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
@@ -167,6 +171,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||||
mDelegate.getReaderAccessibilityDelegate().getValue());
|
readerEnableLinks.setOnPreferenceChangeListener(this);
|
||||||
readerForAccessibilityPref.setOnPreferenceChangeListener(this);
|
}
|
||||||
|
|
||||||
+ ChromeSwitchPreference forceTabletUiPref =
|
+ ChromeSwitchPreference forceTabletUiPref =
|
||||||
+ (ChromeSwitchPreference) findPreference(PREF_FORCE_TABLET_UI);
|
+ (ChromeSwitchPreference) findPreference(PREF_FORCE_TABLET_UI);
|
||||||
@@ -658,7 +609,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
|||||||
Preference captions = findPreference(PREF_CAPTIONS);
|
Preference captions = findPreference(PREF_CAPTIONS);
|
||||||
captions.setOnPreferenceClickListener(
|
captions.setOnPreferenceClickListener(
|
||||||
preference -> {
|
preference -> {
|
||||||
@@ -167,6 +177,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
@@ -262,6 +272,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
|
if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
|
||||||
mDelegate.getForceEnableZoomAccessibilityDelegate().setValue((Boolean) newValue);
|
mDelegate.getForceEnableZoomAccessibilityDelegate().setValue((Boolean) newValue);
|
||||||
@@ -671,7 +622,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
|||||||
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||||
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||||
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||||
@@ -41,6 +41,8 @@ public interface AccessibilitySettingsDelegate {
|
@@ -42,6 +42,8 @@ public interface AccessibilitySettingsDelegate {
|
||||||
*/
|
*/
|
||||||
BrowserContextHandle getBrowserContextHandle();
|
BrowserContextHandle getBrowserContextHandle();
|
||||||
|
|
||||||
@@ -683,9 +634,9 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
|||||||
diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
|
diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
|
||||||
--- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
|
--- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
|
||||||
+++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
|
+++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
|
||||||
@@ -83,6 +83,14 @@ public class DeviceFormFactor {
|
@@ -87,6 +87,14 @@ public class DeviceFormFactor {
|
||||||
return BuildConfig.IS_DESKTOP_ANDROID;
|
/** See {@link #setIsTabletForTesting(boolean)}. */
|
||||||
}
|
private static @Nullable Boolean sIsTabletForTesting;
|
||||||
|
|
||||||
+ private static boolean mForceTabletUI = false;
|
+ private static boolean mForceTabletUI = false;
|
||||||
+ public static void setForceTabletUI(boolean forceTabletUI) {
|
+ public static void setForceTabletUI(boolean forceTabletUI) {
|
||||||
@@ -698,7 +649,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
|
|||||||
/**
|
/**
|
||||||
* Each activity could be on a different display, and this will just tell you whether the
|
* Each activity could be on a different display, and this will just tell you whether the
|
||||||
* display associated with the application context is "tablet sized". Use {@link
|
* display associated with the application context is "tablet sized". Use {@link
|
||||||
@@ -91,6 +99,7 @@ public class DeviceFormFactor {
|
@@ -95,6 +103,7 @@ public class DeviceFormFactor {
|
||||||
@CalledByNative
|
@CalledByNative
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static boolean isTablet() {
|
public static boolean isTablet() {
|
||||||
@@ -706,7 +657,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
|
|||||||
if (sIsTabletForTesting != null) {
|
if (sIsTabletForTesting != null) {
|
||||||
return sIsTabletForTesting;
|
return sIsTabletForTesting;
|
||||||
}
|
}
|
||||||
@@ -121,6 +130,7 @@ public class DeviceFormFactor {
|
@@ -125,6 +134,7 @@ public class DeviceFormFactor {
|
||||||
* E.g. http://developer.samsung.com/samsung-dex/testing
|
* E.g. http://developer.samsung.com/samsung-dex/testing
|
||||||
*/
|
*/
|
||||||
public static boolean isNonMultiDisplayContextOnTablet(Context context) {
|
public static boolean isNonMultiDisplayContextOnTablet(Context context) {
|
||||||
@@ -714,7 +665,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
|
|||||||
return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET;
|
return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,6 +166,7 @@ public class DeviceFormFactor {
|
@@ -159,6 +169,7 @@ public class DeviceFormFactor {
|
||||||
* @return The screen width bucket the device is in (see constants at the top of this class).
|
* @return The screen width bucket the device is in (see constants at the top of this class).
|
||||||
*/
|
*/
|
||||||
private static int detectScreenWidthBucket(Context context) {
|
private static int detectScreenWidthBucket(Context context) {
|
||||||
@@ -722,7 +673,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
|
|||||||
return context.getResources().getInteger(R.integer.min_screen_width_bucket);
|
return context.getResources().getInteger(R.integer.min_screen_width_bucket);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,6 +174,7 @@ public class DeviceFormFactor {
|
@@ -166,6 +177,7 @@ public class DeviceFormFactor {
|
||||||
ThreadUtils.assertOnUiThread();
|
ThreadUtils.assertOnUiThread();
|
||||||
Context context = windowAndroid.getContext().get();
|
Context context = windowAndroid.getContext().get();
|
||||||
if (context == null) return 0;
|
if (context == null) return 0;
|
||||||
@@ -730,7 +681,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
|
|||||||
return context.getResources().getInteger(R.integer.min_screen_width_bucket);
|
return context.getResources().getInteger(R.integer.min_screen_width_bucket);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,6 +184,7 @@ public class DeviceFormFactor {
|
@@ -175,6 +187,7 @@ public class DeviceFormFactor {
|
||||||
*/
|
*/
|
||||||
@UiThread
|
@UiThread
|
||||||
public static int getNonMultiDisplayMinimumTabletWidthPx(Context context) {
|
public static int getNonMultiDisplayMinimumTabletWidthPx(Context context) {
|
||||||
@@ -738,7 +689,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
|
|||||||
return getMinimumTabletWidthPx(DisplayAndroid.getNonMultiDisplay(context));
|
return getMinimumTabletWidthPx(DisplayAndroid.getNonMultiDisplay(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,6 +193,7 @@ public class DeviceFormFactor {
|
@@ -183,6 +196,7 @@ public class DeviceFormFactor {
|
||||||
* layout.
|
* layout.
|
||||||
*/
|
*/
|
||||||
public static int getMinimumTabletWidthPx(DisplayAndroid display) {
|
public static int getMinimumTabletWidthPx(DisplayAndroid display) {
|
||||||
|
|||||||
@@ -4,16 +4,17 @@ Subject: Add option to not persist tabs across sessions
|
|||||||
|
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
.../android/java/res/xml/privacy_preferences.xml | 5 +++++
|
.../android/java/res/xml/privacy_preferences.xml | 5 +++++
|
||||||
.../chrome/browser/ChromeTabbedActivity.java | 5 ++++-
|
.../chrome/browser/ChromeTabbedActivity.java | 5 ++++-
|
||||||
.../privacy/settings/PrivacySettings.java | 16 +++++++++++++++-
|
.../browser/privacy/settings/PrivacySettings.java | 15 ++++++++++++++-
|
||||||
.../android/strings/android_chrome_strings.grd | 6 ++++++
|
.../browser/tab_group_sync/StartupHelper.java | 6 ++++++
|
||||||
4 files changed, 30 insertions(+), 2 deletions(-)
|
.../ui/android/strings/android_chrome_strings.grd | 6 ++++++
|
||||||
|
5 files changed, 35 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
@@ -95,6 +95,11 @@ found in the LICENSE file.
|
@@ -82,6 +82,11 @@ found in the LICENSE file.
|
||||||
android:title="@string/incognito_settings_title"
|
android:title="@string/incognito_settings_title"
|
||||||
android:summary="@string/incognito_settings_summary"
|
android:summary="@string/incognito_settings_summary"
|
||||||
android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/>
|
android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/>
|
||||||
@@ -28,17 +29,17 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
@@ -47,6 +47,7 @@ import org.chromium.base.Callback;
|
@@ -58,6 +58,7 @@ import org.chromium.base.ApplicationStatus;
|
||||||
|
import org.chromium.base.Callback;
|
||||||
import org.chromium.base.CallbackController;
|
import org.chromium.base.CallbackController;
|
||||||
import org.chromium.base.CallbackUtils;
|
import org.chromium.base.CallbackUtils;
|
||||||
import org.chromium.base.CommandLine;
|
|
||||||
+import org.chromium.base.ContextUtils;
|
+import org.chromium.base.ContextUtils;
|
||||||
|
import org.chromium.base.CommandLine;
|
||||||
|
import org.chromium.base.DeviceInfo;
|
||||||
import org.chromium.base.IntentUtils;
|
import org.chromium.base.IntentUtils;
|
||||||
import org.chromium.base.Log;
|
@@ -2309,8 +2310,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
|
||||||
import org.chromium.base.MemoryPressureListener;
|
ActivityRestoreState.NUM_ENTRIES);
|
||||||
@@ -1849,8 +1850,10 @@ public class ChromeTabbedActivity extends ChromeActivity {
|
}
|
||||||
boolean hadCipherData =
|
|
||||||
CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState());
|
|
||||||
|
|
||||||
+ String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
+ String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
||||||
boolean noRestoreState =
|
boolean noRestoreState =
|
||||||
@@ -51,25 +52,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
@@ -8,6 +8,7 @@ import static org.chromium.components.content_settings.PrefNames.COOKIE_CONTROLS
|
@@ -10,6 +10,7 @@ import static org.chromium.ui.R.drawable.gshield_colorful;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
+import android.content.SharedPreferences;
|
+import android.content.SharedPreferences;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Build;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -21,7 +22,9 @@ import android.view.View;
|
import android.text.SpannableString;
|
||||||
import androidx.annotation.VisibleForTesting;
|
@@ -25,6 +26,7 @@ import androidx.preference.Preference;
|
||||||
import androidx.preference.Preference;
|
|
||||||
|
|
||||||
+import org.chromium.base.BuildInfo;
|
import org.chromium.base.ApiCompatibilityUtils;
|
||||||
import org.chromium.base.Callback;
|
import org.chromium.base.Callback;
|
||||||
+import org.chromium.base.ContextUtils;
|
+import org.chromium.base.ContextUtils;
|
||||||
import org.chromium.base.IntentUtils;
|
import org.chromium.base.IntentUtils;
|
||||||
import org.chromium.base.metrics.RecordHistogram;
|
import org.chromium.base.metrics.RecordHistogram;
|
||||||
import org.chromium.base.metrics.RecordUserAction;
|
import org.chromium.base.metrics.RecordUserAction;
|
||||||
@@ -113,6 +116,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -121,6 +123,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
private final SharedPreferencesManager mSharedPreferencesManager =
|
private final SharedPreferencesManager mSharedPreferencesManager =
|
||||||
ChromeSharedPreferences.getInstance();
|
ChromeSharedPreferences.getInstance();
|
||||||
|
|
||||||
@@ -77,8 +76,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
+
|
+
|
||||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||||
@VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies";
|
@VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies";
|
||||||
@VisibleForTesting static final String PREF_TRACKING_PROTECTION = "tracking_protection";
|
private static final String PREF_ADVANCED_PROTECTION_INFO = "advanced_protection_info";
|
||||||
@@ -373,7 +378,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -418,7 +422,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
String key = preference.getKey();
|
String key = preference.getKey();
|
||||||
@@ -91,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
UserPrefs.get(getProfile())
|
UserPrefs.get(getProfile())
|
||||||
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||||
} else if (PREF_HTTPS_FIRST_MODE_LEGACY.equals(key)) {
|
} else if (PREF_HTTPS_FIRST_MODE_LEGACY.equals(key)) {
|
||||||
@@ -433,6 +442,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -478,6 +486,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
getContext(), getProfile()));
|
getContext(), getProfile()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,12 +102,35 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
|
Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
|
||||||
if (secureDnsPref != null && secureDnsPref.isVisible()) {
|
if (secureDnsPref != null && secureDnsPref.isVisible()) {
|
||||||
secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
|
secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
|
||||||
|
diff --git a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java
|
||||||
|
--- a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java
|
||||||
|
+++ b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java
|
||||||
|
@@ -4,6 +4,7 @@
|
||||||
|
|
||||||
|
package org.chromium.chrome.browser.tab_group_sync;
|
||||||
|
|
||||||
|
+import org.chromium.base.ContextUtils;
|
||||||
|
import org.chromium.base.metrics.RecordHistogram;
|
||||||
|
import org.chromium.build.annotations.NullMarked;
|
||||||
|
import org.chromium.chrome.browser.preferences.Pref;
|
||||||
|
@@ -74,6 +75,11 @@ public class StartupHelper {
|
||||||
|
*/
|
||||||
|
public void initializeTabGroupSync() {
|
||||||
|
LogUtils.log(TAG, "initializeTabGroupSync");
|
||||||
|
+ if (ContextUtils.getAppSharedPreferences().getBoolean("close_tabs_on_exit", false)) {
|
||||||
|
+ for (String tabGroupId : mTabGroupSyncService.getAllGroupIds()) {
|
||||||
|
+ mTabGroupSyncService.removeGroup(tabGroupId);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
// First close the groups that were deleted remotely when the activity was not running.
|
||||||
|
closeDeletedGroupsFromTabModel();
|
||||||
|
|
||||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
@@ -5714,6 +5714,12 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
@@ -3021,6 +3021,12 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||||
<message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
|
<message name="IDS_ACCESSIBILITY_TAB_SWITCHER_TITLE" desc="Accessibility label of the current window when Grid Tab Switcher is shown.">
|
||||||
IMAGE
|
All tabs
|
||||||
</message>
|
</message>
|
||||||
+ <message name="IDS_CLOSE_TABS_ON_EXIT_TITLE" desc="Text for 'Close tabs on exit' settings-privacy option.">
|
+ <message name="IDS_CLOSE_TABS_ON_EXIT_TITLE" desc="Text for 'Close tabs on exit' settings-privacy option.">
|
||||||
+ Close all open tabs on exit
|
+ Close all open tabs on exit
|
||||||
@@ -116,7 +138,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||||||
+ <message name="IDS_CLOSE_TABS_ON_EXIT_SUMMARY" desc="Summary text for 'Close tabs on exit' settings-privacy option.">
|
+ <message name="IDS_CLOSE_TABS_ON_EXIT_SUMMARY" desc="Summary text for 'Close tabs on exit' settings-privacy option.">
|
||||||
+ Don't persist tabs between browsing sessions. Caution: parameters in urls allow linking between different sessions.
|
+ Don't persist tabs between browsing sessions. Caution: parameters in urls allow linking between different sessions.
|
||||||
+ </message>
|
+ </message>
|
||||||
<message name="IDS_CONTEXTMENU_LINK_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the link.">
|
<message name="IDS_TAB_LOADING_DEFAULT_TITLE" desc="The title of a tab when we are still waiting for either the URL or the real title. This generally shows when the page is first loading.">
|
||||||
LINK
|
Loading…
|
||||||
</message>
|
</message>
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ And allow use about:blank as default homepage
|
|||||||
|
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
.../tab_management/TabGridDialogMediator.java | 11 ++++++++++-
|
.../tab_management/TabGridDialogMediator.java | 12 +++++++++++-
|
||||||
.../tasks/tab_management/TabGroupUiMediator.java | 8 +++++++-
|
.../tasks/tab_management/TabGroupUiMediator.java | 8 +++++++-
|
||||||
.../java/res/xml/homepage_preferences.xml | 5 +++++
|
.../java/res/xml/homepage_preferences.xml | 5 +++++
|
||||||
.../strip/TabGroupContextMenuCoordinator.java | 11 ++++++++++-
|
.../strip/TabGroupContextMenuCoordinator.java | 10 +++++++++-
|
||||||
.../chrome/browser/homepage/HomepageManager.java | 16 ++++++++++++++++
|
.../chrome/browser/homepage/HomepageManager.java | 16 ++++++++++++++++
|
||||||
.../homepage/settings/HomepageSettings.java | 12 ++++++++++++
|
.../homepage/settings/HomepageSettings.java | 12 ++++++++++++
|
||||||
.../chrome/browser/metrics/LaunchMetrics.java | 1 -
|
.../chrome/browser/metrics/LaunchMetrics.java | 1 -
|
||||||
@@ -24,9 +24,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
|
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
|
||||||
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
|
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
|
||||||
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
|
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
|
||||||
@@ -114,6 +114,9 @@ import java.util.Objects;
|
@@ -102,6 +102,7 @@ import org.chromium.components.collaboration.messaging.PersistentNotificationTyp
|
||||||
import java.util.Optional;
|
import org.chromium.components.data_sharing.DataSharingService;
|
||||||
|
import org.chromium.components.data_sharing.GroupMember;
|
||||||
|
import org.chromium.components.data_sharing.member_role.MemberRole;
|
||||||
|
+import org.chromium.components.embedder_support.util.UrlConstants;
|
||||||
|
import org.chromium.components.tab_group_sync.EitherId.EitherGroupId;
|
||||||
|
import org.chromium.components.tab_group_sync.LocalTabGroupId;
|
||||||
|
import org.chromium.components.tab_group_sync.TabGroupSyncService;
|
||||||
|
@@ -122,6 +123,9 @@ import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
||||||
+import org.chromium.url.GURL;
|
+import org.chromium.url.GURL;
|
||||||
@@ -34,27 +42,27 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
|||||||
/**
|
/**
|
||||||
* A mediator for the TabGridDialog component, responsible for communicating with the components'
|
* A mediator for the TabGridDialog component, responsible for communicating with the components'
|
||||||
* coordinator as well as managing the business logic for dialog show/hide.
|
* coordinator as well as managing the business logic for dialog show/hide.
|
||||||
@@ -1028,9 +1031,15 @@ public class TabGridDialogMediator
|
@@ -1017,9 +1021,15 @@ public class TabGridDialogMediator
|
||||||
return;
|
UrlConstantResolver urlConstantResolver =
|
||||||
}
|
UrlConstantResolverFactory.getForProfile(profile);
|
||||||
|
|
||||||
+ String url = UrlConstants.NTP_URL;
|
+ String url = urlConstantResolver.getNtpUrl();
|
||||||
+ if (UrlConstants.NTP_URL.equals(url)
|
+ if (UrlConstants.NTP_URL.equals(url)
|
||||||
+ && HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
+ && HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
||||||
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl();
|
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl(profile.isIncognitoBranded());
|
||||||
+ url = gurl != null ? gurl.getSpec() : url;
|
+ url = gurl != null ? gurl.getSpec() : url;
|
||||||
+ }
|
+ }
|
||||||
TabGroupUtils.openUrlInGroup(
|
TabGroupUtils.openUrlInGroup(
|
||||||
mCurrentTabGroupModelFilterSupplier.get(),
|
assumeNonNull(mCurrentTabGroupModelFilterSupplier.get()),
|
||||||
- UrlConstants.NTP_URL,
|
- urlConstantResolver.getNtpUrl(),
|
||||||
+ url,
|
+ url,
|
||||||
currentTab.getId(),
|
tabsInGroup.get(tabsInGroup.size() - 1).getId(),
|
||||||
TabLaunchType.FROM_TAB_GROUP_UI);
|
TabLaunchType.FROM_TAB_GROUP_UI);
|
||||||
RecordUserAction.record("MobileNewTabOpened." + mComponentName);
|
RecordUserAction.record("MobileNewTabOpened." + mComponentName);
|
||||||
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
|
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
|
||||||
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
|
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
|
||||||
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
|
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
|
||||||
@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory;
|
@@ -37,6 +37,7 @@ import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory;
|
||||||
import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesConfig;
|
import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesConfig;
|
||||||
import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesCoordinator;
|
import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesCoordinator;
|
||||||
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
|
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
|
||||||
@@ -62,19 +70,19 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
|||||||
import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver;
|
import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver;
|
||||||
import org.chromium.chrome.browser.layouts.LayoutType;
|
import org.chromium.chrome.browser.layouts.LayoutType;
|
||||||
import org.chromium.chrome.browser.profiles.Profile;
|
import org.chromium.chrome.browser.profiles.Profile;
|
||||||
@@ -415,10 +416,15 @@ public class TabGroupUiMediator implements BackPressHandler {
|
@@ -426,10 +427,15 @@ public class TabGroupUiMediator implements BackPressHandler {
|
||||||
assert relatedTabs.size() > 0;
|
UrlConstantResolverFactory.getForProfile(currentTabProfile);
|
||||||
|
|
||||||
Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
|
Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
|
||||||
+ String url = UrlConstants.NTP_URL;
|
+ String url = urlConstantResolver.getNtpUrl();
|
||||||
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
||||||
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl();
|
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl(currentTab.isIncognito());
|
||||||
+ url = gurl != null ? gurl.getSpec() : url;
|
+ url = gurl != null ? gurl.getSpec() : url;
|
||||||
+ }
|
+ }
|
||||||
mTabCreatorManager
|
mTabCreatorManager
|
||||||
.getTabCreator(currentTab.isIncognito())
|
.getTabCreator(currentTab.isIncognito())
|
||||||
.createNewTab(
|
.createNewTab(
|
||||||
- new LoadUrlParams(UrlConstants.NTP_URL),
|
- new LoadUrlParams(urlConstantResolver.getNtpUrl()),
|
||||||
+ new LoadUrlParams(url),
|
+ new LoadUrlParams(url),
|
||||||
TabLaunchType.FROM_TAB_GROUP_UI,
|
TabLaunchType.FROM_TAB_GROUP_UI,
|
||||||
parentTabToAttach);
|
parentTabToAttach);
|
||||||
@@ -97,9 +105,9 @@ diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/andro
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java
|
||||||
@@ -71,6 +71,9 @@ import org.chromium.ui.text.EmptyTextWatcher;
|
@@ -96,6 +96,9 @@ import java.util.List;
|
||||||
import org.chromium.ui.widget.AnchoredPopupWindow.HorizontalOrientation;
|
import java.util.function.BiConsumer;
|
||||||
import org.chromium.ui.widget.RectProvider;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
||||||
+import org.chromium.url.GURL;
|
+import org.chromium.url.GURL;
|
||||||
@@ -107,19 +115,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
|||||||
/**
|
/**
|
||||||
* A coordinator for the context menu on the tab strip by long-pressing on the group titles. It is
|
* A coordinator for the context menu on the tab strip by long-pressing on the group titles. It is
|
||||||
* responsible for creating a list of menu items, setting up the menu and displaying the menu.
|
* responsible for creating a list of menu items, setting up the menu and displaying the menu.
|
||||||
@@ -208,9 +211,15 @@ public class TabGroupContextMenuCoordinator extends TabGroupOverflowMenuCoordina
|
@@ -249,9 +252,14 @@ public class TabGroupContextMenuCoordinator extends TabStripReorderingHelper<Tok
|
||||||
/* didCloseCallback= */ null);
|
UrlConstantResolver resolver =
|
||||||
RecordUserAction.record("MobileToolbarTabGroupMenu.DeleteGroup");
|
UrlConstantResolverFactory.getForProfile(
|
||||||
} else if (menuId == org.chromium.chrome.R.id.open_new_tab_in_group) {
|
tabGroupModelFilter.getTabModel().getProfile());
|
||||||
+ String url = UrlConstants.NTP_URL;
|
+ String url = resolver.getNtpUrl();
|
||||||
+ if (UrlConstants.NTP_URL.equals(url)
|
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
||||||
+ && HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl(tabModelSupplier.get().isIncognitoBranded());
|
||||||
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl();
|
|
||||||
+ url = gurl != null ? gurl.getSpec() : url;
|
+ url = gurl != null ? gurl.getSpec() : url;
|
||||||
+ }
|
+ }
|
||||||
TabGroupUtils.openUrlInGroup(
|
TabGroupUtils.openUrlInGroup(
|
||||||
tabGroupModelFilter,
|
tabGroupModelFilter,
|
||||||
- UrlConstants.NTP_URL,
|
- resolver.getNtpUrl(),
|
||||||
+ url,
|
+ url,
|
||||||
tabId,
|
tabId,
|
||||||
TabLaunchType.FROM_TAB_GROUP_UI);
|
TabLaunchType.FROM_TAB_GROUP_UI);
|
||||||
@@ -127,7 +134,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||||
@@ -231,6 +231,22 @@ public class HomepageManager
|
@@ -264,6 +264,22 @@ public class HomepageManager
|
||||||
notifyHomepageUpdated();
|
notifyHomepageUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,15 +160,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
|
||||||
@@ -25,6 +25,7 @@ import org.chromium.components.browser_ui.settings.SettingsUtils;
|
@@ -28,6 +28,7 @@ import org.chromium.components.browser_ui.settings.SettingsUtils;
|
||||||
import org.chromium.components.embedder_support.util.UrlUtilities;
|
import org.chromium.components.embedder_support.util.UrlUtilities;
|
||||||
import org.chromium.components.url_formatter.UrlFormatter;
|
import org.chromium.components.url_formatter.UrlFormatter;
|
||||||
import org.chromium.url.GURL;
|
import org.chromium.url.GURL;
|
||||||
+import org.chromium.components.embedder_support.util.UrlConstants;
|
+import org.chromium.components.embedder_support.util.UrlConstants;
|
||||||
|
|
||||||
/** Fragment that allows the user to configure homepage related preferences. */
|
/** Fragment that allows the user to configure homepage related preferences. */
|
||||||
public class HomepageSettings extends ChromeBaseSettingsFragment {
|
@NullMarked
|
||||||
@@ -33,6 +34,8 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
|
@@ -37,6 +38,8 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public static final String PREF_HOMEPAGE_RADIO_GROUP = "homepage_radio_group";
|
public static final String PREF_HOMEPAGE_RADIO_GROUP = "homepage_radio_group";
|
||||||
|
|
||||||
@@ -169,9 +176,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
|
|||||||
+
|
+
|
||||||
private HomepageManager mHomepageManager;
|
private HomepageManager mHomepageManager;
|
||||||
private RadioButtonGroupHomepagePreference mRadioButtons;
|
private RadioButtonGroupHomepagePreference mRadioButtons;
|
||||||
private final ObservableSupplierImpl<String> mPageTitle = new ObservableSupplierImpl<>();
|
private final SettableMonotonicObservableSupplier<String> mPageTitle =
|
||||||
@@ -69,6 +72,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
|
@@ -105,6 +108,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
|
||||||
});
|
mRadioButtons.setOnHomepagePreferenceChangeListener(this::onRadioButtonGroupChanged);
|
||||||
mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup());
|
mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup());
|
||||||
|
|
||||||
+ ChromeSwitchPreference mNTPIsHomepageSwitch =
|
+ ChromeSwitchPreference mNTPIsHomepageSwitch =
|
||||||
@@ -189,7 +196,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
|
||||||
@@ -113,7 +113,6 @@ public class LaunchMetrics {
|
@@ -136,7 +136,6 @@ public class LaunchMetrics {
|
||||||
public static void recordHomePageLaunchMetrics(
|
public static void recordHomePageLaunchMetrics(
|
||||||
boolean showHomeButton, boolean homepageIsNtp, GURL homepageGurl) {
|
boolean showHomeButton, boolean homepageIsNtp, GURL homepageGurl) {
|
||||||
if (homepageGurl.isEmpty()) {
|
if (homepageGurl.isEmpty()) {
|
||||||
@@ -200,7 +207,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchM
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||||
@@ -23,6 +23,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingDelegateFact
|
@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingDelegateFact
|
||||||
import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask;
|
import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask;
|
||||||
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
|
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
|
||||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||||
@@ -208,13 +215,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||||||
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge;
|
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge;
|
||||||
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState;
|
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState;
|
||||||
import org.chromium.chrome.browser.profiles.Profile;
|
import org.chromium.chrome.browser.profiles.Profile;
|
||||||
@@ -530,6 +531,13 @@ public class ChromeTabCreator extends TabCreator
|
@@ -575,6 +576,13 @@ public class ChromeTabCreator implements TabCreator, NeedsTabModel, NeedsTabMode
|
||||||
* @return the created tab.
|
|
||||||
*/
|
*/
|
||||||
public Tab launchUrl(String url, @TabLaunchType int type, Intent intent, long intentTimestamp) {
|
public @Nullable Tab launchUrl(
|
||||||
|
String url, @TabLaunchType int type, @Nullable Intent intent, long intentTimestamp) {
|
||||||
+ if (!mIncognito && url.equals(UrlConstants.NTP_URL)) {
|
+ if (!mIncognito && url.equals(UrlConstants.NTP_URL)) {
|
||||||
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
||||||
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl();
|
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl(mIncognito);
|
||||||
+ url = gurl != null ? gurl.getSpec() : url;
|
+ url = gurl != null ? gurl.getSpec() : url;
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
@@ -225,7 +232,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||||||
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
||||||
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
||||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
||||||
@@ -326,6 +326,7 @@ public final class ChromePreferenceKeys {
|
@@ -426,6 +426,7 @@ public final class ChromePreferenceKeys {
|
||||||
public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP";
|
public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP";
|
||||||
public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled";
|
public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled";
|
||||||
|
|
||||||
@@ -247,7 +254,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
|||||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
@@ -1480,6 +1480,9 @@ Your Google account may have other forms of browsing history like searches and a
|
@@ -1465,6 +1465,9 @@ Your Google account may have other forms of browsing history like searches and a
|
||||||
<message name="IDS_CLEAR_BROWSING_DATA_TAB_PERIOD_HOUR" desc="The option to delete browsing data from the last hour.">
|
<message name="IDS_CLEAR_BROWSING_DATA_TAB_PERIOD_HOUR" desc="The option to delete browsing data from the last hour.">
|
||||||
Last hour
|
Last hour
|
||||||
</message>
|
</message>
|
||||||
@@ -260,19 +267,19 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||||||
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
|
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
|
||||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||||
@@ -107,6 +107,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
@@ -128,6 +128,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||||
|
pref_registration_flags);
|
||||||
registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false,
|
registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false,
|
||||||
pref_registration_flags);
|
pref_registration_flags);
|
||||||
+ registry->RegisterBooleanPref(prefs::kNewTabPageIsHomePage, false,
|
+ registry->RegisterBooleanPref(prefs::kNewTabPageIsHomePage, false,
|
||||||
+ PrefRegistry::NO_REGISTRATION_FLAGS);
|
+ PrefRegistry::NO_REGISTRATION_FLAGS);
|
||||||
|
|
||||||
registry->RegisterInt64Pref(prefs::kDefaultBrowserLastDeclined, 0);
|
registry->RegisterInt64Pref(prefs::kDefaultBrowserInfobarLastDeclined, 0);
|
||||||
registry->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, true);
|
registry->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, true);
|
||||||
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
||||||
--- a/chrome/common/pref_names.h
|
--- a/chrome/common/pref_names.h
|
||||||
+++ b/chrome/common/pref_names.h
|
+++ b/chrome/common/pref_names.h
|
||||||
@@ -1328,6 +1328,10 @@ inline constexpr char kPinSplitTabButton[] = "browser.pin_split_tab_button";
|
@@ -868,6 +868,10 @@ inline constexpr char kSplitViewDragAndDropNudgeUsedCount[] =
|
||||||
// by enterprise policy.
|
// by enterprise policy.
|
||||||
inline constexpr char kGeminiSettings[] = "browser.gemini_settings";
|
inline constexpr char kGeminiSettings[] = "browser.gemini_settings";
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
components/search_engines/BUILD.gn | 3 ++
|
components/search_engines/BUILD.gn | 3 ++
|
||||||
components/search_engines/cromite/BUILD.gn | 12 ++++++
|
components/search_engines/cromite/BUILD.gn | 12 ++++++
|
||||||
.../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++
|
.../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++
|
||||||
.../search_engine_choice_utils.cc | 5 +--
|
.../search_engine_choice_utils.cc | 9 +----
|
||||||
.../search_engines/search_engine_type.h | 5 +++
|
.../search_engines/search_engine_type.h | 5 +++
|
||||||
.../template_url_prepopulate_data.cc | 21 +++++++++-
|
.../template_url_prepopulate_data.cc | 21 +++++++++-
|
||||||
.../template_url_prepopulate_data.h | 9 -----
|
.../template_url_prepopulate_data.h | 9 -----
|
||||||
@@ -20,7 +20,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
tools/json_to_struct/json_to_struct.py | 26 ++++++++----
|
tools/json_to_struct/json_to_struct.py | 26 ++++++++----
|
||||||
tools/json_to_struct/struct_generator.py | 10 +++--
|
tools/json_to_struct/struct_generator.py | 10 +++--
|
||||||
tools/variations/fieldtrial_to_struct.py | 4 +-
|
tools/variations/fieldtrial_to_struct.py | 4 +-
|
||||||
12 files changed, 113 insertions(+), 28 deletions(-)
|
12 files changed, 113 insertions(+), 32 deletions(-)
|
||||||
create mode 100644 components/resources/default_100_percent/search_engine_choice/default_favicon.png
|
create mode 100644 components/resources/default_100_percent/search_engine_choice/default_favicon.png
|
||||||
create mode 100644 components/search_engines/cromite/BUILD.gn
|
create mode 100644 components/search_engines/cromite/BUILD.gn
|
||||||
create mode 100644 components/search_engines/cromite/cromite_prepopulated_engines.json
|
create mode 100644 components/search_engines/cromite/cromite_prepopulated_engines.json
|
||||||
@@ -55,7 +55,7 @@ HcmV?d00001
|
|||||||
diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn
|
diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn
|
||||||
--- a/components/search_engines/BUILD.gn
|
--- a/components/search_engines/BUILD.gn
|
||||||
+++ b/components/search_engines/BUILD.gn
|
+++ b/components/search_engines/BUILD.gn
|
||||||
@@ -72,6 +72,7 @@ static_library("search_engines") {
|
@@ -74,6 +74,7 @@ static_library("search_engines") {
|
||||||
"//third_party/metrics_proto",
|
"//third_party/metrics_proto",
|
||||||
"//third_party/omnibox_proto",
|
"//third_party/omnibox_proto",
|
||||||
"//third_party/search_engines_data:prepopulated_engines",
|
"//third_party/search_engines_data:prepopulated_engines",
|
||||||
@@ -63,18 +63,18 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL
|
|||||||
]
|
]
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
@@ -163,6 +164,7 @@ source_set("search_engine_utils") {
|
@@ -165,6 +166,7 @@ source_set("search_engine_utils") {
|
||||||
":search_engine_type",
|
"//components/regional_capabilities",
|
||||||
"//components/google/core/common",
|
"//components/regional_capabilities:switches",
|
||||||
"//third_party/search_engines_data:prepopulated_engines",
|
"//third_party/search_engines_data:prepopulated_engines",
|
||||||
+ "cromite:cromite_prepopulated_engines",
|
+ "cromite:cromite_prepopulated_engines",
|
||||||
]
|
]
|
||||||
|
|
||||||
deps = [ "//url" ]
|
deps = [ "//url" ]
|
||||||
@@ -252,6 +254,7 @@ source_set("unit_tests") {
|
@@ -264,6 +266,7 @@ source_set("unit_tests") {
|
||||||
"//testing/gmock",
|
|
||||||
"//testing/gtest",
|
"//testing/gtest",
|
||||||
"//third_party/search_engines_data:prepopulated_engines",
|
"//third_party/search_engines_data:prepopulated_engines",
|
||||||
|
"//third_party/search_engines_data:regional_settings",
|
||||||
+ "cromite:cromite_prepopulated_engines",
|
+ "cromite:cromite_prepopulated_engines",
|
||||||
"//ui/base",
|
"//ui/base",
|
||||||
"//url",
|
"//url",
|
||||||
@@ -141,7 +141,7 @@ new file mode 100644
|
|||||||
diff --git a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
|
diff --git a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
|
||||||
--- a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
|
--- a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
|
||||||
+++ b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
|
+++ b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
|
||||||
@@ -182,10 +182,7 @@ void RecordChoiceScreenDefaultSearchProviderType(
|
@@ -211,14 +211,7 @@ void RecordChoiceScreenDefaultSearchProviderType(
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordChoiceScreenSelectedIndex(int selected_engine_index) {
|
void RecordChoiceScreenSelectedIndex(int selected_engine_index) {
|
||||||
@@ -149,6 +149,10 @@ diff --git a/components/search_engines/search_engine_choice/search_engine_choice
|
|||||||
- kSearchEngineChoiceScreenSelectedEngineIndexHistogram,
|
- kSearchEngineChoiceScreenSelectedEngineIndexHistogram,
|
||||||
- selected_engine_index,
|
- selected_engine_index,
|
||||||
- TemplateURLPrepopulateData::kMaxEeaPrepopulatedEngines);
|
- TemplateURLPrepopulateData::kMaxEeaPrepopulatedEngines);
|
||||||
|
- base::PumaHistogramExactLinear(
|
||||||
|
- base::PumaType::kRc, kPumaSearchChoiceScreenSelectedEngineIndexHistogram,
|
||||||
|
- selected_engine_index,
|
||||||
|
- TemplateURLPrepopulateData::kMaxEeaPrepopulatedEngines);
|
||||||
+ // do nothing in Cromite
|
+ // do nothing in Cromite
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,12 +160,12 @@ diff --git a/components/search_engines/search_engine_choice/search_engine_choice
|
|||||||
diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h
|
diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h
|
||||||
--- a/components/search_engines/search_engine_type.h
|
--- a/components/search_engines/search_engine_type.h
|
||||||
+++ b/components/search_engines/search_engine_type.h
|
+++ b/components/search_engines/search_engine_type.h
|
||||||
@@ -97,11 +97,16 @@ enum SearchEngineType {
|
@@ -99,11 +99,16 @@ enum SearchEngineType {
|
||||||
SEARCH_ENGINE_MCAFEE = 77,
|
|
||||||
SEARCH_ENGINE_FREESPOKE = 78,
|
|
||||||
SEARCH_ENGINE_KAGI = 79,
|
SEARCH_ENGINE_KAGI = 79,
|
||||||
+ SEARCH_ENGINE_GOOGLE_EN = 80,
|
SEARCH_ENGINE_STARTER_PACK_AI_MODE = 80,
|
||||||
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 81,
|
SEARCH_ENGINE_YAHOO_JP = 81,
|
||||||
|
+ SEARCH_ENGINE_GOOGLE_EN = 82,
|
||||||
|
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 83,
|
||||||
|
|
||||||
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
|
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
|
||||||
};
|
};
|
||||||
@@ -176,7 +180,7 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_
|
|||||||
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
|
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
|
||||||
--- a/components/search_engines/template_url_prepopulate_data.cc
|
--- a/components/search_engines/template_url_prepopulate_data.cc
|
||||||
+++ b/components/search_engines/template_url_prepopulate_data.cc
|
+++ b/components/search_engines/template_url_prepopulate_data.cc
|
||||||
@@ -28,6 +28,8 @@
|
@@ -29,6 +29,8 @@
|
||||||
#include "components/search_engines/template_url_data_util.h"
|
#include "components/search_engines/template_url_data_util.h"
|
||||||
#include "third_party/search_engines_data/resources/definitions/prepopulated_engines.h"
|
#include "third_party/search_engines_data/resources/definitions/prepopulated_engines.h"
|
||||||
|
|
||||||
@@ -185,22 +189,22 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||||||
namespace TemplateURLPrepopulateData {
|
namespace TemplateURLPrepopulateData {
|
||||||
|
|
||||||
// Helpers --------------------------------------------------------------------
|
// Helpers --------------------------------------------------------------------
|
||||||
@@ -123,7 +125,7 @@ int GetDataVersion(PrefService* prefs) {
|
@@ -172,7 +174,7 @@ int GetDataVersion(PrefService* prefs) {
|
||||||
kCurrentDataVersion;
|
return kCurrentDataVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
-std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
|
-std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
|
||||||
+std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEnginesChromium(
|
+std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEnginesChromium(
|
||||||
PrefService& prefs,
|
PrefService& prefs,
|
||||||
std::vector<const TemplateURLPrepopulateData::PrepopulatedEngine*>
|
const std::vector<const PrepopulatedEngine*>&
|
||||||
regional_prepopulated_engines) {
|
regional_prepopulated_engines) {
|
||||||
@@ -139,6 +141,17 @@ std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
|
@@ -188,6 +190,17 @@ std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
|
||||||
&PrepopulatedEngineToTemplateURLData);
|
&PrepopulatedEngineToTemplateURLData);
|
||||||
}
|
}
|
||||||
|
|
||||||
+std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
|
+std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
|
||||||
+ PrefService& prefs,
|
+ PrefService& prefs,
|
||||||
+ std::vector<const TemplateURLPrepopulateData::PrepopulatedEngine*>
|
+ const std::vector<const PrepopulatedEngine*>&
|
||||||
+ regional_prepopulated_engines) {
|
+ regional_prepopulated_engines) {
|
||||||
+ std::vector<std::unique_ptr<TemplateURLData>> t_urls =
|
+ std::vector<std::unique_ptr<TemplateURLData>> t_urls =
|
||||||
+ GetPrepopulatedEnginesChromium(prefs, regional_prepopulated_engines);
|
+ GetPrepopulatedEnginesChromium(prefs, regional_prepopulated_engines);
|
||||||
@@ -211,16 +215,17 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||||||
+
|
+
|
||||||
std::unique_ptr<TemplateURLData> GetPrepopulatedEngine(
|
std::unique_ptr<TemplateURLData> GetPrepopulatedEngine(
|
||||||
PrefService& prefs,
|
PrefService& prefs,
|
||||||
std::vector<const TemplateURLPrepopulateData::PrepopulatedEngine*>
|
const std::vector<const PrepopulatedEngine*>& regional_prepopulated_engines,
|
||||||
@@ -160,9 +173,13 @@ std::vector<std::unique_ptr<TemplateURLData>> GetLocalPrepopulatedEngines(
|
@@ -208,10 +221,14 @@ std::vector<std::unique_ptr<TemplateURLData>> GetLocalPrepopulatedEngines(
|
||||||
return std::vector<std::unique_ptr<TemplateURLData>>();
|
return std::vector<std::unique_ptr<TemplateURLData>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
- return base::ToVector(
|
- return base::ToVector(regional_capabilities::GetPrepopulatedEngines(
|
||||||
+ std::vector<std::unique_ptr<TemplateURLData>> t_urls =
|
+ std::vector<std::unique_ptr<TemplateURLData>> t_urls =
|
||||||
+ base::ToVector(
|
+ base::ToVector(regional_capabilities::GetPrepopulatedEngines(
|
||||||
regional_capabilities::GetPrepopulatedEngines(country_id, prefs),
|
country_id, prefs,
|
||||||
&PrepopulatedEngineToTemplateURLData);
|
regional_capabilities::SearchEngineListType::kTopN),
|
||||||
|
&PrepopulatedEngineToTemplateURLData);
|
||||||
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen));
|
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen));
|
||||||
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light));
|
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light));
|
||||||
+ return t_urls;
|
+ return t_urls;
|
||||||
@@ -260,8 +265,8 @@ diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json
|
|||||||
+
|
+
|
||||||
action(action_name) {
|
action(action_name) {
|
||||||
visibility = [ ":$source_set_name" ]
|
visibility = [ ":$source_set_name" ]
|
||||||
script = "//build/gn_run_binary.py"
|
script = "//tools/json_to_struct/json_to_struct.py"
|
||||||
@@ -63,6 +68,10 @@ template("json_to_struct") {
|
@@ -61,6 +66,10 @@ template("json_to_struct") {
|
||||||
"--namespace=" + invoker.namespace,
|
"--namespace=" + invoker.namespace,
|
||||||
"--schema=" + rebase_path(invoker.schema_file, root_build_dir),
|
"--schema=" + rebase_path(invoker.schema_file, root_build_dir),
|
||||||
]
|
]
|
||||||
@@ -275,7 +280,7 @@ diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json
|
|||||||
diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_to_struct.py
|
diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_to_struct.py
|
||||||
--- a/tools/json_to_struct/json_to_struct.py
|
--- a/tools/json_to_struct/json_to_struct.py
|
||||||
+++ b/tools/json_to_struct/json_to_struct.py
|
+++ b/tools/json_to_struct/json_to_struct.py
|
||||||
@@ -103,7 +103,7 @@ def _GenerateHeaderGuard(h_filename):
|
@@ -104,7 +104,7 @@ def _GenerateHeaderGuard(h_filename):
|
||||||
return re.sub(u'^_*', '', result) + u'_' # Remove leading underscores.
|
return re.sub(u'^_*', '', result) + u'_' # Remove leading underscores.
|
||||||
|
|
||||||
|
|
||||||
@@ -284,7 +289,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
|
|||||||
"""Generates the .h file containing the definition of the structure specified
|
"""Generates the .h file containing the definition of the structure specified
|
||||||
by the schema.
|
by the schema.
|
||||||
|
|
||||||
@@ -147,11 +147,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
@@ -148,11 +148,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
||||||
f.write(u'#include "%s"\n' % header)
|
f.write(u'#include "%s"\n' % header)
|
||||||
f.write(u'\n')
|
f.write(u'\n')
|
||||||
|
|
||||||
@@ -301,7 +306,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
|
|||||||
schema['type_name'], schema['schema']))
|
schema['type_name'], schema['schema']))
|
||||||
f.write(u'\n')
|
f.write(u'\n')
|
||||||
|
|
||||||
@@ -176,7 +180,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
@@ -177,7 +181,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
||||||
f.write(u'#endif // %s\n' % header_guard)
|
f.write(u'#endif // %s\n' % header_guard)
|
||||||
|
|
||||||
|
|
||||||
@@ -310,7 +315,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
|
|||||||
"""Generates the .cc file containing the static initializers for the
|
"""Generates the .cc file containing the static initializers for the
|
||||||
of the elements specified in the description.
|
of the elements specified in the description.
|
||||||
|
|
||||||
@@ -211,7 +215,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description):
|
@@ -212,7 +216,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description):
|
||||||
f.write(element_generator.GenerateElements(schema['type_name'],
|
f.write(element_generator.GenerateElements(schema['type_name'],
|
||||||
schema['schema'], description))
|
schema['schema'], description))
|
||||||
|
|
||||||
@@ -319,7 +324,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
|
|||||||
f.write('\n} // anonymous namespace \n\n')
|
f.write('\n} // anonymous namespace \n\n')
|
||||||
|
|
||||||
aggregated = GenerateCCAggregation(schema['type_name'], aggregation)
|
aggregated = GenerateCCAggregation(schema['type_name'], aggregation)
|
||||||
@@ -298,7 +302,7 @@ def GenerateClass(basepath,
|
@@ -299,7 +303,7 @@ def GenerateClass(basepath,
|
||||||
|
|
||||||
|
|
||||||
def GenerateStruct(basepath, output_root, namespace, schema, description,
|
def GenerateStruct(basepath, output_root, namespace, schema, description,
|
||||||
@@ -328,7 +333,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
|
|||||||
"""Generates a C++ struct from a JSON description.
|
"""Generates a C++ struct from a JSON description.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@@ -317,8 +321,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description,
|
@@ -318,8 +322,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description,
|
||||||
"""
|
"""
|
||||||
year = int(year) if year else datetime.now().year
|
year = int(year) if year else datetime.now().year
|
||||||
head = HEAD % (year, schema_filename, description_filename)
|
head = HEAD % (year, schema_filename, description_filename)
|
||||||
@@ -339,7 +344,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = optparse.OptionParser(
|
parser = optparse.OptionParser(
|
||||||
@@ -333,11 +337,17 @@ if __name__ == '__main__':
|
@@ -334,11 +338,17 @@ if __name__ == '__main__':
|
||||||
parser.add_option('-s', '--schema', help='path to the schema file, '
|
parser.add_option('-s', '--schema', help='path to the schema file, '
|
||||||
'mandatory.')
|
'mandatory.')
|
||||||
parser.add_option('-o', '--output', help='output filename, ')
|
parser.add_option('-o', '--output', help='output filename, ')
|
||||||
@@ -357,7 +362,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
|
|||||||
description_filename = os.path.normpath(args[0])
|
description_filename = os.path.normpath(args[0])
|
||||||
root, ext = os.path.splitext(description_filename)
|
root, ext = os.path.splitext(description_filename)
|
||||||
shortroot = opts.output if opts.output else os.path.split(root)[1]
|
shortroot = opts.output if opts.output else os.path.split(root)[1]
|
||||||
@@ -354,4 +364,4 @@ if __name__ == '__main__':
|
@@ -355,4 +365,4 @@ if __name__ == '__main__':
|
||||||
schema = _Load(opts.schema)
|
schema = _Load(opts.schema)
|
||||||
description = _Load(description_filename)
|
description = _Load(description_filename)
|
||||||
GenerateStruct(basepath, output_root, opts.namespace, schema, description,
|
GenerateStruct(basepath, output_root, opts.namespace, schema, description,
|
||||||
@@ -397,7 +402,7 @@ diff --git a/tools/json_to_struct/struct_generator.py b/tools/json_to_struct/str
|
|||||||
diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py
|
diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py
|
||||||
--- a/tools/variations/fieldtrial_to_struct.py
|
--- a/tools/variations/fieldtrial_to_struct.py
|
||||||
+++ b/tools/variations/fieldtrial_to_struct.py
|
+++ b/tools/variations/fieldtrial_to_struct.py
|
||||||
@@ -235,14 +235,14 @@ def main(arguments):
|
@@ -210,14 +210,14 @@ def main(arguments):
|
||||||
json_to_struct.GenerateStruct(
|
json_to_struct.GenerateStruct(
|
||||||
basepath, output_root, opts.namespace, schema, description,
|
basepath, output_root, opts.namespace, schema, description,
|
||||||
os.path.split(description_filename)[1], os.path.split(opts.schema)[1],
|
os.path.split(description_filename)[1], os.path.split(opts.schema)[1],
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,343 @@
|
|||||||
|
From: uazo <uazo@users.noreply.github.com>
|
||||||
|
Date: Thu, 9 Oct 2025 09:11:01 +0000
|
||||||
|
Subject: Add setting to enable Credman for passkeys
|
||||||
|
|
||||||
|
Enables Credential Manager for passkey management on A14+ devices via a switch
|
||||||
|
in the settings. By default, the feature is disabled.
|
||||||
|
In other versions of Android, webauthn appears to be enabled on websites but
|
||||||
|
always returns a timeout error as per specifications.
|
||||||
|
Conditional immediate support is disabled.
|
||||||
|
|
||||||
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
|
---
|
||||||
|
.../settings/PasswordSettings.java | 27 +++++++++++++++++++
|
||||||
|
.../touch_to_fill_controller.cc | 2 ++
|
||||||
|
...etting-to-enable-Credman-for-passkeys.grdp | 12 +++++++++
|
||||||
|
.../webauthn/AuthenticatorImpl.java | 24 +++++++----------
|
||||||
|
.../components/webauthn/WebauthnFeatures.java | 2 ++
|
||||||
|
.../cred_man/CredManSupportProvider.java | 25 +++++------------
|
||||||
|
.../webauthn/android/webauthn_feature_map.cc | 1 +
|
||||||
|
components/webauthn/features.cc | 4 +++
|
||||||
|
components/webauthn/features.h | 3 +++
|
||||||
|
device/fido/public/features.cc | 1 +
|
||||||
|
.../authentication_credentials_container.cc | 5 ++++
|
||||||
|
11 files changed, 73 insertions(+), 33 deletions(-)
|
||||||
|
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-enable-Credman-for-passkeys.grdp
|
||||||
|
|
||||||
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||||
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||||
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||||
|
@@ -11,6 +11,7 @@ import android.app.Activity;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.net.Uri;
|
||||||
|
+import android.os.Build;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.text.SpannableString;
|
||||||
|
import android.text.style.ForegroundColorSpan;
|
||||||
|
@@ -68,6 +69,10 @@ import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
|
||||||
|
import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
|
||||||
|
import org.chromium.chrome.browser.lifetime.ApplicationLifetime;
|
||||||
|
|
||||||
|
+import org.chromium.chrome.browser.flags.CromiteNativeUtils;
|
||||||
|
+import org.chromium.components.webauthn.WebauthnFeatureMap;
|
||||||
|
+import org.chromium.components.webauthn.WebauthnFeatures;
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* The "Passwords" screen in Settings, which allows the user to enable or disable password saving,
|
||||||
|
* to view saved passwords (just the username and URL), and to delete saved passwords.
|
||||||
|
@@ -334,6 +339,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
||||||
|
createSavePasswordsSwitch();
|
||||||
|
createAutoSignInCheckbox();
|
||||||
|
createEnableAndroidAutofillSwitch();
|
||||||
|
+ createCredManSwitch();
|
||||||
|
|
||||||
|
PasswordManagerHandlerProvider.getForProfile(getProfile())
|
||||||
|
.getPasswordManagerHandler()
|
||||||
|
@@ -687,6 +693,27 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
||||||
|
getPrefService().getBoolean(Pref.CREDENTIALS_ENABLE_AUTOSIGNIN));
|
||||||
|
}
|
||||||
|
|
||||||
|
+ private void createCredManSwitch() {
|
||||||
|
+ ChromeSwitchPreference credManSwitch =
|
||||||
|
+ new ChromeSwitchPreference(getStyledContext(), null);
|
||||||
|
+ credManSwitch.setTitle(R.string.enable_android_credman_title);
|
||||||
|
+ credManSwitch.setOrder(0);
|
||||||
|
+ credManSwitch.setSummary(R.string.enable_android_credman_summary);
|
||||||
|
+ credManSwitch.setChecked(
|
||||||
|
+ WebauthnFeatureMap.getInstance().isEnabled(WebauthnFeatures.WEBAUTHN_ANDROID_PASSKEY));
|
||||||
|
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
|
||||||
|
+ credManSwitch.setSummary(R.string.enable_android_credman_disabled_summary);
|
||||||
|
+ credManSwitch.setEnabled(false);
|
||||||
|
+ }
|
||||||
|
+ credManSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
|
+ CromiteNativeUtils.setFlagEnabled("WebAuthenticationAndroidPasskey", (boolean)newValue);
|
||||||
|
+ if (!mSnackbarManagerSupplier.get().isShowing())
|
||||||
|
+ mSnackbarManagerSupplier.get().showSnackbar(mSnackbar);
|
||||||
|
+ return true;
|
||||||
|
+ });
|
||||||
|
+ getPreferenceScreen().addPreference(credManSwitch);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
private void displayManageAccountLink() {
|
||||||
|
SyncService syncService = SyncServiceFactory.getForProfile(getProfile());
|
||||||
|
if (syncService == null || !syncService.isEngineInitialized()) {
|
||||||
|
diff --git a/chrome/browser/touch_to_fill/password_manager/touch_to_fill_controller.cc b/chrome/browser/touch_to_fill/password_manager/touch_to_fill_controller.cc
|
||||||
|
--- a/chrome/browser/touch_to_fill/password_manager/touch_to_fill_controller.cc
|
||||||
|
+++ b/chrome/browser/touch_to_fill/password_manager/touch_to_fill_controller.cc
|
||||||
|
@@ -312,6 +312,7 @@ void TouchToFillController::Reset() {
|
||||||
|
}
|
||||||
|
visibility_controller_->Reset();
|
||||||
|
credentials_.clear();
|
||||||
|
+ cred_man_delegate_ = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TouchToFillController::ActionCompleted() {
|
||||||
|
@@ -319,6 +320,7 @@ void TouchToFillController::ActionCompleted() {
|
||||||
|
visibility_controller_->SetShown();
|
||||||
|
}
|
||||||
|
ttf_delegate_.reset();
|
||||||
|
+ cred_man_delegate_ = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
DisplayTarget TouchToFillController::GetResponsibleDisplayTarget(
|
||||||
|
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-enable-Credman-for-passkeys.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-enable-Credman-for-passkeys.grdp
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-enable-Credman-for-passkeys.grdp
|
||||||
|
@@ -0,0 +1,12 @@
|
||||||
|
+<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
+<grit-part>
|
||||||
|
+ <message name="IDS_ENABLE_ANDROID_CREDMAN_TITLE" desc="" formatter_data="android_java">
|
||||||
|
+ Enable Android Credential Manager
|
||||||
|
+ </message>
|
||||||
|
+ <message name="IDS_ENABLE_ANDROID_CREDMAN_SUMMARY" desc="" formatter_data="android_java">
|
||||||
|
+ Enable support for Android Credential Manager
|
||||||
|
+ </message>
|
||||||
|
+ <message name="IDS_ENABLE_ANDROID_CREDMAN_DISABLED_SUMMARY" desc="" formatter_data="android_java">
|
||||||
|
+ Not supported on your device (require A14+)
|
||||||
|
+ </message>
|
||||||
|
+</grit-part>
|
||||||
|
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
|
||||||
|
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
|
||||||
|
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
|
||||||
|
@@ -30,6 +30,8 @@ import org.chromium.blink.mojom.WebAuthnClientCapability;
|
||||||
|
import org.chromium.build.annotations.NullMarked;
|
||||||
|
import org.chromium.build.annotations.Nullable;
|
||||||
|
import org.chromium.components.password_manager.BrowserAssistedLoginType;
|
||||||
|
+import org.chromium.components.webauthn.CredManSupport;
|
||||||
|
+import org.chromium.components.webauthn.cred_man.CredManSupportProvider;
|
||||||
|
import org.chromium.components.ukm.UkmRecorder;
|
||||||
|
import org.chromium.content_public.browser.RenderFrameHost;
|
||||||
|
import org.chromium.content_public.browser.Visibility;
|
||||||
|
@@ -167,8 +169,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
|
||||||
|
mIsPaymentRequest = options.isPaymentCredentialCreation;
|
||||||
|
mRequestCallback = requestCallback;
|
||||||
|
mRequestCallback.setCompletionCallback(this::cleanupRequest);
|
||||||
|
- if (!GmsCoreUtils.isWebauthnSupported()
|
||||||
|
- || (!isChrome(mWebContents) && !GmsCoreUtils.isResultReceiverSupported())) {
|
||||||
|
+ if (CredManSupportProvider.getCredManSupport() == CredManSupport.DISABLED) {
|
||||||
|
mRequestCallback.onComplete(
|
||||||
|
WebauthnRequestResponse.forFailedMakeCredential(
|
||||||
|
AuthenticatorStatus.NOT_IMPLEMENTED,
|
||||||
|
@@ -254,8 +255,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
|
||||||
|
&& DeviceFeatureMap.isEnabled(
|
||||||
|
DeviceFeatureList
|
||||||
|
.WEBAUTHN_AUTHENTICATOR_PASSWORDS_ONLY_IMMEDIATE_REQUESTS);
|
||||||
|
- if (!GmsCoreUtils.isWebauthnSupported()
|
||||||
|
- || (!isChrome(mWebContents) && !GmsCoreUtils.isResultReceiverSupported())
|
||||||
|
+ if (CredManSupportProvider.getCredManSupport() == CredManSupport.DISABLED
|
||||||
|
|| (options.publicKey == null && !isPasswordOnlyFlux)) {
|
||||||
|
RequestMetrics metrics =
|
||||||
|
new RequestMetrics.Builder()
|
||||||
|
@@ -300,12 +300,11 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean couldSupportConditionalMediation() {
|
||||||
|
- return GmsCoreUtils.isWebauthnSupported() && isChrome(mWebContents);
|
||||||
|
+ return isChrome(mWebContents);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean couldSupportUvpaa() {
|
||||||
|
- return GmsCoreUtils.isWebauthnSupported()
|
||||||
|
- && (isChrome(mWebContents) || GmsCoreUtils.isResultReceiverSupported());
|
||||||
|
+ return isChrome(mWebContents);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@@ -379,22 +378,19 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
|
||||||
|
capabilities.add(
|
||||||
|
createWebAuthnClientCapability(
|
||||||
|
AuthenticatorConstants.CAPABILITY_CONDITIONAL_GET,
|
||||||
|
- couldSupportConditionalMediation() && isUvpaa));
|
||||||
|
+ true));
|
||||||
|
capabilities.add(
|
||||||
|
createWebAuthnClientCapability(
|
||||||
|
AuthenticatorConstants.CAPABILITY_UVPAA,
|
||||||
|
- couldSupportUvpaa() && isUvpaa));
|
||||||
|
+ true));
|
||||||
|
capabilities.add(
|
||||||
|
createWebAuthnClientCapability(
|
||||||
|
AuthenticatorConstants.CAPABILITY_CONDITIONAL_CREATE,
|
||||||
|
- isUvpaa && couldSupportConditionalMediation()));
|
||||||
|
+ true));
|
||||||
|
capabilities.add(
|
||||||
|
createWebAuthnClientCapability(
|
||||||
|
AuthenticatorConstants.CAPABILITY_IMMEDIATE_GET,
|
||||||
|
- DeviceFeatureMap.isEnabled(
|
||||||
|
- DeviceFeatureList
|
||||||
|
- .WEBAUTHN_IMMEDIATE_GET)
|
||||||
|
- && isUvpaa));
|
||||||
|
+ false));
|
||||||
|
capabilities.add(
|
||||||
|
createWebAuthnClientCapability(
|
||||||
|
AuthenticatorConstants
|
||||||
|
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java
|
||||||
|
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java
|
||||||
|
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java
|
||||||
|
@@ -19,4 +19,6 @@ public abstract class WebauthnFeatures {
|
||||||
|
public static final String WEBAUTHN_ANDROID_CRED_MAN_FOR_DEV = "WebAuthnAndroidCredManForDev";
|
||||||
|
public static final String WEBAUTHN_ANDROID_CRED_MAN_REQUEST_EXTRA_BUNDLE =
|
||||||
|
"WebAuthenticationAndroidCredManRequestExtraBundle";
|
||||||
|
+ public static final String WEBAUTHN_ANDROID_PASSKEY =
|
||||||
|
+ "WebAuthenticationAndroidPasskey";
|
||||||
|
}
|
||||||
|
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManSupportProvider.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManSupportProvider.java
|
||||||
|
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManSupportProvider.java
|
||||||
|
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManSupportProvider.java
|
||||||
|
@@ -19,11 +19,11 @@ import org.chromium.base.version_info.VersionInfo;
|
||||||
|
import org.chromium.build.annotations.NullMarked;
|
||||||
|
import org.chromium.build.annotations.Nullable;
|
||||||
|
import org.chromium.components.webauthn.CredManSupport;
|
||||||
|
-import org.chromium.components.webauthn.GmsCoreUtils;
|
||||||
|
import org.chromium.components.webauthn.WebauthnFeatureMap;
|
||||||
|
import org.chromium.components.webauthn.WebauthnFeatures;
|
||||||
|
import org.chromium.components.webauthn.WebauthnMode;
|
||||||
|
import org.chromium.components.webauthn.WebauthnModeProvider;
|
||||||
|
+import org.chromium.components.webauthn.WebauthnLogger;
|
||||||
|
|
||||||
|
@NullMarked
|
||||||
|
public class CredManSupportProvider {
|
||||||
|
@@ -79,12 +79,12 @@ public class CredManSupportProvider {
|
||||||
|
}
|
||||||
|
if (getAndroidVersion() < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
|
||||||
|
sCredManSupport = CredManSupport.DISABLED;
|
||||||
|
- log(TAG, "Disabled because of Android version.");
|
||||||
|
+ WebauthnLogger.logError(TAG, "Disabled because of Android version.");
|
||||||
|
return sCredManSupport;
|
||||||
|
}
|
||||||
|
- if (notSkippedBecauseInTests() && hasOldGmsVersion()) {
|
||||||
|
+ if (!WebauthnFeatureMap.getInstance().isEnabled(WebauthnFeatures.WEBAUTHN_ANDROID_PASSKEY)) {
|
||||||
|
sCredManSupport = CredManSupport.DISABLED;
|
||||||
|
- log(TAG, "Disabled because of old GMS version.");
|
||||||
|
+ WebauthnLogger.logError(TAG, "Disabled because of user.");
|
||||||
|
return sCredManSupport;
|
||||||
|
}
|
||||||
|
if (notSkippedBecauseInTests()
|
||||||
|
@@ -92,14 +92,14 @@ public class CredManSupportProvider {
|
||||||
|
== null) {
|
||||||
|
sCredManSupport = CredManSupport.DISABLED;
|
||||||
|
recordCredManAvailability(/* available= */ false);
|
||||||
|
- log(TAG, "Disabled because CredentialManager is not available.");
|
||||||
|
+ WebauthnLogger.logError(TAG, "Disabled because CredentialManager is not available.");
|
||||||
|
return sCredManSupport;
|
||||||
|
}
|
||||||
|
recordCredManAvailability(/* available= */ true);
|
||||||
|
|
||||||
|
final CredManUiRecommender recommender =
|
||||||
|
ServiceLoaderUtil.maybeCreate(CredManUiRecommender.class);
|
||||||
|
- boolean customUiRecommended = recommender != null && recommender.recommendsCustomUi();
|
||||||
|
+ boolean customUiRecommended = true;
|
||||||
|
boolean gpmInCredMan =
|
||||||
|
sOverrideForcesGpm != null ? sOverrideForcesGpm : customUiRecommended;
|
||||||
|
boolean isChrome3pPwmMode =
|
||||||
|
@@ -138,13 +138,6 @@ public class CredManSupportProvider {
|
||||||
|
"WebAuthentication.Android.CredManAvailability", available);
|
||||||
|
}
|
||||||
|
|
||||||
|
- private static boolean hasOldGmsVersion() {
|
||||||
|
- assert sOverrideAndroidVersion == null : "Don't use in testing!";
|
||||||
|
- // The check works for unavailable and low GMS versions. `getGmsCoreVersion()` is -1 if the
|
||||||
|
- // GMS version can't be retrieved. Chrome assumes an insufficient GMS availability then.
|
||||||
|
- return GmsCoreUtils.getGmsCoreVersion() < getMinGmsVersionForCurrentChannel();
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
private static int getAndroidVersion() {
|
||||||
|
return sOverrideAndroidVersion == null ? Build.VERSION.SDK_INT : sOverrideAndroidVersion;
|
||||||
|
}
|
||||||
|
@@ -152,10 +145,4 @@ public class CredManSupportProvider {
|
||||||
|
private static boolean notSkippedBecauseInTests() {
|
||||||
|
return sOverrideForcesGpm == null && sOverrideAndroidVersion == null;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- private static int getMinGmsVersionForCurrentChannel() {
|
||||||
|
- return (VersionInfo.isBetaBuild() || VersionInfo.isStableBuild())
|
||||||
|
- ? GMSCORE_MIN_VERSION_BETA_STABLE
|
||||||
|
- : GMSCORE_MIN_VERSION_CANARY_DEV;
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
diff --git a/components/webauthn/android/webauthn_feature_map.cc b/components/webauthn/android/webauthn_feature_map.cc
|
||||||
|
--- a/components/webauthn/android/webauthn_feature_map.cc
|
||||||
|
+++ b/components/webauthn/android/webauthn_feature_map.cc
|
||||||
|
@@ -18,6 +18,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||||
|
&kWebAuthnAndroidPasskeyCacheMigration,
|
||||||
|
&kWebAuthnAndroidCredManForDev,
|
||||||
|
&kWebAuthnAndroidCredManRequestExtraBundle,
|
||||||
|
+ &kWebAuthnAndroidPasskey,
|
||||||
|
};
|
||||||
|
|
||||||
|
// static
|
||||||
|
diff --git a/components/webauthn/features.cc b/components/webauthn/features.cc
|
||||||
|
--- a/components/webauthn/features.cc
|
||||||
|
+++ b/components/webauthn/features.cc
|
||||||
|
@@ -34,6 +34,10 @@ BASE_FEATURE(kWebAuthnAndroidCredManRequestExtraBundle,
|
||||||
|
BASE_FEATURE(kWebAuthnConditionalUiSuppressedOnWebView,
|
||||||
|
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||||
|
|
||||||
|
+CROMITE_FEATURE(kWebAuthnAndroidPasskey,
|
||||||
|
+ "WebAuthenticationAndroidPasskey",
|
||||||
|
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
|
+
|
||||||
|
#endif // BUILDFLAG(IS_ANDROID)
|
||||||
|
|
||||||
|
#if !BUILDFLAG(IS_ANDROID)
|
||||||
|
diff --git a/components/webauthn/features.h b/components/webauthn/features.h
|
||||||
|
--- a/components/webauthn/features.h
|
||||||
|
+++ b/components/webauthn/features.h
|
||||||
|
@@ -27,6 +27,9 @@ BASE_DECLARE_FEATURE(kWebAuthnAndroidCredManForDev);
|
||||||
|
COMPONENT_EXPORT(WEBAUTHN)
|
||||||
|
extern const base::FeatureParam<std::string> kWebAuthnAndroidCredManForDevMode;
|
||||||
|
|
||||||
|
+COMPONENT_EXPORT(WEBAUTHN)
|
||||||
|
+BASE_DECLARE_FEATURE(kWebAuthnAndroidPasskey);
|
||||||
|
+
|
||||||
|
// Whether to send a custom bundle values for the CredMan requests. The extras
|
||||||
|
// are used by Google Password Manager.
|
||||||
|
COMPONENT_EXPORT(WEBAUTHN)
|
||||||
|
diff --git a/device/fido/public/features.cc b/device/fido/public/features.cc
|
||||||
|
--- a/device/fido/public/features.cc
|
||||||
|
+++ b/device/fido/public/features.cc
|
||||||
|
@@ -183,6 +183,7 @@ BASE_FEATURE_PARAM(int,
|
||||||
|
BASE_FEATURE(kWebAuthnImmediateGet,
|
||||||
|
"WebAuthenticationImmediateGet",
|
||||||
|
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||||
|
+SET_CROMITE_FEATURE_DISABLED(kWebAuthnImmediateGet);
|
||||||
|
|
||||||
|
BASE_FEATURE_PARAM(int,
|
||||||
|
kWebAuthnImmediateMediationTimeoutMilliseconds,
|
||||||
|
diff --git a/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc b/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc
|
||||||
|
--- a/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc
|
||||||
|
+++ b/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc
|
||||||
|
@@ -1157,6 +1157,11 @@ DOMException* AuthenticatorStatusToDOMException(
|
||||||
|
const WebAuthnDOMExceptionDetailsPtr& dom_exception_details) {
|
||||||
|
DCHECK_EQ(status != AuthenticatorStatus::ERROR_WITH_DOM_EXCEPTION_DETAILS,
|
||||||
|
dom_exception_details.is_null());
|
||||||
|
+ if (status == AuthenticatorStatus::UNKNOWN_ERROR ||
|
||||||
|
+ status == AuthenticatorStatus::NOT_IMPLEMENTED) {
|
||||||
|
+ status = AuthenticatorStatus::NOT_ALLOWED_ERROR;
|
||||||
|
+ base::PlatformThread::Sleep(base::Milliseconds(base::RandInt(1000, 6000)));
|
||||||
|
+ }
|
||||||
|
switch (status) {
|
||||||
|
case AuthenticatorStatus::SUCCESS:
|
||||||
|
NOTREACHED();
|
||||||
|
--
|
||||||
@@ -21,6 +21,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
.../accessibility/AccessibilitySettings.java | 12 +++++++
|
.../accessibility/AccessibilitySettings.java | 12 +++++++
|
||||||
.../AccessibilitySettingsDelegate.java | 2 ++
|
.../AccessibilitySettingsDelegate.java | 2 ++
|
||||||
.../contextmenu/ContextMenuItemDelegate.java | 3 ++
|
.../contextmenu/ContextMenuItemDelegate.java | 3 ++
|
||||||
|
.../ThinWebViewContextMenuItemDelegate.java | 6 ++++
|
||||||
...Add-setting-to-invert-tap-and-long-tap.inc | 8 +++++
|
...Add-setting-to-invert-tap-and-long-tap.inc | 8 +++++
|
||||||
...Add-setting-to-invert-tap-and-long-tap.inc | 3 ++
|
...Add-setting-to-invert-tap-and-long-tap.inc | 3 ++
|
||||||
...Add-setting-to-invert-tap-and-long-tap.inc | 1 +
|
...Add-setting-to-invert-tap-and-long-tap.inc | 1 +
|
||||||
@@ -28,9 +29,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
.../renderer/core/html/html_anchor_element.h | 7 +++-
|
.../renderer/core/html/html_anchor_element.h | 7 +++-
|
||||||
.../renderer/core/html/html_image_element.cc | 17 +++++++++
|
.../renderer/core/html/html_image_element.cc | 17 +++++++++
|
||||||
.../renderer/core/html/html_image_element.h | 2 ++
|
.../renderer/core/html/html_image_element.h | 2 ++
|
||||||
.../core/page/context_menu_controller.cc | 33 ++++++++++++-----
|
.../core/page/context_menu_controller.cc | 23 +++++++++---
|
||||||
.../core/page/context_menu_controller.h | 5 +--
|
.../core/page/context_menu_controller.h | 5 +--
|
||||||
22 files changed, 170 insertions(+), 20 deletions(-)
|
23 files changed, 170 insertions(+), 16 deletions(-)
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc
|
||||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Add-setting-to-invert-tap-and-long-tap.inc
|
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Add-setting-to-invert-tap-and-long-tap.inc
|
||||||
create mode 100644 cromite_flags/third_party/blink/common/features_h/Add-setting-to-invert-tap-and-long-tap.inc
|
create mode 100644 cromite_flags/third_party/blink/common/features_h/Add-setting-to-invert-tap-and-long-tap.inc
|
||||||
@@ -38,15 +39,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java b/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java
|
diff --git a/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java b/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java
|
||||||
--- a/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java
|
--- a/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java
|
||||||
+++ b/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java
|
+++ b/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java
|
||||||
@@ -12,6 +12,7 @@ import org.chromium.base.IntentUtils;
|
@@ -11,6 +11,7 @@ import android.net.Uri;
|
||||||
|
import org.chromium.base.IntentUtils;
|
||||||
import org.chromium.build.annotations.NullMarked;
|
import org.chromium.build.annotations.NullMarked;
|
||||||
import org.chromium.components.embedder_support.contextmenu.ContextMenuItemDelegate;
|
import org.chromium.components.embedder_support.contextmenu.ContextMenuItemDelegate;
|
||||||
import org.chromium.components.embedder_support.contextmenu.ContextMenuParams;
|
|
||||||
+import org.chromium.content_public.common.Referrer;
|
+import org.chromium.content_public.common.Referrer;
|
||||||
import org.chromium.content_public.browser.WebContents;
|
import org.chromium.content_public.browser.WebContents;
|
||||||
import org.chromium.ui.base.Clipboard;
|
import org.chromium.ui.base.Clipboard;
|
||||||
import org.chromium.url.GURL;
|
import org.chromium.url.GURL;
|
||||||
@@ -54,6 +55,9 @@ public class AwContextMenuItemDelegate implements ContextMenuItemDelegate {
|
@@ -52,6 +53,9 @@ public class AwContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||||
IntentUtils.safeStartActivity(mActivity, intent);
|
IntentUtils.safeStartActivity(mActivity, intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,7 +60,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/contextmenu/A
|
|||||||
diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml
|
diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml
|
||||||
--- a/chrome/android/java/res/values/ids.xml
|
--- a/chrome/android/java/res/values/ids.xml
|
||||||
+++ b/chrome/android/java/res/values/ids.xml
|
+++ b/chrome/android/java/res/values/ids.xml
|
||||||
@@ -104,6 +104,7 @@ found in the LICENSE file.
|
@@ -112,6 +112,7 @@ found in the LICENSE file.
|
||||||
|
|
||||||
<!-- Menu item IDs for FullscreenActivities -->
|
<!-- Menu item IDs for FullscreenActivities -->
|
||||||
<item type="id" name="contextmenu_open_in_chrome" />
|
<item type="id" name="contextmenu_open_in_chrome" />
|
||||||
@@ -70,7 +71,7 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||||
@@ -165,6 +165,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
@@ -167,6 +167,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||||
mSnackbarManagerSupplier.get().showSnackbar(mSnackbar);
|
mSnackbarManagerSupplier.get().showSnackbar(mSnackbar);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,28 +99,28 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
|
||||||
@@ -123,8 +123,9 @@ class ChromeContextMenuItem {
|
@@ -135,8 +135,9 @@ class ChromeContextMenuItem {
|
||||||
int PRINT_PAGE = 38;
|
|
||||||
// Developer Group
|
// Developer Group
|
||||||
int INSPECT_ELEMENT = 39;
|
int VIEW_PAGE_SOURCE = 41;
|
||||||
+ int FOLLOW_LINK = 40;
|
int INSPECT_ELEMENT = 42;
|
||||||
|
+ int FOLLOW_LINK = 43;
|
||||||
// ALWAYS UPDATE!
|
// ALWAYS UPDATE!
|
||||||
- int NUM_ENTRIES = 40;
|
- int NUM_ENTRIES = 43;
|
||||||
+ int NUM_ENTRIES = 41;
|
+ int NUM_ENTRIES = 44;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Mapping from {@link Item} to the ID found in the ids.xml. */
|
/** Mapping from {@link Item} to the ID found in the ids.xml. */
|
||||||
@@ -169,6 +170,7 @@ class ChromeContextMenuItem {
|
@@ -184,6 +185,7 @@ class ChromeContextMenuItem {
|
||||||
R.id.contextmenu_share_page, // Item.SHARE_PAGE
|
|
||||||
R.id.contextmenu_print_page, // Item.PRINT_PAGE
|
R.id.contextmenu_print_page, // Item.PRINT_PAGE
|
||||||
|
R.id.contextmenu_view_page_source, // Item.VIEW_PAGE_SOURCE
|
||||||
R.id.contextmenu_inspect_element, // Item.INSPECT_ELEMENT
|
R.id.contextmenu_inspect_element, // Item.INSPECT_ELEMENT
|
||||||
+ R.id.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB
|
+ R.id.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Mapping from {@link Item} to the ID of the string that describes the action of the item. */
|
/** Mapping from {@link Item} to the ID of the string that describes the action of the item. */
|
||||||
@@ -213,6 +215,7 @@ class ChromeContextMenuItem {
|
@@ -231,6 +233,7 @@ class ChromeContextMenuItem {
|
||||||
R.string.contextmenu_share_page, // Item.SHARE_PAGE
|
|
||||||
R.string.contextmenu_print_page, // Item.PRINT_PAGE
|
R.string.contextmenu_print_page, // Item.PRINT_PAGE
|
||||||
|
R.string.contextmenu_view_page_source, // Item.VIEW_PAGE_SOURCE
|
||||||
R.string.contextmenu_inspect_element, // Item.INSPECT_ELEMENT
|
R.string.contextmenu_inspect_element, // Item.INSPECT_ELEMENT
|
||||||
+ R.string.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB
|
+ R.string.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB
|
||||||
};
|
};
|
||||||
@@ -128,29 +129,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||||
@@ -369,6 +369,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
@@ -495,6 +495,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||||
}
|
}
|
||||||
if (mParams.isAnchor()) {
|
if (mParams.isAnchor()) {
|
||||||
ModelList linkGroup = new ModelList();
|
ModelList linkGroup = new ModelList();
|
||||||
+ if (ChromeFeatureList.sShowAlwaysContextMenuOnLinks.isEnabled()) {
|
+ if (ChromeFeatureList.sShowAlwaysContextMenuOnLinks.isEnabled()) {
|
||||||
+ linkGroup.add(createListItem(Item.FOLLOW_LINK));
|
+ linkGroup.add(createListItem(Item.FOLLOW_LINK));
|
||||||
+ }
|
+ }
|
||||||
if (FirstRunStatus.getFirstRunFlowComplete()
|
if (areMandatoryFlowsCompleted(getProfile())
|
||||||
&& !isEmptyUrl(mParams.getUrl())
|
&& !isEmptyUrl(mParams.getUrl())
|
||||||
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
|
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
|
||||||
@@ -834,6 +837,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
@@ -1141,6 +1144,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||||
getProfile(),
|
title = mParams.getLinkText();
|
||||||
false);
|
}
|
||||||
});
|
tabItemDelegate.onReadLater(mParams.getUrl(), title);
|
||||||
+ } else if (itemId == R.id.contextmenu_open_in_tab) {
|
+ } else if (itemId == R.id.contextmenu_open_in_tab) {
|
||||||
+ mItemDelegate.onOpenUrl(mParams.getUrl(), mParams.getReferrer());
|
+ mItemDelegate.onOpenUrl(mParams.getUrl(), mParams.getReferrer());
|
||||||
} else if (itemId == R.id.contextmenu_open_in_chrome) {
|
} else if (itemId == R.id.contextmenu_open_in_chrome) {
|
||||||
recordContextMenuSelection(ContextMenuUma.Action.OPEN_IN_CHROME);
|
recordContextMenuSelection(ContextMenuUma.Action.OPEN_IN_CHROME);
|
||||||
mItemDelegate.onOpenInChrome(mParams.getUrl(), mParams.getPageUrl());
|
tabItemDelegate.onOpenInChrome(mParams.getUrl(), mParams.getPageUrl());
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
||||||
@@ -356,6 +356,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
@@ -388,6 +388,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||||
mTab.loadUrl(loadUrlParams);
|
mTab.loadUrl(loadUrlParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,47 +169,47 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
|
|||||||
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||||
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
||||||
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||||
@@ -382,6 +382,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
@@ -463,6 +463,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||||
&kTabGroupParityBottomSheetAndroid,
|
&kTabClosureMethodRefactor,
|
||||||
&kTabletTabStripAnimation,
|
&kTabModelInitFixes,
|
||||||
&kToolbarPhoneCleanup,
|
&kTabStorageSqlitePrototype,
|
||||||
+ &blink::features::kShowAlwaysContextMenuOnLinks,
|
+ &blink::features::kShowAlwaysContextMenuOnLinks,
|
||||||
&kTabStateFlatBuffer,
|
&kTabStripAutoSelectOnCloseChange,
|
||||||
&kTabStripContextMenuAndroid,
|
&kTabStripCloseRefactorAndroid,
|
||||||
&kTabStripDensityChangeAndroid,
|
&kTabStripDensityChangeAndroid,
|
||||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||||
@@ -455,6 +455,8 @@ public abstract class ChromeFeatureList {
|
@@ -546,6 +546,8 @@ public abstract class ChromeFeatureList {
|
||||||
"DisableToolbarSwipeUp";
|
"DisableToolbarSwipeUp";
|
||||||
public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM =
|
public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM =
|
||||||
"MoveTopToolbarToBottom";
|
"MoveTopToolbarToBottom";
|
||||||
+ public static final String SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS =
|
+ public static final String SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS =
|
||||||
+ "ShowAlwaysContextMenuOnLinks";
|
+ "ShowAlwaysContextMenuOnLinks";
|
||||||
public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON =
|
public static final String NEW_TAB_PAGE_CUSTOMIZATION_THEME_SYNC =
|
||||||
"NewTabPageCustomizationToolbarButton";
|
"NewTabPageCustomizationThemeSync";
|
||||||
public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe";
|
public static final String NEW_TAB_PAGE_CUSTOMIZATION_V2 = "NewTabPageCustomizationV2";
|
||||||
@@ -868,6 +870,8 @@ public abstract class ChromeFeatureList {
|
@@ -1107,6 +1109,8 @@ public abstract class ChromeFeatureList {
|
||||||
newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false);
|
newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false);
|
||||||
public static final CachedFlag sMoveTopToolbarToBottom =
|
public static final CachedFlag sMoveTopToolbarToBottom =
|
||||||
newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
|
newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
|
||||||
+ public static final CachedFlag sShowAlwaysContextMenuOnLinks =
|
+ public static final CachedFlag sShowAlwaysContextMenuOnLinks =
|
||||||
+ newCachedFlag(SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS, false);
|
+ newCachedFlag(SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS, false);
|
||||||
public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false);
|
public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false);
|
||||||
public static final CachedFlag sPostGetMyMemoryStateToBackground =
|
public static final CachedFlag sPersistAcrossReboots =
|
||||||
newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true);
|
newCachedFlag(PERSIST_ACROSS_REBOOTS, true);
|
||||||
@@ -1072,6 +1076,7 @@ public abstract class ChromeFeatureList {
|
@@ -1399,6 +1403,7 @@ public abstract class ChromeFeatureList {
|
||||||
sTabWindowManagerReportIndicesMismatch,
|
sTopControlsRefactorV2,
|
||||||
sTopControlsRefactor,
|
sTouchToSearchCallout,
|
||||||
sTraceBinderIpc,
|
sUnparcelIntentFileDescriptors,
|
||||||
+ sShowAlwaysContextMenuOnLinks,
|
+ sShowAlwaysContextMenuOnLinks,
|
||||||
sUseChimeAndroidSdk,
|
|
||||||
sUseActivityManagerForTabActivation,
|
sUseActivityManagerForTabActivation,
|
||||||
sUseLibunwindstackNativeUnwinderAndroid,
|
sUseChimeAndroidSdk,
|
||||||
|
sUseInitialNetworkStateAtStartup,
|
||||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
@@ -1719,6 +1719,12 @@ Your Google account may have other forms of browsing history like searches and a
|
@@ -1700,6 +1700,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||||
<message name="IDS_DISABLE_TOOLBAR_SWIPE_UP" desc="Summary of the preference that allows the user to disable toolbar swipeup.">
|
<message name="IDS_DISABLE_TOOLBAR_SWIPE_UP" desc="Summary of the preference that allows the user to disable toolbar swipeup.">
|
||||||
Disable toolbar swipe up
|
Disable toolbar swipe up
|
||||||
</message>
|
</message>
|
||||||
@@ -221,20 +222,20 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||||||
|
|
||||||
<!-- Safety check -->
|
<!-- Safety check -->
|
||||||
<message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]">
|
<message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]">
|
||||||
@@ -3330,6 +3336,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
@@ -3369,6 +3375,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||||
<message name="IDS_CONTEXTMENU_OPEN_IN_NEW_CHROME_TAB" desc="Context sensitive menu item to open the selected link in a new Chrome tab from Chrome Custom Tab. [CHAR_LIMIT=30]">
|
<message name="IDS_CONTEXTMENU_OPEN_IN_NEW_CHROME_TAB" desc="Context sensitive menu item to open the selected link in a new Chrome tab from Chrome Custom Tab. [CHAR_LIMIT=30]">
|
||||||
Open in new Chrome tab
|
Open in new Chrome tab
|
||||||
</message>
|
</message>
|
||||||
+ <message name="IDS_CONTEXTMENU_OPEN_IN_TAB" desc="Context sensitive menu item to open the selected link in tab. [CHAR_LIMIT=30]">
|
+ <message name="IDS_CONTEXTMENU_OPEN_IN_TAB" desc="Context sensitive menu item to open the selected link in tab. [CHAR_LIMIT=30]">
|
||||||
+ Open in current tab
|
+ Open in current tab
|
||||||
+ </message>
|
+ </message>
|
||||||
<message name="IDS_CONTEXTMENU_OPEN_IN_CHROME_INCOGNITO_TAB" desc="Context sensitive menu item to open the selected link in a Chrome Incognito tab from Chrome Custom Tab. [CHAR_LIMIT=30]">
|
<message name="IDS_CONTEXTMENU_OPEN_IN_CHROME_WINDOW" desc="Context sensitive menu item to open the selected link in a Chrome window from Chrome Custom Tab. Used when there is a dedicated window for Incognito tabs. [CHAR_LIMIT=30]">
|
||||||
Open in Incognito tab
|
Open in Chrome window
|
||||||
</message>
|
</message>
|
||||||
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
@@ -31,6 +31,11 @@ found in the LICENSE file.
|
@@ -26,6 +26,11 @@ found in the LICENSE file.
|
||||||
android:summary="@string/page_zoom_always_show_preference_summary"
|
android:summary="@string/page_zoom_always_show_preference_summary"
|
||||||
android:title="@string/page_zoom_always_show_preference_title" />
|
android:title="@string/page_zoom_always_show_preference_title" />
|
||||||
|
|
||||||
@@ -249,7 +250,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
|
|||||||
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
||||||
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
||||||
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
||||||
@@ -53,6 +53,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
@@ -89,6 +89,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||||
private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
|
private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
|
||||||
private BooleanPreferenceDelegate mDisableToolbarSwipeUpDelegate;
|
private BooleanPreferenceDelegate mDisableToolbarSwipeUpDelegate;
|
||||||
|
|
||||||
@@ -259,7 +260,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
|||||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||||
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
|
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
|
||||||
@@ -139,6 +142,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
@@ -198,6 +201,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||||
mDisableToolbarSwipeUpPref.setChecked(mDisableToolbarSwipeUpDelegate.getValue());
|
mDisableToolbarSwipeUpPref.setChecked(mDisableToolbarSwipeUpDelegate.getValue());
|
||||||
mDisableToolbarSwipeUpPref.setOnPreferenceChangeListener(this);
|
mDisableToolbarSwipeUpPref.setOnPreferenceChangeListener(this);
|
||||||
|
|
||||||
@@ -272,7 +273,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
|||||||
Preference captions = findPreference(PREF_CAPTIONS);
|
Preference captions = findPreference(PREF_CAPTIONS);
|
||||||
captions.setOnPreferenceClickListener(
|
captions.setOnPreferenceClickListener(
|
||||||
preference -> {
|
preference -> {
|
||||||
@@ -220,6 +229,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
@@ -323,6 +332,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||||
} else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) {
|
} else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) {
|
||||||
mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue);
|
mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue);
|
||||||
mDelegate.requestRestart(getActivity());
|
mDelegate.requestRestart(getActivity());
|
||||||
@@ -297,7 +298,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
|||||||
diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java
|
diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java
|
||||||
--- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java
|
--- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java
|
||||||
+++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java
|
+++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java
|
||||||
@@ -10,6 +10,7 @@ import androidx.annotation.IntDef;
|
@@ -11,6 +11,7 @@ import androidx.annotation.IntDef;
|
||||||
|
|
||||||
import org.chromium.build.annotations.NullMarked;
|
import org.chromium.build.annotations.NullMarked;
|
||||||
import org.chromium.content_public.browser.WebContents;
|
import org.chromium.content_public.browser.WebContents;
|
||||||
@@ -305,8 +306,8 @@ diff --git a/components/embedder_support/android/java/src/org/chromium/component
|
|||||||
import org.chromium.url.GURL;
|
import org.chromium.url.GURL;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@@ -150,6 +151,8 @@ public interface ContextMenuItemDelegate {
|
@@ -148,6 +149,8 @@ public interface ContextMenuItemDelegate {
|
||||||
*/
|
/** Returns the page url. */
|
||||||
GURL getPageUrl();
|
GURL getPageUrl();
|
||||||
|
|
||||||
+ void onOpenUrl(GURL url, Referrer referrer);
|
+ void onOpenUrl(GURL url, Referrer referrer);
|
||||||
@@ -314,6 +315,29 @@ diff --git a/components/embedder_support/android/java/src/org/chromium/component
|
|||||||
/**
|
/**
|
||||||
* Called when the current embedder app is not the default to handle a View Intent.
|
* Called when the current embedder app is not the default to handle a View Intent.
|
||||||
*
|
*
|
||||||
|
diff --git a/components/thin_webview/internal/java/src/org/chromium/components/thinwebview/internal/ThinWebViewContextMenuItemDelegate.java b/components/thin_webview/internal/java/src/org/chromium/components/thinwebview/internal/ThinWebViewContextMenuItemDelegate.java
|
||||||
|
--- a/components/thin_webview/internal/java/src/org/chromium/components/thinwebview/internal/ThinWebViewContextMenuItemDelegate.java
|
||||||
|
+++ b/components/thin_webview/internal/java/src/org/chromium/components/thinwebview/internal/ThinWebViewContextMenuItemDelegate.java
|
||||||
|
@@ -6,6 +6,7 @@ package org.chromium.components.thinwebview.internal;
|
||||||
|
|
||||||
|
import org.chromium.build.annotations.NullMarked;
|
||||||
|
import org.chromium.components.embedder_support.contextmenu.ContextMenuItemDelegate;
|
||||||
|
+import org.chromium.content_public.common.Referrer;
|
||||||
|
import org.chromium.content_public.browser.WebContents;
|
||||||
|
import org.chromium.ui.base.Clipboard;
|
||||||
|
import org.chromium.url.GURL;
|
||||||
|
@@ -43,6 +44,11 @@ public class ThinWebViewContextMenuItemDelegate implements ContextMenuItemDelega
|
||||||
|
// Intentionally empty.
|
||||||
|
}
|
||||||
|
|
||||||
|
+ @Override
|
||||||
|
+ public void onOpenUrl(GURL url, Referrer referrer) {
|
||||||
|
+ // Intentionally empty. (Add setting to invert tap and long tap)
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
@Override
|
||||||
|
public GURL getPageUrl() {
|
||||||
|
return mWebContents.getVisibleUrl();
|
||||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc
|
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
@@ -344,15 +368,15 @@ new file mode 100644
|
|||||||
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc
|
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc
|
||||||
--- a/third_party/blink/renderer/core/html/html_anchor_element.cc
|
--- a/third_party/blink/renderer/core/html/html_anchor_element.cc
|
||||||
+++ b/third_party/blink/renderer/core/html/html_anchor_element.cc
|
+++ b/third_party/blink/renderer/core/html/html_anchor_element.cc
|
||||||
@@ -66,6 +66,7 @@
|
@@ -69,6 +69,7 @@
|
||||||
#include "third_party/blink/renderer/core/loader/render_blocking_resource_manager.h"
|
#include "third_party/blink/renderer/core/loader/render_blocking_resource_manager.h"
|
||||||
#include "third_party/blink/renderer/core/navigation_api/navigation_api.h"
|
#include "third_party/blink/renderer/core/navigation_api/navigation_api.h"
|
||||||
#include "third_party/blink/renderer/core/page/chrome_client.h"
|
#include "third_party/blink/renderer/core/page/chrome_client.h"
|
||||||
+#include "third_party/blink/renderer/core/page/context_menu_controller.h"
|
+#include "third_party/blink/renderer/core/page/context_menu_controller.h"
|
||||||
#include "third_party/blink/renderer/core/page/page.h"
|
#include "third_party/blink/renderer/core/page/page.h"
|
||||||
|
#include "third_party/blink/renderer/core/scroll/scroll_into_view_util.h"
|
||||||
#include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h"
|
#include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h"
|
||||||
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
|
@@ -429,6 +430,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
|
||||||
@@ -500,6 +501,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
|
|
||||||
bool is_trusted,
|
bool is_trusted,
|
||||||
base::TimeTicks platform_time_stamp,
|
base::TimeTicks platform_time_stamp,
|
||||||
KURL completed_url) {
|
KURL completed_url) {
|
||||||
@@ -370,7 +394,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
|
|||||||
LocalDOMWindow* window = GetDocument().domWindow();
|
LocalDOMWindow* window = GetDocument().domWindow();
|
||||||
if (!window) {
|
if (!window) {
|
||||||
return;
|
return;
|
||||||
@@ -590,6 +602,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
|
@@ -511,6 +523,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
|
||||||
frame_request.SetImpression(impression);
|
frame_request.SetImpression(impression);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -386,34 +410,34 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
|
|||||||
Frame* target_frame =
|
Frame* target_frame =
|
||||||
frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame;
|
frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame;
|
||||||
|
|
||||||
@@ -633,7 +654,7 @@ Element* HTMLAnchorElementBase::InterestTargetElement() const {
|
@@ -547,7 +568,7 @@ bool HTMLAnchorElementBase::IsValidInterestInvoker(Element& target) const {
|
||||||
html_names::kInteresttargetAttr);
|
return IsLink();
|
||||||
}
|
}
|
||||||
|
|
||||||
-void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
|
-void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
|
||||||
+void HTMLAnchorElementBase::HandleClick(MouseEvent& event, bool do_not_show_context_menu) {
|
+void HTMLAnchorElementBase::HandleClick(MouseEvent& event, bool do_not_show_context_menu) {
|
||||||
event.SetDefaultHandled();
|
event.SetDefaultHandled();
|
||||||
|
|
||||||
LocalDOMWindow* window = GetDocument().domWindow();
|
// It's unclear whether synthesized middle-button "click" events should be
|
||||||
@@ -729,13 +750,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
|
@@ -621,13 +642,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
- base::OnceClosure navigate_closure = WTF::BindOnce(
|
- base::OnceClosure navigate_closure = blink::BindOnce(
|
||||||
- &HTMLAnchorElementBase::NavigateToHyperlink, WrapWeakPersistent(this),
|
- &HTMLAnchorElementBase::NavigateToHyperlink, WrapWeakPersistent(this),
|
||||||
- std::move(request), navigation_policy, event.isTrusted(),
|
- std::move(request), navigation_policy, event.isTrusted(),
|
||||||
- event.PlatformTimeStamp(), std::move(completed_url));
|
- event.PlatformTimeStamp(), std::move(completed_url));
|
||||||
-
|
-
|
||||||
if (navigation_policy == kNavigationPolicyDownload ||
|
if (navigation_policy == kNavigationPolicyDownload ||
|
||||||
navigation_policy == kNavigationPolicyLinkPreview) {
|
navigation_policy == kNavigationPolicyLinkPreview) {
|
||||||
+ base::OnceClosure navigate_closure = WTF::BindOnce(
|
+ base::OnceClosure navigate_closure = blink::BindOnce(
|
||||||
+ &HTMLAnchorElementBase::NavigateToHyperlink, WrapWeakPersistent(this),
|
+ &HTMLAnchorElementBase::NavigateToHyperlink, WrapWeakPersistent(this),
|
||||||
+ std::move(request), navigation_policy, event.isTrusted(),
|
+ std::move(request), navigation_policy, event.isTrusted(),
|
||||||
+ event.PlatformTimeStamp(), std::move(completed_url));
|
+ event.PlatformTimeStamp(), std::move(completed_url));
|
||||||
// We distinguish single/double click with some modifiers.
|
// We distinguish single/double click with some modifiers.
|
||||||
// See the comment of `EventHandler.delayed_navigation_task_handle_`.
|
// See the comment of `EventHandler.delayed_navigation_task_handle_`.
|
||||||
auto task_handle = PostDelayedCancellableTask(
|
auto task_handle = PostDelayedCancellableTask(
|
||||||
@@ -745,7 +765,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
|
@@ -637,7 +657,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
|
||||||
frame->GetEventHandler().SetDelayedNavigationTaskHandle(
|
frame->GetEventHandler().SetDelayedNavigationTaskHandle(
|
||||||
std::move(task_handle));
|
std::move(task_handle));
|
||||||
} else {
|
} else {
|
||||||
@@ -427,15 +451,15 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
|
|||||||
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_party/blink/renderer/core/html/html_anchor_element.h
|
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_party/blink/renderer/core/html/html_anchor_element.h
|
||||||
--- a/third_party/blink/renderer/core/html/html_anchor_element.h
|
--- a/third_party/blink/renderer/core/html/html_anchor_element.h
|
||||||
+++ b/third_party/blink/renderer/core/html/html_anchor_element.h
|
+++ b/third_party/blink/renderer/core/html/html_anchor_element.h
|
||||||
@@ -112,6 +112,7 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement,
|
@@ -90,6 +90,7 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement,
|
||||||
Element* InterestTargetElement() const override;
|
bool IsValidInterestInvoker(Element& target) const override;
|
||||||
|
|
||||||
void Trace(Visitor*) const override;
|
void Trace(Visitor*) const override;
|
||||||
+ void HandleClick(MouseEvent&, bool do_not_show_context_menu = false);
|
+ void HandleClick(MouseEvent&, bool do_not_show_context_menu = false);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
HTMLAnchorElementBase(const QualifiedName& tag_name, Document&);
|
HTMLAnchorElementBase(const QualifiedName& tag_name, Document&);
|
||||||
@@ -143,7 +144,11 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement,
|
@@ -121,7 +122,11 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement,
|
||||||
bool is_trusted,
|
bool is_trusted,
|
||||||
base::TimeTicks platform_time_stamp,
|
base::TimeTicks platform_time_stamp,
|
||||||
KURL);
|
KURL);
|
||||||
@@ -459,7 +483,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
|
|||||||
#include "third_party/blink/renderer/core/frame/attribution_src_loader.h"
|
#include "third_party/blink/renderer/core/frame/attribution_src_loader.h"
|
||||||
#include "third_party/blink/renderer/core/frame/deprecation/deprecation.h"
|
#include "third_party/blink/renderer/core/frame/deprecation/deprecation.h"
|
||||||
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
|
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
|
||||||
@@ -64,6 +65,7 @@
|
@@ -68,6 +69,7 @@
|
||||||
#include "third_party/blink/renderer/core/media_type_names.h"
|
#include "third_party/blink/renderer/core/media_type_names.h"
|
||||||
#include "third_party/blink/renderer/core/page/chrome_client.h"
|
#include "third_party/blink/renderer/core/page/chrome_client.h"
|
||||||
#include "third_party/blink/renderer/core/page/page.h"
|
#include "third_party/blink/renderer/core/page/page.h"
|
||||||
@@ -467,7 +491,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
|
|||||||
#include "third_party/blink/renderer/core/paint/timing/paint_timing.h"
|
#include "third_party/blink/renderer/core/paint/timing/paint_timing.h"
|
||||||
#include "third_party/blink/renderer/core/probe/core_probes.h"
|
#include "third_party/blink/renderer/core/probe/core_probes.h"
|
||||||
#include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h"
|
#include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h"
|
||||||
@@ -815,6 +817,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate(
|
@@ -796,6 +798,21 @@ void HTMLImageElement::DidFinishLayout() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -488,23 +512,23 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
|
|||||||
+
|
+
|
||||||
bool HTMLImageElement::draggable() const {
|
bool HTMLImageElement::draggable() const {
|
||||||
// Image elements are draggable by default.
|
// Image elements are draggable by default.
|
||||||
return !EqualIgnoringASCIICase(FastGetAttribute(html_names::kDraggableAttr),
|
return !EqualIgnoringAsciiCase(FastGetAttribute(html_names::kDraggableAttr),
|
||||||
diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_party/blink/renderer/core/html/html_image_element.h
|
diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_party/blink/renderer/core/html/html_image_element.h
|
||||||
--- a/third_party/blink/renderer/core/html/html_image_element.h
|
--- a/third_party/blink/renderer/core/html/html_image_element.h
|
||||||
+++ b/third_party/blink/renderer/core/html/html_image_element.h
|
+++ b/third_party/blink/renderer/core/html/html_image_element.h
|
||||||
@@ -217,6 +217,8 @@ class CORE_EXPORT HTMLImageElement
|
@@ -226,6 +226,8 @@ class CORE_EXPORT HTMLImageElement
|
||||||
void DidAddUserAgentShadowRoot(ShadowRoot&) override;
|
|
||||||
void AdjustStyle(ComputedStyleBuilder&) override;
|
void AdjustStyle(ComputedStyleBuilder&) override;
|
||||||
|
|
||||||
+ void DefaultEventHandler(Event&) override;
|
+ void DefaultEventHandler(Event&) override;
|
||||||
+
|
+
|
||||||
private:
|
private:
|
||||||
bool AreAuthorShadowsAllowed() const override { return false; }
|
void ParseAttribute(const AttributeModificationParams&) override;
|
||||||
|
bool IsPresentationAttribute(const QualifiedName&) const override;
|
||||||
diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc
|
diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc
|
||||||
--- a/third_party/blink/renderer/core/page/context_menu_controller.cc
|
--- a/third_party/blink/renderer/core/page/context_menu_controller.cc
|
||||||
+++ b/third_party/blink/renderer/core/page/context_menu_controller.cc
|
+++ b/third_party/blink/renderer/core/page/context_menu_controller.cc
|
||||||
@@ -200,14 +200,16 @@ void ContextMenuController::DocumentDetached(Document* document) {
|
@@ -201,15 +201,17 @@ void ContextMenuController::DocumentDetached(Document* document) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -514,7 +538,8 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
|
|||||||
+ if (!base::FeatureList::IsEnabled(features::kShowAlwaysContextMenuOnLinks)) {
|
+ if (!base::FeatureList::IsEnabled(features::kShowAlwaysContextMenuOnLinks)) {
|
||||||
+ DCHECK(mouse_event->type() == event_type_names::kContextmenu);
|
+ DCHECK(mouse_event->type() == event_type_names::kContextmenu);
|
||||||
+ }
|
+ }
|
||||||
LocalFrame* frame = mouse_event->target()->ToNode()->GetDocument().GetFrame();
|
LocalFrame* frame =
|
||||||
|
mouse_event->RawTarget()->ToNode()->GetDocument().GetFrame();
|
||||||
PhysicalOffset location =
|
PhysicalOffset location =
|
||||||
PhysicalOffset::FromPointFRound(mouse_event->AbsoluteLocation());
|
PhysicalOffset::FromPointFRound(mouse_event->AbsoluteLocation());
|
||||||
|
|
||||||
@@ -524,17 +549,17 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
|
|||||||
mouse_event->SetDefaultHandled();
|
mouse_event->SetDefaultHandled();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -432,7 +434,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch(
|
@@ -443,7 +445,8 @@ bool ContextMenuController::ShowContextMenu(
|
||||||
bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
|
LocalFrame* frame,
|
||||||
const PhysicalOffset& point,
|
const PhysicalOffset& point,
|
||||||
WebMenuSourceType source_type,
|
ui::mojom::blink::MenuSourceType source_type,
|
||||||
- const MouseEvent* mouse_event) {
|
- const MouseEvent* mouse_event) {
|
||||||
+ const MouseEvent* mouse_event,
|
+ const MouseEvent* mouse_event,
|
||||||
+ bool do_not_show_context_menu) {
|
+ bool do_not_show_context_menu) {
|
||||||
// Displaying the context menu in this function is a big hack as we don't
|
// Displaying the context menu in this function is a big hack as we don't
|
||||||
// have context, i.e. whether this is being invoked via a script or in
|
// have context, i.e. whether this is being invoked via a script or in
|
||||||
// response to user input (Mouse event WM_RBUTTONDOWN,
|
// response to user input (Mouse event WM_RBUTTONDOWN,
|
||||||
@@ -455,6 +458,16 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
|
@@ -466,6 +469,16 @@ bool ContextMenuController::ShowContextMenu(
|
||||||
if (!result.InnerNodeOrImageMapImage())
|
if (!result.InnerNodeOrImageMapImage())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -551,29 +576,19 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
|
|||||||
// Clear any previously set cached results if we are resetting the hit test
|
// Clear any previously set cached results if we are resetting the hit test
|
||||||
// result.
|
// result.
|
||||||
image_selection_cached_result_ = nullptr;
|
image_selection_cached_result_ = nullptr;
|
||||||
@@ -830,11 +843,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
|
@@ -848,7 +861,7 @@ bool ContextMenuController::ShowContextMenu(
|
||||||
|
|
||||||
SetAutofillData(result.InnerNode(), data);
|
SetAutofillData(result.InnerNode(), data);
|
||||||
|
|
||||||
- const bool from_touch = source_type == kMenuSourceTouch ||
|
|
||||||
- source_type == kMenuSourceLongPress ||
|
|
||||||
- source_type == kMenuSourceLongTap;
|
|
||||||
- if (from_touch && !ShouldShowContextMenuFromTouch(data))
|
- if (from_touch && !ShouldShowContextMenuFromTouch(data))
|
||||||
- return false;
|
+ if (!base::FeatureList::IsEnabled(features::kShowAlwaysContextMenuOnLinks) && from_touch && !ShouldShowContextMenuFromTouch(data))
|
||||||
+ if (!base::FeatureList::IsEnabled(features::kShowAlwaysContextMenuOnLinks)) {
|
return false;
|
||||||
+ const bool from_touch = source_type == kMenuSourceTouch ||
|
|
||||||
+ source_type == kMenuSourceLongPress ||
|
|
||||||
+ source_type == kMenuSourceLongTap;
|
|
||||||
+ if (from_touch && !ShouldShowContextMenuFromTouch(data))
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
WebLocalFrameImpl* selected_web_frame =
|
WebLocalFrameImpl* selected_web_frame =
|
||||||
WebLocalFrameImpl::FromFrame(selected_frame);
|
|
||||||
diff --git a/third_party/blink/renderer/core/page/context_menu_controller.h b/third_party/blink/renderer/core/page/context_menu_controller.h
|
diff --git a/third_party/blink/renderer/core/page/context_menu_controller.h b/third_party/blink/renderer/core/page/context_menu_controller.h
|
||||||
--- a/third_party/blink/renderer/core/page/context_menu_controller.h
|
--- a/third_party/blink/renderer/core/page/context_menu_controller.h
|
||||||
+++ b/third_party/blink/renderer/core/page/context_menu_controller.h
|
+++ b/third_party/blink/renderer/core/page/context_menu_controller.h
|
||||||
@@ -58,7 +58,7 @@ class CORE_EXPORT ContextMenuController final
|
@@ -58,7 +58,7 @@ class CORE_EXPORT ContextMenuController
|
||||||
|
|
||||||
void DocumentDetached(Document*);
|
void DocumentDetached(Document*);
|
||||||
|
|
||||||
@@ -582,13 +597,13 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.h b/th
|
|||||||
void ShowContextMenuAtPoint(LocalFrame*,
|
void ShowContextMenuAtPoint(LocalFrame*,
|
||||||
float x,
|
float x,
|
||||||
float y,
|
float y,
|
||||||
@@ -125,7 +125,8 @@ class CORE_EXPORT ContextMenuController final
|
@@ -129,7 +129,8 @@ class CORE_EXPORT ContextMenuController
|
||||||
bool ShowContextMenu(LocalFrame*,
|
virtual bool ShowContextMenu(LocalFrame*,
|
||||||
const PhysicalOffset&,
|
const PhysicalOffset&,
|
||||||
WebMenuSourceType,
|
ui::mojom::blink::MenuSourceType,
|
||||||
- const MouseEvent* mouse_event = nullptr);
|
- const MouseEvent* mouse_event);
|
||||||
+ const MouseEvent* mouse_event = nullptr,
|
+ const MouseEvent* mouse_event,
|
||||||
+ bool do_not_show_context_menu = false);
|
+ bool do_not_show_context_menu = false);
|
||||||
|
|
||||||
bool ShouldShowContextMenuFromTouch(const ContextMenuData&);
|
bool ShouldShowContextMenuFromTouch(const ContextMenuData&);
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
---
|
---
|
||||||
chrome/browser/about_flags.cc | 1 +
|
chrome/browser/about_flags.cc | 1 +
|
||||||
.../engagement/important_sites_util.cc | 9 +++++
|
.../engagement/important_sites_util.cc | 9 +++++
|
||||||
|
.../browser/media/media_engagement_service.cc | 4 ++-
|
||||||
|
.../auto_picture_in_picture_tab_helper.cc | 2 +-
|
||||||
.../internal/tracker_impl.cc | 3 ++
|
.../internal/tracker_impl.cc | 3 ++
|
||||||
.../public/feature_configurations.cc | 7 ++++
|
.../public/feature_configurations.cc | 7 ++++
|
||||||
.../content/site_engagement_score.cc | 5 +++
|
.../content/site_engagement_score.cc | 5 +++
|
||||||
@@ -16,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
components/site_engagement/core/features.cc | 30 ++++++++++++++++
|
components/site_engagement/core/features.cc | 30 ++++++++++++++++
|
||||||
components/site_engagement/core/features.h | 34 +++++++++++++++++++
|
components/site_engagement/core/features.h | 34 +++++++++++++++++++
|
||||||
.../Add-site-engagement-flag.inc | 10 ++++++
|
.../Add-site-engagement-flag.inc | 10 ++++++
|
||||||
9 files changed, 105 insertions(+)
|
11 files changed, 109 insertions(+), 2 deletions(-)
|
||||||
create mode 100644 components/site_engagement/core/features.cc
|
create mode 100644 components/site_engagement/core/features.cc
|
||||||
create mode 100644 components/site_engagement/core/features.h
|
create mode 100644 components/site_engagement/core/features.h
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc
|
||||||
@@ -24,10 +26,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||||
--- a/chrome/browser/about_flags.cc
|
--- a/chrome/browser/about_flags.cc
|
||||||
+++ b/chrome/browser/about_flags.cc
|
+++ b/chrome/browser/about_flags.cc
|
||||||
@@ -164,6 +164,7 @@
|
@@ -171,6 +171,7 @@
|
||||||
#include "components/sensitive_content/features.h"
|
#include "components/sensitive_content/features.h"
|
||||||
#include "components/services/heap_profiling/public/cpp/switches.h"
|
#include "components/services/heap_profiling/public/cpp/switches.h"
|
||||||
#include "components/services/storage/public/cpp/buckets/bucket_info.h"
|
#include "components/services/storage/dom_storage/features.h"
|
||||||
+#include "components/site_engagement/core/features.h"
|
+#include "components/site_engagement/core/features.h"
|
||||||
#include "components/shared_highlighting/core/common/shared_highlighting_features.h"
|
#include "components/shared_highlighting/core/common/shared_highlighting_features.h"
|
||||||
#include "components/sharing_message/features.h"
|
#include "components/sharing_message/features.h"
|
||||||
@@ -35,7 +37,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||||||
diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc
|
diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc
|
||||||
--- a/chrome/browser/engagement/important_sites_util.cc
|
--- a/chrome/browser/engagement/important_sites_util.cc
|
||||||
+++ b/chrome/browser/engagement/important_sites_util.cc
|
+++ b/chrome/browser/engagement/important_sites_util.cc
|
||||||
@@ -31,6 +31,7 @@
|
@@ -29,6 +29,7 @@
|
||||||
#include "components/prefs/scoped_user_pref_update.h"
|
#include "components/prefs/scoped_user_pref_update.h"
|
||||||
#include "components/site_engagement/content/site_engagement_score.h"
|
#include "components/site_engagement/content/site_engagement_score.h"
|
||||||
#include "components/site_engagement/content/site_engagement_service.h"
|
#include "components/site_engagement/content/site_engagement_service.h"
|
||||||
@@ -43,7 +45,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/
|
|||||||
#include "components/site_engagement/core/mojom/site_engagement_details.mojom.h"
|
#include "components/site_engagement/core/mojom/site_engagement_details.mojom.h"
|
||||||
#include "components/webapps/browser/banners/app_banner_settings_helper.h"
|
#include "components/webapps/browser/banners/app_banner_settings_helper.h"
|
||||||
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
|
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
|
||||||
@@ -344,6 +345,10 @@ void ImportantSitesUtil::RegisterProfilePrefs(
|
@@ -343,6 +344,10 @@ void ImportantSitesUtil::RegisterProfilePrefs(
|
||||||
// static
|
// static
|
||||||
std::set<std::string> ImportantSitesUtil::GetInstalledRegisterableDomains(
|
std::set<std::string> ImportantSitesUtil::GetInstalledRegisterableDomains(
|
||||||
Profile* profile) {
|
Profile* profile) {
|
||||||
@@ -54,7 +56,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/
|
|||||||
std::set<GURL> installed_origins = GetOriginsWithInstalledWebApps(profile);
|
std::set<GURL> installed_origins = GetOriginsWithInstalledWebApps(profile);
|
||||||
std::set<std::string> registerable_domains;
|
std::set<std::string> registerable_domains;
|
||||||
|
|
||||||
@@ -358,6 +363,10 @@ std::vector<ImportantDomainInfo>
|
@@ -357,6 +362,10 @@ std::vector<ImportantDomainInfo>
|
||||||
ImportantSitesUtil::GetImportantRegisterableDomains(Profile* profile,
|
ImportantSitesUtil::GetImportantRegisterableDomains(Profile* profile,
|
||||||
size_t max_results) {
|
size_t max_results) {
|
||||||
SCOPED_UMA_HISTOGRAM_TIMER("Storage.ImportantSites.GenerationTime");
|
SCOPED_UMA_HISTOGRAM_TIMER("Storage.ImportantSites.GenerationTime");
|
||||||
@@ -65,6 +67,39 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/
|
|||||||
std::map<std::string, ImportantDomainInfo> important_info;
|
std::map<std::string, ImportantDomainInfo> important_info;
|
||||||
std::map<GURL, double> engagement_map;
|
std::map<GURL, double> engagement_map;
|
||||||
|
|
||||||
|
diff --git a/chrome/browser/media/media_engagement_service.cc b/chrome/browser/media/media_engagement_service.cc
|
||||||
|
--- a/chrome/browser/media/media_engagement_service.cc
|
||||||
|
+++ b/chrome/browser/media/media_engagement_service.cc
|
||||||
|
@@ -25,6 +25,7 @@
|
||||||
|
#include "components/history/core/browser/history_service.h"
|
||||||
|
#include "components/no_state_prefetch/browser/no_state_prefetch_contents.h"
|
||||||
|
#include "components/prefs/pref_service.h"
|
||||||
|
+#include "components/site_engagement/core/features.h"
|
||||||
|
#include "content/public/browser/web_contents.h"
|
||||||
|
#include "media/base/media_switches.h"
|
||||||
|
#include "url/origin.h"
|
||||||
|
@@ -54,7 +55,8 @@ enum class MediaEngagementClearReason {
|
||||||
|
|
||||||
|
// static
|
||||||
|
bool MediaEngagementService::IsEnabled() {
|
||||||
|
- return base::FeatureList::IsEnabled(media::kRecordMediaEngagementScores);
|
||||||
|
+ return base::FeatureList::IsEnabled(media::kRecordMediaEngagementScores)
|
||||||
|
+ && base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement);
|
||||||
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
diff --git a/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc b/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc
|
||||||
|
--- a/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc
|
||||||
|
+++ b/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc
|
||||||
|
@@ -46,7 +46,7 @@ AutoPictureInPictureTabHelper::AutoPictureInPictureTabHelper(
|
||||||
|
Profile::FromBrowserContext(web_contents->GetBrowserContext()))),
|
||||||
|
auto_blocker_(PermissionDecisionAutoBlockerFactory::GetForProfile(
|
||||||
|
Profile::FromBrowserContext(web_contents->GetBrowserContext()))),
|
||||||
|
- media_engagement_service_(MediaEngagementService::Get(
|
||||||
|
+ media_engagement_service_(!MediaEngagementService::IsEnabled() ? nullptr : MediaEngagementService::Get(
|
||||||
|
Profile::FromBrowserContext(web_contents->GetBrowserContext()))),
|
||||||
|
clock_(base::DefaultTickClock::GetInstance()) {
|
||||||
|
// `base::Unretained` is safe here since we own `tab_observer_helper_`.
|
||||||
diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components/feature_engagement/internal/tracker_impl.cc
|
diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components/feature_engagement/internal/tracker_impl.cc
|
||||||
--- a/components/feature_engagement/internal/tracker_impl.cc
|
--- a/components/feature_engagement/internal/tracker_impl.cc
|
||||||
+++ b/components/feature_engagement/internal/tracker_impl.cc
|
+++ b/components/feature_engagement/internal/tracker_impl.cc
|
||||||
@@ -76,19 +111,19 @@ diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components
|
|||||||
#include "components/feature_engagement/internal/availability_model_impl.h"
|
#include "components/feature_engagement/internal/availability_model_impl.h"
|
||||||
#include "components/feature_engagement/internal/blocked_iph_features.h"
|
#include "components/feature_engagement/internal/blocked_iph_features.h"
|
||||||
#include "components/feature_engagement/internal/chrome_variations_configuration.h"
|
#include "components/feature_engagement/internal/chrome_variations_configuration.h"
|
||||||
@@ -236,6 +237,8 @@ TrackerImpl::TrackerImpl(
|
@@ -290,6 +291,8 @@ TrackerImpl::TrackerImpl(
|
||||||
TrackerImpl::~TrackerImpl() = default;
|
TrackerImpl::~TrackerImpl() = default;
|
||||||
|
|
||||||
void TrackerImpl::NotifyEvent(const std::string& event) {
|
void TrackerImpl::NotifyEvent(const std::string& event) {
|
||||||
+ if (!base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement))
|
+ if (!base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement))
|
||||||
+ return;
|
+ return;
|
||||||
event_model_->IncrementEvent(event, time_provider_->GetCurrentDay());
|
GetEventModelWriter()->IncrementEvent(event, time_provider_->GetCurrentDay());
|
||||||
stats::RecordNotifyEvent(event, configuration_.get(),
|
stats::RecordNotifyEvent(event, configuration_.get(),
|
||||||
event_model_->IsReady());
|
event_model_provider_->IsReady());
|
||||||
diff --git a/components/feature_engagement/public/feature_configurations.cc b/components/feature_engagement/public/feature_configurations.cc
|
diff --git a/components/feature_engagement/public/feature_configurations.cc b/components/feature_engagement/public/feature_configurations.cc
|
||||||
--- a/components/feature_engagement/public/feature_configurations.cc
|
--- a/components/feature_engagement/public/feature_configurations.cc
|
||||||
+++ b/components/feature_engagement/public/feature_configurations.cc
|
+++ b/components/feature_engagement/public/feature_configurations.cc
|
||||||
@@ -11,6 +11,7 @@
|
@@ -6,6 +6,7 @@
|
||||||
|
|
||||||
#include "base/strings/string_util.h"
|
#include "base/strings/string_util.h"
|
||||||
#include "build/build_config.h"
|
#include "build/build_config.h"
|
||||||
|
|||||||
@@ -5,25 +5,17 @@ Subject: Add support for ISupportHelpAndFeedback
|
|||||||
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
.../chrome/browser/settings/SettingsActivity.java | 9 +++++++--
|
.../chrome/browser/settings/SettingsActivity.java | 8 ++++++--
|
||||||
.../components/browser_ui/settings/SettingsUtils.java | 4 ++++
|
.../components/browser_ui/settings/SettingsUtils.java | 4 ++++
|
||||||
2 files changed, 11 insertions(+), 2 deletions(-)
|
2 files changed, 10 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
|
||||||
@@ -56,6 +56,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
|
@@ -1102,8 +1102,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
|
||||||
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
|
|
||||||
import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory;
|
|
||||||
import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController;
|
|
||||||
+import org.chromium.components.browser_ui.settings.SettingsUtils;
|
|
||||||
import org.chromium.components.browser_ui.modaldialog.AppModalPresenter;
|
|
||||||
import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage;
|
|
||||||
import org.chromium.components.browser_ui.settings.SettingsFragment;
|
|
||||||
@@ -466,8 +467,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
|
|
||||||
finishCurrentSettings(mainFragment);
|
|
||||||
return true;
|
return true;
|
||||||
} else if (item.getItemId() == R.id.menu_id_general_help) {
|
} else if (item.getItemId() == R.id.menu_id_general_help) {
|
||||||
|
RecordUserAction.record("Settings.MobileHelpAndFeedback");
|
||||||
- HelpAndFeedbackLauncherImpl.getForProfile(mProfile)
|
- HelpAndFeedbackLauncherImpl.getForProfile(mProfile)
|
||||||
- .show(this, getString(R.string.help_context_settings), null);
|
- .show(this, getString(R.string.help_context_settings), null);
|
||||||
+ if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) {
|
+ if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) {
|
||||||
@@ -38,7 +30,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
|
|||||||
diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
|
diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
|
||||||
--- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
|
--- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
|
||||||
+++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
|
+++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
|
||||||
@@ -28,6 +28,10 @@ import org.chromium.ui.drawable.StateListDrawableBuilder;
|
@@ -33,6 +33,10 @@ import java.util.ArrayList;
|
||||||
/** A helper class for Settings. */
|
/** A helper class for Settings. */
|
||||||
@NullMarked
|
@NullMarked
|
||||||
public class SettingsUtils {
|
public class SettingsUtils {
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.cc
|
diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.cc
|
||||||
--- a/base/android/content_uri_utils.cc
|
--- a/base/android/content_uri_utils.cc
|
||||||
+++ b/base/android/content_uri_utils.cc
|
+++ b/base/android/content_uri_utils.cc
|
||||||
@@ -134,6 +134,16 @@ void JNI_ContentUriUtils_AddFileInfoToVector(JNIEnv* env,
|
@@ -140,6 +140,16 @@ static void JNI_ContentUriUtils_AddFileInfoToVector(
|
||||||
Time::FromMillisecondsSinceUnixEpoch(last_modified));
|
Time::FromMillisecondsSinceUnixEpoch(last_modified));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -52,7 +52,7 @@ new file mode 100644
|
|||||||
+import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting;
|
+import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting;
|
||||||
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
|
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
|
||||||
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
|
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
|
||||||
+import org.chromium.components.content_settings.ContentSettingValues;
|
+import org.chromium.components.content_settings.ContentSetting;
|
||||||
+import org.chromium.components.content_settings.ContentSettingsType;
|
+import org.chromium.components.content_settings.ContentSettingsType;
|
||||||
+import org.chromium.content_public.browser.BrowserContextHandle;
|
+import org.chromium.content_public.browser.BrowserContextHandle;
|
||||||
+
|
+
|
||||||
@@ -65,8 +65,8 @@ new file mode 100644
|
|||||||
+public class BromiteWebGLContentSetting extends BromiteCustomContentSetting {
|
+public class BromiteWebGLContentSetting extends BromiteCustomContentSetting {
|
||||||
+ public BromiteWebGLContentSetting() {
|
+ public BromiteWebGLContentSetting() {
|
||||||
+ super(/*contentSettingsType*/ ContentSettingsType.WEBGL,
|
+ super(/*contentSettingsType*/ ContentSettingsType.WEBGL,
|
||||||
+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW,
|
+ /*defaultEnabledValue*/ ContentSetting.ALLOW,
|
||||||
+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK,
|
+ /*defaultDisabledValue*/ ContentSetting.BLOCK,
|
||||||
+ /*allowException*/ true,
|
+ /*allowException*/ true,
|
||||||
+ /*preferenceKey*/ "webgl",
|
+ /*preferenceKey*/ "webgl",
|
||||||
+ /*profilePrefKey*/ "webgl");
|
+ /*profilePrefKey*/ "webgl");
|
||||||
@@ -85,11 +85,11 @@ new file mode 100644
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public int getCategorySummary(@Nullable @ContentSettingValues int value) {
|
+ public int getCategorySummary(@Nullable @ContentSetting int value) {
|
||||||
+ switch (value) {
|
+ switch (value) {
|
||||||
+ case ContentSettingValues.ALLOW:
|
+ case ContentSetting.ALLOW:
|
||||||
+ return R.string.website_settings_category_webgl_enabled;
|
+ return R.string.website_settings_category_webgl_enabled;
|
||||||
+ case ContentSettingValues.BLOCK:
|
+ case ContentSetting.BLOCK:
|
||||||
+ return R.string.website_settings_category_webgl_disabled;
|
+ return R.string.website_settings_category_webgl_disabled;
|
||||||
+ default:
|
+ default:
|
||||||
+ return 0;
|
+ return 0;
|
||||||
@@ -117,8 +117,8 @@ new file mode 100644
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) {
|
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) {
|
||||||
+ return value != ContentSettingValues.BLOCK;
|
+ return value != ContentSetting.BLOCK;
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/components/browser_ui/strings/bromite_content_settings/webgl.grdp b/components/browser_ui/strings/bromite_content_settings/webgl.grdp
|
diff --git a/components/browser_ui/strings/bromite_content_settings/webgl.grdp b/components/browser_ui/strings/bromite_content_settings/webgl.grdp
|
||||||
@@ -166,7 +166,7 @@ new file mode 100644
|
|||||||
+ WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
|
+ WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
|
||||||
+ WebsiteSettingsRegistry::ALL_PLATFORMS,
|
+ WebsiteSettingsRegistry::ALL_PLATFORMS,
|
||||||
+ ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
+ ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
||||||
+ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
+ PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
||||||
+
|
+
|
||||||
+ content_settings::WebsiteSettingsRegistry::GetInstance()
|
+ content_settings::WebsiteSettingsRegistry::GetInstance()
|
||||||
+ ->GetMutable(ContentSettingsType::WEBGL)
|
+ ->GetMutable(ContentSettingsType::WEBGL)
|
||||||
@@ -206,7 +206,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
|
|||||||
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
|
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
|
||||||
--- a/third_party/blink/renderer/core/execution_context/execution_context.h
|
--- a/third_party/blink/renderer/core/execution_context/execution_context.h
|
||||||
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h
|
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h
|
||||||
@@ -115,6 +115,8 @@ enum ReasonForCallingCanExecuteScripts {
|
@@ -111,6 +111,8 @@ enum ReasonForCallingCanExecuteScripts {
|
||||||
|
|
||||||
enum ReferrerPolicySource { kPolicySourceHttpHeader, kPolicySourceMetaTag };
|
enum ReferrerPolicySource { kPolicySourceHttpHeader, kPolicySourceMetaTag };
|
||||||
|
|
||||||
@@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
|
|||||||
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
|
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
|
||||||
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
|
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
|
||||||
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
|
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
|
||||||
@@ -339,6 +339,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits(
|
@@ -345,6 +345,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -232,8 +232,8 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
|
|||||||
unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() {
|
unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() {
|
||||||
base::AutoLock locker(WebGLContextLimitLock());
|
base::AutoLock locker(WebGLContextLimitLock());
|
||||||
DCHECK(webgl_context_limits_initialized_);
|
DCHECK(webgl_context_limits_initialized_);
|
||||||
@@ -608,25 +615,6 @@ static String ExtractWebGLContextCreationError(
|
@@ -631,25 +638,6 @@ static String ExtractWebGLContextCreationError(
|
||||||
const Platform::GraphicsInfo& info) {
|
const Platform::WebGLContextInfo& info) {
|
||||||
StringBuilder builder;
|
StringBuilder builder;
|
||||||
builder.Append("Could not create a WebGL context");
|
builder.Append("Could not create a WebGL context");
|
||||||
- FormatWebGLStatusString(
|
- FormatWebGLStatusString(
|
||||||
@@ -258,10 +258,10 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
|
|||||||
FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(),
|
FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(),
|
||||||
builder);
|
builder);
|
||||||
builder.Append('.');
|
builder.Append('.');
|
||||||
@@ -686,6 +674,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider(
|
@@ -710,6 +698,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider(
|
||||||
const CanvasContextCreationAttributesCore& attributes,
|
const CanvasContextCreationAttributesCore& attributes,
|
||||||
Platform::ContextType context_type,
|
Platform::WebGLContextType context_type,
|
||||||
Platform::GraphicsInfo* graphics_info) {
|
Platform::WebGLContextInfo* context_info) {
|
||||||
+ if (!AllowWebglForHost(host)) {
|
+ if (!AllowWebglForHost(host)) {
|
||||||
+ host->HostDispatchEvent(WebGLContextEvent::Create(
|
+ host->HostDispatchEvent(WebGLContextEvent::Create(
|
||||||
+ event_type_names::kWebglcontextcreationerror,
|
+ event_type_names::kWebglcontextcreationerror,
|
||||||
@@ -274,7 +274,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
|
|||||||
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
|
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
|
||||||
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
|
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
|
||||||
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
|
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
|
||||||
@@ -1932,6 +1932,8 @@ class MODULES_EXPORT WebGLRenderingContextBase
|
@@ -1968,6 +1968,8 @@ class MODULES_EXPORT WebGLRenderingContextBase
|
||||||
DOMArrayBufferView* pixels,
|
DOMArrayBufferView* pixels,
|
||||||
int64_t offset);
|
int64_t offset);
|
||||||
|
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
.../bromite_content_settings/webrtc.inc | 22 +++++
|
.../bromite_content_settings/webrtc.inc | 22 +++++
|
||||||
.../bromite_content_settings/WEBRTC.inc | 1 +
|
.../bromite_content_settings/WEBRTC.inc | 1 +
|
||||||
.../peer_connection_dependency_factory.cc | 6 ++
|
.../peer_connection_dependency_factory.cc | 6 ++
|
||||||
.../peerconnection/rtc_rtp_receiver.cc | 10 ++
|
.../peerconnection/rtc_rtp_receiver.cc | 11 +++
|
||||||
.../modules/peerconnection/rtc_rtp_sender.cc | 10 ++
|
.../modules/peerconnection/rtc_rtp_sender.cc | 11 +++
|
||||||
7 files changed, 170 insertions(+)
|
7 files changed, 172 insertions(+)
|
||||||
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebRTCContentSetting.java
|
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebRTCContentSetting.java
|
||||||
create mode 100644 components/browser_ui/strings/bromite_content_settings/webrtc.grdp
|
create mode 100644 components/browser_ui/strings/bromite_content_settings/webrtc.grdp
|
||||||
create mode 100644 components/content_settings/core/browser/bromite_content_settings/webrtc.inc
|
create mode 100644 components/content_settings/core/browser/bromite_content_settings/webrtc.inc
|
||||||
@@ -49,7 +49,7 @@ new file mode 100644
|
|||||||
+import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting;
|
+import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting;
|
||||||
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
|
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
|
||||||
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
|
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
|
||||||
+import org.chromium.components.content_settings.ContentSettingValues;
|
+import org.chromium.components.content_settings.ContentSetting;
|
||||||
+import org.chromium.components.content_settings.ContentSettingsType;
|
+import org.chromium.components.content_settings.ContentSettingsType;
|
||||||
+import org.chromium.content_public.browser.BrowserContextHandle;
|
+import org.chromium.content_public.browser.BrowserContextHandle;
|
||||||
+
|
+
|
||||||
@@ -62,8 +62,8 @@ new file mode 100644
|
|||||||
+public class BromiteWebRTCContentSetting extends BromiteCustomContentSetting {
|
+public class BromiteWebRTCContentSetting extends BromiteCustomContentSetting {
|
||||||
+ public BromiteWebRTCContentSetting() {
|
+ public BromiteWebRTCContentSetting() {
|
||||||
+ super(/*contentSettingsType*/ ContentSettingsType.WEBRTC,
|
+ super(/*contentSettingsType*/ ContentSettingsType.WEBRTC,
|
||||||
+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW,
|
+ /*defaultEnabledValue*/ ContentSetting.ALLOW,
|
||||||
+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK,
|
+ /*defaultDisabledValue*/ ContentSetting.BLOCK,
|
||||||
+ /*allowException*/ true,
|
+ /*allowException*/ true,
|
||||||
+ /*preferenceKey*/ "webrtc",
|
+ /*preferenceKey*/ "webrtc",
|
||||||
+ /*profilePrefKey*/ "webrtc");
|
+ /*profilePrefKey*/ "webrtc");
|
||||||
@@ -82,11 +82,11 @@ new file mode 100644
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public int getCategorySummary(@Nullable @ContentSettingValues int value) {
|
+ public int getCategorySummary(@Nullable @ContentSetting int value) {
|
||||||
+ switch (value) {
|
+ switch (value) {
|
||||||
+ case ContentSettingValues.ALLOW:
|
+ case ContentSetting.ALLOW:
|
||||||
+ return R.string.website_settings_category_webrtc_enabled;
|
+ return R.string.website_settings_category_webrtc_enabled;
|
||||||
+ case ContentSettingValues.BLOCK:
|
+ case ContentSetting.BLOCK:
|
||||||
+ return R.string.website_settings_category_webrtc_disabled;
|
+ return R.string.website_settings_category_webrtc_disabled;
|
||||||
+ default:
|
+ default:
|
||||||
+ // this will cause a runtime exception
|
+ // this will cause a runtime exception
|
||||||
@@ -115,8 +115,8 @@ new file mode 100644
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) {
|
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) {
|
||||||
+ return value != ContentSettingValues.BLOCK;
|
+ return value != ContentSetting.BLOCK;
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/components/browser_ui/strings/bromite_content_settings/webrtc.grdp b/components/browser_ui/strings/bromite_content_settings/webrtc.grdp
|
diff --git a/components/browser_ui/strings/bromite_content_settings/webrtc.grdp b/components/browser_ui/strings/bromite_content_settings/webrtc.grdp
|
||||||
@@ -164,7 +164,7 @@ new file mode 100644
|
|||||||
+ WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
|
+ WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
|
||||||
+ WebsiteSettingsRegistry::ALL_PLATFORMS,
|
+ WebsiteSettingsRegistry::ALL_PLATFORMS,
|
||||||
+ ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
+ ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
||||||
+ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
+ PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
||||||
+
|
+
|
||||||
+ content_settings::WebsiteSettingsRegistry::GetInstance()
|
+ content_settings::WebsiteSettingsRegistry::GetInstance()
|
||||||
+ ->GetMutable(ContentSettingsType::WEBRTC)
|
+ ->GetMutable(ContentSettingsType::WEBRTC)
|
||||||
@@ -187,7 +187,7 @@ new file mode 100644
|
|||||||
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||||
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||||
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||||
@@ -41,6 +41,7 @@
|
@@ -48,6 +48,7 @@
|
||||||
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
|
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
|
||||||
#include "third_party/blink/public/platform/platform.h"
|
#include "third_party/blink/public/platform/platform.h"
|
||||||
#include "third_party/blink/public/platform/task_type.h"
|
#include "third_party/blink/public/platform/task_type.h"
|
||||||
@@ -195,7 +195,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d
|
|||||||
#include "third_party/blink/public/platform/web_url.h"
|
#include "third_party/blink/public/platform/web_url.h"
|
||||||
#include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
|
#include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
|
||||||
#include "third_party/blink/public/web/web_document.h"
|
#include "third_party/blink/public/web/web_document.h"
|
||||||
@@ -936,6 +937,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
@@ -1071,6 +1072,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
||||||
// |request_multiple_routes|. Whether local IP addresses could be
|
// |request_multiple_routes|. Whether local IP addresses could be
|
||||||
// collected depends on if mic/camera permission is granted for this
|
// collected depends on if mic/camera permission is granted for this
|
||||||
// origin.
|
// origin.
|
||||||
@@ -210,16 +210,17 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d
|
|||||||
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
|
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
|
||||||
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
|
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
|
||||||
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
|
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
|
||||||
@@ -16,6 +16,8 @@
|
@@ -12,6 +12,9 @@
|
||||||
#include "third_party/blink/public/common/privacy_budget/identifiable_surface.h"
|
#include "base/synchronization/lock.h"
|
||||||
#include "third_party/blink/public/common/privacy_budget/identifiable_token_builder.h"
|
#include "base/task/single_thread_task_runner.h"
|
||||||
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
|
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
|
||||||
+#include "third_party/blink/public/platform/web_content_settings_client.h"
|
+#include "third_party/blink/public/platform/web_content_settings_client.h"
|
||||||
+#include "third_party/blink/public/web/web_local_frame.h"
|
+#include "third_party/blink/public/web/web_local_frame.h"
|
||||||
|
+#include "third_party/blink/renderer/core/frame/local_dom_window.h"
|
||||||
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
|
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
|
||||||
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h"
|
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h"
|
||||||
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h"
|
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h"
|
||||||
@@ -288,6 +290,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state,
|
@@ -277,6 +280,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state,
|
||||||
if (kind != "audio" && kind != "video")
|
if (kind != "audio" && kind != "video")
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
@@ -237,16 +238,17 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.
|
|||||||
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
|
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
|
||||||
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
|
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
|
||||||
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
|
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
|
||||||
@@ -21,6 +21,8 @@
|
@@ -17,6 +17,9 @@
|
||||||
#include "third_party/blink/public/common/privacy_budget/identifiable_surface.h"
|
#include "base/strings/to_string.h"
|
||||||
#include "third_party/blink/public/common/privacy_budget/identifiable_token_builder.h"
|
#include "base/task/single_thread_task_runner.h"
|
||||||
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
|
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
|
||||||
+#include "third_party/blink/public/platform/web_content_settings_client.h"
|
+#include "third_party/blink/public/platform/web_content_settings_client.h"
|
||||||
+#include "third_party/blink/public/web/web_local_frame.h"
|
+#include "third_party/blink/public/web/web_local_frame.h"
|
||||||
|
+#include "third_party/blink/renderer/core/frame/local_dom_window.h"
|
||||||
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
|
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
|
||||||
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoding_options.h"
|
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoding_options.h"
|
||||||
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h"
|
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h"
|
||||||
@@ -1035,6 +1037,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
|
@@ -1020,6 +1023,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
|
||||||
if (kind != "audio" && kind != "video")
|
if (kind != "audio" && kind != "video")
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPicture.java b/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPicture.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPicture.java b/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPicture.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPicture.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPicture.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPicture.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPicture.java
|
||||||
@@ -27,6 +27,7 @@ public abstract class PictureInPicture {
|
@@ -29,6 +29,7 @@ public abstract class PictureInPicture {
|
||||||
* @return boolean true if Picture-In-Picture is enabled, otherwise false.
|
* @return boolean true if Picture-In-Picture is enabled, otherwise false.
|
||||||
*/
|
*/
|
||||||
public static boolean isEnabled(Context context) {
|
public static boolean isEnabled(Context context) {
|
||||||
@@ -26,15 +26,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/PictureIn
|
|||||||
diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
|
diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
|
||||||
--- a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
|
--- a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
|
||||||
+++ b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
|
+++ b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
|
||||||
@@ -27,6 +27,7 @@
|
@@ -31,6 +31,7 @@
|
||||||
#include "third_party/blink/renderer/core/html/media/html_media_element.h"
|
|
||||||
#include "third_party/blink/renderer/core/html/media/html_video_element.h"
|
|
||||||
#include "third_party/blink/renderer/core/layout/layout_video.h"
|
#include "third_party/blink/renderer/core/layout/layout_video.h"
|
||||||
|
#include "third_party/blink/renderer/modules/document_picture_in_picture/document_picture_in_picture.h"
|
||||||
|
#include "third_party/blink/renderer/modules/document_picture_in_picture/document_picture_in_picture_event.h"
|
||||||
+#include "third_party/blink/renderer/core/loader/document_loader.h"
|
+#include "third_party/blink/renderer/core/loader/document_loader.h"
|
||||||
#include "third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_event.h"
|
#include "third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_event.h"
|
||||||
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
|
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
|
||||||
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
|
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
|
||||||
@@ -392,6 +393,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow(
|
@@ -386,6 +387,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,14 +25,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
.../blink/renderer/core/frame/local_frame.h | 3 +++
|
.../blink/renderer/core/frame/local_frame.h | 3 +++
|
||||||
.../renderer/core/frame/reporting_context.cc | 9 +++++++++
|
.../renderer/core/frame/reporting_context.cc | 9 +++++++++
|
||||||
.../renderer/core/frame/reporting_context.h | 7 +++++--
|
.../renderer/core/frame/reporting_context.h | 7 +++++--
|
||||||
.../renderer/core/frame/reporting_observer.cc | 3 +--
|
.../renderer/core/frame/reporting_observer.cc | 4 +---
|
||||||
22 files changed, 64 insertions(+), 25 deletions(-)
|
22 files changed, 64 insertions(+), 26 deletions(-)
|
||||||
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Allow-building-without-enable_reporting.inc
|
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Allow-building-without-enable_reporting.inc
|
||||||
|
|
||||||
diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chrome_report_sender.cc
|
diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chrome_report_sender.cc
|
||||||
--- a/chrome/browser/net/chrome_report_sender.cc
|
--- a/chrome/browser/net/chrome_report_sender.cc
|
||||||
+++ b/chrome/browser/net/chrome_report_sender.cc
|
+++ b/chrome/browser/net/chrome_report_sender.cc
|
||||||
@@ -85,6 +85,7 @@ void SendReport(
|
@@ -88,6 +88,7 @@ void SendReport(
|
||||||
const std::string& report,
|
const std::string& report,
|
||||||
base::OnceClosure success_callback,
|
base::OnceClosure success_callback,
|
||||||
ErrorCallback error_callback) {
|
ErrorCallback error_callback) {
|
||||||
@@ -43,7 +43,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr
|
|||||||
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
|
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
|
||||||
--- a/content/browser/devtools/protocol/network_handler.cc
|
--- a/content/browser/devtools/protocol/network_handler.cc
|
||||||
+++ b/content/browser/devtools/protocol/network_handler.cc
|
+++ b/content/browser/devtools/protocol/network_handler.cc
|
||||||
@@ -1484,6 +1484,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
|
@@ -1670,6 +1670,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow
|
|||||||
std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
|
std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
|
||||||
std::vector<GURL> urls;
|
std::vector<GURL> urls;
|
||||||
frame_host->ForEachRenderFrameHostImplWithAction(
|
frame_host->ForEachRenderFrameHostImplWithAction(
|
||||||
@@ -1497,6 +1498,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
|
@@ -1683,6 +1684,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
|
||||||
});
|
});
|
||||||
return urls;
|
return urls;
|
||||||
}
|
}
|
||||||
@@ -87,7 +87,7 @@ diff --git a/content/browser/network/cross_origin_embedder_policy_reporter.cc b/
|
|||||||
+ const std::optional<std::string>& endpoint =
|
+ const std::optional<std::string>& endpoint =
|
||||||
+ report_only ? report_only_endpoint_ : endpoint_;
|
+ report_only ? report_only_endpoint_ : endpoint_;
|
||||||
if (endpoint) {
|
if (endpoint) {
|
||||||
base::Value::Dict body_to_pass;
|
base::DictValue body_to_pass;
|
||||||
for (const auto& pair : body) {
|
for (const auto& pair : body) {
|
||||||
@@ -125,6 +127,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
|
@@ -125,6 +127,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
|
||||||
network_anonymization_key_, std::move(body_to_pass));
|
network_anonymization_key_, std::move(body_to_pass));
|
||||||
@@ -106,12 +106,12 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse
|
|||||||
#include "base/values.h"
|
#include "base/values.h"
|
||||||
+#include "net/base/features.h"
|
+#include "net/base/features.h"
|
||||||
#include "content/browser/service_worker/service_worker_host.h"
|
#include "content/browser/service_worker/service_worker_host.h"
|
||||||
|
#include "content/browser/shared_storage/shared_storage_worklet_host.h"
|
||||||
#include "content/browser/worker_host/dedicated_worker_host.h"
|
#include "content/browser/worker_host/dedicated_worker_host.h"
|
||||||
#include "content/browser/worker_host/shared_worker_host.h"
|
@@ -250,12 +251,14 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy {
|
||||||
@@ -240,12 +241,14 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy {
|
|
||||||
const std::string& group,
|
const std::string& group,
|
||||||
const std::string& type,
|
const std::string& type,
|
||||||
base::Value::Dict body) {
|
base::DictValue body) {
|
||||||
+#if BUILDFLAG(ENABLE_REPORTING)
|
+#if BUILDFLAG(ENABLE_REPORTING)
|
||||||
auto* rph = RenderProcessHost::FromID(render_process_id_);
|
auto* rph = RenderProcessHost::FromID(render_process_id_);
|
||||||
if (!rph)
|
if (!rph)
|
||||||
@@ -122,11 +122,11 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse
|
|||||||
+#endif
|
+#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
const int render_process_id_;
|
const ChildProcessId render_process_id_;
|
||||||
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
|
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
|
||||||
--- a/content/browser/renderer_host/render_frame_host_impl.cc
|
--- a/content/browser/renderer_host/render_frame_host_impl.cc
|
||||||
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
|
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
|
||||||
@@ -15928,12 +15928,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
|
@@ -16912,12 +16912,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -138,7 +138,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b
|
|||||||
- std::move(body));
|
- std::move(body));
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderFrameHostImpl::UpdateOrDisableCompositorMetricRecorder() const {
|
base::DictValue RenderFrameHostImpl::ReadCrashReportAPIBody() {
|
||||||
diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.cc b/content/browser/security/coop/cross_origin_opener_policy_reporter.cc
|
diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.cc b/content/browser/security/coop/cross_origin_opener_policy_reporter.cc
|
||||||
--- a/content/browser/security/coop/cross_origin_opener_policy_reporter.cc
|
--- a/content/browser/security/coop/cross_origin_opener_policy_reporter.cc
|
||||||
+++ b/content/browser/security/coop/cross_origin_opener_policy_reporter.cc
|
+++ b/content/browser/security/coop/cross_origin_opener_policy_reporter.cc
|
||||||
@@ -201,7 +201,7 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CrossOriginOpenerPolicyReporter::QueueNavigationReport(
|
void CrossOriginOpenerPolicyReporter::QueueNavigationReport(
|
||||||
base::Value::Dict body,
|
base::DictValue body,
|
||||||
const std::string& endpoint,
|
const std::string& endpoint,
|
||||||
bool is_report_only) {
|
bool is_report_only) {
|
||||||
+#if BUILDFLAG(ENABLE_REPORTING)
|
+#if BUILDFLAG(ENABLE_REPORTING)
|
||||||
@@ -281,7 +281,7 @@ new file mode 100644
|
|||||||
diff --git a/net/reporting/reporting_header_parser.cc b/net/reporting/reporting_header_parser.cc
|
diff --git a/net/reporting/reporting_header_parser.cc b/net/reporting/reporting_header_parser.cc
|
||||||
--- a/net/reporting/reporting_header_parser.cc
|
--- a/net/reporting/reporting_header_parser.cc
|
||||||
+++ b/net/reporting/reporting_header_parser.cc
|
+++ b/net/reporting/reporting_header_parser.cc
|
||||||
@@ -337,6 +337,7 @@ void ReportingHeaderParser::ProcessParsedReportingEndpointsHeader(
|
@@ -344,6 +344,7 @@ void ReportingHeaderParser::ProcessParsedReportingEndpointsHeader(
|
||||||
const NetworkAnonymizationKey& network_anonymization_key,
|
const NetworkAnonymizationKey& network_anonymization_key,
|
||||||
const url::Origin& origin,
|
const url::Origin& origin,
|
||||||
base::flat_map<std::string, std::string> header) {
|
base::flat_map<std::string, std::string> header) {
|
||||||
@@ -292,7 +292,7 @@ diff --git a/net/reporting/reporting_header_parser.cc b/net/reporting/reporting_
|
|||||||
diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc
|
diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc
|
||||||
--- a/net/reporting/reporting_service.cc
|
--- a/net/reporting/reporting_service.cc
|
||||||
+++ b/net/reporting/reporting_service.cc
|
+++ b/net/reporting/reporting_service.cc
|
||||||
@@ -236,6 +236,12 @@ class ReportingServiceImpl : public ReportingService {
|
@@ -227,6 +227,12 @@ class ReportingServiceImpl : public ReportingService {
|
||||||
int depth,
|
int depth,
|
||||||
base::TimeTicks queued_ticks,
|
base::TimeTicks queued_ticks,
|
||||||
ReportingTargetType target_type) {
|
ReportingTargetType target_type) {
|
||||||
@@ -308,17 +308,17 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic
|
|||||||
diff --git a/services/network/network_context.h b/services/network/network_context.h
|
diff --git a/services/network/network_context.h b/services/network/network_context.h
|
||||||
--- a/services/network/network_context.h
|
--- a/services/network/network_context.h
|
||||||
+++ b/services/network/network_context.h
|
+++ b/services/network/network_context.h
|
||||||
@@ -486,14 +486,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
@@ -504,14 +504,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
||||||
const GURL& url,
|
const GURL& url,
|
||||||
const std::optional<base::UnguessableToken>& reporting_source,
|
const std::optional<base::UnguessableToken>& reporting_source,
|
||||||
const net::NetworkAnonymizationKey& network_anonymization_key,
|
const net::NetworkAnonymizationKey& network_anonymization_key,
|
||||||
- base::Value::Dict body) override;
|
- base::DictValue body) override;
|
||||||
+ base::Value::Dict body);
|
+ base::DictValue body);
|
||||||
void QueueEnterpriseReport(const std::string& type,
|
void QueueEnterpriseReport(const std::string& type,
|
||||||
const std::string& group,
|
const std::string& group,
|
||||||
const GURL& url,
|
const GURL& url,
|
||||||
- base::Value::Dict body) override;
|
- base::DictValue body) override;
|
||||||
+ base::Value::Dict body);
|
+ base::DictValue body);
|
||||||
void QueueSignedExchangeReport(
|
void QueueSignedExchangeReport(
|
||||||
mojom::SignedExchangeReportPtr report,
|
mojom::SignedExchangeReportPtr report,
|
||||||
- const net::NetworkAnonymizationKey& network_anonymization_key) override;
|
- const net::NetworkAnonymizationKey& network_anonymization_key) override;
|
||||||
@@ -329,7 +329,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
|
|||||||
diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/public/cpp/parsed_headers.cc
|
diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/public/cpp/parsed_headers.cc
|
||||||
--- a/services/network/public/cpp/parsed_headers.cc
|
--- a/services/network/public/cpp/parsed_headers.cc
|
||||||
+++ b/services/network/public/cpp/parsed_headers.cc
|
+++ b/services/network/public/cpp/parsed_headers.cc
|
||||||
@@ -125,6 +125,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders(
|
@@ -137,6 +137,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders(
|
||||||
}
|
}
|
||||||
|
|
||||||
#if BUILDFLAG(ENABLE_REPORTING)
|
#if BUILDFLAG(ENABLE_REPORTING)
|
||||||
@@ -340,7 +340,7 @@ diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/pu
|
|||||||
diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn
|
diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn
|
||||||
--- a/services/network/public/mojom/BUILD.gn
|
--- a/services/network/public/mojom/BUILD.gn
|
||||||
+++ b/services/network/public/mojom/BUILD.gn
|
+++ b/services/network/public/mojom/BUILD.gn
|
||||||
@@ -1791,7 +1791,6 @@ mojom("mojom") {
|
@@ -1899,7 +1899,6 @@ mojom("mojom") {
|
||||||
export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
|
export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
|
||||||
export_header_blink = "third_party/blink/public/platform/web_common.h"
|
export_header_blink = "third_party/blink/public/platform/web_common.h"
|
||||||
if (enable_reporting) {
|
if (enable_reporting) {
|
||||||
@@ -351,7 +351,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo
|
|||||||
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
|
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
|
||||||
--- a/services/network/public/mojom/network_context.mojom
|
--- a/services/network/public/mojom/network_context.mojom
|
||||||
+++ b/services/network/public/mojom/network_context.mojom
|
+++ b/services/network/public/mojom/network_context.mojom
|
||||||
@@ -1234,6 +1234,7 @@ interface NetworkContext {
|
@@ -1252,6 +1252,7 @@ interface NetworkContext {
|
||||||
// provided `network_anonymization_key`.
|
// provided `network_anonymization_key`.
|
||||||
//
|
//
|
||||||
// Spec: https://w3c.github.io/reporting/#concept-reports
|
// Spec: https://w3c.github.io/reporting/#concept-reports
|
||||||
@@ -359,7 +359,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
|
|||||||
QueueReport(string type,
|
QueueReport(string type,
|
||||||
string group,
|
string group,
|
||||||
url.mojom.Url url,
|
url.mojom.Url url,
|
||||||
@@ -1241,6 +1242,7 @@ interface NetworkContext {
|
@@ -1259,6 +1260,7 @@ interface NetworkContext {
|
||||||
NetworkAnonymizationKey network_anonymization_key,
|
NetworkAnonymizationKey network_anonymization_key,
|
||||||
mojo_base.mojom.DictionaryValue body);
|
mojo_base.mojom.DictionaryValue body);
|
||||||
|
|
||||||
@@ -367,7 +367,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
|
|||||||
QueueEnterpriseReport(string type,
|
QueueEnterpriseReport(string type,
|
||||||
string group,
|
string group,
|
||||||
url.mojom.Url url,
|
url.mojom.Url url,
|
||||||
@@ -1251,6 +1253,7 @@ interface NetworkContext {
|
@@ -1269,6 +1271,7 @@ interface NetworkContext {
|
||||||
// Note that this queued report will never be delivered if no reporting
|
// Note that this queued report will never be delivered if no reporting
|
||||||
// endpoint matching is registered for with the provided
|
// endpoint matching is registered for with the provided
|
||||||
// `network_anonymization_key`.
|
// `network_anonymization_key`.
|
||||||
@@ -383,18 +383,18 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
|
|||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
+#include "net/net_buildflags.h"
|
+#include "net/net_buildflags.h"
|
||||||
#include "base/containers/contains.h"
|
|
||||||
#include "base/debug/dump_without_crashing.h"
|
#include "base/debug/dump_without_crashing.h"
|
||||||
#include "base/feature_list.h"
|
#include "base/feature_list.h"
|
||||||
@@ -1260,6 +1261,7 @@ void ContentSecurityPolicy::ReportViolation(
|
#include "base/metrics/histogram_functions.h"
|
||||||
|
@@ -1383,6 +1384,7 @@ void ContentSecurityPolicy::ReportViolation(
|
||||||
|
ShouldBypassContentSecurityPolicy(KURL(violation_data->sourceFile()))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
+#if BUILDFLAG(ENABLE_REPORTING)
|
+#if BUILDFLAG(ENABLE_REPORTING)
|
||||||
PostViolationReport(violation_data, context_frame, report_endpoints,
|
PostViolationReport(violation_data, context_frame, report_endpoints,
|
||||||
use_reporting_api);
|
use_reporting_api);
|
||||||
|
|
||||||
@@ -1267,6 +1269,7 @@ void ContentSecurityPolicy::ReportViolation(
|
@@ -1390,6 +1392,7 @@ void ContentSecurityPolicy::ReportViolation(
|
||||||
// `context_frame` (i.e. we're not processing 'frame-ancestors').
|
// `context_frame` (i.e. we're not processing 'frame-ancestors').
|
||||||
if (delegate_ && !context_frame)
|
if (delegate_ && !context_frame)
|
||||||
delegate_->DispatchViolationEvent(*violation_data, element);
|
delegate_->DispatchViolationEvent(*violation_data, element);
|
||||||
@@ -405,7 +405,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
|
|||||||
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
|
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||||
--- a/third_party/blink/renderer/core/frame/local_frame.cc
|
--- a/third_party/blink/renderer/core/frame/local_frame.cc
|
||||||
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
|
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||||
@@ -47,6 +47,7 @@
|
@@ -50,6 +50,7 @@
|
||||||
#include "build/build_config.h"
|
#include "build/build_config.h"
|
||||||
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
|
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
|
||||||
#include "mojo/public/cpp/system/message_pipe.h"
|
#include "mojo/public/cpp/system/message_pipe.h"
|
||||||
@@ -413,7 +413,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
|
|||||||
#include "services/network/public/cpp/features.h"
|
#include "services/network/public/cpp/features.h"
|
||||||
#include "services/network/public/mojom/content_security_policy.mojom-blink.h"
|
#include "services/network/public/mojom/content_security_policy.mojom-blink.h"
|
||||||
#include "services/network/public/mojom/source_location.mojom-blink.h"
|
#include "services/network/public/mojom/source_location.mojom-blink.h"
|
||||||
@@ -2740,9 +2741,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() {
|
@@ -2879,9 +2880,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() {
|
||||||
return CHECK_DEREF(GetDocument()).GetResourceCoordinator();
|
return CHECK_DEREF(GetDocument()).GetResourceCoordinator();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -428,15 +428,15 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
|
|||||||
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
|
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
|
||||||
--- a/third_party/blink/renderer/core/frame/local_frame.h
|
--- a/third_party/blink/renderer/core/frame/local_frame.h
|
||||||
+++ b/third_party/blink/renderer/core/frame/local_frame.h
|
+++ b/third_party/blink/renderer/core/frame/local_frame.h
|
||||||
@@ -37,6 +37,7 @@
|
@@ -38,6 +38,7 @@
|
||||||
#include "base/time/time.h"
|
|
||||||
#include "base/unguessable_token.h"
|
#include "base/unguessable_token.h"
|
||||||
#include "build/build_config.h"
|
#include "build/build_config.h"
|
||||||
+#include "net/net_buildflags.h"
|
|
||||||
#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
|
|
||||||
#include "mojo/public/cpp/bindings/pending_receiver.h"
|
#include "mojo/public/cpp/bindings/pending_receiver.h"
|
||||||
|
+#include "net/net_buildflags.h"
|
||||||
#include "net/storage_access_api/status.h"
|
#include "net/storage_access_api/status.h"
|
||||||
@@ -667,7 +668,9 @@ class CORE_EXPORT LocalFrame final
|
#include "services/metrics/public/cpp/ukm_source_id.h"
|
||||||
|
#include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
|
||||||
|
@@ -674,7 +675,9 @@ class CORE_EXPORT LocalFrame final
|
||||||
return client_hints_preferences_;
|
return client_hints_preferences_;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -501,7 +501,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
|
|||||||
const String& type = report->type();
|
const String& type = report->type();
|
||||||
if (!(type == ReportType::kCSPViolation || type == ReportType::kCSPHash ||
|
if (!(type == ReportType::kCSPViolation || type == ReportType::kCSPHash ||
|
||||||
type == ReportType::kDeprecation ||
|
type == ReportType::kDeprecation ||
|
||||||
@@ -263,6 +271,7 @@ void ReportingContext::SendToReportingAPI(Report* report,
|
@@ -269,6 +277,7 @@ void ReportingContext::SendToReportingAPI(Report* report,
|
||||||
url, endpoint, body->featureId(), body->disposition(), body->message(),
|
url, endpoint, body->featureId(), body->disposition(), body->message(),
|
||||||
body->sourceFile(), line_number, column_number);
|
body->sourceFile(), line_number, column_number);
|
||||||
}
|
}
|
||||||
@@ -547,12 +547,13 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p
|
|||||||
diff --git a/third_party/blink/renderer/core/frame/reporting_observer.cc b/third_party/blink/renderer/core/frame/reporting_observer.cc
|
diff --git a/third_party/blink/renderer/core/frame/reporting_observer.cc b/third_party/blink/renderer/core/frame/reporting_observer.cc
|
||||||
--- a/third_party/blink/renderer/core/frame/reporting_observer.cc
|
--- a/third_party/blink/renderer/core/frame/reporting_observer.cc
|
||||||
+++ b/third_party/blink/renderer/core/frame/reporting_observer.cc
|
+++ b/third_party/blink/renderer/core/frame/reporting_observer.cc
|
||||||
@@ -62,8 +62,7 @@ void ReportingObserver::QueueReport(Report* report) {
|
@@ -61,9 +61,7 @@ void ReportingObserver::QueueReport(Report* report) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ReportingObserver::ObservedType(const String& type) {
|
bool ReportingObserver::ObservedType(const String& type) {
|
||||||
- return !options_->hasTypesNonNull() || options_->typesNonNull().empty() ||
|
- return !options_->hasTypes() || !options_->types() ||
|
||||||
- options_->typesNonNull().Find(type) != kNotFound;
|
- options_->types()->empty() ||
|
||||||
|
- options_->types()->Find(type) != kNotFound;
|
||||||
+ return false;
|
+ return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,35 +7,36 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
chrome/android/BUILD.gn | 1 -
|
chrome/android/BUILD.gn | 1 -
|
||||||
.../chrome/browser/feedback/ChromeFeedbackCollector.java | 1 -
|
.../chrome/browser/feedback/ChromeFeedbackCollector.java | 1 -
|
||||||
chrome/browser/feedback/android/BUILD.gn | 2 --
|
chrome/browser/feedback/android/BUILD.gn | 2 --
|
||||||
chrome/browser/prefs/chrome_pref_service_factory.cc | 2 +-
|
chrome/browser/prefs/chrome_pref_service_factory.cc | 6 ------
|
||||||
chrome/browser/profiles/profile_attributes_entry.cc | 2 +-
|
chrome/browser/profiles/profile_attributes_entry.cc | 2 +-
|
||||||
chrome/browser/profiles/profile_impl.cc | 5 +----
|
chrome/browser/profiles/profile_impl.cc | 5 +----
|
||||||
chrome/browser/profiles/profile_manager.cc | 7 -------
|
chrome/browser/profiles/profile_manager.cc | 7 -------
|
||||||
.../supervised_user/supervised_user_browser_utils.cc | 1 +
|
.../supervised_user/supervised_user_browser_utils.cc | 1 +
|
||||||
chrome/browser/ui/webui/managed_ui_handler.cc | 4 ----
|
chrome/browser/ui/webui/managed_ui_handler.cc | 4 ----
|
||||||
.../browser/ui/webui/management/management_ui_handler.cc | 4 ----
|
.../browser/ui/webui/management/management_ui_handler.cc | 4 ----
|
||||||
|
.../browser/android/content_filters_observer_bridge.cc | 2 +-
|
||||||
.../core/browser/supervised_user_pref_store.cc | 1 +
|
.../core/browser/supervised_user_pref_store.cc | 1 +
|
||||||
.../core/browser/supervised_user_preferences.cc | 6 +++++-
|
.../core/browser/supervised_user_preferences.cc | 6 +++++-
|
||||||
.../core/browser/supervised_user_service.cc | 1 +
|
.../core/browser/supervised_user_service.cc | 1 +
|
||||||
components/supervised_user/core/common/features.cc | 2 +-
|
components/supervised_user/core/common/features.cc | 1 +
|
||||||
extensions/browser/api/management/management_api.cc | 1 +
|
extensions/browser/api/management/management_api.cc | 1 +
|
||||||
15 files changed, 13 insertions(+), 27 deletions(-)
|
16 files changed, 13 insertions(+), 32 deletions(-)
|
||||||
|
|
||||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||||
--- a/chrome/android/BUILD.gn
|
--- a/chrome/android/BUILD.gn
|
||||||
+++ b/chrome/android/BUILD.gn
|
+++ b/chrome/android/BUILD.gn
|
||||||
@@ -805,7 +805,6 @@ if (_is_default_toolchain) {
|
@@ -840,7 +840,6 @@ if (_is_default_toolchain) {
|
||||||
"//components/offline_pages/core:offline_page_model_enums_java",
|
"//components/offline_pages/core:offline_page_model_enums_java",
|
||||||
"//components/sharing_message:sharing_dialog_type_generated_enum",
|
"//components/sharing_message:sharing_dialog_type_generated_enum",
|
||||||
"//components/sharing_message:sharing_send_message_result_generated_enum",
|
"//components/sharing_message:sharing_send_message_result_generated_enum",
|
||||||
- "//components/supervised_user/core/browser:supervised_user_utils_enum_javagen",
|
- "//components/supervised_user/core/browser:supervised_user_utils_enum_javagen",
|
||||||
|
"//components/touch_to_search/core/browser:quick_action_category_enum_javagen",
|
||||||
]
|
]
|
||||||
|
|
||||||
# From java_sources.gni.
|
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
|
||||||
@@ -93,7 +93,6 @@ public class ChromeFeedbackCollector extends FeedbackCollector<ChromeFeedbackCol
|
@@ -96,7 +96,6 @@ public class ChromeFeedbackCollector extends FeedbackCollector<ChromeFeedbackCol
|
||||||
// FamilyInfoFeedbackSource relies on IdentityManager which is not available for the
|
// FamilyInfoFeedbackSource relies on IdentityManager which is not available for the
|
||||||
// incognito profile.
|
// incognito profile.
|
||||||
if (!initParams.profile.isOffTheRecord()) {
|
if (!initParams.profile.isOffTheRecord()) {
|
||||||
@@ -65,19 +66,23 @@ diff --git a/chrome/browser/feedback/android/BUILD.gn b/chrome/browser/feedback/
|
|||||||
diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc
|
diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc
|
||||||
--- a/chrome/browser/prefs/chrome_pref_service_factory.cc
|
--- a/chrome/browser/prefs/chrome_pref_service_factory.cc
|
||||||
+++ b/chrome/browser/prefs/chrome_pref_service_factory.cc
|
+++ b/chrome/browser/prefs/chrome_pref_service_factory.cc
|
||||||
@@ -328,7 +328,7 @@ void PrepareFactory(
|
@@ -351,12 +351,6 @@ void PrepareFactory(
|
||||||
policy::BrowserPolicyConnector* policy_connector) {
|
PrepareFactory(factory, pref_filename, policy_service,
|
||||||
factory->SetManagedPolicies(policy_service, policy_connector);
|
std::move(user_pref_store), std::move(extension_prefs), async,
|
||||||
factory->SetRecommendedPolicies(policy_service, policy_connector);
|
policy_connector);
|
||||||
- if (supervised_user_settings) {
|
-
|
||||||
+ if (((false)) && supervised_user_settings) {
|
- scoped_refptr<PrefStore> supervised_user_prefs =
|
||||||
scoped_refptr<PrefStore> supervised_user_prefs =
|
- base::MakeRefCounted<SupervisedUserPrefStore>(
|
||||||
base::MakeRefCounted<SupervisedUserPrefStore>(supervised_user_settings);
|
- family_link_settings_service, device_parental_controls);
|
||||||
DCHECK(async || supervised_user_prefs->IsInitializationComplete());
|
- DCHECK(async || supervised_user_prefs->IsInitializationComplete());
|
||||||
|
- factory->set_supervised_user_prefs(supervised_user_prefs);
|
||||||
|
}
|
||||||
|
|
||||||
|
class ResetOnLoadObserverImpl : public prefs::mojom::ResetOnLoadObserver {
|
||||||
diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc
|
diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc
|
||||||
--- a/chrome/browser/profiles/profile_attributes_entry.cc
|
--- a/chrome/browser/profiles/profile_attributes_entry.cc
|
||||||
+++ b/chrome/browser/profiles/profile_attributes_entry.cc
|
+++ b/chrome/browser/profiles/profile_attributes_entry.cc
|
||||||
@@ -467,7 +467,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const {
|
@@ -466,7 +466,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ProfileAttributesEntry::GetSupervisedUserId() const {
|
std::string ProfileAttributesEntry::GetSupervisedUserId() const {
|
||||||
@@ -89,7 +94,7 @@ diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browse
|
|||||||
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
|
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
|
||||||
--- a/chrome/browser/profiles/profile_impl.cc
|
--- a/chrome/browser/profiles/profile_impl.cc
|
||||||
+++ b/chrome/browser/profiles/profile_impl.cc
|
+++ b/chrome/browser/profiles/profile_impl.cc
|
||||||
@@ -674,10 +674,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) {
|
@@ -689,10 +689,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) {
|
||||||
prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_);
|
prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_);
|
||||||
|
|
||||||
pref_change_registrar_.Init(prefs);
|
pref_change_registrar_.Init(prefs);
|
||||||
@@ -100,7 +105,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
|
|||||||
|
|
||||||
// Changes in the profile avatar.
|
// Changes in the profile avatar.
|
||||||
pref_change_registrar_.Add(
|
pref_change_registrar_.Add(
|
||||||
@@ -1619,6 +1615,7 @@ GURL ProfileImpl::GetHomePage() {
|
@@ -1618,6 +1614,7 @@ GURL ProfileImpl::GetHomePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProfileImpl::UpdateSupervisedUserIdInStorage() {
|
void ProfileImpl::UpdateSupervisedUserIdInStorage() {
|
||||||
@@ -111,7 +116,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
|
|||||||
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
|
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
|
||||||
--- a/chrome/browser/profiles/profile_manager.cc
|
--- a/chrome/browser/profiles/profile_manager.cc
|
||||||
+++ b/chrome/browser/profiles/profile_manager.cc
|
+++ b/chrome/browser/profiles/profile_manager.cc
|
||||||
@@ -1192,10 +1192,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
|
@@ -1308,10 +1308,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
|
||||||
profile->GetPrefs()->SetString(prefs::kProfileName, profile_name);
|
profile->GetPrefs()->SetString(prefs::kProfileName, profile_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,10 +124,10 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
|
|||||||
- profile->GetPrefs()->SetString(prefs::kSupervisedUserId,
|
- profile->GetPrefs()->SetString(prefs::kSupervisedUserId,
|
||||||
- supervised_user_id);
|
- supervised_user_id);
|
||||||
- }
|
- }
|
||||||
#if !BUILDFLAG(IS_ANDROID)
|
}
|
||||||
if (profile->IsNewProfile()) {
|
|
||||||
profile->GetPrefs()->SetBoolean(prefs::kHasSeenWelcomePage, false);
|
void ProfileManager::RegisterTestingProfile(std::unique_ptr<Profile> profile,
|
||||||
@@ -1978,9 +1974,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
|
@@ -2114,9 +2110,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
|
||||||
init_params.icon_index =
|
init_params.icon_index =
|
||||||
profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex);
|
profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex);
|
||||||
|
|
||||||
@@ -135,7 +140,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
|
|||||||
diff --git a/chrome/browser/supervised_user/supervised_user_browser_utils.cc b/chrome/browser/supervised_user/supervised_user_browser_utils.cc
|
diff --git a/chrome/browser/supervised_user/supervised_user_browser_utils.cc b/chrome/browser/supervised_user/supervised_user_browser_utils.cc
|
||||||
--- a/chrome/browser/supervised_user/supervised_user_browser_utils.cc
|
--- a/chrome/browser/supervised_user/supervised_user_browser_utils.cc
|
||||||
+++ b/chrome/browser/supervised_user/supervised_user_browser_utils.cc
|
+++ b/chrome/browser/supervised_user/supervised_user_browser_utils.cc
|
||||||
@@ -99,6 +99,7 @@ bool SupervisedUserCanSkipExtensionParentApprovals(const Profile* profile) {
|
@@ -98,6 +98,7 @@ bool SupervisedUserCanSkipExtensionParentApprovals(const Profile* profile) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AreExtensionsPermissionsEnabled(Profile* profile) {
|
bool AreExtensionsPermissionsEnabled(Profile* profile) {
|
||||||
@@ -146,7 +151,7 @@ diff --git a/chrome/browser/supervised_user/supervised_user_browser_utils.cc b/c
|
|||||||
diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/webui/managed_ui_handler.cc
|
diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/webui/managed_ui_handler.cc
|
||||||
--- a/chrome/browser/ui/webui/managed_ui_handler.cc
|
--- a/chrome/browser/ui/webui/managed_ui_handler.cc
|
||||||
+++ b/chrome/browser/ui/webui/managed_ui_handler.cc
|
+++ b/chrome/browser/ui/webui/managed_ui_handler.cc
|
||||||
@@ -89,10 +89,6 @@ void ManagedUIHandler::AddObservers() {
|
@@ -88,10 +88,6 @@ void ManagedUIHandler::AddObservers() {
|
||||||
auto domain = static_cast<policy::PolicyDomain>(i);
|
auto domain = static_cast<policy::PolicyDomain>(i);
|
||||||
policy_service->AddObserver(domain, this);
|
policy_service->AddObserver(domain, this);
|
||||||
}
|
}
|
||||||
@@ -160,7 +165,7 @@ diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/w
|
|||||||
diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrome/browser/ui/webui/management/management_ui_handler.cc
|
diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrome/browser/ui/webui/management/management_ui_handler.cc
|
||||||
--- a/chrome/browser/ui/webui/management/management_ui_handler.cc
|
--- a/chrome/browser/ui/webui/management/management_ui_handler.cc
|
||||||
+++ b/chrome/browser/ui/webui/management/management_ui_handler.cc
|
+++ b/chrome/browser/ui/webui/management/management_ui_handler.cc
|
||||||
@@ -595,10 +595,6 @@ bool ManagementUIHandler::managed() const {
|
@@ -627,10 +627,6 @@ bool ManagementUIHandler::managed() const {
|
||||||
|
|
||||||
void ManagementUIHandler::RegisterPrefChange(
|
void ManagementUIHandler::RegisterPrefChange(
|
||||||
PrefChangeRegistrar& pref_registrar) {
|
PrefChangeRegistrar& pref_registrar) {
|
||||||
@@ -171,21 +176,33 @@ diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrom
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ManagementUIHandler::UpdateManagedState() {
|
void ManagementUIHandler::UpdateManagedState() {
|
||||||
|
diff --git a/components/supervised_user/core/browser/android/content_filters_observer_bridge.cc b/components/supervised_user/core/browser/android/content_filters_observer_bridge.cc
|
||||||
|
--- a/components/supervised_user/core/browser/android/content_filters_observer_bridge.cc
|
||||||
|
+++ b/components/supervised_user/core/browser/android/content_filters_observer_bridge.cc
|
||||||
|
@@ -39,7 +39,7 @@ void ContentFiltersObserverBridge::OnChange(JNIEnv* env, bool enabled) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void ContentFiltersObserverBridge::SetEnabled(bool enabled) {
|
||||||
|
- enabled_ = enabled;
|
||||||
|
+ enabled_ = false;
|
||||||
|
NotifyObservers();
|
||||||
|
}
|
||||||
|
|
||||||
diff --git a/components/supervised_user/core/browser/supervised_user_pref_store.cc b/components/supervised_user/core/browser/supervised_user_pref_store.cc
|
diff --git a/components/supervised_user/core/browser/supervised_user_pref_store.cc b/components/supervised_user/core/browser/supervised_user_pref_store.cc
|
||||||
--- a/components/supervised_user/core/browser/supervised_user_pref_store.cc
|
--- a/components/supervised_user/core/browser/supervised_user_pref_store.cc
|
||||||
+++ b/components/supervised_user/core/browser/supervised_user_pref_store.cc
|
+++ b/components/supervised_user/core/browser/supervised_user_pref_store.cc
|
||||||
@@ -142,6 +142,7 @@ SupervisedUserPrefStore::~SupervisedUserPrefStore() = default;
|
@@ -188,6 +188,7 @@ void SupervisedUserPrefStore::RecreatePreferences() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
void SupervisedUserPrefStore::OnNewSettingsAvailable(
|
|
||||||
const base::Value::Dict& settings) {
|
|
||||||
+ if ((true)) return;
|
+ if ((true)) return;
|
||||||
std::unique_ptr<PrefValueMap> old_prefs = std::move(prefs_);
|
std::unique_ptr<PrefValueMap> old_prefs = std::move(prefs_);
|
||||||
prefs_ = std::make_unique<PrefValueMap>();
|
prefs_ = std::make_unique<PrefValueMap>();
|
||||||
if (!settings.empty()) {
|
|
||||||
diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc
|
diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc
|
||||||
--- a/components/supervised_user/core/browser/supervised_user_preferences.cc
|
--- a/components/supervised_user/core/browser/supervised_user_preferences.cc
|
||||||
+++ b/components/supervised_user/core/browser/supervised_user_preferences.cc
|
+++ b/components/supervised_user/core/browser/supervised_user_preferences.cc
|
||||||
@@ -164,6 +164,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
@@ -160,6 +160,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnableParentalControls(PrefService& pref_service) {
|
void EnableParentalControls(PrefService& pref_service) {
|
||||||
@@ -196,7 +213,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences
|
|||||||
pref_service.SetString(prefs::kSupervisedUserId,
|
pref_service.SetString(prefs::kSupervisedUserId,
|
||||||
supervised_user::kChildAccountSUID);
|
supervised_user::kChildAccountSUID);
|
||||||
#if BUILDFLAG(IS_CHROMEOS)
|
#if BUILDFLAG(IS_CHROMEOS)
|
||||||
@@ -197,7 +201,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) {
|
@@ -187,7 +191,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsSubjectToParentalControls(const PrefService& pref_service) {
|
bool IsSubjectToParentalControls(const PrefService& pref_service) {
|
||||||
@@ -208,7 +225,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences
|
|||||||
diff --git a/components/supervised_user/core/browser/supervised_user_service.cc b/components/supervised_user/core/browser/supervised_user_service.cc
|
diff --git a/components/supervised_user/core/browser/supervised_user_service.cc b/components/supervised_user/core/browser/supervised_user_service.cc
|
||||||
--- a/components/supervised_user/core/browser/supervised_user_service.cc
|
--- a/components/supervised_user/core/browser/supervised_user_service.cc
|
||||||
+++ b/components/supervised_user/core/browser/supervised_user_service.cc
|
+++ b/components/supervised_user/core/browser/supervised_user_service.cc
|
||||||
@@ -168,6 +168,7 @@ SupervisedUserService::SupervisedUserService(
|
@@ -160,6 +160,7 @@ SupervisedUserService::SupervisedUserService(
|
||||||
}
|
}
|
||||||
|
|
||||||
void SupervisedUserService::SetSettingsServiceActive(bool active) {
|
void SupervisedUserService::SetSettingsServiceActive(bool active) {
|
||||||
@@ -219,29 +236,23 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc
|
|||||||
diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc
|
diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc
|
||||||
--- a/components/supervised_user/core/common/features.cc
|
--- a/components/supervised_user/core/common/features.cc
|
||||||
+++ b/components/supervised_user/core/common/features.cc
|
+++ b/components/supervised_user/core/common/features.cc
|
||||||
@@ -35,7 +35,6 @@ BASE_FEATURE(kAllowSubframeLocalWebApprovals,
|
@@ -19,6 +19,7 @@ namespace supervised_user {
|
||||||
#else
|
// Enables local parent approvals for the blocked website on the Family Link
|
||||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
// user's device.
|
||||||
#endif
|
BASE_FEATURE(kLocalWebApprovals, base::FEATURE_ENABLED_BY_DEFAULT);
|
||||||
-
|
|
||||||
#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
|
|
||||||
BUILDFLAG(IS_WIN)
|
|
||||||
const int kLocalWebApprovalBottomSheetLoadTimeoutDefaultValueMs = 5000;
|
|
||||||
@@ -148,4 +147,5 @@ BASE_FEATURE(kDecoupleSafeSitesFromMainSwitch,
|
|
||||||
"DecoupleSafeSitesFromMainSwitch",
|
|
||||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
|
||||||
|
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kLocalWebApprovals);
|
+SET_CROMITE_FEATURE_DISABLED(kLocalWebApprovals);
|
||||||
} // namespace supervised_user
|
|
||||||
|
// TODO(crbug.com/391799078): Support local web approval for subframes on
|
||||||
|
// Desktop.
|
||||||
diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc
|
diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc
|
||||||
--- a/extensions/browser/api/management/management_api.cc
|
--- a/extensions/browser/api/management/management_api.cc
|
||||||
+++ b/extensions/browser/api/management/management_api.cc
|
+++ b/extensions/browser/api/management/management_api.cc
|
||||||
@@ -310,6 +310,7 @@ void AddExtensionInfo(const Extension* source_extension,
|
@@ -693,6 +693,7 @@ bool ManagementSetEnabledFunction::HasUnsupportedRequirements(
|
||||||
}
|
|
||||||
|
|
||||||
bool PlatformSupportsApprovalFlowForExtensions() {
|
bool ManagementSetEnabledFunction::IsSupervisedExtensionApprovalFlowRequired(
|
||||||
|
const Extension* target_extension) const {
|
||||||
+ if ((true)) return false;
|
+ if ((true)) return false;
|
||||||
#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
|
SupervisedUserExtensionsDelegate* supervised_user_extensions_delegate =
|
||||||
BUILDFLAG(IS_WIN)
|
ManagementAPI::GetFactoryInstance()
|
||||||
return true;
|
->Get(browser_context())
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -4,15 +4,27 @@ Subject: Allow playing audio in background
|
|||||||
|
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
|
.../renderer/render_frame_media_playback_options.cc | 1 +
|
||||||
.../renderer/platform/media/web_media_player_impl.cc | 11 ++++++++++-
|
.../renderer/platform/media/web_media_player_impl.cc | 11 ++++++++++-
|
||||||
.../renderer/platform/media/web_media_player_impl.h | 3 +++
|
.../renderer/platform/media/web_media_player_impl.h | 3 +++
|
||||||
2 files changed, 13 insertions(+), 1 deletion(-)
|
3 files changed, 14 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/content/public/renderer/render_frame_media_playback_options.cc b/content/public/renderer/render_frame_media_playback_options.cc
|
||||||
|
--- a/content/public/renderer/render_frame_media_playback_options.cc
|
||||||
|
+++ b/content/public/renderer/render_frame_media_playback_options.cc
|
||||||
|
@@ -14,6 +14,7 @@
|
||||||
|
|
||||||
|
namespace content {
|
||||||
|
bool IsBackgroundMediaSuspendEnabled() {
|
||||||
|
+ if ((true)) return false;
|
||||||
|
#if BUILDFLAG(IS_ANDROID)
|
||||||
|
// For Android devices, do not suspend background media for devices with large
|
||||||
|
// displays. Exception is for Webview.
|
||||||
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
|
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
|
||||||
--- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
|
--- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
|
||||||
+++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
|
+++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
|
||||||
@@ -1340,6 +1340,12 @@ void WebMediaPlayerImpl::OnSelectedVideoTrackChanged(
|
@@ -1348,6 +1348,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
|
||||||
pipeline_controller_->OnSelectedVideoTrackChanged(selected);
|
return pipeline_metadata_.has_audio;
|
||||||
}
|
}
|
||||||
|
|
||||||
+bool WebMediaPlayerImpl::HasVideoNonEmptySize() const {
|
+bool WebMediaPlayerImpl::HasVideoNonEmptySize() const {
|
||||||
@@ -22,11 +34,11 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
void WebMediaPlayerImpl::EnabledAudioTracksChanged(
|
void WebMediaPlayerImpl::EnabledAudioTracksChanged(
|
||||||
const std::vector<WebMediaPlayer::TrackId>& enabled_track_ids) {
|
std::optional<WebMediaPlayer::TrackId> enabled_track_id) {
|
||||||
DCHECK(main_task_runner_->BelongsToCurrentThread());
|
DCHECK(main_task_runner_->BelongsToCurrentThread());
|
||||||
@@ -3710,7 +3716,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
|
@@ -3745,7 +3751,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
|
||||||
: HasAudio();
|
|
||||||
|
|
||||||
|
const bool preserve_audio = HasUnmutedAudio() || audio_source_provider_->IsAudioBeingCaptured();
|
||||||
// Audio only stream is allowed to play when in background.
|
// Audio only stream is allowed to play when in background.
|
||||||
- if (!HasVideo() && preserve_audio)
|
- if (!HasVideo() && preserve_audio)
|
||||||
+ //pipeline_metadata_.has_video is true for MediaPlayerRenderer,
|
+ //pipeline_metadata_.has_video is true for MediaPlayerRenderer,
|
||||||
@@ -39,7 +51,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
|
|||||||
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h
|
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h
|
||||||
--- a/third_party/blink/renderer/platform/media/web_media_player_impl.h
|
--- a/third_party/blink/renderer/platform/media/web_media_player_impl.h
|
||||||
+++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h
|
+++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h
|
||||||
@@ -212,6 +212,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl
|
@@ -214,6 +214,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl
|
||||||
bool HasVideo() const override;
|
bool HasVideo() const override;
|
||||||
bool HasAudio() const override;
|
bool HasAudio() const override;
|
||||||
|
|
||||||
@@ -47,6 +59,6 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b
|
|||||||
+ bool HasVideoNonEmptySize() const;
|
+ bool HasVideoNonEmptySize() const;
|
||||||
+
|
+
|
||||||
void EnabledAudioTracksChanged(
|
void EnabledAudioTracksChanged(
|
||||||
const std::vector<WebMediaPlayer::TrackId>& enabled_track_ids) override;
|
std::optional<WebMediaPlayer::TrackId> enabled_track_id) override;
|
||||||
void SelectedVideoTrackChanged(
|
void SelectedVideoTrackChanged(
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/chrome/browser/resources/inspect/inspect.js b/chrome/browser/resources/inspect/inspect.js
|
diff --git a/chrome/browser/resources/inspect/inspect.js b/chrome/browser/resources/inspect/inspect.js
|
||||||
--- a/chrome/browser/resources/inspect/inspect.js
|
--- a/chrome/browser/resources/inspect/inspect.js
|
||||||
+++ b/chrome/browser/resources/inspect/inspect.js
|
+++ b/chrome/browser/resources/inspect/inspect.js
|
||||||
@@ -45,6 +45,7 @@ if ('browser-inspector' in queryParamsObject) {
|
@@ -46,6 +46,7 @@ if ('browser-inspector' in queryParamsObject) {
|
||||||
})();
|
})();
|
||||||
|
|
||||||
function isVersionNewerThanHost(version) {
|
function isVersionNewerThanHost(version) {
|
||||||
@@ -20,7 +20,7 @@ diff --git a/chrome/browser/resources/inspect/inspect.js b/chrome/browser/resour
|
|||||||
if (!HOST_CHROME_VERSION) {
|
if (!HOST_CHROME_VERSION) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -566,7 +567,7 @@ function formatValue(data, property) {
|
@@ -600,7 +601,7 @@ function formatValue(data, property) {
|
||||||
function addFavicon(row, data) {
|
function addFavicon(row, data) {
|
||||||
const favicon = document.createElement('img');
|
const favicon = document.createElement('img');
|
||||||
if (data['faviconUrl']) {
|
if (data['faviconUrl']) {
|
||||||
|
|||||||
@@ -10,34 +10,34 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
||||||
@@ -21,6 +21,7 @@ import org.chromium.base.IntentUtils;
|
@@ -23,6 +23,7 @@ import org.chromium.base.PackageManagerUtils;
|
||||||
import org.chromium.base.PackageManagerUtils;
|
|
||||||
import org.chromium.base.metrics.RecordUserAction;
|
import org.chromium.base.metrics.RecordUserAction;
|
||||||
import org.chromium.base.supplier.Supplier;
|
import org.chromium.build.annotations.NullMarked;
|
||||||
|
import org.chromium.build.annotations.Nullable;
|
||||||
+import org.chromium.cc.input.BrowserControlsState;
|
+import org.chromium.cc.input.BrowserControlsState;
|
||||||
import org.chromium.chrome.browser.DefaultBrowserInfo;
|
|
||||||
import org.chromium.chrome.browser.IntentHandler;
|
import org.chromium.chrome.browser.IntentHandler;
|
||||||
import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpenerImpl;
|
import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpenerImpl;
|
||||||
@@ -38,6 +39,7 @@ import org.chromium.chrome.browser.preferences.Pref;
|
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
|
||||||
|
@@ -43,6 +44,7 @@ import org.chromium.chrome.browser.preferences.Pref;
|
||||||
import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory;
|
import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory;
|
||||||
import org.chromium.chrome.browser.printing.TabPrinter;
|
import org.chromium.chrome.browser.printing.TabPrinter;
|
||||||
import org.chromium.chrome.browser.profiles.Profile;
|
import org.chromium.chrome.browser.profiles.Profile;
|
||||||
+import org.chromium.chrome.browser.tab.TabBrowserControlsConstraintsHelper;
|
+import org.chromium.chrome.browser.tab.TabBrowserControlsConstraintsHelper;
|
||||||
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
||||||
import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher;
|
|
||||||
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
|
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
|
||||||
@@ -290,6 +292,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
|
||||||
Referrer referrer,
|
@@ -322,6 +324,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||||
|
@Nullable Referrer referrer,
|
||||||
boolean navigateToTab,
|
boolean navigateToTab,
|
||||||
@Nullable AdditionalNavigationParams additionalNavigationParams) {
|
@Nullable AdditionalNavigationParams additionalNavigationParams) {
|
||||||
+ TabBrowserControlsConstraintsHelper.get(mTab).update(BrowserControlsState.SHOWN, true);
|
+ TabBrowserControlsConstraintsHelper.get(mTab).update(BrowserControlsState.SHOWN, true);
|
||||||
RecordUserAction.record("MobileNewTabOpened");
|
RecordUserAction.record("MobileNewTabOpened");
|
||||||
RecordUserAction.record("LinkOpenedInNewTab");
|
RecordUserAction.record("LinkOpenedInNewTab");
|
||||||
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
|
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
|
||||||
@@ -310,6 +313,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
@@ -342,6 +345,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||||
* @param url The URL to open.
|
* @param url The URL to open.
|
||||||
*/
|
*/
|
||||||
public void onOpenInNewTabInGroup(GURL url, Referrer referrer) {
|
public void onOpenInNewTabInGroup(GURL url, @Nullable Referrer referrer) {
|
||||||
+ TabBrowserControlsConstraintsHelper.get(mTab).update(BrowserControlsState.SHOWN, true);
|
+ TabBrowserControlsConstraintsHelper.get(mTab).update(BrowserControlsState.SHOWN, true);
|
||||||
RecordUserAction.record("MobileNewTabOpened");
|
RecordUserAction.record("MobileNewTabOpened");
|
||||||
RecordUserAction.record("LinkOpenedInNewTab");
|
RecordUserAction.record("LinkOpenedInNewTab");
|
||||||
|
|||||||
@@ -7,24 +7,24 @@ Ignore any partner-provided home page.
|
|||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
.../org/chromium/chrome/browser/homepage/HomepageManager.java | 4 ----
|
.../org/chromium/chrome/browser/homepage/HomepageManager.java | 4 ----
|
||||||
.../chrome/browser/new_tab_url/DseNewTabUrlManager.java | 1 +
|
.../chrome/browser/new_tab_url/DseNewTabUrlManager.java | 2 +-
|
||||||
.../partnerbookmarks/PartnerBookmarksProviderIterator.java | 1 +
|
.../partnerbookmarks/PartnerBookmarksProviderIterator.java | 1 +
|
||||||
.../partnercustomizations/PartnerBrowserCustomizations.java | 2 +-
|
.../partnercustomizations/PartnerBrowserCustomizations.java | 2 +-
|
||||||
.../org/chromium/components/search_engines/TemplateUrl.java | 1 +
|
.../org/chromium/components/search_engines/TemplateUrl.java | 1 +
|
||||||
.../search_engines/android/template_url_service_android.cc | 1 +
|
.../search_engines/android/template_url_service_android.cc | 1 +
|
||||||
.../always-use-new-tab-page-for-default-home-page.inc | 1 +
|
.../always-use-new-tab-page-for-default-home-page.inc | 1 +
|
||||||
7 files changed, 6 insertions(+), 5 deletions(-)
|
7 files changed, 6 insertions(+), 6 deletions(-)
|
||||||
create mode 100755 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc
|
create mode 100755 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc
|
||||||
|
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||||
@@ -148,10 +148,6 @@ public class HomepageManager
|
@@ -164,10 +164,6 @@ public class HomepageManager
|
||||||
* tab page if the homepage button is force enabled via flag.
|
* tab page if the homepage button is force enabled via flag.
|
||||||
*/
|
*/
|
||||||
public GURL getDefaultHomepageGurl() {
|
public GURL getDefaultHomepageGurl(boolean isIncognito) {
|
||||||
- if (PartnerBrowserCustomizations.getInstance().isHomepageProviderAvailableAndEnabled()) {
|
- if (PartnerBrowserCustomizations.getInstance().isHomepageProviderAvailableAndEnabled()) {
|
||||||
- return PartnerBrowserCustomizations.getInstance().getHomePageUrl();
|
- return assumeNonNull(PartnerBrowserCustomizations.getInstance().getHomePageUrl());
|
||||||
- }
|
- }
|
||||||
-
|
-
|
||||||
String homepagePartnerDefaultGurlSerialized =
|
String homepagePartnerDefaultGurlSerialized =
|
||||||
@@ -33,14 +33,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java b/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java b/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java
|
||||||
@@ -54,6 +54,7 @@ public class DseNewTabUrlManager {
|
@@ -59,7 +59,7 @@ public class DseNewTabUrlManager {
|
||||||
|
|
||||||
/** Returns whether the feature NewTabSearchEngineUrlAndroid is enabled. */
|
/** Returns whether the feature NewTabSearchEngineUrlAndroid is enabled. */
|
||||||
public static boolean isNewTabSearchEngineUrlAndroidEnabled() {
|
public static boolean isNewTabSearchEngineUrlAndroidEnabled() {
|
||||||
+ if ((true)) return false;
|
- return true;
|
||||||
return ChromeSharedPreferences.getInstance()
|
+ return false;
|
||||||
.readBoolean(ChromePreferenceKeys.IS_EEA_CHOICE_COUNTRY, false)
|
}
|
||||||
|| (OmniboxFeatures.sOmniboxMobileParityUpdate.isEnabled()
|
|
||||||
|
/**
|
||||||
diff --git a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java
|
diff --git a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java
|
||||||
--- a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java
|
--- a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java
|
||||||
+++ b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java
|
+++ b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java
|
||||||
@@ -67,7 +68,7 @@ diff --git a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/b
|
|||||||
diff --git a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
|
diff --git a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
|
||||||
--- a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
|
--- a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
|
||||||
+++ b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
|
+++ b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
|
||||||
@@ -85,6 +85,7 @@ public class TemplateUrl {
|
@@ -110,6 +110,7 @@ public class TemplateUrl {
|
||||||
* prepopulated_engines.json.
|
* prepopulated_engines.json.
|
||||||
*/
|
*/
|
||||||
public String getNewTabURL() {
|
public String getNewTabURL() {
|
||||||
@@ -78,9 +79,9 @@ diff --git a/components/search_engines/android/java/src/org/chromium/components/
|
|||||||
diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc
|
diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc
|
||||||
--- a/components/search_engines/android/template_url_service_android.cc
|
--- a/components/search_engines/android/template_url_service_android.cc
|
||||||
+++ b/components/search_engines/android/template_url_service_android.cc
|
+++ b/components/search_engines/android/template_url_service_android.cc
|
||||||
@@ -403,6 +403,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine(
|
@@ -426,6 +426,7 @@ bool TemplateUrlServiceAndroid::SetPlayAPISearchEngine(
|
||||||
jimage_translate_source_language_param_key,
|
jimage_translate_source_language_param_key,
|
||||||
const base::android::JavaParamRef<jstring>&
|
const base::android::JavaRef<jstring>&
|
||||||
jimage_translate_target_language_param_key) {
|
jimage_translate_target_language_param_key) {
|
||||||
+ if ((true)) return false;
|
+ if ((true)) return false;
|
||||||
// The function is scheduled to run only when the service is loaded, see
|
// The function is scheduled to run only when the service is loaded, see
|
||||||
|
|||||||
@@ -1,353 +0,0 @@
|
|||||||
From: uazo <uazo@users.noreply.github.com>
|
|
||||||
Date: Mon, 26 May 2025 12:17:48 +0000
|
|
||||||
Subject: Android Import Passwords
|
|
||||||
|
|
||||||
Adds the possibility of importing a csv file containing the list of passwords,
|
|
||||||
with the same functionality available on desktops.
|
|
||||||
|
|
||||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|
||||||
---
|
|
||||||
...e_password_preferences_action_bar_menu.xml | 6 ++
|
|
||||||
.../settings/PasswordSettings.java | 34 +++++++++
|
|
||||||
.../settings/PasswordManagerHandler.java | 3 +
|
|
||||||
.../settings/PasswordUiView.java | 8 +++
|
|
||||||
.../android/password_ui_view_android.cc | 71 +++++++++++++++++++
|
|
||||||
.../android/password_ui_view_android.h | 20 +++++-
|
|
||||||
.../Import-Password-Android.grdp | 9 +++
|
|
||||||
.../core/browser/import/password_importer.cc | 11 +++
|
|
||||||
8 files changed, 161 insertions(+), 1 deletion(-)
|
|
||||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Import-Password-Android.grdp
|
|
||||||
|
|
||||||
diff --git a/chrome/android/java/res/menu/save_password_preferences_action_bar_menu.xml b/chrome/android/java/res/menu/save_password_preferences_action_bar_menu.xml
|
|
||||||
--- a/chrome/android/java/res/menu/save_password_preferences_action_bar_menu.xml
|
|
||||||
+++ b/chrome/android/java/res/menu/save_password_preferences_action_bar_menu.xml
|
|
||||||
@@ -22,6 +22,12 @@ found in the LICENSE file.
|
|
||||||
android:visibility="gone"
|
|
||||||
app:showAsAction="ifRoom"/>
|
|
||||||
|
|
||||||
+ <item
|
|
||||||
+ android:id="@+id/import_passwords"
|
|
||||||
+ android:title="@string/password_settings_import_action_title"
|
|
||||||
+ android:contentDescription="@string/password_settings_import_action_description"
|
|
||||||
+ app:showAsAction="never"/>
|
|
||||||
+
|
|
||||||
<item
|
|
||||||
android:id="@+id/export_passwords"
|
|
||||||
android:title="@string/password_settings_export_action_title"
|
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
|
||||||
@@ -57,6 +57,9 @@ import org.chromium.components.sync.PassphraseType;
|
|
||||||
import org.chromium.components.sync.SyncService;
|
|
||||||
import org.chromium.components.user_prefs.UserPrefs;
|
|
||||||
import org.chromium.ui.text.SpanApplier;
|
|
||||||
+import org.chromium.ui.base.ActivityWindowAndroid;
|
|
||||||
+import org.chromium.ui.base.ActivityIntentRequestTrackerDelegate;
|
|
||||||
+import org.chromium.ui.base.IntentRequestTracker;
|
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
|
||||||
import java.lang.annotation.RetentionPolicy;
|
|
||||||
@@ -151,6 +154,8 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
|
||||||
|
|
||||||
/** For controlling the UX flow of exporting passwords. */
|
|
||||||
private final ExportFlow mExportFlow = new ExportFlow(PasswordAccessLossWarningType.NONE);
|
|
||||||
+ private ActivityWindowAndroid mWindowAndroid;
|
|
||||||
+ private IntentRequestTracker mIntentRequestTracker;
|
|
||||||
|
|
||||||
public ExportFlow getExportFlowForTesting() {
|
|
||||||
return mExportFlow;
|
|
||||||
@@ -199,6 +204,19 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
|
||||||
|
|
||||||
mManagePasswordsReferrer = getReferrerFromInstanceStateOrLaunchBundle(savedInstanceState);
|
|
||||||
|
|
||||||
+ mIntentRequestTracker = IntentRequestTracker.createFromDelegate(
|
|
||||||
+ new ActivityIntentRequestTrackerDelegate(getActivity()) {
|
|
||||||
+ @Override
|
|
||||||
+ public boolean startActivityForResult(@Nullable Intent intent, int requestCode) {
|
|
||||||
+ PasswordSettings.this.startActivityForResult(intent, requestCode);
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
+ });
|
|
||||||
+ mWindowAndroid = new ActivityWindowAndroid(
|
|
||||||
+ getActivity(), /* listenToActivityState */ true,
|
|
||||||
+ mIntentRequestTracker, /*InsetObserver*/ null,
|
|
||||||
+ /* trackOcclusion= */ true);
|
|
||||||
+
|
|
||||||
if (savedInstanceState == null) return;
|
|
||||||
|
|
||||||
if (savedInstanceState.containsKey(SAVED_STATE_SEARCH_QUERY)) {
|
|
||||||
@@ -263,6 +281,12 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
|
||||||
@Override
|
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
|
||||||
int id = item.getItemId();
|
|
||||||
+ if (id == R.id.import_passwords) {
|
|
||||||
+ PasswordManagerHandlerProvider.getForProfile(getProfile())
|
|
||||||
+ .getPasswordManagerHandler()
|
|
||||||
+ .startImporting(mWindowAndroid);
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
if (id == R.id.export_passwords) {
|
|
||||||
RecordHistogram.recordEnumeratedHistogram(
|
|
||||||
mExportFlow.getExportEventHistogramName(),
|
|
||||||
@@ -506,6 +530,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
|
||||||
@Override
|
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
|
|
||||||
super.onActivityResult(requestCode, resultCode, intent);
|
|
||||||
+ mWindowAndroid.getIntentRequestTracker().onActivityResult(requestCode, resultCode, intent);
|
|
||||||
if (requestCode != PASSWORD_EXPORT_INTENT_REQUEST_CODE) return;
|
|
||||||
if (resultCode != Activity.RESULT_OK) return;
|
|
||||||
if (intent == null || intent.getData() == null) return;
|
|
||||||
@@ -517,12 +542,21 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
|
||||||
public void onSaveInstanceState(Bundle outState) {
|
|
||||||
super.onSaveInstanceState(outState);
|
|
||||||
mExportFlow.onSaveInstanceState(outState);
|
|
||||||
+ mWindowAndroid.getIntentRequestTracker().saveInstanceState(outState);
|
|
||||||
if (mSearchQuery != null) {
|
|
||||||
outState.putString(SAVED_STATE_SEARCH_QUERY, mSearchQuery);
|
|
||||||
}
|
|
||||||
outState.putInt(PasswordManagerHelper.MANAGE_PASSWORDS_REFERRER, mManagePasswordsReferrer);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ @Override
|
|
||||||
+ public void onRequestPermissionsResult(
|
|
||||||
+ int requestCode, String[] permissions, int[] grantResults) {
|
|
||||||
+ if (mWindowAndroid.handlePermissionResult(requestCode, permissions, grantResults))
|
|
||||||
+ return;
|
|
||||||
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
@Override
|
|
||||||
public void onDestroy() {
|
|
||||||
super.onDestroy();
|
|
||||||
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordManagerHandler.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordManagerHandler.java
|
|
||||||
--- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordManagerHandler.java
|
|
||||||
+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordManagerHandler.java
|
|
||||||
@@ -9,6 +9,7 @@ import android.content.Context;
|
|
||||||
import org.chromium.base.Callback;
|
|
||||||
import org.chromium.base.IntStringCallback;
|
|
||||||
import org.chromium.build.annotations.NullMarked;
|
|
||||||
+import org.chromium.ui.base.WindowAndroid;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interface for retrieving passwords and password exceptions (websites for which Chrome should not
|
|
||||||
@@ -80,4 +81,6 @@ public interface PasswordManagerHandler {
|
|
||||||
* @return Returns true if the request to fetch the passwords is still pending.
|
|
||||||
*/
|
|
||||||
boolean isWaitingForPasswordStore();
|
|
||||||
+
|
|
||||||
+ boolean startImporting(WindowAndroid window);
|
|
||||||
}
|
|
||||||
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordUiView.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordUiView.java
|
|
||||||
--- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordUiView.java
|
|
||||||
+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordUiView.java
|
|
||||||
@@ -12,6 +12,7 @@ import org.jni_zero.NativeMethods;
|
|
||||||
|
|
||||||
import org.chromium.base.Callback;
|
|
||||||
import org.chromium.base.IntStringCallback;
|
|
||||||
+import org.chromium.ui.base.WindowAndroid;
|
|
||||||
import org.chromium.build.annotations.NullMarked;
|
|
||||||
import org.chromium.chrome.browser.profiles.Profile;
|
|
||||||
|
|
||||||
@@ -158,6 +159,12 @@ public final class PasswordUiView implements PasswordManagerHandler {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ @Override
|
|
||||||
+ public boolean startImporting(WindowAndroid window) {
|
|
||||||
+ return PasswordUiViewJni.get()
|
|
||||||
+ .startImporting(mNativePasswordUiViewAndroid, PasswordUiView.this, window);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
@NativeMethods
|
|
||||||
interface Natives {
|
|
||||||
long init(PasswordUiView caller, @JniType("Profile*") Profile profile);
|
|
||||||
@@ -190,6 +197,7 @@ public final class PasswordUiView implements PasswordManagerHandler {
|
|
||||||
String getTrustedVaultLearnMoreURL();
|
|
||||||
|
|
||||||
boolean isWaitingForPasswordStore(long nativePasswordUiViewAndroid, PasswordUiView caller);
|
|
||||||
+ boolean startImporting(long nativePasswordUiViewAndroid, PasswordUiView caller, WindowAndroid window);
|
|
||||||
|
|
||||||
void destroy(long nativePasswordUiViewAndroid, PasswordUiView caller);
|
|
||||||
|
|
||||||
diff --git a/chrome/browser/password_manager/android/password_ui_view_android.cc b/chrome/browser/password_manager/android/password_ui_view_android.cc
|
|
||||||
--- a/chrome/browser/password_manager/android/password_ui_view_android.cc
|
|
||||||
+++ b/chrome/browser/password_manager/android/password_ui_view_android.cc
|
|
||||||
@@ -41,6 +41,11 @@
|
|
||||||
#include "ui/base/l10n/l10n_util.h"
|
|
||||||
#include "url/gurl.h"
|
|
||||||
|
|
||||||
+#include "chrome/browser/ui/chrome_select_file_policy.h"
|
|
||||||
+#include "ui/shell_dialogs/selected_file_info.h"
|
|
||||||
+#include "ui/shell_dialogs/select_file_dialog.h"
|
|
||||||
+#include "ui/android/window_android.h"
|
|
||||||
+
|
|
||||||
// Must come after other includes, because FromJniType() uses Profile.
|
|
||||||
#include "chrome/browser/password_manager/android/jni_headers/PasswordUiView_jni.h"
|
|
||||||
|
|
||||||
@@ -123,6 +128,8 @@ PasswordUiViewAndroid::PasswordUiViewAndroid(
|
|
||||||
|
|
||||||
PasswordUiViewAndroid::~PasswordUiViewAndroid() {
|
|
||||||
saved_passwords_presenter_.RemoveObserver(this);
|
|
||||||
+ if (select_file_dialog_)
|
|
||||||
+ select_file_dialog_->ListenerDestroyed();
|
|
||||||
}
|
|
||||||
|
|
||||||
void PasswordUiViewAndroid::Destroy(JNIEnv*, const JavaRef<jobject>&) {
|
|
||||||
@@ -314,6 +321,70 @@ jboolean PasswordUiViewAndroid::IsWaitingForPasswordStore(
|
|
||||||
return saved_passwords_presenter_.IsWaitingForPasswordStore();
|
|
||||||
}
|
|
||||||
|
|
||||||
+void PasswordUiViewAndroid::ImportFinished(
|
|
||||||
+ const password_manager::ImportResults& results) {
|
|
||||||
+ std::string error;
|
|
||||||
+ if (results.status == password_manager::ImportResults::Status::SUCCESS)
|
|
||||||
+ error = "Success.";
|
|
||||||
+ else if (results.status == password_manager::ImportResults::Status::IO_ERROR)
|
|
||||||
+ error = "Failed to read provided file.";
|
|
||||||
+ else if (results.status == password_manager::ImportResults::Status::BAD_FORMAT)
|
|
||||||
+ error = "Header is missing, invalid or could not be read.";
|
|
||||||
+ else if (results.status == password_manager::ImportResults::Status::NUM_PASSWORDS_EXCEEDED)
|
|
||||||
+ error = "Too many passwords.";
|
|
||||||
+ else
|
|
||||||
+ error = "UNKNOWN ERROR.";
|
|
||||||
+
|
|
||||||
+ std::stringstream message;
|
|
||||||
+ message << error << " Imported " << results.number_imported << " passwords.";
|
|
||||||
+ auto result = message.str();
|
|
||||||
+
|
|
||||||
+ select_file_dialog_->ShowToast(result);
|
|
||||||
+
|
|
||||||
+ importer_.reset();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+jboolean PasswordUiViewAndroid::StartImporting(
|
|
||||||
+ JNIEnv* env,
|
|
||||||
+ const base::android::JavaRef<jobject>& obj,
|
|
||||||
+ const JavaParamRef<jobject>& java_window) {
|
|
||||||
+ ui::WindowAndroid* window =
|
|
||||||
+ ui::WindowAndroid::FromJavaWindowAndroid(java_window);
|
|
||||||
+ CHECK(window);
|
|
||||||
+
|
|
||||||
+ select_file_dialog_ = ui::SelectFileDialog::Create(
|
|
||||||
+ this, std::make_unique<ChromeSelectFilePolicy>(nullptr));
|
|
||||||
+
|
|
||||||
+ ui::SelectFileDialog::FileTypeInfo file_type_info;
|
|
||||||
+
|
|
||||||
+ const std::vector<std::u16string> v_accept_types = { u"application/octet-stream" };
|
|
||||||
+ select_file_dialog_->SetAcceptTypes(v_accept_types);
|
|
||||||
+
|
|
||||||
+ select_file_dialog_->SelectFile(
|
|
||||||
+ ui::SelectFileDialog::SELECT_OPEN_FILE,
|
|
||||||
+ std::u16string(),
|
|
||||||
+ base::FilePath(),
|
|
||||||
+ &file_type_info,
|
|
||||||
+ 0,
|
|
||||||
+ base::FilePath::StringType(),
|
|
||||||
+ window);
|
|
||||||
+
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void PasswordUiViewAndroid::FileSelectionCanceled() {}
|
|
||||||
+
|
|
||||||
+void PasswordUiViewAndroid::FileSelected(const ui::SelectedFileInfo& file, int index) {
|
|
||||||
+ base::FilePath path = file.path();
|
|
||||||
+
|
|
||||||
+ importer_ =
|
|
||||||
+ std::make_unique<password_manager::PasswordImporter>(&saved_passwords_presenter_);
|
|
||||||
+ importer_->Import(path,
|
|
||||||
+ password_manager::PasswordForm::Store::kProfileStore,
|
|
||||||
+ base::BindOnce(&PasswordUiViewAndroid::ImportFinished,
|
|
||||||
+ base::Unretained(this)));
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
// static
|
|
||||||
static jlong JNI_PasswordUiView_Init(JNIEnv* env,
|
|
||||||
const JavaParamRef<jobject>& obj,
|
|
||||||
diff --git a/chrome/browser/password_manager/android/password_ui_view_android.h b/chrome/browser/password_manager/android/password_ui_view_android.h
|
|
||||||
--- a/chrome/browser/password_manager/android/password_ui_view_android.h
|
|
||||||
+++ b/chrome/browser/password_manager/android/password_ui_view_android.h
|
|
||||||
@@ -21,6 +21,8 @@
|
|
||||||
#include "chrome/browser/signin/identity_manager_factory.h"
|
|
||||||
#include "components/password_manager/core/browser/password_store/password_store_consumer.h"
|
|
||||||
#include "components/password_manager/core/browser/ui/saved_passwords_presenter.h"
|
|
||||||
+#include "components/password_manager/core/browser/import/password_importer.h"
|
|
||||||
+#include "ui/shell_dialogs/select_file_dialog.h"
|
|
||||||
|
|
||||||
class Profile;
|
|
||||||
|
|
||||||
@@ -31,7 +33,8 @@ class CredentialProviderInterface;
|
|
||||||
// PasswordUIView for Android, contains jni hooks that allows Android UI to
|
|
||||||
// display passwords and route UI commands back to SavedPasswordsPresenter.
|
|
||||||
class PasswordUiViewAndroid
|
|
||||||
- : public password_manager::SavedPasswordsPresenter::Observer {
|
|
||||||
+ : public password_manager::SavedPasswordsPresenter::Observer,
|
|
||||||
+ public ui::SelectFileDialog::Listener {
|
|
||||||
public:
|
|
||||||
// Result of transforming a vector of PasswordForms into their CSV
|
|
||||||
// description and writing that to disk.
|
|
||||||
@@ -95,6 +98,18 @@ class PasswordUiViewAndroid
|
|
||||||
const base::android::JavaParamRef<jobject>& obj);
|
|
||||||
jboolean IsWaitingForPasswordStore(JNIEnv* env,
|
|
||||||
const base::android::JavaRef<jobject>&);
|
|
||||||
+
|
|
||||||
+ void FileSelected(const ui::SelectedFileInfo& file,
|
|
||||||
+ int index) override;
|
|
||||||
+ void FileSelectionCanceled() override;
|
|
||||||
+
|
|
||||||
+ void ImportFinished(
|
|
||||||
+ const password_manager::ImportResults& results);
|
|
||||||
+
|
|
||||||
+ jboolean StartImporting(JNIEnv* env,
|
|
||||||
+ const base::android::JavaRef<jobject>& obj,
|
|
||||||
+ const base::android::JavaParamRef<jobject>& java_window);
|
|
||||||
+
|
|
||||||
// Destroy the native implementation.
|
|
||||||
void Destroy(JNIEnv*, const base::android::JavaRef<jobject>&);
|
|
||||||
|
|
||||||
@@ -162,6 +177,9 @@ class PasswordUiViewAndroid
|
|
||||||
std::vector<password_manager::CredentialUIEntry> passwords_;
|
|
||||||
std::vector<password_manager::CredentialUIEntry> blocked_sites_;
|
|
||||||
|
|
||||||
+ scoped_refptr<ui::SelectFileDialog> select_file_dialog_;
|
|
||||||
+ std::unique_ptr<password_manager::PasswordImporter> importer_;
|
|
||||||
+
|
|
||||||
// If not null, passwords for exporting will be obtained from
|
|
||||||
// |*credential_provider_for_testing_|, otherwise from
|
|
||||||
// |saved_passwords_presenter_|. This must remain null in production code.
|
|
||||||
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Import-Password-Android.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Import-Password-Android.grdp
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Import-Password-Android.grdp
|
|
||||||
@@ -0,0 +1,9 @@
|
|
||||||
+<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
+<grit-part>
|
|
||||||
+ <message name="IDS_PASSWORD_SETTINGS_IMPORT_ACTION_TITLE" desc="The title of a menu item to trigger importing passwords from the password settings.">
|
|
||||||
+ Import passwords…
|
|
||||||
+ </message>
|
|
||||||
+ <message name="IDS_PASSWORD_SETTINGS_IMPORT_ACTION_DESCRIPTION" desc="The description of a menu item to trigger importing passwords from the password settings.">
|
|
||||||
+ Import passwords stored with Chrome
|
|
||||||
+ </message>
|
|
||||||
+</grit-part>
|
|
||||||
diff --git a/components/password_manager/core/browser/import/password_importer.cc b/components/password_manager/core/browser/import/password_importer.cc
|
|
||||||
--- a/components/password_manager/core/browser/import/password_importer.cc
|
|
||||||
+++ b/components/password_manager/core/browser/import/password_importer.cc
|
|
||||||
@@ -75,6 +75,17 @@ const int32_t kMaxFileSizeBytes = 150 * 1024;
|
|
||||||
// optional string. The string will be present if the status is SUCCESS.
|
|
||||||
base::expected<std::string, ImportResults::Status> ReadFileToString(
|
|
||||||
const base::FilePath& path) {
|
|
||||||
+#if BUILDFLAG(IS_ANDROID)
|
|
||||||
+ if (path.IsContentUri()) {
|
|
||||||
+ base::File file(path, base::File::FLAG_OPEN | base::File::FLAG_READ);
|
|
||||||
+ auto fileLength = file.GetLength();
|
|
||||||
+ std::vector<char> buffer(fileLength);
|
|
||||||
+ file.ReadAtCurrentPos(base::as_writable_byte_span(buffer));
|
|
||||||
+
|
|
||||||
+ std::string file_contents(buffer.begin(), buffer.end());
|
|
||||||
+ return std::move(file_contents);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
std::optional<int64_t> file_size = base::GetFileSize(path);
|
|
||||||
|
|
||||||
if (file_size.has_value()) {
|
|
||||||
--
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -19,13 +19,13 @@ diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrom
|
|||||||
--- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java
|
--- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java
|
||||||
+++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java
|
+++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java
|
||||||
@@ -40,6 +40,7 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro
|
@@ -40,6 +40,7 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro
|
||||||
private final Supplier<Boolean> mPersistentFullscreenMode;
|
private final NonNullObservableSupplier<Boolean> mPersistentFullscreenMode;
|
||||||
|
|
||||||
private long mCurrentShowingStartTime;
|
private long mCurrentShowingStartTime;
|
||||||
+ private int temporaryToken;
|
+ private int temporaryToken;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a BrowserControlsVisibilityDelegate designed to deal with overrides driven by
|
* Constructs a BrowserControlsVisibilityDelegate designed to deal with overrides driven by the
|
||||||
@@ -65,7 +66,8 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro
|
@@ -65,7 +66,8 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro
|
||||||
long currentShowingTime = SystemClock.uptimeMillis() - mCurrentShowingStartTime;
|
long currentShowingTime = SystemClock.uptimeMillis() - mCurrentShowingStartTime;
|
||||||
if (currentShowingTime >= MINIMUM_SHOW_DURATION_MS) return;
|
if (currentShowingTime >= MINIMUM_SHOW_DURATION_MS) return;
|
||||||
@@ -53,7 +53,7 @@ new file mode 100644
|
|||||||
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
@@ -79,6 +79,12 @@ found in the LICENSE file.
|
@@ -89,6 +89,12 @@ found in the LICENSE file.
|
||||||
android:key="disable_toolbar_swipeup"
|
android:key="disable_toolbar_swipeup"
|
||||||
android:title="@string/disable_toolbar_swipe_up" />
|
android:title="@string/disable_toolbar_swipe_up" />
|
||||||
|
|
||||||
|
|||||||
@@ -8,16 +8,18 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
---
|
---
|
||||||
.../common/ProductionSupportedFlagList.java | 3 +
|
.../common/ProductionSupportedFlagList.java | 3 +
|
||||||
.../component_updater/registration.cc | 9 +
|
.../component_updater/registration.cc | 9 +
|
||||||
|
build/config/freetype/freetype.gni | 2 +-
|
||||||
.../java/res/xml/developer_preferences.xml | 5 +
|
.../java/res/xml/developer_preferences.xml | 5 +
|
||||||
chrome/browser/BUILD.gn | 7 +
|
chrome/browser/BUILD.gn | 7 +
|
||||||
.../browser/component_updater/registration.cc | 10 +
|
.../browser/component_updater/registration.cc | 10 +
|
||||||
...droid-fonts-fingerprinting-mitigation.grdp | 9 +
|
...droid-fonts-fingerprinting-mitigation.grdp | 9 +
|
||||||
chrome/renderer/BUILD.gn | 3 +
|
chrome/browser/ui/prefs/prefs_tab_helper.cc | 9 +-
|
||||||
|
chrome/renderer/BUILD.gn | 4 +
|
||||||
.../installer_policies/BUILD.gn | 7 +
|
.../installer_policies/BUILD.gn | 7 +
|
||||||
.../fonts_pack_component_installer.cc | 96 +
|
.../fonts_pack_component_installer.cc | 96 +
|
||||||
.../fonts_pack_component_installer.h | 60 +
|
.../fonts_pack_component_installer.h | 60 +
|
||||||
components/services/font/BUILD.gn | 10 +
|
components/services/font/BUILD.gn | 10 +
|
||||||
components/services/font/font_service_app.cc | 44 +
|
components/services/font/font_service_app.cc | 46 +
|
||||||
components/services/font/font_service_app.h | 1 +
|
components/services/font/font_service_app.h | 1 +
|
||||||
.../services/font/public/cpp/font_loader.cc | 11 +
|
.../services/font/public/cpp/font_loader.cc | 11 +
|
||||||
.../services/font/public/cpp/font_loader.h | 1 +
|
.../services/font/public/cpp/font_loader.h | 1 +
|
||||||
@@ -29,20 +31,24 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
content/child/BUILD.gn | 7 +
|
content/child/BUILD.gn | 7 +
|
||||||
content/renderer/BUILD.gn | 4 +
|
content/renderer/BUILD.gn | 4 +
|
||||||
.../renderer/renderer_blink_platform_impl.cc | 55 +-
|
.../renderer/renderer_blink_platform_impl.cc | 55 +-
|
||||||
|
content/renderer/renderer_main.cc | 2 -
|
||||||
...ndroid-fonts-fingerprinting-mitigation.inc | 12 +
|
...ndroid-fonts-fingerprinting-mitigation.inc | 12 +
|
||||||
...ndroid-fonts-fingerprinting-mitigation.inc | 7 +
|
...ndroid-fonts-fingerprinting-mitigation.inc | 7 +
|
||||||
...ndroid-fonts-fingerprinting-mitigation.inc | 5 +
|
...ndroid-fonts-fingerprinting-mitigation.inc | 5 +
|
||||||
skia/BUILD.gn | 12 +
|
skia/BUILD.gn | 12 +
|
||||||
|
skia/ext/font_utils.cc | 1 +
|
||||||
|
.../freetype/config/ftoption.h | 2 +-
|
||||||
.../include/ports/SkFontConfigInterface.h | 2 +
|
.../include/ports/SkFontConfigInterface.h | 2 +
|
||||||
.../skia/include/ports/SkFontMgr_android.h | 42 +-
|
.../skia/include/ports/SkFontMgr_android.h | 42 +-
|
||||||
.../skia/src/ports/SkFontConfigInterface.cpp | 4 +
|
.../skia/src/ports/SkFontConfigInterface.cpp | 5 +
|
||||||
.../ports/SkFontConfigInterface_direct.cpp | 5 +
|
.../ports/SkFontConfigInterface_direct.cpp | 5 +
|
||||||
.../src/ports/SkFontConfigInterface_direct.h | 1 +
|
.../src/ports/SkFontConfigInterface_direct.h | 1 +
|
||||||
.../skia/src/ports/SkFontMgr_android.cpp | 278 ++-
|
.../skia/src/ports/SkFontMgr_android.cpp | 286 ++-
|
||||||
.../skia/src/ports/SkFontMgr_android_data.cpp | 1640 +++++++++++++++++
|
.../skia/src/ports/SkFontMgr_android_data.cpp | 1641 +++++++++++++++++
|
||||||
.../src/ports/SkFontMgr_android_parser.cpp | 49 +-
|
.../skia/src/ports/SkFontMgr_android_ndk.cpp | 2 +-
|
||||||
|
.../src/ports/SkFontMgr_android_parser.cpp | 69 +-
|
||||||
.../skia/src/ports/SkFontMgr_android_parser.h | 5 +-
|
.../skia/src/ports/SkFontMgr_android_parser.h | 5 +-
|
||||||
36 files changed, 2410 insertions(+), 79 deletions(-)
|
42 files changed, 2451 insertions(+), 89 deletions(-)
|
||||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Android-fonts-fingerprinting-mitigation.grdp
|
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Android-fonts-fingerprinting-mitigation.grdp
|
||||||
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.cc
|
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.cc
|
||||||
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.h
|
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.h
|
||||||
@@ -54,7 +60,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
|
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
|
||||||
--- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
|
--- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
|
||||||
+++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
|
+++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
|
||||||
@@ -1046,6 +1046,9 @@ public final class ProductionSupportedFlagList {
|
@@ -998,6 +998,9 @@ public final class ProductionSupportedFlagList {
|
||||||
"Hides user preference on the system keyboard by setting the standard "
|
"Hides user preference on the system keyboard by setting the standard "
|
||||||
+ "eng layout and removing the layout information from the "
|
+ "eng layout and removing the layout information from the "
|
||||||
+ "javascript keyboard events."),
|
+ "javascript keyboard events."),
|
||||||
@@ -67,9 +73,9 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/common/Produc
|
|||||||
diff --git a/android_webview/nonembedded/component_updater/registration.cc b/android_webview/nonembedded/component_updater/registration.cc
|
diff --git a/android_webview/nonembedded/component_updater/registration.cc b/android_webview/nonembedded/component_updater/registration.cc
|
||||||
--- a/android_webview/nonembedded/component_updater/registration.cc
|
--- a/android_webview/nonembedded/component_updater/registration.cc
|
||||||
+++ b/android_webview/nonembedded/component_updater/registration.cc
|
+++ b/android_webview/nonembedded/component_updater/registration.cc
|
||||||
@@ -27,6 +27,9 @@
|
@@ -20,6 +20,9 @@
|
||||||
|
#include "components/component_updater/installer_policies/origin_trials_component_installer.h"
|
||||||
#include "components/update_client/update_client.h"
|
#include "components/update_client/update_client.h"
|
||||||
#include "mojo/public/cpp/base/proto_wrapper.h"
|
|
||||||
|
|
||||||
+#include "third_party/blink/public/common/features.h"
|
+#include "third_party/blink/public/common/features.h"
|
||||||
+#include "components/component_updater/installer_policies/fonts_pack_component_installer.h"
|
+#include "components/component_updater/installer_policies/fonts_pack_component_installer.h"
|
||||||
@@ -77,7 +83,7 @@ diff --git a/android_webview/nonembedded/component_updater/registration.cc b/and
|
|||||||
namespace android_webview {
|
namespace android_webview {
|
||||||
|
|
||||||
void RegisterComponentsForUpdate(
|
void RegisterComponentsForUpdate(
|
||||||
@@ -43,6 +46,12 @@ void RegisterComponentsForUpdate(
|
@@ -36,6 +39,12 @@ void RegisterComponentsForUpdate(
|
||||||
std::vector<std::unique_ptr<component_updater::ComponentInstallerPolicy>>
|
std::vector<std::unique_ptr<component_updater::ComponentInstallerPolicy>>
|
||||||
component_installer_list_cromite;
|
component_installer_list_cromite;
|
||||||
|
|
||||||
@@ -90,13 +96,23 @@ diff --git a/android_webview/nonembedded/component_updater/registration.cc b/and
|
|||||||
component_installer_list.push_back(
|
component_installer_list.push_back(
|
||||||
std::make_unique<
|
std::make_unique<
|
||||||
component_updater::OriginTrialsComponentInstallerPolicy>());
|
component_updater::OriginTrialsComponentInstallerPolicy>());
|
||||||
|
diff --git a/build/config/freetype/freetype.gni b/build/config/freetype/freetype.gni
|
||||||
|
--- a/build/config/freetype/freetype.gni
|
||||||
|
+++ b/build/config/freetype/freetype.gni
|
||||||
|
@@ -24,5 +24,5 @@ declare_args() {
|
||||||
|
# This should be kept in sync with the value of `enable_pdf` in
|
||||||
|
# //pdf/features.gni, but for layering reasons,
|
||||||
|
# we can't import pdf's features.gni here.
|
||||||
|
- enable_freetype = !is_android && !is_ios && !is_castos && !is_fuchsia
|
||||||
|
+ enable_freetype = is_android || (!is_ios && !is_castos && !is_fuchsia)
|
||||||
|
}
|
||||||
diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/android/java/res/xml/developer_preferences.xml
|
diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/android/java/res/xml/developer_preferences.xml
|
||||||
--- a/chrome/android/java/res/xml/developer_preferences.xml
|
--- a/chrome/android/java/res/xml/developer_preferences.xml
|
||||||
+++ b/chrome/android/java/res/xml/developer_preferences.xml
|
+++ b/chrome/android/java/res/xml/developer_preferences.xml
|
||||||
@@ -23,4 +23,9 @@ found in the LICENSE file.
|
@@ -28,4 +28,9 @@ found in the LICENSE file.
|
||||||
android:title="Hint: You can also enable Developer options on Beta/Stable channels by tapping the Chrome version in "Settings > About Chrome" multiple times."
|
android:summary="@string/android_gpu_sandbox_summary"
|
||||||
app:allowDividerAbove="false"
|
app:featureName="android-gpu-sandbox"
|
||||||
app:allowDividerBelow="false" />
|
app:needRestart="true" />
|
||||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||||
+ android:title="@string/android_fonts_fingerprinting_mitigation_title"
|
+ android:title="@string/android_fonts_fingerprinting_mitigation_title"
|
||||||
+ android:summary="@string/android_fonts_fingerprinting_mitigation_summary"
|
+ android:summary="@string/android_fonts_fingerprinting_mitigation_summary"
|
||||||
@@ -106,8 +122,8 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr
|
|||||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||||
--- a/chrome/browser/BUILD.gn
|
--- a/chrome/browser/BUILD.gn
|
||||||
+++ b/chrome/browser/BUILD.gn
|
+++ b/chrome/browser/BUILD.gn
|
||||||
@@ -7888,6 +7888,13 @@ static_library("browser") {
|
@@ -7326,6 +7326,13 @@ static_library("browser") {
|
||||||
}
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if (is_android) {
|
+ if (is_android) {
|
||||||
@@ -123,7 +139,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
|||||||
diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc
|
diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc
|
||||||
--- a/chrome/browser/component_updater/registration.cc
|
--- a/chrome/browser/component_updater/registration.cc
|
||||||
+++ b/chrome/browser/component_updater/registration.cc
|
+++ b/chrome/browser/component_updater/registration.cc
|
||||||
@@ -123,10 +123,20 @@
|
@@ -103,6 +103,11 @@
|
||||||
#include "chrome/browser/component_updater/file_type_policies_component_installer.h"
|
#include "chrome/browser/component_updater/file_type_policies_component_installer.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -134,6 +150,9 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c
|
|||||||
+
|
+
|
||||||
namespace component_updater {
|
namespace component_updater {
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
@@ -135,6 +140,11 @@ void DeleteOldComponents(const base::FilePath& user_data_dir) {
|
||||||
|
|
||||||
void RegisterComponentsForUpdate() {
|
void RegisterComponentsForUpdate() {
|
||||||
auto* const cus = g_browser_process->component_updater();
|
auto* const cus = g_browser_process->component_updater();
|
||||||
+#if BUILDFLAG(IS_ANDROID)
|
+#if BUILDFLAG(IS_ANDROID)
|
||||||
@@ -158,23 +177,50 @@ new file mode 100644
|
|||||||
+ Replaces all system fonts with the same for all devices
|
+ Replaces all system fonts with the same for all devices
|
||||||
+ </message>
|
+ </message>
|
||||||
+</grit-part>
|
+</grit-part>
|
||||||
|
diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc
|
||||||
|
--- a/chrome/browser/ui/prefs/prefs_tab_helper.cc
|
||||||
|
+++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc
|
||||||
|
@@ -64,8 +64,7 @@
|
||||||
|
#include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \
|
||||||
|
- BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
|
||||||
|
+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
|
||||||
|
// If a font name in prefs default values starts with a comma, consider it's a
|
||||||
|
// comma-separated font list and resolve it to the first available font.
|
||||||
|
#define PREFS_FONT_LIST 1
|
||||||
|
@@ -447,9 +446,9 @@ void PrefsTabHelper::RegisterProfilePrefs(
|
||||||
|
value = gfx::FontList::FirstAvailableOrFirst(value);
|
||||||
|
}
|
||||||
|
#else // !PREFS_FONT_LIST
|
||||||
|
- DCHECK(!value.starts_with(','))
|
||||||
|
- << "This platform doesn't support default font lists. "
|
||||||
|
- << pref.pref_name << "=" << value;
|
||||||
|
+ // DCHECK(!value.starts_with(','))
|
||||||
|
+ // << "This platform doesn't support default font lists. "
|
||||||
|
+ // << pref.pref_name << "=" << value;
|
||||||
|
#endif // PREFS_FONT_LIST
|
||||||
|
registry->RegisterStringPref(pref.pref_name, value);
|
||||||
|
fonts_with_defaults.insert(pref.pref_name);
|
||||||
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
|
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
|
||||||
--- a/chrome/renderer/BUILD.gn
|
--- a/chrome/renderer/BUILD.gn
|
||||||
+++ b/chrome/renderer/BUILD.gn
|
+++ b/chrome/renderer/BUILD.gn
|
||||||
@@ -292,6 +292,9 @@ static_library("renderer") {
|
@@ -270,6 +270,10 @@ static_library("renderer") {
|
||||||
"//ppapi/shared_impl",
|
deps += [ "//components/strings" ]
|
||||||
]
|
}
|
||||||
|
|
||||||
+ if (is_android) {
|
+ if (is_android) {
|
||||||
+ deps += [ "//components/services/font/public/cpp" ]
|
+ deps += [ "//components/services/font/public/cpp" ]
|
||||||
+ }
|
+ }
|
||||||
if (is_linux || is_chromeos) {
|
+
|
||||||
deps += [ "//components/services/font/public/cpp" ]
|
if (enable_pdf) {
|
||||||
}
|
deps += [
|
||||||
|
"//components/pdf/renderer",
|
||||||
diff --git a/components/component_updater/installer_policies/BUILD.gn b/components/component_updater/installer_policies/BUILD.gn
|
diff --git a/components/component_updater/installer_policies/BUILD.gn b/components/component_updater/installer_policies/BUILD.gn
|
||||||
--- a/components/component_updater/installer_policies/BUILD.gn
|
--- a/components/component_updater/installer_policies/BUILD.gn
|
||||||
+++ b/components/component_updater/installer_policies/BUILD.gn
|
+++ b/components/component_updater/installer_policies/BUILD.gn
|
||||||
@@ -36,6 +36,13 @@ static_library("installer_policies_no_content_deps") {
|
@@ -30,6 +30,13 @@ static_library("installer_policies_no_content_deps") {
|
||||||
"trust_token_key_commitments_component_installer_policy.h",
|
"trust_token_key_commitments_component_installer_policy.h",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -239,7 +285,7 @@ new file mode 100644
|
|||||||
+
|
+
|
||||||
+update_client::CrxInstaller::Result
|
+update_client::CrxInstaller::Result
|
||||||
+FontsPackComponentInstallerPolicy::OnCustomInstall(
|
+FontsPackComponentInstallerPolicy::OnCustomInstall(
|
||||||
+ const base::Value::Dict& manifest,
|
+ const base::DictValue& manifest,
|
||||||
+ const base::FilePath& install_dir) {
|
+ const base::FilePath& install_dir) {
|
||||||
+ return update_client::CrxInstaller::Result(0); // Nothing custom here.
|
+ return update_client::CrxInstaller::Result(0); // Nothing custom here.
|
||||||
+}
|
+}
|
||||||
@@ -249,14 +295,14 @@ new file mode 100644
|
|||||||
+void FontsPackComponentInstallerPolicy::ComponentReady(
|
+void FontsPackComponentInstallerPolicy::ComponentReady(
|
||||||
+ const base::Version& version,
|
+ const base::Version& version,
|
||||||
+ const base::FilePath& install_dir,
|
+ const base::FilePath& install_dir,
|
||||||
+ base::Value::Dict manifest) {
|
+ base::DictValue manifest) {
|
||||||
+ DCHECK(!install_dir.empty());
|
+ DCHECK(!install_dir.empty());
|
||||||
+ LOG(INFO) << "Fonts Pack Version Ready: " << install_dir.value();
|
+ LOG(INFO) << "Fonts Pack Version Ready: " << install_dir.value();
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+// Called during startup and installation before ComponentReady().
|
+// Called during startup and installation before ComponentReady().
|
||||||
+bool FontsPackComponentInstallerPolicy::VerifyInstallation(
|
+bool FontsPackComponentInstallerPolicy::VerifyInstallation(
|
||||||
+ const base::Value::Dict& manifest,
|
+ const base::DictValue& manifest,
|
||||||
+ const base::FilePath& install_dir) const {
|
+ const base::FilePath& install_dir) const {
|
||||||
+ return base::PathExists(install_dir);
|
+ return base::PathExists(install_dir);
|
||||||
+}
|
+}
|
||||||
@@ -335,14 +381,14 @@ new file mode 100644
|
|||||||
+ bool SupportsGroupPolicyEnabledComponentUpdates() const override;
|
+ bool SupportsGroupPolicyEnabledComponentUpdates() const override;
|
||||||
+ bool RequiresNetworkEncryption() const override;
|
+ bool RequiresNetworkEncryption() const override;
|
||||||
+ update_client::CrxInstaller::Result OnCustomInstall(
|
+ update_client::CrxInstaller::Result OnCustomInstall(
|
||||||
+ const base::Value::Dict& manifest,
|
+ const base::DictValue& manifest,
|
||||||
+ const base::FilePath& install_dir) override;
|
+ const base::FilePath& install_dir) override;
|
||||||
+ void OnCustomUninstall() override;
|
+ void OnCustomUninstall() override;
|
||||||
+ bool VerifyInstallation(const base::Value::Dict& manifest,
|
+ bool VerifyInstallation(const base::DictValue& manifest,
|
||||||
+ const base::FilePath& install_dir) const override;
|
+ const base::FilePath& install_dir) const override;
|
||||||
+ void ComponentReady(const base::Version& version,
|
+ void ComponentReady(const base::Version& version,
|
||||||
+ const base::FilePath& install_dir,
|
+ const base::FilePath& install_dir,
|
||||||
+ base::Value::Dict manifest) override;
|
+ base::DictValue manifest) override;
|
||||||
+ base::FilePath GetRelativeInstallDir() const override;
|
+ base::FilePath GetRelativeInstallDir() const override;
|
||||||
+ void GetHash(std::vector<uint8_t>* hash) const override;
|
+ void GetHash(std::vector<uint8_t>* hash) const override;
|
||||||
+ std::string GetName() const override;
|
+ std::string GetName() const override;
|
||||||
@@ -357,7 +403,7 @@ new file mode 100644
|
|||||||
diff --git a/components/services/font/BUILD.gn b/components/services/font/BUILD.gn
|
diff --git a/components/services/font/BUILD.gn b/components/services/font/BUILD.gn
|
||||||
--- a/components/services/font/BUILD.gn
|
--- a/components/services/font/BUILD.gn
|
||||||
+++ b/components/services/font/BUILD.gn
|
+++ b/components/services/font/BUILD.gn
|
||||||
@@ -24,6 +24,16 @@ source_set("lib") {
|
@@ -23,6 +23,16 @@ source_set("lib") {
|
||||||
"//ui/gfx",
|
"//ui/gfx",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -377,7 +423,17 @@ diff --git a/components/services/font/BUILD.gn b/components/services/font/BUILD.
|
|||||||
diff --git a/components/services/font/font_service_app.cc b/components/services/font/font_service_app.cc
|
diff --git a/components/services/font/font_service_app.cc b/components/services/font/font_service_app.cc
|
||||||
--- a/components/services/font/font_service_app.cc
|
--- a/components/services/font/font_service_app.cc
|
||||||
+++ b/components/services/font/font_service_app.cc
|
+++ b/components/services/font/font_service_app.cc
|
||||||
@@ -20,6 +20,12 @@
|
@@ -4,7 +4,9 @@
|
||||||
|
|
||||||
|
#include "components/services/font/font_service_app.h"
|
||||||
|
|
||||||
|
+#if !BUILDFLAG(IS_ANDROID)
|
||||||
|
#include <fontconfig/fontconfig.h>
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#include <set>
|
||||||
|
#include <utility>
|
||||||
|
@@ -26,6 +28,12 @@
|
||||||
#include "ui/gfx/font_fallback_linux.h"
|
#include "ui/gfx/font_fallback_linux.h"
|
||||||
#include "ui/gfx/font_render_params.h"
|
#include "ui/gfx/font_render_params.h"
|
||||||
|
|
||||||
@@ -390,7 +446,7 @@ diff --git a/components/services/font/font_service_app.cc b/components/services/
|
|||||||
#if BUILDFLAG(ENABLE_PDF)
|
#if BUILDFLAG(ENABLE_PDF)
|
||||||
#include "components/services/font/pdf_fontconfig_matching.h" // nogncheck
|
#include "components/services/font/pdf_fontconfig_matching.h" // nogncheck
|
||||||
#endif
|
#endif
|
||||||
@@ -95,6 +101,7 @@ void FontServiceApp::BindReceiver(
|
@@ -101,6 +109,7 @@ void FontServiceApp::BindReceiver(
|
||||||
void FontServiceApp::MatchFamilyName(const std::string& family_name,
|
void FontServiceApp::MatchFamilyName(const std::string& family_name,
|
||||||
mojom::TypefaceStylePtr requested_style,
|
mojom::TypefaceStylePtr requested_style,
|
||||||
MatchFamilyNameCallback callback) {
|
MatchFamilyNameCallback callback) {
|
||||||
@@ -398,7 +454,7 @@ diff --git a/components/services/font/font_service_app.cc b/components/services/
|
|||||||
TRACE_EVENT0("fonts", "FontServiceApp::MatchFamilyName");
|
TRACE_EVENT0("fonts", "FontServiceApp::MatchFamilyName");
|
||||||
|
|
||||||
SkFontConfigInterface::FontIdentity result_identity;
|
SkFontConfigInterface::FontIdentity result_identity;
|
||||||
@@ -155,6 +162,7 @@ void FontServiceApp::MatchFamilyName(const std::string& family_name,
|
@@ -161,6 +170,7 @@ void FontServiceApp::MatchFamilyName(const std::string& family_name,
|
||||||
|
|
||||||
std::move(callback).Run(std::move(identity), result_family_cppstring,
|
std::move(callback).Run(std::move(identity), result_family_cppstring,
|
||||||
std::move(style));
|
std::move(style));
|
||||||
@@ -406,7 +462,7 @@ diff --git a/components/services/font/font_service_app.cc b/components/services/
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FontServiceApp::OpenStream(uint32_t id_number,
|
void FontServiceApp::OpenStream(uint32_t id_number,
|
||||||
@@ -169,12 +177,43 @@ void FontServiceApp::OpenStream(uint32_t id_number,
|
@@ -175,12 +185,43 @@ void FontServiceApp::OpenStream(uint32_t id_number,
|
||||||
std::move(callback).Run(std::move(file));
|
std::move(callback).Run(std::move(file));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -450,7 +506,7 @@ diff --git a/components/services/font/font_service_app.cc b/components/services/
|
|||||||
gfx::FallbackFontData fallback_font;
|
gfx::FallbackFontData fallback_font;
|
||||||
if (gfx::GetFallbackFontForChar(character, locale, &fallback_font)) {
|
if (gfx::GetFallbackFontForChar(character, locale, &fallback_font)) {
|
||||||
size_t index = FindOrAddPath(fallback_font.filepath);
|
size_t index = FindOrAddPath(fallback_font.filepath);
|
||||||
@@ -189,6 +228,7 @@ void FontServiceApp::FallbackFontForCharacter(
|
@@ -195,6 +236,7 @@ void FontServiceApp::FallbackFontForCharacter(
|
||||||
} else {
|
} else {
|
||||||
std::move(callback).Run(nullptr, "", false, false);
|
std::move(callback).Run(nullptr, "", false, false);
|
||||||
}
|
}
|
||||||
@@ -458,7 +514,7 @@ diff --git a/components/services/font/font_service_app.cc b/components/services/
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FontServiceApp::FontRenderStyleForStrike(
|
void FontServiceApp::FontRenderStyleForStrike(
|
||||||
@@ -232,6 +272,9 @@ void FontServiceApp::MatchFontByPostscriptNameOrFullFontName(
|
@@ -238,6 +280,9 @@ void FontServiceApp::MatchFontByPostscriptNameOrFullFontName(
|
||||||
TRACE_EVENT0("fonts",
|
TRACE_EVENT0("fonts",
|
||||||
"FontServiceApp::MatchFontByPostscriptNameOrFullFontName");
|
"FontServiceApp::MatchFontByPostscriptNameOrFullFontName");
|
||||||
|
|
||||||
@@ -468,7 +524,7 @@ diff --git a/components/services/font/font_service_app.cc b/components/services/
|
|||||||
std::optional<FontConfigLocalMatching::FontConfigMatchResult> match_result =
|
std::optional<FontConfigLocalMatching::FontConfigMatchResult> match_result =
|
||||||
FontConfigLocalMatching::FindFontByPostscriptNameOrFullFontName(family);
|
FontConfigLocalMatching::FindFontByPostscriptNameOrFullFontName(family);
|
||||||
if (match_result) {
|
if (match_result) {
|
||||||
@@ -243,6 +286,7 @@ void FontServiceApp::MatchFontByPostscriptNameOrFullFontName(
|
@@ -249,6 +294,7 @@ void FontServiceApp::MatchFontByPostscriptNameOrFullFontName(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
std::move(callback).Run(nullptr);
|
std::move(callback).Run(nullptr);
|
||||||
@@ -511,7 +567,7 @@ diff --git a/components/services/font/public/cpp/font_loader.cc b/components/ser
|
|||||||
diff --git a/components/services/font/public/cpp/font_loader.h b/components/services/font/public/cpp/font_loader.h
|
diff --git a/components/services/font/public/cpp/font_loader.h b/components/services/font/public/cpp/font_loader.h
|
||||||
--- a/components/services/font/public/cpp/font_loader.h
|
--- a/components/services/font/public/cpp/font_loader.h
|
||||||
+++ b/components/services/font/public/cpp/font_loader.h
|
+++ b/components/services/font/public/cpp/font_loader.h
|
||||||
@@ -54,6 +54,7 @@ class FontLoader : public SkFontConfigInterface,
|
@@ -56,6 +56,7 @@ class FontLoader : public SkFontConfigInterface,
|
||||||
SkFontStyle* out_style) override;
|
SkFontStyle* out_style) override;
|
||||||
SkStreamAsset* openStream(const FontIdentity& identity) override
|
SkStreamAsset* openStream(const FontIdentity& identity) override
|
||||||
LOCKS_EXCLUDED(mapped_font_files_lock_);
|
LOCKS_EXCLUDED(mapped_font_files_lock_);
|
||||||
@@ -522,7 +578,7 @@ diff --git a/components/services/font/public/cpp/font_loader.h b/components/serv
|
|||||||
diff --git a/components/services/font/public/cpp/font_service_thread.cc b/components/services/font/public/cpp/font_service_thread.cc
|
diff --git a/components/services/font/public/cpp/font_service_thread.cc b/components/services/font/public/cpp/font_service_thread.cc
|
||||||
--- a/components/services/font/public/cpp/font_service_thread.cc
|
--- a/components/services/font/public/cpp/font_service_thread.cc
|
||||||
+++ b/components/services/font/public/cpp/font_service_thread.cc
|
+++ b/components/services/font/public/cpp/font_service_thread.cc
|
||||||
@@ -247,6 +247,54 @@ void FontServiceThread::OpenStreamImpl(base::WaitableEvent* done_event,
|
@@ -258,6 +258,54 @@ void FontServiceThread::OpenStreamImpl(base::WaitableEvent* done_event,
|
||||||
done_event, output_file));
|
done_event, output_file));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -580,7 +636,7 @@ diff --git a/components/services/font/public/cpp/font_service_thread.cc b/compon
|
|||||||
diff --git a/components/services/font/public/cpp/font_service_thread.h b/components/services/font/public/cpp/font_service_thread.h
|
diff --git a/components/services/font/public/cpp/font_service_thread.h b/components/services/font/public/cpp/font_service_thread.h
|
||||||
--- a/components/services/font/public/cpp/font_service_thread.h
|
--- a/components/services/font/public/cpp/font_service_thread.h
|
||||||
+++ b/components/services/font/public/cpp/font_service_thread.h
|
+++ b/components/services/font/public/cpp/font_service_thread.h
|
||||||
@@ -55,6 +55,8 @@ class FontServiceThread : public base::RefCountedThreadSafe<FontServiceThread> {
|
@@ -57,6 +57,8 @@ class FontServiceThread : public base::RefCountedThreadSafe<FontServiceThread> {
|
||||||
SkFontStyle* out_style);
|
SkFontStyle* out_style);
|
||||||
scoped_refptr<MappedFontFile> OpenStream(
|
scoped_refptr<MappedFontFile> OpenStream(
|
||||||
const SkFontConfigInterface::FontIdentity& identity);
|
const SkFontConfigInterface::FontIdentity& identity);
|
||||||
@@ -589,7 +645,7 @@ diff --git a/components/services/font/public/cpp/font_service_thread.h b/compone
|
|||||||
|
|
||||||
bool FallbackFontForCharacter(
|
bool FallbackFontForCharacter(
|
||||||
uint32_t character,
|
uint32_t character,
|
||||||
@@ -118,6 +120,9 @@ class FontServiceThread : public base::RefCountedThreadSafe<FontServiceThread> {
|
@@ -121,6 +123,9 @@ class FontServiceThread : public base::RefCountedThreadSafe<FontServiceThread> {
|
||||||
void OpenStreamImpl(base::WaitableEvent* done_event,
|
void OpenStreamImpl(base::WaitableEvent* done_event,
|
||||||
base::File* output_file,
|
base::File* output_file,
|
||||||
const uint32_t id_number);
|
const uint32_t id_number);
|
||||||
@@ -614,7 +670,7 @@ diff --git a/components/services/font/public/mojom/font_service.mojom b/componen
|
|||||||
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
|
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
|
||||||
--- a/content/browser/BUILD.gn
|
--- a/content/browser/BUILD.gn
|
||||||
+++ b/content/browser/BUILD.gn
|
+++ b/content/browser/BUILD.gn
|
||||||
@@ -2581,6 +2581,17 @@ source_set("browser") {
|
@@ -2648,6 +2648,17 @@ source_set("browser") {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -632,8 +688,8 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
|
|||||||
if (is_linux || is_chromeos) {
|
if (is_linux || is_chromeos) {
|
||||||
sources -=
|
sources -=
|
||||||
[ "file_system_access/file_path_watcher/file_path_watcher_stub.cc" ]
|
[ "file_system_access/file_path_watcher/file_path_watcher_stub.cc" ]
|
||||||
@@ -2626,6 +2637,13 @@ source_set("browser") {
|
@@ -2694,6 +2705,13 @@ source_set("browser") {
|
||||||
]
|
deps += [ "//components/services/font_data:lib" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if (is_android) {
|
+ if (is_android) {
|
||||||
@@ -649,9 +705,9 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
|
|||||||
diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc
|
diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc
|
||||||
--- a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc
|
--- a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc
|
||||||
+++ b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc
|
+++ b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc
|
||||||
@@ -51,6 +51,11 @@
|
@@ -56,6 +56,11 @@
|
||||||
#include "third_party/blink/public/mojom/android_font_lookup/android_font_lookup.mojom.h"
|
#include "content/browser/renderer_host/p2p/socket_dispatcher_host.h"
|
||||||
#endif
|
#endif // BUILDFLAG(IS_P2P_ENABLED)
|
||||||
|
|
||||||
+#if BUILDFLAG(IS_ANDROID)
|
+#if BUILDFLAG(IS_ANDROID)
|
||||||
+#include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck
|
+#include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck
|
||||||
@@ -661,7 +717,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin
|
|||||||
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
|
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
|
||||||
#include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck
|
#include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck
|
||||||
#include "content/browser/font_service.h" // nogncheck
|
#include "content/browser/font_service.h" // nogncheck
|
||||||
@@ -336,6 +341,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver(
|
@@ -356,6 +361,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver(
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -678,7 +734,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin
|
|||||||
diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
|
diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
|
||||||
--- a/content/child/BUILD.gn
|
--- a/content/child/BUILD.gn
|
||||||
+++ b/content/child/BUILD.gn
|
+++ b/content/child/BUILD.gn
|
||||||
@@ -136,6 +136,13 @@ target(link_target_type, "child") {
|
@@ -137,6 +137,13 @@ target(link_target_type, "child") {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -695,7 +751,7 @@ diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
|
|||||||
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
|
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
|
||||||
--- a/content/renderer/BUILD.gn
|
--- a/content/renderer/BUILD.gn
|
||||||
+++ b/content/renderer/BUILD.gn
|
+++ b/content/renderer/BUILD.gn
|
||||||
@@ -347,6 +347,10 @@ target(link_target_type, "renderer") {
|
@@ -351,6 +351,10 @@ target(link_target_type, "renderer") {
|
||||||
deps += [ "//services/screen_ai/public/mojom" ]
|
deps += [ "//services/screen_ai/public/mojom" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -709,7 +765,7 @@ diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
|
|||||||
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc
|
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc
|
||||||
--- a/content/renderer/renderer_blink_platform_impl.cc
|
--- a/content/renderer/renderer_blink_platform_impl.cc
|
||||||
+++ b/content/renderer/renderer_blink_platform_impl.cc
|
+++ b/content/renderer/renderer_blink_platform_impl.cc
|
||||||
@@ -136,6 +136,23 @@
|
@@ -141,6 +141,23 @@
|
||||||
#include "content/common/android/sync_compositor_statics.h"
|
#include "content/common/android/sync_compositor_statics.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -733,7 +789,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer
|
|||||||
using blink::Platform;
|
using blink::Platform;
|
||||||
using blink::WebAudioDevice;
|
using blink::WebAudioDevice;
|
||||||
using blink::WebAudioLatencyHint;
|
using blink::WebAudioLatencyHint;
|
||||||
@@ -178,6 +195,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) {
|
@@ -191,6 +208,37 @@ viz::command_buffer_metrics::ContextType ToVizContextType(
|
||||||
NOTREACHED();
|
NOTREACHED();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -771,7 +827,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer
|
|||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
@@ -191,18 +239,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl(
|
@@ -204,18 +252,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl(
|
||||||
is_locked_to_site_(false),
|
is_locked_to_site_(false),
|
||||||
main_thread_scheduler_(main_thread_scheduler),
|
main_thread_scheduler_(main_thread_scheduler),
|
||||||
next_frame_sink_id_(uint32_t{std::numeric_limits<int32_t>::max()} + 1) {
|
next_frame_sink_id_(uint32_t{std::numeric_limits<int32_t>::max()} + 1) {
|
||||||
@@ -794,7 +850,19 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer
|
|||||||
+#endif
|
+#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if BUILDFLAG(IS_WIN)
|
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
|
||||||
|
diff --git a/content/renderer/renderer_main.cc b/content/renderer/renderer_main.cc
|
||||||
|
--- a/content/renderer/renderer_main.cc
|
||||||
|
+++ b/content/renderer/renderer_main.cc
|
||||||
|
@@ -183,8 +183,6 @@ int RendererMain(MainFunctionParams parameters) {
|
||||||
|
// On Linux, Windows, and ChromeOS, the font manager is overridden or
|
||||||
|
// specially handled in RendererBlinkPlatformImpl(). On other platforms,
|
||||||
|
// initialise the default one on a thread pool, to avoid blocking on it later.
|
||||||
|
- base::ThreadPool::PostTask(FROM_HERE,
|
||||||
|
- base::BindOnce([] { skia::DefaultFontMgr(); }));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// This function allows pausing execution using the --renderer-startup-dialog
|
||||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Android-fonts-fingerprinting-mitigation.inc b/cromite_flags/chrome/browser/about_flags_cc/Android-fonts-fingerprinting-mitigation.inc
|
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Android-fonts-fingerprinting-mitigation.inc b/cromite_flags/chrome/browser/about_flags_cc/Android-fonts-fingerprinting-mitigation.inc
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
@@ -837,7 +905,7 @@ new file mode 100644
|
|||||||
diff --git a/skia/BUILD.gn b/skia/BUILD.gn
|
diff --git a/skia/BUILD.gn b/skia/BUILD.gn
|
||||||
--- a/skia/BUILD.gn
|
--- a/skia/BUILD.gn
|
||||||
+++ b/skia/BUILD.gn
|
+++ b/skia/BUILD.gn
|
||||||
@@ -457,6 +457,18 @@ component("skia") {
|
@@ -446,6 +446,18 @@ component("skia") {
|
||||||
sources += skia_ports_fci_sources
|
sources += skia_ports_fci_sources
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -856,6 +924,29 @@ diff --git a/skia/BUILD.gn b/skia/BUILD.gn
|
|||||||
if (is_linux || is_chromeos || is_android) {
|
if (is_linux || is_chromeos || is_android) {
|
||||||
# Retain the files for the SkFontMgr_Android on linux to emulate android
|
# Retain the files for the SkFontMgr_Android on linux to emulate android
|
||||||
# fonts. See content/zygote/zygote_main_linux.cc
|
# fonts. See content/zygote/zygote_main_linux.cc
|
||||||
|
diff --git a/skia/ext/font_utils.cc b/skia/ext/font_utils.cc
|
||||||
|
--- a/skia/ext/font_utils.cc
|
||||||
|
+++ b/skia/ext/font_utils.cc
|
||||||
|
@@ -60,6 +60,7 @@ SkFontMgr* g_fontmgr_override = nullptr;
|
||||||
|
#if BUILDFLAG(IS_ANDROID)
|
||||||
|
// https://crbug.com/461659286 Failure to create any font causes crash.
|
||||||
|
BASE_FEATURE(kUseAndroidNDKFontAPI, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
|
+SET_CROMITE_FEATURE_DISABLED(kUseAndroidNDKFontAPI);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
diff --git a/third_party/freetype/include/freetype-custom/freetype/config/ftoption.h b/third_party/freetype/include/freetype-custom/freetype/config/ftoption.h
|
||||||
|
--- a/third_party/freetype/include/freetype-custom/freetype/config/ftoption.h
|
||||||
|
+++ b/third_party/freetype/include/freetype-custom/freetype/config/ftoption.h
|
||||||
|
@@ -607,7 +607,7 @@ FT_BEGIN_HEADER
|
||||||
|
* module (namely TrueType~& OpenType).
|
||||||
|
*/
|
||||||
|
/* Not needed since PDFs do not support any of the color font formats. */
|
||||||
|
-/* #define TT_CONFIG_OPTION_COLOR_LAYERS */
|
||||||
|
+#define TT_CONFIG_OPTION_COLOR_LAYERS
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
diff --git a/third_party/skia/include/ports/SkFontConfigInterface.h b/third_party/skia/include/ports/SkFontConfigInterface.h
|
diff --git a/third_party/skia/include/ports/SkFontConfigInterface.h b/third_party/skia/include/ports/SkFontConfigInterface.h
|
||||||
--- a/third_party/skia/include/ports/SkFontConfigInterface.h
|
--- a/third_party/skia/include/ports/SkFontConfigInterface.h
|
||||||
+++ b/third_party/skia/include/ports/SkFontConfigInterface.h
|
+++ b/third_party/skia/include/ports/SkFontConfigInterface.h
|
||||||
@@ -883,7 +974,7 @@ diff --git a/third_party/skia/include/ports/SkFontMgr_android.h b/third_party/sk
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
@@ -40,13 +45,46 @@ struct SkFontMgr_Android_CustomFonts {
|
@@ -40,9 +45,44 @@ struct SkFontMgr_Android_CustomFonts {
|
||||||
* system IO resources on initialization.
|
* system IO resources on initialization.
|
||||||
*/
|
*/
|
||||||
bool fIsolated;
|
bool fIsolated;
|
||||||
@@ -923,23 +1014,21 @@ diff --git a/third_party/skia/include/ports/SkFontMgr_android.h b/third_party/sk
|
|||||||
};
|
};
|
||||||
|
|
||||||
/** Create a font manager for Android. If 'custom' is NULL, use only system fonts. */
|
/** Create a font manager for Android. If 'custom' is NULL, use only system fonts. */
|
||||||
|
|
||||||
// Deprecated
|
|
||||||
-SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom);
|
|
||||||
+SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom);
|
|
||||||
|
|
||||||
-SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom,
|
-SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom,
|
||||||
|
+SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom);
|
||||||
|
+
|
||||||
+SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom,
|
+SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom,
|
||||||
std::unique_ptr<SkFontScanner> scanner);
|
std::unique_ptr<SkFontScanner> scanner);
|
||||||
#endif // SkFontMgr_android_DEFINED
|
#endif // SkFontMgr_android_DEFINED
|
||||||
diff --git a/third_party/skia/src/ports/SkFontConfigInterface.cpp b/third_party/skia/src/ports/SkFontConfigInterface.cpp
|
diff --git a/third_party/skia/src/ports/SkFontConfigInterface.cpp b/third_party/skia/src/ports/SkFontConfigInterface.cpp
|
||||||
--- a/third_party/skia/src/ports/SkFontConfigInterface.cpp
|
--- a/third_party/skia/src/ports/SkFontConfigInterface.cpp
|
||||||
+++ b/third_party/skia/src/ports/SkFontConfigInterface.cpp
|
+++ b/third_party/skia/src/ports/SkFontConfigInterface.cpp
|
||||||
@@ -22,7 +22,11 @@ sk_sp<SkFontConfigInterface> SkFontConfigInterface::RefGlobal() {
|
@@ -22,7 +22,12 @@ sk_sp<SkFontConfigInterface> SkFontConfigInterface::RefGlobal() {
|
||||||
if (gFontConfigInterface) {
|
if (gFontConfigInterface) {
|
||||||
return sk_ref_sp(gFontConfigInterface);
|
return sk_ref_sp(gFontConfigInterface);
|
||||||
}
|
}
|
||||||
+#if defined(CROMITE_IS_ANDROID)
|
+#if defined(CROMITE_IS_ANDROID)
|
||||||
|
+ SkASSERT(false);
|
||||||
+ return nullptr;
|
+ return nullptr;
|
||||||
+#else
|
+#else
|
||||||
return sk_ref_sp(SkFontConfigInterface::GetSingletonDirectInterface());
|
return sk_ref_sp(SkFontConfigInterface::GetSingletonDirectInterface());
|
||||||
@@ -950,7 +1039,7 @@ diff --git a/third_party/skia/src/ports/SkFontConfigInterface.cpp b/third_party/
|
|||||||
diff --git a/third_party/skia/src/ports/SkFontConfigInterface_direct.cpp b/third_party/skia/src/ports/SkFontConfigInterface_direct.cpp
|
diff --git a/third_party/skia/src/ports/SkFontConfigInterface_direct.cpp b/third_party/skia/src/ports/SkFontConfigInterface_direct.cpp
|
||||||
--- a/third_party/skia/src/ports/SkFontConfigInterface_direct.cpp
|
--- a/third_party/skia/src/ports/SkFontConfigInterface_direct.cpp
|
||||||
+++ b/third_party/skia/src/ports/SkFontConfigInterface_direct.cpp
|
+++ b/third_party/skia/src/ports/SkFontConfigInterface_direct.cpp
|
||||||
@@ -707,3 +707,8 @@ bool SkFontConfigInterfaceDirect::matchFamilyName(const char familyName[],
|
@@ -715,3 +715,8 @@ bool SkFontConfigInterfaceDirect::matchFamilyName(const char familyName[],
|
||||||
SkStreamAsset* SkFontConfigInterfaceDirect::openStream(const FontIdentity& identity) {
|
SkStreamAsset* SkFontConfigInterfaceDirect::openStream(const FontIdentity& identity) {
|
||||||
return SkStream::MakeFromFile(identity.fString.c_str()).release();
|
return SkStream::MakeFromFile(identity.fString.c_str()).release();
|
||||||
}
|
}
|
||||||
@@ -973,7 +1062,15 @@ diff --git a/third_party/skia/src/ports/SkFontConfigInterface_direct.h b/third_p
|
|||||||
diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia/src/ports/SkFontMgr_android.cpp
|
diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia/src/ports/SkFontMgr_android.cpp
|
||||||
--- a/third_party/skia/src/ports/SkFontMgr_android.cpp
|
--- a/third_party/skia/src/ports/SkFontMgr_android.cpp
|
||||||
+++ b/third_party/skia/src/ports/SkFontMgr_android.cpp
|
+++ b/third_party/skia/src/ports/SkFontMgr_android.cpp
|
||||||
@@ -27,6 +27,7 @@
|
@@ -16,6 +16,7 @@
|
||||||
|
#include "include/core/SkStream.h"
|
||||||
|
#include "include/core/SkString.h"
|
||||||
|
#include "include/ports/SkFontMgr_android.h"
|
||||||
|
+#include "include/ports/SkFontScanner_FreeType.h"
|
||||||
|
#include "include/private/base/SkFixed.h"
|
||||||
|
#include "include/private/base/SkTArray.h"
|
||||||
|
#include "include/private/base/SkTDArray.h"
|
||||||
|
@@ -27,6 +28,7 @@
|
||||||
#include "src/core/SkTypefaceCache.h"
|
#include "src/core/SkTypefaceCache.h"
|
||||||
#include "src/ports/SkFontMgr_android_parser.h"
|
#include "src/ports/SkFontMgr_android_parser.h"
|
||||||
#include "src/ports/SkTypeface_proxy.h"
|
#include "src/ports/SkTypeface_proxy.h"
|
||||||
@@ -981,10 +1078,12 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
@@ -36,6 +37,91 @@ using namespace skia_private;
|
@@ -37,7 +39,95 @@ class SkData;
|
||||||
class SkData;
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
|
-[[maybe_unused]] static inline const constexpr bool kSkFontMgrVerbose = false;
|
||||||
|
+static inline const constexpr bool kSkFontMgrVerbose = true;
|
||||||
+
|
+
|
||||||
+#include "SkFontMgr_android_data.cpp"
|
+#include "SkFontMgr_android_data.cpp"
|
||||||
+
|
+
|
||||||
@@ -1032,18 +1131,22 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
+ desc->setFactoryId(SkTypeface_FreeType::FactoryId);
|
+ desc->setFactoryId(SkTypeface_FreeType::FactoryId);
|
||||||
+ *serialize = false;
|
+ *serialize = false;
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
+ std::unique_ptr<SkStreamAsset> onOpenStream(int* ttcIndex) const override {
|
+ std::unique_ptr<SkStreamAsset> onOpenStream(int* ttcIndex) const override {
|
||||||
+ *ttcIndex = fIndex;
|
+ *ttcIndex = fIndex;
|
||||||
+ return this->makeStream();
|
+ return this->makeStream();
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
+ std::unique_ptr<SkFontData> onMakeFontData() const override {
|
+ std::unique_ptr<SkFontData> onMakeFontData() const override {
|
||||||
+ return std::make_unique<SkFontData>(
|
+ return std::make_unique<SkFontData>(
|
||||||
+ this->makeStream(), fIndex, 0, fAxes.begin(), fAxes.size(), nullptr, 0);
|
+ this->makeStream(), fIndex, 0, fAxes.begin(), fAxes.size(), nullptr, 0);
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
+ sk_sp<SkTypeface> onMakeClone(const SkFontArguments& args) const override {
|
+ sk_sp<SkTypeface> onMakeClone(const SkFontArguments& args) const override {
|
||||||
+ SkFontStyle style = this->fontStyle();
|
+ SkFontStyle style = this->fontStyle();
|
||||||
+ std::unique_ptr<SkFontData> data = this->cloneFontData(args, &style);
|
+ std::unique_ptr<SkFontData> data = this->cloneFontData(args, &style);
|
||||||
+ if (!data) {
|
+ if (!data) {
|
||||||
|
+ SkASSERT(false);
|
||||||
+ return nullptr;
|
+ return nullptr;
|
||||||
+ }
|
+ }
|
||||||
+ return sk_make_sp<SkTypeface_AndroidSystemCustom>(
|
+ return sk_make_sp<SkTypeface_AndroidSystemCustom>(
|
||||||
@@ -1069,11 +1172,10 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
+
|
+
|
||||||
+ using INHERITED = SkTypeface_FreeType;
|
+ using INHERITED = SkTypeface_FreeType;
|
||||||
+};
|
+};
|
||||||
+
|
|
||||||
class SkTypeface_AndroidSystem : public SkTypeface_proxy {
|
class SkTypeface_AndroidSystem : public SkTypeface_proxy {
|
||||||
public:
|
public:
|
||||||
static sk_sp<SkTypeface_AndroidSystem> Make(sk_sp<SkTypeface> realTypeface,
|
@@ -112,7 +202,8 @@ using StreamForPathCache = skia_private::THashMap<SkString, std::unique_ptr<SkSt
|
||||||
@@ -110,7 +196,8 @@ using StreamForPathCache = skia_private::THashMap<SkString, std::unique_ptr<SkSt
|
|
||||||
class SkFontStyleSet_Android : public SkFontStyleSet {
|
class SkFontStyleSet_Android : public SkFontStyleSet {
|
||||||
public:
|
public:
|
||||||
explicit SkFontStyleSet_Android(const FontFamily& family, const SkFontScanner* scanner,
|
explicit SkFontStyleSet_Android(const FontFamily& family, const SkFontScanner* scanner,
|
||||||
@@ -1083,7 +1185,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
const SkString* cannonicalFamilyName = nullptr;
|
const SkString* cannonicalFamilyName = nullptr;
|
||||||
if (!family.fNames.empty()) {
|
if (!family.fNames.empty()) {
|
||||||
cannonicalFamilyName = &family.fNames[0];
|
cannonicalFamilyName = &family.fNames[0];
|
||||||
@@ -119,38 +206,60 @@ public:
|
@@ -121,38 +212,60 @@ public:
|
||||||
|
|
||||||
// TODO? make this lazy
|
// TODO? make this lazy
|
||||||
for (int i = 0; i < family.fFonts.size(); ++i) {
|
for (int i = 0; i < family.fFonts.size(); ++i) {
|
||||||
@@ -1132,7 +1234,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
+ use_custom = true;
|
+ use_custom = true;
|
||||||
+ if (!GetFontData(fontFile.fFileName,
|
+ if (!GetFontData(fontFile.fFileName,
|
||||||
+ &familyName, &fontStyle, &isFixedWidth, &axisDefinitions)) {
|
+ &familyName, &fontStyle, &isFixedWidth, &axisDefinitions)) {
|
||||||
+ stream = custom->getPlatformFile(pathName.c_str());
|
+ stream = custom->getPlatformFile(fontFile.fFileName.c_str());
|
||||||
+ }
|
+ }
|
||||||
+ pathName = fontFile.fFileName;
|
+ pathName = fontFile.fFileName;
|
||||||
}
|
}
|
||||||
@@ -1167,7 +1269,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint32_t variant = family.fVariant;
|
uint32_t variant = family.fVariant;
|
||||||
@@ -161,13 +270,25 @@ public:
|
@@ -163,13 +276,25 @@ public:
|
||||||
// The first specified family name overrides the family name found in the font.
|
// The first specified family name overrides the family name found in the font.
|
||||||
// TODO: SkTypeface_AndroidSystem::onCreateFamilyNameIterator should return
|
// TODO: SkTypeface_AndroidSystem::onCreateFamilyNameIterator should return
|
||||||
// all of the specified family names in addition to the names found in the font.
|
// all of the specified family names in addition to the names found in the font.
|
||||||
@@ -1199,7 +1301,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
int weight = fontFile.fWeight != 0 ? fontFile.fWeight : fontStyle.weight();
|
int weight = fontFile.fWeight != 0 ? fontFile.fWeight : fontStyle.weight();
|
||||||
SkFontStyle::Slant slant = fontStyle.slant();
|
SkFontStyle::Slant slant = fontStyle.slant();
|
||||||
switch (fontFile.fStyle) {
|
switch (fontFile.fStyle) {
|
||||||
@@ -178,6 +299,19 @@ public:
|
@@ -180,6 +305,19 @@ public:
|
||||||
}
|
}
|
||||||
fontStyle = SkFontStyle(weight, fontStyle.width(), slant);
|
fontStyle = SkFontStyle(weight, fontStyle.width(), slant);
|
||||||
|
|
||||||
@@ -1219,7 +1321,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
fStyles.push_back(
|
fStyles.push_back(
|
||||||
SkTypeface_AndroidSystem::Make(proxy,
|
SkTypeface_AndroidSystem::Make(proxy,
|
||||||
fontStyle, proxy->isFixedPitch(),
|
fontStyle, proxy->isFixedPitch(),
|
||||||
@@ -206,15 +340,18 @@ public:
|
@@ -208,15 +346,18 @@ public:
|
||||||
return fStyles[index];
|
return fStyles[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1241,7 +1343,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
SkString fFallbackFor;
|
SkString fFallbackFor;
|
||||||
|
|
||||||
friend struct NameToFamily;
|
friend struct NameToFamily;
|
||||||
@@ -235,24 +372,26 @@ struct NameToFamily {
|
@@ -237,24 +378,26 @@ struct NameToFamily {
|
||||||
|
|
||||||
class SkFontMgr_Android : public SkFontMgr {
|
class SkFontMgr_Android : public SkFontMgr {
|
||||||
public:
|
public:
|
||||||
@@ -1251,7 +1353,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
: fScanner(std::move(scanner)) {
|
: fScanner(std::move(scanner)) {
|
||||||
+ custom_ = std::move(custom_in);
|
+ custom_ = std::move(custom_in);
|
||||||
+ auto* custom = custom_.get();
|
+ auto* custom = custom_.get();
|
||||||
SkTDArray<FontFamily*> families;
|
std::vector<std::unique_ptr<FontFamily>> families;
|
||||||
if (custom && SkFontMgr_Android_CustomFonts::kPreferSystem != custom->fSystemFontUse) {
|
if (custom && SkFontMgr_Android_CustomFonts::kPreferSystem != custom->fSystemFontUse) {
|
||||||
SkString base(custom->fBasePath);
|
SkString base(custom->fBasePath);
|
||||||
SkFontMgr_Android_Parser::GetCustomFontFamilies(
|
SkFontMgr_Android_Parser::GetCustomFontFamilies(
|
||||||
@@ -1272,26 +1374,26 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
}
|
}
|
||||||
this->buildNameToFamilyMap(families, custom ? custom->fIsolated : false);
|
this->buildNameToFamilyMap(families, custom ? custom->fIsolated : false);
|
||||||
this->findDefaultStyleSet();
|
this->findDefaultStyleSet();
|
||||||
@@ -310,33 +449,53 @@ protected:
|
@@ -309,33 +452,53 @@ protected:
|
||||||
return sset->matchStyle(style);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
using Matcher = bool (*)(const SkString& familyName, const NameToFamily&);
|
||||||
- static sk_sp<SkTypeface_AndroidSystem> find_family_style_character(
|
- static sk_sp<SkTypeface_AndroidSystem> find_family_style_character(
|
||||||
+ sk_sp<SkTypeface> find_family_style_character(
|
+ sk_sp<SkTypeface> find_family_style_character(
|
||||||
const SkString& familyName,
|
const SkString& familyName,
|
||||||
const TArray<NameToFamily, true>& fallbackNameToFamilyMap,
|
const TArray<NameToFamily, true>& nameToFamilyMap,
|
||||||
const SkFontStyle& style, bool elegant,
|
const SkFontStyle& style, bool elegant,
|
||||||
- const SkString& langTag, SkUnichar character)
|
const SkString& langTag, SkUnichar character,
|
||||||
+ const SkString& langTag, SkUnichar character) const
|
- Matcher matcher)
|
||||||
|
+ Matcher matcher) const
|
||||||
{
|
{
|
||||||
for (int i = 0; i < fallbackNameToFamilyMap.size(); ++i) {
|
for (auto&& nameToFamily : nameToFamilyMap) {
|
||||||
SkFontStyleSet_Android* family = fallbackNameToFamilyMap[i].styleSet;
|
if (!matcher(familyName, nameToFamily)) {
|
||||||
if (familyName != family->fFallbackFor) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
- sk_sp<SkTypeface_AndroidSystem> face(family->matchAStyle(style));
|
- sk_sp<SkTypeface_AndroidSystem> face(nameToFamily.styleSet->matchAStyle(style));
|
||||||
+ if (custom_) {
|
+ if (custom_) {
|
||||||
+ sk_sp<SkTypeface_AndroidSystemCustom> face(family->matchCromiteStyle(style));
|
+ sk_sp<SkTypeface_AndroidSystemCustom> face(nameToFamily.styleSet->matchCromiteStyle(style));
|
||||||
+
|
+
|
||||||
+ if (!langTag.isEmpty() &&
|
+ if (!langTag.isEmpty() &&
|
||||||
+ std::none_of(face->fLang.begin(), face->fLang.end(), [&](const SkLanguage& lang){
|
+ std::none_of(face->fLang.begin(), face->fLang.end(), [&](const SkLanguage& lang){
|
||||||
@@ -1319,7 +1421,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
+ return face;
|
+ return face;
|
||||||
+ }
|
+ }
|
||||||
+ } else {
|
+ } else {
|
||||||
+ sk_sp<SkTypeface_AndroidSystem> face(family->matchAndroidStyle(style));
|
+ sk_sp<SkTypeface_AndroidSystem> face(nameToFamily.styleSet->matchAndroidStyle(style));
|
||||||
+
|
+
|
||||||
+ if (!langTag.isEmpty() &&
|
+ if (!langTag.isEmpty() &&
|
||||||
+ std::none_of(face->fLang.begin(), face->fLang.end(), [&](const SkLanguage& lang){
|
+ std::none_of(face->fLang.begin(), face->fLang.end(), [&](const SkLanguage& lang){
|
||||||
@@ -1341,25 +1443,28 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nullptr;
|
return nullptr;
|
||||||
@@ -359,7 +518,7 @@ protected:
|
@@ -360,9 +523,9 @@ protected:
|
||||||
for (int bcp47Index = bcp47Count; bcp47Index --> 0;) {
|
|
||||||
SkLanguage lang(bcp47[bcp47Index]);
|
auto find = [this, &style, &character](const SkString& familyName,
|
||||||
while (!lang.getTag().isEmpty()) {
|
const SkString& lang,
|
||||||
- sk_sp<SkTypeface_AndroidSystem> matchingTypeface =
|
- bool elegant) -> sk_sp<SkTypeface_AndroidSystem>
|
||||||
+ sk_sp<SkTypeface> matchingTypeface =
|
+ bool elegant) -> sk_sp<SkTypeface>
|
||||||
find_family_style_character(currentFamilyName, fFallbackNameToFamilyMap,
|
{
|
||||||
style, SkToBool(elegant),
|
- sk_sp<SkTypeface_AndroidSystem> matchingTypeface;
|
||||||
lang.getTag(), character);
|
+ sk_sp<SkTypeface> matchingTypeface;
|
||||||
@@ -370,7 +529,7 @@ protected:
|
if (!familyName.isEmpty()) {
|
||||||
lang = lang.getParent();
|
matchingTypeface = find_family_style_character(
|
||||||
}
|
familyName, fNameToFamilyMap, style, elegant, lang, character,
|
||||||
}
|
@@ -410,7 +573,7 @@ protected:
|
||||||
- sk_sp<SkTypeface_AndroidSystem> matchingTypeface =
|
};
|
||||||
+ sk_sp<SkTypeface> matchingTypeface =
|
|
||||||
find_family_style_character(currentFamilyName, fFallbackNameToFamilyMap,
|
|
||||||
style, SkToBool(elegant),
|
- sk_sp<SkTypeface_AndroidSystem> matchingTypeface;
|
||||||
SkString(), character);
|
+ sk_sp<SkTypeface> matchingTypeface;
|
||||||
@@ -421,6 +580,7 @@ protected:
|
// If familyName is empty, don't look through everything twice.
|
||||||
|
SkString familyNames[2] = { SkString(familyName), SkString() };
|
||||||
|
size_t familyNamesCount = familyNames[0].isEmpty() ? 1 : 2;
|
||||||
|
@@ -475,6 +638,7 @@ protected:
|
||||||
private:
|
private:
|
||||||
|
|
||||||
std::unique_ptr<SkFontScanner> fScanner;
|
std::unique_ptr<SkFontScanner> fScanner;
|
||||||
@@ -1367,7 +1472,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
|
|
||||||
TArray<sk_sp<SkFontStyleSet_Android>> fStyleSets;
|
TArray<sk_sp<SkFontStyleSet_Android>> fStyleSets;
|
||||||
sk_sp<SkFontStyleSet> fDefaultStyleSet;
|
sk_sp<SkFontStyleSet> fDefaultStyleSet;
|
||||||
@@ -442,7 +602,7 @@ private:
|
@@ -496,7 +660,7 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
sk_sp<SkFontStyleSet_Android> newSet =
|
sk_sp<SkFontStyleSet_Android> newSet =
|
||||||
@@ -1376,24 +1481,22 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
|||||||
if (0 == newSet->count()) {
|
if (0 == newSet->count()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -487,11 +647,11 @@ static char const * const gSystemFontUseStrings[] = {
|
@@ -542,7 +706,11 @@ static char const * const gSystemFontUseStrings[] = {
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
-sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom) {
|
-sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom,
|
||||||
- return SkFontMgr_New_Android(custom, SkFontScanner_Make_FreeType());
|
|
||||||
+sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom) {
|
+sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom) {
|
||||||
+ return SkFontMgr_New_Android(std::move(custom), SkFontScanner_Make_FreeType());
|
+ return SkFontMgr_New_Android(std::move(custom), SkFontScanner_Make_FreeType());
|
||||||
}
|
+}
|
||||||
|
+
|
||||||
-sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom, std::unique_ptr<SkFontScanner> scanner) {
|
+sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom,
|
||||||
+sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom, std::unique_ptr<SkFontScanner> scanner) {
|
std::unique_ptr<SkFontScanner> scanner) {
|
||||||
if (custom) {
|
if (custom) {
|
||||||
SkASSERT(0 <= custom->fSystemFontUse);
|
SkASSERT(0 <= custom->fSystemFontUse);
|
||||||
SkASSERT(custom->fSystemFontUse < std::size(gSystemFontUseStrings));
|
@@ -555,5 +723,5 @@ sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust
|
||||||
@@ -501,5 +661,5 @@ sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust
|
custom->fFallbackFontsXml);
|
||||||
custom->fFontsXml,
|
}
|
||||||
custom->fFallbackFontsXml);
|
|
||||||
}
|
}
|
||||||
- return sk_make_sp<SkFontMgr_Android>(custom, std::move(scanner));
|
- return sk_make_sp<SkFontMgr_Android>(custom, std::move(scanner));
|
||||||
+ return sk_make_sp<SkFontMgr_Android>(std::move(custom), std::move(scanner));
|
+ return sk_make_sp<SkFontMgr_Android>(std::move(custom), std::move(scanner));
|
||||||
@@ -1402,7 +1505,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_data.cpp b/third_party
|
|||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/third_party/skia/src/ports/SkFontMgr_android_data.cpp
|
+++ b/third_party/skia/src/ports/SkFontMgr_android_data.cpp
|
||||||
@@ -0,0 +1,1640 @@
|
@@ -0,0 +1,1641 @@
|
||||||
+// AUTOGENERATED
|
+// AUTOGENERATED
|
||||||
+//
|
+//
|
||||||
+// SkString dumpAxis("axis|");
|
+// SkString dumpAxis("axis|");
|
||||||
@@ -2992,6 +3095,7 @@ new file mode 100644
|
|||||||
+ return true;
|
+ return true;
|
||||||
+ }
|
+ }
|
||||||
+ else if (file.equals("RobotoStatic-Regular.ttf")) {
|
+ else if (file.equals("RobotoStatic-Regular.ttf")) {
|
||||||
|
+ // see https://android.googlesource.com/platform/frameworks/base/+/89abe560d722a6f4136b7a05d80f23b269413aad
|
||||||
+ familyName->set("RobotoStatic");
|
+ familyName->set("RobotoStatic");
|
||||||
+ *style = SkFontStyle(400, 5, SkFontStyle::kUpright_Slant);
|
+ *style = SkFontStyle(400, 5, SkFontStyle::kUpright_Slant);
|
||||||
+ *isFixedPitch = false;
|
+ *isFixedPitch = false;
|
||||||
@@ -3043,13 +3147,25 @@ new file mode 100644
|
|||||||
+
|
+
|
||||||
+ return false;
|
+ return false;
|
||||||
+}
|
+}
|
||||||
|
diff --git a/third_party/skia/src/ports/SkFontMgr_android_ndk.cpp b/third_party/skia/src/ports/SkFontMgr_android_ndk.cpp
|
||||||
|
--- a/third_party/skia/src/ports/SkFontMgr_android_ndk.cpp
|
||||||
|
+++ b/third_party/skia/src/ports/SkFontMgr_android_ndk.cpp
|
||||||
|
@@ -996,7 +996,7 @@ public:
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<std::unique_ptr<FontFamily>> xmlFamilies;
|
||||||
|
- SkFontMgr_Android_Parser::GetSystemFontFamilies(xmlFamilies);
|
||||||
|
+ SkFontMgr_Android_Parser::GetSystemFontFamilies(xmlFamilies, /*custom*/ nullptr);
|
||||||
|
|
||||||
|
skia_private::THashMap<SkString, std::unique_ptr<SkStreamAsset>> streamForPath;
|
||||||
|
|
||||||
diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
|
diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
|
||||||
--- a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
|
--- a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
|
||||||
+++ b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
|
+++ b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
|
||||||
@@ -652,14 +652,27 @@ static const XML_Memory_Handling_Suite sk_XML_alloc = {
|
@@ -713,14 +713,27 @@ static const XML_Memory_Handling_Suite sk_XML_alloc = {
|
||||||
* families array. Returns the version of the file, negative if the file does not exist.
|
|
||||||
*/
|
*/
|
||||||
static int parse_config_file(const char* filename, SkTDArray<FontFamily*>& families,
|
static int parse_config_file(const char* filename,
|
||||||
|
std::vector<std::unique_ptr<FontFamily>>& families,
|
||||||
- const SkString& basePath, bool isFallback)
|
- const SkString& basePath, bool isFallback)
|
||||||
+ const SkString& basePath, bool isFallback,
|
+ const SkString& basePath, bool isFallback,
|
||||||
+ const SkFontMgr_Android_CustomFonts* custom = nullptr)
|
+ const SkFontMgr_Android_CustomFonts* custom = nullptr)
|
||||||
@@ -3080,7 +3196,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -691,8 +704,8 @@ static int parse_config_file(const char* filename, SkTDArray<FontFamily*>& famil
|
@@ -752,8 +765,8 @@ static int parse_config_file(const char* filename,
|
||||||
SkDebugf(SK_FONTMGR_ANDROID_PARSER_PREFIX "could not buffer enough to continue\n");
|
SkDebugf(SK_FONTMGR_ANDROID_PARSER_PREFIX "could not buffer enough to continue\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -3091,57 +3207,92 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par
|
|||||||
XML_Status status = XML_ParseBuffer(parser, len, done);
|
XML_Status status = XML_ParseBuffer(parser, len, done);
|
||||||
if (XML_STATUS_ERROR == status) {
|
if (XML_STATUS_ERROR == status) {
|
||||||
XML_Error error = XML_GetErrorCode(parser);
|
XML_Error error = XML_GetErrorCode(parser);
|
||||||
@@ -765,8 +778,10 @@ static void append_fallback_font_families_for_locale(SkTDArray<FontFamily*>& fal
|
@@ -765,6 +778,23 @@ static int parse_config_file(const char* filename,
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ if (custom) {
|
||||||
|
+ // remove NotoColorEmojiLegacy.ttf
|
||||||
|
+ for (int i = 0; i < families.size(); ++i) {
|
||||||
|
+ bool exists = false;
|
||||||
|
+ auto& family = families[i];
|
||||||
|
+ for (auto& font : family->fFonts) {
|
||||||
|
+ if (font.fFileName.equals("NotoColorEmojiLegacy.ttf")) {
|
||||||
|
+ exists = true;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ if (exists) {
|
||||||
|
+ families.erase(families.begin() + i);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
return self.fVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void append_system_fallback_font_families(SkTDArray<FontFamily*>& fallbackFonts,
|
@@ -827,8 +857,10 @@ static void append_fallback_font_families_for_locale(
|
||||||
- const SkString& basePath)
|
|
||||||
+ const SkString& basePath,
|
static void append_system_fallback_font_families(
|
||||||
+ const SkFontMgr_Android_CustomFonts* custom)
|
std::vector<std::unique_ptr<FontFamily>>& fallbackFonts,
|
||||||
|
- const SkString& basePath)
|
||||||
|
+ const SkString& basePath,
|
||||||
|
+ const SkFontMgr_Android_CustomFonts* custom)
|
||||||
{
|
{
|
||||||
+ if (custom) return;
|
+ if (custom) return;
|
||||||
parse_config_file(FALLBACK_FONTS_FILE, fallbackFonts, basePath, true);
|
parse_config_file(FALLBACK_FONTS_FILE, fallbackFonts, basePath, true);
|
||||||
append_fallback_font_families_for_locale(fallbackFonts,
|
append_fallback_font_families_for_locale(fallbackFonts,
|
||||||
LOCALE_FALLBACK_FONTS_SYSTEM_DIR,
|
LOCALE_FALLBACK_FONTS_SYSTEM_DIR,
|
||||||
@@ -774,8 +789,10 @@ static void append_system_fallback_font_families(SkTDArray<FontFamily*>& fallbac
|
@@ -837,8 +869,10 @@ static void append_system_fallback_font_families(
|
||||||
}
|
|
||||||
|
|
||||||
static void mixin_vendor_fallback_font_families(SkTDArray<FontFamily*>& fallbackFonts,
|
static void mixin_vendor_fallback_font_families(
|
||||||
- const SkString& basePath)
|
std::vector<std::unique_ptr<FontFamily>>& fallbackFonts,
|
||||||
+ const SkString& basePath,
|
- const SkString& basePath)
|
||||||
+ const SkFontMgr_Android_CustomFonts* custom)
|
+ const SkString& basePath,
|
||||||
|
+ const SkFontMgr_Android_CustomFonts* custom)
|
||||||
{
|
{
|
||||||
+ if (custom) return;
|
+ if (custom) return;
|
||||||
SkTDArray<FontFamily*> vendorFonts;
|
std::vector<std::unique_ptr<FontFamily>> vendorFonts;
|
||||||
parse_config_file(VENDOR_FONTS_FILE, vendorFonts, basePath, true);
|
parse_config_file(VENDOR_FONTS_FILE, vendorFonts, basePath, true);
|
||||||
append_fallback_font_families_for_locale(vendorFonts,
|
append_fallback_font_families_for_locale(vendorFonts,
|
||||||
@@ -806,7 +823,8 @@ static void mixin_vendor_fallback_font_families(SkTDArray<FontFamily*>& fallback
|
@@ -870,7 +904,8 @@ static void mixin_vendor_fallback_font_families(
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
-void SkFontMgr_Android_Parser::GetSystemFontFamilies(SkTDArray<FontFamily*>& fontFamilies) {
|
void SkFontMgr_Android_Parser::GetSystemFontFamilies(
|
||||||
+void SkFontMgr_Android_Parser::GetSystemFontFamilies(SkTDArray<FontFamily*>& fontFamilies,
|
- std::vector<std::unique_ptr<FontFamily>>& fontFamilies) {
|
||||||
+ const SkFontMgr_Android_CustomFonts* custom) {
|
+ std::vector<std::unique_ptr<FontFamily>>& fontFamilies,
|
||||||
|
+ const SkFontMgr_Android_CustomFonts* custom) {
|
||||||
|
static constexpr char kFontFilePrefix[] = "/fonts/";
|
||||||
|
|
||||||
// Version 21 of the system font configuration does not need any fallback configuration files.
|
// Version 21 of the system font configuration does not need any fallback configuration files.
|
||||||
SkString basePath(getenv("ANDROID_ROOT"));
|
@@ -881,15 +916,16 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies(
|
||||||
basePath.append(SK_FONT_FILE_PREFIX, sizeof(SK_FONT_FILE_PREFIX) - 1);
|
// Product fonts (fonts_customization.xml) leverage <fonts-modification version="21">
|
||||||
@@ -817,22 +835,23 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies(SkTDArray<FontFamily*>& fon
|
// Therefore, we only attempt to parse them on modern devices (Android Lollipop+).
|
||||||
|
// Pre-21 systems fall through to the legacy fallback fonts handling below.
|
||||||
|
+ if (!custom)
|
||||||
|
SkFontMgr_Android_Parser::GetCustomFontFamilies(
|
||||||
|
- fontFamilies, basePath, PRODUCT_CUSTOMIZATION_FILE, nullptr, nullptr);
|
||||||
|
+ fontFamilies, basePath, custom, PRODUCT_CUSTOMIZATION_FILE, nullptr, nullptr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Append all the fallback fonts to system fonts
|
// Append all the fallback fonts to system fonts
|
||||||
SkTDArray<FontFamily*> fallbackFonts;
|
std::vector<std::unique_ptr<FontFamily>> fallbackFonts;
|
||||||
- append_system_fallback_font_families(fallbackFonts, basePath);
|
- append_system_fallback_font_families(fallbackFonts, basePath);
|
||||||
- mixin_vendor_fallback_font_families(fallbackFonts, basePath);
|
- mixin_vendor_fallback_font_families(fallbackFonts, basePath);
|
||||||
+ append_system_fallback_font_families(fallbackFonts, basePath, custom);
|
+ append_system_fallback_font_families(fallbackFonts, basePath, custom);
|
||||||
+ mixin_vendor_fallback_font_families(fallbackFonts, basePath, custom);
|
+ mixin_vendor_fallback_font_families(fallbackFonts, basePath, custom);
|
||||||
fontFamilies.append(fallbackFonts.size(), fallbackFonts.begin());
|
fontFamilies.insert(fontFamilies.end(),
|
||||||
}
|
std::make_move_iterator(fallbackFonts.begin()),
|
||||||
|
std::make_move_iterator(fallbackFonts.end()));
|
||||||
void SkFontMgr_Android_Parser::GetCustomFontFamilies(SkTDArray<FontFamily*>& fontFamilies,
|
@@ -898,15 +934,16 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies(
|
||||||
const SkString& basePath,
|
void SkFontMgr_Android_Parser::GetCustomFontFamilies(
|
||||||
+ const SkFontMgr_Android_CustomFonts* custom,
|
std::vector<std::unique_ptr<FontFamily>>& fontFamilies,
|
||||||
const char* fontsXml,
|
const SkString& basePath,
|
||||||
const char* fallbackFontsXml,
|
+ const SkFontMgr_Android_CustomFonts* custom,
|
||||||
const char* langFallbackFontsDir)
|
const char* fontsXml,
|
||||||
|
const char* fallbackFontsXml,
|
||||||
|
const char* langFallbackFontsDir)
|
||||||
{
|
{
|
||||||
if (fontsXml) {
|
if (fontsXml) {
|
||||||
- parse_config_file(fontsXml, fontFamilies, basePath, false);
|
- parse_config_file(fontsXml, fontFamilies, basePath, false);
|
||||||
@@ -3156,7 +3307,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par
|
|||||||
diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.h b/third_party/skia/src/ports/SkFontMgr_android_parser.h
|
diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.h b/third_party/skia/src/ports/SkFontMgr_android_parser.h
|
||||||
--- a/third_party/skia/src/ports/SkFontMgr_android_parser.h
|
--- a/third_party/skia/src/ports/SkFontMgr_android_parser.h
|
||||||
+++ b/third_party/skia/src/ports/SkFontMgr_android_parser.h
|
+++ b/third_party/skia/src/ports/SkFontMgr_android_parser.h
|
||||||
@@ -15,6 +15,7 @@
|
@@ -17,6 +17,7 @@
|
||||||
#include "include/private/base/SkTArray.h"
|
#include "include/private/base/SkTArray.h"
|
||||||
#include "include/private/base/SkTDArray.h"
|
#include "include/private/base/SkTDArray.h"
|
||||||
#include "src/core/SkTHash.h"
|
#include "src/core/SkTHash.h"
|
||||||
@@ -3164,16 +3315,16 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.h b/third_party
|
|||||||
|
|
||||||
#include <climits>
|
#include <climits>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
@@ -105,11 +106,13 @@ struct FontFamily {
|
@@ -109,11 +110,13 @@ struct FontFamily {
|
||||||
namespace SkFontMgr_Android_Parser {
|
namespace SkFontMgr_Android_Parser {
|
||||||
|
|
||||||
/** Parses system font configuration files and appends result to fontFamilies. */
|
/** Parses system font configuration files and appends result to fontFamilies. */
|
||||||
-void GetSystemFontFamilies(SkTDArray<FontFamily*>& fontFamilies);
|
-void GetSystemFontFamilies(std::vector<std::unique_ptr<FontFamily>>& fontFamilies);
|
||||||
+void GetSystemFontFamilies(SkTDArray<FontFamily*>& fontFamilies,
|
+void GetSystemFontFamilies(std::vector<std::unique_ptr<FontFamily>>& fontFamilies,
|
||||||
+ const SkFontMgr_Android_CustomFonts* custom);
|
+ const SkFontMgr_Android_CustomFonts* custom);
|
||||||
|
|
||||||
/** Parses font configuration files and appends result to fontFamilies. */
|
/** Parses font configuration files and appends result to fontFamilies. */
|
||||||
void GetCustomFontFamilies(SkTDArray<FontFamily*>& fontFamilies,
|
void GetCustomFontFamilies(std::vector<std::unique_ptr<FontFamily>>& fontFamilies,
|
||||||
const SkString& basePath,
|
const SkString& basePath,
|
||||||
+ const SkFontMgr_Android_CustomFonts* custom,
|
+ const SkFontMgr_Android_CustomFonts* custom,
|
||||||
const char* fontsXml,
|
const char* fontsXml,
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
.../java/res/xml/homepage_preferences.xml | 6 +
|
.../java/res/xml/homepage_preferences.xml | 6 +
|
||||||
.../ConnectivityDetector.java | 1 -
|
.../ConnectivityDetector.java | 1 -
|
||||||
.../indicator/OfflineDetector.java | 111 +++++++++++++++++-
|
.../indicator/OfflineDetector.java | 111 +++++++++++++++++-
|
||||||
.../OfflineIndicatorControllerV2.java | 15 ++-
|
.../OfflineIndicatorControllerV2.java | 14 ++-
|
||||||
.../tabbed_mode/TabbedRootUiCoordinator.java | 5 +-
|
.../tabbed_mode/TabbedRootUiCoordinator.java | 5 +-
|
||||||
.../tabmodel/TabModelSelectorBase.java | 7 ++
|
.../tabmodel/TabModelSelectorBase.java | 7 ++
|
||||||
.../sAskForRestartOnConnectionChange.java | 32 +++++
|
.../sAskForRestartOnConnectionChange.java | 32 +++++
|
||||||
@@ -33,10 +33,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
.../tabwindow/TabWindowManagerImpl.java | 10 ++
|
.../tabwindow/TabWindowManagerImpl.java | 10 ++
|
||||||
.../Ask-for-restart-on-connection-change.grdp | 15 +++
|
.../Ask-for-restart-on-connection-change.grdp | 15 +++
|
||||||
.../java/res/layout/floating_snackbar.xml | 10 ++
|
.../java/res/layout/floating_snackbar.xml | 10 ++
|
||||||
.../android/java/res/layout/snackbar.xml | 10 ++
|
|
||||||
.../ui/messages/snackbar/Snackbar.java | 16 +++
|
.../ui/messages/snackbar/Snackbar.java | 16 +++
|
||||||
.../ui/messages/snackbar/SnackbarManager.java | 6 +
|
.../ui/messages/snackbar/SnackbarManager.java | 6 +
|
||||||
.../ui/messages/snackbar/SnackbarView.java | 13 +-
|
.../ui/messages/snackbar/SnackbarView.java | 10 ++
|
||||||
.../web_contents/web_contents_android.cc | 16 +++
|
.../web_contents/web_contents_android.cc | 16 +++
|
||||||
.../web_contents/web_contents_android.h | 1 +
|
.../web_contents/web_contents_android.h | 1 +
|
||||||
.../browser/web_contents/web_contents_impl.cc | 2 +
|
.../browser/web_contents/web_contents_impl.cc | 2 +
|
||||||
@@ -50,7 +49,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
.../blink/renderer/core/frame/local_frame.cc | 2 +
|
.../blink/renderer/core/frame/local_frame.cc | 2 +
|
||||||
.../main_thread/frame_scheduler_impl.cc | 2 +
|
.../main_thread/frame_scheduler_impl.cc | 2 +
|
||||||
.../main_thread/page_scheduler_impl.cc | 9 +-
|
.../main_thread/page_scheduler_impl.cc | 9 +-
|
||||||
30 files changed, 332 insertions(+), 10 deletions(-)
|
29 files changed, 319 insertions(+), 9 deletions(-)
|
||||||
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAskForRestartOnConnectionChange.java
|
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAskForRestartOnConnectionChange.java
|
||||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp
|
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Ask-for-restart-on-connection-change.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Ask-for-restart-on-connection-change.inc
|
||||||
@@ -76,7 +75,7 @@ diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/andro
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector.java b/chrome/android/java/src/org/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector.java b/chrome/android/java/src/org/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector.java
|
||||||
@@ -468,7 +468,6 @@ public class ConnectivityDetector implements NetworkChangeNotifier.ConnectionTyp
|
@@ -470,7 +470,6 @@ public class ConnectivityDetector implements NetworkChangeNotifier.ConnectionTyp
|
||||||
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
|
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
|
||||||
public void setConnectionState(@ConnectionState int connectionState) {
|
public void setConnectionState(@ConnectionState int connectionState) {
|
||||||
Log.i(TAG, "setConnectionState connectionState=" + connectionState);
|
Log.i(TAG, "setConnectionState connectionState=" + connectionState);
|
||||||
@@ -87,7 +86,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/connectivit
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java
|
||||||
@@ -21,16 +21,38 @@ import org.chromium.base.version_info.VersionInfo;
|
@@ -22,10 +22,31 @@ import org.chromium.build.annotations.Nullable;
|
||||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||||
import org.chromium.chrome.browser.net.connectivitydetector.ConnectivityDetector;
|
import org.chromium.chrome.browser.net.connectivitydetector.ConnectivityDetector;
|
||||||
import org.chromium.chrome.browser.net.connectivitydetector.ConnectivityDetector.ConnectionState;
|
import org.chromium.chrome.browser.net.connectivitydetector.ConnectivityDetector.ConnectionState;
|
||||||
@@ -96,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
|
|||||||
import org.chromium.components.variations.VariationsAssociatedData;
|
import org.chromium.components.variations.VariationsAssociatedData;
|
||||||
|
|
||||||
+import android.app.Activity;
|
+import android.app.Activity;
|
||||||
+import org.chromium.base.supplier.ObservableSupplier;
|
+import org.chromium.base.supplier.MonotonicObservableSupplier;
|
||||||
+import org.chromium.url.GURL;
|
+import org.chromium.url.GURL;
|
||||||
+import org.chromium.chrome.R;
|
+import org.chromium.chrome.R;
|
||||||
+import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton;
|
+import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton;
|
||||||
@@ -118,10 +117,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
|
|||||||
+import org.chromium.content_public.browser.WebContents;
|
+import org.chromium.content_public.browser.WebContents;
|
||||||
+import org.chromium.net.NetworkChangeNotifier;
|
+import org.chromium.net.NetworkChangeNotifier;
|
||||||
+
|
+
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class that detects if the network is offline. Waits for the network to stablize before notifying
|
@@ -34,7 +55,8 @@ import java.util.function.Supplier;
|
||||||
* the observer.
|
|
||||||
*/
|
*/
|
||||||
|
@NullMarked
|
||||||
class OfflineDetector
|
class OfflineDetector
|
||||||
- implements ConnectivityDetector.Observer, ApplicationStatus.ApplicationStateListener {
|
- implements ConnectivityDetector.Observer, ApplicationStatus.ApplicationStateListener {
|
||||||
+ implements ConnectivityDetector.Observer, ApplicationStatus.ApplicationStateListener,
|
+ implements ConnectivityDetector.Observer, ApplicationStatus.ApplicationStateListener,
|
||||||
@@ -129,26 +130,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
|
|||||||
// If the connection is online, then we report that immediately via |mIsOfflineCallback|.
|
// If the connection is online, then we report that immediately via |mIsOfflineCallback|.
|
||||||
// |STATUS_INDICATOR_WAIT_ON_OFFLINE_DURATION_MS| and
|
// |STATUS_INDICATOR_WAIT_ON_OFFLINE_DURATION_MS| and
|
||||||
// |mStatusIndicatorWaitOnSwitchOnlineToOfflineDurationMs| control the duration before
|
// |mStatusIndicatorWaitOnSwitchOnlineToOfflineDurationMs| control the duration before
|
||||||
@@ -116,6 +138,11 @@ class OfflineDetector
|
@@ -120,6 +142,11 @@ class OfflineDetector
|
||||||
|
|
||||||
private static final String TAG = "OfflineDetector";
|
private static final String TAG = "OfflineDetector";
|
||||||
|
|
||||||
+ private long mLastNetworkId = 0;
|
+ private long mLastNetworkId = 0;
|
||||||
+ private ObservableSupplier<TabModelSelector> mTabModelSelectorSupplier;
|
+ private MonotonicObservableSupplier<TabModelSelector> mTabModelSelectorSupplier;
|
||||||
+ private ObservableSupplier<LayoutManager> mLayoutManager;
|
+ private MonotonicObservableSupplier<LayoutManager> mLayoutManager;
|
||||||
+ private Supplier<SnackbarManager> mSnackbarManagerSupplier;
|
+ private Supplier<SnackbarManager> mSnackbarManagerSupplier;
|
||||||
+
|
+
|
||||||
/**
|
/**
|
||||||
* Constructs the offline indicator.
|
* Constructs the offline indicator.
|
||||||
* @param isOfflineCallback The {@link Callback} is invoked when the connectivity status is
|
* @param isOfflineCallback The {@link Callback} is invoked when the connectivity status is
|
||||||
@@ -127,7 +154,13 @@ class OfflineDetector
|
@@ -131,7 +158,13 @@ class OfflineDetector
|
||||||
OfflineDetector(
|
OfflineDetector(
|
||||||
Callback<Boolean> isOfflineCallback,
|
Callback<Boolean> isOfflineCallback,
|
||||||
Callback<Boolean> isForegroundCallback,
|
Callback<Boolean> isForegroundCallback,
|
||||||
- Context context) {
|
- Context context) {
|
||||||
+ Context context,
|
+ Context context,
|
||||||
+ ObservableSupplier<TabModelSelector> tabModelSelectorSupplier,
|
+ MonotonicObservableSupplier<TabModelSelector> tabModelSelectorSupplier,
|
||||||
+ ObservableSupplier<LayoutManager> layoutManager,
|
+ MonotonicObservableSupplier<LayoutManager> layoutManager,
|
||||||
+ Supplier<SnackbarManager> snackbarManagerSupplier) {
|
+ Supplier<SnackbarManager> snackbarManagerSupplier) {
|
||||||
+ mTabModelSelectorSupplier = tabModelSelectorSupplier;
|
+ mTabModelSelectorSupplier = tabModelSelectorSupplier;
|
||||||
+ mSnackbarManagerSupplier = snackbarManagerSupplier;
|
+ mSnackbarManagerSupplier = snackbarManagerSupplier;
|
||||||
@@ -156,7 +157,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
|
|||||||
mIsOfflineCallback = isOfflineCallback;
|
mIsOfflineCallback = isOfflineCallback;
|
||||||
mIsForegroundCallback = isForegroundCallback;
|
mIsForegroundCallback = isForegroundCallback;
|
||||||
mContext = context;
|
mContext = context;
|
||||||
@@ -231,6 +264,75 @@ class OfflineDetector
|
@@ -235,6 +268,75 @@ class OfflineDetector
|
||||||
updateState();
|
updateState();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
|
|||||||
+ Snackbar snackbar = Snackbar.make(
|
+ Snackbar snackbar = Snackbar.make(
|
||||||
+ mContext.getString(R.string.ask_to_restart_on_connection_change_restart),
|
+ mContext.getString(R.string.ask_to_restart_on_connection_change_restart),
|
||||||
+ /* snackbarController */ this, Snackbar.TYPE_PERSISTENT, Snackbar.UMA_UNKNOWN)
|
+ /* snackbarController */ this, Snackbar.TYPE_PERSISTENT, Snackbar.UMA_UNKNOWN)
|
||||||
+ .setSingleLine(false)
|
+ .setDefaultLines(false)
|
||||||
+ .setAction(mContext.getString(R.string.relaunch), /*actionData*/0)
|
+ .setAction(mContext.getString(R.string.relaunch), /*actionData*/0)
|
||||||
+ .setDismissAction(mContext.getString(R.string.ask_to_restart_on_connection_change_close_notification), /*actionData*/1);
|
+ .setDismissAction(mContext.getString(R.string.ask_to_restart_on_connection_change_close_notification), /*actionData*/1);
|
||||||
+ SnackbarManager snackbarManager = mSnackbarManagerSupplier.get();
|
+ SnackbarManager snackbarManager = mSnackbarManagerSupplier.get();
|
||||||
@@ -232,7 +233,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
|
|||||||
private void logToAdbConsoleNow(String prefix) {
|
private void logToAdbConsoleNow(String prefix) {
|
||||||
Log.i(
|
Log.i(
|
||||||
TAG,
|
TAG,
|
||||||
@@ -316,6 +418,7 @@ class OfflineDetector
|
@@ -321,6 +423,7 @@ class OfflineDetector
|
||||||
** Calls |mUpdateOfflineStatusIndicatorDelayedRunnable| to update the connection state.
|
** Calls |mUpdateOfflineStatusIndicatorDelayedRunnable| to update the connection state.
|
||||||
*/
|
*/
|
||||||
private void updateState() {
|
private void updateState() {
|
||||||
@@ -243,11 +244,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java
|
||||||
@@ -28,6 +28,11 @@ import org.chromium.content_public.common.ContentSwitches;
|
@@ -32,6 +32,10 @@ import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.Retention;
|
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
+import org.chromium.base.supplier.ObservableSupplierImpl;
|
|
||||||
+import org.chromium.chrome.browser.layouts.LayoutManager;
|
+import org.chromium.chrome.browser.layouts.LayoutManager;
|
||||||
+import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
+import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
||||||
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
|
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
|
||||||
@@ -255,19 +255,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
|
|||||||
/**
|
/**
|
||||||
* Class that controls visibility and content of {@link StatusIndicatorCoordinator} to relay
|
* Class that controls visibility and content of {@link StatusIndicatorCoordinator} to relay
|
||||||
* connectivity information.
|
* connectivity information.
|
||||||
@@ -101,7 +106,10 @@ public class OfflineIndicatorControllerV2 {
|
@@ -105,7 +109,10 @@ public class OfflineIndicatorControllerV2 {
|
||||||
Context context,
|
Context context,
|
||||||
StatusIndicatorCoordinator statusIndicator,
|
StatusIndicatorCoordinator statusIndicator,
|
||||||
ObservableSupplier<Boolean> isUrlBarFocusedSupplier,
|
NonNullObservableSupplier<Boolean> isUrlBarFocusedSupplier,
|
||||||
- Supplier<Boolean> canAnimateNativeBrowserControls) {
|
- Supplier<Boolean> canAnimateNativeBrowserControls) {
|
||||||
+ Supplier<Boolean> canAnimateNativeBrowserControls,
|
+ Supplier<Boolean> canAnimateNativeBrowserControls,
|
||||||
+ ObservableSupplier<TabModelSelector> tabModelSelectorSupplier,
|
+ MonotonicObservableSupplier<TabModelSelector> tabModelSelectorSupplier,
|
||||||
+ ObservableSupplierImpl<LayoutManager> layoutManager,
|
+ MonotonicObservableSupplier<LayoutManager> layoutManager,
|
||||||
+ Supplier<SnackbarManager> snackbarManagerSupplier) {
|
+ Supplier<SnackbarManager> snackbarManagerSupplier) {
|
||||||
if (CommandLine.getInstance()
|
// If "force online connection state" switch is set, the offline indicator should never
|
||||||
.hasSwitch(ContentSwitches.FORCE_ONLINE_CONNECTION_STATE_FOR_INDICATOR)) {
|
// show.
|
||||||
// If "force online connection state" switch is set, the offline indicator should never
|
assert !CommandLine.getInstance()
|
||||||
@@ -129,7 +137,10 @@ public class OfflineIndicatorControllerV2 {
|
@@ -131,7 +138,10 @@ public class OfflineIndicatorControllerV2 {
|
||||||
new OfflineDetector(
|
new OfflineDetector(
|
||||||
(Boolean offline) -> onConnectionStateChanged(offline),
|
(Boolean offline) -> onConnectionStateChanged(offline),
|
||||||
(Boolean isForeground) -> onApplicationStateChanged(isForeground),
|
(Boolean isForeground) -> onApplicationStateChanged(isForeground),
|
||||||
@@ -282,22 +282,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||||
@@ -1373,7 +1373,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
@@ -1693,7 +1693,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||||
mActivity,
|
mActivity,
|
||||||
mStatusIndicatorCoordinator,
|
mStatusIndicatorCoordinator,
|
||||||
isUrlBarFocusedSupplier,
|
isUrlBarFocusedSupplier,
|
||||||
- mCanAnimateBrowserControls);
|
- mCanAnimateBrowserControls);
|
||||||
+ mCanAnimateBrowserControls,
|
+ mCanAnimateBrowserControls,
|
||||||
+ mTabModelSelectorSupplier,
|
+ mTabModelSelectorSupplier,
|
||||||
+ mLayoutManagerSupplier,
|
+ mLayoutManagerSupplier,
|
||||||
+ mSnackbarManagerSupplier);
|
+ mSnackbarManagerSupplier);
|
||||||
if (mToolbarManager.getOmniboxStub() != null) {
|
|
||||||
mToolbarManager.getOmniboxStub().addUrlFocusChangeListener(mUrlFocusChangeListener);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mToolbarManager.getOmniboxStub() != null) {
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
|
||||||
@@ -195,6 +195,13 @@ public abstract class TabModelSelectorBase
|
@@ -207,6 +207,13 @@ public abstract class TabModelSelectorBase
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -309,7 +309,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@Override
|
@Override
|
||||||
public @NonNull TabModel getCurrentModel() {
|
public TabModel getCurrentModel() {
|
||||||
if (mTabModelInternals.size() == 0) return EmptyTabModel.getInstance(false);
|
if (mTabModelInternals.size() == 0) return EmptyTabModel.getInstance(false);
|
||||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAskForRestartOnConnectionChange.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAskForRestartOnConnectionChange.java
|
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAskForRestartOnConnectionChange.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAskForRestartOnConnectionChange.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
@@ -352,8 +352,8 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
|
|||||||
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
|
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
|
||||||
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
|
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
|
||||||
@@ -146,6 +146,8 @@ public interface TabModelSelector {
|
@@ -146,6 +146,8 @@ public interface TabModelSelector {
|
||||||
/** Get total tab count across all tab models */
|
/** Get total pinned tab count across all tab models */
|
||||||
int getTotalTabCount();
|
int getTotalPinnedTabCount();
|
||||||
|
|
||||||
+ void setPagesFrozen(boolean frozen);
|
+ void setPagesFrozen(boolean frozen);
|
||||||
+
|
+
|
||||||
@@ -363,7 +363,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
|
|||||||
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java
|
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java
|
||||||
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java
|
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java
|
||||||
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java
|
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java
|
||||||
@@ -16,12 +16,16 @@ import org.chromium.build.annotations.Nullable;
|
@@ -15,6 +15,7 @@ import org.chromium.build.annotations.Nullable;
|
||||||
import org.chromium.chrome.browser.tab.Tab;
|
import org.chromium.chrome.browser.tab.Tab;
|
||||||
import org.chromium.chrome.browser.tab.TabSelectionType;
|
import org.chromium.chrome.browser.tab.TabSelectionType;
|
||||||
import org.chromium.content_public.browser.WebContents;
|
import org.chromium.content_public.browser.WebContents;
|
||||||
@@ -371,16 +371,17 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
|
|||||||
import org.chromium.ui.base.WindowAndroid;
|
import org.chromium.ui.base.WindowAndroid;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
@@ -22,6 +23,9 @@ import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
import java.util.function.Supplier;
|
||||||
+import java.util.Collections;
|
+import java.util.Collections;
|
||||||
+import java.util.stream.IntStream;
|
+import java.util.stream.IntStream;
|
||||||
+import java.util.stream.Collectors;
|
+import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A set of convenience methods used for interacting with {@link TabList}s and {@link TabModel}s.
|
* A set of convenience methods used for interacting with {@link TabList}s and {@link TabModel}s.
|
||||||
@@ -55,6 +59,20 @@ public class TabModelUtils {
|
@@ -54,6 +58,20 @@ public class TabModelUtils {
|
||||||
return TabModel.INVALID_TAB_INDEX;
|
return TabModel.INVALID_TAB_INDEX;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -404,7 +405,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
|
|||||||
diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
|
diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
|
||||||
--- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
|
--- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
|
||||||
+++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
|
+++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
|
||||||
@@ -138,6 +138,8 @@ public interface TabWindowManager {
|
@@ -154,6 +154,8 @@ public interface TabWindowManager {
|
||||||
/** Returns the total number of incognito tabs across all tab model selectors. */
|
/** Returns the total number of incognito tabs across all tab model selectors. */
|
||||||
int getIncognitoTabCount();
|
int getIncognitoTabCount();
|
||||||
|
|
||||||
@@ -416,14 +417,14 @@ diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/brows
|
|||||||
diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
|
diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
|
||||||
--- a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
|
--- a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
|
||||||
+++ b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
|
+++ b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
|
||||||
@@ -555,6 +555,16 @@ public class TabWindowManagerImpl implements TabWindowManager {
|
@@ -551,6 +551,16 @@ public class TabWindowManagerImpl implements TabWindowManager {
|
||||||
return tabGroupModelFilter.getTabsInGroup(tabGroupId);
|
return tabModelSelector.getModel(isIncognito).getTabsInGroup(tabGroupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public void setPagesFrozen(boolean frozen) {
|
+ public void setPagesFrozen(boolean frozen) {
|
||||||
+ for (int i : mWindowIdToSelectors.keySet()) {
|
+ for (Map.Entry<@WindowId Integer, TabModelSelector> entry : mWindowIdToSelectors.entrySet()) {
|
||||||
+ TabModelSelector selector = mWindowIdToSelectors.get(i);
|
+ TabModelSelector selector = entry.getValue();
|
||||||
+ if (selector != null) {
|
+ if (selector != null) {
|
||||||
+ selector.setPagesFrozen(frozen);
|
+ selector.setPagesFrozen(frozen);
|
||||||
+ }
|
+ }
|
||||||
@@ -472,38 +473,19 @@ diff --git a/chrome/browser/ui/messages/android/java/res/layout/floating_snackba
|
|||||||
+ style="@style/TextButton" />
|
+ style="@style/TextButton" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
diff --git a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml b/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml
|
|
||||||
--- a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml
|
|
||||||
+++ b/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml
|
|
||||||
@@ -82,5 +82,15 @@ found in the LICENSE file.
|
|
||||||
android:paddingEnd="@dimen/snackbar_button_padding"
|
|
||||||
android:paddingStart="@dimen/snackbar_button_padding"
|
|
||||||
style="@style/TextButton" />
|
|
||||||
+
|
|
||||||
+ <org.chromium.ui.widget.ButtonCompat
|
|
||||||
+ android:id="@+id/snackbar_dismiss"
|
|
||||||
+ android:layout_width="wrap_content"
|
|
||||||
+ android:layout_height="wrap_content"
|
|
||||||
+ android:layout_gravity="center_vertical"
|
|
||||||
+ android:paddingEnd="24dp"
|
|
||||||
+ android:paddingStart="24dp"
|
|
||||||
+ android:visibility="gone"
|
|
||||||
+ style="@style/TextButton" />
|
|
||||||
</LinearLayout>
|
|
||||||
</RelativeLayout>
|
|
||||||
diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java
|
diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java
|
||||||
--- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java
|
--- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java
|
||||||
+++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java
|
+++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java
|
||||||
@@ -136,6 +136,8 @@ public class Snackbar {
|
@@ -149,6 +149,8 @@ public class Snackbar {
|
||||||
private @Nullable String mTemplateText;
|
private @Nullable String mTemplateText;
|
||||||
private @Nullable String mActionText;
|
private @Nullable String mActionText;
|
||||||
private @Nullable Object mActionData;
|
private @Nullable Object mActionData;
|
||||||
+ private String mDismissActionText;
|
+ private String mDismissActionText;
|
||||||
+ private Object mDismissActionData;
|
+ private Object mDismissActionData;
|
||||||
private int mBackgroundColor;
|
private int mBackgroundColor;
|
||||||
private int mTextApperanceResId;
|
private int mTextAppearanceResId;
|
||||||
private boolean mSingleLine = true;
|
private boolean mDefaultLines = true;
|
||||||
@@ -241,6 +243,20 @@ public class Snackbar {
|
@@ -255,6 +257,20 @@ public class Snackbar {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -527,7 +509,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro
|
|||||||
diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java
|
diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java
|
||||||
--- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java
|
--- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java
|
||||||
+++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java
|
+++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java
|
||||||
@@ -326,6 +326,12 @@ public class SnackbarManager
|
@@ -464,6 +464,12 @@ public class SnackbarManager
|
||||||
new SnackbarView(
|
new SnackbarView(
|
||||||
mActivity,
|
mActivity,
|
||||||
this,
|
this,
|
||||||
@@ -543,46 +525,32 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro
|
|||||||
diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java
|
diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java
|
||||||
--- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java
|
--- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java
|
||||||
+++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java
|
+++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java
|
||||||
@@ -55,6 +55,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
|
@@ -57,6 +57,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
|
||||||
protected final ViewGroup mSnackbarView;
|
protected final ViewGroup mSnackbarView;
|
||||||
protected final TemplatePreservingTextView mMessageView;
|
protected final TemplatePreservingTextView mMessageView;
|
||||||
private final TextView mActionButtonView;
|
private final TextView mActionButtonView;
|
||||||
+ private final TextView mDismissButtonView;
|
+ private final TextView mDismissButtonView;
|
||||||
private final ImageView mProfileImageView;
|
private final ImageView mProfileImageView;
|
||||||
private final int mAnimationDuration;
|
private final int mAnimationDuration;
|
||||||
private final boolean mIsTablet;
|
private final ViewGroup mOriginalParent;
|
||||||
@@ -101,11 +102,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
|
@@ -110,6 +111,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
|
||||||
public SnackbarView(
|
public SnackbarView(
|
||||||
Activity activity,
|
Activity activity,
|
||||||
OnClickListener listener,
|
SnackbarManager manager,
|
||||||
+ OnClickListener dismissListener,
|
+ OnClickListener dismissListener,
|
||||||
Snackbar snackbar,
|
Snackbar snackbar,
|
||||||
ViewGroup parentView,
|
ViewGroup parentView,
|
||||||
@Nullable WindowAndroid windowAndroid,
|
@Nullable WindowAndroid windowAndroid,
|
||||||
boolean isTablet) {
|
@@ -171,6 +173,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
|
||||||
- this(activity, listener, snackbar, parentView, windowAndroid, null, isTablet);
|
|
||||||
+ this(activity, listener, dismissListener, snackbar, parentView, windowAndroid, null, isTablet);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
@@ -124,6 +126,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
|
|
||||||
public SnackbarView(
|
|
||||||
Activity activity,
|
|
||||||
OnClickListener listener,
|
|
||||||
+ OnClickListener dismissListener,
|
|
||||||
Snackbar snackbar,
|
|
||||||
ViewGroup parentView,
|
|
||||||
@Nullable WindowAndroid windowAndroid,
|
|
||||||
@@ -154,6 +157,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
|
|
||||||
(TemplatePreservingTextView) mContainerView.findViewById(R.id.snackbar_message);
|
(TemplatePreservingTextView) mContainerView.findViewById(R.id.snackbar_message);
|
||||||
mActionButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_button);
|
mActionButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_button);
|
||||||
mActionButtonView.setOnClickListener(listener);
|
mActionButtonView.setOnClickListener(manager);
|
||||||
+ mDismissButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_dismiss);
|
+ mDismissButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_dismiss);
|
||||||
+ mDismissButtonView.setOnClickListener(dismissListener);
|
+ mDismissButtonView.setOnClickListener(dismissListener);
|
||||||
mProfileImageView = (ImageView) mContainerView.findViewById(R.id.snackbar_profile_image);
|
mProfileImageView = (ImageView) mContainerView.findViewById(R.id.snackbar_profile_image);
|
||||||
mEdgeToEdgeSupplier = edgeToEdgeSupplier;
|
// Add bottom margin to extend the snackbar view into the bottom window inset. This
|
||||||
if (SnackbarManager.isFloatingSnackbarEnabled()) {
|
// margin has to be applied to the snackbar view itself to avoid weird visual clipping
|
||||||
@@ -428,6 +433,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
|
@@ -434,6 +438,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
|
||||||
mActionButtonView.setVisibility(View.VISIBLE);
|
mActionButtonView.setVisibility(View.VISIBLE);
|
||||||
mActionButtonView.setContentDescription(snackbar.getActionText());
|
mActionButtonView.setContentDescription(snackbar.getActionText());
|
||||||
setViewText(mActionButtonView, snackbar.getActionText(), animate);
|
setViewText(mActionButtonView, snackbar.getActionText(), animate);
|
||||||
@@ -598,7 +566,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro
|
|||||||
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
|
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
|
||||||
--- a/content/browser/web_contents/web_contents_android.cc
|
--- a/content/browser/web_contents/web_contents_android.cc
|
||||||
+++ b/content/browser/web_contents/web_contents_android.cc
|
+++ b/content/browser/web_contents/web_contents_android.cc
|
||||||
@@ -899,6 +899,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) {
|
@@ -903,6 +903,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, bool focused) {
|
||||||
view->SetFocus(focused);
|
view->SetFocus(focused);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -624,10 +592,10 @@ diff --git a/content/browser/web_contents/web_contents_android.cc b/content/brow
|
|||||||
diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h
|
diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h
|
||||||
--- a/content/browser/web_contents/web_contents_android.h
|
--- a/content/browser/web_contents/web_contents_android.h
|
||||||
+++ b/content/browser/web_contents/web_contents_android.h
|
+++ b/content/browser/web_contents/web_contents_android.h
|
||||||
@@ -194,6 +194,7 @@ class CONTENT_EXPORT WebContentsAndroid {
|
@@ -199,6 +199,7 @@ class CONTENT_EXPORT WebContentsAndroid {
|
||||||
|
|
||||||
void OnScaleFactorChanged(JNIEnv* env);
|
void OnScaleFactorChanged(JNIEnv* env);
|
||||||
void SetFocus(JNIEnv* env, jboolean focused);
|
void SetFocus(JNIEnv* env, bool focused);
|
||||||
+ void SetPageFrozen(JNIEnv* env, jboolean frozen);
|
+ void SetPageFrozen(JNIEnv* env, jboolean frozen);
|
||||||
bool IsBeingDestroyed(JNIEnv* env);
|
bool IsBeingDestroyed(JNIEnv* env);
|
||||||
|
|
||||||
@@ -635,7 +603,7 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows
|
|||||||
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
||||||
--- a/content/browser/web_contents/web_contents_impl.cc
|
--- a/content/browser/web_contents/web_contents_impl.cc
|
||||||
+++ b/content/browser/web_contents/web_contents_impl.cc
|
+++ b/content/browser/web_contents/web_contents_impl.cc
|
||||||
@@ -3991,8 +3991,10 @@ void WebContentsImpl::Stop() {
|
@@ -4217,8 +4217,10 @@ void WebContentsImpl::Stop() {
|
||||||
void WebContentsImpl::SetPageFrozen(bool frozen) {
|
void WebContentsImpl::SetPageFrozen(bool frozen) {
|
||||||
TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen);
|
TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen);
|
||||||
|
|
||||||
@@ -649,7 +617,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser
|
|||||||
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
|
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
|
||||||
--- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
|
--- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
|
||||||
+++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
|
+++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
|
||||||
@@ -1130,6 +1130,12 @@ public class WebContentsImpl
|
@@ -1171,6 +1171,12 @@ public class WebContentsImpl
|
||||||
WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus);
|
WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -662,7 +630,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon
|
|||||||
@Override
|
@Override
|
||||||
public void setDisplayCutoutSafeArea(Rect insets) {
|
public void setDisplayCutoutSafeArea(Rect insets) {
|
||||||
if (mNativeWebContentsAndroid == 0) return;
|
if (mNativeWebContentsAndroid == 0) return;
|
||||||
@@ -1450,6 +1456,8 @@ public class WebContentsImpl
|
@@ -1519,6 +1525,8 @@ public class WebContentsImpl
|
||||||
|
|
||||||
void setFocus(long nativeWebContentsAndroid, boolean focused);
|
void setFocus(long nativeWebContentsAndroid, boolean focused);
|
||||||
|
|
||||||
@@ -674,7 +642,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon
|
|||||||
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
|
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
|
||||||
--- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
|
--- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
|
||||||
+++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
|
+++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
|
||||||
@@ -283,6 +283,8 @@ public interface WebContents extends Parcelable {
|
@@ -297,6 +297,8 @@ public interface WebContents extends Parcelable {
|
||||||
*/
|
*/
|
||||||
void setFocus(boolean hasFocus);
|
void setFocus(boolean hasFocus);
|
||||||
|
|
||||||
@@ -686,7 +654,7 @@ diff --git a/content/public/android/java/src/org/chromium/content_public/browser
|
|||||||
diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
|
diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
|
||||||
--- a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
|
--- a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
|
||||||
+++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
|
+++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
|
||||||
@@ -188,6 +188,9 @@ public class MockWebContents implements WebContents, WebContentsObserver.Observa
|
@@ -191,6 +191,9 @@ public class MockWebContents implements WebContents, WebContentsObserver.Observa
|
||||||
@Override
|
@Override
|
||||||
public void setFocus(boolean hasFocus) {}
|
public void setFocus(boolean hasFocus) {}
|
||||||
|
|
||||||
@@ -731,7 +699,7 @@ new file mode 100644
|
|||||||
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
|
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
|
||||||
--- a/third_party/blink/renderer/core/dom/document.cc
|
--- a/third_party/blink/renderer/core/dom/document.cc
|
||||||
+++ b/third_party/blink/renderer/core/dom/document.cc
|
+++ b/third_party/blink/renderer/core/dom/document.cc
|
||||||
@@ -4387,6 +4387,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) {
|
@@ -4626,6 +4626,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Document::DispatchFreezeEvent() {
|
void Document::DispatchFreezeEvent() {
|
||||||
@@ -742,7 +710,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||||||
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
|
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||||
--- a/third_party/blink/renderer/core/frame/local_frame.cc
|
--- a/third_party/blink/renderer/core/frame/local_frame.cc
|
||||||
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
|
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||||
@@ -3178,6 +3178,7 @@ void LocalFrame::DidFreeze() {
|
@@ -3325,6 +3325,7 @@ void LocalFrame::DidFreeze() {
|
||||||
LoaderFreezeMode freeze_mode = GetLoaderFreezeMode();
|
LoaderFreezeMode freeze_mode = GetLoaderFreezeMode();
|
||||||
GetDocument()->Fetcher()->SetDefersLoading(freeze_mode);
|
GetDocument()->Fetcher()->SetDefersLoading(freeze_mode);
|
||||||
Loader().SetDefersLoading(freeze_mode);
|
Loader().SetDefersLoading(freeze_mode);
|
||||||
@@ -750,7 +718,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
|
|||||||
}
|
}
|
||||||
|
|
||||||
void LocalFrame::DidResume() {
|
void LocalFrame::DidResume() {
|
||||||
@@ -3192,6 +3193,7 @@ void LocalFrame::DidResume() {
|
@@ -3339,6 +3340,7 @@ void LocalFrame::DidResume() {
|
||||||
GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone);
|
GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone);
|
||||||
Loader().SetDefersLoading(LoaderFreezeMode::kNone);
|
Loader().SetDefersLoading(LoaderFreezeMode::kNone);
|
||||||
|
|
||||||
@@ -761,7 +729,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
|
|||||||
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
|
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
|
||||||
--- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
|
--- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
|
||||||
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
|
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
|
||||||
@@ -998,7 +998,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState(
|
@@ -1022,7 +1022,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState(
|
||||||
if (!parent_page_scheduler_)
|
if (!parent_page_scheduler_)
|
||||||
return SchedulingLifecycleState::kNotThrottled;
|
return SchedulingLifecycleState::kNotThrottled;
|
||||||
if (parent_page_scheduler_->IsFrozen()) {
|
if (parent_page_scheduler_->IsFrozen()) {
|
||||||
@@ -774,7 +742,7 @@ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_sch
|
|||||||
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
|
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
|
||||||
--- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
|
--- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
|
||||||
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
|
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
|
||||||
@@ -238,10 +238,12 @@ void PageSchedulerImpl::SetPageFrozen(bool frozen) {
|
@@ -235,10 +235,12 @@ void PageSchedulerImpl::SetPageFrozen(bool frozen) {
|
||||||
// it is desirable to reject the page freeze to prevent the scheduler from
|
// it is desirable to reject the page freeze to prevent the scheduler from
|
||||||
// being put in a bad state. See https://crbug.com/873214 for context of how
|
// being put in a bad state. See https://crbug.com/873214 for context of how
|
||||||
// this can happen on the browser side.
|
// this can happen on the browser side.
|
||||||
@@ -787,7 +755,7 @@ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_sche
|
|||||||
PolicyUpdater policy_updater;
|
PolicyUpdater policy_updater;
|
||||||
SetPageFrozenImpl(frozen, policy_updater);
|
SetPageFrozenImpl(frozen, policy_updater);
|
||||||
}
|
}
|
||||||
@@ -801,7 +803,12 @@ bool PageSchedulerImpl::IsBackgrounded() const {
|
@@ -803,7 +805,12 @@ bool PageSchedulerImpl::IsBackgrounded() const {
|
||||||
// expire immediately when a page is backgrounded, which is undesirable in
|
// expire immediately when a page is backgrounded, which is undesirable in
|
||||||
// headless mode. To prevent that, a page is never considerer backgrounded
|
// headless mode. To prevent that, a page is never considerer backgrounded
|
||||||
// when virtual time is enabled.
|
// when virtual time is enabled.
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
.../modules/webaudio/base_audio_context.cc | 12 ++++++++++++
|
.../modules/webaudio/base_audio_context.cc | 12 ++++++++++++
|
||||||
.../renderer/modules/webaudio/base_audio_context.h | 2 ++
|
.../renderer/modules/webaudio/base_audio_context.h | 2 ++
|
||||||
.../modules/webaudio/offline_audio_context.cc | 1 +
|
.../modules/webaudio/offline_audio_context.cc | 1 +
|
||||||
.../renderer/modules/webaudio/realtime_analyser.cc | 7 +++++++
|
.../renderer/modules/webaudio/realtime_analyser.cc | 13 ++++++++++---
|
||||||
.../platform/runtime_enabled_features.json5 | 5 ++---
|
.../platform/runtime_enabled_features.json5 | 5 ++---
|
||||||
11 files changed, 56 insertions(+), 4 deletions(-)
|
11 files changed, 59 insertions(+), 7 deletions(-)
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/AudioBuffer-AnalyserNode-fp-mitigations.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/AudioBuffer-AnalyserNode-fp-mitigations.inc
|
||||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/AudioBuffer-AnalyserNode-fp-mitigations.inc
|
create mode 100644 cromite_flags/third_party/blink/common/features_cc/AudioBuffer-AnalyserNode-fp-mitigations.inc
|
||||||
create mode 100644 cromite_flags/third_party/blink/common/features_h/AudioBuffer-AnalyserNode-fp-mitigations.inc
|
create mode 100644 cromite_flags/third_party/blink/common/features_h/AudioBuffer-AnalyserNode-fp-mitigations.inc
|
||||||
@@ -52,7 +52,7 @@ new file mode 100644
|
|||||||
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
|
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
|
||||||
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
|
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
|
||||||
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
|
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
|
||||||
@@ -199,6 +199,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus)
|
@@ -197,6 +197,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third
|
|||||||
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_party/blink/renderer/modules/webaudio/audio_buffer.h
|
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_party/blink/renderer/modules/webaudio/audio_buffer.h
|
||||||
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.h
|
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.h
|
||||||
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.h
|
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.h
|
||||||
@@ -116,6 +116,8 @@ class MODULES_EXPORT AudioBuffer final : public ScriptWrappable {
|
@@ -115,6 +115,8 @@ class MODULES_EXPORT AudioBuffer final : public ScriptWrappable {
|
||||||
|
|
||||||
std::unique_ptr<SharedAudioBuffer> CreateSharedAudioBuffer();
|
std::unique_ptr<SharedAudioBuffer> CreateSharedAudioBuffer();
|
||||||
|
|
||||||
@@ -88,15 +88,15 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_
|
|||||||
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc
|
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc
|
||||||
--- a/third_party/blink/renderer/modules/webaudio/audio_context.cc
|
--- a/third_party/blink/renderer/modules/webaudio/audio_context.cc
|
||||||
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
|
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
|
||||||
@@ -15,6 +15,7 @@
|
@@ -22,6 +22,7 @@
|
||||||
#include "third_party/blink/public/common/features.h"
|
|
||||||
#include "third_party/blink/public/common/mediastream/media_devices.h"
|
#include "third_party/blink/public/common/mediastream/media_devices.h"
|
||||||
|
#include "third_party/blink/public/mojom/permissions/permission_status.mojom-blink.h"
|
||||||
#include "third_party/blink/public/platform/browser_interface_broker_proxy.h"
|
#include "third_party/blink/public/platform/browser_interface_broker_proxy.h"
|
||||||
+#include "third_party/blink/public/common/features.h"
|
+#include "third_party/blink/public/common/features.h"
|
||||||
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
|
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
|
||||||
#include "third_party/blink/public/platform/web_audio_latency_hint.h"
|
#include "third_party/blink/public/platform/web_audio_latency_hint.h"
|
||||||
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
|
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
|
||||||
@@ -660,7 +661,9 @@ double AudioContext::baseLatency() const {
|
@@ -1138,7 +1139,9 @@ double AudioContext::baseLatency() const {
|
||||||
DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_);
|
DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_);
|
||||||
DCHECK(destination());
|
DCHECK(destination());
|
||||||
|
|
||||||
@@ -110,15 +110,15 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir
|
|||||||
diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
|
diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
|
||||||
--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
|
--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
|
||||||
+++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
|
+++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
|
||||||
@@ -29,6 +29,7 @@
|
@@ -28,6 +28,7 @@
|
||||||
|
|
||||||
#include "base/metrics/histogram_functions.h"
|
#include "base/metrics/histogram_functions.h"
|
||||||
#include "build/build_config.h"
|
#include "build/build_config.h"
|
||||||
|
#include "media/base/audio_bus.h"
|
||||||
+#include "third_party/blink/public/common/features.h"
|
+#include "third_party/blink/public/common/features.h"
|
||||||
#include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h"
|
#include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h"
|
||||||
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h"
|
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h"
|
||||||
#include "third_party/blink/public/platform/platform.h"
|
#include "third_party/blink/public/platform/platform.h"
|
||||||
@@ -715,6 +716,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const {
|
@@ -775,6 +776,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const {
|
||||||
return To<LocalDOMWindow>(GetExecutionContext());
|
return To<LocalDOMWindow>(GetExecutionContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b
|
|||||||
diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/third_party/blink/renderer/modules/webaudio/base_audio_context.h
|
diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/third_party/blink/renderer/modules/webaudio/base_audio_context.h
|
||||||
--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.h
|
--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.h
|
||||||
+++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.h
|
+++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.h
|
||||||
@@ -327,6 +327,8 @@ class MODULES_EXPORT BaseAudioContext
|
@@ -331,6 +331,8 @@ class MODULES_EXPORT BaseAudioContext
|
||||||
// if the execution context does not exist.
|
// if the execution context does not exist.
|
||||||
bool CheckExecutionContextAndThrowIfNecessary(ExceptionState&);
|
bool CheckExecutionContextAndThrowIfNecessary(ExceptionState&);
|
||||||
|
|
||||||
@@ -151,7 +151,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/
|
|||||||
diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
|
diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
|
||||||
--- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
|
--- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
|
||||||
+++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
|
+++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
|
||||||
@@ -372,6 +372,7 @@ void OfflineAudioContext::FireCompletionEvent() {
|
@@ -418,6 +418,7 @@ void OfflineAudioContext::FireCompletionEvent() {
|
||||||
if (!rendered_buffer) {
|
if (!rendered_buffer) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -162,33 +162,30 @@ diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.c
|
|||||||
diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
|
diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
|
||||||
--- a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
|
--- a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
|
||||||
+++ b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
|
+++ b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
|
||||||
@@ -36,6 +36,7 @@
|
@@ -33,6 +33,7 @@
|
||||||
#include <bit>
|
|
||||||
#include <complex>
|
|
||||||
|
|
||||||
|
#include "base/compiler_specific.h"
|
||||||
|
#include "media/base/audio_bus.h"
|
||||||
+#include "third_party/blink/renderer/modules/webaudio/base_audio_context.h"
|
+#include "third_party/blink/renderer/modules/webaudio/base_audio_context.h"
|
||||||
#include "third_party/blink/renderer/platform/audio/audio_bus.h"
|
#include "third_party/blink/renderer/platform/audio/audio_bus.h"
|
||||||
#include "third_party/blink/renderer/platform/audio/audio_utilities.h"
|
#include "third_party/blink/renderer/platform/audio/audio_utilities.h"
|
||||||
#include "third_party/blink/renderer/platform/audio/vector_math.h"
|
#include "third_party/blink/renderer/platform/audio/vector_math.h"
|
||||||
@@ -160,6 +161,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData(
|
@@ -117,7 +118,8 @@ void RealtimeAnalyser::GetFloatFrequencyData(DOMFloat32Array* destination_array,
|
||||||
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
|
for (unsigned i = 0; i < len; ++i) {
|
||||||
kInputBufferSize];
|
const float linear_value = magnitude_buffer_[i];
|
||||||
|
const double db_mag = audio_utilities::LinearToDecibels(linear_value);
|
||||||
+ value = BaseAudioContext::ShuffleAudioData(value, i);
|
- destination[i] = static_cast<float>(db_mag);
|
||||||
destination[i] = value;
|
+ auto v = static_cast<float>(db_mag);
|
||||||
|
+ destination[i] = BaseAudioContext::ShuffleAudioData(v, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -187,6 +189,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
|
}
|
||||||
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
|
@@ -153,9 +155,11 @@ void RealtimeAnalyser::GetByteFrequencyData(DOMUint8Array* destination_array,
|
||||||
kInputBufferSize];
|
|
||||||
|
|
||||||
+ value = BaseAudioContext::ShuffleAudioData(value, i);
|
// The range m_minDecibels to m_maxDecibels will be scaled to byte values
|
||||||
+
|
// from 0 to UCHAR_MAX.
|
||||||
// Scale from nominal -1 -> +1 to unsigned byte.
|
- const double scaled_value =
|
||||||
double scaled_value = 128 * (value + 1);
|
+ double scaled_value =
|
||||||
|
|
||||||
@@ -306,6 +310,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) {
|
|
||||||
double scaled_value =
|
|
||||||
UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor;
|
UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor;
|
||||||
|
|
||||||
+ scaled_value = BaseAudioContext::ShuffleAudioData(scaled_value, i);
|
+ scaled_value = BaseAudioContext::ShuffleAudioData(scaled_value, i);
|
||||||
@@ -196,18 +193,32 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
|
|||||||
// Clip to valid range.
|
// Clip to valid range.
|
||||||
destination[i] =
|
destination[i] =
|
||||||
static_cast<unsigned char>(ClampTo(scaled_value, 0, UCHAR_MAX));
|
static_cast<unsigned char>(ClampTo(scaled_value, 0, UCHAR_MAX));
|
||||||
@@ -325,6 +331,7 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) {
|
@@ -184,6 +188,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData(
|
||||||
float linear_value = source[i];
|
input_buffer_[(i + write_index - fft_size + kInputBufferSize) %
|
||||||
double db_mag = audio_utilities::LinearToDecibels(linear_value);
|
kInputBufferSize];
|
||||||
destination[i] = static_cast<float>(db_mag);
|
|
||||||
+ destination[i] = BaseAudioContext::ShuffleAudioData(destination[i], i);
|
+ value = BaseAudioContext::ShuffleAudioData(value, i);
|
||||||
|
destination[i] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
@@ -205,10 +210,12 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
|
||||||
|
base::span<unsigned char> destination = destination_array->AsSpan();
|
||||||
|
for (unsigned i = 0; i < len; ++i) {
|
||||||
|
// Buffer access is protected due to modulo operation.
|
||||||
|
- const float value =
|
||||||
|
+ float value =
|
||||||
|
input_buffer_[(i + write_index - fft_size + kInputBufferSize) %
|
||||||
|
kInputBufferSize];
|
||||||
|
|
||||||
|
+ value = BaseAudioContext::ShuffleAudioData(value, i);
|
||||||
|
+
|
||||||
|
// Scale from nominal -1 -> +1 to unsigned byte.
|
||||||
|
const double scaled_value = 128 * (value + 1);
|
||||||
|
|
||||||
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
@@ -562,9 +562,8 @@
|
@@ -719,9 +719,8 @@
|
||||||
{
|
{
|
||||||
// AudioContext.playoutStats interface.
|
// AudioContext.playoutStats interface.
|
||||||
// https://chromestatus.com/feature/5172818344148992
|
// https://chromestatus.com/feature/5172818344148992
|
||||||
|
|||||||
@@ -7,49 +7,23 @@ This approach is not comprehensive, see also:
|
|||||||
|
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
.../execution_context/execution_context.cc | 15 +++++++++
|
|
||||||
.../execution_context/execution_context.h | 1 +
|
.../execution_context/execution_context.h | 1 +
|
||||||
.../renderer/core/loader/base_fetch_context.h | 1 +
|
.../renderer/core/loader/base_fetch_context.h | 1 +
|
||||||
.../core/loader/frame_fetch_context.cc | 20 ++++++++++++
|
.../core/loader/frame_fetch_context.cc | 20 ++++++++++++
|
||||||
.../core/loader/frame_fetch_context.h | 1 +
|
.../core/loader/frame_fetch_context.h | 1 +
|
||||||
.../core/loader/worker_fetch_context.cc | 21 +++++++++++++
|
.../core/loader/worker_fetch_context.cc | 21 +++++++++++++
|
||||||
.../core/loader/worker_fetch_context.h | 1 +
|
.../core/loader/worker_fetch_context.h | 1 +
|
||||||
.../core/workers/installed_scripts_manager.cc | 4 +--
|
.../core/workers/installed_scripts_manager.cc | 2 +-
|
||||||
.../background_fetch_manager.cc | 31 +++++++++++++++++++
|
.../background_fetch_manager.cc | 31 +++++++++++++++++++
|
||||||
.../websockets/websocket_channel_impl.cc | 5 +++
|
.../websockets/websocket_channel_impl.cc | 5 +++
|
||||||
.../modules/websockets/websocket_common.cc | 30 ++++++++++++++++++
|
.../modules/websockets/websocket_common.cc | 30 ++++++++++++++++++
|
||||||
.../modules/websockets/websocket_common.h | 4 +++
|
.../modules/websockets/websocket_common.h | 4 +++
|
||||||
12 files changed, 132 insertions(+), 2 deletions(-)
|
11 files changed, 116 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc
|
|
||||||
--- a/third_party/blink/renderer/core/execution_context/execution_context.cc
|
|
||||||
+++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
|
|
||||||
@@ -713,6 +713,21 @@ void ExecutionContext::WriteIntoTrace(
|
|
||||||
proto->set_world_type(GetWorldType(*this));
|
|
||||||
}
|
|
||||||
|
|
||||||
+String ExecutionContext::addressSpaceForBindings() const {
|
|
||||||
+ switch (AddressSpace()) {
|
|
||||||
+ case network::mojom::IPAddressSpace::kPublic:
|
|
||||||
+ case network::mojom::IPAddressSpace::kUnknown:
|
|
||||||
+ return "public";
|
|
||||||
+
|
|
||||||
+ case network::mojom::IPAddressSpace::kPrivate:
|
|
||||||
+ return "private";
|
|
||||||
+
|
|
||||||
+ case network::mojom::IPAddressSpace::kLocal:
|
|
||||||
+ return "local";
|
|
||||||
+ }
|
|
||||||
+ NOTREACHED();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
bool ExecutionContext::CrossOriginIsolatedCapabilityOrDisabledWebSecurity()
|
|
||||||
const {
|
|
||||||
return Agent::IsWebSecurityDisabled() || CrossOriginIsolatedCapability();
|
|
||||||
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
|
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
|
||||||
--- a/third_party/blink/renderer/core/execution_context/execution_context.h
|
--- a/third_party/blink/renderer/core/execution_context/execution_context.h
|
||||||
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h
|
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h
|
||||||
@@ -396,6 +396,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable<ExecutionContext>,
|
@@ -388,6 +388,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable<ExecutionContext>,
|
||||||
void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space);
|
void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space);
|
||||||
|
|
||||||
HeapObserverList<ContextLifecycleObserver>& ContextLifecycleObserverSet();
|
HeapObserverList<ContextLifecycleObserver>& ContextLifecycleObserverSet();
|
||||||
@@ -71,7 +45,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third
|
|||||||
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||||
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||||
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||||
@@ -1033,6 +1033,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
|
@@ -1134,6 +1134,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
|
||||||
return should_block_request;
|
return should_block_request;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,7 +58,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
|
|||||||
+ network::mojom::IPAddressSpace target_space =
|
+ network::mojom::IPAddressSpace target_space =
|
||||||
+ network::mojom::IPAddressSpace::kPublic;
|
+ network::mojom::IPAddressSpace::kPublic;
|
||||||
+ if (network_utils::IsReservedIPAddress(request_url.Host()))
|
+ if (network_utils::IsReservedIPAddress(request_url.Host()))
|
||||||
+ target_space = network::mojom::IPAddressSpace::kPrivate;
|
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||||
+ if (SecurityOrigin::Create(request_url)->IsLocalhost())
|
+ if (SecurityOrigin::Create(request_url)->IsLocalhost())
|
||||||
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||||
+
|
+
|
||||||
@@ -101,7 +75,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
|
|||||||
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h
|
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h
|
||||||
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.h
|
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.h
|
||||||
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h
|
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h
|
||||||
@@ -184,6 +184,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
|
@@ -197,6 +197,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
|
||||||
bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override;
|
bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override;
|
||||||
std::unique_ptr<WebSocketHandshakeThrottle> CreateWebSocketHandshakeThrottle()
|
std::unique_ptr<WebSocketHandshakeThrottle> CreateWebSocketHandshakeThrottle()
|
||||||
override;
|
override;
|
||||||
@@ -133,7 +107,7 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th
|
|||||||
+ network::mojom::IPAddressSpace target_space =
|
+ network::mojom::IPAddressSpace target_space =
|
||||||
+ network::mojom::IPAddressSpace::kPublic;
|
+ network::mojom::IPAddressSpace::kPublic;
|
||||||
+ if (network_utils::IsReservedIPAddress(request_url.Host()))
|
+ if (network_utils::IsReservedIPAddress(request_url.Host()))
|
||||||
+ target_space = network::mojom::IPAddressSpace::kPrivate;
|
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||||
+ if (SecurityOrigin::Create(request_url)->IsLocalhost())
|
+ if (SecurityOrigin::Create(request_url)->IsLocalhost())
|
||||||
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||||
+
|
+
|
||||||
@@ -161,12 +135,9 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.h b/thi
|
|||||||
diff --git a/third_party/blink/renderer/core/workers/installed_scripts_manager.cc b/third_party/blink/renderer/core/workers/installed_scripts_manager.cc
|
diff --git a/third_party/blink/renderer/core/workers/installed_scripts_manager.cc b/third_party/blink/renderer/core/workers/installed_scripts_manager.cc
|
||||||
--- a/third_party/blink/renderer/core/workers/installed_scripts_manager.cc
|
--- a/third_party/blink/renderer/core/workers/installed_scripts_manager.cc
|
||||||
+++ b/third_party/blink/renderer/core/workers/installed_scripts_manager.cc
|
+++ b/third_party/blink/renderer/core/workers/installed_scripts_manager.cc
|
||||||
@@ -33,9 +33,9 @@ InstalledScriptsManager::ScriptData::ScriptData(
|
@@ -35,7 +35,7 @@ InstalledScriptsManager::ScriptData::ScriptData(
|
||||||
// place so that this is shareable out of worker code.
|
|
||||||
response_address_space_ = network::mojom::IPAddressSpace::kPublic;
|
|
||||||
if (network_utils::IsReservedIPAddress(script_url_.Host()))
|
if (network_utils::IsReservedIPAddress(script_url_.Host()))
|
||||||
- response_address_space_ = network::mojom::IPAddressSpace::kLocal;
|
response_address_space_ = network::mojom::IPAddressSpace::kLocal;
|
||||||
+ response_address_space_ = network::mojom::IPAddressSpace::kPrivate;
|
|
||||||
if (SecurityOrigin::Create(script_url_)->IsLocalhost())
|
if (SecurityOrigin::Create(script_url_)->IsLocalhost())
|
||||||
- response_address_space_ = network::mojom::IPAddressSpace::kLoopback;
|
- response_address_space_ = network::mojom::IPAddressSpace::kLoopback;
|
||||||
+ response_address_space_ = network::mojom::IPAddressSpace::kLocal;
|
+ response_address_space_ = network::mojom::IPAddressSpace::kLocal;
|
||||||
@@ -176,8 +147,8 @@ diff --git a/third_party/blink/renderer/core/workers/installed_scripts_manager.c
|
|||||||
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
|
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
|
||||||
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
|
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
|
||||||
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
|
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
|
||||||
@@ -103,6 +103,30 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) {
|
@@ -104,6 +104,30 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) {
|
||||||
request_url.ProtocolIsInHTTPFamily();
|
request_url.ProtocolIsInHttpFamily();
|
||||||
}
|
}
|
||||||
|
|
||||||
+bool ShouldBlockGateWayAttacks(ExecutionContext* execution_context,
|
+bool ShouldBlockGateWayAttacks(ExecutionContext* execution_context,
|
||||||
@@ -193,7 +164,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
|
|||||||
+ network::mojom::IPAddressSpace target_space =
|
+ network::mojom::IPAddressSpace target_space =
|
||||||
+ network::mojom::IPAddressSpace::kPublic;
|
+ network::mojom::IPAddressSpace::kPublic;
|
||||||
+ if (network_utils::IsReservedIPAddress(request_url.Host()))
|
+ if (network_utils::IsReservedIPAddress(request_url.Host()))
|
||||||
+ target_space = network::mojom::IPAddressSpace::kPrivate;
|
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||||
+ if (SecurityOrigin::Create(request_url)->IsLocalhost())
|
+ if (SecurityOrigin::Create(request_url)->IsLocalhost())
|
||||||
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||||
+
|
+
|
||||||
@@ -207,7 +178,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
|
|||||||
scoped_refptr<BlobDataHandle> ExtractBlobHandle(
|
scoped_refptr<BlobDataHandle> ExtractBlobHandle(
|
||||||
Request* request,
|
Request* request,
|
||||||
ExceptionState& exception_state) {
|
ExceptionState& exception_state) {
|
||||||
@@ -190,6 +214,13 @@ ScriptPromise<BackgroundFetchRegistration> BackgroundFetchManager::fetch(
|
@@ -191,6 +215,13 @@ ScriptPromise<BackgroundFetchRegistration> BackgroundFetchManager::fetch(
|
||||||
exception_state);
|
exception_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,7 +195,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
|
|||||||
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
||||||
--- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
--- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
||||||
+++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
+++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
||||||
@@ -284,6 +284,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
|
@@ -288,6 +288,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -234,12 +205,12 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_imp
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
if (auto* scheduler = execution_context_->GetScheduler()) {
|
if (auto* scheduler = execution_context_->GetScheduler()) {
|
||||||
// Two features are registered here:
|
if (!RuntimeEnabledFeatures::DisconnectWebSocketOnBFCacheEnabled()) {
|
||||||
// - `kWebSocket`: a non-sticky feature that will disable BFCache for any
|
// Two features are registered here:
|
||||||
diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.cc b/third_party/blink/renderer/modules/websockets/websocket_common.cc
|
diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.cc b/third_party/blink/renderer/modules/websockets/websocket_common.cc
|
||||||
--- a/third_party/blink/renderer/modules/websockets/websocket_common.cc
|
--- a/third_party/blink/renderer/modules/websockets/websocket_common.cc
|
||||||
+++ b/third_party/blink/renderer/modules/websockets/websocket_common.cc
|
+++ b/third_party/blink/renderer/modules/websockets/websocket_common.cc
|
||||||
@@ -135,9 +135,39 @@ WebSocketCommon::ConnectResult WebSocketCommon::Connect(
|
@@ -139,9 +139,39 @@ WebSocketCommon::ConnectResult WebSocketCommon::Connect(
|
||||||
return ConnectResult::kException;
|
return ConnectResult::kException;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -265,7 +236,7 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.cc b
|
|||||||
+ network::mojom::IPAddressSpace target_space =
|
+ network::mojom::IPAddressSpace target_space =
|
||||||
+ network::mojom::IPAddressSpace::kPublic;
|
+ network::mojom::IPAddressSpace::kPublic;
|
||||||
+ if (network_utils::IsReservedIPAddress(request_url.Host()))
|
+ if (network_utils::IsReservedIPAddress(request_url.Host()))
|
||||||
+ target_space = network::mojom::IPAddressSpace::kPrivate;
|
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||||
+ if (SecurityOrigin::Create(request_url)->IsLocalhost())
|
+ if (SecurityOrigin::Create(request_url)->IsLocalhost())
|
||||||
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||||
+
|
+
|
||||||
|
|||||||
@@ -10,14 +10,14 @@ leakage of certain information in sandbox iframes
|
|||||||
|
|
||||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
---
|
---
|
||||||
.../browser/renderer_host/render_frame_host_impl.cc | 12 +++++++++++-
|
.../renderer_host/render_frame_host_impl.cc | 12 +++++++++++-
|
||||||
.../Block-url-leakage-sandbox-iframe.inc | 8 ++++++++
|
.../Block-url-leakage-sandbox-iframe.inc | 8 ++++++++
|
||||||
.../Block-url-leakage-sandbox-iframe.inc | 3 +++
|
.../Block-url-leakage-sandbox-iframe.inc | 3 +++
|
||||||
.../features_h/Block-url-leakage-sandbox-iframe.inc | 1 +
|
.../Block-url-leakage-sandbox-iframe.inc | 1 +
|
||||||
third_party/blink/renderer/core/frame/location.cc | 13 +++++++++++++
|
third_party/blink/renderer/core/frame/location.cc | 15 ++++++++++++++-
|
||||||
.../blink/renderer/core/loader/document_loader.cc | 12 ++++++++++++
|
.../blink/renderer/core/loader/document_loader.cc | 12 ++++++++++++
|
||||||
.../blink/renderer/core/loader/document_loader.h | 2 +-
|
.../blink/renderer/core/loader/document_loader.h | 2 +-
|
||||||
7 files changed, 49 insertions(+), 2 deletions(-)
|
7 files changed, 50 insertions(+), 3 deletions(-)
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Block-url-leakage-sandbox-iframe.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Block-url-leakage-sandbox-iframe.inc
|
||||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Block-url-leakage-sandbox-iframe.inc
|
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Block-url-leakage-sandbox-iframe.inc
|
||||||
create mode 100644 cromite_flags/third_party/blink/common/features_h/Block-url-leakage-sandbox-iframe.inc
|
create mode 100644 cromite_flags/third_party/blink/common/features_h/Block-url-leakage-sandbox-iframe.inc
|
||||||
@@ -25,7 +25,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
|
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
|
||||||
--- a/content/browser/renderer_host/render_frame_host_impl.cc
|
--- a/content/browser/renderer_host/render_frame_host_impl.cc
|
||||||
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
|
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
|
||||||
@@ -5023,7 +5023,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin(
|
@@ -5426,7 +5426,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin(
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) {
|
void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) {
|
||||||
@@ -82,31 +82,36 @@ diff --git a/third_party/blink/renderer/core/frame/location.cc b/third_party/bli
|
|||||||
#include "third_party/blink/renderer/bindings/core/v8/binding_security.h"
|
#include "third_party/blink/renderer/bindings/core/v8/binding_security.h"
|
||||||
#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
|
#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
|
||||||
#include "third_party/blink/renderer/core/dom/document.h"
|
#include "third_party/blink/renderer/core/dom/document.h"
|
||||||
@@ -126,8 +127,20 @@ DOMStringList* Location::ancestorOrigins() const {
|
@@ -133,12 +134,24 @@ DOMStringList* Location::ancestorOrigins() {
|
||||||
auto* origins = MakeGarbageCollected<DOMStringList>();
|
}
|
||||||
if (!IsAttached())
|
return ancestor_origins_list_.Get();
|
||||||
return origins;
|
}
|
||||||
|
-
|
||||||
+ if (base::FeatureList::IsEnabled(blink::features::kBlockUrlLeakageSandboxIframe)
|
+ if (base::FeatureList::IsEnabled(blink::features::kBlockUrlLeakageSandboxIframe)
|
||||||
+ && dom_window_->GetFrame()->GetSecurityContext()->IsSandboxed(
|
+ && dom_window_->GetFrame()->GetSecurityContext()->IsSandboxed(
|
||||||
+ network::mojom::WebSandboxFlags::kOrigin)) {
|
+ network::mojom::WebSandboxFlags::kOrigin)) {
|
||||||
+ // not allow any value for sandboxed frames
|
+ // not allow any value for sandboxed frames
|
||||||
|
+ auto* origins = MakeGarbageCollected<DOMStringList>();
|
||||||
+ return origins;
|
+ return origins;
|
||||||
+ }
|
+ }
|
||||||
for (Frame* frame = dom_window_->GetFrame()->Tree().Parent(); frame;
|
if (!ancestor_origins_list_ ||
|
||||||
frame = frame->Tree().Parent()) {
|
!RuntimeEnabledFeatures::AncestorOriginsStoredOnDocumentEnabled()) {
|
||||||
+ if (base::FeatureList::IsEnabled(blink::features::kBlockUrlLeakageSandboxIframe)
|
ancestor_origins_list_ = MakeGarbageCollected<DOMStringList>();
|
||||||
+ && frame->GetSecurityContext()->IsSandboxed(
|
for (Frame* frame = dom_window_->GetFrame()->Tree().Parent(); frame;
|
||||||
+ network::mojom::WebSandboxFlags::kOrigin)) {
|
frame = frame->Tree().Parent()) {
|
||||||
+ // blocks at first sandbox frame
|
+ if (base::FeatureList::IsEnabled(blink::features::kBlockUrlLeakageSandboxIframe)
|
||||||
+ break;
|
+ && frame->GetSecurityContext()->IsSandboxed(
|
||||||
+ }
|
+ network::mojom::WebSandboxFlags::kOrigin)) {
|
||||||
origins->Append(
|
+ // blocks at first sandbox frame
|
||||||
frame->GetSecurityContext()->GetSecurityOrigin()->ToString());
|
+ break;
|
||||||
}
|
+ }
|
||||||
|
ancestor_origins_list_->Append(
|
||||||
|
frame->GetSecurityContext()->GetSecurityOrigin()->ToString());
|
||||||
|
}
|
||||||
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
|
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
|
||||||
--- a/third_party/blink/renderer/core/loader/document_loader.cc
|
--- a/third_party/blink/renderer/core/loader/document_loader.cc
|
||||||
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
|
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
|
||||||
@@ -832,6 +832,11 @@ WebString DocumentLoader::HttpMethod() const {
|
@@ -851,6 +851,11 @@ WebString DocumentLoader::HttpMethod() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
const AtomicString& DocumentLoader::GetReferrer() const {
|
const AtomicString& DocumentLoader::GetReferrer() const {
|
||||||
@@ -118,7 +123,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
|
|||||||
return referrer_;
|
return referrer_;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2897,6 +2902,13 @@ void DocumentLoader::CommitNavigation() {
|
@@ -2984,6 +2989,13 @@ void DocumentLoader::CommitNavigation() {
|
||||||
response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly));
|
response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,7 +140,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
|
|||||||
diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h
|
diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h
|
||||||
--- a/third_party/blink/renderer/core/loader/document_loader.h
|
--- a/third_party/blink/renderer/core/loader/document_loader.h
|
||||||
+++ b/third_party/blink/renderer/core/loader/document_loader.h
|
+++ b/third_party/blink/renderer/core/loader/document_loader.h
|
||||||
@@ -775,7 +775,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected<DocumentLoader>,
|
@@ -789,7 +789,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected<DocumentLoader>,
|
||||||
// |archive_|, but won't have |loading_main_document_from_mhtml_archive_| set.
|
// |archive_|, but won't have |loading_main_document_from_mhtml_archive_| set.
|
||||||
bool loading_main_document_from_mhtml_archive_ = false;
|
bool loading_main_document_from_mhtml_archive_ = false;
|
||||||
const bool loading_srcdoc_ = false;
|
const bool loading_srcdoc_ = false;
|
||||||
|
|||||||
@@ -1,277 +0,0 @@
|
|||||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
|
||||||
Date: Wed, 30 Oct 2019 11:50:13 +0100
|
|
||||||
Subject: Block 'qjz9zk' or 'trk:' requests
|
|
||||||
|
|
||||||
An info bar is displayed unless the --disable-trkbar command-line flag or the chrome://flag option is used.
|
|
||||||
This patch is based on Iridium's 'net: add "trk:" scheme and help identify URLs being retrieved'
|
|
||||||
|
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|
||||||
---
|
|
||||||
.../chrome_autocomplete_scheme_classifier.cc | 1 +
|
|
||||||
chrome/browser/history/history_utils.cc | 1 +
|
|
||||||
chrome/browser/ui/singleton_tabs.cc | 5 ++++
|
|
||||||
.../omnibox/browser/autocomplete_input.cc | 8 ++++-
|
|
||||||
components/url_formatter/url_fixer.cc | 4 +++
|
|
||||||
.../child_process_security_policy_impl.cc | 1 +
|
|
||||||
net/BUILD.gn | 2 ++
|
|
||||||
net/url_request/trk_protocol_handler.cc | 25 ++++++++++++++++
|
|
||||||
net/url_request/trk_protocol_handler.h | 30 +++++++++++++++++++
|
|
||||||
net/url_request/url_request.cc | 8 +++++
|
|
||||||
.../url_request_context_builder.cc | 3 ++
|
|
||||||
url/url_constants.h | 1 +
|
|
||||||
url/url_util.cc | 2 ++
|
|
||||||
13 files changed, 90 insertions(+), 1 deletion(-)
|
|
||||||
create mode 100644 net/url_request/trk_protocol_handler.cc
|
|
||||||
create mode 100644 net/url_request/trk_protocol_handler.h
|
|
||||||
|
|
||||||
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
|
|
||||||
--- a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
|
|
||||||
+++ b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
|
|
||||||
@@ -56,6 +56,7 @@ ChromeAutocompleteSchemeClassifier::GetInputTypeForScheme(
|
|
||||||
if (base::IsStringASCII(scheme) &&
|
|
||||||
(ProfileIOData::IsHandledProtocol(scheme) ||
|
|
||||||
base::EqualsCaseInsensitiveASCII(scheme, content::kViewSourceScheme) ||
|
|
||||||
+ base::EqualsCaseInsensitiveASCII(scheme, url::kTraceScheme) ||
|
|
||||||
base::EqualsCaseInsensitiveASCII(scheme, url::kJavaScriptScheme) ||
|
|
||||||
base::EqualsCaseInsensitiveASCII(scheme, url::kDataScheme))) {
|
|
||||||
return metrics::OmniboxInputType::URL;
|
|
||||||
diff --git a/chrome/browser/history/history_utils.cc b/chrome/browser/history/history_utils.cc
|
|
||||||
--- a/chrome/browser/history/history_utils.cc
|
|
||||||
+++ b/chrome/browser/history/history_utils.cc
|
|
||||||
@@ -22,6 +22,7 @@ bool CanAddURLToHistory(const GURL& url) {
|
|
||||||
url.SchemeIs(content::kChromeUIScheme) ||
|
|
||||||
url.SchemeIs(content::kChromeUIUntrustedScheme) ||
|
|
||||||
url.SchemeIs(content::kViewSourceScheme) ||
|
|
||||||
+ url.SchemeIs(url::kTraceScheme) ||
|
|
||||||
url.SchemeIs(chrome::kChromeNativeScheme) ||
|
|
||||||
url.SchemeIs(chrome::kChromeSearchScheme) ||
|
|
||||||
url.SchemeIs(dom_distiller::kDomDistillerScheme))
|
|
||||||
diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_tabs.cc
|
|
||||||
--- a/chrome/browser/ui/singleton_tabs.cc
|
|
||||||
+++ b/chrome/browser/ui/singleton_tabs.cc
|
|
||||||
@@ -136,6 +136,11 @@ int GetIndexOfExistingTab(Browser* browser, const NavigateParams& params) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // trk: URLs must not be rewritten
|
|
||||||
+ if (tab_url.SchemeIs(url::kTraceScheme)) {
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
GURL rewritten_tab_url = tab_url;
|
|
||||||
content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary(
|
|
||||||
&rewritten_tab_url, browser->profile());
|
|
||||||
diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnibox/browser/autocomplete_input.cc
|
|
||||||
--- a/components/omnibox/browser/autocomplete_input.cc
|
|
||||||
+++ b/components/omnibox/browser/autocomplete_input.cc
|
|
||||||
@@ -92,10 +92,15 @@ void OffsetComponentsExcludingScheme(url::Parsed* parts, int offset) {
|
|
||||||
bool HasScheme(const std::u16string& input, const char* scheme) {
|
|
||||||
std::string utf8_input(base::UTF16ToUTF8(input));
|
|
||||||
url::Component view_source_scheme;
|
|
||||||
+
|
|
||||||
+ if (url::FindAndCompareScheme(utf8_input, url::kTraceScheme, &view_source_scheme)) {
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
if (url::FindAndCompareScheme(utf8_input, kViewSourceScheme,
|
|
||||||
&view_source_scheme)) {
|
|
||||||
utf8_input.erase(0, view_source_scheme.end() + 1);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
return url::FindAndCompareScheme(utf8_input, scheme, nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -578,7 +583,8 @@ void AutocompleteInput::ParseForEmphasizeComponents(
|
|
||||||
// For the view-source and blob schemes, we should emphasize the host of the
|
|
||||||
// URL qualified by the view-source or blob prefix.
|
|
||||||
if ((base::EqualsCaseInsensitiveASCII(scheme_str, kViewSourceScheme) ||
|
|
||||||
- base::EqualsCaseInsensitiveASCII(scheme_str, url::kBlobScheme)) &&
|
|
||||||
+ base::EqualsCaseInsensitiveASCII(scheme_str, url::kBlobScheme) ||
|
|
||||||
+ base::EqualsCaseInsensitiveASCII(scheme_str, url::kTraceScheme)) &&
|
|
||||||
(static_cast<int>(text.length()) > after_scheme_and_colon)) {
|
|
||||||
// Obtain the URL prefixed by view-source or blob and parse it.
|
|
||||||
std::u16string real_url(text.substr(after_scheme_and_colon));
|
|
||||||
diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
|
|
||||||
--- a/components/url_formatter/url_fixer.cc
|
|
||||||
+++ b/components/url_formatter/url_fixer.cc
|
|
||||||
@@ -607,6 +607,10 @@ GURL FixupURLInternal(const std::string& text,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (scheme == url::kTraceScheme) {
|
|
||||||
+ return GURL();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
// We handle the file scheme separately.
|
|
||||||
if (scheme == url::kFileScheme) {
|
|
||||||
return GURL(parts.scheme.is_valid() ? text : FixupPath(text));
|
|
||||||
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
|
|
||||||
--- a/content/browser/child_process_security_policy_impl.cc
|
|
||||||
+++ b/content/browser/child_process_security_policy_impl.cc
|
|
||||||
@@ -950,6 +950,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
|
|
||||||
RegisterPseudoScheme(url::kJavaScriptScheme);
|
|
||||||
RegisterPseudoScheme(kViewSourceScheme);
|
|
||||||
RegisterPseudoScheme(kGoogleChromeScheme);
|
|
||||||
+ RegisterWebSafeScheme(url::kTraceScheme);
|
|
||||||
}
|
|
||||||
|
|
||||||
ChildProcessSecurityPolicyImpl::~ChildProcessSecurityPolicyImpl() {
|
|
||||||
diff --git a/net/BUILD.gn b/net/BUILD.gn
|
|
||||||
--- a/net/BUILD.gn
|
|
||||||
+++ b/net/BUILD.gn
|
|
||||||
@@ -1115,6 +1115,8 @@ component("net") {
|
|
||||||
"url_request/url_request_http_job.cc",
|
|
||||||
"url_request/url_request_http_job.h",
|
|
||||||
"url_request/url_request_interceptor.cc",
|
|
||||||
+ "url_request/trk_protocol_handler.cc",
|
|
||||||
+ "url_request/trk_protocol_handler.h",
|
|
||||||
"url_request/url_request_interceptor.h",
|
|
||||||
"url_request/url_request_job.cc",
|
|
||||||
"url_request/url_request_job.h",
|
|
||||||
diff --git a/net/url_request/trk_protocol_handler.cc b/net/url_request/trk_protocol_handler.cc
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/net/url_request/trk_protocol_handler.cc
|
|
||||||
@@ -0,0 +1,25 @@
|
|
||||||
+// Copyright (c) 2018 The ungoogled-chromium Authors. All rights reserved.
|
|
||||||
+// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
+// found in the LICENSE file.
|
|
||||||
+
|
|
||||||
+#include "net/url_request/trk_protocol_handler.h"
|
|
||||||
+
|
|
||||||
+#include "base/logging.h"
|
|
||||||
+#include "net/base/net_errors.h"
|
|
||||||
+#include "net/url_request/url_request_error_job.h"
|
|
||||||
+
|
|
||||||
+namespace net {
|
|
||||||
+
|
|
||||||
+TrkProtocolHandler::TrkProtocolHandler() = default;
|
|
||||||
+
|
|
||||||
+std::unique_ptr<URLRequestJob> TrkProtocolHandler::CreateJob(
|
|
||||||
+ URLRequest* request) const {
|
|
||||||
+ LOG(ERROR) << "Blocked URL in TrkProtocolHandler: " << request->original_url();
|
|
||||||
+ return std::make_unique<URLRequestErrorJob>(request, ERR_BLOCKED_BY_CLIENT);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+bool TrkProtocolHandler::IsSafeRedirectTarget(const GURL& location) const {
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+} // namespace net
|
|
||||||
diff --git a/net/url_request/trk_protocol_handler.h b/net/url_request/trk_protocol_handler.h
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/net/url_request/trk_protocol_handler.h
|
|
||||||
@@ -0,0 +1,30 @@
|
|
||||||
+// Copyright (c) 2018 The ungoogled-chromium Authors. All rights reserved.
|
|
||||||
+// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
+// found in the LICENSE file.
|
|
||||||
+
|
|
||||||
+#ifndef NET_URL_REQUEST_TRK_PROTOCOL_HANDLER_H_
|
|
||||||
+#define NET_URL_REQUEST_TRK_PROTOCOL_HANDLER_H_
|
|
||||||
+
|
|
||||||
+#include "base/compiler_specific.h"
|
|
||||||
+#include "net/base/net_export.h"
|
|
||||||
+#include "net/url_request/url_request_job_factory.h"
|
|
||||||
+
|
|
||||||
+namespace net {
|
|
||||||
+
|
|
||||||
+class URLRequestJob;
|
|
||||||
+
|
|
||||||
+// Implements a ProtocolHandler for Trk jobs.
|
|
||||||
+class NET_EXPORT TrkProtocolHandler
|
|
||||||
+ : public URLRequestJobFactory::ProtocolHandler {
|
|
||||||
+ public:
|
|
||||||
+ TrkProtocolHandler(const TrkProtocolHandler&) = delete;
|
|
||||||
+ TrkProtocolHandler& operator=(const TrkProtocolHandler&) = delete;
|
|
||||||
+
|
|
||||||
+ TrkProtocolHandler();
|
|
||||||
+ std::unique_ptr<URLRequestJob> CreateJob(URLRequest* request) const override;
|
|
||||||
+ bool IsSafeRedirectTarget(const GURL& location) const override;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+} // namespace net
|
|
||||||
+
|
|
||||||
+#endif // NET_URL_REQUEST_TRK_PROTOCOL_HANDLER_H_
|
|
||||||
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
|
|
||||||
--- a/net/url_request/url_request.cc
|
|
||||||
+++ b/net/url_request/url_request.cc
|
|
||||||
@@ -15,6 +15,7 @@
|
|
||||||
#include "base/notreached.h"
|
|
||||||
#include "base/rand_util.h"
|
|
||||||
#include "base/strings/utf_string_conversions.h"
|
|
||||||
+#include "base/strings/string_util.h"
|
|
||||||
#include "base/synchronization/lock.h"
|
|
||||||
#include "base/task/single_thread_task_runner.h"
|
|
||||||
#include "base/types/optional_util.h"
|
|
||||||
@@ -55,6 +56,7 @@
|
|
||||||
#include "net/url_request/url_request_redirect_job.h"
|
|
||||||
#include "url/gurl.h"
|
|
||||||
#include "url/origin.h"
|
|
||||||
+#include "url/url_constants.h"
|
|
||||||
|
|
||||||
namespace net {
|
|
||||||
|
|
||||||
@@ -653,6 +655,12 @@ URLRequest::URLRequest(base::PassKey<URLRequestContext> pass_key,
|
|
||||||
// Sanity check out environment.
|
|
||||||
DCHECK(base::SingleThreadTaskRunner::HasCurrentDefault());
|
|
||||||
|
|
||||||
+ if (!url.SchemeIs(url::kTraceScheme) &&
|
|
||||||
+ base::EndsWith(url.host(), "qjz9zk", base::CompareCase::INSENSITIVE_ASCII)) {
|
|
||||||
+ LOG(ERROR) << "Block URL in URLRequest: " << url;
|
|
||||||
+ url_chain_[0] = GURL(url::kTraceScheme + (":" + url.possibly_invalid_spec()));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
context->url_requests()->insert(this);
|
|
||||||
net_log_.BeginEvent(NetLogEventType::REQUEST_ALIVE, [&] {
|
|
||||||
return NetLogURLRequestConstructorParams(url, priority_,
|
|
||||||
diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc
|
|
||||||
--- a/net/url_request/url_request_context_builder.cc
|
|
||||||
+++ b/net/url_request/url_request_context_builder.cc
|
|
||||||
@@ -53,6 +53,7 @@
|
|
||||||
#include "net/socket/network_binding_client_socket_factory.h"
|
|
||||||
#include "net/ssl/ssl_config_service_defaults.h"
|
|
||||||
#include "net/url_request/static_http_user_agent_settings.h"
|
|
||||||
+#include "net/url_request/trk_protocol_handler.h"
|
|
||||||
#include "net/url_request/url_request_context.h"
|
|
||||||
#include "net/url_request/url_request_job_factory.h"
|
|
||||||
#include "url/url_constants.h"
|
|
||||||
@@ -610,6 +611,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
|
|
||||||
job_factory->SetProtocolHandler(scheme_handler.first,
|
|
||||||
std::move(scheme_handler.second));
|
|
||||||
}
|
|
||||||
+ job_factory->SetProtocolHandler(url::kTraceScheme,
|
|
||||||
+ std::make_unique<TrkProtocolHandler>());
|
|
||||||
protocol_handlers_.clear();
|
|
||||||
|
|
||||||
context->set_job_factory(std::move(job_factory));
|
|
||||||
diff --git a/url/url_constants.h b/url/url_constants.h
|
|
||||||
--- a/url/url_constants.h
|
|
||||||
+++ b/url/url_constants.h
|
|
||||||
@@ -34,6 +34,7 @@ inline constexpr char16_t kDataScheme16[] = u"data";
|
|
||||||
inline constexpr char kDrivefsScheme[] = "drivefs";
|
|
||||||
inline constexpr char kFileScheme[] = "file";
|
|
||||||
inline constexpr char16_t kFileScheme16[] = u"file";
|
|
||||||
+inline constexpr char kTraceScheme[] = "trk";
|
|
||||||
inline constexpr char kFileSystemScheme[] = "filesystem";
|
|
||||||
inline constexpr char16_t kFileSystemScheme16[] = u"filesystem";
|
|
||||||
inline constexpr char kFtpScheme[] = "ftp";
|
|
||||||
diff --git a/url/url_util.cc b/url/url_util.cc
|
|
||||||
--- a/url/url_util.cc
|
|
||||||
+++ b/url/url_util.cc
|
|
||||||
@@ -53,6 +53,7 @@ struct SchemeRegistry {
|
|
||||||
std::vector<SchemeWithType> standard_schemes = {
|
|
||||||
{kHttpsScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION},
|
|
||||||
{kHttpScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION},
|
|
||||||
+ {kTraceScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION},
|
|
||||||
// Yes, file URLs can have a hostname, so file URLs should be handled as
|
|
||||||
// "standard". File URLs never have a port as specified by the SchemeType
|
|
||||||
// field. Unlike other SCHEME_WITH_HOST schemes, the 'host' in a file
|
|
||||||
@@ -98,6 +99,7 @@ struct SchemeRegistry {
|
|
||||||
kAboutScheme,
|
|
||||||
kJavaScriptScheme,
|
|
||||||
kDataScheme,
|
|
||||||
+ kTraceScheme,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Schemes that can be sent CORS requests.
|
|
||||||
--
|
|
||||||
@@ -39,7 +39,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Main toolbar of bookmark UI. It is responsible for displaying title and buttons associated with
|
* Main toolbar of bookmark UI. It is responsible for displaying title and buttons associated with
|
||||||
@@ -190,6 +191,11 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
|
@@ -197,6 +198,11 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
|
||||||
void setCurrentFolder(BookmarkId folder) {
|
void setCurrentFolder(BookmarkId folder) {
|
||||||
mCurrentFolder = mBookmarkModel.getBookmarkById(folder);
|
mCurrentFolder = mBookmarkModel.getBookmarkById(folder);
|
||||||
enableImportExportMenu();
|
enableImportExportMenu();
|
||||||
@@ -51,16 +51,16 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
|
|||||||
}
|
}
|
||||||
|
|
||||||
void enableImportExportMenu() {
|
void enableImportExportMenu() {
|
||||||
@@ -226,6 +232,17 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
|
@@ -233,6 +239,17 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
|
||||||
mExportBookmarkRunnable.run();
|
mExportBookmarkRunnable.run();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
+ if (menuItem.getItemId() == R.id.select_all_menu_id) {
|
+ if (menuItem.getItemId() == R.id.select_all_menu_id) {
|
||||||
+ if (mBookmarkModel.isBookmarkModelLoaded()) {
|
+ if (mBookmarkModel.isBookmarkModelLoaded()) {
|
||||||
+ List<BookmarkItem> items = mBookmarkModel.getBookmarksForFolder(mCurrentFolder.getId());
|
+ List<BookmarkId> childs = mBookmarkModel.getChildIds(mCurrentFolder.getId());
|
||||||
+ HashSet<BookmarkId> ids = new HashSet<>(items.size());
|
+ HashSet<BookmarkId> ids = new HashSet<>(childs.size());
|
||||||
+ for (BookmarkItem item : items) {
|
+ for (BookmarkId item : childs) {
|
||||||
+ ids.add(item.getId());
|
+ ids.add(item);
|
||||||
+ }
|
+ }
|
||||||
+ mSelectionDelegate.setSelectedItems(ids);
|
+ mSelectionDelegate.setSelectedItems(ids);
|
||||||
+ }
|
+ }
|
||||||
@@ -69,7 +69,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
|
|||||||
return assumeNonNull(mMenuIdClickedFunction).apply(menuItem.getItemId());
|
return assumeNonNull(mMenuIdClickedFunction).apply(menuItem.getItemId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -248,6 +265,7 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
|
@@ -255,6 +272,7 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
|
||||||
|
|
||||||
getMenu().findItem(R.id.import_menu_id).setVisible(mCurrentFolder != null);
|
getMenu().findItem(R.id.import_menu_id).setVisible(mCurrentFolder != null);
|
||||||
getMenu().findItem(R.id.export_menu_id).setVisible(mCurrentFolder != null);
|
getMenu().findItem(R.id.export_menu_id).setVisible(mCurrentFolder != null);
|
||||||
@@ -80,7 +80,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
|
|||||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
@@ -249,6 +249,9 @@ CHAR_LIMIT guidelines:
|
@@ -277,6 +277,9 @@ CHAR_LIMIT guidelines:
|
||||||
<message name="IDS_NOTIFICATION_CATEGORY_SITES" desc="Label for notifications from websites, within a list of notification categories. [CHAR_LIMIT=32]">
|
<message name="IDS_NOTIFICATION_CATEGORY_SITES" desc="Label for notifications from websites, within a list of notification categories. [CHAR_LIMIT=32]">
|
||||||
Sites
|
Sites
|
||||||
</message>
|
</message>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -10,10 +10,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
|
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
|
||||||
--- a/chrome/android/chrome_public_apk_tmpl.gni
|
--- a/chrome/android/chrome_public_apk_tmpl.gni
|
||||||
+++ b/chrome/android/chrome_public_apk_tmpl.gni
|
+++ b/chrome/android/chrome_public_apk_tmpl.gni
|
||||||
@@ -27,7 +27,7 @@ declare_args() {
|
@@ -23,7 +23,7 @@ declare_args() {
|
||||||
# WebView providers which declare one of a handful of package names. See
|
# Android package name to use when compiling the public chrome targets
|
||||||
# https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/build-instructions.md#Changing-package-name
|
# (chrome_public_apk, trichrome_chrome_bundle, etc. as well as the
|
||||||
# for details.
|
# *_bundle variants). This defaults to the Chromium browser package name.
|
||||||
- chrome_public_manifest_package = "org.chromium.chrome"
|
- chrome_public_manifest_package = "org.chromium.chrome"
|
||||||
+ chrome_public_manifest_package = "org.bromite.bromite"
|
+ chrome_public_manifest_package = "org.bromite.bromite"
|
||||||
if (use_stable_package_name_for_trichrome) {
|
if (use_stable_package_name_for_trichrome) {
|
||||||
|
|||||||
@@ -21,19 +21,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
.../java/res/xml/adblock_preferences.xml | 25 ++
|
.../java/res/xml/adblock_preferences.xml | 25 ++
|
||||||
.../android/java/res/xml/main_preferences.xml | 5 +
|
.../android/java/res/xml/main_preferences.xml | 5 +
|
||||||
.../browser/settings/AdBlockEditor.java | 91 ++++++
|
.../browser/settings/AdBlockEditor.java | 91 ++++++
|
||||||
.../browser/settings/AdBlockPreferences.java | 58 ++++
|
.../browser/settings/AdBlockPreferences.java | 76 +++++
|
||||||
.../chrome/browser/tabmodel/TabModelImpl.java | 4 +-
|
.../browser/settings/SettingsActivity.java | 3 +
|
||||||
chrome/app/generated_resources.grd | 10 +
|
chrome/app/generated_resources.grd | 10 +
|
||||||
chrome/browser/after_startup_task_utils.cc | 4 +
|
chrome/browser/after_startup_task_utils.cc | 5 +
|
||||||
chrome/browser/browser_process.h | 6 +
|
chrome/browser/browser_process.h | 5 +
|
||||||
chrome/browser/browser_process_impl.cc | 28 ++
|
chrome/browser/browser_process_impl.cc | 30 ++
|
||||||
chrome/browser/browser_process_impl.h | 2 +
|
chrome/browser/browser_process_impl.h | 2 +
|
||||||
chrome/browser/chrome_browser_main.cc | 3 +
|
chrome/browser/chrome_browser_main.cc | 3 +
|
||||||
chrome/browser/flags/BUILD.gn | 3 +
|
chrome/browser/flags/BUILD.gn | 3 +
|
||||||
.../flags/android/adblock_native_gateway.cc | 31 ++
|
.../flags/android/adblock_native_gateway.cc | 33 ++
|
||||||
.../browser/flags/AdBlockNativeGateway.java | 30 ++
|
.../browser/flags/AdBlockNativeGateway.java | 30 ++
|
||||||
.../net/system_network_context_manager.cc | 4 +
|
.../net/system_network_context_manager.cc | 4 +
|
||||||
.../sessions/session_restore_android.cc | 7 +-
|
|
||||||
.../strings/android_chrome_strings.grd | 14 +
|
.../strings/android_chrome_strings.grd | 14 +
|
||||||
chrome/common/pref_names.h | 5 +
|
chrome/common/pref_names.h | 5 +
|
||||||
.../strings/android/site_settings.grdp | 3 +
|
.../strings/android/site_settings.grdp | 3 +
|
||||||
@@ -44,14 +43,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
.../component_updater/download_filters_task.h | 129 ++++++++
|
.../component_updater/download_filters_task.h | 129 ++++++++
|
||||||
...ent_subresource_filter_throttle_manager.cc | 15 +
|
...ent_subresource_filter_throttle_manager.cc | 15 +
|
||||||
...tent_subresource_filter_throttle_manager.h | 2 +
|
...tent_subresource_filter_throttle_manager.h | 2 +
|
||||||
.../content/shared/browser/ruleset_service.cc | 44 ++-
|
.../content/browser/ruleset_service.cc | 44 ++-
|
||||||
.../content/shared/browser/ruleset_service.h | 8 +-
|
.../content/browser/ruleset_service.h | 8 +-
|
||||||
.../unindexed_ruleset_stream_generator.cc | 3 +
|
.../unindexed_ruleset_stream_generator.cc | 3 +
|
||||||
.../core/browser/ruleset_version.h | 4 +
|
.../core/browser/ruleset_version.h | 4 +
|
||||||
.../browser/subresource_filter_features.cc | 118 +-------
|
.../browser/subresource_filter_features.cc | 118 +-------
|
||||||
.../core/browser/verified_ruleset_dealer.cc | 4 +
|
.../core/browser/verified_ruleset_dealer.cc | 4 +
|
||||||
.../core/common/indexed_ruleset.cc | 5 +-
|
.../core/common/indexed_ruleset.cc | 5 +-
|
||||||
39 files changed, 1269 insertions(+), 132 deletions(-)
|
38 files changed, 1288 insertions(+), 127 deletions(-)
|
||||||
create mode 100644 chrome/android/java/res/layout/adblock_editor.xml
|
create mode 100644 chrome/android/java/res/layout/adblock_editor.xml
|
||||||
create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml
|
create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml
|
||||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
|
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
|
||||||
@@ -66,7 +65,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||||
--- a/chrome/android/BUILD.gn
|
--- a/chrome/android/BUILD.gn
|
||||||
+++ b/chrome/android/BUILD.gn
|
+++ b/chrome/android/BUILD.gn
|
||||||
@@ -328,6 +328,7 @@ if (_is_default_toolchain) {
|
@@ -317,6 +317,7 @@ if (_is_default_toolchain) {
|
||||||
"//chrome/android/features/tab_ui/public:ui_java_resources",
|
"//chrome/android/features/tab_ui/public:ui_java_resources",
|
||||||
"//chrome/android/modules/stack_unwinder/provider:java",
|
"//chrome/android/modules/stack_unwinder/provider:java",
|
||||||
"//chrome/android/webapk/libs/client:client_java",
|
"//chrome/android/webapk/libs/client:client_java",
|
||||||
@@ -77,15 +76,15 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||||||
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
|
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
|
||||||
--- a/chrome/android/chrome_java_resources.gni
|
--- a/chrome/android/chrome_java_resources.gni
|
||||||
+++ b/chrome/android/chrome_java_resources.gni
|
+++ b/chrome/android/chrome_java_resources.gni
|
||||||
@@ -440,6 +440,7 @@ chrome_java_resources = [
|
@@ -438,6 +438,7 @@ chrome_java_resources = [
|
||||||
"java/res/layout/account_divider_preference.xml",
|
|
||||||
"java/res/layout/account_management_account_row.xml",
|
"java/res/layout/account_management_account_row.xml",
|
||||||
"java/res/layout/app_history_filter.xml",
|
"java/res/layout/app_history_filter.xml",
|
||||||
|
"java/res/layout/auto_pip_permission_dialog.xml",
|
||||||
+ "java/res/layout/adblock_editor.xml",
|
+ "java/res/layout/adblock_editor.xml",
|
||||||
"java/res/layout/auto_sign_in_first_run_dialog.xml",
|
"java/res/layout/auto_sign_in_first_run_dialog.xml",
|
||||||
"java/res/layout/autofill_billing_address_dropdown.xml",
|
"java/res/layout/autofill_billing_address_dropdown.xml",
|
||||||
"java/res/layout/autofill_card_name_and_number.xml",
|
"java/res/layout/autofill_card_name_and_number.xml",
|
||||||
@@ -634,6 +635,7 @@ chrome_java_resources = [
|
@@ -650,6 +651,7 @@ chrome_java_resources = [
|
||||||
"java/res/xml/account_management_preferences.xml",
|
"java/res/xml/account_management_preferences.xml",
|
||||||
"java/res/xml/ad_services_config.xml",
|
"java/res/xml/ad_services_config.xml",
|
||||||
"java/res/xml/appearance_preferences.xml",
|
"java/res/xml/appearance_preferences.xml",
|
||||||
@@ -96,7 +95,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
|
|||||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||||
--- a/chrome/android/chrome_java_sources.gni
|
--- a/chrome/android/chrome_java_sources.gni
|
||||||
+++ b/chrome/android/chrome_java_sources.gni
|
+++ b/chrome/android/chrome_java_sources.gni
|
||||||
@@ -893,6 +893,8 @@ chrome_java_sources = [
|
@@ -992,6 +992,8 @@ chrome_java_sources = [
|
||||||
"java/src/org/chromium/chrome/browser/permissions/PermissionBlockedDialog.java",
|
"java/src/org/chromium/chrome/browser/permissions/PermissionBlockedDialog.java",
|
||||||
"java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java",
|
"java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java",
|
||||||
"java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",
|
"java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",
|
||||||
@@ -180,8 +179,8 @@ new file mode 100644
|
|||||||
diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml
|
diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml
|
||||||
--- a/chrome/android/java/res/values/styles.xml
|
--- a/chrome/android/java/res/values/styles.xml
|
||||||
+++ b/chrome/android/java/res/values/styles.xml
|
+++ b/chrome/android/java/res/values/styles.xml
|
||||||
@@ -263,6 +263,24 @@ found in the LICENSE file.
|
@@ -339,6 +339,24 @@ found in the LICENSE file.
|
||||||
<item name="android:textSize">20sp</item>
|
</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
+ <style name="ButtonBarTopSpacer" parent="ButtonBarTopSpacerLight">
|
+ <style name="ButtonBarTopSpacer" parent="ButtonBarTopSpacerLight">
|
||||||
@@ -252,9 +251,9 @@ new file mode 100644
|
|||||||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||||
@@ -120,6 +120,11 @@ for the previous order (main_preferences_legacy). -->
|
@@ -119,6 +119,11 @@ found in the LICENSE file.
|
||||||
android:key="toolbar_shortcut"
|
android:key="toolbar_shortcut"
|
||||||
android:order="21"
|
android:order="22"
|
||||||
android:title="@string/toolbar_shortcut"/>
|
android:title="@string/toolbar_shortcut"/>
|
||||||
+ <Preference
|
+ <Preference
|
||||||
+ android:fragment="org.chromium.chrome.browser.settings.AdBlockPreferences"
|
+ android:fragment="org.chromium.chrome.browser.settings.AdBlockPreferences"
|
||||||
@@ -263,7 +262,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
|||||||
+ android:title="@string/prefs_adblock"/>
|
+ android:title="@string/prefs_adblock"/>
|
||||||
<Preference
|
<Preference
|
||||||
android:key="notifications"
|
android:key="notifications"
|
||||||
android:order="22"
|
android:order="23"
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
@@ -364,7 +363,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBloc
|
|||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java
|
||||||
@@ -0,0 +1,58 @@
|
@@ -0,0 +1,76 @@
|
||||||
+// Copyright 2015 The Chromium Authors. All rights reserved.
|
+// Copyright 2015 The Chromium Authors. All rights reserved.
|
||||||
+// Use of this source code is governed by a BSD-style license that can be
|
+// Use of this source code is governed by a BSD-style license that can be
|
||||||
+// found in the LICENSE file.
|
+// found in the LICENSE file.
|
||||||
@@ -374,30 +373,48 @@ new file mode 100644
|
|||||||
+import android.os.Bundle;
|
+import android.os.Bundle;
|
||||||
+import androidx.preference.Preference;
|
+import androidx.preference.Preference;
|
||||||
+import androidx.preference.PreferenceFragmentCompat;
|
+import androidx.preference.PreferenceFragmentCompat;
|
||||||
+import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
+
|
||||||
|
+import org.chromium.base.supplier.MonotonicObservableSupplier;
|
||||||
|
+import org.chromium.base.supplier.ObservableSuppliers;
|
||||||
|
+import org.chromium.base.supplier.SettableMonotonicObservableSupplier;
|
||||||
|
+import java.util.function.Supplier;
|
||||||
+
|
+
|
||||||
+import org.chromium.content_public.browser.BrowserContextHandle;
|
+import org.chromium.content_public.browser.BrowserContextHandle;
|
||||||
|
+import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||||
+import org.chromium.components.browser_ui.site_settings.BaseSiteSettingsFragment;
|
+import org.chromium.components.browser_ui.site_settings.BaseSiteSettingsFragment;
|
||||||
+import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge;
|
+import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge;
|
||||||
+import org.chromium.components.content_settings.ContentSettingsType;
|
+import org.chromium.components.content_settings.ContentSettingsType;
|
||||||
+import org.chromium.components.browser_ui.settings.SettingsUtils;
|
+import org.chromium.components.browser_ui.settings.SettingsUtils;
|
||||||
+import org.chromium.chrome.browser.flags.AdBlockNativeGateway;
|
+import org.chromium.components.browser_ui.settings.SettingsFragment;
|
||||||
+import androidx.annotation.VisibleForTesting;
|
+
|
||||||
+import org.chromium.chrome.R;
|
+import org.chromium.chrome.R;
|
||||||
|
+import org.chromium.chrome.browser.flags.AdBlockNativeGateway;
|
||||||
|
+import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
|
||||||
+
|
+
|
||||||
+/**
|
+/**
|
||||||
+ * Fragment that allows the user to configure AdBlock related preferences.
|
+ * Fragment that allows the user to configure AdBlock related preferences.
|
||||||
+ */
|
+ */
|
||||||
+public class AdBlockPreferences extends BaseSiteSettingsFragment {
|
+public class AdBlockPreferences extends ChromeBaseSettingsFragment {
|
||||||
+ @VisibleForTesting
|
|
||||||
+ public static final String PREF_ADBLOCK_SWITCH = "adblock_switch";
|
+ public static final String PREF_ADBLOCK_SWITCH = "adblock_switch";
|
||||||
+ private static final String PREF_ADBLOCK_EDIT = "adblock_edit";
|
+ private static final String PREF_ADBLOCK_EDIT = "adblock_edit";
|
||||||
+
|
+
|
||||||
+ private Preference mAdBlockEdit;
|
+ private Preference mAdBlockEdit;
|
||||||
|
+ private final SettableMonotonicObservableSupplier<String> mPageTitle =
|
||||||
|
+ ObservableSuppliers.createMonotonic();
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public MonotonicObservableSupplier<String> getPageTitle() {
|
||||||
|
+ return mPageTitle;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public @SettingsFragment.AnimationType int getAnimationType() {
|
||||||
|
+ return SettingsFragment.AnimationType.PROPERTY;
|
||||||
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||||
+ getActivity().setTitle(R.string.options_adblock_title);
|
+ mPageTitle.set(getString(R.string.options_adblock_title));
|
||||||
+ SettingsUtils.addPreferencesFromResource(this, R.xml.adblock_preferences);
|
+ SettingsUtils.addPreferencesFromResource(this, R.xml.adblock_preferences);
|
||||||
+
|
+
|
||||||
+ ChromeSwitchPreference mAdBlockSwitch =
|
+ ChromeSwitchPreference mAdBlockSwitch =
|
||||||
@@ -423,24 +440,30 @@ new file mode 100644
|
|||||||
+ updateCurrentAdBlockUrl();
|
+ updateCurrentAdBlockUrl();
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
|
||||||
@@ -942,9 +942,7 @@ public class TabModelImpl extends TabModelJniBridge {
|
@@ -109,6 +109,8 @@ import java.util.List;
|
||||||
.createTabWithWebContents(
|
import java.util.Locale;
|
||||||
parent,
|
import java.util.Map;
|
||||||
webContents,
|
|
||||||
- select
|
|
||||||
- ? TabLaunchType.FROM_RECENT_TABS_FOREGROUND
|
|
||||||
- : TabLaunchType.FROM_RECENT_TABS)
|
|
||||||
+ TabLaunchType.FROM_LINK)
|
|
||||||
!= null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
+import org.chromium.chrome.browser.settings.AdBlockEditor;
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* The Chrome settings activity.
|
||||||
|
*
|
||||||
|
@@ -1376,6 +1378,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
|
||||||
|
&& !MAIN_FRAGMENT_TAG.equals(fragment.getTag())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
+ if (fragment instanceof AdBlockEditor) return;
|
||||||
|
|
||||||
|
String className = fragment.getClass().getSimpleName();
|
||||||
|
RecordHistogram.recordSparseHistogram(
|
||||||
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
|
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
|
||||||
--- a/chrome/app/generated_resources.grd
|
--- a/chrome/app/generated_resources.grd
|
||||||
+++ b/chrome/app/generated_resources.grd
|
+++ b/chrome/app/generated_resources.grd
|
||||||
@@ -16713,6 +16713,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
|
@@ -17455,6 +17455,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
|
||||||
Never show this again.
|
Never show this again.
|
||||||
</message>
|
</message>
|
||||||
|
|
||||||
@@ -460,16 +483,17 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
|
|||||||
diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc
|
diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc
|
||||||
--- a/chrome/browser/after_startup_task_utils.cc
|
--- a/chrome/browser/after_startup_task_utils.cc
|
||||||
+++ b/chrome/browser/after_startup_task_utils.cc
|
+++ b/chrome/browser/after_startup_task_utils.cc
|
||||||
@@ -24,6 +24,8 @@
|
@@ -24,6 +24,9 @@
|
||||||
#include "chrome/browser/ui/ash/login/login_display_host.h"
|
#include "chrome/browser/ui/ash/login/login_display_host.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
+#include "chrome/browser/browser_process.h"
|
+#include "chrome/browser/browser_process.h"
|
||||||
|
+#include "components/component_updater/adblock_updater_service.h"
|
||||||
+
|
+
|
||||||
using content::BrowserThread;
|
using content::BrowserThread;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
@@ -129,6 +131,8 @@ void SetBrowserStartupIsComplete() {
|
@@ -129,6 +132,8 @@ void SetBrowserStartupIsComplete() {
|
||||||
}
|
}
|
||||||
GetAfterStartupTasks().clear();
|
GetAfterStartupTasks().clear();
|
||||||
GetAfterStartupTasks().shrink_to_fit();
|
GetAfterStartupTasks().shrink_to_fit();
|
||||||
@@ -481,15 +505,7 @@ diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_s
|
|||||||
diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
|
diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
|
||||||
--- a/chrome/browser/browser_process.h
|
--- a/chrome/browser/browser_process.h
|
||||||
+++ b/chrome/browser/browser_process.h
|
+++ b/chrome/browser/browser_process.h
|
||||||
@@ -31,6 +31,7 @@
|
@@ -96,6 +96,10 @@ namespace component_updater {
|
||||||
#include "chrome/common/buildflags.h"
|
|
||||||
#include "components/safe_browsing/buildflags.h"
|
|
||||||
#include "media/media_buildflags.h"
|
|
||||||
+#include "components/component_updater/adblock_updater_service.h"
|
|
||||||
|
|
||||||
class BackgroundModeManager;
|
|
||||||
class BrowserProcessPlatformPart;
|
|
||||||
@@ -88,6 +89,10 @@ namespace component_updater {
|
|
||||||
class ComponentUpdateService;
|
class ComponentUpdateService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -500,18 +516,27 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
|
|||||||
namespace gcm {
|
namespace gcm {
|
||||||
class GCMDriver;
|
class GCMDriver;
|
||||||
}
|
}
|
||||||
@@ -271,6 +276,7 @@ class BrowserProcess {
|
@@ -294,6 +298,7 @@ class BrowserProcess {
|
||||||
#endif
|
virtual activity_reporter::ActivityReporter* activity_reporter() = 0;
|
||||||
|
|
||||||
virtual component_updater::ComponentUpdateService* component_updater() = 0;
|
virtual component_updater::ComponentUpdateService* component_updater() = 0;
|
||||||
+ virtual adblock_updater::AdBlockUpdaterService* adblock_updater() = 0;
|
+ virtual adblock_updater::AdBlockUpdaterService* adblock_updater() = 0;
|
||||||
|
|
||||||
|
#if BUILDFLAG(IS_CHROMEOS)
|
||||||
virtual MediaFileSystemRegistry* media_file_system_registry() = 0;
|
virtual MediaFileSystemRegistry* media_file_system_registry() = 0;
|
||||||
|
|
||||||
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
|
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
|
||||||
--- a/chrome/browser/browser_process_impl.cc
|
--- a/chrome/browser/browser_process_impl.cc
|
||||||
+++ b/chrome/browser/browser_process_impl.cc
|
+++ b/chrome/browser/browser_process_impl.cc
|
||||||
@@ -1271,6 +1271,34 @@ BrowserProcessImpl::component_updater() {
|
@@ -187,6 +187,8 @@
|
||||||
|
#include "ui/message_center/message_center.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#include "components/component_updater/adblock_updater_service.h"
|
||||||
|
+
|
||||||
|
#if BUILDFLAG(IS_ANDROID)
|
||||||
|
#include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h"
|
||||||
|
#include "chrome/browser/flags/android/chrome_feature_list.h"
|
||||||
|
@@ -1414,6 +1416,34 @@ BrowserProcessImpl::component_updater() {
|
||||||
return component_updater_.get();
|
return component_updater_.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -544,20 +569,20 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
void BrowserProcessImpl::OnKeepAliveStateChanged(bool is_keeping_alive) {
|
void BrowserProcessImpl::OnKeepAliveStateChanged(bool is_keeping_alive) {
|
||||||
if (is_keeping_alive)
|
if (is_keeping_alive) {
|
||||||
Pin();
|
Pin();
|
||||||
diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h
|
diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h
|
||||||
--- a/chrome/browser/browser_process_impl.h
|
--- a/chrome/browser/browser_process_impl.h
|
||||||
+++ b/chrome/browser/browser_process_impl.h
|
+++ b/chrome/browser/browser_process_impl.h
|
||||||
@@ -214,6 +214,7 @@ class BrowserProcessImpl : public BrowserProcess,
|
@@ -224,6 +224,7 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||||
#endif
|
|
||||||
|
|
||||||
|
activity_reporter::ActivityReporter* activity_reporter() override;
|
||||||
component_updater::ComponentUpdateService* component_updater() override;
|
component_updater::ComponentUpdateService* component_updater() override;
|
||||||
+ adblock_updater::AdBlockUpdaterService* adblock_updater() override;
|
+ adblock_updater::AdBlockUpdaterService* adblock_updater() override;
|
||||||
|
#if BUILDFLAG(IS_CHROMEOS)
|
||||||
MediaFileSystemRegistry* media_file_system_registry() override;
|
MediaFileSystemRegistry* media_file_system_registry() override;
|
||||||
WebRtcLogUploader* webrtc_log_uploader() override;
|
#endif
|
||||||
network_time::NetworkTimeTracker* network_time_tracker() override;
|
@@ -449,6 +450,7 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||||
@@ -431,6 +432,7 @@ class BrowserProcessImpl : public BrowserProcess,
|
|
||||||
// to concerns over integrity of data shared between profiles,
|
// to concerns over integrity of data shared between profiles,
|
||||||
// but some users of component updater only install per-user.
|
// but some users of component updater only install per-user.
|
||||||
std::unique_ptr<component_updater::ComponentUpdateService> component_updater_;
|
std::unique_ptr<component_updater::ComponentUpdateService> component_updater_;
|
||||||
@@ -568,7 +593,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
|
|||||||
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
|
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
|
||||||
--- a/chrome/browser/chrome_browser_main.cc
|
--- a/chrome/browser/chrome_browser_main.cc
|
||||||
+++ b/chrome/browser/chrome_browser_main.cc
|
+++ b/chrome/browser/chrome_browser_main.cc
|
||||||
@@ -387,6 +387,9 @@ StartupProfileInfo CreateInitialProfile(
|
@@ -449,6 +449,9 @@ StartupProfileInfo CreateInitialProfile(
|
||||||
// missing code in the above test.
|
// missing code in the above test.
|
||||||
CHECK(profile_info.profile) << "Cannot get default profile.";
|
CHECK(profile_info.profile) << "Cannot get default profile.";
|
||||||
|
|
||||||
@@ -581,7 +606,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows
|
|||||||
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
|
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
|
||||||
--- a/chrome/browser/flags/BUILD.gn
|
--- a/chrome/browser/flags/BUILD.gn
|
||||||
+++ b/chrome/browser/flags/BUILD.gn
|
+++ b/chrome/browser/flags/BUILD.gn
|
||||||
@@ -8,6 +8,7 @@ import("//third_party/jni_zero/jni_zero.gni")
|
@@ -9,6 +9,7 @@ import("//third_party/jni_zero/jni_zero.gni")
|
||||||
android_library("java") {
|
android_library("java") {
|
||||||
sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ]
|
sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ]
|
||||||
sources += [
|
sources += [
|
||||||
@@ -589,7 +614,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
|
|||||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java",
|
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java",
|
||||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
|
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
|
||||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
|
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
|
||||||
@@ -47,6 +48,7 @@ java_bromite_impl("java_cromite_cached_flags") {
|
@@ -49,6 +50,7 @@ java_bromite_impl("java_cromite_cached_flags") {
|
||||||
generate_jni("jni_headers") {
|
generate_jni("jni_headers") {
|
||||||
sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ]
|
sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ]
|
||||||
sources += [
|
sources += [
|
||||||
@@ -597,7 +622,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
|
|||||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
|
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
|
||||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
|
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
|
||||||
]
|
]
|
||||||
@@ -61,6 +63,7 @@ static_library("flags_android") {
|
@@ -62,6 +64,7 @@ static_library("flags_android") {
|
||||||
"android/chrome_session_state.cc",
|
"android/chrome_session_state.cc",
|
||||||
"android/chrome_session_state.h",
|
"android/chrome_session_state.h",
|
||||||
]
|
]
|
||||||
@@ -609,7 +634,7 @@ diff --git a/chrome/browser/flags/android/adblock_native_gateway.cc b/chrome/bro
|
|||||||
new file mode 100755
|
new file mode 100755
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/chrome/browser/flags/android/adblock_native_gateway.cc
|
+++ b/chrome/browser/flags/android/adblock_native_gateway.cc
|
||||||
@@ -0,0 +1,31 @@
|
@@ -0,0 +1,33 @@
|
||||||
+#include "chrome/browser/flags/jni_headers/AdBlockNativeGateway_jni.h"
|
+#include "chrome/browser/flags/jni_headers/AdBlockNativeGateway_jni.h"
|
||||||
+
|
+
|
||||||
+#include "base/android/jni_string.h"
|
+#include "base/android/jni_string.h"
|
||||||
@@ -618,7 +643,7 @@ new file mode 100755
|
|||||||
+#include "components/prefs/pref_service.h"
|
+#include "components/prefs/pref_service.h"
|
||||||
+
|
+
|
||||||
+using base::android::ScopedJavaLocalRef;
|
+using base::android::ScopedJavaLocalRef;
|
||||||
+using base::android::JavaParamRef;
|
+using base::android::JavaRef;
|
||||||
+
|
+
|
||||||
+static ScopedJavaLocalRef<jstring> JNI_AdBlockNativeGateway_GetAdBlockFiltersURL(
|
+static ScopedJavaLocalRef<jstring> JNI_AdBlockNativeGateway_GetAdBlockFiltersURL(
|
||||||
+ JNIEnv* env) {
|
+ JNIEnv* env) {
|
||||||
@@ -627,20 +652,22 @@ new file mode 100755
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static void JNI_AdBlockNativeGateway_SetAdBlockFiltersURL(
|
+static void JNI_AdBlockNativeGateway_SetAdBlockFiltersURL(
|
||||||
+ JNIEnv* env, const JavaParamRef<jstring>& url) {
|
+ JNIEnv* env, const JavaRef<jstring>& url) {
|
||||||
+ g_browser_process->local_state()->SetString(prefs::kAdBlockFiltersURL,
|
+ g_browser_process->local_state()->SetString(prefs::kAdBlockFiltersURL,
|
||||||
+ base::android::ConvertJavaStringToUTF8(env, url));
|
+ base::android::ConvertJavaStringToUTF8(env, url));
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static jboolean JNI_AdBlockNativeGateway_GetAdBlockEnabled(
|
+static bool JNI_AdBlockNativeGateway_GetAdBlockEnabled(
|
||||||
+ JNIEnv* env) {
|
+ JNIEnv* env) {
|
||||||
+ return g_browser_process->local_state()->GetBoolean(prefs::kAdBlockEnabled);
|
+ return g_browser_process->local_state()->GetBoolean(prefs::kAdBlockEnabled);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static void JNI_AdBlockNativeGateway_SetAdBlockEnabled(
|
+static void JNI_AdBlockNativeGateway_SetAdBlockEnabled(
|
||||||
+ JNIEnv* env, jboolean enabled) {
|
+ JNIEnv* env, bool enabled) {
|
||||||
+ g_browser_process->local_state()->SetBoolean(prefs::kAdBlockEnabled, enabled);
|
+ g_browser_process->local_state()->SetBoolean(prefs::kAdBlockEnabled, enabled);
|
||||||
+}
|
+}
|
||||||
|
+
|
||||||
|
+DEFINE_JNI(AdBlockNativeGateway)
|
||||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java
|
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java
|
||||||
new file mode 100755
|
new file mode 100755
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
@@ -669,7 +696,7 @@ new file mode 100755
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @NativeMethods
|
+ @NativeMethods
|
||||||
+ interface Natives {
|
+ public interface Natives {
|
||||||
+ void setAdBlockFiltersURL(String url);
|
+ void setAdBlockFiltersURL(String url);
|
||||||
+ String getAdBlockFiltersURL();
|
+ String getAdBlockFiltersURL();
|
||||||
+ void setAdBlockEnabled(boolean enabled);
|
+ void setAdBlockEnabled(boolean enabled);
|
||||||
@@ -679,9 +706,9 @@ new file mode 100755
|
|||||||
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
|
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
|
||||||
--- a/chrome/browser/net/system_network_context_manager.cc
|
--- a/chrome/browser/net/system_network_context_manager.cc
|
||||||
+++ b/chrome/browser/net/system_network_context_manager.cc
|
+++ b/chrome/browser/net/system_network_context_manager.cc
|
||||||
@@ -653,6 +653,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
@@ -718,6 +718,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||||
StubResolverConfigReader::RegisterPrefs(registry);
|
|
||||||
DefaultDnsOverHttpsConfigSource::RegisterPrefs(registry);
|
DefaultDnsOverHttpsConfigSource::RegisterPrefs(registry);
|
||||||
|
NetworkProcessLaunchWatcher::RegisterPrefs(registry);
|
||||||
|
|
||||||
+ registry->RegisterBooleanPref(prefs::kAdBlockEnabled, false);
|
+ registry->RegisterBooleanPref(prefs::kAdBlockEnabled, false);
|
||||||
+ registry->RegisterStringPref(prefs::kAdBlockFiltersURL,
|
+ registry->RegisterStringPref(prefs::kAdBlockFiltersURL,
|
||||||
@@ -690,28 +717,11 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
|
|||||||
// Static auth params
|
// Static auth params
|
||||||
registry->RegisterStringPref(prefs::kAuthSchemes,
|
registry->RegisterStringPref(prefs::kAuthSchemes,
|
||||||
"basic,digest,ntlm,negotiate");
|
"basic,digest,ntlm,negotiate");
|
||||||
diff --git a/chrome/browser/sessions/session_restore_android.cc b/chrome/browser/sessions/session_restore_android.cc
|
|
||||||
--- a/chrome/browser/sessions/session_restore_android.cc
|
|
||||||
+++ b/chrome/browser/sessions/session_restore_android.cc
|
|
||||||
@@ -58,8 +58,11 @@ content::WebContents* SessionRestore::RestoreForeignSessionTab(
|
|
||||||
DCHECK(current_tab);
|
|
||||||
// If swapped, return the current tab's most up-to-date web contents.
|
|
||||||
if (disposition == WindowOpenDisposition::CURRENT_TAB) {
|
|
||||||
- current_tab->SwapWebContents(std::move(new_web_contents), false, false);
|
|
||||||
- return current_tab->web_contents();
|
|
||||||
+ int active_tab_index = tab_model->GetActiveIndex();
|
|
||||||
+ tab_model->CreateTab(current_tab, new_web_contents.release(),
|
|
||||||
+ disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB);
|
|
||||||
+ tab_model->CloseTabAt(active_tab_index);
|
|
||||||
+ return raw_new_web_contents;
|
|
||||||
}
|
|
||||||
DCHECK(disposition == WindowOpenDisposition::NEW_FOREGROUND_TAB ||
|
|
||||||
disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB);
|
|
||||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
@@ -221,6 +221,20 @@ CHAR_LIMIT guidelines:
|
@@ -245,6 +245,20 @@ CHAR_LIMIT guidelines:
|
||||||
<ph name="PREF_TITLE">%1$s</ph> <ph name="BEGIN_NEW"><new></ph>New<ph name="END_NEW"></new></ph>
|
Delete
|
||||||
</message>
|
</message>
|
||||||
|
|
||||||
+ <!-- AdBlock settings -->
|
+ <!-- AdBlock settings -->
|
||||||
@@ -734,7 +744,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||||||
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
||||||
--- a/chrome/common/pref_names.h
|
--- a/chrome/common/pref_names.h
|
||||||
+++ b/chrome/common/pref_names.h
|
+++ b/chrome/common/pref_names.h
|
||||||
@@ -2895,6 +2895,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
|
@@ -2416,6 +2416,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
|
||||||
inline constexpr char kAudioCaptureAllowedUrls[] =
|
inline constexpr char kAudioCaptureAllowedUrls[] =
|
||||||
"hardware.audio_capture_allowed_urls";
|
"hardware.audio_capture_allowed_urls";
|
||||||
|
|
||||||
@@ -749,7 +759,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
|||||||
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
|
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
|
||||||
--- a/components/browser_ui/strings/android/site_settings.grdp
|
--- a/components/browser_ui/strings/android/site_settings.grdp
|
||||||
+++ b/components/browser_ui/strings/android/site_settings.grdp
|
+++ b/components/browser_ui/strings/android/site_settings.grdp
|
||||||
@@ -379,6 +379,9 @@
|
@@ -421,6 +421,9 @@
|
||||||
<message name="IDS_INTRUSIVE_ADS_INFORMATION" desc="The extra information at the top of the Site Details page when the site tends to show intrusive ads">
|
<message name="IDS_INTRUSIVE_ADS_INFORMATION" desc="The extra information at the top of the Site Details page when the site tends to show intrusive ads">
|
||||||
This site shows intrusive or misleading ads
|
This site shows intrusive or misleading ads
|
||||||
</message>
|
</message>
|
||||||
@@ -1111,7 +1121,7 @@ new file mode 100644
|
|||||||
+#include "components/component_updater/update_scheduler.h"
|
+#include "components/component_updater/update_scheduler.h"
|
||||||
+#include "url/gurl.h"
|
+#include "url/gurl.h"
|
||||||
+#include "components/component_updater/download_filters_task.h"
|
+#include "components/component_updater/download_filters_task.h"
|
||||||
+#include "components/subresource_filter/content/shared/browser/ruleset_service.h"
|
+#include "components/subresource_filter/content/browser/ruleset_service.h"
|
||||||
+#include "services/network/public/cpp/shared_url_loader_factory.h"
|
+#include "services/network/public/cpp/shared_url_loader_factory.h"
|
||||||
+
|
+
|
||||||
+namespace adblock_updater {
|
+namespace adblock_updater {
|
||||||
@@ -1573,17 +1583,18 @@ new file mode 100644
|
|||||||
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
||||||
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
||||||
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
||||||
@@ -18,6 +18,9 @@
|
@@ -17,7 +17,10 @@
|
||||||
#include "base/trace_event/trace_event.h"
|
#include "base/trace_event/trace_event.h"
|
||||||
#include "base/trace_event/traced_value.h"
|
#include "base/trace_event/traced_value.h"
|
||||||
#include "base/tracing/protos/chrome_track_event.pbzero.h"
|
#include "base/tracing/protos/chrome_track_event.pbzero.h"
|
||||||
+#include "components/content_settings/core/common/content_settings_types.h"
|
+#include "components/content_settings/core/common/content_settings_types.h"
|
||||||
|
#include "components/subresource_filter/content/browser/activation_state_computing_navigation_throttle.h"
|
||||||
+#include "components/subresource_filter/content/browser/subresource_filter_content_settings_manager.h"
|
+#include "components/subresource_filter/content/browser/subresource_filter_content_settings_manager.h"
|
||||||
+#include "components/subresource_filter/content/browser/subresource_filter_profile_context.h"
|
+#include "components/subresource_filter/content/browser/subresource_filter_profile_context.h"
|
||||||
#include "components/subresource_filter/content/browser/ad_tagging_utils.h"
|
#include "components/subresource_filter/content/browser/ad_tagging_utils.h"
|
||||||
#include "components/subresource_filter/content/browser/content_subresource_filter_web_contents_helper.h"
|
#include "components/subresource_filter/content/browser/content_subresource_filter_web_contents_helper.h"
|
||||||
#include "components/subresource_filter/content/browser/profile_interaction_manager.h"
|
#include "components/subresource_filter/content/browser/page_load_statistics.h"
|
||||||
@@ -114,6 +117,7 @@ ContentSubresourceFilterThrottleManager::
|
@@ -113,6 +116,7 @@ ContentSubresourceFilterThrottleManager::
|
||||||
profile_interaction_manager_(
|
profile_interaction_manager_(
|
||||||
std::make_unique<subresource_filter::ProfileInteractionManager>(
|
std::make_unique<subresource_filter::ProfileInteractionManager>(
|
||||||
profile_context)),
|
profile_context)),
|
||||||
@@ -1591,7 +1602,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
|
|||||||
web_contents_helper_(web_contents_helper) {}
|
web_contents_helper_(web_contents_helper) {}
|
||||||
|
|
||||||
ContentSubresourceFilterThrottleManager::
|
ContentSubresourceFilterThrottleManager::
|
||||||
@@ -628,6 +632,17 @@ ContentSubresourceFilterThrottleManager::
|
@@ -658,6 +662,17 @@ ContentSubresourceFilterThrottleManager::
|
||||||
throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
|
throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
|
||||||
ad_tagging_state);
|
ad_tagging_state);
|
||||||
}
|
}
|
||||||
@@ -1612,7 +1623,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
|
|||||||
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h
|
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h
|
||||||
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h
|
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h
|
||||||
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h
|
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h
|
||||||
@@ -403,6 +403,8 @@ class ContentSubresourceFilterThrottleManager
|
@@ -410,6 +410,8 @@ class ContentSubresourceFilterThrottleManager
|
||||||
|
|
||||||
std::unique_ptr<ProfileInteractionManager> profile_interaction_manager_;
|
std::unique_ptr<ProfileInteractionManager> profile_interaction_manager_;
|
||||||
|
|
||||||
@@ -1621,10 +1632,10 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
|
|||||||
// Unowned since the throttle manager cannot outlive the Page that owns it.
|
// Unowned since the throttle manager cannot outlive the Page that owns it.
|
||||||
// The throttle manager is held as user data first on NavigationHandle, then
|
// The throttle manager is held as user data first on NavigationHandle, then
|
||||||
// transferred to Page once it is created. Once the Page is created and this
|
// transferred to Page once it is created. Once the Page is created and this
|
||||||
diff --git a/components/subresource_filter/content/shared/browser/ruleset_service.cc b/components/subresource_filter/content/shared/browser/ruleset_service.cc
|
diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/components/subresource_filter/content/browser/ruleset_service.cc
|
||||||
--- a/components/subresource_filter/content/shared/browser/ruleset_service.cc
|
--- a/components/subresource_filter/content/browser/ruleset_service.cc
|
||||||
+++ b/components/subresource_filter/content/shared/browser/ruleset_service.cc
|
+++ b/components/subresource_filter/content/browser/ruleset_service.cc
|
||||||
@@ -50,12 +50,7 @@ namespace {
|
@@ -49,12 +49,7 @@ namespace {
|
||||||
void RecordIndexAndWriteRulesetResult(
|
void RecordIndexAndWriteRulesetResult(
|
||||||
std::string_view uma_tag,
|
std::string_view uma_tag,
|
||||||
RulesetService::IndexAndWriteRulesetResult result) {
|
RulesetService::IndexAndWriteRulesetResult result) {
|
||||||
@@ -1638,7 +1649,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Implements operations on a `sentinel file`, which is used as a safeguard to
|
// Implements operations on a `sentinel file`, which is used as a safeguard to
|
||||||
@@ -237,11 +232,13 @@ RulesetService::RulesetService(
|
@@ -236,11 +231,13 @@ RulesetService::RulesetService(
|
||||||
RulesetService::~RulesetService() = default;
|
RulesetService::~RulesetService() = default;
|
||||||
|
|
||||||
void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded(
|
void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded(
|
||||||
@@ -1653,7 +1664,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic
|
|||||||
// Trying to store a ruleset with the same version for a second time would
|
// Trying to store a ruleset with the same version for a second time would
|
||||||
// not only be futile, but would fail on Windows due to "File System
|
// not only be futile, but would fail on Windows due to "File System
|
||||||
// Tunneling" as long as the previously stored copy of the rules is still
|
// Tunneling" as long as the previously stored copy of the rules is still
|
||||||
@@ -251,13 +248,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded(
|
@@ -250,13 +247,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded(
|
||||||
if (most_recently_indexed_version.IsCurrentFormatVersion() &&
|
if (most_recently_indexed_version.IsCurrentFormatVersion() &&
|
||||||
most_recently_indexed_version.content_version ==
|
most_recently_indexed_version.content_version ==
|
||||||
unindexed_ruleset_info.content_version) {
|
unindexed_ruleset_info.content_version) {
|
||||||
@@ -1670,7 +1681,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -277,6 +277,23 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
@@ -276,6 +276,23 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||||
const RulesetConfig& config,
|
const RulesetConfig& config,
|
||||||
const base::FilePath& indexed_ruleset_base_dir,
|
const base::FilePath& indexed_ruleset_base_dir,
|
||||||
const UnindexedRulesetInfo& unindexed_ruleset_info) {
|
const UnindexedRulesetInfo& unindexed_ruleset_info) {
|
||||||
@@ -1694,7 +1705,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic
|
|||||||
base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
|
base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
|
||||||
base::BlockingType::MAY_BLOCK);
|
base::BlockingType::MAY_BLOCK);
|
||||||
|
|
||||||
@@ -284,6 +301,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
@@ -283,6 +300,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||||
unindexed_ruleset_info);
|
unindexed_ruleset_info);
|
||||||
|
|
||||||
if (!unindexed_ruleset_stream_generator.ruleset_stream()) {
|
if (!unindexed_ruleset_stream_generator.ruleset_stream()) {
|
||||||
@@ -1702,7 +1713,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic
|
|||||||
RecordIndexAndWriteRulesetResult(
|
RecordIndexAndWriteRulesetResult(
|
||||||
config.uma_tag,
|
config.uma_tag,
|
||||||
IndexAndWriteRulesetResult::kFailedOpeningUnindexedRuleset);
|
IndexAndWriteRulesetResult::kFailedOpeningUnindexedRuleset);
|
||||||
@@ -298,6 +316,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
@@ -297,6 +315,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||||
indexed_ruleset_base_dir, indexed_version);
|
indexed_ruleset_base_dir, indexed_version);
|
||||||
|
|
||||||
if (!base::CreateDirectory(indexed_ruleset_version_dir)) {
|
if (!base::CreateDirectory(indexed_ruleset_version_dir)) {
|
||||||
@@ -1710,7 +1721,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic
|
|||||||
RecordIndexAndWriteRulesetResult(
|
RecordIndexAndWriteRulesetResult(
|
||||||
config.uma_tag, IndexAndWriteRulesetResult::kFailedCreatingVersionDir);
|
config.uma_tag, IndexAndWriteRulesetResult::kFailedCreatingVersionDir);
|
||||||
return IndexedRulesetVersion(config.filter_tag);
|
return IndexedRulesetVersion(config.filter_tag);
|
||||||
@@ -305,13 +324,11 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
@@ -304,13 +323,11 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||||
|
|
||||||
SentinelFile sentinel_file(indexed_ruleset_version_dir);
|
SentinelFile sentinel_file(indexed_ruleset_version_dir);
|
||||||
if (sentinel_file.IsPresent()) {
|
if (sentinel_file.IsPresent()) {
|
||||||
@@ -1726,7 +1737,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic
|
|||||||
RecordIndexAndWriteRulesetResult(
|
RecordIndexAndWriteRulesetResult(
|
||||||
config.uma_tag,
|
config.uma_tag,
|
||||||
IndexAndWriteRulesetResult::kFailedCreatingSentinelFile);
|
IndexAndWriteRulesetResult::kFailedCreatingSentinelFile);
|
||||||
@@ -326,6 +343,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
@@ -325,6 +342,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||||
RulesetIndexer indexer;
|
RulesetIndexer indexer;
|
||||||
if (!(*g_index_ruleset_func)(config, &unindexed_ruleset_stream_generator,
|
if (!(*g_index_ruleset_func)(config, &unindexed_ruleset_stream_generator,
|
||||||
&indexer)) {
|
&indexer)) {
|
||||||
@@ -1734,7 +1745,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic
|
|||||||
RecordIndexAndWriteRulesetResult(
|
RecordIndexAndWriteRulesetResult(
|
||||||
config.uma_tag,
|
config.uma_tag,
|
||||||
IndexAndWriteRulesetResult::kFailedParsingUnindexedRuleset);
|
IndexAndWriteRulesetResult::kFailedParsingUnindexedRuleset);
|
||||||
@@ -346,9 +364,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
@@ -345,9 +363,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||||
unindexed_ruleset_info.license_path, indexer.data());
|
unindexed_ruleset_info.license_path, indexer.data());
|
||||||
RecordIndexAndWriteRulesetResult(config.uma_tag, result);
|
RecordIndexAndWriteRulesetResult(config.uma_tag, result);
|
||||||
if (result != IndexAndWriteRulesetResult::kSuccess) {
|
if (result != IndexAndWriteRulesetResult::kSuccess) {
|
||||||
@@ -1747,7 +1758,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic
|
|||||||
CHECK(indexed_version.IsValid());
|
CHECK(indexed_version.IsValid());
|
||||||
return indexed_version;
|
return indexed_version;
|
||||||
}
|
}
|
||||||
@@ -472,6 +493,7 @@ void RulesetService::IndexAndStoreRuleset(
|
@@ -471,6 +492,7 @@ void RulesetService::IndexAndStoreRuleset(
|
||||||
void RulesetService::OnWrittenRuleset(WriteRulesetCallback result_callback,
|
void RulesetService::OnWrittenRuleset(WriteRulesetCallback result_callback,
|
||||||
const IndexedRulesetVersion& version) {
|
const IndexedRulesetVersion& version) {
|
||||||
CHECK(!result_callback.is_null());
|
CHECK(!result_callback.is_null());
|
||||||
@@ -1755,9 +1766,9 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic
|
|||||||
if (!version.IsValid()) {
|
if (!version.IsValid()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
diff --git a/components/subresource_filter/content/shared/browser/ruleset_service.h b/components/subresource_filter/content/shared/browser/ruleset_service.h
|
diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/components/subresource_filter/content/browser/ruleset_service.h
|
||||||
--- a/components/subresource_filter/content/shared/browser/ruleset_service.h
|
--- a/components/subresource_filter/content/browser/ruleset_service.h
|
||||||
+++ b/components/subresource_filter/content/shared/browser/ruleset_service.h
|
+++ b/components/subresource_filter/content/browser/ruleset_service.h
|
||||||
@@ -183,7 +183,7 @@ class RulesetService {
|
@@ -183,7 +183,7 @@ class RulesetService {
|
||||||
//
|
//
|
||||||
// Virtual so that it can be mocked out in tests.
|
// Virtual so that it can be mocked out in tests.
|
||||||
@@ -1780,9 +1791,9 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic
|
|||||||
// Reads the rules via the |unindexed_ruleset_stream_generator|, and indexes
|
// Reads the rules via the |unindexed_ruleset_stream_generator|, and indexes
|
||||||
// them using |indexer|. Returns whether the entire ruleset could be parsed.
|
// them using |indexer|. Returns whether the entire ruleset could be parsed.
|
||||||
static bool IndexRuleset(
|
static bool IndexRuleset(
|
||||||
diff --git a/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc b/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc
|
diff --git a/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc b/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc
|
||||||
--- a/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc
|
--- a/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc
|
||||||
+++ b/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc
|
+++ b/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc
|
||||||
@@ -12,6 +12,7 @@
|
@@ -12,6 +12,7 @@
|
||||||
#include "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h"
|
#include "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h"
|
||||||
#include "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h"
|
#include "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h"
|
||||||
@@ -1817,7 +1828,7 @@ diff --git a/components/subresource_filter/core/browser/ruleset_version.h b/comp
|
|||||||
diff --git a/components/subresource_filter/core/browser/subresource_filter_features.cc b/components/subresource_filter/core/browser/subresource_filter_features.cc
|
diff --git a/components/subresource_filter/core/browser/subresource_filter_features.cc b/components/subresource_filter/core/browser/subresource_filter_features.cc
|
||||||
--- a/components/subresource_filter/core/browser/subresource_filter_features.cc
|
--- a/components/subresource_filter/core/browser/subresource_filter_features.cc
|
||||||
+++ b/components/subresource_filter/core/browser/subresource_filter_features.cc
|
+++ b/components/subresource_filter/core/browser/subresource_filter_features.cc
|
||||||
@@ -55,75 +55,8 @@ class CommaSeparatedStrings {
|
@@ -54,75 +54,8 @@ class CommaSeparatedStrings {
|
||||||
const std::vector<std::string_view> pieces_;
|
const std::vector<std::string_view> pieces_;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1894,7 +1905,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
|
|||||||
// If ad tagging is enabled, turn on the dryrun automatically.
|
// If ad tagging is enabled, turn on the dryrun automatically.
|
||||||
bool ad_tagging_enabled = base::FeatureList::IsEnabled(kAdTagging);
|
bool ad_tagging_enabled = base::FeatureList::IsEnabled(kAdTagging);
|
||||||
const struct {
|
const struct {
|
||||||
@@ -131,23 +64,16 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
|
@@ -130,23 +63,16 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
|
||||||
bool enabled_by_default;
|
bool enabled_by_default;
|
||||||
Configuration (*factory_method)();
|
Configuration (*factory_method)();
|
||||||
} kAvailablePresetConfigurations[] = {
|
} kAvailablePresetConfigurations[] = {
|
||||||
@@ -1920,7 +1931,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
|
|||||||
enabled_configurations.push_back(available_preset.factory_method());
|
enabled_configurations.push_back(available_preset.factory_method());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -155,48 +81,12 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
|
@@ -154,48 +80,12 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
|
||||||
return enabled_configurations;
|
return enabled_configurations;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1994,15 +2005,15 @@ diff --git a/components/subresource_filter/core/browser/verified_ruleset_dealer.
|
|||||||
diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/components/subresource_filter/core/common/indexed_ruleset.cc
|
diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/components/subresource_filter/core/common/indexed_ruleset.cc
|
||||||
--- a/components/subresource_filter/core/common/indexed_ruleset.cc
|
--- a/components/subresource_filter/core/common/indexed_ruleset.cc
|
||||||
+++ b/components/subresource_filter/core/common/indexed_ruleset.cc
|
+++ b/components/subresource_filter/core/common/indexed_ruleset.cc
|
||||||
@@ -6,6 +6,7 @@
|
@@ -7,6 +7,7 @@
|
||||||
|
|
||||||
#include "base/check.h"
|
#include "base/check.h"
|
||||||
|
#include "base/functional/callback.h"
|
||||||
#include "base/hash/hash.h"
|
#include "base/hash/hash.h"
|
||||||
+#include "base/logging.h"
|
+#include "base/logging.h"
|
||||||
#include "base/metrics/histogram_functions.h"
|
#include "base/metrics/histogram_functions.h"
|
||||||
#include "base/strings/strcat.h"
|
#include "base/strings/strcat.h"
|
||||||
#include "base/trace_event/trace_event.h"
|
#include "base/trace_event/trace_event.h"
|
||||||
@@ -37,7 +38,9 @@ VerifyStatus GetVerifyStatus(base::span<const uint8_t> buffer,
|
@@ -38,7 +39,9 @@ VerifyStatus GetVerifyStatus(base::span<const uint8_t> buffer,
|
||||||
// least once. The verifier detects a subset of the errors detected by the
|
// least once. The verifier detects a subset of the errors detected by the
|
||||||
// checksum, and is unneeded once expected_checksum is consistently nonzero.
|
// checksum, and is unneeded once expected_checksum is consistently nonzero.
|
||||||
flatbuffers::Verifier verifier(buffer.data(), buffer.size());
|
flatbuffers::Verifier verifier(buffer.data(), buffer.size());
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/ui/views/toolbar/reload_button.cc
|
diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/ui/views/toolbar/reload_button.cc
|
||||||
--- a/chrome/browser/ui/views/toolbar/reload_button.cc
|
--- a/chrome/browser/ui/views/toolbar/reload_button.cc
|
||||||
+++ b/chrome/browser/ui/views/toolbar/reload_button.cc
|
+++ b/chrome/browser/ui/views/toolbar/reload_button.cc
|
||||||
@@ -226,6 +226,14 @@ void ReloadButton::ButtonPressed(const ui::Event& event) {
|
@@ -291,6 +291,14 @@ void ReloadButton::ButtonPressed(const ui::Event& event) {
|
||||||
command = IDC_RELOAD;
|
command = IDC_RELOAD;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,9 +33,9 @@ diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/u
|
|||||||
diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
|
diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
|
||||||
--- a/ui/views/widget/widget.h
|
--- a/ui/views/widget/widget.h
|
||||||
+++ b/ui/views/widget/widget.h
|
+++ b/ui/views/widget/widget.h
|
||||||
@@ -1406,6 +1406,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
|
@@ -1474,6 +1474,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
|
||||||
void UpdateAccessibleNameForRootView();
|
// initialized.
|
||||||
void UpdateAccessibleURLForRootView(const GURL& url);
|
void SaveWindowPlacementIfNeeded();
|
||||||
|
|
||||||
+ // Type of ways to ignore activation changes.
|
+ // Type of ways to ignore activation changes.
|
||||||
+ enum class DisableActivationChangeHandlingType {
|
+ enum class DisableActivationChangeHandlingType {
|
||||||
@@ -53,8 +53,8 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
|
|||||||
protected:
|
protected:
|
||||||
// Creates the RootView to be used within this Widget. Subclasses may override
|
// Creates the RootView to be used within this Widget. Subclasses may override
|
||||||
// to create custom RootViews that do specialized event processing.
|
// to create custom RootViews that do specialized event processing.
|
||||||
@@ -1444,13 +1457,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
|
@@ -1516,13 +1529,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
|
||||||
ui::ColorProviderKey GetColorProviderKey() const override;
|
void set_widget_closed() { widget_closed_ = true; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
- // Type of ways to ignore activation changes.
|
- // Type of ways to ignore activation changes.
|
||||||
@@ -65,9 +65,9 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
|
|||||||
- };
|
- };
|
||||||
-
|
-
|
||||||
class PaintAsActiveLockImpl;
|
class PaintAsActiveLockImpl;
|
||||||
|
class ScopedCallStackLock;
|
||||||
|
|
||||||
friend class ButtonTest;
|
@@ -1534,11 +1540,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
|
||||||
@@ -1461,11 +1467,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
|
|
||||||
friend class ui_devtools::BubbleLocking;
|
friend class ui_devtools::BubbleLocking;
|
||||||
friend void DisableActivationChangeHandlingForTests();
|
friend void DisableActivationChangeHandlingForTests();
|
||||||
|
|
||||||
|
|||||||
@@ -6,20 +6,33 @@ In site settings added ability to block all popups per site
|
|||||||
|
|
||||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
---
|
---
|
||||||
|
.../settings/site_settings/popups_page.html | 2 +
|
||||||
.../tab_under_navigation_throttle.cc | 11 +-
|
.../tab_under_navigation_throttle.cc | 11 +-
|
||||||
.../android/popup_blocked_message_delegate.cc | 20 +++-
|
.../android/popup_blocked_message_delegate.cc | 20 ++-
|
||||||
.../android/popup_blocked_message_delegate.h | 1 +
|
.../android/popup_blocked_message_delegate.h | 1 +
|
||||||
components/blocked_content/popup_blocker.cc | 3 +
|
components/blocked_content/popup_blocker.cc | 3 +
|
||||||
components/blocked_content_strings.grdp | 3 +
|
components/blocked_content_strings.grdp | 3 +
|
||||||
.../impl/BromitePopupContentSetting.java | 106 ++++++++++++++++++
|
.../impl/BromitePopupContentSetting.java | 115 ++++++++++++++++++
|
||||||
.../bromite_content_settings/popups.grdp | 12 ++
|
.../bromite_content_settings/popups.grdp | 18 +++
|
||||||
.../bromite_content_settings/popups.inc | 8 ++
|
.../bromite_content_settings/popups.inc | 13 ++
|
||||||
.../core/browser/content_settings_registry.cc | 2 +-
|
.../core/browser/content_settings_registry.cc | 2 +-
|
||||||
9 files changed, 160 insertions(+), 6 deletions(-)
|
10 files changed, 182 insertions(+), 6 deletions(-)
|
||||||
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java
|
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java
|
||||||
create mode 100644 components/browser_ui/strings/bromite_content_settings/popups.grdp
|
create mode 100644 components/browser_ui/strings/bromite_content_settings/popups.grdp
|
||||||
create mode 100644 components/content_settings/core/browser/bromite_content_settings/popups.inc
|
create mode 100644 components/content_settings/core/browser/bromite_content_settings/popups.inc
|
||||||
|
|
||||||
|
diff --git a/chrome/browser/resources/settings/site_settings/popups_page.html b/chrome/browser/resources/settings/site_settings/popups_page.html
|
||||||
|
--- a/chrome/browser/resources/settings/site_settings/popups_page.html
|
||||||
|
+++ b/chrome/browser/resources/settings/site_settings/popups_page.html
|
||||||
|
@@ -10,6 +10,8 @@
|
||||||
|
category="[[contentSettingsTypesEnum_.POPUPS]]"
|
||||||
|
allow-option-label="$i18n{siteSettingsPopupsAllowed}"
|
||||||
|
allow-option-icon="cr:open-in-new"
|
||||||
|
+ ask-option-label="$i18n{brSiteSettingspopupsAsk}"
|
||||||
|
+ ask-option-icon="privacy:open-in-new-off"
|
||||||
|
block-option-label="$i18n{siteSettingsPopupsBlocked}"
|
||||||
|
block-option-icon="privacy:open-in-new-off">
|
||||||
|
</settings-category-default-radio-group>
|
||||||
diff --git a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
|
diff --git a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
|
||||||
--- a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
|
--- a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
|
||||||
+++ b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
|
+++ b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
|
||||||
@@ -133,7 +146,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
|||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java
|
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java
|
||||||
@@ -0,0 +1,106 @@
|
@@ -0,0 +1,115 @@
|
||||||
+/*
|
+/*
|
||||||
+ This file is part of Bromite.
|
+ This file is part of Bromite.
|
||||||
+
|
+
|
||||||
@@ -160,7 +173,7 @@ new file mode 100644
|
|||||||
+import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting;
|
+import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting;
|
||||||
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
|
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
|
||||||
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
|
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
|
||||||
+import org.chromium.components.content_settings.ContentSettingValues;
|
+import org.chromium.components.content_settings.ContentSetting;
|
||||||
+import org.chromium.components.content_settings.ContentSettingsType;
|
+import org.chromium.components.content_settings.ContentSettingsType;
|
||||||
+import org.chromium.content_public.browser.BrowserContextHandle;
|
+import org.chromium.content_public.browser.BrowserContextHandle;
|
||||||
+
|
+
|
||||||
@@ -173,8 +186,8 @@ new file mode 100644
|
|||||||
+public class BromitePopupContentSetting extends BromiteCustomContentSetting {
|
+public class BromitePopupContentSetting extends BromiteCustomContentSetting {
|
||||||
+ public BromitePopupContentSetting() {
|
+ public BromitePopupContentSetting() {
|
||||||
+ super(/*contentSettingsType*/ ContentSettingsType.POPUPS,
|
+ super(/*contentSettingsType*/ ContentSettingsType.POPUPS,
|
||||||
+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW,
|
+ /*defaultEnabledValue*/ ContentSetting.ALLOW,
|
||||||
+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK,
|
+ /*defaultDisabledValue*/ ContentSetting.BLOCK,
|
||||||
+ /*allowException*/ true,
|
+ /*allowException*/ true,
|
||||||
+ /*preferenceKey*/ "popups",
|
+ /*preferenceKey*/ "popups",
|
||||||
+ /*profilePrefKey*/ "popups");
|
+ /*profilePrefKey*/ "popups");
|
||||||
@@ -193,13 +206,13 @@ new file mode 100644
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public int getCategorySummary(@Nullable @ContentSettingValues int value) {
|
+ public int getCategorySummary(@Nullable @ContentSetting int value) {
|
||||||
+ switch (value) {
|
+ switch (value) {
|
||||||
+ case ContentSettingValues.ALLOW:
|
+ case ContentSetting.ALLOW:
|
||||||
+ return R.string.website_settings_category_popup_allowed;
|
+ return R.string.website_settings_category_popup_allowed;
|
||||||
+ case ContentSettingValues.BLOCK:
|
+ case ContentSetting.BLOCK:
|
||||||
+ return R.string.website_settings_category_popup_blocked;
|
+ return R.string.website_settings_category_popup_blocked;
|
||||||
+ case ContentSettingValues.ASK:
|
+ case ContentSetting.ASK:
|
||||||
+ return R.string.website_settings_category_popup_block_all;
|
+ return R.string.website_settings_category_popup_block_all;
|
||||||
+ default:
|
+ default:
|
||||||
+ return 0;
|
+ return 0;
|
||||||
@@ -226,6 +239,15 @@ new file mode 100644
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
|
+ public int[] getTriStateSettingIconIDs() {
|
||||||
|
+ return new int[] {
|
||||||
|
+ R.drawable.permission_popups,
|
||||||
|
+ R.drawable.permission_popups,
|
||||||
|
+ R.drawable.sensors_off_24px
|
||||||
|
+ };
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
+ public boolean showOnlyDescriptions() {
|
+ public boolean showOnlyDescriptions() {
|
||||||
+ return true;
|
+ return true;
|
||||||
+ }
|
+ }
|
||||||
@@ -236,17 +258,23 @@ new file mode 100644
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) {
|
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) {
|
||||||
+ return ContentSettingValues.ALLOW != value;
|
+ return ContentSetting.ALLOW != value;
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/components/browser_ui/strings/bromite_content_settings/popups.grdp b/components/browser_ui/strings/bromite_content_settings/popups.grdp
|
diff --git a/components/browser_ui/strings/bromite_content_settings/popups.grdp b/components/browser_ui/strings/bromite_content_settings/popups.grdp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/components/browser_ui/strings/bromite_content_settings/popups.grdp
|
+++ b/components/browser_ui/strings/bromite_content_settings/popups.grdp
|
||||||
@@ -0,0 +1,12 @@
|
@@ -0,0 +1,18 @@
|
||||||
+<?xml version="1.0" encoding="utf-8"?>
|
+<?xml version="1.0" encoding="utf-8"?>
|
||||||
+<grit-part>
|
+<grit-part>
|
||||||
|
+ <message name="IDS_WEBSITE_SETTINGS_CATEGORY_POPUP" desc="" formatter_data="android_java">
|
||||||
|
+ Block sites from showing pop-ups and redirects
|
||||||
|
+ </message>
|
||||||
|
+ <message name="IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_DESCRIPTION" desc="" formatter_data="android_java">
|
||||||
|
+ When on, sites can use pop-ups and redirects. When off, sites can’t use pop-ups and redirects.
|
||||||
|
+ </message>
|
||||||
+ <message name="IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCK_ALL" desc="" formatter_data="android_java">
|
+ <message name="IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCK_ALL" desc="" formatter_data="android_java">
|
||||||
+ Block all popups
|
+ Block all popups
|
||||||
+ </message>
|
+ </message>
|
||||||
@@ -261,19 +289,24 @@ diff --git a/components/content_settings/core/browser/bromite_content_settings/p
|
|||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/components/content_settings/core/browser/bromite_content_settings/popups.inc
|
+++ b/components/content_settings/core/browser/bromite_content_settings/popups.inc
|
||||||
@@ -0,0 +1,8 @@
|
@@ -0,0 +1,13 @@
|
||||||
+ content_settings::WebsiteSettingsRegistry::GetInstance()
|
+ content_settings::WebsiteSettingsRegistry::GetInstance()
|
||||||
+ ->GetMutable(ContentSettingsType::POPUPS)
|
+ ->GetMutable(ContentSettingsType::POPUPS)
|
||||||
+ ->set_show_into_info_page()
|
+ ->set_show_into_info_page()
|
||||||
+ .set_desktop_ui()
|
+ .set_desktop_ui()
|
||||||
+ .set_is_renderer_content_setting()
|
+ .set_is_renderer_content_setting()
|
||||||
|
+ .set_title_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP)
|
||||||
|
+ .set_description_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_DESCRIPTION)
|
||||||
+ .set_allowed_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_ALLOWED)
|
+ .set_allowed_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_ALLOWED)
|
||||||
+ .set_ask_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCK_ALL)
|
+ .set_ask_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCK_ALL)
|
||||||
+ .set_blocked_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCKED);
|
+ .set_blocked_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCKED)
|
||||||
|
+ .set_allowed_exceptions_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_ALLOWED)
|
||||||
|
+ .set_blocked_exceptions_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCKED)
|
||||||
|
+ .set_mid_sentence_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP);
|
||||||
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
|
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
|
||||||
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
||||||
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
||||||
@@ -134,7 +134,7 @@ void ContentSettingsRegistry::Init() {
|
@@ -139,7 +139,7 @@ void ContentSettingsRegistry::Init() {
|
||||||
WebsiteSettingsInfo::SYNCABLE,
|
WebsiteSettingsInfo::SYNCABLE,
|
||||||
/*allowlisted_primary_schemes=*/
|
/*allowlisted_primary_schemes=*/
|
||||||
{kChromeUIScheme, kChromeDevToolsScheme, kExtensionScheme},
|
{kChromeUIScheme, kChromeDevToolsScheme, kExtensionScheme},
|
||||||
|
|||||||
@@ -16,46 +16,46 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
chrome/app/extensions_strings.grdp | 6 ++
|
chrome/app/extensions_strings.grdp | 6 ++
|
||||||
.../developer_private_api.cc | 28 +++++++++
|
.../developer_private_api.cc | 28 +++++++++
|
||||||
.../developer_private/developer_private_api.h | 3 +
|
.../developer_private/developer_private_api.h | 3 +
|
||||||
.../developer_private_functions_shared.cc | 8 ++-
|
.../developer_private_functions.cc | 8 ++-
|
||||||
.../profile_info_generator.cc | 3 +
|
.../profile_info_generator.cc | 3 +
|
||||||
.../webstore_private/webstore_private_api.cc | 15 ++++-
|
.../webstore_private/webstore_private_api.cc | 14 ++++-
|
||||||
.../extensions/chrome_extension_system.cc | 1 +
|
.../extensions/chrome_extension_system.cc | 1 +
|
||||||
.../extensions/cws_info_service_factory.cc | 3 +-
|
.../extensions/cws_info_service_factory.cc | 3 +-
|
||||||
.../extensions/extension_management.cc | 1 +
|
.../extensions/extension_management.cc | 1 +
|
||||||
.../extension_safety_check_utils.cc | 3 +-
|
.../extension_safety_check_utils.cc | 3 +-
|
||||||
.../browser/extensions/extension_service.cc | 4 +-
|
.../browser/extensions/extension_service.cc | 5 +-
|
||||||
.../chrome_extension_downloader_factory.cc | 1 -
|
.../chrome_extension_downloader_factory.cc | 1 -
|
||||||
.../extensions/updater/extension_updater.cc | 40 ++++++++-----
|
.../extensions/updater/extension_updater.cc | 26 ++++++--
|
||||||
.../extensions/updater/extension_updater.h | 4 ++
|
.../extensions/updater/extension_updater.h | 4 ++
|
||||||
.../extensions/webstore_install_helper.cc | 2 +-
|
.../extensions/webstore_install_helper.cc | 2 +-
|
||||||
.../browser/extensions/webstore_installer.cc | 2 +-
|
|
||||||
.../resources/extensions/manager.html.ts | 1 +
|
.../resources/extensions/manager.html.ts | 1 +
|
||||||
.../browser/resources/extensions/manager.ts | 5 ++
|
.../browser/resources/extensions/manager.ts | 5 ++
|
||||||
.../browser/resources/extensions/service.ts | 5 ++
|
.../browser/resources/extensions/service.ts | 5 ++
|
||||||
.../browser/resources/extensions/toolbar.css | 5 ++
|
.../browser/resources/extensions/toolbar.css | 5 ++
|
||||||
.../resources/extensions/toolbar.html.ts | 7 +++
|
.../resources/extensions/toolbar.html.ts | 7 +++
|
||||||
.../browser/resources/extensions/toolbar.ts | 17 ++++++
|
.../browser/resources/extensions/toolbar.ts | 17 +++++
|
||||||
.../resources/webstore_app/manifest.json | 7 +--
|
.../resources/webstore_app/manifest.json | 7 +--
|
||||||
.../ui/webui/extensions/extensions_ui.cc | 7 +++
|
.../ui/webui/extensions/extensions_ui.cc | 7 +++
|
||||||
.../chrome_update_query_params_delegate.cc | 13 ++--
|
.../chrome_update_query_params_delegate.cc | 13 ++--
|
||||||
.../extensions/api/developer_private.idl | 2 +
|
.../extensions/api/developer_private.webidl | 2 +
|
||||||
.../update_client/update_query_params.cc | 7 +--
|
.../update_client/update_query_params.cc | 5 +-
|
||||||
.../about_flags_cc/Webstore-protection.inc | 19 ++++++
|
.../about_flags_cc/Webstore-protection.inc | 19 ++++++
|
||||||
.../browser/api/management/management_api.cc | 60 ++++++++++++-------
|
.../browser/api/management/management_api.cc | 62 +++++++++++++------
|
||||||
.../browser/updater/extension_downloader.cc | 53 +++++++---------
|
.../browser/updater/extension_downloader.cc | 53 ++++++----------
|
||||||
.../browser/updater/extension_downloader.h | 1 -
|
.../browser/updater/extension_downloader.h | 1 -
|
||||||
.../browser/updater/manifest_fetch_data.cc | 8 +--
|
.../browser/updater/manifest_fetch_data.cc | 8 +--
|
||||||
.../browser/updater/safe_manifest_parser.cc | 1 +
|
.../browser/updater/safe_manifest_parser.cc | 1 +
|
||||||
extensions/common/extension_features.cc | 14 +++++
|
extensions/browser/webstore_installer.cc | 2 +-
|
||||||
extensions/common/extension_features.h | 2 +
|
extensions/common/extension_features.cc | 7 +++
|
||||||
|
extensions/common/extension_features.h | 10 +++
|
||||||
.../definitions/developer_private.d.ts | 2 +
|
.../definitions/developer_private.d.ts | 2 +
|
||||||
36 files changed, 252 insertions(+), 108 deletions(-)
|
36 files changed, 250 insertions(+), 97 deletions(-)
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc
|
||||||
|
|
||||||
diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp
|
diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp
|
||||||
--- a/chrome/app/extensions_strings.grdp
|
--- a/chrome/app/extensions_strings.grdp
|
||||||
+++ b/chrome/app/extensions_strings.grdp
|
+++ b/chrome/app/extensions_strings.grdp
|
||||||
@@ -88,6 +88,12 @@
|
@@ -79,6 +79,12 @@
|
||||||
<message name="IDS_EXTENSIONS_DISABLED_UNSUPPORTED_DEVELOPER_MODE_TOAST" desc="Text displayed in a toast popup message when extensions are disabled due to unsupported developer mode.">
|
<message name="IDS_EXTENSIONS_DISABLED_UNSUPPORTED_DEVELOPER_MODE_TOAST" desc="Text displayed in a toast popup message when extensions are disabled due to unsupported developer mode.">
|
||||||
Developer Mode Off. Some extensions were disabled.
|
Developer Mode Off. Some extensions were disabled.
|
||||||
</message>
|
</message>
|
||||||
@@ -71,9 +71,9 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.
|
|||||||
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
|
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
|
||||||
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc
|
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc
|
||||||
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
|
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
|
||||||
@@ -24,6 +24,12 @@
|
@@ -28,6 +28,12 @@
|
||||||
#include "extensions/browser/app_window/app_window_registry.h"
|
|
||||||
#endif // BUILDFLAG(ENABLE_EXTENSIONS)
|
static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE));
|
||||||
|
|
||||||
+#include "chrome/browser/about_flags.h"
|
+#include "chrome/browser/about_flags.h"
|
||||||
+#include "chrome/browser/browser_process.h"
|
+#include "chrome/browser/browser_process.h"
|
||||||
@@ -84,7 +84,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
|
|||||||
namespace extensions {
|
namespace extensions {
|
||||||
|
|
||||||
namespace developer = api::developer_private;
|
namespace developer = api::developer_private;
|
||||||
@@ -65,6 +71,28 @@ DeveloperPrivateAPI::GetFactoryInstance() {
|
@@ -70,6 +76,28 @@ DeveloperPrivateAPI::GetFactoryInstance() {
|
||||||
return g_developer_private_api_factory.Pointer();
|
return g_developer_private_api_factory.Pointer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
|
|||||||
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.h b/chrome/browser/extensions/api/developer_private/developer_private_api.h
|
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.h b/chrome/browser/extensions/api/developer_private/developer_private_api.h
|
||||||
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.h
|
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.h
|
||||||
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.h
|
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.h
|
||||||
@@ -33,6 +33,9 @@ class DeveloperPrivateAPI : public BrowserContextKeyedAPI,
|
@@ -37,6 +37,9 @@ class DeveloperPrivateAPI : public BrowserContextKeyedAPI,
|
||||||
static BrowserContextKeyedAPIFactory<DeveloperPrivateAPI>*
|
static BrowserContextKeyedAPIFactory<DeveloperPrivateAPI>*
|
||||||
GetFactoryInstance();
|
GetFactoryInstance();
|
||||||
|
|
||||||
@@ -126,10 +126,10 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
|
|||||||
// Convenience method to get the DeveloperPrivateAPI for a profile.
|
// Convenience method to get the DeveloperPrivateAPI for a profile.
|
||||||
static DeveloperPrivateAPI* Get(content::BrowserContext* context);
|
static DeveloperPrivateAPI* Get(content::BrowserContext* context);
|
||||||
|
|
||||||
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
|
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions.cc
|
||||||
--- a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
|
--- a/chrome/browser/extensions/api/developer_private/developer_private_functions.cc
|
||||||
+++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
|
+++ b/chrome/browser/extensions/api/developer_private/developer_private_functions.cc
|
||||||
@@ -301,6 +301,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() {
|
@@ -451,6 +451,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() {
|
||||||
ExtensionUpdater::CheckParams params;
|
ExtensionUpdater::CheckParams params;
|
||||||
params.fetch_priority = DownloadFetchPriority::kForeground;
|
params.fetch_priority = DownloadFetchPriority::kForeground;
|
||||||
params.install_immediately = true;
|
params.install_immediately = true;
|
||||||
@@ -137,7 +137,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f
|
|||||||
params.callback =
|
params.callback =
|
||||||
base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this);
|
base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this);
|
||||||
updater->CheckNow(std::move(params));
|
updater->CheckNow(std::move(params));
|
||||||
@@ -439,7 +440,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
|
@@ -587,7 +588,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
|
||||||
|
|
||||||
const developer::ProfileConfigurationUpdate& update = params->update;
|
const developer::ProfileConfigurationUpdate& update = params->update;
|
||||||
|
|
||||||
@@ -146,9 +146,9 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f
|
|||||||
Profile* profile = Profile::FromBrowserContext(browser_context());
|
Profile* profile = Profile::FromBrowserContext(browser_context());
|
||||||
CHECK(profile);
|
CHECK(profile);
|
||||||
if (supervised_user::AreExtensionsPermissionsEnabled(profile)) {
|
if (supervised_user::AreExtensionsPermissionsEnabled(profile)) {
|
||||||
@@ -456,6 +457,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
|
@@ -601,6 +602,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
|
||||||
|
->MarkNoticeAsAcknowledgedGlobally();
|
||||||
}
|
}
|
||||||
#endif // !BUILDFLAG(IS_ANDROID)
|
|
||||||
|
|
||||||
+ if (update.is_extension_autoupdate_enabled.has_value()) {
|
+ if (update.is_extension_autoupdate_enabled.has_value()) {
|
||||||
+ DeveloperPrivateAPI::SetExtensionAutoupdateEnabled(
|
+ DeveloperPrivateAPI::SetExtensionAutoupdateEnabled(
|
||||||
@@ -161,7 +161,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f
|
|||||||
diff --git a/chrome/browser/extensions/api/developer_private/profile_info_generator.cc b/chrome/browser/extensions/api/developer_private/profile_info_generator.cc
|
diff --git a/chrome/browser/extensions/api/developer_private/profile_info_generator.cc b/chrome/browser/extensions/api/developer_private/profile_info_generator.cc
|
||||||
--- a/chrome/browser/extensions/api/developer_private/profile_info_generator.cc
|
--- a/chrome/browser/extensions/api/developer_private/profile_info_generator.cc
|
||||||
+++ b/chrome/browser/extensions/api/developer_private/profile_info_generator.cc
|
+++ b/chrome/browser/extensions/api/developer_private/profile_info_generator.cc
|
||||||
@@ -9,6 +9,7 @@
|
@@ -10,6 +10,7 @@
|
||||||
#include "chrome/browser/prefs/incognito_mode_prefs.h"
|
#include "chrome/browser/prefs/incognito_mode_prefs.h"
|
||||||
#include "chrome/browser/profiles/profile.h"
|
#include "chrome/browser/profiles/profile.h"
|
||||||
#include "chrome/browser/supervised_user/supervised_user_browser_utils.h"
|
#include "chrome/browser/supervised_user/supervised_user_browser_utils.h"
|
||||||
@@ -169,9 +169,9 @@ diff --git a/chrome/browser/extensions/api/developer_private/profile_info_genera
|
|||||||
#include "chrome/common/pref_names.h"
|
#include "chrome/common/pref_names.h"
|
||||||
#include "components/policy/core/common/policy_pref_names.h"
|
#include "components/policy/core/common/policy_pref_names.h"
|
||||||
#include "components/prefs/pref_service.h"
|
#include "components/prefs/pref_service.h"
|
||||||
@@ -44,6 +45,8 @@ developer::ProfileInfo CreateProfileInfo(Profile* profile) {
|
@@ -42,6 +43,8 @@ developer::ProfileInfo CreateProfileInfo(Profile* profile) {
|
||||||
|
ManifestV2ExperimentManager::Get(profile)
|
||||||
->DidUserAcknowledgeNoticeGlobally();
|
->DidUserAcknowledgeNoticeGlobally();
|
||||||
#endif // BUILDFLAG(ENABLE_EXTENSIONS)
|
|
||||||
|
|
||||||
+ info.is_extension_autoupdate_enabled =
|
+ info.is_extension_autoupdate_enabled =
|
||||||
+ DeveloperPrivateAPI::IsExtensionAutoupdateEnabled();
|
+ DeveloperPrivateAPI::IsExtensionAutoupdateEnabled();
|
||||||
@@ -181,15 +181,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/profile_info_genera
|
|||||||
diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
|
diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
|
||||||
--- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
|
--- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
|
||||||
+++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
|
+++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
|
||||||
@@ -60,6 +60,7 @@
|
@@ -253,6 +253,8 @@ Profile* GetProfileInIncognito(Profile* profile) {
|
||||||
#include "extensions/browser/extension_util.h"
|
|
||||||
#include "extensions/browser/extensions_browser_client.h"
|
|
||||||
#include "extensions/common/extension.h"
|
|
||||||
+#include "extensions/common/extension_features.h"
|
|
||||||
#include "extensions/common/manifest.h"
|
|
||||||
#include "extensions/common/manifest_constants.h"
|
|
||||||
#include "extensions/common/manifest_handlers/permissions_parser.h"
|
|
||||||
@@ -223,6 +224,8 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr;
|
|
||||||
// there was previously stored data, or an empty string otherwise. The Set will
|
// there was previously stored data, or an empty string otherwise. The Set will
|
||||||
// overwrite any previous login.
|
// overwrite any previous login.
|
||||||
std::string GetWebstoreLogin(Profile* profile) {
|
std::string GetWebstoreLogin(Profile* profile) {
|
||||||
@@ -198,7 +190,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
|
|||||||
if (profile->GetPrefs()->HasPrefPath(kWebstoreLogin)) {
|
if (profile->GetPrefs()->HasPrefPath(kWebstoreLogin)) {
|
||||||
return profile->GetPrefs()->GetString(kWebstoreLogin);
|
return profile->GetPrefs()->GetString(kWebstoreLogin);
|
||||||
}
|
}
|
||||||
@@ -230,11 +233,15 @@ std::string GetWebstoreLogin(Profile* profile) {
|
@@ -260,11 +262,15 @@ std::string GetWebstoreLogin(Profile* profile) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetWebstoreLogin(Profile* profile, const std::string& login) {
|
void SetWebstoreLogin(Profile* profile, const std::string& login) {
|
||||||
@@ -214,9 +206,9 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
|
|||||||
switch (status) {
|
switch (status) {
|
||||||
case kCanRequest:
|
case kCanRequest:
|
||||||
return api::webstore_private::ExtensionInstallStatus::kCanRequest;
|
return api::webstore_private::ExtensionInstallStatus::kCanRequest;
|
||||||
@@ -1157,7 +1164,8 @@ ExtensionFunction::ResponseAction
|
@@ -1321,7 +1327,8 @@ ExtensionFunction::ResponseAction
|
||||||
WebstorePrivateIsInIncognitoModeFunction::Run() {
|
WebstorePrivateIsInIncognitoModeFunction::Run() {
|
||||||
Profile* profile = Profile::FromBrowserContext(browser_context());
|
Profile* profile = GetProfileInIncognito(Profile::FromBrowserContext(browser_context()));
|
||||||
return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create(
|
return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create(
|
||||||
- profile != profile->GetOriginalProfile())));
|
- profile != profile->GetOriginalProfile())));
|
||||||
+ base::FeatureList::IsEnabled(extensions_features::kEnableExtensionManagementToChromeStore)
|
+ base::FeatureList::IsEnabled(extensions_features::kEnableExtensionManagementToChromeStore)
|
||||||
@@ -224,7 +216,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
|
|||||||
}
|
}
|
||||||
|
|
||||||
WebstorePrivateIsPendingCustodianApprovalFunction::
|
WebstorePrivateIsPendingCustodianApprovalFunction::
|
||||||
@@ -1253,11 +1261,14 @@ WebstorePrivateGetReferrerChainFunction::Run() {
|
@@ -1418,11 +1425,14 @@ WebstorePrivateGetReferrerChainFunction::Run() {
|
||||||
request.mutable_referrer_chain_options()->set_recent_navigations_to_collect(
|
request.mutable_referrer_chain_options()->set_recent_navigations_to_collect(
|
||||||
recent_navigations_to_collect);
|
recent_navigations_to_collect);
|
||||||
|
|
||||||
@@ -243,7 +235,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
|
|||||||
diff --git a/chrome/browser/extensions/chrome_extension_system.cc b/chrome/browser/extensions/chrome_extension_system.cc
|
diff --git a/chrome/browser/extensions/chrome_extension_system.cc b/chrome/browser/extensions/chrome_extension_system.cc
|
||||||
--- a/chrome/browser/extensions/chrome_extension_system.cc
|
--- a/chrome/browser/extensions/chrome_extension_system.cc
|
||||||
+++ b/chrome/browser/extensions/chrome_extension_system.cc
|
+++ b/chrome/browser/extensions/chrome_extension_system.cc
|
||||||
@@ -92,6 +92,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing(
|
@@ -100,6 +100,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing(
|
||||||
Profile* profile,
|
Profile* profile,
|
||||||
const Extension* extension,
|
const Extension* extension,
|
||||||
UninstallReason reason) {
|
UninstallReason reason) {
|
||||||
@@ -254,7 +246,7 @@ diff --git a/chrome/browser/extensions/chrome_extension_system.cc b/chrome/brows
|
|||||||
diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/browser/extensions/cws_info_service_factory.cc
|
diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/browser/extensions/cws_info_service_factory.cc
|
||||||
--- a/chrome/browser/extensions/cws_info_service_factory.cc
|
--- a/chrome/browser/extensions/cws_info_service_factory.cc
|
||||||
+++ b/chrome/browser/extensions/cws_info_service_factory.cc
|
+++ b/chrome/browser/extensions/cws_info_service_factory.cc
|
||||||
@@ -47,7 +47,8 @@ CWSInfoServiceFactory::CWSInfoServiceFactory()
|
@@ -50,7 +50,8 @@ CWSInfoServiceFactory::CWSInfoServiceFactory()
|
||||||
std::unique_ptr<KeyedService>
|
std::unique_ptr<KeyedService>
|
||||||
CWSInfoServiceFactory::BuildServiceInstanceForBrowserContext(
|
CWSInfoServiceFactory::BuildServiceInstanceForBrowserContext(
|
||||||
content::BrowserContext* context) const {
|
content::BrowserContext* context) const {
|
||||||
@@ -267,7 +259,7 @@ diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/brow
|
|||||||
diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc
|
diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc
|
||||||
--- a/chrome/browser/extensions/extension_management.cc
|
--- a/chrome/browser/extensions/extension_management.cc
|
||||||
+++ b/chrome/browser/extensions/extension_management.cc
|
+++ b/chrome/browser/extensions/extension_management.cc
|
||||||
@@ -391,6 +391,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy(
|
@@ -436,6 +436,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy(
|
||||||
|
|
||||||
bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy(
|
bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy(
|
||||||
const Extension* extension) {
|
const Extension* extension) {
|
||||||
@@ -278,7 +270,7 @@ diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/
|
|||||||
diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/browser/extensions/extension_safety_check_utils.cc
|
diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/browser/extensions/extension_safety_check_utils.cc
|
||||||
--- a/chrome/browser/extensions/extension_safety_check_utils.cc
|
--- a/chrome/browser/extensions/extension_safety_check_utils.cc
|
||||||
+++ b/chrome/browser/extensions/extension_safety_check_utils.cc
|
+++ b/chrome/browser/extensions/extension_safety_check_utils.cc
|
||||||
@@ -240,8 +240,7 @@ developer::SafetyCheckWarningReason GetSafetyCheckWarningReasonHelper(
|
@@ -244,8 +244,7 @@ developer::SafetyCheckWarningReason GetSafetyCheckWarningReasonHelper(
|
||||||
developer::SafetyCheckWarningReason acknowledged_reason =
|
developer::SafetyCheckWarningReason acknowledged_reason =
|
||||||
GetPrefAcknowledgeSafetyCheckWarningReason(extension,
|
GetPrefAcknowledgeSafetyCheckWarningReason(extension,
|
||||||
ExtensionPrefs::Get(profile));
|
ExtensionPrefs::Get(profile));
|
||||||
@@ -291,16 +283,17 @@ diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/
|
|||||||
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
|
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
|
||||||
--- a/chrome/browser/extensions/extension_service.cc
|
--- a/chrome/browser/extensions/extension_service.cc
|
||||||
+++ b/chrome/browser/extensions/extension_service.cc
|
+++ b/chrome/browser/extensions/extension_service.cc
|
||||||
@@ -244,8 +244,6 @@ ExtensionService::ExtensionService(
|
@@ -250,9 +250,6 @@ ExtensionService::ExtensionService(
|
||||||
UpgradeDetector::GetInstance()->AddObserver(this);
|
UpgradeDetector::GetInstance()->AddObserver(this);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
- cws_info_service_observation_.Observe(CWSInfoService::Get(profile_));
|
- cws_info_service_observation_.Observe(
|
||||||
|
- CWSInfoServiceFactory::GetForProfile(profile_));
|
||||||
-
|
-
|
||||||
ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this);
|
ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this);
|
||||||
|
|
||||||
if (autoupdate_enabled) {
|
if (auto* extension_install_policy_service =
|
||||||
@@ -756,7 +754,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() {
|
@@ -775,7 +772,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() {
|
||||||
// unpublished extensions should not be enabled. This update allows
|
// unpublished extensions should not be enabled. This update allows
|
||||||
// unpublished extensions to be disabled sooner rather than waiting till the
|
// unpublished extensions to be disabled sooner rather than waiting till the
|
||||||
// next regularly scheduled fetch.
|
// next regularly scheduled fetch.
|
||||||
@@ -308,11 +301,11 @@ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/ext
|
|||||||
+ if (((false)) && profile_->GetPrefs()->GetInteger(
|
+ if (((false)) && profile_->GetPrefs()->GetInteger(
|
||||||
pref_names::kExtensionUnpublishedAvailability) !=
|
pref_names::kExtensionUnpublishedAvailability) !=
|
||||||
kAllowUnpublishedExtensions) {
|
kAllowUnpublishedExtensions) {
|
||||||
CWSInfoService::Get(profile_)->CheckAndMaybeFetchInfo();
|
CWSInfoServiceFactory::GetForProfile(profile_)->CheckAndMaybeFetchInfo();
|
||||||
diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc
|
diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc
|
||||||
--- a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc
|
--- a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc
|
||||||
+++ b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc
|
+++ b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc
|
||||||
@@ -50,7 +50,6 @@ ChromeExtensionDownloaderFactory::CreateForURLLoaderFactory(
|
@@ -53,7 +53,6 @@ ChromeExtensionDownloaderFactory::CreateForURLLoaderFactory(
|
||||||
manifest_query_params += "&testrequest=1";
|
manifest_query_params += "&testrequest=1";
|
||||||
}
|
}
|
||||||
downloader->set_manifest_query_params(manifest_query_params);
|
downloader->set_manifest_query_params(manifest_query_params);
|
||||||
@@ -323,7 +316,7 @@ diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_facto
|
|||||||
diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc
|
diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc
|
||||||
--- a/chrome/browser/extensions/updater/extension_updater.cc
|
--- a/chrome/browser/extensions/updater/extension_updater.cc
|
||||||
+++ b/chrome/browser/extensions/updater/extension_updater.cc
|
+++ b/chrome/browser/extensions/updater/extension_updater.cc
|
||||||
@@ -55,6 +55,7 @@
|
@@ -56,6 +56,7 @@
|
||||||
#include "extensions/common/constants.h"
|
#include "extensions/common/constants.h"
|
||||||
#include "extensions/common/extension.h"
|
#include "extensions/common/extension.h"
|
||||||
#include "extensions/common/extension_id.h"
|
#include "extensions/common/extension_id.h"
|
||||||
@@ -331,7 +324,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
|
|||||||
#include "extensions/common/extension_set.h"
|
#include "extensions/common/extension_set.h"
|
||||||
#include "extensions/common/extension_updater_uma.h"
|
#include "extensions/common/extension_updater_uma.h"
|
||||||
#include "extensions/common/extension_urls.h"
|
#include "extensions/common/extension_urls.h"
|
||||||
@@ -228,6 +229,10 @@ void ExtensionUpdater::Start() {
|
@@ -230,6 +231,10 @@ void ExtensionUpdater::Start() {
|
||||||
DCHECK(!weak_ptr_factory_.HasWeakPtrs());
|
DCHECK(!weak_ptr_factory_.HasWeakPtrs());
|
||||||
DCHECK(registry_);
|
DCHECK(registry_);
|
||||||
alive_ = true;
|
alive_ = true;
|
||||||
@@ -341,27 +334,17 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
|
|||||||
+ }
|
+ }
|
||||||
// Check soon, and set up the first delayed check.
|
// Check soon, and set up the first delayed check.
|
||||||
if (!g_skip_scheduled_checks_for_tests) {
|
if (!g_skip_scheduled_checks_for_tests) {
|
||||||
if (g_should_immediately_update)
|
CheckSoon();
|
||||||
@@ -385,7 +390,8 @@ void ExtensionUpdater::AddToDownloader(
|
@@ -411,6 +416,8 @@ void ExtensionUpdater::EraseUnupdatableIds(std::set<ExtensionId>& ids) const {
|
||||||
const Extension& extension = **extension_iter;
|
}
|
||||||
const ExtensionId& extension_id = extension.id();
|
// Remove extensions that aren't in an autoupdatable location.
|
||||||
if (!Manifest::IsAutoUpdateableLocation(extension.location())) {
|
if (!Manifest::IsAutoUpdateableLocation(extension->location())) {
|
||||||
- VLOG(2) << "Extension " << extension_id << " is not auto updateable";
|
+ LOG(INFO) << "Extension " << extension->id() << " is not auto updateable: "
|
||||||
+ LOG(INFO) << "Extension " << extension_id << " is not auto updateable: "
|
+ << "location=" << extension->location();
|
||||||
+ << "location=" << extension.location();
|
return true;
|
||||||
continue;
|
}
|
||||||
}
|
} else {
|
||||||
// An extension might be overwritten by policy, and have its update url
|
@@ -427,6 +434,12 @@ void ExtensionUpdater::EraseUnupdatableIds(std::set<ExtensionId>& ids) const {
|
||||||
@@ -399,7 +405,7 @@ void ExtensionUpdater::AddToDownloader(
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (CanUseUpdateService(extension_id)) {
|
|
||||||
+ if ((false) && CanUseUpdateService(extension_id)) {
|
|
||||||
update_check_params->update_info[extension_id] =
|
|
||||||
GetExtensionUpdateData(extension_id);
|
|
||||||
} else if (AddExtensionToDownloader(extension, request_id,
|
|
||||||
@@ -436,6 +442,12 @@ bool ExtensionUpdater::AddExtensionToDownloader(
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExtensionUpdater::CheckNow(CheckParams params) {
|
void ExtensionUpdater::CheckNow(CheckParams params) {
|
||||||
@@ -371,70 +354,38 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
|
|||||||
+ LOG(INFO) << "Extensions autoupdate is disabled.";
|
+ LOG(INFO) << "Extensions autoupdate is disabled.";
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
CHECK(enabled_);
|
std::unique_ptr<ScopedProfileKeepAlive> keep_alive =
|
||||||
if (params.ids.empty()) {
|
ScopedProfileKeepAlive::TryAcquire(
|
||||||
// Checking all extensions. Cancel pending DoCheckSoon() call if there's
|
profile_, ProfileKeepAliveOrigin::kExtensionUpdater);
|
||||||
@@ -445,7 +457,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
|
@@ -440,7 +453,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
|
||||||
|
CHECK(pending_extension_manager_);
|
||||||
|
|
||||||
int request_id = next_request_id_++;
|
int request_id = next_request_id_++;
|
||||||
|
|
||||||
- VLOG(2) << "Starting update check " << request_id;
|
- VLOG(2) << "Starting update check " << request_id;
|
||||||
+ LOG(INFO) << "Starting extensions update check id: " << request_id;
|
+ LOG(INFO) << "Starting extensions update check id: " << request_id;
|
||||||
if (params.ids.empty())
|
|
||||||
NotifyStarted();
|
|
||||||
|
|
||||||
@@ -513,7 +525,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
|
EnsureDownloaderCreated();
|
||||||
update_check_params.update_info[pending_id] =
|
|
||||||
GetExtensionUpdateData(pending_id);
|
@@ -513,7 +526,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
|
||||||
} else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) {
|
|
||||||
- VLOG(2) << "Extension " << pending_id << " is not auto updateable";
|
// Note: If an extension is both installed and pending, but can't use
|
||||||
+ LOG(INFO) << "Extension " << pending_id << " is not auto updateable";
|
// update_service, pending_info takes priority.
|
||||||
continue;
|
- if (CanUseUpdateService(extension, pending_info)) {
|
||||||
}
|
+ if ((false) && CanUseUpdateService(extension, pending_info)) {
|
||||||
// We have to mark high-priority extensions (such as policy-forced
|
update_check_params.update_info[id] = GetExtensionUpdateData(id);
|
||||||
@@ -523,7 +535,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
|
update_check_params.update_info[id].is_corrupt_reinstall =
|
||||||
// See https://crbug.com/904600 and https://crbug.com/965686.
|
is_corrupt_reinstall;
|
||||||
const bool is_high_priority_extension_pending =
|
@@ -525,6 +538,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
|
||||||
pending_extension_manager->HasHighPriorityPendingExtension();
|
InstallStageTrackerFactory::GetForBrowserContext(profile_)
|
||||||
- if (CanUseUpdateService(pending_id)) {
|
->ReportInstallationStage(id,
|
||||||
+ if ((false) && CanUseUpdateService(pending_id)) {
|
InstallStageTracker::Stage::DOWNLOADING);
|
||||||
update_check_params.update_info[pending_id] =
|
+ LOG(INFO) << "Extension " << id << " is auto updateable "
|
||||||
GetExtensionUpdateData(pending_id);
|
+ << "from " << pending_info->update_url();
|
||||||
update_check_params.update_info[pending_id].is_corrupt_reinstall =
|
} else if (pending_info) {
|
||||||
@@ -546,6 +558,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
|
InstallStageTrackerFactory::GetForBrowserContext(profile_)->ReportFailure(
|
||||||
LOG(WARNING) << "Corrupt extension with id " << pending_id
|
id, InstallStageTracker::FailureReason::DOWNLOADER_ADD_FAILED);
|
||||||
<< " will be reinstalled with ExtensionDownloader.";
|
@@ -676,7 +691,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
|
||||||
}
|
InstallStageTracker::Stage::INSTALLING);
|
||||||
+ LOG(INFO) << "Extension " << pending_id << " is auto updateable "
|
|
||||||
+ << "from " << info->update_url();
|
|
||||||
} else {
|
|
||||||
InstallStageTracker::Get(profile_)->ReportFailure(
|
|
||||||
pending_id,
|
|
||||||
@@ -558,13 +572,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
|
|
||||||
AddToDownloader(®istry_->disabled_extensions(), pending_ids, request_id,
|
|
||||||
params.fetch_priority, &update_check_params);
|
|
||||||
ExtensionSet remotely_disabled_extensions;
|
|
||||||
- for (auto extension : registry_->blocklisted_extensions()) {
|
|
||||||
- if (blocklist_prefs::HasOmahaBlocklistState(
|
|
||||||
- extension->id(), BitMapBlocklistState::BLOCKLISTED_MALWARE,
|
|
||||||
- extension_prefs_)) {
|
|
||||||
- remotely_disabled_extensions.Insert(extension);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
AddToDownloader(&remotely_disabled_extensions, pending_ids, request_id,
|
|
||||||
params.fetch_priority, &update_check_params);
|
|
||||||
} else {
|
|
||||||
@@ -572,7 +579,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
|
|
||||||
const Extension* extension =
|
|
||||||
registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING);
|
|
||||||
if (extension) {
|
|
||||||
- if (CanUseUpdateService(id)) {
|
|
||||||
+ if ((false) && CanUseUpdateService(id)) {
|
|
||||||
update_check_params.update_info[id] = GetExtensionUpdateData(id);
|
|
||||||
} else if (AddExtensionToDownloader(*extension, request_id,
|
|
||||||
params.fetch_priority)) {
|
|
||||||
@@ -716,7 +723,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
|
|
||||||
file.extension_id, InstallStageTracker::Stage::INSTALLING);
|
|
||||||
UpdatePingData(file.extension_id, ping);
|
UpdatePingData(file.extension_id, ping);
|
||||||
|
|
||||||
- VLOG(2) << download_url << " written to " << file.path.value();
|
- VLOG(2) << download_url << " written to " << file.path.value();
|
||||||
@@ -442,7 +393,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
|
|||||||
|
|
||||||
FetchedCRXFile fetched(file, file_ownership_passed, request_ids,
|
FetchedCRXFile fetched(file, file_ownership_passed, request_ids,
|
||||||
std::move(callback));
|
std::move(callback));
|
||||||
@@ -727,6 +734,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
|
@@ -687,6 +702,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
|
||||||
|
|
||||||
bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id,
|
bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id,
|
||||||
DownloadPingData* ping_data) {
|
DownloadPingData* ping_data) {
|
||||||
@@ -450,7 +401,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
|
|||||||
DCHECK(alive_);
|
DCHECK(alive_);
|
||||||
ping_data->rollcall_days =
|
ping_data->rollcall_days =
|
||||||
CalculatePingDaysForExtension(extension_prefs_->LastPingDay(id));
|
CalculatePingDaysForExtension(extension_prefs_->LastPingDay(id));
|
||||||
@@ -839,7 +847,7 @@ bool ExtensionUpdater::CanUseUpdateService(
|
@@ -798,7 +814,7 @@ bool ExtensionUpdater::CanUseUpdateService(
|
||||||
void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) {
|
void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) {
|
||||||
std::set<int> request_ids;
|
std::set<int> request_ids;
|
||||||
|
|
||||||
@@ -459,19 +410,19 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
|
|||||||
<< crx_file.info.path.value();
|
<< crx_file.info.path.value();
|
||||||
|
|
||||||
// The delegate is now responsible for cleaning up the temp file at
|
// The delegate is now responsible for cleaning up the temp file at
|
||||||
@@ -1046,7 +1054,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) {
|
@@ -1008,7 +1024,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) {
|
||||||
InProgressCheck& request = requests_in_progress_[request_id];
|
if (!request.in_progress_ids.empty() || request.awaiting_update_service) {
|
||||||
if (!request.in_progress_ids.empty() || request.awaiting_update_service)
|
|
||||||
return; // This request is not done yet.
|
return; // This request is not done yet.
|
||||||
|
}
|
||||||
- VLOG(2) << "Finished update check " << request_id;
|
- VLOG(2) << "Finished update check " << request_id;
|
||||||
+ LOG(INFO) << "Finished update check id: " << request_id;
|
+ LOG(INFO) << "Finished update check id: " << request_id;
|
||||||
if (!request.callback.is_null())
|
if (!request.callback.is_null()) {
|
||||||
std::move(request.callback).Run();
|
std::move(request.callback).Run();
|
||||||
requests_in_progress_.erase(request_id);
|
}
|
||||||
diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/browser/extensions/updater/extension_updater.h
|
diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/browser/extensions/updater/extension_updater.h
|
||||||
--- a/chrome/browser/extensions/updater/extension_updater.h
|
--- a/chrome/browser/extensions/updater/extension_updater.h
|
||||||
+++ b/chrome/browser/extensions/updater/extension_updater.h
|
+++ b/chrome/browser/extensions/updater/extension_updater.h
|
||||||
@@ -92,6 +92,8 @@ class ExtensionUpdater : public KeyedService,
|
@@ -91,6 +91,8 @@ class ExtensionUpdater : public KeyedService,
|
||||||
// right away.
|
// right away.
|
||||||
bool install_immediately = false;
|
bool install_immediately = false;
|
||||||
|
|
||||||
@@ -480,7 +431,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/brow
|
|||||||
// An extension update check can be originated by a user or by a scheduled
|
// An extension update check can be originated by a user or by a scheduled
|
||||||
// task. When the value of |fetch_priority| is FOREGROUND, the update
|
// task. When the value of |fetch_priority| is FOREGROUND, the update
|
||||||
// request was initiated by a user.
|
// request was initiated by a user.
|
||||||
@@ -401,6 +403,8 @@ class ExtensionUpdater : public KeyedService,
|
@@ -398,6 +400,8 @@ class ExtensionUpdater : public KeyedService,
|
||||||
base::TimeDelta frequency_;
|
base::TimeDelta frequency_;
|
||||||
bool will_check_soon_ = false;
|
bool will_check_soon_ = false;
|
||||||
|
|
||||||
@@ -492,7 +443,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/brow
|
|||||||
diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/browser/extensions/webstore_install_helper.cc
|
diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/browser/extensions/webstore_install_helper.cc
|
||||||
--- a/chrome/browser/extensions/webstore_install_helper.cc
|
--- a/chrome/browser/extensions/webstore_install_helper.cc
|
||||||
+++ b/chrome/browser/extensions/webstore_install_helper.cc
|
+++ b/chrome/browser/extensions/webstore_install_helper.cc
|
||||||
@@ -46,7 +46,7 @@ void WebstoreInstallHelper::Start(
|
@@ -49,7 +49,7 @@ void WebstoreInstallHelper::Start(
|
||||||
data_decoder::DataDecoder::ParseJsonIsolated(
|
data_decoder::DataDecoder::ParseJsonIsolated(
|
||||||
manifest_, base::BindOnce(&WebstoreInstallHelper::OnJSONParsed, this));
|
manifest_, base::BindOnce(&WebstoreInstallHelper::OnJSONParsed, this));
|
||||||
|
|
||||||
@@ -501,18 +452,6 @@ diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/brows
|
|||||||
icon_decode_complete_ = true;
|
icon_decode_complete_ = true;
|
||||||
} else {
|
} else {
|
||||||
// No existing |icon_fetcher_| to avoid unbalanced AddRef().
|
// No existing |icon_fetcher_| to avoid unbalanced AddRef().
|
||||||
diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc
|
|
||||||
--- a/chrome/browser/extensions/webstore_installer.cc
|
|
||||||
+++ b/chrome/browser/extensions/webstore_installer.cc
|
|
||||||
@@ -591,7 +591,7 @@ void WebstoreInstaller::StartDownload(
|
|
||||||
traffic_annotation));
|
|
||||||
params->set_file_path(file);
|
|
||||||
params->set_initiator(render_frame_host->GetLastCommittedOrigin());
|
|
||||||
- if (controller.GetVisibleEntry()) {
|
|
||||||
+ if ((false) && controller.GetVisibleEntry()) {
|
|
||||||
content::Referrer referrer = content::Referrer::SanitizeForRequest(
|
|
||||||
download_url_,
|
|
||||||
content::Referrer(controller.GetVisibleEntry()->GetURL(),
|
|
||||||
diff --git a/chrome/browser/resources/extensions/manager.html.ts b/chrome/browser/resources/extensions/manager.html.ts
|
diff --git a/chrome/browser/resources/extensions/manager.html.ts b/chrome/browser/resources/extensions/manager.html.ts
|
||||||
--- a/chrome/browser/resources/extensions/manager.html.ts
|
--- a/chrome/browser/resources/extensions/manager.html.ts
|
||||||
+++ b/chrome/browser/resources/extensions/manager.html.ts
|
+++ b/chrome/browser/resources/extensions/manager.html.ts
|
||||||
@@ -527,7 +466,7 @@ diff --git a/chrome/browser/resources/extensions/manager.html.ts b/chrome/browse
|
|||||||
diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/resources/extensions/manager.ts
|
diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/resources/extensions/manager.ts
|
||||||
--- a/chrome/browser/resources/extensions/manager.ts
|
--- a/chrome/browser/resources/extensions/manager.ts
|
||||||
+++ b/chrome/browser/resources/extensions/manager.ts
|
+++ b/chrome/browser/resources/extensions/manager.ts
|
||||||
@@ -146,6 +146,8 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
|
@@ -143,6 +143,8 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
|
||||||
*/
|
*/
|
||||||
didInitPage_: {type: Boolean},
|
didInitPage_: {type: Boolean},
|
||||||
|
|
||||||
@@ -536,7 +475,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res
|
|||||||
narrow_: {type: Boolean},
|
narrow_: {type: Boolean},
|
||||||
|
|
||||||
showDrawer_: {type: Boolean},
|
showDrawer_: {type: Boolean},
|
||||||
@@ -167,6 +169,8 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
|
@@ -164,6 +166,8 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
|
||||||
accessor inDevMode: boolean = loadTimeData.getBoolean('inDevMode');
|
accessor inDevMode: boolean = loadTimeData.getBoolean('inDevMode');
|
||||||
accessor isMv2DeprecationNoticeDismissed: boolean =
|
accessor isMv2DeprecationNoticeDismissed: boolean =
|
||||||
loadTimeData.getBoolean('MV2DeprecationNoticeDismissed');
|
loadTimeData.getBoolean('MV2DeprecationNoticeDismissed');
|
||||||
@@ -545,7 +484,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res
|
|||||||
accessor showActivityLog: boolean =
|
accessor showActivityLog: boolean =
|
||||||
loadTimeData.getBoolean('showActivityLog');
|
loadTimeData.getBoolean('showActivityLog');
|
||||||
accessor enableEnhancedSiteControls: boolean =
|
accessor enableEnhancedSiteControls: boolean =
|
||||||
@@ -231,6 +235,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
|
@@ -247,6 +251,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
|
||||||
this.canLoadUnpacked = profileInfo.canLoadUnpacked;
|
this.canLoadUnpacked = profileInfo.canLoadUnpacked;
|
||||||
this.isMv2DeprecationNoticeDismissed =
|
this.isMv2DeprecationNoticeDismissed =
|
||||||
profileInfo.isMv2DeprecationNoticeDismissed;
|
profileInfo.isMv2DeprecationNoticeDismissed;
|
||||||
@@ -556,7 +495,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res
|
|||||||
diff --git a/chrome/browser/resources/extensions/service.ts b/chrome/browser/resources/extensions/service.ts
|
diff --git a/chrome/browser/resources/extensions/service.ts b/chrome/browser/resources/extensions/service.ts
|
||||||
--- a/chrome/browser/resources/extensions/service.ts
|
--- a/chrome/browser/resources/extensions/service.ts
|
||||||
+++ b/chrome/browser/resources/extensions/service.ts
|
+++ b/chrome/browser/resources/extensions/service.ts
|
||||||
@@ -311,6 +311,11 @@ export class Service implements ServiceInterface {
|
@@ -356,6 +356,11 @@ export class Service implements ServiceInterface {
|
||||||
{inDeveloperMode: inDevMode});
|
{inDeveloperMode: inDevMode});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -577,7 +516,7 @@ diff --git a/chrome/browser/resources/extensions/toolbar.css b/chrome/browser/re
|
|||||||
|
|
||||||
+#need-update {
|
+#need-update {
|
||||||
+ color: red;
|
+ color: red;
|
||||||
+ margin-inline: 0px;
|
+ margin-inline: 0;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
cr-toolbar {
|
cr-toolbar {
|
||||||
@@ -586,7 +525,7 @@ diff --git a/chrome/browser/resources/extensions/toolbar.css b/chrome/browser/re
|
|||||||
diff --git a/chrome/browser/resources/extensions/toolbar.html.ts b/chrome/browser/resources/extensions/toolbar.html.ts
|
diff --git a/chrome/browser/resources/extensions/toolbar.html.ts b/chrome/browser/resources/extensions/toolbar.html.ts
|
||||||
--- a/chrome/browser/resources/extensions/toolbar.html.ts
|
--- a/chrome/browser/resources/extensions/toolbar.html.ts
|
||||||
+++ b/chrome/browser/resources/extensions/toolbar.html.ts
|
+++ b/chrome/browser/resources/extensions/toolbar.html.ts
|
||||||
@@ -32,6 +32,13 @@ export function getHtml(this: ToolbarElement) {
|
@@ -33,6 +33,13 @@ export function getHtml(this: ToolbarElement) {
|
||||||
<img srcset="images/product_logo.png" role="presentation">
|
<img srcset="images/product_logo.png" role="presentation">
|
||||||
</picture>
|
</picture>
|
||||||
</if>
|
</if>
|
||||||
@@ -594,12 +533,12 @@ diff --git a/chrome/browser/resources/extensions/toolbar.html.ts b/chrome/browse
|
|||||||
+ <span>$i18n{toolbarExtensionUpdateEnabled}
|
+ <span>$i18n{toolbarExtensionUpdateEnabled}
|
||||||
+ <span id="need-update" ?hidden="${!this.shouldShowRelaunchDialog}">$i18n{toolbarExtensionUpdateEnabledNeedRestart}</span>
|
+ <span id="need-update" ?hidden="${!this.shouldShowRelaunchDialog}">$i18n{toolbarExtensionUpdateEnabledNeedRestart}</span>
|
||||||
+ </span>
|
+ </span>
|
||||||
+ <cr-toggle @change="${this.onExtUpdateEnabledChanged_}" ?checked="${this.isExtUpdateEnabled}">
|
+ <cr-toggle @change="${this.onExtUpdateEnabledChange_}" ?checked="${this.isExtUpdateEnabled}">
|
||||||
+ </cr-toggle>
|
+ </cr-toggle>
|
||||||
+ </div>
|
+ </div>
|
||||||
</cr-toolbar>
|
</cr-toolbar>
|
||||||
${this.showPackDialog_ ? html`
|
${this.showPackDialog_ ? html`
|
||||||
<extensions-pack-dialog .delegate="${this.delegate}"
|
<extensions-pack-dialog .delegate="${this.delegate as ServiceInterface}"
|
||||||
diff --git a/chrome/browser/resources/extensions/toolbar.ts b/chrome/browser/resources/extensions/toolbar.ts
|
diff --git a/chrome/browser/resources/extensions/toolbar.ts b/chrome/browser/resources/extensions/toolbar.ts
|
||||||
--- a/chrome/browser/resources/extensions/toolbar.ts
|
--- a/chrome/browser/resources/extensions/toolbar.ts
|
||||||
+++ b/chrome/browser/resources/extensions/toolbar.ts
|
+++ b/chrome/browser/resources/extensions/toolbar.ts
|
||||||
@@ -653,7 +592,7 @@ diff --git a/chrome/browser/resources/extensions/toolbar.ts b/chrome/browser/res
|
|||||||
'Options_ToggleDeveloperMode_' + (e.detail ? 'Enabled' : 'Disabled'));
|
'Options_ToggleDeveloperMode_' + (e.detail ? 'Enabled' : 'Disabled'));
|
||||||
}
|
}
|
||||||
|
|
||||||
+ protected onExtUpdateEnabledChanged_(e: CustomEvent<boolean>) {
|
+ protected onExtUpdateEnabledChange_(e: CustomEvent<boolean>) {
|
||||||
+ this.delegate.setExtUpdateEnabled(e.detail);
|
+ this.delegate.setExtUpdateEnabled(e.detail);
|
||||||
+ this.shouldShowRelaunchDialog = true;
|
+ this.shouldShowRelaunchDialog = true;
|
||||||
+ this.isExtUpdateEnabled = e.detail;
|
+ this.isExtUpdateEnabled = e.detail;
|
||||||
@@ -681,7 +620,7 @@ diff --git a/chrome/browser/resources/webstore_app/manifest.json b/chrome/browse
|
|||||||
diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browser/ui/webui/extensions/extensions_ui.cc
|
diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browser/ui/webui/extensions/extensions_ui.cc
|
||||||
--- a/chrome/browser/ui/webui/extensions/extensions_ui.cc
|
--- a/chrome/browser/ui/webui/extensions/extensions_ui.cc
|
||||||
+++ b/chrome/browser/ui/webui/extensions/extensions_ui.cc
|
+++ b/chrome/browser/ui/webui/extensions/extensions_ui.cc
|
||||||
@@ -17,6 +17,7 @@
|
@@ -16,6 +16,7 @@
|
||||||
#include "base/values.h"
|
#include "base/values.h"
|
||||||
#include "build/build_config.h"
|
#include "build/build_config.h"
|
||||||
#include "chrome/browser/browser_process.h"
|
#include "chrome/browser/browser_process.h"
|
||||||
@@ -689,7 +628,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse
|
|||||||
#include "chrome/browser/extensions/manifest_v2_experiment_manager.h"
|
#include "chrome/browser/extensions/manifest_v2_experiment_manager.h"
|
||||||
#include "chrome/browser/extensions/mv2_experiment_stage.h"
|
#include "chrome/browser/extensions/mv2_experiment_stage.h"
|
||||||
#include "chrome/browser/extensions/permissions_url_constants.h"
|
#include "chrome/browser/extensions/permissions_url_constants.h"
|
||||||
@@ -380,6 +381,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
|
@@ -386,6 +387,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
|
||||||
{"itemSuspiciousInstallLearnMore",
|
{"itemSuspiciousInstallLearnMore",
|
||||||
IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE},
|
IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE},
|
||||||
{"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE},
|
{"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE},
|
||||||
@@ -698,7 +637,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse
|
|||||||
{"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED},
|
{"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED},
|
||||||
{"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE},
|
{"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE},
|
||||||
{"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK},
|
{"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK},
|
||||||
@@ -472,6 +475,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
|
@@ -471,6 +474,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
|
||||||
"hostPermissionsLearnMoreLink",
|
"hostPermissionsLearnMoreLink",
|
||||||
extension_permissions_constants::kRuntimeHostPermissionsHelpURL);
|
extension_permissions_constants::kRuntimeHostPermissionsHelpURL);
|
||||||
source->AddBoolean(kInDevModeKey, in_dev_mode);
|
source->AddBoolean(kInDevModeKey, in_dev_mode);
|
||||||
@@ -732,41 +671,39 @@ diff --git a/chrome/browser/update_client/chrome_update_query_params_delegate.cc
|
|||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
diff --git a/chrome/common/extensions/api/developer_private.idl b/chrome/common/extensions/api/developer_private.idl
|
diff --git a/chrome/common/extensions/api/developer_private.webidl b/chrome/common/extensions/api/developer_private.webidl
|
||||||
--- a/chrome/common/extensions/api/developer_private.idl
|
--- a/chrome/common/extensions/api/developer_private.webidl
|
||||||
+++ b/chrome/common/extensions/api/developer_private.idl
|
+++ b/chrome/common/extensions/api/developer_private.webidl
|
||||||
@@ -272,6 +272,7 @@ namespace developerPrivate {
|
@@ -264,6 +264,7 @@ dictionary ProfileInfo {
|
||||||
boolean isIncognitoAvailable;
|
required boolean isIncognitoAvailable;
|
||||||
boolean isChildAccount;
|
required boolean isChildAccount;
|
||||||
boolean isMv2DeprecationNoticeDismissed;
|
required boolean isMv2DeprecationNoticeDismissed;
|
||||||
+ boolean isExtensionAutoupdateEnabled;
|
+ boolean isExtensionAutoupdateEnabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
dictionary GetExtensionsInfoOptions {
|
dictionary GetExtensionsInfoOptions {
|
||||||
@@ -295,6 +296,7 @@ namespace developerPrivate {
|
@@ -287,6 +288,7 @@ dictionary ExtensionConfigurationUpdate {
|
||||||
dictionary ProfileConfigurationUpdate {
|
dictionary ProfileConfigurationUpdate {
|
||||||
boolean? inDeveloperMode;
|
boolean inDeveloperMode;
|
||||||
boolean? isMv2DeprecationNoticeDismissed;
|
boolean isMv2DeprecationNoticeDismissed;
|
||||||
+ boolean? isExtensionAutoupdateEnabled;
|
+ boolean? isExtensionAutoupdateEnabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
dictionary ExtensionCommandUpdate {
|
dictionary ExtensionCommandUpdate {
|
||||||
diff --git a/components/update_client/update_query_params.cc b/components/update_client/update_query_params.cc
|
diff --git a/components/update_client/update_query_params.cc b/components/update_client/update_query_params.cc
|
||||||
--- a/components/update_client/update_query_params.cc
|
--- a/components/update_client/update_query_params.cc
|
||||||
+++ b/components/update_client/update_query_params.cc
|
+++ b/components/update_client/update_query_params.cc
|
||||||
@@ -85,9 +85,8 @@ UpdateQueryParamsDelegate* g_delegate = nullptr;
|
@@ -87,8 +87,7 @@ UpdateQueryParamsDelegate* g_delegate = nullptr;
|
||||||
// static
|
// static
|
||||||
std::string UpdateQueryParams::Get(ProdId prod) {
|
std::string UpdateQueryParams::Get(ProdId prod) {
|
||||||
return base::StringPrintf(
|
return base::StringPrintf(
|
||||||
- "os=%s&arch=%s&os_arch=%s&nacl_arch=%s&prod=%s%s&acceptformat=crx3,puff",
|
- "os=%s&arch=%s&os_arch=%s&prod=%s%s&acceptformat=crx3,puff", kOs, kArch,
|
||||||
- kOs, kArch, base::SysInfo().OperatingSystemArchitecture().c_str(),
|
- base::SysInfo().OperatingSystemArchitecture().c_str(),
|
||||||
- GetNaclArch(), GetProdIdString(prod),
|
|
||||||
+ "prod=%s%s&acceptformat=crx3",
|
+ "prod=%s%s&acceptformat=crx3",
|
||||||
+ GetProdIdString(prod),
|
GetProdIdString(prod),
|
||||||
g_delegate ? g_delegate->GetExtraParams().c_str() : "");
|
g_delegate ? g_delegate->GetExtraParams().c_str() : "");
|
||||||
}
|
}
|
||||||
|
@@ -120,7 +119,7 @@ std::string_view UpdateQueryParams::GetArch() {
|
||||||
@@ -148,7 +147,7 @@ const char* UpdateQueryParams::GetNaclArch() {
|
|
||||||
|
|
||||||
// static
|
// static
|
||||||
std::string UpdateQueryParams::GetProdVersion() {
|
std::string UpdateQueryParams::GetProdVersion() {
|
||||||
@@ -812,7 +749,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
#include "extensions/browser/api/extensions_api_client.h"
|
#include "extensions/browser/api/extensions_api_client.h"
|
||||||
#include "extensions/browser/api/management/management_api_constants.h"
|
#include "extensions/browser/api/management/management_api_constants.h"
|
||||||
#include "extensions/browser/disable_reason.h"
|
#include "extensions/browser/disable_reason.h"
|
||||||
@@ -41,6 +44,7 @@
|
@@ -42,6 +45,7 @@
|
||||||
#include "extensions/common/api/management.h"
|
#include "extensions/common/api/management.h"
|
||||||
#include "extensions/common/error_utils.h"
|
#include "extensions/common/error_utils.h"
|
||||||
#include "extensions/common/extension.h"
|
#include "extensions/common/extension.h"
|
||||||
@@ -820,7 +757,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
#include "extensions/common/extension_id.h"
|
#include "extensions/common/extension_id.h"
|
||||||
#include "extensions/common/extension_urls.h"
|
#include "extensions/common/extension_urls.h"
|
||||||
#include "extensions/common/icons/extension_icon_set.h"
|
#include "extensions/common/icons/extension_icon_set.h"
|
||||||
@@ -92,6 +96,27 @@ std::vector<std::string> CreateWarningsList(const Extension* extension) {
|
@@ -104,6 +108,29 @@ std::vector<std::string> CreateWarningsList(const Extension* extension) {
|
||||||
return warnings_list;
|
return warnings_list;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -829,11 +766,13 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
+ const std::string& id,
|
+ const std::string& id,
|
||||||
+ int include_mask) {
|
+ int include_mask) {
|
||||||
+ bool enabled = base::FeatureList::IsEnabled(extensions_features::kEnableExtensionManagementToChromeStore);
|
+ bool enabled = base::FeatureList::IsEnabled(extensions_features::kEnableExtensionManagementToChromeStore);
|
||||||
+ if (content::RenderFrameHost* rfh = web_contents->GetPrimaryMainFrame()) {
|
+ if (web_contents) {
|
||||||
+ url::Origin top_frame_origin = rfh->GetMainFrame()->GetLastCommittedOrigin();
|
+ if (content::RenderFrameHost* rfh = web_contents->GetPrimaryMainFrame()) {
|
||||||
+ std::string scheme = top_frame_origin.scheme();
|
+ url::Origin top_frame_origin = rfh->GetMainFrame()->GetLastCommittedOrigin();
|
||||||
+ if (scheme == content::kChromeUIScheme) {
|
+ std::string scheme = top_frame_origin.scheme();
|
||||||
+ enabled = true;
|
+ if (scheme == content::kChromeUIScheme) {
|
||||||
|
+ enabled = true;
|
||||||
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ if (!enabled)
|
+ if (!enabled)
|
||||||
@@ -848,7 +787,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
std::vector<management::LaunchType> GetAvailableLaunchTypes(
|
std::vector<management::LaunchType> GetAvailableLaunchTypes(
|
||||||
const Extension& extension) {
|
const Extension& extension) {
|
||||||
std::vector<management::LaunchType> launch_type_list;
|
std::vector<management::LaunchType> launch_type_list;
|
||||||
@@ -269,6 +294,8 @@ void AddExtensionInfo(const Extension* source_extension,
|
@@ -281,6 +308,8 @@ void AddExtensionInfo(const Extension* source_extension,
|
||||||
const ExtensionSet& extensions,
|
const ExtensionSet& extensions,
|
||||||
ExtensionInfoList* extension_list,
|
ExtensionInfoList* extension_list,
|
||||||
content::BrowserContext* context) {
|
content::BrowserContext* context) {
|
||||||
@@ -857,7 +796,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
for (ExtensionSet::const_iterator iter = extensions.begin();
|
for (ExtensionSet::const_iterator iter = extensions.begin();
|
||||||
iter != extensions.end(); ++iter) {
|
iter != extensions.end(); ++iter) {
|
||||||
const Extension& extension = **iter;
|
const Extension& extension = **iter;
|
||||||
@@ -311,10 +338,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() {
|
@@ -314,10 +343,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() {
|
||||||
std::optional<management::Get::Params> params =
|
std::optional<management::Get::Params> params =
|
||||||
management::Get::Params::Create(args());
|
management::Get::Params::Create(args());
|
||||||
EXTENSION_FUNCTION_VALIDATE(params);
|
EXTENSION_FUNCTION_VALIDATE(params);
|
||||||
@@ -869,7 +808,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
if (!target_extension) {
|
if (!target_extension) {
|
||||||
return RespondNow(Error(keys::kNoExtensionError, params->id));
|
return RespondNow(Error(keys::kNoExtensionError, params->id));
|
||||||
}
|
}
|
||||||
@@ -335,8 +361,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() {
|
@@ -338,8 +366,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() {
|
||||||
EXTENSION_FUNCTION_VALIDATE(params);
|
EXTENSION_FUNCTION_VALIDATE(params);
|
||||||
|
|
||||||
const Extension* extension =
|
const Extension* extension =
|
||||||
@@ -879,7 +818,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
if (!extension) {
|
if (!extension) {
|
||||||
return RespondNow(Error(keys::kNoExtensionError, params->id));
|
return RespondNow(Error(keys::kNoExtensionError, params->id));
|
||||||
}
|
}
|
||||||
@@ -404,8 +429,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() {
|
@@ -410,8 +437,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() {
|
||||||
}
|
}
|
||||||
|
|
||||||
const Extension* extension =
|
const Extension* extension =
|
||||||
@@ -889,7 +828,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
if (!extension) {
|
if (!extension) {
|
||||||
return RespondNow(Error(keys::kNoExtensionError, params->id));
|
return RespondNow(Error(keys::kNoExtensionError, params->id));
|
||||||
}
|
}
|
||||||
@@ -547,8 +571,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() {
|
@@ -552,8 +578,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() {
|
||||||
// Extension could have been uninstalled externally while previous check was
|
// Extension could have been uninstalled externally while previous check was
|
||||||
// happening.
|
// happening.
|
||||||
const Extension* extension =
|
const Extension* extension =
|
||||||
@@ -900,7 +839,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
if (!extension) {
|
if (!extension) {
|
||||||
FinishEnable(Error(keys::kNoExtensionError));
|
FinishEnable(Error(keys::kNoExtensionError));
|
||||||
return;
|
return;
|
||||||
@@ -591,8 +615,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() {
|
@@ -596,8 +622,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() {
|
||||||
// Extension can be uninstalled externally while the previous check was
|
// Extension can be uninstalled externally while the previous check was
|
||||||
// happening async.
|
// happening async.
|
||||||
const Extension* extension =
|
const Extension* extension =
|
||||||
@@ -911,7 +850,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
if (!extension) {
|
if (!extension) {
|
||||||
FinishEnable(Error(keys::kNoExtensionError));
|
FinishEnable(Error(keys::kNoExtensionError));
|
||||||
return;
|
return;
|
||||||
@@ -736,8 +760,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone(
|
@@ -741,8 +767,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone(
|
||||||
}
|
}
|
||||||
|
|
||||||
const Extension* ManagementSetEnabledFunction::GetExtension() {
|
const Extension* ManagementSetEnabledFunction::GetExtension() {
|
||||||
@@ -922,7 +861,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
}
|
}
|
||||||
|
|
||||||
ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() = default;
|
ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() = default;
|
||||||
@@ -762,8 +786,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall(
|
@@ -767,8 +793,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall(
|
||||||
->GetDelegate();
|
->GetDelegate();
|
||||||
target_extension_id_ = target_extension_id;
|
target_extension_id_ = target_extension_id;
|
||||||
const Extension* target_extension =
|
const Extension* target_extension =
|
||||||
@@ -932,7 +871,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
ExtensionRegistry::EVERYTHING);
|
ExtensionRegistry::EVERYTHING);
|
||||||
if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) {
|
if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) {
|
||||||
return RespondNow(Error(keys::kNoExtensionError, target_extension_id_));
|
return RespondNow(Error(keys::kNoExtensionError, target_extension_id_));
|
||||||
@@ -828,8 +851,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() {
|
@@ -833,8 +858,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() {
|
||||||
// The extension can be uninstalled in another window while the UI was
|
// The extension can be uninstalled in another window while the UI was
|
||||||
// showing. Do nothing in that case.
|
// showing. Do nothing in that case.
|
||||||
const Extension* target_extension =
|
const Extension* target_extension =
|
||||||
@@ -942,7 +881,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
ExtensionRegistry::EVERYTHING);
|
ExtensionRegistry::EVERYTHING);
|
||||||
std::string error;
|
std::string error;
|
||||||
bool success = false;
|
bool success = false;
|
||||||
@@ -909,8 +931,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() {
|
@@ -918,8 +942,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() {
|
||||||
management::CreateAppShortcut::Params::Create(args());
|
management::CreateAppShortcut::Params::Create(args());
|
||||||
EXTENSION_FUNCTION_VALIDATE(params);
|
EXTENSION_FUNCTION_VALIDATE(params);
|
||||||
const Extension* extension =
|
const Extension* extension =
|
||||||
@@ -952,7 +891,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
if (!extension) {
|
if (!extension) {
|
||||||
return RespondNow(Error(
|
return RespondNow(Error(
|
||||||
ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id)));
|
ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id)));
|
||||||
@@ -964,8 +985,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() {
|
@@ -973,8 +996,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() {
|
||||||
management::SetLaunchType::Params::Create(args());
|
management::SetLaunchType::Params::Create(args());
|
||||||
EXTENSION_FUNCTION_VALIDATE(params);
|
EXTENSION_FUNCTION_VALIDATE(params);
|
||||||
const Extension* extension =
|
const Extension* extension =
|
||||||
@@ -965,7 +904,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
|||||||
diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/browser/updater/extension_downloader.cc
|
diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/browser/updater/extension_downloader.cc
|
||||||
--- a/extensions/browser/updater/extension_downloader.cc
|
--- a/extensions/browser/updater/extension_downloader.cc
|
||||||
+++ b/extensions/browser/updater/extension_downloader.cc
|
+++ b/extensions/browser/updater/extension_downloader.cc
|
||||||
@@ -494,8 +494,8 @@ void ExtensionDownloader::CreateManifestLoader() {
|
@@ -486,8 +486,8 @@ void ExtensionDownloader::CreateManifestLoader() {
|
||||||
std::vector<std::string_view> id_vector(extension_ids.begin(),
|
std::vector<std::string_view> id_vector(extension_ids.begin(),
|
||||||
extension_ids.end());
|
extension_ids.end());
|
||||||
std::string id_list = base::JoinString(id_vector, ",");
|
std::string id_list = base::JoinString(id_vector, ",");
|
||||||
@@ -976,7 +915,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
<< (active_request->foreground_check()
|
<< (active_request->foreground_check()
|
||||||
? kUpdateInteractivityForeground
|
? kUpdateInteractivityForeground
|
||||||
: kUpdateInteractivityBackground);
|
: kUpdateInteractivityBackground);
|
||||||
@@ -520,7 +520,7 @@ void ExtensionDownloader::CreateManifestLoader() {
|
@@ -512,7 +512,7 @@ void ExtensionDownloader::CreateManifestLoader() {
|
||||||
destination: WEBSITE
|
destination: WEBSITE
|
||||||
}
|
}
|
||||||
policy {
|
policy {
|
||||||
@@ -985,7 +924,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
cookies_store: "user"
|
cookies_store: "user"
|
||||||
setting:
|
setting:
|
||||||
"This feature cannot be disabled. It is only enabled when the user "
|
"This feature cannot be disabled. It is only enabled when the user "
|
||||||
@@ -537,6 +537,7 @@ void ExtensionDownloader::CreateManifestLoader() {
|
@@ -529,6 +529,7 @@ void ExtensionDownloader::CreateManifestLoader() {
|
||||||
auto resource_request = std::make_unique<network::ResourceRequest>();
|
auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||||
resource_request->url = active_request->full_url(),
|
resource_request->url = active_request->full_url(),
|
||||||
resource_request->load_flags = net::LOAD_DISABLE_CACHE;
|
resource_request->load_flags = net::LOAD_DISABLE_CACHE;
|
||||||
@@ -993,7 +932,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
|
|
||||||
if (active_request->fetch_priority() == DownloadFetchPriority::kForeground) {
|
if (active_request->fetch_priority() == DownloadFetchPriority::kForeground) {
|
||||||
resource_request->priority = net::MEDIUM;
|
resource_request->priority = net::MEDIUM;
|
||||||
@@ -545,10 +546,6 @@ void ExtensionDownloader::CreateManifestLoader() {
|
@@ -537,10 +538,6 @@ void ExtensionDownloader::CreateManifestLoader() {
|
||||||
// Send traffic-management headers to the webstore, and omit credentials.
|
// Send traffic-management headers to the webstore, and omit credentials.
|
||||||
// https://bugs.chromium.org/p/chromium/issues/detail?id=647516
|
// https://bugs.chromium.org/p/chromium/issues/detail?id=647516
|
||||||
if (extension_urls::IsWebstoreUpdateUrl(active_request->full_url())) {
|
if (extension_urls::IsWebstoreUpdateUrl(active_request->full_url())) {
|
||||||
@@ -1004,7 +943,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
resource_request->headers.SetHeader(kUpdateAppIdHeader, id_list);
|
resource_request->headers.SetHeader(kUpdateAppIdHeader, id_list);
|
||||||
resource_request->headers.SetHeader(
|
resource_request->headers.SetHeader(
|
||||||
kUpdateUpdaterHeader,
|
kUpdateUpdaterHeader,
|
||||||
@@ -833,20 +830,6 @@ void ExtensionDownloader::HandleManifestResults(
|
@@ -825,20 +822,6 @@ void ExtensionDownloader::HandleManifestResults(
|
||||||
update.second->info);
|
update.second->info);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1025,7 +964,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
ExtensionIdSet extension_ids_with_errors;
|
ExtensionIdSet extension_ids_with_errors;
|
||||||
for (const auto& failure : failures)
|
for (const auto& failure : failures)
|
||||||
extension_ids_with_errors.insert(failure.first.id);
|
extension_ids_with_errors.insert(failure.first.id);
|
||||||
@@ -868,7 +851,7 @@ ExtensionDownloader::GetUpdateAvailability(
|
@@ -861,7 +844,7 @@ ExtensionDownloader::GetUpdateAvailability(
|
||||||
// extensions that have already existed in the system.
|
// extensions that have already existed in the system.
|
||||||
if (!delegate_->GetExtensionExistingVersion(extension_id,
|
if (!delegate_->GetExtensionExistingVersion(extension_id,
|
||||||
&extension_version)) {
|
&extension_version)) {
|
||||||
@@ -1034,7 +973,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
return UpdateAvailability::kBadUpdateSpecification;
|
return UpdateAvailability::kBadUpdateSpecification;
|
||||||
}
|
}
|
||||||
VLOG(2) << extension_id << " is at '" << extension_version << "'";
|
VLOG(2) << extension_id << " is at '" << extension_version << "'";
|
||||||
@@ -879,11 +862,11 @@ ExtensionDownloader::GetUpdateAvailability(
|
@@ -872,11 +855,11 @@ ExtensionDownloader::GetUpdateAvailability(
|
||||||
const std::string& update_version_str = update->version;
|
const std::string& update_version_str = update->version;
|
||||||
if (VLOG_IS_ON(2)) {
|
if (VLOG_IS_ON(2)) {
|
||||||
if (update_version_str.empty())
|
if (update_version_str.empty())
|
||||||
@@ -1048,7 +987,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
<< " latest version is '" << update_version_str << "'";
|
<< " latest version is '" << update_version_str << "'";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -893,21 +876,21 @@ ExtensionDownloader::GetUpdateAvailability(
|
@@ -886,14 +869,14 @@ ExtensionDownloader::GetUpdateAvailability(
|
||||||
// we don't want it.
|
// we don't want it.
|
||||||
if (update_version_str.empty()) {
|
if (update_version_str.empty()) {
|
||||||
// If update manifest doesn't have version number => no update.
|
// If update manifest doesn't have version number => no update.
|
||||||
@@ -1065,15 +1004,16 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
<< update_version_str << "'";
|
<< update_version_str << "'";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@@ -921,7 +904,7 @@ ExtensionDownloader::GetUpdateAvailability(
|
||||||
const base::Version existing_version(extension_version);
|
update->browser_min_version)) {
|
||||||
if (update_version.CompareTo(existing_version) <= 0) {
|
// TODO(asargent) - We may want this to show up in the extensions UI
|
||||||
- VLOG(2) << extension_id << " version is not older than '"
|
// eventually. (http://crbug.com/12547).
|
||||||
+ LOG(INFO) << extension_id << " version is not older than '"
|
- DLOG(WARNING) << "Updated version of extension " << extension_id
|
||||||
<< update_version_str << "'";
|
+ LOG(INFO) << "Updated version of extension " << extension_id
|
||||||
bool can_rollback =
|
<< " available, but requires chrome version "
|
||||||
update_version.CompareTo(existing_version) < 0 &&
|
<< update->browser_min_version;
|
||||||
@@ -934,7 +917,9 @@ ExtensionDownloader::GetUpdateAvailability(
|
has_noupdate = true;
|
||||||
|
@@ -929,7 +912,9 @@ ExtensionDownloader::GetUpdateAvailability(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stop checking as soon as an update for |extension_id| is found.
|
// Stop checking as soon as an update for |extension_id| is found.
|
||||||
@@ -1084,7 +1024,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
*update_result_out = const_cast<UpdateManifestResult*>(update);
|
*update_result_out = const_cast<UpdateManifestResult*>(update);
|
||||||
return UpdateAvailability::kAvailable;
|
return UpdateAvailability::kAvailable;
|
||||||
}
|
}
|
||||||
@@ -1179,7 +1164,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
|
@@ -1175,7 +1160,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
|
||||||
int load_flags = net::LOAD_DISABLE_CACHE;
|
int load_flags = net::LOAD_DISABLE_CACHE;
|
||||||
bool is_secure = fetch->url.SchemeIsCryptographic();
|
bool is_secure = fetch->url.SchemeIsCryptographic();
|
||||||
extension_loader_resource_request_->load_flags = load_flags;
|
extension_loader_resource_request_->load_flags = load_flags;
|
||||||
@@ -1093,7 +1033,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
extension_loader_resource_request_->credentials_mode =
|
extension_loader_resource_request_->credentials_mode =
|
||||||
network::mojom::CredentialsMode::kOmit;
|
network::mojom::CredentialsMode::kOmit;
|
||||||
} else {
|
} else {
|
||||||
@@ -1187,7 +1172,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
|
@@ -1183,7 +1168,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
|
||||||
net::SiteForCookies::FromUrl(fetch->url);
|
net::SiteForCookies::FromUrl(fetch->url);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1102,7 +1042,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
is_secure) {
|
is_secure) {
|
||||||
if (access_token_.empty()) {
|
if (access_token_.empty()) {
|
||||||
// We should try OAuth2, but we have no token cached. This
|
// We should try OAuth2, but we have no token cached. This
|
||||||
@@ -1212,7 +1197,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
|
@@ -1206,7 +1191,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
|
||||||
base::StringPrintf("Bearer %s", access_token_.c_str()));
|
base::StringPrintf("Bearer %s", access_token_.c_str()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1111,7 +1051,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
|
|
||||||
StartExtensionLoader();
|
StartExtensionLoader();
|
||||||
}
|
}
|
||||||
@@ -1234,7 +1219,7 @@ void ExtensionDownloader::StartExtensionLoader() {
|
@@ -1228,7 +1213,7 @@ void ExtensionDownloader::StartExtensionLoader() {
|
||||||
destination: WEBSITE
|
destination: WEBSITE
|
||||||
}
|
}
|
||||||
policy {
|
policy {
|
||||||
@@ -1120,7 +1060,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
cookies_store: "user"
|
cookies_store: "user"
|
||||||
setting:
|
setting:
|
||||||
"This feature cannot be disabled. It is only enabled when the user "
|
"This feature cannot be disabled. It is only enabled when the user "
|
||||||
@@ -1305,6 +1290,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) {
|
@@ -1299,6 +1284,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) {
|
||||||
RETRY_HISTOGRAM("CrxFetchSuccess",
|
RETRY_HISTOGRAM("CrxFetchSuccess",
|
||||||
extensions_queue_.active_request_failure_count(),
|
extensions_queue_.active_request_failure_count(),
|
||||||
url);
|
url);
|
||||||
@@ -1128,7 +1068,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
std::unique_ptr<ExtensionFetch> fetch_data =
|
std::unique_ptr<ExtensionFetch> fetch_data =
|
||||||
std::move(extensions_queue_.reset_active_request().fetch);
|
std::move(extensions_queue_.reset_active_request().fetch);
|
||||||
delegate_->OnExtensionDownloadStageChanged(
|
delegate_->OnExtensionDownloadStageChanged(
|
||||||
@@ -1325,7 +1311,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) {
|
@@ -1319,7 +1305,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) {
|
||||||
} else {
|
} else {
|
||||||
const std::set<int> request_ids = active_request.GetRequestIds();
|
const std::set<int> request_ids = active_request.GetRequestIds();
|
||||||
const ExtensionDownloaderDelegate::PingResult& ping = ping_results_[id];
|
const ExtensionDownloaderDelegate::PingResult& ping = ping_results_[id];
|
||||||
@@ -1137,7 +1077,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
|||||||
<< "' response code:" << response_code;
|
<< "' response code:" << response_code;
|
||||||
if (ShouldRetryRequest(extension_loader_.get()) &&
|
if (ShouldRetryRequest(extension_loader_.get()) &&
|
||||||
extensions_queue_.active_request_failure_count() < kMaxRetries) {
|
extensions_queue_.active_request_failure_count() < kMaxRetries) {
|
||||||
@@ -1419,6 +1405,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList(
|
@@ -1413,6 +1399,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList(
|
||||||
bool ExtensionDownloader::IterateFetchCredentialsAfterFailure(
|
bool ExtensionDownloader::IterateFetchCredentialsAfterFailure(
|
||||||
ExtensionFetch* fetch,
|
ExtensionFetch* fetch,
|
||||||
int response_code) {
|
int response_code) {
|
||||||
@@ -1159,7 +1099,7 @@ diff --git a/extensions/browser/updater/extension_downloader.h b/extensions/brow
|
|||||||
diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/browser/updater/manifest_fetch_data.cc
|
diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/browser/updater/manifest_fetch_data.cc
|
||||||
--- a/extensions/browser/updater/manifest_fetch_data.cc
|
--- a/extensions/browser/updater/manifest_fetch_data.cc
|
||||||
+++ b/extensions/browser/updater/manifest_fetch_data.cc
|
+++ b/extensions/browser/updater/manifest_fetch_data.cc
|
||||||
@@ -108,7 +108,7 @@ ManifestFetchData::ManifestFetchData(const GURL& update_url,
|
@@ -107,7 +107,7 @@ ManifestFetchData::ManifestFetchData(const GURL& update_url,
|
||||||
: base_url_(update_url),
|
: base_url_(update_url),
|
||||||
full_url_(update_url),
|
full_url_(update_url),
|
||||||
brand_code_(brand_code),
|
brand_code_(brand_code),
|
||||||
@@ -1168,7 +1108,7 @@ diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/brow
|
|||||||
fetch_priority_(fetch_priority) {
|
fetch_priority_(fetch_priority) {
|
||||||
UpdateFullUrl(base_query_params);
|
UpdateFullUrl(base_query_params);
|
||||||
request_ids_.insert(request_id);
|
request_ids_.insert(request_id);
|
||||||
@@ -161,18 +161,12 @@ bool ManifestFetchData::AddExtension(const std::string& id,
|
@@ -160,18 +160,12 @@ bool ManifestFetchData::AddExtension(const std::string& id,
|
||||||
// Compute the string we'd append onto the full_url_, and see if it fits.
|
// Compute the string we'd append onto the full_url_, and see if it fits.
|
||||||
std::vector<std::string> parts;
|
std::vector<std::string> parts;
|
||||||
parts.push_back("id=" + id);
|
parts.push_back("id=" + id);
|
||||||
@@ -1190,7 +1130,7 @@ diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/brow
|
|||||||
diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/browser/updater/safe_manifest_parser.cc
|
diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/browser/updater/safe_manifest_parser.cc
|
||||||
--- a/extensions/browser/updater/safe_manifest_parser.cc
|
--- a/extensions/browser/updater/safe_manifest_parser.cc
|
||||||
+++ b/extensions/browser/updater/safe_manifest_parser.cc
|
+++ b/extensions/browser/updater/safe_manifest_parser.cc
|
||||||
@@ -203,6 +203,7 @@ void ParseXmlDone(ParseUpdateManifestCallback callback,
|
@@ -202,6 +202,7 @@ void ParseXmlDone(ParseUpdateManifestCallback callback,
|
||||||
std::move(callback).Run(/*results=*/nullptr, std::move(error));
|
std::move(callback).Run(/*results=*/nullptr, std::move(error));
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1198,24 +1138,29 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro
|
|||||||
auto results = std::make_unique<UpdateManifestResults>();
|
auto results = std::make_unique<UpdateManifestResults>();
|
||||||
|
|
||||||
// Parse the first <daystart> if it's present.
|
// Parse the first <daystart> if it's present.
|
||||||
|
diff --git a/extensions/browser/webstore_installer.cc b/extensions/browser/webstore_installer.cc
|
||||||
|
--- a/extensions/browser/webstore_installer.cc
|
||||||
|
+++ b/extensions/browser/webstore_installer.cc
|
||||||
|
@@ -604,7 +604,7 @@ void WebstoreInstaller::StartDownload(const ExtensionId& extension_id,
|
||||||
|
render_frame_host->CreateDownloadUrlParameters(download_url_,
|
||||||
|
traffic_annotation);
|
||||||
|
params->set_file_path(file);
|
||||||
|
- if (controller.GetVisibleEntry()) {
|
||||||
|
+ if (((false)) && controller.GetVisibleEntry()) {
|
||||||
|
content::Referrer referrer = content::Referrer::SanitizeForRequest(
|
||||||
|
download_url_,
|
||||||
|
content::Referrer(controller.GetVisibleEntry()->GetURL(),
|
||||||
diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc
|
diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc
|
||||||
--- a/extensions/common/extension_features.cc
|
--- a/extensions/common/extension_features.cc
|
||||||
+++ b/extensions/common/extension_features.cc
|
+++ b/extensions/common/extension_features.cc
|
||||||
@@ -233,4 +233,18 @@ BASE_FEATURE(kExtensionBrowserNamespaceAlternative,
|
@@ -220,4 +220,11 @@ BASE_FEATURE(kWebRequestPersistFilteredEventsViaEventRouter,
|
||||||
"ExtensionBrowserNamespaceAlternative",
|
|
||||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
BASE_FEATURE(kOptimizeWebRequestProxy, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
|
|
||||||
+// Activates the auto update of extensions.
|
|
||||||
+// the only data provided by default is the list of extensions.
|
|
||||||
+CROMITE_FEATURE(kEnableExtensionAutoupdate,
|
+CROMITE_FEATURE(kEnableExtensionAutoupdate,
|
||||||
+ "EnableExtensionAutoupdate",
|
+ "EnableExtensionAutoupdate",
|
||||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
+
|
+
|
||||||
+// Modifies "management" and "webstorePrivate" extension api
|
|
||||||
+// by not allowing access to the list of installed extensions
|
|
||||||
+// and reading or changing status.
|
|
||||||
+// Allows the installation of new extensions.
|
|
||||||
+// If active, exposes all features to the chrome web store like chromium.
|
|
||||||
+CROMITE_FEATURE(kEnableExtensionManagementToChromeStore,
|
+CROMITE_FEATURE(kEnableExtensionManagementToChromeStore,
|
||||||
+ "EnableExtensionToChromeStore",
|
+ "EnableExtensionToChromeStore",
|
||||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
@@ -1223,11 +1168,19 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi
|
|||||||
diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h
|
diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h
|
||||||
--- a/extensions/common/extension_features.h
|
--- a/extensions/common/extension_features.h
|
||||||
+++ b/extensions/common/extension_features.h
|
+++ b/extensions/common/extension_features.h
|
||||||
@@ -273,6 +273,8 @@ BASE_DECLARE_FEATURE(kDebuggerAPIRestrictedToDevMode);
|
@@ -320,6 +320,16 @@ BASE_DECLARE_FEATURE(kWebRequestPersistFilteredEventsViaEventRouter);
|
||||||
// `loadTimes` , `csi`, etc. or deprecated APIs (e.g. `app`).
|
// optimizations like preconnect.
|
||||||
BASE_DECLARE_FEATURE(kExtensionBrowserNamespaceAlternative);
|
BASE_DECLARE_FEATURE(kOptimizeWebRequestProxy);
|
||||||
|
|
||||||
|
+// Activates the auto update of extensions.
|
||||||
|
+// the only data provided by default is the list of extensions.
|
||||||
+BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate);
|
+BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate);
|
||||||
|
+
|
||||||
|
+// Modifies "management" and "webstorePrivate" extension api
|
||||||
|
+// by not allowing access to the list of installed extensions
|
||||||
|
+// and reading or changing status.
|
||||||
|
+// Allows the installation of new extensions.
|
||||||
|
+// If active, exposes all features to the chrome web store like chromium.
|
||||||
+BASE_DECLARE_FEATURE(kEnableExtensionManagementToChromeStore);
|
+BASE_DECLARE_FEATURE(kEnableExtensionManagementToChromeStore);
|
||||||
} // namespace extensions_features
|
} // namespace extensions_features
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/services/network/cors/preflight_cache.cc b/services/network/cors/preflight_cache.cc
|
diff --git a/services/network/cors/preflight_cache.cc b/services/network/cors/preflight_cache.cc
|
||||||
--- a/services/network/cors/preflight_cache.cc
|
--- a/services/network/cors/preflight_cache.cc
|
||||||
+++ b/services/network/cors/preflight_cache.cc
|
+++ b/services/network/cors/preflight_cache.cc
|
||||||
@@ -204,6 +204,10 @@ void PreflightCache::MayPurgeForTesting(size_t max_entries, size_t purge_unit) {
|
@@ -198,6 +198,10 @@ void PreflightCache::MayPurgeForTesting(size_t max_entries, size_t purge_unit) {
|
||||||
MayPurge(max_entries, purge_unit);
|
MayPurge(max_entries, purge_unit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ diff --git a/services/network/cors/preflight_cache.cc b/services/network/cors/pr
|
|||||||
diff --git a/services/network/cors/preflight_cache.h b/services/network/cors/preflight_cache.h
|
diff --git a/services/network/cors/preflight_cache.h b/services/network/cors/preflight_cache.h
|
||||||
--- a/services/network/cors/preflight_cache.h
|
--- a/services/network/cors/preflight_cache.h
|
||||||
+++ b/services/network/cors/preflight_cache.h
|
+++ b/services/network/cors/preflight_cache.h
|
||||||
@@ -78,6 +78,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightCache final {
|
@@ -76,6 +76,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightCache final {
|
||||||
// `max_entries` for testing.
|
// `max_entries` for testing.
|
||||||
void MayPurgeForTesting(size_t max_entries, size_t purge_unit);
|
void MayPurgeForTesting(size_t max_entries, size_t purge_unit);
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ diff --git a/services/network/cors/preflight_cache.h b/services/network/cors/pre
|
|||||||
diff --git a/services/network/cors/preflight_controller.cc b/services/network/cors/preflight_controller.cc
|
diff --git a/services/network/cors/preflight_controller.cc b/services/network/cors/preflight_controller.cc
|
||||||
--- a/services/network/cors/preflight_controller.cc
|
--- a/services/network/cors/preflight_controller.cc
|
||||||
+++ b/services/network/cors/preflight_controller.cc
|
+++ b/services/network/cors/preflight_controller.cc
|
||||||
@@ -834,6 +834,10 @@ void PreflightController::ClearCorsPreflightCache(
|
@@ -644,6 +644,10 @@ void PreflightController::ClearCorsPreflightCache(
|
||||||
cache_.ClearCache(std::move(url_filter));
|
cache_.ClearCache(std::move(url_filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,9 +55,9 @@ diff --git a/services/network/cors/preflight_controller.cc b/services/network/co
|
|||||||
diff --git a/services/network/cors/preflight_controller.h b/services/network/cors/preflight_controller.h
|
diff --git a/services/network/cors/preflight_controller.h b/services/network/cors/preflight_controller.h
|
||||||
--- a/services/network/cors/preflight_controller.h
|
--- a/services/network/cors/preflight_controller.h
|
||||||
+++ b/services/network/cors/preflight_controller.h
|
+++ b/services/network/cors/preflight_controller.h
|
||||||
@@ -157,6 +157,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightController final {
|
@@ -117,6 +117,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightController final {
|
||||||
url_loader_network_service_observer,
|
mojo::PendingRemote<mojom::URLLoaderNetworkServiceObserver>
|
||||||
const PreflightMode& preflight_mode);
|
url_loader_network_service_observer);
|
||||||
|
|
||||||
+ void ClearCache();
|
+ void ClearCache();
|
||||||
+
|
+
|
||||||
@@ -79,12 +79,12 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p
|
|||||||
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
|
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
|
||||||
--- a/services/network/network_context.cc
|
--- a/services/network/network_context.cc
|
||||||
+++ b/services/network/network_context.cc
|
+++ b/services/network/network_context.cc
|
||||||
@@ -1356,6 +1356,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time,
|
@@ -1431,6 +1431,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time,
|
||||||
base::Time end_time,
|
base::Time end_time,
|
||||||
mojom::ClearDataFilterPtr filter,
|
mojom::ClearDataFilterPtr filter,
|
||||||
ClearHttpCacheCallback callback) {
|
ClearHttpCacheCallback callback) {
|
||||||
+ cors_preflight_controller_.ClearCache();
|
+ cors_preflight_controller_.ClearCache();
|
||||||
// It's safe to use Unretained below as the HttpCacheDataRemover is owned by
|
if (base::FeatureList::IsEnabled(net::features::kLogicalClearHttpCache)) {
|
||||||
// |this| and guarantees it won't call its callback if deleted.
|
net::HttpCache* cache =
|
||||||
http_cache_data_removers_.push_back(HttpCacheDataRemover::CreateAndStart(
|
url_request_context_->http_transaction_factory()->GetCache();
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -7,30 +7,65 @@ Use Google Chrome branding for client hints
|
|||||||
|
|
||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
components/embedder_support/user_agent_utils.cc | 4 +---
|
.../SupportLibWebViewChromiumFactory.java | 2 +-
|
||||||
content/browser/client_hints/client_hints.cc | 15 ++++++++++-----
|
components/client_hints/browser/client_hints.cc | 5 +++--
|
||||||
.../browser/loader/navigation_url_loader_impl.cc | 5 +++++
|
components/embedder_support/user_agent_utils.cc | 5 ++---
|
||||||
.../about_flags_cc/Client-hints-overrides.inc | 9 +++++++++
|
content/browser/client_hints/client_hints.cc | 17 +++++++++++++++--
|
||||||
.../common/features_cc/Client-hints-overrides.inc | 1 +
|
.../about_flags_cc/Client-hints-overrides.inc | 9 +++++++++
|
||||||
.../cpp/features_cc/Client-hints-overrides.inc | 1 +
|
.../features_cc/Client-hints-overrides.inc | 1 +
|
||||||
net/http/http_network_transaction.cc | 1 +
|
.../cpp/features_cc/Client-hints-overrides.inc | 1 +
|
||||||
services/network/public/cpp/client_hints.cc | 1 +
|
net/http/http_network_transaction.cc | 1 +
|
||||||
.../blink/common/client_hints/client_hints.cc | 6 ++++--
|
services/network/public/cpp/client_hints.cc | 2 +-
|
||||||
.../common/client_hints/enabled_client_hints.cc | 6 ++++++
|
.../blink/common/client_hints/client_hints.cc | 6 ++++--
|
||||||
.../blink/renderer/core/frame/navigator_ua.idl | 4 +++-
|
.../common/client_hints/enabled_client_hints.cc | 8 ++++++++
|
||||||
.../renderer/core/frame/navigator_ua_data.cc | 1 +
|
.../blink/renderer/core/frame/navigator_ua.idl | 4 +++-
|
||||||
.../renderer/core/frame/navigator_ua_data.idl | 5 ++++-
|
.../renderer/core/frame/navigator_ua_data.cc | 1 +
|
||||||
.../renderer/core/loader/frame_fetch_context.cc | 4 +++-
|
.../renderer/core/frame/navigator_ua_data.idl | 5 ++++-
|
||||||
.../platform/runtime_enabled_features.json5 | 8 ++++++--
|
.../renderer/core/loader/frame_fetch_context.cc | 4 +++-
|
||||||
15 files changed, 56 insertions(+), 15 deletions(-)
|
.../platform/runtime_enabled_features.json5 | 5 +++++
|
||||||
|
16 files changed, 62 insertions(+), 14 deletions(-)
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc
|
||||||
create mode 100644 cromite_flags/content/common/features_cc/Client-hints-overrides.inc
|
create mode 100644 cromite_flags/content/common/features_cc/Client-hints-overrides.inc
|
||||||
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc
|
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc
|
||||||
|
|
||||||
|
diff --git a/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java b/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java
|
||||||
|
--- a/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java
|
||||||
|
+++ b/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java
|
||||||
|
@@ -99,7 +99,7 @@ public class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryB
|
||||||
|
Features.GET_COOKIE_INFO,
|
||||||
|
Features.WEB_MESSAGE_ARRAY_BUFFER,
|
||||||
|
Features.IMAGE_DRAG_DROP,
|
||||||
|
- Features.USER_AGENT_METADATA,
|
||||||
|
+ // Features.USER_AGENT_METADATA,
|
||||||
|
Features.MULTI_PROFILE,
|
||||||
|
Features.ATTRIBUTION_BEHAVIOR,
|
||||||
|
Features.WEBVIEW_MEDIA_INTEGRITY_API_STATUS,
|
||||||
|
diff --git a/components/client_hints/browser/client_hints.cc b/components/client_hints/browser/client_hints.cc
|
||||||
|
--- a/components/client_hints/browser/client_hints.cc
|
||||||
|
+++ b/components/client_hints/browser/client_hints.cc
|
||||||
|
@@ -36,7 +36,7 @@ ParseInitializeClientHintsStorage() {
|
||||||
|
auto results =
|
||||||
|
base::flat_map<url::Origin,
|
||||||
|
std::vector<network::mojom::WebClientHintsType>>();
|
||||||
|
-
|
||||||
|
+ if ((true)) return results;
|
||||||
|
std::string raw_client_hint_json =
|
||||||
|
base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
||||||
|
switches::kInitializeClientHintsStorage);
|
||||||
|
@@ -201,7 +201,8 @@ void ClientHints::PersistClientHints(
|
||||||
|
// TODO(tbansal): crbug.com/735518. Disable updates to client hints settings
|
||||||
|
// when cookies are disabled for |primary_origin|.
|
||||||
|
content_settings::ContentSettingConstraints constraints;
|
||||||
|
- constraints.set_session_model(content_settings::mojom::SessionModel::DURABLE);
|
||||||
|
+ constraints.set_session_model(content_settings::mojom::SessionModel::USER_SESSION);
|
||||||
|
+ constraints.set_lifetime(base::Minutes(1));
|
||||||
|
settings_map_->SetWebsiteSettingDefaultScope(
|
||||||
|
primary_url, GURL(), ContentSettingsType::CLIENT_HINTS,
|
||||||
|
base::Value(std::move(client_hints_dictionary)), constraints);
|
||||||
diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
|
diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
|
||||||
--- a/components/embedder_support/user_agent_utils.cc
|
--- a/components/embedder_support/user_agent_utils.cc
|
||||||
+++ b/components/embedder_support/user_agent_utils.cc
|
+++ b/components/embedder_support/user_agent_utils.cc
|
||||||
@@ -203,9 +203,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList(
|
@@ -163,9 +163,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList(
|
||||||
bool parse_result = base::StringToInt(major_version, &major_version_number);
|
bool parse_result = base::StringToInt(major_version, &major_version_number);
|
||||||
DCHECK(parse_result);
|
DCHECK(parse_result);
|
||||||
std::optional<std::string> brand;
|
std::optional<std::string> brand;
|
||||||
@@ -41,6 +76,14 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd
|
|||||||
|
|
||||||
std::string brand_version =
|
std::string brand_version =
|
||||||
output_version_type == blink::UserAgentBrandVersionType::kFullVersion
|
output_version_type == blink::UserAgentBrandVersionType::kFullVersion
|
||||||
|
@@ -662,6 +660,7 @@ blink::UserAgentMetadata GetUserAgentMetadata(bool only_low_entropy_ch) {
|
||||||
|
}
|
||||||
|
|
||||||
|
// High entropy client hints.
|
||||||
|
+ if ((true)) return metadata;
|
||||||
|
metadata.brand_full_version_list =
|
||||||
|
GetUserAgentBrandFullVersionListInternal(std::nullopt);
|
||||||
|
metadata.full_version = std::string(version_info::GetVersionNumber());
|
||||||
diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc
|
diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc
|
||||||
--- a/content/browser/client_hints/client_hints.cc
|
--- a/content/browser/client_hints/client_hints.cc
|
||||||
+++ b/content/browser/client_hints/client_hints.cc
|
+++ b/content/browser/client_hints/client_hints.cc
|
||||||
@@ -52,56 +95,38 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie
|
|||||||
#include "ui/display/display.h"
|
#include "ui/display/display.h"
|
||||||
#include "ui/display/screen.h"
|
#include "ui/display/screen.h"
|
||||||
#include "url/origin.h"
|
#include "url/origin.h"
|
||||||
@@ -703,7 +704,8 @@ void UpdateNavigationRequestClientUaHeadersImpl(
|
@@ -601,10 +602,21 @@ bool IsClientHintEnabled(const ClientHintsExtendedData& data,
|
||||||
// value, disable them. This overwrites previous decision from UI.
|
|
||||||
disable_due_to_custom_ua = !ua_metadata.has_value();
|
bool IsClientHintAllowed(const ClientHintsExtendedData& data,
|
||||||
}
|
WebClientHintsType type) {
|
||||||
-
|
|
||||||
+ if (!blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled())
|
+ if (!blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled())
|
||||||
+ disable_due_to_custom_ua = true;
|
+ return false;
|
||||||
if (!disable_due_to_custom_ua) {
|
+
|
||||||
if (!ua_metadata.has_value())
|
+ bool allowed = false;
|
||||||
ua_metadata = delegate->GetUserAgentMetadata();
|
+ if (type == WebClientHintsType::kUA ||
|
||||||
@@ -885,10 +887,12 @@ void AddRequestClientHintsHeaders(
|
+ type == WebClientHintsType::kUAMobile ||
|
||||||
AddEctHeader(headers, network_quality_tracker, url);
|
+ type == WebClientHintsType::kUAPlatform ||
|
||||||
}
|
+ type == WebClientHintsType::kUAModel ||
|
||||||
|
+ type == WebClientHintsType::kUAPlatformVersion) {
|
||||||
- UpdateNavigationRequestClientUaHeadersImpl(
|
+ allowed = true;
|
||||||
- delegate, is_ua_override_on, frame_tree_node,
|
|
||||||
- ClientUaHeaderCallType::kDuringCreation, headers, container_policy,
|
|
||||||
- request_url, data);
|
|
||||||
+ if (blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled()) {
|
|
||||||
+ UpdateNavigationRequestClientUaHeadersImpl(
|
|
||||||
+ delegate, is_ua_override_on, frame_tree_node,
|
|
||||||
+ ClientUaHeaderCallType::kDuringCreation, headers, container_policy,
|
|
||||||
+ request_url, data);
|
|
||||||
+ }
|
+ }
|
||||||
|
if (data.is_outermost_main_frame) {
|
||||||
if (ShouldAddClientHint(data, WebClientHintsType::kPrefersColorScheme)) {
|
- return true;
|
||||||
AddPrefersColorSchemeHeader(headers, frame_tree_node);
|
+ return allowed;
|
||||||
@@ -969,6 +973,7 @@ ParseAndPersistAcceptCHForNavigation(
|
}
|
||||||
BrowserContext* context,
|
- return (data.permissions_policy->IsFeatureEnabledForOrigin(
|
||||||
ClientHintsControllerDelegate* delegate,
|
+ return ((false)) && (data.permissions_policy->IsFeatureEnabledForOrigin(
|
||||||
FrameTreeNode* frame_tree_node) {
|
network::GetClientHintToPolicyFeatureMap().at(type),
|
||||||
+ if ((true)) return std::nullopt;
|
data.resource_origin));
|
||||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
}
|
||||||
DCHECK(context);
|
@@ -629,6 +641,7 @@ bool IsJavascriptEnabled(FrameTreeNode* frame_tree_node) {
|
||||||
DCHECK(parsed_headers);
|
void UpdateIFramePermissionsPolicyWithDelegationSupportForClientHints(
|
||||||
diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc
|
ClientHintsExtendedData& data,
|
||||||
--- a/content/browser/loader/navigation_url_loader_impl.cc
|
const network::ParsedPermissionsPolicy& container_policy) {
|
||||||
+++ b/content/browser/loader/navigation_url_loader_impl.cc
|
+ if ((true)) return;
|
||||||
@@ -1380,6 +1380,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived(
|
if (container_policy.empty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if (!base::FeatureList::IsEnabled(network::features::kAcceptCHFrame)) {
|
|
||||||
+ std::move(callback).Run(net::OK);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
LogAcceptCHFrameStatus(AcceptCHFrameRestart::kFramePresent);
|
|
||||||
|
|
||||||
// Given that this is happening in the middle of navigation, there should
|
|
||||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc b/cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc
|
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc b/cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
@@ -121,17 +146,17 @@ new file mode 100644
|
|||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/cromite_flags/content/common/features_cc/Client-hints-overrides.inc
|
+++ b/cromite_flags/content/common/features_cc/Client-hints-overrides.inc
|
||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kCriticalClientHint);
|
+SET_CROMITE_FEATURE_ENABLED(kCriticalClientHint);
|
||||||
diff --git a/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc b/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc
|
diff --git a/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc b/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc
|
+++ b/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc
|
||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kAcceptCHFrame);
|
+SET_CROMITE_FEATURE_ENABLED(kAcceptCHFrame);
|
||||||
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
|
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
|
||||||
--- a/net/http/http_network_transaction.cc
|
--- a/net/http/http_network_transaction.cc
|
||||||
+++ b/net/http/http_network_transaction.cc
|
+++ b/net/http/http_network_transaction.cc
|
||||||
@@ -111,6 +111,7 @@ const size_t kMaxRestarts = 32;
|
@@ -120,6 +120,7 @@ const size_t kMaxRestarts = 32;
|
||||||
|
|
||||||
// Returns true when Early Hints are allowed on the given protocol.
|
// Returns true when Early Hints are allowed on the given protocol.
|
||||||
bool EarlyHintsAreAllowedOn(HttpConnectionInfo connection_info) {
|
bool EarlyHintsAreAllowedOn(HttpConnectionInfo connection_info) {
|
||||||
@@ -142,11 +167,12 @@ diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transa
|
|||||||
diff --git a/services/network/public/cpp/client_hints.cc b/services/network/public/cpp/client_hints.cc
|
diff --git a/services/network/public/cpp/client_hints.cc b/services/network/public/cpp/client_hints.cc
|
||||||
--- a/services/network/public/cpp/client_hints.cc
|
--- a/services/network/public/cpp/client_hints.cc
|
||||||
+++ b/services/network/public/cpp/client_hints.cc
|
+++ b/services/network/public/cpp/client_hints.cc
|
||||||
@@ -112,6 +112,7 @@ const DecodeMap& GetDecodeMap() {
|
@@ -111,7 +111,7 @@ const DecodeMap& GetDecodeMap() {
|
||||||
|
} // namespace
|
||||||
|
|
||||||
std::optional<std::vector<network::mojom::WebClientHintsType>>
|
std::optional<std::vector<network::mojom::WebClientHintsType>>
|
||||||
ParseClientHintsHeader(const std::string& header) {
|
-ParseClientHintsHeader(const std::string& header) {
|
||||||
+ if ((true)) return std::nullopt;
|
+ParseClientHintsHeader(const std::string& header) { // Parse Client Hints Header
|
||||||
// Accept-CH is an sh-list of tokens; see:
|
// Accept-CH is an sh-list of tokens; see:
|
||||||
// https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-header-structure-19#section-3.1
|
// https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-header-structure-19#section-3.1
|
||||||
std::optional<net::structured_headers::List> maybe_list =
|
std::optional<net::structured_headers::List> maybe_list =
|
||||||
@@ -179,13 +205,15 @@ diff --git a/third_party/blink/common/client_hints/client_hints.cc b/third_party
|
|||||||
diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/third_party/blink/common/client_hints/enabled_client_hints.cc
|
diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/third_party/blink/common/client_hints/enabled_client_hints.cc
|
||||||
--- a/third_party/blink/common/client_hints/enabled_client_hints.cc
|
--- a/third_party/blink/common/client_hints/enabled_client_hints.cc
|
||||||
+++ b/third_party/blink/common/client_hints/enabled_client_hints.cc
|
+++ b/third_party/blink/common/client_hints/enabled_client_hints.cc
|
||||||
@@ -15,6 +15,12 @@ namespace {
|
@@ -15,6 +15,14 @@ namespace {
|
||||||
using ::network::mojom::WebClientHintsType;
|
using ::network::mojom::WebClientHintsType;
|
||||||
|
|
||||||
bool IsDisabledByFeature(const WebClientHintsType type) {
|
bool IsDisabledByFeature(const WebClientHintsType type) {
|
||||||
+ if (type == WebClientHintsType::kUA ||
|
+ if (type == WebClientHintsType::kUA ||
|
||||||
+ type == WebClientHintsType::kUAMobile ||
|
+ type == WebClientHintsType::kUAMobile ||
|
||||||
+ type == WebClientHintsType::kUAPlatform) {
|
+ type == WebClientHintsType::kUAPlatform ||
|
||||||
|
+ type == WebClientHintsType::kUAModel ||
|
||||||
|
+ type == WebClientHintsType::kUAPlatformVersion) {
|
||||||
+ return false;
|
+ return false;
|
||||||
+ }
|
+ }
|
||||||
+ if ((true)) return true;
|
+ if ((true)) return true;
|
||||||
@@ -208,14 +236,14 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_ua.idl b/third_part
|
|||||||
diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_party/blink/renderer/core/frame/navigator_ua_data.cc
|
diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_party/blink/renderer/core/frame/navigator_ua_data.cc
|
||||||
--- a/third_party/blink/renderer/core/frame/navigator_ua_data.cc
|
--- a/third_party/blink/renderer/core/frame/navigator_ua_data.cc
|
||||||
+++ b/third_party/blink/renderer/core/frame/navigator_ua_data.cc
|
+++ b/third_party/blink/renderer/core/frame/navigator_ua_data.cc
|
||||||
@@ -186,6 +186,7 @@ const String& NavigatorUAData::platform() const {
|
@@ -113,6 +113,7 @@ const String& NavigatorUAData::platform() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AllowedToCollectHighEntropyValues(ExecutionContext* execution_context) {
|
bool AllowedToCollectHighEntropyValues(ExecutionContext* execution_context) {
|
||||||
+ if ((true)) return false;
|
+ if ((true)) return false;
|
||||||
// To determine whether a document is allowed to use the get high-entropy
|
// To determine whether a document is allowed to get high-entropy
|
||||||
// client hints returned by navigator.userAgentData.getHighEntropyValues(),
|
// client hints returned by navigator.userAgentData.getHighEntropyValues(),
|
||||||
// check the following:
|
// we need to check the "ch-ua-high-entropy-values" policy:
|
||||||
diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.idl b/third_party/blink/renderer/core/frame/navigator_ua_data.idl
|
diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.idl b/third_party/blink/renderer/core/frame/navigator_ua_data.idl
|
||||||
--- a/third_party/blink/renderer/core/frame/navigator_ua_data.idl
|
--- a/third_party/blink/renderer/core/frame/navigator_ua_data.idl
|
||||||
+++ b/third_party/blink/renderer/core/frame/navigator_ua_data.idl
|
+++ b/third_party/blink/renderer/core/frame/navigator_ua_data.idl
|
||||||
@@ -228,13 +256,13 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.idl b/third
|
|||||||
+ RuntimeEnabled=UserAgentClientHint,
|
+ RuntimeEnabled=UserAgentClientHint,
|
||||||
+ Exposed=(Window,Worker)
|
+ Exposed=(Window,Worker)
|
||||||
+] interface NavigatorUAData {
|
+] interface NavigatorUAData {
|
||||||
[HighEntropy, MeasureAs=NavigatorUAData_Brands] readonly attribute FrozenArray<NavigatorUABrandVersion> brands;
|
[MeasureAs=NavigatorUAData_Brands] readonly attribute FrozenArray<NavigatorUABrandVersion> brands;
|
||||||
[HighEntropy=Direct, MeasureAs=NavigatorUAData_Mobile] readonly attribute boolean mobile;
|
[MeasureAs=NavigatorUAData_Mobile] readonly attribute boolean mobile;
|
||||||
[HighEntropy=Direct, MeasureAs=NavigatorUAData_Platform] readonly attribute DOMString platform;
|
[MeasureAs=NavigatorUAData_Platform] readonly attribute DOMString platform;
|
||||||
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||||
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||||
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||||
@@ -226,6 +226,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy,
|
@@ -233,6 +233,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy,
|
||||||
bool is_1p_origin,
|
bool is_1p_origin,
|
||||||
network::mojom::blink::WebClientHintsType type,
|
network::mojom::blink::WebClientHintsType type,
|
||||||
const ClientHintsPreferences& hints_preferences) {
|
const ClientHintsPreferences& hints_preferences) {
|
||||||
@@ -243,7 +271,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
|
|||||||
// For subresource requests, sending the hint in the fetch request based on
|
// For subresource requests, sending the hint in the fetch request based on
|
||||||
// the permissions policy.
|
// the permissions policy.
|
||||||
if (!policy.IsFeatureEnabledForOrigin(
|
if (!policy.IsFeatureEnabledForOrigin(
|
||||||
@@ -606,7 +608,7 @@ void FrameFetchContext::AddClientHintsIfNecessary(
|
@@ -725,7 +727,7 @@ void FrameFetchContext::AddClientHintsIfNecessary(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only send User Agent hints if the info is available
|
// Only send User Agent hints if the info is available
|
||||||
@@ -255,7 +283,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
|
|||||||
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
@@ -517,6 +517,11 @@
|
@@ -678,6 +678,11 @@
|
||||||
name: "AriaNotifyV2",
|
name: "AriaNotifyV2",
|
||||||
status: {"Android": "test", "Win": "test", "Mac": "test", "Linux": "test"},
|
status: {"Android": "test", "Win": "test", "Mac": "test", "Linux": "test"},
|
||||||
},
|
},
|
||||||
@@ -267,14 +295,4 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
|||||||
{
|
{
|
||||||
name: "AriaRowColIndexText",
|
name: "AriaRowColIndexText",
|
||||||
status: "stable",
|
status: "stable",
|
||||||
@@ -903,8 +908,7 @@
|
|
||||||
// Allows top-level sites to restrict collection of high-entropy UA client
|
|
||||||
// hints (from 3Ps, or itself) via the getHighEntropyValues API.
|
|
||||||
// crbug.com/385161047
|
|
||||||
- name: "ClientHintUAHighEntropyValuesPermissionPolicy",
|
|
||||||
- status: "test",
|
|
||||||
+ name: "ClientHintUAHighEntropyValuesPermissionPolicy", // disabled by default
|
|
||||||
},
|
|
||||||
{
|
|
||||||
// Enables clipboardchange event API for listening for changes to the
|
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ No change in doh connections.
|
|||||||
|
|
||||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
---
|
---
|
||||||
.../browser/network_session_configurator.cc | 11 ++++-------
|
.../browser/network_session_configurator.cc | 12 ++++--------
|
||||||
.../about_flags_cc/Close-Sessions-On-Ip-Change.inc | 14 ++++++++++++++
|
.../about_flags_cc/Close-Sessions-On-Ip-Change.inc | 14 ++++++++++++++
|
||||||
.../features_cc/Close-Sessions-On-Ip-Change.inc | 5 +++++
|
.../features_cc/Close-Sessions-On-Ip-Change.inc | 5 +++++
|
||||||
.../features_h/Close-Sessions-On-Ip-Change.inc | 3 +++
|
.../features_h/Close-Sessions-On-Ip-Change.inc | 3 +++
|
||||||
net/base/features.cc | 2 +-
|
net/base/features.cc | 2 +-
|
||||||
5 files changed, 27 insertions(+), 8 deletions(-)
|
5 files changed, 27 insertions(+), 9 deletions(-)
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Close-Sessions-On-Ip-Change.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Close-Sessions-On-Ip-Change.inc
|
||||||
create mode 100644 cromite_flags/net/base/features_cc/Close-Sessions-On-Ip-Change.inc
|
create mode 100644 cromite_flags/net/base/features_cc/Close-Sessions-On-Ip-Change.inc
|
||||||
create mode 100644 cromite_flags/net/base/features_h/Close-Sessions-On-Ip-Change.inc
|
create mode 100644 cromite_flags/net/base/features_h/Close-Sessions-On-Ip-Change.inc
|
||||||
@@ -22,7 +22,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/components/network_session_configurator/browser/network_session_configurator.cc b/components/network_session_configurator/browser/network_session_configurator.cc
|
diff --git a/components/network_session_configurator/browser/network_session_configurator.cc b/components/network_session_configurator/browser/network_session_configurator.cc
|
||||||
--- a/components/network_session_configurator/browser/network_session_configurator.cc
|
--- a/components/network_session_configurator/browser/network_session_configurator.cc
|
||||||
+++ b/components/network_session_configurator/browser/network_session_configurator.cc
|
+++ b/components/network_session_configurator/browser/network_session_configurator.cc
|
||||||
@@ -220,9 +220,8 @@ quic::QuicTagVector GetQuicClientConnectionOptions(
|
@@ -221,9 +221,8 @@ quic::QuicTagVector GetQuicClientConnectionOptions(
|
||||||
|
|
||||||
bool ShouldQuicCloseSessionsOnIpChange(
|
bool ShouldQuicCloseSessionsOnIpChange(
|
||||||
const VariationParameters& quic_trial_params) {
|
const VariationParameters& quic_trial_params) {
|
||||||
@@ -34,14 +34,15 @@ diff --git a/components/network_session_configurator/browser/network_session_con
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool ShouldQuicGoAwaySessionsOnIpChange(
|
bool ShouldQuicGoAwaySessionsOnIpChange(
|
||||||
@@ -303,10 +302,8 @@ bool ShouldQuicEstimateInitialRtt(
|
@@ -304,11 +303,8 @@ bool ShouldQuicEstimateInitialRtt(
|
||||||
|
|
||||||
bool ShouldQuicMigrateSessionsOnNetworkChangeV2(
|
bool ShouldQuicMigrateSessionsOnNetworkChangeV2(
|
||||||
const VariationParameters& quic_trial_params) {
|
const VariationParameters& quic_trial_params) {
|
||||||
- return GetVariationBoolParamOrFeatureSetting(
|
- return GetVariationBoolParamOrFeatureSetting(
|
||||||
- quic_trial_params, "migrate_sessions_on_network_change_v2",
|
- quic_trial_params, "migrate_sessions_on_network_change_v2",
|
||||||
- base::FeatureList::IsEnabled(
|
- base::FeatureList::IsEnabled(
|
||||||
- net::features::kMigrateSessionsOnNetworkChangeV2));
|
- net::features::kMigrateSessionsOnNetworkChangeV2),
|
||||||
|
- "true");
|
||||||
+ return base::FeatureList::IsEnabled(
|
+ return base::FeatureList::IsEnabled(
|
||||||
+ net::features::kMigrateSessionsOnNetworkChangeV2);
|
+ net::features::kMigrateSessionsOnNetworkChangeV2);
|
||||||
}
|
}
|
||||||
@@ -87,7 +88,7 @@ new file mode 100644
|
|||||||
diff --git a/net/base/features.cc b/net/base/features.cc
|
diff --git a/net/base/features.cc b/net/base/features.cc
|
||||||
--- a/net/base/features.cc
|
--- a/net/base/features.cc
|
||||||
+++ b/net/base/features.cc
|
+++ b/net/base/features.cc
|
||||||
@@ -548,7 +548,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI,
|
@@ -300,7 +300,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
// NetworkChangeNotifier::AreNetworkHandlesSupported).
|
// NetworkChangeNotifier::AreNetworkHandlesSupported).
|
||||||
#if BUILDFLAG(IS_ANDROID)
|
#if BUILDFLAG(IS_ANDROID)
|
||||||
inline constexpr auto kMigrateSessionsOnNetworkChangeV2Default =
|
inline constexpr auto kMigrateSessionsOnNetworkChangeV2Default =
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
|
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
|
||||||
--- a/chrome/android/chrome_public_apk_tmpl.gni
|
--- a/chrome/android/chrome_public_apk_tmpl.gni
|
||||||
+++ b/chrome/android/chrome_public_apk_tmpl.gni
|
+++ b/chrome/android/chrome_public_apk_tmpl.gni
|
||||||
@@ -665,6 +665,7 @@ template("chrome_common_apk_or_module_tmpl") {
|
@@ -597,6 +597,7 @@ template("chrome_common_apk_or_module_tmpl") {
|
||||||
[ "//components/crash/core/app:chrome_crashpad_handler_named_as_so" ]
|
[ "//components/crash/core/app:chrome_crashpad_handler_named_as_so" ]
|
||||||
loadable_modules += [ "$root_out_dir/libchrome_crashpad_handler.so" ]
|
loadable_modules += [ "$root_out_dir/libchrome_crashpad_handler.so" ]
|
||||||
library_always_compress += [ "libchrome_crashpad_handler.so" ]
|
library_always_compress += [ "libchrome_crashpad_handler.so" ]
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -8,17 +8,17 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
---
|
---
|
||||||
chrome/android/chrome_java_resources.gni | 2 +-
|
chrome/android/chrome_java_resources.gni | 2 +-
|
||||||
.../android/java/res/xml/main_preferences.xml | 4 +-
|
.../android/java/res/xml/main_preferences.xml | 4 +-
|
||||||
.../res/xml/privacy_preferences_cromite.xml | 191 ++++++++++++++++++
|
.../res/xml/privacy_preferences_cromite.xml | 196 ++++++++++++++++++
|
||||||
.../privacy/settings/PrivacySettings.java | 6 +-
|
.../privacy/settings/PrivacySettings.java | 6 +-
|
||||||
.../Cromite-settings-ui.grdp | 15 ++
|
.../Cromite-settings-ui.grdp | 15 ++
|
||||||
5 files changed, 213 insertions(+), 5 deletions(-)
|
5 files changed, 218 insertions(+), 5 deletions(-)
|
||||||
create mode 100644 chrome/android/java/res/xml/privacy_preferences_cromite.xml
|
create mode 100644 chrome/android/java/res/xml/privacy_preferences_cromite.xml
|
||||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp
|
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp
|
||||||
|
|
||||||
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
|
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
|
||||||
--- a/chrome/android/chrome_java_resources.gni
|
--- a/chrome/android/chrome_java_resources.gni
|
||||||
+++ b/chrome/android/chrome_java_resources.gni
|
+++ b/chrome/android/chrome_java_resources.gni
|
||||||
@@ -653,7 +653,7 @@ chrome_java_resources = [
|
@@ -675,7 +675,7 @@ chrome_java_resources = [
|
||||||
"java/res/xml/manage_sync_preferences.xml",
|
"java/res/xml/manage_sync_preferences.xml",
|
||||||
"java/res/xml/personalize_google_services_preferences.xml",
|
"java/res/xml/personalize_google_services_preferences.xml",
|
||||||
"java/res/xml/incognito_preferences.xml",
|
"java/res/xml/incognito_preferences.xml",
|
||||||
@@ -30,16 +30,16 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
|
|||||||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||||
@@ -15,7 +15,7 @@ for the previous order (main_preferences_legacy). -->
|
@@ -12,7 +12,7 @@ found in the LICENSE file.
|
||||||
<!-- `order=0` is reserved and it will be added in code. -->
|
android:key="settings_promo_card"
|
||||||
<!-- TODO(crbug.com/364906215): Move SettingsPromoCardPreference here once SyncPromoPreference is removed -->
|
android:order="0" />
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
- android:key="account_and_google_services_section"
|
- android:key="account_and_google_services_section"
|
||||||
+ android:key="account_and_google_services_section" app:isPreferenceVisible="false"
|
+ android:key="account_and_google_services_section" app:isPreferenceVisible="false"
|
||||||
android:order="1001"
|
android:order="1001"
|
||||||
android:title="@string/prefs_section_account_and_google_services"/>
|
android:title="@string/prefs_section_account_and_google_services"/>
|
||||||
<org.chromium.chrome.browser.sync.settings.SignInPreference
|
<org.chromium.chrome.browser.sync.settings.SignInPreference
|
||||||
@@ -28,7 +28,7 @@ for the previous order (main_preferences_legacy). -->
|
@@ -24,7 +24,7 @@ found in the LICENSE file.
|
||||||
android:layout="@layout/account_management_account_row"
|
android:layout="@layout/account_management_account_row"
|
||||||
android:title="@string/sync_category_title"/>
|
android:title="@string/sync_category_title"/>
|
||||||
<org.chromium.components.browser_ui.settings.ChromeBasePreference
|
<org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||||
@@ -52,7 +52,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences_cromite.xml b/chrom
|
|||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/chrome/android/java/res/xml/privacy_preferences_cromite.xml
|
+++ b/chrome/android/java/res/xml/privacy_preferences_cromite.xml
|
||||||
@@ -0,0 +1,191 @@
|
@@ -0,0 +1,196 @@
|
||||||
+<?xml version="1.0" encoding="utf-8"?><!--
|
+<?xml version="1.0" encoding="utf-8"?><!--
|
||||||
+Copyright 2022 The Chromium Authors
|
+Copyright 2022 The Chromium Authors
|
||||||
+Use of this source code is governed by a BSD-style license that can be
|
+Use of this source code is governed by a BSD-style license that can be
|
||||||
@@ -108,6 +108,12 @@ new file mode 100644
|
|||||||
+ android:key="can_make_payment"
|
+ android:key="can_make_payment"
|
||||||
+ android:title="@string/can_make_payment_title"
|
+ android:title="@string/can_make_payment_title"
|
||||||
+ android:summary="@string/settings_can_make_payment_toggle_label" />
|
+ android:summary="@string/settings_can_make_payment_toggle_label" />
|
||||||
|
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||||
|
+ android:key="throttle_main_thread_to_60hz"
|
||||||
|
+ android:title="@string/throttle_main_thread_to_60hz_title"
|
||||||
|
+ android:summary="@string/throttle_main_thread_to_60hz_summary"
|
||||||
|
+ app:featureName="throttle-main-thread-to-60hz"
|
||||||
|
+ app:needRestart="true" />
|
||||||
+
|
+
|
||||||
+ <PreferenceCategory
|
+ <PreferenceCategory
|
||||||
+ android:title="@string/data_exposed_to_device_section_title"/>
|
+ android:title="@string/data_exposed_to_device_section_title"/>
|
||||||
@@ -172,6 +178,11 @@ new file mode 100644
|
|||||||
+ android:key="secure_dns"
|
+ android:key="secure_dns"
|
||||||
+ android:title="@string/settings_secure_dns_title"
|
+ android:title="@string/settings_secure_dns_title"
|
||||||
+ android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" />
|
+ android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" />
|
||||||
|
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||||
|
+ android:title="@string/dangling_pointer_detector_title"
|
||||||
|
+ android:summary="@string/dangling_pointer_detector_summary"
|
||||||
|
+ app:featureName="enable-dangling-pointer-detector"
|
||||||
|
+ app:needRestart="true" />
|
||||||
+
|
+
|
||||||
+ <PreferenceCategory
|
+ <PreferenceCategory
|
||||||
+ android:title="@string/services_category_title"/>
|
+ android:title="@string/services_category_title"/>
|
||||||
@@ -217,12 +228,6 @@ new file mode 100644
|
|||||||
+ android:fragment="org.chromium.components.privacy_sandbox.TrackingProtectionSettings"
|
+ android:fragment="org.chromium.components.privacy_sandbox.TrackingProtectionSettings"
|
||||||
+ app:isPreferenceVisible="false" />
|
+ app:isPreferenceVisible="false" />
|
||||||
+ <Preference
|
+ <Preference
|
||||||
+ android:key="incognito_tracking_protections"
|
|
||||||
+ android:title="@string/incognito_tracking_protections_page_title"
|
|
||||||
+ android:summary="@string/incognito_tracking_protections_page_entrypoint_description"
|
|
||||||
+ android:fragment="org.chromium.components.privacy_sandbox.IncognitoTrackingProtectionsFragment"
|
|
||||||
+ app:isPreferenceVisible="false" />
|
|
||||||
+ <Preference
|
|
||||||
+ android:key="privacy_sandbox"
|
+ android:key="privacy_sandbox"
|
||||||
+ android:title="@string/ad_privacy_link_row_label"
|
+ android:title="@string/ad_privacy_link_row_label"
|
||||||
+ android:summary="@string/ad_privacy_link_row_sub_label"
|
+ android:summary="@string/ad_privacy_link_row_sub_label"
|
||||||
@@ -247,16 +252,16 @@ new file mode 100644
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||||
@@ -189,7 +189,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -204,7 +204,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
|
public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
|
||||||
mPageTitle.set(getString(R.string.prefs_privacy_security));
|
mPageTitle.set(getString(R.string.prefs_privacy_security));
|
||||||
|
|
||||||
- SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
|
- SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
|
||||||
+ SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences_cromite);
|
+ SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences_cromite);
|
||||||
|
|
||||||
Preference incognitoTrackingProtectionsPreference =
|
Preference sandboxPreference = findPreference(PREF_PRIVACY_SANDBOX);
|
||||||
findPreference(PREF_INCOGNITO_TRACKING_PROTECTIONS);
|
// Overwrite the click listener to pass a correct referrer to the fragment.
|
||||||
@@ -280,7 +280,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -291,7 +291,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
|
|
||||||
ChromeSwitchPreference passwordLeakTogglePref =
|
ChromeSwitchPreference passwordLeakTogglePref =
|
||||||
(ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION);
|
(ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION);
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ Subject: Cromite Branding
|
|||||||
|
|
||||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
---
|
---
|
||||||
|
base/win/message_window.cc | 2 +-
|
||||||
build/BUILD.gn | 8 ++
|
build/BUILD.gn | 8 ++
|
||||||
build/config/BUILDCONFIG.gn | 4 +
|
build/config/BUILDCONFIG.gn | 4 +
|
||||||
chrome/android/java/AndroidManifest.xml | 2 +-
|
chrome/android/java/AndroidManifest.xml | 2 +-
|
||||||
@@ -26,7 +27,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
.../mipmap-xxxhdpi/layered_app_icon.png | Bin 3652 -> 29220 bytes
|
.../mipmap-xxxhdpi/layered_app_icon.png | Bin 3652 -> 29220 bytes
|
||||||
.../layered_app_icon_background.png | Bin 3519 -> 142032 bytes
|
.../layered_app_icon_background.png | Bin 3519 -> 142032 bytes
|
||||||
.../values/channel_constants.xml | 8 +-
|
.../values/channel_constants.xml | 8 +-
|
||||||
|
.../ChromeContextMenuPopulator.java | 2 +-
|
||||||
|
.../browser/fullscreen/FullscreenToast.java | 2 +-
|
||||||
.../inline/BromiteInlineUpdateController.java | 19 +++-
|
.../inline/BromiteInlineUpdateController.java | 19 +++-
|
||||||
|
.../tabbed_mode/TabbedRootUiCoordinator.java | 4 +-
|
||||||
chrome/app/extensions_strings.grdp | 4 +-
|
chrome/app/extensions_strings.grdp | 4 +-
|
||||||
chrome/app/settings_strings.grdp | 2 +-
|
chrome/app/settings_strings.grdp | 2 +-
|
||||||
chrome/app/theme/chromium/BRANDING | 8 +-
|
chrome/app/theme/chromium/BRANDING | 8 +-
|
||||||
@@ -35,35 +39,55 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
.../theme/chromium/win/tiles/SmallLogo.png | Bin 9784 -> 12363 bytes
|
.../theme/chromium/win/tiles/SmallLogo.png | Bin 9784 -> 12363 bytes
|
||||||
.../chromium/product_logo_32.png | Bin 822 -> 2301 bytes
|
.../chromium/product_logo_32.png | Bin 822 -> 2301 bytes
|
||||||
chrome/browser/BUILD.gn | 1 +
|
chrome/browser/BUILD.gn | 1 +
|
||||||
.../browser/flags/ChromeFeatureList.java | 2 +-
|
.../external_registry_loader_win.cc | 3 +-
|
||||||
|
.../browser/hub/HubToolbarMediator.java | 2 +-
|
||||||
|
.../android/res/layout/hub_toolbar_layout.xml | 83 +++++++++-------
|
||||||
.../chrome/browser/omaha/UpdateConfigs.java | 2 +-
|
.../chrome/browser/omaha/UpdateConfigs.java | 2 +-
|
||||||
chrome/browser/prefs/BUILD.gn | 1 +
|
chrome/browser/prefs/BUILD.gn | 1 +
|
||||||
.../prefs/chrome_pref_service_factory.cc | 6 +-
|
.../prefs/chrome_pref_service_factory.cc | 6 +-
|
||||||
|
chrome/browser/process_singleton_win.cc | 2 +-
|
||||||
.../profiles/profile_shortcut_manager_win.cc | 2 +-
|
.../profiles/profile_shortcut_manager_win.cc | 2 +-
|
||||||
.../settings/settings_menu/settings_menu.html | 14 ++-
|
.../settings/settings_menu/settings_menu.html | 14 ++-
|
||||||
.../strings/android_chrome_strings.grd | 2 +-
|
.../tab_group_sync/TabGroupSyncUtils.java | 5 +-
|
||||||
|
.../OmniboxSuggestionsContainer.java | 8 +-
|
||||||
|
.../strings/android_chrome_strings.grd | 4 +-
|
||||||
.../toolbar/chrome_labs/chrome_labs_utils.cc | 1 +
|
.../toolbar/chrome_labs/chrome_labs_utils.cc | 1 +
|
||||||
chrome/common/url_constants.h | 4 +-
|
chrome/common/url_constants.h | 4 +-
|
||||||
.../install_static/chromium_install_modes.cc | 2 +-
|
.../install_static/chromium_install_modes.h | 2 +-
|
||||||
.../strings/android/browser_ui_strings.grd | 2 +-
|
.../strings/android/browser_ui_strings.grd | 2 +-
|
||||||
.../drawable-hdpi/fre_product_logo.png | Bin 3912 -> 22295 bytes
|
.../drawable-hdpi/fre_product_logo.png | Bin 3912 -> 22295 bytes
|
||||||
.../drawable-mdpi/fre_product_logo.png | Bin 2490 -> 12171 bytes
|
.../drawable-mdpi/fre_product_logo.png | Bin 2490 -> 12171 bytes
|
||||||
.../drawable-xhdpi/fre_product_logo.png | Bin 5151 -> 34576 bytes
|
.../drawable-xhdpi/fre_product_logo.png | Bin 5151 -> 34576 bytes
|
||||||
.../drawable-xxhdpi/fre_product_logo.png | Bin 7720 -> 60959 bytes
|
.../drawable-xxhdpi/fre_product_logo.png | Bin 7720 -> 60959 bytes
|
||||||
.../drawable-xxxhdpi/fre_product_logo.png | Bin 10740 -> 93273 bytes
|
.../drawable-xxxhdpi/fre_product_logo.png | Bin 10740 -> 93273 bytes
|
||||||
|
.../browser/autocomplete_controller.cc | 1 +
|
||||||
.../vector_icons/product_chrome_refresh.icon | 93 +++++++++---------
|
.../vector_icons/product_chrome_refresh.icon | 93 +++++++++---------
|
||||||
|
components/policy/core/common/policy_paths.cc | 2 +-
|
||||||
|
.../policy/tools/generate_policy_source.py | 2 +-
|
||||||
.../chromium/product_logo.png | Bin 1562 -> 3577 bytes
|
.../chromium/product_logo.png | Bin 1562 -> 3577 bytes
|
||||||
.../chromium/product_logo_white.png | Bin 1417 -> 3040 bytes
|
.../chromium/product_logo_white.png | Bin 1417 -> 3040 bytes
|
||||||
.../chromium/product_logo.png | Bin 2714 -> 7923 bytes
|
.../chromium/product_logo.png | Bin 2714 -> 7923 bytes
|
||||||
.../chromium/product_logo_white.png | Bin 2512 -> 6790 bytes
|
.../chromium/product_logo_white.png | Bin 2512 -> 6790 bytes
|
||||||
.../webui/version/resources/about_version.ts | 4 +-
|
.../webui/version/resources/about_version.ts | 4 +-
|
||||||
.../resources/about_version_mobile.css | 9 ++
|
.../resources/about_version_mobile.css | 10 ++
|
||||||
content/child/runtime_features.cc | 44 ++++-----
|
content/child/runtime_features.cc | 44 ++++-----
|
||||||
.../Cromite-Branding.inc | 1 +
|
.../Cromite-Branding.inc | 1 +
|
||||||
tools/grit/grit/grd_reader.py | 35 +++++++
|
tools/grit/grit/grd_reader.py | 35 +++++++
|
||||||
57 files changed, 203 insertions(+), 129 deletions(-)
|
69 files changed, 272 insertions(+), 179 deletions(-)
|
||||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc
|
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc
|
||||||
|
|
||||||
|
diff --git a/base/win/message_window.cc b/base/win/message_window.cc
|
||||||
|
--- a/base/win/message_window.cc
|
||||||
|
+++ b/base/win/message_window.cc
|
||||||
|
@@ -29,7 +29,7 @@
|
||||||
|
// To avoid conflicts with the macro from the Windows SDK...
|
||||||
|
#undef FindWindow
|
||||||
|
|
||||||
|
-const wchar_t kMessageWindowClassName[] = L"Chrome_MessageWindow";
|
||||||
|
+const wchar_t kMessageWindowClassName[] = L"Cromite_MessageWindow";
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
diff --git a/build/BUILD.gn b/build/BUILD.gn
|
diff --git a/build/BUILD.gn b/build/BUILD.gn
|
||||||
--- a/build/BUILD.gn
|
--- a/build/BUILD.gn
|
||||||
+++ b/build/BUILD.gn
|
+++ b/build/BUILD.gn
|
||||||
@@ -85,7 +109,7 @@ diff --git a/build/BUILD.gn b/build/BUILD.gn
|
|||||||
diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
|
diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
|
||||||
--- a/build/config/BUILDCONFIG.gn
|
--- a/build/config/BUILDCONFIG.gn
|
||||||
+++ b/build/config/BUILDCONFIG.gn
|
+++ b/build/config/BUILDCONFIG.gn
|
||||||
@@ -187,6 +187,10 @@ declare_args() {
|
@@ -184,6 +184,10 @@ declare_args() {
|
||||||
clang_warning_suppression_file = ""
|
clang_warning_suppression_file = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,7 +123,7 @@ diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
|
|||||||
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
|
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
|
||||||
--- a/chrome/android/java/AndroidManifest.xml
|
--- a/chrome/android/java/AndroidManifest.xml
|
||||||
+++ b/chrome/android/java/AndroidManifest.xml
|
+++ b/chrome/android/java/AndroidManifest.xml
|
||||||
@@ -182,7 +182,7 @@ by a child template that "extends" this file.
|
@@ -198,7 +198,7 @@ by a child template that "extends" this file.
|
||||||
<application android:name="{% block application_name %}org.chromium.chrome.browser.base.SplitChromeApplication{% endblock %}"
|
<application android:name="{% block application_name %}org.chromium.chrome.browser.base.SplitChromeApplication{% endblock %}"
|
||||||
android:icon="@drawable/ic_launcher"
|
android:icon="@drawable/ic_launcher"
|
||||||
android:roundIcon="@drawable/ic_launcher_round"
|
android:roundIcon="@drawable/ic_launcher_round"
|
||||||
@@ -131,8 +155,8 @@ diff --git a/chrome/android/java/res/xml/legal_information_preferences.xml b/chr
|
|||||||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||||
@@ -16,20 +16,20 @@ for the previous order (main_preferences_legacy). -->
|
@@ -13,19 +13,19 @@ found in the LICENSE file.
|
||||||
<!-- TODO(crbug.com/364906215): Move SettingsPromoCardPreference here once SyncPromoPreference is removed -->
|
android:order="0" />
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:key="account_and_google_services_section"
|
android:key="account_and_google_services_section"
|
||||||
- android:order="1"
|
- android:order="1"
|
||||||
@@ -140,9 +164,8 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
|||||||
android:title="@string/prefs_section_account_and_google_services"/>
|
android:title="@string/prefs_section_account_and_google_services"/>
|
||||||
<org.chromium.chrome.browser.sync.settings.SignInPreference
|
<org.chromium.chrome.browser.sync.settings.SignInPreference
|
||||||
android:key="sign_in"
|
android:key="sign_in"
|
||||||
- android:order="2"
|
- android:order="2"/>
|
||||||
+ android:order="1002"
|
+ android:order="1002"/>
|
||||||
android:title="@string/sign_in_to_chrome"/>
|
|
||||||
<org.chromium.components.browser_ui.settings.ChromeBasePreference
|
<org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||||
android:key="manage_sync"
|
android:key="manage_sync"
|
||||||
- android:order="3"
|
- android:order="3"
|
||||||
@@ -9137,6 +9160,31 @@ diff --git a/chrome/android/java/res_chromium_base/values/channel_constants.xml
|
|||||||
+ <string name="search_widget_title" translatable="false">Cromite search</string>
|
+ <string name="search_widget_title" translatable="false">Cromite search</string>
|
||||||
+ <string name="quick_action_search_widget_title" translatable="false">Cromite quick action search</string>
|
+ <string name="quick_action_search_widget_title" translatable="false">Cromite quick action search</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||||
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||||
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||||
|
@@ -502,8 +502,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||||
|
&& !isEmptyUrl(mParams.getUrl())
|
||||||
|
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
|
||||||
|
if (mMode == ContextMenuMode.NORMAL) {
|
||||||
|
- linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB));
|
||||||
|
linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP));
|
||||||
|
+ linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB));
|
||||||
|
if (!mItemDelegate.isIncognito()
|
||||||
|
&& mItemDelegate.isIncognitoSupported()
|
||||||
|
&& !shouldOpenIncognitoAsWindow()) {
|
||||||
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java
|
||||||
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java
|
||||||
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java
|
||||||
|
@@ -109,7 +109,7 @@ interface FullscreenToast {
|
||||||
|
mNotificationToast =
|
||||||
|
Toast.makeTextWithPriority(
|
||||||
|
mActivity, toastTextId, Toast.LENGTH_LONG, ToastPriority.HIGH);
|
||||||
|
- mNotificationToast.setGravity(Gravity.BOTTOM | Gravity.CENTER, 0, 0);
|
||||||
|
+ mNotificationToast.setGravity(Gravity.TOP | Gravity.CENTER, 0, 0);
|
||||||
|
mNotificationToast.show();
|
||||||
|
}
|
||||||
|
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
|
||||||
@@ -9180,10 +9228,28 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Br
|
|||||||
Log.i(TAG, "BromiteUpdater: fetching with GET '%s'", UPSTREAM_VERSION_URL);
|
Log.i(TAG, "BromiteUpdater: fetching with GET '%s'", UPSTREAM_VERSION_URL);
|
||||||
|
|
||||||
EndpointFetcher.nativeFetchWithNoAuth(
|
EndpointFetcher.nativeFetchWithNoAuth(
|
||||||
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||||
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||||
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||||
|
@@ -1065,12 +1065,12 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||||
|
if (tab.canGoBack()) {
|
||||||
|
return ActionType.NAVIGATE_BACK;
|
||||||
|
}
|
||||||
|
- if (TabAssociatedApp.isOpenedFromExternalApp(tab)) {
|
||||||
|
+ if (TabAssociatedApp.isOpenedFromExternalApp(tab) && tab.getLaunchType() == TabLaunchType.FROM_EXTERNAL_APP) {
|
||||||
|
return ActionType.EXIT_APP_AND_CLOSE_TAB;
|
||||||
|
}
|
||||||
|
return mBackButtonShouldCloseTabFn.apply(tab)
|
||||||
|
? ActionType.CLOSE_TAB
|
||||||
|
- : ActionType.EXIT_APP_ONLY;
|
||||||
|
+ : ActionType.CLOSE_TAB;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp
|
diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp
|
||||||
--- a/chrome/app/extensions_strings.grdp
|
--- a/chrome/app/extensions_strings.grdp
|
||||||
+++ b/chrome/app/extensions_strings.grdp
|
+++ b/chrome/app/extensions_strings.grdp
|
||||||
@@ -398,7 +398,7 @@
|
@@ -395,7 +395,7 @@
|
||||||
No recent activities
|
No recent activities
|
||||||
</message>
|
</message>
|
||||||
<message name="IDS_EXTENSIONS_NO_INSTALLED_ITEMS" desc="The message shown to the user on the Extensions settings page when there are no extensions or apps installed.">
|
<message name="IDS_EXTENSIONS_NO_INSTALLED_ITEMS" desc="The message shown to the user on the Extensions settings page when there are no extensions or apps installed.">
|
||||||
@@ -9192,7 +9258,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.
|
|||||||
</message>
|
</message>
|
||||||
<message name="IDS_EXTENSIONS_NO_DESCRIPTION" desc="The message shown to the user when an extension does not have any description.">
|
<message name="IDS_EXTENSIONS_NO_DESCRIPTION" desc="The message shown to the user when an extension does not have any description.">
|
||||||
No description provided
|
No description provided
|
||||||
@@ -536,7 +536,7 @@
|
@@ -533,7 +533,7 @@
|
||||||
My extensions
|
My extensions
|
||||||
</message>
|
</message>
|
||||||
<message name="IDS_EXTENSIONS_SIDEBAR_DISCOVER_MORE" desc="The text displayed in the sidebar of the chrome://extensions page to open the Chrome Web Store to get more extensions.">
|
<message name="IDS_EXTENSIONS_SIDEBAR_DISCOVER_MORE" desc="The text displayed in the sidebar of the chrome://extensions page to open the Chrome Web Store to get more extensions.">
|
||||||
@@ -9204,7 +9270,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.
|
|||||||
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
|
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
|
||||||
--- a/chrome/app/settings_strings.grdp
|
--- a/chrome/app/settings_strings.grdp
|
||||||
+++ b/chrome/app/settings_strings.grdp
|
+++ b/chrome/app/settings_strings.grdp
|
||||||
@@ -81,7 +81,7 @@
|
@@ -84,7 +84,7 @@
|
||||||
Accessibility
|
Accessibility
|
||||||
</message>
|
</message>
|
||||||
<message name="IDS_SETTINGS_ACCESSIBILITY_WEB_STORE" desc="Text for an external link explaining that additional accessibility features are found on the Chrome Web Store.">
|
<message name="IDS_SETTINGS_ACCESSIBILITY_WEB_STORE" desc="Text for an external link explaining that additional accessibility features are found on the Chrome Web Store.">
|
||||||
@@ -13158,7 +13224,7 @@ e)fqMZZ`3a)Ds&5H<cfp<0000<MNUMnLSTYHt&Yn8
|
|||||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||||
--- a/chrome/browser/BUILD.gn
|
--- a/chrome/browser/BUILD.gn
|
||||||
+++ b/chrome/browser/BUILD.gn
|
+++ b/chrome/browser/BUILD.gn
|
||||||
@@ -1895,6 +1895,7 @@ static_library("browser") {
|
@@ -1406,6 +1406,7 @@ static_library("browser") {
|
||||||
"//build/config/chromebox_for_meetings:buildflags",
|
"//build/config/chromebox_for_meetings:buildflags",
|
||||||
"//build/config/compiler:compiler_buildflags",
|
"//build/config/compiler:compiler_buildflags",
|
||||||
"//build/config/linux/dbus:buildflags",
|
"//build/config/linux/dbus:buildflags",
|
||||||
@@ -13166,18 +13232,141 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
|||||||
"//cc",
|
"//cc",
|
||||||
"//chrome:extra_resources",
|
"//chrome:extra_resources",
|
||||||
"//chrome:resources",
|
"//chrome:resources",
|
||||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
diff --git a/chrome/browser/extensions/external_registry_loader_win.cc b/chrome/browser/extensions/external_registry_loader_win.cc
|
||||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
--- a/chrome/browser/extensions/external_registry_loader_win.cc
|
||||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
+++ b/chrome/browser/extensions/external_registry_loader_win.cc
|
||||||
@@ -1173,7 +1173,7 @@ public abstract class ChromeFeatureList {
|
@@ -35,7 +35,7 @@ using content::BrowserThread;
|
||||||
public static final MutableFlagWithSafeDefault sSuppressToolbarCapturesAtGestureEnd =
|
namespace {
|
||||||
newMutableFlagWithSafeDefault(SUPPRESS_TOOLBAR_CAPTURES_AT_GESTURE_END, false);
|
|
||||||
public static final MutableFlagWithSafeDefault sSwapNewTabAndNewTabInGroupAndroid =
|
// The Registry subkey that contains information about external extensions.
|
||||||
- newMutableFlagWithSafeDefault(SWAP_NEW_TAB_AND_NEW_TAB_IN_GROUP_ANDROID, false);
|
-const wchar_t kRegistryExtensions[] = L"Software\\Google\\Chrome\\Extensions";
|
||||||
+ newMutableFlagWithSafeDefault(SWAP_NEW_TAB_AND_NEW_TAB_IN_GROUP_ANDROID, true);
|
+const wchar_t kRegistryExtensions[] = L"Software\\Uazo\\Cromite\\Extensions";
|
||||||
public static final MutableFlagWithSafeDefault sTabGroupEntryPointsAndroid =
|
|
||||||
newMutableFlagWithSafeDefault(TAB_GROUP_ENTRY_POINTS_ANDROID, false);
|
// Registry value of the key that defines the installation parameter.
|
||||||
public static final MutableFlagWithSafeDefault sTabGroupParityBottomSheetAndroid =
|
const wchar_t kRegistryExtensionInstallParam[] = L"install_parameter";
|
||||||
|
@@ -82,6 +82,7 @@ void ExternalRegistryLoader::StartLoading() {
|
||||||
|
|
||||||
|
base::DictValue ExternalRegistryLoader::LoadPrefsOnBlockingThread() {
|
||||||
|
base::DictValue prefs;
|
||||||
|
+ if ((true)) return prefs;
|
||||||
|
|
||||||
|
// A map of IDs, to weed out duplicates between HKCU and HKLM.
|
||||||
|
std::set<std::wstring> keys;
|
||||||
|
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediator.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediator.java
|
||||||
|
--- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediator.java
|
||||||
|
+++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediator.java
|
||||||
|
@@ -86,7 +86,7 @@ public class HubToolbarMediator {
|
||||||
|
@Override
|
||||||
|
public void onConfigurationChanged(Configuration configuration) {
|
||||||
|
int screenWidthDp = configuration.screenWidthDp;
|
||||||
|
- boolean isTablet = HubUtils.isScreenWidthTablet(screenWidthDp);
|
||||||
|
+ boolean isTablet = true; //HubUtils.isScreenWidthTablet(screenWidthDp);
|
||||||
|
|
||||||
|
Pane pane = mPaneManager.getFocusedPaneSupplier().get();
|
||||||
|
if (pane == null) return;
|
||||||
|
diff --git a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.xml b/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.xml
|
||||||
|
--- a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.xml
|
||||||
|
+++ b/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.xml
|
||||||
|
@@ -38,34 +38,22 @@ found in the LICENSE file.
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="start|center_vertical">
|
||||||
|
+ <Space
|
||||||
|
+ android:layout_width="@dimen/hub_toolbar_action_button_start_margin"
|
||||||
|
+ android:layout_height="match_parent"/>
|
||||||
|
|
||||||
|
- <!-- This is needed to keep the new tab button aligned with the first tab. -->
|
||||||
|
- <Space
|
||||||
|
- android:id="@+id/margin_spacer"
|
||||||
|
- android:layout_width="@dimen/hub_toolbar_action_button_start_margin"
|
||||||
|
- android:layout_height="match_parent"
|
||||||
|
- android:visibility="visible"/>
|
||||||
|
-
|
||||||
|
- <org.chromium.ui.widget.ChromeImageButton
|
||||||
|
- android:id="@+id/toolbar_back_button"
|
||||||
|
- android:src="@drawable/ic_arrow_back_24dp"
|
||||||
|
- android:layout_width="@dimen/min_touch_target_size"
|
||||||
|
- android:layout_height="@dimen/min_touch_target_size"
|
||||||
|
- android:layout_gravity="center"
|
||||||
|
- android:layout_marginStart="4dp"
|
||||||
|
- android:contentDescription="@string/back"
|
||||||
|
- android:tooltipText="@string/back"
|
||||||
|
- android:visibility="gone"
|
||||||
|
- style="@style/ToolbarMenuButton"
|
||||||
|
- app:tint="@color/default_icon_color_tint_list"/>
|
||||||
|
-
|
||||||
|
- <Button
|
||||||
|
- android:id="@+id/toolbar_action_button"
|
||||||
|
- android:layout_width="wrap_content"
|
||||||
|
- android:layout_height="match_parent"
|
||||||
|
- android:layout_gravity="start|center_vertical"
|
||||||
|
- android:visibility="gone"
|
||||||
|
- style="?attr/newTabButtonStyle"/>
|
||||||
|
+ <!-- On tablets, the searchbox (R.id.search_box) is hidden in favor of a button. -->
|
||||||
|
+ <org.chromium.ui.widget.ChromeImageButton
|
||||||
|
+ android:id="@+id/search_loupe"
|
||||||
|
+ android:visibility="gone"
|
||||||
|
+ android:gravity="center_vertical"
|
||||||
|
+ android:layout_width="44dp"
|
||||||
|
+ android:layout_height="match_parent"
|
||||||
|
+ android:contentDescription="@string/search"
|
||||||
|
+ android:src="@drawable/ic_search_24dp"
|
||||||
|
+ android:tooltipText="@string/accessibility_search_loupe_tooltip_text"
|
||||||
|
+ style="@style/ToolbarMenuButton"
|
||||||
|
+ app:tint="@color/default_icon_color_tint_list" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
@@ -97,18 +85,39 @@ found in the LICENSE file.
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="end" >
|
||||||
|
- <!-- On tablets, the searchbox (R.id.search_box) is hidden in favor of a button. -->
|
||||||
|
- <org.chromium.ui.widget.ChromeImageButton
|
||||||
|
- android:id="@+id/search_loupe"
|
||||||
|
+ <LinearLayout
|
||||||
|
+ android:orientation="horizontal"
|
||||||
|
+ android:layout_width="wrap_content"
|
||||||
|
+ android:layout_height="match_parent"
|
||||||
|
+ android:layout_gravity="start|center_vertical">
|
||||||
|
+
|
||||||
|
+ <org.chromium.ui.widget.ChromeImageButton
|
||||||
|
+ android:id="@+id/toolbar_back_button"
|
||||||
|
+ android:src="@drawable/ic_arrow_back_24dp"
|
||||||
|
+ android:layout_width="@dimen/min_touch_target_size"
|
||||||
|
+ android:layout_height="@dimen/min_touch_target_size"
|
||||||
|
+ android:layout_gravity="center"
|
||||||
|
+ android:layout_marginStart="4dp"
|
||||||
|
+ android:contentDescription="@string/back"
|
||||||
|
+ android:tooltipText="@string/back"
|
||||||
|
android:visibility="gone"
|
||||||
|
- android:gravity="center_vertical"
|
||||||
|
- android:layout_width="44dp"
|
||||||
|
- android:layout_height="match_parent"
|
||||||
|
- android:contentDescription="@string/search"
|
||||||
|
- android:src="@drawable/ic_search_24dp"
|
||||||
|
- android:tooltipText="@string/accessibility_search_loupe_tooltip_text"
|
||||||
|
style="@style/ToolbarMenuButton"
|
||||||
|
- app:tint="@color/default_icon_color_tint_list" />
|
||||||
|
+ app:tint="@color/default_icon_color_tint_list"/>
|
||||||
|
+
|
||||||
|
+ <Button
|
||||||
|
+ android:id="@+id/toolbar_action_button"
|
||||||
|
+ android:layout_width="wrap_content"
|
||||||
|
+ android:layout_height="match_parent"
|
||||||
|
+ android:layout_gravity="start|center_vertical"
|
||||||
|
+ android:visibility="gone"
|
||||||
|
+ style="?attr/newTabButtonStyle"/>
|
||||||
|
+
|
||||||
|
+ <Space
|
||||||
|
+ android:id="@+id/margin_spacer"
|
||||||
|
+ android:layout_width="@dimen/hub_toolbar_action_button_start_margin"
|
||||||
|
+ android:layout_height="match_parent"
|
||||||
|
+ android:visibility="gone"/>
|
||||||
|
+ </LinearLayout>
|
||||||
|
<include layout="@layout/menu_button" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
|
diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
|
||||||
--- a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
|
--- a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
|
||||||
+++ b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
|
+++ b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
|
||||||
@@ -13193,18 +13382,18 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
|
|||||||
diff --git a/chrome/browser/prefs/BUILD.gn b/chrome/browser/prefs/BUILD.gn
|
diff --git a/chrome/browser/prefs/BUILD.gn b/chrome/browser/prefs/BUILD.gn
|
||||||
--- a/chrome/browser/prefs/BUILD.gn
|
--- a/chrome/browser/prefs/BUILD.gn
|
||||||
+++ b/chrome/browser/prefs/BUILD.gn
|
+++ b/chrome/browser/prefs/BUILD.gn
|
||||||
@@ -59,6 +59,7 @@ source_set("impl") {
|
@@ -60,6 +60,7 @@ source_set("impl") {
|
||||||
deps = [
|
deps = [
|
||||||
":prefs",
|
":prefs",
|
||||||
":util",
|
":util",
|
||||||
+ "//build:cromite_buildflags",
|
+ "//build:cromite_buildflags",
|
||||||
"//chrome/browser:browser_process",
|
"//chrome/browser:browser_process",
|
||||||
"//chrome/browser/devtools",
|
"//chrome/browser:flags",
|
||||||
"//chrome/browser/media/prefs",
|
"//chrome/browser/autocomplete:aim_eligibility_service",
|
||||||
diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc
|
diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc
|
||||||
--- a/chrome/browser/prefs/chrome_pref_service_factory.cc
|
--- a/chrome/browser/prefs/chrome_pref_service_factory.cc
|
||||||
+++ b/chrome/browser/prefs/chrome_pref_service_factory.cc
|
+++ b/chrome/browser/prefs/chrome_pref_service_factory.cc
|
||||||
@@ -26,6 +26,7 @@
|
@@ -25,6 +25,7 @@
|
||||||
#include "base/trace_event/trace_event.h"
|
#include "base/trace_event/trace_event.h"
|
||||||
#include "build/branding_buildflags.h"
|
#include "build/branding_buildflags.h"
|
||||||
#include "build/build_config.h"
|
#include "build/build_config.h"
|
||||||
@@ -13212,8 +13401,8 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse
|
|||||||
#include "chrome/browser/browser_process.h"
|
#include "chrome/browser/browser_process.h"
|
||||||
#include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h"
|
#include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h"
|
||||||
#include "chrome/browser/policy/chrome_browser_policy_connector.h"
|
#include "chrome/browser/policy/chrome_browser_policy_connector.h"
|
||||||
@@ -291,10 +292,7 @@ std::unique_ptr<ProfilePrefStoreManager> CreateProfilePrefStoreManager(
|
@@ -292,10 +293,7 @@ std::unique_ptr<ProfilePrefStoreManager> CreateProfilePrefStoreManager(
|
||||||
#endif
|
const base::FilePath& profile_path) {
|
||||||
std::string seed;
|
std::string seed;
|
||||||
CHECK(ui::ResourceBundle::HasSharedInstance());
|
CHECK(ui::ResourceBundle::HasSharedInstance());
|
||||||
-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||||
@@ -13221,9 +13410,21 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse
|
|||||||
- IDR_PREF_HASH_SEED_BIN));
|
- IDR_PREF_HASH_SEED_BIN));
|
||||||
-#endif
|
-#endif
|
||||||
+ seed = BUILDFLAG_INTERNAL_CROMITE_PREF_HASH_SEED_BIN();
|
+ seed = BUILDFLAG_INTERNAL_CROMITE_PREF_HASH_SEED_BIN();
|
||||||
return std::make_unique<ProfilePrefStoreManager>(profile_path, seed,
|
return std::make_unique<ProfilePrefStoreManager>(profile_path, seed);
|
||||||
legacy_device_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
diff --git a/chrome/browser/process_singleton_win.cc b/chrome/browser/process_singleton_win.cc
|
||||||
|
--- a/chrome/browser/process_singleton_win.cc
|
||||||
|
+++ b/chrome/browser/process_singleton_win.cc
|
||||||
|
@@ -381,7 +381,7 @@ ProcessSingleton::NotifyOtherProcessOrCreate() {
|
||||||
|
bool ProcessSingleton::Create() {
|
||||||
|
TRACE_EVENT0("startup", "ProcessSingleton::Create");
|
||||||
|
|
||||||
|
- static const wchar_t kMutexName[] = L"Local\\ChromeProcessSingletonStartup!";
|
||||||
|
+ static const wchar_t kMutexName[] = L"Local\\CromiteProcessSingletonStartup!";
|
||||||
|
|
||||||
|
remote_window_ = FindRunningChromeWindow(user_data_dir_);
|
||||||
|
if (!remote_window_ && !EscapeVirtualization(user_data_dir_)) {
|
||||||
diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.cc b/chrome/browser/profiles/profile_shortcut_manager_win.cc
|
diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.cc b/chrome/browser/profiles/profile_shortcut_manager_win.cc
|
||||||
--- a/chrome/browser/profiles/profile_shortcut_manager_win.cc
|
--- a/chrome/browser/profiles/profile_shortcut_manager_win.cc
|
||||||
+++ b/chrome/browser/profiles/profile_shortcut_manager_win.cc
|
+++ b/chrome/browser/profiles/profile_shortcut_manager_win.cc
|
||||||
@@ -13258,7 +13459,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html
|
|||||||
#menu {
|
#menu {
|
||||||
color: var(--google-grey-700);
|
color: var(--google-grey-700);
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -164,7 +176,7 @@
|
@@ -167,7 +179,7 @@
|
||||||
</a>
|
</a>
|
||||||
<a role="menuitem" id="about-menu" href="/help"
|
<a role="menuitem" id="about-menu" href="/help"
|
||||||
class="cr-nav-menu-item">
|
class="cr-nav-menu-item">
|
||||||
@@ -13267,10 +13468,50 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html
|
|||||||
$i18n{aboutPageTitle}
|
$i18n{aboutPageTitle}
|
||||||
<cr-ripple></cr-ripple>
|
<cr-ripple></cr-ripple>
|
||||||
</a>
|
</a>
|
||||||
|
diff --git a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncUtils.java b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncUtils.java
|
||||||
|
--- a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncUtils.java
|
||||||
|
+++ b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncUtils.java
|
||||||
|
@@ -127,7 +127,10 @@ public final class TabGroupSyncUtils {
|
||||||
|
for (String syncGroupId : tabGroupSyncService.getAllGroupIds()) {
|
||||||
|
SavedTabGroup savedTabGroup = tabGroupSyncService.getGroup(syncGroupId);
|
||||||
|
// If there is no local ID the group is already hidden so this is a no-op.
|
||||||
|
- if (savedTabGroup == null || savedTabGroup.localId == null) continue;
|
||||||
|
+ if (savedTabGroup == null || savedTabGroup.localId == null) {
|
||||||
|
+ tabGroupSyncService.removeGroup(syncGroupId);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (!isInAnyWindow(savedTabGroup.localId, filterList)) {
|
||||||
|
tabGroupSyncService.removeLocalTabGroupMapping(
|
||||||
|
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsContainer.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsContainer.java
|
||||||
|
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsContainer.java
|
||||||
|
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsContainer.java
|
||||||
|
@@ -24,6 +24,7 @@ import org.chromium.base.TraceEvent;
|
||||||
|
import org.chromium.base.metrics.TimingMetric;
|
||||||
|
import org.chromium.base.task.PostTask;
|
||||||
|
import org.chromium.base.task.TaskTraits;
|
||||||
|
+import org.chromium.base.ui.KeyboardUtils;
|
||||||
|
import org.chromium.build.annotations.NullMarked;
|
||||||
|
import org.chromium.chrome.browser.omnibox.OmniboxMetrics;
|
||||||
|
import org.chromium.chrome.browser.omnibox.R;
|
||||||
|
@@ -109,8 +110,11 @@ public class OmniboxSuggestionsContainer extends FrameLayout {
|
||||||
|
// Omnibox.
|
||||||
|
// Making the container `clickable=true` achieves similar goal, but this consumes all
|
||||||
|
// activators, including keyboard <Enter> key.
|
||||||
|
- super.onTouchEvent(event);
|
||||||
|
- return true;
|
||||||
|
+ if (KeyboardUtils.isAndroidSoftKeyboardShowing(this)) {
|
||||||
|
+ KeyboardUtils.hideAndroidSoftKeyboard(this);
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
+ return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||||
@@ -2485,7 +2485,7 @@ Your Google account may have other forms of browsing history like searches and a
|
@@ -2509,7 +2509,7 @@ Your Google account may have other forms of browsing history like searches and a
|
||||||
About Chrome
|
About Chrome
|
||||||
</message>
|
</message>
|
||||||
<message name="IDS_LEGAL_INFORMATION_SUMMARY" desc="Summary for legal information" meaning="Android">
|
<message name="IDS_LEGAL_INFORMATION_SUMMARY" desc="Summary for legal information" meaning="Android">
|
||||||
@@ -13279,10 +13520,19 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
|||||||
</message>
|
</message>
|
||||||
<message name="IDS_APPLICATION_VERSION_TITLE" desc="Title for application version">
|
<message name="IDS_APPLICATION_VERSION_TITLE" desc="Title for application version">
|
||||||
Application version
|
Application version
|
||||||
|
@@ -6030,7 +6030,7 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||||
|
|
||||||
|
<!-- Storage Preference UI strings for clearing storage. -->
|
||||||
|
<message name="IDS_STORAGE_MANAGEMENT_ACTIVITY_LABEL" desc="Title for Chrome's Manage Space Activity.">
|
||||||
|
- Google <ph name="APP_NAME">%1$s<ex>Chrome</ex></ph> storage
|
||||||
|
+ <ph name="APP_NAME">%1$s<ex>Chrome</ex></ph> storage
|
||||||
|
</message>
|
||||||
|
<message name="IDS_STORAGE_MANAGEMENT_UNIMPORTANT_SITE_DATA_DESCRIPTION" desc="Text to describe the data stored by unimportant or infrequent sites.">
|
||||||
|
Stored data that Chrome doesn't think is important (e.g. sites with no saved settings or that you don't visit often)
|
||||||
diff --git a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc b/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc
|
diff --git a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc b/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc
|
||||||
--- a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc
|
--- a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc
|
||||||
+++ b/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc
|
+++ b/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc
|
||||||
@@ -140,6 +140,7 @@ bool AreNewChromeLabsExperimentsAvailable(const ChromeLabsModel* model,
|
@@ -139,6 +139,7 @@ bool AreNewChromeLabsExperimentsAvailable(Profile* profile) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsChromeLabsEnabled() {
|
bool IsChromeLabsEnabled() {
|
||||||
@@ -13293,7 +13543,7 @@ diff --git a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc b/chrome
|
|||||||
diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
|
diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
|
||||||
--- a/chrome/common/url_constants.h
|
--- a/chrome/common/url_constants.h
|
||||||
+++ b/chrome/common/url_constants.h
|
+++ b/chrome/common/url_constants.h
|
||||||
@@ -135,7 +135,7 @@ inline constexpr char kChromeHelpViaMenuURL[] =
|
@@ -117,7 +117,7 @@ inline constexpr char kChromeHelpViaMenuURL[] =
|
||||||
#endif // BUILDFLAG(IS_CHROMEOS)
|
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||||
|
|
||||||
inline constexpr char kChromeHelpViaWebUIURL[] =
|
inline constexpr char kChromeHelpViaWebUIURL[] =
|
||||||
@@ -13302,31 +13552,31 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
|
|||||||
#if BUILDFLAG(IS_CHROMEOS)
|
#if BUILDFLAG(IS_CHROMEOS)
|
||||||
inline constexpr char kChromeOsHelpViaWebUIURL[] =
|
inline constexpr char kChromeOsHelpViaWebUIURL[] =
|
||||||
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||||
@@ -198,7 +198,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] =
|
@@ -175,7 +175,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] =
|
||||||
"chrome-untrusted://new-tab-page/";
|
"chrome-untrusted://new-tab-page/";
|
||||||
|
|
||||||
// The URL for the Chromium project used in the About dialog.
|
// The URL for the Chromium project used in the About dialog.
|
||||||
-inline constexpr char16_t kChromiumProjectURL[] = u"https://www.chromium.org/";
|
-inline constexpr char16_t kChromiumProjectURL[] = u"https://www.chromium.org/";
|
||||||
+inline constexpr char16_t kChromiumProjectURL[] = u"https://www.cromite.org/";
|
+inline constexpr char16_t kChromiumProjectURL[] = u"https://www.cromite.org/";
|
||||||
|
#if BUILDFLAG(IS_CHROMEOS)
|
||||||
|
static_assert(std::u16string_view(kChromiumProjectURL) ==
|
||||||
|
ash::chrome_external_urls::kChromiumProjectURL);
|
||||||
|
diff --git a/chrome/install_static/chromium_install_modes.h b/chrome/install_static/chromium_install_modes.h
|
||||||
|
--- a/chrome/install_static/chromium_install_modes.h
|
||||||
|
+++ b/chrome/install_static/chromium_install_modes.h
|
||||||
|
@@ -21,7 +21,7 @@ inline constexpr wchar_t kCompanyPathName[] = L"";
|
||||||
|
|
||||||
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
// The brand-specific product name to be included as a component of the install
|
||||||
// The URL for the "Clear browsing data in Chrome" help center article.
|
// and user data directory paths.
|
||||||
diff --git a/chrome/install_static/chromium_install_modes.cc b/chrome/install_static/chromium_install_modes.cc
|
-inline constexpr wchar_t kProductPathName[] = L"Chromium";
|
||||||
--- a/chrome/install_static/chromium_install_modes.cc
|
+inline constexpr wchar_t kProductPathName[] = L"Cromite";
|
||||||
+++ b/chrome/install_static/chromium_install_modes.cc
|
|
||||||
@@ -14,7 +14,7 @@ namespace install_static {
|
|
||||||
|
|
||||||
const wchar_t kCompanyPathName[] = L"";
|
|
||||||
|
|
||||||
-const wchar_t kProductPathName[] = L"Chromium";
|
|
||||||
+const wchar_t kProductPathName[] = L"Cromite";
|
|
||||||
|
|
||||||
const size_t kProductPathNameLength = _countof(kProductPathName) - 1;
|
|
||||||
|
|
||||||
|
// The brand-specific safe browsing client name.
|
||||||
|
inline constexpr char kSafeBrowsingName[] = "chromium";
|
||||||
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
|
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
|
||||||
--- a/components/browser_ui/strings/android/browser_ui_strings.grd
|
--- a/components/browser_ui/strings/android/browser_ui_strings.grd
|
||||||
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd
|
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd
|
||||||
@@ -992,7 +992,7 @@
|
@@ -997,7 +997,7 @@
|
||||||
|
|
||||||
<!-- Accessibility preferences -->
|
<!-- Accessibility preferences -->
|
||||||
<message name="IDS_PREFS_ACCESSIBILITY" desc="Title of Accessibility settings, which allows the user to change webpage font sizes. [CHAR_LIMIT=32]">
|
<message name="IDS_PREFS_ACCESSIBILITY" desc="Title of Accessibility settings, which allows the user to change webpage font sizes. [CHAR_LIMIT=32]">
|
||||||
@@ -18231,6 +18481,17 @@ z-aP~TXJZ`-(Yg4YH}L#8=YM{CKWmuBV|oH(e6M*W+WLnfYBCzOQRGLiPvyZq6&Nv6
|
|||||||
z4G!>zy1hcOdP%7GG2>1P`Or}=o{p{?6G1~J{`Cl{gUX-*clf=;TVY)N<lVO9k)vG$
|
z4G!>zy1hcOdP%7GG2>1P`Or}=o{p{?6G1~J{`Cl{gUX-*clf=;TVY)N<lVO9k)vG$
|
||||||
i?Ib$(ofrX17!1R|`h|N%TnD<%35@j2bgPM^i2nno*_EOI
|
i?Ib$(ofrX17!1R|`h|N%TnD<%35@j2bgPM^i2nno*_EOI
|
||||||
|
|
||||||
|
diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc
|
||||||
|
--- a/components/omnibox/browser/autocomplete_controller.cc
|
||||||
|
+++ b/components/omnibox/browser/autocomplete_controller.cc
|
||||||
|
@@ -1158,6 +1158,7 @@ bool AutocompleteController::ShouldRunProvider(
|
||||||
|
|
||||||
|
#if BUILDFLAG(IS_ANDROID)
|
||||||
|
if (omnibox::IsAndroidHub(input_.current_page_classification())) {
|
||||||
|
+ if ((true)) return provider->type() == AutocompleteProvider::TYPE_OPEN_TAB;
|
||||||
|
return provider->type() == AutocompleteProvider::TYPE_SEARCH ||
|
||||||
|
provider->type() == AutocompleteProvider::TYPE_OPEN_TAB ||
|
||||||
|
provider->type() == AutocompleteProvider::TYPE_BOOKMARK ||
|
||||||
diff --git a/components/omnibox/browser/vector_icons/product_chrome_refresh.icon b/components/omnibox/browser/vector_icons/product_chrome_refresh.icon
|
diff --git a/components/omnibox/browser/vector_icons/product_chrome_refresh.icon b/components/omnibox/browser/vector_icons/product_chrome_refresh.icon
|
||||||
--- a/components/omnibox/browser/vector_icons/product_chrome_refresh.icon
|
--- a/components/omnibox/browser/vector_icons/product_chrome_refresh.icon
|
||||||
+++ b/components/omnibox/browser/vector_icons/product_chrome_refresh.icon
|
+++ b/components/omnibox/browser/vector_icons/product_chrome_refresh.icon
|
||||||
@@ -18332,6 +18593,30 @@ diff --git a/components/omnibox/browser/vector_icons/product_chrome_refresh.icon
|
|||||||
+CLOSE,
|
+CLOSE,
|
||||||
+MOVE_TO, 11.2f, 8,
|
+MOVE_TO, 11.2f, 8,
|
||||||
CLOSE
|
CLOSE
|
||||||
|
diff --git a/components/policy/core/common/policy_paths.cc b/components/policy/core/common/policy_paths.cc
|
||||||
|
--- a/components/policy/core/common/policy_paths.cc
|
||||||
|
+++ b/components/policy/core/common/policy_paths.cc
|
||||||
|
@@ -18,7 +18,7 @@ const char kPolicyPath[] = "/etc/opt/chrome/policies";
|
||||||
|
#elif BUILDFLAG(GOOGLE_CHROME_FOR_TESTING_BRANDING)
|
||||||
|
const char kPolicyPath[] = "/etc/opt/chrome_for_testing/policies";
|
||||||
|
#else
|
||||||
|
-const char kPolicyPath[] = "/etc/chromium/policies";
|
||||||
|
+const char kPolicyPath[] = "/etc/cromite/policies";
|
||||||
|
#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||||
|
#endif // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
|
||||||
|
|
||||||
|
diff --git a/components/policy/tools/generate_policy_source.py b/components/policy/tools/generate_policy_source.py
|
||||||
|
--- a/components/policy/tools/generate_policy_source.py
|
||||||
|
+++ b/components/policy/tools/generate_policy_source.py
|
||||||
|
@@ -28,7 +28,7 @@ from xml.sax.saxutils import escape as xml_escape
|
||||||
|
|
||||||
|
CHROME_POLICY_KEY = 'SOFTWARE\\\\Policies\\\\Google\\\\Chrome'
|
||||||
|
CHROME_FOR_TESTING_POLICY_KEY = CHROME_POLICY_KEY + ' for Testing'
|
||||||
|
-CHROMIUM_POLICY_KEY = 'SOFTWARE\\\\Policies\\\\Chromium'
|
||||||
|
+CHROMIUM_POLICY_KEY = 'SOFTWARE\\\\Policies\\\\Cromite'
|
||||||
|
PLATFORM_STRINGS = {
|
||||||
|
'chrome_frame': ['win'],
|
||||||
|
'chrome_os': ['chrome_os'],
|
||||||
diff --git a/components/resources/default_100_percent/chromium/product_logo.png b/components/resources/default_100_percent/chromium/product_logo.png
|
diff --git a/components/resources/default_100_percent/chromium/product_logo.png b/components/resources/default_100_percent/chromium/product_logo.png
|
||||||
index 7b60bd8c6053346e4eb265cc77d28add65103028..66b3c4c7a4f68fba1ef098000bd373ba103a0de0 100644
|
index 7b60bd8c6053346e4eb265cc77d28add65103028..66b3c4c7a4f68fba1ef098000bd373ba103a0de0 100644
|
||||||
GIT binary patch
|
GIT binary patch
|
||||||
@@ -18950,18 +19235,19 @@ diff --git a/components/webui/version/resources/about_version.ts b/components/we
|
|||||||
chrome.send('requestVersionInfo');
|
chrome.send('requestVersionInfo');
|
||||||
- const includeVariationsCmd = location.search.includes('show-variations-cmd');
|
- const includeVariationsCmd = location.search.includes('show-variations-cmd');
|
||||||
+ const includeVariationsCmd = true;
|
+ const includeVariationsCmd = true;
|
||||||
sendWithPromise('requestVariationInfo', includeVariationsCmd)
|
sendWithPromise<{variationsList: string[], variationsCmd: string}>(
|
||||||
|
'requestVariationInfo', includeVariationsCmd)
|
||||||
.then(handleVariationInfo);
|
.then(handleVariationInfo);
|
||||||
sendWithPromise('requestPathInfo').then(handlePathInfo);
|
|
||||||
diff --git a/components/webui/version/resources/about_version_mobile.css b/components/webui/version/resources/about_version_mobile.css
|
diff --git a/components/webui/version/resources/about_version_mobile.css b/components/webui/version/resources/about_version_mobile.css
|
||||||
--- a/components/webui/version/resources/about_version_mobile.css
|
--- a/components/webui/version/resources/about_version_mobile.css
|
||||||
+++ b/components/webui/version/resources/about_version_mobile.css
|
+++ b/components/webui/version/resources/about_version_mobile.css
|
||||||
@@ -17,3 +17,12 @@
|
@@ -17,3 +17,13 @@
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+tr, td {
|
+tr,
|
||||||
|
+td {
|
||||||
+ display: block;
|
+ display: block;
|
||||||
+ text-align: left !important;
|
+ text-align: left !important;
|
||||||
+}
|
+}
|
||||||
@@ -18972,7 +19258,7 @@ diff --git a/components/webui/version/resources/about_version_mobile.css b/compo
|
|||||||
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
|
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
|
||||||
--- a/content/child/runtime_features.cc
|
--- a/content/child/runtime_features.cc
|
||||||
+++ b/content/child/runtime_features.cc
|
+++ b/content/child/runtime_features.cc
|
||||||
@@ -570,19 +570,22 @@ void ResolveInvalidConfigurations() {
|
@@ -552,19 +552,22 @@ void ResolveInvalidConfigurations() {
|
||||||
base::FeatureList::IsEnabled(
|
base::FeatureList::IsEnabled(
|
||||||
features::kPrivacySandboxAdsAPIsM1Override)) &&
|
features::kPrivacySandboxAdsAPIsM1Override)) &&
|
||||||
!base::FeatureList::IsEnabled(blink::features::kFencedFrames)) {
|
!base::FeatureList::IsEnabled(blink::features::kFencedFrames)) {
|
||||||
@@ -18999,7 +19285,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
|||||||
<< "Fenced frames must be enabled in order to enable local "
|
<< "Fenced frames must be enabled in order to enable local "
|
||||||
"unpartitioned "
|
"unpartitioned "
|
||||||
<< "data access. Use --" << switches::kEnableFeatures << "="
|
<< "data access. Use --" << switches::kEnableFeatures << "="
|
||||||
@@ -590,12 +593,14 @@ void ResolveInvalidConfigurations() {
|
@@ -572,12 +575,14 @@ void ResolveInvalidConfigurations() {
|
||||||
WebRuntimeFeatures::EnableFeatureFromString(
|
WebRuntimeFeatures::EnableFeatureFromString(
|
||||||
"FencedFramesLocalUnpartitionedDataAccess", false);
|
"FencedFramesLocalUnpartitionedDataAccess", false);
|
||||||
}
|
}
|
||||||
@@ -19015,7 +19301,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
|||||||
<< "Topics cannot be enabled in this configuration. Use --"
|
<< "Topics cannot be enabled in this configuration. Use --"
|
||||||
<< switches::kEnableFeatures << "="
|
<< switches::kEnableFeatures << "="
|
||||||
<< network::features::kBrowsingTopics.name << " in addition.";
|
<< network::features::kBrowsingTopics.name << " in addition.";
|
||||||
@@ -603,30 +608,23 @@ void ResolveInvalidConfigurations() {
|
@@ -585,30 +590,23 @@ void ResolveInvalidConfigurations() {
|
||||||
WebRuntimeFeatures::EnableTopicsDocumentAPI(false);
|
WebRuntimeFeatures::EnableTopicsDocumentAPI(false);
|
||||||
WebRuntimeFeatures::EnableTopicsImgAPI(false);
|
WebRuntimeFeatures::EnableTopicsImgAPI(false);
|
||||||
} else {
|
} else {
|
||||||
@@ -19052,7 +19338,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
|||||||
<< "AttributionReporting cannot be enabled in this "
|
<< "AttributionReporting cannot be enabled in this "
|
||||||
"configuration. Use --"
|
"configuration. Use --"
|
||||||
<< switches::kEnableFeatures << "="
|
<< switches::kEnableFeatures << "="
|
||||||
@@ -634,23 +632,25 @@ void ResolveInvalidConfigurations() {
|
@@ -616,23 +614,25 @@ void ResolveInvalidConfigurations() {
|
||||||
<< " in addition.";
|
<< " in addition.";
|
||||||
WebRuntimeFeatures::EnableAttributionReporting(false);
|
WebRuntimeFeatures::EnableAttributionReporting(false);
|
||||||
}
|
}
|
||||||
@@ -19073,21 +19359,21 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
|||||||
+ CHECK(false) << "kInterestGroupStorage is enabled!";
|
+ CHECK(false) << "kInterestGroupStorage is enabled!";
|
||||||
}
|
}
|
||||||
|
|
||||||
// PermissionElement cannot be enabled without the support of the
|
// UserMediaElement cannot be enabled without the support of the
|
||||||
// browser process.
|
// browser process.
|
||||||
if (!base::FeatureList::IsEnabled(blink::features::kPermissionElement)) {
|
if (!base::FeatureList::IsEnabled(blink::features::kUserMediaElement)) {
|
||||||
- LOG_IF(WARNING,
|
- LOG_IF(WARNING,
|
||||||
- WebRuntimeFeatures::IsPermissionElementEnabledByRuntimeFlag())
|
- WebRuntimeFeatures::IsUserMediaElementEnabledByRuntimeFlag())
|
||||||
+ CHECK(!WebRuntimeFeatures::IsPermissionElementEnabledByRuntimeFlag())
|
+ CHECK(!WebRuntimeFeatures::IsUserMediaElementEnabledByRuntimeFlag())
|
||||||
<< "PermissionElement cannot be enabled in this configuration. Use --"
|
<< "UserMediaElement cannot be enabled in this configuration. Use --"
|
||||||
<< switches::kEnableFeatures << "="
|
<< switches::kEnableFeatures << "="
|
||||||
<< blink::features::kPermissionElement.name << " instead.";
|
<< blink::features::kUserMediaElement.name << " instead.";
|
||||||
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc
|
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc
|
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc
|
||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kSwapNewTabAndNewTabInGroupAndroid);
|
+SET_CROMITE_FEATURE_DISABLED(kShowTabListAnimations);
|
||||||
diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py
|
diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py
|
||||||
--- a/tools/grit/grit/grd_reader.py
|
--- a/tools/grit/grit/grd_reader.py
|
||||||
+++ b/tools/grit/grit/grd_reader.py
|
+++ b/tools/grit/grit/grd_reader.py
|
||||||
|
|||||||
@@ -7,23 +7,67 @@ Opens tabs in foreground, Move web search to the top of items,
|
|||||||
Web search in tab group and Enable smart text selection
|
Web search in tab group and Enable smart text selection
|
||||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
---
|
---
|
||||||
.../browser/ChromeActionModeHandler.java | 4 +-
|
.../SamsungSelectionActionMenuDelegate.java | 7 +-
|
||||||
.../chrome/browser/ChromeTabbedActivity.java | 15 +-
|
.../browser/ChromeActionModeHandler.java | 4 +-
|
||||||
...ActivityTabWebContentsDelegateAndroid.java | 10 +-
|
.../chrome/browser/ChromeTabbedActivity.java | 15 +++-
|
||||||
.../compositor/layouts/LayoutManagerImpl.java | 8 ++
|
...ActivityTabWebContentsDelegateAndroid.java | 10 ++-
|
||||||
.../tab/TabContextMenuItemDelegate.java | 7 +-
|
.../compositor/layouts/LayoutManagerImpl.java | 9 ++-
|
||||||
.../chrome/browser/ui/RootUiCoordinator.java | 8 +-
|
.../tab/TabContextMenuItemDelegate.java | 7 +-
|
||||||
.../Customize-selection-popup.grdp | 34 +++++
|
.../chrome/browser/ui/RootUiCoordinator.java | 8 +-
|
||||||
.../res/xml/accessibility_preferences.xml | 24 ++++
|
.../Customize-selection-popup.grdp | 34 +++++++++
|
||||||
.../selection/SelectActionMenuHelper.java | 129 ++++++++++++------
|
.../AutofillSelectionMenuItemHelper.java | 4 +-
|
||||||
.../selection/SmartSelectionClient.java | 4 +
|
.../res/xml/accessibility_preferences.xml | 24 ++++++
|
||||||
10 files changed, 192 insertions(+), 51 deletions(-)
|
.../selection/SelectActionMenuHelper.java | 20 ++---
|
||||||
|
.../SelectionPopupControllerImpl.java | 2 +-
|
||||||
|
.../selection/SmartSelectionClient.java | 4 +
|
||||||
|
.../browser/PendingSelectionMenu.java | 8 +-
|
||||||
|
.../browser/SelectionMenuItem.java | 73 ++++++++++++-------
|
||||||
|
.../SelectionActionMenuDelegate.java | 32 +++++---
|
||||||
|
16 files changed, 194 insertions(+), 67 deletions(-)
|
||||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Customize-selection-popup.grdp
|
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Customize-selection-popup.grdp
|
||||||
|
|
||||||
|
diff --git a/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java b/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java
|
||||||
|
--- a/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java
|
||||||
|
+++ b/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java
|
||||||
|
@@ -134,7 +134,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
|
||||||
|
.setIcon(null)
|
||||||
|
.setOrderAndCategory(
|
||||||
|
Menu.CATEGORY_SECONDARY,
|
||||||
|
- SelectionMenuItem.ItemGroupOffset.TEXT_PROCESSING_ITEMS)
|
||||||
|
+ SelectionMenuItem.ItemGroupOffset.TEXT_PROCESSING_ITEMS())
|
||||||
|
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
|
||||||
|
.setIntent(createManageAppsIntent())
|
||||||
|
.build());
|
||||||
|
@@ -167,7 +167,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
|
||||||
|
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
|
||||||
|
.setOrderAndCategory(
|
||||||
|
DefaultItem.PASTE, // Show after paste.
|
||||||
|
- SelectionMenuItem.ItemGroupOffset.DEFAULT_ITEMS)
|
||||||
|
+ SelectionMenuItem.ItemGroupOffset.DEFAULT_ITEMS())
|
||||||
|
.setIntent(
|
||||||
|
getTranslationActionIntent(selectedText, translateResolveInfo))
|
||||||
|
.build());
|
||||||
|
@@ -180,7 +180,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
|
||||||
|
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS)
|
||||||
|
.setOrderAndCategory(
|
||||||
|
Menu.FIRST, // Show as first item after primary assist item.
|
||||||
|
- SelectionMenuItem.ItemGroupOffset.ASSIST_ITEMS)
|
||||||
|
+ SelectionMenuItem.ItemGroupOffset.ASSIST_ITEMS())
|
||||||
|
.setIntent(
|
||||||
|
createWritingToolkitIntent(selectedText, isSelectionReadOnly))
|
||||||
|
.build());
|
||||||
|
@@ -239,6 +239,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean shouldUseSamsungMenuItemOrdering() {
|
||||||
|
+ if ((true)) return false;
|
||||||
|
return Build.VERSION.SDK_INT <= MAXIMUM_BUILD_VERSION_CODE_SUPPORTED && isSamsungDevice();
|
||||||
|
}
|
||||||
|
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
|
||||||
@@ -166,9 +166,7 @@ public class ChromeActionModeHandler {
|
@@ -173,9 +173,7 @@ public class ChromeActionModeHandler {
|
||||||
| ActionModeCallbackHelper.MENU_ITEM_SHARE;
|
| ActionModeCallbackHelper.MENU_ITEM_SHARE;
|
||||||
// Disable options that expose additional Chrome functionality prior to the FRE being
|
// Disable options that expose additional Chrome functionality prior to the FRE being
|
||||||
// completed (i.e. creation of a new tab).
|
// completed (i.e. creation of a new tab).
|
||||||
@@ -37,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionMod
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||||
@@ -803,10 +803,17 @@ public class ChromeTabbedActivity extends ChromeActivity {
|
@@ -944,10 +944,17 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
|
||||||
@TabLaunchType int type,
|
@TabLaunchType int type,
|
||||||
@TabCreationState int creationState,
|
@TabCreationState int creationState,
|
||||||
boolean markedForSelection) {
|
boolean markedForSelection) {
|
||||||
@@ -62,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
|
||||||
@@ -202,6 +202,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat
|
@@ -253,6 +253,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat
|
||||||
// Skip opening a new Tab if it doesn't make sense.
|
// Skip opening a new Tab if it doesn't make sense.
|
||||||
if (mTab.isClosing()) return false;
|
if (mTab.isClosing()) return false;
|
||||||
|
|
||||||
@@ -74,48 +118,53 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activit
|
|||||||
+ tabLaunchType = TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP;
|
+ tabLaunchType = TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
boolean openingPopup =
|
if (ChromeFeatureList.isEnabled(ChromeFeatureList.DOCUMENT_PICTURE_IN_PICTURE_API)
|
||||||
PopupCreator.arePopupsEnabled(mActivity)
|
&& disposition == WindowOpenDisposition.NEW_PICTURE_IN_PICTURE) {
|
||||||
&& (disposition == WindowOpenDisposition.NEW_POPUP);
|
assertNonNull(pictureInPictureWindowOptions);
|
||||||
@@ -225,7 +233,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat
|
@@ -270,7 +278,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat
|
||||||
tabCreator.createTabWithWebContents(
|
|
||||||
mTab,
|
mTab,
|
||||||
|
/* shouldPin= */ false,
|
||||||
webContents,
|
webContents,
|
||||||
- TabLaunchType.FROM_LONGPRESS_FOREGROUND,
|
- TabLaunchType.FROM_LONGPRESS_FOREGROUND,
|
||||||
+ tabLaunchType,
|
+ tabLaunchType,
|
||||||
url,
|
targetUrl,
|
||||||
!openingPopup && !willReparentTab);
|
addTabToModel);
|
||||||
if (tab == null) return false;
|
if (tab == null) return false;
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
|
||||||
@@ -18,6 +18,7 @@ import androidx.annotation.Nullable;
|
@@ -20,6 +20,7 @@ import androidx.annotation.Px;
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import org.chromium.base.Callback;
|
import org.chromium.base.Callback;
|
||||||
+import org.chromium.base.ContextUtils;
|
+import org.chromium.base.ContextUtils;
|
||||||
import org.chromium.base.ObserverList;
|
import org.chromium.base.ObserverList;
|
||||||
import org.chromium.base.TraceEvent;
|
import org.chromium.base.TraceEvent;
|
||||||
import org.chromium.base.supplier.ObservableSupplier;
|
import org.chromium.base.supplier.MonotonicObservableSupplier;
|
||||||
@@ -246,6 +247,13 @@ public class LayoutManagerImpl
|
@@ -243,11 +244,17 @@ public class LayoutManagerImpl
|
||||||
!= TabLaunchType
|
boolean willBeSelected = willAddedTabBeSelected(launchType, incognito);
|
||||||
.FROM_COLLABORATION_BACKGROUND_IN_GROUP)
|
float lastTapX = LocalizationUtils.isLayoutRtl() ? mHost.getWidth() * mPxToDp : 0.f;
|
||||||
|| (!getTabModelSelector().isIncognitoSelected() && incognito);
|
float lastTapY = 0.f;
|
||||||
+ boolean selectionPopupTabsForeground =
|
+ boolean selectionPopupTabsForeground =
|
||||||
+ ContextUtils.getAppSharedPreferences().getBoolean(
|
+ ContextUtils.getAppSharedPreferences().getBoolean(
|
||||||
+ "selection_popup_tabs_foreground", false);
|
+ "selection_popup_tabs_foreground", false);
|
||||||
+ if (selectionPopupTabsForeground) {
|
+ if (selectionPopupTabsForeground) {
|
||||||
+ willBeSelected = launchType != TabLaunchType.FROM_RESTORE_TABS_UI
|
+ willBeSelected = launchType != TabLaunchType.FROM_RESTORE_TABS_UI
|
||||||
+ || (!getTabModelSelector().isIncognitoSelected() && incognito);
|
+ || (!getTabModelSelector().isIncognitoSelected() && incognito);
|
||||||
+ }
|
+ }
|
||||||
float lastTapX = LocalizationUtils.isLayoutRtl() ? mHost.getWidth() * mPxToDp : 0.f;
|
if (launchType != TabLaunchType.FROM_CHROME_UI) {
|
||||||
float lastTapY = 0.f;
|
lastTapX = mPxToDp * mLastTapX;
|
||||||
if (launchType != TabLaunchType.FROM_CHROME_UI) {
|
lastTapY = mPxToDp * mLastTapY;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
tabCreated(
|
||||||
|
tabId,
|
||||||
|
getTabModelSelector().getCurrentTabId(),
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
||||||
@@ -372,8 +372,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
@@ -404,8 +404,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||||
public void onOpenImageInNewTab(GURL url, Referrer referrer) {
|
public void onOpenImageInNewTab(GURL url, @Nullable Referrer referrer) {
|
||||||
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
|
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
|
||||||
loadUrlParams.setReferrer(referrer);
|
loadUrlParams.setReferrer(referrer);
|
||||||
+ @TabLaunchType int type = TabLaunchType.FROM_LONGPRESS_BACKGROUND;
|
+ @TabLaunchType int type = TabLaunchType.FROM_LONGPRESS_BACKGROUND;
|
||||||
@@ -132,15 +181,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
|
||||||
@@ -29,6 +29,7 @@ import androidx.core.view.WindowInsetsCompat;
|
@@ -34,6 +34,7 @@ import androidx.core.view.WindowInsetsCompat;
|
||||||
import org.chromium.base.BuildInfo;
|
|
||||||
import org.chromium.base.Callback;
|
import org.chromium.base.Callback;
|
||||||
import org.chromium.base.CallbackController;
|
import org.chromium.base.CallbackController;
|
||||||
+import org.chromium.base.ContextUtils;
|
+import org.chromium.base.ContextUtils;
|
||||||
|
import org.chromium.base.DeviceInfo;
|
||||||
import org.chromium.base.TraceEvent;
|
import org.chromium.base.TraceEvent;
|
||||||
import org.chromium.base.lifetime.Destroyable;
|
import org.chromium.base.lifetime.Destroyable;
|
||||||
import org.chromium.base.metrics.RecordUserAction;
|
@@ -1083,11 +1084,16 @@ public class RootUiCoordinator
|
||||||
@@ -795,11 +796,16 @@ public class RootUiCoordinator
|
|
||||||
TrackerFactory.getTrackerForProfile(tab.getProfile())
|
TrackerFactory.getTrackerForProfile(tab.getProfile())
|
||||||
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
|
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
|
||||||
|
|
||||||
@@ -197,10 +246,31 @@ new file mode 100644
|
|||||||
+ Smart Text selection automatically augments the selected boundaries and classifies the selected text based on the context by sending selection together with its surrounding text
|
+ Smart Text selection automatically augments the selected boundaries and classifies the selected text based on the context by sending selection together with its surrounding text
|
||||||
+ </message>
|
+ </message>
|
||||||
+</grit-part>
|
+</grit-part>
|
||||||
|
diff --git a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java
|
||||||
|
--- a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java
|
||||||
|
+++ b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java
|
||||||
|
@@ -39,7 +39,7 @@ public class AutofillSelectionMenuItemHelper {
|
||||||
|
.setGroupId(R.id.select_action_menu_delegate_items)
|
||||||
|
.setOrderAndCategory(
|
||||||
|
Menu.FIRST,
|
||||||
|
- SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS)
|
||||||
|
+ SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
|
||||||
|
.setShowAsActionFlags(
|
||||||
|
MenuItem.SHOW_AS_ACTION_ALWAYS
|
||||||
|
| MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||||
|
@@ -52,7 +52,7 @@ public class AutofillSelectionMenuItemHelper {
|
||||||
|
.setGroupId(R.id.select_action_menu_delegate_items)
|
||||||
|
.setOrderAndCategory(
|
||||||
|
Menu.CATEGORY_SECONDARY, // Show at end of section.
|
||||||
|
- SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS)
|
||||||
|
+ SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
|
||||||
|
.setShowAsActionFlags(
|
||||||
|
MenuItem.SHOW_AS_ACTION_NEVER
|
||||||
|
| MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||||
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
@@ -79,4 +79,28 @@ found in the LICENSE file.
|
@@ -89,4 +89,28 @@ found in the LICENSE file.
|
||||||
android:key="disable_toolbar_swipeup"
|
android:key="disable_toolbar_swipeup"
|
||||||
android:title="@string/disable_toolbar_swipe_up" />
|
android:title="@string/disable_toolbar_swipe_up" />
|
||||||
|
|
||||||
@@ -232,31 +302,178 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
|
|||||||
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
|
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
|
||||||
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
|
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
|
||||||
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
|
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
|
||||||
@@ -27,6 +27,7 @@ import androidx.core.content.ContextCompat;
|
@@ -169,7 +169,7 @@ public class SelectActionMenuHelper {
|
||||||
import org.chromium.base.ApiCompatibilityUtils;
|
return new SelectionMenuItem.Builder(primaryAction.getTitle())
|
||||||
import org.chromium.base.ContextUtils;
|
.setId(android.R.id.textAssist)
|
||||||
import org.chromium.base.Log;
|
.setGroupId(R.id.select_action_menu_assist_items)
|
||||||
+import org.chromium.base.ContextUtils;
|
- .setOrderAndCategory(0, ItemGroupOffset.ASSIST_ITEMS)
|
||||||
import org.chromium.base.PackageManagerUtils;
|
+ .setOrderAndCategory(0, ItemGroupOffset.ASSIST_ITEMS())
|
||||||
import org.chromium.base.StrictModeContext;
|
.setIcon(getPrimaryActionIconForClassificationResult(classificationResult, context))
|
||||||
import org.chromium.build.annotations.NullMarked;
|
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
|
||||||
@@ -54,38 +55,84 @@ import java.util.TreeSet;
|
.build();
|
||||||
public class SelectActionMenuHelper {
|
@@ -247,7 +247,7 @@ public class SelectActionMenuHelper {
|
||||||
private static final String TAG = "SelectActionMenu"; // 20 char limit.
|
.setGroupId(groupId)
|
||||||
|
.setIcon(icons == null ? null : icons.get(i))
|
||||||
|
.setOrderAndCategory(
|
||||||
|
- i - startIndex, ItemGroupOffset.SECONDARY_ASSIST_ITEMS)
|
||||||
|
+ i - startIndex, ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
|
||||||
|
.setContentDescription(action.getContentDescription())
|
||||||
|
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
|
||||||
|
.build();
|
||||||
|
@@ -296,7 +296,7 @@ public class SelectActionMenuHelper {
|
||||||
|
.setId(Menu.NONE)
|
||||||
|
.setGroupId(R.id.select_action_menu_text_processing_items)
|
||||||
|
.setIcon(icon)
|
||||||
|
- .setOrderAndCategory(i, ItemGroupOffset.TEXT_PROCESSING_ITEMS)
|
||||||
|
+ .setOrderAndCategory(i, ItemGroupOffset.TEXT_PROCESSING_ITEMS())
|
||||||
|
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
|
||||||
|
.setIntent(intent)
|
||||||
|
.build());
|
||||||
|
@@ -341,7 +341,7 @@ public class SelectActionMenuHelper {
|
||||||
|
.setGroupId(R.id.select_action_menu_default_items)
|
||||||
|
.setIconAttr(android.R.attr.actionModeCutDrawable)
|
||||||
|
.setAlphabeticShortcut(ItemKeyShortcuts.CUT)
|
||||||
|
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
|
||||||
|
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
|
||||||
|
.setShowAsActionFlags(
|
||||||
|
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||||
|
.setIsEnabled(true)
|
||||||
|
@@ -355,7 +355,7 @@ public class SelectActionMenuHelper {
|
||||||
|
.setGroupId(R.id.select_action_menu_default_items)
|
||||||
|
.setIconAttr(android.R.attr.actionModeCopyDrawable)
|
||||||
|
.setAlphabeticShortcut(ItemKeyShortcuts.COPY)
|
||||||
|
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
|
||||||
|
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
|
||||||
|
.setShowAsActionFlags(
|
||||||
|
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||||
|
.setIsEnabled(true)
|
||||||
|
@@ -369,7 +369,7 @@ public class SelectActionMenuHelper {
|
||||||
|
.setGroupId(R.id.select_action_menu_default_items)
|
||||||
|
.setIconAttr(android.R.attr.actionModePasteDrawable)
|
||||||
|
.setAlphabeticShortcut(ItemKeyShortcuts.PASTE)
|
||||||
|
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
|
||||||
|
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
|
||||||
|
.setShowAsActionFlags(
|
||||||
|
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||||
|
.setIsEnabled(true)
|
||||||
|
@@ -385,7 +385,7 @@ public class SelectActionMenuHelper {
|
||||||
|
.setId(R.id.select_action_menu_share)
|
||||||
|
.setGroupId(R.id.select_action_menu_default_items)
|
||||||
|
.setIconAttr(android.R.attr.actionModeShareDrawable)
|
||||||
|
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
|
||||||
|
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
|
||||||
|
.setShowAsActionFlags(
|
||||||
|
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||||
|
.setIsEnabled(true)
|
||||||
|
@@ -399,7 +399,7 @@ public class SelectActionMenuHelper {
|
||||||
|
.setGroupId(R.id.select_action_menu_default_items)
|
||||||
|
.setIconAttr(android.R.attr.actionModeSelectAllDrawable)
|
||||||
|
.setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL)
|
||||||
|
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
|
||||||
|
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
|
||||||
|
.setShowAsActionFlags(
|
||||||
|
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||||
|
.setIsEnabled(true)
|
||||||
|
@@ -412,7 +412,7 @@ public class SelectActionMenuHelper {
|
||||||
|
new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text)
|
||||||
|
.setId(android.R.id.pasteAsPlainText)
|
||||||
|
.setGroupId(R.id.select_action_menu_default_items)
|
||||||
|
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
|
||||||
|
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
|
||||||
|
.setShowAsActionFlags(
|
||||||
|
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||||
|
.setIsEnabled(true);
|
||||||
|
@@ -432,7 +432,7 @@ public class SelectActionMenuHelper {
|
||||||
|
.setId(R.id.select_action_menu_web_search)
|
||||||
|
.setGroupId(R.id.select_action_menu_default_items)
|
||||||
|
.setIconAttr(android.R.attr.actionModeWebSearchDrawable)
|
||||||
|
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
|
||||||
|
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
|
||||||
|
.setShowAsActionFlags(
|
||||||
|
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||||
|
.setIsEnabled(true)
|
||||||
|
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
|
||||||
|
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
|
||||||
|
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
|
||||||
|
@@ -1149,7 +1149,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
|
||||||
|
|
||||||
|
private boolean handleAssistMenuItemClick(int order) {
|
||||||
|
// Primary assist action is always the first action in the list so offset by 1.
|
||||||
|
- int index = 1 + order - SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS;
|
||||||
|
+ int index = 1 + order - SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS();
|
||||||
|
if (mClassificationResult == null
|
||||||
|
|| mClassificationResult.textClassification == null
|
||||||
|
|| mClassificationResult.textClassification.getActions().size() <= index) {
|
||||||
|
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
|
||||||
|
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
|
||||||
|
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
|
||||||
|
@@ -19,6 +19,7 @@ import org.jni_zero.JNINamespace;
|
||||||
|
import org.jni_zero.JniType;
|
||||||
|
import org.jni_zero.NativeMethods;
|
||||||
|
|
||||||
|
+import org.chromium.base.ContextUtils;
|
||||||
|
import org.chromium.base.ObserverList;
|
||||||
|
import org.chromium.base.UserData;
|
||||||
|
import org.chromium.build.annotations.Initializer;
|
||||||
|
@@ -81,6 +82,9 @@ public class SmartSelectionClient implements SelectionClient, UserData {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (!ContextUtils.getAppSharedPreferences().getBoolean(
|
||||||
|
+ "selection_popup_smart_text", false)) return null;
|
||||||
|
+
|
||||||
|
SmartSelectionClient client =
|
||||||
|
assumeNonNull(
|
||||||
|
webContents.getOrSetUserData(
|
||||||
|
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java b/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java
|
||||||
|
--- a/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java
|
||||||
|
+++ b/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java
|
||||||
|
@@ -165,13 +165,13 @@ public final class PendingSelectionMenu {
|
||||||
|
@VisibleForTesting
|
||||||
|
public @LogicalGroup int determineGroup(SelectionMenuItem item) {
|
||||||
|
int order = item.order;
|
||||||
|
- if (order >= ItemGroupOffset.TEXT_PROCESSING_ITEMS) {
|
||||||
|
+ if (order >= ItemGroupOffset.TEXT_PROCESSING_ITEMS()) {
|
||||||
|
return LogicalGroup.TEXT_PROCESSING_ITEMS;
|
||||||
|
- } else if (order >= ItemGroupOffset.SECONDARY_ASSIST_ITEMS) {
|
||||||
|
+ } else if (order >= ItemGroupOffset.SECONDARY_ASSIST_ITEMS()) {
|
||||||
|
return LogicalGroup.SECONDARY_ASSIST_ITEMS;
|
||||||
|
- } else if (order >= ItemGroupOffset.DEFAULT_ITEMS) {
|
||||||
|
+ } else if (order >= ItemGroupOffset.DEFAULT_ITEMS()) {
|
||||||
|
return LogicalGroup.DEFAULT_ITEMS;
|
||||||
|
- } else if (order >= ItemGroupOffset.ASSIST_ITEMS) {
|
||||||
|
+ } else if (order >= ItemGroupOffset.ASSIST_ITEMS()) {
|
||||||
|
return LogicalGroup.ASSIST_ITEMS;
|
||||||
|
}
|
||||||
|
throw new IllegalStateException("Invalid order. Must be >= 0");
|
||||||
|
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java b/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java
|
||||||
|
--- a/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java
|
||||||
|
+++ b/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java
|
||||||
|
@@ -18,6 +18,7 @@ import androidx.annotation.IntDef;
|
||||||
|
import androidx.annotation.StringRes;
|
||||||
|
import androidx.appcompat.content.res.AppCompatResources;
|
||||||
|
|
||||||
|
+import org.chromium.base.ContextUtils;
|
||||||
|
import org.chromium.build.annotations.NullMarked;
|
||||||
|
import org.chromium.build.annotations.Nullable;
|
||||||
|
|
||||||
|
@@ -34,18 +35,38 @@ public final class SelectionMenuItem implements Comparable<SelectionMenuItem> {
|
||||||
|
* less than SECONDARY_ASSIST_ITEMS will appear in the default items section. Each section is
|
||||||
|
* separated by a divider in dropdown menus.
|
||||||
|
*/
|
||||||
- @Retention(RetentionPolicy.SOURCE)
|
- @Retention(RetentionPolicy.SOURCE)
|
||||||
- @IntDef({
|
- @IntDef({
|
||||||
- GroupItemOrder.ASSIST_ITEMS,
|
- ItemGroupOffset.ASSIST_ITEMS,
|
||||||
- GroupItemOrder.DEFAULT_ITEMS,
|
- ItemGroupOffset.DEFAULT_ITEMS,
|
||||||
- GroupItemOrder.SECONDARY_ASSIST_ITEMS,
|
- ItemGroupOffset.SECONDARY_ASSIST_ITEMS,
|
||||||
- GroupItemOrder.TEXT_PROCESSING_ITEMS
|
- ItemGroupOffset.TEXT_PROCESSING_ITEMS
|
||||||
- })
|
- })
|
||||||
- public @interface GroupItemOrder {
|
- public @interface ItemGroupOffset {
|
||||||
- int ASSIST_ITEMS = 1;
|
- int ASSIST_ITEMS = 0;
|
||||||
- int DEFAULT_ITEMS = 2;
|
- int DEFAULT_ITEMS = 10;
|
||||||
- int SECONDARY_ASSIST_ITEMS = 3;
|
- int SECONDARY_ASSIST_ITEMS = 20;
|
||||||
- int TEXT_PROCESSING_ITEMS = 4;
|
- int TEXT_PROCESSING_ITEMS = 30;
|
||||||
+ private static class GroupItemOrderChromium {
|
+ public static class ItemGroupOffset {
|
||||||
+ static int CHROMIUM_ASSIST_ITEMS = 1;
|
+ static int CHROMIUM_ASSIST_ITEMS = 1;
|
||||||
+ static int CHROMIUM_DEFAULT_ITEMS = 2;
|
+ static int CHROMIUM_DEFAULT_ITEMS = 2;
|
||||||
+ static int CHROMIUM_SECONDARY_ASSIST_ITEMS = 3;
|
+ static int CHROMIUM_SECONDARY_ASSIST_ITEMS = 3;
|
||||||
@@ -290,189 +507,93 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
|
|
||||||
- @Retention(RetentionPolicy.SOURCE)
|
private final @AttrRes int mIconAttr;
|
||||||
- @IntDef({
|
@@ -210,25 +231,23 @@ public final class SelectionMenuItem implements Comparable<SelectionMenuItem> {
|
||||||
- DefaultItemOrder.CUT,
|
* @param order the order, must be >= 0.
|
||||||
- DefaultItemOrder.COPY,
|
* @param category the section of the menu in which this item should appear.
|
||||||
- DefaultItemOrder.PASTE,
|
*/
|
||||||
- DefaultItemOrder.PASTE_AS_PLAIN_TEXT,
|
- public Builder setOrderAndCategory(int order, @ItemGroupOffset int category) {
|
||||||
- DefaultItemOrder.SHARE,
|
+ public Builder setOrderAndCategory(int order, int category) {
|
||||||
- DefaultItemOrder.SELECT_ALL,
|
if (order < 0) {
|
||||||
- DefaultItemOrder.WEB_SEARCH
|
throw new IllegalArgumentException("Invalid order. Must be >= 0");
|
||||||
- })
|
}
|
||||||
- public @interface DefaultItemOrder {
|
// Make sure items don't spill over into the next category.
|
||||||
- int CUT = 1;
|
- mOrder =
|
||||||
- int COPY = 2;
|
- switch (category) {
|
||||||
- int PASTE = 3;
|
- case ItemGroupOffset.ASSIST_ITEMS ->
|
||||||
- int PASTE_AS_PLAIN_TEXT = 4;
|
- Math.min(order + category, ItemGroupOffset.DEFAULT_ITEMS - 1);
|
||||||
- int SHARE = 5;
|
- case ItemGroupOffset.DEFAULT_ITEMS ->
|
||||||
- int SELECT_ALL = 6;
|
- Math.min(
|
||||||
- int WEB_SEARCH = 7;
|
- order + category,
|
||||||
+ private static class DefaultItemOrderChromium {
|
- ItemGroupOffset.SECONDARY_ASSIST_ITEMS - 1);
|
||||||
+ static int CHROMIUM_CUT = 1;
|
- case ItemGroupOffset.SECONDARY_ASSIST_ITEMS ->
|
||||||
+ static int CHROMIUM_COPY = 2;
|
- Math.min(
|
||||||
+ static int CHROMIUM_PASTE = 3;
|
- order + category,
|
||||||
+ static int CHROMIUM_SHARE = 4;
|
- ItemGroupOffset.TEXT_PROCESSING_ITEMS - 1);
|
||||||
+ static int CHROMIUM_SELECT_ALL = 5;
|
- default -> order + category;
|
||||||
+ static int CHROMIUM_PASTE_AS_PLAIN_TEXT = 6;
|
- };
|
||||||
+ static int CHROMIUM_WEB_SEARCH = 7;
|
+ if (category == ItemGroupOffset.ASSIST_ITEMS())
|
||||||
+
|
+ mOrder = Math.min(order + category, ItemGroupOffset.DEFAULT_ITEMS() - 1);
|
||||||
+ static int CROMITE_WEB_SEARCH = 1;
|
+ else if (category == ItemGroupOffset.DEFAULT_ITEMS())
|
||||||
+ static int CROMITE_CUT = 2;
|
+ mOrder = Math.min(
|
||||||
+ static int CROMITE_COPY = 3;
|
+ order + category,
|
||||||
+ static int CROMITE_PASTE = 4;
|
+ ItemGroupOffset.SECONDARY_ASSIST_ITEMS() - 1);
|
||||||
+ static int CROMITE_SHARE = 5;
|
+ else if (category == ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
|
||||||
+ static int CROMITE_SELECT_ALL = 6;
|
+ mOrder = Math.min(
|
||||||
+ static int CROMITE_PASTE_AS_PLAIN_TEXT = 7;
|
+ order + category,
|
||||||
+
|
+ ItemGroupOffset.TEXT_PROCESSING_ITEMS() - 1);
|
||||||
+ private static int GetValue(int a, int b) {
|
+ else
|
||||||
+ return !ContextUtils.getAppSharedPreferences().getBoolean(
|
+ mOrder = order + category;
|
||||||
+ "selection_popup_web_search_to_top", false)
|
return this;
|
||||||
+ ? a : b;
|
}
|
||||||
+ }
|
|
||||||
+
|
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java b/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java
|
||||||
+ public static int CUT() {
|
--- a/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java
|
||||||
+ return GetValue(CHROMIUM_CUT, CROMITE_CUT);
|
+++ b/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java
|
||||||
+ }
|
@@ -7,6 +7,7 @@ package org.chromium.content_public.browser.selection;
|
||||||
+ public static int COPY() {
|
import android.content.pm.ResolveInfo;
|
||||||
+ return GetValue(CHROMIUM_COPY, CROMITE_COPY);
|
import android.view.View;
|
||||||
+ }
|
|
||||||
+ public static int PASTE() {
|
+import org.chromium.base.ContextUtils;
|
||||||
+ return GetValue(CHROMIUM_PASTE, CROMITE_PASTE);
|
import org.chromium.base.SelectionActionMenuClientWrapper.DefaultItem;
|
||||||
+ }
|
import org.chromium.base.SelectionActionMenuClientWrapper.MenuType;
|
||||||
+ public static int SHARE() {
|
import org.chromium.build.annotations.NullMarked;
|
||||||
+ return GetValue(CHROMIUM_SHARE, CROMITE_SHARE);
|
@@ -23,15 +24,28 @@ import java.util.List;
|
||||||
+ }
|
@NullMarked
|
||||||
+ public static int SELECT_ALL() {
|
public interface SelectionActionMenuDelegate {
|
||||||
+ return GetValue(CHROMIUM_SELECT_ALL, CROMITE_SELECT_ALL);
|
static @DefaultItem int[] getDefaultMenuItemOrder() {
|
||||||
+ }
|
- return new @DefaultItem int[] {
|
||||||
+ public static int PASTE_AS_PLAIN_TEXT() {
|
- DefaultItem.CUT,
|
||||||
+ return GetValue(CHROMIUM_PASTE_AS_PLAIN_TEXT, CROMITE_PASTE_AS_PLAIN_TEXT);
|
- DefaultItem.COPY,
|
||||||
+ }
|
- DefaultItem.PASTE,
|
||||||
+ public static int WEB_SEARCH() {
|
- DefaultItem.PASTE_AS_PLAIN_TEXT,
|
||||||
+ return GetValue(CHROMIUM_WEB_SEARCH, CROMITE_WEB_SEARCH);
|
- DefaultItem.SHARE,
|
||||||
|
- DefaultItem.SELECT_ALL,
|
||||||
|
- DefaultItem.WEB_SEARCH
|
||||||
|
- };
|
||||||
|
+ if (!ContextUtils.getAppSharedPreferences().getBoolean(
|
||||||
|
+ "selection_popup_web_search_to_top", false)) {
|
||||||
|
+ return new @DefaultItem int[] {
|
||||||
|
+ DefaultItem.CUT,
|
||||||
|
+ DefaultItem.COPY,
|
||||||
|
+ DefaultItem.PASTE,
|
||||||
|
+ DefaultItem.PASTE_AS_PLAIN_TEXT,
|
||||||
|
+ DefaultItem.SHARE,
|
||||||
|
+ DefaultItem.SELECT_ALL,
|
||||||
|
+ DefaultItem.WEB_SEARCH
|
||||||
|
+ };
|
||||||
|
+ } else {
|
||||||
|
+ return new @DefaultItem int[] {
|
||||||
|
+ DefaultItem.WEB_SEARCH,
|
||||||
|
+ DefaultItem.CUT,
|
||||||
|
+ DefaultItem.COPY,
|
||||||
|
+ DefaultItem.PASTE,
|
||||||
|
+ DefaultItem.PASTE_AS_PLAIN_TEXT,
|
||||||
|
+ DefaultItem.SHARE,
|
||||||
|
+ DefaultItem.SELECT_ALL
|
||||||
|
+ };
|
||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
/**
|
||||||
@@ -196,7 +243,7 @@ public class SelectActionMenuHelper {
|
|
||||||
}
|
|
||||||
SelectionMenuGroup primaryAssistGroup =
|
|
||||||
new SelectionMenuGroup(
|
|
||||||
- R.id.select_action_menu_assist_items, GroupItemOrder.ASSIST_ITEMS);
|
|
||||||
+ R.id.select_action_menu_assist_items, GroupItemOrderChromium.ASSIST_ITEMS());
|
|
||||||
View.OnClickListener clickListener = null;
|
|
||||||
if (classificationResult.onClickListener != null) {
|
|
||||||
clickListener = classificationResult.onClickListener;
|
|
||||||
@@ -223,7 +270,7 @@ public class SelectActionMenuHelper {
|
|
||||||
String selectedText) {
|
|
||||||
SelectionMenuGroup defaultGroup =
|
|
||||||
new SelectionMenuGroup(
|
|
||||||
- R.id.select_action_menu_default_items, GroupItemOrder.DEFAULT_ITEMS);
|
|
||||||
+ R.id.select_action_menu_default_items, GroupItemOrderChromium.DEFAULT_ITEMS());
|
|
||||||
List<SelectionMenuItem.Builder> menuItemBuilders = new ArrayList<>();
|
|
||||||
menuItemBuilders.add(cut(delegate.canCut()));
|
|
||||||
menuItemBuilders.add(copy(delegate.canCopy()));
|
|
||||||
@@ -251,7 +298,7 @@ public class SelectActionMenuHelper {
|
|
||||||
// menu items if there is selected text.
|
|
||||||
@IdRes int groupId = selectedText.isEmpty() ? Menu.NONE : android.R.id.textAssist;
|
|
||||||
SelectionMenuGroup secondaryAssistItems =
|
|
||||||
- new SelectionMenuGroup(groupId, GroupItemOrder.SECONDARY_ASSIST_ITEMS);
|
|
||||||
+ new SelectionMenuGroup(groupId, GroupItemOrderChromium.SECONDARY_ASSIST_ITEMS());
|
|
||||||
|
|
||||||
if (selectedText.isEmpty() && selectionActionMenuDelegate != null) {
|
|
||||||
List<SelectionMenuItem> additionalMenuItems =
|
|
||||||
@@ -313,7 +360,7 @@ public class SelectActionMenuHelper {
|
|
||||||
SelectionMenuGroup textProcessingItems =
|
|
||||||
new SelectionMenuGroup(
|
|
||||||
R.id.select_action_menu_text_processing_items,
|
|
||||||
- GroupItemOrder.TEXT_PROCESSING_ITEMS);
|
|
||||||
+ GroupItemOrderChromium.TEXT_PROCESSING_ITEMS());
|
|
||||||
if (isSelectionPassword || intentHandler == null) {
|
|
||||||
addAdditionalTextProcessingItems(textProcessingItems, selectionActionMenuDelegate);
|
|
||||||
return textProcessingItems;
|
|
||||||
@@ -415,7 +462,7 @@ public class SelectActionMenuHelper {
|
|
||||||
.setId(R.id.select_action_menu_cut)
|
|
||||||
.setIconAttr(android.R.attr.actionModeCutDrawable)
|
|
||||||
.setAlphabeticShortcut(ItemKeyShortcuts.CUT)
|
|
||||||
- .setOrderInCategory(DefaultItemOrder.CUT)
|
|
||||||
+ .setOrderInCategory(DefaultItemOrderChromium.CUT())
|
|
||||||
.setShowAsActionFlags(
|
|
||||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
|
||||||
.setIsEnabled(isEnabled)
|
|
||||||
@@ -427,7 +474,7 @@ public class SelectActionMenuHelper {
|
|
||||||
.setId(R.id.select_action_menu_copy)
|
|
||||||
.setIconAttr(android.R.attr.actionModeCopyDrawable)
|
|
||||||
.setAlphabeticShortcut(ItemKeyShortcuts.COPY)
|
|
||||||
- .setOrderInCategory(DefaultItemOrder.COPY)
|
|
||||||
+ .setOrderInCategory(DefaultItemOrderChromium.COPY())
|
|
||||||
.setShowAsActionFlags(
|
|
||||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
|
||||||
.setIsEnabled(isEnabled)
|
|
||||||
@@ -439,7 +486,7 @@ public class SelectActionMenuHelper {
|
|
||||||
.setId(R.id.select_action_menu_paste)
|
|
||||||
.setIconAttr(android.R.attr.actionModePasteDrawable)
|
|
||||||
.setAlphabeticShortcut(ItemKeyShortcuts.PASTE)
|
|
||||||
- .setOrderInCategory(DefaultItemOrder.PASTE)
|
|
||||||
+ .setOrderInCategory(DefaultItemOrderChromium.PASTE())
|
|
||||||
.setShowAsActionFlags(
|
|
||||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
|
||||||
.setIsEnabled(isEnabled)
|
|
||||||
@@ -453,7 +500,7 @@ public class SelectActionMenuHelper {
|
|
||||||
return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_share))
|
|
||||||
.setId(R.id.select_action_menu_share)
|
|
||||||
.setIconAttr(android.R.attr.actionModeShareDrawable)
|
|
||||||
- .setOrderInCategory(DefaultItemOrder.SHARE)
|
|
||||||
+ .setOrderInCategory(DefaultItemOrderChromium.SHARE())
|
|
||||||
.setShowAsActionFlags(
|
|
||||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
|
||||||
.setIsEnabled(isEnabled)
|
|
||||||
@@ -465,7 +512,7 @@ public class SelectActionMenuHelper {
|
|
||||||
.setId(R.id.select_action_menu_select_all)
|
|
||||||
.setIconAttr(android.R.attr.actionModeSelectAllDrawable)
|
|
||||||
.setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL)
|
|
||||||
- .setOrderInCategory(DefaultItemOrder.SELECT_ALL)
|
|
||||||
+ .setOrderInCategory(DefaultItemOrderChromium.SELECT_ALL())
|
|
||||||
.setShowAsActionFlags(
|
|
||||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
|
||||||
.setIsEnabled(isEnabled)
|
|
||||||
@@ -477,7 +524,7 @@ public class SelectActionMenuHelper {
|
|
||||||
SelectionMenuItem.Builder builder =
|
|
||||||
new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text)
|
|
||||||
.setId(R.id.select_action_menu_paste_as_plain_text)
|
|
||||||
- .setOrderInCategory(DefaultItemOrder.PASTE_AS_PLAIN_TEXT)
|
|
||||||
+ .setOrderInCategory(DefaultItemOrderChromium.PASTE_AS_PLAIN_TEXT())
|
|
||||||
.setShowAsActionFlags(
|
|
||||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
|
||||||
.setIsEnabled(isEnabled);
|
|
||||||
@@ -497,7 +544,7 @@ public class SelectActionMenuHelper {
|
|
||||||
return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_web_search))
|
|
||||||
.setId(R.id.select_action_menu_web_search)
|
|
||||||
.setIconAttr(android.R.attr.actionModeWebSearchDrawable)
|
|
||||||
- .setOrderInCategory(DefaultItemOrder.WEB_SEARCH)
|
|
||||||
+ .setOrderInCategory(DefaultItemOrderChromium.WEB_SEARCH())
|
|
||||||
.setShowAsActionFlags(
|
|
||||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
|
||||||
.setIsEnabled(isEnabled)
|
|
||||||
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
|
|
||||||
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
|
|
||||||
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
|
|
||||||
@@ -18,6 +18,7 @@ import org.jni_zero.CalledByNative;
|
|
||||||
import org.jni_zero.JNINamespace;
|
|
||||||
import org.jni_zero.NativeMethods;
|
|
||||||
|
|
||||||
+import org.chromium.base.ContextUtils;
|
|
||||||
import org.chromium.base.ObserverList;
|
|
||||||
import org.chromium.base.UserData;
|
|
||||||
import org.chromium.build.annotations.Initializer;
|
|
||||||
@@ -84,6 +85,9 @@ public class SmartSelectionClient implements SelectionClient, UserData {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (!ContextUtils.getAppSharedPreferences().getBoolean(
|
|
||||||
+ "selection_popup_smart_text", false)) return null;
|
|
||||||
+
|
|
||||||
SmartSelectionClient client =
|
|
||||||
assumeNonNull(
|
|
||||||
webContents.getOrSetUserData(
|
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -10,43 +10,81 @@ Original License: BSD-3-Clause - https://spdx.org/licenses/BSD-3-Clause.html
|
|||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
chrome/android/java/res/layout/url_bar.xml | 1 +
|
chrome/android/java/res/layout/url_bar.xml | 1 +
|
||||||
.../browser/omnibox/LocationBarMediator.java | 13 ++++++++--
|
.../browser/omnibox/LocationBarMediator.java | 21 ++++++++++++---
|
||||||
.../chrome/browser/omnibox/UrlBar.java | 24 +++++++++++++++++++
|
.../chrome/browser/omnibox/UrlBar.java | 26 +++++++++++++++++++
|
||||||
3 files changed, 36 insertions(+), 2 deletions(-)
|
.../browser/omnibox/UrlBarViewBinder.java | 1 +
|
||||||
|
4 files changed, 45 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/res/layout/url_bar.xml
|
diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/res/layout/url_bar.xml
|
||||||
--- a/chrome/android/java/res/layout/url_bar.xml
|
--- a/chrome/android/java/res/layout/url_bar.xml
|
||||||
+++ b/chrome/android/java/res/layout/url_bar.xml
|
+++ b/chrome/android/java/res/layout/url_bar.xml
|
||||||
@@ -15,5 +15,6 @@ found in the LICENSE file.
|
@@ -16,6 +16,7 @@ found in the LICENSE file.
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:imeOptions="actionGo|flagNoExtractUi|flagNoFullscreen"
|
android:imeOptions="actionGo|flagNoExtractUi|flagNoFullscreen"
|
||||||
android:textAppearance="@style/TextAppearance.SearchBoxText"
|
android:textAppearance="@style/TextAppearance.SearchBoxText"
|
||||||
+ android:inputType="textUri"
|
+ android:inputType="textUri"
|
||||||
android:hint="@string/omnibox_empty_hint"
|
android:hint="@string/omnibox_empty_hint"
|
||||||
android:importantForAutofill="no" />
|
android:textAlignment="viewStart"
|
||||||
|
android:importantForAutofill="no"
|
||||||
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
|
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
|
||||||
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
|
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
|
||||||
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
|
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
|
||||||
@@ -318,8 +318,17 @@ class LocationBarMediator
|
@@ -1007,7 +1007,7 @@ class LocationBarMediator
|
||||||
if (!mUrlFocusedWithPastedText
|
// Existing text (e.g. if the user pasted via the fakebox) from the fake box
|
||||||
&& !shouldRetainOmniboxOnFocus
|
// should be restored after toggling the focus.
|
||||||
&& mLocationBarLayout.shouldClearTextOnFocus()) {
|
if (mCurrentInput != null && !mCurrentInput.getUserText().isEmpty()) {
|
||||||
- setUrlBarText(
|
- beginOrResumeInput(/* activateNewSession= */ false);
|
||||||
- UrlBarData.EMPTY, UrlBar.ScrollType.NO_SCROLL, SelectionState.SELECT_END);
|
+ beginOrResumeInput(/* activateNewSession= */ false, /* wasFocus */ false);
|
||||||
+ UrlBarData data = mLocationBarDataProvider.getUrlBarData();
|
}
|
||||||
+ @SelectionState int selectionState = SelectionState.SELECT_ALL;
|
|
||||||
+ GURL url = mLocationBarDataProvider.getUrlBarData().url;
|
|
||||||
+ if (url != null && mTemplateUrlServiceSupplier.hasValue()) {
|
|
||||||
+ String searchParams =
|
|
||||||
+ mTemplateUrlServiceSupplier.get().getSearchQueryForUrl(url);
|
|
||||||
+ if (searchParams != null && !searchParams.isEmpty()) {
|
|
||||||
+ data = UrlBarData.forUrlAndText(data.url, data.displayText, searchParams);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ setUrlBarText(data, UrlBar.ScrollType.NO_SCROLL, selectionState);
|
|
||||||
} else if (shouldRetainOmniboxOnFocus) {
|
|
||||||
mUrlCoordinator.setSelectAllOnFocus(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1052,7 +1052,7 @@ class LocationBarMediator
|
||||||
|
*/
|
||||||
|
@EnsuresNonNullIf("mCurrentInput")
|
||||||
|
@VisibleForTesting
|
||||||
|
- void beginOrResumeInput(boolean activateNewSession) {
|
||||||
|
+ void beginOrResumeInput(boolean activateNewSession, boolean wasFocus) {
|
||||||
|
// Do not instantiate a new ephemeral session unless we're activating it as well.
|
||||||
|
var session = FuseboxSessionState.from(mLocationBarDataProvider);
|
||||||
|
|
||||||
|
@@ -1087,6 +1087,19 @@ class LocationBarMediator
|
||||||
|
mStatusCoordinator.setSiteSearchDataSupplier(mCurrentInput.getSiteSearchDataSupplier());
|
||||||
|
|
||||||
|
UrlBarData data = UrlBarData.forNonUrlText(mCurrentInput.getUserText());
|
||||||
|
+ if (wasFocus) {
|
||||||
|
+ data = mLocationBarDataProvider.getUrlBarData();
|
||||||
|
+ GURL url = mLocationBarDataProvider.getUrlBarData().url;
|
||||||
|
+ if (url != null && mTemplateUrlServiceSupplier.get() != null) {
|
||||||
|
+ String searchParams =
|
||||||
|
+ mTemplateUrlServiceSupplier.get().getSearchQueryForUrl(url);
|
||||||
|
+ if (searchParams != null && !searchParams.isEmpty()) {
|
||||||
|
+ mCurrentInput.setUserText(searchParams);
|
||||||
|
+ data = UrlBarData.forUrlAndText(data.url, data.displayText, searchParams);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ mCurrentInput.setSelection(0, Integer.MAX_VALUE);
|
||||||
|
+ }
|
||||||
|
mUrlCoordinator.setUrlBarData(
|
||||||
|
data, UrlBar.ScrollType.NO_SCROLL, mCurrentInput.getSelection());
|
||||||
|
|
||||||
|
@@ -1162,7 +1175,7 @@ class LocationBarMediator
|
||||||
|
// This call is permitted to happen before anyone else is activated, and
|
||||||
|
// must be called before everyone else cleans up.
|
||||||
|
if (hasFocus) {
|
||||||
|
- beginOrResumeInput(/* activateNewSession= */ true);
|
||||||
|
+ beginOrResumeInput(/* activateNewSession= */ true, /* wasFocus */ true);
|
||||||
|
} else {
|
||||||
|
endInputInternal();
|
||||||
|
}
|
||||||
|
@@ -2065,7 +2078,7 @@ class LocationBarMediator
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wait for the Url focus change before refreshing autocomplete.
|
||||||
|
- beginOrResumeInput(/* activateNewSession= */ true);
|
||||||
|
+ beginOrResumeInput(/* activateNewSession= */ true, /* wasFocus */ false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
|
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
|
||||||
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
|
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
|
||||||
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
|
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
|
||||||
@@ -58,18 +96,26 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
|||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
@@ -113,6 +114,7 @@ public class UrlBar extends AutocompleteEditText {
|
@@ -57,6 +58,7 @@ import org.chromium.components.browser_ui.util.FirstDrawDetector;
|
||||||
|
import org.chromium.components.omnibox.OmniboxFeatures;
|
||||||
|
import org.chromium.ui.KeyboardVisibilityDelegate;
|
||||||
|
import org.chromium.ui.base.KeyNavigationUtil;
|
||||||
|
+import org.chromium.ui.base.DeviceFormFactor;
|
||||||
|
import org.chromium.ui.display.DisplayAndroid;
|
||||||
|
import org.chromium.ui.display.DisplayUtil;
|
||||||
|
|
||||||
|
@@ -112,6 +114,7 @@ public class UrlBar extends AutocompleteEditText {
|
||||||
|
private boolean mFocusEventEmitted;
|
||||||
private boolean mAllowFocus = true;
|
private boolean mAllowFocus = true;
|
||||||
private boolean mShouldSendTypingStartedEvent;
|
private boolean mAllowMultilineInput;
|
||||||
|
|
||||||
+ private boolean mPendingSelectAll;
|
+ private boolean mPendingSelectAll;
|
||||||
|
private boolean mCurrentInputCanBeWrapped;
|
||||||
|
|
||||||
private boolean mPendingScroll;
|
private boolean mPendingScroll;
|
||||||
private boolean mIsInCct;
|
@@ -335,6 +338,29 @@ public class UrlBar extends AutocompleteEditText {
|
||||||
|
mPendingScroll = false;
|
||||||
@@ -339,6 +341,28 @@ public class UrlBar extends AutocompleteEditText {
|
}
|
||||||
fixupTextDirection();
|
fixupTextDirection();
|
||||||
|
|
||||||
mShouldSendTypingStartedEvent = focused;
|
|
||||||
+
|
+
|
||||||
+ if (mPendingSelectAll) {
|
+ if (mPendingSelectAll) {
|
||||||
+ UrlBar sender = this;
|
+ UrlBar sender = this;
|
||||||
@@ -85,7 +131,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
|||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public void selectAll() {
|
+ public void selectAll() {
|
||||||
+ mPendingSelectAll = true;
|
+ if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(getContext()))
|
||||||
|
+ mPendingSelectAll = true;
|
||||||
+ super.selectAll();
|
+ super.selectAll();
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@@ -95,4 +142,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java
|
||||||
|
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java
|
||||||
|
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java
|
||||||
|
@@ -100,6 +100,7 @@ class UrlBarViewBinder {
|
||||||
|
selectionRange = Range.create(textLength, textLength);
|
||||||
|
}
|
||||||
|
view.setSelection(selectionRange.getLower(), selectionRange.getUpper());
|
||||||
|
+ view.selectAll();
|
||||||
|
view.requestAccessibilityFocus();
|
||||||
|
}
|
||||||
|
} else if (UrlBarProperties.TEXT_COLOR.equals(propertyKey)) {
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -27,22 +27,22 @@ new file mode 100644
|
|||||||
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||||
@@ -8,6 +8,11 @@ found in the LICENSE file.
|
@@ -11,6 +11,11 @@ found in the LICENSE file.
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
android:key="zoom_info"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
android:title="@string/zoom_info_preference_title"/>
|
||||||
|
|
||||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||||
+ android:key="enable_accessibility"
|
+ android:key="enable_accessibility"
|
||||||
+ android:summary="@string/enable_accessibility_summary"
|
+ android:summary="@string/enable_accessibility_summary"
|
||||||
+ android:title="@string/enable_accessibility_title" />
|
+ android:title="@string/enable_accessibility_title" />
|
||||||
+
|
+
|
||||||
<org.chromium.components.browser_ui.accessibility.PageZoomPreference
|
<org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||||
android:key="page_zoom_default_zoom"
|
android:key="page_zoom_include_os_adjustment"
|
||||||
android:selectable="false" />
|
android:summary="@string/page_zoom_include_os_adjustment_summary"
|
||||||
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
|
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
|
||||||
--- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
|
--- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
|
||||||
+++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
|
+++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
|
||||||
@@ -1101,6 +1101,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa
|
@@ -1380,6 +1380,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa
|
||||||
structure.setChildCount(0);
|
structure.setChildCount(0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ Subject: Disable Android AppRestrictions
|
|||||||
|
|
||||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
---
|
---
|
||||||
|
.../org/chromium/chrome/browser/AppHooks.java | 4 +-
|
||||||
chrome/browser/enterprise/util/BUILD.gn | 1 +
|
chrome/browser/enterprise/util/BUILD.gn | 1 +
|
||||||
.../enterprise/util/EnterpriseInfoImpl.java | 5 +++
|
.../enterprise/util/EnterpriseInfoImpl.java | 5 +++
|
||||||
chrome/browser/flags/BUILD.gn | 1 +
|
chrome/browser/flags/BUILD.gn | 1 +
|
||||||
@@ -12,12 +13,26 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
.../DisableAndroidAppRestriction.inc | 13 +++++++
|
.../DisableAndroidAppRestriction.inc | 13 +++++++
|
||||||
.../disable-android-app-restriction.inc | 3 ++
|
.../disable-android-app-restriction.inc | 3 ++
|
||||||
.../disable-android-app-restriction.inc | 1 +
|
.../disable-android-app-restriction.inc | 1 +
|
||||||
8 files changed, 75 insertions(+)
|
9 files changed, 77 insertions(+), 2 deletions(-)
|
||||||
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java
|
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/DisableAndroidAppRestriction.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/DisableAndroidAppRestriction.inc
|
||||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-android-app-restriction.inc
|
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-android-app-restriction.inc
|
||||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-android-app-restriction.inc
|
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-android-app-restriction.inc
|
||||||
|
|
||||||
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
|
||||||
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
|
||||||
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
|
||||||
|
@@ -43,8 +43,8 @@ public class AppHooks {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void registerPolicyProviders(CombinedPolicyProvider combinedProvider) {
|
||||||
|
- combinedProvider.registerProvider(
|
||||||
|
- new AppRestrictionsProvider(ContextUtils.getApplicationContext()));
|
||||||
|
+ // combinedProvider.registerProvider(
|
||||||
|
+ // new AppRestrictionsProvider(ContextUtils.getApplicationContext()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Async fetch the iterator of partner bookmarks (or null if not available). */
|
||||||
diff --git a/chrome/browser/enterprise/util/BUILD.gn b/chrome/browser/enterprise/util/BUILD.gn
|
diff --git a/chrome/browser/enterprise/util/BUILD.gn b/chrome/browser/enterprise/util/BUILD.gn
|
||||||
--- a/chrome/browser/enterprise/util/BUILD.gn
|
--- a/chrome/browser/enterprise/util/BUILD.gn
|
||||||
+++ b/chrome/browser/enterprise/util/BUILD.gn
|
+++ b/chrome/browser/enterprise/util/BUILD.gn
|
||||||
@@ -32,15 +47,15 @@ diff --git a/chrome/browser/enterprise/util/BUILD.gn b/chrome/browser/enterprise
|
|||||||
diff --git a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java b/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java
|
diff --git a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java b/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java
|
||||||
--- a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java
|
--- a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java
|
||||||
+++ b/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java
|
+++ b/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java
|
||||||
@@ -28,6 +28,7 @@ import org.chromium.build.annotations.MonotonicNonNull;
|
@@ -31,6 +31,7 @@ import org.chromium.build.annotations.NullMarked;
|
||||||
import org.chromium.build.annotations.NullMarked;
|
|
||||||
import org.chromium.build.annotations.Nullable;
|
import org.chromium.build.annotations.Nullable;
|
||||||
|
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||||
import org.chromium.chrome.browser.flags.ChromeSwitches;
|
import org.chromium.chrome.browser.flags.ChromeSwitches;
|
||||||
+import org.chromium.components.policy.AppRestrictionsProvider;
|
+import org.chromium.components.policy.AppRestrictionsProvider;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.ArrayDeque;
|
||||||
import java.util.Queue;
|
import java.util.List;
|
||||||
@@ -109,6 +110,10 @@ public class EnterpriseInfoImpl extends EnterpriseInfo {
|
@@ -113,6 +114,10 @@ public class EnterpriseInfoImpl extends EnterpriseInfo {
|
||||||
new AsyncTask<OwnedState>() {
|
new AsyncTask<OwnedState>() {
|
||||||
// TODO: Unit test this function. https://crbug.com/1099262
|
// TODO: Unit test this function. https://crbug.com/1099262
|
||||||
private OwnedState calculateIsRunningOnManagedProfile(Context context) {
|
private OwnedState calculateIsRunningOnManagedProfile(Context context) {
|
||||||
@@ -48,16 +63,16 @@ diff --git a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome
|
|||||||
+ return new OwnedState(/*hasDeviceOwnerApp*/false,
|
+ return new OwnedState(/*hasDeviceOwnerApp*/false,
|
||||||
+ /*hasProfileOwnerApp*/false);
|
+ /*hasProfileOwnerApp*/false);
|
||||||
+ }
|
+ }
|
||||||
|
long startTime = SystemClock.elapsedRealtime();
|
||||||
boolean hasProfileOwnerApp = false;
|
boolean hasProfileOwnerApp = false;
|
||||||
boolean hasDeviceOwnerApp = false;
|
boolean hasDeviceOwnerApp = false;
|
||||||
PackageManager packageManager = context.getPackageManager();
|
|
||||||
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
|
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
|
||||||
--- a/chrome/browser/flags/BUILD.gn
|
--- a/chrome/browser/flags/BUILD.gn
|
||||||
+++ b/chrome/browser/flags/BUILD.gn
|
+++ b/chrome/browser/flags/BUILD.gn
|
||||||
@@ -26,6 +26,7 @@ android_library("java") {
|
@@ -28,6 +28,7 @@ android_library("java") {
|
||||||
"//build:chromeos_buildflags",
|
|
||||||
"//build/android:build_java",
|
"//build/android:build_java",
|
||||||
"//chrome/browser/preferences:java",
|
"//chrome/browser/preferences:java",
|
||||||
|
"//content/public/android:content_main_dex_java",
|
||||||
+ "//components/policy/android:policy_java",
|
+ "//components/policy/android:policy_java",
|
||||||
"//third_party/android_deps:guava_android_java",
|
"//third_party/android_deps:guava_android_java",
|
||||||
"//third_party/androidx:androidx_annotation_annotation_java",
|
"//third_party/androidx:androidx_annotation_annotation_java",
|
||||||
|
|||||||
@@ -14,20 +14,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||||
@@ -105,7 +105,8 @@ for the previous order (main_preferences_legacy). -->
|
@@ -104,7 +104,8 @@ found in the LICENSE file.
|
||||||
android:fragment="org.chromium.chrome.browser.tasks.tab_management.TabsSettings"
|
android:fragment="org.chromium.chrome.browser.tasks.tab_management.TabsSettings"
|
||||||
android:key="tabs"
|
android:key="tabs"
|
||||||
android:order="18"
|
android:order="19"
|
||||||
- android:title="@string/tabs_settings_title"/>
|
- android:title="@string/tabs_settings_title"/>
|
||||||
+ android:title="@string/tabs_settings_title"
|
+ android:title="@string/tabs_settings_title"
|
||||||
+ app:isPreferenceVisible="false"/>
|
+ app:isPreferenceVisible="false"/>
|
||||||
<Preference
|
<Preference
|
||||||
android:fragment="org.chromium.chrome.browser.homepage.settings.HomepageSettings"
|
android:fragment="org.chromium.chrome.browser.glic.GlicSettings"
|
||||||
android:key="homepage"
|
android:key="glic"
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java
|
||||||
@@ -104,11 +104,12 @@ public class TabArchiveSettings {
|
@@ -105,11 +105,12 @@ public class TabArchiveSettings {
|
||||||
// are created, and tabs disappearing from tests is very unexpected. For archive tests,
|
// are created, and tabs disappearing from tests is very unexpected. For archive tests,
|
||||||
// this will need to be turned on manually.
|
// this will need to be turned on manually.
|
||||||
return mPrefsManager.readBoolean(
|
return mPrefsManager.readBoolean(
|
||||||
|
|||||||
@@ -0,0 +1,89 @@
|
|||||||
|
From: uazo <uazo@users.noreply.github.com>
|
||||||
|
Date: Mon, 18 May 2026 15:44:56 +0000
|
||||||
|
Subject: Disable AppRating
|
||||||
|
|
||||||
|
Chromium Android includes an AppRating promo path that can trigger user-facing
|
||||||
|
review prompts through the Android app-rating integration. The implementation
|
||||||
|
depends on Google Play Review APIs provided by Google Play Services. Those
|
||||||
|
dependencies are already excluded by default in this fork through a separate
|
||||||
|
patch, making the AppRating feature non-functional and unnecessary.
|
||||||
|
|
||||||
|
Change:
|
||||||
|
Remove AppRatingPromoController from the optional promo selection flow and
|
||||||
|
exclude the app_rating Java and junit targets from the Android build graph.
|
||||||
|
|
||||||
|
Privacy/Security Impact:
|
||||||
|
Removes an unused user-engagement surface and avoids invoking review-related
|
||||||
|
logic tied to Google Play Services. No browser engine, network, Blink, V8,
|
||||||
|
storage, or process-isolation behavior is changed.
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
AppRating depends on Google Play Review APIs from Google Play Services.
|
||||||
|
Since Google Play Services support is already excluded by default through a
|
||||||
|
separate patch, this change removes the now-unused integration and prevents
|
||||||
|
accidental reintroduction of the feature.
|
||||||
|
|
||||||
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
|
---
|
||||||
|
chrome/android/BUILD.gn | 4 ++--
|
||||||
|
.../chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java | 6 ------
|
||||||
|
chrome/browser/ui/android/app_rating/BUILD.gn | 2 ++
|
||||||
|
3 files changed, 4 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||||
|
--- a/chrome/android/BUILD.gn
|
||||||
|
+++ b/chrome/android/BUILD.gn
|
||||||
|
@@ -506,7 +506,7 @@ if (_is_default_toolchain) {
|
||||||
|
"//chrome/browser/touch_to_fill/common/android:java",
|
||||||
|
"//chrome/browser/translate/android:java",
|
||||||
|
"//chrome/browser/ui/android/actions:java",
|
||||||
|
- "//chrome/browser/ui/android/app_rating:java",
|
||||||
|
+ #"//chrome/browser/ui/android/app_rating:java",
|
||||||
|
"//chrome/browser/ui/android/appmenu:factory_java",
|
||||||
|
"//chrome/browser/ui/android/appmenu:java",
|
||||||
|
"//chrome/browser/ui/android/bottombar:java",
|
||||||
|
@@ -1189,7 +1189,7 @@ if (_is_default_toolchain) {
|
||||||
|
"//chrome/browser/touch_to_fill/password_manager/password_generation/android/internal:junit",
|
||||||
|
"//chrome/browser/translate/android:junit",
|
||||||
|
"//chrome/browser/ui/android/actions:junit",
|
||||||
|
- "//chrome/browser/ui/android/app_rating:junit",
|
||||||
|
+ #"//chrome/browser/ui/android/app_rating:junit",
|
||||||
|
"//chrome/browser/ui/android/appmenu/internal:junit",
|
||||||
|
"//chrome/browser/ui/android/autofill/internal:junit",
|
||||||
|
"//chrome/browser/ui/android/bottombar:junit",
|
||||||
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||||
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||||
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
|
||||||
|
@@ -201,7 +201,6 @@ import org.chromium.chrome.browser.toolbar.ToolbarFeatures;
|
||||||
|
import org.chromium.chrome.browser.toolbar.ToolbarIntentMetadata;
|
||||||
|
import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarBehavior;
|
||||||
|
import org.chromium.chrome.browser.ui.RootUiCoordinator;
|
||||||
|
-import org.chromium.chrome.browser.ui.app_rating.AppRatingPromoController;
|
||||||
|
import org.chromium.chrome.browser.ui.appmenu.AppMenuBlocker;
|
||||||
|
import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate;
|
||||||
|
import org.chromium.chrome.browser.ui.bottombar.BottomBarHostManager;
|
||||||
|
@@ -2237,11 +2236,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (AppRatingPromoController.maybeShowPromo(profile, mActivity)) {
|
||||||
|
- UserEducationUtils.recordOptionalPromoType(OptionalPromoType.APP_RATING_PROMPT);
|
||||||
|
- return true;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
UserEducationUtils.recordOptionalPromoType(OptionalPromoType.NONE_SHOWN);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
diff --git a/chrome/browser/ui/android/app_rating/BUILD.gn b/chrome/browser/ui/android/app_rating/BUILD.gn
|
||||||
|
--- a/chrome/browser/ui/android/app_rating/BUILD.gn
|
||||||
|
+++ b/chrome/browser/ui/android/app_rating/BUILD.gn
|
||||||
|
@@ -5,6 +5,8 @@
|
||||||
|
import("//build/config/android/config.gni")
|
||||||
|
import("//build/config/android/rules.gni")
|
||||||
|
|
||||||
|
+assert(false)
|
||||||
|
+
|
||||||
|
if (enable_chrome_android_internal) {
|
||||||
|
android_aar_prebuilt("play_review_aar_internal_java") {
|
||||||
|
aar_path = "//third_party/android_deps/autorolled/cipd/libs/com_google_android_play_review/review.aar"
|
||||||
|
--
|
||||||
@@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
|
diff --git a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
|
||||||
--- a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
|
--- a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
|
||||||
+++ b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
|
+++ b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
|
||||||
@@ -393,7 +393,7 @@ bool CSSSupportsParser::ConsumeBlinkFeatureFn(CSSParserTokenStream& stream) {
|
@@ -302,7 +302,7 @@ bool CSSSupportsParser::ConsumeBlinkFeatureFn(CSSParserTokenStream& stream) {
|
||||||
feature_name.Value().Utf8()) &&
|
feature_name.Value().Utf8()) &&
|
||||||
guard.Release()) {
|
guard.Release()) {
|
||||||
stream.ConsumeWhitespace();
|
stream.ConsumeWhitespace();
|
||||||
@@ -28,7 +28,7 @@ diff --git a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc b
|
|||||||
diff --git a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc
|
diff --git a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc
|
||||||
--- a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc
|
--- a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc
|
||||||
+++ b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc
|
+++ b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc
|
||||||
@@ -581,7 +581,7 @@ DocumentRulePredicate* DocumentRulePredicate::Parse(
|
@@ -521,7 +521,7 @@ DocumentRulePredicate* DocumentRulePredicate::Parse(
|
||||||
HeapVector<CSSSelector> arena;
|
HeapVector<CSSSelector> arena;
|
||||||
CSSPropertyValueSet* empty_properties =
|
CSSPropertyValueSet* empty_properties =
|
||||||
ImmutableCSSPropertyValueSet::Create(base::span<CSSPropertyValue>(),
|
ImmutableCSSPropertyValueSet::Create(base::span<CSSPropertyValue>(),
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
@@ -1250,7 +1250,7 @@
|
@@ -1578,7 +1578,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "CSSDynamicRangeLimit",
|
name: "CSSDynamicRangeLimit",
|
||||||
|
|||||||
@@ -4,50 +4,56 @@ Subject: Disable Compose feature
|
|||||||
|
|
||||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
---
|
---
|
||||||
chrome/browser/BUILD.gn | 9 +++++++--
|
chrome/browser/renderer_context_menu/BUILD.gn | 6 +++---
|
||||||
chrome/browser/ui/webui/settings/settings_ui.cc | 2 +-
|
chrome/browser/ui/webui/settings/settings_ui.cc | 4 ++--
|
||||||
components/compose/core/browser/compose_features.cc | 2 ++
|
components/compose/core/browser/compose_features.cc | 2 ++
|
||||||
components/compose/features.gni | 2 +-
|
components/compose/features.gni | 2 +-
|
||||||
4 files changed, 11 insertions(+), 4 deletions(-)
|
4 files changed, 8 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
diff --git a/chrome/browser/renderer_context_menu/BUILD.gn b/chrome/browser/renderer_context_menu/BUILD.gn
|
||||||
--- a/chrome/browser/BUILD.gn
|
--- a/chrome/browser/renderer_context_menu/BUILD.gn
|
||||||
+++ b/chrome/browser/BUILD.gn
|
+++ b/chrome/browser/renderer_context_menu/BUILD.gn
|
||||||
@@ -8372,6 +8372,12 @@ static_library("browser") {
|
@@ -89,7 +89,7 @@ source_set("impl") {
|
||||||
deps += [ "//components/segmentation_platform/internal:optimization_guide_segmentation_handler" ]
|
"//chrome/browser/apps/app_service",
|
||||||
|
"//chrome/browser/apps/platform_apps",
|
||||||
|
"//chrome/browser/autocomplete",
|
||||||
|
- "//chrome/browser/compose",
|
||||||
|
+ #"//chrome/browser/compose",
|
||||||
|
"//chrome/browser/custom_handlers",
|
||||||
|
"//chrome/browser/devtools",
|
||||||
|
"//chrome/browser/glic",
|
||||||
|
@@ -232,7 +232,7 @@ static_library("test_support") {
|
||||||
|
"render_view_context_menu_test_util.cc",
|
||||||
|
]
|
||||||
|
public_deps += [ "//extensions/buildflags" ]
|
||||||
|
- deps += [ "//chrome/browser/compose" ]
|
||||||
|
+ #deps += [ "//chrome/browser/compose" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if (!is_android) {
|
if (is_chromeos) {
|
||||||
+ deps += [
|
@@ -325,7 +325,7 @@ if (!is_android) {
|
||||||
+ ":compose_optimization_guide_proto",
|
":test_support",
|
||||||
+ ]
|
"//base/test:test_support",
|
||||||
+ }
|
"//chrome/browser",
|
||||||
+
|
- "//chrome/browser/compose:test_support",
|
||||||
if (enable_compose) {
|
+ #"//chrome/browser/compose:test_support",
|
||||||
sources += [
|
"//chrome/browser/devtools",
|
||||||
"compose/chrome_compose_client.cc",
|
"//chrome/browser/pdf:pdf_extension_test_utils",
|
||||||
@@ -8387,7 +8393,6 @@ static_library("browser") {
|
"//chrome/browser/search_engines",
|
||||||
]
|
|
||||||
|
|
||||||
deps += [
|
|
||||||
- ":compose_optimization_guide_proto",
|
|
||||||
"//chrome/common/compose",
|
|
||||||
"//chrome/common/compose:mojo_bindings",
|
|
||||||
"//components/autofill/content/browser:browser",
|
|
||||||
@@ -8848,7 +8853,7 @@ source_set("font_pref") {
|
|
||||||
deps = [ "//chrome/common" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
-if (enable_compose) {
|
|
||||||
+if (!is_android) {
|
|
||||||
proto_library("compose_optimization_guide_proto") {
|
|
||||||
sources = [ "compose/proto/compose_optimization_guide.proto" ]
|
|
||||||
cc_generator_options = "lite=true:"
|
|
||||||
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
|
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
|
||||||
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
|
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
|
||||||
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
|
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
|
||||||
@@ -372,7 +372,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
|
@@ -21,7 +21,7 @@
|
||||||
base::FeatureList::IsEnabled(features::kLinkedServicesSetting));
|
#include "chrome/browser/browser_features.h"
|
||||||
|
#include "chrome/browser/browser_process.h"
|
||||||
|
#include "chrome/browser/commerce/shopping_service_factory.h"
|
||||||
|
-#include "chrome/browser/compose/compose_enabling.h"
|
||||||
|
+// #include "chrome/browser/compose/compose_enabling.h"
|
||||||
|
#include "chrome/browser/glic/public/glic_enabling.h"
|
||||||
|
#include "chrome/browser/glic/public/glic_keyed_service.h"
|
||||||
|
#include "chrome/browser/history_embeddings/history_embeddings_utils.h"
|
||||||
|
@@ -367,7 +367,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
|
||||||
|
base::FeatureList::IsEnabled(permissions::features::kKeyboardLockPrompt));
|
||||||
|
|
||||||
#if BUILDFLAG(ENABLE_COMPOSE)
|
#if BUILDFLAG(ENABLE_COMPOSE)
|
||||||
- const bool compose_enabled = ComposeEnabling::IsEnabledForProfile(profile);
|
- const bool compose_enabled = ComposeEnabling::IsEnabledForProfile(profile);
|
||||||
@@ -58,9 +64,9 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui
|
|||||||
diff --git a/components/compose/core/browser/compose_features.cc b/components/compose/core/browser/compose_features.cc
|
diff --git a/components/compose/core/browser/compose_features.cc b/components/compose/core/browser/compose_features.cc
|
||||||
--- a/components/compose/core/browser/compose_features.cc
|
--- a/components/compose/core/browser/compose_features.cc
|
||||||
+++ b/components/compose/core/browser/compose_features.cc
|
+++ b/components/compose/core/browser/compose_features.cc
|
||||||
@@ -104,4 +104,6 @@ BASE_FEATURE(kComposeUpfrontInputModes,
|
@@ -73,4 +73,6 @@ BASE_FEATURE(kComposeAllowOnDeviceExecution, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
"ComposeUpfrontInputModes",
|
|
||||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
BASE_FEATURE(kComposeUpfrontInputModes, base::FEATURE_ENABLED_BY_DEFAULT);
|
||||||
|
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kEnableCompose);
|
+SET_CROMITE_FEATURE_DISABLED(kEnableCompose);
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kComposeEligible);
|
+SET_CROMITE_FEATURE_DISABLED(kComposeEligible);
|
||||||
|
|||||||
@@ -4,27 +4,28 @@ Subject: Disable Compression Dictionary Transport
|
|||||||
|
|
||||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
---
|
---
|
||||||
.../blink/renderer/platform/runtime_enabled_features.json5 | 6 ++++--
|
chrome/browser/chrome_content_browser_client.cc | 3 +--
|
||||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
.../features_cc/Disable-Compression-Dictionary-Transport.inc | 1 +
|
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc
|
||||||
|
|
||||||
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
|
||||||
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
--- a/chrome/browser/chrome_content_browser_client.cc
|
||||||
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
+++ b/chrome/browser/chrome_content_browser_client.cc
|
||||||
@@ -1007,12 +1007,14 @@
|
@@ -1569,8 +1569,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
|
||||||
}
|
registry->RegisterBooleanPref(prefs::kSandboxExternalProtocolBlocked, true);
|
||||||
},
|
registry->RegisterBooleanPref(prefs::kSSLErrorOverrideAllowed, true);
|
||||||
{
|
registry->RegisterListPref(prefs::kSSLErrorOverrideAllowedForOrigins);
|
||||||
- name: "CompressionDictionaryTransport",
|
- registry->RegisterBooleanPref(prefs::kCompressionDictionaryTransportEnabled,
|
||||||
+ name: "CompressionDictionaryTransport", // need to be disabled
|
- true);
|
||||||
+ status: "experimental",
|
+ registry->RegisterBooleanPref(prefs::kCompressionDictionaryTransportEnabled, false);
|
||||||
base_feature: "none",
|
registry->RegisterBooleanPref(
|
||||||
public: true,
|
prefs::kSuppressDifferentOriginSubframeJSDialogs, true);
|
||||||
},
|
#if BUILDFLAG(IS_ANDROID)
|
||||||
{
|
diff --git a/cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc b/cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc
|
||||||
- name: "CompressionDictionaryTransportBackend",
|
new file mode 100644
|
||||||
+ name: "CompressionDictionaryTransportBackend", // need to be disabled
|
--- /dev/null
|
||||||
+ status: "experimental",
|
+++ b/cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc
|
||||||
base_feature: "none",
|
@@ -0,0 +1 @@
|
||||||
public: true,
|
+SET_CROMITE_FEATURE_DISABLED(kCompressionDictionaryTransport);
|
||||||
},
|
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
From: uazo <uazo@users.noreply.github.com>
|
||||||
|
Date: Wed, 10 Sep 2025 07:46:17 +0000
|
||||||
|
Subject: Disable Device Attributes API
|
||||||
|
|
||||||
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
|
---
|
||||||
|
chrome/browser/device_api/device_service_impl.cc | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/chrome/browser/device_api/device_service_impl.cc b/chrome/browser/device_api/device_service_impl.cc
|
||||||
|
--- a/chrome/browser/device_api/device_service_impl.cc
|
||||||
|
+++ b/chrome/browser/device_api/device_service_impl.cc
|
||||||
|
@@ -147,6 +147,7 @@ bool IsAffiliatedUser() {
|
||||||
|
|
||||||
|
bool IsTrustedContext(content::RenderFrameHost& host,
|
||||||
|
const url::Origin& origin) {
|
||||||
|
+ if ((true)) return false;
|
||||||
|
// Do not create the service for the incognito mode.
|
||||||
|
if (GetProfile(host)->IsIncognitoProfile()) {
|
||||||
|
return false;
|
||||||
|
@@ -323,6 +324,10 @@ void DeviceServiceImpl::GetAnnotatedLocation(
|
||||||
|
void DeviceServiceImpl::GetDeviceAttribute(
|
||||||
|
void (DeviceAttributeApi::*method)(DeviceAttributeCallback callback),
|
||||||
|
DeviceAttributeCallback callback) {
|
||||||
|
+ if ((true)) {
|
||||||
|
+ device_attribute_api_->ReportNotAllowedError(std::move(callback));
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
if (!IsAffiliatedUser() &&
|
||||||
|
!IsDevModeInstalledIwaOrigin(render_frame_host(), origin())) {
|
||||||
|
device_attribute_api_->ReportNotAffiliatedError(std::move(callback));
|
||||||
|
--
|
||||||
@@ -6,17 +6,19 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
---
|
---
|
||||||
.../content_settings/core/browser/content_settings_registry.cc | 2 +-
|
.../content_settings/core/browser/content_settings_registry.cc | 2 +-
|
||||||
.../content/public/common/content_features_cc/Disable-FedCm.inc | 1 +
|
.../content/public/common/content_features_cc/Disable-FedCm.inc | 1 +
|
||||||
|
.../services/network/public/cpp/features_cc/Disable-FedCm.inc | 1 +
|
||||||
.../third_party/blink/common/features_cc/Disable-FedCm.inc | 1 +
|
.../third_party/blink/common/features_cc/Disable-FedCm.inc | 1 +
|
||||||
.../blink/renderer/platform/runtime_enabled_features.json5 | 2 +-
|
.../blink/renderer/platform/runtime_enabled_features.json5 | 2 +-
|
||||||
4 files changed, 4 insertions(+), 2 deletions(-)
|
5 files changed, 5 insertions(+), 2 deletions(-)
|
||||||
create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-FedCm.inc
|
create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-FedCm.inc
|
||||||
|
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-FedCm.inc
|
||||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc
|
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc
|
||||||
|
|
||||||
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
|
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
|
||||||
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
||||||
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
||||||
@@ -674,7 +674,7 @@ void ContentSettingsRegistry::Init() {
|
@@ -640,7 +640,7 @@ void ContentSettingsRegistry::Init() {
|
||||||
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
|
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
|
||||||
|
|
||||||
Register(ContentSettingsType::FEDERATED_IDENTITY_AUTO_REAUTHN_PERMISSION,
|
Register(ContentSettingsType::FEDERATED_IDENTITY_AUTO_REAUTHN_PERMISSION,
|
||||||
- "webid-auto-reauthn", CONTENT_SETTING_ALLOW,
|
- "webid-auto-reauthn", CONTENT_SETTING_ALLOW,
|
||||||
@@ -30,6 +32,12 @@ new file mode 100644
|
|||||||
+++ b/cromite_flags/content/public/common/content_features_cc/Disable-FedCm.inc
|
+++ b/cromite_flags/content/public/common/content_features_cc/Disable-FedCm.inc
|
||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kFedCm);
|
+SET_CROMITE_FEATURE_DISABLED(kFedCm);
|
||||||
|
diff --git a/cromite_flags/services/network/public/cpp/features_cc/Disable-FedCm.inc b/cromite_flags/services/network/public/cpp/features_cc/Disable-FedCm.inc
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/cromite_flags/services/network/public/cpp/features_cc/Disable-FedCm.inc
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+SET_CROMITE_FEATURE_ENABLED(kSendSameSiteLaxForFedCM);
|
||||||
diff --git a/cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc b/cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc
|
diff --git a/cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc b/cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
@@ -39,7 +47,7 @@ new file mode 100644
|
|||||||
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
@@ -2075,7 +2075,7 @@
|
@@ -2544,7 +2544,7 @@
|
||||||
{
|
{
|
||||||
name: "FedCm",
|
name: "FedCm",
|
||||||
public: true,
|
public: true,
|
||||||
|
|||||||
@@ -6,18 +6,18 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
---
|
---
|
||||||
.../src/org/chromium/base/PackageUtils.java | 1 +
|
.../src/org/chromium/base/PackageUtils.java | 1 +
|
||||||
.../chrome/browser/IntentHandler.java | 6 ----
|
.../chrome/browser/IntentHandler.java | 6 ----
|
||||||
.../chrome/browser/share/LensUtils.java | 14 ++-------
|
.../chrome/browser/share/LensUtils.java | 14 ++------
|
||||||
.../chromium/chrome/browser/gsa/GSAUtils.java | 29 ++++---------------
|
.../chromium/chrome/browser/gsa/GSAUtils.java | 34 +++----------------
|
||||||
.../GoogleBottomBarActionsHandler.java | 19 ++----------
|
.../GoogleBottomBarActionsHandler.java | 19 ++---------
|
||||||
.../chrome/browser/pdf/PdfCoordinator.java | 2 +-
|
.../chrome/browser/pdf/PdfCoordinator.java | 2 +-
|
||||||
.../Disable-GSA-by-default.inc | 1 +
|
.../Disable-GSA-by-default.inc | 1 +
|
||||||
7 files changed, 12 insertions(+), 60 deletions(-)
|
7 files changed, 12 insertions(+), 65 deletions(-)
|
||||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc
|
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc
|
||||||
|
|
||||||
diff --git a/base/android/java/src/org/chromium/base/PackageUtils.java b/base/android/java/src/org/chromium/base/PackageUtils.java
|
diff --git a/base/android/java/src/org/chromium/base/PackageUtils.java b/base/android/java/src/org/chromium/base/PackageUtils.java
|
||||||
--- a/base/android/java/src/org/chromium/base/PackageUtils.java
|
--- a/base/android/java/src/org/chromium/base/PackageUtils.java
|
||||||
+++ b/base/android/java/src/org/chromium/base/PackageUtils.java
|
+++ b/base/android/java/src/org/chromium/base/PackageUtils.java
|
||||||
@@ -165,6 +165,7 @@ public class PackageUtils {
|
@@ -185,6 +185,7 @@ public class PackageUtils {
|
||||||
* @return Package name of assistant app, or null if unable to get.
|
* @return Package name of assistant app, or null if unable to get.
|
||||||
*/
|
*/
|
||||||
public static @Nullable String getDefaultAssistantPackageName(Context context) {
|
public static @Nullable String getDefaultAssistantPackageName(Context context) {
|
||||||
@@ -28,38 +28,38 @@ diff --git a/base/android/java/src/org/chromium/base/PackageUtils.java b/base/an
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
|
||||||
@@ -47,7 +47,6 @@ import org.chromium.chrome.browser.document.ChromeLauncherActivity;
|
@@ -52,7 +52,6 @@ import org.chromium.chrome.browser.document.ChromeLauncherActivity;
|
||||||
import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler;
|
import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler;
|
||||||
import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler.RequestMetadata;
|
import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler.RequestMetadata;
|
||||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||||
-import org.chromium.chrome.browser.gsa.GSAUtils;
|
-import org.chromium.chrome.browser.gsa.GSAUtils;
|
||||||
import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator;
|
import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator;
|
||||||
|
import org.chromium.chrome.browser.pdf.PdfUtils;
|
||||||
import org.chromium.chrome.browser.profiles.Profile;
|
import org.chromium.chrome.browser.profiles.Profile;
|
||||||
import org.chromium.chrome.browser.profiles.ProfileManager;
|
@@ -321,9 +320,6 @@ public class IntentHandler {
|
||||||
@@ -279,9 +278,6 @@ public class IntentHandler {
|
public static final String EXTRA_TIPS_NOTIFICATION_FEATURE_TYPE =
|
||||||
|
"org.chromium.chrome.browser.tips_notification_feature_type";
|
||||||
public static final String EXTRA_CCT_EARLY_NAV = "org.chromium.chrome.browser.cct_early_nav";
|
|
||||||
|
|
||||||
- /** The package name for the Google Search App. */
|
- /** The package name for the Google Search App. */
|
||||||
- public static final String PACKAGE_GSA = GSAUtils.GSA_PACKAGE_NAME;
|
- public static final String PACKAGE_GSA = GSAUtils.GSA_PACKAGE_NAME;
|
||||||
-
|
-
|
||||||
private static Pair<Integer, String> sPendingReferrer;
|
/** Action to launch the Chrome Item Picker UI, e.g.: tabs. */
|
||||||
private static int sReferrerId;
|
public static final String EXTRA_OPEN_CHROME_ITEM_PICKER =
|
||||||
private static String sPendingIncognitoUrl;
|
"org.chromium.chrome.browser.actions.open_chrome_item_picker";
|
||||||
@@ -557,8 +553,6 @@ public class IntentHandler {
|
@@ -584,8 +580,6 @@ public class IntentHandler {
|
||||||
return ExternalAppId.LINE;
|
return ExternalAppId.LINE;
|
||||||
} else if (packageName.equals(PACKAGE_WHATSAPP)) {
|
} else if (PACKAGE_WHATSAPP.equals(packageName)) {
|
||||||
return ExternalAppId.WHATSAPP;
|
return ExternalAppId.WHATSAPP;
|
||||||
- } else if (packageName.equals(PACKAGE_GSA)) {
|
- } else if (PACKAGE_GSA.equals(packageName)) {
|
||||||
- return ExternalAppId.GSA;
|
- return ExternalAppId.GSA;
|
||||||
} else if (packageName.equals(ContextUtils.getApplicationContext().getPackageName())) {
|
} else if (ContextUtils.getApplicationContext().getPackageName().equals(packageName)) {
|
||||||
return ExternalAppId.CHROME;
|
return ExternalAppId.CHROME;
|
||||||
} else if (packageName.startsWith(WEBAPK_PACKAGE_PREFIX)) {
|
} else if (assumeNonNull(packageName).startsWith(WEBAPK_PACKAGE_PREFIX)) {
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java
|
||||||
@@ -10,7 +10,6 @@ import android.os.Build;
|
@@ -10,7 +10,6 @@ import org.chromium.base.ResettersForTesting;
|
||||||
import org.chromium.base.ResettersForTesting;
|
import org.chromium.build.annotations.NullMarked;
|
||||||
import org.chromium.chrome.browser.IntentHandler;
|
import org.chromium.chrome.browser.IntentHandler;
|
||||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||||
-import org.chromium.chrome.browser.gsa.GSAUtils;
|
-import org.chromium.chrome.browser.gsa.GSAUtils;
|
||||||
@@ -79,7 +79,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,15 +86,11 @@ public class LensUtils {
|
@@ -77,15 +71,11 @@ public class LensUtils {
|
||||||
* @return Whether the package is valid.
|
* @return Whether the package is valid.
|
||||||
*/
|
*/
|
||||||
public static boolean isValidAgsaPackage() {
|
public static boolean isValidAgsaPackage() {
|
||||||
@@ -100,7 +100,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils
|
|||||||
diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtils.java b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtils.java
|
diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtils.java b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtils.java
|
||||||
--- a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtils.java
|
--- a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtils.java
|
||||||
+++ b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtils.java
|
+++ b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtils.java
|
||||||
@@ -14,19 +14,12 @@ import org.chromium.build.annotations.Nullable;
|
@@ -15,19 +15,12 @@ import org.chromium.build.annotations.Nullable;
|
||||||
/** This class provides utilities for the state of Google Search App. */
|
/** This class provides utilities for the state of Google Search App. */
|
||||||
@NullMarked
|
@NullMarked
|
||||||
public class GSAUtils {
|
public class GSAUtils {
|
||||||
@@ -121,7 +121,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtil
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -38,6 +31,7 @@ public class GSAUtils {
|
@@ -39,6 +32,7 @@ public class GSAUtils {
|
||||||
*/
|
*/
|
||||||
public static boolean isAgsaVersionBelowMinimum(
|
public static boolean isAgsaVersionBelowMinimum(
|
||||||
@Nullable String installedVersionName, @Nullable String minimumVersionName) {
|
@Nullable String installedVersionName, @Nullable String minimumVersionName) {
|
||||||
@@ -129,7 +129,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtil
|
|||||||
if (TextUtils.isEmpty(installedVersionName) || TextUtils.isEmpty(minimumVersionName)) {
|
if (TextUtils.isEmpty(installedVersionName) || TextUtils.isEmpty(minimumVersionName)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -68,8 +62,8 @@ public class GSAUtils {
|
@@ -69,8 +63,8 @@ public class GSAUtils {
|
||||||
* @return The version name of the Agsa package or null if it can't be found.
|
* @return The version name of the Agsa package or null if it can't be found.
|
||||||
*/
|
*/
|
||||||
public static @Nullable String getAgsaVersionName() {
|
public static @Nullable String getAgsaVersionName() {
|
||||||
@@ -140,7 +140,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtil
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -78,19 +72,6 @@ public class GSAUtils {
|
@@ -79,20 +73,7 @@ public class GSAUtils {
|
||||||
* @return Whether the AGSA is enabled
|
* @return Whether the AGSA is enabled
|
||||||
*/
|
*/
|
||||||
public static boolean isAgsaEnabled() {
|
public static boolean isAgsaEnabled() {
|
||||||
@@ -160,6 +160,18 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtil
|
|||||||
- return sPackageInfo;
|
- return sPackageInfo;
|
||||||
+ return false;
|
+ return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -101,10 +82,5 @@ public class GSAUtils {
|
||||||
|
* @param packageInfo The package info to set for AGSA.
|
||||||
|
*/
|
||||||
|
public static void setAgsaPackageInfoForTesting(@Nullable PackageInfo packageInfo) {
|
||||||
|
- sPackageInfo = packageInfo;
|
||||||
|
- ResettersForTesting.register(
|
||||||
|
- () -> {
|
||||||
|
- sPackageInfo = null;
|
||||||
|
- });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java b/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java
|
diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java b/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java
|
||||||
--- a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java
|
--- a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java
|
||||||
@@ -174,7 +186,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c
|
|||||||
import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_HOME;
|
import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_HOME;
|
||||||
import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_LENS;
|
import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_LENS;
|
||||||
import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_SEARCH;
|
import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_SEARCH;
|
||||||
@@ -105,11 +102,6 @@ class GoogleBottomBarActionsHandler {
|
@@ -106,11 +103,6 @@ class GoogleBottomBarActionsHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
void onSearchboxMicTap() {
|
void onSearchboxMicTap() {
|
||||||
@@ -186,7 +198,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c
|
|||||||
}
|
}
|
||||||
|
|
||||||
void onSearchboxLensTap(View buttonView) {
|
void onSearchboxLensTap(View buttonView) {
|
||||||
@@ -148,21 +140,13 @@ class GoogleBottomBarActionsHandler {
|
@@ -149,21 +141,13 @@ class GoogleBottomBarActionsHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void openGoogleAppSearch() {
|
private void openGoogleAppSearch() {
|
||||||
@@ -209,7 +221,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c
|
|||||||
intent.putExtra(EXTRA_IS_LAUNCHED_FROM_CHROME_SEARCH_ENTRYPOINT, true);
|
intent.putExtra(EXTRA_IS_LAUNCHED_FROM_CHROME_SEARCH_ENTRYPOINT, true);
|
||||||
|
|
||||||
if (PackageManagerUtils.canResolveActivity(intent)) {
|
if (PackageManagerUtils.canResolveActivity(intent)) {
|
||||||
@@ -274,6 +258,7 @@ class GoogleBottomBarActionsHandler {
|
@@ -275,6 +259,7 @@ class GoogleBottomBarActionsHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendPendingIntentWithUrl(PendingIntent pendingIntent) {
|
private void sendPendingIntentWithUrl(PendingIntent pendingIntent) {
|
||||||
@@ -220,7 +232,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c
|
|||||||
diff --git a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
|
diff --git a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
|
||||||
--- a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
|
--- a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
|
||||||
+++ b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
|
+++ b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
|
||||||
@@ -265,7 +265,7 @@ public class PdfCoordinator {
|
@@ -396,7 +396,7 @@ public class PdfCoordinator implements PdfActionsDelegate, PdfToolbarActionsDele
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable String requestAssistContent(String filename, boolean isWorkProfile) {
|
@Nullable String requestAssistContent(String filename, boolean isWorkProfile) {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
|
diff --git a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
|
||||||
--- a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
|
--- a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
|
||||||
+++ b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
|
+++ b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
|
||||||
@@ -162,6 +162,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider {
|
@@ -137,6 +137,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider {
|
||||||
final Url manifestUrl,
|
final Url manifestUrl,
|
||||||
final boolean addSavedRelatedApplications,
|
final boolean addSavedRelatedApplications,
|
||||||
final FilterInstalledApps_Response callback) {
|
final FilterInstalledApps_Response callback) {
|
||||||
@@ -58,7 +58,7 @@ new file mode 100644
|
|||||||
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
@@ -2766,9 +2766,8 @@
|
@@ -3386,9 +3386,8 @@
|
||||||
status: "stable",
|
status: "stable",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
|
||||||
@@ -114,7 +114,7 @@ public class StartupPaintPreviewHelper implements Destroyable {
|
@@ -119,7 +119,7 @@ public class StartupPaintPreviewHelper implements Destroyable {
|
||||||
|
|
||||||
/** Enables Paint Preview show attempt on restoration of a tab. */
|
/** Enables Paint Preview show attempt on restoration of a tab. */
|
||||||
public static void enableShowOnRestore() {
|
public static void enableShowOnRestore() {
|
||||||
|
|||||||
@@ -5,8 +5,9 @@ Subject: Disable PrivacyGuide
|
|||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
chrome/android/java/res/xml/privacy_preferences.xml | 1 +
|
chrome/android/java/res/xml/privacy_preferences.xml | 1 +
|
||||||
|
chrome/browser/prefs/browser_prefs.cc | 2 +-
|
||||||
chrome/browser/ui/webui/settings/settings_ui.cc | 3 +--
|
chrome/browser/ui/webui/settings/settings_ui.cc | 3 +--
|
||||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||||
@@ -19,10 +20,22 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||||||
android:title="@string/privacy_guide_pref_title"
|
android:title="@string/privacy_guide_pref_title"
|
||||||
android:summary="@string/privacy_guide_pref_summary"
|
android:summary="@string/privacy_guide_pref_summary"
|
||||||
android:fragment="org.chromium.chrome.browser.privacy_guide.PrivacyGuideFragment" />
|
android:fragment="org.chromium.chrome.browser.privacy_guide.PrivacyGuideFragment" />
|
||||||
|
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
||||||
|
--- a/chrome/browser/prefs/browser_prefs.cc
|
||||||
|
+++ b/chrome/browser/prefs/browser_prefs.cc
|
||||||
|
@@ -2107,7 +2107,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||||
|
registry->RegisterBooleanPref(webauthn::pref_names::kAllowWithBrokenCerts,
|
||||||
|
false);
|
||||||
|
|
||||||
|
- registry->RegisterBooleanPref(prefs::kPrivacyGuideViewed, false);
|
||||||
|
+ registry->RegisterBooleanPref(prefs::kPrivacyGuideViewed, true);
|
||||||
|
|
||||||
|
RegisterProfilePrefsForMigration(registry);
|
||||||
|
|
||||||
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
|
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
|
||||||
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
|
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
|
||||||
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
|
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
|
||||||
@@ -346,8 +346,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
|
@@ -344,8 +344,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
|
||||||
#endif // BUILDFLAG(IS_CHROMEOS)
|
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||||
|
|
||||||
bool show_privacy_guide =
|
bool show_privacy_guide =
|
||||||
@@ -31,5 +44,5 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui
|
|||||||
+ false;
|
+ false;
|
||||||
html_source->AddBoolean("showPrivacyGuide", show_privacy_guide);
|
html_source->AddBoolean("showPrivacyGuide", show_privacy_guide);
|
||||||
|
|
||||||
html_source->AddBoolean("enableHandTrackingContentSetting",
|
html_source->AddBoolean(
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -3,15 +3,27 @@ Date: Wed, 24 Jan 2024 12:19:44 +0000
|
|||||||
Subject: Disable Read Aloud by default
|
Subject: Disable Read Aloud by default
|
||||||
|
|
||||||
---
|
---
|
||||||
.../flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc | 2 ++
|
chrome/browser/prefs/browser_prefs.cc | 2 +-
|
||||||
1 file changed, 2 insertions(+)
|
.../flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc | 1 +
|
||||||
|
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc
|
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc
|
||||||
|
|
||||||
|
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
||||||
|
--- a/chrome/browser/prefs/browser_prefs.cc
|
||||||
|
+++ b/chrome/browser/prefs/browser_prefs.cc
|
||||||
|
@@ -1444,7 +1444,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||||
|
#if BUILDFLAG(IS_ANDROID)
|
||||||
|
registry->RegisterBooleanPref(policy::policy_prefs::kBackForwardCacheEnabled,
|
||||||
|
true);
|
||||||
|
- registry->RegisterBooleanPref(policy::policy_prefs::kReadAloudEnabled, true);
|
||||||
|
+ registry->RegisterBooleanPref(policy::policy_prefs::kReadAloudEnabled, false);
|
||||||
|
#endif // BUILDFLAG(IS_ANDROID)
|
||||||
|
|
||||||
|
// Below this point is for platform-specific and compile-time conditional
|
||||||
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc
|
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc
|
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc
|
||||||
@@ -0,0 +1,2 @@
|
@@ -0,0 +1 @@
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kReadAloud);
|
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kReadAloudPlayback);
|
+SET_CROMITE_FEATURE_DISABLED(kReadAloudPlayback);
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -4,16 +4,16 @@ Subject: Disable Real Box
|
|||||||
|
|
||||||
Real-box is search box in ntp
|
Real-box is search box in ntp
|
||||||
---
|
---
|
||||||
chrome/browser/prefs/browser_prefs.cc | 2 +-
|
chrome/browser/prefs/browser_prefs.cc | 2 +-
|
||||||
chrome/browser/resources/new_tab_page/app.html | 10 ----------
|
chrome/browser/resources/new_tab_page/app.html | 18 +-----------------
|
||||||
chrome/browser/ui/webui/searchbox/searchbox_handler.cc | 1 +
|
.../searchbox/searchbox_handler.cc | 2 ++
|
||||||
components/search/ntp_features.cc | 6 +++---
|
components/search/ntp_features.cc | 4 ++--
|
||||||
4 files changed, 5 insertions(+), 14 deletions(-)
|
4 files changed, 6 insertions(+), 20 deletions(-)
|
||||||
|
|
||||||
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
||||||
--- a/chrome/browser/prefs/browser_prefs.cc
|
--- a/chrome/browser/prefs/browser_prefs.cc
|
||||||
+++ b/chrome/browser/prefs/browser_prefs.cc
|
+++ b/chrome/browser/prefs/browser_prefs.cc
|
||||||
@@ -2276,7 +2276,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
@@ -2079,7 +2079,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||||
registry->RegisterBooleanPref(
|
registry->RegisterBooleanPref(
|
||||||
prefs::kLensRegionSearchEnabled, true,
|
prefs::kLensRegionSearchEnabled, true,
|
||||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||||
@@ -21,59 +21,66 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
|
|||||||
+ registry->RegisterBooleanPref(prefs::kLensDesktopNTPSearchEnabled, false);
|
+ registry->RegisterBooleanPref(prefs::kLensDesktopNTPSearchEnabled, false);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
registry->RegisterListPref(
|
registry->RegisterBooleanPref(prefs::kDisableScreenshots, false);
|
||||||
diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html
|
diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html
|
||||||
--- a/chrome/browser/resources/new_tab_page/app.html
|
--- a/chrome/browser/resources/new_tab_page/app.html
|
||||||
+++ b/chrome/browser/resources/new_tab_page/app.html
|
+++ b/chrome/browser/resources/new_tab_page/app.html
|
||||||
@@ -19,16 +19,6 @@
|
@@ -43,23 +43,7 @@ import {SubmitButtonIconType} from '//resources/cr_components/composebox/compose
|
||||||
?hidden="${!this.logoEnabled_}">
|
<div id="searchboxContainer"
|
||||||
</ntp-logo>
|
@focusin="${this.onSearchboxContainerFocusin_}"
|
||||||
<div id="searchboxContainer">
|
@focusout="${this.onSearchboxContainerFocusout_}">
|
||||||
- <cr-searchbox id="searchbox" ?is-dark="${this.isThemeDark_()}"
|
- <ntp-searchbox id="searchbox" ?is-dark="${this.isThemeDark_()}"
|
||||||
|
- placeholder-text="$i18n{searchBoxPlaceholder}"
|
||||||
- ?color-source-is-baseline="${this.colorSourceIsBaseline}"
|
- ?color-source-is-baseline="${this.colorSourceIsBaseline}"
|
||||||
|
- @open-composebox="${this.onOpenComposebox_}"
|
||||||
- @open-lens-search="${this.onOpenLensSearch_}"
|
- @open-lens-search="${this.onOpenLensSearch_}"
|
||||||
- @open-voice-search="${this.onOpenVoiceSearch_}" ?shown="${this.realboxShown_}"
|
- @open-voice-search="${this.onOpenVoiceSearch_}" ?shown="${this.realboxShown_}"
|
||||||
- ?had-secondary-side="${this.realboxHadSecondarySide}"
|
- ?had-secondary-side="${this.realboxHadSecondarySide}"
|
||||||
- @had-secondary-side-changed="${this.onRealboxHadSecondarySideChanged_}"
|
- @had-secondary-side-changed="${this.onRealboxHadSecondarySideChanged_}"
|
||||||
- ?can-show-secondary-side="${this.realboxCanShowSecondarySide}"
|
- ?can-show-secondary-side="${this.realboxCanShowSecondarySide}"
|
||||||
- ?compose-button-enabled="${this.composeButtonEnabled}"
|
- ?compose-button-enabled="${this.composeButtonEnabled}"
|
||||||
- ?composebox-enabled="${this.composeboxEnabled}">
|
- ?composebox-enabled="${this.composeboxEnabled}"
|
||||||
- </cr-searchbox>
|
- searchbox-layout-mode="${this.ntpRealboxNextEnabled_ ? 'Compact' : ''}"
|
||||||
${this.showLensUploadDialog_ ? html`
|
- ?ntp-realbox-next-enabled="${this.ntpRealboxNextEnabled_}"
|
||||||
<ntp-lens-upload-dialog id="lensUploadDialog"
|
- ?cycling-placeholders="${this.searchboxCyclingPlaceholders_}"
|
||||||
@close-lens-search="${this.onCloseLensSearch_}">
|
- context-menu-glif-animation-state="${this.contextMenuGlifAnimationState_}"
|
||||||
diff --git a/chrome/browser/ui/webui/searchbox/searchbox_handler.cc b/chrome/browser/ui/webui/searchbox/searchbox_handler.cc
|
- ?multi-line-enabled="${this.multiLineEnabled_}">
|
||||||
--- a/chrome/browser/ui/webui/searchbox/searchbox_handler.cc
|
- </ntp-searchbox>
|
||||||
+++ b/chrome/browser/ui/webui/searchbox/searchbox_handler.cc
|
+ <div id="searchbox"></div>
|
||||||
@@ -438,6 +438,7 @@ void SearchboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source,
|
${this.showComposebox_ ? html`
|
||||||
Profile* profile,
|
<div id="dialogAnchor"></div>
|
||||||
bool enable_voice_search,
|
<dialog id="composeboxDialog">
|
||||||
bool enable_lens_search) {
|
diff --git a/chrome/browser/ui/webui/cr_components/searchbox/searchbox_handler.cc b/chrome/browser/ui/webui/cr_components/searchbox/searchbox_handler.cc
|
||||||
+ enable_lens_search = false;
|
--- a/chrome/browser/ui/webui/cr_components/searchbox/searchbox_handler.cc
|
||||||
// Embedders which are served from chrome-untrusted:// URLs should override
|
+++ b/chrome/browser/ui/webui/cr_components/searchbox/searchbox_handler.cc
|
||||||
// this to false. The chrome.timeTicks capability that the metrics reporter
|
@@ -321,6 +321,8 @@ base::DictValue SearchboxHandler::GetWebUIDataSourceDict(Profile* profile) {
|
||||||
// depends on is not defined in chrome-untrusted environments and attempting
|
base::DictValue SearchboxHandler::GetWebUIDataSourceDict(
|
||||||
|
Profile* profile,
|
||||||
|
WebUIDataSourceOptions options) {
|
||||||
|
+ options.enable_lens_search = false;
|
||||||
|
+ options.enable_voice_search = false;
|
||||||
|
base::DictValue dict;
|
||||||
|
|
||||||
|
// The WebUI Omnibox code will override this to `true` to adjust various
|
||||||
diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc
|
diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc
|
||||||
--- a/components/search/ntp_features.cc
|
--- a/components/search/ntp_features.cc
|
||||||
+++ b/components/search/ntp_features.cc
|
+++ b/components/search/ntp_features.cc
|
||||||
@@ -138,7 +138,7 @@ BASE_FEATURE(kNtpDriveModuleShowSixFiles,
|
@@ -97,7 +97,7 @@ BASE_FEATURE(kNtpDriveModuleSegmentation, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
|
|
||||||
// If enabled, logo will be shown.
|
// If enabled, logo will be shown.
|
||||||
// This is a kill switch. Keep indefinitely.
|
// This is a kill switch. Keep indefinitely.
|
||||||
-BASE_FEATURE(kNtpLogo, "NtpLogo", base::FEATURE_ENABLED_BY_DEFAULT);
|
-BASE_FEATURE(kNtpLogo, base::FEATURE_ENABLED_BY_DEFAULT);
|
||||||
+BASE_FEATURE(kNtpLogo, "NtpLogo", base::FEATURE_DISABLED_BY_DEFAULT);
|
+BASE_FEATURE(kNtpLogo, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
|
|
||||||
// If enabled, middle slot promo will be shown.
|
// If enabled, middle slot promo will be shown.
|
||||||
// This is a kill switch. Keep indefinitely.
|
// This is a kill switch. Keep indefinitely.
|
||||||
@@ -191,8 +191,8 @@ BASE_FEATURE(kNtpModulesLoad,
|
@@ -139,7 +139,7 @@ BASE_FEATURE(kNtpModuleSignInRequirement, base::FEATURE_ENABLED_BY_DEFAULT);
|
||||||
|
|
||||||
// If enabled, OneGoogleBar will be shown.
|
// If enabled, OneGoogleBar will be shown.
|
||||||
// This is a kill switch. Keep indefinitely.
|
// This is a kill switch. Keep indefinitely.
|
||||||
BASE_FEATURE(kNtpOneGoogleBar,
|
-BASE_FEATURE(kNtpOneGoogleBar, base::FEATURE_ENABLED_BY_DEFAULT);
|
||||||
- "NtpOneGoogleBar",
|
+BASE_FEATURE(kNtpOneGoogleBar, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
|
||||||
+ "NtpOneGoogleBar", // disabled
|
|
||||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // by default
|
|
||||||
|
|
||||||
// If enabled, outlook calendar module will be shown.
|
// If enabled, outlook calendar module will be shown.
|
||||||
BASE_FEATURE(kNtpOutlookCalendarModule,
|
BASE_FEATURE(kNtpOutlookCalendarModule, base::FEATURE_ENABLED_BY_DEFAULT);
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
From: uazo <uazo@users.noreply.github.com>
|
||||||
|
Date: Wed, 29 Oct 2025 13:01:41 +0000
|
||||||
|
Subject: Disable Sticky User Activation Across Same Origin Navigation
|
||||||
|
|
||||||
|
Do not retains the user activation status after navigating
|
||||||
|
from one page to another page of the same origin.
|
||||||
|
It is currently not possible to remove activation once it has been granted.
|
||||||
|
|
||||||
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
|
---
|
||||||
|
.../blink/renderer/platform/runtime_enabled_features.json5 | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
|
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
|
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||||
|
@@ -5510,8 +5510,8 @@
|
||||||
|
{
|
||||||
|
// Preserves the sticky user activation state after a page navigates to
|
||||||
|
// another same-origin page. https://crbug.com/433729626
|
||||||
|
- name: "StickyUserActivationAcrossSameOriginNavigation",
|
||||||
|
- status: "stable",
|
||||||
|
+ name: "StickyUserActivationAcrossSameOriginNavigation", status: "experimental", // disabled by default
|
||||||
|
+
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "StorageBuckets",
|
||||||
|
--
|
||||||
@@ -26,13 +26,13 @@ Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.
|
|||||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||||
---
|
---
|
||||||
.../about_flags_cc/Disable-TLS-resumption.inc | 12 ++++
|
.../about_flags_cc/Disable-TLS-resumption.inc | 12 ++++
|
||||||
.../features_cc/Disable-TLS-resumption.inc | 7 +++
|
.../features_cc/Disable-TLS-resumption.inc | 7 ++
|
||||||
.../features_h/Disable-TLS-resumption.inc | 5 ++
|
.../features_h/Disable-TLS-resumption.inc | 5 ++
|
||||||
net/http/http_network_session.cc | 1 +
|
net/http/http_network_session.cc | 1 +
|
||||||
net/quic/quic_session_pool.cc | 35 ++++++++++-
|
net/quic/quic_session_pool.cc | 35 +++++++++-
|
||||||
net/socket/ssl_client_socket_impl.cc | 59 +++++++++++++++++++
|
net/socket/ssl_client_socket_impl.cc | 68 +++++++++++++++++++
|
||||||
net/socket/ssl_client_socket_impl.h | 2 +
|
net/socket/ssl_client_socket_impl.h | 2 +
|
||||||
7 files changed, 120 insertions(+), 1 deletion(-)
|
7 files changed, 128 insertions(+), 2 deletions(-)
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Disable-TLS-resumption.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Disable-TLS-resumption.inc
|
||||||
create mode 100644 cromite_flags/net/base/features_cc/Disable-TLS-resumption.inc
|
create mode 100644 cromite_flags/net/base/features_cc/Disable-TLS-resumption.inc
|
||||||
create mode 100644 cromite_flags/net/base/features_h/Disable-TLS-resumption.inc
|
create mode 100644 cromite_flags/net/base/features_h/Disable-TLS-resumption.inc
|
||||||
@@ -79,7 +79,7 @@ new file mode 100644
|
|||||||
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
|
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
|
||||||
--- a/net/http/http_network_session.cc
|
--- a/net/http/http_network_session.cc
|
||||||
+++ b/net/http/http_network_session.cc
|
+++ b/net/http/http_network_session.cc
|
||||||
@@ -222,6 +222,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params,
|
@@ -217,6 +217,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params,
|
||||||
|
|
||||||
next_protos_.push_back(NextProto::kProtoHTTP11);
|
next_protos_.push_back(NextProto::kProtoHTTP11);
|
||||||
|
|
||||||
@@ -90,15 +90,7 @@ diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
|
|||||||
diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc
|
diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc
|
||||||
--- a/net/quic/quic_session_pool.cc
|
--- a/net/quic/quic_session_pool.cc
|
||||||
+++ b/net/quic/quic_session_pool.cc
|
+++ b/net/quic/quic_session_pool.cc
|
||||||
@@ -85,6 +85,7 @@
|
@@ -384,6 +384,38 @@ base::TimeDelta GetAdditionalDelayForMainJob() {
|
||||||
#include "net/third_party/quiche/src/quiche/quic/platform/api/quic_flags.h"
|
|
||||||
#include "net/traffic_annotation/network_traffic_annotation.h"
|
|
||||||
#include "third_party/boringssl/src/include/openssl/aead.h"
|
|
||||||
+#include "third_party/boringssl/src/include/openssl/ssl.h"
|
|
||||||
#include "url/gurl.h"
|
|
||||||
#include "url/scheme_host_port.h"
|
|
||||||
#include "url/url_constants.h"
|
|
||||||
@@ -371,6 +372,38 @@ void LogSessionKeyMismatch(QuicSessionKeyPartialMatchResult result,
|
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
@@ -137,19 +129,28 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc
|
|||||||
QuicSessionRequest::QuicSessionRequest(QuicSessionPool* pool) : pool_(pool) {}
|
QuicSessionRequest::QuicSessionRequest(QuicSessionPool* pool) : pool_(pool) {}
|
||||||
|
|
||||||
QuicSessionRequest::~QuicSessionRequest() {
|
QuicSessionRequest::~QuicSessionRequest() {
|
||||||
@@ -2365,7 +2398,7 @@ QuicSessionPool::CreateCryptoConfigHandle(QuicCryptoClientConfigKey key) {
|
@@ -2484,8 +2516,7 @@ QuicSessionPool::CreateCryptoConfigHandle(QuicCryptoClientConfigKey key) {
|
||||||
cert_verifier_, transport_security_state_, sct_auditing_delegate_,
|
cert_verifier_, transport_security_state_, sct_auditing_delegate_,
|
||||||
HostsFromOrigins(params_.origins_to_force_quic_on),
|
std::move(hostnames_to_allow_unknown_roots),
|
||||||
key.network_anonymization_key),
|
key.network_anonymization_key),
|
||||||
- std::make_unique<quic::QuicClientSessionCache>(), this);
|
- std::make_unique<quic::QuicClientSessionCache>(
|
||||||
+ std::make_unique<BromiteSessionCache>(), this);
|
- kDefaultQuicSessionCacheSize),
|
||||||
|
+ std::make_unique<BromiteSessionCache>(),
|
||||||
|
kDefaultQuicSessionCacheSize, this);
|
||||||
|
|
||||||
quic::QuicCryptoClientConfig* crypto_config = crypto_config_owner->config();
|
quic::QuicCryptoClientConfig* crypto_config = crypto_config_owner->config();
|
||||||
crypto_config->AddCanonicalSuffix(".c.youtube.com");
|
|
||||||
diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc
|
diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc
|
||||||
--- a/net/socket/ssl_client_socket_impl.cc
|
--- a/net/socket/ssl_client_socket_impl.cc
|
||||||
+++ b/net/socket/ssl_client_socket_impl.cc
|
+++ b/net/socket/ssl_client_socket_impl.cc
|
||||||
@@ -290,7 +290,33 @@ SSLClientSocketImpl::SSLClientSocketImpl(
|
@@ -31,6 +31,7 @@
|
||||||
|
#include "base/strings/string_view_util.h"
|
||||||
|
#include "base/synchronization/lock.h"
|
||||||
|
#include "base/task/sequenced_task_runner.h"
|
||||||
|
+#include "base/types/fixed_array.h"
|
||||||
|
#include "base/trace_event/trace_event.h"
|
||||||
|
#include "base/values.h"
|
||||||
|
#include "build/build_config.h"
|
||||||
|
@@ -292,7 +293,41 @@ SSLClientSocketImpl::SSLClientSocketImpl(
|
||||||
CHECK(context_);
|
CHECK(context_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,18 +164,26 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ unsigned len;
|
+ unsigned len;
|
||||||
+ auto* session_id = SSL_SESSION_get_id(session, &len);
|
+ const uint8_t *session_id = SSL_SESSION_get_id(session, &len);
|
||||||
|
+ base::FixedArray<uint8_t> session_id_bytes(len);
|
||||||
|
+ for (unsigned i = 0; i < len; i++) {
|
||||||
|
+ session_id_bytes[i] = UNSAFE_TODO(session_id[i]);
|
||||||
|
+ }
|
||||||
+
|
+
|
||||||
+ const uint8_t *ticket;
|
+ const uint8_t *ticket;
|
||||||
+ size_t ticklen;
|
+ size_t ticklen;
|
||||||
+ SSL_SESSION_get0_ticket(session, &ticket, &ticklen);
|
+ SSL_SESSION_get0_ticket(session, &ticket, &ticklen);
|
||||||
|
+ base::FixedArray<uint8_t> ticket_bytes(ticklen);
|
||||||
|
+ for (size_t i = 0; i < ticklen; i++) {
|
||||||
|
+ ticket_bytes[i] = UNSAFE_TODO(ticket[i]);
|
||||||
|
+ }
|
||||||
+
|
+
|
||||||
+ LOG(INFO) << "SSL Log: "
|
+ LOG(INFO) << "SSL Log: "
|
||||||
+ << tag
|
+ << tag
|
||||||
+ << " host: " << host_and_port_.ToString()
|
+ << " host: " << host_and_port_.ToString()
|
||||||
+ << " NIK: " << ssl_config_.network_anonymization_key.ToDebugString()
|
+ << " NIK: " << ssl_config_.network_anonymization_key.ToDebugString()
|
||||||
+ << " sessionid: " << base::HexEncode(session_id, len)
|
+ << " sessionid: " << base::HexEncode(base::span<uint8_t>(session_id_bytes))
|
||||||
+ << (ticklen > 0 ? " ticket:" + base::HexEncode(ticket, ticklen) : "");
|
+ << (ticklen > 0 ? " ticket:" + base::HexEncode(ticket_bytes) : "");
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
SSLClientSocketImpl::~SSLClientSocketImpl() {
|
SSLClientSocketImpl::~SSLClientSocketImpl() {
|
||||||
@@ -183,7 +192,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
|
|||||||
Disconnect();
|
Disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -681,6 +707,8 @@ int SSLClientSocketImpl::Init() {
|
@@ -710,6 +745,8 @@ int SSLClientSocketImpl::Init() {
|
||||||
}
|
}
|
||||||
if (session)
|
if (session)
|
||||||
SSL_set_session(ssl_.get(), session.get());
|
SSL_set_session(ssl_.get(), session.get());
|
||||||
@@ -192,7 +201,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
|
|||||||
}
|
}
|
||||||
|
|
||||||
transport_adapter_ = std::make_unique<SocketBIOAdapter>(
|
transport_adapter_ = std::make_unique<SocketBIOAdapter>(
|
||||||
@@ -966,6 +994,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) {
|
@@ -994,6 +1031,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) {
|
||||||
: SSLHandshakeDetails::kTLS13Full;
|
: SSLHandshakeDetails::kTLS13Full;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -228,7 +237,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
|
|||||||
UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details);
|
UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details);
|
||||||
|
|
||||||
// Measure TLS connections that implement the renegotiation_info and EMS
|
// Measure TLS connections that implement the renegotiation_info and EMS
|
||||||
@@ -1582,6 +1639,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const {
|
@@ -1624,6 +1690,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SSLClientSocketImpl::IsCachingEnabled() const {
|
bool SSLClientSocketImpl::IsCachingEnabled() const {
|
||||||
@@ -240,9 +249,9 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
|
|||||||
diff --git a/net/socket/ssl_client_socket_impl.h b/net/socket/ssl_client_socket_impl.h
|
diff --git a/net/socket/ssl_client_socket_impl.h b/net/socket/ssl_client_socket_impl.h
|
||||||
--- a/net/socket/ssl_client_socket_impl.h
|
--- a/net/socket/ssl_client_socket_impl.h
|
||||||
+++ b/net/socket/ssl_client_socket_impl.h
|
+++ b/net/socket/ssl_client_socket_impl.h
|
||||||
@@ -123,6 +123,8 @@ class SSLClientSocketImpl : public SSLClientSocket,
|
@@ -128,6 +128,8 @@ class NET_EXPORT_PRIVATE SSLClientSocketImpl
|
||||||
friend class SSLClientSocket;
|
|
||||||
friend class SSLContext;
|
friend class SSLContext;
|
||||||
|
FRIEND_TEST_ALL_PREFIXES(SSLClientSocketTest, ParseServerTrustAnchorIDs);
|
||||||
|
|
||||||
+ void Log_ssl_session_data(const std::string& tag, SSL_SESSION* session);
|
+ void Log_ssl_session_data(const std::string& tag, SSL_SESSION* session);
|
||||||
+
|
+
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user