Compare commits
530
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
22857b1d0a | ||
|
|
3b84899f3b | ||
|
|
ab0d30df33 | ||
|
|
f81d12a5da | ||
|
|
e6be41912c | ||
|
|
231c7911e7 | ||
|
|
798b247bd7 | ||
|
|
96057162da | ||
|
|
81414bf266 | ||
|
|
ffc5de1ec7 | ||
|
|
6cd2f7afee | ||
|
|
372e4b43d0 | ||
|
|
6c99513344 | ||
|
|
68cd9afc6c | ||
|
|
9eb67807ec | ||
|
|
fdc60b34ba | ||
|
|
f0c8b7b98c | ||
|
|
e16f7a5a77 | ||
|
|
d3765627a1 | ||
|
|
89c6812817 | ||
|
|
73f0df3c90 | ||
|
|
6989c57e63 | ||
|
|
7ff2d1ed14 | ||
|
|
351c24b3dc | ||
|
|
f5d7de125b | ||
|
|
f708a519b1 | ||
|
|
16818b1d05 | ||
|
|
69c048fcbc | ||
|
|
aa3c3ad076 | ||
|
|
7bb7d7a856 | ||
|
|
3276e0f1ec | ||
|
|
b49ba700a7 | ||
|
|
a4aad222af | ||
|
|
4d82c0beec | ||
|
|
563e6f9a2d | ||
|
|
f8cc243015 | ||
|
|
41e6364c29 | ||
|
|
7c751aedb2 | ||
|
|
5951e48f47 | ||
|
|
8923ff2278 | ||
|
|
a8503d9689 | ||
|
|
f0c183a124 | ||
|
|
2d54179bf9 | ||
|
|
b937cb60ec | ||
|
|
948232d7fc | ||
|
|
9ceadc8787 | ||
|
|
98b696850a | ||
|
|
6c0676eeb8 | ||
|
|
cd81f3a4c7 | ||
|
|
443396cd8f | ||
|
|
477e0b596a | ||
|
|
685ae28e96 | ||
|
|
97e13fb5c0 | ||
|
|
bbea4e614b | ||
|
|
66b68c0008 | ||
|
|
67d7c47488 | ||
|
|
91f6cb6fbd | ||
|
|
a598f0d3ff | ||
|
|
37371ede06 | ||
|
|
d24b215d27 | ||
|
|
7d160b893f | ||
|
|
fe0c1cba97 | ||
|
|
ab02385ba8 | ||
|
|
8e19cfd2e0 | ||
|
|
322478cc9c | ||
|
|
a252cb7bc9 | ||
|
|
8df670e568 | ||
|
|
6511f3ec2e | ||
|
|
e071e7efbc | ||
|
|
9405d5e482 | ||
|
|
a1d941a0b6 | ||
|
|
534ab1be85 | ||
|
|
b228ed72c2 | ||
|
|
8c6ecb46a7 | ||
|
|
6348da2dc7 | ||
|
|
dbacbb5d25 | ||
|
|
d62bb78c21 | ||
|
|
1cc6c158f9 | ||
|
|
f0682a0a9d | ||
|
|
bc584f8fcb | ||
|
|
1cce2f1434 | ||
|
|
30bcef4e01 | ||
|
|
9acda3aed3 | ||
|
|
e84f1330b4 | ||
|
|
6144adc652 | ||
|
|
2fcd346d93 | ||
|
|
aeb7dce1db | ||
|
|
5bc8c21500 | ||
|
|
fac696b3a4 | ||
|
|
8fc87b2af8 | ||
|
|
a99aff1188 | ||
|
|
f978f09587 | ||
|
|
4abd03221f | ||
|
|
0520926856 | ||
|
|
7c79ae4952 | ||
|
|
8998e3de4c | ||
|
|
19099fbee4 | ||
|
|
6b446dcd3d | ||
|
|
a35804c2ca | ||
|
|
7b790f2856 | ||
|
|
15c609d676 | ||
|
|
136f8e6b75 | ||
|
|
b80b51ccd3 | ||
|
|
4da02214e2 | ||
|
|
4ca804577e | ||
|
|
66210f9ff6 | ||
|
|
a269481b57 | ||
|
|
b3258066f2 | ||
|
|
a42b1e7fc6 | ||
|
|
dd4a5ee253 | ||
|
|
d8e9716de3 | ||
|
|
55b2ed5d13 | ||
|
|
6ee953a844 | ||
|
|
69ef85908e | ||
|
|
8c58bf81a3 | ||
|
|
ad20a84ec4 | ||
|
|
dc9e3cfb2c | ||
|
|
89afe5e5ad | ||
|
|
95a360e396 | ||
|
|
5a93f72bda | ||
|
|
f9a6b8febc | ||
|
|
26d88dcdf5 | ||
|
|
a3a3710fb9 | ||
|
|
176624189c | ||
|
|
37d1c12747 | ||
|
|
2a4e8bc8d0 | ||
|
|
ac235cb95c | ||
|
|
a93df08853 | ||
|
|
a608bc0a78 | ||
|
|
4959bf64ec | ||
|
|
2b1f1faa7c | ||
|
|
c3f33c02a7 | ||
|
|
0543a8a30b | ||
|
|
30e471d6d5 | ||
|
|
706aa53fff | ||
|
|
0b445ac869 | ||
|
|
b65b503086 | ||
|
|
74cf1d1c0e | ||
|
|
3d9aa9e924 | ||
|
|
151a5479cd | ||
|
|
c39e3f2300 | ||
|
|
e0bd1dcad3 | ||
|
|
f617340fcf | ||
|
|
6fc978d285 | ||
|
|
3c1546189b | ||
|
|
4d606bb7f3 | ||
|
|
0913a726df | ||
|
|
ecf04a94ca | ||
|
|
f661e4f1b6 | ||
|
|
284a9227c7 | ||
|
|
7fbd09f3fd | ||
|
|
274d6792a7 | ||
|
|
172d20dc88 | ||
|
|
27de00b037 | ||
|
|
6d7f0454eb | ||
|
|
889b9973db | ||
|
|
a072e3f213 | ||
|
|
a2939070ae | ||
|
|
d7764cf6bb | ||
|
|
09813e1323 | ||
|
|
bbd3e1ae70 | ||
|
|
bba935392b | ||
|
|
a566fa9d36 | ||
|
|
0fceae6fcb | ||
|
|
de49992843 | ||
|
|
638d7a12bd | ||
|
|
3fcd3ed94a | ||
|
|
807f3a771d | ||
|
|
79e176dd6e | ||
|
|
94d2bececa | ||
|
|
07ed430d73 | ||
|
|
a68bb3a3ab | ||
|
|
81d5846fdc | ||
|
|
0b99765ab5 | ||
|
|
b6c1b3e713 | ||
|
|
1bfb127003 | ||
|
|
48954716dc | ||
|
|
068d09a1ed | ||
|
|
a84f8339c2 | ||
|
|
14ba22ab7c | ||
|
|
88872af8a8 | ||
|
|
c56a11a15b | ||
|
|
a344693de6 | ||
|
|
034268f745 | ||
|
|
ea0879f386 | ||
|
|
3f3f0cbe04 | ||
|
|
cd7ca5e627 | ||
|
|
453cbc569b | ||
|
|
c572483879 | ||
|
|
c129363303 | ||
|
|
702d473cc6 | ||
|
|
a866bb1c3a | ||
|
|
e37c70d2a9 | ||
|
|
8e283f5f25 | ||
|
|
430b5c499a | ||
|
|
99ebc8a13a | ||
|
|
f7cd3d5ced | ||
|
|
6e91b56ee1 | ||
|
|
1a8486dc70 | ||
|
|
18664c67b7 | ||
|
|
3b9a50ebea | ||
|
|
9316ace7fb | ||
|
|
ccaa497e60 | ||
|
|
603e5f70d6 | ||
|
|
cd8469a358 | ||
|
|
c0eb69974c | ||
|
|
162e094cb7 | ||
|
|
f92c8042b1 | ||
|
|
caba4b52db | ||
|
|
0d9f3b352a | ||
|
|
f22be2f83d | ||
|
|
b714adebb0 | ||
|
|
5271fea1f5 | ||
|
|
dd31024e8c | ||
|
|
e74225ae3d | ||
|
|
8eb04d972b | ||
|
|
4cfadbbdea | ||
|
|
f4641a3185 | ||
|
|
86d37d53e5 | ||
|
|
672a5061d3 | ||
|
|
331a371df0 | ||
|
|
7a613315e8 | ||
|
|
188811844f | ||
|
|
6fba336bc8 | ||
|
|
21afb15a9a | ||
|
|
860536f6f4 | ||
|
|
dfc2b09225 | ||
|
|
4108e68a41 | ||
|
|
9e5c6ee175 | ||
|
|
8f298134e8 | ||
|
|
8e71c67e88 | ||
|
|
828c891360 | ||
|
|
66746d261b | ||
|
|
0cdc64b9f9 | ||
|
|
ffefca018d | ||
|
|
eec8f12351 | ||
|
|
a36bcf5a86 | ||
|
|
f24a533981 | ||
|
|
d5c4756573 | ||
|
|
30ecbf1f25 | ||
|
|
642700f488 | ||
|
|
0200193d36 | ||
|
|
d4d44820ee | ||
|
|
41e8662902 | ||
|
|
21eab5816f | ||
|
|
932cfc6f1e | ||
|
|
23d52c4e84 | ||
|
|
c7027c1604 | ||
|
|
e26c01edb7 | ||
|
|
0e0a9de637 | ||
|
|
f72a886b9a | ||
|
|
9fa795c649 | ||
|
|
34dc628c34 | ||
|
|
2c45b9fbbb | ||
|
|
f95e6ee479 | ||
|
|
a02c9037d4 | ||
|
|
33ed9c7bba | ||
|
|
957d6e4629 | ||
|
|
0182aafe6f | ||
|
|
bf5dbbcd30 | ||
|
|
2e6d34d46e | ||
|
|
303a2b772b | ||
|
|
962233864b | ||
|
|
1a8ef384c2 | ||
|
|
11b3a63f96 | ||
|
|
827cc8c9a7 | ||
|
|
8b7121e4b2 | ||
|
|
e7e932916a | ||
|
|
65f68bea94 | ||
|
|
deaac6181d | ||
|
|
beaf889d59 | ||
|
|
9185ce8caf | ||
|
|
8930409029 | ||
|
|
573fb49274 | ||
|
|
0cc2f33cf4 | ||
|
|
03f23b3fd0 | ||
|
|
f81260b38f | ||
|
|
51e31406dc | ||
|
|
76b7e1415a | ||
|
|
7998846c20 | ||
|
|
74f8fa716f | ||
|
|
dad28f9e41 | ||
|
|
f3f0781b71 | ||
|
|
dee3870e45 | ||
|
|
853bcab940 | ||
|
|
c4ce10cd51 | ||
|
|
8aa4f9e3b7 | ||
|
|
ffffa2aba3 | ||
|
|
b7c8cb3be5 | ||
|
|
0521167495 | ||
|
|
a3edc9ee74 | ||
|
|
4ea39cb6fa | ||
|
|
5c9c0d59db | ||
|
|
c5ecfb9ff1 | ||
|
|
86bb2672a7 | ||
|
|
b441c2af1b | ||
|
|
9be5fc052b | ||
|
|
89edb18bc3 | ||
|
|
91419aa0e8 | ||
|
|
aaed6fe837 | ||
|
|
580bc2e205 | ||
|
|
49a7e0f16e | ||
|
|
21b97895e4 | ||
|
|
5dd685f29b | ||
|
|
3c17e9dadc | ||
|
|
a43932dd4e | ||
|
|
4e490e90de | ||
|
|
b4fc6f76c8 | ||
|
|
26e700753f | ||
|
|
6c36a087f6 | ||
|
|
97d1e57845 | ||
|
|
6acf8d8983 | ||
|
|
c64a775129 | ||
|
|
3046dcc14b | ||
|
|
8fd6ab9a90 | ||
|
|
1dbbff49ab | ||
|
|
588bbbab91 | ||
|
|
dcbb3d0a3b | ||
|
|
a2b0b9aaba | ||
|
|
d4b843e7af | ||
|
|
b8e3cd6eb9 | ||
|
|
cec56a39c8 | ||
|
|
d0c4c51118 | ||
|
|
15fe961a62 | ||
|
|
9d0b97fc3c | ||
|
|
a13b07e044 | ||
|
|
5ae28c6366 | ||
|
|
ed22491b64 | ||
|
|
6e8eab21d5 | ||
|
|
19a8a5b480 | ||
|
|
5a9c529bf8 | ||
|
|
f24e43633f | ||
|
|
0f42da23e6 | ||
|
|
8f293b2c99 | ||
|
|
bc88ce296a | ||
|
|
6eb62d841a | ||
|
|
278e74c902 | ||
|
|
f2fd418f82 | ||
|
|
8b0c44f2b2 | ||
|
|
0db4890cec | ||
|
|
b0a88632db | ||
|
|
dab5cd3ded | ||
|
|
9344cc41d5 | ||
|
|
e2468d0ffc | ||
|
|
cbcf50b907 | ||
|
|
39af4f6d66 | ||
|
|
ca971023d5 | ||
|
|
4d58c02604 | ||
|
|
ab0766a035 | ||
|
|
78e9cfeea2 | ||
|
|
2224e7f3ad | ||
|
|
e4f141e8c1 | ||
|
|
a4025183d4 | ||
|
|
18b7219a2d | ||
|
|
c0e98433d5 | ||
|
|
22c8b00d7d | ||
|
|
828db82adb | ||
|
|
90694a4a4b | ||
|
|
cf7376fbc0 | ||
|
|
2af2272211 | ||
|
|
1eb5e65b79 | ||
|
|
433b244558 | ||
|
|
30157ceea3 | ||
|
|
636f85125b | ||
|
|
d30d8a8de0 | ||
|
|
6f33d192a1 | ||
|
|
c5b954b78e | ||
|
|
6828b4659e | ||
|
|
5a80836ca4 | ||
|
|
d6aff9d77d | ||
|
|
b90df7de3d | ||
|
|
e614ce689b | ||
|
|
86fc1fe3b1 | ||
|
|
99e6617f72 | ||
|
|
2fbd732a46 | ||
|
|
47a5cc56e6 | ||
|
|
1bf3120c5f | ||
|
|
4f6e5fb151 | ||
|
|
c27f2e5f1d | ||
|
|
00230c781a | ||
|
|
75a57b2a2b | ||
|
|
02ffafca81 | ||
|
|
f77ecce088 | ||
|
|
9c3ea7f318 | ||
|
|
e6a69ef7f0 | ||
|
|
d427bfc657 | ||
|
|
90d76c1a8a | ||
|
|
77d223e553 | ||
|
|
8761ac5cc8 | ||
|
|
84b69ec999 | ||
|
|
317cbb29ea | ||
|
|
48a677af56 | ||
|
|
021c8cf7df | ||
|
|
023e0d2b15 | ||
|
|
b3870515ea | ||
|
|
20875bfef3 | ||
|
|
d0f3c845f8 | ||
|
|
c4d476a24b | ||
|
|
c9392d4b62 | ||
|
|
abc86fbddd | ||
|
|
92689a7bf7 | ||
|
|
29739effb8 | ||
|
|
4f43df43fb | ||
|
|
4547ca345d | ||
|
|
d73a55d8c2 | ||
|
|
a4e1ec6636 | ||
|
|
483b893b0a | ||
|
|
b25c9dd76e | ||
|
|
68de8daee6 | ||
|
|
66251e1c0d | ||
|
|
10e2f80205 | ||
|
|
d8c90a7752 | ||
|
|
d17ff3e614 | ||
|
|
0c75e1ac3c | ||
|
|
042af3f698 | ||
|
|
c7fd8636f7 | ||
|
|
952707a7d8 | ||
|
|
027470dccc | ||
|
|
21318d7f9b | ||
|
|
791e1b1a27 | ||
|
|
1e66a74a84 | ||
|
|
1a91c1d7c2 | ||
|
|
c5d76b1ee1 | ||
|
|
bcb5be5cef | ||
|
|
0a1d422610 | ||
|
|
86ee111fd7 | ||
|
|
379b10ec21 | ||
|
|
e7fbfb574b | ||
|
|
002dc9166f | ||
|
|
fd59efe186 | ||
|
|
18368c1802 | ||
|
|
97177ad5d3 | ||
|
|
fde6776d3c | ||
|
|
b8c5d9758e | ||
|
|
779a26d6e3 | ||
|
|
22a897813f | ||
|
|
3d7a50f482 | ||
|
|
1385f9dc11 | ||
|
|
36d818d646 | ||
|
|
7d44fd7843 | ||
|
|
642aea61ae | ||
|
|
6e1f921142 | ||
|
|
50fe823fde | ||
|
|
40cd52a0d5 | ||
|
|
3610ced91b | ||
|
|
8ff7c96754 | ||
|
|
b733ce78e3 | ||
|
|
fd9fa35ac5 | ||
|
|
b086743247 | ||
|
|
643e338aad | ||
|
|
bb0807e785 | ||
|
|
51ed1abd6b | ||
|
|
aa6b41f5b1 | ||
|
|
9ab1087503 | ||
|
|
51b6e8a7df | ||
|
|
658da3bb02 | ||
|
|
0b44dce1f6 | ||
|
|
0fa437c23c | ||
|
|
95077c58c0 | ||
|
|
929c1ea117 | ||
|
|
80576fa62d | ||
|
|
6b7b3fc40c | ||
|
|
ebc9975235 | ||
|
|
0cfb05b9d5 | ||
|
|
02a91daffc | ||
|
|
bdd68757c3 | ||
|
|
82f169f558 | ||
|
|
ff39a686aa | ||
|
|
4a3146e133 | ||
|
|
c051bd02cb | ||
|
|
4c8ad7d37e | ||
|
|
3d26bc1338 | ||
|
|
727a4ade45 | ||
|
|
fc55de7e7c | ||
|
|
8d2359bbaf | ||
|
|
afea6f394b | ||
|
|
a1e683ff15 | ||
|
|
6e563ef689 | ||
|
|
ad472e23bb | ||
|
|
d9d526fd03 | ||
|
|
33e27c3728 | ||
|
|
388b2ba3d5 | ||
|
|
b094061324 | ||
|
|
9fdf65383f | ||
|
|
5cc9d3a247 | ||
|
|
bdca071fa1 | ||
|
|
a82eb5e799 | ||
|
|
579060fe51 | ||
|
|
38b0ecebd9 | ||
|
|
ba8d5ba317 | ||
|
|
114102c197 | ||
|
|
13d5903179 | ||
|
|
0ee65d064b | ||
|
|
2a1b01ed2b | ||
|
|
761c0675bd | ||
|
|
339db134a0 | ||
|
|
bdf0c6a195 | ||
|
|
42771130fe | ||
|
|
5b80336a7d | ||
|
|
9e26c7ccb9 | ||
|
|
39981ed610 | ||
|
|
af9a0d6217 | ||
|
|
a45ab18f8f | ||
|
|
5c83f0e201 | ||
|
|
f8c78137e9 | ||
|
|
4b7078789c | ||
|
|
00f399d8aa | ||
|
|
009240be1e | ||
|
|
89487c4058 | ||
|
|
98f1112f65 | ||
|
|
16315ef3fa | ||
|
|
d5133f33d3 | ||
|
|
ee26fd10e5 | ||
|
|
0ec6f7f63c | ||
|
|
c84b866ada | ||
|
|
250b213a99 | ||
|
|
a5b8c1f1ba | ||
|
|
52b7e1c1f7 | ||
|
|
aed93b83d7 | ||
|
|
30f51337c5 | ||
|
|
2e48e14ad8 | ||
|
|
1be757d064 | ||
|
|
a82c4d7f97 | ||
|
|
3fede7c3fd | ||
|
|
eda9051a57 | ||
|
|
7dcba72749 | ||
|
|
b19c505bf8 | ||
|
|
bf086af7df | ||
|
|
7c985a4aeb | ||
|
|
22fa08f7c5 |
@@ -0,0 +1,5 @@
|
||||
[*.{yaml,sh,gn_args}]
|
||||
tab_width = 2
|
||||
indent_size = 2
|
||||
end_of_line = crlf
|
||||
indent_style = space
|
||||
@@ -0,0 +1 @@
|
||||
*.zip binary
|
||||
@@ -1,4 +0,0 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
liberapay: csagan5
|
||||
custom: https://www.bromite.org/#donate
|
||||
@@ -46,6 +46,21 @@ body:
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
id: is_chromium2
|
||||
attributes:
|
||||
label: Are you sure?
|
||||
description: |
|
||||
Please check your answer above again, it is important information
|
||||
|
||||
If the bug is related to functionality that does not exist in Chromium then answer "No".
|
||||
multiple: false
|
||||
options:
|
||||
- "Yes"
|
||||
- "No"
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: cromite_version
|
||||
attributes:
|
||||
@@ -66,47 +81,59 @@ body:
|
||||
- armeabi-v7a
|
||||
- x86
|
||||
- x64
|
||||
- windows
|
||||
- all
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
id: android_version
|
||||
id: platform_version
|
||||
attributes:
|
||||
label: Android version
|
||||
label: Platform version
|
||||
multiple: false
|
||||
description: What version of Android are you running?
|
||||
options:
|
||||
- 14
|
||||
- 13
|
||||
- 12.1
|
||||
- 12.0
|
||||
- 11
|
||||
- 10
|
||||
- 9
|
||||
- 8.1
|
||||
- 8.0
|
||||
- 7.1
|
||||
- 7.0
|
||||
- 6
|
||||
- 5.1
|
||||
- 5.0
|
||||
- 4.4
|
||||
- 4.3
|
||||
- 4.2
|
||||
- 4.1
|
||||
- 4.0
|
||||
- Android 14
|
||||
- Android 13
|
||||
- Android 12.1
|
||||
- Android 12.0
|
||||
- Android 11
|
||||
- Android 10
|
||||
- Android 9
|
||||
- Android 8.1
|
||||
- Android 8.0
|
||||
- Android 7.1
|
||||
- Android 7.0
|
||||
- Android Emulator
|
||||
- Windows 10
|
||||
- Windows 11
|
||||
- I prefer not to write it/No matter
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: device_model
|
||||
attributes:
|
||||
label: Device model
|
||||
label: Android Device model
|
||||
description: What is your device model? This can usually be found in your device's settings in the "About" section.
|
||||
placeholder: (e.g. `OnePlus 8 (IN2010)`, or `SM-G960UZKABST`, etc.)
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
id: is_android_rooted
|
||||
attributes:
|
||||
label: Is the device rooted?
|
||||
description: |
|
||||
The information is important but not essential; it allows additional checks to be made.
|
||||
multiple: false
|
||||
options:
|
||||
- "Yes"
|
||||
- "No"
|
||||
- "I prefer not to write it"
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: changed_flags
|
||||
attributes:
|
||||
@@ -128,6 +155,7 @@ body:
|
||||
options:
|
||||
- "Yes"
|
||||
- "No"
|
||||
- "Always Incognito Mode"
|
||||
validations:
|
||||
required: true
|
||||
|
||||
|
||||
@@ -28,6 +28,8 @@ body:
|
||||
required: true
|
||||
- label: "I have searched [existing issues](https://github.com/uazo/cromite/issues) for my feature request. This is a new issue (NOT a duplicate) and is not related to another issue."
|
||||
required: true
|
||||
- label: "I have searched [wont fix issues](https://github.com/uazo/cromite/issues?q=label%3Awontfix) and this request is not among them"
|
||||
required: true
|
||||
- label: "This is a feature request for the Cromite browser; not the website nor F-Droid nor anything else."
|
||||
required: true
|
||||
|
||||
@@ -38,6 +40,7 @@ body:
|
||||
description: Features that are not related to privacy are not considered.
|
||||
multiple: false
|
||||
options:
|
||||
- "<please select>"
|
||||
- "Yes"
|
||||
- "No"
|
||||
validations:
|
||||
|
||||
@@ -9,7 +9,7 @@ permissions:
|
||||
repository-projects: none
|
||||
security-events: none
|
||||
statuses: none
|
||||
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
@@ -17,29 +17,46 @@ on:
|
||||
description: 'chromium version'
|
||||
required: false
|
||||
default: ''
|
||||
schedule:
|
||||
type:
|
||||
description: 'runner?'
|
||||
required: false
|
||||
default: 'ubuntu-latest'
|
||||
schedule:
|
||||
- cron: '0 1 * * *'
|
||||
|
||||
|
||||
env:
|
||||
VERSION: ${{ github.event.inputs.version }}
|
||||
CHR_VERSION: ${{ github.event.inputs.version }}
|
||||
NEW_VERSION: ${{ null }}
|
||||
|
||||
|
||||
name: Builds and pushes tagged image to DockerHub
|
||||
jobs:
|
||||
generate_build_deps:
|
||||
name: Generate Build Deps
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ fromJSON( format('["ubuntu-latest", "{0}"]', github.event.inputs.type) )[github.event.inputs.type != ''] }}
|
||||
steps:
|
||||
- name: Reclaiming disk space on / by removing dotnet/android/ghc
|
||||
#if: ${{ github.event.inputs.type == '' }}
|
||||
run: |
|
||||
sudo rm -rf /usr/share/dotnet
|
||||
sudo rm -rf /usr/local/lib/android
|
||||
sudo rm -rf /opt/ghc
|
||||
sudo apt-get remove google-cloud-sdk azure-cli google-chrome-stable \
|
||||
test -d /usr/share/dotnet && sudo rm -rf /usr/share/dotnet
|
||||
test -d /usr/local/lib/android && sudo rm -rf /usr/local/lib/android
|
||||
test -d /opt/ghc && sudo rm -rf /opt/ghc
|
||||
test -d /opt/hostedtoolcache/CodeQL && sudo rm -rf /opt/hostedtoolcache/CodeQL
|
||||
sudo apt-get remove google-cloud-cli azure-cli google-chrome-stable \
|
||||
firefox mysql-server-core-8.0 mono-devel podman \
|
||||
powershell
|
||||
powershell || true
|
||||
sudo apt-get autoremove
|
||||
|
||||
|
||||
- name: Enable proxy on container
|
||||
shell: bash
|
||||
if: ${{ github.event.inputs.type != 'ubuntu-latest' }}
|
||||
run: |
|
||||
if ! [[ -z "${HTTP_PROXY}" ]]; then
|
||||
PROXY_ADDR=http://$(hostname -I | cut -d' ' -f1 | xargs):8118
|
||||
echo "PROXY_ADDR=$PROXY_ADDR" >> $GITHUB_ENV
|
||||
sudo iptables -D INPUT -p tcp -s localhost --dport 8118 -j ACCEPT
|
||||
sudo iptables -D INPUT -p tcp --dport 8118 -j DROP
|
||||
fi
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
@@ -51,52 +68,107 @@ jobs:
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
|
||||
- name: Check versions
|
||||
shell: bash
|
||||
run: |
|
||||
if [ -z $VERSION ]; then
|
||||
VERSION=$(curl -s https://omahaproxy.appspot.com/all.json | jq '.[] | select(.os | contains("win64")) | .versions[] | select(.channel | contains("stable")) | .current_version' | xargs)
|
||||
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
||||
if [ -z $CHR_VERSION ]; then
|
||||
LATEST_WIN=$(curl -s 'https://versionhistory.googleapis.com/v1/chrome/platforms/win64/channels/stable/versions/all/releases' | jq -rc '.releases[].version' | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -n 1)
|
||||
LATEST_ANDROID=$(curl -s 'https://versionhistory.googleapis.com/v1/chrome/platforms/android/channels/stable/versions/all/releases' | jq -rc '.releases[].version' | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -n 1)
|
||||
CHR_VERSION=$(echo -e "$LATEST_ANDROID\n$LATEST_WIN" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -n 1)
|
||||
|
||||
echo "LATEST_WIN=$LATEST_WIN" >> $GITHUB_ENV
|
||||
echo "LATEST_ANDROID=$LATEST_ANDROID" >> $GITHUB_ENV
|
||||
echo "CHR_VERSION=$CHR_VERSION" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
|
||||
- name: Building build-deps container ${{ env.VERSION }}
|
||||
shell: bash
|
||||
run: |
|
||||
IS_PRESENT=$(docker inspect --type=image uazo/build-deps:$VERSION > /dev/null ; echo $?)
|
||||
IS_PRESENT=$(docker inspect --type=image uazo/build-deps:$CHR_VERSION > /dev/null ; echo $?)
|
||||
if [ $IS_PRESENT -ne "0" ]; then
|
||||
IS_PRESENT=$(docker manifest inspect uazo/build-deps:$VERSION > /dev/null ; echo $?)
|
||||
IS_PRESENT=$(docker manifest inspect uazo/build-deps:$CHR_VERSION > /dev/null ; echo $?)
|
||||
if [ $IS_PRESENT -ne "0" ]; then
|
||||
DOCKER_BUILDKIT=1 docker build -t uazo/build-deps:$VERSION \
|
||||
DOCKER_BUILDKIT=1 docker build -t uazo/build-deps:$CHR_VERSION \
|
||||
--progress plain \
|
||||
--build-arg VERSION=$VERSION \
|
||||
--build-arg VERSION=$CHR_VERSION \
|
||||
--build-arg HTTP_PROXY="$PROXY_ADDR" \
|
||||
--no-cache \
|
||||
cromite/tools/images/build-deps/.
|
||||
|
||||
docker push uazo/build-deps:$VERSION
|
||||
echo "NEW_VERSION=$VERSION" >> $GITHUB_ENV
|
||||
|
||||
docker push uazo/build-deps:$CHR_VERSION
|
||||
echo "NEW_VERSION=$CHR_VERSION" >> $GITHUB_ENV
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
- name: Building chromium container ${{ env.VERSION }}
|
||||
shell: bash
|
||||
run: |
|
||||
IS_PRESENT=$(docker inspect --type=image uazo/chromium:$VERSION > /dev/null ; echo $?)
|
||||
IS_PRESENT=$(docker inspect --type=image uazo/chromium:$CHR_VERSION > /dev/null ; echo $?)
|
||||
if [ $IS_PRESENT -ne "0" ]; then
|
||||
IS_PRESENT=$(docker manifest inspect uazo/chromium:$VERSION > /dev/null ; echo $?)
|
||||
IS_PRESENT=$(docker manifest inspect uazo/chromium:$CHR_VERSION > /dev/null ; echo $?)
|
||||
if [ $IS_PRESENT -ne "0" ]; then
|
||||
DOCKER_BUILDKIT=1 docker build -t uazo/chromium:$VERSION \
|
||||
DOCKER_BUILDKIT=1 docker build -t uazo/chromium:$CHR_VERSION \
|
||||
--progress plain \
|
||||
--build-arg VERSION=$VERSION \
|
||||
--build-arg VERSION=$CHR_VERSION \
|
||||
--build-arg HTTP_PROXY="$PROXY_ADDR" \
|
||||
cromite/tools/images/chr-source/.
|
||||
|
||||
docker push uazo/chromium:$VERSION
|
||||
echo "NEW_VERSION=$VERSION" >> $GITHUB_ENV
|
||||
|
||||
docker push uazo/chromium:$CHR_VERSION
|
||||
echo "NEW_VERSION=$CHR_VERSION" >> $GITHUB_ENV
|
||||
fi
|
||||
fi
|
||||
|
||||
- name: Update files under control
|
||||
shell: bash
|
||||
run: |
|
||||
cd cromite
|
||||
RELEASE=$(cat build/RELEASE | xargs)
|
||||
|
||||
cd tools/under-control
|
||||
|
||||
DO_UPDATE=0
|
||||
if [ -n "$NEW_VERSION" ]; then
|
||||
if [ "$RELEASE" != "$NEW_VERSION" ]; then
|
||||
DO_UPDATE=1
|
||||
fi
|
||||
|
||||
elif [ "$RELEASE" != "$(cat src/RELEASE | xargs)" ]; then
|
||||
DO_UPDATE=1
|
||||
NEW_VERSION=$RELEASE
|
||||
fi
|
||||
|
||||
if [[ DO_UPDATE -eq 1 ]]; then
|
||||
echo "Found new version $NEW_VERSION"
|
||||
echo "Under control: $(cat src/RELEASE | xargs)"
|
||||
echo "Current: $RELEASE"
|
||||
|
||||
test -d src && rm -rf src
|
||||
docker build --progress=plain --build-arg "TAG=$NEW_VERSION" -o . .
|
||||
echo $NEW_VERSION >src/RELEASE
|
||||
fi
|
||||
|
||||
CHANGES=0 && git diff --quiet || CHANGES=1
|
||||
echo "CHANGES=$CHANGES" >> $GITHUB_ENV
|
||||
if [[ CHANGES -eq 1 ]]; then
|
||||
git add src
|
||||
git diff --name-only --staged
|
||||
fi
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@dcd5fd746d53dd8de555c0f10bca6c35628be47a #v3.12.0
|
||||
if: env.CHANGES == '1'
|
||||
with:
|
||||
token: ${{ secrets.CROMITE_PULLS }}
|
||||
path: cromite
|
||||
add-paths: |
|
||||
tools/under-control/*
|
||||
commit-message: 'AUTOMATED - new files under control ${{ env.NEW_VERSION }}'
|
||||
title: New files under control ${{ env.NEW_VERSION }}
|
||||
body: ${{ env.MESSAGE }}
|
||||
delete-branch: true
|
||||
branch-suffix: short-commit-hash
|
||||
|
||||
- name: Create issue ${{ env.VERSION }}
|
||||
if: "${{ env.NEW_VERSION != '' }}"
|
||||
shell: bash
|
||||
@@ -104,10 +176,23 @@ jobs:
|
||||
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
|
||||
$GH issue create -t "$VERSION: new chromium version" -b ""
|
||||
|
||||
|
||||
|
||||
|
||||
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
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
name: Build Sysbox
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
sha:
|
||||
description: 'Sysbox SHA'
|
||||
required: true
|
||||
default: ''
|
||||
|
||||
env:
|
||||
SYSBOX_SHA: ${{ github.event.inputs.sha }}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: cromite
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Build patched sysbox
|
||||
run: |
|
||||
git clone --recursive https://github.com/nestybox/sysbox.git
|
||||
cd sysbox
|
||||
git checkout $SYSBOX_SHA
|
||||
git submodule update --recursive
|
||||
|
||||
cd sysbox-runc/
|
||||
git apply --ignore-whitespace ../../cromite/tools/images/sysbox/add-x86-x32-arch.patch
|
||||
git status
|
||||
cd ..
|
||||
|
||||
make sysbox-static TARGET_ARCH=x64
|
||||
|
||||
zip -r build.zip build
|
||||
|
||||
- name: Publish
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: build.zip
|
||||
path: sysbox/build.zip
|
||||
@@ -10,7 +10,7 @@ permissions:
|
||||
repository-projects: none
|
||||
security-events: none
|
||||
statuses: none
|
||||
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
@@ -19,11 +19,11 @@ on:
|
||||
required: true
|
||||
default: ''
|
||||
target_os:
|
||||
description: 'targetos [android/win/all]'
|
||||
description: 'targetos [android/win/linux/all]'
|
||||
required: true
|
||||
default: 'all'
|
||||
build:
|
||||
description: 'android arch [arm64/x64/all]'
|
||||
description: 'android arch [arm/arm64/x64/all]'
|
||||
required: true
|
||||
default: 'all'
|
||||
type:
|
||||
@@ -38,9 +38,9 @@ on:
|
||||
description: 'clangd? [true/false]'
|
||||
required: true
|
||||
default: 'false'
|
||||
|
||||
|
||||
env:
|
||||
BROMITE_SHA: ${{ github.event.inputs.sha }}
|
||||
CROMITE_SHA: ${{ github.event.inputs.sha }}
|
||||
REMOVEDOCKERSUPPORT: true
|
||||
USELOCALIMAGE: true
|
||||
|
||||
@@ -67,15 +67,14 @@ jobs:
|
||||
|
||||
- name: Get current chromium version
|
||||
shell: bash
|
||||
run: |
|
||||
run: |
|
||||
export VERSION=$( cat ./cromite/build/RELEASE )
|
||||
rm -rf bromite
|
||||
|
||||
|
||||
echo Current version is $VERSION
|
||||
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
||||
|
||||
|
||||
cd cromite/tools
|
||||
|
||||
|
||||
- name: Building build-deps container ${{ env.VERSION }}
|
||||
shell: bash
|
||||
run: |
|
||||
@@ -91,7 +90,7 @@ jobs:
|
||||
cromite/tools/images/build-deps/.
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
- name: Building chromium container ${{ env.VERSION }}
|
||||
shell: bash
|
||||
run: |
|
||||
@@ -107,37 +106,45 @@ jobs:
|
||||
fi
|
||||
fi
|
||||
|
||||
- name: Building cromite container ${{ env.VERSION }}-${{ env.BROMITE_SHA }}
|
||||
- name: Building cromite container ${{ env.VERSION }}-${{ env.CROMITE_SHA }}
|
||||
shell: bash
|
||||
run: |
|
||||
IS_PRESENT=$(docker inspect --type=image uazo/cromite:$VERSION-$BROMITE_SHA > /dev/null ; echo $?)
|
||||
IS_PRESENT=$(docker inspect --type=image uazo/cromite:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
||||
if [ $IS_PRESENT -ne "0" ]; then
|
||||
IS_PRESENT=$(docker manifest inspect uazo/cromite:$VERSION-$BROMITE_SHA > /dev/null ; echo $?)
|
||||
IS_PRESENT=$(docker manifest inspect uazo/cromite:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
||||
if [ $IS_PRESENT -ne "0" ]; then
|
||||
DOCKER_BUILDKIT=1 docker build -t uazo/cromite:$VERSION-$BROMITE_SHA --progress plain \
|
||||
--build-arg BROMITE_SHA=$BROMITE_SHA \
|
||||
DOCKER_BUILDKIT=1 docker build -t uazo/cromite:$VERSION-$CROMITE_SHA --progress plain \
|
||||
--build-arg CROMITE_SHA=$CROMITE_SHA \
|
||||
--build-arg VERSION=$VERSION \
|
||||
--build-arg HTTP_PROXY="$PROXY_ADDR" \
|
||||
cromite/tools/images/bromite-source/.
|
||||
cromite/tools/images/cromite-source/.
|
||||
fi
|
||||
fi
|
||||
|
||||
- name: Building cromite-build container ${{ env.VERSION }}-${{ env.BROMITE_SHA }}
|
||||
|
||||
- name: Building cromite-build container ${{ env.VERSION }}-${{ env.CROMITE_SHA }}
|
||||
shell: bash
|
||||
run: |
|
||||
IS_PRESENT=$(docker inspect --type=image uazo/cromite-build:$VERSION-$BROMITE_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
|
||||
IS_PRESENT=$(docker manifest inspect uazo/cromite-build:$VERSION-$BROMITE_SHA > /dev/null ; echo $?)
|
||||
IS_PRESENT=$(docker manifest inspect uazo/cromite-build:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
||||
if [ $IS_PRESENT -ne "0" ]; then
|
||||
DOCKER_BUILDKIT=1 docker build -t uazo/cromite-build:$VERSION-$BROMITE_SHA --progress plain \
|
||||
--build-arg BROMITE_SHA=$BROMITE_SHA \
|
||||
DOCKER_BUILDKIT=1 docker build -t uazo/cromite-build:$VERSION-$CROMITE_SHA --progress plain \
|
||||
--build-arg CROMITE_SHA=$CROMITE_SHA \
|
||||
--build-arg VERSION=$VERSION \
|
||||
--build-arg HTTP_PROXY="$PROXY_ADDR" \
|
||||
--no-cache \
|
||||
cromite/tools/images/bromite-build/.
|
||||
cromite/tools/images/cromite-build/.
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
- name: Get uazo/cromite-build from docker hub if present
|
||||
shell: bash
|
||||
run: |
|
||||
IS_PRESENT=$(docker manifest inspect uazo/cromite-build:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
||||
if [ $IS_PRESENT -eq "0" ]; then
|
||||
docker pull uazo/cromite-build:$VERSION-$CROMITE_SHA
|
||||
fi
|
||||
|
||||
- name: Mark image to build
|
||||
shell: bash
|
||||
run: |
|
||||
@@ -145,14 +152,14 @@ jobs:
|
||||
if [ $IS_PRESENT -eq "0" ]; then
|
||||
docker rmi uazo/cromite-build:build
|
||||
fi
|
||||
docker tag uazo/cromite-build:$VERSION-$BROMITE_SHA uazo/cromite-build:build
|
||||
|
||||
docker tag uazo/cromite-build:$VERSION-$CROMITE_SHA uazo/cromite-build:build
|
||||
|
||||
build:
|
||||
runs-on: ${{ github.event.inputs.type }}
|
||||
needs: check_images
|
||||
if: success()
|
||||
timeout-minutes: 1200
|
||||
|
||||
timeout-minutes: 1440
|
||||
|
||||
container:
|
||||
image: uazo/cromite-build:build
|
||||
env:
|
||||
@@ -163,25 +170,27 @@ jobs:
|
||||
# kythe
|
||||
KYTHE_CORPUS: chromium.googlesource.com/chromium/src
|
||||
KYTHE_ROOT_DIRECTORY: /home/lg/working_dir/chromium/src
|
||||
KYTHE_OUTPUT_DIRECTORY: /home/lg/working_dir/chromium/src/out/bromite/kythe
|
||||
KYTHE_OUTPUT_DIRECTORY: /home/lg/working_dir/chromium/src/out/arm64/kythe
|
||||
# cross build
|
||||
DEPOT_TOOLS_WIN_TOOLCHAIN_BASE_URL: /win_sdk/10.0.22621.0/
|
||||
WINDOWSSDKDIR: "/win_sdk/10.0.22621.0/Windows Kits/10/"
|
||||
GYP_MSVS_OVERRIDE_PATH: /win_sdk/10.0.22621.0/
|
||||
# compile in debug mode
|
||||
TARGET_ISDEBUG: ${{ github.event.inputs.debug }}
|
||||
TARGET_ISDEBUG: ${{ github.event.inputs.debug }}
|
||||
TARGET_OS: ${{ github.event.inputs.target_os }}
|
||||
USE_KEYSTORE: true
|
||||
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
|
||||
CROMITE_PREF_HASH_SEED_BIN: ${{ secrets.CROMITE_PREF_HASH_SEED_BIN }}
|
||||
volumes:
|
||||
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/arm64:/home/lg/working_dir/chromium/src/out/bromite
|
||||
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/x64:/home/lg/working_dir/chromium/src/out/bromite_x64
|
||||
- /storage/images/${{ github.event.inputs.sha }}/win/x64:/home/lg/working_dir/chromium/src/out/bromite_win
|
||||
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/arm:/home/lg/working_dir/chromium/src/out/arm
|
||||
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/arm64:/home/lg/working_dir/chromium/src/out/arm64
|
||||
- /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 }}/win/x64:/home/lg/working_dir/chromium/src/out/win64
|
||||
- /tmp/proxy:/tmp/proxy
|
||||
- /win_sdk:/win_sdk
|
||||
|
||||
steps:
|
||||
|
||||
steps:
|
||||
- name: Prepare Build Container
|
||||
shell: bash
|
||||
run: |
|
||||
@@ -194,19 +203,27 @@ jobs:
|
||||
HTTPS_PROXY=
|
||||
http_proxy=
|
||||
https_proxy=
|
||||
|
||||
|
||||
# set out folder permissions
|
||||
test -d chromium/src/out/bromite || sudo mkdir -p chromium/src/out/bromite && \
|
||||
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/bromite
|
||||
sudo chown lg chromium/src/out/arm
|
||||
|
||||
test -d chromium/src/out/bromite_win || sudo mkdir -p chromium/src/out/bromite_win && \
|
||||
test -d chromium/src/out/arm64 || sudo mkdir -p chromium/src/out/arm64 && \
|
||||
sudo chown lg chromium/src/out &&
|
||||
sudo chown lg chromium/src/out/bromite_win
|
||||
sudo chown lg chromium/src/out/arm64
|
||||
|
||||
test -d chromium/src/out/bromite_x64 || sudo mkdir -p chromium/src/out/bromite_x64 && \
|
||||
test -d chromium/src/out/win64 || sudo mkdir -p chromium/src/out/win64 && \
|
||||
sudo chown lg chromium/src/out &&
|
||||
sudo chown lg chromium/src/out/bromite_x64
|
||||
sudo chown lg chromium/src/out/win64
|
||||
|
||||
test -d chromium/src/out/x64 || sudo mkdir -p chromium/src/out/x64 && \
|
||||
sudo chown lg chromium/src/out &&
|
||||
sudo chown lg chromium/src/out/x64
|
||||
|
||||
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/lin64
|
||||
|
||||
# make kythe output directory
|
||||
test -d $KYTHE_OUTPUT_DIRECTORY || mkdir -p $KYTHE_OUTPUT_DIRECTORY
|
||||
@@ -222,64 +239,8 @@ jobs:
|
||||
echo "${{ secrets.KEYSTORE }}" > cromite.keystore.asc
|
||||
gpg --homedir ./ -d --passphrase "${{ secrets.KEYSTORE_PASSPHRASE }}" --batch cromite.keystore.asc > cromite.keystore
|
||||
echo "::endgroup::"
|
||||
|
||||
- name: Build Bromite Android arm64
|
||||
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm64' || github.event.inputs.build == 'all') }}
|
||||
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="import(\"/home/lg/working_dir/bromite/build/bromite.gn_args\") $(cat ../../build_args.gni) target_cpu = \"arm64\" " out/bromite
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::-------- gn args"
|
||||
gn args out/bromite/ --list --short
|
||||
gn args out/bromite/ --list >out/bromite/gn_list
|
||||
echo "::endgroup::"
|
||||
|
||||
autoninja -C out/bromite chrome_public_apk
|
||||
|
||||
cp ../../bromite/build/RELEASE out/bromite
|
||||
|
||||
- name: Get ninja logs Android arm64
|
||||
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm64' || github.event.inputs.build == 'all') }}
|
||||
shell: bash
|
||||
run: |
|
||||
cd $WORKSPACE
|
||||
$WORKSPACE/ninjatracing/ninjatracing $WORKSPACE/chromium/src/out/bromite/.ninja_log >$WORKSPACE/chromium/src/out/bromite/ninja_log_trace.json
|
||||
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/bromite/ninja_log_trace.json
|
||||
|
||||
- name: Build Bromite Windows
|
||||
if: ${{ github.event.inputs.target_os == 'win' || github.event.inputs.target_os == 'all' }}
|
||||
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="import(\"/home/lg/working_dir/bromite/build/bromite.gn_args\") target_os = \"win\" $(cat ../../build_args.gni) target_cpu = \"x64\" " out/bromite_win
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::-------- gn args"
|
||||
gn args out/bromite_win/ --list --short
|
||||
gn args out/bromite_win/ --list >out/bromite_win/gn_list
|
||||
echo "::endgroup::"
|
||||
|
||||
autoninja -C out/bromite_win chrome
|
||||
|
||||
cp ../../bromite/build/RELEASE out/bromite_win
|
||||
|
||||
- name: Get ninja logs Windows
|
||||
if: ${{ github.event.inputs.target_os == 'win' || github.event.inputs.target_os == 'all' }}
|
||||
shell: bash
|
||||
run: |
|
||||
cd $WORKSPACE
|
||||
$WORKSPACE/ninjatracing/ninjatracing $WORKSPACE/chromium/src/out/bromite_win/.ninja_log >$WORKSPACE/chromium/src/out/bromite_win/ninja_log_trace.json
|
||||
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/bromite_win/ninja_log_trace.json
|
||||
|
||||
- name: Build Bromite 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') }}
|
||||
shell: bash
|
||||
run: |
|
||||
@@ -287,64 +248,178 @@ jobs:
|
||||
cd $WORKSPACE/chromium/src
|
||||
|
||||
echo "::group::-------- gn gen"
|
||||
gn gen --args="import(\"/home/lg/working_dir/bromite/build/bromite.gn_args\") $(cat ../../build_args.gni) target_cpu = \"x64\" " out/bromite_x64
|
||||
gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/x64
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::-------- gn args"
|
||||
gn args out/bromite_x64/ --list --short
|
||||
gn args out/bromite_x64/ --list >out/bromite_x64/gn_list
|
||||
gn args out/x64/ --list --short
|
||||
gn args out/x64/ --list >out/x64/gn_list
|
||||
echo "::endgroup::"
|
||||
|
||||
autoninja -C out/bromite_x64 chrome_public_apk
|
||||
ninja -C out/x64 chrome_public_bundle
|
||||
ninja -C out/x64 chrome_public_apk
|
||||
|
||||
cp ../../bromite/build/RELEASE out/bromite_x64
|
||||
cp ../../cromite/build/RELEASE out/x64
|
||||
|
||||
- name: Get ninja logs 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') }}
|
||||
shell: bash
|
||||
run: |
|
||||
cd $WORKSPACE
|
||||
$WORKSPACE/ninjatracing/ninjatracing $WORKSPACE/chromium/src/out/bromite_x64/.ninja_log >$WORKSPACE/chromium/src/out/bromite_x64/ninja_log_trace.json
|
||||
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/bromite_x64/ninja_log_trace.json
|
||||
$WORKSPACE/ninjatracing/ninjatracing -a $WORKSPACE/chromium/src/out/x64/.ninja_log >$WORKSPACE/chromium/src/out/x64/ninja_log_trace.json
|
||||
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/x64/ninja_log_trace.json
|
||||
|
||||
|
||||
- name: Generate breakpad symbols arm64
|
||||
- name: Build Cromite Windows x64
|
||||
if: ${{ github.event.inputs.target_os == 'win' || github.event.inputs.target_os == 'all' }}
|
||||
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 = \"win\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/win64
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::-------- gn args"
|
||||
gn args out/win64/ --list --short
|
||||
gn args out/win64/ --list >out/win64/gn_list
|
||||
echo "::endgroup::"
|
||||
|
||||
ninja -C out/win64 chrome
|
||||
|
||||
cp ../../cromite/build/RELEASE out/win64
|
||||
|
||||
- name: Get ninja logs Windows x64
|
||||
if: ${{ github.event.inputs.target_os == 'win' || github.event.inputs.target_os == 'all' }}
|
||||
shell: bash
|
||||
run: |
|
||||
cd $WORKSPACE
|
||||
$WORKSPACE/ninjatracing/ninjatracing -a $WORKSPACE/chromium/src/out/win64/.ninja_log >$WORKSPACE/chromium/src/out/win64/ninja_log_trace.json
|
||||
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/win64/ninja_log_trace.json
|
||||
|
||||
- name: Build Cromite Android arm64
|
||||
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm64' || github.event.inputs.build == 'all') }}
|
||||
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::-------- generating breakpad symbols"
|
||||
autoninja -C out/bromite minidump_stackwalk dump_syms
|
||||
components/crash/content/tools/generate_breakpad_symbols.py --build-dir=out/bromite \
|
||||
--symbols-dir=out/bromite/symbols/ --binary=out/bromite/lib.unstripped/libchrome.so \
|
||||
--platform=android --clear --verbose
|
||||
cp out/bromite/lib.unstripped/libchrome.so out/bromite/symbols/libchrome.lib.so
|
||||
cp out/bromite/minidump_stackwalk out/bromite/symbols
|
||||
cp out/bromite/dump_syms out/bromite/symbols
|
||||
|
||||
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
|
||||
echo "::endgroup::"
|
||||
|
||||
- name: Generate Supersize data
|
||||
echo "::group::-------- gn args"
|
||||
gn args out/arm64/ --list --short
|
||||
gn args out/arm64/ --list >out/arm64/gn_list
|
||||
echo "::endgroup::"
|
||||
|
||||
ninja -C out/arm64 chrome_public_bundle
|
||||
ninja -C out/arm64 chrome_public_apk
|
||||
|
||||
cp ../../cromite/build/RELEASE out/arm64
|
||||
|
||||
- name: Get ninja logs Android arm64
|
||||
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm64' || github.event.inputs.build == 'all') }}
|
||||
shell: bash
|
||||
run: |
|
||||
cd $WORKSPACE
|
||||
$WORKSPACE/ninjatracing/ninjatracing -a $WORKSPACE/chromium/src/out/arm64/.ninja_log >$WORKSPACE/chromium/src/out/arm64/ninja_log_trace.json
|
||||
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/arm64/ninja_log_trace.json
|
||||
|
||||
- name: Generate breakpad symbols for Android arm64
|
||||
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm64' || github.event.inputs.build == 'all') }}
|
||||
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::-------- generating breakpad symbols"
|
||||
ninja -C out/arm64 minidump_stackwalk dump_syms
|
||||
components/crash/content/tools/generate_breakpad_symbols.py --build-dir=out/arm64 \
|
||||
--symbols-dir=out/arm64/symbols/ --binary=out/arm64/lib.unstripped/libchrome.so \
|
||||
--platform=android --clear --verbose
|
||||
cp out/arm64/lib.unstripped/libchrome.so out/arm64/symbols/libchrome.lib.so
|
||||
cp out/arm64/minidump_stackwalk out/arm64/symbols
|
||||
cp out/arm64/dump_syms out/arm64/symbols
|
||||
echo "::endgroup::"
|
||||
|
||||
- name: Generate Supersize data for Android arm64
|
||||
if: ${{ github.event.inputs.debug == 'false' && (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm64' || github.event.inputs.build == 'all') }}
|
||||
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
|
||||
|
||||
tools/binary_size/supersize archive out/bromite/chrome.size --apk-file out/bromite/apks/ChromePublic.apk -v
|
||||
|
||||
- name: Generate clangd index
|
||||
|
||||
tools/binary_size/supersize archive out/arm64/chrome.size --apk-file out/arm64/apks/ChromePublic.apk -v
|
||||
|
||||
- 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') }}
|
||||
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\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"arm\" " out/arm
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::-------- gn args"
|
||||
gn args out/arm/ --list --short
|
||||
gn args out/arm/ --list >out/arm/gn_list
|
||||
echo "::endgroup::"
|
||||
|
||||
ninja -C out/arm chrome_public_bundle
|
||||
ninja -C out/arm chrome_public_apk
|
||||
|
||||
cp ../../cromite/build/RELEASE out/arm
|
||||
|
||||
- name: Get ninja logs 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') }}
|
||||
shell: bash
|
||||
run: |
|
||||
cd $WORKSPACE
|
||||
$WORKSPACE/ninjatracing/ninjatracing -a $WORKSPACE/chromium/src/out/arm/.ninja_log >$WORKSPACE/chromium/src/out/arm/ninja_log_trace.json
|
||||
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/arm/ninja_log_trace.json
|
||||
|
||||
- name: Build Cromite Linux 64
|
||||
if: ${{ (github.event.inputs.target_os == 'linux' || github.event.inputs.target_os == 'all') }}
|
||||
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 = \"linux\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/lin64
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::-------- gn args"
|
||||
gn args out/lin64/ --list --short
|
||||
gn args out/lin64/ --list >out/lin64/gn_list
|
||||
echo "::endgroup::"
|
||||
|
||||
ninja -C out/lin64 chrome
|
||||
|
||||
cp ../../cromite/build/RELEASE out/lin64
|
||||
|
||||
- name: Get ninja logs Linux 64
|
||||
if: ${{ (github.event.inputs.target_os == 'linux' || github.event.inputs.target_os == 'all') }}
|
||||
shell: bash
|
||||
run: |
|
||||
cd $WORKSPACE
|
||||
$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
|
||||
|
||||
- name: Generate clangd index for Android arm64
|
||||
if: ${{ github.event.inputs.clangd == 'true' }}
|
||||
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
|
||||
|
||||
test -f out/bromite/bromite.idx || \
|
||||
cp -r out/bromite out/clangd && \
|
||||
gn gen --args="import(\"/home/lg/working_dir/bromite/build/bromite.gn_args\") $(cat ../../build_args.gni) skip_clangd_unsupported_options = true" out/clangd && \
|
||||
test -f out/arm64/cromite.idx || \
|
||||
cp -r out/arm64 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 \
|
||||
-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/bromite/bromite.idx && \
|
||||
/home/lg/working_dir/clangd_snapshot_20211205/bin/clangd-indexer --executor=all-TUs out/clangd/compile_commands.json >out/arm64/cromite.idx && \
|
||||
rm -rf out/clangd
|
||||
|
||||
@@ -10,14 +10,14 @@ permissions:
|
||||
# repository-projects: none
|
||||
# security-events: none
|
||||
# statuses: none
|
||||
|
||||
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'ci'
|
||||
paths:
|
||||
- 'build/**'
|
||||
|
||||
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
rtag:
|
||||
@@ -26,29 +26,29 @@ on:
|
||||
default: ''
|
||||
|
||||
env:
|
||||
RTAG: ${{ github.event.inputs.rtag }}
|
||||
RTAG: ${{ github.event.inputs.rtag }}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
|
||||
- name: "Get value from dispatch"
|
||||
run: |
|
||||
if [ -z "${RTAG}" ]; then
|
||||
echo "RTAG=$GITHUB_SHA" >> $GITHUB_ENV
|
||||
echo "RTAG=$RTAG"
|
||||
fi
|
||||
|
||||
|
||||
- name: Prepare container
|
||||
run: |
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y wget unzip tar sed dos2unix patchutils wiggle curl
|
||||
|
||||
|
||||
wget https://github.com/uazo/superpatch/releases/latest/download/SuperPatchUtils.tar.gz
|
||||
tar xfz SuperPatchUtils.tar.gz
|
||||
rm SuperPatchUtils.tar.gz
|
||||
|
||||
|
||||
wget https://github.com/ericchiang/pup/releases/download/v0.4.0/pup_v0.4.0_linux_amd64.zip
|
||||
unzip pup_v0.4.0_linux_amd64.zip
|
||||
rm pup_v0.4.0_linux_amd64.zip
|
||||
@@ -96,48 +96,47 @@ jobs:
|
||||
git commit -m $VERSION
|
||||
git tag -a $VERSION -m $VERSION
|
||||
|
||||
git add -f v8
|
||||
git commit -m ":NOEXPORT: v8"
|
||||
git add -f v8 && git commit -m ":NOEXPORT: v8" || true
|
||||
|
||||
- name: Apply patches ${{ github.event.inputs.rtag }}
|
||||
run: |
|
||||
export HOME=$GITHUB_WORKSPACE
|
||||
cd ~/chromium/src
|
||||
|
||||
|
||||
export SILENT=true
|
||||
export SKIPAUTOGENERATED=true
|
||||
bash ~/cromite/tools/apply-all-patch.sh || exit 1
|
||||
|
||||
|
||||
rm -rf ~/cromite/build/patches-new/
|
||||
rm ~/cromite/build/bromite_patches_list_new.txt
|
||||
|
||||
rm ~/cromite/build/cromite_patches_list_new.txt
|
||||
|
||||
- name: Export patches
|
||||
run: |
|
||||
export HOME=$GITHUB_WORKSPACE
|
||||
export HOME=$GITHUB_WORKSPACE
|
||||
cd ~/chromium/src
|
||||
|
||||
|
||||
bash ~/cromite/tools/export-all-patch.sh
|
||||
|
||||
|
||||
cd ~/cromite
|
||||
rm -rf build/patches/*
|
||||
mv build/patches-new/* build/patches
|
||||
rm -rf build/patches-new/
|
||||
|
||||
|
||||
- name: Check differences CHANGES=${{ env.CHANGES }}
|
||||
run: |
|
||||
export HOME=$GITHUB_WORKSPACE
|
||||
|
||||
|
||||
cd ~/cromite
|
||||
CHANGES=0 && git diff --quiet || CHANGES=1
|
||||
echo "CHANGES=$CHANGES" >> $GITHUB_ENV
|
||||
|
||||
|
||||
if [[ CHANGES -eq 1 ]]; then
|
||||
git add build/patches/*.patch
|
||||
git diff --name-only --staged
|
||||
# MESSAGE=$(git diff --name-only --staged)
|
||||
# echo "MESSAGE='$MESSAGE'" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@dcd5fd746d53dd8de555c0f10bca6c35628be47a #v3.12.0
|
||||
if: env.CHANGES == '1'
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
name: 'Check NIST database'
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '30 1 * * *'
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout 'uazo/cromite' ${{ env.BRANCH }}
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: 'uazo/cromite'
|
||||
ref: ${{ github.event.inputs.rtag }}
|
||||
path: 'cromite'
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Get data
|
||||
run: |
|
||||
sudo apt update
|
||||
DEBIAN_FRONTEND=noninteractive sudo apt install -y sed
|
||||
|
||||
export HOME=$GITHUB_WORKSPACE
|
||||
cd ~/cromite/tools
|
||||
test -d cves || mkdir -p cves
|
||||
cd cves
|
||||
|
||||
CY=$(date +%Y)
|
||||
for i in $(seq 2020 $CY)
|
||||
do
|
||||
echo Asking for $i year
|
||||
docker run --rm --name tapir stratosphereips/tapir:latest \
|
||||
bash -c "python3 tapir.py -y $i libjxl -s" >>libjxl.ansi
|
||||
done
|
||||
|
||||
sed -e 's/\x1b\[[0-9;]*m//g' <libjxl.ansi >libjxl.txt
|
||||
rm libjxl.ansi
|
||||
|
||||
- name: Check differences
|
||||
run: |
|
||||
export HOME=$GITHUB_WORKSPACE
|
||||
cd ~/cromite
|
||||
CHANGES=0 && git diff --quiet || CHANGES=1
|
||||
echo "CHANGES=$CHANGES" >> $GITHUB_ENV
|
||||
|
||||
if [[ CHANGES -eq 1 ]]; then
|
||||
git add tools/cves/*.txt
|
||||
git diff --name-only --staged
|
||||
fi
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@dcd5fd746d53dd8de555c0f10bca6c35628be47a #v3.12.0
|
||||
if: env.CHANGES == '1'
|
||||
with:
|
||||
token: ${{ secrets.CROMITE_PULLS }}
|
||||
path: cromite
|
||||
base: ${{ env.BRANCH }}
|
||||
#push-to-fork: uazo/cromite
|
||||
add-paths: |
|
||||
tools/cves/*.txt
|
||||
commit-message: 'AUTOMATED - CVE results'
|
||||
title: New CVE results
|
||||
delete-branch: true
|
||||
branch-suffix: short-commit-hash
|
||||
@@ -10,7 +10,7 @@ permissions:
|
||||
repository-projects: none
|
||||
security-events: none
|
||||
statuses: none
|
||||
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
@@ -18,7 +18,7 @@ on:
|
||||
description: 'uazo/bromite SHA'
|
||||
required: true
|
||||
default: 'ce2f07034a3d3b257e9bada65d8293a6786bb95f'
|
||||
|
||||
|
||||
env:
|
||||
BROMITE_SHA: ${{ github.event.inputs.sha }}
|
||||
REMOVEDOCKERSUPPORT: true
|
||||
@@ -32,12 +32,12 @@ jobs:
|
||||
shell: bash
|
||||
run: |
|
||||
docker tag uazo/bromite-build:$BROMITE_SHA uazo/bromite-build:test
|
||||
|
||||
|
||||
exec-test:
|
||||
runs-on: self-hosted
|
||||
needs: get_image
|
||||
if: success()
|
||||
|
||||
|
||||
container:
|
||||
image: uazo/bromite-build:test
|
||||
env:
|
||||
@@ -50,23 +50,23 @@ jobs:
|
||||
- /storage/images/${{ github.event.inputs.sha }}/out:/home/lg/working_dir/chromium/src/out/bromite:r
|
||||
- /storage/images/${{ github.event.inputs.sha }}/out/tests:/home/lg/working_dir/chromium/src/out/tests
|
||||
options: --device=/dev/kvm
|
||||
|
||||
steps:
|
||||
|
||||
steps:
|
||||
- name: Prepare Test Container
|
||||
shell: bash
|
||||
run: |
|
||||
# set workspace paths
|
||||
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
||||
cd $WORKSPACE
|
||||
|
||||
|
||||
# copy artifacts
|
||||
#cd chromium/src
|
||||
#mkdir -p out/bromite
|
||||
#cp -arp $ARTIFACS_DIR/out/* out/bromite
|
||||
|
||||
|
||||
rm -rf out/tests/*
|
||||
#mkdir -p out/tests
|
||||
|
||||
|
||||
# reset proxy env
|
||||
#HTTP_PROXY=
|
||||
#HTTPS_PROXY=
|
||||
@@ -77,7 +77,7 @@ jobs:
|
||||
# shell: bash
|
||||
# run: |
|
||||
# sleep infinity
|
||||
|
||||
|
||||
- name: Execute chrome junit test
|
||||
shell: bash
|
||||
run: |
|
||||
@@ -95,7 +95,7 @@ jobs:
|
||||
sudo chmod 666 /github/home/.android/
|
||||
tools/android/avd/avd.py install --avd-config ../../generic_android31.textpb -v
|
||||
tools/android/avd/avd.py start --avd-config ../../generic_android31.textpb -v
|
||||
|
||||
|
||||
- name: Execute unit tests
|
||||
shell: bash
|
||||
run: |
|
||||
@@ -110,7 +110,7 @@ jobs:
|
||||
cd $WORKSPACE/chromium/src
|
||||
pkill -f qemu-system-x86
|
||||
tools/android/avd/avd.py start --avd-config ../../generic_android31.textpb -v
|
||||
|
||||
|
||||
- name: Execute instrumentation tests
|
||||
shell: bash
|
||||
run: |
|
||||
|
||||
+116
-52
@@ -1,7 +1,7 @@
|
||||
name: Release Cromite CI
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
@@ -13,25 +13,39 @@ on:
|
||||
description: 'runner? [dev/ci]'
|
||||
required: true
|
||||
default: 'ci'
|
||||
draft:
|
||||
description: 'draft? [true/false]'
|
||||
required: true
|
||||
default: 'false'
|
||||
|
||||
env:
|
||||
BROMITE_SHA: ${{ github.event.inputs.sha }}
|
||||
CROMITE_SHA: ${{ github.event.inputs.sha }}
|
||||
REMOVEDOCKERSUPPORT: true
|
||||
USELOCALIMAGE: true
|
||||
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ${{ github.event.inputs.type }}
|
||||
env:
|
||||
IS_DRAFT: ${{ github.event.inputs.draft }}
|
||||
OUTPUTFILE_ARM: /storage/images/${{ github.event.inputs.sha }}/android/false/arm/
|
||||
OUTPUTFILE_ARM64: /storage/images/${{ github.event.inputs.sha }}/android/false/arm64/
|
||||
OUTPUTFILE_X64: /storage/images/${{ github.event.inputs.sha }}/android/false/x64/
|
||||
|
||||
OUTPUTFILE_WIN: /storage/images/${{ github.event.inputs.sha }}/win/x64/
|
||||
OUTPUTFILE_LIN: /storage/images/${{ github.event.inputs.sha }}/linux/false/lin64/
|
||||
|
||||
steps:
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Prepare container
|
||||
run: |
|
||||
wget https://github.com/ericchiang/pup/releases/download/v0.4.0/pup_v0.4.0_linux_amd64.zip
|
||||
unzip pup_v0.4.0_linux_amd64.zip && rm pup_v0.4.0_linux_amd64.zip
|
||||
BRANCH=$(curl https://github.com/uazo/cromite/branch_commits/$BROMITE_SHA | ./pup -p li.branch:last-child a text{} | xargs)
|
||||
BRANCH=$(curl https://github.com/uazo/cromite/branch_commits/$CROMITE_SHA | ./pup -p li.branch:last-child a text{} | xargs)
|
||||
echo "BRANCH=$BRANCH" >> $GITHUB_ENV
|
||||
|
||||
wget https://github.com/cli/cli/releases/download/v2.18.1/gh_2.18.1_linux_amd64.tar.gz
|
||||
@@ -43,11 +57,10 @@ jobs:
|
||||
repository: 'uazo/cromite'
|
||||
path: 'cromite'
|
||||
fetch-depth: 1
|
||||
|
||||
|
||||
- name: Create release
|
||||
shell: bash
|
||||
run: |
|
||||
WINOUT=/storage/images/$BROMITE_SHA/win/x64/
|
||||
run: |
|
||||
VERSION=v$(cat ${{ env.OUTPUTFILE_ARM64 }}/RELEASE)
|
||||
|
||||
cd cromite/tools
|
||||
@@ -55,7 +68,7 @@ jobs:
|
||||
GH=gh_2.21.1_linux_amd64/bin/gh
|
||||
wget https://github.com/cli/cli/releases/download/v2.21.1/gh_2.21.1_linux_amd64.tar.gz
|
||||
tar xfz gh_2.21.1_linux_amd64.tar.gz
|
||||
|
||||
|
||||
echo ${{ secrets.GITHUB_TOKEN }} | $GH auth login --with-token
|
||||
|
||||
echo "\`\`\`" >note
|
||||
@@ -63,14 +76,22 @@ jobs:
|
||||
# echo "you can try it at your own risk." >>note
|
||||
echo "\`\`\`" >>note
|
||||
|
||||
$GH release create $VERSION-$BROMITE_SHA --notes-file note -d
|
||||
$GH release create $VERSION-$CROMITE_SHA --notes-file note -d
|
||||
|
||||
# android arm
|
||||
echo "::group::-------- android arm"
|
||||
sudo cp ${{ env.OUTPUTFILE_ARM }}/apks/ChromePublic.apk arm_ChromePublic.apk
|
||||
sudo chown runner arm_ChromePublic.apk
|
||||
echo Uploading arm_ChromePublic
|
||||
$GH release upload $VERSION-$CROMITE_SHA arm_ChromePublic.apk
|
||||
echo "::endgroup::"
|
||||
|
||||
# android arm64
|
||||
echo "::group::-------- android arm64"
|
||||
sudo cp ${{ env.OUTPUTFILE_ARM64 }}/apks/ChromePublic.apk arm64_ChromePublic.apk
|
||||
sudo chown runner arm64_ChromePublic.apk
|
||||
echo Uploading arm64_ChromePublic
|
||||
$GH release upload $VERSION-$BROMITE_SHA arm64_ChromePublic.apk
|
||||
$GH release upload $VERSION-$CROMITE_SHA arm64_ChromePublic.apk
|
||||
echo "::endgroup::"
|
||||
|
||||
# android x64
|
||||
@@ -78,71 +99,114 @@ jobs:
|
||||
sudo cp ${{ env.OUTPUTFILE_X64 }}/apks/ChromePublic.apk x64_ChromePublic.apk
|
||||
sudo chown runner x64_ChromePublic.apk
|
||||
echo Uploading x64_ChromePublic
|
||||
$GH release upload $VERSION-$BROMITE_SHA x64_ChromePublic.apk
|
||||
$GH release upload $VERSION-$CROMITE_SHA x64_ChromePublic.apk
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::-------- chrome.size"
|
||||
test $VERSION-$BROMITE_SHA $OUTPUTFILE_ARM64/chrome.size && \
|
||||
$GH release upload $VERSION-$BROMITE_SHA $OUTPUTFILE_ARM64/chrome.size
|
||||
test $VERSION-$CROMITE_SHA $OUTPUTFILE_ARM64/chrome.size && \
|
||||
$GH release upload $VERSION-$CROMITE_SHA $OUTPUTFILE_ARM64/chrome.size
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::-------- ChromePublic.apk.mapping"
|
||||
sudo cp ${{ env.OUTPUTFILE_ARM64 }}/apks/ChromePublic.apk.mapping arm64_ChromePublic.apk.mapping
|
||||
$GH release upload $VERSION-$CROMITE_SHA arm64_ChromePublic.apk.mapping
|
||||
sudo cp ${{ env.OUTPUTFILE_X64 }}/apks/ChromePublic.apk.mapping x64_ChromePublic.apk.mapping
|
||||
$GH release upload $VERSION-$CROMITE_SHA x64_ChromePublic.apk.mapping
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::-------- Uploading arm64_ninja_log_trace.html"
|
||||
test $OUTPUTFILE_ARM64/ninja_log_trace.html && \
|
||||
cp $OUTPUTFILE_ARM64/ninja_log_trace.html arm64_ninja_log_trace.html && \
|
||||
$GH release upload $VERSION-$BROMITE_SHA arm64_ninja_log_trace.html
|
||||
$GH release upload $VERSION-$CROMITE_SHA arm64_ninja_log_trace.html
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::-------- windows"
|
||||
# windows x64
|
||||
echo "::group::-------- windows x64"
|
||||
mkdir chrome-win/
|
||||
cp $WINOUT/*.manifest chrome-win/
|
||||
cp $WINOUT/chrome.dll chrome-win/
|
||||
cp $WINOUT/chrome.exe chrome-win/
|
||||
cp $WINOUT/chrome_100_percent.pak chrome-win/
|
||||
cp $WINOUT/chrome_200_percent.pak chrome-win/
|
||||
cp $WINOUT/chrome_elf.dll chrome-win/
|
||||
cp $WINOUT/chrome_proxy.exe chrome-win/
|
||||
cp $WINOUT/chrome_pwa_launcher.exe chrome-win/
|
||||
cp $WINOUT/chrome_wer.dll chrome-win/
|
||||
cp $OUTPUTFILE_WIN/*.manifest chrome-win/
|
||||
cp $OUTPUTFILE_WIN/chrome.dll chrome-win/
|
||||
cp $OUTPUTFILE_WIN/chrome.exe chrome-win/
|
||||
cp $OUTPUTFILE_WIN/chrome_100_percent.pak chrome-win/
|
||||
cp $OUTPUTFILE_WIN/chrome_200_percent.pak chrome-win/
|
||||
cp $OUTPUTFILE_WIN/chrome_elf.dll chrome-win/
|
||||
cp $OUTPUTFILE_WIN/chrome_proxy.exe chrome-win/
|
||||
cp $OUTPUTFILE_WIN/chrome_pwa_launcher.exe 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 $WINOUT/elevation_service.exe chrome-win/
|
||||
cp "$WINOUT/First Run" chrome-win/
|
||||
cp $WINOUT/headless_lib_data.pak chrome-win/
|
||||
cp $WINOUT/icudtl.dat chrome-win/
|
||||
cp $WINOUT/libEGL.dll chrome-win/
|
||||
cp $WINOUT/libGLESv2.dll chrome-win/
|
||||
cp $WINOUT/Logo.png chrome-win/
|
||||
cp $WINOUT/mojo_core.dll chrome-win/
|
||||
cp $WINOUT/notification_helper.exe chrome-win/
|
||||
cp $WINOUT/resources.pak chrome-win/
|
||||
cp $WINOUT/SmallLogo.png chrome-win/
|
||||
cp $WINOUT/snapshot_blob.bin chrome-win/
|
||||
cp $WINOUT/VkICD_mock_icd.dll chrome-win/
|
||||
cp $WINOUT/VkLayer_khronos_validation.dll chrome-win/
|
||||
cp $WINOUT/vk_swiftshader.dll chrome-win/
|
||||
cp $WINOUT/vulkan-1.dll chrome-win/
|
||||
cp -r $WINOUT/locales chrome-win/locales
|
||||
cp $OUTPUTFILE_WIN/elevation_service.exe 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/libEGL.dll chrome-win/
|
||||
cp $OUTPUTFILE_WIN/libGLESv2.dll chrome-win/
|
||||
cp $OUTPUTFILE_WIN/Logo.png chrome-win/
|
||||
cp $OUTPUTFILE_WIN/mojo_core.dll chrome-win/
|
||||
cp $OUTPUTFILE_WIN/notification_helper.exe chrome-win/
|
||||
cp $OUTPUTFILE_WIN/resources.pak chrome-win/
|
||||
cp $OUTPUTFILE_WIN/SmallLogo.png chrome-win/
|
||||
cp $OUTPUTFILE_WIN/snapshot_blob.bin chrome-win/
|
||||
cp $OUTPUTFILE_WIN/VkICD_mock_icd.dll chrome-win/
|
||||
cp $OUTPUTFILE_WIN/VkLayer_khronos_validation.dll chrome-win/
|
||||
cp $OUTPUTFILE_WIN/vk_swiftshader.dll chrome-win/
|
||||
cp $OUTPUTFILE_WIN/vulkan-1.dll chrome-win/
|
||||
cp -r $OUTPUTFILE_WIN/locales chrome-win/locales
|
||||
|
||||
#test chrome-win.zip && rm chrome-win.zip
|
||||
zip -r chrome-win.zip chrome-win/
|
||||
|
||||
|
||||
echo Uploading chrome-win.zip
|
||||
$GH release upload $VERSION-$BROMITE_SHA chrome-win.zip
|
||||
$GH release upload $VERSION-$CROMITE_SHA chrome-win.zip
|
||||
echo "::endgroup::"
|
||||
|
||||
|
||||
## linux
|
||||
echo "::group::-------- linux x64"
|
||||
mkdir chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/chrome chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/chrome_100_percent.pak chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/chrome_200_percent.pak chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/chrome_crashpad_handler chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/chrome-wrapper chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/icudtl.dat chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/libEGL.so chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/libGLESv2.so chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/libvulkan.so.1 chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/libqt5_shim.so chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/libqt6_shim.so chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/libvk_swiftshader.so chrome-lin/
|
||||
cp -r $OUTPUTFILE_LIN/locales/ chrome-lin/locales
|
||||
cp $OUTPUTFILE_LIN/product_logo_48.png chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/resources.pak chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/snapshot_blob.bin chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/xdg-mime chrome-lin/
|
||||
cp $OUTPUTFILE_LIN/xdg-settings chrome-lin/
|
||||
|
||||
tar -czvf chrome-lin64.tar.gz chrome-lin/
|
||||
|
||||
echo Uploading chrome-lin64.tar.gz
|
||||
$GH release upload $VERSION-$CROMITE_SHA chrome-lin64.tar.gz
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::-------- arm64 symbols"
|
||||
zip arm64_symbols.zip ${{ env.OUTPUTFILE_ARM64 }}/dump_syms \
|
||||
${{ env.OUTPUTFILE_ARM64 }}/minidump_stackwalk \
|
||||
${{ env.OUTPUTFILE_ARM64 }}/libchrome.so
|
||||
$GH release upload $VERSION-$BROMITE_SHA arm64_symbols.zip
|
||||
$GH release upload $VERSION-$CROMITE_SHA arm64_symbols.zip
|
||||
echo "::endgroup::"
|
||||
|
||||
|
||||
# workaround for https://github.com/cli/cli/issues/6599
|
||||
sleep 30s
|
||||
|
||||
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 $WINOUT/RELEASE);revision=1;commit=$BROMITE_SHA"
|
||||
$GH release upload $VERSION-$BROMITE_SHA updateurl.txt
|
||||
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
|
||||
|
||||
$GH release edit $VERSION-$CROMITE_SHA -t $VERSION-$CROMITE_SHA
|
||||
|
||||
if [ $IS_DRAFT == "false" ]; then
|
||||
$GH release edit $VERSION-$CROMITE_SHA --draft=false
|
||||
fi
|
||||
|
||||
VERSION=$(cat ${{ env.OUTPUTFILE_ARM64 }}/RELEASE)
|
||||
docker push uazo/cromite:$VERSION-$CROMITE_SHA
|
||||
docker push uazo/cromite-build:$VERSION-$CROMITE_SHA
|
||||
|
||||
$GH release edit $VERSION-$BROMITE_SHA -t $VERSION-$BROMITE_SHA
|
||||
$GH release edit $VERSION-$BROMITE_SHA --draft=false
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ on:
|
||||
- cron: '30 1 * * *'
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
@@ -17,7 +17,7 @@ jobs:
|
||||
- uses: actions/stale@v6
|
||||
with:
|
||||
exempt-all-milestones: true
|
||||
any-of-labels: 'awaiting info'
|
||||
any-of-labels: 'awaiting info,wontfix'
|
||||
days-before-stale: 5
|
||||
days-before-close: 7
|
||||
stale-issue-message: "This issue has been automatically marked as stale as there has been no recent activity in response to our request for more information. Please respond so that we can proceed with this issue."
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
name: Update patches doc
|
||||
permissions:
|
||||
# actions: none
|
||||
# checks: none
|
||||
# contents: write
|
||||
# deployments: none
|
||||
# issues: none
|
||||
# packages: none
|
||||
pull-requests: write
|
||||
# repository-projects: none
|
||||
# security-events: none
|
||||
# statuses: none
|
||||
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'ci'
|
||||
paths:
|
||||
- 'build/**'
|
||||
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
rtag:
|
||||
description: 'uazo/cromite TAG or COMMIT'
|
||||
required: true
|
||||
default: ''
|
||||
|
||||
env:
|
||||
RTAG: ${{ github.event.inputs.rtag }}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: "Get value from dispatch"
|
||||
run: |
|
||||
if [ -z "${RTAG}" ]; then
|
||||
echo "RTAG=$GITHUB_SHA" >> $GITHUB_ENV
|
||||
echo "RTAG=$RTAG"
|
||||
fi
|
||||
|
||||
- name: Checkout 'uazo/cromite' ${{ env.BRANCH }}
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: 'uazo/cromite'
|
||||
ref: ${{ github.event.inputs.rtag }}
|
||||
path: 'cromite'
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Generate patches doc
|
||||
run: |
|
||||
export HOME=$GITHUB_WORKSPACE
|
||||
|
||||
bash ~/cromite/tools/extract-all-patch-data.sh ~/cromite/build/patches
|
||||
|
||||
- name: Check differences CHANGES=${{ env.CHANGES }}
|
||||
run: |
|
||||
export HOME=$GITHUB_WORKSPACE
|
||||
|
||||
cd ~/cromite
|
||||
CHANGES=0 && git diff --quiet || CHANGES=1
|
||||
echo "CHANGES=$CHANGES" >> $GITHUB_ENV
|
||||
|
||||
if [[ CHANGES -eq 1 ]]; then
|
||||
git add docs/*.md
|
||||
fi
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@dcd5fd746d53dd8de555c0f10bca6c35628be47a #v3.12.0
|
||||
if: env.CHANGES == '1'
|
||||
with:
|
||||
token: ${{ secrets.CROMITE_PULLS }}
|
||||
path: cromite
|
||||
base: ${{ env.BRANCH }}
|
||||
add-paths: |
|
||||
build/patches/*.patch
|
||||
commit-message: 'AUTOMATED - update patch docs'
|
||||
title: Generate patches doc for ${{ env.BRANCH }} branch
|
||||
body: ${{ env.MESSAGE }}
|
||||
delete-branch: true
|
||||
branch-suffix: short-commit-hash
|
||||
@@ -0,0 +1,66 @@
|
||||
name: Update fdroid repo
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
REMOVEDOCKERSUPPORT: true
|
||||
USELOCALIMAGE: true
|
||||
USEINTERNALNETWORK: true
|
||||
|
||||
jobs:
|
||||
update-fdroid:
|
||||
runs-on: ci2
|
||||
|
||||
container:
|
||||
image: uazo/fdroidserver:latest
|
||||
volumes:
|
||||
- /tmp/forward-proxy:/tmp/forward-proxy
|
||||
|
||||
steps:
|
||||
- name: Update fdroid repo
|
||||
shell: bash
|
||||
run: |
|
||||
export https_proxy=http://127.0.0.1:8118
|
||||
socat TCP-LISTEN:8118,reuseaddr,fork UNIX-CLIENT:/tmp/forward-proxy/proxy.sock &
|
||||
socat TCP-LISTEN:1080,reuseaddr,fork UNIX-CLIENT:/tmp/forward-proxy/ftp.sock &
|
||||
touch /etc/apt/apt.conf.d/proxy.conf
|
||||
echo "Acquire::http::Proxy \"$https_proxy\";" >/etc/apt/apt.conf.d/proxy.conf
|
||||
|
||||
apt update
|
||||
|
||||
DEBIAN_FRONTEND=noninteractive apt update && apt install -y wget
|
||||
wget https://github.com/rclone/rclone/releases/download/v1.64.0/rclone-v1.64.0-linux-amd64.zip
|
||||
unzip rclone-v1.64.0-linux-amd64.zip
|
||||
export rclone=rclone-v1.64.0-linux-amd64/rclone
|
||||
|
||||
mkdir -p ~/.config/rclone
|
||||
echo "${{ secrets.RCLONE_CONF }}" > ~/.config/rclone/rclone.conf
|
||||
|
||||
$rclone sync ftp:www.cromite.org/fdroid fdroid --log-level INFO --ftp-socks-proxy 127.0.0.1:1080
|
||||
|
||||
test -d /usr/share/man/man1 || mkdir -p /usr/share/man/man1
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y fdroidserver
|
||||
|
||||
cd fdroid/repo/
|
||||
wget https://github.com/uazo/cromite/releases/latest/download/arm_ChromePublic.apk
|
||||
wget https://github.com/uazo/cromite/releases/latest/download/arm64_ChromePublic.apk
|
||||
wget https://github.com/uazo/cromite/releases/latest/download/x64_ChromePublic.apk
|
||||
|
||||
test arm_ChromePublic.apk.1 && rm arm_ChromePublic.apk && mv arm_ChromePublic.apk.1 arm_ChromePublic.apk
|
||||
test arm64_ChromePublic.apk.1 && rm arm64_ChromePublic.apk && mv arm64_ChromePublic.apk.1 arm64_ChromePublic.apk
|
||||
test x64_ChromePublic.apk.1 && rm x64_ChromePublic.apk && mv x64_ChromePublic.apk.1 x64_ChromePublic.apk
|
||||
cd ..
|
||||
|
||||
gpg -d --passphrase "${{ secrets.FDROID_PASSPHRASE }}" --batch config.yml.asc >config.yml
|
||||
gpg -d --passphrase "${{ secrets.FDROID_PASSPHRASE }}" --batch keystore.p12.asc >keystore.p12
|
||||
|
||||
fdroid update -c; fdroid update
|
||||
rm config.yml keystore.p12
|
||||
cd ..
|
||||
|
||||
test -f fdroid/config.yml && exit 1
|
||||
test -f fdroid/keystore.p12 && exit 1
|
||||
|
||||
$rclone sync fdroid ftp:www.cromite.org/fdroid --log-level INFO --ftp-socks-proxy 127.0.0.1:1080
|
||||
$rclone sync fdroid ftp:www.cromite.org/fdroid --log-level INFO --ftp-socks-proxy 127.0.0.1:1080
|
||||
-1151
File diff suppressed because it is too large
Load Diff
@@ -1,91 +0,0 @@
|
||||
# Frequently Asked Questions
|
||||
|
||||
## Does Google Sync/Translate/Data saver work?
|
||||
No.
|
||||
This is not a limitation of Bromite but of all Chromium-based projects in general, as general public is not allowed to use Google's APIs for free unless when using Chrome.
|
||||
|
||||
Additionally, these features would not be privacy-friendly.
|
||||
|
||||
## Does Bromite require root?
|
||||
No.
|
||||
|
||||
## Is Bromite de-googled?
|
||||
|
||||
Yes, although this has not been verified (and hardly can be) under all situations; if you were to find connections to cloud-based services please report them via the issue tracker.
|
||||
Bromite uses [ungoogled-chromium's python script](https://github.com/Eloston/ungoogled-chromium/blob/master/utils/domain_substitution.py) to disable URLs in the codebase since version `78.0.3904.93`.
|
||||
|
||||
Projects which follow a strict approach on this are [Iridium](https://iridiumbrowser.de/) and [Inox patchset](https://github.com/gcarq/inox-patchset).
|
||||
|
||||
## Does Bromite support DRM media?
|
||||
|
||||
Yes, in order to play protected/encrypted media content the browser will use Android's DRM media framework to automatically negotiate access (same as Chromium).
|
||||
This means for example that requests to Android license servers will be performed (`www.googleapis.com`), see https://w3c.github.io/encrypted-media/#direct-individualization
|
||||
To disable this functionality you should disable protected content playback from Site settings -> Protected Content.
|
||||
|
||||
## What is the SystemWebView?
|
||||
It is the core component of Android for all web page visualizations. For example when you access a new wifi network and need to activate it, that is using the SystemWebView. If you do not know what it is then you do not need to install it.
|
||||
|
||||
See also [the wiki page](https://github.com/bromite/bromite/wiki/Installing-SystemWebView) for community-contributed installation instructions.
|
||||
|
||||
Ad-blocking was present and always enabled in the SystemWebView from version `72.0.3626.120` till version `77.0.3865.104`, when it stopped working due to [upstream NetworkService changes](https://docs.google.com/document/d/1TZEuPvr2KAbP4_TZpuuwtEEArQsyAkc2HDu68l66YwU/edit?ts=598244df#heading=h.ougoi5i6508y).
|
||||
|
||||
## How to enable DNS-over-HTTPS?
|
||||
|
||||
See [this page](https://www.bromite.org/doh).
|
||||
|
||||
## Can you add HTTPS everywhere?
|
||||
No.
|
||||
We cannot add add-ons to Bromite (merely some features).
|
||||
|
||||
## Is Bromite on Play Store?
|
||||
No, and this is not going to change. Many limitations apply for submissions there, including which ads are allowed to be blocked.
|
||||
|
||||
Bromite favors user freedom in software choice: the device is yours so you get to choose which software to run on it, end of the story.
|
||||
|
||||
## Is Bromite on F-Droid?
|
||||
It is not on the official F-Droid repository and there are no (more) plans to submit it.
|
||||
|
||||
You can use F-Droid client to install and receive updates via [the official Bromite F-Droid repository](https://www.bromite.org/fdroid).
|
||||
|
||||
## Does Bromite support WebRTC?
|
||||
Partially, see https://github.com/bromite/bromite/wiki/WebRTC
|
||||
|
||||
## Using Bromite will favour the monopoly of the Chromium/Blink engine, why do you develop and maintain Bromite?
|
||||
In short, to show what a Chromium-based engine could do **for the user** if the user experience and needs were the main focus of modern browser design.
|
||||
|
||||
For an Android browser using an alternative engine see [Fennec F-Droid](https://f-droid.org/en/packages/org.mozilla.fennec_fdroid/).
|
||||
|
||||
## Does Bromite support extensions?
|
||||
No; Bromite will support extensions only if upstream (Chromium) does, or similarly another project maintains the patch and functionality.
|
||||
|
||||
## Why do push notifications not work on this website?
|
||||
|
||||
The [Chromium Blink engine](https://www.chromium.org/blink) uses [GCM](https://en.wikipedia.org/wiki/Google_Cloud_Messaging) to deliver messages
|
||||
when websites use the [Push API](https://w3c.github.io/push-api/); this will not work in Bromite because cloud integrations are disabled (GCM in this case).
|
||||
|
||||
[ServiceWorker notifications](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification) do work instead since they use
|
||||
[android.app.Notification](https://developer.android.com/guide/topics/ui/notifiers/notifications).
|
||||
|
||||
## Can PWAs be installed?
|
||||
|
||||
PWAs are only supported as home shortcuts; WebAPKs will not work because they are generated server-side on googleapis.com (which is not allowed in Bromite).
|
||||
|
||||
## Does Bromite support the Android autofill framework?
|
||||
|
||||
Yes, since version 94.0.4606.109 the native Android autofill can be used; this does not require accessibility services as a workaround.
|
||||
|
||||
## Does Bromite support casting media content?
|
||||
|
||||
No, this would require Play Store binary blobs.
|
||||
|
||||
## Can you add this search engine as default?
|
||||
No.
|
||||
Bromite does not make any choice related to default search engines, the Chromium default is used.
|
||||
Various Android browsers get some fee to ship their apps with a specific default search engine, Bromite does not get any fee from anyone.
|
||||
Changing the default search engine would lead to an endless series of requests to change it based on personal preferences, thus no change is made to the default.
|
||||
See also: https://github.com/bromite/bromite/wiki/SearchEngines
|
||||
|
||||
## Some sites show ads, how can I fix this?
|
||||
You can compare the blocked URLs with a desktop browser and Bromite (using [remote debugging](https://developer.chrome.com/docs/devtools/remote-debugging/)) and figure out some new filter rules to be added.
|
||||
If the ads are blocked via cosmetic filtering then blocking them is not possible with Bromite's engine and you might need something like an [user script](https://github.com/bromite/bromite/wiki/UserScripts) instead.
|
||||
See also: https://github.com/bromite/bromite/wiki/AdBlocking
|
||||
@@ -12,15 +12,9 @@
|
||||
</a>
|
||||
<br>
|
||||
|
||||
### **** the documentation is a Work in progress (not the browser :) ****
|
||||
|
||||
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 Marshmallow and above (v6.0, API level 23) and Windows.
|
||||
|
||||
For the Frequently Asked Questions see [F.A.Q.](./FAQ.md).
|
||||
|
||||
For documentation see the [wiki](https://github.com/bromite/bromite/wiki).
|
||||
Cromite is available for Android arm64-v8a, arm32-v7a and x86_64, Nougat and above (Minimum v7.0, API level 24), Windows and Linux 64bit.
|
||||
|
||||
# Goals
|
||||
|
||||
@@ -31,222 +25,29 @@ Cromite's goal is to
|
||||
|
||||
In addition, Cromite would like to promote greater integration with other non-profit, open source browsers, encouraging closer collaboration with others, and attempt to integrate them directly into Chromium once they have reached an appropriate level of maturity.
|
||||
|
||||
# Features
|
||||
|
||||
#### Derived from Bromite
|
||||
* customizable adblock filters via user-provided URL (see https://www.bromite.org/custom-filters) (deprecated, replaced by adblock plus)
|
||||
* automatically updated adblock filters
|
||||
* remove click-tracking and AMP from search results
|
||||
* DNS-over-HTTPS support with any valid IETF DoH endpoint
|
||||
* always-incognito mode
|
||||
* disable all field trials permanently
|
||||
* disable smart search by default, allow web search from incognito mode
|
||||
* always-visible cookies, javascript and ads site settings from address bar popup
|
||||
* remove Play integration binary blobs
|
||||
* use [CFI](https://en.wikipedia.org/wiki/Control-flow_integrity) on all architectures except x86 and Windows
|
||||
* enable trivial auto var init
|
||||
* disable media router and remoting by default
|
||||
* disable dynamic module loading
|
||||
* show warnings for TLSv1.0/TLSv1.1 pages
|
||||
* enable site-per-process isolation for all devices with memory > 1GB
|
||||
* [proxy configuration page](https://github.com/bromite/bromite/wiki/ProxyConfiguration) with PAC and custom proxy lists support
|
||||
* settings to disable custom intents and clear session on exit
|
||||
* flags to toggle anti-fingerprinting mitigations for canvas, audio, client rects, webGL and sensor APIs (see full list below for all the new flags)
|
||||
* use frozen User-Agent to conceal real model and browser version
|
||||
* privacy enhancement patches from [Iridium](https://iridiumbrowser.de/), [Inox patchset](https://github.com/gcarq/inox-patchset), [Brave](https://brave.com/) and [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) projects
|
||||
* security enhancement patches from [GrapheneOS](https://github.com/GrapheneOS) project
|
||||
* reduced referer granularity
|
||||
* block gateway attacks via websockets (partial fix, see [this upstream issue](https://bugs.chromium.org/p/chromium/issues/detail?id=590714))
|
||||
* use 64-bit ABI for webview processes
|
||||
* make all favicon requests on-demand ([supercookie](https://supercookie.me/) mitigation)
|
||||
* enable all network isolation features (`PartitionConnectionsByNetworkIsolationKey`, `PartitionHttpServerPropertiesByNetworkIsolationKey`, `SplitHostCacheByNetworkIsolationKey`, `AppendFrameOriginToNetworkIsolationKey`, `SplitCacheByNetworkIsolationKey`, `UseRegistrableDomainInNetworkIsolationKey`, `PartitionSSLSessionsByNetworkIsolationKey`, `PartitionExpectCTStateByNetworkIsolationKey`, `PartitionDomainReliabilityByNetworkIsolationKey`)
|
||||
* ignore enterprise policies that disallow secure DNS
|
||||
* ask permission to play protected media
|
||||
* disable the DIAL repeating discovery
|
||||
* disable RTCGetCurrentBrowsingContextMedia by default
|
||||
* disable FLoC and privacy sandbox by default
|
||||
* disable feeds
|
||||
* disable reporting of certificate errors
|
||||
* use pre-defined phone model for client hints and Javascript
|
||||
* allow forcing external links to open in incognito
|
||||
* disable AGSA by default
|
||||
* flag to enable Certificate Transparency
|
||||
* allow adding search engines from incognito mode
|
||||
* disable predictors
|
||||
* disable supervised users
|
||||
* disable safety check
|
||||
* disable capability to block `view-source:` URLs
|
||||
* disable `SegmentationPlatformFeature`, `OptimizationHints`, client hint headers
|
||||
* disable `AsyncDNS` by default
|
||||
* customize history expiration threshold
|
||||
* disable idle detection
|
||||
* HTTPS-only mode enabled by default
|
||||
* disable TLS resumption by default
|
||||
* strict site isolation and strict origin isolation
|
||||
* partition blobs by top frame URL
|
||||
|
||||
#### Cromite-specific features
|
||||
|
||||
* Built-in Adblock Plus [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch) (issue [84](https://github.com/uazo/bromite-buildtools/issues/84))
|
||||
* policy browser patch for the use of enterprise policy [patch](https://github.com/uazo/bromite/blob/master/build/patches/00add-browser-policy.patch) (issue [191](https://github.com/uazo/bromite-buildtools/issues/191))
|
||||
- deactivate safe browsing and extended reporting
|
||||
- disabled scroll-to-text-fragment
|
||||
- disabled contextual search
|
||||
- disabled media router
|
||||
- disabled url keyed anonymized data collection
|
||||
- disabled translate
|
||||
- disabled network prediction
|
||||
- disabled sign-in
|
||||
- disabled google search side panel
|
||||
- disabled automatic https upgrades
|
||||
* internal firewall to block all unauthorised calls made from the browser [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Internal-firewall.patch) (issue [147](https://github.com/uazo/bromite-buildtools/issues/147))
|
||||
* show warnings on downloads over HTTP [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Show-warnings-on-downloads-over-HTTP.patch)
|
||||
* lock profile cookie database [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Lock-Profile-Cookie-Database.patch)
|
||||
* remove support for device memory and cpu recovery [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Remove-support-for-device-memory-and-cpu-recovery.patch)
|
||||
* disable speechSynthesis getVoices API [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-speechSynthesis-getVoices-API.patch)
|
||||
* viewport Protection patch [patch](https://github.com/uazo/bromite/blob/master/build/patches/Viewport-Protection-flag.patch)
|
||||
* deprecate Data URL in SVGUseElement [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Deprecate-Data-URL-in-SVGUseElement.patch)
|
||||
* disallow Android App Scheme as referrer [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disallow-Android-App-Scheme-as-referrer.patch)
|
||||
* disable Compression Dictionary Transport [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-Compression-Dictionary-Transport.patch)
|
||||
* disable PrivateStateTokens API [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-PrivateStateTokens-API.patch)
|
||||
* disable GSA by default [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-GSA-by-default.patch)
|
||||
* disable GetInstalledRelatedApps API [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-GetInstalledRelatedApps-API.patch)
|
||||
* disable FirstPartySets and StorageAccessAPI [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-FirstPartySets-and-StorageAccessAPI.patch)
|
||||
* disable WebGPU [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-WebGPU.patch)
|
||||
* disable GamePad API [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Add-a-flag-to-disable-GamePad-API.patch)
|
||||
* remove external https connection from chrome://discards [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Remove-https-connection-from-chrome-discards.patch)
|
||||
* links the use of screen.isExtended to WINDOW_MANAGEMENT permission granted by user [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Multi-Screen-Window-Placement-API-fix.patch)
|
||||
* clear CORS Preflight Cache on clearing data [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Clear-CORS-Preflight-Cache-on-clearing-data.patch)
|
||||
* remove auth header upon cross origin redirect [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Remove-auth-header-upon-cross-origin-redirect.patch)
|
||||
* disable SHA1 Server Signature [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-SHA1-Server-Signature.patch)
|
||||
* remove detection of captive portals [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Remove-detection-of-captive-portals.patch)
|
||||
* disable devtools remote and custom protocols [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-devtools-remote-and-custom-protocols.patch)
|
||||
* enable Document Open Inheritance Removal [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Enable-Document-Open-Inheritance-Removal.patch)
|
||||
* warning message for unsupported hardware aes [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Warning-message-for-unsupported-hardware-aes.patch)
|
||||
* partition HSTS cache by NAK [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Partition-HSTS-cache-by-NAK.patch)
|
||||
* disable password leak detector [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-privacy-issues-in-password-manager.patch)
|
||||
* keyboard protection flag [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Keyboard-protection-flag.patch)
|
||||
* disable csp reports [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-csp-reports.patch)
|
||||
* add setting to clear data on exit [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Add-setting-to-clear-data-on-exit.patch)
|
||||
* disable visited pseudo class [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-visited-pseudo-class.patch)
|
||||
* disable BackForwardCache [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-BackForwardCache.patch)
|
||||
* disable FedCm [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-FedCm.patch)
|
||||
* partitioning all cookies by top frame domain [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Partitioning-all-cookies-by-top-frame-domain.patch)
|
||||
* fingerprint mitigation for AudioBuffer and AnalyserNode [patch](https://github.com/uazo/bromite/blob/master/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch)
|
||||
|
||||
##### from [116.0.5845.111](https://github.com/uazo/cromite/issues/205#issuecomment-1690216310)
|
||||
* Disable PartnerCustomizations [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Disable-PartnerCustomizations.patch) [#202](https://github.com/uazo/cromite/issues/202)
|
||||
* Add option to disable snapshots [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Add-option-to-disable-snapshots.patch) [#201](https://github.com/uazo/cromite/issues/201)
|
||||
* Enable Android Dynamic Performance Framework on renderer [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Enable-Android-Dynamic-Performance-Framework.patch)
|
||||
|
||||
#### Windows Cromite-specific features
|
||||
|
||||
* enable Network Service Sandbox by default
|
||||
* disable sharing hub
|
||||
* disable search for image
|
||||
* simpler logging to file
|
||||
* disable TabHoverCard images
|
||||
* enable File System Access blocklist
|
||||
* enable HighEfficiencyMode by default
|
||||
* disable annotates on downloads
|
||||
* enabled pdf plugin by default
|
||||
|
||||
## Features not related to privacy
|
||||
|
||||
#### Derived da Bromite
|
||||
* browser automatic updates, enabled by default
|
||||
* native Android autofill support
|
||||
* import/export bookmarks
|
||||
* bookmark all tabs from tabs regroup menu
|
||||
* allow playing videos in background tabs and disable pause on switching tabs
|
||||
* all codecs included (proprietary, open H.264 etc.)
|
||||
* [AV1 codec support](https://github.com/bromite/bromite/wiki/AV1-support)
|
||||
* [dav1d](https://code.videolan.org/videolan/dav1d) decoder enabled by default
|
||||
* built with official speed optimizations
|
||||
* increase number of autocomplete matches from 5 to 10
|
||||
* allow changing default download storage location
|
||||
* do not ignore save prompt for users without SD cards
|
||||
* disable articles and increase number of icons on new tab page
|
||||
* adding an URL as bookmark will clear its blocked status for the NTP tiles
|
||||
* history support in incognito mode
|
||||
* view source of pages
|
||||
* sticky desktop mode setting
|
||||
* mobile/desktop user agent customization
|
||||
* accessibility preference to force tablet UI
|
||||
* use Alt+D to focus address bar
|
||||
* allow sharing to Bromite
|
||||
* UI for crash information collection
|
||||
* allow OpenSearch search engine detection in incognito
|
||||
* allow OpenSearch search engine detection with paths
|
||||
* keyboard dictionary hints in address bar
|
||||
* always allow `view-source:` URLs
|
||||
* allow moving navigation bar to bottom
|
||||
* add option to use home page as NTP
|
||||
|
||||
#### Cromite-specific features
|
||||
|
||||
* add setting in android to invert tap and long tap [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Add-setting-to-invert-tap-and-long-tap.patch)
|
||||
|
||||
(TODO) You can inspect all functionality/privacy changes by reading the [patches](https://github.com/bromite/bromite/tree/master/build/patches) and/or the [CHANGELOG](./CHANGELOG.md).
|
||||
|
||||
### Flags
|
||||
|
||||
Flags which have been retired from upstream Chromium but are still available in Bromite.
|
||||
|
||||
* `#pull-to-refresh`
|
||||
* `#enable-search-ready-omnibox`
|
||||
* `#darken-websites-checkbox-in-themes-setting`
|
||||
* `#simplified-ntp`, enabled by default
|
||||
* `#enable-text-fragment-anchor`, disabled by default
|
||||
* `#num-raster-threads`
|
||||
* `#enable-image-reader`, enabled by default
|
||||
* `#enable-tab-groups` and `#enable-tab-groups-ui-improvements`
|
||||
* `#offline-indicator-v2`
|
||||
|
||||
New flags:
|
||||
|
||||
* `#fingerprinting-canvas-image-data-noise`, `#fingerprinting-client-rects-noise` and `#fingerprinting-canvas-measuretext-noise`, enabled by default
|
||||
* `#incognito-screenshot`, disabled by default
|
||||
* `#max-connections-per-host`
|
||||
* `#resume-background-video`
|
||||
* `#ipv6-probing`
|
||||
* `#enable-device-motion` and `#enable-device-orientation`
|
||||
* `#show-legacy-tls-warnings`
|
||||
* `#save-data-header`, disabled by default
|
||||
* `#export-bookmarks-use-saf`, disabled by default
|
||||
* `#allow-user-certificates`, disabled by default
|
||||
* `#cleartext-permitted`, enabled by default, can be used to disable all cleartext-HTTP traffic
|
||||
* `#omnibox-autocomplete-filtering`, can be used to restrict omnibox autocomplete results
|
||||
* `#disable-external-intent-requests`, can be used to disable opening any external app for any URL
|
||||
* `#enable-userscripts-log`, see https://github.com/bromite/bromite/wiki/UserScripts#flags
|
||||
* `#certificate-transparency-enabled`, enabled by default; see https://chromium.googlesource.com/chromium/src/+/master/net/docs/certificate-transparency.md
|
||||
* `#move-top-toolbar-to-bottom`, disabled by default
|
||||
* `#site-engagement`, enabled by default, can be used to disable the automatically-generated icons for most visited sites on the NTP
|
||||
|
||||
### Site settings
|
||||
|
||||
* webGL, disabled by default
|
||||
* images, enabled by default
|
||||
* Javascript JIT, disabled by default
|
||||
* timezone customization override
|
||||
* autoplay, disabled by default
|
||||
* webRTC, disabled by default
|
||||
* viewport protection, enabled by default
|
||||
|
||||
# Privacy limitations
|
||||
|
||||
Cromite's privacy features, including anti-fingerprinting mitigations (which are not comprehensive), **are not to be considered useful for journalists and people living in countries with freedom limitations**, please look at [Tor Browser](https://www.torproject.org/download/) in such cases.
|
||||
Please note that this project is not free of bugs and that changing the behaviour of a browser can be risky and not without problems.
|
||||
|
||||
# Docs
|
||||
- [Privacy Policy](https://github.com/uazo/cromite/blob/master/docs/PRIVACY_POLICY.md)
|
||||
- [Features](https://github.com/uazo/cromite/blob/master/docs/FEATURES.md)
|
||||
- [How to build](https://github.com/uazo/cromite/blob/master/docs/HOW_TO_BUILD.md)
|
||||
- [Patch list](https://github.com/uazo/cromite/blob/master/docs/PATCHES.md)
|
||||
|
||||
# Releases
|
||||
|
||||
All built versions are available as [releases](https://github.com/uazo/cromite/releases).
|
||||
|
||||
Cromite is currently built for ARM64, ~x86~ (Android SDK version 23+) and Windows x64.
|
||||
Cromite is currently built for ARM64, x86 (Android SDK version 23+) and Windows x64.
|
||||
|
||||
You will automatically receive notifications about new updates (and be able to install them) via the auto updater functionality (enabled by default), see [related wiki page](https://github.com/bromite/bromite/wiki/AutomaticUpdates).
|
||||
|
||||
For F-droid: work in progress https://github.com/uazo/cromite/issues/64
|
||||
### F-droid
|
||||
|
||||
Official F-droid repo url:
|
||||
https://www.cromite.org/fdroid/repo/?fingerprint=49F37E74DEE483DCA2B991334FB5A0200787430D0B5F9A783DD5F13695E9517B
|
||||
|
||||
### Auto-update setup for windows
|
||||
|
||||
@@ -262,7 +63,7 @@ ChromiumUpdateUrl=https://github.com/uazo/cromite/releases/latest/download/updat
|
||||
# Command line for Chromium (string):
|
||||
# note --user-data-dir= works better if path is absolute
|
||||
# See here: http://peter.sh/experiments/chromium-command-line-switches/
|
||||
ChromiumCommandLine=--user-data-dir=".\User Data" --no-default-browser-check
|
||||
ChromiumCommandLine=--user-data-dir="C:\Users\<my user>\AppData\Local\Chromium\User Data" --no-default-browser-check
|
||||
|
||||
# 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
|
||||
@@ -274,6 +75,7 @@ ChromiumBinary=chrome.exe
|
||||
# Relative (to chrlauncher directory) or full path (env. variables supported).
|
||||
ChromiumDirectory=.\bin
|
||||
```
|
||||
To prevent deletion by Microsoft Defender each time the browser is updated, check the `user-data-dir` folder by modifying it accordingly.
|
||||
|
||||
### Enable network process sandbox in windows
|
||||
I don't include any setups because I don't like the experience of not knowing what they do, so you must manually run this command on first installation:
|
||||
@@ -283,43 +85,21 @@ icacls . /grant "*S-1-15-2-2:(OI)(CI)(RX)"
|
||||
```
|
||||
see https://github.com/uazo/bromite-buildtools/issues/51
|
||||
|
||||
## (TODO) Integrity and authenticity
|
||||
|
||||
You can verify the integrity of a downloaded APK file from this project with any `sha256sum`-compatible tool by downloading the corresponding `brm_X.Y.Z.sha256.txt` or `chr_X.Y.Z.sha256.txt` file, where X.Y.Z is the release version number. Example:
|
||||
### Enable AppContainer for renderer process in windows
|
||||
you can activate the 'RendererAppContainer' flag from the command line with
|
||||
```
|
||||
$ sha256sum --check brm_68.0.3440.54.sha256.txt
|
||||
arm64_SystemWebView.apk: OK
|
||||
arm64_ChromePublic.apk: OK
|
||||
arm64_ChromeModernPublic.apk: OK
|
||||
--enable-features=RendererAppContainer
|
||||
```
|
||||
|
||||
You can verify authenticity, e.g. that the author ([csagan5](https://github.com/csagan5)) released the file, by using gpg2:
|
||||
```
|
||||
$ gpg2 --quiet --verify brm_68.0.3440.54.sha256.txt.asc
|
||||
gpg: assuming signed data in 'brm_68.0.3440.54.sha256.txt'
|
||||
gpg: Signature made Sun 08 Jul 2018 04:22:52 PM CEST using RSA key ID D85DC0C5
|
||||
gpg: Good signature from "csagan5 <32685696+csagan5@users.noreply.github.com>"
|
||||
```
|
||||
|
||||
You can download csagan5's public GnuPG key from here: [csagan5.asc](./csagan5.asc).
|
||||
|
||||
# (TODO) How to build
|
||||
|
||||
The [Bromite main repository](https://github.com/bromite/bromite) contains tags for each corresponding Chromium release (see https://chromium.googlesource.com/chromium/src.git).
|
||||
|
||||
Please refer to [official Chromium build documentation](https://www.chromium.org/developers/how-tos/get-the-code) to get started on how to build Chromium; if you can build Chromium for Android, you can build Bromite.
|
||||
|
||||
The Chromium version tag used as base for the patches is available here: [RELEASE](./build/RELEASE); this is always corresponding to the git tag for every release.
|
||||
The GN args used to build Bromite are available here: [bromite.gn_args](./build/bromite.gn_args).
|
||||
The patches are to be applied second the order specified in the `bromite_patches_list.txt` file (you can use `git am`).
|
||||
|
||||
# (TODO) Contributing
|
||||
# Contributing
|
||||
|
||||
Please submit issues following the issue template; beware that GitHub does not display the templates from mobile.
|
||||
|
||||
Patches are welcome and accepted if they match the project goals.
|
||||
|
||||
For any usage or development discussion please use GitHub Discussions: https://github.com/bromite/bromite/discussions
|
||||
If you want to help me, [here](https://github.com/uazo/cromite/blob/master/docs/HELP_ME_PLEASE.md) is the list of things I would need.
|
||||
|
||||
For any usage or development discussion please use GitHub Discussions: https://github.com/uazo/cromite/discussions
|
||||
|
||||
# Credits
|
||||
|
||||
@@ -332,11 +112,9 @@ For any usage or development discussion please use GitHub Discussions: https://g
|
||||
* [Inox patchset](https://github.com/gcarq/inox-patchset) for some patches (via ungoogled-chromium)
|
||||
* [Brave Browser](https://github.com/brave/brave-core) for some patches
|
||||
|
||||
# (TODO) License
|
||||
# License
|
||||
|
||||
The patches published as part of the Bromite project are released under [GNU GPL v3](./LICENSE).
|
||||
|
||||
[version-image]: https://img.shields.io/github/release/bromite/bromite.svg?style=flat-square
|
||||
[version-url]: https://github.com/bromite/bromite/releases/latest
|
||||
[license-image]: https://img.shields.io/github/license/bromite/bromite.svg
|
||||
[license-url]: https://github.com/bromite/bromite/blob/master/LICENSE
|
||||
Cromite is published under [GNU GPL v3](./LICENSE).
|
||||
The patches published as part of the Bromite project are released under GNU GPL v3 only.
|
||||
Cromite specific patches are under the GNU GPL-2+ licence.
|
||||
Each individual patch contains specific information on the licence used.
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
e3a3a1fe718bf559be801d14660fb6f9dc9bf603-
|
||||
+1
-1
@@ -1 +1 @@
|
||||
116.0.5845.111
|
||||
123.0.6312.86
|
||||
@@ -1 +0,0 @@
|
||||
5923fa90d4e3587c130983442b9cf90f4c76e851
|
||||
@@ -1,51 +0,0 @@
|
||||
android_channel="stable"
|
||||
blink_symbol_level=1
|
||||
build_contextual_search=false
|
||||
build_with_tflite_lib=false
|
||||
chrome_pgo_phase=0
|
||||
dcheck_always_on=false
|
||||
debuggable_apks=false
|
||||
dfmify_dev_ui=false
|
||||
disable_android_lint=true
|
||||
disable_autofill_assistant_dfm=true
|
||||
disable_fieldtrial_testing_config=true
|
||||
disable_tab_ui_dfm=true
|
||||
enable_av1_decoder=true
|
||||
enable_dav1d_decoder=true
|
||||
enable_gvr_services=false
|
||||
enable_hangout_services_extension=false
|
||||
enable_iterator_debugging=false
|
||||
enable_mdns=false
|
||||
enable_mse_mpeg2ts_stream_parser=true
|
||||
enable_nacl=false
|
||||
enable_platform_dolby_vision=true
|
||||
enable_platform_hevc=true
|
||||
enable_remoting=false
|
||||
enable_reporting=false
|
||||
enable_vr=false
|
||||
exclude_unwind_tables=false
|
||||
ffmpeg_branding="Chrome"
|
||||
icu_use_data_file=true
|
||||
is_cfi=true
|
||||
is_component_build=false
|
||||
is_debug=false
|
||||
is_official_build=true
|
||||
proprietary_codecs=true
|
||||
rtc_build_examples=false
|
||||
symbol_level=1
|
||||
system_webview_package_name="org.bromite.webview"
|
||||
target_os="android"
|
||||
treat_warnings_as_errors=true
|
||||
use_cfi_cast=true
|
||||
use_debug_fission=true
|
||||
use_errorprone_java_compiler=false
|
||||
use_gnome_keyring=false
|
||||
use_official_google_api_keys=false
|
||||
use_rtti=false
|
||||
use_sysroot=false
|
||||
webview_includes_weblayer=false
|
||||
enable_arcore=false
|
||||
enable_openxr=false
|
||||
enable_gvr_services=false
|
||||
enable_feed_v2=false
|
||||
is_high_end_android=true
|
||||
@@ -1,48 +0,0 @@
|
||||
android_channel="stable"
|
||||
blink_symbol_level=1
|
||||
build_contextual_search=false
|
||||
build_with_tflite_lib=false
|
||||
chrome_pgo_phase=0
|
||||
dcheck_always_on=false
|
||||
debuggable_apks=false
|
||||
dfmify_dev_ui=false
|
||||
disable_android_lint=true
|
||||
disable_autofill_assistant_dfm=true
|
||||
disable_fieldtrial_testing_config=true
|
||||
disable_tab_ui_dfm=true
|
||||
enable_av1_decoder=true
|
||||
enable_dav1d_decoder=true
|
||||
enable_gvr_services=false
|
||||
enable_hangout_services_extension=false
|
||||
enable_iterator_debugging=false
|
||||
enable_mdns=false
|
||||
enable_mse_mpeg2ts_stream_parser=true
|
||||
enable_nacl=false
|
||||
enable_platform_dolby_vision=true
|
||||
enable_platform_hevc=true
|
||||
enable_remoting=false
|
||||
enable_reporting=true
|
||||
enable_supervised_users=false
|
||||
enable_vr=false
|
||||
exclude_unwind_tables=false
|
||||
ffmpeg_branding="Chrome"
|
||||
icu_use_data_file=true
|
||||
is_cfi=true
|
||||
is_component_build=false
|
||||
is_debug=false
|
||||
is_official_build=true
|
||||
proprietary_codecs=true
|
||||
rtc_build_examples=false
|
||||
safe_browsing_mode=2
|
||||
symbol_level=1
|
||||
system_webview_package_name="com.android.webview"
|
||||
target_os="android"
|
||||
treat_warnings_as_errors=true
|
||||
use_cfi_cast=true
|
||||
use_debug_fission=true
|
||||
use_errorprone_java_compiler=false
|
||||
use_gnome_keyring=false
|
||||
use_official_google_api_keys=false
|
||||
use_rtti=false
|
||||
use_sysroot=false
|
||||
webview_includes_weblayer=false
|
||||
@@ -1,11 +0,0 @@
|
||||
AV1-codec-support.patch
|
||||
exit-on-failure-of-inclusion.patch
|
||||
Reintroduce-override_build_timestamp.patch
|
||||
do-not-hide-.orig-files.patch
|
||||
Do-not-link-with-libatomic.patch
|
||||
do-not-add-suffix-to-package-name.patch
|
||||
Switch-to-fstack-protector-strong.patch
|
||||
Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
|
||||
enable-ftrivial-auto-var-init-zero.patch
|
||||
Disable-feeds-support-by-default.patch
|
||||
Chromium-package-name.patch
|
||||
@@ -0,0 +1,170 @@
|
||||
android_channel="stable"
|
||||
blink_symbol_level=1
|
||||
build_contextual_search=false
|
||||
build_with_tflite_lib=false
|
||||
chrome_pgo_phase=0
|
||||
dcheck_always_on=false
|
||||
debuggable_apks=false
|
||||
dfmify_dev_ui=false
|
||||
disable_android_lint=true
|
||||
disable_fieldtrial_testing_config=true
|
||||
enable_gvr_services=false
|
||||
enable_hangout_services_extension=false
|
||||
enable_iterator_debugging=false
|
||||
enable_mdns=false
|
||||
enable_nacl=false
|
||||
enable_remoting=false
|
||||
enable_reporting=false
|
||||
enable_vr=false
|
||||
exclude_unwind_tables=false
|
||||
icu_use_data_file=true
|
||||
is_component_build=false
|
||||
is_debug=false
|
||||
is_official_build=true
|
||||
rtc_build_examples=false
|
||||
symbol_level=1
|
||||
treat_warnings_as_errors=true
|
||||
use_debug_fission=true
|
||||
use_errorprone_java_compiler=false
|
||||
use_official_google_api_keys=false
|
||||
use_rtti=false
|
||||
use_sysroot=false
|
||||
webview_includes_weblayer=false
|
||||
enable_arcore=false
|
||||
enable_openxr=false
|
||||
enable_gvr_services=false
|
||||
enable_feed_v2=false
|
||||
enable_cardboard=false
|
||||
is_high_end_android=true
|
||||
|
||||
# media section
|
||||
proprietary_codecs=true
|
||||
ffmpeg_branding="Chrome"
|
||||
enable_av1_decoder=true
|
||||
enable_dav1d_decoder=true
|
||||
|
||||
# disable cisco OpenH264
|
||||
media_use_openh264 = false
|
||||
|
||||
# decoder flags
|
||||
if (target_os == "android" || target_os == "win") {
|
||||
# codec supported by default
|
||||
# android: https://developer.android.com/media/platform/supported-formats
|
||||
# windows: https://learn.microsoft.com/en-us/windows/win32/medfound/codecobjects
|
||||
|
||||
# enable aac and h264 hw decoder only
|
||||
enable_platform_aac_audio = true
|
||||
enable_platform_h264_video = true
|
||||
|
||||
# enable hw decoder for h265 (hevc)
|
||||
enable_platform_hevc = true
|
||||
|
||||
# disable dolby vision
|
||||
enable_platform_dolby_vision = false
|
||||
enable_platform_encrypted_dolby_vision = false
|
||||
|
||||
if (target_os == "win") {
|
||||
# enable ac3/eac codec
|
||||
enable_platform_ac3_eac3_audio = true
|
||||
}
|
||||
}
|
||||
|
||||
# disable passthrough audio codecs
|
||||
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
|
||||
# see https://github.com/uazo/cromite/pull/317 for context
|
||||
use_v8_context_snapshot = false
|
||||
|
||||
# enable libjxl support by default
|
||||
enable_jxl_decoder = true
|
||||
|
||||
# disable minikin engine
|
||||
# see https://github.com/uazo/cromite/issues/697
|
||||
use_minikin_hyphenation = false
|
||||
|
||||
# disable automatic update of sync-related cookies
|
||||
# initial commit: https://source.chromium.org/chromium/chromium/src/+/fd9a841f7a63b9f5510f6b713d9c833d259c63ad
|
||||
enable_bound_session_credentials = false
|
||||
|
||||
declare_args() {
|
||||
_is_debug_build = ""
|
||||
build_webview = false
|
||||
}
|
||||
|
||||
not_needed(["_target_build", "_is_debug_build"])
|
||||
|
||||
if (getenv("TARGET_CPU") != "") {
|
||||
target_cpu = getenv("TARGET_CPU")
|
||||
}
|
||||
|
||||
if (target_os == "android") {
|
||||
target_os = "android" # fix traffic annotation auditor
|
||||
#enable_kythe_annotations = true
|
||||
|
||||
chrome_public_manifest_package = "org.cromite.cromite"
|
||||
system_webview_package_name="org.cromite.webview" #"com.android.webview"
|
||||
system_webview_shell_package_name="org.cromite.webview_shell"
|
||||
|
||||
if (getenv("USE_KEYSTORE") != "") {
|
||||
android_keystore_path = "/home/lg/working_dir/cromite.keystore"
|
||||
android_keystore_name = "cromite"
|
||||
android_keystore_password = getenv("KEYSTORE_PASSWORD")
|
||||
}
|
||||
|
||||
cromite_pref_hash_seed_bin = getenv("CROMITE_PREF_HASH_SEED_BIN")
|
||||
|
||||
_is_debug_build = getenv("TARGET_ISDEBUG")
|
||||
if(_is_debug_build == "true") {
|
||||
# print("Debug build on")
|
||||
is_debug = true
|
||||
is_official_build = false
|
||||
dcheck_always_on = true
|
||||
symbol_level = 1
|
||||
strip_debug_info = false
|
||||
generate_linker_map = false
|
||||
} else {
|
||||
generate_linker_map = true
|
||||
}
|
||||
|
||||
if (build_webview) {
|
||||
# only 64bit
|
||||
skip_secondary_abi_for_cq = true
|
||||
}
|
||||
}
|
||||
|
||||
if (target_os == "win") {
|
||||
target_os = "win" # fix traffic annotation auditor
|
||||
target_cpu = "x64"
|
||||
symbol_level = 0
|
||||
use_large_pdbs = true
|
||||
|
||||
enable_pdf = true
|
||||
pdf_is_complete_lib = true
|
||||
enable_plugins = true
|
||||
enable_ppapi = false
|
||||
|
||||
chrome_pgo_phase = 2 # enable pgo
|
||||
|
||||
is_cfi = false # disable it
|
||||
use_cfi_cast = false # disable it
|
||||
}
|
||||
|
||||
if (target_os == "linux") {
|
||||
target_os = "linux" # fix traffic annotation auditor
|
||||
target_cpu = "x64"
|
||||
symbol_level = 0
|
||||
|
||||
enable_pdf = true
|
||||
pdf_is_complete_lib = true
|
||||
enable_plugins = true
|
||||
enable_ppapi = false
|
||||
|
||||
use_sysroot = true
|
||||
chrome_pgo_phase = 2 # enable pgo
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
bromite-build-utils.patch
|
||||
Remove-EV-certificates.patch
|
||||
do-not-hide-.orig-files.patch
|
||||
Do-not-link-with-libatomic.patch
|
||||
@@ -22,7 +23,6 @@ Battery-API-return-nothing.patch
|
||||
updater-disable-updater-pings.patch
|
||||
Disable-omission-of-URL-elements-in-Omnibox.patch
|
||||
Modify-default-preferences.patch
|
||||
Do-not-hide-component-extensions.patch
|
||||
Do-not-store-passwords-by-default.patch
|
||||
Disable-NTP-remote-suggestions-by-default.patch
|
||||
Disable-references-to-fonts.googleapis.com.patch
|
||||
@@ -38,8 +38,7 @@ ungoogled-chromium-Disable-Gaia.patch
|
||||
ungoogled-chromium-Disable-Network-Time-Tracker.patch
|
||||
Disable-all-promo-dialogs.patch
|
||||
Disable-update-scheduler.patch
|
||||
Add-English-only-search-engine.patch
|
||||
Add-DuckDuckGo-Lite-search-engine.patch
|
||||
Add-search-engine.patch
|
||||
openH264-enable-ARM-ARM64-optimizations.patch
|
||||
build-remove-calling-untrusted-hooks.patch
|
||||
Inject-scripts-for-AMP-tracking-ads-and-video.patch
|
||||
@@ -69,12 +68,10 @@ profile-resetter-disable-send-settings.patch
|
||||
Do-not-build-API-keys-infobar.patch
|
||||
autofill-miscellaneous.patch
|
||||
Enable-native-Android-autofill.patch
|
||||
first_run-deactivate-autoupdate-globally.patch
|
||||
translate-disable-fetching-of-languages-from-server.patch
|
||||
Offer-builtin-autocomplete-for-chrome-flags.patch
|
||||
Use-4-tile-rows-never-show-logo.patch
|
||||
Disable-various-metrics.patch
|
||||
|
||||
Enable-StrictOriginIsolation-and-SitePerProcess.patch
|
||||
Use-64-bit-WebView-processes.patch
|
||||
prefs-always-prompt-for-download-directory.patch
|
||||
@@ -153,7 +150,7 @@ Add-flag-for-save-data-header.patch
|
||||
Disable-UA-full-version.patch
|
||||
Dictionary-suggestions-for-the-Omnibox.patch
|
||||
Disable-AsyncDNS-by-default.patch
|
||||
00Restore-LastTabStandingTracker.patch
|
||||
Restore-LastTabStandingTracker.patch
|
||||
Add-lifetime-options-for-permissions.patch
|
||||
Disable-crash-reporting.patch
|
||||
Samsung-Note-9-SDK27-crazylinker-workaround.patch
|
||||
@@ -177,90 +174,60 @@ Partition-blobs-by-top-frame-URL.patch
|
||||
Override-Navigator-Language.patch
|
||||
Disable-add-to-home-screen-prompt.patch
|
||||
Remove-HTTP-referrals-in-cross-origin-navigation.patch
|
||||
Enable-ECH-by-default.patch
|
||||
Disable-StartSurface-feature.patch
|
||||
Enable-PermuteTLSExtensions-by-default.patch
|
||||
Enable-third-party-storage-partitioning.patch
|
||||
Restore-adaptive-button-in-top-toolbar-customization.patch
|
||||
Add-kill-switch-for-unsupported-clangd-flags.patch
|
||||
|
||||
eyeo-beta-114.0.5735.53-v1-base.patch
|
||||
eyeo-beta-114.0.5735.53-v1-android_settings.patch
|
||||
eyeo-beta-114.0.5735.53-v1-extension_api.patch
|
||||
00Eyeo-Adblock-Remove-Privacy-Issues.patch
|
||||
WIN-enable-pdf-plugin.patch
|
||||
WIN-disable-annotate-downloads.patch
|
||||
WIN-enable-HighEfficiencyMode-by-default.patch
|
||||
WIN-enable-file-system-access-blocklist.patch
|
||||
WIN-Disable-TabHoverCard-images.patch
|
||||
WIN-Fix-log-to-file.patch
|
||||
WIN-Disable-updater.patch
|
||||
WIN-Disable-first-run.patch
|
||||
WIN-Add-some-prefs-to-secure-preferences.patch
|
||||
WIN-Disable-search-for-image.patch
|
||||
|
||||
00WIN-ADDTO-Experimental-user-scripts-support.patch
|
||||
00WIN-ADDTO-ungoogled-chr--Disable-profile-avatar.patch
|
||||
00WIN-ADDTO-Add-a-proxy-configuration-page.patch
|
||||
00WIN-ADDTO-Add-bookmark-import-export-actions.patch
|
||||
00WIN-ADDTO-openH264--enable-ARM-ARM64-optimizati.patch
|
||||
00WIN-ADDTO-AImageReader-CFI-crash-mitigations.patch
|
||||
00WIN-ADDTO-Disable-various-metrics.patch
|
||||
00WIN-ADDTO-Do-not-build-API-keys-infobar.patch
|
||||
00WIN-ADDTO-Revert-flags--remove-num-raster-thre.patch
|
||||
00WIN-ADDTO-Restore-Search-Ready-Omnibox-flag.patch
|
||||
00WIN-ADDTO-Disable-requests-for-single-word-Omni.patch
|
||||
00WIN-ADDTO-Logcat-crash-reports-UI.patch
|
||||
00WIN-ADDTO-Add-AllowUserCertificates-flag.patch
|
||||
00WIN-enable-pdf-plugin.patch
|
||||
00WIN-disable-annotate-downloads.patch
|
||||
00WIN-enable-HighEfficiencyMode-by-default.patch
|
||||
00WIN-enable-file-system-access-blocklist.patch
|
||||
00WIN-Disable-TabHoverCard-images.patch
|
||||
00WIN-Fix-log-to-file.patch
|
||||
00WIN-minimum-data-to-enable-install-extensions.patch
|
||||
00WIN-Disable-updater.patch
|
||||
00WIN-Disable-first-run.patch
|
||||
00WIN-Add-some-prefs-to-secure-preferences.patch
|
||||
00WIN-Disable-search-for-image.patch
|
||||
|
||||
00Temp-Disable-kAutomaticLazyFrameLoadingToEmbeds.patch
|
||||
00Remove-experimental-relative-c---abi-vtables.patch
|
||||
AudioBuffer-AnalyserNode-fp-mitigations.patch
|
||||
00Disable-Component-Updates.patch
|
||||
00add-browser-policy.patch
|
||||
00Always-open-browser-controls-in-new-tab.patch
|
||||
00Partitioning-all-cookies-by-top-frame-domain.patch
|
||||
00Disable-FedCm.patch
|
||||
00Disable-BackForwardCache.patch
|
||||
00Evict-the-entire-FrameTree-like-desktop.patch
|
||||
00Disable-visited-pseudo-class.patch
|
||||
00Add-setting-to-clear-data-on-exit.patch
|
||||
00WIN-Disable-sharing-hub.patch
|
||||
00WIN-Enable-Network-Service-Sandbox-and-CIG.patch
|
||||
00Disable-csp-reports.patch
|
||||
00Fonts-fingerprinting-mitigation.patch
|
||||
00Keyboard-protection-flag.patch
|
||||
00Disable-privacy-issues-in-password-manager.patch
|
||||
00Partition-HSTS-cache-by-NAK.patch
|
||||
00Warning-message-for-unsupported-hardware-aes.patch
|
||||
00Enable-Document-Open-Inheritance-Removal.patch
|
||||
00Add-setting-to-invert-tap-and-long-tap.patch
|
||||
00Remove-ChromiumNetworkAdapter.patch
|
||||
00Internal-firewall.patch
|
||||
00Disable-devtools-remote-and-custom-protocols.patch
|
||||
00Remove-detection-of-captive-portals.patch
|
||||
00Disable-SHA1-Server-Signature.patch
|
||||
00Remove-auth-header-upon-cross-origin-redirect.patch
|
||||
00Clear-CORS-Preflight-Cache-on-clearing-data.patch
|
||||
00Multi-Screen-Window-Placement-API-fix.patch
|
||||
00Remove-https-connection-from-chrome-discards.patch
|
||||
00Add-a-flag-to-disable-GamePad-API.patch
|
||||
00Disable-WebGPU.patch
|
||||
00Disable-FirstPartySets-and-StorageAccessAPI.patch
|
||||
00Disable-GetInstalledRelatedApps-API.patch
|
||||
00Disable-GSA-by-default.patch
|
||||
00Disable-PrivateStateTokens-API.patch
|
||||
00Disallowing-MIDI-permission-by-default.patch
|
||||
00Disable-Compression-Dictionary-Transport.patch
|
||||
00Disallow-Android-App-Scheme-as-referrer.patch
|
||||
00Deprecate-Data-URL-in-SVGUseElement.patch
|
||||
|
||||
00TEMP-Add-a-log-to-track-strange-behavior.patch
|
||||
00v113-temp-fix-build.patch
|
||||
00114-temp-disable-find-bad-constructs-external-repo.patch
|
||||
|
||||
bromite-build-utils.patch
|
||||
Disable-Component-Updates.patch
|
||||
add-browser-policy.patch
|
||||
Always-open-browser-controls-in-new-tab.patch
|
||||
Partitioning-all-cookies-by-top-frame-domain.patch
|
||||
Disable-FedCm.patch
|
||||
Disable-BackForwardCache.patch
|
||||
Evict-the-entire-FrameTree-like-desktop.patch
|
||||
Disable-visited-pseudo-class.patch
|
||||
Add-setting-to-clear-data-on-exit.patch
|
||||
WIN-Disable-sharing-hub.patch
|
||||
Improve-the-browser-sandbox.patch
|
||||
Disable-csp-reports.patch
|
||||
Fonts-fingerprinting-mitigation.patch
|
||||
Keyboard-protection-flag.patch
|
||||
Disable-privacy-issues-in-password-manager.patch
|
||||
Partition-HSTS-cache-by-NAK.patch
|
||||
Warning-message-for-unsupported-hardware-aes.patch
|
||||
Enable-Document-Open-Inheritance-Removal.patch
|
||||
Add-setting-to-invert-tap-and-long-tap.patch
|
||||
Remove-ChromiumNetworkAdapter.patch
|
||||
Internal-firewall.patch
|
||||
Disable-devtools-remote-and-custom-protocols.patch
|
||||
Remove-detection-of-captive-portals.patch
|
||||
Remove-auth-header-upon-cross-origin-redirect.patch
|
||||
Clear-CORS-Preflight-Cache-on-clearing-data.patch
|
||||
Multi-Screen-Window-Placement-API-fix.patch
|
||||
Add-a-flag-to-disable-GamePad-API.patch
|
||||
Disable-WebGPU.patch
|
||||
Disable-FirstPartySets-and-StorageAccessAPI.patch
|
||||
Disable-GetInstalledRelatedApps-API.patch
|
||||
Disable-GSA-by-default.patch
|
||||
Disable-PrivateStateTokens-API.patch
|
||||
Disallowing-MIDI-permission-by-default.patch
|
||||
Disable-Compression-Dictionary-Transport.patch
|
||||
Disallow-Android-App-Scheme-as-referrer.patch
|
||||
Deprecate-Data-URL-in-SVGUseElement.patch
|
||||
Content-settings-infrastructure.patch
|
||||
Add-autoplay-site-setting.patch
|
||||
Site-setting-for-images.patch
|
||||
@@ -269,22 +236,66 @@ Add-webGL-site-setting.patch
|
||||
Add-webRTC-site-settings.patch
|
||||
Show-site-settings-for-cookies-javascript-and-ads.patch
|
||||
Viewport-Protection-flag.patch
|
||||
Viewport-Protection-Site-Setting.patch
|
||||
Timezone-customization.patch
|
||||
00Disable-speechSynthesis-getVoices-API.patch
|
||||
00Remove-support-for-device-memory-and-cpu-recovery.patch
|
||||
00Log-dangling-attributes-in-some-html-elements.patch
|
||||
00Keep-Side-Panel-Companion-disabled.patch
|
||||
00Lock-Profile-Cookie-Database.patch
|
||||
00Show-warnings-on-downloads-over-HTTP.patch
|
||||
00Compress-libchrome-to-free-up-some-space.patch
|
||||
00Cromite-Branding.patch
|
||||
00Disable-Feeback-Collector.patch
|
||||
00Disable-remote-altsvc-for-h3-connections.patch
|
||||
00do-not-block-build-incompatible-profiles.patch
|
||||
00Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch
|
||||
00allow-the-download-of-clang-for-windows-crossbuild.patch
|
||||
00Temp-disable-predictive-back-gesture.patch
|
||||
00Add-option-to-disable-snapshots.patch
|
||||
00Disable-PartnerCustomizations.patch
|
||||
00Enable-Android-Dynamic-Performance-Framework.patch
|
||||
Change-popup-site-setting.patch
|
||||
Disable-speechSynthesis-getVoices-API.patch
|
||||
Remove-support-for-device-memory-and-cpu-recovery.patch
|
||||
Log-dangling-attributes-in-some-html-elements.patch
|
||||
Keep-Side-Panel-Companion-disabled.patch
|
||||
Lock-Profile-Cookie-Database.patch
|
||||
Show-warnings-on-downloads-over-HTTP.patch
|
||||
Compress-libchrome-to-free-up-some-space.patch
|
||||
Cromite-Branding.patch
|
||||
Disable-Feeback-Collector.patch
|
||||
Disable-remote-altsvc-for-h3-connections.patch
|
||||
do-not-block-build-incompatible-profiles.patch
|
||||
Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch
|
||||
allow-the-download-of-clang-for-windows-crossbuild.patch
|
||||
Add-option-to-disable-snapshots.patch
|
||||
Enable-Android-Dynamic-Performance-Framework.patch
|
||||
Remove-GoogleAccountsPrivateApiHost.patch
|
||||
Fix-crash-on-customize-profile-ui.patch
|
||||
Enable-ImprovedBookmarks-by-default.patch
|
||||
Partition-MediaDeviceId-by-default.patch
|
||||
Keep-disabled-FetchLaterAPI.patch
|
||||
Disable-ranker-url-fetcher.patch
|
||||
Show-full-urls-for-bookmark.patch
|
||||
Disable-prefers-reduced-transparency-media-query.patch
|
||||
libjxl-0-8-2.patch
|
||||
Add-support-to-jxl.patch
|
||||
Block-Intents-While-Locked.patch
|
||||
Keep-Manta-Service-Disabled.patch
|
||||
Disable-Service-and-Shared-workers-on-3P-iframe.patch
|
||||
Disable-Real-Box.patch
|
||||
Always-allow-inspect-fallback.patch
|
||||
Add-cromite-flags-support.patch
|
||||
Add-PartialLowEndModeOnMidRangeDevices-flag.patch
|
||||
Use-list-mode-for-tab-switcher.patch
|
||||
Chrome-web-store-protection.patch
|
||||
Enable-search-engine-settings-desktop-ui.patch
|
||||
Disable-Android-AppRestrictions.patch
|
||||
Customize-selection-popup.patch
|
||||
Enables-deactivation-of-the-js-debugger-statement.patch
|
||||
Enable-gwp-asan-on-Android.patch
|
||||
Disable-Read-Aloud-by-default.patch
|
||||
Disable-Compose-feature.patch
|
||||
Disable-offline-autofetch-flag.patch
|
||||
Enable-percent-based-scrolling-on-Windows.patch
|
||||
Show-NTP-at-startup.patch
|
||||
Enable-platform-aac-audio-and-h264-video.patch
|
||||
Disable-Paint-Preview-by-default.patch
|
||||
Emoji-Fonts-fingerprinting-mitigation-02-02.patch
|
||||
Emoji-Fonts-fingerprinting-mitigation-01-02.patch
|
||||
|
||||
Temp-PerformanceNavigationTiming-privacy-fix.patch
|
||||
Temp-disable-predictive-back-gesture.patch
|
||||
TEMP-Add-a-log-to-track-strange-behavior.patch
|
||||
Temp-guard-FileSystemAccessPersistentPermissions.patch
|
||||
Fix-chromium-build-bugs.patch
|
||||
|
||||
eyeo-beta-118.0.5993.48-base.patch
|
||||
eyeo-beta-118.0.5993.48-chrome_integration.patch
|
||||
eyeo-beta-118.0.5993.48-android_api.patch
|
||||
eyeo-beta-118.0.5993.48-android_settings.patch
|
||||
eyeo-beta-118.0.5993.48-extension_api.patch
|
||||
Eyeo-Adblock-Remove-Privacy-Issues.patch
|
||||
@@ -0,0 +1 @@
|
||||
zz-patch-list.txt
|
||||
@@ -1,58 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Tue, 30 May 2023 15:45:59 +0000
|
||||
Subject: 114 temp disable find_bad_constructs external repo
|
||||
|
||||
---
|
||||
build/config/android/rules.gni | 1 +
|
||||
crypto/BUILD.gn | 1 +
|
||||
net/BUILD.gn | 1 +
|
||||
third_party/libevent/BUILD.gn | 2 ++
|
||||
4 files changed, 5 insertions(+)
|
||||
|
||||
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
|
||||
--- a/build/config/android/rules.gni
|
||||
+++ b/build/config/android/rules.gni
|
||||
@@ -4950,6 +4950,7 @@ if (enable_java_templates && is_android) {
|
||||
_module_build_config = _module.build_config
|
||||
_module_build_config_target = _module.build_config_target
|
||||
_module_target_name = get_label_info(_module_target, "name")
|
||||
+ not_needed(["_module_target_name"])
|
||||
|
||||
if (!_proguard_enabled) {
|
||||
_dex_target = "${_module_target_name}__final_dex"
|
||||
diff --git a/crypto/BUILD.gn b/crypto/BUILD.gn
|
||||
--- a/crypto/BUILD.gn
|
||||
+++ b/crypto/BUILD.gn
|
||||
@@ -14,6 +14,7 @@ buildflag_header("buildflags") {
|
||||
}
|
||||
|
||||
component("crypto") {
|
||||
+ configs -= [ "//build/config/clang:find_bad_constructs" ]
|
||||
output_name = "crcrypto" # Avoid colliding with OpenSSL's libcrypto.
|
||||
sources = [
|
||||
"aead.cc",
|
||||
diff --git a/net/BUILD.gn b/net/BUILD.gn
|
||||
--- a/net/BUILD.gn
|
||||
+++ b/net/BUILD.gn
|
||||
@@ -1653,6 +1653,7 @@ component("net") {
|
||||
configs -= [ "//build/config/compiler:default_optimization" ]
|
||||
configs += [ "//build/config/compiler:optimize_max" ]
|
||||
}
|
||||
+ configs -= [ "//build/config/clang:find_bad_constructs" ]
|
||||
}
|
||||
|
||||
# net_export.h has its own build target so that code (eg
|
||||
diff --git a/third_party/libevent/BUILD.gn b/third_party/libevent/BUILD.gn
|
||||
--- a/third_party/libevent/BUILD.gn
|
||||
+++ b/third_party/libevent/BUILD.gn
|
||||
@@ -69,6 +69,8 @@ static_library("libevent") {
|
||||
configs += [ "//build/config/compiler:optimize_max" ]
|
||||
}
|
||||
|
||||
+ configs -= [ "//build/config/clang:find_bad_constructs" ]
|
||||
+
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,26 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Tue, 14 Feb 2023 16:29:12 +0000
|
||||
Subject: Disable BackForwardCache
|
||||
|
||||
---
|
||||
content/public/common/content_features.cc | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
|
||||
--- a/content/public/common/content_features.cc
|
||||
+++ b/content/public/common/content_features.cc
|
||||
@@ -97,9 +97,9 @@ BASE_FEATURE(kBackgroundFetch,
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
// Enable using the BackForwardCache.
|
||||
-BASE_FEATURE(kBackForwardCache,
|
||||
- "BackForwardCache",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+BASE_FEATURE(kBackForwardCache, // ****
|
||||
+ "BackForwardCache", // always disabled
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // in bromite
|
||||
|
||||
// Enable showing a page preview during back/forward navigations.
|
||||
BASE_FEATURE(kBackForwardTransitions,
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,55 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Tue, 14 Feb 2023 16:26:17 +0000
|
||||
Subject: Disable FedCm
|
||||
|
||||
---
|
||||
content/public/common/content_features.cc | 10 +++++-----
|
||||
.../renderer/platform/runtime_enabled_features.json5 | 2 +-
|
||||
2 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
|
||||
--- a/content/public/common/content_features.cc
|
||||
+++ b/content/public/common/content_features.cc
|
||||
@@ -389,7 +389,7 @@ BASE_FEATURE(kExtraSafelistedRequestHeadersForOutOfBlinkCors,
|
||||
// by the flag in RuntimeEnabledFeatures on the blink side. See also
|
||||
// the use of kSetOnlyIfOverridden in content/child/runtime_features.cc.
|
||||
// We enable it here by default to support use in origin trials.
|
||||
-BASE_FEATURE(kFedCm, "FedCm", base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+BASE_FEATURE(kFedCm, "FedCm", base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
// Field trial boolean parameter which indicates whether FedCM IDP sign-out
|
||||
// is enabled.
|
||||
@@ -453,15 +453,15 @@ BASE_FEATURE(kFedCmLoginHint,
|
||||
// Enables metrics collection for signin status mismatches. Also enables
|
||||
// parsing the signin status HTTP headers.
|
||||
// kFedCmIdpSigninStatusEnabled takes precedence over this feature flag.
|
||||
-BASE_FEATURE(kFedCmIdpSigninStatusMetrics, // disabled
|
||||
+BASE_FEATURE(kFedCmIdpSigninStatusMetrics, // enabled
|
||||
"FedCmIdpSigninStatusMetrics", // by default
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT); // on bromite
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT); // on bromite
|
||||
|
||||
// Enables the IDP signin status API for use with FedCM, including avoiding
|
||||
// network requests when not signed in and mismatch handling.
|
||||
-BASE_FEATURE(kFedCmIdpSigninStatusEnabled, // disabled
|
||||
+BASE_FEATURE(kFedCmIdpSigninStatusEnabled, // enabled
|
||||
"FedCmIdpSigninStatusEnabled", // by default
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT); // on bromite
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT); // on bromite
|
||||
|
||||
// Enables the MDocs API in the IdentityCredential.
|
||||
BASE_FEATURE(kWebIdentityMDocs,
|
||||
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
|
||||
@@ -1590,7 +1590,7 @@
|
||||
{
|
||||
name: "FedCm",
|
||||
public: true,
|
||||
- status: "stable",
|
||||
+ status: "test",
|
||||
base_feature: "none",
|
||||
},
|
||||
{
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,39 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Tue, 2 May 2023 15:26:46 +0000
|
||||
Subject: Disable FirstPartySets and StorageAccessAPI
|
||||
|
||||
---
|
||||
components/privacy_sandbox/privacy_sandbox_prefs.cc | 2 +-
|
||||
content/public/common/content_features.cc | 6 +++---
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/privacy_sandbox/privacy_sandbox_prefs.cc
|
||||
--- a/components/privacy_sandbox/privacy_sandbox_prefs.cc
|
||||
+++ b/components/privacy_sandbox/privacy_sandbox_prefs.cc
|
||||
@@ -155,7 +155,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kPrivacySandboxFirstPartySetsDataAccessAllowedInitialized, false);
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kPrivacySandboxFirstPartySetsEnabled, true,
|
||||
+ prefs::kPrivacySandboxFirstPartySetsEnabled, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
|
||||
registry->RegisterBooleanPref(prefs::kPrivacySandboxTopicsConsentGiven,
|
||||
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
|
||||
--- a/content/public/common/content_features.cc
|
||||
+++ b/content/public/common/content_features.cc
|
||||
@@ -469,9 +469,9 @@ BASE_FEATURE(kWebIdentityMDocs,
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
// Enables usage of First Party Sets to determine cookie availability.
|
||||
-BASE_FEATURE(kFirstPartySets,
|
||||
- "FirstPartySets",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+BASE_FEATURE(kFirstPartySets, // always
|
||||
+ "FirstPartySets", // disabled
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // in bromite
|
||||
|
||||
// Controls whether to clear sites data on FPS transitions.
|
||||
const base::FeatureParam<bool> kFirstPartySetsClearSiteDataOnChangedSets{
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,37 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Tue, 22 Aug 2023 09:02:50 +0000
|
||||
Subject: Disable PartnerCustomizations
|
||||
|
||||
---
|
||||
chrome/browser/flags/android/chrome_feature_list.cc | 4 ++--
|
||||
.../partnercustomizations/PartnerBrowserCustomizations.java | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
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
|
||||
@@ -865,8 +865,8 @@ BASE_FEATURE(kOpaqueOriginForIncomingIntents,
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
BASE_FEATURE(kPartnerCustomizationsUma,
|
||||
- "PartnerCustomizationsUma",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+ "PartnerCustomizationsUma", // disabled
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // by default
|
||||
BASE_FEATURE(kProbabilisticCryptidRenderer,
|
||||
"ProbabilisticCryptidRenderer",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
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
|
||||
+++ b/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
||||
@@ -213,7 +213,7 @@ public class PartnerBrowserCustomizations {
|
||||
boolean systemOrPreStable =
|
||||
(context.getApplicationInfo().flags & ApplicationInfo.FLAG_SYSTEM) == 1
|
||||
|| !VersionInfo.isStableBuild();
|
||||
- if (!systemOrPreStable) {
|
||||
+ if ((true)) {
|
||||
// Only allow partner customization if this browser is a system package, or
|
||||
// is in pre-stable channels.
|
||||
return null;
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,29 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 15 May 2023 12:33:18 +0000
|
||||
Subject: Disable PrivateStateTokens API
|
||||
|
||||
---
|
||||
services/network/public/cpp/features.cc | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
|
||||
--- a/services/network/public/cpp/features.cc
|
||||
+++ b/services/network/public/cpp/features.cc
|
||||
@@ -154,12 +154,12 @@ BASE_FEATURE(kAttributionReportingCrossAppWeb, // in bromite
|
||||
// set, and handling their responses, according to the protocol.
|
||||
// (See https://github.com/WICG/trust-token-api.)
|
||||
BASE_FEATURE(kPrivateStateTokens,
|
||||
- "PrivateStateTokens",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+ "PrivateStateTokens", // must be disabled
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // in bromite
|
||||
|
||||
// Secondary flag used by the FLEDGE ads experiment in the interim before
|
||||
// PSTs are fully rolled out to stable.
|
||||
-BASE_FEATURE(kFledgePst, "TrustTokens", base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+BASE_FEATURE(kFledgePst, "TrustTokens", base::FEATURE_DISABLED_BY_DEFAULT); // must be disabled
|
||||
|
||||
// Determines which Trust Tokens operations require the TrustTokens origin trial
|
||||
// active in order to be used. This is runtime-configurable so that the Trust
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,24 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Tue, 18 Apr 2023 14:17:19 +0000
|
||||
Subject: Disable SHA1 Server Signature
|
||||
|
||||
---
|
||||
net/base/features.cc | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/net/base/features.cc b/net/base/features.cc
|
||||
--- a/net/base/features.cc
|
||||
+++ b/net/base/features.cc
|
||||
@@ -79,8 +79,8 @@ BASE_FEATURE(kUseDnsHttpsSvcbAlpn,
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
BASE_FEATURE(kSHA1ServerSignature,
|
||||
- "SHA1ServerSignature",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+ "SHA1ServerSignature", // disabled
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // in bromite
|
||||
|
||||
BASE_FEATURE(kEnableTLS13EarlyData,
|
||||
"EnableTLS13EarlyData",
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,35 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 1 May 2023 12:07:49 +0000
|
||||
Subject: Disable WebGPU
|
||||
|
||||
---
|
||||
gpu/config/gpu_finch_features.cc | 2 +-
|
||||
.../blink/renderer/platform/runtime_enabled_features.json5 | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
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
|
||||
@@ -273,7 +273,7 @@ BASE_FEATURE(kEnableDrDcVulkan,
|
||||
// Enable WebGPU on gpu service side only. This is used with origin trial and
|
||||
// enabled by default on supported platforms.
|
||||
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
-#define WEBGPU_ENABLED base::FEATURE_ENABLED_BY_DEFAULT
|
||||
+#define WEBGPU_ENABLED base::FEATURE_DISABLED_BY_DEFAULT
|
||||
#else
|
||||
#define WEBGPU_ENABLED base::FEATURE_DISABLED_BY_DEFAULT
|
||||
#endif
|
||||
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
|
||||
@@ -3975,7 +3975,7 @@
|
||||
// Note that this isn't enough to enable WebGPU and that access to
|
||||
// WebGPU is further gated on the "WebGPUService" feature exposing GPU
|
||||
// process access to WebGPU to the renderer process.
|
||||
- status: "stable",
|
||||
+ status: "test",
|
||||
},
|
||||
{
|
||||
// WebGPU developer features are deliberately not enabled by experimental
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,157 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Tue, 14 Mar 2023 15:59:38 +0000
|
||||
Subject: Disable privacy issues in password manager
|
||||
|
||||
---
|
||||
chrome/android/java/AndroidManifest.xml | 9 --------
|
||||
.../generated_password_leak_detection_pref.cc | 3 +--
|
||||
.../affiliation/affiliation_backend.cc | 1 +
|
||||
.../affiliation/affiliation_service_impl.cc | 4 ++++
|
||||
.../core/browser/affiliation/facet_manager.cc | 23 +++----------------
|
||||
.../leak_detection_check_factory_impl.cc | 5 ++++
|
||||
.../leak_detection_check_impl.cc | 4 +---
|
||||
.../core/common/password_manager_features.cc | 4 ++--
|
||||
8 files changed, 17 insertions(+), 36 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
|
||||
--- a/chrome/android/java/AndroidManifest.xml
|
||||
+++ b/chrome/android/java/AndroidManifest.xml
|
||||
@@ -458,15 +458,6 @@ by a child template that "extends" this file.
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
- <!-- Phishing Protection related -->
|
||||
- <receiver android:name="org.chromium.chrome.browser.safe_browsing.PasswordProtectionBroadcastReceiver"
|
||||
- android:exported="true"
|
||||
- android:permission="com.google.android.gms.permission.INTERNAL_BROADCAST">
|
||||
- <intent-filter>
|
||||
- <action android:name="com.android.chrome.safe_browsing.LOGIN" />
|
||||
- </intent-filter>
|
||||
- </receiver>
|
||||
-
|
||||
<!-- Upgrade related -->
|
||||
<receiver android:name="org.chromium.chrome.browser.upgrade.PackageReplacedBroadcastReceiver"
|
||||
android:exported="false">
|
||||
diff --git a/chrome/browser/password_manager/generated_password_leak_detection_pref.cc b/chrome/browser/password_manager/generated_password_leak_detection_pref.cc
|
||||
--- a/chrome/browser/password_manager/generated_password_leak_detection_pref.cc
|
||||
+++ b/chrome/browser/password_manager/generated_password_leak_detection_pref.cc
|
||||
@@ -20,8 +20,7 @@ namespace {
|
||||
|
||||
// Returns whether the user can use the leak detection feature.
|
||||
bool IsUserAllowedToUseLeakDetection(Profile* profile) {
|
||||
- return !profile->IsGuestSession() &&
|
||||
- IdentityManagerFactory::GetForProfileIfExists(profile);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
// Returns whether the effective value of the Safe Browsing preferences for
|
||||
diff --git a/components/password_manager/core/browser/affiliation/affiliation_backend.cc b/components/password_manager/core/browser/affiliation/affiliation_backend.cc
|
||||
--- a/components/password_manager/core/browser/affiliation/affiliation_backend.cc
|
||||
+++ b/components/password_manager/core/browser/affiliation/affiliation_backend.cc
|
||||
@@ -403,6 +403,7 @@ void AffiliationBackend::OnMalformedResponse(
|
||||
}
|
||||
|
||||
bool AffiliationBackend::OnCanSendNetworkRequest() {
|
||||
+ if ((true)) return false;
|
||||
DCHECK(!fetcher_);
|
||||
std::vector<FacetURI> requested_facet_uris;
|
||||
for (const auto& facet_manager_pair : facet_managers_) {
|
||||
diff --git a/components/password_manager/core/browser/affiliation/affiliation_service_impl.cc b/components/password_manager/core/browser/affiliation/affiliation_service_impl.cc
|
||||
--- a/components/password_manager/core/browser/affiliation/affiliation_service_impl.cc
|
||||
+++ b/components/password_manager/core/browser/affiliation/affiliation_service_impl.cc
|
||||
@@ -138,6 +138,10 @@ void AffiliationServiceImpl::Shutdown() {
|
||||
void AffiliationServiceImpl::PrefetchChangePasswordURLs(
|
||||
const std::vector<GURL>& urls,
|
||||
base::OnceClosure callback) {
|
||||
+ if ((true)) {
|
||||
+ std::move(callback).Run();
|
||||
+ return;
|
||||
+ }
|
||||
std::vector<FacetURI> facets;
|
||||
std::vector<url::SchemeHostPort> tuple_origins;
|
||||
for (const auto& url : urls) {
|
||||
diff --git a/components/password_manager/core/browser/affiliation/facet_manager.cc b/components/password_manager/core/browser/affiliation/facet_manager.cc
|
||||
--- a/components/password_manager/core/browser/affiliation/facet_manager.cc
|
||||
+++ b/components/password_manager/core/browser/affiliation/facet_manager.cc
|
||||
@@ -117,25 +117,7 @@ void FacetManager::GetAffiliationsAndBranding(
|
||||
RequestInfo request_info;
|
||||
request_info.callback = std::move(callback);
|
||||
request_info.callback_task_runner = callback_task_runner;
|
||||
- if (IsCachedDataFresh()) {
|
||||
- AffiliatedFacetsWithUpdateTime affiliation;
|
||||
- if (!backend_->ReadAffiliationsAndBrandingFromDatabase(facet_uri_,
|
||||
- &affiliation)) {
|
||||
- ServeRequestWithFailure(std::move(request_info));
|
||||
- return;
|
||||
- }
|
||||
- DCHECK_EQ(affiliation.last_update_time, last_update_time_) << facet_uri_;
|
||||
- ServeRequestWithSuccess(std::move(request_info), affiliation.facets);
|
||||
- } else if (cache_miss_strategy == StrategyOnCacheMiss::FETCH_OVER_NETWORK) {
|
||||
- pending_requests_.push_back(std::move(request_info));
|
||||
- backend_->SignalNeedNetworkRequest();
|
||||
- } else if (cache_miss_strategy ==
|
||||
- StrategyOnCacheMiss::TRY_ONCE_OVER_NETWORK) {
|
||||
- pending_one_time_requests_.push_back(std::move(request_info));
|
||||
- backend_->SignalNeedNetworkRequest();
|
||||
- } else {
|
||||
- ServeRequestWithFailure(std::move(request_info));
|
||||
- }
|
||||
+ ServeRequestWithFailure(std::move(request_info));
|
||||
}
|
||||
|
||||
void FacetManager::Prefetch(const base::Time& keep_fresh_until) {
|
||||
@@ -254,7 +236,8 @@ void FacetManager::ServeRequestWithSuccess(
|
||||
const AffiliatedFacets& affiliation) {
|
||||
request_info.callback_task_runner->PostTask(
|
||||
FROM_HERE,
|
||||
- base::BindOnce(std::move(request_info.callback), affiliation, true));
|
||||
+ base::BindOnce(std::move(request_info.callback),
|
||||
+ AffiliatedFacets(), false));
|
||||
}
|
||||
|
||||
// static
|
||||
diff --git a/components/password_manager/core/browser/leak_detection/leak_detection_check_factory_impl.cc b/components/password_manager/core/browser/leak_detection/leak_detection_check_factory_impl.cc
|
||||
--- a/components/password_manager/core/browser/leak_detection/leak_detection_check_factory_impl.cc
|
||||
+++ b/components/password_manager/core/browser/leak_detection/leak_detection_check_factory_impl.cc
|
||||
@@ -46,6 +46,11 @@ LeakDetectionCheckFactoryImpl::TryCreateLeakCheck(
|
||||
version_info::Channel channel) const {
|
||||
CHECK(identity_manager);
|
||||
|
||||
+ if ((true)) {
|
||||
+ delegate->OnError(LeakDetectionError::kNotSignIn);
|
||||
+ return nullptr;
|
||||
+ }
|
||||
+
|
||||
return std::make_unique<LeakDetectionCheckImpl>(
|
||||
delegate, identity_manager, std::move(url_loader_factory),
|
||||
GetAPIKey(LeakDetectionCheckImpl::HasAccountForRequest(identity_manager),
|
||||
diff --git a/components/password_manager/core/browser/leak_detection/leak_detection_check_impl.cc b/components/password_manager/core/browser/leak_detection/leak_detection_check_impl.cc
|
||||
--- a/components/password_manager/core/browser/leak_detection/leak_detection_check_impl.cc
|
||||
+++ b/components/password_manager/core/browser/leak_detection/leak_detection_check_impl.cc
|
||||
@@ -190,9 +190,7 @@ bool LeakDetectionCheckImpl::HasAccountForRequest(
|
||||
// always return something if the user is signed in.
|
||||
// On Android it will be empty if the user isn't syncing. Thus,
|
||||
// GetAccountsWithRefreshTokens() check is necessary.
|
||||
- return identity_manager &&
|
||||
- (identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSignin) ||
|
||||
- !identity_manager->GetAccountsWithRefreshTokens().empty());
|
||||
+ return false;
|
||||
}
|
||||
|
||||
void LeakDetectionCheckImpl::Start(LeakDetectionInitiator initiator,
|
||||
diff --git a/components/password_manager/core/common/password_manager_features.cc b/components/password_manager/core/common/password_manager_features.cc
|
||||
--- a/components/password_manager/core/common/password_manager_features.cc
|
||||
+++ b/components/password_manager/core/common/password_manager_features.cc
|
||||
@@ -87,8 +87,8 @@ BASE_FEATURE(kFillingAcrossGroupedSites,
|
||||
// Enables the experiment for the password manager to only fill on account
|
||||
// selection, rather than autofilling on page load, with highlighting of fields.
|
||||
BASE_FEATURE(kFillOnAccountSelect,
|
||||
- "fill-on-account-select",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+ "fill-on-account-select", // always enabled
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT); // in bromite
|
||||
|
||||
// Enables logging the content of chrome://password-manager-internals to the
|
||||
// terminal.
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,22 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Sat, 3 Jun 2023 13:11:22 +0000
|
||||
Subject: Disallowing MIDI permission by default
|
||||
|
||||
---
|
||||
components/permissions/features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/components/permissions/features.cc b/components/permissions/features.cc
|
||||
--- a/components/permissions/features.cc
|
||||
+++ b/components/permissions/features.cc
|
||||
@@ -145,7 +145,7 @@ BASE_FEATURE(kWindowManagementPermissionAlias,
|
||||
// Enables disallowing MIDI permission by default.
|
||||
BASE_FEATURE(kBlockMidiByDefault,
|
||||
"BlockMidiByDefault",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
} // namespace features
|
||||
namespace feature_params {
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,37 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Tue, 14 Feb 2023 16:23:08 +0000
|
||||
Subject: Evict the entire FrameTree like desktop
|
||||
|
||||
---
|
||||
components/viz/common/features.cc | 2 +-
|
||||
content/public/common/content_features.cc | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc
|
||||
--- a/components/viz/common/features.cc
|
||||
+++ b/components/viz/common/features.cc
|
||||
@@ -231,7 +231,7 @@ BASE_FEATURE(kRendererAllocatesImages,
|
||||
// evicts itself. This differs from Destkop platforms which evict the entire
|
||||
// FrameTree along with the topmost viz::Surface. When this feature is enabled,
|
||||
// Android will begin also evicting the entire FrameTree.
|
||||
-BASE_FEATURE(kEvictSubtree, "EvictSubtree", base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+BASE_FEATURE(kEvictSubtree, "EvictSubtree", base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
// If enabled, CompositorFrameSinkClient::OnBeginFrame is also treated as the
|
||||
// DidReceiveCompositorFrameAck. Both in providing the Ack for the previous
|
||||
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
|
||||
--- a/content/public/common/content_features.cc
|
||||
+++ b/content/public/common/content_features.cc
|
||||
@@ -564,8 +564,8 @@ BASE_FEATURE(kInMemoryCodeCache,
|
||||
// frames. Otherwise only toplevel frames and OOPIF are handled, and other
|
||||
// cases, e.g. PDF tiles are ignored. See https://crbug.com/1360351 for details.
|
||||
BASE_FEATURE(kInnerFrameCompositorSurfaceEviction,
|
||||
- "InnerFrameCompositorSurfaceEviction",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+ "InnerFrameCompositorSurfaceEviction", // guard this
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT); // guard this
|
||||
|
||||
// Kill switch for the GetInstalledRelatedApps API.
|
||||
BASE_FEATURE(kInstalledApp, "InstalledApp", base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,87 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 17 Jul 2023 15:24:16 +0000
|
||||
Subject: Keep Side Panel Companion disabled
|
||||
|
||||
---
|
||||
chrome/browser/companion/core/features.cc | 19 ++++++++++---------
|
||||
.../ui/side_search/side_search_prefs.cc | 2 +-
|
||||
chrome/browser/ui/ui_features.cc | 2 +-
|
||||
components/search_engines/template_url.cc | 2 +-
|
||||
4 files changed, 13 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/companion/core/features.cc b/chrome/browser/companion/core/features.cc
|
||||
--- a/chrome/browser/companion/core/features.cc
|
||||
+++ b/chrome/browser/companion/core/features.cc
|
||||
@@ -23,17 +23,17 @@ namespace internal {
|
||||
// `kSidePanelCompanion2`. This makes it possible for Companion to be
|
||||
// enabled via multiple field trials (e.g., one that's session consistent, other
|
||||
// that's permanent consistent).
|
||||
-BASE_FEATURE(kSidePanelCompanion,
|
||||
- "SidePanelCompanion",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
-BASE_FEATURE(kSidePanelCompanion2,
|
||||
- "SidePanelCompanion2",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+BASE_FEATURE(kSidePanelCompanion, // keep
|
||||
+ "SidePanelCompanion", // disabled
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // in bromite
|
||||
+BASE_FEATURE(kSidePanelCompanion2, // keep
|
||||
+ "SidePanelCompanion2", // disabled
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // in bromite
|
||||
// Dynamically enables the search companion if the user has experiments
|
||||
// enabled.
|
||||
-BASE_FEATURE(kCompanionEnabledByObservingExpsNavigations,
|
||||
- "CompanionEnabledByObservingExpsNavigations",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+BASE_FEATURE(kCompanionEnabledByObservingExpsNavigations, // keep
|
||||
+ "CompanionEnabledByObservingExpsNavigations", // disabled
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // in bromite
|
||||
} // namespace internal
|
||||
|
||||
// When search companion is enabled, show a context menu item that allows the
|
||||
@@ -51,6 +51,7 @@ const char kDisableCheckUserPermissionsForCompanion[] =
|
||||
const char kForceCompanionPinnedState[] = "force-companion-pinned-state";
|
||||
|
||||
bool ShouldOverrideCheckingUserPermissionsForCompanion() {
|
||||
+ if ((true)) return false;
|
||||
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
||||
return command_line->HasSwitch(kDisableCheckUserPermissionsForCompanion);
|
||||
}
|
||||
diff --git a/chrome/browser/ui/side_search/side_search_prefs.cc b/chrome/browser/ui/side_search/side_search_prefs.cc
|
||||
--- a/chrome/browser/ui/side_search/side_search_prefs.cc
|
||||
+++ b/chrome/browser/ui/side_search/side_search_prefs.cc
|
||||
@@ -13,7 +13,7 @@ namespace side_search_prefs {
|
||||
const char kSideSearchEnabled[] = "side_search.enabled";
|
||||
|
||||
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
- registry->RegisterBooleanPref(kSideSearchEnabled, true);
|
||||
+ registry->RegisterBooleanPref(kSideSearchEnabled, false);
|
||||
}
|
||||
|
||||
} // namespace side_search_prefs
|
||||
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc
|
||||
--- a/chrome/browser/ui/ui_features.cc
|
||||
+++ b/chrome/browser/ui/ui_features.cc
|
||||
@@ -95,7 +95,7 @@ BASE_FEATURE(kQuickCommands,
|
||||
|
||||
// Enables the side search feature for Google Search. Presents recent Google
|
||||
// search results in a browser side panel.
|
||||
-BASE_FEATURE(kSideSearch, "SideSearch", base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+BASE_FEATURE(kSideSearch, "SideSearch", base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
BASE_FEATURE(kSideSearchFeedback,
|
||||
"SideSearchFeedback",
|
||||
diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc
|
||||
--- a/components/search_engines/template_url.cc
|
||||
+++ b/components/search_engines/template_url.cc
|
||||
@@ -1823,7 +1823,7 @@ GURL TemplateURL::GenerateSuggestionURL(
|
||||
}
|
||||
|
||||
bool TemplateURL::IsSideSearchSupported() const {
|
||||
- return !side_search_param().empty();
|
||||
+ return false;
|
||||
}
|
||||
|
||||
bool TemplateURL::IsSideImageSearchSupported() const {
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,22 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 17 Jul 2023 15:24:54 +0000
|
||||
Subject: Lock Profile Cookie Database
|
||||
|
||||
---
|
||||
chrome/browser/browser_features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc
|
||||
--- a/chrome/browser/browser_features.cc
|
||||
+++ b/chrome/browser/browser_features.cc
|
||||
@@ -201,7 +201,7 @@ BASE_FEATURE(kAppBoundEncryptionMetrics,
|
||||
// TODO(crbug.com/1430226): Remove after fully launched.
|
||||
BASE_FEATURE(kLockProfileCookieDatabase,
|
||||
"LockProfileCookieDatabase",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
#endif
|
||||
|
||||
// Enables showing the email of the flex org admin that setup CBCM in the
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,235 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 9 Jan 2023 12:02:05 +0000
|
||||
Subject: Partitioning all cookies by top frame domain
|
||||
|
||||
Enables cookie partitioning by top frame etld, respecting the
|
||||
user's possible wish to disable all third-party cookies.
|
||||
Disabling the flag via the ui restores the normal mode, where
|
||||
samesite=none first-party cookies are sent in third-party contexts.
|
||||
---
|
||||
net/base/features.cc | 8 ++++----
|
||||
net/cookies/canonical_cookie.cc | 12 +-----------
|
||||
net/cookies/cookie_deletion_info.cc | 3 ++-
|
||||
net/cookies/parsed_cookie.h | 7 ++++++-
|
||||
net/extras/sqlite/sqlite_persistent_cookie_store.cc | 10 ++++++++++
|
||||
services/network/cookie_settings.cc | 12 ++++++++++--
|
||||
services/network/restricted_cookie_manager.cc | 3 +++
|
||||
.../renderer/modules/cookie_store/cookie_init.idl | 2 +-
|
||||
.../renderer/modules/cookie_store/cookie_store.cc | 12 ++++++++++++
|
||||
.../cookie_store/cookie_store_delete_options.idl | 2 +-
|
||||
10 files changed, 50 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/net/base/features.cc b/net/base/features.cc
|
||||
--- a/net/base/features.cc
|
||||
+++ b/net/base/features.cc
|
||||
@@ -252,8 +252,8 @@ BASE_FEATURE(kWaitForFirstPartySetsInit,
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
BASE_FEATURE(kPartitionedCookies,
|
||||
- "PartitionedCookies",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+ "PartitionedCookies", // guard this
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT); // guard this
|
||||
|
||||
BASE_FEATURE(kNoncedPartitionedCookies,
|
||||
"NoncedPartitionedCookies",
|
||||
@@ -268,8 +268,8 @@ BASE_FEATURE(kStaticKeyPinningEnforcement,
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
BASE_FEATURE(kCookieDomainRejectNonASCII,
|
||||
- "CookieDomainRejectNonASCII",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+ "CookieDomainRejectNonASCII", // guard this
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT); // guard this
|
||||
|
||||
BASE_FEATURE(kBlockSetCookieHeader,
|
||||
"BlockSetCookieHeader",
|
||||
diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc
|
||||
--- a/net/cookies/canonical_cookie.cc
|
||||
+++ b/net/cookies/canonical_cookie.cc
|
||||
@@ -1576,8 +1576,6 @@ bool CanonicalCookie::IsCanonicalForFromStorage() const {
|
||||
if (IsPartitioned()) {
|
||||
if (CookiePartitionKey::HasNonce(partition_key_))
|
||||
return true;
|
||||
- if (!secure_)
|
||||
- return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -1851,15 +1849,7 @@ bool CanonicalCookie::IsCookiePartitionedValid(const GURL& url,
|
||||
bool secure,
|
||||
bool is_partitioned,
|
||||
bool partition_has_nonce) {
|
||||
- if (!is_partitioned)
|
||||
- return true;
|
||||
- if (partition_has_nonce)
|
||||
- return true;
|
||||
- CookieAccessScheme scheme = cookie_util::ProvisionalAccessScheme(url);
|
||||
- bool result = (scheme != CookieAccessScheme::kNonCryptographic) && secure;
|
||||
- DLOG_IF(WARNING, !result)
|
||||
- << "CanonicalCookie has invalid Partitioned attribute";
|
||||
- return result;
|
||||
+ return true;
|
||||
}
|
||||
|
||||
CookieAndLineWithAccessResult::CookieAndLineWithAccessResult() = default;
|
||||
diff --git a/net/cookies/cookie_deletion_info.cc b/net/cookies/cookie_deletion_info.cc
|
||||
--- a/net/cookies/cookie_deletion_info.cc
|
||||
+++ b/net/cookies/cookie_deletion_info.cc
|
||||
@@ -131,7 +131,8 @@ bool CookieDeletionInfo::Matches(const CanonicalCookie& cookie,
|
||||
return false;
|
||||
}
|
||||
|
||||
- if (cookie.IsPartitioned() &&
|
||||
+ // opened bug https://bugs.chromium.org/p/chromium/issues/detail?id=1405772
|
||||
+ if (cookie.IsPartitioned() && !cookie_partition_key_collection.IsEmpty() &&
|
||||
!cookie_partition_key_collection.Contains(*cookie.PartitionKey())) {
|
||||
return false;
|
||||
}
|
||||
diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h
|
||||
--- a/net/cookies/parsed_cookie.h
|
||||
+++ b/net/cookies/parsed_cookie.h
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
+#include "net/base/features.h"
|
||||
#include "net/base/net_export.h"
|
||||
#include "net/cookies/cookie_constants.h"
|
||||
|
||||
@@ -83,7 +84,11 @@ class NET_EXPORT ParsedCookie {
|
||||
CookieSameSiteString* samesite_string = nullptr) const;
|
||||
CookiePriority Priority() const;
|
||||
bool IsSameParty() const { return same_party_index_ != 0; }
|
||||
- bool IsPartitioned() const { return partitioned_index_ != 0; }
|
||||
+ bool IsPartitioned() const {
|
||||
+ if (base::FeatureList::IsEnabled(net::features::kPartitionedCookies))
|
||||
+ return true;
|
||||
+ return partitioned_index_ != 0;
|
||||
+ }
|
||||
bool HasInternalHtab() const { return internal_htab_; }
|
||||
TruncatingCharacterInCookieStringType
|
||||
GetTruncatingCharacterInCookieStringType() const {
|
||||
diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sqlite/sqlite_persistent_cookie_store.cc
|
||||
--- a/net/extras/sqlite/sqlite_persistent_cookie_store.cc
|
||||
+++ b/net/extras/sqlite/sqlite_persistent_cookie_store.cc
|
||||
@@ -864,6 +864,16 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() {
|
||||
if (!restore_old_session_cookies_)
|
||||
DeleteSessionCookiesOnStartup();
|
||||
|
||||
+ // Since there is no automatic transition to partitioned cookies
|
||||
+ // (the information would be missing), we clean the current ones
|
||||
+ // present because they would otherwise be sent in third-party contexts
|
||||
+ // even if the flag is active.
|
||||
+ if (base::FeatureList::IsEnabled(features::kPartitionedCookies)) {
|
||||
+ if (!db()->Execute("DELETE FROM cookies WHERE top_frame_site_key = ''")) {
|
||||
+ LOG(WARNING) << "Unable to delete unpartitioned cookies.";
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
return true;
|
||||
}
|
||||
|
||||
diff --git a/services/network/cookie_settings.cc b/services/network/cookie_settings.cc
|
||||
--- a/services/network/cookie_settings.cc
|
||||
+++ b/services/network/cookie_settings.cc
|
||||
@@ -35,6 +35,11 @@ bool IsExplicitSetting(const ContentSettingPatternSource& setting) {
|
||||
!setting.secondary_pattern.MatchesAllHosts();
|
||||
}
|
||||
|
||||
+bool IsThirdPartyAllowed(const ContentSettingPatternSource& setting) {
|
||||
+ return setting.primary_pattern.MatchesAllHosts() &&
|
||||
+ !setting.secondary_pattern.MatchesAllHosts();
|
||||
+}
|
||||
+
|
||||
const ContentSettingPatternSource* FindMatchingSetting(
|
||||
const GURL& primary_url,
|
||||
const GURL& secondary_url,
|
||||
@@ -193,11 +198,14 @@ net::NetworkDelegate::PrivacySetting CookieSettings::IsPrivacyModeEnabled(
|
||||
|
||||
CookieSettings::ThirdPartyBlockingScope
|
||||
CookieSettings::GetThirdPartyBlockingScope(const GURL& first_party_url) const {
|
||||
- // If cookies are allowed for the first-party URL then we allow
|
||||
+ // If cookies are allowed for the thirdy-party URL then we allow
|
||||
// partitioned cross-site cookies.
|
||||
+ // partitioned are the default for all cookies, so we allow all cookies
|
||||
+ // if the user want so.
|
||||
if (const ContentSettingPatternSource* match = FindMatchingSetting(
|
||||
first_party_url, first_party_url, content_settings_);
|
||||
- !match || match->GetContentSetting() == CONTENT_SETTING_ALLOW) {
|
||||
+ match && IsThirdPartyAllowed(*match) &&
|
||||
+ match->GetContentSetting() == CONTENT_SETTING_ALLOW) {
|
||||
return ThirdPartyBlockingScope::kUnpartitionedOnly;
|
||||
}
|
||||
return ThirdPartyBlockingScope::kUnpartitionedAndPartitioned;
|
||||
diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
|
||||
--- a/services/network/restricted_cookie_manager.cc
|
||||
+++ b/services/network/restricted_cookie_manager.cc
|
||||
@@ -773,6 +773,9 @@ void RestrictedCookieManager::SetCookieFromString(
|
||||
std::move(callback).Run(site_for_cookies_ok, top_frame_origin_ok);
|
||||
callback = base::DoNothing();
|
||||
|
||||
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=911299
|
||||
+ if (!site_for_cookies_ok || !top_frame_origin_ok) return;
|
||||
+
|
||||
net::CookieInclusionStatus status;
|
||||
std::unique_ptr<net::CanonicalCookie> parsed_cookie =
|
||||
net::CanonicalCookie::Create(url, cookie, base::Time::Now(),
|
||||
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl b/third_party/blink/renderer/modules/cookie_store/cookie_init.idl
|
||||
--- a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl
|
||||
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_init.idl
|
||||
@@ -17,5 +17,5 @@ dictionary CookieInit {
|
||||
USVString path = "/";
|
||||
DOMHighResTimeStamp? expires = null;
|
||||
CookieSameSite sameSite = "strict";
|
||||
- [RuntimeEnabled=PartitionedCookies] boolean partitioned = false;
|
||||
+ [RuntimeEnabled=PartitionedCookies] boolean partitioned = true;
|
||||
};
|
||||
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
|
||||
--- a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
|
||||
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
|
||||
@@ -321,6 +321,10 @@ ScriptPromise CookieStore::set(ScriptState* script_state,
|
||||
CookieInit* set_options = CookieInit::Create();
|
||||
set_options->setName(name);
|
||||
set_options->setValue(value);
|
||||
+ if (RuntimeEnabledFeatures::PartitionedCookiesEnabled(
|
||||
+ CurrentExecutionContext(script_state->GetIsolate()))) {
|
||||
+ set_options->setPartitioned(true);
|
||||
+ }
|
||||
return set(script_state, set_options, exception_state);
|
||||
}
|
||||
|
||||
@@ -343,6 +347,10 @@ ScriptPromise CookieStore::Delete(ScriptState* script_state,
|
||||
set_options->setName(name);
|
||||
set_options->setValue("deleted");
|
||||
set_options->setExpires(0);
|
||||
+ if (RuntimeEnabledFeatures::PartitionedCookiesEnabled(
|
||||
+ CurrentExecutionContext(script_state->GetIsolate()))) {
|
||||
+ set_options->setPartitioned(true);
|
||||
+ }
|
||||
return DoWrite(script_state, set_options, exception_state);
|
||||
}
|
||||
|
||||
@@ -357,6 +365,10 @@ ScriptPromise CookieStore::Delete(ScriptState* script_state,
|
||||
set_options->setPath(options->path());
|
||||
set_options->setSameSite("strict");
|
||||
set_options->setPartitioned(options->partitioned());
|
||||
+ if (RuntimeEnabledFeatures::PartitionedCookiesEnabled(
|
||||
+ CurrentExecutionContext(script_state->GetIsolate()))) {
|
||||
+ set_options->setPartitioned(true);
|
||||
+ }
|
||||
return DoWrite(script_state, set_options, exception_state);
|
||||
}
|
||||
|
||||
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store_delete_options.idl b/third_party/blink/renderer/modules/cookie_store/cookie_store_delete_options.idl
|
||||
--- a/third_party/blink/renderer/modules/cookie_store/cookie_store_delete_options.idl
|
||||
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_store_delete_options.idl
|
||||
@@ -8,5 +8,5 @@ dictionary CookieStoreDeleteOptions {
|
||||
required USVString name;
|
||||
USVString? domain = null;
|
||||
USVString path = "/";
|
||||
- [RuntimeEnabled=PartitionedCookies] boolean partitioned = false;
|
||||
+ [RuntimeEnabled=PartitionedCookies] boolean partitioned = true;
|
||||
};
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,37 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Wed, 19 Apr 2023 06:53:19 +0000
|
||||
Subject: Remove auth header upon cross origin redirect
|
||||
|
||||
---
|
||||
.../blink/renderer/platform/loader/fetch/resource_loader.cc | 3 +++
|
||||
.../platform/loader/fetch/url_loader/sync_load_context.cc | 3 +++
|
||||
2 files changed, 6 insertions(+)
|
||||
|
||||
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
|
||||
--- a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
|
||||
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
|
||||
@@ -837,6 +837,9 @@ bool ResourceLoader::WillFollowRedirect(
|
||||
new_url)) {
|
||||
fetcher_->GetUseCounter().CountUse(
|
||||
mojom::WebFeature::kAuthorizationCrossOrigin);
|
||||
+ if (removed_headers) {
|
||||
+ removed_headers->push_back(net::HttpRequestHeaders::kAuthorization);
|
||||
+ }
|
||||
}
|
||||
|
||||
if (removed_headers) {
|
||||
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context.cc
|
||||
--- a/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context.cc
|
||||
+++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context.cc
|
||||
@@ -172,6 +172,9 @@ bool SyncLoadContext::OnReceivedRedirect(
|
||||
if (has_authorization_header_ &&
|
||||
!url::IsSameOriginWith(response_->url, redirect_info.new_url)) {
|
||||
response_->has_authorization_header_between_cross_origin_redirect_ = true;
|
||||
+ if (removed_headers) {
|
||||
+ removed_headers->push_back(net::HttpRequestHeaders::kAuthorization);
|
||||
+ }
|
||||
}
|
||||
|
||||
if (removed_headers) {
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,22 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 17 Apr 2023 12:43:19 +0000
|
||||
Subject: Remove detection of captive portals
|
||||
|
||||
---
|
||||
chrome/browser/net/profile_network_context_service.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
|
||||
--- a/chrome/browser/net/profile_network_context_service.cc
|
||||
+++ b/chrome/browser/net/profile_network_context_service.cc
|
||||
@@ -389,7 +389,7 @@ void ProfileNetworkContextService::UpdateAdditionalCertificates() {
|
||||
void ProfileNetworkContextService::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
- embedder_support::kAlternateErrorPagesEnabled, true,
|
||||
+ embedder_support::kAlternateErrorPagesEnabled, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterBooleanPref(prefs::kQuicAllowed, true);
|
||||
registry->RegisterBooleanPref(prefs::kGloballyScopeHTTPAuthCacheEnabled,
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,25 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Mon, 30 Jan 2023 15:20:53 +0000
|
||||
Subject: Remove experimental-relative-c++-abi-vtables
|
||||
|
||||
---
|
||||
build/config/compiler/BUILD.gn | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
||||
--- a/build/config/compiler/BUILD.gn
|
||||
+++ b/build/config/compiler/BUILD.gn
|
||||
@@ -682,11 +682,6 @@ config("compiler") {
|
||||
cflags_cc += [ "-Wno-trigraphs" ]
|
||||
}
|
||||
|
||||
- if (use_relative_vtables_abi) {
|
||||
- cflags_cc += [ "-fexperimental-relative-c++-abi-vtables" ]
|
||||
- ldflags += [ "-fexperimental-relative-c++-abi-vtables" ]
|
||||
- }
|
||||
-
|
||||
# Add flags for link-time optimization. These flags enable
|
||||
# optimizations/transformations that require whole-program visibility at link
|
||||
# time, so they need to be applied to all translation units, and we may end up
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,24 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Thu, 20 Apr 2023 15:03:56 +0000
|
||||
Subject: Remove https connection from chrome://discards
|
||||
|
||||
---
|
||||
chrome/browser/resources/discards/graph_doc_template.html | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/resources/discards/graph_doc_template.html b/chrome/browser/resources/discards/graph_doc_template.html
|
||||
--- a/chrome/browser/resources/discards/graph_doc_template.html
|
||||
+++ b/chrome/browser/resources/discards/graph_doc_template.html
|
||||
@@ -82,10 +82,6 @@ URL. As result, this document needs to be self-contained, hence inline scripts.
|
||||
}
|
||||
|
||||
</style>
|
||||
- <script src="https://ajax.googleapis.com/ajax/libs/d3js/5.7.0/d3.min.js"
|
||||
- integrity="sha384-HL96dun1KbYEq6UT/ZlsspAODCyQ+Zp4z318ajUPBPSMzy5dvxl6ziwmnil8/Cpd"
|
||||
- crossorigin="anonymous">
|
||||
- </script>
|
||||
<script type="application/javascript">
|
||||
${javascript_file}
|
||||
</script>
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,26 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 17 Jul 2023 15:26:11 +0000
|
||||
Subject: Show warnings on downloads over HTTP
|
||||
|
||||
---
|
||||
chrome/common/chrome_features.cc | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
|
||||
--- a/chrome/common/chrome_features.cc
|
||||
+++ b/chrome/common/chrome_features.cc
|
||||
@@ -1129,9 +1129,9 @@ BASE_FEATURE(kTreatUnsafeDownloadsAsActive,
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
// Show warnings on downloads not delivered over HTTPS.
|
||||
-BASE_FEATURE(kInsecureDownloadWarnings,
|
||||
- "InsecureDownloadWarnings",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+BASE_FEATURE(kInsecureDownloadWarnings, // enabled by
|
||||
+ "InsecureDownloadWarnings", // default
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT); // in bromite
|
||||
|
||||
// TrustSafetySentimentSurvey
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,22 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Tue, 20 Dec 2022 15:09:46 +0000
|
||||
Subject: Temp Disable kAutomaticLazyFrameLoadingToEmbeds
|
||||
|
||||
---
|
||||
third_party/blink/common/features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
|
||||
--- a/third_party/blink/common/features.cc
|
||||
+++ b/third_party/blink/common/features.cc
|
||||
@@ -160,7 +160,7 @@ const base::FeatureParam<int> kSkipFrameCountForLazyAds(
|
||||
// Vitals.
|
||||
BASE_FEATURE(kAutomaticLazyFrameLoadingToEmbeds,
|
||||
"AutomaticLazyFrameLoadingToEmbeds", // must be enabled
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
|
||||
|
||||
// The timeout value that forces loading iframes that are lazy loaded by
|
||||
// LazyEmbeds. After this timeout, the frame loading is triggered even when the
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,26 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Wed, 12 Oct 2022 11:36:56 +0000
|
||||
Subject: WIN ADDTO AImageReader CFI crash mitigations
|
||||
|
||||
---
|
||||
gpu/ipc/service/gpu_init.cc | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
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
|
||||
@@ -616,10 +616,12 @@ 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::DisableSupport();
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (gpu_feature_info_.status_values[GPU_FEATURE_TYPE_VULKAN] !=
|
||||
kGpuFeatureStatusEnabled ||
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,26 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Mon, 19 Dec 2022 11:23:10 +0000
|
||||
Subject: WIN ADDTO Add AllowUserCertificates flag
|
||||
|
||||
---
|
||||
chrome/browser/about_flags.cc | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -9235,10 +9235,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kHttpsUpgradesDescription, kOsDesktop | kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(features::kHttpsUpgrades)},
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
{"allow-user-certificates",
|
||||
flag_descriptions::kAllowUserCertificatesName,
|
||||
flag_descriptions::kAllowUserCertificatesDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(chrome::android::kAllowUserCertificates)},
|
||||
+#endif
|
||||
{"omnibox-updated-connection-security-indicators",
|
||||
flag_descriptions::kOmniboxUpdatedConnectionSecurityIndicatorsName,
|
||||
flag_descriptions::kOmniboxUpdatedConnectionSecurityIndicatorsDescription,
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,39 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Wed, 12 Oct 2022 10:59:27 +0000
|
||||
Subject: WIN ADDTO Add a proxy configuration page
|
||||
|
||||
---
|
||||
chrome/browser/browser_resources.grd | 6 ++----
|
||||
chrome/browser/extensions/api/proxy/proxy_api_helpers.cc | 2 +-
|
||||
2 files changed, 3 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
|
||||
--- a/chrome/browser/browser_resources.grd
|
||||
+++ b/chrome/browser/browser_resources.grd
|
||||
@@ -285,10 +285,8 @@
|
||||
<include name="IDR_ADDITIONAL_MODULE_IDS" file="${additional_modules_list_file}" use_base_dir="false" type="BINDATA" />
|
||||
</if>
|
||||
<!-- Bromite Proxy Configuration UI -->
|
||||
- <if expr="is_android">
|
||||
- <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" />
|
||||
- </if>
|
||||
+ <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" />
|
||||
<if expr="not is_android">
|
||||
<include name="IDR_ABOUT_SYS_HTML" file="resources\about_sys\about_sys.html" type="BINDATA" />
|
||||
<include name="IDR_ABOUT_SYS_CSS" file="resources\about_sys\about_sys.css" type="BINDATA" />
|
||||
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
|
||||
+++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
|
||||
@@ -388,7 +388,7 @@ absl::optional<base::Value::Dict> CreateProxyConfigDict(
|
||||
return absl::nullopt;
|
||||
}
|
||||
return ProxyConfigDictionary::CreateFixedServers(proxy_rules_string,
|
||||
- bypass_list);
|
||||
+ bypass_list, /*reverse_bypass*/false);
|
||||
}
|
||||
case ProxyPrefs::MODE_SYSTEM:
|
||||
return ProxyConfigDictionary::CreateSystem();
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,96 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Wed, 12 Oct 2022 11:30:34 +0000
|
||||
Subject: WIN ADDTO Add bookmark import/export actions
|
||||
|
||||
---
|
||||
chrome/browser/about_flags.cc | 2 ++
|
||||
chrome/browser/bookmarks/bookmark_html_writer.cc | 7 ++++++-
|
||||
.../select_file_dialog/headless_select_file_dialog.cc | 4 ++++
|
||||
ui/shell_dialogs/select_file_dialog_win.cc | 5 +++++
|
||||
4 files changed, 17 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -9462,11 +9462,13 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(net::features::kIsCleartextPermitted)},
|
||||
#endif
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
{"export-bookmarks-use-saf",
|
||||
flag_descriptions::kBookmarksExportUseSafName,
|
||||
flag_descriptions::kBookmarksExportUseSafDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(
|
||||
chrome::android::kBookmarksExportUseSaf)},
|
||||
+#endif
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
{"video-conference", flag_descriptions::kVideoConferenceName,
|
||||
diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
--- a/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
+++ b/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
@@ -27,7 +27,9 @@
|
||||
#include "base/task/thread_pool.h"
|
||||
#include "base/time/time.h"
|
||||
#include "base/values.h"
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
#include "base/android/content_uri_utils.h"
|
||||
+#endif
|
||||
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
|
||||
#include "chrome/browser/favicon/favicon_service_factory.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
@@ -234,12 +236,15 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
// Opens the file, returning true on success.
|
||||
bool OpenFile() {
|
||||
int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE;
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
if (path_.IsContentUri()) {
|
||||
file_ = std::make_unique<base::File>(base::OpenContentUriForWrite(path_));
|
||||
} else {
|
||||
file_ = std::make_unique<base::File>(path_, flags);
|
||||
}
|
||||
-
|
||||
+#else
|
||||
+ file_ = std::make_unique<base::File>(path_, flags);
|
||||
+#endif
|
||||
if (!file_->IsValid()) {
|
||||
PLOG(ERROR) << "Could not create " << path_;
|
||||
return false;
|
||||
diff --git a/components/headless/select_file_dialog/headless_select_file_dialog.cc b/components/headless/select_file_dialog/headless_select_file_dialog.cc
|
||||
--- a/components/headless/select_file_dialog/headless_select_file_dialog.cc
|
||||
+++ b/components/headless/select_file_dialog/headless_select_file_dialog.cc
|
||||
@@ -58,6 +58,10 @@ class HeadlessSelectFileDialog : public ui::SelectFileDialog {
|
||||
// ui::SelectFileDialog:
|
||||
bool HasMultipleFileTypeChoicesImpl() override { return false; }
|
||||
|
||||
+ void ShowToast(const std::string& message) override {
|
||||
+ // nothing to do, used only on android
|
||||
+ }
|
||||
+
|
||||
SelectFileDialogCallback callback_;
|
||||
};
|
||||
|
||||
diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/select_file_dialog_win.cc
|
||||
--- a/ui/shell_dialogs/select_file_dialog_win.cc
|
||||
+++ b/ui/shell_dialogs/select_file_dialog_win.cc
|
||||
@@ -193,6 +193,7 @@ class SelectFileDialogImpl : public ui::SelectFileDialog,
|
||||
int index);
|
||||
|
||||
bool HasMultipleFileTypeChoicesImpl() override;
|
||||
+ void ShowToast(const std::string& message) override;
|
||||
|
||||
// Returns the filter to be used while displaying the open/save file dialog.
|
||||
// This is computed from the extensions for the file types being opened.
|
||||
@@ -271,6 +272,10 @@ bool SelectFileDialogImpl::HasMultipleFileTypeChoicesImpl() {
|
||||
return has_multiple_file_type_choices_;
|
||||
}
|
||||
|
||||
+void SelectFileDialogImpl::ShowToast(const std::string& message) {
|
||||
+ // nothing to do, used only on android
|
||||
+}
|
||||
+
|
||||
bool SelectFileDialogImpl::IsRunning(gfx::NativeWindow owning_window) const {
|
||||
if (!owning_window->GetRootWindow())
|
||||
return false;
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,29 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Wed, 12 Oct 2022 12:02:16 +0000
|
||||
Subject: WIN ADDTO Disable requests for single-word Omni
|
||||
|
||||
---
|
||||
chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc b/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc
|
||||
--- a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc
|
||||
+++ b/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc
|
||||
@@ -76,6 +76,7 @@ bool OnlyChangeIsFromHTTPToHTTPS(const GURL& origin, const GURL& destination) {
|
||||
return origin_with_https == destination;
|
||||
}
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
// Choose the appropriate URLLoaderFactory: either an explicitly specified or a
|
||||
// default for the given profile.
|
||||
network::mojom::URLLoaderFactory* GetURLLoaderFactory(
|
||||
@@ -87,6 +88,7 @@ network::mojom::URLLoaderFactory* GetURLLoaderFactory(
|
||||
->GetURLLoaderFactoryForBrowserProcess()
|
||||
.get();
|
||||
}
|
||||
+#endif
|
||||
|
||||
// Helper to keep ChromeOmniboxNavigationObserver alive while the initiated
|
||||
// navigation is pending.
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,45 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Wed, 12 Oct 2022 11:53:36 +0000
|
||||
Subject: WIN ADDTO Disable various metrics
|
||||
|
||||
---
|
||||
chrome/browser/ui/search/ntp_user_data_logger.cc | 4 ----
|
||||
components/ntp_tiles/custom_links_manager_impl.cc | 1 -
|
||||
2 files changed, 5 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/ui/search/ntp_user_data_logger.cc b/chrome/browser/ui/search/ntp_user_data_logger.cc
|
||||
--- a/chrome/browser/ui/search/ntp_user_data_logger.cc
|
||||
+++ b/chrome/browser/ui/search/ntp_user_data_logger.cc
|
||||
@@ -394,8 +394,6 @@ void NTPUserDataLogger::LogMostVisitedImpression(
|
||||
|
||||
void NTPUserDataLogger::LogMostVisitedNavigation(
|
||||
const ntp_tiles::NTPTileImpression& impression) {
|
||||
- ntp_tiles::metrics::RecordTileClick(impression);
|
||||
-
|
||||
// Records the action. This will be available as a time-stamped stream
|
||||
// server-side and can be used to compute time-to-long-dwell.
|
||||
base::RecordAction(base::UserMetricsAction("MostVisited_Clicked"));
|
||||
@@ -424,10 +422,8 @@ void NTPUserDataLogger::EmitNtpStatistics(base::TimeDelta load_time,
|
||||
if (!impression.has_value()) {
|
||||
break;
|
||||
}
|
||||
- ntp_tiles::metrics::RecordTileImpression(*impression);
|
||||
++tiles_count;
|
||||
}
|
||||
- ntp_tiles::metrics::RecordPageImpression(tiles_count);
|
||||
|
||||
DVLOG(1) << "Emitting NTP load time: " << load_time << ", "
|
||||
<< "number of tiles: " << tiles_count;
|
||||
diff --git a/components/ntp_tiles/custom_links_manager_impl.cc b/components/ntp_tiles/custom_links_manager_impl.cc
|
||||
--- a/components/ntp_tiles/custom_links_manager_impl.cc
|
||||
+++ b/components/ntp_tiles/custom_links_manager_impl.cc
|
||||
@@ -203,7 +203,6 @@ void CustomLinksManagerImpl::RemoveCustomLinksForPreinstalledApps() {
|
||||
}
|
||||
}
|
||||
if (default_app_links_deleted) {
|
||||
- metrics::RecordsMigratedDefaultAppDeleted(DeletedTileType::kCustomLink);
|
||||
prefs_->SetBoolean(prefs::kCustomLinksForPreinstalledAppsRemoved, true);
|
||||
}
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,23 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Wed, 12 Oct 2022 11:58:29 +0000
|
||||
Subject: WIN ADDTO Do not build API keys infobar
|
||||
|
||||
---
|
||||
chrome/browser/ui/startup/infobar_utils.cc | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/ui/startup/infobar_utils.cc b/chrome/browser/ui/startup/infobar_utils.cc
|
||||
--- a/chrome/browser/ui/startup/infobar_utils.cc
|
||||
+++ b/chrome/browser/ui/startup/infobar_utils.cc
|
||||
@@ -133,9 +133,6 @@ void AddInfoBarsIfNecessary(Browser* browser,
|
||||
infobars::ContentInfoBarManager* infobar_manager =
|
||||
infobars::ContentInfoBarManager::FromWebContents(web_contents);
|
||||
|
||||
- if (!google_apis::HasAPIKeyConfigured())
|
||||
- GoogleApiKeysInfoBarDelegate::Create(infobar_manager);
|
||||
-
|
||||
if (ObsoleteSystem::IsObsoleteNowOrSoon()) {
|
||||
PrefService* local_state = g_browser_process->local_state();
|
||||
if (!local_state ||
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,337 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Wed, 12 Oct 2022 09:19:46 +0000
|
||||
Subject: WIN ADDTO Experimental user scripts support
|
||||
|
||||
---
|
||||
chrome/browser/BUILD.gn | 12 +++++++-----
|
||||
chrome/browser/about_flags.cc | 2 ++
|
||||
chrome/browser/prefs/browser_prefs.cc | 2 ++
|
||||
chrome/browser/profiles/BUILD.gn | 4 +++-
|
||||
...chrome_browser_main_extra_parts_profiles.cc | 4 ++++
|
||||
chrome/browser/profiles/profile_manager.cc | 4 ++++
|
||||
chrome/browser/profiles/renderer_updater.cc | 11 ++++++++++-
|
||||
chrome/browser/profiles/renderer_updater.h | 2 ++
|
||||
.../webui/chrome_web_ui_controller_factory.cc | 2 ++
|
||||
chrome/renderer/BUILD.gn | 7 ++++++-
|
||||
.../renderer/chrome_content_renderer_client.cc | 18 ++++++++++++++++++
|
||||
.../renderer/chrome_render_thread_observer.cc | 2 ++
|
||||
12 files changed, 62 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -3517,11 +3517,13 @@ static_library("browser") {
|
||||
]
|
||||
deps += [ "//chrome/android/modules/dev_ui/provider:native" ]
|
||||
}
|
||||
- deps += [
|
||||
- "//components/user_scripts/common",
|
||||
- "//components/user_scripts/browser",
|
||||
- "//components/user_scripts/android",
|
||||
- ]
|
||||
+ if (is_android) {
|
||||
+ deps += [
|
||||
+ "//components/user_scripts/common",
|
||||
+ "//components/user_scripts/browser",
|
||||
+ "//components/user_scripts/android",
|
||||
+ ]
|
||||
+ }
|
||||
} else {
|
||||
#!is_android
|
||||
sources += [
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -8158,9 +8158,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(ash::features::kClipboardHistoryLongpress)},
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
{"enable-userscripts-log", flag_descriptions::kEnableLoggingUserScriptsName,
|
||||
flag_descriptions::kEnableLoggingUserScriptsDescription, kOsDesktop | kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(user_scripts::features::kEnableLoggingUserScripts)},
|
||||
+#endif
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
{"enable-media-foundation-video-capture",
|
||||
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
|
||||
--- a/chrome/browser/prefs/browser_prefs.cc
|
||||
+++ b/chrome/browser/prefs/browser_prefs.cc
|
||||
@@ -1634,7 +1634,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||
translate::TranslatePrefs::RegisterProfilePrefs(registry);
|
||||
omnibox::RegisterProfilePrefs(registry);
|
||||
ZeroSuggestProvider::RegisterProfilePrefs(registry);
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
user_scripts::UserScriptsPrefs::RegisterProfilePrefs(registry);
|
||||
+#endif
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
promos_utils::RegisterProfilePrefs(registry);
|
||||
diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn
|
||||
--- a/chrome/browser/profiles/BUILD.gn
|
||||
+++ b/chrome/browser/profiles/BUILD.gn
|
||||
@@ -57,10 +57,12 @@ source_set("profile") {
|
||||
"//components/profile_metrics",
|
||||
"//components/sync/service",
|
||||
"//components/variations",
|
||||
- "//components/user_scripts/browser",
|
||||
"//content/public/browser",
|
||||
"//extensions/buildflags",
|
||||
]
|
||||
+ if (is_android) {
|
||||
+ deps += [ "//components/user_scripts/browser" ]
|
||||
+ }
|
||||
if (enable_extensions) {
|
||||
deps += [ "//extensions/browser" ]
|
||||
}
|
||||
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
|
||||
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
|
||||
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
|
||||
@@ -469,7 +469,9 @@
|
||||
#include "chrome/browser/offline_pages/request_coordinator_factory.h"
|
||||
#endif
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
#include "components/user_scripts/browser/userscripts_browser_client.h"
|
||||
+#endif
|
||||
|
||||
namespace chrome {
|
||||
|
||||
@@ -1097,7 +1099,9 @@ void ChromeBrowserMainExtraPartsProfiles::
|
||||
#endif
|
||||
WebDataServiceFactory::GetInstance();
|
||||
webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance();
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
user_scripts::UserScriptsBrowserClient::GetInstance();
|
||||
+#endif
|
||||
}
|
||||
|
||||
void ChromeBrowserMainExtraPartsProfiles::PreProfileInit() {
|
||||
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
|
||||
--- a/chrome/browser/profiles/profile_manager.cc
|
||||
+++ b/chrome/browser/profiles/profile_manager.cc
|
||||
@@ -106,7 +106,9 @@
|
||||
#include "extensions/common/manifest.h"
|
||||
#endif
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
#include "components/user_scripts/browser/userscripts_browser_client.h"
|
||||
+#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_SESSION_SERVICE)
|
||||
#include "chrome/browser/sessions/app_session_service_factory.h"
|
||||
@@ -1491,11 +1493,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile,
|
||||
|
||||
#endif
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
user_scripts::UserScriptsBrowserClient* userscript_client =
|
||||
user_scripts::UserScriptsBrowserClient::GetInstance();
|
||||
if (userscript_client) {
|
||||
userscript_client->SetProfile(profile);
|
||||
}
|
||||
+#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
|
||||
// Initialization needs to happen after extension system initialization (for
|
||||
diff --git a/chrome/browser/profiles/renderer_updater.cc b/chrome/browser/profiles/renderer_updater.cc
|
||||
--- a/chrome/browser/profiles/renderer_updater.cc
|
||||
+++ b/chrome/browser/profiles/renderer_updater.cc
|
||||
@@ -78,7 +78,9 @@ RendererUpdater::RendererUpdater(Profile* profile)
|
||||
force_youtube_restrict_.Init(policy::policy_prefs::kForceYouTubeRestrict,
|
||||
pref_service);
|
||||
allowed_domains_for_apps_.Init(prefs::kAllowedDomainsForApps, pref_service);
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
activate_userscripts_.Init(user_scripts::prefs::kUserScriptsEnabled, pref_service);
|
||||
+#endif
|
||||
|
||||
pref_change_registrar_.Init(pref_service);
|
||||
pref_change_registrar_.Add(
|
||||
@@ -93,10 +95,12 @@ RendererUpdater::RendererUpdater(Profile* profile)
|
||||
prefs::kAllowedDomainsForApps,
|
||||
base::BindRepeating(&RendererUpdater::UpdateAllRenderers,
|
||||
base::Unretained(this)));
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
pref_change_registrar_.Add(
|
||||
user_scripts::prefs::kUserScriptsEnabled,
|
||||
base::BindRepeating(&RendererUpdater::UpdateAllRenderers,
|
||||
base::Unretained(this)));
|
||||
+#endif
|
||||
}
|
||||
|
||||
RendererUpdater::~RendererUpdater() {
|
||||
@@ -250,5 +254,10 @@ chrome::mojom::DynamicParamsPtr RendererUpdater::CreateRendererDynamicParams()
|
||||
#endif
|
||||
force_google_safesearch_.GetValue(), force_youtube_restrict_.GetValue(),
|
||||
allowed_domains_for_apps_.GetValue(),
|
||||
- activate_userscripts_.GetValue());
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+ activate_userscripts_.GetValue()
|
||||
+#else
|
||||
+ false
|
||||
+#endif
|
||||
+ );
|
||||
}
|
||||
diff --git a/chrome/browser/profiles/renderer_updater.h b/chrome/browser/profiles/renderer_updater.h
|
||||
--- a/chrome/browser/profiles/renderer_updater.h
|
||||
+++ b/chrome/browser/profiles/renderer_updater.h
|
||||
@@ -108,7 +108,9 @@ class RendererUpdater : public KeyedService,
|
||||
|
||||
// Prefs that we sync to the renderers.
|
||||
BooleanPrefMember force_google_safesearch_;
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
BooleanPrefMember activate_userscripts_;
|
||||
+#endif
|
||||
IntegerPrefMember force_youtube_restrict_;
|
||||
StringPrefMember allowed_domains_for_apps_;
|
||||
};
|
||||
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
|
||||
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
|
||||
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
|
||||
@@ -529,8 +529,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
|
||||
return &NewWebUI<UserActionsUI>;
|
||||
if (url.host_piece() == chrome::kChromeUIVersionHost)
|
||||
return &NewWebUI<VersionUI>;
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
if (url.host_piece() == user_scripts::kChromeUIUserScriptsHost)
|
||||
return &NewWebUI<user_scripts::UserScriptsUI>;
|
||||
+#endif
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
#if !BUILDFLAG(IS_CHROMEOS)
|
||||
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
|
||||
--- a/chrome/renderer/BUILD.gn
|
||||
+++ b/chrome/renderer/BUILD.gn
|
||||
@@ -154,7 +154,6 @@ static_library("renderer") {
|
||||
"//components/content_capture/common",
|
||||
"//components/content_capture/renderer",
|
||||
"//components/content_settings/common:mojom",
|
||||
- "//components/user_scripts/renderer",
|
||||
"//components/content_settings/renderer",
|
||||
"//components/continuous_search/renderer",
|
||||
"//components/dom_distiller/content/renderer",
|
||||
@@ -234,6 +233,12 @@ static_library("renderer") {
|
||||
"//v8",
|
||||
]
|
||||
|
||||
+ if (is_android) {
|
||||
+ deps += [
|
||||
+ "//components/user_scripts/renderer",
|
||||
+ ]
|
||||
+ }
|
||||
+
|
||||
data_deps = [ "//tools/v8_context_snapshot" ]
|
||||
|
||||
configs += [ "//build/config/compiler:wexit_time_destructors" ]
|
||||
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
|
||||
@@ -252,8 +252,10 @@
|
||||
#include "chrome/renderer/media/chrome_key_systems.h"
|
||||
#endif
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
#include "components/user_scripts/common/user_scripts_features.h"
|
||||
#include "components/user_scripts/renderer/user_scripts_renderer_client.h"
|
||||
+#endif
|
||||
|
||||
using autofill::AutofillAgent;
|
||||
using autofill::PasswordAutofillAgent;
|
||||
@@ -431,11 +433,13 @@ void ChromeContentRendererClient::RenderThreadStarted() {
|
||||
WebString::FromASCII(extensions::kExtensionScheme));
|
||||
#endif
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
user_scripts::UserScriptsRendererClient* userscript_client =
|
||||
user_scripts::UserScriptsRendererClient::GetInstance();
|
||||
if (userscript_client) {
|
||||
userscript_client->RenderThreadStarted(GetChromeObserver());
|
||||
}
|
||||
+#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_SPELLCHECK)
|
||||
if (!spellcheck_)
|
||||
@@ -605,12 +609,14 @@ void ChromeContentRendererClient::RenderFrameCreated(
|
||||
render_frame, registry);
|
||||
#endif
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
user_scripts::UserScriptsRendererClient* userscript_client =
|
||||
user_scripts::UserScriptsRendererClient::GetInstance();
|
||||
if (userscript_client) {
|
||||
userscript_client->RenderFrameCreated(
|
||||
render_frame, registry);
|
||||
}
|
||||
+#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_PPAPI)
|
||||
new PepperHelper(render_frame);
|
||||
@@ -1619,6 +1625,9 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart(
|
||||
ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentStart(
|
||||
render_frame);
|
||||
// |render_frame| might be dead by now.
|
||||
+#endif
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+#if BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
static_assert(false, "Compiler error: extensions cannot be enabled with user scripts");
|
||||
#endif
|
||||
user_scripts::UserScriptsRendererClient* userscript_client =
|
||||
@@ -1627,6 +1636,7 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart(
|
||||
userscript_client->RunScriptsAtDocumentStart(
|
||||
render_frame);
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
|
||||
@@ -1635,6 +1645,9 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
|
||||
ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentEnd(
|
||||
render_frame);
|
||||
// |render_frame| might be dead by now.
|
||||
+#endif
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+#if BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
static_assert(false, "Compiler error: extensions cannot be enabled with user scripts");
|
||||
#endif
|
||||
user_scripts::UserScriptsRendererClient* userscript_client =
|
||||
@@ -1643,6 +1656,7 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
|
||||
userscript_client->RunScriptsAtDocumentEnd(
|
||||
render_frame);
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
|
||||
@@ -1651,6 +1665,9 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
|
||||
ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentIdle(
|
||||
render_frame);
|
||||
// |render_frame| might be dead by now.
|
||||
+#endif
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+#if BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
static_assert(false, "Compiler error: extensions cannot be enabled with user scripts");
|
||||
#endif
|
||||
user_scripts::UserScriptsRendererClient* userscript_client =
|
||||
@@ -1659,6 +1676,7 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
|
||||
userscript_client->RunScriptsAtDocumentIdle(
|
||||
render_frame);
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
void ChromeContentRendererClient::
|
||||
diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/chrome_render_thread_observer.cc
|
||||
--- a/chrome/renderer/chrome_render_thread_observer.cc
|
||||
+++ b/chrome/renderer/chrome_render_thread_observer.cc
|
||||
@@ -219,7 +219,9 @@ void ChromeRenderThreadObserver::SetConfiguration(
|
||||
chrome::mojom::DynamicParamsPtr params) {
|
||||
base::AutoLock lock(dynamic_params_lock_);
|
||||
dynamic_params_ = std::move(params);
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
user_scripts::UserScriptsRendererClient::GetInstance()->ConfigurationUpdated();
|
||||
+#endif
|
||||
}
|
||||
|
||||
void ChromeRenderThreadObserver::OnRendererConfigurationAssociatedRequest(
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,81 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Thu, 13 Oct 2022 11:27:08 +0000
|
||||
Subject: WIN ADDTO Logcat crash reports UI
|
||||
|
||||
---
|
||||
chrome/browser/ui/webui/crashes_ui.cc | 12 +++++++++++-
|
||||
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/crashes_ui.cc
|
||||
--- a/chrome/browser/ui/webui/crashes_ui.cc
|
||||
+++ b/chrome/browser/ui/webui/crashes_ui.cc
|
||||
@@ -44,7 +44,9 @@
|
||||
#include "base/files/scoped_temp_dir.h"
|
||||
#include "base/task/task_traits.h"
|
||||
#include "base/task/thread_pool.h"
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
#include "base/android/path_utils.h"
|
||||
+#endif
|
||||
#include "net/base/filename_util.h"
|
||||
#include "third_party/zlib/google/zip.h"
|
||||
|
||||
@@ -146,6 +148,9 @@ CrashesDOMHandler::CrashesDOMHandler(content::WebContents* web_contents)
|
||||
: list_available_(false), first_load_(true),
|
||||
web_contents_(web_contents) {
|
||||
upload_list_ = CreateCrashUploadList();
|
||||
+#if !BUILDFLAG(IS_ANDROID)
|
||||
+ web_contents_ = nullptr;
|
||||
+#endif
|
||||
}
|
||||
|
||||
CrashesDOMHandler::~CrashesDOMHandler() {
|
||||
@@ -276,6 +281,7 @@ void CrashesDOMHandler::HandleRequestSingleCrashUpload(
|
||||
}
|
||||
|
||||
std::string CrashesDOMHandler::RequestSingleUpload(const std::string& local_id) const {
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
// get crash file path
|
||||
std::string info_file_path = upload_list_->GetFilePathByLocalId(local_id);
|
||||
if (info_file_path.empty()) {
|
||||
@@ -323,13 +329,14 @@ std::string CrashesDOMHandler::RequestSingleUpload(const std::string& local_id)
|
||||
if (result) {
|
||||
return zip_file_name.value();
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
LOG(ERROR) << "Crash report: cannot create zip content";
|
||||
return std::string();
|
||||
}
|
||||
|
||||
void CrashesDOMHandler::RequestSingleUploadCallback(const std::string& local_id,
|
||||
const std::string& file_name) {
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
if (!file_name.empty()) {
|
||||
upload_list_->RequestSingleUploadAsync(local_id);
|
||||
|
||||
@@ -337,6 +344,7 @@ void CrashesDOMHandler::RequestSingleUploadCallback(const std::string& local_id,
|
||||
web_contents_->GetController().LoadURL(
|
||||
net::FilePathToFileURL(file_path), {}, {}, {});
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
void CrashesDOMHandler::HandleRequestNewExtraction(
|
||||
@@ -361,6 +369,7 @@ void CrashesDOMHandler::HandleRequestClearAll(
|
||||
}
|
||||
|
||||
void CrashesDOMHandler::ClearAll() {
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
// get android crash report dir
|
||||
base::FilePath cache_dir;
|
||||
base::android::GetCacheDirectory(&cache_dir);
|
||||
@@ -374,6 +383,7 @@ void CrashesDOMHandler::ClearAll() {
|
||||
// remove all files, don't care for result
|
||||
base::DeleteFile(full_name);
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
} // namespace
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,25 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Wed, 12 Oct 2022 12:01:37 +0000
|
||||
Subject: WIN ADDTO Restore Search Ready Omnibox flag
|
||||
|
||||
---
|
||||
chrome/browser/about_flags.cc | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -9432,9 +9432,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kDesksTemplatesDescription, kOsCrOS,
|
||||
FEATURE_VALUE_TYPE(ash::features::kDesksTemplates)},
|
||||
#endif
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
{"enable-search-ready-omnibox", flag_descriptions::kSearchReadyOmniboxName,
|
||||
flag_descriptions::kSearchReadyOmniboxDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(chrome::android::kSearchReadyOmniboxFeature)},
|
||||
+#endif
|
||||
|
||||
{"large-favicon-from-google",
|
||||
flag_descriptions::kLargeFaviconFromGoogleName,
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,29 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Wed, 12 Oct 2022 11:59:30 +0000
|
||||
Subject: WIN ADDTO Revert flags: remove num-raster-thre
|
||||
|
||||
---
|
||||
chrome/browser/about_flags.cc | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -390,6 +390,7 @@ const FeatureEntry::Choice kOverlayStrategiesChoices[] = {
|
||||
"single-fullscreen,single-on-top,underlay"},
|
||||
};
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
const FeatureEntry::Choice kNumRasterThreadsChoices[] = {
|
||||
{flags_ui::kGenericExperimentChoiceDefault, "", ""},
|
||||
{flag_descriptions::kNumRasterThreadsOne, cc::switches::kNumRasterThreads, "1"},
|
||||
@@ -398,6 +399,7 @@ const FeatureEntry::Choice kNumRasterThreadsChoices[] = {
|
||||
"3"},
|
||||
{flag_descriptions::kNumRasterThreadsFour, cc::switches::kNumRasterThreads,
|
||||
"4"}};
|
||||
+#endif
|
||||
|
||||
const FeatureEntry::Choice kTouchTextSelectionStrategyChoices[] = {
|
||||
{flags_ui::kGenericExperimentChoiceDefault, "", ""},
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,26 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Wed, 12 Oct 2022 11:31:11 +0000
|
||||
Subject: WIN ADDTO openH264: enable ARM/ARM64 optimizati
|
||||
|
||||
---
|
||||
.../blink/renderer/modules/mediarecorder/h264_encoder.cc | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc b/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc
|
||||
--- a/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc
|
||||
+++ b/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc
|
||||
@@ -212,9 +212,9 @@ bool H264Encoder::ConfigureEncoder(const gfx::Size& size) {
|
||||
init_params.iRCMode = RC_OFF_MODE;
|
||||
}
|
||||
|
||||
-#if BUILDFLAG(OS_MACOSX)
|
||||
- // Threading model: Set to 1 due to https://crbug.com/583348.
|
||||
- init_params.iMultipleThreadIdc = 1;
|
||||
+#if BUILDFLAG(IS_MAC)
|
||||
+ // Threading model: Set to 1 due to https://crbug.com/583348.
|
||||
+ init_params.iMultipleThreadIdc = 1;
|
||||
#else
|
||||
init_params.iMultipleThreadIdc = 0;
|
||||
#endif
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,22 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Wed, 12 Oct 2022 10:04:39 +0000
|
||||
Subject: WIN ADDTO ungoogled-chr: Disable profile avatar
|
||||
|
||||
---
|
||||
chrome/browser/profiles/profile_attributes_storage.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/profiles/profile_attributes_storage.cc b/chrome/browser/profiles/profile_attributes_storage.cc
|
||||
--- a/chrome/browser/profiles/profile_attributes_storage.cc
|
||||
+++ b/chrome/browser/profiles/profile_attributes_storage.cc
|
||||
@@ -845,7 +845,7 @@ void ProfileAttributesStorage::DownloadHighResAvatarIfNeeded(
|
||||
void ProfileAttributesStorage::DownloadHighResAvatar(
|
||||
size_t icon_index,
|
||||
const base::FilePath& profile_path) {
|
||||
-#if !BUILDFLAG(IS_ANDROID)
|
||||
+#if false
|
||||
const char* file_name =
|
||||
profiles::GetDefaultAvatarIconFileNameAtIndex(icon_index);
|
||||
DCHECK(file_name);
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,25 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Tue, 14 Mar 2023 15:58:00 +0000
|
||||
Subject: WIN Disable TabHoverCard images
|
||||
|
||||
---
|
||||
chrome/browser/ui/ui_features.cc | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc
|
||||
--- a/chrome/browser/ui/ui_features.cc
|
||||
+++ b/chrome/browser/ui/ui_features.cc
|
||||
@@ -186,11 +186,7 @@ BASE_FEATURE(kTabHoverCardImageSettings,
|
||||
// https://crbug.com/928954
|
||||
BASE_FEATURE(kTabHoverCardImages,
|
||||
"TabHoverCardImages",
|
||||
-#if BUILDFLAG(IS_MAC)
|
||||
base::FEATURE_DISABLED_BY_DEFAULT
|
||||
-#else
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT
|
||||
-#endif
|
||||
);
|
||||
|
||||
const char kTabHoverCardImagesNotReadyDelayParameterName[] =
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,40 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Fri, 17 Feb 2023 16:23:20 +0000
|
||||
Subject: WIN Enable Network Service Sandbox and CIG
|
||||
|
||||
---
|
||||
chrome/browser/chrome_content_browser_client.cc | 2 +-
|
||||
sandbox/policy/features.cc | 6 +++++-
|
||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
|
||||
--- a/chrome/browser/chrome_content_browser_client.cc
|
||||
+++ b/chrome/browser/chrome_content_browser_client.cc
|
||||
@@ -766,7 +766,7 @@ BASE_FEATURE(kRendererCodeIntegrity,
|
||||
// https://blogs.windows.com/blog/tag/code-integrity-guard/.
|
||||
BASE_FEATURE(kNetworkServiceCodeIntegrity,
|
||||
"NetworkServiceCodeIntegrity",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
#endif // BUILDFLAG(IS_WIN) && !defined(COMPONENT_BUILD) &&
|
||||
// !defined(ADDRESS_SANITIZER)
|
||||
diff --git a/sandbox/policy/features.cc b/sandbox/policy/features.cc
|
||||
--- a/sandbox/policy/features.cc
|
||||
+++ b/sandbox/policy/features.cc
|
||||
@@ -14,8 +14,12 @@ namespace sandbox::policy::features {
|
||||
// Enables network service sandbox.
|
||||
// (Only causes an effect when feature kNetworkServiceInProcess is disabled.)
|
||||
BASE_FEATURE(kNetworkServiceSandbox,
|
||||
- "NetworkServiceSandbox",
|
||||
+ "NetworkServiceSandbox", // enabled only in windows
|
||||
+#if BUILDFLAG(IS_WIN)
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+#else
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+#endif
|
||||
|
||||
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
|
||||
// Enables a fine-grained seccomp-BPF syscall filter for the network service.
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,33 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Tue, 14 Feb 2023 16:32:30 +0000
|
||||
Subject: WIN enable file system access blocklist
|
||||
|
||||
---
|
||||
content/browser/file_system_access/features.cc | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/content/browser/file_system_access/features.cc b/content/browser/file_system_access/features.cc
|
||||
--- a/content/browser/file_system_access/features.cc
|
||||
+++ b/content/browser/file_system_access/features.cc
|
||||
@@ -15,7 +15,7 @@ namespace content::features {
|
||||
// some applications.
|
||||
BASE_FEATURE(kFileSystemAccessDragAndDropCheckBlocklist,
|
||||
"FileSystemAccessDragAndDropCheckBlocklist",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
// TODO(crbug.com/1381621): Remove this flag eventually.
|
||||
// When enabled, move() will result in a promise rejection when the specified
|
||||
@@ -51,8 +51,8 @@ BASE_FEATURE(kFileSystemAccessRemoveEntryExclusiveLock,
|
||||
// When enabled, a user gesture is required to rename a file if the site does
|
||||
// not have write access to the parent. See http://b/254157070 for more context.
|
||||
BASE_FEATURE(kFileSystemAccessRenameWithoutParentAccessRequiresUserActivation,
|
||||
- "FileSystemAccessRenameWithoutParentAccessRequiresUserActivation",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+ "FileSystemAccessRenameWithoutParentAccessRequiresUserActivation", // enabled by default
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT); // in bromite
|
||||
|
||||
// TODO(crbug.com/1247850): Remove this flag eventually.
|
||||
// When enabled, move operations within the same file system that do not change
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,72 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Sat, 15 Apr 2023 10:25:33 +0000
|
||||
Subject: WIN minimum data to enable install extensions
|
||||
|
||||
The amount of information sent is minimized without disabling
|
||||
the ability to install extensions (which is under user control)
|
||||
---
|
||||
chrome/browser/extensions/webstore_install_helper.cc | 2 +-
|
||||
chrome/browser/extensions/webstore_installer.cc | 2 +-
|
||||
.../update_client/chrome_update_query_params_delegate.cc | 8 ++++----
|
||||
components/update_client/update_query_params.cc | 5 ++---
|
||||
4 files changed, 8 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/browser/extensions/webstore_install_helper.cc
|
||||
--- a/chrome/browser/extensions/webstore_install_helper.cc
|
||||
+++ b/chrome/browser/extensions/webstore_install_helper.cc
|
||||
@@ -46,7 +46,7 @@ void WebstoreInstallHelper::Start(
|
||||
data_decoder::DataDecoder::ParseJsonIsolated(
|
||||
manifest_, base::BindOnce(&WebstoreInstallHelper::OnJSONParsed, this));
|
||||
|
||||
- if (icon_url_.is_empty()) {
|
||||
+ if ((true) || icon_url_.is_empty()) {
|
||||
icon_decode_complete_ = true;
|
||||
} else {
|
||||
// No existing |icon_fetcher_| to avoid unbalanced AddRef().
|
||||
diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc
|
||||
--- a/chrome/browser/extensions/webstore_installer.cc
|
||||
+++ b/chrome/browser/extensions/webstore_installer.cc
|
||||
@@ -624,7 +624,7 @@ void WebstoreInstaller::StartDownload(const std::string& extension_id,
|
||||
download_url_, render_process_host_id, render_frame_host->GetRoutingID(),
|
||||
traffic_annotation));
|
||||
params->set_file_path(file);
|
||||
- if (controller.GetVisibleEntry()) {
|
||||
+ if ((false) && controller.GetVisibleEntry()) {
|
||||
content::Referrer referrer = content::Referrer::SanitizeForRequest(
|
||||
download_url_,
|
||||
content::Referrer(controller.GetVisibleEntry()->GetURL(),
|
||||
diff --git a/chrome/browser/update_client/chrome_update_query_params_delegate.cc b/chrome/browser/update_client/chrome_update_query_params_delegate.cc
|
||||
--- a/chrome/browser/update_client/chrome_update_query_params_delegate.cc
|
||||
+++ b/chrome/browser/update_client/chrome_update_query_params_delegate.cc
|
||||
@@ -30,10 +30,10 @@ ChromeUpdateQueryParamsDelegate::GetInstance() {
|
||||
}
|
||||
|
||||
std::string ChromeUpdateQueryParamsDelegate::GetExtraParams() {
|
||||
- return base::StrCat({"&prodchannel=",
|
||||
- chrome::GetChannelName(chrome::WithExtendedStable(true)),
|
||||
- "&prodversion=", version_info::GetVersionNumber(),
|
||||
- "&lang=", GetLang()});
|
||||
+ return base::StrCat({
|
||||
+ "&prodversion=",
|
||||
+ version_info::GetMajorVersionNumber().c_str(),
|
||||
+ ".0.0.0"});
|
||||
}
|
||||
|
||||
// static
|
||||
diff --git a/components/update_client/update_query_params.cc b/components/update_client/update_query_params.cc
|
||||
--- a/components/update_client/update_query_params.cc
|
||||
+++ b/components/update_client/update_query_params.cc
|
||||
@@ -88,9 +88,8 @@ UpdateQueryParamsDelegate* g_delegate = nullptr;
|
||||
// static
|
||||
std::string UpdateQueryParams::Get(ProdId prod) {
|
||||
return base::StringPrintf(
|
||||
- "os=%s&arch=%s&os_arch=%s&nacl_arch=%s&prod=%s%s&acceptformat=crx3,puff",
|
||||
- kOs, kArch, base::SysInfo().OperatingSystemArchitecture().c_str(),
|
||||
- GetNaclArch(), GetProdIdString(prod),
|
||||
+ "prod=%s%s&acceptformat=crx3",
|
||||
+ GetProdIdString(prod),
|
||||
g_delegate ? g_delegate->GetExtraParams().c_str() : "");
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,36 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 1 May 2023 12:08:46 +0000
|
||||
Subject: v113 temp fix build
|
||||
|
||||
---
|
||||
android_webview/system_webview_bundle.gni | 4 ++++
|
||||
chrome/browser/safe_browsing/BUILD.gn | 1 +
|
||||
2 files changed, 5 insertions(+)
|
||||
|
||||
diff --git a/android_webview/system_webview_bundle.gni b/android_webview/system_webview_bundle.gni
|
||||
--- a/android_webview/system_webview_bundle.gni
|
||||
+++ b/android_webview/system_webview_bundle.gni
|
||||
@@ -84,6 +84,10 @@ template("system_webview_bundle") {
|
||||
custom_assertion_handler = crash_reporting_assertion_handler
|
||||
}
|
||||
}
|
||||
+ } else {
|
||||
+ not_needed(["_base_target_name", "_base_target_gen_dir",
|
||||
+ "_base_module_build_config", "_rebased_base_module_build_config",
|
||||
+ "_base_module_version_code"])
|
||||
}
|
||||
|
||||
android_app_bundle(target_name) {
|
||||
diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn
|
||||
--- a/chrome/browser/safe_browsing/BUILD.gn
|
||||
+++ b/chrome/browser/safe_browsing/BUILD.gn
|
||||
@@ -214,6 +214,7 @@ static_library("safe_browsing") {
|
||||
"//components/version_info",
|
||||
"//content/public/browser",
|
||||
"//services/preferences/public/mojom:mojom",
|
||||
+ "//third_party/flatbuffers:flatbuffers",
|
||||
]
|
||||
if (safe_browsing_mode == 1) {
|
||||
# "Safe Browsing Full" files in addition to the "basic" ones to use for
|
||||
--
|
||||
2.25.1
|
||||
@@ -20,87 +20,108 @@ See discussions at:
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
base/android/android_image_reader_compat.cc | 8 +++++++-
|
||||
base/android/android_image_reader_compat.h | 4 ++++
|
||||
chrome/browser/flag-metadata.json | 6 +++---
|
||||
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 | 5 +++++
|
||||
gpu/ipc/service/stream_texture_android.cc | 11 ++++++++++-
|
||||
media/base/media_switches.cc | 5 +++++
|
||||
media/base/media_switches.h | 1 +
|
||||
12 files changed, 66 insertions(+), 5 deletions(-)
|
||||
base/android/android_image_reader_compat.cc | 16 ++++++++++++++++
|
||||
base/android/android_image_reader_compat.h | 14 ++++++++++++++
|
||||
chrome/browser/flag-metadata.json | 6 +++---
|
||||
.../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 | 11 ++++++++++-
|
||||
12 files changed, 87 insertions(+), 4 deletions(-)
|
||||
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
|
||||
@@ -23,6 +23,8 @@
|
||||
@@ -7,7 +7,23 @@
|
||||
namespace base {
|
||||
namespace android {
|
||||
|
||||
+bool AndroidImageReader::disable_support_ = false;
|
||||
+AndroidImageReader& AndroidImageReader::GetInstance() {
|
||||
+ // C++11 static local variable initialization is
|
||||
+ // thread-safe.
|
||||
+ static AndroidImageReader instance;
|
||||
+ return instance;
|
||||
+}
|
||||
+
|
||||
AndroidImageReader& AndroidImageReader::GetInstance() {
|
||||
// C++11 static local variable initialization is
|
||||
// thread-safe.
|
||||
@@ -30,8 +32,12 @@ AndroidImageReader& AndroidImageReader::GetInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
+void AndroidImageReader::DisableSupport() {
|
||||
+ disable_support_ = true;
|
||||
+}
|
||||
+
|
||||
bool AndroidImageReader::IsSupported() {
|
||||
- return is_supported_;
|
||||
+ return !disable_support_ && is_supported_;
|
||||
}
|
||||
|
||||
AndroidImageReader::AndroidImageReader() : is_supported_(LoadFunctions()) {}
|
||||
+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
|
||||
@@ -24,6 +24,9 @@ class BASE_EXPORT AndroidImageReader {
|
||||
AndroidImageReader(const AndroidImageReader&) = delete;
|
||||
AndroidImageReader& operator=(const AndroidImageReader&) = delete;
|
||||
@@ -10,6 +10,20 @@
|
||||
namespace base {
|
||||
namespace android {
|
||||
|
||||
+ // Disable image reader support.
|
||||
+ static void DisableSupport();
|
||||
+class BASE_EXPORT AndroidImageReader {
|
||||
+ public:
|
||||
+ // Thread safe GetInstance.
|
||||
+ static AndroidImageReader& GetInstance();
|
||||
+
|
||||
// Check if the image reader usage is supported. This function returns TRUE
|
||||
// if android version is >=OREO, image reader support is not disabled and all
|
||||
// the required functions are loaded.
|
||||
@@ -61,6 +64,7 @@ class BASE_EXPORT AndroidImageReader {
|
||||
jobject ANativeWindow_toSurface(JNIEnv* env, ANativeWindow* window);
|
||||
+ 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();
|
||||
|
||||
private:
|
||||
+ static bool disable_support_;
|
||||
friend class base::NoDestructor<AndroidImageReader>;
|
||||
|
||||
AndroidImageReader();
|
||||
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
|
||||
@@ -2798,9 +2798,9 @@
|
||||
@@ -3046,9 +3046,9 @@
|
||||
"expiry_milestone": 125
|
||||
},
|
||||
{
|
||||
- "name": "enable-image-reader",
|
||||
- "owners": [ "vikassoni", "liberato" ],
|
||||
- "owners": [ "vikassoni@chromium.org", "liberato@chromium.org" ],
|
||||
- "expiry_milestone": 125
|
||||
+ "name": "enable-image-reader", // Bromite: do not expire
|
||||
+ "owners": [ "vikassoni", "liberato" ], // flag
|
||||
+ "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
|
||||
@@ -3698,6 +3698,22 @@
|
||||
@@ -2689,6 +2689,22 @@
|
||||
"no_downscaled_overlay_promotion"
|
||||
]
|
||||
},
|
||||
@@ -127,28 +148,28 @@ 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
|
||||
@@ -65,6 +65,11 @@ BASE_FEATURE(kUseGles2ForOopR,
|
||||
#endif
|
||||
);
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
+
|
||||
+// Use android AImageReader when playing videos with MediaPlayer.
|
||||
+const base::Feature kAImageReaderMediaPlayer{"AImageReaderMediaPlayer",
|
||||
+ base::FEATURE_ENABLED_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
|
||||
@@ -17,6 +17,7 @@ namespace features {
|
||||
GPU_EXPORT BASE_DECLARE_FEATURE(kUseGles2ForOopR);
|
||||
|
||||
@@ -24,6 +24,7 @@ GPU_EXPORT BASE_DECLARE_FEATURE(kUseGles2ForOopR);
|
||||
// All features in alphabetical order. The features should be documented
|
||||
+GPU_EXPORT extern const base::Feature kAImageReaderMediaPlayer;
|
||||
// alongside the definition of their values in the .cc file.
|
||||
#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(kAImageReader);
|
||||
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
|
||||
@@ -162,7 +183,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
|
||||
if (!gpu_preferences.enable_android_surface_control)
|
||||
return kGpuFeatureStatusDisabled;
|
||||
|
||||
@@ -351,6 +354,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
|
||||
@@ -368,6 +371,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
|
||||
gpu_feature_info->status_values[GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION] =
|
||||
kGpuFeatureStatusBlocklisted;
|
||||
}
|
||||
@@ -177,8 +198,8 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
|
||||
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
|
||||
@@ -15,6 +15,7 @@ decode_encode_srgb_for_generatemipmap
|
||||
depth_stencil_renderbuffer_resize_emulation
|
||||
@@ -11,6 +11,7 @@ clamp_texture_base_level_and_max_level
|
||||
clear_pixel_unpack_buffer_before_copyteximage
|
||||
disable_2d_canvas_auto_flush
|
||||
disable_accelerated_av1_decode
|
||||
+disable_aimagereader
|
||||
@@ -188,14 +209,24 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list
|
||||
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
|
||||
@@ -616,6 +616,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
|
||||
@@ -65,6 +65,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)
|
||||
@@ -662,6 +663,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::DisableSupport();
|
||||
+ base::android::AndroidImageReader::GetInstance().DisableSupport();
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
if (gpu_feature_info_.status_values[GPU_FEATURE_TYPE_VULKAN] !=
|
||||
kGpuFeatureStatusEnabled ||
|
||||
@@ -228,31 +259,4 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_
|
||||
? TextureOwner::Mode::kAImageReaderInsecure
|
||||
: TextureOwner::Mode::kSurfaceTextureInsecure;
|
||||
}
|
||||
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
||||
--- a/media/base/media_switches.cc
|
||||
+++ b/media/base/media_switches.cc
|
||||
@@ -946,6 +946,11 @@ BASE_FEATURE(kHardwareSecureDecryptionExperiment,
|
||||
// Allows automatically disabling hardware secure Content Decryption Module
|
||||
// (CDM) after failures or crashes to fallback to software secure CDMs. If this
|
||||
// feature is disabled, the fallback will never happen and users could be stuck
|
||||
+// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
|
||||
+BASE_FEATURE(kAImageReaderVideoOutput,
|
||||
+ "AImageReaderVideoOutput",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+
|
||||
// in playback failures.
|
||||
BASE_FEATURE(kHardwareSecureDecryptionFallback,
|
||||
"HardwareSecureDecryptionFallback",
|
||||
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
|
||||
--- a/media/base/media_switches.h
|
||||
+++ b/media/base/media_switches.h
|
||||
@@ -327,6 +327,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVideoBlitColorAccuracy);
|
||||
MEDIA_EXPORT BASE_DECLARE_FEATURE(kVideoToolboxVideoDecoder);
|
||||
#endif // BUILDFLAG(IS_APPLE)
|
||||
MEDIA_EXPORT BASE_DECLARE_FEATURE(kWebRTCColorAccuracy);
|
||||
+MEDIA_EXPORT BASE_DECLARE_FEATURE(kAImageReaderVideoOutput);
|
||||
MEDIA_EXPORT BASE_DECLARE_FEATURE(kVp9kSVCHWDecoding);
|
||||
MEDIA_EXPORT BASE_DECLARE_FEATURE(kWebContentsCaptureHiDpi);
|
||||
MEDIA_EXPORT BASE_DECLARE_FEATURE(kWebrtcMediaCapabilitiesParameters);
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -5,20 +5,22 @@ Subject: Add AllowUserCertificates flag
|
||||
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
|
||||
---
|
||||
.../src/org/chromium/chrome/browser/app/ChromeActivity.java | 3 +++
|
||||
chrome/browser/about_flags.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.cc | 5 +++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
chrome/browser/flags/android/chrome_feature_list.cc | 5 +++++
|
||||
chrome/browser/flags/android/chrome_feature_list.h | 1 +
|
||||
.../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 4 ++++
|
||||
net/android/java/src/org/chromium/net/X509Util.java | 5 +++++
|
||||
8 files changed, 30 insertions(+)
|
||||
.../chromium/chrome/browser/app/ChromeActivity.java | 3 +++
|
||||
chrome/browser/flags/android/chrome_feature_list.cc | 1 +
|
||||
.../chrome/browser/flags/ChromeFeatureList.java | 4 ++++
|
||||
.../Add-AllowUserCertificates-flag.inc | 13 +++++++++++++
|
||||
.../Add-AllowUserCertificates-flag.inc | 3 +++
|
||||
.../Add-AllowUserCertificates-flag.inc | 1 +
|
||||
net/android/java/src/org/chromium/net/X509Util.java | 5 +++++
|
||||
7 files changed, 30 insertions(+)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc
|
||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Add-AllowUserCertificates-flag.inc
|
||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Add-AllowUserCertificates-flag.inc
|
||||
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -231,6 +231,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
|
||||
@@ -230,6 +230,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
|
||||
import org.chromium.content_public.browser.SelectionPopupController;
|
||||
import org.chromium.content_public.browser.WebContents;
|
||||
import org.chromium.content_public.common.ContentSwitches;
|
||||
@@ -26,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.PrintingController;
|
||||
import org.chromium.printing.PrintingControllerImpl;
|
||||
@@ -973,6 +974,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -1064,6 +1065,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
super.onStartWithNative();
|
||||
ChromeActivitySessionTracker.getInstance().onStartWithNative();
|
||||
ChromeCachedFlags.getInstance().cacheNativeFlags();
|
||||
@@ -35,130 +37,97 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
||||
|
||||
// postDeferredStartupIfNeeded() is called in TabModelSelectorTabObsever#onLoadStopped(),
|
||||
// #onPageLoadFinished() and #onCrash(). If we are not actively loading a tab (e.g.
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -9180,6 +9180,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kHttpsUpgradesDescription, kOsDesktop | kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(features::kHttpsUpgrades)},
|
||||
|
||||
+ {"allow-user-certificates",
|
||||
+ flag_descriptions::kAllowUserCertificatesName,
|
||||
+ flag_descriptions::kAllowUserCertificatesDescription, kOsAndroid,
|
||||
+ FEATURE_VALUE_TYPE(chrome::android::kAllowUserCertificates)},
|
||||
{"omnibox-updated-connection-security-indicators",
|
||||
flag_descriptions::kOmniboxUpdatedConnectionSecurityIndicatorsName,
|
||||
flag_descriptions::kOmniboxUpdatedConnectionSecurityIndicatorsDescription,
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -16,6 +16,11 @@
|
||||
|
||||
namespace flag_descriptions {
|
||||
|
||||
+const char kAllowUserCertificatesName[] = "Allow user certificates";
|
||||
+const char kAllowUserCertificatesDescription[] =
|
||||
+ "Allow user CA certificates during "
|
||||
+ "validation of the certificate chain";
|
||||
+
|
||||
const char kAccelerated2dCanvasName[] = "Accelerated 2D canvas";
|
||||
const char kAccelerated2dCanvasDescription[] =
|
||||
"Enables the use of the GPU to perform 2d canvas rendering instead of "
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -42,6 +42,9 @@ namespace flag_descriptions {
|
||||
|
||||
// Cross-platform -------------------------------------------------------------
|
||||
|
||||
+extern const char kAllowUserCertificatesName[];
|
||||
+extern const char kAllowUserCertificatesDescription[];
|
||||
+
|
||||
extern const char kAccelerated2dCanvasName[];
|
||||
extern const char kAccelerated2dCanvasDescription[];
|
||||
|
||||
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
|
||||
@@ -142,6 +142,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&feed::kFeedBoCSigninInterstitial,
|
||||
@@ -136,6 +136,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&feed::kFeedShowSignInCommand,
|
||||
&feed::kFeedSignedOutViewDemotion,
|
||||
&feed::kFeedUserInteractionReliabilityReport,
|
||||
&feed::kInterestFeedContentSuggestions,
|
||||
+ &kAllowUserCertificates,
|
||||
&feed::kInterestFeedV2,
|
||||
&feed::kInterestFeedV2Autoplay,
|
||||
&feed::kInterestFeedV2Hearts,
|
||||
@@ -458,6 +459,10 @@ BASE_FEATURE(kSearchReadyOmniboxFeature,
|
||||
"SearchReadyOmnibox",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
+BASE_FEATURE(kAllowUserCertificates,
|
||||
+ "AllowUserCertificates",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+
|
||||
BASE_FEATURE(kFocusOmniboxInIncognitoTabIntents,
|
||||
"FocusOmniboxInIncognitoTabIntents",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.h
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.h
|
||||
@@ -20,6 +20,7 @@ BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbarCustomizationV2);
|
||||
BASE_DECLARE_FEATURE(kAddToHomescreenIPH);
|
||||
BASE_DECLARE_FEATURE(kAllowNewIncognitoTabIntents);
|
||||
BASE_DECLARE_FEATURE(kAndroidAppIntegration);
|
||||
+BASE_DECLARE_FEATURE(kAllowUserCertificates);
|
||||
BASE_DECLARE_FEATURE(kAndroidAppIntegrationSafeSearch);
|
||||
BASE_DECLARE_FEATURE(kAndroidSearchEngineChoiceNotification);
|
||||
BASE_DECLARE_FEATURE(kAndroidImprovedBookmarks);
|
||||
&feed::kWebFeed,
|
||||
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
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
@@ -98,6 +98,7 @@ public abstract class ChromeFeatureList {
|
||||
@@ -141,6 +141,7 @@ public abstract class ChromeFeatureList {
|
||||
return ChromeFeatureMap.getInstance().mutableFlagWithSafeDefault(featureName, defaultValue);
|
||||
}
|
||||
|
||||
/* Alphabetical: */
|
||||
+ public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates";
|
||||
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar";
|
||||
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE =
|
||||
"AdaptiveButtonInTopToolbarTranslate";
|
||||
@@ -499,6 +500,8 @@ public abstract class ChromeFeatureList {
|
||||
public static final String XSURFACE_METRICS_REPORTING = "XsurfaceMetricsReporting";
|
||||
|
||||
/* Alphabetical: */
|
||||
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_ADD_TO_BOOKMARKS =
|
||||
@@ -533,6 +534,8 @@ public abstract class ChromeFeatureList {
|
||||
public static final CachedFlag sAndroidHub = newCachedFlag(ANDROID_HUB, false);
|
||||
public static final CachedFlag sAndroidTabGroupStableIds =
|
||||
newCachedFlag(ANDROID_TAB_GROUP_STABLE_IDS, false);
|
||||
+ public static final CachedFlag sAllowUserCertificates =
|
||||
+ new CachedFlag(ALLOW_USER_CERTIFICATES, false);
|
||||
public static final CachedFlag sAppMenuMobileSiteOption =
|
||||
new CachedFlag(APP_MENU_MOBILE_SITE_OPTION, false);
|
||||
+ newCachedFlag(ALLOW_USER_CERTIFICATES, false);
|
||||
public static final CachedFlag sArchiveTabService = newCachedFlag(ARCHIVE_TAB_SERVICE, false);
|
||||
public static final CachedFlag sBackGestureActivityTabProvider =
|
||||
@@ -622,6 +625,7 @@ public abstract class ChromeFeatureList {
|
||||
newCachedFlag(BACK_GESTURE_ACTIVITY_TAB_PROVIDER, false);
|
||||
@@ -679,6 +682,7 @@ public abstract class ChromeFeatureList {
|
||||
|
||||
public static final List<CachedFlag> sFlagsCachedFullBrowser = List.of(
|
||||
// clang-format off
|
||||
+ sAllowUserCertificates,
|
||||
sAppMenuMobileSiteOption,
|
||||
sBackGestureActivityTabProvider,
|
||||
sBackGestureRefactorActivityAndroid,
|
||||
public static final List<CachedFlag> sFlagsCachedFullBrowser =
|
||||
List.of(
|
||||
+ sAllowUserCertificates,
|
||||
sAndroidAppIntegration,
|
||||
sAndroidElegantTextHeight,
|
||||
sAndroidHub,
|
||||
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
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc
|
||||
@@ -0,0 +1,13 @@
|
||||
+#ifdef FLAG_SECTION
|
||||
+
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+
|
||||
+ {"allow-user-certificates",
|
||||
+ "Allow user certificates",
|
||||
+ "Allow user CA certificates during "
|
||||
+ "validation of the certificate chain", kOsAndroid,
|
||||
+ FEATURE_VALUE_TYPE(chrome::android::kAllowUserCertificates)},
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#endif
|
||||
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Add-AllowUserCertificates-flag.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Add-AllowUserCertificates-flag.inc
|
||||
@@ -0,0 +1,3 @@
|
||||
+CROMITE_FEATURE(kAllowUserCertificates,
|
||||
+ "AllowUserCertificates",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Add-AllowUserCertificates-flag.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Add-AllowUserCertificates-flag.inc
|
||||
@@ -0,0 +1 @@
|
||||
+BASE_DECLARE_FEATURE(kAllowUserCertificates);
|
||||
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
|
||||
+++ b/net/android/java/src/org/chromium/net/X509Util.java
|
||||
@@ -545,6 +545,8 @@ public class X509Util {
|
||||
@@ -525,6 +525,8 @@ public class X509Util {
|
||||
return userRootBytes.toArray(new byte[0][]);
|
||||
}
|
||||
|
||||
+ public static boolean AllowUserCertificates = false;
|
||||
+
|
||||
public static AndroidCertVerifyResult verifyServerCertificates(byte[][] certChain,
|
||||
String authType,
|
||||
String host)
|
||||
@@ -631,6 +633,9 @@ public class X509Util {
|
||||
public static AndroidCertVerifyResult verifyServerCertificates(
|
||||
byte[][] certChain, String authType, String host)
|
||||
throws KeyStoreException, NoSuchAlgorithmException {
|
||||
@@ -613,6 +615,9 @@ public class X509Util {
|
||||
isIssuedByKnownRoot = isKnownRoot(root);
|
||||
}
|
||||
|
||||
+ if (AllowUserCertificates == false && isIssuedByKnownRoot == false)
|
||||
+ return new AndroidCertVerifyResult(CertVerifyStatusAndroid.NO_TRUSTED_ROOT);
|
||||
+
|
||||
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.OK,
|
||||
isIssuedByKnownRoot, verifiedChain);
|
||||
return new AndroidCertVerifyResult(
|
||||
CertVerifyStatusAndroid.OK, isIssuedByKnownRoot, verifiedChain);
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -10,14 +10,13 @@ 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/KeyboardShortcuts.java b/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
|
||||
@@ -151,6 +151,8 @@ public class KeyboardShortcuts {
|
||||
KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON);
|
||||
addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
|
||||
KeyEvent.KEYCODE_L, KeyEvent.META_CTRL_ON);
|
||||
@@ -204,6 +204,8 @@ public class KeyboardShortcuts {
|
||||
R.string.keyboard_shortcut_address_bar,
|
||||
KeyEvent.KEYCODE_L,
|
||||
KeyEvent.META_CTRL_ON);
|
||||
+ addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
|
||||
+ KeyEvent.KEYCODE_D, KeyEvent.META_ALT_ON);
|
||||
shortcutGroups.add(chromeFeatureShortcutGroup);
|
||||
|
||||
KeyboardShortcutGroup webpageShortcutGroup = new KeyboardShortcutGroup(
|
||||
KeyboardShortcutGroup webpageShortcutGroup =
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -1,859 +0,0 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 12 Oct 2017 11:06:18 +0200
|
||||
Subject: Add DuckDuckGo Lite search engine
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../search_engines/prepopulated_engines.json | 10 +
|
||||
.../search_engines/search_engine_type.h | 1 +
|
||||
.../template_url_prepopulate_data.cc | 184 +++++++++---------
|
||||
3 files changed, 103 insertions(+), 92 deletions(-)
|
||||
|
||||
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
|
||||
@@ -102,6 +102,16 @@
|
||||
"id": 92
|
||||
},
|
||||
|
||||
+ "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
|
||||
+ },
|
||||
+
|
||||
"ecosia": {
|
||||
"name": "Ecosia",
|
||||
"keyword": "ecosia.org",
|
||||
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
|
||||
+++ b/components/search_engines/search_engine_type.h
|
||||
@@ -79,6 +79,7 @@ enum SearchEngineType {
|
||||
SEARCH_ENGINE_STARTER_PACK_HISTORY = 62,
|
||||
SEARCH_ENGINE_STARTER_PACK_TABS = 63,
|
||||
SEARCH_ENGINE_GOOGLE_EN = 64,
|
||||
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 65,
|
||||
|
||||
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
|
||||
};
|
||||
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
|
||||
+++ b/components/search_engines/template_url_prepopulate_data.cc
|
||||
@@ -42,7 +42,7 @@ const PrepopulatedEngine* const engines_AE[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -60,7 +60,7 @@ const PrepopulatedEngine* const engines_AR[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_ar,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -68,7 +68,7 @@ const PrepopulatedEngine* const engines_AR[] = {
|
||||
const PrepopulatedEngine* const engines_AT[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
- &yahoo_at,
|
||||
+ &yahoo_at, &duckduckgo_light,
|
||||
&duckduckgo,
|
||||
&ecosia,
|
||||
};
|
||||
@@ -78,7 +78,7 @@ const PrepopulatedEngine* const engines_AU[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_au,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -87,7 +87,7 @@ const PrepopulatedEngine* const engines_BA[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -97,7 +97,7 @@ const PrepopulatedEngine* const engines_BE[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&ecosia,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Bulgaria
|
||||
@@ -105,7 +105,7 @@ const PrepopulatedEngine* const engines_BG[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -114,7 +114,7 @@ const PrepopulatedEngine* const engines_BH[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -123,7 +123,7 @@ const PrepopulatedEngine* const engines_BI[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -132,7 +132,7 @@ const PrepopulatedEngine* const engines_BN[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -141,7 +141,7 @@ const PrepopulatedEngine* const engines_BO[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -150,7 +150,7 @@ const PrepopulatedEngine* const engines_BR[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_br,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -160,7 +160,7 @@ const PrepopulatedEngine* const engines_BY[] = {
|
||||
&yandex_by,
|
||||
&mail_ru,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Belize
|
||||
@@ -177,7 +177,7 @@ const PrepopulatedEngine* const engines_CA[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_ca,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -185,7 +185,7 @@ const PrepopulatedEngine* const engines_CA[] = {
|
||||
const PrepopulatedEngine* const engines_CH[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yahoo_ch,
|
||||
&ecosia,
|
||||
};
|
||||
@@ -195,7 +195,7 @@ const PrepopulatedEngine* const engines_CL[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_cl,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -214,7 +214,7 @@ const PrepopulatedEngine* const engines_CO[] = {
|
||||
&bing,
|
||||
&yahoo_co,
|
||||
&duckduckgo,
|
||||
- &ecosia,
|
||||
+ &ecosia, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Costa Rica
|
||||
@@ -222,7 +222,7 @@ const PrepopulatedEngine* const engines_CR[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -232,7 +232,7 @@ const PrepopulatedEngine* const engines_CZ[] = {
|
||||
&seznam_cz,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Germany
|
||||
@@ -240,7 +240,7 @@ const PrepopulatedEngine* const engines_DE[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_de,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -249,7 +249,7 @@ const PrepopulatedEngine* const engines_DK[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_dk,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -258,7 +258,7 @@ const PrepopulatedEngine* const engines_DO[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -268,7 +268,7 @@ const PrepopulatedEngine* const engines_DZ[] = {
|
||||
&bing,
|
||||
&yahoo_fr,
|
||||
&yandex_com,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Ecuador
|
||||
@@ -295,7 +295,7 @@ const PrepopulatedEngine* const engines_EG[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&yandex_com,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Spain
|
||||
@@ -303,7 +303,7 @@ const PrepopulatedEngine* const engines_ES[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_es,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -312,7 +312,7 @@ const PrepopulatedEngine* const engines_FI[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_fi,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -339,7 +339,7 @@ const PrepopulatedEngine* const engines_GB[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_uk,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -348,7 +348,7 @@ const PrepopulatedEngine* const engines_GR[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -357,7 +357,7 @@ const PrepopulatedEngine* const engines_GT[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -367,7 +367,7 @@ const PrepopulatedEngine* const engines_HK[] = {
|
||||
&bing,
|
||||
&yahoo_hk,
|
||||
&baidu,
|
||||
- &so_360,
|
||||
+ &so_360, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Honduras
|
||||
@@ -375,7 +375,7 @@ const PrepopulatedEngine* const engines_HN[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -393,7 +393,7 @@ const PrepopulatedEngine* const engines_HU[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -402,7 +402,7 @@ const PrepopulatedEngine* const engines_ID[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_id,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -411,7 +411,7 @@ const PrepopulatedEngine* const engines_IE[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_uk,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -421,7 +421,7 @@ const PrepopulatedEngine* const engines_IL[] = {
|
||||
&bing,
|
||||
&yandex_ru,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// India
|
||||
@@ -429,7 +429,7 @@ const PrepopulatedEngine* const engines_IN[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_in,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&info_com,
|
||||
};
|
||||
|
||||
@@ -439,7 +439,7 @@ const PrepopulatedEngine* const engines_IQ[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&yandex_tr,
|
||||
- &petal_search,
|
||||
+ &petal_search, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Iran
|
||||
@@ -448,14 +448,14 @@ const PrepopulatedEngine* const engines_IR[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&duckduckgo,
|
||||
- &ask,
|
||||
+ &ask, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Iceland
|
||||
const PrepopulatedEngine* const engines_IS[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yahoo,
|
||||
&ecosia,
|
||||
};
|
||||
@@ -465,7 +465,7 @@ const PrepopulatedEngine* const engines_IT[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -474,7 +474,7 @@ const PrepopulatedEngine* const engines_JM[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -492,7 +492,7 @@ const PrepopulatedEngine* const engines_JP[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_jp,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&baidu,
|
||||
};
|
||||
|
||||
@@ -501,7 +501,7 @@ const PrepopulatedEngine* const engines_KE[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -529,7 +529,7 @@ const PrepopulatedEngine* const engines_KZ[] = {
|
||||
&yandex_kz,
|
||||
&mail_ru,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Lebanon
|
||||
@@ -537,7 +537,7 @@ const PrepopulatedEngine* const engines_LB[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -545,7 +545,7 @@ const PrepopulatedEngine* const engines_LB[] = {
|
||||
const PrepopulatedEngine* const engines_LI[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yahoo,
|
||||
&ecosia,
|
||||
};
|
||||
@@ -555,7 +555,7 @@ const PrepopulatedEngine* const engines_LT[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yandex_ru,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yahoo,
|
||||
};
|
||||
|
||||
@@ -563,7 +563,7 @@ const PrepopulatedEngine* const engines_LT[] = {
|
||||
const PrepopulatedEngine* const engines_LU[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yahoo,
|
||||
&ecosia,
|
||||
};
|
||||
@@ -574,7 +574,7 @@ const PrepopulatedEngine* const engines_LV[] = {
|
||||
&bing,
|
||||
&yandex_ru,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Libya
|
||||
@@ -583,7 +583,7 @@ const PrepopulatedEngine* const engines_LY[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&yandex_tr,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Morocco
|
||||
@@ -592,14 +592,14 @@ const PrepopulatedEngine* const engines_MA[] = {
|
||||
&bing,
|
||||
&yahoo_fr,
|
||||
&yandex_com,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Monaco
|
||||
const PrepopulatedEngine* const engines_MC[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
- &yahoo_fr,
|
||||
+ &yahoo_fr, &duckduckgo_light,
|
||||
&duckduckgo,
|
||||
&qwant,
|
||||
};
|
||||
@@ -619,7 +619,7 @@ const PrepopulatedEngine* const engines_ME[] = {
|
||||
&bing,
|
||||
&yandex_ru,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Macedonia
|
||||
@@ -627,7 +627,7 @@ const PrepopulatedEngine* const engines_MK[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -636,7 +636,7 @@ const PrepopulatedEngine* const engines_MX[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_mx,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -645,7 +645,7 @@ const PrepopulatedEngine* const engines_MY[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_my,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -654,7 +654,7 @@ const PrepopulatedEngine* const engines_NI[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -663,7 +663,7 @@ const PrepopulatedEngine* const engines_NL[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_nl,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -672,7 +672,7 @@ const PrepopulatedEngine* const engines_NO[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -681,7 +681,7 @@ const PrepopulatedEngine* const engines_NZ[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_nz,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -699,7 +699,7 @@ const PrepopulatedEngine* const engines_PA[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_es,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -709,7 +709,7 @@ const PrepopulatedEngine* const engines_PE[] = {
|
||||
&bing,
|
||||
&yahoo_pe,
|
||||
&ecosia,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Philippines
|
||||
@@ -718,7 +718,7 @@ const PrepopulatedEngine* const engines_PH[] = {
|
||||
&bing,
|
||||
&yahoo_ph,
|
||||
&ecosia,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Pakistan
|
||||
@@ -726,7 +726,7 @@ const PrepopulatedEngine* const engines_PK[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -735,7 +735,7 @@ const PrepopulatedEngine* const engines_PL[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -744,7 +744,7 @@ const PrepopulatedEngine* const engines_PR[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -753,7 +753,7 @@ const PrepopulatedEngine* const engines_PT[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -762,7 +762,7 @@ const PrepopulatedEngine* const engines_PY[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_es,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -771,7 +771,7 @@ const PrepopulatedEngine* const engines_QA[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_tr,
|
||||
};
|
||||
|
||||
@@ -780,7 +780,7 @@ const PrepopulatedEngine* const engines_RO[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_tr,
|
||||
};
|
||||
|
||||
@@ -789,7 +789,7 @@ const PrepopulatedEngine* const engines_RS[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -799,7 +799,7 @@ const PrepopulatedEngine* const engines_RU[] = {
|
||||
&google,
|
||||
&duckduckgo,
|
||||
&bing,
|
||||
- &mail_ru,
|
||||
+ &mail_ru, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Rwanda
|
||||
@@ -807,7 +807,7 @@ const PrepopulatedEngine* const engines_RW[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -817,7 +817,7 @@ const PrepopulatedEngine* const engines_SA[] = {
|
||||
&bing,
|
||||
&yahoo,
|
||||
&yandex_com,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Sweden
|
||||
@@ -825,7 +825,7 @@ const PrepopulatedEngine* const engines_SE[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_se,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_ru,
|
||||
};
|
||||
|
||||
@@ -834,7 +834,7 @@ const PrepopulatedEngine* const engines_SG[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_sg,
|
||||
- &baidu,
|
||||
+ &baidu, &duckduckgo_light,
|
||||
&duckduckgo,
|
||||
};
|
||||
|
||||
@@ -842,7 +842,7 @@ const PrepopulatedEngine* const engines_SG[] = {
|
||||
const PrepopulatedEngine* const engines_SI[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yahoo,
|
||||
&yandex_com,
|
||||
};
|
||||
@@ -851,7 +851,7 @@ const PrepopulatedEngine* const engines_SI[] = {
|
||||
const PrepopulatedEngine* const engines_SK[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yahoo,
|
||||
&yandex_ru,
|
||||
};
|
||||
@@ -861,7 +861,7 @@ const PrepopulatedEngine* const engines_SV[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_es,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -871,7 +871,7 @@ const PrepopulatedEngine* const engines_SY[] = {
|
||||
&bing,
|
||||
&yandex_ru,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Thailand
|
||||
@@ -888,7 +888,7 @@ const PrepopulatedEngine* const engines_TN[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_fr,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -898,7 +898,7 @@ const PrepopulatedEngine* const engines_TR[] = {
|
||||
&yandex_tr,
|
||||
&yahoo_tr,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Trinidad and Tobago
|
||||
@@ -906,7 +906,7 @@ const PrepopulatedEngine* const engines_TT[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yandex_com,
|
||||
};
|
||||
|
||||
@@ -915,8 +915,8 @@ const PrepopulatedEngine* const engines_TW[] = {
|
||||
&googleen, &google,
|
||||
&yahoo_tw,
|
||||
&bing,
|
||||
- &baidu,
|
||||
- &duckduckgo,
|
||||
+ &baidu, &duckduckgo_light,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Tanzania
|
||||
@@ -924,7 +924,7 @@ const PrepopulatedEngine* const engines_TZ[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -942,7 +942,7 @@ const PrepopulatedEngine* const engines_US[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -951,7 +951,7 @@ const PrepopulatedEngine* const engines_UY[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo_es,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -978,8 +978,8 @@ const PrepopulatedEngine* const engines_YE[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
- &yandex_com,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
+ &yandex_com, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// South Africa
|
||||
@@ -987,7 +987,7 @@ const PrepopulatedEngine* const engines_ZA[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
@@ -996,7 +996,7 @@ const PrepopulatedEngine* const engines_ZW[] = {
|
||||
&googleen, &google,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&ecosia,
|
||||
};
|
||||
|
||||
--
|
||||
2.25.1
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,94 +5,55 @@ Subject: Add IsCleartextPermitted flag
|
||||
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/browser/about_flags.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
net/base/features.cc | 4 ++++
|
||||
net/base/features.h | 2 ++
|
||||
net/url_request/url_request_http_job.cc | 4 ++++
|
||||
6 files changed, 21 insertions(+)
|
||||
.../about_flags_cc/Add-IsCleartextPermitted-flag.inc | 8 ++++++++
|
||||
.../base/features_cc/Add-IsCleartextPermitted-flag.inc | 3 +++
|
||||
.../net/base/features_h/Add-IsCleartextPermitted-flag.inc | 1 +
|
||||
net/url_request/url_request_http_job.cc | 5 +++++
|
||||
4 files changed, 17 insertions(+)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-IsCleartextPermitted-flag.inc
|
||||
create mode 100644 cromite_flags/net/base/features_cc/Add-IsCleartextPermitted-flag.inc
|
||||
create mode 100644 cromite_flags/net/base/features_h/Add-IsCleartextPermitted-flag.inc
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -9391,6 +9391,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kRequestDesktopSiteExceptionsName,
|
||||
flag_descriptions::kRequestDesktopSiteExceptionsDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)},
|
||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-IsCleartextPermitted-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-IsCleartextPermitted-flag.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/about_flags_cc/Add-IsCleartextPermitted-flag.inc
|
||||
@@ -0,0 +1,8 @@
|
||||
+#ifdef FLAG_SECTION
|
||||
+
|
||||
+ {"cleartext-permitted",
|
||||
+ flag_descriptions::kIsCleartextPermittedName,
|
||||
+ flag_descriptions::kIsCleartextPermittedDescription, kOsAndroid,
|
||||
+ "Allow cleartext traffic",
|
||||
+ "Allow insecure connections over HTTP", kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(net::features::kIsCleartextPermitted)},
|
||||
#endif
|
||||
|
||||
{"export-bookmarks-use-saf",
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -1915,6 +1915,10 @@ const char kHttpsUpgradesDescription[] =
|
||||
"Enable automatically upgrading all top-level navigations to HTTPS with "
|
||||
"fast fallback to HTTP.";
|
||||
|
||||
+const char kIsCleartextPermittedName[] = "Allow cleartext traffic";
|
||||
+const char kIsCleartextPermittedDescription[] =
|
||||
+ "Allow insecure connections over HTTP";
|
||||
+
|
||||
const char kIgnoreGpuBlocklistName[] = "Override software rendering list";
|
||||
const char kIgnoreGpuBlocklistDescription[] =
|
||||
"Overrides the built-in software rendering list and enables "
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -1062,6 +1062,9 @@ extern const char kHiddenNetworkMigrationDescription[];
|
||||
extern const char kHttpsOnlyModeName[];
|
||||
extern const char kHttpsOnlyModeDescription[];
|
||||
|
||||
+extern const char kIsCleartextPermittedName[];
|
||||
+extern const char kIsCleartextPermittedDescription[];
|
||||
+
|
||||
extern const char kHttpsFirstModeV2Name[];
|
||||
extern const char kHttpsFirstModeV2Description[];
|
||||
|
||||
diff --git a/net/base/features.cc b/net/base/features.cc
|
||||
--- a/net/base/features.cc
|
||||
+++ b/net/base/features.cc
|
||||
@@ -131,6 +131,10 @@ BASE_FEATURE(kEnableCrossSiteFlagNetworkIsolationKey, // must be
|
||||
"EnableCrossSiteFlagNetworkIsolationKey", // disabled
|
||||
base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
|
||||
|
||||
+BASE_FEATURE(kIsCleartextPermitted,
|
||||
+ "IsCleartextPermitted",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+
|
||||
BASE_FEATURE(kTLS13KeyUpdate,
|
||||
"TLS13KeyUpdate",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
diff --git a/net/base/features.h b/net/base/features.h
|
||||
--- a/net/base/features.h
|
||||
+++ b/net/base/features.h
|
||||
@@ -30,6 +30,8 @@ NET_EXPORT BASE_DECLARE_FEATURE(kAvoidH2Reprioritization);
|
||||
// origin requests are restricted to contain at most the source origin.
|
||||
NET_EXPORT BASE_DECLARE_FEATURE(kCapReferrerToOriginOnCrossOrigin);
|
||||
|
||||
+#endif
|
||||
diff --git a/cromite_flags/net/base/features_cc/Add-IsCleartextPermitted-flag.inc b/cromite_flags/net/base/features_cc/Add-IsCleartextPermitted-flag.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/net/base/features_cc/Add-IsCleartextPermitted-flag.inc
|
||||
@@ -0,0 +1,3 @@
|
||||
+CROMITE_FEATURE(kIsCleartextPermitted,
|
||||
+ "IsCleartextPermitted",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
diff --git a/cromite_flags/net/base/features_h/Add-IsCleartextPermitted-flag.inc b/cromite_flags/net/base/features_h/Add-IsCleartextPermitted-flag.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/net/base/features_h/Add-IsCleartextPermitted-flag.inc
|
||||
@@ -0,0 +1 @@
|
||||
+NET_EXPORT BASE_DECLARE_FEATURE(kIsCleartextPermitted);
|
||||
+
|
||||
// Support for altering the parameters used for DNS transaction timeout. See
|
||||
// ResolveContext::SecureTransactionTimeout().
|
||||
NET_EXPORT BASE_DECLARE_FEATURE(kDnsTransactionDynamicTimeouts);
|
||||
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
|
||||
+++ b/net/url_request/url_request_http_job.cc
|
||||
@@ -212,6 +212,10 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
|
||||
@@ -300,6 +300,11 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
|
||||
}
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
+ if (base::FeatureList::IsEnabled(net::features::kIsCleartextPermitted) == false) {
|
||||
+ return std::make_unique<URLRequestErrorJob>(request,
|
||||
+ ERR_CLEARTEXT_NOT_PERMITTED);
|
||||
+ }
|
||||
+
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
// Check whether the app allows cleartext traffic to this host, and return
|
||||
// ERR_CLEARTEXT_NOT_PERMITTED if not.
|
||||
if (request->context()->check_cleartext_permitted() &&
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Wed, 6 Dec 2023 10:21:45 +0000
|
||||
Subject: Add PartialLowEndModeOnMidRangeDevices flag
|
||||
|
||||
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
|
||||
---
|
||||
base/features.cc | 3 +++
|
||||
chrome/browser/about_flags.cc | 1 +
|
||||
.../Add-PartialLowEndModeOnMidRangeDevices-flag.inc | 12 ++++++++++++
|
||||
3 files changed, 16 insertions(+)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc
|
||||
|
||||
diff --git a/base/features.cc b/base/features.cc
|
||||
--- a/base/features.cc
|
||||
+++ b/base/features.cc
|
||||
@@ -67,4 +67,7 @@ BASE_FEATURE(kCollectAndroidFrameTimelineMetrics,
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPartialLowEndModeOnMidRangeDevices);
|
||||
+#endif
|
||||
} // namespace base::features
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "base/base_switches.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/feature_list.h"
|
||||
+#include "base/features.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/functional/callback.h"
|
||||
#include "base/i18n/base_i18n_switches.h"
|
||||
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
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc
|
||||
@@ -0,0 +1,12 @@
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+
|
||||
+#ifdef FLAG_SECTION
|
||||
+
|
||||
+ {"partial-lowendmode-on-midrange-devices",
|
||||
+ "Partial Low End Mode On Mid Range Devices",
|
||||
+ "Enables the LowEndDeviceMode experiment in devices with 4-6 gb of ram.",
|
||||
+ kOsAndroid, FEATURE_VALUE_TYPE(base::features::kPartialLowEndModeOnMidRangeDevices)},
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#endif
|
||||
--
|
||||
+13
-18
@@ -3,18 +3,19 @@ Date: Fri, 21 Apr 2023 13:10:20 +0000
|
||||
Subject: Add a flag 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
|
||||
---
|
||||
chrome/browser/flag-metadata.json | 4 ++--
|
||||
chrome/browser/flag_descriptions.cc | 2 +-
|
||||
device/gamepad/public/cpp/gamepad_features.cc | 4 ++--
|
||||
device/gamepad/public/cpp/gamepad_features.cc | 1 +
|
||||
.../blink/renderer/modules/gamepad/navigator_gamepad.cc | 6 ++++++
|
||||
4 files changed, 11 insertions(+), 5 deletions(-)
|
||||
4 files changed, 10 insertions(+), 3 deletions(-)
|
||||
|
||||
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
|
||||
@@ -6837,9 +6837,9 @@
|
||||
"expiry_milestone": 117
|
||||
@@ -7195,9 +7195,9 @@
|
||||
"expiry_milestone": 125
|
||||
},
|
||||
{
|
||||
- "name": "restrict-gamepad-access",
|
||||
@@ -24,11 +25,11 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
|
||||
+ "expiry_milestone": -1
|
||||
},
|
||||
{
|
||||
"name": "revamped-password-management-bubble",
|
||||
"name": "revamp-page-info-ios",
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -2981,7 +2981,7 @@ const char kReduceAcceptLanguageDescription[] =
|
||||
@@ -3089,7 +3089,7 @@ const char kResetShortcutCustomizationsDescription[] =
|
||||
|
||||
const char kRestrictGamepadAccessName[] = "Restrict gamepad access";
|
||||
const char kRestrictGamepadAccessDescription[] =
|
||||
@@ -40,17 +41,12 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
||||
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
|
||||
+++ b/device/gamepad/public/cpp/gamepad_features.cc
|
||||
@@ -27,8 +27,8 @@ BASE_FEATURE(kEnableWindowsGamingInputDataFetcher,
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
@@ -65,4 +65,5 @@ bool IsGamepadMultitouchEnabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
BASE_FEATURE(kRestrictGamepadAccess,
|
||||
- "RestrictGamepadAccess",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+ "RestrictGamepadAccess", // enabled
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT); // in bromite
|
||||
|
||||
// Enables gamepad multitouch
|
||||
BASE_FEATURE(kEnableGamepadMultitouch,
|
||||
+SET_CROMITE_FEATURE_ENABLED(kRestrictGamepadAccess);
|
||||
} // namespace features
|
||||
diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc
|
||||
--- a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc
|
||||
+++ b/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc
|
||||
@@ -65,7 +61,7 @@ diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/t
|
||||
if (!navigator.DomWindow()) {
|
||||
// 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.
|
||||
@@ -430,6 +434,8 @@ void NavigatorGamepad::SampleAndCompareGamepadState() {
|
||||
@@ -435,6 +439,8 @@ void NavigatorGamepad::SampleAndCompareGamepadState() {
|
||||
|
||||
void NavigatorGamepad::DispatchGamepadEvent(const AtomicString& event_name,
|
||||
Gamepad* gamepad) {
|
||||
@@ -75,4 +71,3 @@ diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/t
|
||||
DCHECK(processing_events_);
|
||||
DCHECK(has_connection_event_listener_);
|
||||
--
|
||||
2.25.1
|
||||
@@ -19,7 +19,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../java/res/xml/privacy_preferences.xml | 4 +
|
||||
.../privacy/settings/PrivacySettings.java | 1 +
|
||||
.../chrome_autocomplete_provider_client.cc | 2 +
|
||||
chrome/browser/browser_resources.grd | 6 +-
|
||||
chrome/browser/browser_resources.grd | 3 +
|
||||
.../extensions/api/proxy/proxy_api_helpers.cc | 2 +-
|
||||
chrome/browser/net/proxy_service_factory.cc | 24 +-
|
||||
chrome/browser/net/proxy_service_factory.h | 3 +
|
||||
chrome/browser/prefs/browser_prefs.cc | 4 +
|
||||
@@ -39,7 +40,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../proxy_config/proxy_policy_handler.cc | 2 +-
|
||||
net/proxy_resolution/proxy_config.cc | 52 ++-
|
||||
net/proxy_resolution/proxy_config.h | 3 +
|
||||
24 files changed, 982 insertions(+), 17 deletions(-)
|
||||
25 files changed, 981 insertions(+), 17 deletions(-)
|
||||
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.js
|
||||
@@ -49,7 +50,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
|
||||
--- a/chrome/android/java/res/values/values.xml
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -27,6 +27,9 @@ found in the LICENSE file.
|
||||
@@ -25,6 +25,9 @@ found in the LICENSE file.
|
||||
<!-- Compositor Tab Title Text -->
|
||||
<bool name="compositor_tab_title_fake_bold_text">true</bool>
|
||||
|
||||
@@ -62,10 +63,10 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res
|
||||
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
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -9,6 +9,10 @@ found in the LICENSE file.
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
@@ -10,6 +10,10 @@ found in the LICENSE file.
|
||||
<PreferenceCategory
|
||||
android:key="privacy_section"
|
||||
android:title="@string/privacy_section_title" />
|
||||
+ <org.chromium.chrome.browser.about_settings.HyperlinkPreference
|
||||
+ android:key="proxy"
|
||||
+ android:title="@string/proxy_title"
|
||||
@@ -76,7 +77,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
|
||||
--- 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
|
||||
@@ -82,6 +82,7 @@ public class PrivacySettings extends PreferenceFragmentCompat
|
||||
@@ -76,6 +76,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
private static final String PREF_SAFE_BROWSING = "safe_browsing";
|
||||
private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
|
||||
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
||||
@@ -87,7 +88,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
|
||||
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
@@ -304,6 +304,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
@@ -308,6 +308,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
builtins_to_provide.push_back(
|
||||
base::ASCIIToUTF16(chrome::kChromeUISettingsURL));
|
||||
#endif
|
||||
@@ -99,23 +100,28 @@ 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
|
||||
--- a/chrome/browser/browser_resources.grd
|
||||
+++ b/chrome/browser/browser_resources.grd
|
||||
@@ -284,11 +284,15 @@
|
||||
<include name="IDR_PREF_HASH_SEED_BIN" file="resources\settings_internal\pref_hash_seed.bin" type="BINDATA" />
|
||||
@@ -237,6 +237,9 @@
|
||||
<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>
|
||||
+ <!-- Bromite Proxy Configuration UI -->
|
||||
+ <if expr="is_android">
|
||||
+ <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" />
|
||||
+ </if>
|
||||
+ <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" />
|
||||
<if expr="not is_android">
|
||||
<include name="IDR_ABOUT_SYS_HTML" file="resources\about_sys\about_sys.html" type="BINDATA" />
|
||||
<include name="IDR_ABOUT_SYS_CSS" file="resources\about_sys\about_sys.css" type="BINDATA" />
|
||||
<include name="IDR_ABOUT_SYS_JS" file="resources\about_sys\about_sys.js" preprocess="true" type="BINDATA" />
|
||||
-
|
||||
<!-- 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_MEDIA_ROUTER_INTERNALS_HTML" file="resources\media_router\internals\media_router_internals.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
|
||||
--- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
|
||||
+++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
|
||||
@@ -387,7 +387,7 @@ std::optional<base::Value::Dict> CreateProxyConfigDict(
|
||||
return std::nullopt;
|
||||
}
|
||||
return ProxyConfigDictionary::CreateFixedServers(proxy_rules_string,
|
||||
- bypass_list);
|
||||
+ bypass_list, /*reverse_bypass*/false);
|
||||
}
|
||||
case ProxyPrefs::MODE_SYSTEM:
|
||||
return ProxyConfigDictionary::CreateSystem();
|
||||
diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/proxy_service_factory.cc
|
||||
--- a/chrome/browser/net/proxy_service_factory.cc
|
||||
+++ b/chrome/browser/net/proxy_service_factory.cc
|
||||
@@ -191,16 +197,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
|
||||
--- a/chrome/browser/prefs/browser_prefs.cc
|
||||
+++ b/chrome/browser/prefs/browser_prefs.cc
|
||||
@@ -175,6 +175,8 @@
|
||||
@@ -191,6 +191,8 @@
|
||||
#include "printing/buildflags/buildflags.h"
|
||||
#include "rlz/buildflags/buildflags.h"
|
||||
#include "third_party/abseil-cpp/absl/types/optional.h"
|
||||
|
||||
+#include "chrome/browser/net/proxy_service_factory.h"
|
||||
+
|
||||
#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
|
||||
#include "chrome/browser/background/background_mode_manager.h"
|
||||
#endif
|
||||
@@ -1315,6 +1317,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||
@@ -1447,6 +1449,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
|
||||
component_updater::RegisterPrefs(registry);
|
||||
domain_reliability::RegisterPrefs(registry);
|
||||
embedder_support::OriginTrialPrefs::RegisterPrefs(registry);
|
||||
@@ -391,7 +397,7 @@ new file mode 100644
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+import {$} from 'chrome://resources/js/util_ts.js';
|
||||
+import {$} from 'chrome://resources/js/util.js';
|
||||
+
|
||||
+/**
|
||||
+ * Main entry point called once the page has loaded.
|
||||
@@ -655,7 +661,7 @@ new file mode 100644
|
||||
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
|
||||
--- a/chrome/browser/ui/BUILD.gn
|
||||
+++ b/chrome/browser/ui/BUILD.gn
|
||||
@@ -397,6 +397,8 @@ static_library("ui") {
|
||||
@@ -301,6 +301,8 @@ static_library("ui") {
|
||||
"webui/metrics_internals/metrics_internals_ui.h",
|
||||
"webui/net_export_ui.cc",
|
||||
"webui/net_export_ui.h",
|
||||
@@ -667,15 +673,15 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
|
||||
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
|
||||
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
|
||||
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
|
||||
@@ -59,6 +59,7 @@
|
||||
@@ -52,6 +52,7 @@
|
||||
#include "chrome/browser/ui/webui/ntp_tiles_internals_ui.h"
|
||||
#include "chrome/browser/ui/webui/omnibox/omnibox_ui.h"
|
||||
#include "chrome/browser/ui/webui/policy/policy_ui.h"
|
||||
+#include "chrome/browser/ui/webui/proxy_config_ui.h"
|
||||
#include "chrome/browser/ui/webui/predictors/predictors_ui.h"
|
||||
#include "chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_ui.h"
|
||||
#include "chrome/browser/ui/webui/segmentation_internals/segmentation_internals_ui.h"
|
||||
#include "chrome/browser/ui/webui/signin_internals_ui.h"
|
||||
@@ -489,6 +490,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
|
||||
@@ -469,6 +470,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
|
||||
return &NewWebUI<MetricsInternalsUI>;
|
||||
if (url.host_piece() == chrome::kChromeUINetExportHost)
|
||||
return &NewWebUI<NetExportUI>;
|
||||
@@ -1121,7 +1127,7 @@ new file mode 100644
|
||||
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
|
||||
--- a/chrome/common/webui_url_constants.cc
|
||||
+++ b/chrome/common/webui_url_constants.cc
|
||||
@@ -50,6 +50,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
|
||||
@@ -49,6 +49,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
|
||||
const char kChromeUICertificateViewerURL[] = "chrome://view-cert/";
|
||||
const char kChromeUIChromeSigninHost[] = "chrome-signin";
|
||||
const char kChromeUIChromeSigninURL[] = "chrome://chrome-signin/";
|
||||
@@ -1130,17 +1136,17 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
|
||||
const char kChromeUIChromeURLsHost[] = "chrome-urls";
|
||||
const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/";
|
||||
const char kChromeUIComponentsHost[] = "components";
|
||||
@@ -431,6 +433,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
|
||||
kChromeUILockScreenNetworkHost,
|
||||
kChromeUILockScreenStartReauthHost,
|
||||
kChromeUIMobileSetupHost,
|
||||
+ kChromeUIProxyConfigHost,
|
||||
kChromeUIMultiDeviceSetupHost,
|
||||
kChromeUINetworkHost,
|
||||
kChromeUINotificationTesterHost,
|
||||
@@ -730,6 +733,7 @@ const char* const kChromeHostURLs[] = {
|
||||
@@ -460,6 +462,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
|
||||
kChromeUILockScreenNetworkHost,
|
||||
kChromeUILockScreenStartReauthHost,
|
||||
kChromeUIMobileSetupHost,
|
||||
+ kChromeUIProxyConfigHost,
|
||||
kChromeUIMultiDeviceSetupHost,
|
||||
kChromeUINetworkHost,
|
||||
kChromeUINotificationTesterHost,
|
||||
@@ -760,6 +763,7 @@ const char* const kChromeHostURLs[] = {
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
#if !BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
#if !BUILDFLAG(IS_CHROMEOS)
|
||||
kChromeUIAppLauncherPageHost,
|
||||
+ kChromeUIProxyConfigHost,
|
||||
#endif
|
||||
@@ -1149,7 +1155,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
|
||||
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
|
||||
--- a/chrome/common/webui_url_constants.h
|
||||
+++ b/chrome/common/webui_url_constants.h
|
||||
@@ -136,6 +136,8 @@ extern const char kChromeUINTPTilesInternalsHost[];
|
||||
@@ -134,6 +134,8 @@ extern const char kChromeUINTPTilesInternalsHost[];
|
||||
extern const char kChromeUINaClHost[];
|
||||
extern const char kChromeUINetExportHost[];
|
||||
extern const char kChromeUINetExportURL[];
|
||||
@@ -1178,7 +1184,7 @@ diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/compone
|
||||
registry->RegisterBooleanPref(proxy_config::prefs::kUseSharedProxies, false);
|
||||
}
|
||||
|
||||
@@ -384,6 +384,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(
|
||||
@@ -388,6 +388,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(
|
||||
if (proxy_dict.GetBypassList(&proxy_bypass)) {
|
||||
proxy_config.proxy_rules().bypass_rules.ParseFromString(proxy_bypass);
|
||||
}
|
||||
@@ -1315,7 +1321,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/prox
|
||||
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
|
||||
+++ b/components/proxy_config/proxy_policy_handler.cc
|
||||
@@ -262,7 +262,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
|
||||
@@ -376,7 +376,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
|
||||
set_proxy_pref_value(ProxyConfigDictionary::CreateFixedServers(
|
||||
server->GetString(), bypass_list && bypass_list->is_string()
|
||||
? bypass_list->GetString()
|
||||
@@ -1348,8 +1354,8 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c
|
||||
+ // special case: a single proxy servers list specified
|
||||
+ if (type == Type::PROXY_LIST) {
|
||||
+ std::string proxy_list;
|
||||
+ for (const ProxyServer& proxy_server :
|
||||
+ single_proxies.GetAll()) {
|
||||
+ for (const auto& proxy_chain : single_proxies.AllChains()) {
|
||||
+ net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
|
||||
+ proxy_list += ProxyServerToProxyUri(proxy_server) + ";";
|
||||
+ }
|
||||
+ // remove last semicolon
|
||||
@@ -1367,20 +1373,20 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c
|
||||
+
|
||||
+ // start to build a per-scheme list
|
||||
+ std::string list;
|
||||
+ for (const ProxyServer& proxy_server :
|
||||
+ proxies_for_http.GetAll()) {
|
||||
+ for (const auto& proxy_chain : proxies_for_http.AllChains()) {
|
||||
+ net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
|
||||
+ list += "http=" + ProxyServerToProxyUri(proxy_server) + ";";
|
||||
+ }
|
||||
+ for (const ProxyServer& proxy_server :
|
||||
+ proxies_for_https.GetAll()) {
|
||||
+ for (const auto& proxy_chain : proxies_for_https.AllChains()) {
|
||||
+ net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
|
||||
+ list += "https=" + ProxyServerToProxyUri(proxy_server) + ";";
|
||||
+ }
|
||||
+ for (const ProxyServer& proxy_server :
|
||||
+ proxies_for_ftp.GetAll()) {
|
||||
+ for (const auto& proxy_chain : proxies_for_ftp.AllChains()) {
|
||||
+ net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
|
||||
+ list += "ftp=" + ProxyServerToProxyUri(proxy_server) + ";";
|
||||
+ }
|
||||
+ for (const ProxyServer& proxy_server :
|
||||
+ fallback_proxies.GetAll()) {
|
||||
+ for (const auto& proxy_chain : fallback_proxies.AllChains()) {
|
||||
+ net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
|
||||
+ list += "socks=" + ProxyServerToProxyUri(proxy_server) + ";";
|
||||
+ }
|
||||
+ if (list.length() != 0 ) {
|
||||
@@ -1407,4 +1413,3 @@ diff --git a/net/proxy_resolution/proxy_config.h b/net/proxy_resolution/proxy_co
|
||||
// Returns one of {&proxies_for_http, &proxies_for_https, &proxies_for_ftp,
|
||||
// &fallback_proxies}, or NULL if there is no proxy to use.
|
||||
--
|
||||
2.25.1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -11,13 +11,13 @@ Require: Content-settings-infrastructure.patch
|
||||
.../res/drawable-xhdpi/settings_autoplay.png | Bin 0 -> 551 bytes
|
||||
.../res/drawable-xxhdpi/settings_autoplay.png | Bin 0 -> 792 bytes
|
||||
.../drawable-xxxhdpi/settings_autoplay.png | Bin 0 -> 1064 bytes
|
||||
.../impl/BromiteAutoplayContentSetting.java | 92 ++++++++++++++++++
|
||||
.../impl/BromiteAutoplayContentSetting.java | 93 ++++++++++++++++++
|
||||
.../bromite_content_settings/autoplay.grdp | 21 ++++
|
||||
.../bromite_content_settings/autoplay.inc | 12 +++
|
||||
.../core/browser/content_settings_registry.cc | 2 +-
|
||||
.../core/html/media/autoplay_policy.cc | 14 +++
|
||||
.../core/html/media/autoplay_policy.h | 4 +
|
||||
11 files changed, 144 insertions(+), 1 deletion(-)
|
||||
11 files changed, 145 insertions(+), 1 deletion(-)
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-hdpi/settings_autoplay.png
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-mdpi/settings_autoplay.png
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-xhdpi/settings_autoplay.png
|
||||
@@ -139,7 +139,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteAutoplayContentSetting.java
|
||||
@@ -0,0 +1,92 @@
|
||||
@@ -0,0 +1,93 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
@@ -192,7 +192,8 @@ new file mode 100644
|
||||
+ /*defaultEnabledValue*/ getDefaultEnabledValue(),
|
||||
+ /*defaultDisabledValue*/ getDefaultDisabledValue(),
|
||||
+ /*enabledSummary*/ R.string.website_settings_category_autoplay_enabled,
|
||||
+ /*disabledSummary*/ R.string.website_settings_category_autoplay_disabled);
|
||||
+ /*disabledSummary*/ R.string.website_settings_category_autoplay_disabled,
|
||||
+ /*summaryOverrideForScreenReader*/ 0);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
@@ -278,13 +279,13 @@ 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
|
||||
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
||||
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
||||
@@ -244,7 +244,7 @@ void ContentSettingsRegistry::Init() {
|
||||
@@ -255,7 +255,7 @@ void ContentSettingsRegistry::Init() {
|
||||
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
||||
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
|
||||
|
||||
- Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_ALLOW,
|
||||
+ Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_BLOCK,
|
||||
WebsiteSettingsInfo::UNSYNCABLE, /*allowlisted_schemes=*/{},
|
||||
WebsiteSettingsInfo::UNSYNCABLE, /*allowlisted_primary_schemes=*/{},
|
||||
/*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK},
|
||||
WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
|
||||
diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/third_party/blink/renderer/core/html/media/autoplay_policy.cc
|
||||
@@ -298,7 +299,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
|
||||
#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_client.h"
|
||||
@@ -310,6 +311,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() {
|
||||
@@ -330,6 +331,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() {
|
||||
}
|
||||
|
||||
bool AutoplayPolicy::IsGestureNeededForPlayback() const {
|
||||
@@ -307,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
|
||||
if (!IsLockedPendingUserGesture())
|
||||
return false;
|
||||
|
||||
@@ -408,6 +411,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
|
||||
@@ -428,6 +431,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -328,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
|
||||
--- a/third_party/blink/renderer/core/html/media/autoplay_policy.h
|
||||
+++ b/third_party/blink/renderer/core/html/media/autoplay_policy.h
|
||||
@@ -133,6 +133,10 @@ class CORE_EXPORT AutoplayPolicy final
|
||||
@@ -138,6 +138,10 @@ class CORE_EXPORT AutoplayPolicy final
|
||||
// should use, if checking to see if an action is allowed.
|
||||
bool IsLockedPendingUserGesture() const;
|
||||
|
||||
@@ -340,4 +341,3 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.h b/thir
|
||||
bool IsOrWillBeAutoplayingMutedInternal(bool muted) const;
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -13,21 +13,23 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../java/res/xml/privacy_preferences.xml | 10 ++++++++
|
||||
.../browser/LaunchIntentDispatcher.java | 21 ++++++++++++++++
|
||||
.../customtabs/CustomTabsConnection.java | 1 +
|
||||
.../IncognitoCustomTabIntentDataProvider.java | 6 +++++
|
||||
.../privacy/settings/PrivacySettings.java | 24 +++++++++++++++++++
|
||||
.../flags/android/chrome_feature_list.cc | 6 ++---
|
||||
.../chrome/browser/tab/TabAssociatedApp.java | 6 ++++-
|
||||
.../strings/android_chrome_strings.grd | 14 +++++++++++
|
||||
.../core/common/language_experiments.cc | 4 ++--
|
||||
8 files changed, 85 insertions(+), 6 deletions(-)
|
||||
.../core/common/language_experiments.cc | 1 +
|
||||
.../add-custom-tab-intents-privacy-option.inc | 1 +
|
||||
9 files changed, 83 insertions(+), 1 deletion(-)
|
||||
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
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -68,6 +68,16 @@ found in the LICENSE file.
|
||||
android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings"
|
||||
@@ -43,6 +43,16 @@ found in the LICENSE file.
|
||||
android:key="do_not_track"
|
||||
android:title="@string/do_not_track_title"/>
|
||||
android:title="@string/do_not_track_title"
|
||||
android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" />
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="allow_custom_tab_intents"
|
||||
+ android:title="@string/allow_custom_tab_intents_title"
|
||||
@@ -39,39 +41,32 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
||||
+ android:summary="@string/open_external_links_incognito_summary"
|
||||
+ android:defaultValue="false" />
|
||||
<Preference
|
||||
android:key="privacy_sandbox"
|
||||
android:title="@string/prefs_privacy_sandbox"
|
||||
android:key="preload_pages"
|
||||
android:title="@string/preload_pages_title"
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||
@@ -42,6 +42,7 @@ import org.chromium.chrome.browser.notifications.NotificationPlatformBridge;
|
||||
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
|
||||
import org.chromium.chrome.browser.searchwidget.SearchActivity;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
+import org.chromium.chrome.browser.tab.TabLaunchType;
|
||||
import org.chromium.chrome.browser.translate.TranslateIntentHandler;
|
||||
import org.chromium.chrome.browser.util.AndroidTaskUtils;
|
||||
import org.chromium.chrome.browser.webapps.WebappLauncherActivity;
|
||||
@@ -56,6 +57,8 @@ import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
@@ -55,6 +55,9 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.Set;
|
||||
|
||||
+import org.chromium.chrome.browser.privacy.settings.PrivacySettings;
|
||||
+import org.chromium.chrome.browser.tab.TabLaunchType;
|
||||
+
|
||||
/**
|
||||
* Dispatches incoming intents to the appropriate activity based on the current configuration and
|
||||
* Intent fired.
|
||||
@@ -268,6 +271,9 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
|
||||
@@ -244,6 +247,9 @@ public class LaunchIntentDispatcher {
|
||||
*/
|
||||
public static boolean isCustomTabIntent(Intent intent) {
|
||||
if (intent == null) return false;
|
||||
+ if (!ContextUtils.getAppSharedPreferences()
|
||||
+ .getBoolean(PrivacySettings.PREF_ALLOW_CUSTOM_TAB_INTENTS, false))
|
||||
+ return false;
|
||||
if (CustomTabsIntent.shouldAlwaysUseBrowserUI(intent)
|
||||
|| !intent.hasExtra(CustomTabsIntent.EXTRA_SESSION)) {
|
||||
return false;
|
||||
@@ -287,6 +293,10 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
|
||||
Log.w(
|
||||
TAG,
|
||||
"CustomTabsIntent#shouldAlwaysUseBrowserUI() = "
|
||||
@@ -265,6 +271,10 @@ public class LaunchIntentDispatcher {
|
||||
newIntent.setData(uri);
|
||||
newIntent.setClassName(context, CustomTabActivity.class.getName());
|
||||
|
||||
@@ -82,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
||||
// Since configureIntentForResizableCustomTab() might change the componenet/class
|
||||
// associated with the passed intent, it needs to be called after #setClassName(context,
|
||||
// CustomTabActivity.class.getName());
|
||||
@@ -447,6 +457,17 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
|
||||
@@ -410,6 +420,17 @@ public class LaunchIntentDispatcher {
|
||||
|
||||
if (Intent.ACTION_VIEW.equals(newIntent.getAction())
|
||||
&& !IntentHandler.wasIntentSenderChrome(newIntent)) {
|
||||
@@ -100,6 +95,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
||||
if (!chromeTabbedTaskExists()) {
|
||||
newIntent.putExtra(IntentHandler.EXTRA_STARTED_TABBED_CHROME_TASK, true);
|
||||
}
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
||||
@@ -850,6 +850,7 @@ public class CustomTabsConnection {
|
||||
PostTask.postTask(
|
||||
TaskTraits.UI_DEFAULT,
|
||||
() -> {
|
||||
+ if ((true)) return; // Disable CCTPostMessageAPI
|
||||
// Attempt to verify origin synchronously. If successful directly initialize
|
||||
// postMessage channel for session.
|
||||
Uri verifiedOrigin = verifyOriginForSession(session, uid, postMessageOrigin);
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
|
||||
@@ -113,7 +119,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
|
||||
* data.
|
||||
@@ -113,6 +116,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
|
||||
@@ -115,6 +118,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
|
||||
}
|
||||
|
||||
private static boolean isIntentFromThirdPartyAllowed() {
|
||||
@@ -126,17 +132,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
|
||||
--- 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
|
||||
@@ -103,6 +103,9 @@ public class PrivacySettings extends PreferenceFragmentCompat
|
||||
private HelpAndFeedbackLauncher mHelpAndFeedbackLauncher;
|
||||
private Profile mProfile;
|
||||
@@ -96,6 +96,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
private IncognitoLockSettings mIncognitoLockSettings;
|
||||
|
||||
+ private ChromeSwitchPreference allowCustomTabIntentsPref;
|
||||
+ private ChromeSwitchPreference openExternalLinksPref;
|
||||
+
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
PrivacyPreferencesManagerImpl privacyPrefManager =
|
||||
@@ -250,6 +253,9 @@ public class PrivacySettings extends PreferenceFragmentCompat
|
||||
getActivity().setTitle(R.string.prefs_privacy_security);
|
||||
@@ -274,6 +277,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink));
|
||||
}
|
||||
|
||||
@@ -146,9 +152,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String key = preference.getKey();
|
||||
@@ -264,6 +270,14 @@ public class PrivacySettings extends PreferenceFragmentCompat
|
||||
@@ -290,6 +296,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
} else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
|
||||
UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
UserPrefs.get(getProfile())
|
||||
.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
|
||||
+ } else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
|
||||
+ SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
@@ -161,8 +167,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -287,6 +301,16 @@ public class PrivacySettings extends PreferenceFragmentCompat
|
||||
UserPrefs.get(mProfile).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
|
||||
@@ -312,6 +326,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
|
||||
}
|
||||
|
||||
+ allowCustomTabIntentsPref =
|
||||
@@ -177,34 +183,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
+
|
||||
Preference doNotTrackPref = findPreference(PREF_DO_NOT_TRACK);
|
||||
if (doNotTrackPref != null) {
|
||||
doNotTrackPref.setSummary(UserPrefs.get(mProfile).getBoolean(Pref.ENABLE_DO_NOT_TRACK)
|
||||
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
|
||||
@@ -541,8 +541,8 @@ BASE_FEATURE(kCCTIncognitoAvailableToThirdParty,
|
||||
base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
|
||||
|
||||
BASE_FEATURE(kCCTIntentFeatureOverrides,
|
||||
- "CCTIntentFeatureOverrides",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+ "CCTIntentFeatureOverrides", // must be disabled
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
|
||||
|
||||
BASE_FEATURE(kCCTPageInsightsHub,
|
||||
"CCTPageInsightsHub",
|
||||
@@ -550,7 +550,7 @@ BASE_FEATURE(kCCTPageInsightsHub,
|
||||
|
||||
BASE_FEATURE(kCCTPostMessageAPI,
|
||||
"CCTPostMessageAPI",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
BASE_FEATURE(kCCTPrefetchDelayShowOnStart,
|
||||
"CCTPrefetchDelayShowOnStart",
|
||||
doNotTrackPref.setSummary(
|
||||
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
|
||||
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
|
||||
@@ -84,7 +84,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im
|
||||
@@ -87,7 +87,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im
|
||||
public static boolean isOpenedFromExternalApp(Tab tab) {
|
||||
TabAssociatedApp app = get(tab);
|
||||
if (app == null) return false;
|
||||
@@ -220,7 +203,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAsso
|
||||
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
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -5015,6 +5015,20 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
@@ -5152,6 +5152,20 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
|
||||
<message name="IDS_NEAR_OOM_INTERVENTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can resume what it was doing.">
|
||||
Resume
|
||||
</message>
|
||||
@@ -244,16 +227,16 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
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
|
||||
+++ b/components/language/core/common/language_experiments.cc
|
||||
@@ -39,8 +39,8 @@ BASE_FEATURE(kContentLanguagesInLanguagePicker,
|
||||
"ContentLanguagesInLanguagePicker",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
BASE_FEATURE(kCctAutoTranslate,
|
||||
- "CCTAutoTranslate",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+ "CCTAutoTranslate", // Always disabled
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
|
||||
|
||||
@@ -24,4 +24,5 @@ BASE_FEATURE(kCctAutoTranslate,
|
||||
// Params:
|
||||
const char kContentLanguagesDisableObserversParam[] = "disable_observers";
|
||||
|
||||
+SET_CROMITE_FEATURE_DISABLED(kCctAutoTranslate);
|
||||
} // namespace language
|
||||
diff --git a/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
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kCCTIntentFeatureOverrides);
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
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
|
||||
@@ -158,6 +158,9 @@ found in the LICENSE file.
|
||||
@@ -166,6 +166,9 @@ found in the LICENSE file.
|
||||
<item android:id="@+id/managed_by_menu_id"
|
||||
android:title="@string/managed_browser"
|
||||
android:icon="@drawable/ic_business" />
|
||||
@@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
||||
</group>
|
||||
|
||||
<!-- Items shown only in the tab switcher -->
|
||||
@@ -184,6 +187,9 @@ found in the LICENSE file.
|
||||
@@ -192,6 +195,9 @@ found in the LICENSE file.
|
||||
<item android:id="@id/preferences_id"
|
||||
android:title="@string/menu_settings"
|
||||
android:icon="@drawable/settings_cog" />
|
||||
@@ -40,15 +40,15 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLifetime.java b/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLifetime.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLifetime.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLifetime.java
|
||||
@@ -6,6 +6,7 @@ package org.chromium.chrome.browser;
|
||||
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser;
|
||||
import org.jni_zero.CalledByNative;
|
||||
|
||||
import org.chromium.base.ObserverList;
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
+import org.chromium.chrome.browser.incognito.IncognitoNotificationManager;
|
||||
|
||||
/**
|
||||
* Watches for when Chrome is told to restart itself.
|
||||
@@ -42,6 +43,7 @@ public class ApplicationLifetime {
|
||||
/** Watches for when Chrome is told to restart itself. */
|
||||
public class ApplicationLifetime {
|
||||
@@ -39,6 +40,7 @@ public class ApplicationLifetime {
|
||||
|
||||
@CalledByNative
|
||||
public static void terminate(boolean restart) {
|
||||
@@ -59,16 +59,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLife
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -230,6 +230,8 @@ import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
@@ -267,6 +267,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.function.BooleanSupplier;
|
||||
import java.util.function.DoubleConsumer;
|
||||
|
||||
+import org.chromium.chrome.browser.ApplicationLifetime;
|
||||
+
|
||||
/**
|
||||
* 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.
|
||||
@@ -2260,6 +2262,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
* 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.
|
||||
@@ -2925,6 +2927,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
} else if (id == R.id.close_tab) {
|
||||
getCurrentTabModel().closeTab(currentTab, true, false, true);
|
||||
RecordUserAction.record("MobileTabClosed");
|
||||
@@ -76,11 +76,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
+ ApplicationLifetime.terminate(false);
|
||||
} else if (id == R.id.close_all_tabs_menu_id) {
|
||||
// Close both incognito and normal tabs.
|
||||
CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
|
||||
CloseAllTabsDialog.show(
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -61,6 +61,7 @@ import org.chromium.chrome.R;
|
||||
@@ -62,6 +62,7 @@ import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ActivityTabProvider;
|
||||
import org.chromium.chrome.browser.ActivityUtils;
|
||||
import org.chromium.chrome.browser.AppHooks;
|
||||
@@ -88,7 +88,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
||||
import org.chromium.chrome.browser.ChromeActivitySessionTracker;
|
||||
import org.chromium.chrome.browser.ChromeApplicationImpl;
|
||||
import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
|
||||
@@ -2397,6 +2398,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -2576,6 +2577,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -98,12 +98,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
||||
+ }
|
||||
+
|
||||
if (id == R.id.update_menu_id) {
|
||||
UpdateMenuItemHelper.getInstance().onMenuItemClicked(this);
|
||||
return true;
|
||||
UpdateMenuItemHelper.getInstance(
|
||||
getProfileProviderSupplier().get().getOriginalProfile())
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
||||
@@ -82,7 +82,11 @@ class ChromeLifetimeController implements ApplicationLifetime.Observer,
|
||||
@@ -81,7 +81,11 @@ class ChromeLifetimeController
|
||||
|
||||
// Kick off a timer to kill the process after a delay, which fires only if the Activities
|
||||
// take too long to be finished.
|
||||
@@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
|
||||
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
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -3687,6 +3687,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
@@ -3745,6 +3745,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
|
||||
<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]">
|
||||
Dark theme
|
||||
</message>
|
||||
@@ -130,4 +130,3 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
Appearance
|
||||
</message>
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -7,67 +7,29 @@ and internal chrome:// pages will be used for the autocomplete results.
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/browser/about_flags.cc | 22 ++++++++++++++++++-
|
||||
.../browser/autocomplete_controller.cc | 10 +++++++++
|
||||
.../omnibox/browser/history_url_provider.cc | 3 +++
|
||||
components/omnibox/browser/search_provider.cc | 4 ++++
|
||||
components/url_formatter/url_fixer.cc | 4 ++++
|
||||
5 files changed, 42 insertions(+), 1 deletion(-)
|
||||
.../browser/autocomplete_controller.cc | 10 ++++++
|
||||
.../omnibox/browser/history_url_provider.cc | 3 ++
|
||||
components/omnibox/browser/search_provider.cc | 4 +++
|
||||
components/url_formatter/url_fixer.cc | 4 +++
|
||||
...lag-for-omnibox-autocomplete-filtering.inc | 32 +++++++++++++++++++
|
||||
5 files changed, 53 insertions(+)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-omnibox-autocomplete-filtering.inc
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -582,6 +582,22 @@ const FeatureEntry::FeatureVariation kReaderModeDiscoverabilityVariations[] = {
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
+const FeatureEntry::Choice kOmniboxAutocompleteFiltering[] = {
|
||||
+ {flags_ui::kGenericExperimentChoiceDefault, "", ""},
|
||||
+ {"Search suggestions only",
|
||||
+ "omnibox-autocomplete-filtering",
|
||||
+ "search"},
|
||||
+ {"Search suggestions and bookmarks",
|
||||
+ "omnibox-autocomplete-filtering",
|
||||
+ "search-bookmarks"},
|
||||
+ {"Search suggestions and internal chrome pages",
|
||||
+ "omnibox-autocomplete-filtering",
|
||||
+ "search-chrome"},
|
||||
+ {"Search suggestions, bookmarks, and internal chrome pages",
|
||||
+ "omnibox-autocomplete-filtering",
|
||||
+ "search-bookmarks-chrome"},
|
||||
+};
|
||||
+
|
||||
const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNone[] = {
|
||||
{"mode", "always-none"}};
|
||||
const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNewTab[] = {
|
||||
@@ -4626,7 +4642,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
kOsMac | kOsLinux | kOsWin,
|
||||
FEATURE_VALUE_TYPE(features::kSystemNotifications)},
|
||||
#endif // BUILDFLAG(ENABLE_SYSTEM_NOTIFICATIONS) && !BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
-#if BUILDFLAG(IS_ANDROID)
|
||||
+#if BUILDFLAG(IS_ANDROID) // Bromite autocomplete filtering
|
||||
+ {"omnibox-autocomplete-filtering",
|
||||
+ "Omnibox Autocomplete Filtering",
|
||||
+ "Restrict omnibox autocomplete results to a combination of search suggestions (if enabled), bookmarks, and internal chrome pages.",
|
||||
+ kOsAll, MULTI_VALUE_TYPE(kOmniboxAutocompleteFiltering)},
|
||||
{"adaptive-button-in-top-toolbar",
|
||||
flag_descriptions::kAdaptiveButtonInTopToolbarName,
|
||||
flag_descriptions::kAdaptiveButtonInTopToolbarDescription, kOsAndroid,
|
||||
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
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "base/barrier_callback.h"
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
#include "base/check_op.h"
|
||||
#include "base/containers/contains.h"
|
||||
+#include "base/command_line.h"
|
||||
#include "base/feature_list.h"
|
||||
#include "base/format_macros.h"
|
||||
#include "base/functional/bind.h"
|
||||
@@ -359,6 +360,15 @@ AutocompleteController::AutocompleteController(
|
||||
template_url_service_(provider_client_->GetTemplateURLService()),
|
||||
triggered_feature_service_(
|
||||
provider_client_->GetOmniboxTriggeredFeatureService()) {
|
||||
@@ -392,6 +393,15 @@ AutocompleteController::AutocompleteController(
|
||||
provider_client_->GetOmniboxTriggeredFeatureService()),
|
||||
steady_state_omnibox_position_(
|
||||
metrics::OmniboxEventProto::UNKNOWN_POSITION) {
|
||||
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) {
|
||||
+ const std::string flag_value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering");
|
||||
+ provider_types &= AutocompleteProvider::TYPE_KEYWORD | AutocompleteProvider::TYPE_SEARCH |
|
||||
@@ -83,7 +45,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/
|
||||
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
|
||||
+++ b/components/omnibox/browser/history_url_provider.cc
|
||||
@@ -478,6 +478,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input,
|
||||
@@ -479,6 +479,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input,
|
||||
if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY)
|
||||
matches_.push_back(what_you_typed_match);
|
||||
|
||||
@@ -96,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
|
||||
--- a/components/omnibox/browser/search_provider.cc
|
||||
+++ b/components/omnibox/browser/search_provider.cc
|
||||
@@ -12,6 +12,7 @@
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "base/base64.h"
|
||||
#include "base/feature_list.h"
|
||||
#include "base/functional/bind.h"
|
||||
@@ -104,7 +66,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/
|
||||
#include "base/functional/callback.h"
|
||||
#include "base/i18n/break_iterator.h"
|
||||
#include "base/i18n/case_conversion.h"
|
||||
@@ -649,6 +650,9 @@ void SearchProvider::Run(bool query_is_private) {
|
||||
@@ -644,6 +645,9 @@ void SearchProvider::Run(bool query_is_private) {
|
||||
}
|
||||
|
||||
void SearchProvider::DoHistoryQuery(bool minimal_changes) {
|
||||
@@ -126,7 +88,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
|
||||
#include "base/files/file_path.h"
|
||||
#include "base/files/file_util.h"
|
||||
#include "base/i18n/char_iterator.h"
|
||||
@@ -608,6 +610,8 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
|
||||
@@ -621,6 +623,8 @@ GURL FixupURLInternal(const std::string& text,
|
||||
|
||||
FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url);
|
||||
if (chrome_url && !parts.host.is_valid())
|
||||
@@ -135,5 +97,41 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
|
||||
url.append(kChromeUIDefaultHost);
|
||||
FixupPort(trimmed, parts.port, &url);
|
||||
FixupPath(trimmed, parts.path, &url);
|
||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-omnibox-autocomplete-filtering.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-omnibox-autocomplete-filtering.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-omnibox-autocomplete-filtering.inc
|
||||
@@ -0,0 +1,32 @@
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+
|
||||
+#ifdef FEATURE_PARAM_SECTION
|
||||
+
|
||||
+const FeatureEntry::Choice kOmniboxAutocompleteFiltering[] = {
|
||||
+ {flags_ui::kGenericExperimentChoiceDefault, "", ""},
|
||||
+ {"Search suggestions only",
|
||||
+ "omnibox-autocomplete-filtering",
|
||||
+ "search"},
|
||||
+ {"Search suggestions and bookmarks",
|
||||
+ "omnibox-autocomplete-filtering",
|
||||
+ "search-bookmarks"},
|
||||
+ {"Search suggestions and internal chrome pages",
|
||||
+ "omnibox-autocomplete-filtering",
|
||||
+ "search-chrome"},
|
||||
+ {"Search suggestions, bookmarks, and internal chrome pages",
|
||||
+ "omnibox-autocomplete-filtering",
|
||||
+ "search-bookmarks-chrome"},
|
||||
+};
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#ifdef FLAG_SECTION
|
||||
+
|
||||
+ {"omnibox-autocomplete-filtering",
|
||||
+ "Omnibox Autocomplete Filtering",
|
||||
+ "Restrict omnibox autocomplete results to a combination of search suggestions (if enabled), bookmarks, and internal chrome pages.",
|
||||
+ kOsAll, MULTI_VALUE_TYPE(kOmniboxAutocompleteFiltering)},
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#endif
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -4,56 +4,15 @@ Subject: Add flag for save-data-header
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/browser/about_flags.cc | 5 ++++-
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
.../browser/loader/browser_initiated_resource_request.cc | 8 ++++++++
|
||||
services/network/public/cpp/features.cc | 5 +++++
|
||||
services/network/public/cpp/features.h | 2 ++
|
||||
6 files changed, 26 insertions(+), 1 deletion(-)
|
||||
.../loader/browser_initiated_resource_request.cc | 8 ++++++++
|
||||
.../about_flags_cc/Add-flag-for-save-data-header.inc | 10 ++++++++++
|
||||
.../cpp/features_cc/Add-flag-for-save-data-header.inc | 4 ++++
|
||||
.../cpp/features_h/Add-flag-for-save-data-header.inc | 1 +
|
||||
4 files changed, 23 insertions(+)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-save-data-header.inc
|
||||
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Add-flag-for-save-data-header.inc
|
||||
create mode 100644 cromite_flags/services/network/public/cpp/features_h/Add-flag-for-save-data-header.inc
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -5242,7 +5242,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"force-text-direction", flag_descriptions::kForceTextDirectionName,
|
||||
flag_descriptions::kForceTextDirectionDescription, kOsAll,
|
||||
MULTI_VALUE_TYPE(kForceTextDirectionChoices)},
|
||||
-#if BUILDFLAG(IS_ANDROID)
|
||||
+#if BUILDFLAG(IS_ANDROID) // Bromite save data header
|
||||
+ {"enable-save-data-header", flag_descriptions::kEnableSaveDataHeaderName,
|
||||
+ flag_descriptions::kEnableSaveDataHeaderDescription, kOsAndroid,
|
||||
+ FEATURE_VALUE_TYPE(network::features::kEnableSaveDataHeader)},
|
||||
{"force-update-menu-type", flag_descriptions::kUpdateMenuTypeName,
|
||||
flag_descriptions::kUpdateMenuTypeDescription, kOsAndroid,
|
||||
MULTI_VALUE_TYPE(kForceUpdateMenuTypeChoices)},
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -1332,6 +1332,10 @@ const char kDeprecateAltBasedSixPackDescription[] =
|
||||
"Show deprecation notifications and disable functionality for Alt based "
|
||||
"six pack deprecations. The Search based versions continue to work.";
|
||||
|
||||
+const char kEnableSaveDataHeaderName[] = "Enable save-data header";
|
||||
+const char kEnableSaveDataHeaderDescription[] =
|
||||
+ "Enable save-data header without enabling Data Saver.";
|
||||
+
|
||||
const char kDeprecateOldKeyboardShortcutsAcceleratorName[] =
|
||||
"Enable deprecation notifications for Ctrl+Alt+/ to open Keyboard "
|
||||
"shortcuts app";
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -694,6 +694,9 @@ extern const char kDeprecateAltBasedSixPackDescription[];
|
||||
extern const char kDeprecateOldKeyboardShortcutsAcceleratorName[];
|
||||
extern const char kDeprecateOldKeyboardShortcutsAcceleratorDescription[];
|
||||
|
||||
+extern const char kEnableSaveDataHeaderName[];
|
||||
+extern const char kEnableSaveDataHeaderDescription[];
|
||||
+
|
||||
extern const char kMemlogName[];
|
||||
extern const char kMemlogDescription[];
|
||||
extern const char kMemlogModeMinimal[];
|
||||
diff --git a/content/browser/loader/browser_initiated_resource_request.cc b/content/browser/loader/browser_initiated_resource_request.cc
|
||||
--- a/content/browser/loader/browser_initiated_resource_request.cc
|
||||
+++ b/content/browser/loader/browser_initiated_resource_request.cc
|
||||
@@ -81,32 +40,34 @@ diff --git a/content/browser/loader/browser_initiated_resource_request.cc b/cont
|
||||
if (should_update_existing_headers) {
|
||||
headers->RemoveHeader("Save-Data");
|
||||
}
|
||||
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
|
||||
--- a/services/network/public/cpp/features.cc
|
||||
+++ b/services/network/public/cpp/features.cc
|
||||
@@ -13,6 +13,11 @@
|
||||
|
||||
namespace network::features {
|
||||
|
||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-save-data-header.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-save-data-header.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-save-data-header.inc
|
||||
@@ -0,0 +1,10 @@
|
||||
+
|
||||
+#ifdef FLAG_SECTION
|
||||
+
|
||||
+ // Bromite save data header
|
||||
+ {"enable-save-data-header",
|
||||
+ "Enable save-data header",
|
||||
+ "Enable save-data header without enabling Data Saver.", kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(network::features::kEnableSaveDataHeader)},
|
||||
+
|
||||
+#endif
|
||||
diff --git a/cromite_flags/services/network/public/cpp/features_cc/Add-flag-for-save-data-header.inc b/cromite_flags/services/network/public/cpp/features_cc/Add-flag-for-save-data-header.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/services/network/public/cpp/features_cc/Add-flag-for-save-data-header.inc
|
||||
@@ -0,0 +1,4 @@
|
||||
+// Enable save-data header separately (without enabled data reduction service).
|
||||
+BASE_FEATURE(kEnableSaveDataHeader,
|
||||
+ "EnableSaveDataHeader",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+
|
||||
BASE_FEATURE(kNetworkErrorLogging,
|
||||
"NetworkErrorLogging", // disabled by default
|
||||
base::FEATURE_DISABLED_BY_DEFAULT); // in bromite
|
||||
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
|
||||
--- a/services/network/public/cpp/features.h
|
||||
+++ b/services/network/public/cpp/features.h
|
||||
@@ -84,6 +84,8 @@ extern uint32_t GetLoaderChunkSize();
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
BASE_DECLARE_FEATURE(kCorsNonWildcardRequestHeadersSupport);
|
||||
|
||||
+CROMITE_FEATURE(kEnableSaveDataHeader,
|
||||
+ "EnableSaveDataHeader",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
diff --git a/cromite_flags/services/network/public/cpp/features_h/Add-flag-for-save-data-header.inc b/cromite_flags/services/network/public/cpp/features_h/Add-flag-for-save-data-header.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/services/network/public/cpp/features_h/Add-flag-for-save-data-header.inc
|
||||
@@ -0,0 +1 @@
|
||||
+COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kEnableSaveDataHeader);
|
||||
+
|
||||
COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kNetworkServiceMemoryCache);
|
||||
|
||||
COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kOmitCorsClientCert);
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -8,68 +8,15 @@ 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
|
||||
---
|
||||
chrome/browser/about_flags.cc | 8 ++++++++
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
.../common/network_features.cc | 3 +++
|
||||
.../common/network_features.h | 4 ++++
|
||||
.../common/network_switch_list.h | 4 ++++
|
||||
.../spoof_checks/top_domains/BUILD.gn | 1 +
|
||||
...o-configure-maximum-connections-per-host.inc | 17 +++++++++++++++++
|
||||
net/socket/client_socket_pool_manager.cc | 17 +++++++++++++++++
|
||||
8 files changed, 44 insertions(+)
|
||||
6 files changed, 46 insertions(+)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-flag-to-configure-maximum-connections-per-host.inc
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -1230,6 +1230,11 @@ const FeatureEntry::Choice kForceColorProfileChoices[] = {
|
||||
switches::kForceDisplayColorProfile, "hdr10"},
|
||||
};
|
||||
|
||||
+const FeatureEntry::Choice kMaxConnectionsPerHostChoices[] = {
|
||||
+ {features::kMaxConnectionsPerHostChoiceDefault, "", ""},
|
||||
+ {features::kMaxConnectionsPerHostChoice15, switches::kMaxConnectionsPerHost, "15"},
|
||||
+};
|
||||
+
|
||||
const FeatureEntry::Choice kMemlogModeChoices[] = {
|
||||
{flags_ui::kGenericExperimentChoiceDisabled, "", ""},
|
||||
{flag_descriptions::kMemlogModeMinimal, heap_profiling::kMemlogMode,
|
||||
@@ -5143,6 +5148,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(chrome::android::kShareSheetCustomActionsPolish)},
|
||||
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
+ {"max-connections-per-host", flag_descriptions::kMaxConnectionsPerHostName,
|
||||
+ flag_descriptions::kMaxConnectionsPerHostDescription, kOsAll,
|
||||
+ MULTI_VALUE_TYPE(kMaxConnectionsPerHostChoices)},
|
||||
{"disallow-doc-written-script-loads",
|
||||
flag_descriptions::kDisallowDocWrittenScriptsUiName,
|
||||
flag_descriptions::kDisallowDocWrittenScriptsUiDescription, kOsAll,
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -2112,6 +2112,10 @@ const char kUnthrottledNestedTimeoutDescription[] =
|
||||
"websites abusing the API will still eventually have their setTimeouts "
|
||||
"clamped.";
|
||||
|
||||
+const char kMaxConnectionsPerHostName[] = "Maximum connections per host";
|
||||
+const char kMaxConnectionsPerHostDescription[] =
|
||||
+ "Customize maximum allowed connections per host.";
|
||||
+
|
||||
const char kMediaRouterCastAllowAllIPsName[] =
|
||||
"Connect to Cast devices on all IP addresses";
|
||||
const char kMediaRouterCastAllowAllIPsDescription[] =
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -1182,6 +1182,9 @@ extern const char kLogJsConsoleMessagesDescription[];
|
||||
extern const char kUnthrottledNestedTimeoutName[];
|
||||
extern const char kUnthrottledNestedTimeoutDescription[];
|
||||
|
||||
+extern const char kMaxConnectionsPerHostName[];
|
||||
+extern const char kMaxConnectionsPerHostDescription[];
|
||||
+
|
||||
extern const char kMediaRouterCastAllowAllIPsName[];
|
||||
extern const char kMediaRouterCastAllowAllIPsDescription[];
|
||||
|
||||
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
|
||||
@@ -120,10 +67,32 @@ diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/compon
|
||||
]
|
||||
if (is_ios) {
|
||||
frameworks = [ "UIKit.framework" ]
|
||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/add-flag-to-configure-maximum-connections-per-host.inc b/cromite_flags/chrome/browser/about_flags_cc/add-flag-to-configure-maximum-connections-per-host.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/about_flags_cc/add-flag-to-configure-maximum-connections-per-host.inc
|
||||
@@ -0,0 +1,17 @@
|
||||
+#ifdef FEATURE_PARAM_SECTION
|
||||
+
|
||||
+const FeatureEntry::Choice kMaxConnectionsPerHostChoices[] = {
|
||||
+ {features::kMaxConnectionsPerHostChoiceDefault, "", ""},
|
||||
+ {features::kMaxConnectionsPerHostChoice15, switches::kMaxConnectionsPerHost, "15"},
|
||||
+};
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#ifdef FLAG_SECTION
|
||||
+
|
||||
+ {"max-connections-per-host",
|
||||
+ "Maximum connections per host",
|
||||
+ "Customize maximum allowed connections per host.", kOsAll,
|
||||
+ MULTI_VALUE_TYPE(kMaxConnectionsPerHostChoices)},
|
||||
+
|
||||
+#endif
|
||||
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
|
||||
+++ b/net/socket/client_socket_pool_manager.cc
|
||||
@@ -19,6 +19,10 @@
|
||||
@@ -22,6 +22,10 @@
|
||||
#include "net/socket/client_socket_handle.h"
|
||||
#include "net/socket/client_socket_pool.h"
|
||||
#include "net/socket/connect_job.h"
|
||||
@@ -132,9 +101,9 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
|
||||
+#include "base/command_line.h"
|
||||
+#include "base/strings/string_number_conversions.h"
|
||||
#include "net/ssl/ssl_config.h"
|
||||
#include "third_party/abseil-cpp/absl/types/optional.h"
|
||||
#include "url/gurl.h"
|
||||
@@ -172,6 +176,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
|
||||
#include "url/scheme_host_port.h"
|
||||
@@ -168,6 +172,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
|
||||
int ClientSocketPoolManager::max_sockets_per_group(
|
||||
HttpNetworkSession::SocketPoolType pool_type) {
|
||||
DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES);
|
||||
@@ -155,4 +124,3 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -6,71 +6,34 @@ Disable it by default on Android as it is everywhere else
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/browser/about_flags.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.cc | 5 +++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
media/base/media_switches.cc | 8 ++------
|
||||
4 files changed, 14 insertions(+), 6 deletions(-)
|
||||
...lag-to-control-video-playback-resume-feature.inc | 13 +++++++++++++
|
||||
...lag-to-control-video-playback-resume-feature.inc | 1 +
|
||||
2 files changed, 14 insertions(+)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-flag-to-control-video-playback-resume-feature.inc
|
||||
create mode 100644 cromite_flags/media/base/media_switches_cc/add-flag-to-control-video-playback-resume-feature.inc
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -3909,6 +3909,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
chrome::android::kContextualSearchSuppressShortView,
|
||||
kContextualSearchSuppressShortViewVariations,
|
||||
"ContextualSearchSuppressShortView")},
|
||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/add-flag-to-control-video-playback-resume-feature.inc b/cromite_flags/chrome/browser/about_flags_cc/add-flag-to-control-video-playback-resume-feature.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/about_flags_cc/add-flag-to-control-video-playback-resume-feature.inc
|
||||
@@ -0,0 +1,13 @@
|
||||
+#ifdef FLAG_SECTION
|
||||
+
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+
|
||||
+ {"resume-background-video",
|
||||
+ flag_descriptions::kResumeBackgroundVideoName,
|
||||
+ flag_descriptions::kResumeBackgroundVideoDescription, kOsAll,
|
||||
+ "Resume background video.",
|
||||
+ "Resume background video playback when tab re-gains focus; additionally, "
|
||||
+ "it will pause video playback every single time you switch tabs.", kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(media::kResumeBackgroundVideo)},
|
||||
{"related-searches", flag_descriptions::kRelatedSearchesName,
|
||||
flag_descriptions::kRelatedSearchesDescription, kOsAndroid,
|
||||
FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kRelatedSearches,
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -1408,6 +1408,11 @@ const char kEnableManagedConfigurationWebApiDescription[] =
|
||||
"Allows website to access a managed configuration provided by the device "
|
||||
"administrator for the origin.";
|
||||
|
||||
+const char kResumeBackgroundVideoName[] = "Resume background video.";
|
||||
+const char kResumeBackgroundVideoDescription[] =
|
||||
+ "Resume background video playback when tab re-gains focus; additionally, "
|
||||
+ "it will pause video playback every single time you switch tabs.";
|
||||
+
|
||||
const char kEnablePixelCanvasRecordingName[] = "Enable pixel canvas recording";
|
||||
const char kEnablePixelCanvasRecordingDescription[] =
|
||||
"Pixel canvas recording allows the compositor to raster contents aligned "
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -766,6 +766,9 @@ extern const char kEnablePenetratingImageSelectionDescription[];
|
||||
extern const char kEnablePerfettoSystemTracingName[];
|
||||
extern const char kEnablePerfettoSystemTracingDescription[];
|
||||
|
||||
+extern const char kResumeBackgroundVideoName[];
|
||||
+extern const char kResumeBackgroundVideoDescription[];
|
||||
+#endif // BUILDFLAG(IS_ANDROID)
|
||||
+
|
||||
extern const char kEnablePeripheralCustomizationName[];
|
||||
extern const char kEnablePeripheralCustomizationDescription[];
|
||||
|
||||
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
||||
--- a/media/base/media_switches.cc
|
||||
+++ b/media/base/media_switches.cc
|
||||
@@ -353,12 +353,8 @@ BASE_FEATURE(kPreloadMetadataLazyLoad,
|
||||
// Let videos be resumed via remote controls (for example, the notification)
|
||||
// when in background.
|
||||
BASE_FEATURE(kResumeBackgroundVideo,
|
||||
- "resume-background-video",
|
||||
-#if BUILDFLAG(IS_ANDROID)
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT
|
||||
-#else
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT
|
||||
-#endif
|
||||
+ "resume-background-video", // disabled by default
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT // in Bromite
|
||||
);
|
||||
|
||||
// When enabled, MediaCapabilities will check with GPU Video Accelerator
|
||||
+#endif // ifdef FLAG_SECTION
|
||||
diff --git a/cromite_flags/media/base/media_switches_cc/add-flag-to-control-video-playback-resume-feature.inc b/cromite_flags/media/base/media_switches_cc/add-flag-to-control-video-playback-resume-feature.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/media/base/media_switches_cc/add-flag-to-control-video-playback-resume-feature.inc
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kResumeBackgroundVideo);
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -4,100 +4,59 @@ Subject: Add flag to disable IPv6 probes
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/browser/about_flags.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
net/BUILD.gn | 1 +
|
||||
net/base/features.cc | 4 ++++
|
||||
net/base/features.h | 3 +++
|
||||
net/dns/host_resolver_manager.cc | 11 +++++++++++
|
||||
services/network/public/cpp/features.cc | 5 +++++
|
||||
services/network/public/cpp/features.h | 1 +
|
||||
9 files changed, 36 insertions(+)
|
||||
.../about_flags_cc/add-flag-to-disable-IPv6-probes.inc | 8 ++++++++
|
||||
.../base/features_cc/add-flag-to-disable-IPv6-probes.inc | 3 +++
|
||||
.../base/features_h/add-flag-to-disable-IPv6-probes.inc | 2 ++
|
||||
net/BUILD.gn | 1 +
|
||||
net/dns/host_resolver_manager.cc | 8 ++++++++
|
||||
5 files changed, 22 insertions(+)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-flag-to-disable-IPv6-probes.inc
|
||||
create mode 100644 cromite_flags/net/base/features_cc/add-flag-to-disable-IPv6-probes.inc
|
||||
create mode 100644 cromite_flags/net/base/features_h/add-flag-to-disable-IPv6-probes.inc
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -6475,6 +6475,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"enable-reader-mode-in-cct", flag_descriptions::kReaderModeInCCTName,
|
||||
flag_descriptions::kReaderModeInCCTDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)},
|
||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/add-flag-to-disable-IPv6-probes.inc b/cromite_flags/chrome/browser/about_flags_cc/add-flag-to-disable-IPv6-probes.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/about_flags_cc/add-flag-to-disable-IPv6-probes.inc
|
||||
@@ -0,0 +1,8 @@
|
||||
+#ifdef FLAG_SECTION
|
||||
+
|
||||
+ {"ipv6-probing",
|
||||
+ flag_descriptions::kIPv6ProbingName,
|
||||
+ flag_descriptions::kIPv6ProbingDescription, kOsAll,
|
||||
+ "Enable IPv6 probing.",
|
||||
+ "Send IPv6 probes to a RIPE DNS address to verify IPv6 connectivity.", kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(net::features::kIPv6Probing)},
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
|
||||
{"shopping-list", commerce::flag_descriptions::kShoppingListName,
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -3821,6 +3821,10 @@ const char kCCTTextFragmentLookupApiEnabledName[] =
|
||||
const char kCCTTextFragmentLookupApiEnabledDescription[] =
|
||||
"Enable CCT API to lookup text fragments";
|
||||
|
||||
+const char kIPv6ProbingName[] = "Enable IPv6 probing.";
|
||||
+const char kIPv6ProbingDescription[] =
|
||||
+ "Send IPv6 probes to a RIPE DNS address to verify IPv6 connectivity.";
|
||||
+
|
||||
const char kChimeAlwaysShowNotificationDescription[] =
|
||||
"A debug flag to always show Chime notification after receiving a payload.";
|
||||
const char kChimeAlwaysShowNotificationName[] =
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -846,6 +846,9 @@ extern const char kEnableWasmStringrefName[];
|
||||
extern const char kEnableWasmStringrefDescription[];
|
||||
|
||||
extern const char kEnableWasmTieringName[];
|
||||
+extern const char kIPv6ProbingName[];
|
||||
+extern const char kIPv6ProbingDescription[];
|
||||
+
|
||||
extern const char kEnableWasmTieringDescription[];
|
||||
|
||||
extern const char kEvDetailsInPageInfoName[];
|
||||
+#endif // ifdef FLAG_SECTION
|
||||
diff --git a/cromite_flags/net/base/features_cc/add-flag-to-disable-IPv6-probes.inc b/cromite_flags/net/base/features_cc/add-flag-to-disable-IPv6-probes.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/net/base/features_cc/add-flag-to-disable-IPv6-probes.inc
|
||||
@@ -0,0 +1,3 @@
|
||||
+CROMITE_FEATURE(kIPv6Probing,
|
||||
+ "IPv6Probing",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
diff --git a/cromite_flags/net/base/features_h/add-flag-to-disable-IPv6-probes.inc b/cromite_flags/net/base/features_h/add-flag-to-disable-IPv6-probes.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/net/base/features_h/add-flag-to-disable-IPv6-probes.inc
|
||||
@@ -0,0 +1,2 @@
|
||||
+// Enable IPv6 ping probes to RIPE DNS.
|
||||
+NET_EXPORT BASE_DECLARE_FEATURE(kIPv6Probing);
|
||||
diff --git a/net/BUILD.gn b/net/BUILD.gn
|
||||
--- a/net/BUILD.gn
|
||||
+++ b/net/BUILD.gn
|
||||
@@ -1085,6 +1085,7 @@ component("net") {
|
||||
@@ -1030,6 +1030,7 @@ component("net") {
|
||||
"//build:chromeos_buildflags",
|
||||
"//net/data/ssl/chrome_root_store:gen_root_store_inc",
|
||||
"//components/miracle_parameter/common",
|
||||
"//net/http:transport_security_state_generated_files",
|
||||
+ "//components/network_session_configurator/common"
|
||||
]
|
||||
|
||||
public_deps = [
|
||||
diff --git a/net/base/features.cc b/net/base/features.cc
|
||||
--- a/net/base/features.cc
|
||||
+++ b/net/base/features.cc
|
||||
@@ -40,6 +40,10 @@ BASE_FEATURE(kUseDnsHttpsSvcb,
|
||||
const base::FeatureParam<bool> kUseDnsHttpsSvcbEnforceSecureResponse{
|
||||
&kUseDnsHttpsSvcb, "UseDnsHttpsSvcbEnforceSecureResponse", false};
|
||||
|
||||
+BASE_FEATURE(kIPv6Probing,
|
||||
+ "IPv6Probing",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+
|
||||
const base::FeatureParam<base::TimeDelta> kUseDnsHttpsSvcbInsecureExtraTimeMax{
|
||||
&kUseDnsHttpsSvcb, "UseDnsHttpsSvcbInsecureExtraTimeMax",
|
||||
base::Milliseconds(50)};
|
||||
diff --git a/net/base/features.h b/net/base/features.h
|
||||
--- a/net/base/features.h
|
||||
+++ b/net/base/features.h
|
||||
@@ -52,6 +52,9 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseDnsHttpsSvcb);
|
||||
NET_EXPORT extern const base::FeatureParam<bool>
|
||||
kUseDnsHttpsSvcbEnforceSecureResponse;
|
||||
|
||||
+// Enable IPv6 ping probes to RIPE DNS.
|
||||
+NET_EXPORT BASE_DECLARE_FEATURE(kIPv6Probing);
|
||||
+
|
||||
// If we are still waiting for an HTTPS transaction after all the
|
||||
// other transactions in an insecure DnsTask have completed, we will compute a
|
||||
// timeout for the remaining transaction. The timeout will be
|
||||
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
||||
--- a/net/dns/host_resolver_manager.cc
|
||||
+++ b/net/dns/host_resolver_manager.cc
|
||||
@@ -110,6 +110,7 @@
|
||||
@@ -113,6 +113,7 @@
|
||||
#include "net/log/net_log_event_type.h"
|
||||
#include "net/log/net_log_source.h"
|
||||
#include "net/log/net_log_source_type.h"
|
||||
@@ -105,17 +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/socket/client_socket_factory.h"
|
||||
#include "net/url_request/url_request_context.h"
|
||||
@@ -677,6 +678,9 @@ class HostResolverManager::RequestImpl
|
||||
// request source is LOCAL_ONLY. This is due to LOCAL_ONLY requiring a
|
||||
// synchronous response, so it cannot wait on an async probe result and
|
||||
// cannot make assumptions about reachability.
|
||||
+ if (!base::FeatureList::IsEnabled(features::kIPv6Probing)) {
|
||||
+ return OK;
|
||||
+ }
|
||||
if (parameters_.source == HostResolverSource::LOCAL_ONLY) {
|
||||
int rv = resolver_->StartIPv6ReachabilityCheck(
|
||||
source_net_log_, GetClientSocketFactory(),
|
||||
@@ -3895,6 +3899,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck(
|
||||
@@ -1373,6 +1374,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck(
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -129,31 +78,4 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
||||
if (probing_ipv6_) {
|
||||
ipv6_request_callbacks_.push_back(std::move(callback));
|
||||
return ERR_IO_PENDING;
|
||||
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
|
||||
--- a/services/network/public/cpp/features.cc
|
||||
+++ b/services/network/public/cpp/features.cc
|
||||
@@ -31,6 +31,11 @@ BASE_FEATURE(kThrottleDelayable,
|
||||
"ThrottleDelayable",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
+// Enable IPv6 ping probes to RIPE DNS.
|
||||
+BASE_FEATURE(kIPv6Probing,
|
||||
+ "IPv6Probing",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+
|
||||
// When kPriorityRequestsDelayableOnSlowConnections is enabled, HTTP
|
||||
// requests fetched from a SPDY/QUIC/H2 proxies can be delayed by the
|
||||
// ResourceScheduler just as HTTP/1.1 resources are. However, requests from such
|
||||
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
|
||||
--- a/services/network/public/cpp/features.h
|
||||
+++ b/services/network/public/cpp/features.h
|
||||
@@ -17,6 +17,7 @@ namespace features {
|
||||
COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kNetworkErrorLogging);
|
||||
COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kReporting);
|
||||
COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kThrottleDelayable);
|
||||
+COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kIPv6Probing);
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
BASE_DECLARE_FEATURE(kDelayRequestsOnMultiplexedConnections);
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -7,54 +7,26 @@ when flag is disabled no external intent will ever be allowed, for any URL.
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/browser/about_flags.cc | 5 +++++
|
||||
chrome/browser/flag_descriptions.cc | 6 ++++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
3 files changed, 14 insertions(+)
|
||||
...Add-flag-to-disable-external-intent-requests.inc | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -3849,6 +3849,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName,
|
||||
flag_descriptions::kUiPartialSwapDescription, kOsAll,
|
||||
SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)},
|
||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc
|
||||
@@ -0,0 +1,13 @@
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+ {"allow-external-intent-requests", flag_descriptions::kDisableExternalIntentRequestsName,
|
||||
+ flag_descriptions::kDisableExternalIntentRequestsDescription, kOsAll,
|
||||
+
|
||||
+#ifdef FLAG_SECTION
|
||||
+
|
||||
+ {"allow-external-intent-requests",
|
||||
+ "Allow forward URL requests to external intents",
|
||||
+ "If disabled, URL requests will never"
|
||||
+ "allow for redirecting to an external intent.", kOsAndroid,
|
||||
+ SINGLE_DISABLE_VALUE_TYPE("disable-external-intent-requests")},
|
||||
+
|
||||
+#endif
|
||||
{"disable-webrtc-hw-decoding", flag_descriptions::kWebrtcHwDecodingName,
|
||||
flag_descriptions::kWebrtcHwDecodingDescription, kOsAndroid | kOsCrOS,
|
||||
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableWebRtcHWDecoding)},
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -4112,6 +4112,12 @@ const char kPolicyLogsPageAndroidDescription[] =
|
||||
"Enable the new chrome://policy-logs page containing logs for debugging "
|
||||
"policy related issues on Android.";
|
||||
|
||||
+const char kDisableExternalIntentRequestsName[] =
|
||||
+ "Allow forward URL requests to external intents";
|
||||
+const char kDisableExternalIntentRequestsDescription[] =
|
||||
+ "If disabled, URL requests will never"
|
||||
+ "allow for redirecting to an external intent.";
|
||||
+
|
||||
const char kQueryTilesName[] = "Show query tiles";
|
||||
const char kQueryTilesDescription[] = "Shows query tiles in Chrome";
|
||||
const char kQueryTilesNTPName[] = "Show query tiles in NTP";
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -2408,6 +2408,9 @@ extern const char kQueryTilesNTPDescription[];
|
||||
extern const char kQueryTilesOnStartName[];
|
||||
extern const char kQueryTilesOnStartDescription[];
|
||||
extern const char kQueryTilesSingleTierName[];
|
||||
+extern const char kDisableExternalIntentRequestsName[];
|
||||
+extern const char kDisableExternalIntentRequestsDescription[];
|
||||
+
|
||||
extern const char kQueryTilesSingleTierDescription[];
|
||||
extern const char kQueryTilesEnableQueryEditingName[];
|
||||
extern const char kQueryTilesEnableQueryEditingDescription[];
|
||||
+#endif
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -4,61 +4,23 @@ Subject: Add flag to disable vibration
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/browser/about_flags.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.cc | 3 +++
|
||||
chrome/browser/flag_descriptions.h | 2 ++
|
||||
content/child/runtime_features.cc | 1 +
|
||||
content/public/common/content_features.cc | 5 +++++
|
||||
content/public/common/content_features.h | 2 ++
|
||||
third_party/blink/public/platform/web_runtime_features.h | 1 +
|
||||
.../blink/renderer/modules/vibration/vibration_controller.cc | 3 +++
|
||||
.../blink/renderer/platform/exported/web_runtime_features.cc | 4 ++++
|
||||
.../blink/renderer/platform/runtime_enabled_features.json5 | 4 ++++
|
||||
10 files changed, 29 insertions(+)
|
||||
content/child/runtime_features.cc | 1 +
|
||||
.../about_flags_cc/Add-flag-to-disable-vibration.inc | 8 ++++++++
|
||||
.../content_features_cc/Add-flag-to-disable-vibration.inc | 4 ++++
|
||||
.../content_features_h/Add-flag-to-disable-vibration.inc | 1 +
|
||||
third_party/blink/public/platform/web_runtime_features.h | 1 +
|
||||
.../renderer/modules/vibration/vibration_controller.cc | 3 +++
|
||||
.../renderer/platform/exported/web_runtime_features.cc | 4 ++++
|
||||
.../renderer/platform/runtime_enabled_features.json5 | 4 ++++
|
||||
8 files changed, 26 insertions(+)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-vibration.inc
|
||||
create mode 100644 cromite_flags/content/public/common/content_features_cc/Add-flag-to-disable-vibration.inc
|
||||
create mode 100644 cromite_flags/content/public/common/content_features_h/Add-flag-to-disable-vibration.inc
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -7943,6 +7943,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(features::kNewMacNotificationAPI)},
|
||||
#endif
|
||||
|
||||
+ {"enable-vibration", flag_descriptions::kEnableVibrationName,
|
||||
+ flag_descriptions::kEnableVibrationDescription, kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(features::kVibration)},
|
||||
+
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
{"exo-consumed-by-ime-by-flag",
|
||||
flag_descriptions::kExoConsumedByImeByFlagName,
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -6959,6 +6959,9 @@ const char kLacrosMergeIcuDataFileDescription[] =
|
||||
"Enables sharing common areas of icudtl.dat between Ash and Lacros.";
|
||||
#endif // #if BUILDFLAG(IS_CHROMEOS_LACROS)
|
||||
|
||||
+const char kEnableVibrationName[] = "Vibration";
|
||||
+const char kEnableVibrationDescription[] = "Enable vibration API; an user gesture will still be needed.";
|
||||
+
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
const char kCrOSDspBasedAecAllowedName[] =
|
||||
"Allow CRAS to use a DSP-based AEC if available";
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -4227,6 +4227,8 @@ extern const char kWebUITabStripTabDragIntegrationName[];
|
||||
extern const char kWebUITabStripTabDragIntegrationDescription[];
|
||||
#endif // BUILDFLAG(ENABLE_WEBUI_TAB_STRIP) && BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
|
||||
+extern const char kEnableVibrationName[];
|
||||
+extern const char kEnableVibrationDescription[];
|
||||
#if defined(TOOLKIT_VIEWS) || BUILDFLAG(IS_ANDROID)
|
||||
|
||||
extern const char kAutofillCreditCardUploadName[];
|
||||
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
|
||||
--- a/content/child/runtime_features.cc
|
||||
+++ b/content/child/runtime_features.cc
|
||||
@@ -101,6 +101,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
|
||||
@@ -103,6 +103,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
|
||||
if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) {
|
||||
WebRuntimeFeatures::EnableMediaSession(false);
|
||||
}
|
||||
@@ -66,40 +28,41 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
|
||||
--- a/content/public/common/content_features.cc
|
||||
+++ b/content/public/common/content_features.cc
|
||||
@@ -157,6 +157,11 @@ BASE_FEATURE(kBackForwardCacheMemoryControls,
|
||||
#endif
|
||||
);
|
||||
|
||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-vibration.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-vibration.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-vibration.inc
|
||||
@@ -0,0 +1,8 @@
|
||||
+#ifdef FLAG_SECTION
|
||||
+
|
||||
+ {"enable-vibration",
|
||||
+ "Vibration",
|
||||
+ "Enable vibration API; an user gesture will still be needed.", kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(features::kVibration)},
|
||||
+
|
||||
+#endif
|
||||
diff --git a/cromite_flags/content/public/common/content_features_cc/Add-flag-to-disable-vibration.inc b/cromite_flags/content/public/common/content_features_cc/Add-flag-to-disable-vibration.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/content/public/common/content_features_cc/Add-flag-to-disable-vibration.inc
|
||||
@@ -0,0 +1,4 @@
|
||||
+// Enables vibration; an user gesture will still be required if enabled.
|
||||
+BASE_FEATURE(kVibration,
|
||||
+ "VibrationEnabled",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+
|
||||
// When this feature is enabled, private network requests initiated from
|
||||
// non-secure contexts in the `public` address space are blocked.
|
||||
//
|
||||
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
|
||||
--- a/content/public/common/content_features.h
|
||||
+++ b/content/public/common/content_features.h
|
||||
@@ -344,6 +344,8 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWarmUpNetworkProcess);
|
||||
CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebNfc);
|
||||
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
+CROMITE_FEATURE(kVibration,
|
||||
+ "VibrationEnabled",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
diff --git a/cromite_flags/content/public/common/content_features_h/Add-flag-to-disable-vibration.inc b/cromite_flags/content/public/common/content_features_h/Add-flag-to-disable-vibration.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/content/public/common/content_features_h/Add-flag-to-disable-vibration.inc
|
||||
@@ -0,0 +1 @@
|
||||
+CONTENT_EXPORT BASE_DECLARE_FEATURE(kVibration);
|
||||
+
|
||||
|
||||
#if BUILDFLAG(IS_MAC)
|
||||
CONTENT_EXPORT BASE_DECLARE_FEATURE(kDeviceMonitorMac);
|
||||
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
|
||||
+++ b/third_party/blink/public/platform/web_runtime_features.h
|
||||
@@ -70,6 +70,7 @@ class BLINK_PLATFORM_EXPORT WebRuntimeFeatures : public WebRuntimeFeaturesBase {
|
||||
static void EnableFingerprintingCanvasMeasureTextNoise(bool);
|
||||
@@ -71,6 +71,7 @@ class BLINK_PLATFORM_EXPORT WebRuntimeFeatures : public WebRuntimeFeaturesBase {
|
||||
static void EnableFingerprintingCanvasImageDataNoise(bool);
|
||||
static void EnableFluentScrollbars(bool);
|
||||
static void EnableFluentOverlayScrollbars(bool);
|
||||
+ static void EnableVibration(bool);
|
||||
|
||||
WebRuntimeFeatures() = delete;
|
||||
@@ -107,7 +70,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa
|
||||
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
|
||||
+++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
|
||||
@@ -29,6 +29,7 @@
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "third_party/blink/renderer/core/frame/local_frame.h"
|
||||
#include "third_party/blink/renderer/core/frame/navigator.h"
|
||||
#include "third_party/blink/renderer/core/page/page.h"
|
||||
@@ -115,7 +78,7 @@ diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.c
|
||||
|
||||
// Maximum number of entries in a vibration pattern.
|
||||
const unsigned kVibrationPatternLengthMax = 99;
|
||||
@@ -152,6 +153,8 @@ bool VibrationController::vibrate(Navigator& navigator,
|
||||
@@ -109,6 +110,8 @@ bool VibrationController::vibrate(Navigator& navigator,
|
||||
// reference to |window| or |navigator| was retained in another window.
|
||||
if (!navigator.DomWindow())
|
||||
return false;
|
||||
@@ -141,7 +104,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c
|
||||
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
@@ -2495,6 +2495,10 @@
|
||||
@@ -635,6 +635,10 @@
|
||||
status: {"Android": "stable"},
|
||||
base_feature: "none",
|
||||
},
|
||||
@@ -150,7 +113,6 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
+ status: "stable",
|
||||
+ },
|
||||
{
|
||||
name: "OriginIsolationHeader",
|
||||
status: "stable",
|
||||
name: "CompositionForegroundMarkers",
|
||||
status: {
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From: Your Name <you@example.com>
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Thu, 20 Oct 2022 09:34:48 +0000
|
||||
Subject: Add kill switch for unsupported clangd flags
|
||||
|
||||
@@ -7,38 +7,47 @@ 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
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
build/config/compiler/BUILD.gn | 6 +++++-
|
||||
build_overrides/build.gni | 3 +++
|
||||
2 files changed, 8 insertions(+), 1 deletion(-)
|
||||
build/config/compiler/BUILD.gn | 10 +++++++++-
|
||||
build_overrides/build.gni | 3 +++
|
||||
2 files changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
||||
--- a/build/config/compiler/BUILD.gn
|
||||
+++ b/build/config/compiler/BUILD.gn
|
||||
@@ -1772,7 +1772,11 @@ config("default_warnings") {
|
||||
# TODO(crbug.com/1412713) Evaluate and possibly enable.
|
||||
"-Wno-deprecated-this-capture",
|
||||
]
|
||||
@@ -1889,13 +1889,21 @@ config("default_warnings") {
|
||||
# TODO(https://crbug.com/1490607): Fix and re-enable.
|
||||
"-Wno-thread-safety-reference-return",
|
||||
]
|
||||
-
|
||||
+ if (skip_clangd_unsupported_options) {
|
||||
+ cflags -= [
|
||||
+ "-Wno-deprecated-builtins",
|
||||
+ ]
|
||||
+ }
|
||||
if (llvm_force_head_revision) {
|
||||
# TODO(https://crbug.com/1448905): Evaluate and possibly enable.
|
||||
cflags += [ "-Wno-builtin-macro-redefined" ]
|
||||
if (!is_nacl) {
|
||||
cflags_cc += [
|
||||
# TODO(https://crbug.com/1513724): Fix and re-enable.
|
||||
"-Wno-c++11-narrowing-const-reference",
|
||||
]
|
||||
}
|
||||
+ if (skip_clangd_unsupported_options) {
|
||||
+ cflags -= [
|
||||
+ "-Wno-deprecated-builtins",
|
||||
+ "-Wno-thread-safety-reference-return",
|
||||
+ ]
|
||||
+ cflags_cc -= [
|
||||
+ "-Wno-c++11-narrowing-const-reference",
|
||||
+ ]
|
||||
+ }
|
||||
}
|
||||
|
||||
# Some builders, such as Cronet, use a different version of Clang than
|
||||
diff --git a/build_overrides/build.gni b/build_overrides/build.gni
|
||||
--- a/build_overrides/build.gni
|
||||
+++ b/build_overrides/build.gni
|
||||
@@ -58,6 +58,9 @@ declare_args() {
|
||||
# Allows third-party repositories to use C++17 for MSVC builds
|
||||
# TODO(https://crbug.com/pdfium/1932) Remove once pdfium builds on MSVC C++20
|
||||
msvc_use_cxx17 = false
|
||||
+
|
||||
@@ -62,6 +62,9 @@ declare_args() {
|
||||
# to lack of toolchain support.
|
||||
gtest_enable_absl_printers = !is_nacl
|
||||
|
||||
+ # Allows clangd builds by suppressing unsupported parameters
|
||||
+ skip_clangd_unsupported_options = false
|
||||
}
|
||||
|
||||
# Allows different projects to specify their own suppression/ignore lists for
|
||||
+
|
||||
# Allow projects that wish to stay on C++17 to override Chromium's default.
|
||||
# TODO(crbug.com/1402249): evaluate removing this end of 2023
|
||||
use_cxx17 = false
|
||||
--
|
||||
2.25.1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,33 +4,34 @@ Subject: Add menu item to bookmark all tabs
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/android/java/res/menu/main_menu.xml | 7 +++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 24 ++++++++
|
||||
.../browser/bookmarks/BookmarkBridge.java | 61 +++++++++++++++++++
|
||||
.../browser/bookmarks/BookmarkUtils.java | 4 ++
|
||||
.../bookmarks/android/bookmark_bridge.cc | 19 +++++-
|
||||
.../bookmarks/android/bookmark_bridge.h | 4 ++
|
||||
.../browser/bookmarks/bookmark_html_writer.cc | 8 ++-
|
||||
.../bookmarks/chrome_bookmark_client.cc | 2 +
|
||||
chrome/android/java/res/menu/main_menu.xml | 7 ++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 24 +++++++
|
||||
.../browser/bookmarks/BookmarkBridge.java | 67 +++++++++++++++++++
|
||||
.../bookmarks/android/bookmark_bridge.cc | 44 ++++++++++++
|
||||
.../bookmarks/android/bookmark_bridge.h | 8 +++
|
||||
.../browser/bookmarks/bookmark_html_writer.cc | 11 ++-
|
||||
.../dialogs/DownloadLocationCustomView.java | 4 +-
|
||||
.../strings/android_chrome_strings.grd | 3 +
|
||||
components/bookmark_bar_strings.grdp | 6 ++
|
||||
.../bookmarks/browser/bookmark_codec.cc | 22 +++++--
|
||||
components/bookmarks/browser/bookmark_codec.h | 7 ++-
|
||||
.../browser/bookmark_load_details.cc | 4 ++
|
||||
.../bookmarks/browser/bookmark_load_details.h | 3 +
|
||||
.../bookmarks/browser/bookmark_codec.cc | 20 +++++-
|
||||
components/bookmarks/browser/bookmark_codec.h | 7 +-
|
||||
.../browser/bookmark_load_details.cc | 8 ++-
|
||||
.../bookmarks/browser/bookmark_load_details.h | 2 +
|
||||
.../bookmarks/browser/bookmark_model.cc | 3 +-
|
||||
components/bookmarks/browser/bookmark_model.h | 7 +++
|
||||
components/bookmarks/browser/bookmark_node.cc | 15 +++++
|
||||
components/bookmarks/browser/bookmark_node.h | 5 ++
|
||||
components/bookmarks/browser/model_loader.cc | 3 +-
|
||||
components/bookmarks/browser/bookmark_model.h | 7 ++
|
||||
components/bookmarks/browser/bookmark_node.cc | 11 +++
|
||||
components/bookmarks/browser/bookmark_node.h | 3 +
|
||||
.../bookmarks/browser/bookmark_storage.cc | 2 +
|
||||
.../bookmarks/browser/bookmark_uuids.cc | 3 +
|
||||
components/bookmarks/browser/bookmark_uuids.h | 1 +
|
||||
components/bookmarks/browser/model_loader.cc | 8 ++-
|
||||
.../bookmark_specifics_conversions.cc | 1 +
|
||||
21 files changed, 201 insertions(+), 11 deletions(-)
|
||||
22 files changed, 236 insertions(+), 14 deletions(-)
|
||||
|
||||
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
|
||||
@@ -69,6 +69,10 @@ found in the LICENSE file.
|
||||
@@ -71,6 +71,10 @@ found in the LICENSE file.
|
||||
<item android:id="@+id/all_bookmarks_menu_id"
|
||||
android:title="@string/menu_bookmarks"
|
||||
android:icon="@drawable/btn_star_filled" />
|
||||
@@ -41,10 +42,10 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
||||
<item android:id="@+id/recent_tabs_menu_id"
|
||||
android:title="@string/menu_recent_tabs"
|
||||
android:icon="@drawable/devices_black_24dp" />
|
||||
@@ -181,6 +185,9 @@ found in the LICENSE file.
|
||||
<item android:id="@id/quick_delete_menu_id"
|
||||
android:title="@string/menu_quick_delete"
|
||||
android:icon="@drawable/quick_delete_trash_bin_icon_24dp"/>
|
||||
@@ -186,6 +190,9 @@ found in the LICENSE file.
|
||||
<item android:id="@+id/close_all_incognito_tabs_menu_id"
|
||||
android:title="@string/menu_close_all_incognito_tabs"
|
||||
android:icon="@drawable/btn_close_white" />
|
||||
+ <item android:id="@+id/bookmark_all_tabs_menu_id"
|
||||
+ android:title="@string/menu_bookmark_all_tabs"
|
||||
+ android:icon="@drawable/ic_folder_blue_24dp" />
|
||||
@@ -54,7 +55,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -80,6 +80,7 @@ import org.chromium.chrome.browser.back_press.MinimizeAppAndCloseTabBackPressHan
|
||||
@@ -89,6 +89,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker;
|
||||
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
|
||||
import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
|
||||
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
|
||||
@@ -62,17 +63,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
import org.chromium.chrome.browser.compositor.layouts.Layout;
|
||||
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
|
||||
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
|
||||
@@ -2282,6 +2283,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
|
||||
() -> getTabModelSelector().closeAllTabs(), /*isIncognito=*/false);
|
||||
@@ -2950,6 +2951,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
getTabModelSelectorSupplier().get(),
|
||||
() -> getTabModelSelector().closeAllTabs());
|
||||
RecordUserAction.record("MobileMenuCloseAllTabs");
|
||||
+ } else if (id == R.id.bookmark_all_tabs_menu_id) {
|
||||
+ bookmarkAllTabs();
|
||||
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
|
||||
// Close only incognito tabs
|
||||
CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
|
||||
@@ -2347,6 +2350,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
mTabModalHandler.onOmniboxFocusChanged(hasFocus);
|
||||
CloseAllTabsDialog.show(
|
||||
@@ -3021,6 +3024,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus);
|
||||
}
|
||||
|
||||
+ private void bookmarkAllTabs() {
|
||||
@@ -102,18 +103,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
@@ -29,6 +29,7 @@ import com.google.protobuf.InvalidProtocolBufferException;
|
||||
@@ -18,11 +18,17 @@ import org.jni_zero.NativeMethods;
|
||||
|
||||
import org.chromium.base.Callback;
|
||||
import org.chromium.base.ContextUtils;
|
||||
+import org.chromium.base.Log;
|
||||
import org.chromium.base.ObserverList;
|
||||
import org.chromium.base.ThreadUtils;
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
@@ -39,6 +40,10 @@ import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
|
||||
import org.chromium.base.metrics.RecordUserAction;
|
||||
import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.read_later.ReadingListUtils;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
+import org.chromium.chrome.browser.tab.Tab;
|
||||
+import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
|
||||
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
|
||||
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController;
|
||||
@@ -121,17 +121,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
import org.chromium.components.bookmarks.BookmarkId;
|
||||
import org.chromium.components.bookmarks.BookmarkItem;
|
||||
import org.chromium.components.bookmarks.BookmarkType;
|
||||
@@ -82,6 +87,8 @@ import java.io.File;
|
||||
* bookmark model stored in native.
|
||||
*/
|
||||
@@ -82,6 +88,8 @@ import org.chromium.ui.modaldialog.DialogDismissalCause;
|
||||
class BookmarkBridge {
|
||||
private final ObserverList<BookmarkModelObserver> mObservers = new ObserverList<>();
|
||||
|
||||
+ private static final String TAG = "BookmarkBridge";
|
||||
+
|
||||
private long mNativeBookmarkBridge;
|
||||
private boolean mIsDestroyed;
|
||||
private boolean mIsDoingExtensiveChanges;
|
||||
@@ -379,6 +386,16 @@ class BookmarkBridge {
|
||||
mNativeBookmarkBridge, BookmarkBridge.this);
|
||||
@@ -402,6 +410,16 @@ class BookmarkBridge {
|
||||
return mMobileFolderId;
|
||||
}
|
||||
|
||||
+ /**
|
||||
@@ -144,17 +144,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
+ mNativeBookmarkBridge, BookmarkBridge.this);
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* @return Id representing the special "other" folder from bookmark model.
|
||||
*/
|
||||
@@ -1002,6 +1019,49 @@ class BookmarkBridge {
|
||||
mNativeBookmarkBridge, BookmarkBridge.this, title, url);
|
||||
/** Returns Id representing the special "other" folder from bookmark model. */
|
||||
public BookmarkId getOtherFolderId() {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
@@ -1092,6 +1110,50 @@ class BookmarkBridge {
|
||||
.addToReadingList(mNativeBookmarkBridge, parentId, title, url);
|
||||
}
|
||||
|
||||
+ // Used to bookmark all tabs in a specific folder, created if not existing
|
||||
+ public BookmarkId addToTabsCollection(Context context, Tab tab) {
|
||||
+ BookmarkId parent = getTabsCollectionFolderId();
|
||||
+ BookmarkId existingId = getUserBookmarkIdForTab(tab);
|
||||
+ BookmarkId existingId = BookmarkBridgeJni.get().getBookmarkIdForTabsCollection(
|
||||
+ mNativeBookmarkBridge, tab.getOriginalUrl());
|
||||
+ if (existingId != null && existingId.getId() != BookmarkId.INVALID_ID) {
|
||||
+ BookmarkId existingBookmarkId = new BookmarkId(existingId.getId(), BookmarkType.NORMAL);
|
||||
+ BookmarkItem existingBookmark = getBookmarkById(existingBookmarkId);
|
||||
@@ -195,60 +196,65 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* @param url The URL of the reading list item.
|
||||
* @return The reading list item with the URL, or null if no such reading list item.
|
||||
@@ -1220,6 +1280,7 @@ class BookmarkBridge {
|
||||
void getAllFoldersWithDepths(long nativeBookmarkBridge, BookmarkBridge caller,
|
||||
List<BookmarkId> folderList, List<Integer> depthList);
|
||||
BookmarkId getRootFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
|
||||
+ BookmarkId getTabsCollectionFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
|
||||
BookmarkId getMobileFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
|
||||
BookmarkId getOtherFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
|
||||
BookmarkId getDesktopFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
|
||||
@@ -575,6 +575,7 @@ public class BookmarkUtils {
|
||||
List<BookmarkId> topLevelFolders = new ArrayList<>();
|
||||
BookmarkId desktopNodeId = bookmarkModel.getDesktopFolderId();
|
||||
BookmarkId mobileNodeId = bookmarkModel.getMobileFolderId();
|
||||
+ BookmarkId tabsCollectionNodeId = bookmarkModel.getTabsCollectionFolderId();
|
||||
BookmarkId othersNodeId = bookmarkModel.getOtherFolderId();
|
||||
* Helper method to mark an item as read.
|
||||
*
|
||||
@@ -1334,6 +1396,9 @@ class BookmarkBridge {
|
||||
|
||||
List<BookmarkId> specialFoldersIds =
|
||||
@@ -600,6 +601,9 @@ public class BookmarkUtils {
|
||||
if (bookmarkModel.isFolderVisible(mobileNodeId)) {
|
||||
topLevelFolders.add(mobileNodeId);
|
||||
}
|
||||
+ if (bookmarkModel.isFolderVisible(tabsCollectionNodeId)) {
|
||||
+ topLevelFolders.add(tabsCollectionNodeId);
|
||||
+ }
|
||||
if (bookmarkModel.isFolderVisible(desktopNodeId)) {
|
||||
topLevelFolders.add(desktopNodeId);
|
||||
}
|
||||
BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(long nativeBookmarkBridge, GURL url);
|
||||
|
||||
+ BookmarkId getBookmarkIdForTabsCollection(
|
||||
+ long nativeBookmarkBridge, GURL url);
|
||||
+
|
||||
BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type);
|
||||
|
||||
void getTopLevelFolderIds(
|
||||
@@ -1353,6 +1418,8 @@ class BookmarkBridge {
|
||||
|
||||
BookmarkId getRootFolderId(long nativeBookmarkBridge);
|
||||
|
||||
+ BookmarkId getTabsCollectionFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
|
||||
+
|
||||
BookmarkId getMobileFolderId(long nativeBookmarkBridge);
|
||||
|
||||
BookmarkId getOtherFolderId(long nativeBookmarkBridge);
|
||||
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
||||
--- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
||||
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
||||
@@ -470,12 +470,17 @@ void BookmarkBridge::GetTopLevelFolderIds(
|
||||
std::size_t special_count = top_level_folders.size();
|
||||
@@ -367,6 +367,33 @@ void BookmarkBridge::GetImageUrlForBookmark(
|
||||
base::BindOnce(&HandleImageUrlResponse, callback));
|
||||
}
|
||||
|
||||
if (get_normal) {
|
||||
- DCHECK_EQ(4u, bookmark_model_->root_node()->children().size());
|
||||
+ DCHECK_EQ(5u, bookmark_model_->root_node()->children().size());
|
||||
for (const auto& node : bookmark_model_->mobile_node()->children()) {
|
||||
if (node->is_folder())
|
||||
top_level_folders.push_back(node.get());
|
||||
}
|
||||
|
||||
+ for (const auto& node : bookmark_model_->tabs_collection_node()->children()) {
|
||||
+ if (node->is_folder())
|
||||
+ top_level_folders.push_back(node.get());
|
||||
+ }
|
||||
+base::android::ScopedJavaLocalRef<jobject>
|
||||
+BookmarkBridge::GetBookmarkIdForTabsCollection(
|
||||
+ JNIEnv* env,
|
||||
+ const JavaParamRef<jobject>& url) {
|
||||
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
+
|
||||
for (const auto& node : bookmark_model_->bookmark_bar_node()->children()) {
|
||||
if (node->is_folder())
|
||||
top_level_folders.push_back(node.get());
|
||||
@@ -523,6 +528,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
|
||||
+ GURL gurl = *url::GURLAndroid::ToNativeGURL(env, url);
|
||||
+
|
||||
+ bookmarks::BookmarkModel* model =
|
||||
+ BookmarkModelFactory::GetForBrowserContext(profile_);
|
||||
+
|
||||
+ std::vector<raw_ptr<const bookmarks::BookmarkNode, VectorExperimental>> nodes =
|
||||
+ model->GetNodesByURL(gurl);
|
||||
+ std::sort(nodes.begin(), nodes.end(), &bookmarks::MoreRecentlyAdded);
|
||||
+
|
||||
+ for (const BookmarkNode* node : nodes) {
|
||||
+ for (const auto& child : model->tabs_collection_node()->children()) {
|
||||
+ if (node->id() == child->id()) {
|
||||
+ return JavaBookmarkIdCreateBookmarkId(env, node->id(),
|
||||
+ GetBookmarkType(node));
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return nullptr;
|
||||
+}
|
||||
+
|
||||
base::android::ScopedJavaLocalRef<jobject>
|
||||
BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(
|
||||
JNIEnv* env,
|
||||
@@ -482,6 +509,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
|
||||
// Vector to temporarily contain all child bookmarks at same level for sorting
|
||||
std::vector<const BookmarkNode*> bookmarks = {
|
||||
bookmark_model_->mobile_node(),
|
||||
@@ -256,8 +262,20 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
bookmark_model_->bookmark_bar_node(),
|
||||
bookmark_model_->other_node(),
|
||||
};
|
||||
@@ -575,6 +581,17 @@ ScopedJavaLocalRef<jobject> BookmarkBridge::GetMobileFolderId(
|
||||
return folder_id_obj;
|
||||
@@ -539,6 +567,11 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
|
||||
top_level_folders.push_back(root_child.get());
|
||||
}
|
||||
|
||||
+ for (const auto& node : bookmark_model_->tabs_collection_node()->children()) {
|
||||
+ if (node->is_folder())
|
||||
+ top_level_folders.push_back(node.get());
|
||||
+ }
|
||||
+
|
||||
if (account_reading_list_manager_ &&
|
||||
account_reading_list_manager_->GetRoot()) {
|
||||
top_level_folders.push_back(account_reading_list_manager_->GetRoot());
|
||||
@@ -1176,6 +1209,17 @@ void BookmarkBridge::GetBookmarksOfType(
|
||||
AddBookmarkNodesToBookmarkIdList(env, j_list, results);
|
||||
}
|
||||
|
||||
+ScopedJavaLocalRef<jobject> BookmarkBridge::GetTabsCollectionFolderId(
|
||||
@@ -271,27 +289,48 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
+ return folder_id_obj;
|
||||
+}
|
||||
+
|
||||
ScopedJavaLocalRef<jobject> BookmarkBridge::GetOtherFolderId(
|
||||
ScopedJavaLocalRef<jobject> BookmarkBridge::AddFolder(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj) {
|
||||
const JavaParamRef<jobject>& j_parent_id_obj,
|
||||
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h
|
||||
--- a/chrome/browser/bookmarks/android/bookmark_bridge.h
|
||||
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.h
|
||||
@@ -133,6 +133,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
@@ -77,6 +77,10 @@ class BookmarkBridge : public ProfileObserver,
|
||||
const base::android::JavaParamRef<jobject>& j_url,
|
||||
const base::android::JavaParamRef<jobject>& j_callback);
|
||||
|
||||
+ base::android::ScopedJavaLocalRef<jobject> GetBookmarkIdForTabsCollection(
|
||||
+ JNIEnv* env,
|
||||
+ const base::android::JavaParamRef<jobject>& url);
|
||||
+
|
||||
base::android::ScopedJavaLocalRef<jobject>
|
||||
GetMostRecentlyAddedUserBookmarkIdForUrl(
|
||||
JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj);
|
||||
@@ -227,6 +231,10 @@ class BookmarkBridge : public ProfileObserver,
|
||||
const base::android::JavaParamRef<jobject>& j_list,
|
||||
jint type);
|
||||
|
||||
+ base::android::ScopedJavaLocalRef<jobject> GetTabsCollectionFolderId(
|
||||
+ JNIEnv* env,
|
||||
+ const base::android::JavaParamRef<jobject>& obj);
|
||||
+
|
||||
base::android::ScopedJavaLocalRef<jobject> GetOtherFolderId(
|
||||
base::android::ScopedJavaLocalRef<jobject> AddFolder(
|
||||
JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj);
|
||||
const base::android::JavaParamRef<jobject>& j_parent_id_obj,
|
||||
diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
--- a/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
+++ b/chrome/browser/bookmarks/bookmark_html_writer.cc
|
||||
@@ -188,15 +188,19 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
@@ -168,7 +168,8 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
BookmarkCodec codec;
|
||||
bookmarks_ =
|
||||
codec.Encode(model->bookmark_bar_node(), model->other_node(),
|
||||
- model->mobile_node(), /*sync_metadata_str=*/std::string());
|
||||
+ model->mobile_node(), model->tabs_collection_node(),
|
||||
+ /*sync_metadata_str=*/std::string());
|
||||
}
|
||||
|
||||
Writer(const Writer&) = delete;
|
||||
@@ -195,15 +196,19 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
|
||||
roots->FindDict(BookmarkCodec::kOtherBookmarkFolderNameKey);
|
||||
base::Value::Dict* mobile_folder_value =
|
||||
roots->FindDict(BookmarkCodec::kMobileBookmarkFolderNameKey);
|
||||
@@ -312,7 +351,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
|
||||
NotifyOnFinish(BookmarksExportObserver::Result::kCouldNotWriteNodes);
|
||||
return;
|
||||
}
|
||||
@@ -460,6 +464,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() {
|
||||
@@ -467,6 +472,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() {
|
||||
BookmarkModelFactory::GetForBrowserContext(profile_)->other_node());
|
||||
ExtractUrls(
|
||||
BookmarkModelFactory::GetForBrowserContext(profile_)->mobile_node());
|
||||
@@ -321,22 +360,10 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
|
||||
if (!bookmark_urls_.empty())
|
||||
FetchNextFavicon();
|
||||
else
|
||||
diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser/bookmarks/chrome_bookmark_client.cc
|
||||
--- a/chrome/browser/bookmarks/chrome_bookmark_client.cc
|
||||
+++ b/chrome/browser/bookmarks/chrome_bookmark_client.cc
|
||||
@@ -106,6 +106,8 @@ bool ChromeBookmarkClient::IsPermanentNodeVisibleWhenEmpty(
|
||||
return !is_mobile;
|
||||
case bookmarks::BookmarkNode::MOBILE:
|
||||
return is_mobile;
|
||||
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
|
||||
+ return is_mobile;
|
||||
}
|
||||
|
||||
return false;
|
||||
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
|
||||
--- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
|
||||
+++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
|
||||
@@ -79,7 +79,7 @@ public class DownloadLocationCustomView
|
||||
@@ -85,7 +85,7 @@ public class DownloadLocationCustomView extends ScrollView
|
||||
mDirectoryAdapter.update();
|
||||
}
|
||||
|
||||
@@ -345,7 +372,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
|
||||
mTitle.setText(title);
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ public class DownloadLocationCustomView
|
||||
@@ -93,7 +93,7 @@ public class DownloadLocationCustomView extends ScrollView
|
||||
mSubtitleView.setText(subtitle);
|
||||
}
|
||||
|
||||
@@ -357,7 +384,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
|
||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -3817,6 +3817,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
@@ -3875,6 +3875,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
|
||||
<message name="IDS_MENU_SELECT_TABS" desc="Menu item for bulk editing tabs. [CHAR_LIMIT=27]">
|
||||
Select tabs
|
||||
</message>
|
||||
@@ -401,51 +428,42 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
|
||||
const char BookmarkCodec::kVersionKey[] = "version";
|
||||
const char BookmarkCodec::kChecksumKey[] = "checksum";
|
||||
const char BookmarkCodec::kIdKey[] = "id";
|
||||
@@ -74,7 +75,8 @@ BookmarkCodec::~BookmarkCodec() = default;
|
||||
base::Value::Dict BookmarkCodec::Encode(BookmarkModel* model,
|
||||
std::string sync_metadata_str) {
|
||||
return Encode(model->bookmark_bar_node(), model->other_node(),
|
||||
- model->mobile_node(), model->root_node()->GetMetaInfoMap(),
|
||||
+ model->mobile_node(), model->tabs_collection_node(),
|
||||
+ model->root_node()->GetMetaInfoMap(),
|
||||
model->root_node()->GetUnsyncedMetaInfoMap(),
|
||||
std::move(sync_metadata_str));
|
||||
}
|
||||
@@ -83,6 +85,7 @@ base::Value::Dict BookmarkCodec::Encode(
|
||||
@@ -72,6 +73,7 @@ base::Value::Dict BookmarkCodec::Encode(
|
||||
const BookmarkNode* bookmark_bar_node,
|
||||
const BookmarkNode* other_folder_node,
|
||||
const BookmarkNode* mobile_folder_node,
|
||||
+ const BookmarkNode* tabs_folder_node,
|
||||
const BookmarkNode::MetaInfoMap* model_meta_info_map,
|
||||
const BookmarkNode::MetaInfoMap* model_unsynced_meta_info_map,
|
||||
std::string sync_metadata_str) {
|
||||
@@ -104,6 +107,7 @@ base::Value::Dict BookmarkCodec::Encode(
|
||||
ids_reassigned_ = false;
|
||||
uuids_reassigned_ = false;
|
||||
@@ -91,6 +93,8 @@ base::Value::Dict BookmarkCodec::Encode(
|
||||
roots.Set(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node));
|
||||
roots.Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node));
|
||||
roots.Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node));
|
||||
+ roots.Set(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node));
|
||||
if (model_meta_info_map)
|
||||
roots.Set(kMetaInfo, EncodeMetaInfo(*model_meta_info_map));
|
||||
if (model_unsynced_meta_info_map) {
|
||||
@@ -124,6 +128,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
|
||||
+ if (tabs_folder_node)
|
||||
+ roots.Set(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node));
|
||||
|
||||
FinalizeChecksum();
|
||||
// We are going to store the computed checksum. So set stored checksum to be
|
||||
@@ -107,6 +111,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
|
||||
BookmarkNode* bb_node,
|
||||
BookmarkNode* other_folder_node,
|
||||
BookmarkNode* mobile_folder_node,
|
||||
+ BookmarkNode* tabs_folder_node,
|
||||
int64_t* max_id,
|
||||
std::string* sync_metadata_str) {
|
||||
ids_.clear();
|
||||
@@ -131,7 +136,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
|
||||
base::Uuid::ParseLowercase(BookmarkNode::kBookmarkBarNodeUuid),
|
||||
base::Uuid::ParseLowercase(BookmarkNode::kOtherBookmarksNodeUuid),
|
||||
base::Uuid::ParseLowercase(BookmarkNode::kMobileBookmarksNodeUuid),
|
||||
- base::Uuid::ParseLowercase(BookmarkNode::kManagedNodeUuid)};
|
||||
+ base::Uuid::ParseLowercase(BookmarkNode::kManagedNodeUuid),
|
||||
+ base::Uuid::ParseLowercase(BookmarkNode::kTabsCollectionBookmarksNodeUuid)};
|
||||
const int64_t max_already_assigned_id =
|
||||
@@ -117,7 +122,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
|
||||
base::Uuid::ParseLowercase(kBookmarkBarNodeUuid),
|
||||
base::Uuid::ParseLowercase(kOtherBookmarksNodeUuid),
|
||||
base::Uuid::ParseLowercase(kMobileBookmarksNodeUuid),
|
||||
- base::Uuid::ParseLowercase(kManagedNodeUuid)};
|
||||
+ base::Uuid::ParseLowercase(kManagedNodeUuid),
|
||||
+ base::Uuid::ParseLowercase(kTabsCollectionBookmarksNodeUuid)};
|
||||
ids_reassigned_ = false;
|
||||
uuids_reassigned_ = false;
|
||||
ids_valid_ = true;
|
||||
@@ -139,12 +145,13 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
|
||||
@@ -125,13 +131,14 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
|
||||
stored_checksum_.clear();
|
||||
InitializeChecksum();
|
||||
bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node,
|
||||
@@ -454,21 +472,22 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
|
||||
FinalizeChecksum();
|
||||
// If either the checksums differ or some IDs were missing/not unique,
|
||||
// reassign IDs.
|
||||
if (!ids_valid_ || computed_checksum() != stored_checksum())
|
||||
if (!ids_valid_ || computed_checksum_ != stored_checksum_) {
|
||||
maximum_id_ = max_already_assigned_id;
|
||||
- ReassignIDs(bb_node, other_folder_node, mobile_folder_node);
|
||||
+ ReassignIDs(bb_node, other_folder_node, mobile_folder_node, tabs_folder_node);
|
||||
}
|
||||
*max_id = maximum_id_ + 1;
|
||||
return success;
|
||||
}
|
||||
@@ -200,6 +207,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo(
|
||||
@@ -189,6 +196,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo(
|
||||
bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||
BookmarkNode* other_folder_node,
|
||||
BookmarkNode* mobile_folder_node,
|
||||
+ BookmarkNode* tabs_folder_node,
|
||||
const base::Value::Dict& value,
|
||||
std::string* sync_metadata_str) {
|
||||
absl::optional<int> version = value.FindInt(kVersionKey);
|
||||
@@ -224,6 +232,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||
std::optional<int> version = value.FindInt(kVersionKey);
|
||||
@@ -213,6 +221,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||
roots->FindDict(kOtherBookmarkFolderNameKey);
|
||||
const base::Value::Dict* mobile_folder_value =
|
||||
roots->FindDict(kMobileBookmarkFolderNameKey);
|
||||
@@ -477,23 +496,23 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
|
||||
|
||||
if (!bb_value || !other_folder_value || !mobile_folder_value)
|
||||
return false;
|
||||
@@ -231,6 +241,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||
@@ -220,6 +230,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||
DecodeNode(*bb_value, nullptr, bb_node);
|
||||
DecodeNode(*other_folder_value, nullptr, other_folder_node);
|
||||
DecodeNode(*mobile_folder_value, nullptr, mobile_folder_node);
|
||||
+ if (tabs_folder_value)
|
||||
+ DecodeNode(*tabs_folder_value, nullptr, tabs_folder_node);
|
||||
|
||||
if (!DecodeMetaInfo(*roots, &model_meta_info_map_))
|
||||
return false;
|
||||
@@ -496,11 +508,13 @@ void BookmarkCodec::DecodeMetaInfoHelper(
|
||||
if (sync_metadata_str) {
|
||||
const std::string* sync_metadata_str_base64 =
|
||||
@@ -459,11 +471,13 @@ void BookmarkCodec::DecodeMetaInfoHelper(
|
||||
|
||||
void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node,
|
||||
BookmarkNode* other_node,
|
||||
- BookmarkNode* mobile_node) {
|
||||
+ BookmarkNode* mobile_node,
|
||||
+ BookmarkNode* tabs_folder_node) {
|
||||
maximum_id_ = 0;
|
||||
ids_.clear();
|
||||
ReassignIDsHelper(bb_node);
|
||||
ReassignIDsHelper(other_node);
|
||||
ReassignIDsHelper(mobile_node);
|
||||
@@ -504,15 +523,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
|
||||
diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h
|
||||
--- a/components/bookmarks/browser/bookmark_codec.h
|
||||
+++ b/components/bookmarks/browser/bookmark_codec.h
|
||||
@@ -46,6 +46,7 @@ class BookmarkCodec {
|
||||
@@ -39,6 +39,7 @@ class BookmarkCodec {
|
||||
const BookmarkNode* bookmark_bar_node,
|
||||
const BookmarkNode* other_folder_node,
|
||||
const BookmarkNode* mobile_folder_node,
|
||||
+ const BookmarkNode* tabs_folder_node,
|
||||
const BookmarkNode::MetaInfoMap* model_meta_info_map,
|
||||
const BookmarkNode::MetaInfoMap* model_unsynced_meta_info_map,
|
||||
std::string sync_metadata_str);
|
||||
@@ -59,6 +60,7 @@ class BookmarkCodec {
|
||||
|
||||
// Decodes the previously encoded value to the specified nodes as well as
|
||||
@@ -57,6 +58,7 @@ class BookmarkCodec {
|
||||
BookmarkNode* bb_node,
|
||||
BookmarkNode* other_folder_node,
|
||||
BookmarkNode* mobile_folder_node,
|
||||
@@ -520,15 +539,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
|
||||
int64_t* max_node_id,
|
||||
std::string* sync_metadata_str);
|
||||
|
||||
@@ -110,6 +112,7 @@ class BookmarkCodec {
|
||||
// Allows the BookmarkClient to read and a write a string blob from the JSON
|
||||
// file. That string captures the bookmarks sync metadata.
|
||||
static const char kSyncMetadata[];
|
||||
@@ -82,6 +84,7 @@ class BookmarkCodec {
|
||||
static const char kBookmarkBarFolderNameKey[];
|
||||
static const char kOtherBookmarkFolderNameKey[];
|
||||
static const char kMobileBookmarkFolderNameKey[];
|
||||
+ static const char kTabsBookmarkFolderNameKey[];
|
||||
static const char kDateLastUsed[];
|
||||
|
||||
// Possible values for kTypeKey.
|
||||
@@ -128,6 +131,7 @@ class BookmarkCodec {
|
||||
static const char kVersionKey[];
|
||||
static const char kChecksumKey[];
|
||||
static const char kIdKey[];
|
||||
@@ -114,6 +117,7 @@ class BookmarkCodec {
|
||||
bool DecodeHelper(BookmarkNode* bb_node,
|
||||
BookmarkNode* other_folder_node,
|
||||
BookmarkNode* mobile_folder_node,
|
||||
@@ -536,7 +555,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
|
||||
const base::Value::Dict& value,
|
||||
std::string* sync_metadata_str);
|
||||
|
||||
@@ -139,7 +143,8 @@ class BookmarkCodec {
|
||||
@@ -124,7 +128,8 @@ class BookmarkCodec {
|
||||
// Reassigns bookmark IDs for all nodes.
|
||||
void ReassignIDs(BookmarkNode* bb_node,
|
||||
BookmarkNode* other_node,
|
||||
@@ -549,63 +568,80 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
|
||||
diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/bookmarks/browser/bookmark_load_details.cc
|
||||
--- a/components/bookmarks/browser/bookmark_load_details.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_load_details.cc
|
||||
@@ -37,6 +37,10 @@ BookmarkLoadDetails::BookmarkLoadDetails(BookmarkClient* client)
|
||||
root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(
|
||||
max_id_++,
|
||||
client->IsPermanentNodeVisibleWhenEmpty(BookmarkNode::MOBILE))));
|
||||
+ tabs_collection_folder_node_ = static_cast<BookmarkPermanentNode*>(
|
||||
+ root_node_->Add(BookmarkPermanentNode::CreateTabsCollectionBookmarks(
|
||||
+ max_id_++,
|
||||
+ client->IsPermanentNodeVisibleWhenEmpty(BookmarkNode::TABS_COLLECTION))));
|
||||
}
|
||||
@@ -15,7 +15,7 @@ namespace {
|
||||
|
||||
BookmarkLoadDetails::~BookmarkLoadDetails() = default;
|
||||
// Number of top-level permanent folders excluding the managed node and account
|
||||
// bookmarks.
|
||||
-constexpr size_t kNumDefaultTopLevelPermanentFolders = 3u;
|
||||
+constexpr size_t kNumDefaultTopLevelPermanentFolders = 4u;
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -40,6 +40,8 @@ BookmarkLoadDetails::BookmarkLoadDetails()
|
||||
root_node_->Add(BookmarkPermanentNode::CreateOtherBookmarks(/*id=*/0)));
|
||||
mobile_folder_node_ = static_cast<BookmarkPermanentNode*>(
|
||||
root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(/*id=*/0)));
|
||||
+ tabs_collection_folder_node_ = static_cast<BookmarkPermanentNode*>(
|
||||
+ root_node_->Add(BookmarkPermanentNode::CreateTabsCollectionBookmarks(/*id=*/0)));
|
||||
|
||||
CHECK_EQ(kNumDefaultTopLevelPermanentFolders, root_node_->children().size());
|
||||
}
|
||||
@@ -105,8 +107,8 @@ void BookmarkLoadDetails::AddManagedNode(
|
||||
|
||||
void BookmarkLoadDetails::CreateIndices() {
|
||||
local_or_syncable_uuid_index_.insert(root_node_.get());
|
||||
- static_assert(kNumDefaultTopLevelPermanentFolders == 3u,
|
||||
- "The code below assumes three permanent nodes");
|
||||
+ static_assert(kNumDefaultTopLevelPermanentFolders == 4u,
|
||||
+ "The code below assumes 4 permanent nodes");
|
||||
for (const auto& child : root_node_->children()) {
|
||||
if (child.get() == account_bb_node_ ||
|
||||
child.get() == account_other_folder_node_ ||
|
||||
diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/bookmarks/browser/bookmark_load_details.h
|
||||
--- a/components/bookmarks/browser/bookmark_load_details.h
|
||||
+++ b/components/bookmarks/browser/bookmark_load_details.h
|
||||
@@ -47,6 +47,7 @@ class BookmarkLoadDetails {
|
||||
@@ -39,6 +39,7 @@ class BookmarkLoadDetails {
|
||||
BookmarkPermanentNode* bb_node() { return bb_node_; }
|
||||
BookmarkPermanentNode* mobile_folder_node() { return mobile_folder_node_; }
|
||||
BookmarkPermanentNode* other_folder_node() { return other_folder_node_; }
|
||||
+ BookmarkPermanentNode* tabs_collection_folder_node() { return tabs_collection_folder_node_; }
|
||||
|
||||
TitledUrlIndex* index() { return index_.get(); }
|
||||
std::unique_ptr<TitledUrlIndex> owned_index() { return std::move(index_); }
|
||||
@@ -112,6 +113,8 @@ class BookmarkLoadDetails {
|
||||
nullptr;
|
||||
raw_ptr<BookmarkPermanentNode, DanglingUntriaged> mobile_folder_node_ =
|
||||
nullptr;
|
||||
+ raw_ptr<BookmarkPermanentNode, DanglingUntriaged> tabs_collection_folder_node_ =
|
||||
+ nullptr;
|
||||
LoadManagedNodeCallback load_managed_node_callback_;
|
||||
std::unique_ptr<TitledUrlIndex> index_;
|
||||
BookmarkNode::MetaInfoMap model_meta_info_map_;
|
||||
// Account permanent nodes (null unless `AddAccountPermanentNodes()` is
|
||||
// called).
|
||||
@@ -138,6 +139,7 @@ class BookmarkLoadDetails {
|
||||
raw_ptr<BookmarkPermanentNode> bb_node_;
|
||||
raw_ptr<BookmarkPermanentNode> other_folder_node_;
|
||||
raw_ptr<BookmarkPermanentNode> mobile_folder_node_;
|
||||
+ raw_ptr<BookmarkPermanentNode> tabs_collection_folder_node_;
|
||||
raw_ptr<BookmarkPermanentNode> account_bb_node_;
|
||||
raw_ptr<BookmarkPermanentNode> account_other_folder_node_;
|
||||
raw_ptr<BookmarkPermanentNode> account_mobile_folder_node_;
|
||||
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
|
||||
--- a/components/bookmarks/browser/bookmark_model.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_model.cc
|
||||
@@ -817,7 +817,7 @@ bool BookmarkModel::HasBookmarks() {
|
||||
bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() {
|
||||
@@ -846,7 +846,7 @@ bool BookmarkModel::HasBookmarks() const {
|
||||
bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() const {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
return bookmark_bar_node_->children().empty() &&
|
||||
- other_node_->children().empty() && mobile_node_->children().empty();
|
||||
+ other_node_->children().empty() && mobile_node_->children().empty() && tabs_collection_node_->children().empty();
|
||||
}
|
||||
|
||||
bool BookmarkModel::IsBookmarked(const GURL& url) {
|
||||
@@ -1123,6 +1123,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
|
||||
bool BookmarkModel::IsBookmarked(const GURL& url) const {
|
||||
@@ -1191,6 +1191,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
|
||||
bookmark_bar_node_ = details->bb_node();
|
||||
other_node_ = details->other_folder_node();
|
||||
mobile_node_ = details->mobile_folder_node();
|
||||
+ tabs_collection_node_ = details->tabs_collection_folder_node();
|
||||
|
||||
titled_url_index_->SetNodeSorter(
|
||||
std::make_unique<TypedCountSorter>(client_.get()));
|
||||
account_bookmark_bar_node_ = details->account_bb_node();
|
||||
account_other_node_ = details->account_other_folder_node();
|
||||
diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h
|
||||
--- a/components/bookmarks/browser/bookmark_model.h
|
||||
+++ b/components/bookmarks/browser/bookmark_model.h
|
||||
@@ -131,6 +131,12 @@ class BookmarkModel final : public BookmarkUndoProvider,
|
||||
return mobile_node_;
|
||||
}
|
||||
@@ -159,6 +159,12 @@ class BookmarkModel final : public BookmarkUndoProvider,
|
||||
// bookmarks in the account storage).
|
||||
const BookmarkNode* account_mobile_node() const;
|
||||
|
||||
+ // Returns the 'mobile' node. This is NULL until loaded.
|
||||
+ const BookmarkNode* tabs_collection_node() const {
|
||||
@@ -616,10 +652,10 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
|
||||
bool is_root_node(const BookmarkNode* node) const {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
return node == root_;
|
||||
@@ -489,6 +495,7 @@ class BookmarkModel final : public BookmarkUndoProvider,
|
||||
nullptr;
|
||||
raw_ptr<BookmarkPermanentNode, DanglingUntriaged> other_node_ = nullptr;
|
||||
raw_ptr<BookmarkPermanentNode, DanglingUntriaged> mobile_node_ = nullptr;
|
||||
@@ -619,6 +625,7 @@ class BookmarkModel final : public BookmarkUndoProvider,
|
||||
raw_ptr<BookmarkPermanentNode> account_bookmark_bar_node_ = nullptr;
|
||||
raw_ptr<BookmarkPermanentNode> account_other_node_ = nullptr;
|
||||
raw_ptr<BookmarkPermanentNode> account_mobile_node_ = nullptr;
|
||||
+ raw_ptr<BookmarkPermanentNode> tabs_collection_node_ = nullptr;
|
||||
|
||||
// The maximum ID assigned to the bookmark nodes in the model.
|
||||
@@ -627,30 +663,26 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
|
||||
diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc
|
||||
--- a/components/bookmarks/browser/bookmark_node.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_node.cc
|
||||
@@ -60,6 +60,10 @@ const char BookmarkNode::kOtherBookmarksNodeUuid[] =
|
||||
const char BookmarkNode::kMobileBookmarksNodeUuid[] =
|
||||
"4cf2e351-0e85-532b-bb37-df045d8f8d0f";
|
||||
@@ -161,6 +161,8 @@ bool BookmarkPermanentNode::IsTypeVisibleWhenEmpty(Type type) {
|
||||
#endif
|
||||
|
||||
+// static
|
||||
+const char BookmarkNode::kTabsCollectionBookmarksNodeUuid[] =
|
||||
+ "00000000-0000-4000-a000-000000000006";
|
||||
+
|
||||
// static
|
||||
const char BookmarkNode::kManagedNodeUuid[] =
|
||||
"323123f4-9381-5aee-80e6-ea5fca2f7672";
|
||||
@@ -275,6 +279,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id,
|
||||
visible_when_empty));
|
||||
switch (type) {
|
||||
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
|
||||
+ return !is_desktop;
|
||||
case BookmarkNode::URL:
|
||||
NOTREACHED_NORETURN();
|
||||
case BookmarkNode::FOLDER:
|
||||
@@ -211,6 +213,15 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id) {
|
||||
l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME)));
|
||||
}
|
||||
|
||||
+// static
|
||||
+std::unique_ptr<BookmarkPermanentNode>
|
||||
+BookmarkPermanentNode::CreateTabsCollectionBookmarks(int64_t id,
|
||||
+ bool visible_when_empty) {
|
||||
+BookmarkPermanentNode::CreateTabsCollectionBookmarks(int64_t id) {
|
||||
+ // base::WrapUnique() used because the constructor is private.
|
||||
+ return base::WrapUnique(new BookmarkPermanentNode(
|
||||
+ id, TABS_COLLECTION, base::Uuid::ParseLowercase(kTabsCollectionBookmarksNodeUuid),
|
||||
+ l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_TABS_COLLECTION_FOLDER_NAME),
|
||||
+ visible_when_empty));
|
||||
+ l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_TABS_COLLECTION_FOLDER_NAME)));
|
||||
+}
|
||||
+
|
||||
BookmarkPermanentNode::BookmarkPermanentNode(int64_t id,
|
||||
@@ -667,41 +699,94 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
|
||||
MOBILE
|
||||
};
|
||||
|
||||
@@ -52,6 +53,7 @@ class BookmarkNode : public ui::TreeNode<BookmarkNode>, public TitledUrlNode {
|
||||
static const char kBookmarkBarNodeUuid[];
|
||||
static const char kOtherBookmarksNodeUuid[];
|
||||
static const char kMobileBookmarksNodeUuid[];
|
||||
+ static const char kTabsCollectionBookmarksNodeUuid[];
|
||||
static const char kManagedNodeUuid[];
|
||||
|
||||
// A bug in sync caused some problematic UUIDs to be produced.
|
||||
@@ -270,6 +272,9 @@ class BookmarkPermanentNode : public BookmarkNode {
|
||||
@@ -231,6 +232,8 @@ class BookmarkPermanentNode : public BookmarkNode {
|
||||
int64_t id);
|
||||
static std::unique_ptr<BookmarkPermanentNode> CreateMobileBookmarks(
|
||||
int64_t id,
|
||||
bool visible_when_empty);
|
||||
int64_t id);
|
||||
+ static std::unique_ptr<BookmarkPermanentNode> CreateTabsCollectionBookmarks(
|
||||
+ int64_t id,
|
||||
+ bool visible_when_empty);
|
||||
+ int64_t id);
|
||||
|
||||
// Constructor is private to disallow the construction of permanent nodes
|
||||
// other than the well-known ones, see factory methods.
|
||||
// Returns whether the permanent node of type `type` should be visible even
|
||||
// when it is empty (i.e. no children).
|
||||
diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc
|
||||
--- a/components/bookmarks/browser/bookmark_storage.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_storage.cc
|
||||
@@ -45,6 +45,7 @@ base::Value::Dict EncodeModelToDict(
|
||||
case BookmarkStorage::kSelectLocalOrSyncableNodes:
|
||||
return codec.Encode(
|
||||
model->bookmark_bar_node(), model->other_node(), model->mobile_node(),
|
||||
+ model->tabs_collection_node(),
|
||||
model->client()->EncodeLocalOrSyncableBookmarkSyncMetadata());
|
||||
case BookmarkStorage::kSelectAccountNodes:
|
||||
if (!model->account_bookmark_bar_node()) {
|
||||
@@ -59,6 +60,7 @@ base::Value::Dict EncodeModelToDict(
|
||||
return codec.Encode(model->account_bookmark_bar_node(),
|
||||
model->account_other_node(),
|
||||
model->account_mobile_node(),
|
||||
+ nullptr,
|
||||
model->client()->EncodeAccountBookmarkSyncMetadata());
|
||||
}
|
||||
|
||||
diff --git a/components/bookmarks/browser/bookmark_uuids.cc b/components/bookmarks/browser/bookmark_uuids.cc
|
||||
--- a/components/bookmarks/browser/bookmark_uuids.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_uuids.cc
|
||||
@@ -35,6 +35,9 @@ const char kManagedNodeUuid[] = "323123f4-9381-5aee-80e6-ea5fca2f7672";
|
||||
// see https://crbug.com/1484372 for details.
|
||||
const char kShoppingCollectionUuid[] = "89fc5b66-beb6-56c1-a99b-70635d7df201";
|
||||
|
||||
+const char kTabsCollectionBookmarksNodeUuid[] =
|
||||
+ "00000000-0000-4000-a000-000000000006";
|
||||
+
|
||||
// This value is the result of exercising sync's function
|
||||
// syncer::InferGuidForLegacyBookmark() with an empty input.
|
||||
const char kBannedUuidDueToPastSyncBug[] =
|
||||
diff --git a/components/bookmarks/browser/bookmark_uuids.h b/components/bookmarks/browser/bookmark_uuids.h
|
||||
--- a/components/bookmarks/browser/bookmark_uuids.h
|
||||
+++ b/components/bookmarks/browser/bookmark_uuids.h
|
||||
@@ -14,6 +14,7 @@ extern const char kBookmarkBarNodeUuid[];
|
||||
extern const char kOtherBookmarksNodeUuid[];
|
||||
extern const char kMobileBookmarksNodeUuid[];
|
||||
extern const char kManagedNodeUuid[];
|
||||
+extern const char kTabsCollectionBookmarksNodeUuid[];
|
||||
extern const char kShoppingCollectionUuid[];
|
||||
|
||||
// A bug in sync caused some problematic UUIDs to be produced.
|
||||
diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks/browser/model_loader.cc
|
||||
--- a/components/bookmarks/browser/model_loader.cc
|
||||
+++ b/components/bookmarks/browser/model_loader.cc
|
||||
@@ -60,7 +60,8 @@ void LoadBookmarks(const base::FilePath& path,
|
||||
std::string sync_metadata_str;
|
||||
BookmarkCodec codec;
|
||||
codec.Decode(*root_dict, details->bb_node(), details->other_folder_node(),
|
||||
- details->mobile_folder_node(), &max_node_id,
|
||||
+ details->mobile_folder_node(),
|
||||
+ details->tabs_collection_folder_node(), &max_node_id,
|
||||
&sync_metadata_str);
|
||||
details->set_sync_metadata_str(std::move(sync_metadata_str));
|
||||
details->set_max_id(std::max(max_node_id, details->max_id()));
|
||||
@@ -71,6 +71,8 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
|
||||
BookmarkPermanentNode::CreateOtherBookmarks(0);
|
||||
std::unique_ptr<BookmarkPermanentNode> account_mobile_folder_node =
|
||||
BookmarkPermanentNode::CreateMobileBookmarks(0);
|
||||
+ std::unique_ptr<BookmarkPermanentNode> tabs_collection_folder_node =
|
||||
+ BookmarkPermanentNode::CreateTabsCollectionBookmarks(0);
|
||||
|
||||
std::optional<base::Value::Dict> root_dict =
|
||||
LoadFileToDict(account_file_path);
|
||||
@@ -78,7 +80,8 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
|
||||
if (root_dict.has_value() &&
|
||||
codec.Decode(*root_dict, /*already_assigned_ids=*/{},
|
||||
account_bb_node.get(), account_other_folder_node.get(),
|
||||
- account_mobile_folder_node.get(), &max_node_id,
|
||||
+ account_mobile_folder_node.get(),
|
||||
+ tabs_collection_folder_node.get(), &max_node_id,
|
||||
&sync_metadata_str)) {
|
||||
ids_assigned_to_account_nodes = codec.release_assigned_ids();
|
||||
|
||||
@@ -110,7 +113,8 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
|
||||
if (root_dict.has_value() &&
|
||||
codec.Decode(*root_dict, std::move(ids_assigned_to_account_nodes),
|
||||
details->bb_node(), details->other_folder_node(),
|
||||
- details->mobile_folder_node(), &max_node_id,
|
||||
+ details->mobile_folder_node(),
|
||||
+ details->tabs_collection_folder_node(), &max_node_id,
|
||||
&sync_metadata_str)) {
|
||||
details->set_local_or_syncable_sync_metadata_str(
|
||||
std::move(sync_metadata_str));
|
||||
diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc
|
||||
--- a/components/sync_bookmarks/bookmark_specifics_conversions.cc
|
||||
+++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc
|
||||
@@ -446,6 +446,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode(
|
||||
@@ -445,6 +445,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode(
|
||||
case bookmarks::BookmarkNode::BOOKMARK_BAR:
|
||||
case bookmarks::BookmarkNode::OTHER_NODE:
|
||||
case bookmarks::BookmarkNode::MOBILE:
|
||||
@@ -710,4 +795,3 @@ diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/compo
|
||||
return sync_pb::BookmarkSpecifics::FOLDER;
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
--- a/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
@@ -55,6 +55,9 @@ found in the LICENSE file.
|
||||
@@ -62,6 +62,9 @@ found in the LICENSE file.
|
||||
<item android:id="@+id/add_to_homescreen_id"
|
||||
android:title="@string/menu_add_to_homescreen"
|
||||
android:orderInCategory="2" />
|
||||
@@ -29,7 +29,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/
|
||||
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
|
||||
@@ -108,6 +108,9 @@ found in the LICENSE file.
|
||||
@@ -113,6 +113,9 @@ found in the LICENSE file.
|
||||
<item android:id="@+id/add_to_homescreen_id"
|
||||
android:title="@string/menu_add_to_homescreen"
|
||||
android:icon="@drawable/ic_add_to_home_screen" />
|
||||
@@ -42,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -2308,6 +2308,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -2976,6 +2976,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
|
||||
}
|
||||
RecordUserAction.record("MobileMenuDownloadManager");
|
||||
@@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -2524,6 +2524,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -2729,6 +2729,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
return doOpenWebApk(currentTab);
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ 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
|
||||
--- 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
|
||||
@@ -544,6 +544,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -585,6 +585,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
|
||||
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isChromeScheme);
|
||||
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
||||
|
||||
updateAutoDarkMenuItem(menu, currentTab, isChromeScheme);
|
||||
|
||||
@@ -1114,6 +1115,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -1236,6 +1237,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
||||
@@ -240,6 +240,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
@@ -295,6 +295,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
|
||||
updateRequestDesktopSiteMenuItem(
|
||||
menu, currentTab, requestDesktopSiteVisible, isChromeScheme);
|
||||
@@ -115,7 +115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
||||
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
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -309,6 +309,10 @@ CHAR_LIMIT guidelines:
|
||||
@@ -317,6 +317,10 @@ CHAR_LIMIT guidelines:
|
||||
USB
|
||||
</message>
|
||||
|
||||
@@ -127,4 +127,3 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
<message name="IDS_PREFS_SECTION_ACCOUNT_AND_GOOGLE_SERVICES" desc="Title for the group of account-related entries and google services in Settings. [CHAR_LIMIT=32]">
|
||||
You and Google
|
||||
--
|
||||
2.25.1
|
||||
|
||||
+93
-52
@@ -2,35 +2,77 @@ From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 21 Aug 2023 14:03:25 +0000
|
||||
Subject: Add option to disable snapshots
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../tab_management/TabGridViewBinder.java | 6 ++-
|
||||
.../tab_management/TabGridViewBinder.java | 10 +++--
|
||||
.../tasks/tab_management/TabProperties.java | 5 +++
|
||||
.../java/res/xml/privacy_preferences.xml | 5 +++
|
||||
.../chrome/browser/app/ChromeActivity.java | 3 +-
|
||||
.../layouts/content/TabContentManager.java | 7 +++-
|
||||
.../privacy/settings/PrivacySettings.java | 42 ++++++++++++++++++-
|
||||
.../strings/android_chrome_strings.grd | 8 ++++
|
||||
6 files changed, 65 insertions(+), 6 deletions(-)
|
||||
7 files changed, 73 insertions(+), 7 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
|
||||
--- 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
|
||||
@@ -314,8 +314,10 @@ class TabGridViewBinder {
|
||||
updateThumbnailMatrix(thumbnail, result, thumbnailSize);
|
||||
thumbnail.setImageBitmap(result);
|
||||
} else if (isMostRecentRequest) {
|
||||
- // If the most recent request is a null bitmap ensure a placeholder is visible.
|
||||
- thumbnail.setImageDrawable(null);
|
||||
+ TabListFaviconProvider.TabFavicon tabFavicon = model.get(TabProperties.FAVICON);
|
||||
+ thumbnail.setScaleType(ImageView.ScaleType.CENTER);
|
||||
+ thumbnail.setImageDrawable(
|
||||
+ isSelected ? tabFavicon.getSelectedDrawable() : tabFavicon.getDefaultDrawable());
|
||||
}
|
||||
};
|
||||
if (TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled(view.getContext())
|
||||
@@ -327,9 +327,12 @@ class TabGridViewBinder {
|
||||
// Adjust bitmap to thumbnail.
|
||||
TabUtils.setBitmapAndUpdateImageMatrix(thumbnail, result, thumbnailSize);
|
||||
} else if (isMostRecentRequest) {
|
||||
- // If the most recent request is a null bitmap ensure a placeholder is
|
||||
- // visible.
|
||||
- thumbnail.setImageDrawable(null);
|
||||
+ TabListFaviconProvider.TabFavicon tabFavicon = model.get(TabProperties.FAVICON);
|
||||
+ if (tabFavicon != null) {
|
||||
+ thumbnail.setScaleType(ImageView.ScaleType.CENTER);
|
||||
+ thumbnail.setImageDrawable(
|
||||
+ isSelected ? tabFavicon.getSelectedDrawable() : tabFavicon.getDefaultDrawable());
|
||||
+ }
|
||||
}
|
||||
};
|
||||
if (sThumbnailFetcherForTesting != null) {
|
||||
@@ -368,6 +371,7 @@ class TabGridViewBinder {
|
||||
ViewLookupCachingFrameLayout rootView,
|
||||
PropertyModel model,
|
||||
TabListFaviconProvider.TabFavicon favicon) {
|
||||
+ model.set(TabProperties.FAVICON, favicon);
|
||||
ImageView faviconView = (ImageView) rootView.fastFindViewById(R.id.tab_favicon);
|
||||
if (favicon == null) {
|
||||
faviconView.setImageDrawable(null);
|
||||
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
|
||||
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
|
||||
@@ -63,6 +63,9 @@ public class TabProperties {
|
||||
public static final WritableBooleanPropertyKey FAVICON_FETCHED =
|
||||
new WritableBooleanPropertyKey();
|
||||
|
||||
+ public static final WritableObjectPropertyKey<TabListFaviconProvider.TabFavicon> FAVICON =
|
||||
+ new WritableObjectPropertyKey<>();
|
||||
+
|
||||
/** Property for lazily fetching favicons when required by an item in a UI. */
|
||||
public static final WritableObjectPropertyKey<TabListFaviconProvider.TabFaviconFetcher>
|
||||
FAVICON_FETCHER = new WritableObjectPropertyKey<>();
|
||||
@@ -160,6 +163,7 @@ public class TabProperties {
|
||||
CARD_TYPE,
|
||||
CONTENT_DESCRIPTION_STRING,
|
||||
CLOSE_BUTTON_DESCRIPTION_STRING,
|
||||
+ FAVICON,
|
||||
SHOPPING_PERSISTED_TAB_DATA_FETCHER,
|
||||
SHOULD_SHOW_PRICE_DROP_TOOLTIP,
|
||||
QUICK_DELETE_ANIMATION_STATUS
|
||||
@@ -172,6 +176,7 @@ public class TabProperties {
|
||||
TAB_CLOSED_LISTENER,
|
||||
FAVICON_FETCHED,
|
||||
FAVICON_FETCHER,
|
||||
+ FAVICON,
|
||||
IS_SELECTED,
|
||||
TITLE,
|
||||
TABSTRIP_FAVICON_BACKGROUND_COLOR_ID,
|
||||
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
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -88,6 +88,11 @@ found in the LICENSE file.
|
||||
@@ -54,6 +54,11 @@ found in the LICENSE file.
|
||||
android:title="@string/open_external_links_incognito_title"
|
||||
android:summary="@string/open_external_links_incognito_summary"
|
||||
android:defaultValue="false" />
|
||||
@@ -40,50 +82,52 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
||||
+ android:summary="@string/tabgrid_use_icons_summary"
|
||||
+ android:defaultValue="false" />
|
||||
<Preference
|
||||
android:key="privacy_sandbox"
|
||||
android:title="@string/prefs_privacy_sandbox"
|
||||
android:key="preload_pages"
|
||||
android:title="@string/preload_pages_title"
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -144,6 +144,7 @@ import org.chromium.chrome.browser.page_info.ChromePageInfoHighlight;
|
||||
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
|
||||
@@ -145,6 +145,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.printing.TabPrinter;
|
||||
+import org.chromium.chrome.browser.privacy.settings.PrivacySettings;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.readaloud.ReadAloudController;
|
||||
import org.chromium.chrome.browser.selection.SelectionPopupBackPressHandler;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
@@ -642,7 +643,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -704,7 +705,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
new TabContentManager(
|
||||
this,
|
||||
mBrowserControlsManagerSupplier.get(),
|
||||
- !SysUtils.isLowEndDevice(),
|
||||
+ !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false),
|
||||
tabModelSelector != null ? tabModelSelector::getTabById : null));
|
||||
|
||||
TabModelSelector tabModelSelector = mTabModelOrchestrator.getTabModelSelector();
|
||||
setTabContentManager(new TabContentManager(this, getContentOffsetProvider(),
|
||||
- !SysUtils.isLowEndDevice(),
|
||||
+ !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false),
|
||||
tabModelSelector != null ? tabModelSelector::getTabById : null));
|
||||
|
||||
getBrowserControlsManager().initialize(
|
||||
getBrowserControlsManager()
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
|
||||
@@ -331,9 +331,12 @@ public class TabContentManager {
|
||||
* @param forceUpdate Whether to obtain the thumbnail from the live content.
|
||||
* @param writeBack When {@code forceUpdate}, whether to write the thumbnail to cache.
|
||||
@@ -326,11 +326,14 @@ public class TabContentManager {
|
||||
*/
|
||||
- public void getTabThumbnailWithCallback(@NonNull int tabId, @NonNull Size thumbnailSize,
|
||||
+ public void getTabThumbnailWithCallback(@NonNull int tabId, @NonNull Size thumbnailSize, //
|
||||
@NonNull Callback<Bitmap> callback, boolean forceUpdate, boolean writeBack) {
|
||||
public void getTabThumbnailWithCallback(
|
||||
@NonNull int tabId,
|
||||
- @NonNull Size thumbnailSize,
|
||||
+ @NonNull Size thumbnailSize, //
|
||||
@NonNull Callback<Bitmap> callback,
|
||||
boolean forceUpdate,
|
||||
boolean writeBack) {
|
||||
- if (!mSnapshotsEnabled) return;
|
||||
+ if (!mSnapshotsEnabled) {
|
||||
+ callback.onResult(null);
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
// TODO(crbug/1444782): Remove forceUpdate and writeBack params from here and don't
|
||||
// trigger a captureThumbnail. This should be feasible once the
|
||||
// TODO(crbug/1444782): Remove forceUpdate and writeBack params once the following features
|
||||
// launch:
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -69,6 +69,11 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
|
||||
@@ -66,12 +66,25 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||
import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
|
||||
|
||||
@@ -95,12 +139,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -77,7 +82,15 @@ import java.util.List;
|
||||
*/
|
||||
public class PrivacySettings extends PreferenceFragmentCompat
|
||||
implements Preference.OnPreferenceChangeListener, FragmentHelpAndFeedbackLauncher,
|
||||
- ProfileDependentSetting {
|
||||
+ ProfileDependentSetting, INeedSnackbarManager {
|
||||
/** Fragment to keep track of the all the privacy related preferences. */
|
||||
public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
- implements Preference.OnPreferenceChangeListener {
|
||||
+ implements Preference.OnPreferenceChangeListener, INeedSnackbarManager {
|
||||
+ private SnackbarManager mSnackbarManager;
|
||||
+ private Snackbar mSnackbar;
|
||||
+
|
||||
@@ -112,8 +154,8 @@ 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_PRELOAD_PAGES = "preload_pages";
|
||||
private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
|
||||
@@ -147,6 +160,21 @@ public class PrivacySettings extends PreferenceFragmentCompat
|
||||
});
|
||||
@@ -140,6 +153,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
}
|
||||
}
|
||||
|
||||
+ mSnackbar = Snackbar.make(getActivity().getString(R.string.ui_relaunch_notice),
|
||||
@@ -133,8 +175,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
+
|
||||
Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE);
|
||||
// Record the launch of PG from the S&P link-row entry point
|
||||
privacyGuidePreference.setOnPreferenceClickListener(preference -> {
|
||||
@@ -297,6 +325,7 @@ public class PrivacySettings extends PreferenceFragmentCompat
|
||||
privacyGuidePreference.setOnPreferenceClickListener(
|
||||
@@ -321,6 +349,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
|
||||
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";
|
||||
@@ -142,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
@@ -320,6 +349,13 @@ public class PrivacySettings extends PreferenceFragmentCompat
|
||||
@@ -346,6 +375,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue);
|
||||
sharedPreferencesEditor.apply();
|
||||
@@ -156,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -360,6 +396,10 @@ public class PrivacySettings extends PreferenceFragmentCompat
|
||||
@@ -386,6 +422,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
: R.string.text_off);
|
||||
}
|
||||
|
||||
@@ -170,7 +212,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
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -5239,6 +5239,14 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
@@ -5371,6 +5371,14 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
|
||||
Your <ph name="FQDN">%1$s<ex>www.amazon.com</ex></ph> timer ran out. It'll start again tomorrow.
|
||||
</message>
|
||||
|
||||
@@ -186,4 +228,3 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
<message name="IDS_TAB_MANAGEMENT_MODULE_TITLE" desc="Text shown when the Tab Management module is referenced in install start, success, failure UI (e.g. in IDS_MODULE_INSTALL_START_TEXT, which will expand to 'Installing Tab management for Chrome…').">
|
||||
Tab management
|
||||
--
|
||||
2.25.1
|
||||
@@ -5,36 +5,38 @@ Subject: Add option to force tablet UI
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++++++
|
||||
.../browser/tasks/ReturnToChromeUtil.java | 4 +++-
|
||||
.../chrome/browser/ui/RootUiCoordinator.java | 5 ++++-
|
||||
chrome/browser/preferences/BUILD.gn | 1 +
|
||||
.../preferences/ChromePreferenceKeys.java | 1 +
|
||||
.../preferences/ChromeSharedPreferences.java | 8 ++++++++
|
||||
.../LegacyChromePreferenceKeys.java | 1 +
|
||||
.../omnibox/LocationBarCoordinator.java | 2 +-
|
||||
.../strings/android_chrome_strings.grd | 6 ++++++
|
||||
.../toolbar/top/ToolbarControlContainer.java | 5 ++---
|
||||
.../strings/android_chrome_strings.grd | 7 +++++++
|
||||
components/BUILD.gn | 6 +++---
|
||||
.../res/xml/accessibility_preferences.xml | 5 +++++
|
||||
.../accessibility/AccessibilitySettings.java | 11 +++++++++++
|
||||
.../accessibility/AccessibilitySettings.java | 10 ++++++++++
|
||||
.../AccessibilitySettingsDelegate.java | 2 ++
|
||||
ui/android/BUILD.gn | 2 ++
|
||||
.../chromium/ui/base/DeviceFormFactor.java | 5 +++++
|
||||
12 files changed, 58 insertions(+), 7 deletions(-)
|
||||
.../chromium/ui/base/DeviceFormFactor.java | 6 ++++++
|
||||
14 files changed, 71 insertions(+), 6 deletions(-)
|
||||
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
@@ -77,6 +77,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
return new ReaderForAccessibilityDelegate(mProfile);
|
||||
@@ -94,6 +94,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
return new TextSizeContrastAccessibilityDelegate(getBrowserContextHandle());
|
||||
}
|
||||
|
||||
+ private static class ForceTabletUIDelegate implements BooleanPreferenceDelegate {
|
||||
+ @Override
|
||||
+ public boolean isEnabled() {
|
||||
+ return SharedPreferencesManager.getInstance().readBoolean(
|
||||
+ return ChromeSharedPreferences.getInstance().readBoolean(
|
||||
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setEnabled(boolean value) {
|
||||
+ SharedPreferencesManager.getInstance().writeBoolean(
|
||||
+ ChromeSharedPreferences.getInstance().writeBoolean(
|
||||
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, value);
|
||||
+ }
|
||||
+ }
|
||||
@@ -47,32 +49,104 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
@Override
|
||||
public void addExtraPreferences(PreferenceFragmentCompat fragment) {
|
||||
if (ImageDescriptionsController.getInstance().shouldShowImageDescriptionsMenuItem()) {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
|
||||
@@ -979,7 +979,9 @@ public final class ReturnToChromeUtil {
|
||||
|
||||
public static boolean isScrollableMvtEnabled(Context context) {
|
||||
boolean isSurfacePolishEnabled = ChromeFeatureList.sSurfacePolish.isEnabled();
|
||||
- if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(context)) {
|
||||
+ if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(context) ||
|
||||
+ ChromeSharedPreferences.getInstance().readBoolean(
|
||||
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) {
|
||||
// On phones, parameter SURFACE_POLISH_SCROLLABLE_MVT is checked when feature flag
|
||||
// surface polish is enabled; otherwise, feature flag
|
||||
// SHOW_SCROLLABLE_MVT_ON_NTP_PHONE_ANDROID is checked.
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
|
||||
@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
|
||||
import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
|
||||
import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
|
||||
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
@@ -1595,7 +1596,9 @@ public class RootUiCoordinator
|
||||
if (!mSupportsFindInPageSupplier.getAsBoolean()) return;
|
||||
|
||||
int stubId = R.id.find_toolbar_stub;
|
||||
- if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) {
|
||||
+ if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity) &&
|
||||
+ !ChromeSharedPreferences.getInstance().readBoolean(
|
||||
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) {
|
||||
stubId = R.id.find_toolbar_tablet_stub;
|
||||
}
|
||||
mFindToolbarManager =
|
||||
diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn
|
||||
--- a/chrome/browser/preferences/BUILD.gn
|
||||
+++ b/chrome/browser/preferences/BUILD.gn
|
||||
@@ -26,6 +26,7 @@ android_library("java") {
|
||||
"//components/browser_ui/site_settings/android:constants_java",
|
||||
"//third_party/androidx:androidx_annotation_annotation_java",
|
||||
"//third_party/jni_zero:jni_zero_java",
|
||||
+ "//ui/android:ui_java",
|
||||
]
|
||||
|
||||
srcjar_deps = [
|
||||
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
|
||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
|
||||
@@ -386,6 +386,7 @@ public final class ChromePreferenceKeys {
|
||||
@@ -270,6 +270,7 @@ public final class ChromePreferenceKeys {
|
||||
AccessibilityConstants.FONT_USER_SET_FORCE_ENABLE_ZOOM;
|
||||
|
||||
public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info";
|
||||
+ public static final String FLAGS_FORCE_TABLET_UI_ENABLED = "force_tablet_ui_enabled";
|
||||
|
||||
/** Keys used to save settings related to homepage. */
|
||||
public static final String HOMEPAGE_CUSTOM_URI = "homepage_custom_uri";
|
||||
public static final String DEPRECATED_HOMEPAGE_CUSTOM_URI = "homepage_custom_uri";
|
||||
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
|
||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromeSharedPreferences.java
|
||||
@@ -11,6 +11,8 @@ import org.chromium.base.shared_preferences.PreferenceKeyRegistry;
|
||||
import org.chromium.base.shared_preferences.SharedPreferencesManager;
|
||||
import org.chromium.build.BuildConfig;
|
||||
|
||||
+import org.chromium.ui.base.DeviceFormFactor;
|
||||
+
|
||||
@JNINamespace("android::shared_preferences")
|
||||
public class ChromeSharedPreferences {
|
||||
public static final PreferenceKeyRegistry REGISTRY =
|
||||
@@ -22,6 +24,12 @@ public class ChromeSharedPreferences {
|
||||
LegacyChromePreferenceKeys.getPrefixesInUse())
|
||||
: null);
|
||||
|
||||
+ static {
|
||||
+ DeviceFormFactor.setForceTabletUI(
|
||||
+ ChromeSharedPreferences.getInstance().readBoolean(
|
||||
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false));
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* @return The //base SharedPreferencesManager singleton.
|
||||
*/
|
||||
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
|
||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||
@@ -65,6 +65,7 @@ public class LegacyChromePreferenceKeys {
|
||||
ChromePreferenceKeys.FLAGS_CACHED_SWAP_PIXEL_FORMAT_TO_FIX_CONVERT_FROM_TRANSLUCENT,
|
||||
ChromePreferenceKeys.FLAGS_CACHED_TAB_GROUPS_ANDROID_ENABLED,
|
||||
@@ -58,6 +58,7 @@ public class LegacyChromePreferenceKeys {
|
||||
ChromePreferenceKeys.FIRST_RUN_LIGHTWEIGHT_FLOW_COMPLETE,
|
||||
ChromePreferenceKeys.FIRST_RUN_SKIP_WELCOME_PAGE,
|
||||
ChromePreferenceKeys.FONT_USER_FONT_SCALE_FACTOR,
|
||||
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED,
|
||||
ChromePreferenceKeys.FONT_USER_SET_FORCE_ENABLE_ZOOM,
|
||||
ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO,
|
||||
ChromePreferenceKeys.HOMEPAGE_CUSTOM_URI,
|
||||
ChromePreferenceKeys.HOMEPAGE_ENABLED,
|
||||
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
|
||||
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
||||
@@ -669,7 +669,7 @@ public class LocationBarCoordinator
|
||||
@@ -771,7 +771,7 @@ public class LocationBarCoordinator
|
||||
}
|
||||
|
||||
private boolean isTabletWindow() {
|
||||
@@ -84,38 +158,24 @@ 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
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -1675,6 +1675,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_PRIVACY_GUIDE_SB_ENHANCED_ITEM_SEVEN" desc="Seventh bullet point that describes the details of the Safe Browsing control.">
|
||||
Temporarily links this data to your Google Account when you’re signed in, to protect you across Google apps
|
||||
@@ -1564,6 +1564,13 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
Manage third-party cookies and tracking protections
|
||||
</message>
|
||||
|
||||
+ <message name="IDS_FORCE_TABLET_UI_SUMMARY" desc="Summary of the preference that allows the user to force chromium to use tablet UI.">
|
||||
+ Open chromium in Tablet Mode
|
||||
+ </message>
|
||||
+ <message name="IDS_FORCE_TABLET_UI_TITLE" desc="Title of the preference that allows the user to update force tablet UI settings.">
|
||||
+ Force Tablet Mode
|
||||
+ </message>
|
||||
|
||||
+
|
||||
<!-- 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]">
|
||||
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
|
||||
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
||||
@@ -165,9 +165,8 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con
|
||||
|
||||
return backgroundDrawable;
|
||||
} else {
|
||||
- final Drawable backgroundDrawable =
|
||||
- AppCompatResources.getDrawable(getContext(), R.drawable.toolbar_background)
|
||||
- .mutate();
|
||||
+ Drawable backgroundDrawable = new ColorDrawable(
|
||||
+ ChromeColors.getPrimaryBackgroundColor(getContext(), incognito));
|
||||
backgroundDrawable.setTint(ChromeColors.getDefaultThemeColor(getContext(), incognito));
|
||||
backgroundDrawable.setTintMode(PorterDuff.Mode.MULTIPLY);
|
||||
|
||||
Safety check
|
||||
diff --git a/components/BUILD.gn b/components/BUILD.gn
|
||||
--- a/components/BUILD.gn
|
||||
+++ b/components/BUILD.gn
|
||||
@@ -68,7 +68,7 @@ if (is_ios) {
|
||||
@@ -69,7 +69,7 @@ if (is_ios) {
|
||||
|
||||
# Omit Lacros because it allows //components to depend on //chrome, which in
|
||||
# turn depends on //extensions.
|
||||
@@ -124,7 +184,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
|
||||
disallowed_extension_deps_ = [
|
||||
# Components should largely not depend on //extensions. Since // extensions
|
||||
# is not a component target and is linked with //chrome, depending on most
|
||||
@@ -730,7 +730,7 @@ test("components_unittests") {
|
||||
@@ -831,7 +831,7 @@ test("components_unittests") {
|
||||
# On other platforms, no components should depend on Chrome.
|
||||
# Since //chrome depends on //extensions, we also only assert_no_deps on
|
||||
# extensions targets for non-lacros builds.
|
||||
@@ -133,7 +193,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
|
||||
assert_no_deps = [ "//chrome/*" ]
|
||||
assert_no_deps += disallowed_extension_deps_
|
||||
}
|
||||
@@ -1018,7 +1018,7 @@ if (use_blink) {
|
||||
@@ -1113,7 +1113,7 @@ if (use_blink) {
|
||||
# dependency. On other platforms, no components should depend on Chrome.
|
||||
# Since //chrome depends on //extensions, we also only assert_no_deps on
|
||||
# extensions targets for non-lacros builds.
|
||||
@@ -145,11 +205,11 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
|
||||
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
|
||||
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
@@ -36,6 +36,11 @@ found in the LICENSE file.
|
||||
android:summary="@string/accessibility_tab_switcher_summary"
|
||||
android:title="@string/accessibility_tab_switcher_title" />
|
||||
@@ -40,6 +40,11 @@ found in the LICENSE file.
|
||||
android:summary="@string/reader_for_accessibility_summary"
|
||||
android:title="@string/reader_for_accessibility_title" />
|
||||
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="force_tablet_ui"
|
||||
+ android:summary="@string/force_tablet_ui_summary"
|
||||
+ android:title="@string/force_tablet_ui_title" />
|
||||
@@ -160,37 +220,29 @@ 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
|
||||
--- 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
|
||||
@@ -14,6 +14,7 @@ import androidx.preference.PreferenceFragmentCompat;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate;
|
||||
import org.chromium.components.browser_ui.accessibility.FontSizePrefs.FontSizePrefsObserver;
|
||||
+import org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference;
|
||||
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||
import org.chromium.components.browser_ui.settings.CustomDividerFragment;
|
||||
import org.chromium.components.browser_ui.settings.SettingsUtils;
|
||||
@@ -30,6 +31,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
public static final String PREF_READER_FOR_ACCESSIBILITY = "reader_for_accessibility";
|
||||
@@ -32,6 +32,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
public static final String PREF_CAPTIONS = "captions";
|
||||
public static final String PREF_ZOOM_INFO = "zoom_info";
|
||||
|
||||
+ private BooleanPreferenceDelegate mForceTabletUIDelegate;
|
||||
+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
|
||||
private TextScalePreference mTextScalePref;
|
||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
|
||||
@@ -109,6 +112,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||
@@ -129,6 +131,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
getPreferenceScreen().removePreference(readerForAccessibilityPref);
|
||||
}
|
||||
|
||||
+ ChromeBaseCheckBoxPreference forceTabletUiPref =
|
||||
+ (ChromeBaseCheckBoxPreference) findPreference(PREF_FORCE_TABLET_UI);
|
||||
+ ChromeSwitchPreference forceTabletUiPref =
|
||||
+ (ChromeSwitchPreference) findPreference(PREF_FORCE_TABLET_UI);
|
||||
+ mForceTabletUIDelegate = mDelegate.getForceTabletUIDelegate();
|
||||
+ forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled());
|
||||
+ forceTabletUiPref.setOnPreferenceChangeListener(this);
|
||||
+
|
||||
ChromeSwitchPreference accessibilityTabSwitcherPref =
|
||||
(ChromeSwitchPreference) findPreference(
|
||||
AccessibilityConstants.ACCESSIBILITY_TAB_SWITCHER);
|
||||
@@ -165,6 +174,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
Preference captions = findPreference(PREF_CAPTIONS);
|
||||
captions.setOnPreferenceClickListener(
|
||||
preference -> {
|
||||
@@ -190,6 +198,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
mFontSizePrefs.setUserFontScaleFactor((Float) newValue);
|
||||
} else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
|
||||
mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue);
|
||||
@@ -202,48 +254,36 @@ 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
|
||||
--- 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
|
||||
@@ -44,6 +44,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
@@ -52,6 +52,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
*/
|
||||
BooleanPreferenceDelegate getReaderForAccessibilityDelegate();
|
||||
IntegerPreferenceDelegate getTextSizeContrastAccessibilityDelegate();
|
||||
|
||||
+ BooleanPreferenceDelegate getForceTabletUIDelegate();
|
||||
+
|
||||
/**
|
||||
* Allows the embedder to add more preferences to the preference screen.
|
||||
*
|
||||
diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn
|
||||
--- a/ui/android/BUILD.gn
|
||||
+++ b/ui/android/BUILD.gn
|
||||
@@ -408,6 +408,8 @@ android_library("ui_no_recycler_view_java") {
|
||||
":ui_android_features_java",
|
||||
":ui_java_resources",
|
||||
":ui_utils_java",
|
||||
+ # dependency for ui_no_recycler_view_java
|
||||
+ "//chrome/browser/preferences:java",
|
||||
"//base:base_java",
|
||||
"//base:jni_java",
|
||||
"//build/android:build_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
|
||||
+++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
|
||||
@@ -12,6 +12,8 @@ import androidx.annotation.VisibleForTesting;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.ThreadUtils;
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
+import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
|
||||
import org.chromium.ui.R;
|
||||
import org.chromium.ui.display.DisplayAndroid;
|
||||
import org.chromium.ui.display.DisplayUtil;
|
||||
@@ -62,6 +64,9 @@ public class DeviceFormFactor {
|
||||
@@ -31,6 +31,11 @@ public class DeviceFormFactor {
|
||||
/** Matches the value set in res/values-sw720dp/values.xml */
|
||||
private static final int SCREEN_BUCKET_LARGET_TABLET = 3;
|
||||
|
||||
+ private static boolean mForceTabletUI;
|
||||
+ public static void setForceTabletUI(boolean forceTabletUI) {
|
||||
+ mForceTabletUI = forceTabletUI;
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* 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".
|
||||
@@ -56,6 +61,7 @@ public class DeviceFormFactor {
|
||||
* E.g. http://developer.samsung.com/samsung-dex/testing
|
||||
*/
|
||||
public static boolean isNonMultiDisplayContextOnTablet(Context context) {
|
||||
+ if (SharedPreferencesManager.getInstance().readBoolean(
|
||||
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false))
|
||||
+ return true;
|
||||
+ if (mForceTabletUI) return true;
|
||||
return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET;
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -13,7 +13,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
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -55,6 +55,11 @@ found in the LICENSE file.
|
||||
@@ -71,6 +71,11 @@ found in the LICENSE file.
|
||||
android:title="@string/incognito_settings_title"
|
||||
android:summary="@string/incognito_settings_summary"
|
||||
android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/>
|
||||
@@ -22,13 +22,13 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
||||
+ android:title="@string/close_tabs_on_exit_title"
|
||||
+ android:summary="@string/close_tabs_on_exit_summary"
|
||||
+ android:defaultValue="false" />
|
||||
<Preference
|
||||
android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings"
|
||||
android:key="do_not_track"
|
||||
<PreferenceCategory
|
||||
android:key="services_category"
|
||||
android:title="@string/services_category_title">
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -38,6 +38,7 @@ import org.chromium.base.BuildInfo;
|
||||
@@ -41,6 +41,7 @@ import org.chromium.base.BuildInfo;
|
||||
import org.chromium.base.Callback;
|
||||
import org.chromium.base.CallbackController;
|
||||
import org.chromium.base.CommandLine;
|
||||
@@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
import org.chromium.base.IntentUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.MemoryPressureListener;
|
||||
@@ -1283,8 +1284,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1614,8 +1615,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
boolean hadCipherData =
|
||||
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
|
||||
|
||||
@@ -45,8 +45,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
- CommandLine.getInstance().hasSwitch(ChromeSwitches.NO_RESTORE_STATE);
|
||||
+ CommandLine.getInstance().hasSwitch(ChromeSwitches.NO_RESTORE_STATE) ||
|
||||
+ ContextUtils.getAppSharedPreferences().getBoolean(PREF_CLOSE_TABS_ON_EXIT, false);
|
||||
boolean shouldShowHomeSurfaceAtStartupOnTablet = false;
|
||||
final AtomicBoolean isActiveUrlNTP = new AtomicBoolean(false);
|
||||
boolean shouldShowNtpAsHomeSurfaceAtStartup = false;
|
||||
final AtomicBoolean isActiveUrlNtp = new AtomicBoolean(false);
|
||||
if (noRestoreState) {
|
||||
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
|
||||
@@ -59,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
@@ -21,6 +22,8 @@ import androidx.preference.PreferenceFragmentCompat;
|
||||
@@ -20,6 +21,8 @@ import androidx.preference.Preference;
|
||||
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.base.metrics.RecordUserAction;
|
||||
@@ -67,17 +67,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
+import org.chromium.base.BuildInfo;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.enterprise.util.ManagedBrowserUtils;
|
||||
import org.chromium.chrome.browser.feedback.FragmentHelpAndFeedbackLauncher;
|
||||
@@ -92,6 +95,8 @@ public class PrivacySettings extends PreferenceFragmentCompat
|
||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
@@ -87,6 +90,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
private final SharedPreferencesManager mSharedPreferencesManager =
|
||||
SharedPreferencesManager.getInstance();
|
||||
ChromeSharedPreferences.getInstance();
|
||||
|
||||
+ private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
||||
+
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
private IncognitoLockSettings mIncognitoLockSettings;
|
||||
private HelpAndFeedbackLauncher mHelpAndFeedbackLauncher;
|
||||
@@ -247,7 +252,11 @@ public class PrivacySettings extends PreferenceFragmentCompat
|
||||
|
||||
@@ -271,7 +276,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String key = preference.getKey();
|
||||
@@ -87,10 +87,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
+ sharedPreferencesEditor.putBoolean(PREF_CLOSE_TABS_ON_EXIT, (boolean)newValue);
|
||||
+ sharedPreferencesEditor.apply();
|
||||
+ } else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
UserPrefs.get(mProfile).setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
UserPrefs.get(getProfile())
|
||||
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
} else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
|
||||
UserPrefs.get(mProfile).setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue);
|
||||
@@ -290,6 +299,11 @@ public class PrivacySettings extends PreferenceFragmentCompat
|
||||
@@ -316,6 +325,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
PreloadPagesSettingsFragment.getPreloadPagesSummaryString(getContext()));
|
||||
}
|
||||
|
||||
@@ -105,7 +105,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
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -4653,6 +4653,12 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
@@ -4805,6 +4805,12 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
|
||||
<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.">
|
||||
IMAGE
|
||||
</message>
|
||||
@@ -119,4 +119,3 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
LINK
|
||||
</message>
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -6,19 +6,85 @@ And allow use about:blank as default homepage
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../tab_management/TabGridDialogMediator.java | 9 ++++++++-
|
||||
.../tasks/tab_management/TabGroupUiMediator.java | 8 +++++++-
|
||||
.../java/res/xml/homepage_preferences.xml | 5 +++++
|
||||
.../chrome/browser/homepage/HomepageManager.java | 16 ++++++++++++++++
|
||||
.../homepage/settings/HomepageSettings.java | 12 ++++++++++++
|
||||
.../chrome/browser/metrics/LaunchMetrics.java | 1 -
|
||||
.../browser/tabmodel/ChromeTabCreator.java | 7 +++++++
|
||||
.../browser/tabmodel/ChromeTabCreator.java | 8 ++++++++
|
||||
.../preferences/ChromePreferenceKeys.java | 1 +
|
||||
.../preferences/LegacyChromePreferenceKeys.java | 1 +
|
||||
.../android/strings/android_chrome_strings.grd | 3 +++
|
||||
chrome/browser/ui/browser_ui_prefs.cc | 2 ++
|
||||
chrome/common/pref_names.cc | 4 ++++
|
||||
chrome/common/pref_names.h | 1 +
|
||||
11 files changed, 52 insertions(+), 1 deletion(-)
|
||||
chrome/common/pref_names.h | 4 ++++
|
||||
12 files changed, 67 insertions(+), 3 deletions(-)
|
||||
|
||||
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
|
||||
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
|
||||
@@ -22,6 +22,7 @@ import org.chromium.base.supplier.ObservableSupplier;
|
||||
import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.base.task.PostTask;
|
||||
import org.chromium.base.task.TaskTraits;
|
||||
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabCreationState;
|
||||
import org.chromium.chrome.browser.tab.TabLaunchType;
|
||||
@@ -47,6 +48,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate;
|
||||
import org.chromium.ui.base.DeviceFormFactor;
|
||||
import org.chromium.ui.modelutil.PropertyModel;
|
||||
import org.chromium.ui.text.EmptyTextWatcher;
|
||||
+import org.chromium.url.GURL;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -636,11 +638,16 @@ public class TabGridDialogMediator
|
||||
|
||||
assert relatedTabs.size() > 0;
|
||||
|
||||
+ String url = UrlConstants.NTP_URL;
|
||||
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
||||
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl();
|
||||
+ url = gurl != null ? gurl.getSpec() : url;
|
||||
+ }
|
||||
Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
|
||||
mTabCreatorManager
|
||||
.getTabCreator(currentTab.isIncognito())
|
||||
.createNewTab(
|
||||
- new LoadUrlParams(UrlConstants.NTP_URL),
|
||||
+ new LoadUrlParams(url),
|
||||
TabLaunchType.FROM_TAB_GROUP_UI,
|
||||
parentTabToAttach);
|
||||
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
|
||||
--- 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
|
||||
@@ -18,6 +18,7 @@ import org.chromium.base.supplier.LazyOneshotSupplier;
|
||||
import org.chromium.base.supplier.ObservableSupplier;
|
||||
import org.chromium.base.supplier.ObservableSupplierImpl;
|
||||
import org.chromium.base.supplier.OneshotSupplier;
|
||||
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
||||
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
|
||||
import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver;
|
||||
import org.chromium.chrome.browser.layouts.LayoutType;
|
||||
@@ -375,10 +376,15 @@ public class TabGroupUiMediator implements BackPressHandler {
|
||||
assert relatedTabs.size() > 0;
|
||||
|
||||
parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
|
||||
+ String url = UrlConstants.NTP_URL;
|
||||
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
||||
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl();
|
||||
+ url = gurl != null ? gurl.getSpec() : url;
|
||||
+ }
|
||||
mTabCreatorManager
|
||||
.getTabCreator(currentTab.isIncognito())
|
||||
.createNewTab(
|
||||
- new LoadUrlParams(UrlConstants.NTP_URL),
|
||||
+ new LoadUrlParams(url),
|
||||
TabLaunchType.FROM_TAB_GROUP_UI,
|
||||
parentTabToAttach);
|
||||
RecordUserAction.record(
|
||||
diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/android/java/res/xml/homepage_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/homepage_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/homepage_preferences.xml
|
||||
@@ -37,7 +103,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/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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||
@@ -227,6 +227,22 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat
|
||||
@@ -233,6 +233,22 @@ public class HomepageManager
|
||||
notifyHomepageUpdated();
|
||||
}
|
||||
|
||||
@@ -58,30 +124,30 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* @return User specified homepage custom URI string.
|
||||
* @return User specified homepage custom GURL.
|
||||
*/
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
|
||||
@@ -22,6 +22,7 @@ import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||
import org.chromium.components.browser_ui.settings.SettingsUtils;
|
||||
@@ -22,6 +22,7 @@ import org.chromium.components.browser_ui.settings.SettingsUtils;
|
||||
import org.chromium.components.embedder_support.util.UrlUtilities;
|
||||
import org.chromium.components.url_formatter.UrlFormatter;
|
||||
import org.chromium.url.GURL;
|
||||
+import org.chromium.components.embedder_support.util.UrlConstants;
|
||||
|
||||
/**
|
||||
* Fragment that allows the user to configure homepage related preferences.
|
||||
@@ -32,6 +33,8 @@ public class HomepageSettings extends PreferenceFragmentCompat {
|
||||
/** Fragment that allows the user to configure homepage related preferences. */
|
||||
public class HomepageSettings extends ChromeBaseSettingsFragment {
|
||||
@@ -30,6 +31,8 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
|
||||
@VisibleForTesting
|
||||
public static final String PREF_HOMEPAGE_RADIO_GROUP = "homepage_radio_group";
|
||||
|
||||
+ private static final String PREF_NTP_HOMEPAGE_SWITCH = "ntp_is_homepage_switch";
|
||||
+
|
||||
/**
|
||||
* Delegate used to mark that the homepage is being managed.
|
||||
* Created for {@link org.chromium.chrome.browser.settings.HomepagePreferences}
|
||||
@@ -72,6 +75,15 @@ public class HomepageSettings extends PreferenceFragmentCompat {
|
||||
});
|
||||
private HomepageManager mHomepageManager;
|
||||
private RadioButtonGroupHomepagePreference mRadioButtons;
|
||||
|
||||
@@ -64,6 +67,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
|
||||
});
|
||||
mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup());
|
||||
|
||||
+ ChromeSwitchPreference mNTPIsHomepageSwitch =
|
||||
@@ -99,32 +165,33 @@ 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
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
|
||||
@@ -103,7 +103,6 @@ public class LaunchMetrics {
|
||||
boolean showHomeButton, boolean homepageIsNtp, String homepageUrl) {
|
||||
if (homepageUrl == null) {
|
||||
homepageUrl = "";
|
||||
- assert !showHomeButton : "Homepage should be disabled for a null URL";
|
||||
@@ -112,7 +112,6 @@ public class LaunchMetrics {
|
||||
public static void recordHomePageLaunchMetrics(
|
||||
boolean showHomeButton, boolean homepageIsNtp, GURL homepageGurl) {
|
||||
if (homepageGurl.isEmpty()) {
|
||||
- assert !showHomeButton : "Homepage should be disabled for an empty GURL";
|
||||
}
|
||||
LaunchMetricsJni.get().recordHomePageLaunchMetrics(
|
||||
showHomeButton, homepageIsNtp, homepageUrl);
|
||||
LaunchMetricsJni.get()
|
||||
.recordHomePageLaunchMetrics(showHomeButton, homepageIsNtp, homepageGurl);
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||
@@ -26,6 +26,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask;
|
||||
@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask;
|
||||
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
|
||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.incognito.IncognitoUtils;
|
||||
import org.chromium.chrome.browser.new_tab_url.DseNewTabUrlManager;
|
||||
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
||||
import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin;
|
||||
import org.chromium.chrome.browser.ntp.NewTabPageUtils;
|
||||
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge;
|
||||
@@ -472,6 +473,12 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@@ -484,6 +485,13 @@ public class ChromeTabCreator extends TabCreator {
|
||||
* @return the created tab.
|
||||
*/
|
||||
public Tab launchUrl(String url, @TabLaunchType int type, Intent intent, long intentTimestamp) {
|
||||
+ if (!mIncognito && url.equals(UrlConstants.NTP_URL)) {
|
||||
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
||||
+ url = HomepageManager.getInstance().getHomepageUri();
|
||||
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl();
|
||||
+ url = gurl != null ? gurl.getSpec() : url;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
@@ -134,19 +201,19 @@ 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
|
||||
--- 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
|
||||
@@ -397,6 +397,7 @@ public final class ChromePreferenceKeys {
|
||||
public static final String HOMEPAGE_PARTNER_CUSTOMIZED_DEFAULT_GURL =
|
||||
"Chrome.Homepage.PartnerCustomizedDefaultGurl";
|
||||
@@ -283,6 +283,7 @@ public final class ChromePreferenceKeys {
|
||||
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_NTP_IS_HOMEPAGE = "newtabpage_is_homepage";
|
||||
/**
|
||||
* Key used to save homepage location set by enterprise policy
|
||||
*/
|
||||
/** Key used to save homepage location set by enterprise policy */
|
||||
public static final String DEPRECATED_HOMEPAGE_LOCATION_POLICY =
|
||||
"Chrome.Policy.HomepageLocation";
|
||||
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
|
||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||
@@ -70,6 +70,7 @@ public class LegacyChromePreferenceKeys {
|
||||
ChromePreferenceKeys.HOMEPAGE_CUSTOM_URI,
|
||||
@@ -62,6 +62,7 @@ public class LegacyChromePreferenceKeys {
|
||||
ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO,
|
||||
ChromePreferenceKeys.HOMEPAGE_ENABLED,
|
||||
ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI,
|
||||
+ ChromePreferenceKeys.HOMEPAGE_NTP_IS_HOMEPAGE,
|
||||
@@ -156,7 +223,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
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -1487,6 +1487,9 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -1337,6 +1337,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.">
|
||||
Last hour
|
||||
</message>
|
||||
@@ -169,39 +236,27 @@ 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
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -65,6 +65,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -73,6 +73,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
GetHomeButtonAndHomePageIsNewTabPageFlags());
|
||||
registry->RegisterBooleanPref(prefs::kShowHomeButton, false,
|
||||
GetHomeButtonAndHomePageIsNewTabPageFlags());
|
||||
+ registry->RegisterBooleanPref(prefs::kNewTabPageIsHomePage, false,
|
||||
+ GetHomeButtonAndHomePageIsNewTabPageFlags());
|
||||
+ PrefRegistry::NO_REGISTRATION_FLAGS);
|
||||
|
||||
registry->RegisterInt64Pref(prefs::kDefaultBrowserLastDeclined, 0);
|
||||
bool reset_check_default = false;
|
||||
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
|
||||
--- a/chrome/common/pref_names.cc
|
||||
+++ b/chrome/common/pref_names.cc
|
||||
@@ -82,6 +82,10 @@ const char kForceEphemeralProfiles[] = "profile.ephemeral_mode";
|
||||
// A boolean specifying whether the New Tab page is the home page or not.
|
||||
const char kHomePageIsNewTabPage[] = "homepage_is_newtabpage";
|
||||
|
||||
+// A boolean specifying whether opening a new tab should open the Home page
|
||||
+// instead of the New Tab page.
|
||||
+const char kNewTabPageIsHomePage[] = "newtabpage_is_homepage";
|
||||
+
|
||||
// This is the URL of the page to load when opening new tabs.
|
||||
const char kHomePage[] = "homepage";
|
||||
|
||||
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
||||
--- a/chrome/common/pref_names.h
|
||||
+++ b/chrome/common/pref_names.h
|
||||
@@ -372,6 +372,7 @@ extern const char kRestrictedManagedGuestSessionExtensionCleanupExemptList[];
|
||||
extern const char kUsedPolicyCertificates[];
|
||||
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||
extern const char kShowHomeButton[];
|
||||
+extern const char kNewTabPageIsHomePage[];
|
||||
extern const char kSpeechRecognitionFilterProfanities[];
|
||||
extern const char kAllowedDomainsForApps[];
|
||||
#if BUILDFLAG(IS_CHROMEOS_LACROS)
|
||||
@@ -1285,6 +1285,10 @@ inline constexpr char kUsedPolicyCertificates[] =
|
||||
// visible on the toolbar.
|
||||
inline constexpr char kShowHomeButton[] = "browser.show_home_button";
|
||||
|
||||
+// A boolean specifying whether opening a new tab should open the Home page
|
||||
+// instead of the New Tab page.
|
||||
+inline constexpr char kNewTabPageIsHomePage[] = "newtabpage_is_homepage";
|
||||
+
|
||||
// Boolean pref to define the default setting for "block offensive words".
|
||||
// The old key value is kept to avoid unnecessary migration code.
|
||||
inline constexpr char kSpeechRecognitionFilterProfanities[] =
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 11 Dec 2017 22:42:11 +0100
|
||||
Subject: Add search engine
|
||||
|
||||
Add a Google search engine that forces languages to English,
|
||||
disable from all its searches RLZ and field experiments querystring parameters.
|
||||
Add DuckDuckGo Lite
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../search_engines/prepopulated_engines.json | 31 +++++++++++++++++++
|
||||
.../search_engines/search_engine_type.h | 5 +++
|
||||
.../template_url_prepopulate_data.cc | 3 ++
|
||||
3 files changed, 39 insertions(+)
|
||||
|
||||
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
|
||||
@@ -113,6 +113,16 @@
|
||||
"id": 92
|
||||
},
|
||||
|
||||
+ "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
|
||||
+ },
|
||||
+
|
||||
"ecosia": {
|
||||
"name": "Ecosia",
|
||||
"keyword": "ecosia.org",
|
||||
@@ -171,6 +181,27 @@
|
||||
"id": 111
|
||||
},
|
||||
|
||||
+ "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
|
||||
+ },
|
||||
+
|
||||
"mail_ru": {
|
||||
"name": "@MAIL.RU",
|
||||
"keyword": "mail.ru",
|
||||
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
|
||||
+++ b/components/search_engines/search_engine_type.h
|
||||
@@ -90,10 +90,15 @@ enum SearchEngineType {
|
||||
SEARCH_ENGINE_KARMA = 71,
|
||||
SEARCH_ENGINE_YOU = 72,
|
||||
SEARCH_ENGINE_STARTER_PACK_ASK_GOOGLE = 73,
|
||||
+ SEARCH_ENGINE_GOOGLE_EN = 74,
|
||||
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 75,
|
||||
|
||||
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
|
||||
};
|
||||
|
||||
+static_assert(SEARCH_ENGINE_DUCKDUCKGOLIGHT == (SEARCH_ENGINE_MAX - 1),
|
||||
+ "Please check this patch");
|
||||
+
|
||||
// Enum to record the type of search engine a user used in keyword mode. This
|
||||
// should be kept aligned with the `OmniboxBuiltinEngineType` enum in enums.xml.
|
||||
// Entries should not be renumbered and numeric values should never be reused.
|
||||
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
|
||||
+++ b/components/search_engines/template_url_prepopulate_data.cc
|
||||
@@ -63,6 +63,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},
|
||||
@@ -1683,6 +1684,8 @@ 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;
|
||||
}
|
||||
|
||||
--
|
||||
+146
-124
@@ -2,6 +2,7 @@ From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Thu, 16 Feb 2023 15:28:16 +0000
|
||||
Subject: Add setting to clear data on exit
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
chrome/android/chrome_java_sources.gni | 1 +
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 7 +-
|
||||
@@ -15,25 +16,26 @@ Subject: Add setting to clear data on exit
|
||||
.../api/settings_private/prefs_util.cc | 17 +++++
|
||||
.../browser/profiles/ProfileManagerUtils.java | 5 ++
|
||||
.../profiles/android/profile_manager_utils.cc | 5 ++
|
||||
chrome/browser/profiles/profile_manager.cc | 13 ++++
|
||||
chrome/browser/profiles/profile_manager.cc | 15 +++-
|
||||
chrome/browser/profiles/profile_manager.h | 2 +
|
||||
.../clear_browsing_data_dialog.html | 44 +++++++++++
|
||||
.../clear_browsing_data_dialog.ts | 1 +
|
||||
.../clear_browsing_data_dialog.ts | 2 +
|
||||
.../strings/android_chrome_strings.grd | 3 +
|
||||
.../settings_localized_strings_provider.cc | 1 +
|
||||
.../core/browsing_data_policies_utils.cc | 16 ++--
|
||||
.../core/browsing_data_policies_utils.cc | 20 ++---
|
||||
.../core/browsing_data_policies_utils.h | 11 +++
|
||||
.../browsing_data/core/browsing_data_utils.cc | 34 +++++++++
|
||||
.../core/clear_browsing_data_tab.h | 2 +-
|
||||
components/browsing_data/core/pref_names.cc | 27 +++++++
|
||||
components/browsing_data/core/pref_names.h | 9 +++
|
||||
24 files changed, 316 insertions(+), 14 deletions(-)
|
||||
components/browsing_data/core/pref_names.cc | 17 +++++
|
||||
components/browsing_data/core/pref_names.h | 10 +++
|
||||
content/browser/storage_partition_impl.cc | 1 +
|
||||
25 files changed, 312 insertions(+), 17 deletions(-)
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java
|
||||
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
+++ b/chrome/android/chrome_java_sources.gni
|
||||
@@ -289,6 +289,7 @@ chrome_java_sources = [
|
||||
@@ -307,6 +307,7 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAdvanced.java",
|
||||
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java",
|
||||
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java",
|
||||
@@ -44,15 +46,15 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -140,6 +140,7 @@ import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
@@ -169,6 +169,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
|
||||
import org.chromium.chrome.browser.quick_delete.QuickDeleteController;
|
||||
import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl;
|
||||
import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate;
|
||||
+import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
|
||||
import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler;
|
||||
import org.chromium.chrome.browser.read_later.ReadingListUtils;
|
||||
import org.chromium.chrome.browser.reengagement.ReengagementNotificationController;
|
||||
@@ -1283,7 +1284,11 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
import org.chromium.chrome.browser.search_engines.SearchEngineChoiceNotification;
|
||||
@@ -1614,7 +1615,11 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
Intent intent = getIntent();
|
||||
|
||||
boolean hadCipherData =
|
||||
@@ -68,8 +70,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
|
||||
@@ -417,6 +417,10 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
|
||||
*/
|
||||
@@ -435,6 +435,10 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
|
||||
/** Returns whether is a basic or advanced Clear Browsing Data tab. */
|
||||
protected abstract @ClearBrowsingDataTab int getClearBrowsingDataTabType();
|
||||
|
||||
+ protected boolean shouldClearBrowsingData() {
|
||||
@@ -77,9 +79,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Returns the Array of time periods. Options are displayed in the same order as they appear
|
||||
* in the array.
|
||||
@@ -515,6 +519,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
|
||||
* Decides whether a given dialog option should be selected when the dialog is initialized.
|
||||
*
|
||||
@@ -514,6 +518,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
|
||||
* options.
|
||||
*/
|
||||
private void onClearButtonClicked() {
|
||||
@@ -87,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
|
||||
if (shouldShowImportantSitesDialog()) {
|
||||
showImportantDialogThenClear();
|
||||
return;
|
||||
@@ -548,6 +553,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
|
||||
@@ -546,6 +551,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
|
||||
Button clearButton = (Button) getView().findViewById(R.id.clear_button);
|
||||
boolean isEnabled = !getSelectedOptions().isEmpty();
|
||||
clearButton.setEnabled(isEnabled);
|
||||
@@ -177,16 +179,16 @@ new file mode 100644
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java
|
||||
@@ -34,7 +34,7 @@ import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat;
|
||||
@@ -29,7 +29,7 @@ import org.chromium.chrome.browser.settings.SettingsActivity;
|
||||
* Fragment with a {@link TabLayout} containing a basic and an advanced version of the CBD dialog.
|
||||
*/
|
||||
public class ClearBrowsingDataTabsFragment
|
||||
extends Fragment implements FragmentHelpAndFeedbackLauncher {
|
||||
public class ClearBrowsingDataTabsFragment extends Fragment implements ProfileDependentSetting {
|
||||
- public static final int CBD_TAB_COUNT = 2;
|
||||
+ public static final int CBD_TAB_COUNT = 3;
|
||||
|
||||
private Profile mProfile;
|
||||
private ClearBrowsingDataFetcher mFetcher;
|
||||
private HelpAndFeedbackLauncher mHelpAndFeedbackLauncher;
|
||||
@@ -93,6 +93,8 @@ public class ClearBrowsingDataTabsFragment
|
||||
@@ -93,6 +93,8 @@ public class ClearBrowsingDataTabsFragment extends Fragment implements ProfileDe
|
||||
return getActivity().getString(R.string.clear_browsing_data_basic_tab_title);
|
||||
case 1:
|
||||
return getActivity().getString(R.string.prefs_section_advanced);
|
||||
@@ -195,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
|
||||
default:
|
||||
throw new RuntimeException("invalid position: " + position);
|
||||
}
|
||||
@@ -130,6 +132,9 @@ public class ClearBrowsingDataTabsFragment
|
||||
@@ -136,6 +138,9 @@ public class ClearBrowsingDataTabsFragment extends Fragment implements ProfileDe
|
||||
case 1:
|
||||
fragment = new ClearBrowsingDataFragmentAdvanced();
|
||||
break;
|
||||
@@ -208,11 +210,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
|
||||
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
|
||||
--- a/chrome/app/settings_strings.grdp
|
||||
+++ b/chrome/app/settings_strings.grdp
|
||||
@@ -2730,6 +2730,16 @@
|
||||
@@ -2244,6 +2244,16 @@
|
||||
<message name="IDS_SETTINGS_CLEAR_BROWSING_DATA" desc="Text for clear browsing data button in Privacy options">
|
||||
Clear browsing data
|
||||
</message>
|
||||
+ <if expr="is_win">
|
||||
+ <if expr="is_win or is_linux">
|
||||
+ <message name="IDS_CLEAR_BROWSING_DATA_ATSTART_TAB_TITLE" desc="The title of the tab showing the at start clear browsing data options.">
|
||||
+ At Close
|
||||
+ </message>
|
||||
@@ -228,19 +230,19 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
|
||||
diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
|
||||
--- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc
|
||||
+++ b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
|
||||
@@ -326,7 +326,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab(
|
||||
const JavaParamRef<jobject>& obj,
|
||||
@@ -331,7 +331,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab(
|
||||
const JavaParamRef<jobject>& jprofile,
|
||||
jint tab_index) {
|
||||
DCHECK_GE(tab_index, 0);
|
||||
- DCHECK_LT(tab_index, 2);
|
||||
+ DCHECK_LT(tab_index, 3);
|
||||
GetPrefService()->SetInteger(browsing_data::prefs::kLastClearBrowsingDataTab,
|
||||
tab_index);
|
||||
GetPrefService(jprofile)->SetInteger(
|
||||
browsing_data::prefs::kLastClearBrowsingDataTab, tab_index);
|
||||
}
|
||||
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
|
||||
--- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
|
||||
+++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
|
||||
@@ -326,8 +326,25 @@ void ChromeBrowsingDataLifetimeManager::Shutdown() {
|
||||
@@ -312,8 +312,25 @@ void ChromeBrowsingDataLifetimeManager::Shutdown() {
|
||||
|
||||
void ChromeBrowsingDataLifetimeManager::ClearBrowsingDataForOnExitPolicy(
|
||||
bool keep_browser_alive) {
|
||||
@@ -251,36 +253,36 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.
|
||||
+
|
||||
+ if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteBrowsingHistoryAtStart))
|
||||
+ data_types.Append(browsing_data::policy_data_types::kBrowsingHistoryName);
|
||||
+ if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteDownloadHistoryAtStart))
|
||||
+ data_types.Append(browsing_data::policy_data_types::kDownloadHistoryName);
|
||||
+ if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteCacheAtStart))
|
||||
+ data_types.Append(browsing_data::policy_data_types::kCachedImagesAndFilesName);
|
||||
+ if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteCookiesAtStart))
|
||||
+ data_types.Append(browsing_data::policy_data_types::kCookiesAndOtherSiteDataName);
|
||||
+ if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeletePasswordsAtStart))
|
||||
+ data_types.Append(browsing_data::policy_data_types::kPasswordSigninName);
|
||||
+ if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteFormDataAtStart))
|
||||
+ data_types.Append(browsing_data::policy_data_types::kAutofillName);
|
||||
+ if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteHostedAppsDataAtStart))
|
||||
+ data_types.Append(browsing_data::policy_data_types::kHostedAppDataName);
|
||||
+ if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteSiteSettingsAtStart))
|
||||
+ data_types.Append(browsing_data::policy_data_types::kSiteSettingsName);
|
||||
+ if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteHostedAppsDataAtStart))
|
||||
+ data_types.Append(browsing_data::policy_data_types::kHostedAppDataName);
|
||||
+ if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteDownloadHistoryAtStart))
|
||||
+ data_types.Append(browsing_data::policy_data_types::kDownloadHistoryName);
|
||||
+ if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteCookiesAtStart))
|
||||
+ data_types.Append(browsing_data::policy_data_types::kCookiesAndOtherSiteDataName);
|
||||
+ if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteCacheAtStart))
|
||||
+ data_types.Append(browsing_data::policy_data_types::kCachedImagesAndFilesName);
|
||||
|
||||
if (!data_types.empty() &&
|
||||
IsConditionSatisfiedForBrowsingDataRemoval(GetSyncTypesForPolicyPref(
|
||||
@@ -427,6 +444,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() {
|
||||
@@ -422,6 +439,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() {
|
||||
bool ChromeBrowsingDataLifetimeManager::
|
||||
IsConditionSatisfiedForBrowsingDataRemoval(
|
||||
const syncer::UserSelectableTypeSet sync_types) {
|
||||
+ if ((true)) return true;
|
||||
bool sync_disabled = !SyncServiceFactory::IsSyncAllowed(profile_);
|
||||
// Return the state of sync if
|
||||
// `features::kDataRetentionPoliciesDisableSyncTypesNeeded` is disabled or if
|
||||
// Condition is satisfied if sync is fully disabled by policy.
|
||||
if (sync_disabled) {
|
||||
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
||||
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
||||
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
||||
@@ -419,6 +419,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
delete_end_, CreateTaskCompletionClosure(TracingDataType::kHistory),
|
||||
@@ -436,6 +436,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
CreateTaskCompletionClosure(TracingDataType::kHistory),
|
||||
&history_task_tracker_);
|
||||
}
|
||||
+ }
|
||||
@@ -289,7 +291,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
|
||||
if (ClipboardRecentContent::GetInstance())
|
||||
ClipboardRecentContent::GetInstance()->SuppressClipboardContent();
|
||||
|
||||
@@ -469,7 +472,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
@@ -486,7 +489,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
prerender::NoStatePrefetchManager::CLEAR_PRERENDER_CONTENTS |
|
||||
prerender::NoStatePrefetchManager::CLEAR_PRERENDER_HISTORY);
|
||||
}
|
||||
@@ -299,7 +301,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
|
||||
// The saved Autofill profiles and credit cards can include the origin from
|
||||
// which these profiles and credit cards were learned. These are a form of
|
||||
// history, so clear them as well.
|
||||
@@ -490,7 +495,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
@@ -507,7 +512,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
if (data_manager)
|
||||
data_manager->Refresh();
|
||||
}
|
||||
@@ -309,7 +311,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
|
||||
base::ThreadPool::PostTaskAndReply(
|
||||
FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()},
|
||||
base::BindOnce(
|
||||
@@ -565,9 +572,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
@@ -582,9 +589,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
}
|
||||
|
||||
device_event_log::Clear(delete_begin_, delete_end_);
|
||||
@@ -320,40 +322,40 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
|
||||
+ }
|
||||
|
||||
+ if (remove_mask & content::BrowsingDataRemover::DATA_TYPE_CACHE) {
|
||||
FindBarStateFactory::GetForBrowserContext(profile_)->SetLastSearchText(
|
||||
std::u16string());
|
||||
content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange(
|
||||
delete_begin_, delete_end_);
|
||||
|
||||
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
|
||||
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
|
||||
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
|
||||
@@ -500,6 +500,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
|
||||
@@ -513,6 +513,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
|
||||
(*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] =
|
||||
settings_api::PrefType::PREF_TYPE_NUMBER;
|
||||
settings_api::PrefType::kNumber;
|
||||
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteBrowsingHistoryAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteDownloadHistoryAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteCacheAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteCookiesAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeletePasswordsAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteFormDataAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteSiteSettingsAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteHostedAppsDataAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+
|
||||
// Accessibility.
|
||||
(*s_allowlist)[::prefs::kAccessibilityImageLabelsEnabled] =
|
||||
settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
settings_api::PrefType::kBoolean;
|
||||
diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java b/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java
|
||||
--- a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java
|
||||
+++ b/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java
|
||||
@@ -52,9 +52,14 @@ public class ProfileManagerUtils {
|
||||
@@ -52,10 +52,15 @@ public class ProfileManagerUtils {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -364,6 +366,7 @@ diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browse
|
||||
@NativeMethods
|
||||
interface Natives {
|
||||
void flushPersistentDataForAllProfiles();
|
||||
|
||||
void removeSessionCookiesForAllProfiles();
|
||||
+ void removeBrowsingDataAtStart();
|
||||
}
|
||||
@@ -371,7 +374,7 @@ diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browse
|
||||
diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/browser/profiles/android/profile_manager_utils.cc
|
||||
--- a/chrome/browser/profiles/android/profile_manager_utils.cc
|
||||
+++ b/chrome/browser/profiles/android/profile_manager_utils.cc
|
||||
@@ -67,3 +67,8 @@ static void JNI_ProfileManagerUtils_RemoveSessionCookiesForAllProfiles(
|
||||
@@ -62,3 +62,8 @@ static void JNI_ProfileManagerUtils_RemoveSessionCookiesForAllProfiles(
|
||||
g_browser_process->profile_manager()->GetLoadedProfiles(),
|
||||
RemoveSessionCookiesForProfile);
|
||||
}
|
||||
@@ -383,7 +386,7 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b
|
||||
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
|
||||
--- a/chrome/browser/profiles/profile_manager.cc
|
||||
+++ b/chrome/browser/profiles/profile_manager.cc
|
||||
@@ -1444,6 +1444,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
|
||||
@@ -1488,6 +1488,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -403,10 +406,19 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
|
||||
void ProfileManager::DoFinalInitForServices(Profile* profile,
|
||||
bool go_off_the_record) {
|
||||
if (!do_final_services_init_ ||
|
||||
@@ -2155,7 +2168,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
|
||||
Profile* original_profile = profile->GetOriginalProfile();
|
||||
// Do nothing if the closed window is not the last window of the same profile.
|
||||
for (Browser* browser_iter : *BrowserList::GetInstance()) {
|
||||
- if (browser_iter->profile()->GetOriginalProfile() == original_profile)
|
||||
+ if (browser_iter->profile() == profile)
|
||||
return;
|
||||
}
|
||||
|
||||
diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h
|
||||
--- a/chrome/browser/profiles/profile_manager.h
|
||||
+++ b/chrome/browser/profiles/profile_manager.h
|
||||
@@ -198,6 +198,8 @@ class ProfileManager : public Profile::Delegate {
|
||||
@@ -199,6 +199,8 @@ class ProfileManager : public Profile::Delegate {
|
||||
// profiles.
|
||||
std::vector<Profile*> GetLoadedProfiles() const;
|
||||
|
||||
@@ -418,7 +430,7 @@ diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles
|
||||
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
|
||||
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
|
||||
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
|
||||
@@ -284,6 +284,50 @@
|
||||
@@ -305,6 +305,50 @@
|
||||
disabled="[[clearingInProgress_]]" no-set-pref>
|
||||
</settings-checkbox>
|
||||
</div>
|
||||
@@ -472,7 +484,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
|
||||
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
|
||||
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
|
||||
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
|
||||
@@ -194,6 +194,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
@@ -302,6 +302,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
value: () =>
|
||||
[loadTimeData.getString('basicPageTitle'),
|
||||
loadTimeData.getString('advancedPageTitle'),
|
||||
@@ -480,10 +492,18 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
|
||||
],
|
||||
},
|
||||
|
||||
@@ -425,6 +426,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
}
|
||||
this.clearButtonDisabled_ =
|
||||
this.getSelectedDataTypes_(tab as HTMLElement).length === 0;
|
||||
+ if ((tab as HTMLElement).id == "atstart-tab") this.clearButtonDisabled_ = true;
|
||||
}
|
||||
|
||||
/**
|
||||
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
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -1582,6 +1582,9 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -1432,6 +1432,9 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_CLEAR_BROWSING_DATA_BASIC_TAB_TITLE" desc="The title of the tab showing the basic clear browsing data options.">
|
||||
Basic
|
||||
</message>
|
||||
@@ -496,41 +516,49 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
|
||||
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
|
||||
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
|
||||
@@ -1771,6 +1771,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
|
||||
{"clearedData", IDS_SETTINGS_CLEARED_DATA},
|
||||
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
|
||||
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
|
||||
+ {"atStartPageTitle", IDS_CLEAR_BROWSING_DATA_ATSTART_TAB_TITLE},
|
||||
{"titleAndCount", IDS_SETTINGS_TITLE_AND_COUNT},
|
||||
{"safeBrowsingEnableExtendedReportingDesc",
|
||||
IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING_DESC},
|
||||
@@ -1674,6 +1674,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
|
||||
{"clearedData", IDS_SETTINGS_CLEARED_DATA},
|
||||
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
|
||||
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
|
||||
+ {"atStartPageTitle", IDS_CLEAR_BROWSING_DATA_ATSTART_TAB_TITLE},
|
||||
{"titleAndCount", IDS_SETTINGS_TITLE_AND_COUNT},
|
||||
{"safeBrowsingEnableExtendedReportingDesc",
|
||||
IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING_DESC},
|
||||
diff --git a/components/browsing_data/core/browsing_data_policies_utils.cc b/components/browsing_data/core/browsing_data_policies_utils.cc
|
||||
--- a/components/browsing_data/core/browsing_data_policies_utils.cc
|
||||
+++ b/components/browsing_data/core/browsing_data_policies_utils.cc
|
||||
@@ -19,15 +19,15 @@ namespace browsing_data {
|
||||
@@ -17,21 +17,21 @@
|
||||
|
||||
namespace browsing_data {
|
||||
|
||||
-namespace {
|
||||
-
|
||||
namespace policy_data_types {
|
||||
// Data retention policy types that require sync to be disabled.
|
||||
-const char kBrowsingHistoryName[] = "browsing_history";
|
||||
-const char kPasswordSigninName[] = "password_signin";
|
||||
-const char kAutofillName[] = "autofill";
|
||||
-const char kSiteSettingsName[] = "site_settings";
|
||||
+extern const char kBrowsingHistoryName[] = "browsing_history";
|
||||
+extern const char kPasswordSigninName[] = "password_signin";
|
||||
+extern const char kAutofillName[] = "autofill";
|
||||
+extern const char kSiteSettingsName[] = "site_settings";
|
||||
-constexpr char kBrowsingHistoryName[] = "browsing_history";
|
||||
-constexpr char kPasswordSigninName[] = "password_signin";
|
||||
-constexpr char kAutofillName[] = "autofill";
|
||||
-constexpr char kSiteSettingsName[] = "site_settings";
|
||||
+extern constexpr char kBrowsingHistoryName[] = "browsing_history";
|
||||
+extern constexpr char kPasswordSigninName[] = "password_signin";
|
||||
+extern constexpr char kAutofillName[] = "autofill";
|
||||
+extern constexpr char kSiteSettingsName[] = "site_settings";
|
||||
// Data retention policy types that do not require sync to be disabled.
|
||||
-const char kHostedAppDataName[] = "hosted_app_data";
|
||||
-const char kDownloadHistoryName[] = "download_history";
|
||||
-const char kCookiesAndOtherSiteDataName[] = "cookies_and_other_site_data";
|
||||
-const char kCachedImagesAndFilesName[] = "cached_images_and_files";
|
||||
+extern const char kHostedAppDataName[] = "hosted_app_data";
|
||||
+extern const char kDownloadHistoryName[] = "download_history";
|
||||
+extern const char kCookiesAndOtherSiteDataName[] = "cookies_and_other_site_data";
|
||||
+extern const char kCachedImagesAndFilesName[] = "cached_images_and_files";
|
||||
-constexpr char kHostedAppDataName[] = "hosted_app_data";
|
||||
-constexpr char kDownloadHistoryName[] = "download_history";
|
||||
-constexpr char kCookiesAndOtherSiteDataName[] = "cookies_and_other_site_data";
|
||||
-constexpr char kCachedImagesAndFilesName[] = "cached_images_and_files";
|
||||
+extern constexpr char kHostedAppDataName[] = "hosted_app_data";
|
||||
+extern constexpr char kDownloadHistoryName[] = "download_history";
|
||||
+extern constexpr char kCookiesAndOtherSiteDataName[] = "cookies_and_other_site_data";
|
||||
+extern constexpr char kCachedImagesAndFilesName[] = "cached_images_and_files";
|
||||
} // namespace policy_data_types
|
||||
|
||||
namespace {
|
||||
+namespace {
|
||||
+
|
||||
// The format of the log message shown in chrome://policy/logs when sync types
|
||||
// are automatically disabled.
|
||||
constexpr char kDisabledSyncTypesLogFormat[] =
|
||||
diff --git a/components/browsing_data/core/browsing_data_policies_utils.h b/components/browsing_data/core/browsing_data_policies_utils.h
|
||||
--- a/components/browsing_data/core/browsing_data_policies_utils.h
|
||||
+++ b/components/browsing_data/core/browsing_data_policies_utils.h
|
||||
@@ -611,24 +639,7 @@ diff --git a/components/browsing_data/core/clear_browsing_data_tab.h b/component
|
||||
diff --git a/components/browsing_data/core/pref_names.cc b/components/browsing_data/core/pref_names.cc
|
||||
--- a/components/browsing_data/core/pref_names.cc
|
||||
+++ b/components/browsing_data/core/pref_names.cc
|
||||
@@ -26,6 +26,16 @@ const char kClearBrowsingDataOnExitDeletionPending[] =
|
||||
// delete just before browser shutdown.
|
||||
const char kClearBrowsingDataOnExitList[] = "browser.clear_data.clear_on_exit";
|
||||
|
||||
+// Clear Browsing Data dialog datatype preferences.
|
||||
+const char kDeleteBrowsingHistoryAtStart[] = "browser.clear_data.browsing_history_at_start";
|
||||
+const char kDeleteDownloadHistoryAtStart[] = "browser.clear_data.download_history_at_start";
|
||||
+const char kDeleteCacheAtStart[] = "browser.clear_data.cache_at_start";
|
||||
+const char kDeleteCookiesAtStart[] = "browser.clear_data.cookies_at_start";
|
||||
+const char kDeletePasswordsAtStart[] = "browser.clear_data.passwords_at_start";
|
||||
+const char kDeleteFormDataAtStart[] = "browser.clear_data.form_data_at_start";
|
||||
+const char kDeleteHostedAppsDataAtStart[] = "browser.clear_data.hosted_apps_data_at_start";
|
||||
+const char kDeleteSiteSettingsAtStart[] = "browser.clear_data.site_settings_at_start";
|
||||
+
|
||||
// Clear browsing data deletion time period.
|
||||
const char kDeleteTimePeriod[] = "browser.clear_data.time_period";
|
||||
const char kDeleteTimePeriodBasic[] = "browser.clear_data.time_period_basic";
|
||||
@@ -85,6 +95,23 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -47,6 +47,23 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterIntegerPref(
|
||||
kClearBrowsingDataHistoryNoticeShownTimes, 0);
|
||||
|
||||
@@ -655,21 +666,32 @@ diff --git a/components/browsing_data/core/pref_names.cc b/components/browsing_d
|
||||
diff --git a/components/browsing_data/core/pref_names.h b/components/browsing_data/core/pref_names.h
|
||||
--- a/components/browsing_data/core/pref_names.h
|
||||
+++ b/components/browsing_data/core/pref_names.h
|
||||
@@ -17,6 +17,15 @@ extern const char kBrowsingDataLifetime[];
|
||||
extern const char kClearBrowsingDataOnExitDeletionPending[];
|
||||
extern const char kClearBrowsingDataOnExitList[];
|
||||
@@ -28,6 +28,16 @@ inline constexpr char kClearBrowsingDataOnExitDeletionPending[] =
|
||||
inline constexpr char kClearBrowsingDataOnExitList[] =
|
||||
"browser.clear_data.clear_on_exit";
|
||||
|
||||
+extern const char kDeleteBrowsingHistoryAtStart[];
|
||||
+extern const char kDeleteDownloadHistoryAtStart[];
|
||||
+extern const char kDeleteCacheAtStart[];
|
||||
+extern const char kDeleteCookiesAtStart[];
|
||||
+extern const char kDeletePasswordsAtStart[];
|
||||
+extern const char kDeleteFormDataAtStart[];
|
||||
+extern const char kDeleteHostedAppsDataAtStart[];
|
||||
+extern const char kDeleteSiteSettingsAtStart[];
|
||||
+// Clear Browsing Data dialog datatype preferences.
|
||||
+inline constexpr char kDeleteBrowsingHistoryAtStart[] = "browser.clear_data.browsing_history_at_start";
|
||||
+inline constexpr char kDeleteDownloadHistoryAtStart[] = "browser.clear_data.download_history_at_start";
|
||||
+inline constexpr char kDeleteCacheAtStart[] = "browser.clear_data.cache_at_start";
|
||||
+inline constexpr char kDeleteCookiesAtStart[] = "browser.clear_data.cookies_at_start";
|
||||
+inline constexpr char kDeletePasswordsAtStart[] = "browser.clear_data.passwords_at_start";
|
||||
+inline constexpr char kDeleteFormDataAtStart[] = "browser.clear_data.form_data_at_start";
|
||||
+inline constexpr char kDeleteHostedAppsDataAtStart[] = "browser.clear_data.hosted_apps_data_at_start";
|
||||
+inline constexpr char kDeleteSiteSettingsAtStart[] = "browser.clear_data.site_settings_at_start";
|
||||
+
|
||||
extern const char kDeleteTimePeriod[];
|
||||
extern const char kDeleteTimePeriodBasic[];
|
||||
|
||||
// Clear browsing data deletion time period.
|
||||
inline constexpr char kDeleteTimePeriod[] = "browser.clear_data.time_period";
|
||||
inline constexpr char kDeleteTimePeriodBasic[] =
|
||||
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
|
||||
--- a/content/browser/storage_partition_impl.cc
|
||||
+++ b/content/browser/storage_partition_impl.cc
|
||||
@@ -1488,6 +1488,7 @@ void StoragePartitionImpl::Initialize(
|
||||
.AppendASCII("Code Cache");
|
||||
}
|
||||
DCHECK_GE(settings.size_in_bytes(), 0);
|
||||
+ base::DeletePathRecursively(code_cache_path);
|
||||
GetGeneratedCodeCacheContext()->Initialize(code_cache_path,
|
||||
settings.size_in_bytes());
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
+126
-163
@@ -4,31 +4,35 @@ Subject: Add setting to invert tap and long tap
|
||||
|
||||
Reverses single tap to long tap in android for accessibility reasons.
|
||||
The feature can be activated from the accessibility settings.
|
||||
|
||||
Need: bromite-build-utils.patch
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
chrome/android/java/res/values/ids.xml | 1 +
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 18 ++++++++++
|
||||
.../contextmenu/ChromeContextMenuItem.java | 5 ++-
|
||||
.../ChromeContextMenuPopulator.java | 5 +++
|
||||
.../tab/TabContextMenuItemDelegate.java | 8 +++++
|
||||
chrome/browser/about_flags.cc | 5 +++
|
||||
.../contextmenu/ContextMenuItemDelegate.java | 2 ++
|
||||
chrome/browser/flag_descriptions.cc | 4 +++
|
||||
chrome/browser/flag_descriptions.h | 3 ++
|
||||
.../flags/android/chrome_feature_list.cc | 1 +
|
||||
.../browser/flags/ChromeFeatureList.java | 5 +++
|
||||
.../strings/android_chrome_strings.grd | 9 +++++
|
||||
.../res/xml/accessibility_preferences.xml | 5 +++
|
||||
.../accessibility/AccessibilitySettings.java | 11 ++++++
|
||||
.../AccessibilitySettingsDelegate.java | 2 ++
|
||||
third_party/blink/common/features.cc | 4 +++
|
||||
third_party/blink/public/common/features.h | 2 ++
|
||||
.../renderer/core/html/html_anchor_element.cc | 35 +++++++++++++++----
|
||||
...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 | 1 +
|
||||
.../renderer/core/html/html_anchor_element.cc | 36 +++++++++++++++----
|
||||
.../renderer/core/html/html_anchor_element.h | 9 +++--
|
||||
.../renderer/core/html/html_image_element.cc | 17 +++++++++
|
||||
.../renderer/core/html/html_image_element.h | 2 ++
|
||||
.../core/page/context_menu_controller.cc | 32 ++++++++++++-----
|
||||
.../core/page/context_menu_controller.h | 5 +--
|
||||
23 files changed, 170 insertions(+), 20 deletions(-)
|
||||
21 files changed, 164 insertions(+), 21 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/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
|
||||
|
||||
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
|
||||
@@ -44,7 +48,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
|
||||
--- 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
|
||||
@@ -148,6 +148,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
@@ -163,6 +163,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
mSnackbarManager.showSnackbar(mSnackbar);
|
||||
}
|
||||
|
||||
@@ -56,7 +60,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
+
|
||||
+ @Override
|
||||
+ public void setEnabled(boolean value) {
|
||||
+ CachedFeatureFlags.setFlagEnabled(ChromeFeatureList.SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS,
|
||||
+ CromiteNativeUtils.setFlagEnabled(ChromeFeatureList.SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS,
|
||||
+ "show-always-context-menu-on-links", value);
|
||||
+ }
|
||||
+ }
|
||||
@@ -72,7 +76,7 @@ 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
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
|
||||
@@ -89,8 +89,9 @@ class ChromeContextMenuItem {
|
||||
@@ -111,8 +111,9 @@ class ChromeContextMenuItem {
|
||||
int SHARE_HIGHLIGHT = 32;
|
||||
int REMOVE_HIGHLIGHT = 33;
|
||||
int LEARN_MORE = 34;
|
||||
@@ -82,19 +86,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
||||
+ int NUM_ENTRIES = 36;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -132,6 +133,7 @@ class ChromeContextMenuItem {
|
||||
R.id.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
|
||||
R.id.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
|
||||
R.id.contextmenu_learn_more, // Item.LEARN_MORE
|
||||
/** Mapping from {@link Item} to the ID found in the ids.xml. */
|
||||
@@ -152,6 +153,7 @@ class ChromeContextMenuItem {
|
||||
R.id.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
|
||||
R.id.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
|
||||
R.id.contextmenu_learn_more, // Item.LEARN_MORE
|
||||
+ R.id.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -173,6 +175,7 @@ class ChromeContextMenuItem {
|
||||
R.string.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
|
||||
R.string.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
|
||||
R.string.contextmenu_learn_more, // Item.LEARN_MORE
|
||||
/** Mapping from {@link Item} to the ID of the string that describes the action of the item. */
|
||||
@@ -191,6 +193,7 @@ class ChromeContextMenuItem {
|
||||
R.string.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
|
||||
R.string.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
|
||||
R.string.contextmenu_learn_more, // Item.LEARN_MORE
|
||||
+ R.string.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB:
|
||||
};
|
||||
|
||||
@@ -102,20 +106,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
@@ -240,6 +240,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
@@ -266,6 +266,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
|
||||
if (mParams.isAnchor()) {
|
||||
ModelList linkGroup = new ModelList();
|
||||
+ if (ChromeFeatureList.sShowAlwaysContextMenuOnLinks.isEnabled()) {
|
||||
+ linkGroup.add(createListItem(Item.FOLLOW_LINK));
|
||||
+ }
|
||||
if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl())
|
||||
if (FirstRunStatus.getFirstRunFlowComplete()
|
||||
&& !isEmptyUrl(mParams.getUrl())
|
||||
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
|
||||
if (mMode == ContextMenuMode.NORMAL) {
|
||||
@@ -598,6 +601,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
ShareHelper.shareDirectly(
|
||||
params, ShareHelper.getLastShareComponentName(), getProfile(), false);
|
||||
});
|
||||
@@ -631,6 +634,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
getProfile(),
|
||||
false);
|
||||
});
|
||||
+ } else if (itemId == R.id.contextmenu_open_in_tab) {
|
||||
+ mItemDelegate.onOpenUrl(mParams.getUrl(), mParams.getReferrer());
|
||||
} else if (itemId == R.id.contextmenu_open_in_chrome) {
|
||||
@@ -124,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
||||
@@ -249,6 +249,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||
@@ -273,6 +273,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||
mTab.loadUrl(loadUrlParams);
|
||||
}
|
||||
|
||||
@@ -139,25 +143,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
|
||||
@Override
|
||||
public void onOpenImageInNewTab(GURL url, Referrer referrer) {
|
||||
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -7917,6 +7917,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kMoveTopToolbarToBottomDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(features::kMoveTopToolbarToBottom)},
|
||||
|
||||
+ {"show-always-context-menu-on-links",
|
||||
+ flag_descriptions::kShowAlwaysContextMenuOnLinksName,
|
||||
+ flag_descriptions::kShowAlwaysContextMenuOnLinksDescription, kOsAndroid,
|
||||
+ FEATURE_VALUE_TYPE(blink::features::kShowAlwaysContextMenuOnLinks)},
|
||||
+
|
||||
{"scroll-unification", flag_descriptions::kScrollUnificationName,
|
||||
flag_descriptions::kScrollUnificationDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(features::kScrollUnification)},
|
||||
diff --git a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java b/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java
|
||||
--- a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java
|
||||
+++ b/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java
|
||||
@@ -111,6 +111,8 @@ public interface ContextMenuItemDelegate {
|
||||
@@ -110,6 +110,8 @@ public interface ContextMenuItemDelegate {
|
||||
*/
|
||||
void onOpenImageUrl(GURL url, Referrer referrer);
|
||||
|
||||
@@ -166,49 +155,22 @@ diff --git a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/con
|
||||
/**
|
||||
* Called when the {@code url} is of an image and should be opened in a new tab.
|
||||
* @param url The image URL to open.
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -1970,6 +1970,10 @@ const char kMoveTopToolbarToBottomName[] = "Move top toolbar to bottom";
|
||||
const char kMoveTopToolbarToBottomDescription[] =
|
||||
"Move the top toolbar to the bottom.";
|
||||
|
||||
+const char kShowAlwaysContextMenuOnLinksName[] = "Always show contextmenu on links";
|
||||
+const char kShowAlwaysContextMenuOnLinksDescription[] =
|
||||
+ "Use accessibility settings to set it.";
|
||||
+
|
||||
const char kIncognitoDownloadsWarningName[] =
|
||||
"Enable Incognito downloads warning";
|
||||
const char kIncognitoDownloadsWarningDescription[] =
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -1104,6 +1104,9 @@ extern const char kImprovedKeyboardShortcutsDescription[];
|
||||
extern const char kMoveTopToolbarToBottomName[];
|
||||
extern const char kMoveTopToolbarToBottomDescription[];
|
||||
|
||||
+extern const char kShowAlwaysContextMenuOnLinksName[];
|
||||
+extern const char kShowAlwaysContextMenuOnLinksDescription[];
|
||||
+
|
||||
extern const char kIncognitoReauthenticationForAndroidName[];
|
||||
extern const char kIncognitoReauthenticationForAndroidDescription[];
|
||||
|
||||
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
|
||||
@@ -314,6 +314,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&kTabGroupsContinuationAndroid,
|
||||
&kTabGroupsForTablets,
|
||||
&kDiscoverFeedMultiColumn,
|
||||
@@ -280,6 +280,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&kTabGroupParityAndroid,
|
||||
&kTabletTabSwitcherLongPressMenu,
|
||||
&kTabletToolbarIncognitoStatus,
|
||||
+ &blink::features::kShowAlwaysContextMenuOnLinks,
|
||||
&kTabStripRedesign,
|
||||
&kTabletToolbarReordering,
|
||||
&kTabStripStartupRefactoring,
|
||||
&kTabResumptionModuleAndroid,
|
||||
&kTabStateFlatBuffer,
|
||||
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
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
@@ -312,6 +312,8 @@ public abstract class ChromeFeatureList {
|
||||
public static final String METRICS_SETTINGS_ANDROID = "MetricsSettingsAndroid";
|
||||
@@ -342,6 +342,8 @@ public abstract class ChromeFeatureList {
|
||||
public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe";
|
||||
public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM =
|
||||
"MoveTopToolbarToBottom";
|
||||
+ public static final String SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS =
|
||||
@@ -216,27 +178,27 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
|
||||
public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant";
|
||||
public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET =
|
||||
"NotificationPermissionBottomSheet";
|
||||
@@ -571,6 +573,8 @@ public abstract class ChromeFeatureList {
|
||||
new CachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false);
|
||||
@@ -619,6 +621,8 @@ public abstract class ChromeFeatureList {
|
||||
newCachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false);
|
||||
public static final CachedFlag sMoveTopToolbarToBottom =
|
||||
new CachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
|
||||
newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
|
||||
+ public static final CachedFlag sShowAlwaysContextMenuOnLinks =
|
||||
+ new CachedFlag(SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS, false);
|
||||
+ newCachedFlag(SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS, false);
|
||||
public static final CachedFlag sOmniboxModernizeVisualUpdate =
|
||||
new CachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, false);
|
||||
public static final CachedFlag sOmniboxMostVisitedTilesAddRecycledViewPool =
|
||||
@@ -693,6 +697,7 @@ public abstract class ChromeFeatureList {
|
||||
sTabStripRedesign,
|
||||
sTabStripStartupRefactoring,
|
||||
sTabletToolbarReordering,
|
||||
+ sShowAlwaysContextMenuOnLinks,
|
||||
sTabToGTSAnimation,
|
||||
sToolbarUseHardwareBitmapDraw,
|
||||
sUseChimeAndroidSdk,
|
||||
newCachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, true);
|
||||
public static final CachedFlag sOptimizationGuidePushNotifications =
|
||||
@@ -771,6 +775,7 @@ public abstract class ChromeFeatureList {
|
||||
sTabWindowManagerReportIndicesMismatch,
|
||||
sToolbarUseHardwareBitmapDraw,
|
||||
sUseChimeAndroidSdk,
|
||||
+ sShowAlwaysContextMenuOnLinks,
|
||||
sUseLibunwindstackNativeUnwinderAndroid,
|
||||
sVerticalAutomotiveBackButtonToolbar);
|
||||
|
||||
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
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -1749,6 +1749,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -1638,6 +1638,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_MOVE_TOOLBAR_BOTTOM_SUMMARY" desc="Summary of the preference that allows the user to move toolbar on bottom.">
|
||||
Move toolbar to bottom
|
||||
</message>
|
||||
@@ -249,7 +211,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
|
||||
<!-- 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]">
|
||||
@@ -2750,6 +2756,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
@@ -2779,6 +2785,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
|
||||
<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
|
||||
</message>
|
||||
@@ -262,7 +224,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
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
|
||||
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
@@ -26,6 +26,11 @@ found in the LICENSE file.
|
||||
@@ -35,6 +35,11 @@ found in the LICENSE file.
|
||||
android:summary="@string/page_zoom_always_show_preference_summary"
|
||||
android:title="@string/page_zoom_always_show_preference_title" />
|
||||
|
||||
@@ -277,23 +239,23 @@ 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
|
||||
--- 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
|
||||
@@ -37,6 +37,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -35,6 +35,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
private BooleanPreferenceDelegate mForceTabletUIDelegate;
|
||||
static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
|
||||
static final String PREF_MOVE_TOOLBAR_TO_BOTTOM = "move_toolbar_bottom";
|
||||
+ static final String PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS = "always_show_contextmenu_on_links";
|
||||
private TextScalePreference mTextScalePref;
|
||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
|
||||
@@ -47,6 +48,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
private BooleanPreferenceDelegate mAccessibilityTabSwitcherDelegate;
|
||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||
@@ -45,6 +46,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
private BooleanPreferenceDelegate mReaderForAccessibilityDelegate;
|
||||
private double mPageZoomLatestDefaultZoomPrefValue;
|
||||
private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
|
||||
+ private BooleanPreferenceDelegate mShowAlwaysContextMenuOnLinksDelegate;
|
||||
|
||||
private FontSizePrefs mFontSizePrefs;
|
||||
private FontSizePrefsObserver mFontSizePrefsObserver = new FontSizePrefsObserver() {
|
||||
@@ -143,6 +145,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
private FontSizePrefsObserver mFontSizePrefsObserver =
|
||||
@@ -149,6 +151,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
mMoveToolbarToBottomPref.setChecked(mMoveTopToolbarToBottomDelegate.isEnabled());
|
||||
mMoveToolbarToBottomPref.setOnPreferenceChangeListener(this);
|
||||
|
||||
@@ -304,56 +266,57 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
||||
+ mShowAlwaysContextMenuOnLinksPref.setOnPreferenceChangeListener(this);
|
||||
+
|
||||
Preference captions = findPreference(PREF_CAPTIONS);
|
||||
captions.setOnPreferenceClickListener(preference -> {
|
||||
Intent intent = new Intent(Settings.ACTION_CAPTIONING_SETTINGS);
|
||||
@@ -205,6 +213,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
captions.setOnPreferenceClickListener(
|
||||
preference -> {
|
||||
@@ -226,6 +234,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
} else if (PREF_MOVE_TOOLBAR_TO_BOTTOM.equals(preference.getKey())) {
|
||||
mMoveTopToolbarToBottomDelegate.setEnabled((Boolean) newValue);
|
||||
mDelegate.requestRestart(getActivity());
|
||||
+ } else if (PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS.equals(preference.getKey())) {
|
||||
+ mShowAlwaysContextMenuOnLinksDelegate.setEnabled((Boolean) newValue);
|
||||
+ mDelegate.requestRestart(getActivity());
|
||||
} else if (PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT.equals(preference.getKey())) {
|
||||
// TODO(mschillaci): Implement the override behavior for OS level.
|
||||
}
|
||||
|
||||
return true;
|
||||
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
|
||||
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
@@ -33,6 +33,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
@@ -43,6 +43,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
|
||||
BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate();
|
||||
|
||||
+ BooleanPreferenceDelegate getShowAlwaysContextMenuOnLinksDelegate();
|
||||
+
|
||||
/**
|
||||
* @return The BrowserContextHandle that should be used to read and update settings.
|
||||
*/
|
||||
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
|
||||
--- a/third_party/blink/common/features.cc
|
||||
+++ b/third_party/blink/common/features.cc
|
||||
@@ -217,6 +217,10 @@ BASE_FEATURE(kBackgroundResourceFetch,
|
||||
"BackgroundResourceFetch",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
/** @return The BrowserContextHandle that should be used to read and update settings. */
|
||||
BrowserContextHandle getBrowserContextHandle();
|
||||
|
||||
+BASE_FEATURE(kShowAlwaysContextMenuOnLinks,
|
||||
+ "ShowAlwaysContextMenuOnLinks",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
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
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc
|
||||
@@ -0,0 +1,8 @@
|
||||
+#ifdef FLAG_SECTION
|
||||
+
|
||||
// Used to configure a per-origin allowlist of performance.mark events that are
|
||||
// permitted to be included in slow reports traces. See crbug.com/1181774.
|
||||
BASE_FEATURE(kBackgroundTracingPerformanceMark,
|
||||
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
|
||||
--- a/third_party/blink/public/common/features.h
|
||||
+++ b/third_party/blink/public/common/features.h
|
||||
@@ -127,6 +127,8 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBackForwardCacheWithKeepaliveRequest);
|
||||
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBackgroundResourceFetch);
|
||||
|
||||
+ {"show-always-context-menu-on-links",
|
||||
+ "Always show contextmenu on links",
|
||||
+ "Use accessibility settings to set it.", kOsAndroid,
|
||||
+ FEATURE_VALUE_TYPE(blink::features::kShowAlwaysContextMenuOnLinks)},
|
||||
+
|
||||
+#endif
|
||||
diff --git a/cromite_flags/third_party/blink/common/features_cc/Add-setting-to-invert-tap-and-long-tap.inc b/cromite_flags/third_party/blink/common/features_cc/Add-setting-to-invert-tap-and-long-tap.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/third_party/blink/common/features_cc/Add-setting-to-invert-tap-and-long-tap.inc
|
||||
@@ -0,0 +1,3 @@
|
||||
+CROMITE_FEATURE(kShowAlwaysContextMenuOnLinks,
|
||||
+ "ShowAlwaysContextMenuOnLinks",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
diff --git a/cromite_flags/third_party/blink/common/features_h/Add-setting-to-invert-tap-and-long-tap.inc b/cromite_flags/third_party/blink/common/features_h/Add-setting-to-invert-tap-and-long-tap.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/third_party/blink/common/features_h/Add-setting-to-invert-tap-and-long-tap.inc
|
||||
@@ -0,0 +1 @@
|
||||
+BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kShowAlwaysContextMenuOnLinks);
|
||||
+
|
||||
// Used to configure a per-origin allowlist of performance.mark events that are
|
||||
// permitted to be included in slow reports traces. See crbug.com/1181774.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBackgroundTracingPerformanceMark);
|
||||
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
|
||||
+++ b/third_party/blink/renderer/core/html/html_anchor_element.cc
|
||||
@@ -365,7 +328,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
|
||||
#include "third_party/blink/renderer/core/page/page.h"
|
||||
#include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h"
|
||||
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
|
||||
@@ -436,6 +437,17 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
|
||||
@@ -467,6 +468,17 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
|
||||
bool is_trusted,
|
||||
base::TimeTicks platform_time_stamp,
|
||||
KURL completed_url) {
|
||||
@@ -383,8 +346,8 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
|
||||
LocalDOMWindow* window = GetDocument().domWindow();
|
||||
if (!window) {
|
||||
return;
|
||||
@@ -489,6 +501,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
|
||||
/*element=*/this));
|
||||
@@ -527,6 +539,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
|
||||
/*element=*/this, request.HasUserGesture()));
|
||||
}
|
||||
|
||||
+ if (!do_not_show_context_menu &&
|
||||
@@ -399,8 +362,8 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
|
||||
Frame* target_frame =
|
||||
frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame;
|
||||
|
||||
@@ -508,7 +529,7 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
|
||||
}
|
||||
@@ -559,7 +580,7 @@ void HTMLAnchorElement::SetHovered(bool hovered) {
|
||||
HTMLElement::SetHovered(hovered);
|
||||
}
|
||||
|
||||
-void HTMLAnchorElement::HandleClick(Event& event) {
|
||||
@@ -408,25 +371,26 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
|
||||
event.SetDefaultHandled();
|
||||
|
||||
LocalDOMWindow* window = GetDocument().domWindow();
|
||||
@@ -607,12 +628,12 @@ void HTMLAnchorElement::HandleClick(Event& event) {
|
||||
@@ -656,13 +677,12 @@ void HTMLAnchorElement::HandleClick(Event& event) {
|
||||
return;
|
||||
}
|
||||
|
||||
NavigationPolicy navigation_policy = NavigationPolicyFromEvent(&event);
|
||||
- base::OnceClosure navigate_closure = WTF::BindOnce(
|
||||
- &HTMLAnchorElement::NavigateToHyperlink, WrapWeakPersistent(this),
|
||||
- std::move(request), navigation_policy, event.isTrusted(),
|
||||
- event.PlatformTimeStamp(), std::move(completed_url));
|
||||
|
||||
if (navigation_policy == kNavigationPolicyDownload) {
|
||||
-
|
||||
if (navigation_policy == kNavigationPolicyDownload ||
|
||||
navigation_policy == kNavigationPolicyLinkPreview) {
|
||||
+ base::OnceClosure navigate_closure = WTF::BindOnce(
|
||||
+ &HTMLAnchorElement::NavigateToHyperlink, WrapWeakPersistent(this),
|
||||
+ std::move(request), navigation_policy, event.isTrusted(),
|
||||
+ event.PlatformTimeStamp(), std::move(completed_url));
|
||||
// If Alt is held down it will force a download, however, wait to see if
|
||||
// this is an alt-double-click which should instead select the text of the
|
||||
// link.
|
||||
@@ -624,7 +645,9 @@ void HTMLAnchorElement::HandleClick(Event& event) {
|
||||
frame->GetEventHandler().SetDownloadModifierTaskHandle(
|
||||
// We distinguish single/double click with some modifiers.
|
||||
// See the comment of `EventHandler.delayed_navigation_task_handle_`.
|
||||
auto task_handle = PostDelayedCancellableTask(
|
||||
@@ -672,7 +692,9 @@ void HTMLAnchorElement::HandleClick(Event& event) {
|
||||
frame->GetEventHandler().SetDelayedNavigationTaskHandle(
|
||||
std::move(task_handle));
|
||||
} else {
|
||||
- std::move(navigate_closure).Run();
|
||||
@@ -439,15 +403,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
|
||||
--- a/third_party/blink/renderer/core/html/html_anchor_element.h
|
||||
+++ b/third_party/blink/renderer/core/html/html_anchor_element.h
|
||||
@@ -101,6 +101,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
|
||||
void SendPings(const KURL& destination_url) const;
|
||||
@@ -106,6 +106,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
|
||||
void SetHovered(bool hovered) override;
|
||||
|
||||
void Trace(Visitor*) const override;
|
||||
+ void HandleClick(Event&, bool do_not_show_context_menu = false);
|
||||
|
||||
protected:
|
||||
void ParseAttribute(const AttributeModificationParams&) override;
|
||||
@@ -122,12 +123,16 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
|
||||
@@ -130,12 +131,16 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
|
||||
bool IsInteractiveContent() const final;
|
||||
InsertionNotificationRequest InsertedInto(ContainerNode&) override;
|
||||
void RemovedFrom(ContainerNode&) override;
|
||||
@@ -469,7 +433,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
|
||||
--- a/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/node_traversal.h"
|
||||
#include "third_party/blink/renderer/core/dom/shadow_root.h"
|
||||
@@ -477,15 +441,15 @@ 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/deprecation/deprecation.h"
|
||||
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
|
||||
@@ -62,6 +63,7 @@
|
||||
@@ -65,6 +66,7 @@
|
||||
#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/page.h"
|
||||
+#include "third_party/blink/renderer/core/page/context_menu_controller.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/style/content_data.h"
|
||||
@@ -718,6 +720,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate(
|
||||
#include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h"
|
||||
@@ -803,6 +805,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate(
|
||||
}
|
||||
}
|
||||
|
||||
@@ -510,7 +474,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
|
||||
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
|
||||
+++ b/third_party/blink/renderer/core/html/html_image_element.h
|
||||
@@ -217,6 +217,8 @@ class CORE_EXPORT HTMLImageElement final
|
||||
@@ -236,6 +236,8 @@ class CORE_EXPORT HTMLImageElement final
|
||||
void DidAddUserAgentShadowRoot(ShadowRoot&) override;
|
||||
void AdjustStyle(ComputedStyleBuilder&) override;
|
||||
|
||||
@@ -522,7 +486,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_p
|
||||
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
|
||||
+++ b/third_party/blink/renderer/core/page/context_menu_controller.cc
|
||||
@@ -171,14 +171,16 @@ void ContextMenuController::DocumentDetached(Document* document) {
|
||||
@@ -225,14 +225,16 @@ void ContextMenuController::DocumentDetached(Document* document) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -542,7 +506,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
|
||||
mouse_event->SetDefaultHandled();
|
||||
}
|
||||
|
||||
@@ -414,7 +416,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch(
|
||||
@@ -450,7 +452,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch(
|
||||
bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
|
||||
const PhysicalOffset& point,
|
||||
WebMenuSourceType source_type,
|
||||
@@ -552,7 +516,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/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
|
||||
// response to user input (Mouse event WM_RBUTTONDOWN,
|
||||
@@ -437,6 +440,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
|
||||
@@ -473,6 +476,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
|
||||
if (!result.InnerNodeOrImageMapImage())
|
||||
return false;
|
||||
|
||||
@@ -568,9 +532,9 @@ 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
|
||||
// result.
|
||||
image_selection_cached_result_ = nullptr;
|
||||
@@ -790,11 +802,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
|
||||
data.form_renderer_id = GetFormRendererId(result);
|
||||
data.field_renderer_id = GetFieldRendererId(result);
|
||||
@@ -831,11 +843,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
|
||||
SetAutofillData(result.InnerNode(), data);
|
||||
SetPasswordManagerData(result.InnerElement(), data);
|
||||
|
||||
- const bool from_touch = source_type == kMenuSourceTouch ||
|
||||
- source_type == kMenuSourceLongPress ||
|
||||
@@ -610,4 +574,3 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.h b/th
|
||||
bool ShouldShowContextMenuFromTouch(const ContextMenuData&);
|
||||
|
||||
--
|
||||
2.25.1
|
||||
@@ -7,68 +7,108 @@ Disabled by default.
|
||||
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/browser/about_flags.cc | 6 ++++
|
||||
chrome/browser/flag_descriptions.cc | 5 +++
|
||||
chrome/browser/flag_descriptions.h | 3 ++
|
||||
chrome/browser/about_flags.cc | 1 +
|
||||
.../engagement/important_sites_util.cc | 9 +++++
|
||||
.../internal/tracker_impl.cc | 3 ++
|
||||
.../public/feature_configurations.cc | 7 ++++
|
||||
.../content/site_engagement_score.cc | 5 +++
|
||||
components/site_engagement/core/BUILD.gn | 6 ++++
|
||||
components/site_engagement/core/features.cc | 29 ++++++++++++++++
|
||||
components/site_engagement/core/features.cc | 30 ++++++++++++++++
|
||||
components/site_engagement/core/features.h | 34 +++++++++++++++++++
|
||||
7 files changed, 88 insertions(+)
|
||||
.../Add-site-engagement-flag.inc | 10 ++++++
|
||||
9 files changed, 105 insertions(+)
|
||||
create mode 100644 components/site_engagement/core/features.cc
|
||||
create mode 100644 components/site_engagement/core/features.h
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -146,6 +146,7 @@
|
||||
#include "components/segmentation_platform/public/features.h"
|
||||
@@ -153,6 +153,7 @@
|
||||
#include "components/send_tab_to_self/features.h"
|
||||
#include "components/services/heap_profiling/public/cpp/switches.h"
|
||||
#include "components/services/storage/public/cpp/buckets/bucket_info.h"
|
||||
+#include "components/site_engagement/core/features.h"
|
||||
#include "components/shared_highlighting/core/common/shared_highlighting_features.h"
|
||||
#include "components/signin/core/browser/dice_account_reconcilor_delegate.h"
|
||||
#include "components/signin/public/base/signin_buildflags.h"
|
||||
@@ -9437,6 +9438,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
kLargeFaviconFromGoogleVariations,
|
||||
"LargeFaviconFromGoogle")},
|
||||
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
|
||||
+++ b/chrome/browser/engagement/important_sites_util.cc
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "components/prefs/scoped_user_pref_update.h"
|
||||
#include "components/site_engagement/content/site_engagement_score.h"
|
||||
#include "components/site_engagement/content/site_engagement_service.h"
|
||||
+#include "components/site_engagement/core/features.h"
|
||||
#include "components/site_engagement/core/mojom/site_engagement_details.mojom.h"
|
||||
#include "components/webapps/browser/banners/app_banner_settings_helper.h"
|
||||
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
|
||||
@@ -387,6 +388,10 @@ void ImportantSitesUtil::RegisterProfilePrefs(
|
||||
// static
|
||||
std::set<std::string> ImportantSitesUtil::GetInstalledRegisterableDomains(
|
||||
Profile* profile) {
|
||||
+ if (!base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement)) {
|
||||
+ std::set<std::string> empty_list;
|
||||
+ return empty_list;
|
||||
+ }
|
||||
std::set<GURL> installed_origins = GetOriginsWithInstalledWebApps(profile);
|
||||
std::set<std::string> registerable_domains;
|
||||
|
||||
+ {"site-engagement",
|
||||
+ flag_descriptions::kSiteEngagementName,
|
||||
+ flag_descriptions::kSiteEngagementDescription, kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(site_engagement::features::kSiteEngagement)},
|
||||
@@ -401,6 +406,10 @@ std::vector<ImportantDomainInfo>
|
||||
ImportantSitesUtil::GetImportantRegisterableDomains(Profile* profile,
|
||||
size_t max_results) {
|
||||
SCOPED_UMA_HISTOGRAM_TIMER("Storage.ImportantSites.GenerationTime");
|
||||
+ if (!base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement)) {
|
||||
+ std::vector<ImportantDomainInfo> empty_list;
|
||||
+ return empty_list;
|
||||
+ }
|
||||
std::map<std::string, ImportantDomainInfo> important_info;
|
||||
std::map<GURL, double> engagement_map;
|
||||
|
||||
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
|
||||
+++ b/components/feature_engagement/internal/tracker_impl.cc
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "base/task/single_thread_task_runner.h"
|
||||
#include "base/time/clock.h"
|
||||
#include "build/build_config.h"
|
||||
+#include "components/site_engagement/core/features.h"
|
||||
#include "components/feature_engagement/internal/availability_model_impl.h"
|
||||
#include "components/feature_engagement/internal/blocked_iph_features.h"
|
||||
#include "components/feature_engagement/internal/chrome_variations_configuration.h"
|
||||
@@ -211,6 +212,8 @@ TrackerImpl::TrackerImpl(
|
||||
TrackerImpl::~TrackerImpl() = default;
|
||||
|
||||
void TrackerImpl::NotifyEvent(const std::string& event) {
|
||||
+ if (!base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement))
|
||||
+ return;
|
||||
event_model_->IncrementEvent(event, time_provider_->GetCurrentDay());
|
||||
stats::RecordNotifyEvent(event, configuration_.get(),
|
||||
event_model_->IsReady());
|
||||
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
|
||||
+++ b/components/feature_engagement/public/feature_configurations.cc
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include "base/strings/string_util.h"
|
||||
#include "build/build_config.h"
|
||||
+#include "components/site_engagement/core/features.h"
|
||||
#include "components/feature_engagement/public/configuration.h"
|
||||
#include "components/feature_engagement/public/event_constants.h"
|
||||
#include "components/feature_engagement/public/feature_constants.h"
|
||||
@@ -111,6 +112,12 @@ std::optional<FeatureConfig> GetClientSideFeatureConfig(
|
||||
}
|
||||
|
||||
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
|
||||
+ if (!base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement)) {
|
||||
+ absl::optional<FeatureConfig> config = FeatureConfig();
|
||||
+ config->valid = false;
|
||||
+ return config;
|
||||
+ }
|
||||
+
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
{"force-off-text-autosizing",
|
||||
flag_descriptions::kForceOffTextAutosizingName,
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -3691,6 +3691,11 @@ const char kSkipServiceWorkerFetchHandlerDescription[] =
|
||||
"Skips starting the service worker and run the fetch handler if the fetch "
|
||||
"handler is recognized as skippable.";
|
||||
|
||||
+const char kSiteEngagementName[] =
|
||||
+ "Enable site engagement feature";
|
||||
+const char kSiteEngagementDescription[] =
|
||||
+ "Site Engagement Service provides information about how engaged a user is with a origin; this affects which NTP tiles are automatically created.";
|
||||
+
|
||||
const char kWebSQLAccessName[] = "Allows access to WebSQL APIs";
|
||||
const char kWebSQLAccessDescription[] =
|
||||
"The WebSQL API is enabled by default, but can be disabled here.";
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -2140,6 +2140,9 @@ extern const char kReduceAcceptLanguageDescription[];
|
||||
extern const char kSkipServiceWorkerFetchHandlerName[];
|
||||
extern const char kSkipServiceWorkerFetchHandlerDescription[];
|
||||
|
||||
+extern const char kSiteEngagementName[];
|
||||
+extern const char kSiteEngagementDescription[];
|
||||
+
|
||||
extern const char kWebSQLAccessName[];
|
||||
extern const char kWebSQLAccessDescription[];
|
||||
|
||||
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
|
||||
BUILDFLAG(IS_CHROMEOS)
|
||||
if (kIPHPasswordsAccountStorageFeature.name == feature->name) {
|
||||
diff --git a/components/site_engagement/content/site_engagement_score.cc b/components/site_engagement/content/site_engagement_score.cc
|
||||
--- a/components/site_engagement/content/site_engagement_score.cc
|
||||
+++ b/components/site_engagement/content/site_engagement_score.cc
|
||||
@@ -113,7 +153,7 @@ diff --git a/components/site_engagement/core/features.cc b/components/site_engag
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/site_engagement/core/features.cc
|
||||
@@ -0,0 +1,29 @@
|
||||
@@ -0,0 +1,30 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
@@ -138,8 +178,9 @@ new file mode 100644
|
||||
+namespace site_engagement {
|
||||
+namespace features {
|
||||
+
|
||||
+const base::Feature kSiteEngagement{"SiteEngagement",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+CROMITE_FEATURE(kSiteEngagement,
|
||||
+ "SiteEngagement",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+
|
||||
+} // namespace features
|
||||
+} // namespace site_engagement
|
||||
@@ -176,11 +217,25 @@ new file mode 100644
|
||||
+namespace features {
|
||||
+
|
||||
+// Enable site engagement
|
||||
+extern const base::Feature kSiteEngagement;
|
||||
+BASE_DECLARE_FEATURE(kSiteEngagement);
|
||||
+
|
||||
+} // namespace features
|
||||
+} // namespace site_engagement
|
||||
+
|
||||
+#endif // SITE_ENGAGEMENT_CORE_FEATURES_H_
|
||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc
|
||||
@@ -0,0 +1,10 @@
|
||||
+#ifdef FLAG_SECTION
|
||||
+
|
||||
+ {"site-engagement",
|
||||
+ "Enable site engagement feature",
|
||||
+ "Site Engagement Service provides information about how "
|
||||
+ "engaged a user is with a origin; this affects which NTP "
|
||||
+ "tiles are automatically created.", kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(site_engagement::features::kSiteEngagement)},
|
||||
+
|
||||
+#endif
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -12,25 +12,25 @@ 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/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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
|
||||
@@ -81,6 +81,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment;
|
||||
@@ -86,6 +86,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment;
|
||||
import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher;
|
||||
import org.chromium.components.browser_ui.settings.PaddedDividerItemDecoration;
|
||||
import org.chromium.components.browser_ui.settings.PaddedItemDecorationWithDivider;
|
||||
import org.chromium.components.browser_ui.settings.SettingsLauncher;
|
||||
+import org.chromium.components.browser_ui.settings.SettingsUtils;
|
||||
import org.chromium.components.browser_ui.site_settings.BaseSiteSettingsFragment;
|
||||
import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
|
||||
import org.chromium.components.browser_ui.site_settings.SiteSettingsPreferenceFragment;
|
||||
import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat;
|
||||
@@ -396,8 +397,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
|
||||
@@ -457,8 +458,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
|
||||
finish();
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.menu_id_general_help) {
|
||||
- HelpAndFeedbackLauncherImpl.getForProfile(mProfile).show(
|
||||
- this, getString(R.string.help_context_settings), null);
|
||||
- HelpAndFeedbackLauncherImpl.getForProfile(mProfile)
|
||||
- .show(this, getString(R.string.help_context_settings), null);
|
||||
+ if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) {
|
||||
+ ((SettingsUtils.ISupportHelpAndFeedback)mainFragment).onHelpAndFeebackPressed();
|
||||
+ } else {
|
||||
+ HelpAndFeedbackLauncherImpl.getForProfile(mProfile).show(
|
||||
+ this, getString(R.string.help_context_settings), null);
|
||||
+ HelpAndFeedbackLauncherImpl.getForProfile(mProfile)
|
||||
+ .show(this, getString(R.string.help_context_settings), null);
|
||||
+ }
|
||||
return true;
|
||||
}
|
||||
@@ -38,7 +38,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
|
||||
diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
|
||||
--- 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
|
||||
@@ -97,4 +97,8 @@ public class SettingsUtils {
|
||||
@@ -91,4 +91,8 @@ public class SettingsUtils {
|
||||
ToolbarUtils.setOverflowMenuVisibility(toolbar, visibility);
|
||||
return true;
|
||||
}
|
||||
@@ -48,4 +48,3 @@ diff --git a/components/browser_ui/settings/android/java/src/org/chromium/compon
|
||||
+ }
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user