Compare commits
610
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc0c6746ac | ||
|
|
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 | ||
|
|
0509d05298 | ||
|
|
840de2392a | ||
|
|
bd85e1d809 | ||
|
|
e925e09618 | ||
|
|
be8b921b26 | ||
|
|
67166a9acd | ||
|
|
637821f9c9 | ||
|
|
4ee8223990 | ||
|
|
7e2c5baaa1 | ||
|
|
8e01345453 | ||
|
|
418943de42 | ||
|
|
260c1ebd72 | ||
|
|
c2356f0386 | ||
|
|
4aa7d9c4f7 | ||
|
|
f7680ed05a | ||
|
|
c1b04dacaa | ||
|
|
03b757f738 | ||
|
|
2923c479b0 | ||
|
|
f3c70630ff | ||
|
|
0af97ad018 | ||
|
|
9001737e70 | ||
|
|
c6bcfe982a | ||
|
|
f44f153674 | ||
|
|
d14dffc01c | ||
|
|
93ec04bb54 | ||
|
|
31ab21b15b | ||
|
|
261aa7dfae | ||
|
|
fb30b6a212 | ||
|
|
fa7f123a3a | ||
|
|
b615e203cb | ||
|
|
f00a8496d6 | ||
|
|
dc39df6be1 | ||
|
|
21c9158695 | ||
|
|
7422a67051 | ||
|
|
0ed66de1d9 | ||
|
|
dda808cf9f | ||
|
|
dfcd7c6bfa | ||
|
|
264d8b8ef1 | ||
|
|
7e0c841a5c | ||
|
|
ea7516ad3b | ||
|
|
0e43fb8248 | ||
|
|
75f4ac5494 | ||
|
|
98a665e62a | ||
|
|
a427cbd404 | ||
|
|
600e69d9d9 | ||
|
|
15c252a054 | ||
|
|
18c6fc98d7 | ||
|
|
417e35d7ad | ||
|
|
3c8f24dc79 | ||
|
|
4ea840397d | ||
|
|
bc5da626a1 | ||
|
|
b072b2a057 | ||
|
|
b930efb9f8 | ||
|
|
f7f93cbec7 | ||
|
|
ecf3045ad3 | ||
|
|
4b57f9f237 | ||
|
|
d845903b3a | ||
|
|
ea6c4fa536 | ||
|
|
2bf7dd4fc4 | ||
|
|
89b396e356 | ||
|
|
42fc484e3c | ||
|
|
8cafb5ce10 | ||
|
|
2097876f5d | ||
|
|
b4f8d96284 | ||
|
|
5591705c63 | ||
|
|
663e8f5a05 | ||
|
|
064646e67f | ||
|
|
79a548cbe2 | ||
|
|
05ef7bda68 | ||
|
|
10d9446d93 | ||
|
|
1abdac0aff | ||
|
|
40cf2e83b1 | ||
|
|
07308bad45 | ||
|
|
8a937ec96d | ||
|
|
8abc82c666 | ||
|
|
47c6ace88d | ||
|
|
c76d2ed04b | ||
|
|
5ceadca8ab | ||
|
|
fd6f20d7b8 | ||
|
|
878f07dc05 | ||
|
|
b52e2f10b2 | ||
|
|
e1aa94c59e | ||
|
|
8ce1b5f727 | ||
|
|
08ce2310fe | ||
|
|
e8574300e0 | ||
|
|
d2be0313f0 | ||
|
|
7ac442f18e | ||
|
|
17899eb83b | ||
|
|
5a6f6870a4 | ||
|
|
1e0aaca957 | ||
|
|
5d68740ae0 | ||
|
|
2bc0a3be06 | ||
|
|
3a7e4fe932 | ||
|
|
4ba8bcfc94 | ||
|
|
9743d7cdf3 | ||
|
|
9f02a6435f | ||
|
|
8bfceabbde | ||
|
|
1acbfe942a | ||
|
|
488c73859b | ||
|
|
474603e8ab | ||
|
|
420b31548b | ||
|
|
c117b9e218 | ||
|
|
f8fd969d1c | ||
|
|
ee81e379ca | ||
|
|
c0c0600c36 | ||
|
|
e459bcbb25 | ||
|
|
5c446e8df9 | ||
|
|
c9e77d3191 | ||
|
|
62b6579059 | ||
|
|
1e918644ff | ||
|
|
6cabcef0f6 | ||
|
|
2efc363d37 | ||
|
|
a58da99155 | ||
|
|
e30c94bdd5 | ||
|
|
05c139d21b | ||
|
|
f964611630 | ||
|
|
f2122e2d4a | ||
|
|
184a1e7fad | ||
|
|
f81c2de32c | ||
|
|
555f445aa0 | ||
|
|
c3d54b2e23 | ||
|
|
3130d9ac5a | ||
|
|
339bc04ddc | ||
|
|
02612122a6 | ||
|
|
4d8f944d3c | ||
|
|
95f97f76a2 | ||
|
|
5e324a186f | ||
|
|
9e3a045695 | ||
|
|
b71e022d5a | ||
|
|
6132a2249c | ||
|
|
0297b1967e | ||
|
|
24889bb51f | ||
|
|
0b284bfe43 | ||
|
|
1c225eb432 | ||
|
|
8277331107 | ||
|
|
2d783d5151 | ||
|
|
290c0f8863 | ||
|
|
b126700f3c | ||
|
|
acdc80cf6b | ||
|
|
5a857b9c85 | ||
|
|
0ffdb845a6 | ||
|
|
d31b585a11 | ||
|
|
a31eb79b42 | ||
|
|
576ac73e2c | ||
|
|
924f1d2880 | ||
|
|
54e5545226 | ||
|
|
7f81aecd6f | ||
|
|
7d7f9fbf7b | ||
|
|
7d7b6a8e44 | ||
|
|
608690e15e | ||
|
|
823a8fd176 | ||
|
|
74634fab70 | ||
|
|
0ab8b73ea5 | ||
|
|
c00bb4e191 | ||
|
|
987ba8495e | ||
|
|
44f31496f2 | ||
|
|
85ca9f9037 | ||
|
|
1a04064c88 | ||
|
|
9609b54606 | ||
|
|
f7593ae783 | ||
|
|
23ad9b88df | ||
|
|
f0959db428 | ||
|
|
8157ce8a05 | ||
|
|
51e12980ba | ||
|
|
a2ae8606c2 | ||
|
|
97024d33db | ||
|
|
116fb9fc37 | ||
|
|
8fd9667f72 | ||
|
|
c06afe999e | ||
|
|
b42aa8ed69 | ||
|
|
582764c264 | ||
|
|
e17dc5f337 | ||
|
|
02dd46c503 | ||
|
|
a88c2408c2 | ||
|
|
18773a85ed | ||
|
|
984d78da7c | ||
|
|
70be95f8b9 | ||
|
|
cfff58326b | ||
|
|
033b142e80 | ||
|
|
1c5393853e | ||
|
|
b60208be05 | ||
|
|
c37500e1f6 | ||
|
|
dde3bab9ab | ||
|
|
3ca642bde4 | ||
|
|
9d31504b39 | ||
|
|
f7077c4381 | ||
|
|
dd2101bfb4 | ||
|
|
a26887c318 | ||
|
|
ee9852e97e | ||
|
|
3fe3b3e182 | ||
|
|
eff32b5313 | ||
|
|
baf72ad3f0 | ||
|
|
4a18e4d739 | ||
|
|
f13b33b73e | ||
|
|
dd884d1d5a | ||
|
|
bf60633c93 | ||
|
|
a4c08f8b05 | ||
|
|
000a8d6bc2 | ||
|
|
4f44c23396 | ||
|
|
1a3d349a09 | ||
|
|
317f1f0b5c | ||
|
|
67db5e23a0 | ||
|
|
387be3e56b | ||
|
|
8685e1c283 | ||
|
|
4f7055b1d8 | ||
|
|
68a9e09151 | ||
|
|
171c71c6eb | ||
|
|
1bad20f750 | ||
|
|
d4bc3ee1a2 | ||
|
|
a8a2e236e8 | ||
|
|
934cc7f365 | ||
|
|
2a5f5e750a | ||
|
|
f402e19a5e | ||
|
|
f74f2df981 | ||
|
|
c5a85ab067 | ||
|
|
e30a8991a3 | ||
|
|
6c7b6ba544 | ||
|
|
5cb904e621 | ||
|
|
0715958a45 | ||
|
|
864c72f269 | ||
|
|
21ab0728db | ||
|
|
1c3ff57f30 | ||
|
|
3269abe792 |
+2
-1
@@ -1 +1,2 @@
|
|||||||
*.zip binary
|
*.zip binary
|
||||||
|
*.pdf binary
|
||||||
@@ -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: |
|
||||||
@@ -196,34 +226,4 @@ jobs:
|
|||||||
title: '[AUTO][FILECONTROL] - version ${{ env.NEW_VERSION }}'
|
title: '[AUTO][FILECONTROL] - version ${{ env.NEW_VERSION }}'
|
||||||
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
|
||||||
@@ -145,11 +144,11 @@ jobs:
|
|||||||
test -d chromium/src/out/x64_webview || sudo mkdir -p chromium/src/out/x64_webview && \
|
test -d chromium/src/out/x64_webview || sudo mkdir -p chromium/src/out/x64_webview && \
|
||||||
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 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
|
||||||
|
|
||||||
sudo mkdir -p /run/user/1000/
|
sudo mkdir -p /run/user/1000/
|
||||||
sudo chown lg /run/user/1000/
|
sudo chown lg /run/user/1000/
|
||||||
sudo chmod g-rxw /run/user/1000/
|
sudo chmod g-rxw /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
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ jobs:
|
|||||||
- name: Building build-deps container ${{ env.VERSION }}
|
- name: Building build-deps container ${{ env.VERSION }}
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
docker pull uazo/build-deps:$VERSION || true
|
||||||
IS_PRESENT=$(docker inspect --type=image uazo/build-deps:$VERSION > /dev/null ; echo $?)
|
IS_PRESENT=$(docker inspect --type=image uazo/build-deps:$VERSION > /dev/null ; echo $?)
|
||||||
if [ $IS_PRESENT -ne "0" ]; then
|
if [ $IS_PRESENT -ne "0" ]; then
|
||||||
IS_PRESENT=$(./regctl image inspect uazo/build-deps:$VERSION > /dev/null ; echo $?)
|
IS_PRESENT=$(./regctl image inspect uazo/build-deps:$VERSION > /dev/null ; echo $?)
|
||||||
@@ -100,6 +101,7 @@ jobs:
|
|||||||
- name: Building chromium container ${{ env.VERSION }}
|
- name: Building chromium container ${{ env.VERSION }}
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
docker pull uazo/chromium:$VERSION || true
|
||||||
IS_PRESENT=$(docker inspect --type=image uazo/chromium:$VERSION > /dev/null ; echo $?)
|
IS_PRESENT=$(docker inspect --type=image uazo/chromium:$VERSION > /dev/null ; echo $?)
|
||||||
if [ $IS_PRESENT -ne "0" ]; then
|
if [ $IS_PRESENT -ne "0" ]; then
|
||||||
IS_PRESENT=$(./regctl image inspect uazo/chromium:$VERSION > /dev/null ; echo $?)
|
IS_PRESENT=$(./regctl image inspect uazo/chromium:$VERSION > /dev/null ; echo $?)
|
||||||
@@ -115,6 +117,7 @@ jobs:
|
|||||||
- name: Building cromite container ${{ env.VERSION }}-${{ env.CROMITE_SHA }}
|
- name: Building cromite container ${{ env.VERSION }}-${{ env.CROMITE_SHA }}
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
docker pull uazo/cromite:$VERSION-$CROMITE_SHA || true
|
||||||
IS_PRESENT=$(docker inspect --type=image uazo/cromite:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
IS_PRESENT=$(docker inspect --type=image uazo/cromite:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
||||||
if [ $IS_PRESENT -ne "0" ]; then
|
if [ $IS_PRESENT -ne "0" ]; then
|
||||||
IS_PRESENT=$(./regctl image inspect uazo/cromite:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
IS_PRESENT=$(./regctl image inspect uazo/cromite:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
||||||
@@ -130,6 +133,7 @@ jobs:
|
|||||||
- name: Building cromite-build container ${{ env.VERSION }}-${{ env.CROMITE_SHA }}
|
- name: Building cromite-build container ${{ env.VERSION }}-${{ env.CROMITE_SHA }}
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
docker pull uazo/cromite-build:$VERSION-$CROMITE_SHA || true
|
||||||
IS_PRESENT=$(docker inspect --type=image uazo/cromite-build:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
IS_PRESENT=$(docker inspect --type=image uazo/cromite-build:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
||||||
if [ $IS_PRESENT -ne "0" ]; then
|
if [ $IS_PRESENT -ne "0" ]; then
|
||||||
IS_PRESENT=$(./regctl image inspect uazo/cromite-build:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
IS_PRESENT=$(./regctl image inspect uazo/cromite-build:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
||||||
@@ -173,14 +177,15 @@ 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.22621.2428/
|
DEPOT_TOOLS_WIN_TOOLCHAIN_BASE_URL: /win_sdk/sdks/Win11SDK_10.0.26100.0/
|
||||||
WINDOWSSDKDIR: "/win_sdk/sdks/Win11SDK_10.0.22621.2428/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.22621.2428/
|
GYP_MSVS_OVERRIDE_PATH: /win_sdk/sdks/Win11SDK_10.0.26100.0/
|
||||||
# compile in debug mode
|
# compile in debug mode
|
||||||
TARGET_ISDEBUG: ${{ github.event.inputs.debug }}
|
TARGET_ISDEBUG: ${{ github.event.inputs.debug }}
|
||||||
TARGET_OS: ${{ github.event.inputs.target_os }}
|
TARGET_OS: ${{ github.event.inputs.target_os }}
|
||||||
@@ -193,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
|
||||||
|
|
||||||
@@ -210,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
|
||||||
@@ -230,6 +236,14 @@ jobs:
|
|||||||
test -d chromium/src/out/lin64 || sudo mkdir -p chromium/src/out/lin64 && \
|
test -d chromium/src/out/lin64 || sudo mkdir -p chromium/src/out/lin64 && \
|
||||||
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
|
||||||
@@ -246,6 +260,9 @@ jobs:
|
|||||||
gpg --homedir ./ -d --passphrase "${{ secrets.KEYSTORE_PASSPHRASE }}" --batch cromite.keystore.asc > cromite.keystore
|
gpg --homedir ./ -d --passphrase "${{ secrets.KEYSTORE_PASSPHRASE }}" --batch cromite.keystore.asc > cromite.keystore
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
|
# bootstrap python3 for gn
|
||||||
|
echo ../../../../../usr/bin >$WORKSPACE/depot_tools/python3_bin_reldir.txt
|
||||||
|
|
||||||
- name: Build Cromite Android x64
|
- name: Build Cromite Android x64
|
||||||
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'x64' || github.event.inputs.build == 'all') }}
|
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'x64' || github.event.inputs.build == 'all') }}
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -254,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
|
||||||
|
|
||||||
@@ -283,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
|
||||||
|
|
||||||
@@ -311,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
|
||||||
|
|
||||||
@@ -340,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
|
||||||
@@ -356,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') }}
|
||||||
@@ -366,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
|
||||||
|
|
||||||
@@ -395,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
|
||||||
|
|
||||||
@@ -415,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
|
||||||
@@ -427,5 +462,5 @@ jobs:
|
|||||||
gn gen --args="import(\"/home/lg/working_dir/cromite/build/cromite.gn_args\") $(cat ../../build_args.gni) skip_clangd_unsupported_options = true" out/clangd && \
|
gn gen --args="import(\"/home/lg/working_dir/cromite/build/cromite.gn_args\") $(cat ../../build_args.gni) skip_clangd_unsupported_options = true" out/clangd && \
|
||||||
$WORKSPACE/ninja/ninja -C $WORKSPACE/chromium/src/out/clangd -a chrome_public_apk \
|
$WORKSPACE/ninja/ninja -C $WORKSPACE/chromium/src/out/clangd -a chrome_public_apk \
|
||||||
-t compdb cc cxx objc objcxx >$WORKSPACE/chromium/src/out/clangd/compile_commands.json && \
|
-t compdb cc cxx objc objcxx >$WORKSPACE/chromium/src/out/clangd/compile_commands.json && \
|
||||||
/home/lg/working_dir/clangd_snapshot_20211205/bin/clangd-indexer --executor=all-TUs out/clangd/compile_commands.json >out/arm64/cromite.idx && \
|
/home/lg/working_dir/clangd_snapshot_20250518/bin/clangd-indexer --executor=all-TUs out/clangd/compile_commands.json >out/arm64/cromite.idx && \
|
||||||
rm -rf out/clangd
|
rm -rf out/clangd
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -2,6 +2,11 @@ name: Update fdroid repo
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
type:
|
||||||
|
description: 'runner? [dev/ci]'
|
||||||
|
required: true
|
||||||
|
default: 'ci'
|
||||||
|
|
||||||
env:
|
env:
|
||||||
REMOVEDOCKERSUPPORT: true
|
REMOVEDOCKERSUPPORT: true
|
||||||
@@ -10,7 +15,7 @@ env:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
update-fdroid:
|
update-fdroid:
|
||||||
runs-on: ci2
|
runs-on: ${{ github.event.inputs.type }}
|
||||||
|
|
||||||
container:
|
container:
|
||||||
image: uazo/fdroidserver:latest
|
image: uazo/fdroidserver:latest
|
||||||
@@ -32,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
|
||||||
|
|
||||||
@@ -50,10 +50,6 @@ The following files will be present for each release:
|
|||||||
- [arm_ChromePublic.apk](https://github.com/uazo/cromite/releases/latest/download/arm_ChromePublic.apk)
|
- [arm_ChromePublic.apk](https://github.com/uazo/cromite/releases/latest/download/arm_ChromePublic.apk)
|
||||||
- [x64_ChromePublic.apk](https://github.com/uazo/cromite/releases/latest/download/x64_ChromePublic.apk)
|
- [x64_ChromePublic.apk](https://github.com/uazo/cromite/releases/latest/download/x64_ChromePublic.apk)
|
||||||
|
|
||||||
#### Cromite System WebView apk for android:
|
|
||||||
- [arm64_SystemWebView.apk](https://github.com/uazo/cromite/releases/latest/download/arm64_SystemWebView.apk)
|
|
||||||
- [x64_SystemWebView.apk](https://github.com/uazo/cromite/releases/latest/download/x64_SystemWebView.apk)
|
|
||||||
|
|
||||||
#### Linux package:
|
#### Linux package:
|
||||||
- [chrome-lin64.tar.gz](https://github.com/uazo/cromite/releases/latest/download/chrome-lin64.tar.gz)
|
- [chrome-lin64.tar.gz](https://github.com/uazo/cromite/releases/latest/download/chrome-lin64.tar.gz)
|
||||||
|
|
||||||
@@ -73,6 +69,10 @@ The following files will be present for each release:
|
|||||||
|
|
||||||
Additional files are also available: please note that these files are created by an [additional build](https://github.com/uazo/cromite/actions/workflows/build_additional_targets.yaml) separate from the release process, and therefore may not be immediately available.
|
Additional files are also available: please note that these files are created by an [additional build](https://github.com/uazo/cromite/actions/workflows/build_additional_targets.yaml) separate from the release process, and therefore may not be immediately available.
|
||||||
|
|
||||||
|
#### Cromite System WebView apk for android:
|
||||||
|
- arm64_SystemWebView.apk
|
||||||
|
- x64_SystemWebView.apk
|
||||||
|
|
||||||
#### Vanilla Chromium for android (used for tests):
|
#### Vanilla Chromium for android (used for tests):
|
||||||
- arm64_VanillaChromium.apk
|
- arm64_VanillaChromium.apk
|
||||||
- arm_VanillaChromium.apk
|
- arm_VanillaChromium.apk
|
||||||
@@ -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
|
||||||
@@ -185,7 +186,14 @@ thanks to [austinhuang0131](https://github.com/austinhuang0131) for the svg icon
|
|||||||
|
|
||||||
# Donate
|
# Donate
|
||||||
|
|
||||||
If you want, you can donate to support cromite development through [paypal](https://www.paypal.com/pools/c/9cwNgAQhRL).
|
If you want, you can donate to support cromite development through [paypal](https://www.paypal.com/pools/c/9e5lO2OIzb).
|
||||||
|
|
||||||
|
Current link:
|
||||||
|
- https://www.paypal.com/pools/c/9hEHZ6tElk
|
||||||
|
|
||||||
|
Historical fundraisings links:
|
||||||
|
- https://www.paypal.com/pools/c/9cwNgAQhRL
|
||||||
|
- https://www.paypal.com/pools/c/9e5lO2OIzb
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
133.0.6943.127
|
148.0.7778.168
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,36 @@
|
|||||||
|
)]}'
|
||||||
|
{
|
||||||
|
"response": {
|
||||||
|
"server": "prod",
|
||||||
|
"protocol": "3.1",
|
||||||
|
"app": [
|
||||||
|
{
|
||||||
|
"appid": "gcmjkmgdlgnkkcocmoeiminaijmmjnii",
|
||||||
|
"status": "ok",
|
||||||
|
"updatecheck": {
|
||||||
|
"status": "ok",
|
||||||
|
"urls": {
|
||||||
|
"url": [
|
||||||
|
{
|
||||||
|
"codebase": "https://www.cromite.org/components/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"manifest": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"packages": {
|
||||||
|
"package": [
|
||||||
|
{
|
||||||
|
"hash_sha256": "22639FA1B21D9D95E6343A6A58028B224903D23BA404537584A22236FCFC3482",
|
||||||
|
"name": "fonts_component.zip",
|
||||||
|
"fp": "1.22639FA1B21D9D95E6343A6A58028B224903D23BA404537584A22236FCFC3482",
|
||||||
|
"required": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
)]}' {
|
||||||
|
"response": {
|
||||||
|
"server": "prod",
|
||||||
|
"protocol": "4.0",
|
||||||
|
"apps": [
|
||||||
|
{
|
||||||
|
"appid": "gcmjkmgdlgnkkcocmoeiminaijmmjnii",
|
||||||
|
"status": "ok",
|
||||||
|
"updatecheck": {
|
||||||
|
"status": "ok",
|
||||||
|
"nextversion": "1.0.0",
|
||||||
|
"pipelines": [
|
||||||
|
{
|
||||||
|
"operations": [
|
||||||
|
{
|
||||||
|
"type": "download",
|
||||||
|
"urls": [ { "url": "https://www.cromite.org/components/fonts_component.zip" } ],
|
||||||
|
"out": { "sha256": "22639FA1B21D9D95E6343A6A58028B224903D23BA404537584A22236FCFC3482" },
|
||||||
|
"size": 60716451
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "crx3",
|
||||||
|
"in": { "sha256": "22639FA1B21D9D95E6343A6A58028B224903D23BA404537584A22236FCFC3482" }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
+20
-25
@@ -1,17 +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
|
||||||
dfmify_dev_ui=false
|
|
||||||
disable_android_lint=true
|
|
||||||
disable_fieldtrial_testing_config=true
|
disable_fieldtrial_testing_config=true
|
||||||
enable_gvr_services=false
|
|
||||||
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
|
||||||
@@ -24,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
|
||||||
@@ -68,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
|
||||||
|
|
||||||
@@ -102,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
|
||||||
@@ -119,6 +99,11 @@ 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
|
||||||
|
dfmify_dev_ui = false
|
||||||
|
|
||||||
if (getenv("USE_KEYSTORE") != "") {
|
if (getenv("USE_KEYSTORE") != "") {
|
||||||
android_keystore_path = "/home/lg/working_dir/cromite.keystore"
|
android_keystore_path = "/home/lg/working_dir/cromite.keystore"
|
||||||
android_keystore_name = "cromite"
|
android_keystore_name = "cromite"
|
||||||
@@ -127,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")
|
||||||
@@ -136,7 +123,17 @@ if (target_os == "android") {
|
|||||||
symbol_level = 1
|
symbol_level = 1
|
||||||
strip_debug_info = false
|
strip_debug_info = false
|
||||||
generate_linker_map = false
|
generate_linker_map = false
|
||||||
|
|
||||||
|
# Disable static analysis
|
||||||
|
android_static_analysis = "off"
|
||||||
|
|
||||||
|
# Turns off all V8 debug features. Disables running V8 in a pseudo debug mode
|
||||||
|
# bypass build error -5 in clang_x64/mksnapshot
|
||||||
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,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
|
||||||
|
|
||||||
@@ -171,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,13 +1,14 @@
|
|||||||
Do-not-link-with-libatomic.patch
|
Do-not-link-with-libatomic.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
|
||||||
|
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
|
||||||
@@ -90,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
|
||||||
@@ -155,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
|
||||||
@@ -169,8 +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
|
||||||
|
|
||||||
# cromite patches
|
|
||||||
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
|
||||||
@@ -180,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
|
||||||
@@ -243,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
|
||||||
@@ -253,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
|
||||||
@@ -275,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
|
||||||
@@ -290,11 +280,36 @@ 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
|
||||||
|
Android-fonts-fingerprinting-mitigation.patch
|
||||||
|
Disable-Android-Tab-Declutter.patch
|
||||||
|
Disable-CSSDynamicRangeLimit.patch
|
||||||
|
Disable-prefers-reduced-motion.patch
|
||||||
|
Disable-css-preferred-text-scale.patch
|
||||||
|
Disable-Viewport-Segments.patch
|
||||||
|
Keep-disabled-cache-sharing-for-pervasive-scripts.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
|
||||||
|
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
|
||||||
@@ -302,13 +317,17 @@ 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
|
||||||
Fix-chromium-build-bugs.patch
|
Fix-chromium-build-bugs.patch
|
||||||
Enable-component-updater.patch
|
Try-to-fix-2082.patch
|
||||||
Android-fonts-fingerprinting-mitigation.patch
|
Temp-use-PREVIEW-for-IDCompositionDevice5.patch
|
||||||
|
|
||||||
# adblock patches
|
# adblock patches
|
||||||
eyeo-beta-118.0.5993.48-base.patch
|
eyeo-133.0.6943.49-base.patch
|
||||||
eyeo-beta-118.0.5993.48-chrome_integration.patch
|
eyeo-133.0.6943.49-chrome_integration.patch
|
||||||
eyeo-beta-118.0.5993.48-android_api.patch
|
eyeo-133.0.6943.49-android_api.patch
|
||||||
eyeo-beta-118.0.5993.48-android_settings.patch
|
eyeo-133.0.6943.49-android_settings.patch
|
||||||
eyeo-beta-118.0.5993.48-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,252 +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 ++++++++
|
|
||||||
gpu/ipc/service/stream_texture_android.cc | 10 +++++++++-
|
|
||||||
12 files changed, 87 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
|
|
||||||
@@ -3219,6 +3219,10 @@
|
|
||||||
"name": "enable-identity-in-auth-error",
|
|
||||||
"owners": [ "jlebel@chromium.org", "chrome-signin-team@google.com" ],
|
|
||||||
"expiry_milestone": 135
|
|
||||||
+ },{
|
|
||||||
+ "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
|
|
||||||
@@ -2605,6 +2605,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
|
|
||||||
@@ -59,6 +59,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
|
|
||||||
@@ -126,6 +126,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;
|
|
||||||
|
|
||||||
@@ -379,6 +382,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
|
|
||||||
@@ -7,6 +7,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
|
|
||||||
@@ -69,6 +69,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)
|
|
||||||
@@ -716,6 +717,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/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc
|
|
||||||
--- a/gpu/ipc/service/stream_texture_android.cc
|
|
||||||
+++ b/gpu/ipc/service/stream_texture_android.cc
|
|
||||||
@@ -50,7 +50,15 @@ std::unique_ptr<ui::ScopedMakeCurrent> MakeCurrent(
|
|
||||||
}
|
|
||||||
|
|
||||||
TextureOwner::Mode GetTextureOwnerMode() {
|
|
||||||
- return base::android::EnableAndroidImageReader()
|
|
||||||
+ const bool a_image_reader_supported =
|
|
||||||
+ base::android::AndroidImageReader::GetInstance().IsSupported();
|
|
||||||
+
|
|
||||||
+ // TODO(vikassoni) : Currently we have 2 different flags to enable/disable
|
|
||||||
+ // AImageReader - one for MCVD and other for MediaPlayer here. Merge those 2
|
|
||||||
+ // flags into a single flag. Keeping the 2 flags separate for now since finch
|
|
||||||
+ // experiment using this flag is in progress.
|
|
||||||
+ return a_image_reader_supported && base::android::EnableAndroidImageReader() &&
|
|
||||||
+ base::FeatureList::IsEnabled(features::kAImageReaderMediaPlayer)
|
|
||||||
? TextureOwner::Mode::kAImageReaderInsecure
|
|
||||||
: TextureOwner::Mode::kSurfaceTextureInsecure;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
@@ -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
|
||||||
@@ -225,6 +225,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;
|
||||||
@@ -963,6 +964,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
|
||||||
@@ -157,6 +157,7 @@ public abstract class ChromeFeatureList {
|
@@ -168,6 +168,7 @@ public abstract class ChromeFeatureList {
|
||||||
|
"AccountForSuppressedKeyboardInsets";
|
||||||
// Feature names.
|
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 =
|
||||||
/* Alphabetical: */
|
"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 ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 =
|
// Don't clean up this flag yet, BCIV is launched, so this needs to be enabled by
|
||||||
@@ -616,6 +617,8 @@ public abstract class ChromeFeatureList {
|
@@ -836,6 +837,8 @@ public abstract class ChromeFeatureList {
|
||||||
public static final CachedFlag sAndroidTabDeclutterDedupeTabIdsKillSwitch =
|
public static final CachedFlag sAndroidXrImmersivePlayer =
|
||||||
newCachedFlag(ANDROID_TAB_DECLUTTER_DEDUPE_TAB_IDS_KILL_SWITCH, true);
|
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 sBlockIntentsWhileLocked =
|
sAccountForSuppressedKeyboardInsets,
|
||||||
@@ -832,6 +835,7 @@ public abstract class ChromeFeatureList {
|
sAndroidAnimatedProgressBarInBrowser,
|
||||||
public static final List<CachedFlag> sFlagsCachedFullBrowserChromium =
|
sAndroidApb144Patch1,
|
||||||
List.of(
|
|
||||||
sAndroidAppIntegration,
|
|
||||||
+ sAllowUserCertificates,
|
+ sAllowUserCertificates,
|
||||||
sAndroidAppIntegrationModule,
|
sAndroidApb144Patch2,
|
||||||
sAndroidAppIntegrationV2,
|
sAndroidApb144Patch3,
|
||||||
sNewTabPageCustomization,
|
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,19 +111,19 @@ 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
|
||||||
@@ -528,6 +528,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;
|
||||||
+
|
+
|
||||||
public static AndroidCertVerifyResult verifyServerCertificates(
|
public static AndroidCertVerifyResult verifyServerCertificates(
|
||||||
byte[][] certChain, String authType, String host)
|
byte[][] certChain,
|
||||||
throws KeyStoreException, NoSuchAlgorithmException {
|
String authType,
|
||||||
@@ -616,6 +618,9 @@ public class X509Util {
|
@@ -649,6 +651,9 @@ public class X509Util {
|
||||||
|
X509Certificate root = verifiedChain.get(verifiedChain.size() - 1);
|
||||||
isIssuedByKnownRoot = isKnownRoot(root);
|
isIssuedByKnownRoot = isKnownRoot(root);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if (AllowUserCertificates == false && isIssuedByKnownRoot == false)
|
+ if (AllowUserCertificates == false && isIssuedByKnownRoot == false)
|
||||||
+ return new AndroidCertVerifyResult(CertVerifyStatusAndroid.NO_TRUSTED_ROOT);
|
+ return new AndroidCertVerifyResult(CertVerifyStatusAndroid.NO_TRUSTED_ROOT);
|
||||||
+
|
+
|
||||||
|
|||||||
@@ -4,19 +4,23 @@ 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
|
||||||
---
|
---
|
||||||
.../java/src/org/chromium/chrome/browser/KeyboardShortcuts.java | 2 ++
|
.../src/org/chromium/chrome/browser/KeyboardShortcuts.java | 6 ++++++
|
||||||
1 file changed, 2 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
|
||||||
@@ -472,6 +472,8 @@ public class KeyboardShortcuts {
|
@@ -939,6 +939,12 @@ public class KeyboardShortcuts {
|
||||||
R.string.keyboard_shortcut_address_bar,
|
KeyEvent.KEYCODE_ESCAPE,
|
||||||
KeyEvent.KEYCODE_L,
|
KeyEvent.META_CTRL_ON);
|
||||||
KeyEvent.META_CTRL_ON);
|
}
|
||||||
+ addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
|
+ addShortcut(context,
|
||||||
+ KeyEvent.KEYCODE_D, KeyEvent.META_ALT_ON);
|
+ shortcutGroupsById,
|
||||||
shortcutGroups.add(chromeFeatureShortcutGroup);
|
+ R.string.keyboard_shortcut_chrome_feature_group_header,
|
||||||
|
+ R.string.keyboard_shortcut_address_bar,
|
||||||
|
+ KeyEvent.KEYCODE_D,
|
||||||
|
+ KeyEvent.META_ALT_ON);
|
||||||
|
return new ArrayList<>(shortcutGroupsById.values());
|
||||||
|
}
|
||||||
|
|
||||||
KeyboardShortcutGroup webpageShortcutGroup =
|
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -372,6 +372,11 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
|
@@ -403,6 +403,11 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,36 +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 ++++
|
||||||
chrome/browser/about_flags.cc | 1 +
|
content/renderer/render_process_impl.cc | 9 +++++++++
|
||||||
.../Add-PartialLowEndModeOnMidRangeDevices-flag.inc | 12 ++++++++++++
|
.../Add-PartialLowEndModeOnMidRangeDevices-flag.inc | 12 ++++++++++++
|
||||||
3 files changed, 17 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
|
||||||
@@ -114,6 +114,10 @@ BASE_FEATURE(kPostGetMyMemoryStateToBackground,
|
@@ -199,6 +199,10 @@ bool IsReducePPMsEnabled() {
|
||||||
FEATURE_ENABLED_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),
|
||||||
InitializeCpuReductionExperiment();
|
std::memory_order_relaxed);
|
||||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
diff --git a/content/renderer/render_process_impl.cc b/content/renderer/render_process_impl.cc
|
||||||
--- a/chrome/browser/about_flags.cc
|
--- a/content/renderer/render_process_impl.cc
|
||||||
+++ b/chrome/browser/about_flags.cc
|
+++ b/content/renderer/render_process_impl.cc
|
||||||
@@ -22,6 +22,7 @@
|
@@ -2,6 +2,7 @@
|
||||||
#include "base/base_switches.h"
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
#include "base/command_line.h"
|
// found in the LICENSE file.
|
||||||
#include "base/feature_list.h"
|
|
||||||
+#include "base/features.h"
|
+#include "base/features.h"
|
||||||
#include "base/functional/bind.h"
|
#include "content/renderer/render_process_impl.h"
|
||||||
#include "base/functional/callback.h"
|
|
||||||
#include "base/i18n/base_i18n_switches.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,37 +5,21 @@ 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 | 7 +++++++
|
.../blink/renderer/modules/gamepad/navigator_gamepad.cc | 6 ++++++
|
||||||
6 files changed, 28 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
|
|
||||||
@@ -7587,9 +7587,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
|
||||||
@@ -267,6 +267,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
|
@@ -246,6 +246,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
|
||||||
|
{wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)},
|
||||||
|
{wf::EnablePeriodicBackgroundSync,
|
||||||
raw_ref(features::kPeriodicBackgroundSync)},
|
raw_ref(features::kPeriodicBackgroundSync)},
|
||||||
{wf::EnablePushMessagingSubscriptionChange,
|
|
||||||
raw_ref(features::kPushSubscriptionChangeEvent)},
|
|
||||||
+ {wf::EnableRestrictGamepadAccess,
|
+ {wf::EnableRestrictGamepadAccess,
|
||||||
+ raw_ref(features::kRestrictGamepadAccess)},
|
+ raw_ref(features::kRestrictGamepadAccess)},
|
||||||
{wf::EnableSecurePaymentConfirmation,
|
{wf::EnableSecurePaymentConfirmation,
|
||||||
@@ -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
|
||||||
@@ -27,4 +27,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
|
||||||
@@ -11,8 +11,10 @@
|
@@ -17,6 +17,7 @@ GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(
|
||||||
namespace features {
|
GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kGamepadRawInputChangeEvent);
|
||||||
|
GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(
|
||||||
GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kEnableGamepadMultitouch);
|
kClaimDuplicateGamepadsProductIdentifier);
|
||||||
+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,24 +80,23 @@ 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,10 @@ 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) {
|
||||||
+ if (::features::IsRestrictGamepadAccessEnabled()) {
|
+ if (::features::IsRestrictGamepadAccessEnabled()) {
|
||||||
+ exception_state.ThrowSecurityError("Access to the feature \"gamepad\" is denied");
|
|
||||||
+ return HeapVector<Member<Gamepad>>();
|
+ return HeapVector<Member<Gamepad>>();
|
||||||
+ }
|
+ }
|
||||||
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 +425,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.
|
||||||
|
|
||||||
@@ -29,18 +30,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
chrome/browser/resources/proxy_config.html | 77 ++++
|
chrome/browser/resources/proxy_config.html | 77 ++++
|
||||||
chrome/browser/resources/proxy_config.js | 278 +++++++++++++
|
chrome/browser/resources/proxy_config.js | 278 +++++++++++++
|
||||||
chrome/browser/ui/BUILD.gn | 2 +
|
chrome/browser/ui/BUILD.gn | 2 +
|
||||||
.../browser/ui/webui/chrome_web_ui_configs.cc | 4 +
|
.../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/proxy_resolution/proxy_config.cc | 51 ++-
|
net/features.gni | 2 +-
|
||||||
|
net/proxy_resolution/pac_file_fetcher_impl.cc | 8 -
|
||||||
|
net/proxy_resolution/proxy_config.cc | 53 ++-
|
||||||
net/proxy_resolution/proxy_config.h | 3 +
|
net/proxy_resolution/proxy_config.h | 3 +
|
||||||
25 files changed, 984 insertions(+), 17 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
|
||||||
@@ -77,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
|
||||||
@@ -82,6 +82,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";
|
||||||
@@ -88,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
|
||||||
@@ -333,6 +333,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);
|
||||||
@@ -99,20 +102,20 @@ 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
|
||||||
@@ -231,6 +231,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" />
|
||||||
+ <include name="IDR_PROXY_CONFIG_JS" file="resources\proxy_config.js" type="BINDATA" compress="gzip" />
|
+ <include name="IDR_PROXY_CONFIG_JS" file="resources\proxy_config.js" type="BINDATA" compress="gzip" />
|
||||||
<if expr="not is_android">
|
<if expr="not is_android or enable_extensions_core">
|
||||||
<!-- Page not available for guest. -->
|
<!-- Page not available for guest. -->
|
||||||
<include name="IDR_PAGE_NOT_AVAILABLE_FOR_GUEST_APP_HTML" file="resources\page_not_available_for_guest\app.html" type="BINDATA" />
|
<include name="IDR_PAGE_NOT_AVAILABLE_FOR_GUEST_APP_HTML" file="resources\page_not_available_for_guest\app.html" type="BINDATA" />
|
||||||
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,
|
||||||
@@ -140,16 +143,16 @@ diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/pr
|
|||||||
+#include "components/prefs/pref_service.h"
|
+#include "components/prefs/pref_service.h"
|
||||||
+#include "components/prefs/pref_registry_simple.h"
|
+#include "components/prefs/pref_registry_simple.h"
|
||||||
|
|
||||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
#if BUILDFLAG(IS_CHROMEOS)
|
||||||
#include "chromeos/ash/components/network/proxy/proxy_config_service_impl.h"
|
#include "chromeos/ash/components/network/proxy/proxy_config_service_impl.h"
|
||||||
@@ -70,7 +74,20 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfProfile(
|
@@ -57,7 +61,20 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfProfile(
|
||||||
return std::make_unique<ash::ProxyConfigServiceImpl>(
|
return std::make_unique<ash::ProxyConfigServiceImpl>(
|
||||||
profile_prefs, local_state_prefs, nullptr);
|
profile_prefs, local_state_prefs, nullptr);
|
||||||
#else
|
#else
|
||||||
- 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";
|
||||||
@@ -161,12 +164,12 @@ diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/pr
|
|||||||
+ local_state_prefs->CommitPendingWrite();
|
+ local_state_prefs->CommitPendingWrite();
|
||||||
+ }
|
+ }
|
||||||
+ return std::make_unique<PrefProxyConfigTrackerImpl>(local_state_prefs, nullptr);
|
+ return std::make_unique<PrefProxyConfigTrackerImpl>(local_state_prefs, nullptr);
|
||||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,3 +103,8 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfLocalState(
|
@@ -73,3 +90,8 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfLocalState(
|
||||||
nullptr);
|
nullptr);
|
||||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+// static
|
+// static
|
||||||
@@ -196,16 +199,16 @@ 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
|
||||||
@@ -198,6 +198,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"
|
||||||
|
|
||||||
+#include "chrome/browser/net/proxy_service_factory.h"
|
+#include "chrome/browser/net/proxy_service_factory.h"
|
||||||
+
|
+
|
||||||
#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
|
#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
|
||||||
#include "chrome/browser/background/background_mode_manager.h"
|
#include "chrome/browser/background/extensions/background_mode_manager.h"
|
||||||
#endif
|
#endif
|
||||||
@@ -1714,6 +1716,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);
|
||||||
@@ -217,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
|
||||||
@@ -156,7 +156,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(
|
||||||
@@ -660,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
|
||||||
@@ -226,6 +226,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",
|
||||||
@@ -672,22 +675,25 @@ 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
|
||||||
@@ -55,6 +55,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
|
|
||||||
@@ -401,4 +404,5 @@ void RegisterChromeWebUIConfigs() {
|
|
||||||
#if BUILDFLAG(ENABLE_GLIC)
|
|
||||||
map.AddWebUIConfig(std::make_unique<glic::GlicUIConfig>());
|
|
||||||
#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)
|
||||||
|
map.AddWebUIConfig(
|
||||||
|
std::make_unique<safe_browsing::ChromeSafeBrowsingUIConfig>());
|
||||||
diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webui/proxy_config_ui.cc
|
diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webui/proxy_config_ui.cc
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
@@ -768,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
|
||||||
@@ -787,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);
|
||||||
+
|
+
|
||||||
@@ -827,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:
|
||||||
@@ -855,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
|
||||||
+
|
+
|
||||||
@@ -926,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_) {
|
||||||
@@ -948,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());
|
||||||
@@ -980,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;
|
||||||
+
|
+
|
||||||
@@ -1017,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 {
|
||||||
@@ -1043,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);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
@@ -1131,29 +1137,21 @@ 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
|
||||||
@@ -50,6 +50,7 @@ bool IsSystemWebUIHost(std::string_view host) {
|
@@ -120,6 +120,7 @@ bool IsSystemWebUIHost(std::string_view host) {
|
||||||
kChromeUILockScreenNetworkHost,
|
|
||||||
kChromeUILockScreenStartReauthHost,
|
|
||||||
kChromeUIMobileSetupHost,
|
|
||||||
+ kChromeUIProxyConfigHost,
|
|
||||||
kChromeUIMultiDeviceSetupHost,
|
|
||||||
kChromeUINetworkHost,
|
|
||||||
kChromeUINotificationTesterHost,
|
|
||||||
@@ -71,6 +72,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
|
||||||
@@ -159,6 +159,8 @@ inline constexpr char kChromeUINetExportHost[] = "net-export";
|
@@ -210,6 +210,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals";
|
||||||
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 char16_t kChromeUIProxyConfigURL16[] = u"chrome://proxy/";
|
+inline constexpr char16_t kChromeUIProxyConfigURL16[] = u"chrome://proxy/";
|
||||||
+inline constexpr char kChromeUIProxyConfigHost[] = "proxy";
|
+inline constexpr char kChromeUIProxyConfigHost[] = "proxy";
|
||||||
inline constexpr char kChromeUINewTabPageHost[] = "new-tab-page";
|
inline constexpr char kChromeUINewTabPageHost[] = "new-tab-page";
|
||||||
@@ -1162,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);
|
||||||
}
|
}
|
||||||
@@ -1192,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";
|
||||||
@@ -1211,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,
|
||||||
@@ -1239,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,
|
||||||
@@ -1251,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));
|
||||||
@@ -1291,32 +1290,32 @@ 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
|
||||||
+++ b/components/proxy_config/proxy_policy_handler.cc
|
+++ b/components/proxy_config/proxy_policy_handler.cc
|
||||||
@@ -380,7 +380,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
|
@@ -378,7 +378,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
|
||||||
set_proxy_pref_value(ProxyConfigDictionary::CreateFixedServers(
|
set_proxy_pref_value(ProxyConfigDictionary::CreateFixedServers(
|
||||||
server->GetString(), bypass_list && bypass_list->is_string()
|
server->GetString(), bypass_list && bypass_list->is_string()
|
||||||
? bypass_list->GetString()
|
? bypass_list->GetString()
|
||||||
@@ -1325,11 +1324,41 @@ 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
|
||||||
|
--- a/net/proxy_resolution/pac_file_fetcher_impl.cc
|
||||||
|
+++ b/net/proxy_resolution/pac_file_fetcher_impl.cc
|
||||||
|
@@ -364,14 +364,6 @@ bool PacFileFetcherImpl::ConsumeBytesRead(URLRequest* request, int num_bytes) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
- // Enforce maximum size bound.
|
||||||
|
- if (num_bytes + bytes_read_so_far_.size() >
|
||||||
|
- static_cast<size_t>(max_response_bytes_)) {
|
||||||
|
- result_code_ = ERR_FILE_TOO_BIG;
|
||||||
|
- request->Cancel();
|
||||||
|
- return false;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
bytes_read_so_far_.append(buf_->data(), num_bytes);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_config.cc
|
diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_config.cc
|
||||||
--- a/net/proxy_resolution/proxy_config.cc
|
--- a/net/proxy_resolution/proxy_config.cc
|
||||||
+++ b/net/proxy_resolution/proxy_config.cc
|
+++ b/net/proxy_resolution/proxy_config.cc
|
||||||
@@ -129,7 +129,7 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules,
|
@@ -133,7 +133,7 @@ void ProxyConfig::ProxyRules::ParseFromString(std::string_view proxy_rules,
|
||||||
std::move(url_scheme), &single_proxies, ProxyServer::SCHEME_HTTP,
|
url_scheme, &single_proxies, ProxyServer::SCHEME_HTTP,
|
||||||
allow_bracketed_proxy_chains, is_quic_allowed);
|
allow_bracketed_proxy_chains, is_quic_allowed);
|
||||||
type = Type::PROXY_LIST;
|
type = Type::PROXY_LIST;
|
||||||
- return;
|
- return;
|
||||||
@@ -1337,7 +1366,7 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Trim whitespace off the url scheme.
|
// Trim whitespace off the url scheme.
|
||||||
@@ -160,6 +160,55 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules,
|
@@ -164,6 +164,57 @@ void ProxyConfig::ProxyRules::ParseFromString(std::string_view proxy_rules,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1345,8 +1374,10 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c
|
|||||||
+ if (type == Type::PROXY_LIST) {
|
+ if (type == Type::PROXY_LIST) {
|
||||||
+ std::string proxy_list;
|
+ std::string proxy_list;
|
||||||
+ for (const auto& proxy_chain : single_proxies.AllChains()) {
|
+ for (const auto& proxy_chain : single_proxies.AllChains()) {
|
||||||
+ net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
|
+ if (proxy_chain.length()) {
|
||||||
+ proxy_list += ProxyServerToProxyUri(proxy_server) + ";";
|
+ net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
|
||||||
|
+ proxy_list += ProxyServerToProxyUri(proxy_server) + ";";
|
||||||
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ // remove last semicolon
|
+ // remove last semicolon
|
||||||
+ if (proxy_list.length() != 0 ) {
|
+ if (proxy_list.length() != 0 ) {
|
||||||
@@ -1396,8 +1427,8 @@ 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(const std::string& 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);
|
||||||
+ // Returns the proxy rules in a format that can be parsed by ParseFromString;
|
+ // Returns the proxy rules in a format that can be parsed by ParseFromString;
|
||||||
|
|||||||
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
|
||||||
@@ -248,7 +248,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,
|
||||||
@@ -292,14 +292,14 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
|
|||||||
--- a/third_party/blink/renderer/core/html/media/autoplay_policy.cc
|
--- a/third_party/blink/renderer/core/html/media/autoplay_policy.cc
|
||||||
+++ b/third_party/blink/renderer/core/html/media/autoplay_policy.cc
|
+++ b/third_party/blink/renderer/core/html/media/autoplay_policy.cc
|
||||||
@@ -9,6 +9,7 @@
|
@@ -9,6 +9,7 @@
|
||||||
|
#include "third_party/blink/public/mojom/autoplay/autoplay.mojom-blink.h"
|
||||||
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink.h"
|
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink.h"
|
||||||
#include "third_party/blink/public/mojom/permissions_policy/permissions_policy.mojom-blink.h"
|
|
||||||
#include "third_party/blink/public/mojom/webpreferences/web_preferences.mojom-blink.h"
|
#include "third_party/blink/public/mojom/webpreferences/web_preferences.mojom-blink.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/platform/web_media_player.h"
|
#include "third_party/blink/public/platform/web_media_player.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/public/web/web_local_frame_client.h"
|
#include "third_party/blink/public/web/web_local_frame_client.h"
|
||||||
@@ -337,6 +338,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() {
|
@@ -346,6 +347,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AutoplayPolicy::IsGestureNeededForPlayback() const {
|
bool AutoplayPolicy::IsGestureNeededForPlayback() const {
|
||||||
@@ -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;
|
||||||
|
|
||||||
@@ -449,6 +452,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,25 +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 +++++++++++++++++++
|
||||||
.../browser/flags/ChromeFeatureList.java | 2 +
|
.../flags/android/chrome_feature_list.cc | 4 +-
|
||||||
|
.../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 +
|
||||||
12 files changed, 143 insertions(+), 2 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
|
||||||
@@ -62,6 +62,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" />
|
||||||
@@ -56,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
|
||||||
@@ -64,6 +64,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;
|
||||||
|
|
||||||
@@ -66,8 +75,8 @@ 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.
|
||||||
@@ -267,6 +270,9 @@ public class LaunchIntentDispatcher {
|
@@ -139,6 +143,9 @@ public class LaunchIntentDispatcher {
|
||||||
@OptIn(markerClass = ExperimentalAuthTab.class)
|
*/
|
||||||
public static boolean isCustomTabIntent(Intent intent) {
|
public static boolean isCustomTabIntent(Intent intent) {
|
||||||
if (intent == null) return false;
|
if (intent == null) return false;
|
||||||
+ if (!ContextUtils.getAppSharedPreferences()
|
+ if (!ContextUtils.getAppSharedPreferences()
|
||||||
@@ -76,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() = "
|
||||||
@@ -295,6 +301,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);
|
||||||
|
|
||||||
@@ -87,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());
|
||||||
@@ -490,6 +500,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)) {
|
||||||
@@ -102,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
|
||||||
@@ -1187,7 +1187,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
|
||||||
@@ -122,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
|
||||||
@@ -980,6 +980,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,
|
||||||
() -> {
|
() -> {
|
||||||
@@ -133,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;
|
||||||
|
|
||||||
@@ -143,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.
|
||||||
@@ -118,6 +121,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
|
@@ -134,6 +137,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isIntentFromThirdPartyAllowed() {
|
private static boolean isIntentFromThirdPartyAllowed() {
|
||||||
@@ -153,7 +214,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
|
|||||||
return ChromeFeatureList.sCctIncognitoAvailableToThirdParty.isEnabled();
|
return ChromeFeatureList.sCctIncognitoAvailableToThirdParty.isEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,6 +223,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) {
|
||||||
@@ -164,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()
|
||||||
@@ -330,6 +340,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() {
|
||||||
@@ -178,9 +239,17 @@ 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
|
||||||
@@ -60,6 +60,15 @@ import org.chromium.device.DeviceFeatureList;
|
@@ -12,6 +12,7 @@ import android.content.Context;
|
||||||
import org.chromium.device.DeviceFeatureMap;
|
import android.content.Intent;
|
||||||
import org.chromium.ui.text.SpanApplier;
|
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.function.Consumer;
|
||||||
|
|
||||||
+import android.app.role.RoleManager;
|
+import android.app.role.RoleManager;
|
||||||
+import android.content.Context;
|
+import android.content.Context;
|
||||||
@@ -191,20 +260,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
+import org.chromium.base.IntentUtils;
|
+import org.chromium.base.IntentUtils;
|
||||||
+import org.chromium.base.PackageManagerUtils;
|
+import org.chromium.base.PackageManagerUtils;
|
||||||
+
|
+
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.preference.PreferenceCategory;
|
import androidx.preference.PreferenceCategory;
|
||||||
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
|
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
|
||||||
@@ -112,6 +121,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
import org.chromium.base.shared_preferences.SharedPreferencesManager;
|
||||||
private IncognitoLockSettings mIncognitoLockSettings;
|
@@ -163,6 +173,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
private final ObservableSupplierImpl<String> mPageTitle = new ObservableSupplierImpl<>();
|
startTag, endTag, new ChromeClickableSpan(context, onClickCallback));
|
||||||
|
}
|
||||||
|
|
||||||
+ private ChromeSwitchPreference allowCustomTabIntentsPref;
|
+ private ChromeSwitchPreference allowCustomTabIntentsPref;
|
||||||
+ private ChromeSwitchPreference openExternalLinksPref;
|
+ private ChromeSwitchPreference openExternalLinksPref;
|
||||||
+
|
+
|
||||||
@Override
|
@Override
|
||||||
public void onCreatePreferencesCromite(Bundle savedInstanceState, 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));
|
||||||
@@ -349,6 +361,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));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,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();
|
||||||
@@ -369,6 +384,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);
|
||||||
@@ -246,7 +315,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -401,6 +441,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));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -263,29 +332,44 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
Preference doNotTrackPref = findPreference(PREF_DO_NOT_TRACK);
|
Preference doNotTrackPref = findPreference(PREF_DO_NOT_TRACK);
|
||||||
if (doNotTrackPref != null) {
|
if (doNotTrackPref != null) {
|
||||||
doNotTrackPref.setSummary(
|
doNotTrackPref.setSummary(
|
||||||
|
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
|
||||||
|
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||||
|
@@ -741,7 +741,9 @@ BASE_FEATURE(kLogoViewRefactor, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
|
// Enables an experimental feature which forces mayLaunchUrl to use a different
|
||||||
|
// storage partition. This may reduce performance. This should not be enabled by
|
||||||
|
// default.
|
||||||
|
-BASE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
|
+CROMITE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition,
|
||||||
|
+ "MayLaunchUrlUsesSeparateStoragePartition",
|
||||||
|
+ 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
|
||||||
@@ -719,6 +719,7 @@ public abstract class ChromeFeatureList {
|
@@ -1053,6 +1053,8 @@ public abstract class ChromeFeatureList {
|
||||||
public static final CachedFlag sLogoPolishAnimationKillSwitch =
|
MOST_VISITED_TILES_CUSTOMIZATION,
|
||||||
newCachedFlag(LOGO_POLISH_ANIMATION_KILL_SWITCH, true);
|
/* defaultValue= */ true,
|
||||||
public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true);
|
/* defaultValueInTests= */ true);
|
||||||
+ public static final CachedFlag sMayLaunchurlUsesSeparateStoragePartition = newCachedFlag(MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION, false);
|
+ public static final CachedFlag sMayLaunchurlUsesSeparateStoragePartition =
|
||||||
|
+ 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 =
|
||||||
@@ -883,6 +884,7 @@ public abstract class ChromeFeatureList {
|
@@ -1330,6 +1332,7 @@ public abstract class ChromeFeatureList {
|
||||||
sLogoPolishAnimationKillSwitch,
|
sMaliciousApkDownloadCheck,
|
||||||
sNotificationTrampoline,
|
sMostVisitedTilesCustomization,
|
||||||
sMagicStackAndroid,
|
|
||||||
+ sMayLaunchurlUsesSeparateStoragePartition,
|
|
||||||
sMostVisitedTilesReselect,
|
sMostVisitedTilesReselect,
|
||||||
sMultiInstanceApplicationStatusCleanup,
|
+ sMayLaunchurlUsesSeparateStoragePartition,
|
||||||
sNavBarColorAnimation,
|
sMoveToFrontInLaunchIntentDispatcher,
|
||||||
|
sMultiInstanceSharedPrefsMigration,
|
||||||
|
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
|
||||||
@@ -87,7 +87,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;
|
||||||
@@ -331,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
|
||||||
@@ -176,6 +176,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.";
|
||||||
@@ -342,13 +426,13 @@ diff --git a/components/content_relationship_verification/android/java/src/org/c
|
|||||||
+ }
|
+ }
|
||||||
|
|
||||||
String scheme = origin.uri().getScheme();
|
String scheme = origin.uri().getScheme();
|
||||||
String host = origin.uri().getHost();
|
String host = assumeNonNull(origin.uri().getHost());
|
||||||
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
|
||||||
@@ -357,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,69 +6,58 @@ 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
|
||||||
@@ -163,6 +163,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 -->
|
||||||
@@ -192,6 +195,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
|
||||||
@@ -292,6 +292,8 @@ import java.util.Set;
|
@@ -401,6 +401,8 @@ import java.util.Set;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.function.DoubleConsumer;
|
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.
|
||||||
@@ -3000,6 +3002,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn
|
@@ -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");
|
||||||
+ } else if (id == R.id.exit_id) {
|
+ } else if (id == R.id.exit_id) {
|
||||||
+ ApplicationLifetime.terminate(false);
|
+ ApplicationLifetime.terminate(false);
|
||||||
} else if (id == R.id.close_all_tabs_menu_id) {
|
} else if (id == R.id.close_all_tabs_menu_id) {
|
||||||
// Close both incognito and normal tabs.
|
boolean allowUndo = TabClosureParamsUtils.shouldAllowUndo(triggeringMotion);
|
||||||
Runnable closeAllTabsRunnable =
|
|
||||||
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
|
||||||
@@ -61,6 +61,7 @@ import org.chromium.chrome.R;
|
@@ -69,6 +69,7 @@ import org.chromium.base.supplier.SettableNullableObservableSupplier;
|
||||||
|
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;
|
||||||
import org.chromium.chrome.browser.AppHooks;
|
|
||||||
+import org.chromium.chrome.browser.lifetime.ApplicationLifetime;
|
+import org.chromium.chrome.browser.lifetime.ApplicationLifetime;
|
||||||
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;
|
||||||
@@ -2374,6 +2375,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
|
||||||
@@ -4388,6 +4388,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"
|
||||||
@@ -535,6 +536,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
|
||||||
@@ -490,6 +490,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
|
||||||
@@ -14,6 +14,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
|
||||||
@@ -92,7 +65,7 @@ new file mode 100644
|
|||||||
diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc
|
diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc
|
||||||
--- a/net/socket/client_socket_pool_manager.cc
|
--- a/net/socket/client_socket_pool_manager.cc
|
||||||
+++ b/net/socket/client_socket_pool_manager.cc
|
+++ b/net/socket/client_socket_pool_manager.cc
|
||||||
@@ -26,6 +26,10 @@
|
@@ -22,6 +22,10 @@
|
||||||
#include "net/socket/client_socket_handle.h"
|
#include "net/socket/client_socket_handle.h"
|
||||||
#include "net/socket/client_socket_pool.h"
|
#include "net/socket/client_socket_pool.h"
|
||||||
#include "net/socket/connect_job.h"
|
#include "net/socket/connect_job.h"
|
||||||
@@ -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"
|
||||||
@@ -165,6 +169,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,13 +45,13 @@ 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
|
||||||
@@ -1112,6 +1112,7 @@ component("net") {
|
@@ -1219,6 +1219,7 @@ component("net") {
|
||||||
"//build:chromeos_buildflags",
|
":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
|
||||||
@@ -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"
|
||||||
@@ -1426,6 +1427,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
|
||||||
@@ -87,7 +87,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" />
|
||||||
@@ -45,11 +45,11 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||||||
+ app:needRestart="false" />
|
+ app:needRestart="false" />
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:key="security_section"
|
android:key="security_section"
|
||||||
android:title="@string/security_section_title" />
|
android:title="@string/security_section_title" />
|
||||||
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
|
||||||
@@ -36,6 +36,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;
|
||||||
@@ -133,6 +134,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
|
||||||
@@ -27,7 +27,6 @@ namespace {
|
@@ -32,8 +32,14 @@ BASE_FEATURE(kExternalNavigationDebugLogs, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
const base::Feature* kFeaturesExposedToJava[] = {
|
BASE_FEATURE(kNavigationCaptureRefactorAndroid,
|
||||||
&kExternalNavigationDebugLogs, &kBlockFrameRenavigations,
|
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||||
&kBlockIntentsToSelf, &kTrustedClientGestureBypass};
|
|
||||||
-
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
// Alphabetical:
|
|
||||||
@@ -48,7 +47,13 @@ BASE_FEATURE(kTrustedClientGestureBypass,
|
|
||||||
"TrustedClientGestureBypass",
|
|
||||||
base::FEATURE_ENABLED_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,28 +175,28 @@ 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
|
||||||
@@ -18,6 +18,12 @@ import org.chromium.base.Features;
|
@@ -19,6 +19,12 @@ import org.chromium.build.annotations.NullMarked;
|
||||||
*/
|
|
||||||
@JNINamespace("external_intents")
|
@JNINamespace("external_intents")
|
||||||
public class ExternalIntentsFeatures extends Features {
|
@NullMarked
|
||||||
|
public class ExternalIntentsFeatures {
|
||||||
+ public static final String INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE_NAME =
|
+ public static final String INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE_NAME =
|
||||||
+ "IntentBlockExternalFormRedirectsNoGesture";
|
+ "IntentBlockExternalFormRedirectsNoGesture";
|
||||||
+
|
+
|
||||||
+ public static final ExternalIntentsFeatures INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE =
|
+ public static final ExternalIntentsFeature INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE =
|
||||||
+ new ExternalIntentsFeatures(-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_FRAME_RENAVIGATIONS_NAME = "BlockFrameRenavigations3";
|
public static final String NAVIGATION_CAPTURE_REFACTOR_ANDROID_NAME =
|
||||||
public static final String BLOCK_INTENTS_TO_SELF_NAME = "BlockIntentsToSelf";
|
"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
|
||||||
@@ -1530,6 +1530,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,
|
||||||
@@ -1586,6 +1592,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,9 +104,9 @@ 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
|
||||||
@@ -853,6 +853,10 @@
|
@@ -1242,6 +1242,10 @@
|
||||||
status: {"Android": "stable"},
|
{
|
||||||
base_feature: "none",
|
name: "CompositingDecisionAtAnimationPhaseBoundaries"
|
||||||
},
|
},
|
||||||
+ {
|
+ {
|
||||||
+ name: "Vibration",
|
+ name: "Vibration",
|
||||||
|
|||||||
@@ -7,49 +7,71 @@ 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 | 11 ++++++++++-
|
build/config/compiler/BUILD.gn | 17 ++++++++++++++---
|
||||||
build_overrides/build.gni | 3 +++
|
build_overrides/build.gni | 5 +++++
|
||||||
2 files changed, 13 insertions(+), 1 deletion(-)
|
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
|
||||||
@@ -1980,7 +1980,6 @@ config("default_warnings") {
|
@@ -681,7 +681,7 @@ config("compiler") {
|
||||||
# TODO(crbug.com/40284799): Fix and re-enable.
|
# TODO(crbug.com/376278218): This causes segfault on Linux ARM builds.
|
||||||
"-Wno-thread-safety-reference-return",
|
# It also causes segfault on Linux s390x:
|
||||||
]
|
# https://github.com/llvm/llvm-project/issues/149511
|
||||||
|
- 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" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -1886,7 +1886,7 @@ config("clang_revision") {
|
||||||
|
# e.g. by setting in the the project's .gn file.
|
||||||
|
config("clang_warning_suppression") {
|
||||||
|
# Some build configs use older versions of clang that don't support WSMs
|
||||||
|
- if (use_clang_warning_suppression_file) {
|
||||||
|
+ if (use_clang_warning_suppression_file && !skip_clangd_unsupported_options) {
|
||||||
|
from_build_root =
|
||||||
|
rebase_path(clang_warning_suppression_file, root_build_dir)
|
||||||
|
inputs = [ clang_warning_suppression_file ]
|
||||||
|
@@ -2283,7 +2283,9 @@ config("default_warnings") {
|
||||||
|
# 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",
|
+ }
|
||||||
@@ -2001,6 +2000,16 @@ config("default_warnings") {
|
cflags_cc += [
|
||||||
# TODO(crbug.com/376641662): Fix and re-enable.
|
# TODO(crbug.com/328490295): Fix and re-enable for C flags.
|
||||||
cflags += [ "-Wno-nontrivial-memcall" ]
|
"-Wenum-compare-conditional",
|
||||||
}
|
@@ -2337,6 +2339,15 @@ config("default_warnings") {
|
||||||
+ if (skip_clangd_unsupported_options) {
|
ldflags += [ "-Wno-version-check" ]
|
||||||
+ cflags -= [
|
|
||||||
+ "-Wno-thread-safety-reference-return",
|
|
||||||
+ ]
|
|
||||||
+ cflags_cc -= [
|
|
||||||
+ "-Wno-c++11-narrowing-const-reference",
|
|
||||||
+ "-Wno-missing-template-arg-list-after-template-kw",
|
|
||||||
+ "-Wno-dangling-assignment-gsl",
|
|
||||||
+ ]
|
|
||||||
+ }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Some builders, such as Cronet, use a different version of Clang than
|
+ if (skip_clangd_unsupported_options) {
|
||||||
|
+ cflags -= [
|
||||||
|
+ "-Wno-thread-safety-reference-return",
|
||||||
|
+ "-Wno-nontrivial-memcall",
|
||||||
|
+ ]
|
||||||
|
+ cflags_cc -= [
|
||||||
|
+ ]
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
# Disable the GNU line marker warning when building a target with Icecc,
|
||||||
|
# ccache, or both. This warning appears frequently when compiling
|
||||||
|
# files that use GNU-style line markers with Clang and Icecc. It can
|
||||||
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
|
||||||
@@ -54,6 +54,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
File diff suppressed because it is too large
Load Diff
@@ -4,45 +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 | 18 ++++++++++++++++++
|
.../CustomTabAppMenuPropertiesDelegate.java | 3 +++
|
||||||
.../CustomTabAppMenuPropertiesDelegate.java | 1 +
|
.../TabbedAppMenuPropertiesDelegate.java | 3 +++
|
||||||
.../android/strings/android_chrome_strings.grd | 4 ++++
|
.../strings/android_chrome_strings.grd | 4 ++++
|
||||||
7 files changed, 36 insertions(+)
|
7 files changed, 42 insertions(+)
|
||||||
|
|
||||||
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
|
||||||
@@ -58,6 +58,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
|
|
||||||
@@ -116,6 +116,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
|
||||||
@@ -3065,6 +3065,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn
|
@@ -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");
|
||||||
@@ -50,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
|
||||||
@@ -2518,6 +2518,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) {
|
||||||
@@ -69,16 +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
|
||||||
@@ -580,6 +580,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
@@ -1076,6 +1076,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
|
||||||
isNativePage, isFileScheme, isContentScheme, isIncognito, url));
|
return false;
|
||||||
|
|
||||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isNativePage);
|
|
||||||
+ updateViewSourceMenuItem(menu, currentTab);
|
|
||||||
|
|
||||||
updateAutoDarkMenuItem(menu, currentTab, isNativePage);
|
|
||||||
|
|
||||||
@@ -1281,6 +1282,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
|
||||||
findInPageMenuRow.setVisible(itemVisible);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
+ /**
|
+ /**
|
||||||
@@ -87,36 +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
|
||||||
@@ -303,6 +303,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
@@ -412,6 +412,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||||
|
modelList.add(buildOpenInAppItem());
|
||||||
updateRequestDesktopSiteMenuItem(
|
|
||||||
menu, currentTab, requestDesktopSiteVisible, isNativePage);
|
|
||||||
+ updateViewSourceMenuItem(menu, currentTab);
|
|
||||||
prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
+ // 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
|
||||||
|
--- 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
|
||||||
|
@@ -438,6 +438,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
|
||||||
|
modelList.add(buildOpenInAppItem());
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Add view source item
|
||||||
|
+ buildAddViewSourceItem(modelList, currentTab);
|
||||||
|
+
|
||||||
|
// RDS
|
||||||
|
MVCListAdapter.ListItem rdsListItem =
|
||||||
|
maybeBuildRequestDesktopSiteListItem(
|
||||||
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
|
||||||
@@ -315,6 +315,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]">
|
||||||
|
|||||||
@@ -7,20 +7,20 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
.../tab_management/TabGridViewBinder.java | 8 +++-
|
.../tab_management/TabGridViewBinder.java | 8 +++-
|
||||||
.../tasks/tab_management/TabProperties.java | 5 +++
|
.../tasks/tab_management/TabProperties.java | 5 +++
|
||||||
.../java/res/xml/privacy_preferences.xml | 5 +++
|
.../java/res/xml/privacy_preferences.xml | 5 +++
|
||||||
.../chrome/browser/app/ChromeActivity.java | 3 +-
|
.../chrome/browser/app/ChromeActivity.java | 4 +-
|
||||||
.../privacy/settings/PrivacySettings.java | 44 ++++++++++++++++++-
|
.../privacy/settings/PrivacySettings.java | 44 ++++++++++++++++++-
|
||||||
.../strings/android_chrome_strings.grd | 8 ++++
|
.../strings/android_chrome_strings.grd | 8 ++++
|
||||||
6 files changed, 70 insertions(+), 3 deletions(-)
|
6 files changed, 71 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
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
|
||||||
@@ -408,7 +408,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) {
|
||||||
@@ -449,6 +454,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
|
||||||
@@ -72,6 +72,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<>();
|
||||||
@@ -155,6 +158,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,
|
||||||
SHOPPING_PERSISTED_TAB_DATA_FETCHER,
|
|
||||||
SHOULD_SHOW_PRICE_DROP_TOOLTIP,
|
|
||||||
QUICK_DELETE_ANIMATION_STATUS,
|
QUICK_DELETE_ANIMATION_STATUS,
|
||||||
@@ -173,6 +177,7 @@ public class TabProperties {
|
TAB_GROUP_COLOR_VIEW_PROVIDER,
|
||||||
|
TAB_GROUP_CARD_COLOR,
|
||||||
|
@@ -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
|
||||||
@@ -78,6 +78,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,35 +84,36 @@ 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
|
||||||
@@ -140,6 +140,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
@@ -161,6 +161,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||||
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.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;
|
||||||
@@ -615,7 +616,7 @@ 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(),
|
||||||
- !SysUtils.isLowEndDevice(),
|
- /* snapshotsEnabled= */ true,
|
||||||
+ !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false),
|
+ !TabUiFeatureUtilities.shouldUseListMode()
|
||||||
|
+ && !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false),
|
||||||
tabModelSelector != null ? tabModelSelector::getTabById : null,
|
tabModelSelector != null ? tabModelSelector::getTabById : null,
|
||||||
TabWindowManagerSingleton.getInstance()));
|
TabWindowManagerSingleton.getInstance()));
|
||||||
|
|
||||||
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
|
||||||
@@ -21,6 +21,7 @@ import androidx.preference.Preference;
|
@@ -31,6 +31,7 @@ import org.chromium.base.ContextUtils;
|
||||||
|
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.base.ContextUtils;
|
import org.chromium.base.supplier.SettableMonotonicObservableSupplier;
|
||||||
@@ -79,12 +80,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;
|
||||||
|
|
||||||
@@ -125,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 {
|
||||||
@@ -140,10 +142,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||||
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";
|
||||||
@@ -175,6 +190,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
|
||||||
@@ -154,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);
|
||||||
@@ -162,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(
|
||||||
@@ -405,6 +435,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";
|
||||||
@@ -170,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) {
|
||||||
@@ -451,6 +482,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();
|
||||||
@@ -184,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -517,6 +555,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -573,6 +611,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
: R.string.text_off);
|
: R.string.text_off);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -198,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
|
||||||
@@ -6014,6 +6014,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,43 +6,43 @@ 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 ++++++++
|
||||||
.../init/ChromeBrowserInitializer.java | 2 ++
|
.../init/ChromeBrowserInitializer.java | 2 ++
|
||||||
.../tabbed_mode/TabbedRootUiCoordinator.java | 4 +++-
|
.../tabbed_mode/TabbedRootUiCoordinator.java | 4 +++-
|
||||||
.../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 ++++++++++++++
|
||||||
33 files changed, 163 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"
|
||||||
@@ -66,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
|
||||||
@@ -125,9 +125,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
|
||||||
@@ -57,6 +57,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;
|
||||||
@@ -128,6 +129,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);
|
||||||
|
|
||||||
@@ -118,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
|
||||||
@@ -63,6 +63,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;
|
||||||
@@ -473,7 +474,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
|
||||||
@@ -62,6 +62,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
@@ -67,6 +67,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,79 +165,82 @@ 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
|
||||||
@@ -757,7 +757,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
|
||||||
@@ -112,6 +112,7 @@ import org.chromium.components.tab_group_sync.SavedTabGroup;
|
@@ -138,6 +138,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService;
|
||||||
import org.chromium.components.tab_group_sync.TabGroupSyncService;
|
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.MotionEventUtils;
|
import org.chromium.ui.accessibility.AccessibilityState;
|
||||||
+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.WindowAndroid;
|
import org.chromium.ui.base.WindowAndroid;
|
||||||
import org.chromium.ui.modaldialog.ModalDialogManager;
|
import org.chromium.ui.util.ColorUtils;
|
||||||
@@ -3999,8 +4000,13 @@ public class StripLayoutHelper
|
|
||||||
mTabMenu.setAnchorView(tabView);
|
|
||||||
// 3. Set the vertical offset to align the tab 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);
|
|
||||||
mTabMenu.setVerticalOffset(verticalOffset);
|
|
||||||
|
|
||||||
// 4. Set the horizontal offset to align the tab menu with the right side of the tab
|
|
||||||
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
|
||||||
@@ -91,6 +91,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;
|
||||||
@@ -438,7 +439,10 @@ public class StripLayoutHelperManager
|
@@ -584,7 +585,10 @@ public class StripLayoutHelperManager
|
||||||
|
mIsHeaderCustomizationSupported =
|
||||||
mIsLayoutOptimizationsEnabled =
|
ToolbarFeatures.isAppHeaderCustomizationSupported(
|
||||||
ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(true);
|
/* 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 =
|
||||||
+ (DeviceFormFactor.isForceTabletUI()
|
+ (DeviceFormFactor.isForceTabletUI()
|
||||||
+ ? 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
|
||||||
|
--- 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
|
||||||
|
@@ -124,6 +124,14 @@ public class TabStripSceneLayer extends SceneOverlayLayer {
|
||||||
|
if (mNativePtr == 0) return;
|
||||||
|
final boolean visible = yOffset > -layoutHelper.getHeight();
|
||||||
|
|
||||||
|
+ if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(ContextUtils.getApplicationContext())) {
|
||||||
|
+ TintedCompositorButton newTabButton = layoutHelper.getNewTabButton();
|
||||||
|
+ if (newTabButton.isVisible()) {
|
||||||
|
+ rightPaddingDp += newTabButton.getWidth() + layoutHelper.getNewTabBtnVisualOffset()
|
||||||
|
+ + StripLayoutGroupTitle.REORDER_BACKGROUND_PADDING_END;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// This will hide the tab strips if necessary.
|
||||||
|
TabStripSceneLayerJni.get()
|
||||||
|
.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;
|
||||||
@@ -252,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
|
||||||
@@ -602,7 +602,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
@@ -934,7 +934,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getControlContainerHeightResource() {
|
public int getControlContainerHeightResource() {
|
||||||
@@ -266,18 +265,18 @@ 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
|
||||||
@@ -105,6 +105,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;
|
||||||
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||||
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||||
import org.chromium.chrome.browser.price_insights.PriceInsightsButtonController;
|
import org.chromium.chrome.browser.profiles.Profile;
|
||||||
import org.chromium.chrome.browser.price_tracking.CurrentTabPriceTrackingStateSupplier;
|
import org.chromium.chrome.browser.quick_delete.QuickDeleteController;
|
||||||
import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController;
|
import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl;
|
||||||
@@ -1788,7 +1790,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) &&
|
||||||
@@ -285,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",
|
||||||
@@ -300,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
|
||||||
@@ -274,6 +274,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";
|
||||||
@@ -311,16 +310,16 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
|||||||
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromeSharedPreferences.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromeSharedPreferences.java
|
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromeSharedPreferences.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromeSharedPreferences.java
|
||||||
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromeSharedPreferences.java
|
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromeSharedPreferences.java
|
||||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromeSharedPreferences.java
|
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromeSharedPreferences.java
|
||||||
@@ -12,6 +12,8 @@ import org.chromium.base.shared_preferences.SharedPreferencesManager;
|
@@ -14,6 +14,8 @@ import org.chromium.build.annotations.NullMarked;
|
||||||
import org.chromium.build.BuildConfig;
|
import org.chromium.build.annotations.Nullable;
|
||||||
import org.chromium.build.annotations.AssumeNonNull;
|
import org.chromium.build.annotations.OptimizeAsNonNull;
|
||||||
|
|
||||||
+import org.chromium.ui.base.DeviceFormFactor;
|
+import org.chromium.ui.base.DeviceFormFactor;
|
||||||
+
|
+
|
||||||
@JNINamespace("android::shared_preferences")
|
@JNINamespace("android::shared_preferences")
|
||||||
|
@NullMarked
|
||||||
public class ChromeSharedPreferences {
|
public class ChromeSharedPreferences {
|
||||||
public static final PreferenceKeyRegistry REGISTRY =
|
@@ -26,6 +28,16 @@ public class ChromeSharedPreferences {
|
||||||
@@ -23,6 +25,16 @@ public class ChromeSharedPreferences {
|
|
||||||
LegacyChromePreferenceKeys.getPrefixesInUse())
|
LegacyChromePreferenceKeys.getPrefixesInUse())
|
||||||
: null);
|
: null);
|
||||||
|
|
||||||
@@ -340,7 +339,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
|||||||
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||||
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||||
@@ -55,6 +55,7 @@ public class LegacyChromePreferenceKeys {
|
@@ -56,6 +56,7 @@ public class LegacyChromePreferenceKeys {
|
||||||
ChromePreferenceKeys.FIRST_RUN_FLOW_COMPLETE,
|
ChromePreferenceKeys.FIRST_RUN_FLOW_COMPLETE,
|
||||||
ChromePreferenceKeys.FIRST_RUN_FLOW_SIGNIN_SETUP,
|
ChromePreferenceKeys.FIRST_RUN_FLOW_SIGNIN_SETUP,
|
||||||
ChromePreferenceKeys.FIRST_RUN_LIGHTWEIGHT_FLOW_COMPLETE,
|
ChromePreferenceKeys.FIRST_RUN_LIGHTWEIGHT_FLOW_COMPLETE,
|
||||||
@@ -348,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
|
||||||
@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils.Windowing
|
@@ -20,6 +20,7 @@ import org.chromium.build.annotations.Nullable;
|
||||||
import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState;
|
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.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;
|
|
||||||
@@ -259,6 +260,7 @@ public class AppHeaderCoordinator
|
@@ -169,6 +170,7 @@ public class AppHeaderUtils {
|
||||||
private static @DesktopWindowHeuristicResult int checkIsInDesktopWindow(
|
*/
|
||||||
InsetsRectProvider insetsRectProvider,
|
static @DesktopWindowHeuristicResult int checkIsInDesktopWindow(
|
||||||
@DesktopWindowHeuristicResult int currentResult) {
|
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
|
||||||
@@ -814,7 +814,7 @@ public class LocationBarCoordinator
|
@@ -1050,7 +1050,7 @@ public class LocationBarCoordinator
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isTabletWindow() {
|
private boolean isTabletWindow() {
|
||||||
@@ -382,8 +381,8 @@ 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
|
||||||
@@ -1710,6 +1710,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
|
||||||
Hide your IP address
|
Privacy guide explanation closed
|
||||||
</message>
|
</message>
|
||||||
|
|
||||||
+ <message name="IDS_FORCE_TABLET_UI_SUMMARY" desc="Summary of the preference that allows the user to force chromium to use tablet UI.">
|
+ <message name="IDS_FORCE_TABLET_UI_SUMMARY" desc="Summary of the preference that allows the user to force chromium to use tablet UI.">
|
||||||
@@ -403,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"
|
||||||
@@ -438,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
|
||||||
@@ -464,7 +461,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml b/chro
|
|||||||
--- a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml
|
--- a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml
|
||||||
+++ b/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml
|
+++ b/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml
|
||||||
@@ -10,8 +10,10 @@ found in the LICENSE file.
|
@@ -10,8 +10,10 @@ found in the LICENSE file.
|
||||||
<dimen name="toolbar_tab_count_text_size_2_digit">10dp</dimen>
|
<dimen name="toolbar_tab_count_text_size_2_digit">9dp</dimen>
|
||||||
|
|
||||||
<!-- Tab Strip Dimensions -->
|
<!-- Tab Strip Dimensions -->
|
||||||
- <dimen name="tab_strip_height">0dp</dimen>
|
- <dimen name="tab_strip_height">0dp</dimen>
|
||||||
@@ -475,72 +472,45 @@ 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
|
|
||||||
@@ -23,7 +23,7 @@ public interface ControlContainer {
|
|
||||||
* Initialize the control container with the specified toolbar.
|
|
||||||
* @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
|
||||||
@@ -5,6 +5,7 @@
|
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.toolbar.top;
|
||||||
package org.chromium.chrome.browser.toolbar.top;
|
import static org.chromium.build.NullUtil.assumeNonNull;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
+import android.content.res.Resources;
|
+import android.content.res.Resources;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
|
import android.graphics.Color;
|
||||||
import android.graphics.PorterDuff;
|
import android.graphics.PorterDuff;
|
||||||
import android.graphics.Rect;
|
@@ -176,6 +177,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout
|
||||||
@@ -143,8 +144,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout
|
@Initializer
|
||||||
}
|
public void initWithToolbar(int toolbarLayoutId, int toolbarLayoutHeightResId) {
|
||||||
|
|
||||||
@Override
|
|
||||||
- public void initWithToolbar(int toolbarLayoutId) {
|
|
||||||
+ 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 =
|
mToolbarContainer = findViewById(R.id.toolbar_container);
|
||||||
(ToolbarViewResourceFrameLayout) findViewById(R.id.toolbar_container);
|
mToolbarLayoutHeight = getResources().getDimensionPixelSize(toolbarLayoutHeightResId);
|
||||||
ViewStub toolbarStub = findViewById(R.id.toolbar_stub);
|
ViewStub toolbarStub = findViewById(R.id.toolbar_stub);
|
||||||
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
|
||||||
@@ -63,6 +63,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils;
|
@@ -67,6 +67,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp;
|
||||||
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.base.DeviceFormFactor;
|
+import org.chromium.ui.base.DeviceFormFactor;
|
||||||
import org.chromium.ui.util.TokenHolder;
|
import org.chromium.ui.util.TokenHolder;
|
||||||
import org.chromium.url.GURL;
|
import org.chromium.url.GURL;
|
||||||
|
|
||||||
@@ -590,7 +591,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);
|
||||||
@@ -551,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
|
||||||
@@ -28,6 +28,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;
|
||||||
|
|
||||||
@@ -544,6 +545,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. */
|
/**
|
||||||
public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHeaderObserver {
|
* Class used to manage tab strip visibility and height updates.
|
||||||
@@ -151,7 +152,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea
|
@@ -171,7 +172,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea
|
||||||
mTabStripReservedTopPadding =
|
mTabStripReservedTopPadding =
|
||||||
controlContainerView()
|
controlContainerView()
|
||||||
.getResources()
|
.getResources()
|
||||||
@@ -593,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"
|
||||||
@@ -608,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
|
||||||
@@ -25,6 +25,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. */
|
||||||
public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
@NullMarked
|
||||||
@@ -39,6 +40,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";
|
||||||
@@ -626,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;
|
||||||
@@ -105,6 +109,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);
|
||||||
@@ -639,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 -> {
|
||||||
@@ -165,6 +175,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);
|
||||||
@@ -647,12 +617,12 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
|||||||
+ mForceTabletUIDelegate.setValue((Boolean) newValue);
|
+ mForceTabletUIDelegate.setValue((Boolean) newValue);
|
||||||
+ mDelegate.requestRestart(getActivity());
|
+ mDelegate.requestRestart(getActivity());
|
||||||
} else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) {
|
} else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) {
|
||||||
mDelegate.getReaderAccessibilityDelegate().setValue((Boolean) newValue);
|
boolean readerModeEnabled = (Boolean) newValue;
|
||||||
} else if (PREF_PAGE_ZOOM_DEFAULT_ZOOM.equals(preference.getKey())) {
|
mDelegate.getReaderAccessibilityDelegate().setValue(readerModeEnabled);
|
||||||
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
|
||||||
@@ -39,6 +39,8 @@ public interface AccessibilitySettingsDelegate {
|
@@ -42,6 +42,8 @@ public interface AccessibilitySettingsDelegate {
|
||||||
*/
|
*/
|
||||||
BrowserContextHandle getBrowserContextHandle();
|
BrowserContextHandle getBrowserContextHandle();
|
||||||
|
|
||||||
@@ -664,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
|
||||||
@@ -69,6 +69,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) {
|
||||||
@@ -679,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
|
||||||
@@ -77,6 +85,7 @@ public class DeviceFormFactor {
|
@@ -95,6 +103,7 @@ public class DeviceFormFactor {
|
||||||
@CalledByNative
|
@CalledByNative
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static boolean isTablet() {
|
public static boolean isTablet() {
|
||||||
@@ -687,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;
|
||||||
}
|
}
|
||||||
@@ -107,6 +116,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) {
|
||||||
@@ -695,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,6 +152,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) {
|
||||||
@@ -703,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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,6 +160,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;
|
||||||
@@ -711,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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -158,6 +170,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) {
|
||||||
@@ -719,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));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -166,6 +179,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
|
||||||
@@ -102,6 +102,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
|
||||||
@@ -44,6 +44,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);
|
||||||
@@ -1652,8 +1653,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn
|
}
|
||||||
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,33 +52,32 @@ 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
|
||||||
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.privacy.settings;
|
@@ -10,6 +10,7 @@ import static org.chromium.ui.R.drawable.gshield_colorful;
|
||||||
import static org.chromium.components.content_settings.PrefNames.COOKIE_CONTROLS_MODE;
|
|
||||||
|
|
||||||
import android.os.Build;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
+import android.content.SharedPreferences;
|
+import android.content.SharedPreferences;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
import android.text.style.ClickableSpan;
|
@@ -25,6 +26,7 @@ import androidx.preference.Preference;
|
||||||
@@ -22,6 +23,8 @@ import org.chromium.base.metrics.RecordHistogram;
|
|
||||||
import org.chromium.base.metrics.RecordUserAction;
|
import org.chromium.base.ApiCompatibilityUtils;
|
||||||
import org.chromium.base.supplier.ObservableSupplier;
|
import org.chromium.base.Callback;
|
||||||
import org.chromium.base.supplier.ObservableSupplierImpl;
|
|
||||||
+import org.chromium.base.ContextUtils;
|
+import org.chromium.base.ContextUtils;
|
||||||
+import org.chromium.base.BuildInfo;
|
import org.chromium.base.IntentUtils;
|
||||||
import org.chromium.chrome.R;
|
import org.chromium.base.metrics.RecordHistogram;
|
||||||
import org.chromium.chrome.browser.enterprise.util.ManagedBrowserUtils;
|
import org.chromium.base.metrics.RecordUserAction;
|
||||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
@@ -121,6 +123,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
@@ -94,6 +97,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
|
||||||
private final SharedPreferencesManager mSharedPreferencesManager =
|
private final SharedPreferencesManager mSharedPreferencesManager =
|
||||||
ChromeSharedPreferences.getInstance();
|
ChromeSharedPreferences.getInstance();
|
||||||
|
|
||||||
+ private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
+ private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
||||||
+
|
+
|
||||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||||
@VisibleForTesting static final String PREF_FP_PROTECTION = "fp_protection";
|
@VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies";
|
||||||
@VisibleForTesting static final String PREF_IP_PROTECTION = "ip_protection";
|
private static final String PREF_ADVANCED_PROTECTION_INFO = "advanced_protection_info";
|
||||||
@@ -346,7 +351,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();
|
||||||
@@ -90,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)) {
|
||||||
@@ -422,6 +431,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -478,6 +486,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
getContext(), getProfile()));
|
getContext(), getProfile()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,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
|
||||||
@@ -5539,6 +5539,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
|
||||||
@@ -115,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
|
||||||
@@ -94,6 +94,9 @@ import java.util.Map;
|
@@ -102,6 +102,7 @@ import org.chromium.components.collaboration.messaging.PersistentNotificationTyp
|
||||||
import java.util.Objects;
|
import org.chromium.components.data_sharing.DataSharingService;
|
||||||
import java.util.Optional;
|
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.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,47 +42,47 @@ 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.
|
||||||
@@ -914,9 +917,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
|
||||||
@@ -25,6 +25,7 @@ import org.chromium.chrome.browser.collaboration.CollaborationServiceFactory;
|
@@ -37,6 +37,7 @@ import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory;
|
||||||
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.SharedImageTilesCoordinator;
|
import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesCoordinator;
|
||||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
|
||||||
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
|
||||||
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
|
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
|
||||||
|
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
||||||
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;
|
||||||
@@ -367,10 +368,15 @@ public class TabGroupUiMediator implements BackPressHandler, ThemeColorObserver,
|
import org.chromium.chrome.browser.profiles.Profile;
|
||||||
assert relatedTabs.size() > 0;
|
@@ -426,10 +427,15 @@ public class TabGroupUiMediator implements BackPressHandler {
|
||||||
|
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
|
||||||
@@ -63,6 +63,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,27 +115,26 @@ 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.
|
||||||
@@ -191,9 +194,15 @@ public class TabGroupContextMenuCoordinator extends TabGroupOverflowMenuCoordina
|
@@ -249,9 +252,14 @@ public class TabGroupContextMenuCoordinator extends TabStripReorderingHelper<Tok
|
||||||
/* didCloseCallback= */ null);
|
UrlConstantResolver resolver =
|
||||||
recordUserAction("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);
|
||||||
recordUserAction("NewTabInGroup");
|
RecordUserAction.record("MobileToolbarTabGroupMenu.NewTabInGroup");
|
||||||
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
|
||||||
@@ -237,6 +237,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
|
||||||
@@ -24,6 +24,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
|
||||||
@@ -32,6 +33,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 =
|
||||||
@@ -67,6 +70,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,21 +207,21 @@ 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
|
||||||
@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask;
|
@@ -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.compositor.CompositorViewHolder;
|
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
|
||||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||||
import org.chromium.chrome.browser.new_tab_url.DseNewTabUrlManager;
|
|
||||||
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
||||||
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;
|
||||||
@@ -485,6 +486,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
|
||||||
@@ -287,6 +287,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";
|
||||||
|
|
||||||
@@ -236,7 +243,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
|||||||
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||||
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||||
@@ -59,6 +59,7 @@ public class LegacyChromePreferenceKeys {
|
@@ -60,6 +60,7 @@ public class LegacyChromePreferenceKeys {
|
||||||
ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO,
|
ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO,
|
||||||
ChromePreferenceKeys.HOMEPAGE_ENABLED,
|
ChromePreferenceKeys.HOMEPAGE_ENABLED,
|
||||||
ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI,
|
ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI,
|
||||||
@@ -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
|
||||||
@@ -1528,6 +1528,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,21 +267,21 @@ 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
|
||||||
@@ -91,6 +91,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
@@ -128,6 +128,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||||
registry->RegisterBooleanPref(
|
pref_registration_flags);
|
||||||
prefs::kShowForwardButton, true,
|
registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false,
|
||||||
GetHomeAndForwardButtonAndHomePageIsNewTabPageFlags());
|
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
|
||||||
@@ -1342,6 +1342,10 @@ inline constexpr char kShowHomeButton[] = "browser.show_home_button";
|
@@ -868,6 +868,10 @@ inline constexpr char kSplitViewDragAndDropNudgeUsedCount[] =
|
||||||
// toolbar.
|
// by enterprise policy.
|
||||||
inline constexpr char kShowForwardButton[] = "browser.show_forward_button";
|
inline constexpr char kGeminiSettings[] = "browser.gemini_settings";
|
||||||
|
|
||||||
+// A boolean specifying whether opening a new tab should open the Home page
|
+// A boolean specifying whether opening a new tab should open the Home page
|
||||||
+// instead of the New Tab page.
|
+// instead of the New Tab page.
|
||||||
|
|||||||
@@ -9,15 +9,21 @@ Add DuckDuckGo Lite
|
|||||||
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
|
||||||
---
|
---
|
||||||
.../search_engine_choice/default_favicon.png | Bin 0 -> 903 bytes
|
.../search_engine_choice/default_favicon.png | Bin 0 -> 903 bytes
|
||||||
...search_engine_choice_scaled_resources.grdp | 1 +
|
components/search_engines/BUILD.gn | 3 ++
|
||||||
.../search_engines/prepopulated_engines.json | 31 ++++++++++++++++++
|
components/search_engines/cromite/BUILD.gn | 12 ++++++
|
||||||
.../search_engine_choice_utils.cc | 5 +--
|
.../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++
|
||||||
.../search_engine_countries-inc.cc | 3 ++
|
.../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 | 1 -
|
.../template_url_prepopulate_data.cc | 21 +++++++++-
|
||||||
.../template_url_prepopulate_data.h | 7 ----
|
.../template_url_prepopulate_data.h | 9 -----
|
||||||
8 files changed, 41 insertions(+), 12 deletions(-)
|
tools/json_to_struct/json_to_struct.gni | 9 +++++
|
||||||
|
tools/json_to_struct/json_to_struct.py | 26 ++++++++----
|
||||||
|
tools/json_to_struct/struct_generator.py | 10 +++--
|
||||||
|
tools/variations/fieldtrial_to_struct.py | 4 +-
|
||||||
|
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/cromite_prepopulated_engines.json
|
||||||
|
|
||||||
diff --git a/components/resources/default_100_percent/search_engine_choice/default_favicon.png b/components/resources/default_100_percent/search_engine_choice/default_favicon.png
|
diff --git a/components/resources/default_100_percent/search_engine_choice/default_favicon.png b/components/resources/default_100_percent/search_engine_choice/default_favicon.png
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
@@ -46,69 +52,96 @@ d#;<tA>kFnu^?NN9uE_uZ002ovPDHLkV1m60sc!%P
|
|||||||
literal 0
|
literal 0
|
||||||
HcmV?d00001
|
HcmV?d00001
|
||||||
|
|
||||||
diff --git a/components/resources/search_engine_choice_scaled_resources.grdp b/components/resources/search_engine_choice_scaled_resources.grdp
|
diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn
|
||||||
--- a/components/resources/search_engine_choice_scaled_resources.grdp
|
--- a/components/search_engines/BUILD.gn
|
||||||
+++ b/components/resources/search_engine_choice_scaled_resources.grdp
|
+++ b/components/search_engines/BUILD.gn
|
||||||
@@ -5,6 +5,7 @@
|
@@ -74,6 +74,7 @@ static_library("search_engines") {
|
||||||
<if expr="_google_chrome">
|
"//third_party/metrics_proto",
|
||||||
<structure type="chrome_scaled_image" name="IDR_GOOGLE_COM_PNG" file="google_chrome/google_search_logo.png" />
|
"//third_party/omnibox_proto",
|
||||||
</if>
|
"//third_party/search_engines_data:prepopulated_engines",
|
||||||
+ <structure type="chrome_scaled_image" name="IDR_GOOGLEEN_PNG" file="search_engine_choice/default_favicon.png" />
|
+ "cromite:cromite_prepopulated_engines",
|
||||||
<structure type="chrome_scaled_image" name="IDR_AR_YAHOO_COM_PNG" file="search_engine_choice/yahoo_com.png" />
|
]
|
||||||
<structure type="chrome_scaled_image" name="IDR_AT_YAHOO_COM_PNG" file="search_engine_choice/yahoo_com.png" />
|
|
||||||
<structure type="chrome_scaled_image" name="IDR_AU_YAHOO_COM_PNG" file="search_engine_choice/yahoo_com.png" />
|
|
||||||
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
|
|
||||||
--- a/components/search_engines/prepopulated_engines.json
|
|
||||||
+++ b/components/search_engines/prepopulated_engines.json
|
|
||||||
@@ -130,6 +130,16 @@
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
+ "duckduckgo_light": {
|
deps = [
|
||||||
+ "name": "DuckDuckGo Light",
|
@@ -165,6 +166,7 @@ source_set("search_engine_utils") {
|
||||||
+ "keyword": "duckduckgo.com/lite",
|
"//components/regional_capabilities",
|
||||||
+ "favicon_url": "https://duckduckgo.com/favicon.ico",
|
"//components/regional_capabilities:switches",
|
||||||
+ "search_url": "https://duckduckgo.com/lite/?q={searchTerms}",
|
"//third_party/search_engines_data:prepopulated_engines",
|
||||||
+ "suggest_url": "https://duckduckgo.com/ac/?q={searchTerms}&type=list",
|
+ "cromite:cromite_prepopulated_engines",
|
||||||
+ "type": "SEARCH_ENGINE_DUCKDUCKGOLIGHT",
|
]
|
||||||
+ "id": 12
|
|
||||||
+ },
|
|
||||||
+
|
|
||||||
"ecosia": {
|
|
||||||
"name": "Ecosia",
|
|
||||||
"keyword": "ecosia.org",
|
|
||||||
@@ -205,6 +215,27 @@
|
|
||||||
"id": 111
|
|
||||||
},
|
|
||||||
|
|
||||||
+ "googleen": {
|
deps = [ "//url" ]
|
||||||
+ "name": "Google in English",
|
@@ -264,6 +266,7 @@ source_set("unit_tests") {
|
||||||
+ "keyword": "googleen",
|
"//testing/gtest",
|
||||||
+ "favicon_url": "https://www.google.com/favicon.ico",
|
"//third_party/search_engines_data:prepopulated_engines",
|
||||||
+ "search_url": "{google:baseURL}search?q={searchTerms}&ie={inputEncoding}&hl=en",
|
"//third_party/search_engines_data:regional_settings",
|
||||||
+ "suggest_url": "{google:baseSuggestURL}search?client={google:suggestClient}&q={searchTerms}&hl=en",
|
+ "cromite:cromite_prepopulated_engines",
|
||||||
+ "image_url": "{google:baseURL}searchbyimage/upload?hl=en",
|
"//ui/base",
|
||||||
+ "new_tab_url": "{google:baseURL}_/chrome/newtab?hl=en&ie={inputEncoding}",
|
"//url",
|
||||||
+ "contextual_search_url": "{google:baseURL}_/contextualsearch?{google:contextualSearchVersion}{google:contextualSearchContextData}&hl=en",
|
]
|
||||||
+ "image_url_post_params": "encoded_image={google:imageThumbnail},image_url={google:imageURL},sbisrc={google:imageSearchSource},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight}",
|
diff --git a/components/search_engines/cromite/BUILD.gn b/components/search_engines/cromite/BUILD.gn
|
||||||
+ "alternate_urls": [
|
new file mode 100644
|
||||||
+ "{google:baseURL}?hl=en#q={searchTerms}",
|
--- /dev/null
|
||||||
+ "{google:baseURL}search?hl=en#q={searchTerms}",
|
+++ b/components/search_engines/cromite/BUILD.gn
|
||||||
+ "{google:baseURL}webhp?hl=en#q={searchTerms}",
|
@@ -0,0 +1,12 @@
|
||||||
+ "{google:baseURL}s?hl=en#q={searchTerms}",
|
+import("//tools/json_to_struct/json_to_struct.gni")
|
||||||
+ "{google:baseURL}s?hl=en&q={searchTerms}"
|
|
||||||
+ ],
|
|
||||||
+ "type": "SEARCH_ENGINE_GOOGLE_EN",
|
|
||||||
+ "id": 13
|
|
||||||
+ },
|
|
||||||
+
|
+
|
||||||
"mail_ru": {
|
+json_to_struct("cromite_prepopulated_engines") {
|
||||||
"name": "@MAIL.RU",
|
+ visibility = [ "//components/search_engines:*" ]
|
||||||
"keyword": "mail.ru",
|
+
|
||||||
|
+ source = "cromite_prepopulated_engines.json"
|
||||||
|
+ schema_file = "//third_party/search_engines_data/prepopulated_engines_schema.json"
|
||||||
|
+ namespace = "TemplateURLPrepopulateData"
|
||||||
|
+ excludetype = true
|
||||||
|
+
|
||||||
|
+ deps = [ "//base" ]
|
||||||
|
+}
|
||||||
|
diff --git a/components/search_engines/cromite/cromite_prepopulated_engines.json b/components/search_engines/cromite/cromite_prepopulated_engines.json
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/components/search_engines/cromite/cromite_prepopulated_engines.json
|
||||||
|
@@ -0,0 +1,37 @@
|
||||||
|
+{
|
||||||
|
+ "additionals_includes": {
|
||||||
|
+ "third_party/search_engines_data/resources/definitions/prepopulated_engines.h": ""
|
||||||
|
+ },
|
||||||
|
+ "elements": {
|
||||||
|
+ "duckduckgo_light": {
|
||||||
|
+ "name": "DuckDuckGo Light",
|
||||||
|
+ "keyword": "duckduckgo.com/lite",
|
||||||
|
+ "favicon_url": "https://duckduckgo.com/favicon.ico",
|
||||||
|
+ "search_url": "https://duckduckgo.com/lite/?q={searchTerms}",
|
||||||
|
+ "suggest_url": "https://duckduckgo.com/ac/?q={searchTerms}&type=list",
|
||||||
|
+ "type": "SEARCH_ENGINE_DUCKDUCKGOLIGHT",
|
||||||
|
+ "id": 12
|
||||||
|
+ },
|
||||||
|
+
|
||||||
|
+ "googleen": {
|
||||||
|
+ "name": "Google in English",
|
||||||
|
+ "keyword": "googleen",
|
||||||
|
+ "favicon_url": "https://www.google.com/favicon.ico",
|
||||||
|
+ "search_url": "{google:baseURL}search?q={searchTerms}&ie={inputEncoding}&hl=en",
|
||||||
|
+ "suggest_url": "{google:baseSuggestURL}search?client={google:suggestClient}&q={searchTerms}&hl=en",
|
||||||
|
+ "image_url": "{google:baseURL}searchbyimage/upload?hl=en",
|
||||||
|
+ "new_tab_url": "{google:baseURL}_/chrome/newtab?hl=en&ie={inputEncoding}",
|
||||||
|
+ "contextual_search_url": "{google:baseURL}_/contextualsearch?{google:contextualSearchVersion}{google:contextualSearchContextData}&hl=en",
|
||||||
|
+ "image_url_post_params": "encoded_image={google:imageThumbnail},image_url={google:imageURL},sbisrc={google:imageSearchSource},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight}",
|
||||||
|
+ "alternate_urls": [
|
||||||
|
+ "{google:baseURL}?hl=en#q={searchTerms}",
|
||||||
|
+ "{google:baseURL}search?hl=en#q={searchTerms}",
|
||||||
|
+ "{google:baseURL}webhp?hl=en#q={searchTerms}",
|
||||||
|
+ "{google:baseURL}s?hl=en#q={searchTerms}",
|
||||||
|
+ "{google:baseURL}s?hl=en&q={searchTerms}"
|
||||||
|
+ ],
|
||||||
|
+ "type": "SEARCH_ENGINE_GOOGLE_EN",
|
||||||
|
+ "id": 13
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
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
|
||||||
@@ -186,10 +186,7 @@ void RecordChoiceScreenDefaultSearchProviderType(
|
@@ -211,14 +211,7 @@ void RecordChoiceScreenDefaultSearchProviderType(
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordChoiceScreenSelectedIndex(int selected_engine_index) {
|
void RecordChoiceScreenSelectedIndex(int selected_engine_index) {
|
||||||
@@ -116,41 +149,27 @@ 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
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordChoiceScreenPositionsCountryMismatch(bool has_mismatch) {
|
void RecordChoiceScreenPositionsCountryMismatch(bool has_mismatch) {
|
||||||
diff --git a/components/search_engines/search_engine_countries-inc.cc b/components/search_engines/search_engine_countries-inc.cc
|
|
||||||
--- a/components/search_engines/search_engine_countries-inc.cc
|
|
||||||
+++ b/components/search_engines/search_engine_countries-inc.cc
|
|
||||||
@@ -38,6 +38,7 @@ struct EngineAndTier {
|
|
||||||
|
|
||||||
// Default (for countries with no better engine set)
|
|
||||||
constexpr EngineAndTier engines_default[] = {
|
|
||||||
+ {SearchEngineTier::kTopEngines, &googleen},
|
|
||||||
{SearchEngineTier::kTopEngines, &google},
|
|
||||||
{SearchEngineTier::kTopEngines, &bing},
|
|
||||||
{SearchEngineTier::kTopEngines, &yahoo},
|
|
||||||
@@ -1452,5 +1453,7 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
|
|
||||||
for (size_t i = 0; i < num_engines; i++) {
|
|
||||||
t_url.push_back(engines[i]);
|
|
||||||
}
|
|
||||||
+ t_url.push_back({SearchEngineTier::kTopEngines, &googleen});
|
|
||||||
+ t_url.push_back({SearchEngineTier::kTopEngines, &duckduckgo_light});
|
|
||||||
return t_url;
|
|
||||||
}
|
|
||||||
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
|
||||||
@@ -91,10 +91,15 @@ enum SearchEngineType {
|
@@ -99,11 +99,16 @@ enum SearchEngineType {
|
||||||
SEARCH_ENGINE_YOU = 72,
|
SEARCH_ENGINE_KAGI = 79,
|
||||||
SEARCH_ENGINE_STARTER_PACK_GEMINI = 73,
|
SEARCH_ENGINE_STARTER_PACK_AI_MODE = 80,
|
||||||
SEARCH_ENGINE_LILO = 74,
|
SEARCH_ENGINE_YAHOO_JP = 81,
|
||||||
+ SEARCH_ENGINE_GOOGLE_EN = 75,
|
+ SEARCH_ENGINE_GOOGLE_EN = 82,
|
||||||
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 76,
|
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 83,
|
||||||
|
|
||||||
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
|
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
|
||||||
};
|
};
|
||||||
|
// LINT.ThenChange(//tools/metrics/histograms/enums.xml:OmniboxSearchEngineType)
|
||||||
|
|
||||||
+static_assert(SEARCH_ENGINE_DUCKDUCKGOLIGHT == (SEARCH_ENGINE_MAX - 1),
|
+static_assert(SEARCH_ENGINE_DUCKDUCKGOLIGHT == (SEARCH_ENGINE_MAX - 1),
|
||||||
+ "Please check this patch");
|
+ "Please check this patch");
|
||||||
@@ -161,18 +180,62 @@ 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
|
||||||
@@ -78,7 +78,6 @@ GetPrepopulatedEnginesForEeaRegionCountries(int country_id,
|
@@ -29,6 +29,8 @@
|
||||||
generator.seed(profile_seed);
|
#include "components/search_engines/template_url_data_util.h"
|
||||||
std::shuffle(t_urls.begin(), t_urls.end(), generator);
|
#include "third_party/search_engines_data/resources/definitions/prepopulated_engines.h"
|
||||||
|
|
||||||
- CHECK_LE(t_urls.size(), kMaxEeaPrepopulatedEngines);
|
+#include "components/search_engines/cromite/cromite_prepopulated_engines.h"
|
||||||
return t_urls;
|
+
|
||||||
|
namespace TemplateURLPrepopulateData {
|
||||||
|
|
||||||
|
// Helpers --------------------------------------------------------------------
|
||||||
|
@@ -172,7 +174,7 @@ int GetDataVersion(PrefService* prefs) {
|
||||||
|
return kCurrentDataVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
|
||||||
|
+std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEnginesChromium(
|
||||||
|
PrefService& prefs,
|
||||||
|
const std::vector<const PrepopulatedEngine*>&
|
||||||
|
regional_prepopulated_engines) {
|
||||||
|
@@ -188,6 +190,17 @@ std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
|
||||||
|
&PrepopulatedEngineToTemplateURLData);
|
||||||
|
}
|
||||||
|
|
||||||
|
+std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
|
||||||
|
+ PrefService& prefs,
|
||||||
|
+ const std::vector<const PrepopulatedEngine*>&
|
||||||
|
+ regional_prepopulated_engines) {
|
||||||
|
+ std::vector<std::unique_ptr<TemplateURLData>> t_urls =
|
||||||
|
+ GetPrepopulatedEnginesChromium(prefs, regional_prepopulated_engines);
|
||||||
|
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen));
|
||||||
|
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light));
|
||||||
|
+ return t_urls;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
std::unique_ptr<TemplateURLData> GetPrepopulatedEngine(
|
||||||
|
PrefService& prefs,
|
||||||
|
const std::vector<const PrepopulatedEngine*>& regional_prepopulated_engines,
|
||||||
|
@@ -208,10 +221,14 @@ std::vector<std::unique_ptr<TemplateURLData>> GetLocalPrepopulatedEngines(
|
||||||
|
return std::vector<std::unique_ptr<TemplateURLData>>();
|
||||||
|
}
|
||||||
|
|
||||||
|
- return base::ToVector(regional_capabilities::GetPrepopulatedEngines(
|
||||||
|
+ std::vector<std::unique_ptr<TemplateURLData>> t_urls =
|
||||||
|
+ base::ToVector(regional_capabilities::GetPrepopulatedEngines(
|
||||||
|
country_id, prefs,
|
||||||
|
regional_capabilities::SearchEngineListType::kTopN),
|
||||||
|
&PrepopulatedEngineToTemplateURLData);
|
||||||
|
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen));
|
||||||
|
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light));
|
||||||
|
+ return t_urls;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
diff --git a/components/search_engines/template_url_prepopulate_data.h b/components/search_engines/template_url_prepopulate_data.h
|
diff --git a/components/search_engines/template_url_prepopulate_data.h b/components/search_engines/template_url_prepopulate_data.h
|
||||||
--- a/components/search_engines/template_url_prepopulate_data.h
|
--- a/components/search_engines/template_url_prepopulate_data.h
|
||||||
+++ b/components/search_engines/template_url_prepopulate_data.h
|
+++ b/components/search_engines/template_url_prepopulate_data.h
|
||||||
@@ -32,13 +32,6 @@ struct PrepopulatedEngine;
|
@@ -27,15 +27,6 @@ struct PrepopulatedEngine;
|
||||||
|
|
||||||
extern const int kMaxPrepopulatedEngineID;
|
extern const int kMaxPrepopulatedEngineID;
|
||||||
|
|
||||||
@@ -181,9 +244,179 @@ diff --git a/components/search_engines/template_url_prepopulate_data.h b/compone
|
|||||||
-//
|
-//
|
||||||
-// Note: If this is increased, please also increase the declared variant count
|
-// Note: If this is increased, please also increase the declared variant count
|
||||||
-// for the `Search.ChoiceScreenShowedEngineAt.Index{Index}` histogram.
|
-// for the `Search.ChoiceScreenShowedEngineAt.Index{Index}` histogram.
|
||||||
|
-// TODO(crbug.com/408932087): Investigate moving it to the file that actually
|
||||||
|
-// populates these, `//c/regional_capabilities/r*c*_util.cc`.
|
||||||
-inline constexpr size_t kMaxEeaPrepopulatedEngines = 8;
|
-inline constexpr size_t kMaxEeaPrepopulatedEngines = 8;
|
||||||
-
|
-
|
||||||
// The maximum number of prepopulated search engines that can be returned in
|
// The maximum number of prepopulated search engines that can be returned in
|
||||||
// in the rest of the world by `GetPrepopulatedEngines()`.
|
// in the rest of the world by `GetPrepopulatedEngines()`.
|
||||||
inline constexpr size_t kMaxRowPrepopulatedEngines = 5;
|
// TODO(crbug.com/408932087): Investigate deduping it with the constant
|
||||||
|
diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json_to_struct.gni
|
||||||
|
--- a/tools/json_to_struct/json_to_struct.gni
|
||||||
|
+++ b/tools/json_to_struct/json_to_struct.gni
|
||||||
|
@@ -39,6 +39,11 @@ template("json_to_struct") {
|
||||||
|
action_name = target_name + "_action"
|
||||||
|
source_set_name = target_name
|
||||||
|
|
||||||
|
+ excludetype = false
|
||||||
|
+ if (defined(invoker.excludetype)) {
|
||||||
|
+ excludetype = invoker.excludetype
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
action(action_name) {
|
||||||
|
visibility = [ ":$source_set_name" ]
|
||||||
|
script = "//tools/json_to_struct/json_to_struct.py"
|
||||||
|
@@ -61,6 +66,10 @@ template("json_to_struct") {
|
||||||
|
"--namespace=" + invoker.namespace,
|
||||||
|
"--schema=" + rebase_path(invoker.schema_file, root_build_dir),
|
||||||
|
]
|
||||||
|
+
|
||||||
|
+ if (excludetype) {
|
||||||
|
+ args += [ "--excludetype=yes" ]
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set(source_set_name) {
|
||||||
|
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
|
||||||
|
+++ b/tools/json_to_struct/json_to_struct.py
|
||||||
|
@@ -104,7 +104,7 @@ def _GenerateHeaderGuard(h_filename):
|
||||||
|
return re.sub(u'^_*', '', result) + u'_' # Remove leading underscores.
|
||||||
|
|
||||||
|
|
||||||
|
-def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
||||||
|
+def _GenerateH(basepath, fileroot, head, namespace, schema, description, excludetype):
|
||||||
|
"""Generates the .h file containing the definition of the structure specified
|
||||||
|
by the schema.
|
||||||
|
|
||||||
|
@@ -148,11 +148,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
||||||
|
f.write(u'#include "%s"\n' % header)
|
||||||
|
f.write(u'\n')
|
||||||
|
|
||||||
|
+ for header in description.get(u'additionals_includes', []):
|
||||||
|
+ f.write(u'#include "%s"\n' % header)
|
||||||
|
+ f.write(u'\n')
|
||||||
|
+
|
||||||
|
if namespace:
|
||||||
|
f.write(u'namespace %s {\n' % namespace)
|
||||||
|
f.write(u'\n')
|
||||||
|
|
||||||
|
- f.write(struct_generator.GenerateStruct(
|
||||||
|
+ f.write(struct_generator.GenerateStruct(excludetype,
|
||||||
|
schema['type_name'], schema['schema']))
|
||||||
|
f.write(u'\n')
|
||||||
|
|
||||||
|
@@ -177,7 +181,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
||||||
|
f.write(u'#endif // %s\n' % header_guard)
|
||||||
|
|
||||||
|
|
||||||
|
-def _GenerateCC(basepath, fileroot, head, namespace, schema, description):
|
||||||
|
+def _GenerateCC(basepath, fileroot, head, namespace, schema, description, excludetype):
|
||||||
|
"""Generates the .cc file containing the static initializers for the
|
||||||
|
of the elements specified in the description.
|
||||||
|
|
||||||
|
@@ -212,7 +216,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description):
|
||||||
|
f.write(element_generator.GenerateElements(schema['type_name'],
|
||||||
|
schema['schema'], description))
|
||||||
|
|
||||||
|
- if not aggregation.export_items:
|
||||||
|
+ if excludetype == False and not aggregation.export_items:
|
||||||
|
f.write('\n} // anonymous namespace \n\n')
|
||||||
|
|
||||||
|
aggregated = GenerateCCAggregation(schema['type_name'], aggregation)
|
||||||
|
@@ -299,7 +303,7 @@ def GenerateClass(basepath,
|
||||||
|
|
||||||
|
|
||||||
|
def GenerateStruct(basepath, output_root, namespace, schema, description,
|
||||||
|
- description_filename, schema_filename, year=None):
|
||||||
|
+ description_filename, schema_filename, excludetype, year):
|
||||||
|
"""Generates a C++ struct from a JSON description.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
@@ -318,8 +322,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description,
|
||||||
|
"""
|
||||||
|
year = int(year) if year else datetime.now().year
|
||||||
|
head = HEAD % (year, schema_filename, description_filename)
|
||||||
|
- _GenerateH(basepath, output_root, head, namespace, schema, description)
|
||||||
|
- _GenerateCC(basepath, output_root, head, namespace, schema, description)
|
||||||
|
+ _GenerateH(basepath, output_root, head, namespace, schema, description, excludetype)
|
||||||
|
+ _GenerateCC(basepath, output_root, head, namespace, schema, description, excludetype)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
parser = optparse.OptionParser(
|
||||||
|
@@ -334,11 +338,17 @@ if __name__ == '__main__':
|
||||||
|
parser.add_option('-s', '--schema', help='path to the schema file, '
|
||||||
|
'mandatory.')
|
||||||
|
parser.add_option('-o', '--output', help='output filename, ')
|
||||||
|
+ parser.add_option('-x', '--excludetype', help='exclude type generator, ')
|
||||||
|
(opts, args) = parser.parse_args()
|
||||||
|
|
||||||
|
if not opts.schema:
|
||||||
|
parser.error('You must specify a --schema.')
|
||||||
|
|
||||||
|
+ if not opts.excludetype:
|
||||||
|
+ opts.excludetype = False
|
||||||
|
+ else:
|
||||||
|
+ opts.excludetype = True
|
||||||
|
+
|
||||||
|
description_filename = os.path.normpath(args[0])
|
||||||
|
root, ext = os.path.splitext(description_filename)
|
||||||
|
shortroot = opts.output if opts.output else os.path.split(root)[1]
|
||||||
|
@@ -355,4 +365,4 @@ if __name__ == '__main__':
|
||||||
|
schema = _Load(opts.schema)
|
||||||
|
description = _Load(description_filename)
|
||||||
|
GenerateStruct(basepath, output_root, opts.namespace, schema, description,
|
||||||
|
- description_filename, opts.schema)
|
||||||
|
+ description_filename, opts.schema, opts.excludetype, datetime.now().year)
|
||||||
|
diff --git a/tools/json_to_struct/struct_generator.py b/tools/json_to_struct/struct_generator.py
|
||||||
|
--- a/tools/json_to_struct/struct_generator.py
|
||||||
|
+++ b/tools/json_to_struct/struct_generator.py
|
||||||
|
@@ -30,20 +30,24 @@ def GenerateField(field_info):
|
||||||
|
else:
|
||||||
|
raise RuntimeError('Unknown field type "%s"' % type)
|
||||||
|
|
||||||
|
-def GenerateStruct(type_name, schema):
|
||||||
|
+def GenerateStruct(excludetype, type_name, schema):
|
||||||
|
"""Generate a string defining a structure containing the fields specified in
|
||||||
|
the schema list.
|
||||||
|
"""
|
||||||
|
lines = []
|
||||||
|
+ if excludetype:
|
||||||
|
+ lines.append('struct %s;' % type_name)
|
||||||
|
+ return '\n'.join(lines) + '\n'
|
||||||
|
+
|
||||||
|
lines.append('struct %s {' % type_name)
|
||||||
|
for field_info in schema:
|
||||||
|
if field_info['type'] == 'struct':
|
||||||
|
- lines.insert(0, GenerateStruct(field_info['type_name'],
|
||||||
|
+ lines.insert(0, GenerateStruct(excludetype, field_info['type_name'],
|
||||||
|
field_info['fields']))
|
||||||
|
elif (field_info['type'] == 'array'
|
||||||
|
and field_info['contents']['type'] == 'struct'):
|
||||||
|
contents = field_info['contents']
|
||||||
|
- lines.insert(0, GenerateStruct(contents['type_name'],
|
||||||
|
+ lines.insert(0, GenerateStruct(excludetype, contents['type_name'],
|
||||||
|
contents['fields']))
|
||||||
|
lines.append(' ' + GenerateField(field_info) + ';')
|
||||||
|
lines.append('};')
|
||||||
|
diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py
|
||||||
|
--- a/tools/variations/fieldtrial_to_struct.py
|
||||||
|
+++ b/tools/variations/fieldtrial_to_struct.py
|
||||||
|
@@ -210,14 +210,14 @@ def main(arguments):
|
||||||
|
json_to_struct.GenerateStruct(
|
||||||
|
basepath, output_root, opts.namespace, schema, description,
|
||||||
|
os.path.split(description_filename)[1], os.path.split(opts.schema)[1],
|
||||||
|
- opts.year)
|
||||||
|
+ False, opts.year)
|
||||||
|
|
||||||
|
# TODO(peilinwang) filter the schema by platform, form_factor, etc.
|
||||||
|
if opts.java:
|
||||||
|
json_to_struct.GenerateClass(basepath, output_root, opts.namespace, schema,
|
||||||
|
description,
|
||||||
|
os.path.split(description_filename)[1],
|
||||||
|
- os.path.split(opts.schema)[1], opts.year)
|
||||||
|
+ os.path.split(opts.schema)[1], False, opts.year)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
--
|
--
|
||||||
|
|||||||
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
|
||||||
@@ -40,8 +41,8 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/contextmenu/A
|
|||||||
+++ b/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java
|
+++ b/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java
|
||||||
@@ -11,6 +11,7 @@ import android.net.Uri;
|
@@ -11,6 +11,7 @@ import android.net.Uri;
|
||||||
import org.chromium.base.IntentUtils;
|
import org.chromium.base.IntentUtils;
|
||||||
|
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;
|
||||||
@@ -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
|
||||||
@@ -88,6 +88,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
|
||||||
@@ -162,6 +162,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
@@ -167,6 +167,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||||
mSnackbarManagerSupplier.get().showSnackbar(mSnackbar);
|
mSnackbarManagerSupplier.get().showSnackbar(mSnackbar);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,59 +99,59 @@ 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
|
||||||
@@ -111,8 +111,9 @@ class ChromeContextMenuItem {
|
@@ -135,8 +135,9 @@ class ChromeContextMenuItem {
|
||||||
int SHARE_HIGHLIGHT = 32;
|
// Developer Group
|
||||||
int REMOVE_HIGHLIGHT = 33;
|
int VIEW_PAGE_SOURCE = 41;
|
||||||
int LEARN_MORE = 34;
|
int INSPECT_ELEMENT = 42;
|
||||||
+ int FOLLOW_LINK = 35;
|
+ int FOLLOW_LINK = 43;
|
||||||
// ALWAYS UPDATE!
|
// ALWAYS UPDATE!
|
||||||
- int NUM_ENTRIES = 35;
|
- int NUM_ENTRIES = 43;
|
||||||
+ int NUM_ENTRIES = 36;
|
+ 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. */
|
||||||
@@ -152,6 +153,7 @@ class ChromeContextMenuItem {
|
@@ -184,6 +185,7 @@ class ChromeContextMenuItem {
|
||||||
R.id.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
|
R.id.contextmenu_print_page, // Item.PRINT_PAGE
|
||||||
R.id.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
|
R.id.contextmenu_view_page_source, // Item.VIEW_PAGE_SOURCE
|
||||||
R.id.contextmenu_learn_more, // Item.LEARN_MORE
|
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. */
|
||||||
@@ -191,6 +193,7 @@ class ChromeContextMenuItem {
|
@@ -231,6 +233,7 @@ class ChromeContextMenuItem {
|
||||||
R.string.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
|
R.string.contextmenu_print_page, // Item.PRINT_PAGE
|
||||||
R.string.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
|
R.string.contextmenu_view_page_source, // Item.VIEW_PAGE_SOURCE
|
||||||
R.string.contextmenu_learn_more, // Item.LEARN_MORE
|
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
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
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
|
||||||
@@ -337,6 +337,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())) {
|
||||||
@@ -725,6 +728,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
|
||||||
@@ -301,6 +301,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
|
||||||
@@ -340,6 +340,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
@@ -463,6 +463,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||||
&kTabDragDropAndroid,
|
&kTabClosureMethodRefactor,
|
||||||
&kToolbarPhoneCleanup,
|
&kTabModelInitFixes,
|
||||||
&kTabGroupCreationDialogAndroid,
|
&kTabStorageSqlitePrototype,
|
||||||
+ &blink::features::kShowAlwaysContextMenuOnLinks,
|
+ &blink::features::kShowAlwaysContextMenuOnLinks,
|
||||||
&kTabResumptionModuleAndroid,
|
&kTabStripAutoSelectOnCloseChange,
|
||||||
&kTabStateFlatBuffer,
|
&kTabStripCloseRefactorAndroid,
|
||||||
&kTabStripGroupCollapseAndroid,
|
&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
|
||||||
@@ -407,6 +407,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 NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant";
|
public static final String NEW_TAB_PAGE_CUSTOMIZATION_THEME_SYNC =
|
||||||
public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET =
|
"NewTabPageCustomizationThemeSync";
|
||||||
"NotificationPermissionBottomSheet";
|
public static final String NEW_TAB_PAGE_CUSTOMIZATION_V2 = "NewTabPageCustomizationV2";
|
||||||
@@ -761,6 +763,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, false);
|
newCachedFlag(PERSIST_ACROSS_REBOOTS, true);
|
||||||
@@ -941,6 +945,7 @@ public abstract class ChromeFeatureList {
|
@@ -1399,6 +1403,7 @@ public abstract class ChromeFeatureList {
|
||||||
sTabWindowManagerReportIndicesMismatch,
|
sTopControlsRefactorV2,
|
||||||
sTraceBinderIpc,
|
sTouchToSearchCallout,
|
||||||
sUseChimeAndroidSdk,
|
sUnparcelIntentFileDescriptors,
|
||||||
+ sShowAlwaysContextMenuOnLinks,
|
+ sShowAlwaysContextMenuOnLinks,
|
||||||
sUseLibunwindstackNativeUnwinderAndroid,
|
sUseActivityManagerForTabActivation,
|
||||||
sWebApkMinShellApkVersion);
|
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
|
||||||
@@ -1775,6 +1775,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]">
|
||||||
@@ -3314,6 +3320,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
|
||||||
@@ -48,6 +48,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;
|
||||||
@@ -136,6 +139,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,10 +273,10 @@ 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 -> {
|
||||||
@@ -213,6 +222,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
@@ -323,6 +332,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||||
mDelegate.requestRestart(getActivity());
|
|
||||||
} 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());
|
||||||
+ } else if (PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS.equals(preference.getKey())) {
|
+ } else if (PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS.equals(preference.getKey())) {
|
||||||
+ mShowAlwaysContextMenuOnLinksDelegate.setValue((Boolean) newValue);
|
+ mShowAlwaysContextMenuOnLinksDelegate.setValue((Boolean) newValue);
|
||||||
+ mDelegate.requestRestart(getActivity());
|
+ mDelegate.requestRestart(getActivity());
|
||||||
@@ -285,7 +286,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
|
||||||
@@ -42,6 +42,8 @@ public interface AccessibilitySettingsDelegate {
|
@@ -45,6 +45,8 @@ public interface AccessibilitySettingsDelegate {
|
||||||
BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate();
|
BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate();
|
||||||
BooleanPreferenceDelegate getDisableToolbarSwipeUpDelegate();
|
BooleanPreferenceDelegate getDisableToolbarSwipeUpDelegate();
|
||||||
|
|
||||||
@@ -297,16 +298,16 @@ 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
|
||||||
@@ -9,6 +9,7 @@ import android.net.Uri;
|
@@ -11,6 +11,7 @@ import androidx.annotation.IntDef;
|
||||||
import androidx.annotation.IntDef;
|
|
||||||
|
|
||||||
|
import org.chromium.build.annotations.NullMarked;
|
||||||
import org.chromium.content_public.browser.WebContents;
|
import org.chromium.content_public.browser.WebContents;
|
||||||
+import org.chromium.content_public.common.Referrer;
|
+import org.chromium.content_public.common.Referrer;
|
||||||
import org.chromium.url.GURL;
|
import org.chromium.url.GURL;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@@ -148,6 +149,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
|
||||||
@@ -62,6 +62,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(
|
||||||
@@ -502,6 +503,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,8 +394,8 @@ 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;
|
||||||
@@ -582,6 +594,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
|
@@ -511,6 +523,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
|
||||||
request.GetReferrerPolicy()));
|
frame_request.SetImpression(impression);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if (!do_not_show_context_menu &&
|
+ if (!do_not_show_context_menu &&
|
||||||
@@ -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;
|
||||||
|
|
||||||
@@ -636,7 +657,7 @@ AtomicString HTMLAnchorElementBase::interestAction() const {
|
@@ -547,7 +568,7 @@ bool HTMLAnchorElementBase::IsValidInterestInvoker(Element& target) const {
|
||||||
return g_empty_atom;
|
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
|
||||||
@@ -732,13 +753,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(
|
||||||
@@ -748,7 +768,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
|
||||||
@@ -117,6 +117,7 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement,
|
@@ -90,6 +90,7 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement,
|
||||||
AtomicString interestAction() 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&);
|
||||||
@@ -148,7 +149,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);
|
||||||
@@ -451,7 +475,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_
|
|||||||
diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_party/blink/renderer/core/html/html_image_element.cc
|
diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_party/blink/renderer/core/html/html_image_element.cc
|
||||||
--- a/third_party/blink/renderer/core/html/html_image_element.cc
|
--- a/third_party/blink/renderer/core/html/html_image_element.cc
|
||||||
+++ b/third_party/blink/renderer/core/html/html_image_element.cc
|
+++ b/third_party/blink/renderer/core/html/html_image_element.cc
|
||||||
@@ -36,6 +36,7 @@
|
@@ -37,6 +37,7 @@
|
||||||
#include "third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h"
|
#include "third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h"
|
||||||
#include "third_party/blink/renderer/core/dom/node_traversal.h"
|
#include "third_party/blink/renderer/core/dom/node_traversal.h"
|
||||||
#include "third_party/blink/renderer/core/dom/shadow_root.h"
|
#include "third_party/blink/renderer/core/dom/shadow_root.h"
|
||||||
@@ -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"
|
||||||
@@ -63,6 +64,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"
|
||||||
@@ -797,6 +799,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
|
||||||
@@ -218,6 +218,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
|
||||||
@@ -196,14 +196,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();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -427,7 +429,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,
|
||||||
@@ -450,6 +453,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;
|
||||||
@@ -793,11 +806,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
|
||||||
@@ -33,6 +33,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"
|
||||||
@@ -350,6 +351,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;
|
||||||
|
|
||||||
@@ -364,6 +369,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,15 +111,15 @@ 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"
|
||||||
@@ -211,6 +212,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
|
||||||
@@ -96,7 +131,7 @@ diff --git a/components/feature_engagement/public/feature_configurations.cc b/co
|
|||||||
#include "components/feature_engagement/public/configuration.h"
|
#include "components/feature_engagement/public/configuration.h"
|
||||||
#include "components/feature_engagement/public/event_constants.h"
|
#include "components/feature_engagement/public/event_constants.h"
|
||||||
#include "components/feature_engagement/public/feature_constants.h"
|
#include "components/feature_engagement/public/feature_constants.h"
|
||||||
@@ -113,6 +114,12 @@ std::optional<FeatureConfig> GetClientSideFeatureConfig(
|
@@ -118,6 +119,12 @@ std::optional<FeatureConfig> GetClientSideFeatureConfig(
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
|
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -55,6 +55,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.util.TraceEventVectorDrawableCompat;
|
|
||||||
@@ -458,8 +459,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,13 +30,15 @@ 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
|
||||||
@@ -91,4 +91,8 @@ public class SettingsUtils {
|
@@ -33,6 +33,10 @@ import java.util.ArrayList;
|
||||||
ToolbarUtils.setOverflowMenuVisibility(toolbar, visibility);
|
/** A helper class for Settings. */
|
||||||
return true;
|
@NullMarked
|
||||||
}
|
public class SettingsUtils {
|
||||||
+
|
|
||||||
+ public interface ISupportHelpAndFeedback {
|
+ public interface ISupportHelpAndFeedback {
|
||||||
+ void onHelpAndFeebackPressed();
|
+ void onHelpAndFeebackPressed();
|
||||||
+ }
|
+ }
|
||||||
}
|
+
|
||||||
|
/**
|
||||||
|
* A helper that is used to load preferences from XML resources without causing a
|
||||||
|
* StrictModeViolation. See http://crbug.com/692125.
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -9,13 +9,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
---
|
---
|
||||||
base/android/content_uri_utils.cc | 10 ++++++
|
base/android/content_uri_utils.cc | 10 ++++++
|
||||||
base/android/content_uri_utils.h | 4 +++
|
base/android/content_uri_utils.h | 4 +++
|
||||||
.../org/chromium/base/ContentUriUtils.java | 34 +++++++++++++++++++
|
.../org/chromium/base/ContentUriUtils.java | 33 +++++++++++++++++++
|
||||||
3 files changed, 48 insertions(+)
|
3 files changed, 47 insertions(+)
|
||||||
|
|
||||||
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
|
||||||
@@ -119,6 +119,16 @@ void JNI_ContentUriUtils_AddFileInfoToVector(JNIEnv* env,
|
@@ -140,6 +140,16 @@ static void JNI_ContentUriUtils_AddFileInfoToVector(
|
||||||
Time::FromMillisecondsSinceUnixEpoch(last_modified));
|
Time::FromMillisecondsSinceUnixEpoch(last_modified));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,9 +35,9 @@ diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.
|
|||||||
diff --git a/base/android/content_uri_utils.h b/base/android/content_uri_utils.h
|
diff --git a/base/android/content_uri_utils.h b/base/android/content_uri_utils.h
|
||||||
--- a/base/android/content_uri_utils.h
|
--- a/base/android/content_uri_utils.h
|
||||||
+++ b/base/android/content_uri_utils.h
|
+++ b/base/android/content_uri_utils.h
|
||||||
@@ -33,6 +33,10 @@ BASE_EXPORT std::optional<std::string> TranslateOpenFlagsToJavaMode(
|
@@ -46,6 +46,10 @@ int ContentUriGetFd(
|
||||||
// Returns -1 if the URI is invalid.
|
void ContentUriClose(
|
||||||
int OpenContentUri(const FilePath& content_uri, uint32_t open_flags);
|
const base::android::JavaRef<jobject>& java_parcel_file_descriptor);
|
||||||
|
|
||||||
+// Opens a content URI for write and returns the file descriptor to the caller.
|
+// Opens a content URI for write and returns the file descriptor to the caller.
|
||||||
+// Returns -1 if the URI is invalid.
|
+// Returns -1 if the URI is invalid.
|
||||||
@@ -49,15 +49,7 @@ diff --git a/base/android/content_uri_utils.h b/base/android/content_uri_utils.h
|
|||||||
diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base/android/java/src/org/chromium/base/ContentUriUtils.java
|
diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base/android/java/src/org/chromium/base/ContentUriUtils.java
|
||||||
--- a/base/android/java/src/org/chromium/base/ContentUriUtils.java
|
--- a/base/android/java/src/org/chromium/base/ContentUriUtils.java
|
||||||
+++ b/base/android/java/src/org/chromium/base/ContentUriUtils.java
|
+++ b/base/android/java/src/org/chromium/base/ContentUriUtils.java
|
||||||
@@ -12,6 +12,7 @@ import android.content.res.AssetFileDescriptor;
|
@@ -31,6 +31,9 @@ import org.chromium.build.annotations.Nullable;
|
||||||
import android.database.Cursor;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Build;
|
|
||||||
+import android.os.ParcelFileDescriptor;
|
|
||||||
import android.provider.DocumentsContract;
|
|
||||||
import android.provider.MediaStore;
|
|
||||||
import android.text.TextUtils;
|
|
||||||
@@ -30,6 +31,9 @@ import org.chromium.build.annotations.Nullable;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -67,8 +59,8 @@ diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base
|
|||||||
/** This class provides methods to access content URI schemes. */
|
/** This class provides methods to access content URI schemes. */
|
||||||
@JNINamespace("base")
|
@JNINamespace("base")
|
||||||
@NullMarked
|
@NullMarked
|
||||||
@@ -64,6 +68,36 @@ public abstract class ContentUriUtils {
|
@@ -72,6 +75,36 @@ public abstract class ContentUriUtils {
|
||||||
return -1;
|
StreamUtil.closeQuietly(parcelFileDescriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ @CalledByNative
|
+ @CalledByNative
|
||||||
|
|||||||
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)
|
||||||
@@ -189,7 +189,7 @@ new file mode 100644
|
|||||||
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc
|
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
|
--- a/third_party/blink/renderer/core/execution_context/execution_context.cc
|
||||||
+++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
|
+++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
|
||||||
@@ -85,6 +85,13 @@ blink::WebContentSettingsClient* GetContentSettingsClientFor(
|
@@ -86,6 +86,13 @@ blink::WebContentSettingsClient* GetContentSettingsClientFor(
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -116,6 +116,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
|
||||||
@@ -291,6 +291,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_);
|
||||||
@@ -560,25 +567,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('.');
|
||||||
@@ -638,6 +626,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
|
||||||
@@ -1926,6 +1926,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
|
@@ -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
|
||||||
@@ -13,6 +13,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"
|
||||||
@@ -284,6 +286,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
|
||||||
@@ -18,6 +18,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"
|
||||||
@@ -1031,6 +1033,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;
|
||||||
|
|
||||||
|
|||||||
@@ -3,24 +3,38 @@ Date: Mon, 7 Aug 2023 11:02:18 +0000
|
|||||||
Subject: Allow DocumentPiP if PopupsAndRedirects are active
|
Subject: Allow DocumentPiP if PopupsAndRedirects are active
|
||||||
|
|
||||||
Allow documentPiP api use only with content setting popup allowed
|
Allow documentPiP api use only with content setting popup allowed
|
||||||
|
and disables the possibility of verifying the activation of PIP
|
||||||
|
in the device with document.pictureInPictureEnabled
|
||||||
|
|
||||||
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
|
||||||
---
|
---
|
||||||
|
.../chromium/chrome/browser/media/PictureInPicture.java | 1 +
|
||||||
.../picture_in_picture_controller_impl.cc | 7 +++++++
|
.../picture_in_picture_controller_impl.cc | 7 +++++++
|
||||||
1 file changed, 7 insertions(+)
|
2 files changed, 8 insertions(+)
|
||||||
|
|
||||||
|
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
|
||||||
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPicture.java
|
||||||
|
@@ -29,6 +29,7 @@ public abstract class PictureInPicture {
|
||||||
|
* @return boolean true if Picture-In-Picture is enabled, otherwise false.
|
||||||
|
*/
|
||||||
|
public static boolean isEnabled(Context context) {
|
||||||
|
+ if ((true)) return true;
|
||||||
|
// Some versions of Android crash when the activity enters Picture-in-Picture
|
||||||
|
// immediately after it exits Picture-in-Picture. See b/143784148
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
|
||||||
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"
|
||||||
@@ -377,6 +378,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow(
|
@@ -386,6 +387,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
.../browser/network/reporting_service_proxy.cc | 3 +++
|
.../browser/network/reporting_service_proxy.cc | 3 +++
|
||||||
.../renderer_host/render_frame_host_impl.cc | 6 ------
|
.../renderer_host/render_frame_host_impl.cc | 6 ------
|
||||||
.../coop/cross_origin_opener_policy_reporter.cc | 16 +++++++---------
|
.../coop/cross_origin_opener_policy_reporter.cc | 16 +++++++---------
|
||||||
|
.../dip/document_isolation_policy_reporter.cc | 3 +++
|
||||||
.../web_package/signed_exchange_reporter.cc | 2 ++
|
.../web_package/signed_exchange_reporter.cc | 2 ++
|
||||||
...content_switch_dependent_feature_overrides.cc | 1 +
|
...content_switch_dependent_feature_overrides.cc | 1 +
|
||||||
.../Allow-building-without-enable_reporting.inc | 2 ++
|
.../Allow-building-without-enable_reporting.inc | 2 ++
|
||||||
@@ -21,17 +22,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|||||||
.../network/public/mojom/network_context.mojom | 3 +++
|
.../network/public/mojom/network_context.mojom | 3 +++
|
||||||
.../core/frame/csp/content_security_policy.cc | 3 +++
|
.../core/frame/csp/content_security_policy.cc | 3 +++
|
||||||
.../blink/renderer/core/frame/local_frame.cc | 3 +++
|
.../blink/renderer/core/frame/local_frame.cc | 3 +++
|
||||||
.../blink/renderer/core/frame/local_frame.h | 4 +++-
|
.../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 +---
|
||||||
21 files changed, 61 insertions(+), 26 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) {
|
||||||
@@ -42,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
|
||||||
@@ -1470,6 +1470,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
|
@@ -1670,6 +1670,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,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(
|
||||||
@@ -1483,6 +1484,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
|
@@ -1683,6 +1684,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
|
||||||
});
|
});
|
||||||
return urls;
|
return urls;
|
||||||
}
|
}
|
||||||
@@ -86,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));
|
||||||
@@ -105,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 {
|
||||||
@@ -190,12 +191,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)
|
||||||
@@ -121,23 +122,23 @@ 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
|
||||||
@@ -15258,12 +15258,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
|
@@ -16912,12 +16912,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
-
|
-
|
||||||
- // Send the crash report to the Reporting API.
|
- // Send the crash report to the Reporting API.
|
||||||
- GetProcess()->GetStoragePartition()->GetNetworkContext()->QueueReport(
|
- GetProcess()->GetStoragePartition()->GetNetworkContext()->QueueReport(
|
||||||
- /*type=*/"crash", /*group=*/"default", last_committed_url_,
|
- /*type=*/"crash", crash_reporting_group_, last_committed_url_,
|
||||||
- GetReportingSource(), isolation_info_.network_anonymization_key(),
|
- GetReportingSource(), isolation_info_.network_anonymization_key(),
|
||||||
- std::move(body));
|
- std::move(body));
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderFrameHostImpl::SendCommitNavigation(
|
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
|
||||||
@@ -176,7 +177,7 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c
|
|||||||
std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) {
|
std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) {
|
||||||
switch (coop_value) {
|
switch (coop_value) {
|
||||||
case network::mojom::CrossOriginOpenerPolicyValue::kUnsafeNone:
|
case network::mojom::CrossOriginOpenerPolicyValue::kUnsafeNone:
|
||||||
@@ -64,6 +57,7 @@ std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) {
|
@@ -59,6 +52,7 @@ std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) {
|
||||||
return "noopener-allow-popups";
|
return "noopener-allow-popups";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -184,7 +185,7 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c
|
|||||||
|
|
||||||
FrameTreeNode* TopLevelOpener(FrameTreeNode* frame) {
|
FrameTreeNode* TopLevelOpener(FrameTreeNode* frame) {
|
||||||
FrameTreeNode* opener =
|
FrameTreeNode* opener =
|
||||||
@@ -235,6 +229,7 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport(
|
@@ -230,6 +224,7 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport(
|
||||||
network::mojom::SourceLocationPtr source_location,
|
network::mojom::SourceLocationPtr source_location,
|
||||||
const std::string& reported_window_url,
|
const std::string& reported_window_url,
|
||||||
const std::string& initial_popup_url) const {
|
const std::string& initial_popup_url) const {
|
||||||
@@ -192,7 +193,7 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c
|
|||||||
// Cross-Origin-Opener-Policy-Report-Only is not required to provide
|
// Cross-Origin-Opener-Policy-Report-Only is not required to provide
|
||||||
// endpoints.
|
// endpoints.
|
||||||
if (!coop_.report_only_reporting_endpoint)
|
if (!coop_.report_only_reporting_endpoint)
|
||||||
@@ -282,12 +277,14 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport(
|
@@ -277,12 +272,14 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport(
|
||||||
storage_partition_->GetNetworkContext()->QueueReport(
|
storage_partition_->GetNetworkContext()->QueueReport(
|
||||||
"coop", endpoint, context_url_, reporting_source_,
|
"coop", endpoint, context_url_, reporting_source_,
|
||||||
network_anonymization_key_, std::move(body));
|
network_anonymization_key_, std::move(body));
|
||||||
@@ -200,14 +201,14 @@ 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)
|
||||||
body.Set(kDisposition,
|
body.Set(kDisposition,
|
||||||
is_report_only ? kDispositionReporting : kDispositionEnforce);
|
is_report_only ? kDispositionReporting : kDispositionEnforce);
|
||||||
body.Set(kEffectivePolicy,
|
body.Set(kEffectivePolicy,
|
||||||
@@ -295,6 +292,7 @@ void CrossOriginOpenerPolicyReporter::QueueNavigationReport(
|
@@ -290,6 +287,7 @@ void CrossOriginOpenerPolicyReporter::QueueNavigationReport(
|
||||||
storage_partition_->GetNetworkContext()->QueueReport(
|
storage_partition_->GetNetworkContext()->QueueReport(
|
||||||
"coop", endpoint, context_url_, reporting_source_,
|
"coop", endpoint, context_url_, reporting_source_,
|
||||||
network_anonymization_key_, std::move(body));
|
network_anonymization_key_, std::move(body));
|
||||||
@@ -215,6 +216,31 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
} // namespace content
|
} // namespace content
|
||||||
|
diff --git a/content/browser/security/dip/document_isolation_policy_reporter.cc b/content/browser/security/dip/document_isolation_policy_reporter.cc
|
||||||
|
--- a/content/browser/security/dip/document_isolation_policy_reporter.cc
|
||||||
|
+++ b/content/browser/security/dip/document_isolation_policy_reporter.cc
|
||||||
|
@@ -7,6 +7,7 @@
|
||||||
|
#include <string_view>
|
||||||
|
|
||||||
|
#include "base/values.h"
|
||||||
|
+#include "net/net_buildflags.h"
|
||||||
|
#include "content/public/browser/storage_partition.h"
|
||||||
|
#include "services/network/public/cpp/request_destination.h"
|
||||||
|
#include "services/network/public/mojom/network_context.mojom.h"
|
||||||
|
@@ -94,11 +95,13 @@ void DocumentIsolationPolicyReporter::QueueAndNotify(
|
||||||
|
}
|
||||||
|
body_to_pass.Set("disposition", disposition);
|
||||||
|
|
||||||
|
+#if BUILDFLAG(ENABLE_REPORTING)
|
||||||
|
if (auto* storage_partition = storage_partition_.get()) {
|
||||||
|
storage_partition->GetNetworkContext()->QueueReport(
|
||||||
|
kType, *endpoint, context_url_, reporting_source_,
|
||||||
|
network_anonymization_key_, std::move(body_to_pass));
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
diff --git a/content/browser/web_package/signed_exchange_reporter.cc b/content/browser/web_package/signed_exchange_reporter.cc
|
diff --git a/content/browser/web_package/signed_exchange_reporter.cc b/content/browser/web_package/signed_exchange_reporter.cc
|
||||||
--- a/content/browser/web_package/signed_exchange_reporter.cc
|
--- a/content/browser/web_package/signed_exchange_reporter.cc
|
||||||
+++ b/content/browser/web_package/signed_exchange_reporter.cc
|
+++ b/content/browser/web_package/signed_exchange_reporter.cc
|
||||||
@@ -255,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
|
||||||
@@ -332,6 +332,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) {
|
||||||
@@ -266,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
|
||||||
@@ -225,6 +225,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) {
|
||||||
@@ -277,22 +303,22 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic
|
|||||||
+#error Attempting to build with enable_reporting
|
+#error Attempting to build with enable_reporting
|
||||||
+#endif
|
+#endif
|
||||||
DCHECK(initialized_);
|
DCHECK(initialized_);
|
||||||
context_->cache()->AddReport(reporting_source, network_anonymization_key,
|
context_->cache()->AddReport(
|
||||||
sanitized_url, user_agent, group, type,
|
reporting_source, network_anonymization_key, sanitized_url, user_agent,
|
||||||
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
|
||||||
@@ -468,14 +468,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;
|
||||||
@@ -303,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
|
||||||
@@ -115,6 +115,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders(
|
@@ -137,6 +137,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders(
|
||||||
}
|
}
|
||||||
|
|
||||||
#if BUILDFLAG(ENABLE_REPORTING)
|
#if BUILDFLAG(ENABLE_REPORTING)
|
||||||
@@ -314,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
|
||||||
@@ -1557,7 +1557,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) {
|
||||||
@@ -325,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
|
||||||
@@ -1208,6 +1208,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
|
||||||
@@ -333,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,
|
||||||
@@ -1215,6 +1216,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);
|
||||||
|
|
||||||
@@ -341,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,
|
||||||
@@ -1225,6 +1227,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`.
|
||||||
@@ -352,23 +378,23 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
|
|||||||
diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
|
diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
|
||||||
--- a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
|
--- a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
|
||||||
+++ b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
|
+++ b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
|
||||||
@@ -30,6 +30,7 @@
|
@@ -31,6 +31,7 @@
|
||||||
#include <set>
|
#include <set>
|
||||||
#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/ranges/algorithm.h"
|
#include "base/feature_list.h"
|
||||||
@@ -1284,6 +1285,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);
|
||||||
|
|
||||||
@@ -1291,6 +1293,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);
|
||||||
@@ -379,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
|
||||||
@@ -46,6 +46,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"
|
||||||
@@ -387,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"
|
||||||
@@ -2791,9 +2792,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() {
|
@@ -2879,9 +2880,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() {
|
||||||
return CHECK_DEREF(GetDocument()).GetResourceCoordinator();
|
return CHECK_DEREF(GetDocument()).GetResourceCoordinator();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -402,19 +428,18 @@ 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
|
||||||
@@ -36,6 +36,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 "services/metrics/public/cpp/ukm_source_id.h"
|
#include "services/metrics/public/cpp/ukm_source_id.h"
|
||||||
@@ -660,8 +661,9 @@ class CORE_EXPORT LocalFrame final
|
#include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
|
||||||
void FinishedScrollSequence();
|
@@ -674,7 +675,9 @@ class CORE_EXPORT LocalFrame final
|
||||||
|
return client_hints_preferences_;
|
||||||
|
}
|
||||||
|
|
||||||
SmoothScrollSequencer* GetSmoothScrollSequencer() const;
|
|
||||||
-
|
|
||||||
+#if BUILDFLAG(ENABLE_REPORTING)
|
+#if BUILDFLAG(ENABLE_REPORTING)
|
||||||
mojom::blink::ReportingServiceProxy* GetReportingService();
|
mojom::blink::ReportingServiceProxy* GetReportingService();
|
||||||
+#endif
|
+#endif
|
||||||
@@ -432,14 +457,14 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
|
|||||||
#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/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"
|
||||||
@@ -58,7 +59,9 @@ const char ReportingContext::kSupplementName[] = "ReportingContext";
|
@@ -59,7 +60,9 @@ const char ReportingContext::kSupplementName[] = "ReportingContext";
|
||||||
ReportingContext::ReportingContext(ExecutionContext& context)
|
ReportingContext::ReportingContext(ExecutionContext& context)
|
||||||
: Supplement<ExecutionContext>(context),
|
: Supplement<ExecutionContext>(context),
|
||||||
execution_context_(context),
|
execution_context_(context),
|
||||||
+#if BUILDFLAG(ENABLE_REPORTING)
|
+#if BUILDFLAG(ENABLE_REPORTING)
|
||||||
reporting_service_(&context),
|
reporting_service_(&context),
|
||||||
+#endif
|
+#endif
|
||||||
receiver_(this, &context) {}
|
receivers_(this, &context) {}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
@@ -126,7 +129,9 @@ void ReportingContext::Trace(Visitor* visitor) const {
|
@@ -126,7 +129,9 @@ void ReportingContext::Trace(Visitor* visitor) const {
|
||||||
@@ -449,10 +474,10 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
|
|||||||
+#if BUILDFLAG(ENABLE_REPORTING)
|
+#if BUILDFLAG(ENABLE_REPORTING)
|
||||||
visitor->Trace(reporting_service_);
|
visitor->Trace(reporting_service_);
|
||||||
+#endif
|
+#endif
|
||||||
visitor->Trace(receiver_);
|
visitor->Trace(receivers_);
|
||||||
Supplement<ExecutionContext>::Trace(visitor);
|
Supplement<ExecutionContext>::Trace(visitor);
|
||||||
}
|
}
|
||||||
@@ -148,6 +153,7 @@ void ReportingContext::CountReport(Report* report) {
|
@@ -149,6 +154,7 @@ void ReportingContext::CountReport(Report* report) {
|
||||||
UseCounter::Count(execution_context_, feature);
|
UseCounter::Count(execution_context_, feature);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -460,7 +485,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
|
|||||||
const HeapMojoRemote<mojom::blink::ReportingServiceProxy>&
|
const HeapMojoRemote<mojom::blink::ReportingServiceProxy>&
|
||||||
ReportingContext::GetReportingService() const {
|
ReportingContext::GetReportingService() const {
|
||||||
if (!reporting_service_.is_bound()) {
|
if (!reporting_service_.is_bound()) {
|
||||||
@@ -157,6 +163,7 @@ ReportingContext::GetReportingService() const {
|
@@ -158,6 +164,7 @@ ReportingContext::GetReportingService() const {
|
||||||
}
|
}
|
||||||
return reporting_service_;
|
return reporting_service_;
|
||||||
}
|
}
|
||||||
@@ -468,7 +493,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
|
|||||||
|
|
||||||
void ReportingContext::NotifyInternal(Report* report) {
|
void ReportingContext::NotifyInternal(Report* report) {
|
||||||
if (!ShouldReportBeVisibleToObservers(report)) {
|
if (!ShouldReportBeVisibleToObservers(report)) {
|
||||||
@@ -183,6 +190,7 @@ void ReportingContext::NotifyInternal(Report* report) {
|
@@ -184,6 +191,7 @@ void ReportingContext::NotifyInternal(Report* report) {
|
||||||
|
|
||||||
void ReportingContext::SendToReportingAPI(Report* report,
|
void ReportingContext::SendToReportingAPI(Report* report,
|
||||||
const String& endpoint) const {
|
const String& endpoint) const {
|
||||||
@@ -476,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 ||
|
||||||
@@ -246,6 +254,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);
|
||||||
}
|
}
|
||||||
@@ -495,7 +520,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p
|
|||||||
#include "third_party/blink/public/mojom/frame/reporting_observer.mojom-blink.h"
|
#include "third_party/blink/public/mojom/frame/reporting_observer.mojom-blink.h"
|
||||||
#include "third_party/blink/public/mojom/reporting/reporting.mojom-blink.h"
|
#include "third_party/blink/public/mojom/reporting/reporting.mojom-blink.h"
|
||||||
#include "third_party/blink/renderer/core/core_export.h"
|
#include "third_party/blink/renderer/core/core_export.h"
|
||||||
@@ -55,10 +56,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected<ReportingContext>,
|
@@ -56,10 +57,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected<ReportingContext>,
|
||||||
private:
|
private:
|
||||||
// Counts the use of a report type via UseCounter.
|
// Counts the use of a report type via UseCounter.
|
||||||
void CountReport(Report*);
|
void CountReport(Report*);
|
||||||
@@ -508,7 +533,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p
|
|||||||
void NotifyInternal(Report* report);
|
void NotifyInternal(Report* report);
|
||||||
// Send |report| via the Reporting API to |endpoint|.
|
// Send |report| via the Reporting API to |endpoint|.
|
||||||
void SendToReportingAPI(Report* report, const String& endpoint) const;
|
void SendToReportingAPI(Report* report, const String& endpoint) const;
|
||||||
@@ -69,8 +70,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected<ReportingContext>,
|
@@ -71,8 +72,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected<ReportingContext>,
|
||||||
|
|
||||||
// This is declared mutable so that the service endpoint can be cached by
|
// This is declared mutable so that the service endpoint can be cached by
|
||||||
// const methods.
|
// const methods.
|
||||||
@@ -517,17 +542,18 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p
|
|||||||
reporting_service_;
|
reporting_service_;
|
||||||
+#endif
|
+#endif
|
||||||
|
|
||||||
HeapMojoReceiver<mojom::blink::ReportingObserver, ReportingContext> receiver_;
|
// There might be up to two ReportingObservers stored here: one that is called
|
||||||
};
|
// from the CrossOriginEmbedderPolicyReporter and one that is called from the
|
||||||
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,34 +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 +
|
||||||
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 | 5 +----
|
.../core/browser/supervised_user_service.cc | 1 +
|
||||||
.../supervised_user/core/browser/supervised_user_utils.cc | 1 +
|
components/supervised_user/core/common/features.cc | 1 +
|
||||||
components/supervised_user/core/common/features.cc | 6 ++++++
|
extensions/browser/api/management/management_api.cc | 1 +
|
||||||
14 files changed, 17 insertions(+), 30 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
|
||||||
@@ -774,7 +774,6 @@ if (current_toolchain == 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
|
||||||
@@ -91,7 +91,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()) {
|
||||||
@@ -64,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
|
||||||
@@ -331,7 +331,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
|
||||||
@@ -459,7 +459,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const {
|
@@ -466,7 +466,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ProfileAttributesEntry::GetSupervisedUserId() const {
|
std::string ProfileAttributesEntry::GetSupervisedUserId() const {
|
||||||
@@ -88,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
|
||||||
@@ -670,10 +670,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);
|
||||||
@@ -99,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(
|
||||||
@@ -1625,6 +1621,7 @@ GURL ProfileImpl::GetHomePage() {
|
@@ -1618,6 +1614,7 @@ GURL ProfileImpl::GetHomePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProfileImpl::UpdateSupervisedUserIdInStorage() {
|
void ProfileImpl::UpdateSupervisedUserIdInStorage() {
|
||||||
@@ -110,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
|
||||||
@@ -1178,10 +1178,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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,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,
|
||||||
@@ -1962,9 +1958,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);
|
||||||
|
|
||||||
@@ -131,10 +137,21 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
|
|||||||
#if BUILDFLAG(IS_CHROMEOS)
|
#if BUILDFLAG(IS_CHROMEOS)
|
||||||
user_manager::User* user =
|
user_manager::User* user =
|
||||||
ash::ProfileHelper::Get()->GetUserByProfile(profile);
|
ash::ProfileHelper::Get()->GetUserByProfile(profile);
|
||||||
|
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
|
||||||
|
+++ b/chrome/browser/supervised_user/supervised_user_browser_utils.cc
|
||||||
|
@@ -98,6 +98,7 @@ bool SupervisedUserCanSkipExtensionParentApprovals(const Profile* profile) {
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AreExtensionsPermissionsEnabled(Profile* profile) {
|
||||||
|
+ if ((true)) return false;
|
||||||
|
#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
|
||||||
|
return profile->IsChild();
|
||||||
|
#else
|
||||||
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
|
||||||
@@ -90,10 +90,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);
|
||||||
}
|
}
|
||||||
@@ -148,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
|
||||||
@@ -578,10 +578,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) {
|
||||||
@@ -159,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
|
||||||
@@ -126,6 +126,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
|
||||||
@@ -155,6 +155,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
@@ -160,6 +160,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnableParentalControls(PrefService& pref_service) {
|
void EnableParentalControls(PrefService& pref_service) {
|
||||||
@@ -183,8 +212,8 @@ 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);
|
||||||
SetIsChildAccountStatusKnown(pref_service);
|
#if BUILDFLAG(IS_CHROMEOS)
|
||||||
@@ -177,7 +181,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) {
|
||||||
@@ -192,52 +221,38 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences
|
|||||||
+ return false;
|
+ return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace supervised_user
|
bool IsGoogleSafeSearchEnforced(const PrefService& pref_service) {
|
||||||
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
|
||||||
@@ -49,10 +49,6 @@ void SupervisedUserService::Init() {
|
@@ -160,6 +160,7 @@ SupervisedUserService::SupervisedUserService(
|
||||||
DCHECK(settings_service_->IsReady());
|
|
||||||
|
|
||||||
pref_change_registrar_.Init(&user_prefs_.get());
|
|
||||||
- pref_change_registrar_.Add(
|
|
||||||
- prefs::kSupervisedUserId,
|
|
||||||
- base::BindRepeating(&SupervisedUserService::OnSupervisedUserIdChanged,
|
|
||||||
- base::Unretained(this)));
|
|
||||||
SetActive(supervised_user::IsSubjectToParentalControls(user_prefs_.get()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,6 +134,7 @@ SupervisedUserService::SupervisedUserService(
|
void SupervisedUserService::SetSettingsServiceActive(bool active) {
|
||||||
}
|
|
||||||
|
|
||||||
void SupervisedUserService::SetActive(bool active) {
|
|
||||||
+ active = false;
|
+ active = false;
|
||||||
if (active_ == active) {
|
settings_service_->SetActive(active);
|
||||||
return;
|
|
||||||
}
|
|
||||||
diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/components/supervised_user/core/browser/supervised_user_utils.cc
|
|
||||||
--- a/components/supervised_user/core/browser/supervised_user_utils.cc
|
|
||||||
+++ b/components/supervised_user/core/browser/supervised_user_utils.cc
|
|
||||||
@@ -145,6 +145,7 @@ GURL NormalizeUrl(const GURL& url) {
|
|
||||||
}
|
|
||||||
|
|
||||||
bool AreWebFilterPrefsDefault(const PrefService& pref_service) {
|
// Trigger a sync reconfig to enable/disable the right SU data types.
|
||||||
+ if ((true)) return true;
|
|
||||||
return pref_service
|
|
||||||
.FindPreference(prefs::kDefaultSupervisedUserFilteringBehavior)
|
|
||||||
->IsDefaultValue() ||
|
|
||||||
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
|
||||||
@@ -196,4 +196,10 @@ bool IsKidFriendlyContentFeedAvailable() {
|
@@ -19,6 +19,7 @@ namespace supervised_user {
|
||||||
return base::FeatureList::IsEnabled(kKidFriendlyContentFeed);
|
// Enables local parent approvals for the blocked website on the Family Link
|
||||||
}
|
// user's device.
|
||||||
|
BASE_FEATURE(kLocalWebApprovals, base::FEATURE_ENABLED_BY_DEFAULT);
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kKidFriendlyContentFeed);
|
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kLocalWebApprovals);
|
+SET_CROMITE_FEATURE_DISABLED(kLocalWebApprovals);
|
||||||
+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
|
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop);
|
// TODO(crbug.com/391799078): Support local web approval for subframes on
|
||||||
+#endif
|
// Desktop.
|
||||||
+
|
diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc
|
||||||
} // namespace supervised_user
|
--- a/extensions/browser/api/management/management_api.cc
|
||||||
|
+++ b/extensions/browser/api/management/management_api.cc
|
||||||
|
@@ -693,6 +693,7 @@ bool ManagementSetEnabledFunction::HasUnsupportedRequirements(
|
||||||
|
|
||||||
|
bool ManagementSetEnabledFunction::IsSupervisedExtensionApprovalFlowRequired(
|
||||||
|
const Extension* target_extension) const {
|
||||||
|
+ if ((true)) return false;
|
||||||
|
SupervisedUserExtensionsDelegate* supervised_user_extensions_delegate =
|
||||||
|
ManagementAPI::GetFactoryInstance()
|
||||||
|
->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
|
||||||
@@ -1309,6 +1309,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 WebVector<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,
|
||||||
@@ -35,11 +47,11 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
|
|||||||
+ if (!HasVideoNonEmptySize() && preserve_audio)
|
+ if (!HasVideoNonEmptySize() && preserve_audio)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// MediaPlayer always signals audio and video, so use an empty natural size to
|
// Video PiP is the only exception when background video playback is disabled.
|
||||||
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 WebVector<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.BookmarkModel;
|
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
|
||||||
@@ -34,6 +35,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
|
@@ -43,6 +44,7 @@ import org.chromium.chrome.browser.preferences.Pref;
|
||||||
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
|
import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory;
|
||||||
import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge;
|
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;
|
||||||
@@ -235,6 +237,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());
|
||||||
@@ -255,6 +258,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,43 +7,56 @@ 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 | 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 | 2 ++
|
.../always-use-new-tab-page-for-default-home-page.inc | 1 +
|
||||||
6 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
|
||||||
@@ -155,10 +155,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 =
|
||||||
ChromeSharedPreferences.getInstance()
|
ChromeSharedPreferences.getInstance()
|
||||||
.readString(
|
.readString(
|
||||||
|
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
|
||||||
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java
|
||||||
|
@@ -59,7 +59,7 @@ public class DseNewTabUrlManager {
|
||||||
|
|
||||||
|
/** Returns whether the feature NewTabSearchEngineUrlAndroid is enabled. */
|
||||||
|
public static boolean isNewTabSearchEngineUrlAndroidEnabled() {
|
||||||
|
- return true;
|
||||||
|
+ return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
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
|
||||||
@@ -61,6 +61,7 @@ public class PartnerBookmarksProviderIterator implements PartnerBookmark.Bookmar
|
@@ -70,6 +70,7 @@ public class PartnerBookmarksProviderIterator implements PartnerBookmark.Bookmar
|
||||||
* @return Iterator over bookmarks or null.
|
new AsyncTask<@Nullable Cursor>() {
|
||||||
*/
|
@Override
|
||||||
public static PartnerBookmarksProviderIterator createIfAvailable() {
|
protected @Nullable Cursor doInBackground() {
|
||||||
+ if ((true)) return null;
|
+ if ((true)) return null;
|
||||||
try {
|
try {
|
||||||
Cursor cursor =
|
return ContextUtils.getApplicationContext()
|
||||||
ContextUtils.getApplicationContext()
|
.getContentResolver()
|
||||||
diff --git a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java b/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
diff --git a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java b/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
||||||
--- a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
--- a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
||||||
+++ b/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
+++ b/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
||||||
@@ -210,7 +210,7 @@ public class PartnerBrowserCustomizations {
|
@@ -213,7 +213,7 @@ public class PartnerBrowserCustomizations {
|
||||||
& ApplicationInfo.FLAG_SYSTEM)
|
& ApplicationInfo.FLAG_SYSTEM)
|
||||||
== 1
|
== 1
|
||||||
|| !VersionInfo.isStableBuild();
|
|| !VersionInfo.isStableBuild();
|
||||||
@@ -55,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
|
||||||
@@ -72,6 +72,7 @@ public class TemplateUrl {
|
@@ -110,6 +110,7 @@ public class TemplateUrl {
|
||||||
* prepopulated_engines.json.
|
* prepopulated_engines.json.
|
||||||
*/
|
*/
|
||||||
public String getNewTabURL() {
|
public String getNewTabURL() {
|
||||||
@@ -66,19 +79,18 @@ 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
|
||||||
@@ -404,6 +404,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
|
||||||
// `TemplateUrlService#runWhenLoaded()`.
|
// `TemplateUrlService#runWhenLoaded()`.
|
||||||
CHECK(template_url_service_->loaded(), base::NotFatalUntil::M128);
|
CHECK(template_url_service_->loaded());
|
||||||
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc
|
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc
|
||||||
new file mode 100755
|
new file mode 100755
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc
|
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc
|
||||||
@@ -0,0 +1,2 @@
|
@@ -0,0 +1 @@
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kNewTabSearchEngineUrlAndroid);
|
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kPartnerCustomizationsUma);
|
+SET_CROMITE_FEATURE_DISABLED(kPartnerCustomizationsUma);
|
||||||
--
|
--
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,13 +7,35 @@ Adds a setting for blocking the toolbar hiding
|
|||||||
need: Add-cromite-flags-support.patch
|
need: Add-cromite-flags-support.patch
|
||||||
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
|
||||||
---
|
---
|
||||||
|
...rowserStateBrowserControlsVisibilityDelegate.java | 4 +++-
|
||||||
.../Toolbar-Scroll-Ablation-flag.grdp | 9 +++++++++
|
.../Toolbar-Scroll-Ablation-flag.grdp | 9 +++++++++
|
||||||
.../java/res/xml/accessibility_preferences.xml | 6 ++++++
|
.../java/res/xml/accessibility_preferences.xml | 6 ++++++
|
||||||
.../about_flags_cc/Toolbar-Scroll-Ablation-flag.inc | 12 ++++++++++++
|
.../about_flags_cc/Toolbar-Scroll-Ablation-flag.inc | 12 ++++++++++++
|
||||||
3 files changed, 27 insertions(+)
|
4 files changed, 30 insertions(+), 1 deletion(-)
|
||||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Toolbar-Scroll-Ablation-flag.grdp
|
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Toolbar-Scroll-Ablation-flag.grdp
|
||||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Toolbar-Scroll-Ablation-flag.inc
|
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Toolbar-Scroll-Ablation-flag.inc
|
||||||
|
|
||||||
|
diff --git 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
|
||||||
|
--- 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
|
||||||
|
@@ -40,6 +40,7 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro
|
||||||
|
private final NonNullObservableSupplier<Boolean> mPersistentFullscreenMode;
|
||||||
|
|
||||||
|
private long mCurrentShowingStartTime;
|
||||||
|
+ private int temporaryToken;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a BrowserControlsVisibilityDelegate designed to deal with overrides driven by the
|
||||||
|
@@ -65,7 +66,8 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro
|
||||||
|
long currentShowingTime = SystemClock.uptimeMillis() - mCurrentShowingStartTime;
|
||||||
|
if (currentShowingTime >= MINIMUM_SHOW_DURATION_MS) return;
|
||||||
|
|
||||||
|
- final int temporaryToken = mTokenHolder.acquireToken();
|
||||||
|
+ mTokenHolder.releaseToken(temporaryToken);
|
||||||
|
+ temporaryToken = mTokenHolder.acquireToken();
|
||||||
|
mHandler.postDelayed(
|
||||||
|
() -> mTokenHolder.releaseToken(temporaryToken),
|
||||||
|
MINIMUM_SHOW_DURATION_MS - currentShowingTime);
|
||||||
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Toolbar-Scroll-Ablation-flag.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Toolbar-Scroll-Ablation-flag.grdp
|
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Toolbar-Scroll-Ablation-flag.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Toolbar-Scroll-Ablation-flag.grdp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
@@ -31,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
|
||||||
@@ -73,6 +73,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" />
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -23,19 +23,19 @@ 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 +++++
|
||||||
.../browser/tabmodel/TabModelSelector.java | 2 +
|
.../browser/tabmodel/TabModelSelector.java | 2 +
|
||||||
.../browser/tabmodel/TabModelUtils.java | 18 +++
|
.../browser/tabmodel/TabModelUtils.java | 18 +++
|
||||||
.../browser/tabmodel/TabWindowManager.java | 2 +
|
.../browser/tabwindow/TabWindowManager.java | 2 +
|
||||||
.../tabmodel/TabWindowManagerImpl.java | 10 ++
|
.../tabwindow/TabWindowManagerImpl.java | 10 ++
|
||||||
.../Ask-for-restart-on-connection-change.grdp | 15 +++
|
.../Ask-for-restart-on-connection-change.grdp | 15 +++
|
||||||
.../android/java/res/layout/snackbar.xml | 10 ++
|
.../java/res/layout/floating_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 +
|
||||||
@@ -49,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 +-
|
||||||
29 files changed, 322 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
|
||||||
@@ -75,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);
|
||||||
@@ -86,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;
|
||||||
@@ -95,10 +95,10 @@ 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.tabmodel.TabWindowManagerSingleton;
|
+import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton;
|
||||||
+import org.chromium.chrome.browser.layouts.LayoutManager;
|
+import org.chromium.chrome.browser.layouts.LayoutManager;
|
||||||
+import org.chromium.chrome.browser.compositor.layouts.Layout;
|
+import org.chromium.chrome.browser.compositor.layouts.Layout;
|
||||||
+import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl;
|
+import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl;
|
||||||
@@ -111,16 +111,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
|
|||||||
+import org.chromium.chrome.browser.tab.Tab;
|
+import org.chromium.chrome.browser.tab.Tab;
|
||||||
+import org.chromium.chrome.browser.tabmodel.TabModelUtils;
|
+import org.chromium.chrome.browser.tabmodel.TabModelUtils;
|
||||||
+import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
+import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
||||||
+import org.chromium.chrome.browser.tabmodel.TabWindowManager;
|
+import org.chromium.chrome.browser.tabwindow.TabWindowManager;
|
||||||
+import org.chromium.chrome.browser.lifetime.ApplicationLifetime;
|
+import org.chromium.chrome.browser.lifetime.ApplicationLifetime;
|
||||||
+import org.chromium.content_public.browser.WebContentsObserver;
|
+import org.chromium.content_public.browser.WebContentsObserver;
|
||||||
+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,
|
||||||
@@ -128,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;
|
||||||
@@ -155,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();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -181,7 +183,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
|
|||||||
+ new WebContentsObserver(webContents) {
|
+ new WebContentsObserver(webContents) {
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public void didStartLoading(GURL url) {
|
+ public void didStartLoading(GURL url) {
|
||||||
+ webContents.removeObserver(this);
|
+ observe(null);
|
||||||
+ SnackbarManager snackbarManager = mSnackbarManagerSupplier.get();
|
+ SnackbarManager snackbarManager = mSnackbarManagerSupplier.get();
|
||||||
+ snackbarManager.dismissSnackbars(controller);
|
+ snackbarManager.dismissSnackbars(controller);
|
||||||
+ }
|
+ }
|
||||||
@@ -196,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();
|
||||||
@@ -231,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() {
|
||||||
@@ -242,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;
|
||||||
@@ -254,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),
|
||||||
@@ -281,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
|
||||||
@@ -1233,7 +1233,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
|
||||||
@@ -199,6 +199,13 @@ public abstract class TabModelSelectorBase
|
@@ -207,6 +207,13 @@ public abstract class TabModelSelectorBase
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -308,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
|
||||||
@@ -350,19 +351,19 @@ new file mode 100644
|
|||||||
diff --git 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
|
diff --git 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
|
||||||
--- 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
|
||||||
@@ -147,6 +147,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);
|
||||||
+
|
+
|
||||||
/**
|
/**
|
||||||
* Search all TabModels for a tab with the specified id.
|
* Search all TabModels for a tab with the specified id.
|
||||||
* @return specified tab or null if tab is not found
|
*
|
||||||
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
|
||||||
@@ -17,12 +17,16 @@ import org.chromium.base.supplier.SupplierUtils;
|
@@ -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;
|
||||||
@@ -370,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -400,11 +402,11 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
|
|||||||
/**
|
/**
|
||||||
* Find the {@link Tab} index whose URL matches the specified URL.
|
* Find the {@link Tab} index whose URL matches the specified URL.
|
||||||
*
|
*
|
||||||
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/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/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java
|
--- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
|
||||||
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java
|
+++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
|
||||||
@@ -107,6 +107,8 @@ public interface TabWindowManager {
|
@@ -154,6 +154,8 @@ public interface TabWindowManager {
|
||||||
*/
|
/** Returns the total number of incognito tabs across all tab model selectors. */
|
||||||
int getIncognitoTabCount();
|
int getIncognitoTabCount();
|
||||||
|
|
||||||
+ void setPagesFrozen(boolean frozen);
|
+ void setPagesFrozen(boolean frozen);
|
||||||
@@ -412,17 +414,17 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
|
|||||||
/**
|
/**
|
||||||
* @param tab The tab to look for in each model.
|
* @param tab The tab to look for in each model.
|
||||||
* @return The TabModel containing the given Tab or null if one doesn't exist.
|
* @return The TabModel containing the given Tab or null if one doesn't exist.
|
||||||
diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/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/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java
|
--- a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
|
||||||
+++ b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java
|
+++ b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
|
||||||
@@ -459,6 +459,16 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan
|
@@ -551,6 +551,16 @@ public class TabWindowManagerImpl implements TabWindowManager {
|
||||||
return null;
|
return tabModelSelector.getModel(isIncognito).getTabsInGroup(tabGroupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public void setPagesFrozen(boolean frozen) {
|
+ public void setPagesFrozen(boolean frozen) {
|
||||||
+ for (int i = 0; i < mSelectors.size(); i++) {
|
+ for (Map.Entry<@WindowId Integer, TabModelSelector> entry : mWindowIdToSelectors.entrySet()) {
|
||||||
+ TabModelSelector selector = mSelectors.get(i);
|
+ TabModelSelector selector = entry.getValue();
|
||||||
+ if (selector != null) {
|
+ if (selector != null) {
|
||||||
+ selector.setPagesFrozen(frozen);
|
+ selector.setPagesFrozen(frozen);
|
||||||
+ }
|
+ }
|
||||||
@@ -430,8 +432,8 @@ diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chro
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@Override
|
@Override
|
||||||
public TabModelSelector getTabModelSelectorById(int index) {
|
public @Nullable TabModelSelector getTabModelSelectorById(@WindowId int windowId) {
|
||||||
return mSelectors.get(index);
|
return mWindowIdToSelectors.get(windowId);
|
||||||
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp
|
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
@@ -452,38 +454,38 @@ new file mode 100644
|
|||||||
+ Not now
|
+ Not now
|
||||||
+ </message>
|
+ </message>
|
||||||
+</grit-part>
|
+</grit-part>
|
||||||
diff --git a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml b/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml
|
diff --git a/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml b/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml
|
||||||
--- a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml
|
--- a/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml
|
||||||
+++ b/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml
|
+++ b/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml
|
||||||
@@ -82,5 +82,15 @@ found in the LICENSE file.
|
@@ -50,5 +50,15 @@ found in the LICENSE file.
|
||||||
android:paddingEnd="@dimen/snackbar_button_padding"
|
android:paddingEnd="@dimen/snackbar_button_padding"
|
||||||
android:paddingStart="@dimen/snackbar_button_padding"
|
android:paddingStart="@dimen/snackbar_button_padding"
|
||||||
style="@style/TextButton" />
|
style="@style/TextButton" />
|
||||||
+
|
+
|
||||||
+ <org.chromium.ui.widget.ButtonCompat
|
+ <org.chromium.ui.widget.ButtonCompat
|
||||||
+ android:id="@+id/snackbar_dismiss"
|
+ android:id="@+id/snackbar_dismiss"
|
||||||
+ android:layout_width="wrap_content"
|
+ android:layout_width="wrap_content"
|
||||||
+ android:layout_height="wrap_content"
|
+ android:layout_height="wrap_content"
|
||||||
+ android:layout_gravity="center_vertical"
|
+ android:layout_gravity="center_vertical"
|
||||||
+ android:paddingEnd="24dp"
|
+ android:paddingEnd="24dp"
|
||||||
+ android:paddingStart="24dp"
|
+ android:paddingStart="24dp"
|
||||||
+ android:visibility="gone"
|
+ android:visibility="gone"
|
||||||
+ style="@style/TextButton" />
|
+ style="@style/TextButton" />
|
||||||
</LinearLayout>
|
</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
|
||||||
@@ -133,6 +133,8 @@ public class Snackbar {
|
@@ -149,6 +149,8 @@ public class Snackbar {
|
||||||
private String mTemplateText;
|
private @Nullable String mTemplateText;
|
||||||
private String mActionText;
|
private @Nullable String mActionText;
|
||||||
private 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;
|
||||||
@@ -235,6 +237,20 @@ public class Snackbar {
|
@@ -255,6 +257,20 @@ public class Snackbar {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -507,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
|
||||||
@@ -318,6 +318,12 @@ public class SnackbarManager
|
@@ -464,6 +464,12 @@ public class SnackbarManager
|
||||||
new SnackbarView(
|
new SnackbarView(
|
||||||
mActivity,
|
mActivity,
|
||||||
this,
|
this,
|
||||||
@@ -523,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
|
||||||
@@ -51,6 +51,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;
|
||||||
@@ -97,11 +98,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);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
@@ -120,6 +122,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
|
|
||||||
public SnackbarView(
|
|
||||||
Activity activity,
|
|
||||||
OnClickListener listener,
|
|
||||||
+ OnClickListener dismissListener,
|
|
||||||
Snackbar snackbar,
|
|
||||||
ViewGroup parentView,
|
|
||||||
@Nullable WindowAndroid windowAndroid,
|
|
||||||
@@ -147,6 +150,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
|
||||||
@@ -394,6 +399,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);
|
||||||
@@ -578,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
|
||||||
@@ -898,6 +898,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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -604,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);
|
||||||
|
|
||||||
@@ -615,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
|
||||||
@@ -3727,8 +3727,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);
|
||||||
|
|
||||||
@@ -629,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
|
||||||
@@ -1157,6 +1157,12 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi
|
@@ -1171,6 +1171,12 @@ public class WebContentsImpl
|
||||||
WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus);
|
WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -642,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;
|
||||||
@@ -1451,6 +1457,8 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi
|
@@ -1519,6 +1525,8 @@ public class WebContentsImpl
|
||||||
|
|
||||||
void setFocus(long nativeWebContentsAndroid, boolean focused);
|
void setFocus(long nativeWebContentsAndroid, boolean focused);
|
||||||
|
|
||||||
@@ -654,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
|
||||||
@@ -289,6 +289,8 @@ public interface WebContents extends Parcelable {
|
@@ -297,6 +297,8 @@ public interface WebContents extends Parcelable {
|
||||||
*/
|
*/
|
||||||
void setFocus(boolean hasFocus);
|
void setFocus(boolean hasFocus);
|
||||||
|
|
||||||
@@ -666,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
|
||||||
@@ -187,6 +187,9 @@ public class MockWebContents implements WebContents {
|
@@ -191,6 +191,9 @@ public class MockWebContents implements WebContents, WebContentsObserver.Observa
|
||||||
@Override
|
@Override
|
||||||
public void setFocus(boolean hasFocus) {}
|
public void setFocus(boolean hasFocus) {}
|
||||||
|
|
||||||
@@ -711,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
|
||||||
@@ -4289,6 +4289,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() {
|
||||||
@@ -722,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
|
||||||
@@ -3233,6 +3233,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);
|
||||||
@@ -730,7 +718,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
|
|||||||
}
|
}
|
||||||
|
|
||||||
void LocalFrame::DidResume() {
|
void LocalFrame::DidResume() {
|
||||||
@@ -3247,6 +3248,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);
|
||||||
|
|
||||||
@@ -741,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
|
||||||
@@ -979,7 +979,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()) {
|
||||||
@@ -754,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.
|
||||||
@@ -767,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);
|
||||||
}
|
}
|
||||||
@@ -799,7 +801,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
|
||||||
@@ -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
|
||||||
@@ -13,6 +13,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"
|
||||||
@@ -637,7 +638,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"
|
||||||
@@ -709,6 +710,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const {
|
@@ -775,6 +776,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const {
|
||||||
return To<LocalDOMWindow>(GetExecutionContext());
|
return To<LocalDOMWindow>(GetExecutionContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,19 +139,19 @@ 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&);
|
||||||
|
|
||||||
+ static float ShuffleAudioData(float data, unsigned index);
|
+ static float ShuffleAudioData(float data, unsigned index);
|
||||||
+
|
+
|
||||||
protected:
|
protected:
|
||||||
enum ContextType { kRealtimeContext, kOfflineContext };
|
enum class ContextType { kRealtimeContext, kOfflineContext };
|
||||||
|
|
||||||
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
|
||||||
@@ -481,9 +481,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
|
|
||||||
@@ -707,6 +707,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
|
||||||
@@ -390,6 +390,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();
|
||||||
@@ -60,7 +34,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
|
|||||||
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h
|
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h
|
||||||
--- a/third_party/blink/renderer/core/loader/base_fetch_context.h
|
--- a/third_party/blink/renderer/core/loader/base_fetch_context.h
|
||||||
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.h
|
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.h
|
||||||
@@ -84,6 +84,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext {
|
@@ -86,6 +86,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext {
|
||||||
|
|
||||||
virtual SubresourceFilter* GetSubresourceFilter() const = 0;
|
virtual SubresourceFilter* GetSubresourceFilter() const = 0;
|
||||||
virtual bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const = 0;
|
virtual bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const = 0;
|
||||||
@@ -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
|
||||||
@@ -996,6 +996,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
|
||||||
@@ -182,6 +182,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
|
||||||
@@ -102,6 +102,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) {
|
||||||
@@ -189,6 +213,13 @@ ScriptPromise<BackgroundFetchRegistration> BackgroundFetchManager::fetch(
|
@@ -191,6 +215,13 @@ ScriptPromise<BackgroundFetchRegistration> BackgroundFetchManager::fetch(
|
||||||
exception_state);
|
exception_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -4678,7 +4678,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"
|
||||||
@@ -125,8 +126,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
|
||||||
@@ -820,6 +820,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_;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2902,6 +2907,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
|
||||||
@@ -780,7 +780,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
|
|
||||||
@@ -128,6 +128,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);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -568,7 +573,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
|
|
||||||
@@ -951,6 +951,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
|
|
||||||
@@ -1079,6 +1079,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"
|
|
||||||
@@ -53,6 +54,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 {
|
|
||||||
|
|
||||||
@@ -635,6 +637,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
|
|
||||||
@@ -49,6 +49,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"
|
|
||||||
@@ -601,6 +602,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.
|
|
||||||
--
|
|
||||||
@@ -28,54 +28,48 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c
|
|||||||
<item
|
<item
|
||||||
android:id="@+id/import_menu_id"
|
android:id="@+id/import_menu_id"
|
||||||
android:icon="@drawable/ic_folder_blue_24dp"
|
android:icon="@drawable/ic_folder_blue_24dp"
|
||||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
|
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
|
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
|
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
|
||||||
@@ -26,6 +26,8 @@ import java.util.ArrayList;
|
@@ -28,6 +28,7 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
+import java.util.HashSet;
|
+import java.util.HashSet;
|
||||||
+
|
|
||||||
/**
|
/**
|
||||||
* 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
|
||||||
* the current context.
|
@@ -197,6 +198,11 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
|
||||||
@@ -186,12 +188,16 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
|
|
||||||
void setCurrentFolder(BookmarkId folder) {
|
void setCurrentFolder(BookmarkId folder) {
|
||||||
mCurrentFolder = mBookmarkModel.getBookmarkById(folder);
|
mCurrentFolder = mBookmarkModel.getBookmarkById(folder);
|
||||||
enableImportExportMenu();
|
enableImportExportMenu();
|
||||||
+ enableSelectAllMenu();
|
+ enableSelectAllMenu();
|
||||||
}
|
+ }
|
||||||
|
|
||||||
void enableImportExportMenu() {
|
|
||||||
getMenu().findItem(R.id.import_menu_id).setVisible(true);
|
|
||||||
getMenu().findItem(R.id.export_menu_id).setVisible(true);
|
|
||||||
}
|
|
||||||
+
|
+
|
||||||
+ void enableSelectAllMenu() {
|
+ void enableSelectAllMenu() {
|
||||||
+ getMenu().findItem(R.id.select_all_menu_id).setVisible(true);
|
+ getMenu().findItem(R.id.select_all_menu_id).setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setNavigateBackRunnable(Runnable navigateBackRunnable) {
|
void enableImportExportMenu() {
|
||||||
@@ -218,6 +224,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);
|
||||||
+ }
|
+ }
|
||||||
+ return true;
|
+ return true;
|
||||||
+ }
|
+ }
|
||||||
return mMenuIdClickedFunction.apply(menuItem.getItemId());
|
return assumeNonNull(mMenuIdClickedFunction).apply(menuItem.getItemId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -235,6 +252,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);
|
||||||
@@ -86,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||||||
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
|
||||||
@@ -246,6 +246,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
|
||||||
@@ -26,7 +26,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 | 47 ++-
|
.../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 | 114 +------
|
.../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, 1271 insertions(+), 129 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
|
||||||
@@ -322,6 +322,7 @@ if (current_toolchain == 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,26 +76,26 @@ 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
|
||||||
@@ -433,6 +433,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",
|
||||||
@@ -621,6 +622,7 @@ chrome_java_resources = [
|
@@ -650,6 +651,7 @@ chrome_java_resources = [
|
||||||
"java/res/xml/about_chrome_preferences.xml",
|
|
||||||
"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/adblock_preferences.xml",
|
+ "java/res/xml/adblock_preferences.xml",
|
||||||
"java/res/xml/bookmark_widget_info.xml",
|
"java/res/xml/bookmark_widget_info.xml",
|
||||||
"java/res/xml/clear_browsing_data_preferences_tab.xml",
|
"java/res/xml/clear_browsing_data_preferences.xml",
|
||||||
"java/res/xml/contextual_search_preferences.xml",
|
"java/res/xml/contextual_search_preferences.xml",
|
||||||
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
|
||||||
@@ -928,6 +928,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,7 +179,7 @@ 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
|
||||||
@@ -256,6 +256,24 @@ found in the LICENSE file.
|
@@ -339,6 +339,24 @@ found in the LICENSE file.
|
||||||
</item>
|
</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -924,9 +924,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);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
+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
|
||||||
@@ -16566,6 +16566,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
|
||||||
@@ -29,6 +29,8 @@
|
@@ -24,6 +24,9 @@
|
||||||
#include "chromeos/startup/browser_params_proxy.h"
|
#include "chrome/browser/ui/ash/login/login_display_host.h"
|
||||||
#endif // BUILDFLAG(IS_CHROMEOS_LACROS)
|
#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 {
|
||||||
@@ -134,6 +136,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 "build/chromeos_buildflags.h"
|
|
||||||
#include "chrome/common/buildflags.h"
|
|
||||||
#include "media/media_buildflags.h"
|
|
||||||
+#include "components/component_updater/adblock_updater_service.h"
|
|
||||||
|
|
||||||
class BackgroundModeManager;
|
|
||||||
class BrowserProcessPlatformPart;
|
|
||||||
@@ -86,6 +87,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;
|
||||||
}
|
}
|
||||||
@@ -264,6 +269,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
|
||||||
@@ -1220,6 +1220,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,
|
||||||
@@ -421,6 +422,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
|
||||||
@@ -468,6 +468,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.";
|
||||||
|
|
||||||
@@ -576,12 +601,12 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows
|
|||||||
+ g_browser_process->adblock_updater();
|
+ g_browser_process->adblock_updater();
|
||||||
+
|
+
|
||||||
#else
|
#else
|
||||||
#if BUILDFLAG(IS_CHROMEOS_LACROS)
|
profile_info =
|
||||||
// Lacros has a special "primary" profile that is tied to the active ChromeOS
|
GetStartupProfile(/*cur_dir=*/base::FilePath(), parsed_command_line);
|
||||||
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
|
||||||
@@ -651,6 +651,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
|
||||||
@@ -218,6 +218,20 @@ CHAR_LIMIT guidelines:
|
@@ -245,6 +245,20 @@ CHAR_LIMIT guidelines:
|
||||||
Advanced
|
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
|
||||||
@@ -2846,6 +2846,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
|
||||||
@@ -373,6 +373,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/strings/stringprintf.h"
|
|
||||||
#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 "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"
|
||||||
@@ -112,6 +115,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,17 +1602,17 @@ 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::
|
||||||
@@ -672,6 +676,17 @@ ContentSubresourceFilterThrottleManager::
|
@@ -658,6 +662,17 @@ ContentSubresourceFilterThrottleManager::
|
||||||
throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
|
throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
|
||||||
ad_tagging_state);
|
ad_tagging_state);
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ const GURL& url(navigation_handle->GetURL());
|
+ const GURL& url(navigation_handle.GetURL());
|
||||||
+ if (profile_context_->settings_manager()->GetSitePermission(url) != CONTENT_SETTING_ALLOW) {
|
+ if (profile_context_->settings_manager()->GetSitePermission(url) != CONTENT_SETTING_ALLOW) {
|
||||||
+ subresource_filter::ActivationDecision ignored_decision;
|
+ subresource_filter::ActivationDecision ignored_decision;
|
||||||
+ mojom::ActivationState ad_filtering_state;
|
+ mojom::ActivationState ad_filtering_state;
|
||||||
+ ad_filtering_state.activation_level = profile_interaction_manager_->OnPageActivationComputed(
|
+ ad_filtering_state.activation_level = profile_interaction_manager_->OnPageActivationComputed(
|
||||||
+ navigation_handle, mojom::ActivationLevel::kEnabled, &ignored_decision);
|
+ &navigation_handle, mojom::ActivationLevel::kEnabled, &ignored_decision);
|
||||||
+ throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
|
+ throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
|
||||||
+ ad_filtering_state);
|
+ ad_filtering_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
|
||||||
@@ -414,6 +414,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
|
||||||
@@ -51,12 +51,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,23 +1649,22 @@ 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,10 +232,13 @@ RulesetService::RulesetService(
|
@@ -236,11 +231,13 @@ RulesetService::RulesetService(
|
||||||
RulesetService::~RulesetService() = default;
|
RulesetService::~RulesetService() = default;
|
||||||
|
|
||||||
void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded(
|
void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded(
|
||||||
- const UnindexedRulesetInfo& unindexed_ruleset_info) {
|
- const UnindexedRulesetInfo& unindexed_ruleset_info) {
|
||||||
- if (unindexed_ruleset_info.content_version.empty())
|
|
||||||
+ const UnindexedRulesetInfo& unindexed_ruleset_info, bool ignore_recent_version) {
|
+ const UnindexedRulesetInfo& unindexed_ruleset_info, bool ignore_recent_version) {
|
||||||
+ if (unindexed_ruleset_info.content_version.empty()) {
|
if (unindexed_ruleset_info.content_version.empty()) {
|
||||||
+ LOG(INFO) << "RulesetService: ignoring update with empty version.";
|
+ LOG(INFO) << "RulesetService: ignoring update with empty version.";
|
||||||
return;
|
return;
|
||||||
+ }
|
}
|
||||||
|
|
||||||
+ if (!ignore_recent_version) {
|
+ if (!ignore_recent_version) {
|
||||||
// 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
|
||||||
@@ -250,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) {
|
||||||
@@ -1671,7 +1681,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -276,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) {
|
||||||
@@ -1695,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);
|
||||||
|
|
||||||
@@ -283,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()) {
|
||||||
@@ -1703,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);
|
||||||
@@ -297,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)) {
|
||||||
@@ -1711,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);
|
||||||
@@ -304,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()) {
|
||||||
@@ -1727,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);
|
||||||
@@ -325,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)) {
|
||||||
@@ -1735,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);
|
||||||
@@ -345,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) {
|
||||||
@@ -1745,20 +1755,20 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic
|
|||||||
|
|
||||||
+ LOG(INFO) << "RulesetService: successful parsing.";
|
+ LOG(INFO) << "RulesetService: successful parsing.";
|
||||||
+
|
+
|
||||||
CHECK(indexed_version.IsValid(), base::NotFatalUntil::M129);
|
CHECK(indexed_version.IsValid());
|
||||||
return indexed_version;
|
return indexed_version;
|
||||||
}
|
}
|
||||||
@@ -470,6 +492,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(), base::NotFatalUntil::M129);
|
CHECK(!result_callback.is_null());
|
||||||
+ LOG(INFO) << "RulesetService: valid version: " << version.IsValid();
|
+ LOG(INFO) << "RulesetService: valid version: " << version.IsValid();
|
||||||
if (!version.IsValid())
|
if (!version.IsValid()) {
|
||||||
return;
|
return;
|
||||||
version.SaveToPrefs(local_state_);
|
}
|
||||||
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.
|
||||||
@@ -1781,10 +1791,10 @@ 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
|
||||||
@@ -13,6 +13,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"
|
||||||
#include "ui/base/resource/resource_bundle.h"
|
#include "ui/base/resource/resource_bundle.h"
|
||||||
@@ -1792,7 +1802,7 @@ diff --git a/components/subresource_filter/content/shared/browser/unindexed_rule
|
|||||||
|
|
||||||
namespace subresource_filter {
|
namespace subresource_filter {
|
||||||
|
|
||||||
@@ -49,6 +50,8 @@ void UnindexedRulesetStreamGenerator::GenerateStreamFromFile(
|
@@ -46,6 +47,8 @@ void UnindexedRulesetStreamGenerator::GenerateStreamFromFile(
|
||||||
|
|
||||||
ruleset_size_ = unindexed_ruleset_file.GetLength();
|
ruleset_size_ = unindexed_ruleset_file.GetLength();
|
||||||
|
|
||||||
@@ -1804,7 +1814,7 @@ diff --git a/components/subresource_filter/content/shared/browser/unindexed_rule
|
|||||||
diff --git a/components/subresource_filter/core/browser/ruleset_version.h b/components/subresource_filter/core/browser/ruleset_version.h
|
diff --git a/components/subresource_filter/core/browser/ruleset_version.h b/components/subresource_filter/core/browser/ruleset_version.h
|
||||||
--- a/components/subresource_filter/core/browser/ruleset_version.h
|
--- a/components/subresource_filter/core/browser/ruleset_version.h
|
||||||
+++ b/components/subresource_filter/core/browser/ruleset_version.h
|
+++ b/components/subresource_filter/core/browser/ruleset_version.h
|
||||||
@@ -54,6 +54,10 @@ struct UnindexedRulesetInfo {
|
@@ -53,6 +53,10 @@ struct UnindexedRulesetInfo {
|
||||||
// can be indicated not only by setting |license_path| to empty, but also by
|
// can be indicated not only by setting |license_path| to empty, but also by
|
||||||
// setting it to any non existent path.
|
// setting it to any non existent path.
|
||||||
base::FilePath license_path;
|
base::FilePath license_path;
|
||||||
@@ -1818,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,71 +55,8 @@ class CommaSeparatedStrings {
|
@@ -54,75 +54,8 @@ class CommaSeparatedStrings {
|
||||||
const std::vector<std::string_view> pieces_;
|
const std::vector<std::string_view> pieces_;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1826,8 +1836,9 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
|
|||||||
- std::map<std::string, std::string>* params,
|
- std::map<std::string, std::string>* params,
|
||||||
- const std::string& key) {
|
- const std::string& key) {
|
||||||
- auto it = params->find(key);
|
- auto it = params->find(key);
|
||||||
- if (it == params->end())
|
- if (it == params->end()) {
|
||||||
- return std::string();
|
- return std::string();
|
||||||
|
- }
|
||||||
- std::string value = std::move(it->second);
|
- std::string value = std::move(it->second);
|
||||||
- params->erase(it);
|
- params->erase(it);
|
||||||
- return value;
|
- return value;
|
||||||
@@ -1835,21 +1846,23 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
|
|||||||
-
|
-
|
||||||
-mojom::ActivationLevel ParseActivationLevel(std::string_view activation_level) {
|
-mojom::ActivationLevel ParseActivationLevel(std::string_view activation_level) {
|
||||||
- if (base::EqualsCaseInsensitiveASCII(activation_level,
|
- if (base::EqualsCaseInsensitiveASCII(activation_level,
|
||||||
- kActivationLevelEnabled))
|
- kActivationLevelEnabled)) {
|
||||||
- return mojom::ActivationLevel::kEnabled;
|
- return mojom::ActivationLevel::kEnabled;
|
||||||
- else if (base::EqualsCaseInsensitiveASCII(activation_level,
|
- } else if (base::EqualsCaseInsensitiveASCII(activation_level,
|
||||||
- kActivationLevelDryRun))
|
- kActivationLevelDryRun)) {
|
||||||
- return mojom::ActivationLevel::kDryRun;
|
- return mojom::ActivationLevel::kDryRun;
|
||||||
|
- }
|
||||||
- return mojom::ActivationLevel::kDisabled;
|
- return mojom::ActivationLevel::kDisabled;
|
||||||
-}
|
-}
|
||||||
-
|
-
|
||||||
-ActivationScope ParseActivationScope(std::string_view activation_scope) {
|
-ActivationScope ParseActivationScope(std::string_view activation_scope) {
|
||||||
- if (base::EqualsCaseInsensitiveASCII(activation_scope,
|
- if (base::EqualsCaseInsensitiveASCII(activation_scope,
|
||||||
- kActivationScopeAllSites))
|
- kActivationScopeAllSites)) {
|
||||||
- return ActivationScope::ALL_SITES;
|
- return ActivationScope::ALL_SITES;
|
||||||
- else if (base::EqualsCaseInsensitiveASCII(activation_scope,
|
- } else if (base::EqualsCaseInsensitiveASCII(activation_scope,
|
||||||
- kActivationScopeActivationList))
|
- kActivationScopeActivationList)) {
|
||||||
- return ActivationScope::ACTIVATION_LIST;
|
- return ActivationScope::ACTIVATION_LIST;
|
||||||
|
- }
|
||||||
- return ActivationScope::NO_SITES;
|
- return ActivationScope::NO_SITES;
|
||||||
-}
|
-}
|
||||||
-
|
-
|
||||||
@@ -1874,8 +1887,9 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
|
|||||||
-// Will return a value between 0 and 1 inclusive.
|
-// Will return a value between 0 and 1 inclusive.
|
||||||
-double ParsePerformanceMeasurementRate(const std::string& rate) {
|
-double ParsePerformanceMeasurementRate(const std::string& rate) {
|
||||||
- double value = 0.0;
|
- double value = 0.0;
|
||||||
- if (!base::StringToDouble(rate, &value) || value < 0)
|
- if (!base::StringToDouble(rate, &value) || value < 0) {
|
||||||
- return 0.0;
|
- return 0.0;
|
||||||
|
- }
|
||||||
- return value < 1 ? value : 1;
|
- return value < 1 ? value : 1;
|
||||||
-}
|
-}
|
||||||
-
|
-
|
||||||
@@ -1884,14 +1898,14 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
|
|||||||
- base::StringToInt(value, &result);
|
- base::StringToInt(value, &result);
|
||||||
- return result;
|
- return result;
|
||||||
-}
|
-}
|
||||||
|
-
|
||||||
-std::vector<Configuration> FillEnabledPresetConfigurations(
|
std::vector<Configuration> FillEnabledPresetConfigurations(
|
||||||
- std::map<std::string, std::string>* params) {
|
- std::map<std::string, std::string>* params) {
|
||||||
+std::vector<Configuration> FillEnabledPresetConfigurations() {
|
+ /*std::map<std::string, std::string>* params*/) {
|
||||||
// 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 {
|
||||||
@@ -127,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[] = {
|
||||||
@@ -1917,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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -151,46 +81,10 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
|
@@ -154,48 +80,12 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
|
||||||
return enabled_configurations;
|
return enabled_configurations;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1956,15 +1970,17 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
|
|||||||
- base::GetFieldTrialParamsByFeature(kSafeBrowsingSubresourceFilter, ¶ms);
|
- base::GetFieldTrialParamsByFeature(kSafeBrowsingSubresourceFilter, ¶ms);
|
||||||
-
|
-
|
||||||
std::vector<Configuration> configs;
|
std::vector<Configuration> configs;
|
||||||
if (base::FeatureList::IsEnabled(kSafeBrowsingSubresourceFilter))
|
if (base::FeatureList::IsEnabled(kSafeBrowsingSubresourceFilter)) {
|
||||||
- configs = FillEnabledPresetConfigurations(¶ms);
|
- configs = FillEnabledPresetConfigurations(¶ms);
|
||||||
-
|
+ configs = FillEnabledPresetConfigurations();
|
||||||
|
}
|
||||||
|
|
||||||
- Configuration experimental_config = ParseExperimentalConfiguration(¶ms);
|
- Configuration experimental_config = ParseExperimentalConfiguration(¶ms);
|
||||||
- configs.push_back(std::move(experimental_config));
|
- configs.push_back(std::move(experimental_config));
|
||||||
+ configs = FillEnabledPresetConfigurations();
|
-
|
||||||
|
|
||||||
return configs;
|
return configs;
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/components/subresource_filter/core/browser/verified_ruleset_dealer.cc b/components/subresource_filter/core/browser/verified_ruleset_dealer.cc
|
diff --git a/components/subresource_filter/core/browser/verified_ruleset_dealer.cc b/components/subresource_filter/core/browser/verified_ruleset_dealer.cc
|
||||||
--- a/components/subresource_filter/core/browser/verified_ruleset_dealer.cc
|
--- a/components/subresource_filter/core/browser/verified_ruleset_dealer.cc
|
||||||
+++ b/components/subresource_filter/core/browser/verified_ruleset_dealer.cc
|
+++ b/components/subresource_filter/core/browser/verified_ruleset_dealer.cc
|
||||||
@@ -1973,10 +1989,10 @@ diff --git a/components/subresource_filter/core/browser/verified_ruleset_dealer.
|
|||||||
#include "base/functional/callback_helpers.h"
|
#include "base/functional/callback_helpers.h"
|
||||||
#include "base/location.h"
|
#include "base/location.h"
|
||||||
+#include "base/logging.h"
|
+#include "base/logging.h"
|
||||||
#include "base/not_fatal_until.h"
|
|
||||||
#include "base/notreached.h"
|
#include "base/notreached.h"
|
||||||
#include "base/task/sequenced_task_runner.h"
|
#include "base/task/sequenced_task_runner.h"
|
||||||
@@ -40,6 +41,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile(
|
#include "base/trace_event/trace_event.h"
|
||||||
|
@@ -39,6 +40,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile(
|
||||||
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"),
|
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"),
|
||||||
"VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid",
|
"VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid",
|
||||||
file->IsValid());
|
file->IsValid());
|
||||||
@@ -1989,14 +2005,14 @@ 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/not_fatal_until.h"
|
|
||||||
#include "base/strings/strcat.h"
|
#include "base/strings/strcat.h"
|
||||||
|
#include "base/trace_event/trace_event.h"
|
||||||
@@ -38,7 +39,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.
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -1310,6 +1310,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
|
@@ -1474,6 +1474,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
|
||||||
|
// initialized.
|
||||||
void UpdateAccessibleNameForRootView();
|
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.
|
||||||
@@ -1348,13 +1361,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,
|
||||||
@@ -1365,11 +1371,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,24 +6,37 @@ 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
|
||||||
@@ -142,9 +142,14 @@ TabUnderNavigationThrottle::MaybeBlockNavigation() {
|
@@ -143,9 +143,14 @@ TabUnderNavigationThrottle::MaybeBlockNavigation() {
|
||||||
|
|
||||||
LogTabUnderAttempt(navigation_handle());
|
LogTabUnderAttempt(navigation_handle());
|
||||||
|
|
||||||
@@ -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},
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||||
@@ -200,6 +200,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
|
||||||
@@ -835,6 +835,10 @@ void PreflightController::ClearCorsPreflightCache(
|
@@ -644,6 +644,10 @@ void PreflightController::ClearCorsPreflightCache(
|
||||||
cache_.ClearCache(std::move(url_filter));
|
cache_.ClearCache(std::move(url_filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,13 +51,13 @@ diff --git a/services/network/cors/preflight_controller.cc b/services/network/co
|
|||||||
+
|
+
|
||||||
void PreflightController::RemoveLoader(PreflightLoader* loader) {
|
void PreflightController::RemoveLoader(PreflightLoader* loader) {
|
||||||
auto it = loaders_.find(loader);
|
auto it = loaders_.find(loader);
|
||||||
CHECK(it != loaders_.end(), base::NotFatalUntil::M130);
|
CHECK(it != loaders_.end());
|
||||||
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
|
||||||
@@ -1317,6 +1317,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 | 5 +++++
|
.../renderer/core/loader/frame_fetch_context.cc | 4 +++-
|
||||||
15 files changed, 55 insertions(+), 13 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
|
||||||
@@ -190,9 +190,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,67 +76,57 @@ 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
|
||||||
@@ -60,6 +60,7 @@
|
@@ -57,6 +57,7 @@
|
||||||
#include "third_party/blink/public/common/permissions_policy/origin_with_possible_wildcards.h"
|
#include "third_party/blink/public/common/features.h"
|
||||||
#include "third_party/blink/public/common/permissions_policy/permissions_policy.h"
|
#include "third_party/blink/public/common/page/page_zoom.h"
|
||||||
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
|
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
|
||||||
+#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
|
+#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
|
||||||
#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"
|
||||||
@@ -704,7 +705,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 ||
|
||||||
@@ -886,10 +888,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;
|
||||||
@@ -975,6 +979,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;
|
||||||
@@ -1283,6 +1283,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
|
||||||
@@ -109,6 +109,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 =
|
||||||
@@ -156,12 +182,12 @@ diff --git a/third_party/blink/common/client_hints/client_hints.cc b/third_party
|
|||||||
@@ -14,6 +14,7 @@
|
@@ -14,6 +14,7 @@
|
||||||
#include "base/strings/string_util.h"
|
#include "base/strings/string_util.h"
|
||||||
#include "services/network/public/cpp/client_hints.h"
|
#include "services/network/public/cpp/client_hints.h"
|
||||||
#include "third_party/blink/public/common/features.h"
|
#include "services/network/public/cpp/permissions_policy/client_hints_permissions_policy_mapping.h"
|
||||||
+#include "third_party/blink/public/common/features_generated.h"
|
+#include "third_party/blink/public/common/features_generated.h"
|
||||||
#include "third_party/blink/public/common/permissions_policy/permissions_policy.h"
|
#include "services/network/public/cpp/permissions_policy/permissions_policy.h"
|
||||||
|
#include "third_party/blink/public/common/features.h"
|
||||||
#include "url/origin.h"
|
#include "url/origin.h"
|
||||||
|
@@ -22,11 +23,12 @@ namespace blink {
|
||||||
@@ -106,11 +107,12 @@ const PolicyFeatureToClientHintMap& GetPolicyFeatureToClientHintMap() {
|
|
||||||
|
|
||||||
bool IsClientHintSentByDefault(network::mojom::WebClientHintsType type) {
|
bool IsClientHintSentByDefault(network::mojom::WebClientHintsType type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
@@ -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
|
||||||
@@ -219,6 +219,7 @@ ScriptPromise<UADataValues> NavigatorUAData::getHighEntropyValues(
|
@@ -113,6 +113,7 @@ const String& NavigatorUAData::platform() const {
|
||||||
Dactyloscoper::RecordDirectSurface(
|
}
|
||||||
GetExecutionContext(), WebFeature::kNavigatorUAData_Platform, platform());
|
|
||||||
|
|
||||||
+ if ((false))
|
bool AllowedToCollectHighEntropyValues(ExecutionContext* execution_context) {
|
||||||
for (const String& hint : hints) {
|
+ if ((true)) return false;
|
||||||
if (hint == "platformVersion") {
|
// To determine whether a document is allowed to get high-entropy
|
||||||
values->setPlatformVersion(platform_version_);
|
// client hints returned by navigator.userAgentData.getHighEntropyValues(),
|
||||||
|
// 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
|
||||||
@@ -217,6 +217,8 @@ bool ShouldSendClientHint(const 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(
|
||||||
@@ -610,7 +612,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,9 +283,9 @@ 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
|
||||||
@@ -417,6 +417,11 @@
|
@@ -678,6 +678,11 @@
|
||||||
name: "AriaNotify",
|
name: "AriaNotifyV2",
|
||||||
status: "test",
|
status: {"Android": "test", "Win": "test", "Mac": "test", "Linux": "test"},
|
||||||
},
|
},
|
||||||
+ {
|
+ {
|
||||||
+ name: "UserAgentClientHint",
|
+ name: "UserAgentClientHint",
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -472,7 +472,7 @@ const base::FeatureParam<bool> kIpPrivacyOnlyInIncognito{
|
@@ -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
|
||||||
@@ -663,6 +663,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,8 +8,8 @@ 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 | 198 ++++++++++++++++++
|
.../res/xml/privacy_preferences_cromite.xml | 196 ++++++++++++++++++
|
||||||
.../privacy/settings/PrivacySettings.java | 4 +-
|
.../privacy/settings/PrivacySettings.java | 6 +-
|
||||||
.../Cromite-settings-ui.grdp | 15 ++
|
.../Cromite-settings-ui.grdp | 15 ++
|
||||||
5 files changed, 218 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
|
||||||
@@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|||||||
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
|
||||||
@@ -640,7 +640,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,198 @@
|
@@ -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
|
||||||
@@ -68,13 +68,12 @@ new file mode 100644
|
|||||||
+ android:key="clear_browsing_data"
|
+ android:key="clear_browsing_data"
|
||||||
+ android:title="@string/clear_browsing_data_title"
|
+ android:title="@string/clear_browsing_data_title"
|
||||||
+ android:summary="@string/clear_browsing_data_summary"
|
+ android:summary="@string/clear_browsing_data_summary"
|
||||||
+ android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataTabsFragment" />
|
+ android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragment" />
|
||||||
+ <Preference
|
+ <Preference
|
||||||
+ android:key="clear_browsing_data_advanced"
|
+ android:key="clear_browsing_data_advanced"
|
||||||
+ android:title="@string/clear_browsing_data_title"
|
+ android:title="@string/clear_browsing_data_at_start_title"
|
||||||
+ android:summary="@string/clear_browsing_data_summary"
|
+ android:summary="@string/clear_browsing_data_at_start_summary"
|
||||||
+ android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragmentAdvanced"
|
+ android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragmentAtStart" />
|
||||||
+ app:isPreferenceVisible="false" />
|
|
||||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||||
+ android:key="close_tabs_on_exit"
|
+ android:key="close_tabs_on_exit"
|
||||||
+ android:title="@string/close_tabs_on_exit_title"
|
+ android:title="@string/close_tabs_on_exit_title"
|
||||||
@@ -109,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"/>
|
||||||
@@ -173,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"/>
|
||||||
@@ -189,13 +199,12 @@ new file mode 100644
|
|||||||
+ android:title="@string/improve_search_suggestions_title"
|
+ android:title="@string/improve_search_suggestions_title"
|
||||||
+ android:summary="@string/improve_search_suggestions_summary"
|
+ android:summary="@string/improve_search_suggestions_summary"
|
||||||
+ android:persistent="false"/>
|
+ android:persistent="false"/>
|
||||||
+ <Preference
|
|
||||||
+ android:key="phone_as_a_security_key"
|
|
||||||
+ android:title="@string/cablev2_paask_title"
|
|
||||||
+ android:summary="@string/cablev2_paask_body"
|
|
||||||
+ android:fragment="org.chromium.chrome.browser.webauthn.PrivacySettingsFragment" />
|
|
||||||
+
|
+
|
||||||
+ <!--Always hidden-->
|
+ <!--Always hidden-->
|
||||||
|
+ <org.chromium.chrome.browser.safety_hub.SafetyHubExpandablePreference
|
||||||
|
+ android:key="advanced_protection_info"
|
||||||
|
+ android:title="@string/settings_privacy_and_security_advanced_protection_section_title"
|
||||||
|
+ app:isPreferenceVisible="false" />
|
||||||
+ <Preference
|
+ <Preference
|
||||||
+ android:key="safe_browsing"
|
+ android:key="safe_browsing"
|
||||||
+ android:title="@string/prefs_safe_browsing_title"
|
+ android:title="@string/prefs_safe_browsing_title"
|
||||||
@@ -219,16 +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="ip_protection"
|
|
||||||
+ android:title="@string/ip_protection_title"
|
|
||||||
+ android:fragment="org.chromium.components.privacy_sandbox.IpProtectionSettingsFragment"
|
|
||||||
+ app:isPreferenceVisible="false" />
|
|
||||||
+ <Preference
|
|
||||||
+ android:key="fp_protection"
|
|
||||||
+ android:title="@string/tracking_protection_fingerprinting_protection_title"
|
|
||||||
+ android:fragment="org.chromium.components.privacy_sandbox.FingerprintingProtectionSettingsFragment"
|
|
||||||
+ 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,31 +246,32 @@ new file mode 100644
|
|||||||
+ <org.chromium.components.browser_ui.settings.ChromeBasePreference
|
+ <org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||||
+ android:key="javascript_optimizer"
|
+ android:key="javascript_optimizer"
|
||||||
+ android:title="@string/website_settings_privacy_and_security_javascript_optimizer_row_label"
|
+ android:title="@string/website_settings_privacy_and_security_javascript_optimizer_row_label"
|
||||||
+ android:summary="@string/website_settings_privacy_and_security_javascript_optimizer_summary"
|
|
||||||
+ android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings"
|
+ android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings"
|
||||||
+ app:isPreferenceVisible="false" />
|
+ app:isPreferenceVisible="false" />
|
||||||
+</PreferenceScreen>
|
+</PreferenceScreen>
|
||||||
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
|
||||||
@@ -152,7 +152,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -204,7 +204,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
public void onCreatePreferencesCromite(Bundle savedInstanceState, 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 fpProtectionPreference = findPreference(PREF_FP_PROTECTION);
|
Preference sandboxPreference = findPreference(PREF_PRIVACY_SANDBOX);
|
||||||
fpProtectionPreference.setVisible(shouldShowFpProtectionUi());
|
// Overwrite the click listener to pass a correct referrer to the fragment.
|
||||||
@@ -249,7 +249,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
@@ -291,7 +291,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||||
(ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION);
|
|
||||||
if (ChromeFeatureList.isEnabled(ChromeFeatureList.PASSWORD_LEAK_TOGGLE_MOVE)) {
|
|
||||||
passwordLeakTogglePref.setOnPreferenceChangeListener(this);
|
|
||||||
- } else {
|
|
||||||
+ } else if (passwordLeakTogglePref != null) {
|
|
||||||
passwordLeakTogglePref.setVisible(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
ChromeSwitchPreference passwordLeakTogglePref =
|
||||||
|
(ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION);
|
||||||
|
- passwordLeakTogglePref.setOnPreferenceChangeListener(this);
|
||||||
|
+ if (passwordLeakTogglePref != null) {
|
||||||
|
+ passwordLeakTogglePref.setVisible(false);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
mSearchSuggestions = (ChromeSwitchPreference) findPreference(PREF_SEARCH_SUGGESTIONS);
|
||||||
|
mSearchSuggestions.setOnPreferenceChangeListener(this);
|
||||||
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp
|
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
|
|||||||
@@ -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,37 +39,60 @@ 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 +
|
||||||
|
.../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
|
||||||
.../version_ui/resources/about_version.ts | 2 +-
|
.../webui/version/resources/about_version.ts | 4 +-
|
||||||
.../resources/about_version_mobile.css | 9 ++
|
.../resources/about_version_mobile.css | 10 ++
|
||||||
content/child/runtime_features.cc | 26 +++--
|
content/child/runtime_features.cc | 44 ++++-----
|
||||||
|
.../Cromite-Branding.inc | 1 +
|
||||||
tools/grit/grit/grd_reader.py | 35 +++++++
|
tools/grit/grit/grd_reader.py | 35 +++++++
|
||||||
55 files changed, 189 insertions(+), 120 deletions(-)
|
69 files changed, 272 insertions(+), 179 deletions(-)
|
||||||
|
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
|
||||||
@@ -55,6 +55,14 @@ buildflag_header("branding_buildflags") {
|
@@ -56,6 +56,14 @@ buildflag_header("branding_buildflags") {
|
||||||
}
|
flags += [ "ENABLE_BUILTIN_SEARCH_PROVIDER_ASSETS=$enable_builtin_search_provider_assets" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
+buildflag_header("cromite_buildflags") {
|
+buildflag_header("cromite_buildflags") {
|
||||||
@@ -82,8 +109,8 @@ 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
|
||||||
@@ -186,6 +186,10 @@ declare_args() {
|
@@ -184,6 +184,10 @@ declare_args() {
|
||||||
clang_unsafe_buffers_paths = ""
|
clang_warning_suppression_file = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
+declare_args() {
|
+declare_args() {
|
||||||
@@ -96,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
|
||||||
@@ -178,7 +178,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"
|
||||||
@@ -128,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"
|
||||||
@@ -137,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"
|
||||||
@@ -152,7 +178,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
|||||||
+ android:order="1004"
|
+ android:order="1004"
|
||||||
android:layout="@layout/account_management_account_row"
|
android:layout="@layout/account_management_account_row"
|
||||||
android:title="@string/prefs_google_services"
|
android:title="@string/prefs_google_services"
|
||||||
android:icon="@drawable/ic_google_services_48dp"
|
android:icon="@drawable/ic_google_services_48dp_with_bg"
|
||||||
diff --git a/chrome/android/java/res_chromium_base/drawable/themed_app_icon.xml b/chrome/android/java/res_chromium_base/drawable/themed_app_icon.xml
|
diff --git a/chrome/android/java/res_chromium_base/drawable/themed_app_icon.xml b/chrome/android/java/res_chromium_base/drawable/themed_app_icon.xml
|
||||||
--- a/chrome/android/java/res_chromium_base/drawable/themed_app_icon.xml
|
--- a/chrome/android/java/res_chromium_base/drawable/themed_app_icon.xml
|
||||||
+++ b/chrome/android/java/res_chromium_base/drawable/themed_app_icon.xml
|
+++ b/chrome/android/java/res_chromium_base/drawable/themed_app_icon.xml
|
||||||
@@ -9134,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
|
||||||
@@ -9177,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
|
||||||
@@ -392,7 +392,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.">
|
||||||
@@ -9189,27 +9258,27 @@ 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
|
||||||
@@ -530,7 +530,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 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.">
|
||||||
- Discover more extensions and themes on the <ph name="BEGIN_LINK"><a target="_blank" href="$1"></ph>Chrome Web Store<ph name="END_LINK"></a> <ex></a></ex> </ph>
|
- Discover more extensions and themes on the <ph name="BEGIN_LINK"><a target="_blank" href="$1"></ph>Chrome Web Store<ph name="END_LINK"></a> <ex></a></ex> </ph>
|
||||||
+ Discover more extensions and themes on the <ph name="BEGIN_LINK"><a target="_blank" href="$1"></ph>Chromedontreplace Web Store<ph name="END_LINK"></a> <ex></a></ex> </ph>
|
+ Discover more extensions and themes on the <ph name="BEGIN_LINK"><a target="_blank" href="$1"></ph>Chromedontreplace Web Store<ph name="END_LINK"></a> <ex></a></ex> </ph>
|
||||||
</message>
|
</message>
|
||||||
<message name="IDS_EXTENSIONS_SIDEBAR_KEYBOARD_SHORTCUTS" desc="The text for the link to manage keyboard shortcuts for extensions.">
|
<message name="IDS_EXTENSIONS_WHATS_NEW_SIDEBAR_PROMO" desc="The text displayed in the sidebar of the chrome://extensions page to promote the extension documenation, for when the user is in developer mode.">
|
||||||
Keyboard shortcuts
|
Developing extensions? Stay up to date on <ph name="BEGIN_LINK"><a target="_blank" href="$1"></ph>What's New<ph name="END_LINK"></a></ph> with Chrome Extension developer documentation.
|
||||||
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
|
||||||
@@ -275,7 +275,7 @@
|
@@ -84,7 +84,7 @@
|
||||||
Change
|
Accessibility
|
||||||
</message>
|
</message>
|
||||||
<message name="IDS_SETTINGS_WEB_STORE" desc="Sub-label about choosing something from 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.">
|
||||||
- Open Chrome Web Store
|
- Open Chrome Web Store
|
||||||
+ Open Chromedontreplace Web Store
|
+ Open Chromedontreplace Web Store
|
||||||
</message>
|
</message>
|
||||||
<if expr="is_macosx">
|
<message name="IDS_SETTINGS_MORE_FEATURES_LINK" desc="Link which opens page where users can install extensions which provide additional accessibility features.">
|
||||||
<message name="IDS_SETTINGS_TABS_TO_LINKS_PREF" desc="The documentation string of the 'Tabs to Links' preference">
|
Add accessibility features
|
||||||
diff --git a/chrome/app/theme/chromium/BRANDING b/chrome/app/theme/chromium/BRANDING
|
diff --git a/chrome/app/theme/chromium/BRANDING b/chrome/app/theme/chromium/BRANDING
|
||||||
--- a/chrome/app/theme/chromium/BRANDING
|
--- a/chrome/app/theme/chromium/BRANDING
|
||||||
+++ b/chrome/app/theme/chromium/BRANDING
|
+++ b/chrome/app/theme/chromium/BRANDING
|
||||||
@@ -13155,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
|
||||||
@@ -1811,6 +1811,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",
|
||||||
@@ -13163,10 +13232,145 @@ 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/extensions/external_registry_loader_win.cc b/chrome/browser/extensions/external_registry_loader_win.cc
|
||||||
|
--- a/chrome/browser/extensions/external_registry_loader_win.cc
|
||||||
|
+++ b/chrome/browser/extensions/external_registry_loader_win.cc
|
||||||
|
@@ -35,7 +35,7 @@ using content::BrowserThread;
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
// The Registry subkey that contains information about external extensions.
|
||||||
|
-const wchar_t kRegistryExtensions[] = L"Software\\Google\\Chrome\\Extensions";
|
||||||
|
+const wchar_t kRegistryExtensions[] = L"Software\\Uazo\\Cromite\\Extensions";
|
||||||
|
|
||||||
|
// Registry value of the key that defines the installation parameter.
|
||||||
|
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
|
||||||
@@ -37,7 +37,7 @@ public class UpdateConfigs {
|
@@ -39,7 +39,7 @@ public class UpdateConfigs {
|
||||||
private static final String UPDATE_AVAILABLE_SWITCH_VALUE = "update_available";
|
private static final String UPDATE_AVAILABLE_SWITCH_VALUE = "update_available";
|
||||||
private static final String UNSUPPORTED_OS_VERSION_SWITCH_VALUE = "unsupported_os_version";
|
private static final String UNSUPPORTED_OS_VERSION_SWITCH_VALUE = "unsupported_os_version";
|
||||||
|
|
||||||
@@ -13178,27 +13382,27 @@ 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
|
||||||
@@ -52,6 +52,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
|
||||||
@@ -30,6 +30,7 @@
|
@@ -25,6 +25,7 @@
|
||||||
|
#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"
|
||||||
#include "build/chromeos_buildflags.h"
|
|
||||||
+#include "build/cromite_flags.h"
|
+#include "build/cromite_flags.h"
|
||||||
#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"
|
||||||
@@ -294,10 +295,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)
|
||||||
@@ -13206,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
|
||||||
@@ -13243,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;
|
||||||
@@ -173,7 +185,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">
|
||||||
@@ -13252,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
|
||||||
@@ -2474,7 +2474,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">
|
||||||
@@ -13264,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
|
||||||
@@ -144,6 +144,7 @@ bool AreNewChromeLabsExperimentsAvailable(const ChromeLabsModel* model,
|
@@ -139,6 +139,7 @@ bool AreNewChromeLabsExperimentsAvailable(Profile* profile) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsChromeLabsEnabled() {
|
bool IsChromeLabsEnabled() {
|
||||||
@@ -13278,40 +13543,40 @@ 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
|
||||||
@@ -136,7 +136,7 @@ inline constexpr char kChromeHelpViaMenuURL[] =
|
@@ -117,7 +117,7 @@ inline constexpr char kChromeHelpViaMenuURL[] =
|
||||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||||
|
|
||||||
inline constexpr char kChromeHelpViaWebUIURL[] =
|
inline constexpr char kChromeHelpViaWebUIURL[] =
|
||||||
- "https://support.google.com/chrome?p=help&ctx=settings";
|
- "https://support.google.com/chrome?p=help&ctx=settings";
|
||||||
+ "https://github.com/uazo/cromite/issues";
|
+ "https://github.com/uazo/cromite/issues";
|
||||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
#if BUILDFLAG(IS_CHROMEOS)
|
||||||
inline constexpr char kChromeOsHelpViaWebUIURL[] =
|
inline constexpr char kChromeOsHelpViaWebUIURL[] =
|
||||||
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||||
@@ -199,7 +199,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
|
|
||||||
@@ -16,7 +16,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
|
||||||
@@ -975,7 +975,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]">
|
||||||
@@ -18216,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
|
||||||
@@ -18225,15 +18501,15 @@ diff --git a/components/omnibox/browser/vector_icons/product_chrome_refresh.icon
|
|||||||
-// found in the LICENSE file.
|
-// found in the LICENSE file.
|
||||||
-
|
-
|
||||||
-CANVAS_DIMENSIONS, 15,
|
-CANVAS_DIMENSIONS, 15,
|
||||||
-MOVE_TO, 4.92f, 7.5f,
|
-MOVE_TO, 4.92, 7.5,
|
||||||
-R_CUBIC_TO, 0, 0.71f, 0.25f, 1.31f, 0.76f, 1.82f,
|
-R_CUBIC_TO, 0, 0.71, 0.25, 1.31, 0.76, 1.82,
|
||||||
-R_CUBIC_TO, 0.51f, 0.51f, 1.12f, 0.76f, 1.82f, 0.76f,
|
-R_CUBIC_TO, 0.51, 0.51, 1.12, 0.76, 1.82, 0.76,
|
||||||
-R_CUBIC_TO, 0.7f, 0, 1.31f, -0.25f, 1.82f, -0.76f,
|
-R_CUBIC_TO, 0.7, 0, 1.31, -0.25, 1.82, -0.76,
|
||||||
-R_CUBIC_TO, 0.51f, -0.51f, 0.76f, -1.12f, 0.76f, -1.82f,
|
-R_CUBIC_TO, 0.51, -0.51, 0.76, -1.12, 0.76, -1.82,
|
||||||
-R_CUBIC_TO, 0, -0.7f, -0.25f, -1.31f, -0.76f, -1.82f,
|
-R_CUBIC_TO, 0, -0.7, -0.25, -1.31, -0.76, -1.82,
|
||||||
-R_ARC_TO, 2.49f, 2.49f, 0, 0, 0, -1.82f, -0.76f,
|
-R_ARC_TO, 2.49, 2.49, 0, 0, 0, -1.82, -0.76,
|
||||||
-R_CUBIC_TO, -0.7f, 0, -1.31f, 0.25f, -1.82f, 0.76f,
|
-R_CUBIC_TO, -0.7, 0, -1.31, 0.25, -1.82, 0.76,
|
||||||
-R_ARC_TO, 2.49f, 2.49f, 0, 0, 0, -0.76f, 1.82f,
|
-R_ARC_TO, 2.49, 2.49, 0, 0, 0, -0.76, 1.82,
|
||||||
+CANVAS_DIMENSIONS, 16,
|
+CANVAS_DIMENSIONS, 16,
|
||||||
+MOVE_TO, 15.99f, 8,
|
+MOVE_TO, 15.99f, 8,
|
||||||
+CUBIC_TO, 15.99f, 9.83f, 15.37f, 11.52f, 14.34f, 12.87f,
|
+CUBIC_TO, 15.99f, 9.83f, 15.37f, 11.52f, 14.34f, 12.87f,
|
||||||
@@ -18245,47 +18521,47 @@ diff --git a/components/omnibox/browser/vector_icons/product_chrome_refresh.icon
|
|||||||
+CUBIC_TO, 14.47f, 3.29f, 14.38f, 3.18f, 14.29f, 3.07f,
|
+CUBIC_TO, 14.47f, 3.29f, 14.38f, 3.18f, 14.29f, 3.07f,
|
||||||
+CUBIC_TO, 15.36f, 4.43f, 15.99f, 6.14f, 15.99f, 8,
|
+CUBIC_TO, 15.36f, 4.43f, 15.99f, 6.14f, 15.99f, 8,
|
||||||
CLOSE,
|
CLOSE,
|
||||||
-MOVE_TO, 7.5f, 11.48f,
|
-MOVE_TO, 7.5, 11.48,
|
||||||
-R_CUBIC_TO, 0.14f, 0, 0.28f, 0, 0.41f, -0.02f,
|
-R_CUBIC_TO, 0.14, 0, 0.28, 0, 0.41, -0.02,
|
||||||
-R_CUBIC_TO, 0.13f, -0.01f, 0.26f, -0.04f, 0.39f, -0.07f,
|
-R_CUBIC_TO, 0.13, -0.01, 0.26, -0.04, 0.39, -0.07,
|
||||||
-LINE_TO, 6.77f, 14.06f,
|
-LINE_TO, 6.77, 14.06,
|
||||||
-R_CUBIC_TO, -1.65f, -0.19f, -3.04f, -0.89f, -4.15f, -2.12f,
|
-R_CUBIC_TO, -1.65, -0.19, -3.04, -0.89, -4.15, -2.12,
|
||||||
-CUBIC_TO, 1.5f, 10.71f, 0.94f, 9.24f, 0.94f, 7.55f,
|
-CUBIC_TO, 1.5, 10.71, 0.94, 9.24, 0.94, 7.55,
|
||||||
-R_CUBIC_TO, 0, -0.46f, 0.05f, -0.9f, 0.13f, -1.33f,
|
-R_CUBIC_TO, 0, -0.46, 0.05, -0.9, 0.13, -1.33,
|
||||||
-R_CUBIC_TO, 0.08f, -0.44f, 0.22f, -0.85f, 0.39f, -1.25f,
|
-R_CUBIC_TO, 0.08, -0.44, 0.22, -0.85, 0.39, -1.25,
|
||||||
-R_LINE_TO, 2.63f, 4.55f,
|
-R_LINE_TO, 2.63, 4.55,
|
||||||
-R_CUBIC_TO, 0.34f, 0.59f, 0.81f, 1.07f, 1.41f, 1.43f,
|
-R_CUBIC_TO, 0.34, 0.59, 0.81, 1.07, 1.41, 1.43,
|
||||||
-R_CUBIC_TO, 0.6f, 0.36f, 1.26f, 0.54f, 2.01f, 0.54f,
|
-R_CUBIC_TO, 0.6, 0.36, 1.26, 0.54, 2.01, 0.54,
|
||||||
+MOVE_TO, 14.29f, 3.07f,
|
+MOVE_TO, 14.29f, 3.07f,
|
||||||
+CUBIC_TO, 14.29f, 3.06f, 14.28f, 3.05f, 14.27f, 3.04f,
|
+CUBIC_TO, 14.29f, 3.06f, 14.28f, 3.05f, 14.27f, 3.04f,
|
||||||
+CUBIC_TO, 14.28f, 3.05f, 14.29f, 3.06f, 14.29f, 3.07f,
|
+CUBIC_TO, 14.28f, 3.05f, 14.29f, 3.06f, 14.29f, 3.07f,
|
||||||
CLOSE,
|
CLOSE,
|
||||||
-R_MOVE_TO, 0, -7.87f,
|
-R_MOVE_TO, 0, -7.87,
|
||||||
-R_CUBIC_TO, -0.87f, 0, -1.65f, 0.25f, -2.33f, 0.77f,
|
-R_CUBIC_TO, -0.87, 0, -1.65, 0.25, -2.33, 0.77,
|
||||||
-R_ARC_TO, 3.95f, 3.95f, 0, 0, 0, -1.42f, 1.94f,
|
-R_ARC_TO, 3.95, 3.95, 0, 0, 0, -1.42, 1.94,
|
||||||
-LINE_TO, 2.21f, 3.66f,
|
-LINE_TO, 2.21, 3.66,
|
||||||
-R_ARC_TO, 6.79f, 6.79f, 0, 0, 1, 2.27f, -1.94f,
|
-R_ARC_TO, 6.79, 6.79, 0, 0, 1, 2.27, -1.94,
|
||||||
-CUBIC_TO, 5.4f, 1.22f, 6.4f, 0.98f, 7.5f, 0.98f,
|
-CUBIC_TO, 5.4, 1.22, 6.4, 0.98, 7.5, 0.98,
|
||||||
-R_CUBIC_TO, 1.1f, 0, 2.08f, 0.24f, 2.99f, 0.72f,
|
-R_CUBIC_TO, 1.1, 0, 2.08, 0.24, 2.99, 0.72,
|
||||||
-ARC_TO, 6.66f, 6.66f, 0, 0, 1, 12.76f, 3.6f,
|
-ARC_TO, 6.66, 6.66, 0, 0, 1, 12.76, 3.6,
|
||||||
-H_LINE_TO, 7.51f,
|
-H_LINE_TO, 7.51,
|
||||||
-R_LINE_TO, -0.01f, 0.01f,
|
-R_LINE_TO, -0.01, 0.01,
|
||||||
+MOVE_TO, 14.34f, 12.87f,
|
+MOVE_TO, 14.34f, 12.87f,
|
||||||
+CUBIC_TO, 14.29f, 12.93f, 14.24f, 12.99f, 14.2f, 13.05f,
|
+CUBIC_TO, 14.29f, 12.93f, 14.24f, 12.99f, 14.2f, 13.05f,
|
||||||
+CUBIC_TO, 14.24f, 12.99f, 14.29f, 12.93f, 14.34f, 12.87f,
|
+CUBIC_TO, 14.24f, 12.99f, 14.29f, 12.93f, 14.34f, 12.87f,
|
||||||
CLOSE,
|
CLOSE,
|
||||||
-R_MOVE_TO, 6.01f, 1.31f,
|
-R_MOVE_TO, 6.01, 1.31,
|
||||||
-R_CUBIC_TO, 0.19f, 0.4f, 0.32f, 0.83f, 0.41f, 1.27f,
|
-R_CUBIC_TO, 0.19, 0.4, 0.32, 0.83, 0.41, 1.27,
|
||||||
-R_CUBIC_TO, 0.09f, 0.44f, 0.15f, 0.89f, 0.15f, 1.36f,
|
-R_CUBIC_TO, 0.09, 0.44, 0.15, 0.89, 0.15, 1.36,
|
||||||
-R_CUBIC_TO, 0, 1.7f, -0.55f, 3.16f, -1.68f, 4.38f,
|
-R_CUBIC_TO, 0, 1.7, -0.55, 3.16, -1.68, 4.38,
|
||||||
-R_CUBIC_TO, -1.11f, 1.23f, -2.47f, 1.93f, -4.1f, 2.13f,
|
-R_CUBIC_TO, -1.11, 1.23, -2.47, 1.93, -4.1, 2.13,
|
||||||
-R_LINE_TO, 2.63f, -4.55f,
|
-R_LINE_TO, 2.63, -4.55,
|
||||||
-R_CUBIC_TO, 0.17f, -0.28f, 0.29f, -0.59f, 0.38f, -0.92f,
|
-R_CUBIC_TO, 0.17, -0.28, 0.29, -0.59, 0.38, -0.92,
|
||||||
-R_CUBIC_TO, 0.09f, -0.34f, 0.15f, -0.69f, 0.15f, -1.05f,
|
-R_CUBIC_TO, 0.09, -0.34, 0.15, -0.69, 0.15, -1.05,
|
||||||
-R_CUBIC_TO, 0, -0.52f, -0.09f, -0.99f, -0.28f, -1.42f,
|
-R_CUBIC_TO, 0, -0.52, -0.09, -0.99, -0.28, -1.42,
|
||||||
-R_ARC_TO, 3.96f, 3.96f, 0, 0, 0, -0.74f, -1.2f,
|
-R_ARC_TO, 3.96, 3.96, 0, 0, 0, -0.74, -1.2,
|
||||||
-R_H_LINE_TO, 3.08f,
|
-R_H_LINE_TO, 3.08,
|
||||||
-R_V_LINE_TO, 0.01f,
|
-R_V_LINE_TO, 0.01,
|
||||||
+MOVE_TO, 14.27f, 3.04f,
|
+MOVE_TO, 14.27f, 3.04f,
|
||||||
+CUBIC_TO, 14.19f, 2.94f, 14.11f, 2.84f, 14.02f, 2.74f,
|
+CUBIC_TO, 14.19f, 2.94f, 14.11f, 2.84f, 14.02f, 2.74f,
|
||||||
+CUBIC_TO, 14.11f, 2.84f, 14.19f, 2.94f, 14.27f, 3.04f,
|
+CUBIC_TO, 14.11f, 2.84f, 14.19f, 2.94f, 14.27f, 3.04f,
|
||||||
@@ -18317,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
|
||||||
@@ -18917,27 +19217,37 @@ z%lwlC#@8v20MrdyXS4Cd9v0(a*!707Mi)DWKCPo$-?g#BRX!@}3RwzBwgOM1&^{Rc
|
|||||||
z3=3bI32q;3&^A^#@RQ;k{^t41Rq+f34W3u|*@1288y{>q;|6&;qJI})ZE0^oH1|#U
|
z3=3bI32q;3&^A^#@RQ;k{^t41Rq+f34W3u|*@1288y{>q;|6&;qJI})ZE0^oH1|#U
|
||||||
EKU(of)Bpeg
|
EKU(of)Bpeg
|
||||||
|
|
||||||
diff --git a/components/version_ui/resources/about_version.ts b/components/version_ui/resources/about_version.ts
|
diff --git a/components/webui/version/resources/about_version.ts b/components/webui/version/resources/about_version.ts
|
||||||
--- a/components/version_ui/resources/about_version.ts
|
--- a/components/webui/version/resources/about_version.ts
|
||||||
+++ b/components/version_ui/resources/about_version.ts
|
+++ b/components/webui/version/resources/about_version.ts
|
||||||
|
@@ -51,7 +51,7 @@ function handleVariationInfo(
|
||||||
|
.appendChild(document.createElement('br'));
|
||||||
|
}
|
||||||
|
|
||||||
|
- const includeVariationsCmd = location.search.includes('show-variations-cmd');
|
||||||
|
+ const includeVariationsCmd = true;
|
||||||
|
if (variationsCmd !== '') {
|
||||||
|
getRequiredElement('variations-cmd-section').hidden = false;
|
||||||
|
getRequiredElement('copy-variations-to-clipboard').hidden =
|
||||||
@@ -180,7 +180,7 @@ function initialize() {
|
@@ -180,7 +180,7 @@ function initialize() {
|
||||||
// </if>
|
// </if>
|
||||||
|
|
||||||
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/version_ui/resources/about_version_mobile.css b/components/version_ui/resources/about_version_mobile.css
|
--- a/components/webui/version/resources/about_version_mobile.css
|
||||||
--- a/components/version_ui/resources/about_version_mobile.css
|
+++ b/components/webui/version/resources/about_version_mobile.css
|
||||||
+++ b/components/version_ui/resources/about_version_mobile.css
|
@@ -17,3 +17,13 @@
|
||||||
@@ -17,3 +17,12 @@
|
|
||||||
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;
|
||||||
+}
|
+}
|
||||||
@@ -18948,7 +19258,7 @@ diff --git a/components/version_ui/resources/about_version_mobile.css b/componen
|
|||||||
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
|
||||||
@@ -574,7 +574,7 @@ 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)) {
|
||||||
@@ -18957,7 +19267,13 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
|||||||
<< "Fenced frames cannot be enabled in this configuration. Use --"
|
<< "Fenced frames cannot be enabled in this configuration. Use --"
|
||||||
<< switches::kEnableFeatures << "="
|
<< switches::kEnableFeatures << "="
|
||||||
<< blink::features::kFencedFrames.name << " instead.";
|
<< blink::features::kFencedFrames.name << " instead.";
|
||||||
@@ -584,9 +584,8 @@ void ResolveInvalidConfigurations() {
|
WebRuntimeFeatures::EnableFencedFrames(false);
|
||||||
|
}
|
||||||
|
+ CHECK(!base::FeatureList::IsEnabled(features::kPrivacySandboxAdsAPIsOverride))
|
||||||
|
+ << "kPrivacySandboxAdsAPIsOverride is enabled!";
|
||||||
|
+ CHECK(!base::FeatureList::IsEnabled(features::kPrivacySandboxAdsAPIsM1Override))
|
||||||
|
+ << "kPrivacySandboxAdsAPIsM1Override is enabled!";
|
||||||
|
|
||||||
if (!base::FeatureList::IsEnabled(blink::features::kFencedFrames) &&
|
if (!base::FeatureList::IsEnabled(blink::features::kFencedFrames) &&
|
||||||
base::FeatureList::IsEnabled(
|
base::FeatureList::IsEnabled(
|
||||||
blink::features::kFencedFramesLocalUnpartitionedDataAccess)) {
|
blink::features::kFencedFramesLocalUnpartitionedDataAccess)) {
|
||||||
@@ -18969,36 +19285,51 @@ 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 << "="
|
||||||
@@ -599,7 +598,7 @@ void ResolveInvalidConfigurations() {
|
@@ -572,12 +575,14 @@ void ResolveInvalidConfigurations() {
|
||||||
|
WebRuntimeFeatures::EnableFeatureFromString(
|
||||||
|
"FencedFramesLocalUnpartitionedDataAccess", false);
|
||||||
|
}
|
||||||
|
+ CHECK(!base::FeatureList::IsEnabled(blink::features::kFencedFrames))
|
||||||
|
+ << "kFencedFrames is enabled!";
|
||||||
|
|
||||||
|
// Topics API cannot be enabled without the support of the browser process.
|
||||||
// The Document API should be additionally gated by the
|
// The Document API should be additionally gated by the
|
||||||
// `kBrowsingTopicsDocumentAPI` feature.
|
// `kBrowsingTopicsDocumentAPI` feature.
|
||||||
if (!base::FeatureList::IsEnabled(blink::features::kBrowsingTopics)) {
|
if (!base::FeatureList::IsEnabled(network::features::kBrowsingTopics)) {
|
||||||
- LOG_IF(WARNING, WebRuntimeFeatures::IsTopicsAPIEnabled())
|
- LOG_IF(WARNING, WebRuntimeFeatures::IsTopicsAPIEnabled())
|
||||||
+ CHECK(!WebRuntimeFeatures::IsTopicsAPIEnabled())
|
+ CHECK(!WebRuntimeFeatures::IsTopicsAPIEnabled())
|
||||||
<< "Topics cannot be enabled in this configuration. Use --"
|
<< "Topics cannot be enabled in this configuration. Use --"
|
||||||
<< switches::kEnableFeatures << "="
|
<< switches::kEnableFeatures << "="
|
||||||
<< blink::features::kBrowsingTopics.name << " in addition.";
|
<< network::features::kBrowsingTopics.name << " in addition.";
|
||||||
@@ -609,7 +608,7 @@ void ResolveInvalidConfigurations() {
|
@@ -585,30 +590,23 @@ void ResolveInvalidConfigurations() {
|
||||||
|
WebRuntimeFeatures::EnableTopicsDocumentAPI(false);
|
||||||
|
WebRuntimeFeatures::EnableTopicsImgAPI(false);
|
||||||
} else {
|
} else {
|
||||||
if (!base::FeatureList::IsEnabled(
|
- if (!base::FeatureList::IsEnabled(
|
||||||
blink::features::kBrowsingTopicsDocumentAPI)) {
|
- blink::features::kBrowsingTopicsDocumentAPI)) {
|
||||||
- LOG_IF(WARNING, WebRuntimeFeatures::IsTopicsDocumentAPIEnabled())
|
- LOG_IF(WARNING, WebRuntimeFeatures::IsTopicsDocumentAPIEnabled())
|
||||||
+ CHECK(!WebRuntimeFeatures::IsTopicsDocumentAPIEnabled())
|
- << "Topics Document API cannot be enabled in this configuration. Use "
|
||||||
<< "Topics Document API cannot be enabled in this configuration. Use "
|
- "--"
|
||||||
"--"
|
- << switches::kEnableFeatures << "="
|
||||||
<< switches::kEnableFeatures << "="
|
- << blink::features::kBrowsingTopicsDocumentAPI.name
|
||||||
@@ -620,8 +619,8 @@ void ResolveInvalidConfigurations() {
|
- << " in addition.";
|
||||||
|
- WebRuntimeFeatures::EnableTopicsDocumentAPI(false);
|
||||||
|
- }
|
||||||
|
+ CHECK(false) << "kBrowsingTopics is enabled!";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!base::FeatureList::IsEnabled(blink::features::kSharedStorageAPI)) {
|
if (!base::FeatureList::IsEnabled(network::features::kSharedStorageAPI)) {
|
||||||
- LOG_IF(WARNING, WebRuntimeFeatures::IsSharedStorageAPIEnabled())
|
- LOG_IF(WARNING, WebRuntimeFeatures::IsSharedStorageAPIEnabled())
|
||||||
- << "SharedStorage cannot be enabled in this "
|
- << "SharedStorage cannot be enabled in this "
|
||||||
+ CHECK(!WebRuntimeFeatures::IsSharedStorageAPIEnabled())
|
+ CHECK(!WebRuntimeFeatures::IsSharedStorageAPIEnabled())
|
||||||
+ << "SharedStorage for M118+ cannot be enabled in this "
|
+ << "SharedStorage for M118+ cannot be enabled in this "
|
||||||
"configuration. Use --"
|
"configuration. Use --"
|
||||||
<< switches::kEnableFeatures << "="
|
<< switches::kEnableFeatures << "="
|
||||||
<< blink::features::kSharedStorageAPI.name << " in addition.";
|
<< network::features::kSharedStorageAPI.name << " in addition.";
|
||||||
@@ -630,7 +629,7 @@ void ResolveInvalidConfigurations() {
|
WebRuntimeFeatures::EnableSharedStorageAPI(false);
|
||||||
|
+ } else {
|
||||||
|
+ CHECK(false) << "kSharedStorageAPI is enabled!";
|
||||||
|
}
|
||||||
|
|
||||||
if (!base::FeatureList::IsEnabled(
|
if (!base::FeatureList::IsEnabled(
|
||||||
attribution_reporting::features::kConversionMeasurement)) {
|
attribution_reporting::features::kConversionMeasurement)) {
|
||||||
@@ -19007,40 +19338,46 @@ 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 << "="
|
||||||
@@ -643,8 +642,7 @@ void ResolveInvalidConfigurations() {
|
@@ -616,23 +614,25 @@ void ResolveInvalidConfigurations() {
|
||||||
attribution_reporting::features::kConversionMeasurement) ||
|
<< " in addition.";
|
||||||
!base::FeatureList::IsEnabled(
|
WebRuntimeFeatures::EnableAttributionReporting(false);
|
||||||
network::features::kAttributionReportingCrossAppWeb)) {
|
|
||||||
- LOG_IF(WARNING,
|
|
||||||
- WebRuntimeFeatures::IsAttributionReportingCrossAppWebEnabled())
|
|
||||||
+ CHECK(!WebRuntimeFeatures::IsAttributionReportingCrossAppWebEnabled())
|
|
||||||
<< "AttributionReportingCrossAppWeb cannot be enabled in this "
|
|
||||||
"configuration. Use --"
|
|
||||||
<< switches::kEnableFeatures << "="
|
|
||||||
@@ -655,8 +653,7 @@ void ResolveInvalidConfigurations() {
|
|
||||||
}
|
}
|
||||||
|
+ CHECK(!base::FeatureList::IsEnabled(attribution_reporting::features::kConversionMeasurement))
|
||||||
|
+ << "kConversionMeasurement is enabled!";
|
||||||
|
|
||||||
if (!base::FeatureList::IsEnabled(blink::features::kInterestGroupStorage)) {
|
if (!base::FeatureList::IsEnabled(network::features::kInterestGroupStorage)) {
|
||||||
- LOG_IF(WARNING,
|
- LOG_IF(WARNING,
|
||||||
- WebRuntimeFeatures::IsAdInterestGroupAPIEnabledByRuntimeFlag())
|
- WebRuntimeFeatures::IsAdInterestGroupAPIEnabledByRuntimeFlag())
|
||||||
+ CHECK(!WebRuntimeFeatures::IsAdInterestGroupAPIEnabledByRuntimeFlag())
|
+ CHECK(!WebRuntimeFeatures::IsAdInterestGroupAPIEnabledByRuntimeFlag())
|
||||||
<< "AdInterestGroupAPI cannot be enabled in this "
|
<< "AdInterestGroupAPI cannot be enabled in this "
|
||||||
"configuration. Use --"
|
"configuration. Use --"
|
||||||
<< switches::kEnableFeatures << "="
|
<< switches::kEnableFeatures << "="
|
||||||
@@ -668,8 +665,7 @@ void ResolveInvalidConfigurations() {
|
<< network::features::kInterestGroupStorage.name << " in addition.";
|
||||||
// PermissionElement cannot be enabled without the support of the
|
WebRuntimeFeatures::EnableAdInterestGroupAPI(false);
|
||||||
|
WebRuntimeFeatures::EnableFledge(false);
|
||||||
|
+ } else {
|
||||||
|
+ CHECK(false) << "kInterestGroupStorage is enabled!";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+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
|
||||||
@@ -126,6 +126,7 @@ class GrdContentHandler(xml.sax.handler.ContentHandler):
|
@@ -129,6 +129,7 @@ class GrdContentHandler(xml.sax.handler.ContentHandler):
|
||||||
def characters(self, content):
|
def characters(self, content):
|
||||||
if self.ignore_depth == 0:
|
if self.ignore_depth == 0:
|
||||||
if self.stack[-1]:
|
if self.stack[-1]:
|
||||||
@@ -19048,7 +19385,7 @@ diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py
|
|||||||
self.stack[-1].AppendContent(content)
|
self.stack[-1].AppendContent(content)
|
||||||
|
|
||||||
def ignorableWhitespace(self, whitespace):
|
def ignorableWhitespace(self, whitespace):
|
||||||
@@ -133,6 +134,40 @@ class GrdContentHandler(xml.sax.handler.ContentHandler):
|
@@ -136,6 +137,40 @@ class GrdContentHandler(xml.sax.handler.ContentHandler):
|
||||||
# parser?
|
# parser?
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -158,9 +158,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
|
||||||
@@ -777,10 +777,17 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn
|
@@ -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
|
||||||
@@ -191,12 +191,20 @@ 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,46 +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;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
// Creating new Tabs asynchronously requires starting a new Activity to create the Tab,
|
if (ChromeFeatureList.isEnabled(ChromeFeatureList.DOCUMENT_PICTURE_IN_PICTURE_API)
|
||||||
// so the Tab returned will always be null. There's no way to know synchronously
|
&& disposition == WindowOpenDisposition.NEW_PICTURE_IN_PICTURE) {
|
||||||
// whether the Tab is created, so assume it's always successful.
|
assertNonNull(pictureInPictureWindowOptions);
|
||||||
boolean success =
|
@@ -270,7 +278,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat
|
||||||
tabCreator.createTabWithWebContents(
|
mTab,
|
||||||
- mTab, webContents, TabLaunchType.FROM_LONGPRESS_FOREGROUND, url);
|
/* shouldPin= */ false,
|
||||||
+ mTab, webContents, tabLaunchType, url);
|
webContents,
|
||||||
|
- TabLaunchType.FROM_LONGPRESS_FOREGROUND,
|
||||||
if (success) {
|
+ tabLaunchType,
|
||||||
if (disposition == WindowOpenDisposition.NEW_FOREGROUND_TAB) {
|
targetUrl,
|
||||||
|
addTabToModel);
|
||||||
|
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;
|
||||||
@@ -237,6 +238,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
|
||||||
@@ -317,8 +317,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;
|
||||||
@@ -130,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
|
||||||
@@ -27,6 +27,7 @@ import androidx.appcompat.content.res.AppCompatResources;
|
@@ -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
|
||||||
@@ -825,11 +826,16 @@ public class RootUiCoordinator
|
|
||||||
TrackerFactory.getTrackerForProfile(tab.getProfile())
|
TrackerFactory.getTrackerForProfile(tab.getProfile())
|
||||||
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
|
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
|
||||||
|
|
||||||
@@ -195,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
|
||||||
@@ -73,4 +73,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" />
|
||||||
|
|
||||||
@@ -230,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;
|
||||||
@@ -288,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.NullMarked;
|
|
||||||
@@ -86,6 +87,9 @@ public class SmartSelectionClient implements SelectionClient, UserData {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (!ContextUtils.getAppSharedPreferences().getBoolean(
|
|
||||||
+ "selection_popup_smart_text", false)) return null;
|
|
||||||
+
|
|
||||||
SmartSelectionClient client =
|
|
||||||
assumeNonNull(
|
|
||||||
((WebContentsImpl) webContents)
|
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -10,47 +10,85 @@ 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
|
||||||
@@ -292,8 +292,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
|
||||||
@@ -9,6 +9,7 @@ import android.graphics.Canvas;
|
@@ -11,6 +11,7 @@ import android.graphics.Canvas;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
@@ -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;
|
||||||
@@ -107,6 +108,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;
|
||||||
|
@@ -335,6 +338,29 @@ public class UrlBar extends AutocompleteEditText {
|
||||||
// Captures the current intended text scroll type.
|
mPendingScroll = false;
|
||||||
@@ -332,6 +334,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
|
||||||
@@ -1095,6 +1095,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,35 +13,49 @@ 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
|
||||||
@@ -20,6 +20,7 @@ android_library("java") {
|
@@ -21,6 +21,7 @@ android_library("java") {
|
||||||
"//build/android:build_java",
|
"//build/android:build_java",
|
||||||
"//chrome/browser/flags:java",
|
"//chrome/browser/flags:java",
|
||||||
"//chrome/browser/profiles/android:java",
|
"//chrome/browser/profiles/android:java",
|
||||||
+ "//components/policy/android:policy_java",
|
+ "//components/policy/android:policy_java",
|
||||||
|
"//content/public/android:content_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",
|
||||||
]
|
|
||||||
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
|
||||||
@@ -23,6 +23,7 @@ import org.chromium.base.metrics.RecordHistogram;
|
@@ -31,6 +31,7 @@ import org.chromium.build.annotations.NullMarked;
|
||||||
import org.chromium.base.task.AsyncTask;
|
import org.chromium.build.annotations.Nullable;
|
||||||
import org.chromium.base.task.TaskTraits;
|
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;
|
||||||
@@ -104,6 +105,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",
|
||||||
@@ -109,8 +124,8 @@ new file mode 100644
|
|||||||
diff --git a/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java b/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java
|
diff --git a/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java b/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java
|
||||||
--- a/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java
|
--- a/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java
|
||||||
+++ b/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java
|
+++ b/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java
|
||||||
@@ -17,6 +17,15 @@ import org.chromium.base.Log;
|
@@ -19,6 +19,15 @@ import org.chromium.build.annotations.NullMarked;
|
||||||
*/
|
@NullMarked
|
||||||
public class AppRestrictionsProvider extends AbstractAppRestrictionsProvider {
|
public class AppRestrictionsProvider extends AbstractAppRestrictionsProvider {
|
||||||
private static final String TAG = "AppResProvider";
|
private static final String TAG = "AppResProvider";
|
||||||
+ private static boolean mEnabled = false;
|
+ private static boolean mEnabled = false;
|
||||||
@@ -125,7 +140,7 @@ diff --git a/components/policy/android/java/src/org/chromium/components/policy/A
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the app restriction information from provided user manager, and record some timing
|
* Get the app restriction information from provided user manager, and record some timing
|
||||||
@@ -28,6 +37,9 @@ public class AppRestrictionsProvider extends AbstractAppRestrictionsProvider {
|
@@ -30,6 +39,9 @@ public class AppRestrictionsProvider extends AbstractAppRestrictionsProvider {
|
||||||
*/
|
*/
|
||||||
public static Bundle getApplicationRestrictionsFromUserManager(
|
public static Bundle getApplicationRestrictionsFromUserManager(
|
||||||
UserManager userManager, String packageName) {
|
UserManager userManager, String packageName) {
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
From: uazo <uazo@users.noreply.github.com>
|
||||||
|
Date: Tue, 1 Apr 2025 11:37:52 +0000
|
||||||
|
Subject: Disable Android Tab Declutter
|
||||||
|
|
||||||
|
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
|
||||||
|
---
|
||||||
|
chrome/android/java/res/xml/main_preferences.xml | 3 ++-
|
||||||
|
.../org/chromium/chrome/browser/tab/TabArchiveSettings.java | 3 ++-
|
||||||
|
.../chrome_feature_list_cc/Disable-Android-Tab-Declutter.inc | 1 +
|
||||||
|
3 files changed, 5 insertions(+), 2 deletions(-)
|
||||||
|
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Tab-Declutter.inc
|
||||||
|
|
||||||
|
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
|
||||||
|
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||||
|
@@ -104,7 +104,8 @@ found in the LICENSE file.
|
||||||
|
android:fragment="org.chromium.chrome.browser.tasks.tab_management.TabsSettings"
|
||||||
|
android:key="tabs"
|
||||||
|
android:order="19"
|
||||||
|
- android:title="@string/tabs_settings_title"/>
|
||||||
|
+ android:title="@string/tabs_settings_title"
|
||||||
|
+ app:isPreferenceVisible="false"/>
|
||||||
|
<Preference
|
||||||
|
android:fragment="org.chromium.chrome.browser.glic.GlicSettings"
|
||||||
|
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
|
||||||
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java
|
||||||
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java
|
||||||
|
@@ -105,11 +105,12 @@ public class TabArchiveSettings {
|
||||||
|
// are created, and tabs disappearing from tests is very unexpected. For archive tests,
|
||||||
|
// this will need to be turned on manually.
|
||||||
|
return mPrefsManager.readBoolean(
|
||||||
|
- ChromePreferenceKeys.TAB_DECLUTTER_ARCHIVE_ENABLED, !BuildConfig.IS_FOR_TEST);
|
||||||
|
+ ChromePreferenceKeys.TAB_DECLUTTER_ARCHIVE_ENABLED, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Sets whether archive is enabled in settings. */
|
||||||
|
public void setArchiveEnabled(boolean enabled) {
|
||||||
|
+ enabled = false;
|
||||||
|
mPrefsManager.writeBoolean(ChromePreferenceKeys.TAB_DECLUTTER_ARCHIVE_ENABLED, enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Tab-Declutter.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Tab-Declutter.inc
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Tab-Declutter.inc
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+// empty
|
||||||
|
--
|
||||||
@@ -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
|
||||||
@@ -389,7 +389,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
|
||||||
@@ -585,7 +585,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>(),
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
From: uazo <uazo@users.noreply.github.com>
|
||||||
|
Date: Fri, 2 May 2025 14:20:38 +0000
|
||||||
|
Subject: Disable CSSDynamicRangeLimit
|
||||||
|
|
||||||
|
Disables the ability for pages to limit the maximum brightness of HDR content
|
||||||
|
since use as screen fingerprinting is possible.
|
||||||
|
|
||||||
|
see https://www.github.com/w3ctag/design-reviews/issues/1027
|
||||||
|
|
||||||
|
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||||
|
---
|
||||||
|
.../blink/renderer/platform/runtime_enabled_features.json5 | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
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
|
||||||
|
@@ -1578,7 +1578,7 @@
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "CSSDynamicRangeLimit",
|
||||||
|
- status: "stable",
|
||||||
|
+ status: "experimental",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// Include custom properties in CSSComputedStyleDeclaration::item/length.
|
||||||
|
--
|
||||||
@@ -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
|
||||||
@@ -8383,6 +8383,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",
|
||||||
@@ -8398,7 +8404,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",
|
|
||||||
@@ -8845,7 +8850,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
|
||||||
@@ -378,7 +378,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_DISABLED_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
|
||||||
@@ -874,12 +874,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));
|
||||||
|
--
|
||||||
@@ -4,29 +4,50 @@ Subject: Disable FedCm
|
|||||||
|
|
||||||
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
|
||||||
---
|
---
|
||||||
|
.../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 +-
|
||||||
3 files changed, 3 insertions(+), 1 deletion(-)
|
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
|
||||||
|
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
||||||
|
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
||||||
|
@@ -640,7 +640,7 @@ void ContentSettingsRegistry::Init() {
|
||||||
|
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
|
||||||
|
|
||||||
|
Register(ContentSettingsType::FEDERATED_IDENTITY_AUTO_REAUTHN_PERMISSION,
|
||||||
|
- "webid-auto-reauthn", CONTENT_SETTING_ALLOW,
|
||||||
|
+ "webid-auto-reauthn", CONTENT_SETTING_BLOCK, // requires user mediation
|
||||||
|
WebsiteSettingsInfo::UNSYNCABLE,
|
||||||
|
/*allowlisted_primary_schemes=*/{},
|
||||||
|
/*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK},
|
||||||
diff --git a/cromite_flags/content/public/common/content_features_cc/Disable-FedCm.inc b/cromite_flags/content/public/common/content_features_cc/Disable-FedCm.inc
|
diff --git a/cromite_flags/content/public/common/content_features_cc/Disable-FedCm.inc b/cromite_flags/content/public/common/content_features_cc/Disable-FedCm.inc
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ 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
|
||||||
+++ b/cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc
|
+++ b/cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc
|
||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+SET_CROMITE_FEATURE_DISABLED(kFedCmWithStorageAccessAPI);
|
+// empty
|
||||||
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
|
||||||
@@ -1780,7 +1780,7 @@
|
@@ -2544,7 +2544,7 @@
|
||||||
{
|
{
|
||||||
name: "FedCm",
|
name: "FedCm",
|
||||||
public: true,
|
public: true,
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ diff --git a/chrome/browser/feedback/BUILD.gn b/chrome/browser/feedback/BUILD.gn
|
|||||||
diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java
|
diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java
|
||||||
--- a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java
|
--- a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java
|
||||||
+++ b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java
|
+++ b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java
|
||||||
@@ -28,6 +28,7 @@ import org.chromium.components.signin.identitymanager.ConsentLevel;
|
@@ -29,6 +29,7 @@ import org.chromium.components.signin.identitymanager.ConsentLevel;
|
||||||
import org.chromium.components.signin.identitymanager.IdentityManager;
|
import org.chromium.components.signin.identitymanager.IdentityManager;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -37,7 +37,7 @@ diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browse
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -69,31 +70,8 @@ public abstract class FeedbackCollector<T> implements Runnable {
|
@@ -73,31 +74,8 @@ public abstract class FeedbackCollector<T> implements Runnable {
|
||||||
@Nullable ScreenshotSource screenshotTask,
|
@Nullable ScreenshotSource screenshotTask,
|
||||||
T initParams,
|
T initParams,
|
||||||
Profile profile) {
|
Profile profile) {
|
||||||
|
|||||||
@@ -4,74 +4,62 @@ Subject: Disable GSA by default
|
|||||||
|
|
||||||
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/IntentHandler.java | 6 ------
|
.../src/org/chromium/base/PackageUtils.java | 1 +
|
||||||
.../provider/PageContentProviderImpl.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 | 10 +++-------
|
.../chromium/chrome/browser/gsa/GSAUtils.java | 34 +++----------------
|
||||||
.../GoogleBottomBarActionsHandler.java | 19 ++-----------------
|
.../GoogleBottomBarActionsHandler.java | 19 ++---------
|
||||||
.../chrome/browser/pdf/PdfCoordinator.java | 4 +---
|
.../chrome/browser/pdf/PdfCoordinator.java | 2 +-
|
||||||
.../Disable-GSA-by-default.inc | 1 +
|
.../Disable-GSA-by-default.inc | 1 +
|
||||||
7 files changed, 9 insertions(+), 51 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
|
||||||
|
--- a/base/android/java/src/org/chromium/base/PackageUtils.java
|
||||||
|
+++ b/base/android/java/src/org/chromium/base/PackageUtils.java
|
||||||
|
@@ -185,6 +185,7 @@ public class PackageUtils {
|
||||||
|
* @return Package name of assistant app, or null if unable to get.
|
||||||
|
*/
|
||||||
|
public static @Nullable String getDefaultAssistantPackageName(Context context) {
|
||||||
|
+ if ((true)) return null;
|
||||||
|
@Nullable String defaultAssistantSetting =
|
||||||
|
Settings.Secure.getString(context.getContentResolver(), DEFAULT_ASSISTANT_SETTING);
|
||||||
|
if (defaultAssistantSetting == null || defaultAssistantSetting.isBlank()) {
|
||||||
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
|
||||||
@@ -45,7 +45,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 {
|
||||||
@@ -263,9 +262,6 @@ public class IntentHandler {
|
public static final String EXTRA_TIPS_NOTIFICATION_FEATURE_TYPE =
|
||||||
public static final String EXTRA_SKIP_PRECONNECT =
|
"org.chromium.chrome.browser.tips_notification_feature_type";
|
||||||
"org.chromium.chrome.browser.skip_preconnect";
|
|
||||||
|
|
||||||
- /** 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";
|
||||||
@@ -539,8 +535,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/provider/PageContentProviderImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/provider/PageContentProviderImpl.java
|
|
||||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/provider/PageContentProviderImpl.java
|
|
||||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/provider/PageContentProviderImpl.java
|
|
||||||
@@ -56,8 +56,6 @@ import java.util.UUID;
|
|
||||||
public class PageContentProviderImpl extends SplitCompatContentProvider.Impl {
|
|
||||||
|
|
||||||
private static final int INVALIDATE_URI_DELAY_MS = 10_000;
|
|
||||||
- private static final String[] AUTHORIZED_PACKAGE_NAMES =
|
|
||||||
- new String[] {GSAUtils.GSA_PACKAGE_NAME};
|
|
||||||
|
|
||||||
static final class PageContentInvocationState {
|
|
||||||
|
|
||||||
@@ -339,10 +337,6 @@ public class PageContentProviderImpl extends SplitCompatContentProvider.Impl {
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void grantAccessToUri(Uri uri) {
|
|
||||||
- for (String packageName : AUTHORIZED_PACKAGE_NAMES) {
|
|
||||||
- ContextUtils.getApplicationContext()
|
|
||||||
- .grantUriPermission(packageName, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
|
||||||
- }
|
|
||||||
}
|
|
||||||
|
|
||||||
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
|
|
||||||
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;
|
||||||
@@ -91,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() {
|
||||||
@@ -112,15 +100,18 @@ 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
|
||||||
@@ -13,16 +13,11 @@ import org.chromium.base.PackageUtils;
|
@@ -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
|
||||||
public class GSAUtils {
|
public class GSAUtils {
|
||||||
|
- private static final Object sPackageInfoLock = new Object();
|
||||||
|
- @Nullable private static volatile PackageInfo sPackageInfo;
|
||||||
|
-
|
||||||
- public static final String GSA_PACKAGE_NAME = "com.google.android.googlequicksearchbox";
|
- public static final String GSA_PACKAGE_NAME = "com.google.android.googlequicksearchbox";
|
||||||
- public static final String GSA_CLASS_NAME =
|
- public static final String GSA_CLASS_NAME =
|
||||||
- "com.google.android.apps.search.googleapp.activity.GoogleAppActivity";
|
- "com.google.android.apps.search.googleapp.activity.GoogleAppActivity";
|
||||||
- public static final String VOICE_SEARCH_INTENT_ACTION = "android.intent.action.VOICE_ASSIST";
|
- public static final String VOICE_SEARCH_INTENT_ACTION = "android.intent.action.VOICE_ASSIST";
|
||||||
-
|
|
||||||
/**
|
/**
|
||||||
* @return Whether the given package name is the package name for Google Search App.
|
* @return Whether the given package name is the package name for Google Search App.
|
||||||
*/
|
*/
|
||||||
@@ -130,21 +121,56 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtil
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -34,6 +29,7 @@ public class GSAUtils {
|
@@ -39,6 +32,7 @@ public class GSAUtils {
|
||||||
*/
|
*/
|
||||||
public static boolean isAgsaVersionBelowMinimum(
|
public static boolean isAgsaVersionBelowMinimum(
|
||||||
String installedVersionName, String minimumVersionName) {
|
@Nullable String installedVersionName, @Nullable String minimumVersionName) {
|
||||||
+ if ((true)) return false;
|
+ if ((true)) return false;
|
||||||
if (TextUtils.isEmpty(installedVersionName) || TextUtils.isEmpty(minimumVersionName)) {
|
if (TextUtils.isEmpty(installedVersionName) || TextUtils.isEmpty(minimumVersionName)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -64,7 +60,7 @@ 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() {
|
||||||
- PackageInfo packageInfo = PackageUtils.getPackageInfo(GSA_PACKAGE_NAME, 0);
|
- PackageInfo info = getAgsaPackageInfo();
|
||||||
|
- return info == null ? null : info.versionName;
|
||||||
+ PackageInfo packageInfo = null;
|
+ PackageInfo packageInfo = null;
|
||||||
return packageInfo == null ? null : packageInfo.versionName;
|
+ return packageInfo == null ? null : packageInfo.versionName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -79,20 +73,7 @@ public class GSAUtils {
|
||||||
|
* @return Whether the AGSA is enabled
|
||||||
|
*/
|
||||||
|
public static boolean isAgsaEnabled() {
|
||||||
|
- PackageInfo info = getAgsaPackageInfo();
|
||||||
|
- return info != null && info.applicationInfo != null && info.applicationInfo.enabled;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- @Nullable
|
||||||
|
- private static PackageInfo getAgsaPackageInfo() {
|
||||||
|
- if (sPackageInfo == null) {
|
||||||
|
- synchronized (sPackageInfoLock) {
|
||||||
|
- if (sPackageInfo == null) {
|
||||||
|
- sPackageInfo = PackageUtils.getPackageInfo(GSA_PACKAGE_NAME, 0);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- return sPackageInfo;
|
||||||
|
+ 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
|
||||||
@@ -160,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;
|
||||||
@@ -102,11 +99,6 @@ class GoogleBottomBarActionsHandler {
|
@@ -106,11 +103,6 @@ class GoogleBottomBarActionsHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
void onSearchboxMicTap() {
|
void onSearchboxMicTap() {
|
||||||
@@ -172,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) {
|
||||||
@@ -145,21 +137,13 @@ class GoogleBottomBarActionsHandler {
|
@@ -149,21 +141,13 @@ class GoogleBottomBarActionsHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void openGoogleAppSearch() {
|
private void openGoogleAppSearch() {
|
||||||
@@ -195,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)) {
|
||||||
@@ -271,6 +255,7 @@ class GoogleBottomBarActionsHandler {
|
@@ -275,6 +259,7 @@ class GoogleBottomBarActionsHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendPendingIntentWithUrl(PendingIntent pendingIntent) {
|
private void sendPendingIntentWithUrl(PendingIntent pendingIntent) {
|
||||||
@@ -206,24 +232,15 @@ 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
|
||||||
@@ -246,7 +246,7 @@ public class PdfCoordinator {
|
@@ -396,7 +396,7 @@ public class PdfCoordinator implements PdfActionsDelegate, PdfToolbarActionsDele
|
||||||
}
|
}
|
||||||
|
|
||||||
String requestAssistContent(String filename, boolean isWorkProfile) {
|
@Nullable String requestAssistContent(String filename, boolean isWorkProfile) {
|
||||||
- if (mUri == null) {
|
- if (mUri == null) {
|
||||||
+ if ((true)) {
|
+ if ((true)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
String structuredData;
|
String structuredData;
|
||||||
@@ -264,8 +264,6 @@ public class PdfCoordinator {
|
|
||||||
} catch (JSONException e) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
- mActivity.grantUriPermission(
|
|
||||||
- GSAUtils.GSA_PACKAGE_NAME, mUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
|
||||||
PdfUtils.recordIsWorkProfile(isWorkProfile);
|
|
||||||
return structuredData;
|
|
||||||
}
|
|
||||||
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc
|
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ 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
|
||||||
@@ -153,6 +153,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider {
|
@@ -137,6 +137,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider {
|
||||||
final RelatedApplication[] relatedApps,
|
|
||||||
final Url manifestUrl,
|
final Url manifestUrl,
|
||||||
|
final boolean addSavedRelatedApplications,
|
||||||
final FilterInstalledApps_Response callback) {
|
final FilterInstalledApps_Response callback) {
|
||||||
+ assert false;
|
+ assert false;
|
||||||
GURL url = mRenderFrameHost.getLastCommittedURL();
|
GURL url = mRenderFrameHost.getLastCommittedURL();
|
||||||
@@ -27,8 +27,8 @@ diff --git a/components/installedapp/android/java/src/org/chromium/components/in
|
|||||||
diff --git a/content/browser/installedapp/installed_app_provider_impl.cc b/content/browser/installedapp/installed_app_provider_impl.cc
|
diff --git a/content/browser/installedapp/installed_app_provider_impl.cc b/content/browser/installedapp/installed_app_provider_impl.cc
|
||||||
--- a/content/browser/installedapp/installed_app_provider_impl.cc
|
--- a/content/browser/installedapp/installed_app_provider_impl.cc
|
||||||
+++ b/content/browser/installedapp/installed_app_provider_impl.cc
|
+++ b/content/browser/installedapp/installed_app_provider_impl.cc
|
||||||
@@ -59,7 +59,7 @@ void InstalledAppProviderImpl::FilterInstalledApps(
|
@@ -62,7 +62,7 @@ void InstalledAppProviderImpl::FilterInstalledApps(
|
||||||
const GURL& manifest_url,
|
bool add_saved_related_applications,
|
||||||
FilterInstalledAppsCallback callback) {
|
FilterInstalledAppsCallback callback) {
|
||||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||||
- if (!base::FeatureList::IsEnabled(features::kInstalledAppProvider)) {
|
- if (!base::FeatureList::IsEnabled(features::kInstalledAppProvider)) {
|
||||||
@@ -58,8 +58,8 @@ 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
|
||||||
@@ -2499,9 +2499,8 @@
|
@@ -3386,9 +3386,8 @@
|
||||||
name: "InspectorGhostRules",
|
status: "stable",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
- name: "InstalledApp",
|
- name: "InstalledApp",
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -107,7 +107,7 @@ public class StartupPaintPreviewHelper {
|
@@ -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() {
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user