Compare commits

...
Author SHA1 Message Date
uazoandGitHub ac973e33e3 AUTOMATED - git apply results 2024-04-03 16:00:15 +00:00
uazoandGitHub b8df90d728 AUTOMATED - git apply results 2024-04-03 15:57:51 +00:00
Carmelo Messina 0068783e64 Bump to 123.0.6312.105 2024-04-03 17:49:28 +02:00
Carmelo Messina d93475c418 Remove old version 2024-04-03 17:47:17 +02:00
uazoandGitHub e6be41912c Merge pull request #948 from uazo/create-pull-request/patch-ffc5de1
New files under control 123.0.6312.105
2024-04-03 09:35:27 -06:00
uazoandGitHub 231c7911e7 Merge pull request #935 from uazo/Embed-Noto-Color-Emoji-font
Embed Noto Color Emoji font
2024-04-03 09:33:59 -06:00
Carmelo Messina 798b247bd7 final version 2024-04-03 17:01:30 +02:00
uazoandGitHub 96057162da AUTOMATED - new files under control 123.0.6312.105 2024-04-03 02:30:38 +00:00
Carmelo Messina 81414bf266 #544 Embed Noto Color Emoji font 2024-03-27 17:17:43 +01:00
uazoandGitHub ffc5de1ec7 Merge pull request #932 from uazo/create-pull-request/patch-68cd9af
Generate patches doc for  branch
2024-03-27 16:58:36 +01:00
uazoandGitHub 6cd2f7afee Merge pull request #929 from uazo/create-pull-request/patch-6989c57
New files under control 123.0.6312.86
2024-03-27 16:58:26 +01:00
uazoandGitHub 372e4b43d0 Merge pull request #931 from uazo/create-pull-request/patch-9eb6780
Git apply result for master branch
2024-03-27 16:58:15 +01:00
uazoandGitHub 6c99513344 AUTOMATED - update patch docs 2024-03-27 15:56:34 +00:00
uazoandGitHub 68cd9afc6c AUTOMATED - git apply results 2024-03-27 15:56:10 +00:00
Carmelo Messina 9eb67807ec Bump to 123.0.6312.86 2024-03-27 16:49:35 +01:00
Carmelo Messina fdc60b34ba #465 Remove keepalive support 2024-03-27 16:49:03 +01:00
Carmelo Messina f0c8b7b98c solves the case where FRE is not visible 2024-03-27 16:47:24 +01:00
Carmelo Messina e16f7a5a77 #542 Fix web search item visibility 2024-03-27 16:46:17 +01:00
Carmelo Messina d3765627a1 #207 Allow worklet in blink and disallow fetch later manager and speculation rules 2024-03-27 16:43:45 +01:00
uazoandGitHub 89c6812817 Request for confirmation added 2024-03-27 07:51:32 +01:00
uazoandGitHub 73f0df3c90 AUTOMATED - new files under control 123.0.6312.86 2024-03-27 02:31:44 +00:00
uazoandGitHub 6989c57e63 Merge pull request #923 from uazo/create-pull-request/patch-351c24b
New files under control 123.0.6312.59
2024-03-26 21:14:23 +09:00
uazoandGitHub 7ff2d1ed14 AUTOMATED - new files under control 123.0.6312.59 2024-03-26 02:35:13 +00:00
Carmelo Messina 351c24b3dc Add help me section 2024-03-23 09:53:45 +01:00
uazoandGitHub f5d7de125b Merge pull request #910 from uazo/create-pull-request/patch-16818b1
Generate patches docs
2024-03-20 18:36:06 +02:00
uazoandGitHub f708a519b1 AUTOMATED - update patch docs 2024-03-20 16:34:12 +00:00
Carmelo Messina 16818b1d05 Bump to 123.0.6312.58 2024-03-20 17:32:39 +01:00
Carmelo Messina 69c048fcbc #876 Disable Paint Preview by default 2024-03-20 17:32:15 +01:00
Carmelo Messina aa3c3ad076 #898 fix crash on guest mode 2024-03-20 17:30:22 +01:00
Carmelo Messina 7bb7d7a856 Disable blink feature flag 2024-03-20 17:29:32 +01:00
Carmelo Messina 3276e0f1ec #906 inhibits the saving of certain third-party cookies 2024-03-20 08:44:23 +01:00
Carmelo Messina b49ba700a7 Remove Compose from build 2024-03-20 08:41:55 +01:00
Carmelo Messina a4aad222af Update for v123 2024-03-20 08:41:07 +01:00
Carmelo Messina 4d82c0beec change bromite.idx to cromite.idx 2024-03-20 07:48:13 +01:00
uazoandGitHub 563e6f9a2d Merge pull request #907 from uazo/create-pull-request/patch-7c751ae
New files under control 123.0.6312.58
2024-03-19 23:44:17 -07:00
uazoandGitHub f8cc243015 Merge pull request #894 from uazo/next-v123
Rebase to v123
2024-03-19 23:43:46 -07:00
uazoandGitHub 41e6364c29 AUTOMATED - new files under control 123.0.6312.58 2024-03-20 02:29:08 +00:00
uazoandGitHub 7c751aedb2 Update file_list.txt
see #903
2024-03-19 01:25:05 +11:00
uazoandGitHub 5951e48f47 Merge pull request #901 from uazo/create-pull-request/patch-a8503d9
Generate patches doc for next 123 branch
2024-03-17 19:43:30 +01:00
uazoandGitHub 8923ff2278 AUTOMATED - update patch docs 2024-03-17 18:42:43 +00:00
Carmelo Messina a8503d9689 v123 final 2024-03-17 19:41:20 +01:00
uazoandGitHub f0c183a124 Add log 2024-03-16 02:56:35 +11:00
Carmelo Messina 2d54179bf9 Bump to 123.0.6312.46 2024-03-15 16:28:00 +01:00
Carmelo Messina b937cb60ec v123 patches 2024-03-15 16:24:42 +01:00
uazoandGitHub 948232d7fc Update file_list.txt
add chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
2024-03-15 01:31:42 -11:00
uazoandGitHub 9ceadc8787 #887 added note concerning the location of the data folder 2024-03-14 20:49:22 -11:00
uazoandGitHub 98b696850a Merge pull request #888 from uazo/create-pull-request/patch-cd81f3a
New files under control 123.0.6312.46
2024-03-14 17:00:43 +09:00
uazoandGitHub 6c0676eeb8 AUTOMATED - new files under control 123.0.6312.46 2024-03-14 02:28:35 +00:00
uazoandGitHub cd81f3a4c7 Merge pull request #883 from uazo/create-pull-request/patch-477e0b5
Git apply result for master branch
2024-03-13 05:56:45 -03:00
uazoandGitHub 443396cd8f AUTOMATED - git apply results 2024-03-13 08:53:40 +00:00
Carmelo Messina 477e0b596a Bump to 122.0.6261.128 2024-03-13 09:45:25 +01:00
uazoandGitHub 685ae28e96 Merge pull request #880 from uazo/create-pull-request/patch-bbea4e6
New files under control 122.0.6261.128
2024-03-13 05:04:39 -03:00
uazoandGitHub 97e13fb5c0 AUTOMATED - new files under control 122.0.6261.128 2024-03-13 02:38:57 +00:00
uazoandGitHub bbea4e614b Update PRIVACY_POLICY.md 2024-03-12 15:15:42 +00:00
uazoandGitHub 66b68c0008 Update PRIVACY_POLICY.md 2024-03-12 14:57:29 +00:00
uazoandGitHub 67d7c47488 Update README.md 2024-03-12 14:43:44 +00:00
uazoandGitHub 91f6cb6fbd Create PRIVACY_POLICY.md 2024-03-12 14:43:07 +00:00
uazoandGitHub a598f0d3ff Update README.md 2024-03-11 08:04:44 -09:00
uazoandGitHub 37371ede06 Update update-patches-doc.yaml 2024-03-11 08:03:31 -09:00
uazoandGitHub d24b215d27 Merge pull request #877 from uazo/create-pull-request/patch-fe0c1cb
Generate patches doc
2024-03-11 08:02:58 -09:00
uazoandGitHub 7d160b893f AUTOMATED - update patch docs 2024-03-11 17:02:13 +00:00
Carmelo Messina fe0c1cba97 Update patches doc 2024-03-11 17:58:53 +01:00
Carmelo Messina ab02385ba8 Update patches doc 2024-03-11 17:33:10 +01:00
Carmelo Messina 8e19cfd2e0 drop changelog and faq 2024-03-11 13:30:12 +01:00
Carmelo Messina 322478cc9c Update license section 2024-03-11 13:20:13 +01:00
Carmelo Messina a252cb7bc9 Move features.md under docs 2024-03-11 13:15:20 +01:00
Carmelo Messina 8df670e568 Add how to build 2024-03-11 13:12:01 +01:00
Carmelo Messina 6511f3ec2e fix release 2024-03-11 08:59:20 +01:00
Carmelo Messina e071e7efbc Add description 2024-03-11 08:59:02 +01:00
Carmelo Messina 9405d5e482 add editorconfig 2024-03-11 08:52:15 +01:00
Carmelo Messina a1d941a0b6 #474 Put some files under source control 2024-03-11 08:51:30 +01:00
Carmelo Messina 534ab1be85 Bump to 122.0.6261.112 2024-03-10 11:52:14 +01:00
uazoandGitHub b228ed72c2 Merge pull request #856 from uazo/platform_aac_hevc
Enable platform aac hevc in windows and android
2024-03-10 01:45:24 -09:00
Carmelo Messina 8c6ecb46a7 #474 Put some files under source control 2024-03-10 11:40:18 +01:00
uazoandGitHub 6348da2dc7 Merge pull request #869 from uazo/create-pull-request/patch-d62bb78
New files under control
2024-03-10 01:29:16 -09:00
uazoandGitHub dbacbb5d25 AUTOMATED - new files under control 2024-03-10 10:27:59 +00:00
Carmelo Messina d62bb78c21 #474 Put some files under source control 2024-03-10 11:26:00 +01:00
Carmelo Messina 1cc6c158f9 #474 Put some files under source control 2024-03-10 11:22:13 +01:00
Carmelo Messina f0682a0a9d #474 Put some files under source control 2024-03-10 11:20:47 +01:00
Carmelo Messina bc584f8fcb #474 Put some files under source control 2024-03-10 11:02:58 +01:00
Carmelo Messina 1cce2f1434 #474 Put some files under source control 2024-03-09 15:32:52 +01:00
Carmelo Messina 30bcef4e01 #474 Put some files under source contro 2024-03-09 15:18:20 +01:00
Carmelo Messina 9acda3aed3 #474 Put some files under source control 2024-03-09 15:07:45 +01:00
Carmelo Messina e84f1330b4 #474 changed script 2024-03-09 12:06:09 +01:00
Carmelo Messina 6144adc652 Merge branch 'platform_aac_hevc' of https://github.com/uazo/bromite into platform_aac_hevc 2024-03-07 08:57:15 +01:00
Carmelo Messina 2fcd346d93 Enable platform aac audio and h264 video 2024-03-07 08:56:24 +01:00
Carmelo Messina aeb7dce1db Rename kAndroidVisibleUrlTruncation
see https://issues.chromium.org/issues/41492008
2024-03-07 08:50:48 +01:00
Carmelo Messina 5bc8c21500 Enable platform aac audio and h264 video 2024-03-06 21:10:45 +01:00
Carmelo Messina fac696b3a4 Patches for 122.0.6261.111 2024-03-06 20:39:28 +01:00
Carmelo Messina 8fc87b2af8 Bump to 122.0.6261.111 2024-03-06 14:16:21 +01:00
Carmelo Messina a99aff1188 #839 fix crash when switching to Chromite from another app 2024-03-06 14:15:49 +01:00
uazoandGitHub f978f09587 Merge pull request #841 from uazo/create-pull-request/patch-0520926
Git apply result for master branch
2024-03-01 17:51:02 +01:00
uazoandGitHub 4abd03221f AUTOMATED - git apply results 2024-03-01 16:50:34 +00:00
Carmelo Messina 0520926856 bump to 122.0.6261.95 2024-03-01 17:42:17 +01:00
Carmelo Messina 7c79ae4952 #839 fix crash in startup 2024-03-01 17:36:18 +01:00
Carmelo Messina 8998e3de4c #240 Fix text blurring with opacity close to 1.0 2024-03-01 17:34:44 +01:00
uazoandGitHub 19099fbee4 Update FEATURES.md 2024-03-01 16:12:48 +01:00
uazoandGitHub 6b446dcd3d Added instructions on how to enable AppContainer for the rendering process in Windows 2024-02-29 14:19:20 +00:00
uazoandGitHub a35804c2ca Merge pull request #830 from uazo/create-pull-request/patch-15c609d
Git apply result for master branch
2024-02-29 13:17:23 +00:00
uazoandGitHub 7b790f2856 AUTOMATED - git apply results 2024-02-29 13:10:03 +00:00
Carmelo Messina 15c609d676 Bump to 122.0.6261.94 2024-02-29 14:04:35 +01:00
Carmelo Messina 136f8e6b75 Restore windows network sandbox
partial pick of https://chromium-review.googlesource.com/c/chromium/src/+/5270572
2024-02-29 14:03:52 +01:00
Carmelo Messina b80b51ccd3 use uazo/github-runner:2.314.1 2024-02-29 08:49:55 +01:00
Carmelo Messina 4da02214e2 Drop Temp-fix-Content-settings-infrastructure.patch 2024-02-28 15:48:24 +01:00
uazoandGitHub 4ca804577e Merge pull request #826 from uazo/create-pull-request/patch-a269481
Git apply result for master branch
2024-02-27 15:15:19 -02:00
uazoandGitHub 66210f9ff6 AUTOMATED - git apply results 2024-02-27 17:14:56 +00:00
Carmelo Messina a269481b57 bump to 122.0.6261.70 2024-02-27 18:09:16 +01:00
Carmelo Messina b3258066f2 Update patch list 2024-02-27 18:08:51 +01:00
Carmelo Messina a42b1e7fc6 Show NTP at startup 2024-02-27 18:08:38 +01:00
Carmelo Messina dd4a5ee253 Disable Compose and Offline autofetch by default 2024-02-27 18:06:31 +01:00
Carmelo Messina d8e9716de3 #379 Enable percent based scrolling on Windows 2024-02-27 18:05:59 +01:00
Carmelo Messina 55b2ed5d13 #789 fix non-responsive buttons 2024-02-27 18:03:31 +01:00
Carmelo Messina 6ee953a844 Enable kCookieSameSiteConsidersRedirectChain, kSchemefulSameSite, kSameSiteDefaultChecksMethodRigorously, kTimeLimitedInsecureCookies by default 2024-02-27 18:02:31 +01:00
Carmelo Messina 69ef85908e restore old ui in NTP 2024-02-27 18:01:50 +01:00
Carmelo Messina 8c58bf81a3 Disable feature change 2024-02-27 18:01:16 +01:00
Carmelo Messina ad20a84ec4 Keep disabled kAttributionReportingCrossAppWebOverride
Enables exposure of the Cross App Web Attribution Reporting in the renderer
without an origin trial token.
2024-02-27 17:59:33 +01:00
Carmelo Messina dc9e3cfb2c Disable CWS Info Service by default
Allow periodic retrieval of extensions metadata from the Chrome Web Store
2024-02-27 17:57:53 +01:00
Carmelo Messina 89afe5e5ad fix crash when changing flag state in ui 2024-02-27 17:56:23 +01:00
Carmelo Messina 95a360e396 removed automatic durable storage for important sites 2024-02-27 17:55:41 +01:00
Carmelo Messina 5a93f72bda add support for HomepageSettings 2024-02-27 17:53:54 +01:00
Carmelo Messina f9a6b8febc #805 changed string to "This setting is enforced by Cromite" 2024-02-27 17:53:24 +01:00
uazoandGitHub 26d88dcdf5 Merge pull request #806 from uazo/next-122
Patches for 122
2024-02-21 05:43:46 -11:00
uazoandGitHub a3a3710fb9 Merge pull request #815 from uazo/create-pull-request/patch-37d1c12
Git apply result for next-122 branch
2024-02-21 05:43:23 -11:00
uazoandGitHub 176624189c AUTOMATED - git apply results 2024-02-21 16:42:29 +00:00
Carmelo Messina 37d1c12747 bump to 122.0.6261.64 2024-02-21 17:36:33 +01:00
uazoandGitHub 2a4e8bc8d0 Use clangd_17.0.3 2024-02-21 02:47:43 -11:00
uazoandGitHub ac235cb95c Use clangd_indexing_tools-linux-17.0.3 2024-02-21 02:47:16 -11:00
Carmelo Messina a93df08853 update patch list
drop Enable-ECH-by-default.patch
drop Disable-SHA1-Server-Signature.patch
add Temp-disable-network-service-windows.patch
add Temp-fix-Content-settings-infrastructure.patch
2024-02-21 11:15:14 +01:00
Carmelo Messina a608bc0a78 v122 final patches 2024-02-21 11:13:53 +01:00
uazoandGitHub 4959bf64ec Update whitelist 2024-02-18 16:57:37 +03:00
Carmelo Messina 2b1f1faa7c v122 wip 2024-02-18 14:35:58 +01:00
Carmelo Messina c3f33c02a7 v122 patches 2024-02-18 14:35:18 +01:00
uazoandGitHub 0543a8a30b Merge pull request #787 from uazo/create-pull-request/patch-706aa53
Git apply result for master branch
2024-02-08 07:36:02 +00:00
uazoandGitHub 30e471d6d5 AUTOMATED - git apply results 2024-02-08 07:34:45 +00:00
Carmelo Messina 706aa53fff Bump to 121.0.6167.164 2024-02-08 08:29:52 +01:00
uazoandGitHub 0b445ac869 Merge pull request #786 from uazo/create-pull-request/patch-74cf1d1
Git apply result for master branch
2024-02-08 07:28:21 +00:00
uazoandGitHub b65b503086 AUTOMATED - git apply results 2024-02-08 07:25:08 +00:00
Carmelo Messina 74cf1d1c0e temporary fix of a crash in windows 2024-02-08 08:22:12 +01:00
Carmelo Messina 3d9aa9e924 In site settings added ability to block all popups per site 2024-02-04 17:28:09 +01:00
Carmelo Messina 151a5479cd Show javascript site setting in page info also in desktop 2024-02-04 17:23:54 +01:00
Carmelo Messina c39e3f2300 Add support for ask ui 2024-02-04 17:22:57 +01:00
Carmelo Messina e0bd1dcad3 #404 completed support for three state site settings
and improve ui
2024-02-04 17:22:09 +01:00
Carmelo Messina f617340fcf #710 rollback drop support for proprietary_codecs 2024-02-02 19:42:06 +01:00
uazoandGitHub 6fc978d285 Update README.md
fix link
2024-02-01 17:58:50 +01:00
Carmelo Messina 3c1546189b moved features to a dedicated page 2024-02-01 17:57:02 +01:00
uazoandGitHub 4d606bb7f3 Merge pull request #769 from uazo/create-pull-request/patch-f661e4f
Git apply result for master branch
2024-02-01 16:48:35 +01:00
uazoandGitHub 0913a726df AUTOMATED - git apply results 2024-02-01 15:45:38 +00:00
uazoandGitHub ecf04a94ca Add git prune 2024-02-01 16:40:21 +01:00
Carmelo Messina f661e4f1b6 Bump to 121.0.6167.143 2024-02-01 16:37:36 +01:00
Carmelo Messina 284a9227c7 Remove unused use_gnome_keyring 2024-02-01 16:36:54 +01:00
Carmelo Messina 7fbd09f3fd #710 drop support for proprietary_codecs 2024-02-01 16:35:37 +01:00
Carmelo Messina 274d6792a7 #767 fix bug introduced by the 121 2024-02-01 16:32:16 +01:00
Carmelo Messina 172d20dc88 #534 enable support for WEB_SEARCH intent 2024-02-01 16:31:03 +01:00
Carmelo Messina 27de00b037 Disable urns in iframe
used by the privacy sandbox
2024-02-01 16:27:55 +01:00
Carmelo Messina 6d7f0454eb #758 reactivate add to home screen in always incognito 2024-02-01 16:24:39 +01:00
uazoandGitHub 889b9973db increased the timeout to the maximum allowed 2024-01-25 15:33:05 +06:00
uazoandGitHub a072e3f213 #745 Updated the link to the patches 2024-01-25 13:42:27 +06:00
Carmelo Messina a2939070ae Bump to 121.0.6167.101 2024-01-24 13:51:39 +01:00
Carmelo Messina d7764cf6bb Disable Read Aloud by default 2024-01-24 13:50:50 +01:00
Carmelo Messina 09813e1323 Enabling the choice of search engine in fre
#594 Edited urls pending creation of wiki pages
2024-01-24 13:49:23 +01:00
Carmelo Messina bbd3e1ae70 Fix swipe up on toolbar 2024-01-24 13:47:27 +01:00
Carmelo Messina bba935392b Disable kAttributionReportingInBrowserMigration
it activates the fetchlater feature
2024-01-24 13:47:05 +01:00
Carmelo Messina a566fa9d36 #655 fix autofill for password fields 2024-01-24 13:46:08 +01:00
Carmelo Messina 0fceae6fcb Enable Chrome Refresh 2023 2024-01-24 13:45:25 +01:00
Carmelo Messina de49992843 Remove clangd unsupported "no-thread-safety-reference-return" flag 2024-01-24 13:45:01 +01:00
Carmelo Messina 638d7a12bd Disable Discount Info Api 2024-01-24 13:44:09 +01:00
uazoandGitHub 3fcd3ed94a Remove "2.25.1" from patches 2024-01-24 07:43:27 +00:00
uazoandGitHub 807f3a771d #734 Patches for 121
Patches for 121
2024-01-24 07:42:20 +00:00
Carmelo Messina 79e176dd6e deletion of the '2.25.1' suffix used by bromite 2024-01-22 11:33:32 +01:00
Carmelo Messina 94d2bececa removal of 00 prefix from patches not included in bromite. 2024-01-22 11:32:29 +01:00
Carmelo Messina 07ed430d73 patches for v121 (fixed) 2024-01-21 15:50:27 +01:00
Carmelo Messina a68bb3a3ab force enable_bound_session_credentials to false 2024-01-21 15:41:33 +01:00
Carmelo Messina 81d5846fdc Patches for 121 2024-01-19 15:25:09 +01:00
uazoandGitHub 0b99765ab5 Update Dockerfile 2024-01-17 03:45:20 -09:00
uazoandGitHub b6c1b3e713 Update Dockerfile 2024-01-17 03:31:08 -09:00
uazoandGitHub 1bfb127003 Update Dockerfile 2024-01-17 03:16:12 -09:00
uazoandGitHub 48954716dc add DEBIAN_FRONTEND=noninteractive 2024-01-17 02:46:05 -09:00
Carmelo Messina 068d09a1ed Patches for 120.0.6099.230 2024-01-17 10:49:15 +01:00
uazoandGitHub a84f8339c2 Bump to 120.0.6099.230 2024-01-16 23:19:42 -09:00
uazoandGitHub 14ba22ab7c #697 disable minikin engine 2024-01-16 23:18:50 -09:00
uazoandGitHub 88872af8a8 add draft management 2024-01-15 06:59:28 -02:00
uazoandGitHub c56a11a15b Merge pull request #700 from uazo/create-pull-request/patch-034268f
Git apply result for master branch
2024-01-12 13:59:04 -03:00
uazoandGitHub a344693de6 AUTOMATED - git apply results 2024-01-12 16:58:46 +00:00
Carmelo Messina 034268f745 bump to 120.0.6099.217 2024-01-12 17:52:24 +01:00
Carmelo Messina ea0879f386 #688 make suggestion url optional 2024-01-12 17:51:35 +01:00
Carmelo Messina 3f3f0cbe04 #692 fix crash 2024-01-12 17:24:53 +01:00
Carmelo Messina cd7ca5e627 #505 Enable Gwp Asan in Android 2024-01-12 17:23:18 +01:00
Carmelo Messina 453cbc569b #689 fix crash on linux 2024-01-12 17:19:16 +01:00
uazoandGitHub c572483879 Merge pull request #686 from uazo/create-pull-request/patch-702d473
Autorebase for 120.0.6099.216
2024-01-10 05:51:08 -10:00
uazoandGitHub c129363303 AUTOMATED - git apply results 2024-01-10 15:50:12 +00:00
Carmelo Messina 702d473cc6 bump to 120.0.6099.216 2024-01-10 16:14:53 +01:00
Carmelo Messina a866bb1c3a #633 enables a new option in the developer tools settings for
deactivating the debugger javascript statement
2024-01-10 16:12:43 +01:00
Carmelo Messina e37c70d2a9 #553 activates the pop-up blocking management present in adblockplus
but not active in upstream.
added "enable-stricter-popup-blocker" flag for the global
deactivation of all pop-ups (default disabled)
2024-01-10 16:09:03 +01:00
Carmelo Messina 8e283f5f25 #566 Add desktop ui 2024-01-10 16:01:46 +01:00
Carmelo Messina 430b5c499a #509 disable remote playback api 2024-01-10 16:00:40 +01:00
Carmelo Messina 99ebc8a13a remove favicon urls
do not allow the webui to make external requests
2024-01-10 15:58:32 +01:00
Carmelo Messina f7cd3d5ced add ABOUT_FLAG_INCLUDE_SECTION 2024-01-10 15:57:03 +01:00
uazoandGitHub 6e91b56ee1 #633 remove third_party/devtools-frontend submodule 2024-01-10 03:41:54 -10:00
uazoandGitHub 1a8486dc70 Merge pull request #677 from uazo/create-pull-request/patch-3b9a50e
Git apply result for master branch
2024-01-08 20:47:17 +05:00
uazoandGitHub 18664c67b7 AUTOMATED - git apply results 2024-01-08 15:42:56 +00:00
Carmelo Messina 3b9a50ebea #593 fix upstream bug 2024-01-08 16:39:56 +01:00
uazoandGitHub 9316ace7fb Merge pull request #676 from uazo/create-pull-request/patch-603e5f7
Fix CVE results
2024-01-08 20:39:33 +05:00
uazoandGitHub ccaa497e60 AUTOMATED - CVE results 2024-01-08 15:32:50 +00:00
uazoandGitHub 603e5f70d6 Update check_nist.yaml 2024-01-08 20:32:03 +05:00
Carmelo Messina cd8469a358 #566 add history days threshold setting in desktop 2024-01-08 13:44:01 +01:00
Carmelo Messina c0eb69974c #566 Add components/cromite_components_strings_grd placeholder 2024-01-08 13:42:22 +01:00
Carmelo Messina 162e094cb7 #669 fix urls
#565 fix invalid date message
2024-01-08 13:40:46 +01:00
Carmelo Messina f92c8042b1 #514 allow manual update even without autoupdate active 2024-01-08 13:39:10 +01:00
uazoandGitHub caba4b52db Merge pull request #670 from uazo/create-pull-request/patch-f22be2f
Git apply result for master branch
2024-01-07 08:26:48 -08:00
uazoandGitHub 0d9f3b352a AUTOMATED - git apply results 2024-01-07 16:25:30 +00:00
Carmelo Messina f22be2f83d Merge branch 'master' of https://github.com/uazo/bromite 2024-01-07 17:22:49 +01:00
Carmelo Messina b714adebb0 #542 Add Disable-Android-AppRestrictions.patch and Customize-selection-popup.patch 2024-01-07 17:20:50 +01:00
Carmelo Messina 5271fea1f5 use cromite build tools 2024-01-07 17:12:30 +01:00
Carmelo Messina dd31024e8c remove ad services config from manifest file 2024-01-07 17:10:39 +01:00
uazoandGitHub e74225ae3d #665 Enable JXL support in linux builds 2024-01-07 02:17:21 -08:00
uazoandGitHub 8eb04d972b #621 add libvulkan.so.1
see https://source.chromium.org/chromium/chromium/src/+/main:infra/archive_config/linux-archive-rel.json
2024-01-07 02:14:53 -08:00
uazoandGitHub 4cfadbbdea Add linux build 2024-01-05 14:07:51 +00:00
uazoandGitHub f4641a3185 Update release.yaml 2024-01-05 11:48:30 -02:00
uazoandGitHub 86d37d53e5 Fix linux build output 2024-01-05 11:43:45 -02:00
Carmelo Messina 672a5061d3 fix chrome://flags crash 2024-01-04 17:33:03 +01:00
uazoandGitHub 331a371df0 Merge pull request #659 from uazo/create-pull-request/patch-1888118
Git apply result for master branch
2024-01-04 03:19:45 -10:00
uazoandGitHub 7a613315e8 AUTOMATED - git apply results 2024-01-04 13:18:20 +00:00
Carmelo Messina 188811844f Bump to 120.0.6099.199 2024-01-04 14:10:59 +01:00
Carmelo Messina 6fba336bc8 #556 #537 Enable search engine settings desktop ui in android 2024-01-04 14:10:27 +01:00
Carmelo Messina 21afb15a9a remove zz-patch-list.txt 2023-12-28 17:19:01 +01:00
Carmelo Messina 860536f6f4 #514 Introduce Chrome web store protection
The amount of information sent is minimized without disabling
the ability to install extensions (which is under user control)
It became possible to activate the autoupdate of extensions by sending the minimum of values.
Installation with the chrome web store is allowed, but the website
by default cannot retrieve the list of installed extensions and their status (under flag)
All http calls related to requesting and downloading updates are cookie-free,
but the ip and the list of extensions are traceable, that information cannot be omitted.
Auto-update is disabled by default: it is possible to activate it with chrome://extensions/
2023-12-28 16:53:56 +01:00
Carmelo Messina dfc2b09225 #514 fix deps, allow extension_manifest_fetcher and extension_crx_fetcher 2023-12-28 16:36:01 +01:00
Carmelo Messina 4108e68a41 #367 Allow full capability to webui 2023-12-28 16:33:21 +01:00
Carmelo Messina 9e5c6ee175 #330 fix offline downloader 2023-12-27 12:04:03 +01:00
Carmelo Messina 8f298134e8 Fix deps 2023-12-27 12:03:02 +01:00
Carmelo Messina 8e71c67e88 revert to 120.0.6099.144 2023-12-27 11:46:37 +01:00
uazoandGitHub 828c891360 Merge pull request #635 from uazo/use-cromite-name
Rename bromite -> cromite scripts
2023-12-26 23:43:28 -11:00
Carmelo Messina 66746d261b #621 Publish linux build 2023-12-27 11:41:59 +01:00
Carmelo Messina 0cdc64b9f9 #280 Remove /tools/images/bromite-build/build_args.gni 2023-12-27 11:41:40 +01:00
Carmelo Messina ffefca018d download linux pgo profile 2023-12-27 11:40:30 +01:00
Carmelo Messina eec8f12351 fix build 2023-12-23 15:42:20 +01:00
Carmelo Messina a36bcf5a86 fix build 2023-12-23 15:25:35 +01:00
Carmelo Messina f24a533981 fix build script 2023-12-23 14:52:47 +01:00
Carmelo Messina d5c4756573 bump to 120.0.6099.180 2023-12-23 14:08:37 +01:00
Carmelo Messina 30ecbf1f25 rename bromite -> cromite 2023-12-23 13:58:02 +01:00
Carmelo Messina 642700f488 remove FUNDING.yml 2023-12-23 13:30:33 +01:00
uazoandGitHub 0200193d36 Merge pull request #630 from uazo/create-pull-request/patch-41e8662
Git apply result for master branch
2023-12-22 18:01:30 +01:00
uazoandGitHub d4d44820ee AUTOMATED - git apply results 2023-12-22 16:42:08 +00:00
Carmelo Messina 41e8662902 Removed IsGoogleHostWithAlpnH3 2023-12-22 17:39:25 +01:00
Carmelo Messina 21eab5816f #236 use etld+1 and not the origin
added check also in download via context menu in android
2023-12-22 17:38:59 +01:00
Carmelo Messina 932cfc6f1e #79 Disable viewport protection by default for chrome:// urls and pdfviewer
patches merged
2023-12-22 14:47:11 +01:00
Carmelo Messina 23d52c4e84 #607 fix order 2023-12-22 14:45:10 +01:00
uazoandGitHub c7027c1604 Bump to 120.0.6099.144 2023-12-20 19:44:14 -12:00
uazoandGitHub e26c01edb7 Add ``` to message 2023-12-20 19:18:44 -12:00
Carmelo Messina 0e0a9de637 #617 add patched sysbox bins 2023-12-20 09:37:23 +01:00
uazoandGitHub f72a886b9a Merge pull request #616 from uazo/create-pull-request/patch-34dc628
Git apply result for master branch
2023-12-19 00:24:44 -10:00
uazoandGitHub 9fa795c649 AUTOMATED - git apply results 2023-12-19 10:19:54 +00:00
Carmelo Messina 34dc628c34 #606 fix adaptive icon 2023-12-19 11:17:15 +01:00
Carmelo Messina 2c45b9fbbb #607 Reversed the order of the view in list mode 2023-12-19 10:49:03 +01:00
Carmelo Messina f95e6ee479 #608 Add support to cached flags 2023-12-19 10:46:48 +01:00
uazoandGitHub a02c9037d4 Merge pull request #605 from uazo/create-pull-request/patch-957d6e4
Git apply result for master branch
2023-12-14 22:00:39 +05:00
uazoandGitHub 33ed9c7bba AUTOMATED - git apply results 2023-12-14 16:59:48 +00:00
Carmelo Messina 957d6e4629 Patches for 120.0.6099.115 2023-12-14 17:54:53 +01:00
uazoandGitHub 0182aafe6f Added also 'wontfix' label 2023-12-14 20:04:01 +05:00
Carmelo Messina bf5dbbcd30 bump to 120.0.6099.115 2023-12-14 15:40:19 +01:00
uazoandGitHub 2e6d34d46e Merge pull request #604 from uazo/create-pull-request/patch-9622338
Git apply result for master branch
2023-12-14 19:37:38 +05:00
uazoandGitHub 303a2b772b AUTOMATED - git apply results 2023-12-14 14:33:21 +00:00
Carmelo Messina 962233864b #159 allow the webview build 2023-12-14 15:30:30 +01:00
Carmelo Messina 1a8ef384c2 #595 fix crashes of package installer on A14 QPR1
thanks to t-m-w
2023-12-14 09:02:25 +01:00
Carmelo Messina 11b3a63f96 use chromiumdash.appspot.com 2023-12-13 13:34:55 +01:00
uazoandGitHub 827cc8c9a7 Merge pull request #599 from uazo/create-pull-request/patch-e7e9329
Git apply result for master branch
2023-12-13 09:47:09 -01:00
uazoandGitHub 8b7121e4b2 AUTOMATED - git apply results 2023-12-13 08:33:42 +00:00
Carmelo Messina e7e932916a #580 Use list mode for tab switcher
test of #403
related #538 #180
2023-12-13 09:31:04 +01:00
Carmelo Messina 65f68bea94 #403 added the possibility of defining the flag to be modified directly from the xml.
removed the need to specify, for cromite flags, permission for use by java
introduced placeholder support also for the android_chrome_strings_grd target
2023-12-13 09:16:26 +01:00
Carmelo Messina deaac6181d #403 added support for checking and setting flags (even without caching) from java
and moved the incorrect code between patches
2023-12-13 09:12:39 +01:00
Carmelo Messina beaf889d59 Fix incorrect (for cromite) DCHECK 2023-12-13 09:10:07 +01:00
Carmelo Messina 9185ce8caf #83 remove the use of TtsPlatformImplAndroid::TtsPlatformImplAndroid 2023-12-13 09:09:31 +01:00
uazoandGitHub 8930409029 remove apt update gives too many problems 2023-12-06 20:07:48 +07:00
uazoandGitHub 573fb49274 Fix docker intermittent startup error 2023-12-06 20:06:56 +07:00
uazoandGitHub 0cc2f33cf4 Merge pull request #568 from uazo/next-v120
Patches for v120 stable
2023-12-06 19:54:56 +07:00
uazoandGitHub 03f23b3fd0 #588 Auto rebase for 120.0.6099.63
Auto rebase for 120.0.6099.63
2023-12-06 19:54:23 +07:00
uazoandGitHub f81260b38f AUTOMATED - git apply results 2023-12-06 12:52:15 +00:00
Carmelo Messina 51e31406dc bump to 120.0.6099.63 2023-12-06 13:47:27 +01:00
Carmelo Messina 76b7e1415a #586 Add a new flag for kPartialLowEndModeOnMidRangeDevices 2023-12-06 13:46:37 +01:00
Carmelo Messina 7998846c20 Improve the browser sandbox by using the new flags on android
and renamed the patch name
2023-12-06 13:44:19 +01:00
Carmelo Messina 74f8fa716f use new style for flags 2023-12-06 13:38:37 +01:00
Carmelo Messina dad28f9e41 Disable kPrivacySandboxFirstPartySetsUI
FPS are disabled by default
2023-12-06 13:37:52 +01:00
Carmelo Messina f3f0781b71 Disable SpeculationRulesPrefetchProxy 2023-12-06 13:37:06 +01:00
Carmelo Messina dee3870e45 decoupled activation flag with adblock site setting
first step towards completely deactivating the functionality
2023-12-06 13:36:46 +01:00
Carmelo Messina 853bcab940 added mark for the feature
I'm interested in marking the point in the code because I don't understand what the download has to do with it.
2023-12-06 13:35:26 +01:00
Carmelo Messina c4ce10cd51 also disable feature engagement 2023-12-06 13:29:30 +01:00
Carmelo Messina 8aa4f9e3b7 fixed ntp ui with v120 changes 2023-12-06 13:28:51 +01:00
Carmelo Messina ffffa2aba3 removed support for heuristic enabling of third-party cookies
added cromite defaults for new v120 flags
2023-12-06 13:28:05 +01:00
Carmelo Messina b7c8cb3be5 the other folder is always shown by default 2023-12-06 13:26:17 +01:00
Carmelo Messina 0521167495 #572 fix hang in settings ui 2023-12-06 13:25:25 +01:00
Carmelo Messina a3edc9ee74 Shown by default the list of variations with the text format in chrome://version 2023-12-06 13:24:15 +01:00
uazoandGitHub 4ea39cb6fa Use clangd_snapshot_20231203 2023-12-04 23:48:35 +11:00
uazoandGitHub 5c9c0d59db Update clangd_indexing_tools-linux-snapshot to 20231203 2023-12-04 23:47:32 +11:00
Carmelo Messina c5ecfb9ff1 v120 line changes 2023-12-02 22:59:58 +01:00
Carmelo Messina 86bb2672a7 v120 final patches 2023-12-02 22:58:24 +01:00
Carmelo Messina b441c2af1b bump to 120.0.6099.56 2023-12-01 16:25:10 +01:00
Carmelo Messina 9be5fc052b v120 patches 2023-12-01 16:24:35 +01:00
uazoandGitHub 89edb18bc3 temporary deactivation
omahaproxy.appspot.com has been definitively suspended
2023-11-30 20:11:34 -11:00
uazoandGitHub 91419aa0e8 Merge pull request #562 from uazo/create-pull-request/patch-580bc2e
Autorebase for 119.0.6045.200
2023-11-29 15:17:40 +03:00
uazoandGitHub aaed6fe837 AUTOMATED - git apply results 2023-11-29 12:15:41 +00:00
Carmelo Messina 580bc2e205 Bump to 119.0.6045.200 2023-11-29 13:10:17 +01:00
uazoandGitHub 49a7e0f16e Merge pull request #538 from uazo/new-method-change-flags
Add support to "Cromite" flags
2023-11-29 15:09:21 +03:00
Carmelo Messina 21b97895e4 Removed the log and changed the settings caption 2023-11-29 13:06:20 +01:00
uazoandGitHub 5dd685f29b Fix trailing spaces
Fix trailing spaces
2023-11-29 14:44:50 +03:00
uazoandGitHub 3c17e9dadc AUTOMATED - git apply results 2023-11-29 11:43:24 +00:00
Carmelo Messina a43932dd4e remove 00Temp-Disable-kAutomaticLazyFrameLoadingToEmbeds.patch 2023-11-29 12:41:01 +01:00
Carmelo Messina 4e490e90de add more patches 2023-11-29 12:40:31 +01:00
Carmelo Messina b4fc6f76c8 more patches added 2023-11-24 15:00:20 +01:00
uazoandGitHub 26e700753f Update feature_request.yml 2023-11-19 05:16:35 -05:00
uazoandGitHub 6c36a087f6 Merge pull request #540 from uazo/create-pull-request/patch-6acf8d8
Git apply result for new-method-change-flags branch
2023-11-18 05:44:29 -09:00
uazoandGitHub 97d1e57845 AUTOMATED - git apply results 2023-11-18 14:27:25 +00:00
Carmelo Messina 6acf8d8983 use cromite_flags folders 2023-11-18 15:24:54 +01:00
Carmelo Messina c64a775129 add CROMITE_FEATURE 2023-11-18 15:15:21 +01:00
Carmelo Messina 3046dcc14b use SET_CROMITE_FEATURE ENABLED/DISABLED 2023-11-18 13:09:15 +01:00
Carmelo Messina 8fd6ab9a90 Add cromite flags support
Add SET_CROMITE_FEATURE_ENABLED*, SET_CROMITE_FEATURE_DISABLED*
and CROMITE_FEATURE macros, logic has been adapted from that found
in brave.
Allows flags to be defined in separate files.
Activates a new cromite tab in chrome://flags with only the flags
added and changed. In android added chrome://flags/cromite
in the setting ui.
Currently in wip
2023-11-18 12:11:12 +01:00
Carmelo Messina 1dbbff49ab Use runner version 2.311.0 2023-11-17 17:47:38 +01:00
uazoandGitHub 588bbbab91 Fix Linux 64 script 2023-11-16 16:29:23 +09:00
uazoandGitHub dcbb3d0a3b #528 auto-rebase for 119.0.6045.160
Auto-rebase for 119.0.6045.160
2023-11-15 16:25:39 +02:00
uazoandGitHub a2b0b9aaba AUTOMATED - git apply results 2023-11-15 14:22:37 +00:00
uazoandGitHub d4b843e7af Bump to 119.0.6045.160 2023-11-15 16:17:37 +02:00
Carmelo Messina b8e3cd6eb9 Always allow inspect fallback 2023-11-15 14:49:01 +01:00
uazoandGitHub cec56a39c8 Merge pull request #527 from uazo/create-pull-request/patch-15fe961
Git apply result for master branch
2023-11-15 15:46:43 +02:00
uazoandGitHub d0c4c51118 AUTOMATED - git apply results 2023-11-15 13:43:18 +00:00
Carmelo Messina 15fe961a62 #517 Fix bookmarks export on windows 2023-11-15 14:40:37 +01:00
uazoandGitHub 9d0b97fc3c Update README.md 2023-11-09 06:38:37 -01:00
uazoandGitHub a13b07e044 Fix linux build 2023-11-09 06:28:59 -01:00
uazoandGitHub 5ae28c6366 Fix linux output folder 2023-11-09 06:10:08 -01:00
uazoandGitHub ed22491b64 Fix lin64 folder permissions 2023-11-09 06:06:41 -01:00
uazoandGitHub 6e8eab21d5 #511 auto rebase to 119.0.6045.124
auto rebase to 119.0.6045.124
2023-11-08 03:03:52 -05:00
uazoandGitHub 19a8a5b480 Update start-runner.sh 2023-11-08 02:57:42 -05:00
uazoandGitHub 5a9c529bf8 AUTOMATED - git apply results 2023-11-08 07:56:11 +00:00
uazoandGitHub f24e43633f Bump to 119.0.6045.124 2023-11-08 02:50:24 -05:00
Carmelo Messina 0f42da23e6 Disable Real Box 2023-11-05 19:46:22 +01:00
Carmelo Messina 8f293b2c99 Disable Service and Shared workers on 3P iframe
Disabled by default due https://bugs.chromium.org/p/chromium/issues/detail?id=1147281
Workers can be reenabled per top-site-url using "Allow 3P Cookies"
("Block 3P Cookies" in ui to off) in site settings
2023-11-05 19:43:27 +01:00
Carmelo Messina bc88ce296a Ensure kForceThirdPartyCookieBlocking is off 2023-11-05 19:37:34 +01:00
Carmelo Messina 6eb62d841a #504 Fix crash 2023-11-05 19:36:57 +01:00
Carmelo Messina 278e74c902 revert #426 try to fix strange behaviour
as upstream fixed it
2023-11-05 19:36:17 +01:00
uazoandGitHub f2fd418f82 Change build order
as in debug I only need android x64 and windows
2023-11-03 13:11:47 -01:00
uazoandGitHub 8b0c44f2b2 Add Linux 64 2023-11-03 13:09:10 -01:00
Carmelo Messina 0db4890cec #317 Make it possible to build for linux
thanks to PF4Public
2023-11-03 14:56:18 +01:00
uazoandGitHub b0a88632db Get uazo/cromite-build from docker hub if present 2023-11-02 07:43:29 -01:00
uazoandGitHub dab5cd3ded Update README.md 2023-11-02 07:08:53 -01:00
uazoandGitHub 9344cc41d5 #486 Autorebase for 119.0.6045.106
Autorebase for 119.0.6045.106
2023-11-01 12:03:07 +03:00
uazoandGitHub e2468d0ffc AUTOMATED - git apply results 2023-11-01 08:54:48 +00:00
Carmelo Messina cbcf50b907 Bump to 119.0.6045.106 2023-11-01 09:49:45 +01:00
uazoandGitHub 39af4f6d66 #475 from uazo/next-v119
Patches for v119
2023-11-01 11:47:12 +03:00
Carmelo Messina ca971023d5 Add new patches for 119 2023-10-31 17:54:21 +01:00
Carmelo Messina 4d58c02604 Disable Background Availability Monitoring in media router 2023-10-31 17:52:38 +01:00
Carmelo Messina ab0766a035 Activate kClearCrossSiteCrossBrowsingContextGroupWindowName flag 2023-10-31 17:51:28 +01:00
Carmelo Messina 78e9cfeea2 119 keep new flags disabled 2023-10-31 17:51:04 +01:00
Carmelo Messina 2224e7f3ad #473 Fix upgrade checks 2023-10-31 17:49:42 +01:00
Carmelo Messina e4f141e8c1 Always clear js and wasm code cache at startup 2023-10-31 17:49:08 +01:00
Carmelo Messina a4025183d4 119 keep disabled CommerceHintAndroid, ParcelTracking, kParcelTrackingRegionLaunched 2023-10-31 17:48:25 +01:00
Carmelo Messina 18b7219a2d #301 #320 Fix keyboard cover suggestions 2023-10-30 16:15:26 +01:00
uazoandGitHub c0e98433d5 #482 Remove trailing whitespace
Remove trailing whitespace
2023-10-29 05:51:12 -12:00
uazoandGitHub 22c8b00d7d AUTOMATED - git apply results 2023-10-29 17:10:06 +00:00
Carmelo Messina 828db82adb Update patches list 2023-10-29 18:06:13 +01:00
Carmelo Messina 90694a4a4b Add Guard FileSystemAccessPersistentPermissions flag 2023-10-29 18:04:22 +01:00
Carmelo Messina cf7376fbc0 #480 Hide the presence of the webcam if the user has not given permission 2023-10-29 18:03:56 +01:00
Carmelo Messina 2af2272211 #477 Add FLAG_OPEN_TRUNCATED while exporting 2023-10-29 18:02:41 +01:00
Carmelo Messina 1eb5e65b79 #479 Fix duplicate results 2023-10-29 18:01:49 +01:00
Carmelo Messina 433b244558 Refactor add search engine patch 2023-10-29 18:00:59 +01:00
Carmelo Messina 30157ceea3 Merge "Always use new tab page for default home page" with "Disable PartnerCustomizations"
and keep disabled kNewTabSearchEngineUrlAndroid
2023-10-29 17:57:17 +01:00
Carmelo Messina 636f85125b v119 only line change 2023-10-29 17:54:32 +01:00
Carmelo Messina d30d8a8de0 v119 final patches 2023-10-29 17:52:09 +01:00
uazoandGitHub 6f33d192a1 Update bug_report.yml 2023-10-28 20:54:59 -12:00
uazoandGitHub c5b954b78e Update check-git-apply.yaml 2023-10-27 08:29:17 -06:00
Carmelo Messina 6828b4659e bump to 119.0.6045.53 2023-10-27 16:17:36 +02:00
Carmelo Messina 5a80836ca4 update eyeo adblock patches 2023-10-27 16:16:57 +02:00
Carmelo Messina d6aff9d77d v119 need some work 2023-10-27 16:15:28 +02:00
Carmelo Messina b90df7de3d v119 patches 2023-10-27 16:14:56 +02:00
uazoandGitHub e614ce689b Update $VERSION to $CHR_VERSION 2023-10-26 16:30:04 +09:00
uazoandGitHub 86fc1fe3b1 Update README.md 2023-10-26 16:18:33 +09:00
uazoandGitHub 99e6617f72 #460 autorebase for 118.0.5993.118
Upstream added https://chromium.googlesource.com/chromium/src/+/dfc2224df6aeab3d66faeff17193b141e1df8d22
2023-10-25 02:54:55 -05:00
uazoandGitHub 2fbd732a46 AUTOMATED - git apply results 2023-10-25 07:47:35 +00:00
uazoandGitHub 47a5cc56e6 Bump to 118.0.5993.118 2023-10-25 02:40:14 -05:00
uazoandGitHub 1bf3120c5f #457 fix trailing blanks
Git apply result for master branch
2023-10-25 02:22:01 -05:00
uazoandGitHub 4f6e5fb151 AUTOMATED - git apply results 2023-10-25 07:16:29 +00:00
Carmelo Messina c27f2e5f1d #351 Add libjxl support 2023-10-25 09:12:58 +02:00
uazoandGitHub 00230c781a Update build-images.yaml 2023-10-25 01:38:21 -05:00
uazoandGitHub 75a57b2a2b Fix reclaiming disk space 2023-10-25 01:36:41 -05:00
uazoandGitHub 02ffafca81 Add nano 2023-10-25 00:43:02 +11:00
uazoandGitHub f77ecce088 #455 update cve list for libjxl
Update cve list for libjxl
2023-10-24 23:22:50 +11:00
uazoandGitHub 9c3ea7f318 AUTOMATED - CVE results 2023-10-24 12:21:17 +00:00
uazoandGitHub e6a69ef7f0 Update check_nist.yaml 2023-10-24 23:20:22 +11:00
uazoandGitHub d427bfc657 Create libjxl.txt 2023-10-24 23:16:46 +11:00
uazoandGitHub 90d76c1a8a Update check_nist.yaml 2023-10-24 23:10:02 +11:00
uazoandGitHub 77d223e553 Update check_nist.yaml 2023-10-24 23:07:38 +11:00
uazoandGitHub 8761ac5cc8 Update check_nist.yaml 2023-10-24 23:05:22 +11:00
uazoandGitHub 84b69ec999 Update check_nist.yaml 2023-10-24 23:02:24 +11:00
uazoandGitHub 317cbb29ea Create check_nist.yaml 2023-10-24 23:00:14 +11:00
uazoandGitHub 48a677af56 Add aab package 2023-10-22 17:17:39 +03:00
uazoandGitHub 021c8cf7df Fix ninjatracing 2023-10-22 11:46:31 +03:00
Carmelo Messina 023e0d2b15 update patch list 2023-10-20 17:08:02 +02:00
Carmelo Messina b3870515ea #434 Show full urls for bookmark 2023-10-20 17:07:40 +02:00
Carmelo Messina 20875bfef3 #437 Disable prefers-reduced-transparency media query 2023-10-20 17:05:57 +02:00
Carmelo Messina d0f3c845f8 #317 Enable linux build 2023-10-20 17:04:46 +02:00
uazoandGitHub c4d476a24b #433 Autorebase for 118.0.5993.89
Autorebase for 118.0.5993.89
2023-10-19 22:08:11 +06:00
uazoandGitHub c9392d4b62 AUTOMATED - git apply results 2023-10-19 16:07:16 +00:00
Carmelo Messina abc86fbddd bump to 118.0.5993.89 2023-10-19 18:02:25 +02:00
Carmelo Messina 92689a7bf7 Merge branch 'master' of https://github.com/uazo/bromite 2023-10-19 18:00:54 +02:00
Carmelo Messina 29739effb8 Disable some v118 flags 2023-10-19 18:00:33 +02:00
Carmelo Messina 4f43df43fb #399 Fix Offer to save passwords crash 2023-10-19 17:59:59 +02:00
Carmelo Messina 4547ca345d #401 #301 fix patch 2023-10-19 17:59:30 +02:00
Carmelo Messina d73a55d8c2 #432 fix find toolbar 2023-10-19 17:57:41 +02:00
Carmelo Messina a4e1ec6636 #354 Fix crash when closing two or more incognito tabs from Android notification panel 2023-10-19 17:56:43 +02:00
Carmelo Messina 483b893b0a #426 try to fix strange behaviour 2023-10-19 17:55:45 +02:00
uazoandGitHub b25c9dd76e Removes CodeQL Action Bundles. (frees ~5.4 GB)
credits to easimon@
see https://github.com/easimon/maximize-build-space/blob/master/action.yml
2023-10-18 09:38:59 +03:00
Carmelo Messina 68de8daee6 use runner 2.310.0 2023-10-17 09:07:57 +02:00
uazoandGitHub 66251e1c0d #64 Add fdroid repo url 2023-10-16 01:33:29 +09:00
Carmelo Messina 10e2f80205 remove sudo 2023-10-15 18:16:01 +02:00
Carmelo Messina d8c90a7752 use container 2023-10-15 18:14:25 +02:00
uazoandGitHub d17ff3e614 fix fdroidserver install 2023-10-15 22:29:35 +09:00
uazoandGitHub 0c75e1ac3c Update update_fdroid_repo.yaml 2023-10-15 22:22:42 +09:00
Carmelo Messina 042af3f698 use dante for ftp tunnel 2023-10-15 15:17:38 +02:00
uazoandGitHub c7fd8636f7 Update update_fdroid_repo.yaml 2023-10-14 09:00:40 -04:00
Carmelo Messina 952707a7d8 proxy ftp.cromite.org 2023-10-14 14:43:45 +02:00
uazoandGitHub 027470dccc Update update_fdroid_repo.yaml 2023-10-14 05:21:01 -04:00
uazoandGitHub 21318d7f9b Update update_fdroid_repo.yaml 2023-10-14 05:09:15 -04:00
uazoandGitHub 791e1b1a27 Create update_fdroid_repo.yaml 2023-10-14 05:08:24 -04:00
uazoandGitHub 1e66a74a84 Merge pull request #398 from Universalizer/patch-3
Current Android OS version requirements information.
2023-10-13 18:36:08 +11:00
UniversaliserandGitHub 1a91c1d7c2 Update README.md 2023-10-12 22:37:16 +05:30
UniversaliserandGitHub c5d76b1ee1 Update README.md 2023-10-12 21:50:38 +05:30
UniversaliserandGitHub bcb5be5cef please check 2023-10-12 21:11:30 +05:30
uazoandGitHub 0a1d422610 Update build-images.yaml 2023-10-12 16:11:57 +09:00
uazoandGitHub 86ee111fd7 Update build-images.yaml 2023-10-12 16:09:07 +09:00
uazoandGitHub 379b10ec21 Update build-images.yaml 2023-10-12 15:49:18 +09:00
uazoandGitHub e7fbfb574b Try to fix runs-on default 2023-10-12 15:47:06 +09:00
Carmelo Messina 002dc9166f fix crash in offscreen canvas measureText 2023-10-11 17:15:25 +02:00
uazoandGitHub fd59efe186 Merge pull request #241 from Universalizer/patch-1
Update README.md
2023-10-11 12:46:01 +01:00
uazoandGitHub 18368c1802 #389 auto rebase to 118.0.5993.71
auto rebase to 118.0.5993.71
2023-10-11 12:01:30 +01:00
uazoandGitHub 97177ad5d3 AUTOMATED - git apply results 2023-10-11 10:53:37 +00:00
uazoandGitHub fde6776d3c Bump to 118.0.5993.71 2023-10-11 11:47:56 +01:00
Carmelo Messinaanduazo b8c5d9758e Temporarily remove support for shared workers 2023-10-11 11:46:55 +01:00
Carmelo Messinaanduazo 779a26d6e3 Remove some privacy issue from TAO api
in the future it should be possible to disable it completely
2023-10-11 11:46:55 +01:00
Carmelo Messinaanduazo 22a897813f fix position 2023-10-11 11:46:55 +01:00
Carmelo Messinaanduazo 3d7a50f482 adapt to v118 2023-10-11 11:46:55 +01:00
Carmelo Messinaanduazo 1385f9dc11 Add disable ranker_url_fetcher 2023-10-11 11:46:55 +01:00
Carmelo Messinaanduazo 36d818d646 v118 patch
fix 118 build errors
2023-10-11 11:46:55 +01:00
Carmelo Messinaanduazo 7d44fd7843 v118 patch
creation of adblock_native_gateway
2023-10-11 11:46:55 +01:00
Carmelo Messinaanduazo 642aea61ae v118 patches
moved method for changing native flag value from java due to changes in v118
2023-10-11 11:46:55 +01:00
Carmelo Messinaanduazo 6e1f921142 v118 patches 2023-10-11 11:46:55 +01:00
Carmelo Messinaanduazo 50fe823fde v118 patch
fix disabling shopping and merchant feature not completely disabled by the corresponding policy
add BlockTruncatedCookies v118 policy (https://chromeenterprise.google/policies/#BlockTruncatedCookies)
2023-10-11 11:46:55 +01:00
Carmelo Messinaanduazo 40cd52a0d5 v118 simple line change 2023-10-11 11:46:55 +01:00
Carmelo Messinaanduazo 3610ced91b bump to 118.0.5993.54 2023-10-11 11:46:55 +01:00
Carmelo Messinaanduazo 8ff7c96754 v118 patches (to check) 2023-10-11 11:46:55 +01:00
Carmelo Messinaanduazo b733ce78e3 v118 patches 2023-10-11 11:46:55 +01:00
uazoandGitHub fd9fa35ac5 remove non-useful big stuffs 2023-10-11 09:27:29 +01:00
uazoandGitHub b086743247 Update build-images.yaml 2023-10-11 08:58:43 +01:00
uazoandGitHub 643e338aad added ability to choose runner type 2023-10-11 08:54:03 +01:00
uazoandGitHub bb0807e785 Free some space on vm
Remove google-cloud-cli
2023-10-11 07:12:10 +01:00
Carmelo Messinaanduazo 51ed1abd6b fix build directories 2023-10-10 04:15:19 -11:00
Carmelo Messinaanduazo aa6b41f5b1 low priority for arm 2023-10-10 04:15:19 -11:00
Vasyl Gelloanduazo 9ab1087503 Strip whitespaces from yamls
sed -i 's/ *$//' .github/workflows/*

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-10-10 04:15:19 -11:00
Vasyl Gelloanduazo 51b6e8a7df Add arm build target
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-10-10 04:15:19 -11:00
Vasyl Gelloanduazo 658da3bb02 Rename build directory for android arm64
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-10-10 04:15:19 -11:00
Vasyl Gelloanduazo 0b44dce1f6 Rename build directory for Windows x86_64
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-10-10 04:15:19 -11:00
Vasyl Gelloanduazo 0fa437c23c Rename build directory for android-x86_64
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-10-10 04:15:19 -11:00
uazoandGitHub 95077c58c0 Update build-sysbox.yaml 2023-10-09 23:36:15 +09:00
uazoandGitHub 929c1ea117 Update build-sysbox.yaml 2023-10-09 23:22:04 +09:00
uazoandGitHub 80576fa62d Create build-sysbox.yaml 2023-10-09 23:20:32 +09:00
uazoandGitHub 6b7b3fc40c Create add-x86-x32-arch.patch 2023-10-09 23:13:16 +09:00
uazoandGitHub ebc9975235 Remove v8 submodule 2023-10-07 16:39:31 +07:00
uazoandGitHub 0cfb05b9d5 #365 auto rebase for 117.0.5938.153
Git apply result for 117.0.5938.153
2023-10-04 18:50:46 +11:00
uazoandGitHub 02a91daffc AUTOMATED - git apply results 2023-10-04 06:28:44 +00:00
Carmelo Messina bdd68757c3 Bump to 117.0.5938.153 2023-10-04 08:24:10 +02:00
uazoandGitHub 82f169f558 Update README.md 2023-09-29 13:50:43 +07:00
uazoandGitHub ff39a686aa Update feature_request.yml 2023-09-28 02:08:23 -08:00
uazoandGitHub 4a3146e133 Add "wont fix issues" checkbox 2023-09-28 02:07:43 -08:00
uazoandGitHub c051bd02cb #350 auto-rebase for 117.0.5938.140
Git apply result for 117.0.5938.140
2023-09-28 01:42:11 -08:00
uazoandGitHub 4c8ad7d37e AUTOMATED - git apply results 2023-09-28 09:38:12 +00:00
Carmelo Messina 3d26bc1338 Bump to 117.0.5938.140 2023-09-28 11:33:34 +02:00
Carmelo Messina 727a4ade45 set use_v8_context_snapshot to false 2023-09-28 11:32:12 +02:00
Carmelo Messina fc55de7e7c update patch list 2023-09-28 11:30:06 +02:00
Carmelo Messina 8d2359bbaf #301 Disable OmniboxConsumesImeInsets by default 2023-09-28 11:26:33 +02:00
Carmelo Messina afea6f394b keep disabled NewTabPageTriggerForPrerender2 2023-09-28 11:24:52 +02:00
Carmelo Messina a1e683ff15 Partition MediaDeviceId by default 2023-09-28 11:22:22 +02:00
Carmelo Messina 6e563ef689 Keep disabled FetchLaterAPI 2023-09-28 11:20:02 +02:00
Carmelo Messina ad472e23bb keep disabled download and upload service 2023-09-28 11:17:55 +02:00
Carmelo Messina d9d526fd03 Completely disable AccountConsistencyModeManagerFactory 2023-09-28 11:13:09 +02:00
uazoandGitHub 33e27c3728 Remove google-cloud-sdk
fail, see https://github.com/uazo/cromite/actions/runs/6335644225/job/17207176387#step:2:17
2023-09-27 23:14:28 -08:00
Carmelo Messina 388b2ba3d5 bump to 117.0.5938.92 2023-09-22 08:31:02 +02:00
uazoandGitHub b094061324 use ninja
autoninja broken due to https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4864898
2023-09-18 14:04:26 +06:00
uazoandGitHub 9fdf65383f Bump to 117.0.5938.89 2023-09-18 12:14:33 +06:00
uazoandGitHub 5cc9d3a247 fixed incorrect feature 2023-09-13 19:40:25 -12:00
uazoandGitHub bdca071fa1 Update README.md (v117) 2023-09-13 19:37:04 -12:00
uazoandGitHub a82eb5e799 Fix docker push 2023-09-13 23:09:52 -08:00
Carmelo Messina 579060fe51 Drop cfi support 2023-09-13 18:51:06 +02:00
uazoandGitHub 38b0ecebd9 Patches for v117
Rebase to v117
2023-09-13 04:14:53 -03:00
uazoandGitHub ba8d5ba317 Merge branch 'master' into next-v117 2023-09-13 04:14:17 -03:00
uazoandGitHub 114102c197 Auto rebase to 117.0.5938.63
Auto rebase to 117.0.5938.63
2023-09-13 04:13:49 -03:00
uazoandGitHub 13d5903179 AUTOMATED - git apply results 2023-09-13 07:11:18 +00:00
Carmelo Messina 0ee65d064b bump to 117.0.5938.63 2023-09-13 09:07:06 +02:00
uazoandGitHub 2a1b01ed2b Fix docker push 2023-09-13 04:34:52 -02:00
uazoandGitHub 761c0675bd Merge pull request #290 from uazo/create-pull-request/patch-bdf0c6a
Git apply result for next-v117 branch
2023-09-12 03:03:47 -11:00
uazoandGitHub 339db134a0 AUTOMATED - git apply results 2023-09-12 14:00:27 +00:00
Carmelo Messina bdf0c6a195 #282 #262 Enable ImprovedBookmarks by default 2023-09-12 15:57:35 +02:00
Carmelo Messina 42771130fe Changing the setting caption 2023-09-12 15:56:34 +02:00
Carmelo Messina 5b80336a7d Fix OmniboxSuggestionsDropdown offsets 2023-09-12 15:55:49 +02:00
Carmelo Messina 9e26c7ccb9 modernise the user interface 2023-09-12 15:55:03 +02:00
Carmelo Messina 39981ed610 Fix crash in android suggestion host 2023-09-12 15:54:09 +02:00
Carmelo Messina af9a0d6217 Changed the accessibility item in settings 2023-09-12 15:53:33 +02:00
Carmelo Messina a45ab18f8f #282 Fix crash with ImprovedBookmarks enabled 2023-09-12 15:49:44 +02:00
uazoandGitHub 5c83f0e201 Bump to 116.0.5845.188 2023-09-11 19:19:50 -11:00
uazoandGitHub f8c78137e9 Upload build images to docker hub 2023-09-07 20:47:38 -11:00
uazoandGitHub 4b7078789c #278 Autorebase to 117.0.5938.48
Autorebase to 117.0.5938.48
2023-09-07 20:02:24 -11:00
uazoandGitHub 00f399d8aa AUTOMATED - git apply results 2023-09-08 06:43:57 +00:00
Carmelo Messina 009240be1e Bump to 117.0.5938.48 2023-09-08 08:35:42 +02:00
uazoandGitHub 89487c4058 Use python3 2023-09-07 19:19:34 -11:00
Carmelo Messina 98f1112f65 Disable cardboard 2023-09-07 15:01:03 +02:00
uazoandGitHub 16315ef3fa Merge branch 'master' into next-v117 2023-09-07 20:12:16 +09:00
Carmelo Messina d5133f33d3 v117 final patches 2023-09-07 12:58:57 +02:00
uazoandGitHub ee26fd10e5 Automatic rebase to 116.0.5845.180
Automatic rebase to 116.0.5845.180
2023-09-06 11:54:13 +05:00
uazoandGitHub 0ec6f7f63c AUTOMATED - git apply results 2023-09-06 06:49:19 +00:00
uazoandGitHub c84b866ada Bump to 116.0.5845.180 2023-09-06 11:45:01 +05:00
Carmelo Messina 250b213a99 bump to 117.0.5938.35 2023-09-05 16:27:22 +02:00
Carmelo Messina a5b8c1f1ba v117 to be checked 2023-09-05 16:26:54 +02:00
Carmelo Messina 52b7e1c1f7 v117 patches 2023-09-05 16:26:16 +02:00
Carmelo Messina aed93b83d7 Merge branch 'master' of https://github.com/uazo/bromite 2023-09-02 10:43:01 +02:00
uazoandCarmelo Messina 30f51337c5 Use uazo/github-runner:2.308.0 2023-09-02 10:42:45 +02:00
uazoandGitHub 2e48e14ad8 Use uazo/github-runner:2.308.0 2023-09-02 18:16:56 +10:00
uazoandGitHub 1be757d064 Update bug_report.yml 2023-09-01 13:11:51 +06:00
uazoandGitHub a82c4d7f97 Update bug_report.yml 2023-09-01 13:11:20 +06:00
uazoandGitHub 3fede7c3fd Merge pull request #246 from uazo/create-pull-request/patch-7dcba72
Autorebase for "Bump to 116.0.5845.163"
2023-08-30 17:39:27 +10:00
uazoandGitHub eda9051a57 AUTOMATED - git apply results 2023-08-30 07:33:07 +00:00
Carmelo Messina 7dcba72749 Bump to 116.0.5845.163 2023-08-30 09:28:19 +02:00
UniversaliserandGitHub b19c505bf8 Update README.md
Minor correction
2023-08-29 14:12:51 +05:30
uazoandGitHub bf086af7df #214 Publish ChromePublic.apk.mapping 2023-08-25 04:48:30 -11:00
Carmelo Messina 7c985a4aeb #213 Fix null reference 2023-08-24 17:50:46 +02:00
Carmelo Messina 22fa08f7c5 #215 Do not compile libmonochrome.so with RELR relocations since supported only on API 28+ 2023-08-24 17:34:50 +02:00
2639 changed files with 595134 additions and 188347 deletions
+5
View File
@@ -0,0 +1,5 @@
[*.{yaml,sh,gn_args}]
tab_width = 2
indent_size = 2
end_of_line = crlf
indent_style = space
+1
View File
@@ -0,0 +1 @@
*.zip binary
-4
View File
@@ -1,4 +0,0 @@
# These are supported funding model platforms
liberapay: csagan5
custom: https://www.bromite.org/#donate
+50 -22
View File
@@ -46,6 +46,21 @@ body:
validations: validations:
required: true 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 - type: input
id: cromite_version id: cromite_version
attributes: attributes:
@@ -66,47 +81,59 @@ body:
- armeabi-v7a - armeabi-v7a
- x86 - x86
- x64 - x64
- windows
- all
validations: validations:
required: true required: true
- type: dropdown - type: dropdown
id: android_version id: platform_version
attributes: attributes:
label: Android version label: Platform version
multiple: false multiple: false
description: What version of Android are you running? description: What version of Android are you running?
options: options:
- 14 - Android 14
- 13 - Android 13
- 12.1 - Android 12.1
- 12.0 - Android 12.0
- 11 - Android 11
- 10 - Android 10
- 9 - Android 9
- 8.1 - Android 8.1
- 8.0 - Android 8.0
- 7.1 - Android 7.1
- 7.0 - Android 7.0
- 6 - Android Emulator
- 5.1 - Windows 10
- 5.0 - Windows 11
- 4.4 - I prefer not to write it/No matter
- 4.3
- 4.2
- 4.1
- 4.0
validations: validations:
required: true required: true
- type: input - type: input
id: device_model id: device_model
attributes: 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. 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.) placeholder: (e.g. `OnePlus 8 (IN2010)`, or `SM-G960UZKABST`, etc.)
validations: validations:
required: true 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 - type: textarea
id: changed_flags id: changed_flags
attributes: attributes:
@@ -128,6 +155,7 @@ body:
options: options:
- "Yes" - "Yes"
- "No" - "No"
- "Always Incognito Mode"
validations: validations:
required: true required: true
@@ -28,6 +28,8 @@ body:
required: true 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." - 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 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." - label: "This is a feature request for the Cromite browser; not the website nor F-Droid nor anything else."
required: true required: true
@@ -38,6 +40,7 @@ body:
description: Features that are not related to privacy are not considered. description: Features that are not related to privacy are not considered.
multiple: false multiple: false
options: options:
- "<please select>"
- "Yes" - "Yes"
- "No" - "No"
validations: validations:
+122 -37
View File
@@ -9,7 +9,7 @@ permissions:
repository-projects: none repository-projects: none
security-events: none security-events: none
statuses: none statuses: none
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
@@ -17,29 +17,46 @@ on:
description: 'chromium version' description: 'chromium version'
required: false required: false
default: '' default: ''
schedule: type:
description: 'runner?'
required: false
default: 'ubuntu-latest'
schedule:
- cron: '0 1 * * *' - cron: '0 1 * * *'
env: env:
VERSION: ${{ github.event.inputs.version }} CHR_VERSION: ${{ github.event.inputs.version }}
NEW_VERSION: ${{ null }} NEW_VERSION: ${{ null }}
name: Builds and pushes tagged image to DockerHub name: Builds and pushes tagged image to DockerHub
jobs: jobs:
generate_build_deps: generate_build_deps:
name: 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: steps:
- name: Reclaiming disk space on / by removing dotnet/android/ghc - name: Reclaiming disk space on / by removing dotnet/android/ghc
#if: ${{ github.event.inputs.type == '' }}
run: | run: |
sudo rm -rf /usr/share/dotnet test -d /usr/share/dotnet && sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android test -d /usr/local/lib/android && sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc test -d /opt/ghc && sudo rm -rf /opt/ghc
sudo apt-get remove google-cloud-sdk azure-cli google-chrome-stable \ 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 \ firefox mysql-server-core-8.0 mono-devel podman \
powershell powershell || true
sudo apt-get autoremove 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 - name: Checkout repo
uses: actions/checkout@v2 uses: actions/checkout@v2
with: with:
@@ -51,52 +68,107 @@ jobs:
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Check versions - name: Check versions
shell: bash shell: bash
run: | run: |
if [ -z $VERSION ]; then if [ -z $CHR_VERSION ]; then
VERSION=$(curl -s https://omahaproxy.appspot.com/all.json | jq '.[] | select(.os | contains("win64")) | .versions[] | select(.channel | contains("stable")) | .current_version' | xargs) 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)
echo "VERSION=$VERSION" >> $GITHUB_ENV 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 fi
- name: Building build-deps container ${{ env.VERSION }} - name: Building build-deps container ${{ env.VERSION }}
shell: bash shell: bash
run: | 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 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 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 \ --progress plain \
--build-arg VERSION=$VERSION \ --build-arg VERSION=$CHR_VERSION \
--build-arg HTTP_PROXY="$PROXY_ADDR" \ --build-arg HTTP_PROXY="$PROXY_ADDR" \
--no-cache \ --no-cache \
cromite/tools/images/build-deps/. cromite/tools/images/build-deps/.
docker push uazo/build-deps:$VERSION docker push uazo/build-deps:$CHR_VERSION
echo "NEW_VERSION=$VERSION" >> $GITHUB_ENV echo "NEW_VERSION=$CHR_VERSION" >> $GITHUB_ENV
fi fi
fi fi
- name: Building chromium container ${{ env.VERSION }} - name: Building chromium container ${{ env.VERSION }}
shell: bash shell: bash
run: | 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 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 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 \ --progress plain \
--build-arg VERSION=$VERSION \ --build-arg VERSION=$CHR_VERSION \
--build-arg HTTP_PROXY="$PROXY_ADDR" \ --build-arg HTTP_PROXY="$PROXY_ADDR" \
cromite/tools/images/chr-source/. cromite/tools/images/chr-source/.
docker push uazo/chromium:$VERSION docker push uazo/chromium:$CHR_VERSION
echo "NEW_VERSION=$VERSION" >> $GITHUB_ENV echo "NEW_VERSION=$CHR_VERSION" >> $GITHUB_ENV
fi fi
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 }} - name: Create issue ${{ env.VERSION }}
if: "${{ env.NEW_VERSION != '' }}" if: "${{ env.NEW_VERSION != '' }}"
shell: bash shell: bash
@@ -104,10 +176,23 @@ jobs:
GH=../../gh_2.18.1_linux_amd64/bin/gh 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 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 tar xfz gh_2.18.1_linux_amd64.tar.gz
cd cromite/tools cd cromite/tools
echo ${{ secrets.GITHUB_TOKEN }} | $GH auth login --with-token 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
+46
View File
@@ -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
+202 -127
View File
@@ -10,7 +10,7 @@ permissions:
repository-projects: none repository-projects: none
security-events: none security-events: none
statuses: none statuses: none
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
@@ -19,11 +19,11 @@ on:
required: true required: true
default: '' default: ''
target_os: target_os:
description: 'targetos [android/win/all]' description: 'targetos [android/win/linux/all]'
required: true required: true
default: 'all' default: 'all'
build: build:
description: 'android arch [arm64/x64/all]' description: 'android arch [arm/arm64/x64/all]'
required: true required: true
default: 'all' default: 'all'
type: type:
@@ -38,9 +38,9 @@ on:
description: 'clangd? [true/false]' description: 'clangd? [true/false]'
required: true required: true
default: 'false' default: 'false'
env: env:
BROMITE_SHA: ${{ github.event.inputs.sha }} CROMITE_SHA: ${{ github.event.inputs.sha }}
REMOVEDOCKERSUPPORT: true REMOVEDOCKERSUPPORT: true
USELOCALIMAGE: true USELOCALIMAGE: true
@@ -67,15 +67,14 @@ jobs:
- name: Get current chromium version - name: Get current chromium version
shell: bash shell: bash
run: | run: |
export VERSION=$( cat ./cromite/build/RELEASE ) export VERSION=$( cat ./cromite/build/RELEASE )
rm -rf bromite
echo Current version is $VERSION echo Current version is $VERSION
echo "VERSION=$VERSION" >> $GITHUB_ENV echo "VERSION=$VERSION" >> $GITHUB_ENV
cd cromite/tools cd cromite/tools
- name: Building build-deps container ${{ env.VERSION }} - name: Building build-deps container ${{ env.VERSION }}
shell: bash shell: bash
run: | run: |
@@ -91,7 +90,7 @@ jobs:
cromite/tools/images/build-deps/. cromite/tools/images/build-deps/.
fi fi
fi fi
- name: Building chromium container ${{ env.VERSION }} - name: Building chromium container ${{ env.VERSION }}
shell: bash shell: bash
run: | run: |
@@ -107,37 +106,45 @@ jobs:
fi fi
fi fi
- name: Building cromite container ${{ env.VERSION }}-${{ env.BROMITE_SHA }} - name: Building cromite container ${{ env.VERSION }}-${{ env.CROMITE_SHA }}
shell: bash shell: bash
run: | 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 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 if [ $IS_PRESENT -ne "0" ]; then
DOCKER_BUILDKIT=1 docker build -t uazo/cromite:$VERSION-$BROMITE_SHA --progress plain \ DOCKER_BUILDKIT=1 docker build -t uazo/cromite:$VERSION-$CROMITE_SHA --progress plain \
--build-arg BROMITE_SHA=$BROMITE_SHA \ --build-arg CROMITE_SHA=$CROMITE_SHA \
--build-arg VERSION=$VERSION \ --build-arg VERSION=$VERSION \
--build-arg HTTP_PROXY="$PROXY_ADDR" \ --build-arg HTTP_PROXY="$PROXY_ADDR" \
cromite/tools/images/bromite-source/. cromite/tools/images/cromite-source/.
fi fi
fi fi
- name: Building cromite-build container ${{ env.VERSION }}-${{ env.BROMITE_SHA }} - name: Building cromite-build container ${{ env.VERSION }}-${{ env.CROMITE_SHA }}
shell: bash shell: bash
run: | 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 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 if [ $IS_PRESENT -ne "0" ]; then
DOCKER_BUILDKIT=1 docker build -t uazo/cromite-build:$VERSION-$BROMITE_SHA --progress plain \ DOCKER_BUILDKIT=1 docker build -t uazo/cromite-build:$VERSION-$CROMITE_SHA --progress plain \
--build-arg BROMITE_SHA=$BROMITE_SHA \ --build-arg CROMITE_SHA=$CROMITE_SHA \
--build-arg VERSION=$VERSION \ --build-arg VERSION=$VERSION \
--build-arg HTTP_PROXY="$PROXY_ADDR" \ --build-arg HTTP_PROXY="$PROXY_ADDR" \
--no-cache \ --no-cache \
cromite/tools/images/bromite-build/. cromite/tools/images/cromite-build/.
fi fi
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 - name: Mark image to build
shell: bash shell: bash
run: | run: |
@@ -145,14 +152,14 @@ jobs:
if [ $IS_PRESENT -eq "0" ]; then if [ $IS_PRESENT -eq "0" ]; then
docker rmi uazo/cromite-build:build docker rmi uazo/cromite-build:build
fi 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: build:
runs-on: ${{ github.event.inputs.type }} runs-on: ${{ github.event.inputs.type }}
needs: check_images needs: check_images
if: success() if: success()
timeout-minutes: 1200 timeout-minutes: 1440
container: container:
image: uazo/cromite-build:build image: uazo/cromite-build:build
env: env:
@@ -163,25 +170,27 @@ jobs:
# kythe # kythe
KYTHE_CORPUS: chromium.googlesource.com/chromium/src KYTHE_CORPUS: chromium.googlesource.com/chromium/src
KYTHE_ROOT_DIRECTORY: /home/lg/working_dir/chromium/src KYTHE_ROOT_DIRECTORY: /home/lg/working_dir/chromium/src
KYTHE_OUTPUT_DIRECTORY: /home/lg/working_dir/chromium/src/out/bromite/kythe KYTHE_OUTPUT_DIRECTORY: /home/lg/working_dir/chromium/src/out/arm64/kythe
# cross build # cross build
DEPOT_TOOLS_WIN_TOOLCHAIN_BASE_URL: /win_sdk/10.0.22621.0/ DEPOT_TOOLS_WIN_TOOLCHAIN_BASE_URL: /win_sdk/10.0.22621.0/
WINDOWSSDKDIR: "/win_sdk/10.0.22621.0/Windows Kits/10/" WINDOWSSDKDIR: "/win_sdk/10.0.22621.0/Windows Kits/10/"
GYP_MSVS_OVERRIDE_PATH: /win_sdk/10.0.22621.0/ GYP_MSVS_OVERRIDE_PATH: /win_sdk/10.0.22621.0/
# compile in debug mode # compile in debug mode
TARGET_ISDEBUG: ${{ github.event.inputs.debug }} TARGET_ISDEBUG: ${{ github.event.inputs.debug }}
TARGET_OS: ${{ github.event.inputs.target_os }} TARGET_OS: ${{ github.event.inputs.target_os }}
USE_KEYSTORE: true USE_KEYSTORE: true
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
CROMITE_PREF_HASH_SEED_BIN: ${{ secrets.CROMITE_PREF_HASH_SEED_BIN }} CROMITE_PREF_HASH_SEED_BIN: ${{ secrets.CROMITE_PREF_HASH_SEED_BIN }}
volumes: 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 }}/arm:/home/lg/working_dir/chromium/src/out/arm
- /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 }}/android/${{ github.event.inputs.debug }}/arm64:/home/lg/working_dir/chromium/src/out/arm64
- /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 }}/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 - /tmp/proxy:/tmp/proxy
- /win_sdk:/win_sdk - /win_sdk:/win_sdk
steps: steps:
- name: Prepare Build Container - name: Prepare Build Container
shell: bash shell: bash
run: | run: |
@@ -194,19 +203,27 @@ jobs:
HTTPS_PROXY= HTTPS_PROXY=
http_proxy= http_proxy=
https_proxy= https_proxy=
# set out folder permissions # 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 &&
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 &&
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 &&
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 # make kythe output directory
test -d $KYTHE_OUTPUT_DIRECTORY || mkdir -p $KYTHE_OUTPUT_DIRECTORY test -d $KYTHE_OUTPUT_DIRECTORY || mkdir -p $KYTHE_OUTPUT_DIRECTORY
@@ -222,64 +239,8 @@ jobs:
echo "${{ secrets.KEYSTORE }}" > cromite.keystore.asc echo "${{ secrets.KEYSTORE }}" > cromite.keystore.asc
gpg --homedir ./ -d --passphrase "${{ secrets.KEYSTORE_PASSPHRASE }}" --batch cromite.keystore.asc > cromite.keystore gpg --homedir ./ -d --passphrase "${{ secrets.KEYSTORE_PASSPHRASE }}" --batch cromite.keystore.asc > cromite.keystore
echo "::endgroup::" echo "::endgroup::"
- 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" - name: Build Cromite Android x64
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
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'x64' || github.event.inputs.build == 'all') }} if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'x64' || github.event.inputs.build == 'all') }}
shell: bash shell: bash
run: | run: |
@@ -287,64 +248,178 @@ jobs:
cd $WORKSPACE/chromium/src cd $WORKSPACE/chromium/src
echo "::group::-------- gn gen" 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 "::endgroup::"
echo "::group::-------- gn args" echo "::group::-------- gn args"
gn args out/bromite_x64/ --list --short gn args out/x64/ --list --short
gn args out/bromite_x64/ --list >out/bromite_x64/gn_list gn args out/x64/ --list >out/x64/gn_list
echo "::endgroup::" 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 - 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') }} if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'x64' || github.event.inputs.build == 'all') }}
shell: bash shell: bash
run: | run: |
cd $WORKSPACE cd $WORKSPACE
$WORKSPACE/ninjatracing/ninjatracing $WORKSPACE/chromium/src/out/bromite_x64/.ninja_log >$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/bromite_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: Build Cromite Windows x64
- name: Generate breakpad symbols arm64 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') }} 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 shell: bash
run: | run: |
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
cd $WORKSPACE/chromium/src cd $WORKSPACE/chromium/src
echo "::group::-------- generating breakpad symbols" echo "::group::-------- gn gen"
autoninja -C out/bromite minidump_stackwalk dump_syms gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"arm64\" " out/arm64
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 "::endgroup::" 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') }} 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 shell: bash
run: | run: |
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
cd $WORKSPACE/chromium/src cd $WORKSPACE/chromium/src
tools/binary_size/supersize archive out/bromite/chrome.size --apk-file out/bromite/apks/ChromePublic.apk -v tools/binary_size/supersize archive out/arm64/chrome.size --apk-file out/arm64/apks/ChromePublic.apk -v
- name: Generate clangd index - 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' }} if: ${{ github.event.inputs.clangd == 'true' }}
shell: bash shell: bash
run: | run: |
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
cd $WORKSPACE/chromium/src cd $WORKSPACE/chromium/src
test -f out/bromite/bromite.idx || \ test -f out/arm64/cromite.idx || \
cp -r out/bromite out/clangd && \ cp -r out/arm64 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 && \ gn gen --args="import(\"/home/lg/working_dir/cromite/build/cromite.gn_args\") $(cat ../../build_args.gni) skip_clangd_unsupported_options = true" out/clangd && \
$WORKSPACE/ninja/ninja -C $WORKSPACE/chromium/src/out/clangd -a chrome_public_apk \ $WORKSPACE/ninja/ninja -C $WORKSPACE/chromium/src/out/clangd -a chrome_public_apk \
-t compdb cc cxx objc objcxx >$WORKSPACE/chromium/src/out/clangd/compile_commands.json && \ -t compdb cc cxx objc objcxx >$WORKSPACE/chromium/src/out/clangd/compile_commands.json && \
/home/lg/working_dir/clangd_snapshot_20211205/bin/clangd-indexer --executor=all-TUs out/clangd/compile_commands.json >out/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 rm -rf out/clangd
+20 -21
View File
@@ -10,14 +10,14 @@ permissions:
# repository-projects: none # repository-projects: none
# security-events: none # security-events: none
# statuses: none # statuses: none
on: on:
push: push:
branches-ignore: branches-ignore:
- 'ci' - 'ci'
paths: paths:
- 'build/**' - 'build/**'
workflow_dispatch: workflow_dispatch:
inputs: inputs:
rtag: rtag:
@@ -26,29 +26,29 @@ on:
default: '' default: ''
env: env:
RTAG: ${{ github.event.inputs.rtag }} RTAG: ${{ github.event.inputs.rtag }}
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: "Get value from dispatch" - name: "Get value from dispatch"
run: | run: |
if [ -z "${RTAG}" ]; then if [ -z "${RTAG}" ]; then
echo "RTAG=$GITHUB_SHA" >> $GITHUB_ENV echo "RTAG=$GITHUB_SHA" >> $GITHUB_ENV
echo "RTAG=$RTAG" echo "RTAG=$RTAG"
fi fi
- name: Prepare container - name: Prepare container
run: | run: |
sudo apt update sudo apt update
sudo apt install -y wget unzip tar sed dos2unix patchutils wiggle curl sudo apt install -y wget unzip tar sed dos2unix patchutils wiggle curl
wget https://github.com/uazo/superpatch/releases/latest/download/SuperPatchUtils.tar.gz wget https://github.com/uazo/superpatch/releases/latest/download/SuperPatchUtils.tar.gz
tar xfz SuperPatchUtils.tar.gz tar xfz SuperPatchUtils.tar.gz
rm 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 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 unzip pup_v0.4.0_linux_amd64.zip
rm 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 commit -m $VERSION
git tag -a $VERSION -m $VERSION git tag -a $VERSION -m $VERSION
git add -f v8 git add -f v8 && git commit -m ":NOEXPORT: v8" || true
git commit -m ":NOEXPORT: v8"
- name: Apply patches ${{ github.event.inputs.rtag }} - name: Apply patches ${{ github.event.inputs.rtag }}
run: | run: |
export HOME=$GITHUB_WORKSPACE export HOME=$GITHUB_WORKSPACE
cd ~/chromium/src cd ~/chromium/src
export SILENT=true export SILENT=true
export SKIPAUTOGENERATED=true export SKIPAUTOGENERATED=true
bash ~/cromite/tools/apply-all-patch.sh || exit 1 bash ~/cromite/tools/apply-all-patch.sh || exit 1
rm -rf ~/cromite/build/patches-new/ 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 - name: Export patches
run: | run: |
export HOME=$GITHUB_WORKSPACE export HOME=$GITHUB_WORKSPACE
cd ~/chromium/src cd ~/chromium/src
bash ~/cromite/tools/export-all-patch.sh bash ~/cromite/tools/export-all-patch.sh
cd ~/cromite cd ~/cromite
rm -rf build/patches/* rm -rf build/patches/*
mv build/patches-new/* build/patches mv build/patches-new/* build/patches
rm -rf build/patches-new/ rm -rf build/patches-new/
- name: Check differences CHANGES=${{ env.CHANGES }} - name: Check differences CHANGES=${{ env.CHANGES }}
run: | run: |
export HOME=$GITHUB_WORKSPACE export HOME=$GITHUB_WORKSPACE
cd ~/cromite cd ~/cromite
CHANGES=0 && git diff --quiet || CHANGES=1 CHANGES=0 && git diff --quiet || CHANGES=1
echo "CHANGES=$CHANGES" >> $GITHUB_ENV echo "CHANGES=$CHANGES" >> $GITHUB_ENV
if [[ CHANGES -eq 1 ]]; then if [[ CHANGES -eq 1 ]]; then
git add build/patches/*.patch git add build/patches/*.patch
git diff --name-only --staged git diff --name-only --staged
# MESSAGE=$(git diff --name-only --staged) # MESSAGE=$(git diff --name-only --staged)
# echo "MESSAGE='$MESSAGE'" >> $GITHUB_ENV # echo "MESSAGE='$MESSAGE'" >> $GITHUB_ENV
fi fi
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@dcd5fd746d53dd8de555c0f10bca6c35628be47a #v3.12.0 uses: peter-evans/create-pull-request@dcd5fd746d53dd8de555c0f10bca6c35628be47a #v3.12.0
if: env.CHANGES == '1' if: env.CHANGES == '1'
+71
View File
@@ -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
+12 -12
View File
@@ -10,7 +10,7 @@ permissions:
repository-projects: none repository-projects: none
security-events: none security-events: none
statuses: none statuses: none
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
@@ -18,7 +18,7 @@ on:
description: 'uazo/bromite SHA' description: 'uazo/bromite SHA'
required: true required: true
default: 'ce2f07034a3d3b257e9bada65d8293a6786bb95f' default: 'ce2f07034a3d3b257e9bada65d8293a6786bb95f'
env: env:
BROMITE_SHA: ${{ github.event.inputs.sha }} BROMITE_SHA: ${{ github.event.inputs.sha }}
REMOVEDOCKERSUPPORT: true REMOVEDOCKERSUPPORT: true
@@ -32,12 +32,12 @@ jobs:
shell: bash shell: bash
run: | run: |
docker tag uazo/bromite-build:$BROMITE_SHA uazo/bromite-build:test docker tag uazo/bromite-build:$BROMITE_SHA uazo/bromite-build:test
exec-test: exec-test:
runs-on: self-hosted runs-on: self-hosted
needs: get_image needs: get_image
if: success() if: success()
container: container:
image: uazo/bromite-build:test image: uazo/bromite-build:test
env: 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:/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 - /storage/images/${{ github.event.inputs.sha }}/out/tests:/home/lg/working_dir/chromium/src/out/tests
options: --device=/dev/kvm options: --device=/dev/kvm
steps: steps:
- name: Prepare Test Container - name: Prepare Test Container
shell: bash shell: bash
run: | run: |
# set workspace paths # 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 PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
cd $WORKSPACE cd $WORKSPACE
# copy artifacts # copy artifacts
#cd chromium/src #cd chromium/src
#mkdir -p out/bromite #mkdir -p out/bromite
#cp -arp $ARTIFACS_DIR/out/* out/bromite #cp -arp $ARTIFACS_DIR/out/* out/bromite
rm -rf out/tests/* rm -rf out/tests/*
#mkdir -p out/tests #mkdir -p out/tests
# reset proxy env # reset proxy env
#HTTP_PROXY= #HTTP_PROXY=
#HTTPS_PROXY= #HTTPS_PROXY=
@@ -77,7 +77,7 @@ jobs:
# shell: bash # shell: bash
# run: | # run: |
# sleep infinity # sleep infinity
- name: Execute chrome junit test - name: Execute chrome junit test
shell: bash shell: bash
run: | run: |
@@ -95,7 +95,7 @@ jobs:
sudo chmod 666 /github/home/.android/ sudo chmod 666 /github/home/.android/
tools/android/avd/avd.py install --avd-config ../../generic_android31.textpb -v tools/android/avd/avd.py install --avd-config ../../generic_android31.textpb -v
tools/android/avd/avd.py start --avd-config ../../generic_android31.textpb -v tools/android/avd/avd.py start --avd-config ../../generic_android31.textpb -v
- name: Execute unit tests - name: Execute unit tests
shell: bash shell: bash
run: | run: |
@@ -110,7 +110,7 @@ jobs:
cd $WORKSPACE/chromium/src cd $WORKSPACE/chromium/src
pkill -f qemu-system-x86 pkill -f qemu-system-x86
tools/android/avd/avd.py start --avd-config ../../generic_android31.textpb -v tools/android/avd/avd.py start --avd-config ../../generic_android31.textpb -v
- name: Execute instrumentation tests - name: Execute instrumentation tests
shell: bash shell: bash
run: | run: |
+116 -52
View File
@@ -1,7 +1,7 @@
name: Release Cromite CI name: Release Cromite CI
permissions: permissions:
contents: write contents: write
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
@@ -13,25 +13,39 @@ on:
description: 'runner? [dev/ci]' description: 'runner? [dev/ci]'
required: true required: true
default: 'ci' default: 'ci'
draft:
description: 'draft? [true/false]'
required: true
default: 'false'
env: env:
BROMITE_SHA: ${{ github.event.inputs.sha }} CROMITE_SHA: ${{ github.event.inputs.sha }}
REMOVEDOCKERSUPPORT: true REMOVEDOCKERSUPPORT: true
USELOCALIMAGE: true USELOCALIMAGE: true
jobs: jobs:
release: release:
runs-on: ${{ github.event.inputs.type }} runs-on: ${{ github.event.inputs.type }}
env: 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_ARM64: /storage/images/${{ github.event.inputs.sha }}/android/false/arm64/
OUTPUTFILE_X64: /storage/images/${{ github.event.inputs.sha }}/android/false/x64/ OUTPUTFILE_X64: /storage/images/${{ github.event.inputs.sha }}/android/false/x64/
OUTPUTFILE_WIN: /storage/images/${{ github.event.inputs.sha }}/win/x64/
OUTPUTFILE_LIN: /storage/images/${{ github.event.inputs.sha }}/linux/false/lin64/
steps: steps:
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Prepare container - name: Prepare container
run: | run: |
wget https://github.com/ericchiang/pup/releases/download/v0.4.0/pup_v0.4.0_linux_amd64.zip 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 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 echo "BRANCH=$BRANCH" >> $GITHUB_ENV
wget https://github.com/cli/cli/releases/download/v2.18.1/gh_2.18.1_linux_amd64.tar.gz 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' repository: 'uazo/cromite'
path: 'cromite' path: 'cromite'
fetch-depth: 1 fetch-depth: 1
- name: Create release - name: Create release
shell: bash shell: bash
run: | run: |
WINOUT=/storage/images/$BROMITE_SHA/win/x64/
VERSION=v$(cat ${{ env.OUTPUTFILE_ARM64 }}/RELEASE) VERSION=v$(cat ${{ env.OUTPUTFILE_ARM64 }}/RELEASE)
cd cromite/tools cd cromite/tools
@@ -55,7 +68,7 @@ jobs:
GH=gh_2.21.1_linux_amd64/bin/gh 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 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 tar xfz gh_2.21.1_linux_amd64.tar.gz
echo ${{ secrets.GITHUB_TOKEN }} | $GH auth login --with-token echo ${{ secrets.GITHUB_TOKEN }} | $GH auth login --with-token
echo "\`\`\`" >note echo "\`\`\`" >note
@@ -63,14 +76,22 @@ jobs:
# echo "you can try it at your own risk." >>note # echo "you can try it at your own risk." >>note
echo "\`\`\`" >>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 # android arm64
echo "::group::-------- android arm64" echo "::group::-------- android arm64"
sudo cp ${{ env.OUTPUTFILE_ARM64 }}/apks/ChromePublic.apk arm64_ChromePublic.apk sudo cp ${{ env.OUTPUTFILE_ARM64 }}/apks/ChromePublic.apk arm64_ChromePublic.apk
sudo chown runner arm64_ChromePublic.apk sudo chown runner arm64_ChromePublic.apk
echo Uploading arm64_ChromePublic echo Uploading arm64_ChromePublic
$GH release upload $VERSION-$BROMITE_SHA arm64_ChromePublic.apk $GH release upload $VERSION-$CROMITE_SHA arm64_ChromePublic.apk
echo "::endgroup::" echo "::endgroup::"
# android x64 # android x64
@@ -78,71 +99,114 @@ jobs:
sudo cp ${{ env.OUTPUTFILE_X64 }}/apks/ChromePublic.apk x64_ChromePublic.apk sudo cp ${{ env.OUTPUTFILE_X64 }}/apks/ChromePublic.apk x64_ChromePublic.apk
sudo chown runner x64_ChromePublic.apk sudo chown runner x64_ChromePublic.apk
echo Uploading x64_ChromePublic 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 "::endgroup::"
echo "::group::-------- chrome.size" echo "::group::-------- chrome.size"
test $VERSION-$BROMITE_SHA $OUTPUTFILE_ARM64/chrome.size && \ test $VERSION-$CROMITE_SHA $OUTPUTFILE_ARM64/chrome.size && \
$GH release upload $VERSION-$BROMITE_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 "::endgroup::"
echo "::group::-------- Uploading arm64_ninja_log_trace.html" echo "::group::-------- Uploading arm64_ninja_log_trace.html"
test $OUTPUTFILE_ARM64/ninja_log_trace.html && \ test $OUTPUTFILE_ARM64/ninja_log_trace.html && \
cp $OUTPUTFILE_ARM64/ninja_log_trace.html 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 "::endgroup::"
echo "::group::-------- windows" # windows x64
echo "::group::-------- windows x64"
mkdir chrome-win/ mkdir chrome-win/
cp $WINOUT/*.manifest chrome-win/ cp $OUTPUTFILE_WIN/*.manifest chrome-win/
cp $WINOUT/chrome.dll chrome-win/ cp $OUTPUTFILE_WIN/chrome.dll chrome-win/
cp $WINOUT/chrome.exe chrome-win/ cp $OUTPUTFILE_WIN/chrome.exe chrome-win/
cp $WINOUT/chrome_100_percent.pak chrome-win/ cp $OUTPUTFILE_WIN/chrome_100_percent.pak chrome-win/
cp $WINOUT/chrome_200_percent.pak chrome-win/ cp $OUTPUTFILE_WIN/chrome_200_percent.pak chrome-win/
cp $WINOUT/chrome_elf.dll chrome-win/ cp $OUTPUTFILE_WIN/chrome_elf.dll chrome-win/
cp $WINOUT/chrome_proxy.exe chrome-win/ cp $OUTPUTFILE_WIN/chrome_proxy.exe chrome-win/
cp $WINOUT/chrome_pwa_launcher.exe chrome-win/ cp $OUTPUTFILE_WIN/chrome_pwa_launcher.exe chrome-win/
cp $WINOUT/chrome_wer.dll chrome-win/ cp $OUTPUTFILE_WIN/chrome_wer.dll chrome-win/
cp "/win_sdk/10.0.22621.0/Windows Kits/10/Redist/D3D/x64/d3dcompiler_47.dll" chrome-win/ cp "/win_sdk/10.0.22621.0/Windows Kits/10/Redist/D3D/x64/d3dcompiler_47.dll" chrome-win/
cp $WINOUT/elevation_service.exe chrome-win/ cp $OUTPUTFILE_WIN/elevation_service.exe chrome-win/
cp "$WINOUT/First Run" chrome-win/ cp "$OUTPUTFILE_WIN/First Run" chrome-win/
cp $WINOUT/headless_lib_data.pak chrome-win/ cp $OUTPUTFILE_WIN/headless_lib_data.pak chrome-win/
cp $WINOUT/icudtl.dat chrome-win/ cp $OUTPUTFILE_WIN/icudtl.dat chrome-win/
cp $WINOUT/libEGL.dll chrome-win/ cp $OUTPUTFILE_WIN/libEGL.dll chrome-win/
cp $WINOUT/libGLESv2.dll chrome-win/ cp $OUTPUTFILE_WIN/libGLESv2.dll chrome-win/
cp $WINOUT/Logo.png chrome-win/ cp $OUTPUTFILE_WIN/Logo.png chrome-win/
cp $WINOUT/mojo_core.dll chrome-win/ cp $OUTPUTFILE_WIN/mojo_core.dll chrome-win/
cp $WINOUT/notification_helper.exe chrome-win/ cp $OUTPUTFILE_WIN/notification_helper.exe chrome-win/
cp $WINOUT/resources.pak chrome-win/ cp $OUTPUTFILE_WIN/resources.pak chrome-win/
cp $WINOUT/SmallLogo.png chrome-win/ cp $OUTPUTFILE_WIN/SmallLogo.png chrome-win/
cp $WINOUT/snapshot_blob.bin chrome-win/ cp $OUTPUTFILE_WIN/snapshot_blob.bin chrome-win/
cp $WINOUT/VkICD_mock_icd.dll chrome-win/ cp $OUTPUTFILE_WIN/VkICD_mock_icd.dll chrome-win/
cp $WINOUT/VkLayer_khronos_validation.dll chrome-win/ cp $OUTPUTFILE_WIN/VkLayer_khronos_validation.dll chrome-win/
cp $WINOUT/vk_swiftshader.dll chrome-win/ cp $OUTPUTFILE_WIN/vk_swiftshader.dll chrome-win/
cp $WINOUT/vulkan-1.dll chrome-win/ cp $OUTPUTFILE_WIN/vulkan-1.dll chrome-win/
cp -r $WINOUT/locales chrome-win/locales cp -r $OUTPUTFILE_WIN/locales chrome-win/locales
#test chrome-win.zip && rm chrome-win.zip #test chrome-win.zip && rm chrome-win.zip
zip -r chrome-win.zip chrome-win/ zip -r chrome-win.zip chrome-win/
echo Uploading chrome-win.zip 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::" 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" echo "::group::-------- arm64 symbols"
zip arm64_symbols.zip ${{ env.OUTPUTFILE_ARM64 }}/dump_syms \ zip arm64_symbols.zip ${{ env.OUTPUTFILE_ARM64 }}/dump_syms \
${{ env.OUTPUTFILE_ARM64 }}/minidump_stackwalk \ ${{ env.OUTPUTFILE_ARM64 }}/minidump_stackwalk \
${{ env.OUTPUTFILE_ARM64 }}/libchrome.so ${{ 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::" echo "::endgroup::"
# workaround for https://github.com/cli/cli/issues/6599 # workaround for https://github.com/cli/cli/issues/6599
sleep 30s sleep 30s
TIMESTAMP=$(date +%s -r chrome-win.zip) 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" 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-$BROMITE_SHA updateurl.txt $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
+2 -2
View File
@@ -5,7 +5,7 @@ on:
- cron: '30 1 * * *' - cron: '30 1 * * *'
workflow_dispatch: workflow_dispatch:
permissions: permissions:
issues: write issues: write
pull-requests: write pull-requests: write
@@ -17,7 +17,7 @@ jobs:
- uses: actions/stale@v6 - uses: actions/stale@v6
with: with:
exempt-all-milestones: true exempt-all-milestones: true
any-of-labels: 'awaiting info' any-of-labels: 'awaiting info,wontfix'
days-before-stale: 5 days-before-stale: 5
days-before-close: 7 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." 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."
+82
View File
@@ -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
+66
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
-91
View File
@@ -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
+26 -248
View File
@@ -12,15 +12,9 @@
</a> </a>
<br> <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 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. 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.
For the Frequently Asked Questions see [F.A.Q.](./FAQ.md).
For documentation see the [wiki](https://github.com/bromite/bromite/wiki).
# Goals # 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. 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 # 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. 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. 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 # Releases
All built versions are available as [releases](https://github.com/uazo/cromite/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). 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 ### Auto-update setup for windows
@@ -262,7 +63,7 @@ ChromiumUpdateUrl=https://github.com/uazo/cromite/releases/latest/download/updat
# Command line for Chromium (string): # Command line for Chromium (string):
# note --user-data-dir= works better if path is absolute # note --user-data-dir= works better if path is absolute
# See here: http://peter.sh/experiments/chromium-command-line-switches/ # See here: http://peter.sh/experiments/chromium-command-line-switches/
ChromiumCommandLine=--user-data-dir=".\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) # to enable full logging in c:\temp\log.txt (daily rotate, no automatic deletion)
# ChromiumCommandLine=--enable-logging --v=0 --log-file=C:\temp\log.txt --user-data-dir=".\User Data" --no-default-browser-check # ChromiumCommandLine=--enable-logging --v=0 --log-file=C:\temp\log.txt --user-data-dir=".\User Data" --no-default-browser-check
@@ -274,6 +75,7 @@ ChromiumBinary=chrome.exe
# Relative (to chrlauncher directory) or full path (env. variables supported). # Relative (to chrlauncher directory) or full path (env. variables supported).
ChromiumDirectory=.\bin 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 ### 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: 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 see https://github.com/uazo/bromite-buildtools/issues/51
## (TODO) Integrity and authenticity ### Enable AppContainer for renderer process in windows
you can activate the 'RendererAppContainer' flag from the command line with
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:
``` ```
$ sha256sum --check brm_68.0.3440.54.sha256.txt --enable-features=RendererAppContainer
arm64_SystemWebView.apk: OK
arm64_ChromePublic.apk: OK
arm64_ChromeModernPublic.apk: OK
``` ```
You can verify authenticity, e.g. that the author ([csagan5](https://github.com/csagan5)) released the file, by using gpg2: # Contributing
```
$ 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
Please submit issues following the issue template; beware that GitHub does not display the templates from mobile. 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. 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 # 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) * [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 * [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). Cromite is published under [GNU GPL v3](./LICENSE).
The patches published as part of the Bromite project are released under GNU GPL v3 only.
[version-image]: https://img.shields.io/github/release/bromite/bromite.svg?style=flat-square Cromite specific patches are under the GNU GPL-2+ licence.
[version-url]: https://github.com/bromite/bromite/releases/latest Each individual patch contains specific information on the licence used.
[license-image]: https://img.shields.io/github/license/bromite/bromite.svg
[license-url]: https://github.com/bromite/bromite/blob/master/LICENSE
-1
View File
@@ -1 +0,0 @@
e3a3a1fe718bf559be801d14660fb6f9dc9bf603-
+1 -1
View File
@@ -1 +1 @@
116.0.5845.111 123.0.6312.105
-1
View File
@@ -1 +0,0 @@
5923fa90d4e3587c130983442b9cf90f4c76e851
-51
View File
@@ -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
-48
View File
@@ -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
-11
View File
@@ -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
+170
View File
@@ -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 Remove-EV-certificates.patch
do-not-hide-.orig-files.patch do-not-hide-.orig-files.patch
Do-not-link-with-libatomic.patch Do-not-link-with-libatomic.patch
@@ -22,7 +23,6 @@ Battery-API-return-nothing.patch
updater-disable-updater-pings.patch updater-disable-updater-pings.patch
Disable-omission-of-URL-elements-in-Omnibox.patch Disable-omission-of-URL-elements-in-Omnibox.patch
Modify-default-preferences.patch Modify-default-preferences.patch
Do-not-hide-component-extensions.patch
Do-not-store-passwords-by-default.patch Do-not-store-passwords-by-default.patch
Disable-NTP-remote-suggestions-by-default.patch Disable-NTP-remote-suggestions-by-default.patch
Disable-references-to-fonts.googleapis.com.patch Disable-references-to-fonts.googleapis.com.patch
@@ -38,8 +38,7 @@ ungoogled-chromium-Disable-Gaia.patch
ungoogled-chromium-Disable-Network-Time-Tracker.patch ungoogled-chromium-Disable-Network-Time-Tracker.patch
Disable-all-promo-dialogs.patch Disable-all-promo-dialogs.patch
Disable-update-scheduler.patch Disable-update-scheduler.patch
Add-English-only-search-engine.patch Add-search-engine.patch
Add-DuckDuckGo-Lite-search-engine.patch
openH264-enable-ARM-ARM64-optimizations.patch openH264-enable-ARM-ARM64-optimizations.patch
build-remove-calling-untrusted-hooks.patch build-remove-calling-untrusted-hooks.patch
Inject-scripts-for-AMP-tracking-ads-and-video.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 Do-not-build-API-keys-infobar.patch
autofill-miscellaneous.patch autofill-miscellaneous.patch
Enable-native-Android-autofill.patch Enable-native-Android-autofill.patch
first_run-deactivate-autoupdate-globally.patch
translate-disable-fetching-of-languages-from-server.patch translate-disable-fetching-of-languages-from-server.patch
Offer-builtin-autocomplete-for-chrome-flags.patch Offer-builtin-autocomplete-for-chrome-flags.patch
Use-4-tile-rows-never-show-logo.patch Use-4-tile-rows-never-show-logo.patch
Disable-various-metrics.patch Disable-various-metrics.patch
Enable-StrictOriginIsolation-and-SitePerProcess.patch Enable-StrictOriginIsolation-and-SitePerProcess.patch
Use-64-bit-WebView-processes.patch Use-64-bit-WebView-processes.patch
prefs-always-prompt-for-download-directory.patch prefs-always-prompt-for-download-directory.patch
@@ -153,7 +150,7 @@ Add-flag-for-save-data-header.patch
Disable-UA-full-version.patch Disable-UA-full-version.patch
Dictionary-suggestions-for-the-Omnibox.patch Dictionary-suggestions-for-the-Omnibox.patch
Disable-AsyncDNS-by-default.patch Disable-AsyncDNS-by-default.patch
00Restore-LastTabStandingTracker.patch Restore-LastTabStandingTracker.patch
Add-lifetime-options-for-permissions.patch Add-lifetime-options-for-permissions.patch
Disable-crash-reporting.patch Disable-crash-reporting.patch
Samsung-Note-9-SDK27-crazylinker-workaround.patch Samsung-Note-9-SDK27-crazylinker-workaround.patch
@@ -177,90 +174,60 @@ Partition-blobs-by-top-frame-URL.patch
Override-Navigator-Language.patch Override-Navigator-Language.patch
Disable-add-to-home-screen-prompt.patch Disable-add-to-home-screen-prompt.patch
Remove-HTTP-referrals-in-cross-origin-navigation.patch Remove-HTTP-referrals-in-cross-origin-navigation.patch
Enable-ECH-by-default.patch
Disable-StartSurface-feature.patch Disable-StartSurface-feature.patch
Enable-PermuteTLSExtensions-by-default.patch Enable-PermuteTLSExtensions-by-default.patch
Enable-third-party-storage-partitioning.patch Enable-third-party-storage-partitioning.patch
Restore-adaptive-button-in-top-toolbar-customization.patch Restore-adaptive-button-in-top-toolbar-customization.patch
Add-kill-switch-for-unsupported-clangd-flags.patch Add-kill-switch-for-unsupported-clangd-flags.patch
eyeo-beta-114.0.5735.53-v1-base.patch WIN-enable-pdf-plugin.patch
eyeo-beta-114.0.5735.53-v1-android_settings.patch WIN-disable-annotate-downloads.patch
eyeo-beta-114.0.5735.53-v1-extension_api.patch WIN-enable-HighEfficiencyMode-by-default.patch
00Eyeo-Adblock-Remove-Privacy-Issues.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 AudioBuffer-AnalyserNode-fp-mitigations.patch
00Disable-Component-Updates.patch Disable-Component-Updates.patch
00add-browser-policy.patch add-browser-policy.patch
00Always-open-browser-controls-in-new-tab.patch Always-open-browser-controls-in-new-tab.patch
00Partitioning-all-cookies-by-top-frame-domain.patch Partitioning-all-cookies-by-top-frame-domain.patch
00Disable-FedCm.patch Disable-FedCm.patch
00Disable-BackForwardCache.patch Disable-BackForwardCache.patch
00Evict-the-entire-FrameTree-like-desktop.patch Evict-the-entire-FrameTree-like-desktop.patch
00Disable-visited-pseudo-class.patch Disable-visited-pseudo-class.patch
00Add-setting-to-clear-data-on-exit.patch Add-setting-to-clear-data-on-exit.patch
00WIN-Disable-sharing-hub.patch WIN-Disable-sharing-hub.patch
00WIN-Enable-Network-Service-Sandbox-and-CIG.patch Improve-the-browser-sandbox.patch
00Disable-csp-reports.patch Disable-csp-reports.patch
00Fonts-fingerprinting-mitigation.patch Fonts-fingerprinting-mitigation.patch
00Keyboard-protection-flag.patch Keyboard-protection-flag.patch
00Disable-privacy-issues-in-password-manager.patch Disable-privacy-issues-in-password-manager.patch
00Partition-HSTS-cache-by-NAK.patch Partition-HSTS-cache-by-NAK.patch
00Warning-message-for-unsupported-hardware-aes.patch Warning-message-for-unsupported-hardware-aes.patch
00Enable-Document-Open-Inheritance-Removal.patch Enable-Document-Open-Inheritance-Removal.patch
00Add-setting-to-invert-tap-and-long-tap.patch Add-setting-to-invert-tap-and-long-tap.patch
00Remove-ChromiumNetworkAdapter.patch Remove-ChromiumNetworkAdapter.patch
00Internal-firewall.patch Internal-firewall.patch
00Disable-devtools-remote-and-custom-protocols.patch Disable-devtools-remote-and-custom-protocols.patch
00Remove-detection-of-captive-portals.patch Remove-detection-of-captive-portals.patch
00Disable-SHA1-Server-Signature.patch Remove-auth-header-upon-cross-origin-redirect.patch
00Remove-auth-header-upon-cross-origin-redirect.patch Clear-CORS-Preflight-Cache-on-clearing-data.patch
00Clear-CORS-Preflight-Cache-on-clearing-data.patch Multi-Screen-Window-Placement-API-fix.patch
00Multi-Screen-Window-Placement-API-fix.patch Add-a-flag-to-disable-GamePad-API.patch
00Remove-https-connection-from-chrome-discards.patch Disable-WebGPU.patch
00Add-a-flag-to-disable-GamePad-API.patch Disable-FirstPartySets-and-StorageAccessAPI.patch
00Disable-WebGPU.patch Disable-GetInstalledRelatedApps-API.patch
00Disable-FirstPartySets-and-StorageAccessAPI.patch Disable-GSA-by-default.patch
00Disable-GetInstalledRelatedApps-API.patch Disable-PrivateStateTokens-API.patch
00Disable-GSA-by-default.patch Disallowing-MIDI-permission-by-default.patch
00Disable-PrivateStateTokens-API.patch Disable-Compression-Dictionary-Transport.patch
00Disallowing-MIDI-permission-by-default.patch Disallow-Android-App-Scheme-as-referrer.patch
00Disable-Compression-Dictionary-Transport.patch Deprecate-Data-URL-in-SVGUseElement.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
Content-settings-infrastructure.patch Content-settings-infrastructure.patch
Add-autoplay-site-setting.patch Add-autoplay-site-setting.patch
Site-setting-for-images.patch Site-setting-for-images.patch
@@ -269,22 +236,66 @@ Add-webGL-site-setting.patch
Add-webRTC-site-settings.patch Add-webRTC-site-settings.patch
Show-site-settings-for-cookies-javascript-and-ads.patch Show-site-settings-for-cookies-javascript-and-ads.patch
Viewport-Protection-flag.patch Viewport-Protection-flag.patch
Viewport-Protection-Site-Setting.patch
Timezone-customization.patch Timezone-customization.patch
00Disable-speechSynthesis-getVoices-API.patch Change-popup-site-setting.patch
00Remove-support-for-device-memory-and-cpu-recovery.patch Disable-speechSynthesis-getVoices-API.patch
00Log-dangling-attributes-in-some-html-elements.patch Remove-support-for-device-memory-and-cpu-recovery.patch
00Keep-Side-Panel-Companion-disabled.patch Log-dangling-attributes-in-some-html-elements.patch
00Lock-Profile-Cookie-Database.patch Keep-Side-Panel-Companion-disabled.patch
00Show-warnings-on-downloads-over-HTTP.patch Lock-Profile-Cookie-Database.patch
00Compress-libchrome-to-free-up-some-space.patch Show-warnings-on-downloads-over-HTTP.patch
00Cromite-Branding.patch Compress-libchrome-to-free-up-some-space.patch
00Disable-Feeback-Collector.patch Cromite-Branding.patch
00Disable-remote-altsvc-for-h3-connections.patch Disable-Feeback-Collector.patch
00do-not-block-build-incompatible-profiles.patch Disable-remote-altsvc-for-h3-connections.patch
00Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch do-not-block-build-incompatible-profiles.patch
00allow-the-download-of-clang-for-windows-crossbuild.patch Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch
00Temp-disable-predictive-back-gesture.patch allow-the-download-of-clang-for-windows-crossbuild.patch
00Add-option-to-disable-snapshots.patch Add-option-to-disable-snapshots.patch
00Disable-PartnerCustomizations.patch Enable-Android-Dynamic-Performance-Framework.patch
00Enable-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
+1
View File
@@ -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
-55
View File
@@ -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
-35
View File
@@ -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
-36
View File
@@ -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 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.cc | 16 ++++++++++++++++
base/android/android_image_reader_compat.h | 4 ++++ base/android/android_image_reader_compat.h | 14 ++++++++++++++
chrome/browser/flag-metadata.json | 6 +++--- chrome/browser/flag-metadata.json | 6 +++---
gpu/config/gpu_driver_bug_list.json | 16 ++++++++++++++++ .../AImageReader-CFI-crash-mitigations.inc | 4 ++++
gpu/config/gpu_finch_features.cc | 5 +++++ .../AImageReader-CFI-crash-mitigations.inc | 1 +
gpu/config/gpu_finch_features.h | 1 + gpu/config/gpu_driver_bug_list.json | 16 ++++++++++++++++
gpu/config/gpu_util.cc | 8 ++++++++ gpu/config/gpu_finch_features.cc | 5 +++++
gpu/config/gpu_workaround_list.txt | 1 + gpu/config/gpu_finch_features.h | 1 +
gpu/ipc/service/gpu_init.cc | 5 +++++ gpu/config/gpu_util.cc | 8 ++++++++
gpu/ipc/service/stream_texture_android.cc | 11 ++++++++++- gpu/config/gpu_workaround_list.txt | 1 +
media/base/media_switches.cc | 5 +++++ gpu/ipc/service/gpu_init.cc | 8 ++++++++
media/base/media_switches.h | 1 + gpu/ipc/service/stream_texture_android.cc | 11 ++++++++++-
12 files changed, 66 insertions(+), 5 deletions(-) 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 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 --- a/base/android/android_image_reader_compat.cc
+++ b/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 base {
namespace android { 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() { +void AndroidImageReader::DisableSupport() {
+ disable_support_ = true; + disable_support_ = true;
+} +}
+ +
bool AndroidImageReader::IsSupported() { +bool AndroidImageReader::IsSupported() {
- return is_supported_; + return !disable_support_;
+ return !disable_support_ && is_supported_; +}
} +
bool EnableAndroidImageReader() {
AndroidImageReader::AndroidImageReader() : is_supported_(LoadFunctions()) {} + 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 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 --- a/base/android/android_image_reader_compat.h
+++ b/base/android/android_image_reader_compat.h +++ b/base/android/android_image_reader_compat.h
@@ -24,6 +24,9 @@ class BASE_EXPORT AndroidImageReader { @@ -10,6 +10,20 @@
AndroidImageReader(const AndroidImageReader&) = delete; namespace base {
AndroidImageReader& operator=(const AndroidImageReader&) = delete; namespace android {
+ // Disable image reader support. +class BASE_EXPORT AndroidImageReader {
+ static void DisableSupport(); + public:
+ // Thread safe GetInstance.
+ static AndroidImageReader& GetInstance();
+ +
// Check if the image reader usage is supported. This function returns TRUE + bool IsSupported();
// if android version is >=OREO, image reader support is not disabled and all +
// the required functions are loaded. + // Disable image reader support.
@@ -61,6 +64,7 @@ class BASE_EXPORT AndroidImageReader { + void DisableSupport();
jobject ANativeWindow_toSurface(JNIEnv* env, ANativeWindow* window); +
+ 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 diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -2798,9 +2798,9 @@ @@ -3046,9 +3046,9 @@
"expiry_milestone": 125 "expiry_milestone": 125
}, },
{ {
- "name": "enable-image-reader", - "name": "enable-image-reader",
- "owners": [ "vikassoni", "liberato" ], - "owners": [ "vikassoni@chromium.org", "liberato@chromium.org" ],
- "expiry_milestone": 125 - "expiry_milestone": 125
+ "name": "enable-image-reader", // Bromite: do not expire + "name": "enable-image-reader", // Bromite: do not expire
+ "owners": [ "vikassoni", "liberato" ], // flag + "owners": [ "vikassoni@chromium.org", "liberato@chromium.org" ], // flag
+ "expiry_milestone": -1 + "expiry_milestone": -1
}, },
{ {
"name": "enable-immersive-fullscreen-toolbar", "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 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 --- a/gpu/config/gpu_driver_bug_list.json
+++ b/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" "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 --- a/gpu/config/gpu_finch_features.cc
+++ b/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc
@@ -65,6 +65,11 @@ BASE_FEATURE(kUseGles2ForOopR, @@ -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) #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 // Use android SurfaceControl API for managing display compositor's buffer queue
// and using overlays on Android. Also used by webview to disable surface // 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 diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h
--- a/gpu/config/gpu_finch_features.h --- a/gpu/config/gpu_finch_features.h
+++ b/gpu/config/gpu_finch_features.h +++ b/gpu/config/gpu_finch_features.h
@@ -17,6 +17,7 @@ namespace features { @@ -24,6 +24,7 @@ GPU_EXPORT BASE_DECLARE_FEATURE(kUseGles2ForOopR);
GPU_EXPORT BASE_DECLARE_FEATURE(kUseGles2ForOopR);
// All features in alphabetical order. The features should be documented // 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. // alongside the definition of their values in the .cc file.
#if BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_ANDROID)
+GPU_EXPORT BASE_DECLARE_FEATURE(kAImageReaderMediaPlayer);
GPU_EXPORT BASE_DECLARE_FEATURE(kAndroidSurfaceControl); 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 diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
--- a/gpu/config/gpu_util.cc --- a/gpu/config/gpu_util.cc
+++ b/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) if (!gpu_preferences.enable_android_surface_control)
return kGpuFeatureStatusDisabled; 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] = gpu_feature_info->status_values[GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION] =
kGpuFeatureStatusBlocklisted; 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 diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt
--- a/gpu/config/gpu_workaround_list.txt --- a/gpu/config/gpu_workaround_list.txt
+++ b/gpu/config/gpu_workaround_list.txt +++ b/gpu/config/gpu_workaround_list.txt
@@ -15,6 +15,7 @@ decode_encode_srgb_for_generatemipmap @@ -11,6 +11,7 @@ clamp_texture_base_level_and_max_level
depth_stencil_renderbuffer_resize_emulation clear_pixel_unpack_buffer_before_copyteximage
disable_2d_canvas_auto_flush disable_2d_canvas_auto_flush
disable_accelerated_av1_decode disable_accelerated_av1_decode
+disable_aimagereader +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 diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
--- a/gpu/ipc/service/gpu_init.cc --- a/gpu/ipc/service/gpu_init.cc
+++ b/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) #endif // BUILDFLAG(IS_WIN)
+#if BUILDFLAG(IS_ANDROID)
+ // Disable AImageReader if the workaround is enabled. + // Disable AImageReader if the workaround is enabled.
+ if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) { + 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] != if (gpu_feature_info_.status_values[GPU_FEATURE_TYPE_VULKAN] !=
kGpuFeatureStatusEnabled || 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::kAImageReaderInsecure
: TextureOwner::Mode::kSurfaceTextureInsecure; : 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 Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
.../src/org/chromium/chrome/browser/app/ChromeActivity.java | 3 +++ .../chromium/chrome/browser/app/ChromeActivity.java | 3 +++
chrome/browser/about_flags.cc | 4 ++++ chrome/browser/flags/android/chrome_feature_list.cc | 1 +
chrome/browser/flag_descriptions.cc | 5 +++++ .../chrome/browser/flags/ChromeFeatureList.java | 4 ++++
chrome/browser/flag_descriptions.h | 3 +++ .../Add-AllowUserCertificates-flag.inc | 13 +++++++++++++
chrome/browser/flags/android/chrome_feature_list.cc | 5 +++++ .../Add-AllowUserCertificates-flag.inc | 3 +++
chrome/browser/flags/android/chrome_feature_list.h | 1 + .../Add-AllowUserCertificates-flag.inc | 1 +
.../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 4 ++++ net/android/java/src/org/chromium/net/X509Util.java | 5 +++++
net/android/java/src/org/chromium/net/X509Util.java | 5 +++++ 7 files changed, 30 insertions(+)
8 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -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.SelectionPopupController;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.common.ContentSwitches; import org.chromium.content_public.common.ContentSwitches;
@@ -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.PrintManagerDelegateImpl;
import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingController;
import org.chromium.printing.PrintingControllerImpl; 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(); super.onStartWithNative();
ChromeActivitySessionTracker.getInstance().onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative();
ChromeCachedFlags.getInstance().cacheNativeFlags(); 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(), // postDeferredStartupIfNeeded() is called in TabModelSelectorTabObsever#onLoadStopped(),
// #onPageLoadFinished() and #onCrash(). If we are not actively loading a tab (e.g. // #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 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -142,6 +142,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { @@ -136,6 +136,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&feed::kFeedBoCSigninInterstitial, &feed::kFeedShowSignInCommand,
&feed::kFeedSignedOutViewDemotion,
&feed::kFeedUserInteractionReliabilityReport, &feed::kFeedUserInteractionReliabilityReport,
&feed::kInterestFeedContentSuggestions,
+ &kAllowUserCertificates, + &kAllowUserCertificates,
&feed::kInterestFeedV2, &feed::kInterestFeedV2,
&feed::kInterestFeedV2Autoplay,
&feed::kInterestFeedV2Hearts, &feed::kInterestFeedV2Hearts,
@@ -458,6 +459,10 @@ BASE_FEATURE(kSearchReadyOmniboxFeature, &feed::kWebFeed,
"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);
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -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 ALLOW_USER_CERTIFICATES = "AllowUserCertificates";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE = public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE =
"AdaptiveButtonInTopToolbarTranslate"; "AdaptiveButtonInTopToolbarTranslate";
@@ -499,6 +500,8 @@ public abstract class ChromeFeatureList { public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_ADD_TO_BOOKMARKS =
public static final String XSURFACE_METRICS_REPORTING = "XsurfaceMetricsReporting"; @@ -533,6 +534,8 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sAndroidHub = newCachedFlag(ANDROID_HUB, false);
/* Alphabetical: */ public static final CachedFlag sAndroidTabGroupStableIds =
newCachedFlag(ANDROID_TAB_GROUP_STABLE_IDS, false);
+ public static final CachedFlag sAllowUserCertificates = + public static final CachedFlag sAllowUserCertificates =
+ new CachedFlag(ALLOW_USER_CERTIFICATES, false); + newCachedFlag(ALLOW_USER_CERTIFICATES, false);
public static final CachedFlag sAppMenuMobileSiteOption = public static final CachedFlag sArchiveTabService = newCachedFlag(ARCHIVE_TAB_SERVICE, false);
new CachedFlag(APP_MENU_MOBILE_SITE_OPTION, false);
public static final CachedFlag sBackGestureActivityTabProvider = 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( public static final List<CachedFlag> sFlagsCachedFullBrowser =
// clang-format off List.of(
+ sAllowUserCertificates, + sAllowUserCertificates,
sAppMenuMobileSiteOption, sAndroidAppIntegration,
sBackGestureActivityTabProvider, sAndroidElegantTextHeight,
sBackGestureRefactorActivityAndroid, 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 diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java
--- a/net/android/java/src/org/chromium/net/X509Util.java --- a/net/android/java/src/org/chromium/net/X509Util.java
+++ b/net/android/java/src/org/chromium/net/X509Util.java +++ b/net/android/java/src/org/chromium/net/X509Util.java
@@ -545,6 +545,8 @@ public class X509Util { @@ -525,6 +525,8 @@ public class X509Util {
return userRootBytes.toArray(new byte[0][]); return userRootBytes.toArray(new byte[0][]);
} }
+ public static boolean AllowUserCertificates = false; + public static boolean AllowUserCertificates = false;
+ +
public static AndroidCertVerifyResult verifyServerCertificates(byte[][] certChain, public static AndroidCertVerifyResult verifyServerCertificates(
String authType, byte[][] certChain, String authType, String host)
String host) throws KeyStoreException, NoSuchAlgorithmException {
@@ -631,6 +633,9 @@ public class X509Util { @@ -613,6 +615,9 @@ public class X509Util {
isIssuedByKnownRoot = isKnownRoot(root); isIssuedByKnownRoot = isKnownRoot(root);
} }
+ if (AllowUserCertificates == false && isIssuedByKnownRoot == false) + if (AllowUserCertificates == false && isIssuedByKnownRoot == false)
+ return new AndroidCertVerifyResult(CertVerifyStatusAndroid.NO_TRUSTED_ROOT); + return new AndroidCertVerifyResult(CertVerifyStatusAndroid.NO_TRUSTED_ROOT);
+ +
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.OK, return new AndroidCertVerifyResult(
isIssuedByKnownRoot, verifiedChain); 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java --- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
@@ -151,6 +151,8 @@ public class KeyboardShortcuts { @@ -204,6 +204,8 @@ public class KeyboardShortcuts {
KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON); R.string.keyboard_shortcut_address_bar,
addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar, KeyEvent.KEYCODE_L,
KeyEvent.KEYCODE_L, KeyEvent.META_CTRL_ON); KeyEvent.META_CTRL_ON);
+ addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar, + addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
+ KeyEvent.KEYCODE_D, KeyEvent.META_ALT_ON); + KeyEvent.KEYCODE_D, KeyEvent.META_ALT_ON);
shortcutGroups.add(chromeFeatureShortcutGroup); 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 Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
chrome/browser/about_flags.cc | 4 ++++ .../about_flags_cc/Add-IsCleartextPermitted-flag.inc | 8 ++++++++
chrome/browser/flag_descriptions.cc | 4 ++++ .../base/features_cc/Add-IsCleartextPermitted-flag.inc | 3 +++
chrome/browser/flag_descriptions.h | 3 +++ .../net/base/features_h/Add-IsCleartextPermitted-flag.inc | 1 +
net/base/features.cc | 4 ++++ net/url_request/url_request_http_job.cc | 5 +++++
net/base/features.h | 2 ++ 4 files changed, 17 insertions(+)
net/url_request/url_request_http_job.cc | 4 ++++ create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-IsCleartextPermitted-flag.inc
6 files changed, 21 insertions(+) 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 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
--- a/chrome/browser/about_flags.cc new file mode 100644
+++ b/chrome/browser/about_flags.cc --- /dev/null
@@ -9391,6 +9391,10 @@ const FeatureEntry kFeatureEntries[] = { +++ b/cromite_flags/chrome/browser/about_flags_cc/Add-IsCleartextPermitted-flag.inc
flag_descriptions::kRequestDesktopSiteExceptionsName, @@ -0,0 +1,8 @@
flag_descriptions::kRequestDesktopSiteExceptionsDescription, kOsAndroid, +#ifdef FLAG_SECTION
FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)}, +
+ {"cleartext-permitted", + {"cleartext-permitted",
+ flag_descriptions::kIsCleartextPermittedName, + "Allow cleartext traffic",
+ flag_descriptions::kIsCleartextPermittedDescription, kOsAndroid, + "Allow insecure connections over HTTP", kOsAll,
+ FEATURE_VALUE_TYPE(net::features::kIsCleartextPermitted)}, + 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"; +#endif
const char kIgnoreGpuBlocklistDescription[] = diff --git a/cromite_flags/net/base/features_cc/Add-IsCleartextPermitted-flag.inc b/cromite_flags/net/base/features_cc/Add-IsCleartextPermitted-flag.inc
"Overrides the built-in software rendering list and enables " new file mode 100644
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- /dev/null
--- a/chrome/browser/flag_descriptions.h +++ b/cromite_flags/net/base/features_cc/Add-IsCleartextPermitted-flag.inc
+++ b/chrome/browser/flag_descriptions.h @@ -0,0 +1,3 @@
@@ -1062,6 +1062,9 @@ extern const char kHiddenNetworkMigrationDescription[]; +CROMITE_FEATURE(kIsCleartextPermitted,
extern const char kHttpsOnlyModeName[]; + "IsCleartextPermitted",
extern const char kHttpsOnlyModeDescription[]; + 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
+extern const char kIsCleartextPermittedName[]; new file mode 100644
+extern const char kIsCleartextPermittedDescription[]; --- /dev/null
+ +++ b/cromite_flags/net/base/features_h/Add-IsCleartextPermitted-flag.inc
extern const char kHttpsFirstModeV2Name[]; @@ -0,0 +1 @@
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);
+NET_EXPORT BASE_DECLARE_FEATURE(kIsCleartextPermitted); +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 diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
--- a/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc
@@ -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) { + if (base::FeatureList::IsEnabled(net::features::kIsCleartextPermitted) == false) {
+ return std::make_unique<URLRequestErrorJob>(request, + return std::make_unique<URLRequestErrorJob>(request,
+ ERR_CLEARTEXT_NOT_PERMITTED); + ERR_CLEARTEXT_NOT_PERMITTED);
+ } + }
+
#if BUILDFLAG(IS_ANDROID)
// Check whether the app allows cleartext traffic to this host, and return // Check whether the app allows cleartext traffic to this host, and return
// ERR_CLEARTEXT_NOT_PERMITTED if not. // 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
--
@@ -3,18 +3,19 @@ Date: Fri, 21 Apr 2023 13:10:20 +0000
Subject: Add a flag to disable GamePad API Subject: Add a flag to disable GamePad API
Adds restrict-gamepad-access flag (default active) to disable GamePad API. Adds restrict-gamepad-access flag (default active) to disable GamePad API.
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
--- ---
chrome/browser/flag-metadata.json | 4 ++-- chrome/browser/flag-metadata.json | 4 ++--
chrome/browser/flag_descriptions.cc | 2 +- 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 ++++++ .../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 diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -6837,9 +6837,9 @@ @@ -7195,9 +7195,9 @@
"expiry_milestone": 117 "expiry_milestone": 125
}, },
{ {
- "name": "restrict-gamepad-access", - "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 + "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 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc
+++ b/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 kRestrictGamepadAccessName[] = "Restrict gamepad access";
const char kRestrictGamepadAccessDescription[] = 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 diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/public/cpp/gamepad_features.cc
--- a/device/gamepad/public/cpp/gamepad_features.cc --- a/device/gamepad/public/cpp/gamepad_features.cc
+++ b/device/gamepad/public/cpp/gamepad_features.cc +++ b/device/gamepad/public/cpp/gamepad_features.cc
@@ -27,8 +27,8 @@ BASE_FEATURE(kEnableWindowsGamingInputDataFetcher, @@ -65,4 +65,5 @@ bool IsGamepadMultitouchEnabled() {
base::FEATURE_DISABLED_BY_DEFAULT); return false;
}
BASE_FEATURE(kRestrictGamepadAccess, +SET_CROMITE_FEATURE_ENABLED(kRestrictGamepadAccess);
- "RestrictGamepadAccess", } // namespace features
- base::FEATURE_DISABLED_BY_DEFAULT);
+ "RestrictGamepadAccess", // enabled
+ base::FEATURE_ENABLED_BY_DEFAULT); // in bromite
// Enables gamepad multitouch
BASE_FEATURE(kEnableGamepadMultitouch,
diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc 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 --- a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc
+++ b/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()) { if (!navigator.DomWindow()) {
// Using an existing NavigatorGamepad if one exists, but don't create one // Using an existing NavigatorGamepad if one exists, but don't create one
// for a detached window, as its subclasses depend on a non-null window. // for a detached window, as its subclasses depend on a non-null window.
@@ -430,6 +434,8 @@ void NavigatorGamepad::SampleAndCompareGamepadState() { @@ -435,6 +439,8 @@ void NavigatorGamepad::SampleAndCompareGamepadState() {
void NavigatorGamepad::DispatchGamepadEvent(const AtomicString& event_name, void NavigatorGamepad::DispatchGamepadEvent(const AtomicString& event_name,
Gamepad* gamepad) { Gamepad* gamepad) {
@@ -75,4 +71,3 @@ diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/t
DCHECK(processing_events_); DCHECK(processing_events_);
DCHECK(has_connection_event_listener_); 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 + .../java/res/xml/privacy_preferences.xml | 4 +
.../privacy/settings/PrivacySettings.java | 1 + .../privacy/settings/PrivacySettings.java | 1 +
.../chrome_autocomplete_provider_client.cc | 2 + .../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.cc | 24 +-
chrome/browser/net/proxy_service_factory.h | 3 + chrome/browser/net/proxy_service_factory.h | 3 +
chrome/browser/prefs/browser_prefs.cc | 4 + 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 +- .../proxy_config/proxy_policy_handler.cc | 2 +-
net/proxy_resolution/proxy_config.cc | 52 ++- net/proxy_resolution/proxy_config.cc | 52 ++-
net/proxy_resolution/proxy_config.h | 3 + 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.css
create mode 100644 chrome/browser/resources/proxy_config.html create mode 100644 chrome/browser/resources/proxy_config.html
create mode 100644 chrome/browser/resources/proxy_config.js create mode 100644 chrome/browser/resources/proxy_config.js
@@ -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 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 --- a/chrome/android/java/res/values/values.xml
+++ b/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 --> <!-- Compositor Tab Title Text -->
<bool name="compositor_tab_title_fake_bold_text">true</bool> <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 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -9,6 +9,10 @@ found in the LICENSE file. @@ -10,6 +10,10 @@ found in the LICENSE file.
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <PreferenceCategory
xmlns:app="http://schemas.android.com/apk/res-auto"> android:key="privacy_section"
android:title="@string/privacy_section_title" />
+ <org.chromium.chrome.browser.about_settings.HyperlinkPreference + <org.chromium.chrome.browser.about_settings.HyperlinkPreference
+ android:key="proxy" + android:key="proxy"
+ android:title="@string/proxy_title" + 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -82,6 +82,7 @@ public class PrivacySettings extends PreferenceFragmentCompat @@ -76,6 +76,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private static final String PREF_SAFE_BROWSING = "safe_browsing"; 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_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
@@ -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 diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
@@ -304,6 +304,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { @@ -308,6 +308,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
builtins_to_provide.push_back( builtins_to_provide.push_back(
base::ASCIIToUTF16(chrome::kChromeUISettingsURL)); base::ASCIIToUTF16(chrome::kChromeUISettingsURL));
#endif #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 diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
--- a/chrome/browser/browser_resources.grd --- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd
@@ -284,11 +284,15 @@ @@ -237,6 +237,9 @@
<include name="IDR_PREF_HASH_SEED_BIN" file="resources\settings_internal\pref_hash_seed.bin" type="BINDATA" /> <include name="IDR_PREF_HASH_SEED_BIN" file="resources\settings\internal\pref_hash_seed.bin" type="BINDATA" />
<include name="IDR_ADDITIONAL_MODULE_IDS" file="${additional_modules_list_file}" use_base_dir="false" type="BINDATA" /> <include name="IDR_ADDITIONAL_MODULE_IDS" file="${additional_modules_list_file}" use_base_dir="false" type="BINDATA" />
</if> </if>
+ <!-- Bromite Proxy Configuration UI --> + <!-- Bromite Proxy Configuration UI -->
+ <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_HTML" file="resources\proxy_config.html" flattenhtml="true" type="BINDATA" compress="gzip" /> + <include name="IDR_PROXY_CONFIG_JS" file="resources\proxy_config.js" type="BINDATA" compress="gzip" />
+ <include name="IDR_PROXY_CONFIG_JS" file="resources\proxy_config.js" type="BINDATA" compress="gzip" />
+ </if>
<if expr="not is_android"> <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. --> <!-- Page not available for guest. -->
<include name="IDR_PAGE_NOT_AVAILABLE_FOR_GUEST_APP_HTML" file="resources\page_not_available_for_guest\app.html" type="BINDATA" /> <include name="IDR_PAGE_NOT_AVAILABLE_FOR_GUEST_APP_HTML" file="resources\page_not_available_for_guest\app.html" type="BINDATA" />
<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 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 --- a/chrome/browser/net/proxy_service_factory.cc
+++ b/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 diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc
@@ -175,6 +175,8 @@ @@ -191,6 +191,8 @@
#include "printing/buildflags/buildflags.h"
#include "rlz/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" +#include "chrome/browser/net/proxy_service_factory.h"
+ +
#if BUILDFLAG(ENABLE_BACKGROUND_MODE) #if BUILDFLAG(ENABLE_BACKGROUND_MODE)
#include "chrome/browser/background/background_mode_manager.h" #include "chrome/browser/background/background_mode_manager.h"
#endif #endif
@@ -1315,6 +1317,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { @@ -1447,6 +1449,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
component_updater::RegisterPrefs(registry); component_updater::RegisterPrefs(registry);
domain_reliability::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry);
embedder_support::OriginTrialPrefs::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry);
@@ -391,7 +397,7 @@ new file mode 100644
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>. + 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. + * 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 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -397,6 +397,8 @@ static_library("ui") { @@ -301,6 +301,8 @@ static_library("ui") {
"webui/metrics_internals/metrics_internals_ui.h", "webui/metrics_internals/metrics_internals_ui.h",
"webui/net_export_ui.cc", "webui/net_export_ui.cc",
"webui/net_export_ui.h", "webui/net_export_ui.h",
@@ -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 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 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/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/ntp_tiles_internals_ui.h"
#include "chrome/browser/ui/webui/omnibox/omnibox_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/policy/policy_ui.h"
+#include "chrome/browser/ui/webui/proxy_config_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/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/segmentation_internals/segmentation_internals_ui.h"
#include "chrome/browser/ui/webui/signin_internals_ui.h" @@ -469,6 +470,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
@@ -489,6 +490,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<MetricsInternalsUI>; return &NewWebUI<MetricsInternalsUI>;
if (url.host_piece() == chrome::kChromeUINetExportHost) if (url.host_piece() == chrome::kChromeUINetExportHost)
return &NewWebUI<NetExportUI>; 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 diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
--- a/chrome/common/webui_url_constants.cc --- a/chrome/common/webui_url_constants.cc
+++ b/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc
@@ -50,6 +50,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert"; @@ -49,6 +49,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
const char kChromeUICertificateViewerURL[] = "chrome://view-cert/"; const char kChromeUICertificateViewerURL[] = "chrome://view-cert/";
const char kChromeUIChromeSigninHost[] = "chrome-signin"; const char kChromeUIChromeSigninHost[] = "chrome-signin";
const char kChromeUIChromeSigninURL[] = "chrome://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 kChromeUIChromeURLsHost[] = "chrome-urls";
const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/"; const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/";
const char kChromeUIComponentsHost[] = "components"; const char kChromeUIComponentsHost[] = "components";
@@ -431,6 +433,7 @@ bool IsSystemWebUIHost(base::StringPiece host) { @@ -460,6 +462,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
kChromeUILockScreenNetworkHost, kChromeUILockScreenNetworkHost,
kChromeUILockScreenStartReauthHost, kChromeUILockScreenStartReauthHost,
kChromeUIMobileSetupHost, kChromeUIMobileSetupHost,
+ kChromeUIProxyConfigHost, + kChromeUIProxyConfigHost,
kChromeUIMultiDeviceSetupHost, kChromeUIMultiDeviceSetupHost,
kChromeUINetworkHost, kChromeUINetworkHost,
kChromeUINotificationTesterHost, kChromeUINotificationTesterHost,
@@ -730,6 +733,7 @@ const char* const kChromeHostURLs[] = { @@ -760,6 +763,7 @@ const char* const kChromeHostURLs[] = {
#if !BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_ANDROID)
#if !BUILDFLAG(IS_CHROMEOS_ASH) #if !BUILDFLAG(IS_CHROMEOS)
kChromeUIAppLauncherPageHost, kChromeUIAppLauncherPageHost,
+ kChromeUIProxyConfigHost, + kChromeUIProxyConfigHost,
#endif #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 diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
--- a/chrome/common/webui_url_constants.h --- a/chrome/common/webui_url_constants.h
+++ b/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h
@@ -136,6 +136,8 @@ extern const char kChromeUINTPTilesInternalsHost[]; @@ -134,6 +134,8 @@ extern const char kChromeUINTPTilesInternalsHost[];
extern const char kChromeUINaClHost[]; extern const char kChromeUINaClHost[];
extern const char kChromeUINetExportHost[]; extern const char kChromeUINetExportHost[];
extern const char kChromeUINetExportURL[]; 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); 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)) { if (proxy_dict.GetBypassList(&proxy_bypass)) {
proxy_config.proxy_rules().bypass_rules.ParseFromString(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 diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_config/proxy_policy_handler.cc
--- a/components/proxy_config/proxy_policy_handler.cc --- a/components/proxy_config/proxy_policy_handler.cc
+++ b/components/proxy_config/proxy_policy_handler.cc +++ b/components/proxy_config/proxy_policy_handler.cc
@@ -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( set_proxy_pref_value(ProxyConfigDictionary::CreateFixedServers(
server->GetString(), bypass_list && bypass_list->is_string() server->GetString(), bypass_list && bypass_list->is_string()
? bypass_list->GetString() ? bypass_list->GetString()
@@ -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 + // special case: a single proxy servers list specified
+ if (type == Type::PROXY_LIST) { + if (type == Type::PROXY_LIST) {
+ std::string proxy_list; + std::string proxy_list;
+ for (const ProxyServer& proxy_server : + for (const auto& proxy_chain : single_proxies.AllChains()) {
+ single_proxies.GetAll()) { + net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
+ proxy_list += ProxyServerToProxyUri(proxy_server) + ";"; + proxy_list += ProxyServerToProxyUri(proxy_server) + ";";
+ } + }
+ // remove last semicolon + // 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 + // start to build a per-scheme list
+ std::string list; + std::string list;
+ for (const ProxyServer& proxy_server : + for (const auto& proxy_chain : proxies_for_http.AllChains()) {
+ proxies_for_http.GetAll()) { + net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
+ list += "http=" + ProxyServerToProxyUri(proxy_server) + ";"; + list += "http=" + ProxyServerToProxyUri(proxy_server) + ";";
+ } + }
+ for (const ProxyServer& proxy_server : + for (const auto& proxy_chain : proxies_for_https.AllChains()) {
+ proxies_for_https.GetAll()) { + net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
+ list += "https=" + ProxyServerToProxyUri(proxy_server) + ";"; + list += "https=" + ProxyServerToProxyUri(proxy_server) + ";";
+ } + }
+ for (const ProxyServer& proxy_server : + for (const auto& proxy_chain : proxies_for_ftp.AllChains()) {
+ proxies_for_ftp.GetAll()) { + net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
+ list += "ftp=" + ProxyServerToProxyUri(proxy_server) + ";"; + list += "ftp=" + ProxyServerToProxyUri(proxy_server) + ";";
+ } + }
+ for (const ProxyServer& proxy_server : + for (const auto& proxy_chain : fallback_proxies.AllChains()) {
+ fallback_proxies.GetAll()) { + net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
+ list += "socks=" + ProxyServerToProxyUri(proxy_server) + ";"; + list += "socks=" + ProxyServerToProxyUri(proxy_server) + ";";
+ } + }
+ if (list.length() != 0 ) { + 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, // Returns one of {&proxies_for_http, &proxies_for_https, &proxies_for_ftp,
// &fallback_proxies}, or NULL if there is no proxy to use. // &fallback_proxies}, or NULL if there is no proxy to use.
-- --
2.25.1
File diff suppressed because it is too large Load Diff
+10 -10
View File
@@ -11,13 +11,13 @@ Require: Content-settings-infrastructure.patch
.../res/drawable-xhdpi/settings_autoplay.png | Bin 0 -> 551 bytes .../res/drawable-xhdpi/settings_autoplay.png | Bin 0 -> 551 bytes
.../res/drawable-xxhdpi/settings_autoplay.png | Bin 0 -> 792 bytes .../res/drawable-xxhdpi/settings_autoplay.png | Bin 0 -> 792 bytes
.../drawable-xxxhdpi/settings_autoplay.png | Bin 0 -> 1064 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.grdp | 21 ++++
.../bromite_content_settings/autoplay.inc | 12 +++ .../bromite_content_settings/autoplay.inc | 12 +++
.../core/browser/content_settings_registry.cc | 2 +- .../core/browser/content_settings_registry.cc | 2 +-
.../core/html/media/autoplay_policy.cc | 14 +++ .../core/html/media/autoplay_policy.cc | 14 +++
.../core/html/media/autoplay_policy.h | 4 + .../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-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-mdpi/settings_autoplay.png
create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-xhdpi/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 new file mode 100644
--- /dev/null --- /dev/null
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteAutoplayContentSetting.java +++ 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. + This file is part of Bromite.
+ +
@@ -192,7 +192,8 @@ new file mode 100644
+ /*defaultEnabledValue*/ getDefaultEnabledValue(), + /*defaultEnabledValue*/ getDefaultEnabledValue(),
+ /*defaultDisabledValue*/ getDefaultDisabledValue(), + /*defaultDisabledValue*/ getDefaultDisabledValue(),
+ /*enabledSummary*/ R.string.website_settings_category_autoplay_enabled, + /*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 + @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 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -244,7 +244,7 @@ void ContentSettingsRegistry::Init() { @@ -255,7 +255,7 @@ void ContentSettingsRegistry::Init() {
ContentSettingsInfo::INHERIT_IN_INCOGNITO, ContentSettingsInfo::INHERIT_IN_INCOGNITO,
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
- Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_ALLOW, - Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_ALLOW,
+ Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_BLOCK, + Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_BLOCK,
WebsiteSettingsInfo::UNSYNCABLE, /*allowlisted_schemes=*/{}, WebsiteSettingsInfo::UNSYNCABLE, /*allowlisted_primary_schemes=*/{},
/*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK}, /*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK},
WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, 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 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/platform/web_media_player.h"
#include "third_party/blink/public/web/web_local_frame.h" #include "third_party/blink/public/web/web_local_frame.h"
#include "third_party/blink/public/web/web_local_frame_client.h" #include "third_party/blink/public/web/web_local_frame_client.h"
@@ -310,6 +311,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() { @@ -330,6 +331,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() {
} }
bool AutoplayPolicy::IsGestureNeededForPlayback() const { 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()) if (!IsLockedPendingUserGesture())
return false; 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 diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.h b/third_party/blink/renderer/core/html/media/autoplay_policy.h
--- a/third_party/blink/renderer/core/html/media/autoplay_policy.h --- a/third_party/blink/renderer/core/html/media/autoplay_policy.h
+++ b/third_party/blink/renderer/core/html/media/autoplay_policy.h +++ b/third_party/blink/renderer/core/html/media/autoplay_policy.h
@@ -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. // should use, if checking to see if an action is allowed.
bool IsLockedPendingUserGesture() const; 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; 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 ++++++++ .../java/res/xml/privacy_preferences.xml | 10 ++++++++
.../browser/LaunchIntentDispatcher.java | 21 ++++++++++++++++ .../browser/LaunchIntentDispatcher.java | 21 ++++++++++++++++
.../customtabs/CustomTabsConnection.java | 1 +
.../IncognitoCustomTabIntentDataProvider.java | 6 +++++ .../IncognitoCustomTabIntentDataProvider.java | 6 +++++
.../privacy/settings/PrivacySettings.java | 24 +++++++++++++++++++ .../privacy/settings/PrivacySettings.java | 24 +++++++++++++++++++
.../flags/android/chrome_feature_list.cc | 6 ++---
.../chrome/browser/tab/TabAssociatedApp.java | 6 ++++- .../chrome/browser/tab/TabAssociatedApp.java | 6 ++++-
.../strings/android_chrome_strings.grd | 14 +++++++++++ .../strings/android_chrome_strings.grd | 14 +++++++++++
.../core/common/language_experiments.cc | 4 ++-- .../core/common/language_experiments.cc | 1 +
8 files changed, 85 insertions(+), 6 deletions(-) .../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 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -68,6 +68,16 @@ found in the LICENSE file. @@ -43,6 +43,16 @@ found in the LICENSE file.
android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings"
android:key="do_not_track" 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 + <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
+ android:key="allow_custom_tab_intents" + android:key="allow_custom_tab_intents"
+ android:title="@string/allow_custom_tab_intents_title" + 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:summary="@string/open_external_links_incognito_summary"
+ android:defaultValue="false" /> + android:defaultValue="false" />
<Preference <Preference
android:key="privacy_sandbox" android:key="preload_pages"
android:title="@string/prefs_privacy_sandbox" 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
@@ -42,6 +42,7 @@ import org.chromium.chrome.browser.notifications.NotificationPlatformBridge; @@ -55,6 +55,9 @@ import java.lang.annotation.Retention;
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import java.lang.annotation.RetentionPolicy;
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;
import java.util.Set; import java.util.Set;
+import org.chromium.chrome.browser.privacy.settings.PrivacySettings; +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 * Dispatches incoming intents to the appropriate activity based on the current configuration and
* Intent fired. * 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) { public static boolean isCustomTabIntent(Intent intent) {
if (intent == null) return false; if (intent == null) return false;
+ if (!ContextUtils.getAppSharedPreferences() + if (!ContextUtils.getAppSharedPreferences()
+ .getBoolean(PrivacySettings.PREF_ALLOW_CUSTOM_TAB_INTENTS, false)) + .getBoolean(PrivacySettings.PREF_ALLOW_CUSTOM_TAB_INTENTS, false))
+ return false; + return false;
if (CustomTabsIntent.shouldAlwaysUseBrowserUI(intent) Log.w(
|| !intent.hasExtra(CustomTabsIntent.EXTRA_SESSION)) { TAG,
return false; "CustomTabsIntent#shouldAlwaysUseBrowserUI() = "
@@ -287,6 +293,10 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega @@ -265,6 +271,10 @@ public class LaunchIntentDispatcher {
newIntent.setData(uri); newIntent.setData(uri);
newIntent.setClassName(context, CustomTabActivity.class.getName()); 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 // Since configureIntentForResizableCustomTab() might change the componenet/class
// associated with the passed intent, it needs to be called after #setClassName(context, // associated with the passed intent, it needs to be called after #setClassName(context,
// CustomTabActivity.class.getName()); // CustomTabActivity.class.getName());
@@ -447,6 +457,17 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega @@ -410,6 +420,17 @@ public class LaunchIntentDispatcher {
if (Intent.ACTION_VIEW.equals(newIntent.getAction()) if (Intent.ACTION_VIEW.equals(newIntent.getAction())
&& !IntentHandler.wasIntentSenderChrome(newIntent)) { && !IntentHandler.wasIntentSenderChrome(newIntent)) {
@@ -100,6 +95,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
if (!chromeTabbedTaskExists()) { if (!chromeTabbedTaskExists()) {
newIntent.putExtra(IntentHandler.EXTRA_STARTED_TABBED_CHROME_TASK, true); newIntent.putExtra(IntentHandler.EXTRA_STARTED_TABBED_CHROME_TASK, true);
} }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
@@ -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 * A model class that parses the incoming intent for incognito Custom Tabs specific customization
* data. * data.
@@ -113,6 +116,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD @@ -115,6 +118,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
} }
private static boolean isIntentFromThirdPartyAllowed() { 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -103,6 +103,9 @@ public class PrivacySettings extends PreferenceFragmentCompat @@ -96,6 +96,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private HelpAndFeedbackLauncher mHelpAndFeedbackLauncher; private ManagedPreferenceDelegate mManagedPreferenceDelegate;
private Profile mProfile; private IncognitoLockSettings mIncognitoLockSettings;
+ private ChromeSwitchPreference allowCustomTabIntentsPref; + private ChromeSwitchPreference allowCustomTabIntentsPref;
+ private ChromeSwitchPreference openExternalLinksPref; + private ChromeSwitchPreference openExternalLinksPref;
+ +
@Override @Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
PrivacyPreferencesManagerImpl privacyPrefManager = getActivity().setTitle(R.string.prefs_privacy_security);
@@ -250,6 +253,9 @@ public class PrivacySettings extends PreferenceFragmentCompat @@ -274,6 +277,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink)); new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink));
} }
@@ -146,9 +152,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey(); String key = preference.getKey();
@@ -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)) { } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
UserPrefs.get(Profile.getLastUsedRegularProfile()) UserPrefs.get(getProfile())
.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
+ } else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) { + } else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
+ SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); + 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; return true;
} }
@@ -287,6 +301,16 @@ public class PrivacySettings extends PreferenceFragmentCompat @@ -312,6 +326,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
UserPrefs.get(mProfile).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
} }
+ allowCustomTabIntentsPref = + 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); Preference doNotTrackPref = findPreference(PREF_DO_NOT_TRACK);
if (doNotTrackPref != null) { if (doNotTrackPref != null) {
doNotTrackPref.setSummary(UserPrefs.get(mProfile).getBoolean(Pref.ENABLE_DO_NOT_TRACK) doNotTrackPref.setSummary(
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -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",
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
@@ -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) { public static boolean isOpenedFromExternalApp(Tab tab) {
TabAssociatedApp app = get(tab); TabAssociatedApp app = get(tab);
if (app == null) return false; 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 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -5015,6 +5015,20 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</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."> <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 Resume
</message> </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 diff --git a/components/language/core/common/language_experiments.cc b/components/language/core/common/language_experiments.cc
--- a/components/language/core/common/language_experiments.cc --- a/components/language/core/common/language_experiments.cc
+++ b/components/language/core/common/language_experiments.cc +++ b/components/language/core/common/language_experiments.cc
@@ -39,8 +39,8 @@ BASE_FEATURE(kContentLanguagesInLanguagePicker, @@ -24,4 +24,5 @@ BASE_FEATURE(kCctAutoTranslate,
"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
// Params: // Params:
const char kContentLanguagesDisableObserversParam[] = "disable_observers"; 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
+20 -21
View File
@@ -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 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 --- a/chrome/android/java/res/menu/main_menu.xml
+++ b/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" <item android:id="@+id/managed_by_menu_id"
android:title="@string/managed_browser" android:title="@string/managed_browser"
android:icon="@drawable/ic_business" /> 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> </group>
<!-- Items shown only in the tab switcher --> <!-- 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" <item android:id="@id/preferences_id"
android:title="@string/menu_settings" android:title="@string/menu_settings"
android:icon="@drawable/settings_cog" /> 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 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 --- a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLifetime.java
+++ b/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.ObserverList;
import org.chromium.base.annotations.CalledByNative;
+import org.chromium.chrome.browser.incognito.IncognitoNotificationManager; +import org.chromium.chrome.browser.incognito.IncognitoNotificationManager;
/** /** Watches for when Chrome is told to restart itself. */
* Watches for when Chrome is told to restart itself. public class ApplicationLifetime {
@@ -42,6 +43,7 @@ public class ApplicationLifetime { @@ -39,6 +40,7 @@ public class ApplicationLifetime {
@CalledByNative @CalledByNative
public static void terminate(boolean restart) { 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -230,6 +230,8 @@ import java.util.Locale; @@ -267,6 +267,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.Set; import java.util.function.BooleanSupplier;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.DoubleConsumer;
+import org.chromium.chrome.browser.ApplicationLifetime; +import org.chromium.chrome.browser.ApplicationLifetime;
+ +
/** /**
* This is the main activity for ChromeMobile when not running in document mode. All the tabs * This is the main activity for ChromeMobile when not running in document mode. All the tabs are
* are accessible via a chrome specific tab switching UI. * accessible via a chrome specific tab switching UI.
@@ -2260,6 +2262,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent @@ -2925,6 +2927,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
} else if (id == R.id.close_tab) { } else if (id == R.id.close_tab) {
getCurrentTabModel().closeTab(currentTab, true, false, true); getCurrentTabModel().closeTab(currentTab, true, false, true);
RecordUserAction.record("MobileTabClosed"); RecordUserAction.record("MobileTabClosed");
@@ -76,11 +76,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
+ ApplicationLifetime.terminate(false); + ApplicationLifetime.terminate(false);
} else if (id == R.id.close_all_tabs_menu_id) { } else if (id == R.id.close_all_tabs_menu_id) {
// Close both incognito and normal tabs. // 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -61,6 +61,7 @@ import org.chromium.chrome.R; @@ -62,6 +62,7 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ActivityUtils; import org.chromium.chrome.browser.ActivityUtils;
import org.chromium.chrome.browser.AppHooks; import org.chromium.chrome.browser.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.ChromeActivitySessionTracker;
import org.chromium.chrome.browser.ChromeApplicationImpl; import org.chromium.chrome.browser.ChromeApplicationImpl;
import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate; import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
@@ -2397,6 +2398,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> @@ -2576,6 +2577,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return true; 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) { if (id == R.id.update_menu_id) {
UpdateMenuItemHelper.getInstance().onMenuItemClicked(this); UpdateMenuItemHelper.getInstance(
return true; 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
@@ -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 // Kick off a timer to kill the process after a delay, which fires only if the Activities
// take too long to be finished. // 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 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3687,6 +3687,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</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]"> <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 Dark theme
</message> </message>
@@ -130,4 +130,3 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
Appearance Appearance
</message> </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 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 ++++++
.../browser/autocomplete_controller.cc | 10 +++++++++ .../omnibox/browser/history_url_provider.cc | 3 ++
.../omnibox/browser/history_url_provider.cc | 3 +++ components/omnibox/browser/search_provider.cc | 4 +++
components/omnibox/browser/search_provider.cc | 4 ++++ components/url_formatter/url_fixer.cc | 4 +++
components/url_formatter/url_fixer.cc | 4 ++++ ...lag-for-omnibox-autocomplete-filtering.inc | 32 +++++++++++++++++++
5 files changed, 42 insertions(+), 1 deletion(-) 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 diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc
--- a/components/omnibox/browser/autocomplete_controller.cc --- a/components/omnibox/browser/autocomplete_controller.cc
+++ b/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc
@@ -18,6 +18,7 @@ @@ -22,6 +22,7 @@
#include "base/barrier_callback.h"
#include "base/check_op.h" #include "base/check_op.h"
#include "base/containers/contains.h" #include "base/containers/contains.h"
+#include "base/command_line.h" +#include "base/command_line.h"
#include "base/feature_list.h" #include "base/feature_list.h"
#include "base/format_macros.h" #include "base/format_macros.h"
#include "base/functional/bind.h" #include "base/functional/bind.h"
@@ -359,6 +360,15 @@ AutocompleteController::AutocompleteController( @@ -392,6 +393,15 @@ AutocompleteController::AutocompleteController(
template_url_service_(provider_client_->GetTemplateURLService()), provider_client_->GetOmniboxTriggeredFeatureService()),
triggered_feature_service_( steady_state_omnibox_position_(
provider_client_->GetOmniboxTriggeredFeatureService()) { metrics::OmniboxEventProto::UNKNOWN_POSITION) {
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) { + if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) {
+ const std::string flag_value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering"); + const std::string flag_value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering");
+ provider_types &= AutocompleteProvider::TYPE_KEYWORD | AutocompleteProvider::TYPE_SEARCH | + 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 diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc
--- a/components/omnibox/browser/history_url_provider.cc --- a/components/omnibox/browser/history_url_provider.cc
+++ b/components/omnibox/browser/history_url_provider.cc +++ b/components/omnibox/browser/history_url_provider.cc
@@ -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) if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY)
matches_.push_back(what_you_typed_match); 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 diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
--- a/components/omnibox/browser/search_provider.cc --- a/components/omnibox/browser/search_provider.cc
+++ b/components/omnibox/browser/search_provider.cc +++ b/components/omnibox/browser/search_provider.cc
@@ -12,6 +12,7 @@ @@ -14,6 +14,7 @@
#include "base/base64.h" #include "base/base64.h"
#include "base/feature_list.h" #include "base/feature_list.h"
#include "base/functional/bind.h" #include "base/functional/bind.h"
@@ -104,7 +66,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/
#include "base/functional/callback.h" #include "base/functional/callback.h"
#include "base/i18n/break_iterator.h" #include "base/i18n/break_iterator.h"
#include "base/i18n/case_conversion.h" #include "base/i18n/case_conversion.h"
@@ -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) { 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_path.h"
#include "base/files/file_util.h" #include "base/files/file_util.h"
#include "base/i18n/char_iterator.h" #include "base/i18n/char_iterator.h"
@@ -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); FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url);
if (chrome_url && !parts.host.is_valid()) if (chrome_url && !parts.host.is_valid())
@@ -135,5 +97,41 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
url.append(kChromeUIDefaultHost); url.append(kChromeUIDefaultHost);
FixupPort(trimmed, parts.port, &url); FixupPort(trimmed, parts.port, &url);
FixupPath(trimmed, parts.path, &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 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
chrome/browser/about_flags.cc | 5 ++++- .../loader/browser_initiated_resource_request.cc | 8 ++++++++
chrome/browser/flag_descriptions.cc | 4 ++++ .../about_flags_cc/Add-flag-for-save-data-header.inc | 10 ++++++++++
chrome/browser/flag_descriptions.h | 3 +++ .../cpp/features_cc/Add-flag-for-save-data-header.inc | 4 ++++
.../browser/loader/browser_initiated_resource_request.cc | 8 ++++++++ .../cpp/features_h/Add-flag-for-save-data-header.inc | 1 +
services/network/public/cpp/features.cc | 5 +++++ 4 files changed, 23 insertions(+)
services/network/public/cpp/features.h | 2 ++ create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-save-data-header.inc
6 files changed, 26 insertions(+), 1 deletion(-) 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 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 --- a/content/browser/loader/browser_initiated_resource_request.cc
+++ b/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) { if (should_update_existing_headers) {
headers->RemoveHeader("Save-Data"); headers->RemoveHeader("Save-Data");
} }
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc 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
--- a/services/network/public/cpp/features.cc new file mode 100644
+++ b/services/network/public/cpp/features.cc --- /dev/null
@@ -13,6 +13,11 @@ +++ b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-save-data-header.inc
@@ -0,0 +1,10 @@
namespace network::features { +
+#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). +// Enable save-data header separately (without enabled data reduction service).
+BASE_FEATURE(kEnableSaveDataHeader, +CROMITE_FEATURE(kEnableSaveDataHeader,
+ "EnableSaveDataHeader", + "EnableSaveDataHeader",
+ base::FEATURE_DISABLED_BY_DEFAULT); + 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
BASE_FEATURE(kNetworkErrorLogging, new file mode 100644
"NetworkErrorLogging", // disabled by default --- /dev/null
base::FEATURE_DISABLED_BY_DEFAULT); // in bromite +++ b/cromite_flags/services/network/public/cpp/features_h/Add-flag-for-save-data-header.inc
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h @@ -0,0 +1 @@
--- 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);
+COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kEnableSaveDataHeader); +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 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.cc | 3 +++
.../common/network_features.h | 4 ++++ .../common/network_features.h | 4 ++++
.../common/network_switch_list.h | 4 ++++ .../common/network_switch_list.h | 4 ++++
.../spoof_checks/top_domains/BUILD.gn | 1 + .../spoof_checks/top_domains/BUILD.gn | 1 +
...o-configure-maximum-connections-per-host.inc | 17 +++++++++++++++++
net/socket/client_socket_pool_manager.cc | 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 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 --- a/components/network_session_configurator/common/network_features.cc
+++ b/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) { if (is_ios) {
frameworks = [ "UIKit.framework" ] 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 diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc
--- a/net/socket/client_socket_pool_manager.cc --- a/net/socket/client_socket_pool_manager.cc
+++ b/net/socket/client_socket_pool_manager.cc +++ b/net/socket/client_socket_pool_manager.cc
@@ -19,6 +19,10 @@ @@ -22,6 +22,10 @@
#include "net/socket/client_socket_handle.h" #include "net/socket/client_socket_handle.h"
#include "net/socket/client_socket_pool.h" #include "net/socket/client_socket_pool.h"
#include "net/socket/connect_job.h" #include "net/socket/connect_job.h"
@@ -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/command_line.h"
+#include "base/strings/string_number_conversions.h" +#include "base/strings/string_number_conversions.h"
#include "net/ssl/ssl_config.h" #include "net/ssl/ssl_config.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "url/gurl.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( int ClientSocketPoolManager::max_sockets_per_group(
HttpNetworkSession::SocketPoolType pool_type) { HttpNetworkSession::SocketPoolType pool_type) {
DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES); 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 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
chrome/browser/about_flags.cc | 4 ++++ ...lag-to-control-video-playback-resume-feature.inc | 13 +++++++++++++
chrome/browser/flag_descriptions.cc | 5 +++++ ...lag-to-control-video-playback-resume-feature.inc | 1 +
chrome/browser/flag_descriptions.h | 3 +++ 2 files changed, 14 insertions(+)
media/base/media_switches.cc | 8 ++------ create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-flag-to-control-video-playback-resume-feature.inc
4 files changed, 14 insertions(+), 6 deletions(-) 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 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
--- a/chrome/browser/about_flags.cc new file mode 100644
+++ b/chrome/browser/about_flags.cc --- /dev/null
@@ -3909,6 +3909,10 @@ const FeatureEntry kFeatureEntries[] = { +++ b/cromite_flags/chrome/browser/about_flags_cc/add-flag-to-control-video-playback-resume-feature.inc
chrome::android::kContextualSearchSuppressShortView, @@ -0,0 +1,13 @@
kContextualSearchSuppressShortViewVariations, +#ifdef FLAG_SECTION
"ContextualSearchSuppressShortView")}, +
+#if BUILDFLAG(IS_ANDROID)
+
+ {"resume-background-video", + {"resume-background-video",
+ flag_descriptions::kResumeBackgroundVideoName, + "Resume background video.",
+ flag_descriptions::kResumeBackgroundVideoDescription, kOsAll, + "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)}, + 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"; +#endif // BUILDFLAG(IS_ANDROID)
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[];
+ +
extern const char kEnablePeripheralCustomizationName[]; +#endif // ifdef FLAG_SECTION
extern const char kEnablePeripheralCustomizationDescription[]; 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
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- /dev/null
--- a/media/base/media_switches.cc +++ b/cromite_flags/media/base/media_switches_cc/add-flag-to-control-video-playback-resume-feature.inc
+++ b/media/base/media_switches.cc @@ -0,0 +1 @@
@@ -353,12 +353,8 @@ BASE_FEATURE(kPreloadMetadataLazyLoad, +SET_CROMITE_FEATURE_DISABLED(kResumeBackgroundVideo);
// 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
-- --
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 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
chrome/browser/about_flags.cc | 4 ++++ .../about_flags_cc/add-flag-to-disable-IPv6-probes.inc | 8 ++++++++
chrome/browser/flag_descriptions.cc | 4 ++++ .../base/features_cc/add-flag-to-disable-IPv6-probes.inc | 3 +++
chrome/browser/flag_descriptions.h | 3 +++ .../base/features_h/add-flag-to-disable-IPv6-probes.inc | 2 ++
net/BUILD.gn | 1 + net/BUILD.gn | 1 +
net/base/features.cc | 4 ++++ net/dns/host_resolver_manager.cc | 8 ++++++++
net/base/features.h | 3 +++ 5 files changed, 22 insertions(+)
net/dns/host_resolver_manager.cc | 11 +++++++++++ create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-flag-to-disable-IPv6-probes.inc
services/network/public/cpp/features.cc | 5 +++++ create mode 100644 cromite_flags/net/base/features_cc/add-flag-to-disable-IPv6-probes.inc
services/network/public/cpp/features.h | 1 + create mode 100644 cromite_flags/net/base/features_h/add-flag-to-disable-IPv6-probes.inc
9 files changed, 36 insertions(+)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc 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
--- a/chrome/browser/about_flags.cc new file mode 100644
+++ b/chrome/browser/about_flags.cc --- /dev/null
@@ -6475,6 +6475,10 @@ const FeatureEntry kFeatureEntries[] = { +++ b/cromite_flags/chrome/browser/about_flags_cc/add-flag-to-disable-IPv6-probes.inc
{"enable-reader-mode-in-cct", flag_descriptions::kReaderModeInCCTName, @@ -0,0 +1,8 @@
flag_descriptions::kReaderModeInCCTDescription, kOsAndroid, +#ifdef FLAG_SECTION
FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)}, +
+ {"ipv6-probing", + {"ipv6-probing",
+ flag_descriptions::kIPv6ProbingName, + "Enable IPv6 probing.",
+ flag_descriptions::kIPv6ProbingDescription, kOsAll, + "Send IPv6 probes to a RIPE DNS address to verify IPv6 connectivity.", kOsAll,
+ FEATURE_VALUE_TYPE(net::features::kIPv6Probing)}, + 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[] = +#endif // ifdef FLAG_SECTION
"A debug flag to always show Chime notification after receiving a payload."; 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
const char kChimeAlwaysShowNotificationName[] = new file mode 100644
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- /dev/null
--- a/chrome/browser/flag_descriptions.h +++ b/cromite_flags/net/base/features_cc/add-flag-to-disable-IPv6-probes.inc
+++ b/chrome/browser/flag_descriptions.h @@ -0,0 +1,3 @@
@@ -846,6 +846,9 @@ extern const char kEnableWasmStringrefName[]; +CROMITE_FEATURE(kIPv6Probing,
extern const char kEnableWasmStringrefDescription[]; + "IPv6Probing",
+ base::FEATURE_ENABLED_BY_DEFAULT);
extern const char kEnableWasmTieringName[]; 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
+extern const char kIPv6ProbingName[]; new file mode 100644
+extern const char kIPv6ProbingDescription[]; --- /dev/null
+ +++ b/cromite_flags/net/base/features_h/add-flag-to-disable-IPv6-probes.inc
extern const char kEnableWasmTieringDescription[]; @@ -0,0 +1,2 @@
+// Enable IPv6 ping probes to RIPE DNS.
extern const char kEvDetailsInPageInfoName[]; +NET_EXPORT BASE_DECLARE_FEATURE(kIPv6Probing);
diff --git a/net/BUILD.gn b/net/BUILD.gn diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn --- a/net/BUILD.gn
+++ b/net/BUILD.gn +++ b/net/BUILD.gn
@@ -1085,6 +1085,7 @@ component("net") { @@ -1030,6 +1030,7 @@ component("net") {
"//build:chromeos_buildflags", "//build:chromeos_buildflags",
"//net/data/ssl/chrome_root_store:gen_root_store_inc", "//components/miracle_parameter/common",
"//net/http:transport_security_state_generated_files", "//net/http:transport_security_state_generated_files",
+ "//components/network_session_configurator/common" + "//components/network_session_configurator/common"
] ]
public_deps = [ 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 diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
--- a/net/dns/host_resolver_manager.cc --- a/net/dns/host_resolver_manager.cc
+++ b/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc
@@ -110,6 +110,7 @@ @@ -113,6 +113,7 @@
#include "net/log/net_log_event_type.h" #include "net/log/net_log_event_type.h"
#include "net/log/net_log_source.h" #include "net/log/net_log_source.h"
#include "net/log/net_log_source_type.h" #include "net/log/net_log_source_type.h"
@@ -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/log/net_log_with_source.h"
#include "net/socket/client_socket_factory.h" #include "net/socket/client_socket_factory.h"
#include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context.h"
@@ -677,6 +678,9 @@ class HostResolverManager::RequestImpl @@ -1373,6 +1374,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck(
// 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(
return OK; 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_) { if (probing_ipv6_) {
ipv6_request_callbacks_.push_back(std::move(callback)); ipv6_request_callbacks_.push_back(std::move(callback));
return ERR_IO_PENDING; 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 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
chrome/browser/about_flags.cc | 5 +++++ ...Add-flag-to-disable-external-intent-requests.inc | 13 +++++++++++++
chrome/browser/flag_descriptions.cc | 6 ++++++ 1 file changed, 13 insertions(+)
chrome/browser/flag_descriptions.h | 3 +++ create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc
3 files changed, 14 insertions(+)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc 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
--- a/chrome/browser/about_flags.cc new file mode 100644
+++ b/chrome/browser/about_flags.cc --- /dev/null
@@ -3849,6 +3849,11 @@ const FeatureEntry kFeatureEntries[] = { +++ b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc
{"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName, @@ -0,0 +1,13 @@
flag_descriptions::kUiPartialSwapDescription, kOsAll,
SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)},
+#if BUILDFLAG(IS_ANDROID) +#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")}, + SINGLE_DISABLE_VALUE_TYPE("disable-external-intent-requests")},
+
+#endif +#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"; +#endif
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[];
-- --
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 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
chrome/browser/about_flags.cc | 4 ++++ content/child/runtime_features.cc | 1 +
chrome/browser/flag_descriptions.cc | 3 +++ .../about_flags_cc/Add-flag-to-disable-vibration.inc | 8 ++++++++
chrome/browser/flag_descriptions.h | 2 ++ .../content_features_cc/Add-flag-to-disable-vibration.inc | 4 ++++
content/child/runtime_features.cc | 1 + .../content_features_h/Add-flag-to-disable-vibration.inc | 1 +
content/public/common/content_features.cc | 5 +++++ third_party/blink/public/platform/web_runtime_features.h | 1 +
content/public/common/content_features.h | 2 ++ .../renderer/modules/vibration/vibration_controller.cc | 3 +++
third_party/blink/public/platform/web_runtime_features.h | 1 + .../renderer/platform/exported/web_runtime_features.cc | 4 ++++
.../blink/renderer/modules/vibration/vibration_controller.cc | 3 +++ .../renderer/platform/runtime_enabled_features.json5 | 4 ++++
.../blink/renderer/platform/exported/web_runtime_features.cc | 4 ++++ 8 files changed, 26 insertions(+)
.../blink/renderer/platform/runtime_enabled_features.json5 | 4 ++++ create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-vibration.inc
10 files changed, 29 insertions(+) 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 diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc --- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc
@@ -101,6 +101,7 @@ void SetRuntimeFeatureDefaultsForPlatform( @@ -103,6 +103,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) { if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) {
WebRuntimeFeatures::EnableMediaSession(false); WebRuntimeFeatures::EnableMediaSession(false);
} }
@@ -66,40 +28,41 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
#endif #endif
#if BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_ANDROID)
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc 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
--- a/content/public/common/content_features.cc new file mode 100644
+++ b/content/public/common/content_features.cc --- /dev/null
@@ -157,6 +157,11 @@ BASE_FEATURE(kBackForwardCacheMemoryControls, +++ b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-vibration.inc
#endif @@ -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. +// Enables vibration; an user gesture will still be required if enabled.
+BASE_FEATURE(kVibration, +CROMITE_FEATURE(kVibration,
+ "VibrationEnabled", + "VibrationEnabled",
+ base::FEATURE_DISABLED_BY_DEFAULT); + 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
// When this feature is enabled, private network requests initiated from new file mode 100644
// non-secure contexts in the `public` address space are blocked. --- /dev/null
// +++ b/cromite_flags/content/public/common/content_features_h/Add-flag-to-disable-vibration.inc
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h @@ -0,0 +1 @@
--- 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)
+CONTENT_EXPORT BASE_DECLARE_FEATURE(kVibration); +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 diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
--- a/third_party/blink/public/platform/web_runtime_features.h --- a/third_party/blink/public/platform/web_runtime_features.h
+++ b/third_party/blink/public/platform/web_runtime_features.h +++ b/third_party/blink/public/platform/web_runtime_features.h
@@ -70,6 +70,7 @@ class BLINK_PLATFORM_EXPORT WebRuntimeFeatures : public WebRuntimeFeaturesBase { @@ -71,6 +71,7 @@ class BLINK_PLATFORM_EXPORT WebRuntimeFeatures : public WebRuntimeFeaturesBase {
static void EnableFingerprintingCanvasMeasureTextNoise(bool);
static void EnableFingerprintingCanvasImageDataNoise(bool); static void EnableFingerprintingCanvasImageDataNoise(bool);
static void EnableFluentScrollbars(bool); static void EnableFluentScrollbars(bool);
static void EnableFluentOverlayScrollbars(bool);
+ static void EnableVibration(bool); + static void EnableVibration(bool);
WebRuntimeFeatures() = delete; 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 diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.cc b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
--- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc --- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc
+++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc +++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
@@ -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/local_frame.h"
#include "third_party/blink/renderer/core/frame/navigator.h" #include "third_party/blink/renderer/core/frame/navigator.h"
#include "third_party/blink/renderer/core/page/page.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. // Maximum number of entries in a vibration pattern.
const unsigned kVibrationPatternLengthMax = 99; 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. // reference to |window| or |navigator| was retained in another window.
if (!navigator.DomWindow()) if (!navigator.DomWindow())
return false; 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 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2495,6 +2495,10 @@ @@ -635,6 +635,10 @@
status: {"Android": "stable"}, status: {"Android": "stable"},
base_feature: "none", base_feature: "none",
}, },
@@ -150,7 +113,6 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+ status: "stable", + status: "stable",
+ }, + },
{ {
name: "OriginIsolationHeader", name: "CompositionForegroundMarkers",
status: "stable", 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 Date: Thu, 20 Oct 2022 09:34:48 +0000
Subject: Add kill switch for unsupported clangd flags 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 Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
build/config/compiler/BUILD.gn | 6 +++++- build/config/compiler/BUILD.gn | 10 +++++++++-
build_overrides/build.gni | 3 +++ build_overrides/build.gni | 3 +++
2 files changed, 8 insertions(+), 1 deletion(-) 2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
--- a/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn
@@ -1772,7 +1772,11 @@ config("default_warnings") { @@ -1889,13 +1889,21 @@ config("default_warnings") {
# TODO(crbug.com/1412713) Evaluate and possibly enable. # TODO(https://crbug.com/1490607): Fix and re-enable.
"-Wno-deprecated-this-capture", "-Wno-thread-safety-reference-return",
] ]
- -
+ if (skip_clangd_unsupported_options) { if (!is_nacl) {
+ cflags -= [ cflags_cc += [
+ "-Wno-deprecated-builtins", # TODO(https://crbug.com/1513724): Fix and re-enable.
+ ] "-Wno-c++11-narrowing-const-reference",
+ } ]
if (llvm_force_head_revision) { }
# TODO(https://crbug.com/1448905): Evaluate and possibly enable. + if (skip_clangd_unsupported_options) {
cflags += [ "-Wno-builtin-macro-redefined" ] + 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 diff --git a/build_overrides/build.gni b/build_overrides/build.gni
--- a/build_overrides/build.gni --- a/build_overrides/build.gni
+++ b/build_overrides/build.gni +++ b/build_overrides/build.gni
@@ -58,6 +58,9 @@ declare_args() { @@ -62,6 +62,9 @@ declare_args() {
# Allows third-party repositories to use C++17 for MSVC builds # to lack of toolchain support.
# TODO(https://crbug.com/pdfium/1932) Remove once pdfium builds on MSVC C++20 gtest_enable_absl_printers = !is_nacl
msvc_use_cxx17 = false
+
+ # Allows clangd builds by suppressing unsupported parameters + # Allows clangd builds by suppressing unsupported parameters
+ skip_clangd_unsupported_options = false + skip_clangd_unsupported_options = false
} +
# Allow projects that wish to stay on C++17 to override Chromium's default.
# Allows different projects to specify their own suppression/ignore lists for # 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 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
chrome/android/java/res/menu/main_menu.xml | 7 +++ chrome/android/java/res/menu/main_menu.xml | 7 ++
.../chrome/browser/ChromeTabbedActivity.java | 24 ++++++++ .../chrome/browser/ChromeTabbedActivity.java | 24 +++++++
.../browser/bookmarks/BookmarkBridge.java | 61 +++++++++++++++++++ .../browser/bookmarks/BookmarkBridge.java | 67 +++++++++++++++++++
.../browser/bookmarks/BookmarkUtils.java | 4 ++ .../bookmarks/android/bookmark_bridge.cc | 44 ++++++++++++
.../bookmarks/android/bookmark_bridge.cc | 19 +++++- .../bookmarks/android/bookmark_bridge.h | 8 +++
.../bookmarks/android/bookmark_bridge.h | 4 ++ .../browser/bookmarks/bookmark_html_writer.cc | 11 ++-
.../browser/bookmarks/bookmark_html_writer.cc | 8 ++-
.../bookmarks/chrome_bookmark_client.cc | 2 +
.../dialogs/DownloadLocationCustomView.java | 4 +- .../dialogs/DownloadLocationCustomView.java | 4 +-
.../strings/android_chrome_strings.grd | 3 + .../strings/android_chrome_strings.grd | 3 +
components/bookmark_bar_strings.grdp | 6 ++ components/bookmark_bar_strings.grdp | 6 ++
.../bookmarks/browser/bookmark_codec.cc | 22 +++++-- .../bookmarks/browser/bookmark_codec.cc | 20 +++++-
components/bookmarks/browser/bookmark_codec.h | 7 ++- components/bookmarks/browser/bookmark_codec.h | 7 +-
.../browser/bookmark_load_details.cc | 4 ++ .../browser/bookmark_load_details.cc | 8 ++-
.../bookmarks/browser/bookmark_load_details.h | 3 + .../bookmarks/browser/bookmark_load_details.h | 2 +
.../bookmarks/browser/bookmark_model.cc | 3 +- .../bookmarks/browser/bookmark_model.cc | 3 +-
components/bookmarks/browser/bookmark_model.h | 7 +++ components/bookmarks/browser/bookmark_model.h | 7 ++
components/bookmarks/browser/bookmark_node.cc | 15 +++++ components/bookmarks/browser/bookmark_node.cc | 11 +++
components/bookmarks/browser/bookmark_node.h | 5 ++ components/bookmarks/browser/bookmark_node.h | 3 +
components/bookmarks/browser/model_loader.cc | 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 + .../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 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 --- a/chrome/android/java/res/menu/main_menu.xml
+++ b/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" <item android:id="@+id/all_bookmarks_menu_id"
android:title="@string/menu_bookmarks" android:title="@string/menu_bookmarks"
android:icon="@drawable/btn_star_filled" /> 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" <item android:id="@+id/recent_tabs_menu_id"
android:title="@string/menu_recent_tabs" android:title="@string/menu_recent_tabs"
android:icon="@drawable/devices_black_24dp" /> android:icon="@drawable/devices_black_24dp" />
@@ -181,6 +185,9 @@ found in the LICENSE file. @@ -186,6 +190,9 @@ found in the LICENSE file.
<item android:id="@id/quick_delete_menu_id" <item android:id="@+id/close_all_incognito_tabs_menu_id"
android:title="@string/menu_quick_delete" android:title="@string/menu_close_all_incognito_tabs"
android:icon="@drawable/quick_delete_trash_bin_icon_24dp"/> android:icon="@drawable/btn_close_white" />
+ <item android:id="@+id/bookmark_all_tabs_menu_id" + <item android:id="@+id/bookmark_all_tabs_menu_id"
+ android:title="@string/menu_bookmark_all_tabs" + android:title="@string/menu_bookmark_all_tabs"
+ android:icon="@drawable/ic_folder_blue_24dp" /> + 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -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.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.CompositorViewHolder;
@@ -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.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
@@ -2282,6 +2283,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent @@ -2950,6 +2951,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(), getTabModelSelectorSupplier().get(),
() -> getTabModelSelector().closeAllTabs(), /*isIncognito=*/false); () -> getTabModelSelector().closeAllTabs());
RecordUserAction.record("MobileMenuCloseAllTabs"); RecordUserAction.record("MobileMenuCloseAllTabs");
+ } else if (id == R.id.bookmark_all_tabs_menu_id) { + } else if (id == R.id.bookmark_all_tabs_menu_id) {
+ bookmarkAllTabs(); + bookmarkAllTabs();
} else if (id == R.id.close_all_incognito_tabs_menu_id) { } else if (id == R.id.close_all_incognito_tabs_menu_id) {
// Close only incognito tabs // Close only incognito tabs
CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(), CloseAllTabsDialog.show(
@@ -2347,6 +2350,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent @@ -3021,6 +3024,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mTabModalHandler.onOmniboxFocusChanged(hasFocus); getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus);
} }
+ private void bookmarkAllTabs() { + 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 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 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
+++ b/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.Callback;
import org.chromium.base.ContextUtils; import org.chromium.base.ContextUtils;
+import org.chromium.base.Log; +import org.chromium.base.Log;
import org.chromium.base.ObserverList; import org.chromium.base.ObserverList;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative; import org.chromium.base.metrics.RecordUserAction;
@@ -39,6 +40,10 @@ import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
import org.chromium.chrome.browser.profiles.Profile; 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.Snackbar;
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController; +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController;
@@ -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.BookmarkId;
import org.chromium.components.bookmarks.BookmarkItem; import org.chromium.components.bookmarks.BookmarkItem;
import org.chromium.components.bookmarks.BookmarkType; import org.chromium.components.bookmarks.BookmarkType;
@@ -82,6 +87,8 @@ import java.io.File; @@ -82,6 +88,8 @@ import org.chromium.ui.modaldialog.DialogDismissalCause;
* bookmark model stored in native.
*/
class BookmarkBridge { class BookmarkBridge {
private final ObserverList<BookmarkModelObserver> mObservers = new ObserverList<>();
+ private static final String TAG = "BookmarkBridge"; + private static final String TAG = "BookmarkBridge";
+ +
private long mNativeBookmarkBridge; private long mNativeBookmarkBridge;
private boolean mIsDestroyed; private boolean mIsDestroyed;
private boolean mIsDoingExtensiveChanges; private boolean mIsDoingExtensiveChanges;
@@ -379,6 +386,16 @@ class BookmarkBridge { @@ -402,6 +410,16 @@ class BookmarkBridge {
mNativeBookmarkBridge, BookmarkBridge.this); return mMobileFolderId;
} }
+ /** + /**
@@ -144,17 +144,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
+ mNativeBookmarkBridge, BookmarkBridge.this); + mNativeBookmarkBridge, BookmarkBridge.this);
+ } + }
+ +
/** /** Returns Id representing the special "other" folder from bookmark model. */
* @return Id representing the special "other" folder from bookmark model. public BookmarkId getOtherFolderId() {
*/ ThreadUtils.assertOnUiThread();
@@ -1002,6 +1019,49 @@ class BookmarkBridge { @@ -1092,6 +1110,50 @@ class BookmarkBridge {
mNativeBookmarkBridge, BookmarkBridge.this, title, url); .addToReadingList(mNativeBookmarkBridge, parentId, title, url);
} }
+ // Used to bookmark all tabs in a specific folder, created if not existing + // Used to bookmark all tabs in a specific folder, created if not existing
+ public BookmarkId addToTabsCollection(Context context, Tab tab) { + public BookmarkId addToTabsCollection(Context context, Tab tab) {
+ BookmarkId parent = getTabsCollectionFolderId(); + BookmarkId parent = getTabsCollectionFolderId();
+ BookmarkId existingId = getUserBookmarkIdForTab(tab); + BookmarkId existingId = BookmarkBridgeJni.get().getBookmarkIdForTabsCollection(
+ mNativeBookmarkBridge, tab.getOriginalUrl());
+ if (existingId != null && existingId.getId() != BookmarkId.INVALID_ID) { + if (existingId != null && existingId.getId() != BookmarkId.INVALID_ID) {
+ BookmarkId existingBookmarkId = new BookmarkId(existingId.getId(), BookmarkType.NORMAL); + BookmarkId existingBookmarkId = new BookmarkId(existingId.getId(), BookmarkType.NORMAL);
+ BookmarkItem existingBookmark = getBookmarkById(existingBookmarkId); + 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. * Helper method to mark an item as read.
* @return The reading list item with the URL, or null if no such reading list item. *
@@ -1220,6 +1280,7 @@ class BookmarkBridge { @@ -1334,6 +1396,9 @@ 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();
List<BookmarkId> specialFoldersIds = BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(long nativeBookmarkBridge, GURL url);
@@ -600,6 +601,9 @@ public class BookmarkUtils {
if (bookmarkModel.isFolderVisible(mobileNodeId)) { + BookmarkId getBookmarkIdForTabsCollection(
topLevelFolders.add(mobileNodeId); + long nativeBookmarkBridge, GURL url);
} +
+ if (bookmarkModel.isFolderVisible(tabsCollectionNodeId)) { BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type);
+ topLevelFolders.add(tabsCollectionNodeId);
+ } void getTopLevelFolderIds(
if (bookmarkModel.isFolderVisible(desktopNodeId)) { @@ -1353,6 +1418,8 @@ class BookmarkBridge {
topLevelFolders.add(desktopNodeId);
} 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 diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
--- a/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
@@ -470,12 +470,17 @@ void BookmarkBridge::GetTopLevelFolderIds( @@ -367,6 +367,33 @@ void BookmarkBridge::GetImageUrlForBookmark(
std::size_t special_count = top_level_folders.size(); base::BindOnce(&HandleImageUrlResponse, callback));
}
if (get_normal) { +base::android::ScopedJavaLocalRef<jobject>
- DCHECK_EQ(4u, bookmark_model_->root_node()->children().size()); +BookmarkBridge::GetBookmarkIdForTabsCollection(
+ DCHECK_EQ(5u, bookmark_model_->root_node()->children().size()); + JNIEnv* env,
for (const auto& node : bookmark_model_->mobile_node()->children()) { + const JavaParamRef<jobject>& url) {
if (node->is_folder()) + DCHECK_CURRENTLY_ON(BrowserThread::UI);
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());
+ }
+ +
for (const auto& node : bookmark_model_->bookmark_bar_node()->children()) { + GURL gurl = *url::GURLAndroid::ToNativeGURL(env, url);
if (node->is_folder()) +
top_level_folders.push_back(node.get()); + bookmarks::BookmarkModel* model =
@@ -523,6 +528,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( + 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 // Vector to temporarily contain all child bookmarks at same level for sorting
std::vector<const BookmarkNode*> bookmarks = { std::vector<const BookmarkNode*> bookmarks = {
bookmark_model_->mobile_node(), bookmark_model_->mobile_node(),
@@ -256,8 +262,20 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
bookmark_model_->bookmark_bar_node(), bookmark_model_->bookmark_bar_node(),
bookmark_model_->other_node(), bookmark_model_->other_node(),
}; };
@@ -575,6 +581,17 @@ ScopedJavaLocalRef<jobject> BookmarkBridge::GetMobileFolderId( @@ -539,6 +567,11 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
return folder_id_obj; 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( +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; + return folder_id_obj;
+} +}
+ +
ScopedJavaLocalRef<jobject> BookmarkBridge::GetOtherFolderId( ScopedJavaLocalRef<jobject> BookmarkBridge::AddFolder(
JNIEnv* env, 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 diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h
--- a/chrome/browser/bookmarks/android/bookmark_bridge.h --- a/chrome/browser/bookmarks/android/bookmark_bridge.h
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.h +++ b/chrome/browser/bookmarks/android/bookmark_bridge.h
@@ -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, 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( + base::android::ScopedJavaLocalRef<jobject> GetTabsCollectionFolderId(
+ JNIEnv* env, + JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& obj); + const base::android::JavaParamRef<jobject>& obj);
+ +
base::android::ScopedJavaLocalRef<jobject> GetOtherFolderId( base::android::ScopedJavaLocalRef<jobject> AddFolder(
JNIEnv* env, 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 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 --- a/chrome/browser/bookmarks/bookmark_html_writer.cc
+++ b/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); roots->FindDict(BookmarkCodec::kOtherBookmarkFolderNameKey);
base::Value::Dict* mobile_folder_value = base::Value::Dict* mobile_folder_value =
roots->FindDict(BookmarkCodec::kMobileBookmarkFolderNameKey); 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); NotifyOnFinish(BookmarksExportObserver::Result::kCouldNotWriteNodes);
return; return;
} }
@@ -460,6 +464,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() { @@ -467,6 +472,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() {
BookmarkModelFactory::GetForBrowserContext(profile_)->other_node()); BookmarkModelFactory::GetForBrowserContext(profile_)->other_node());
ExtractUrls( ExtractUrls(
BookmarkModelFactory::GetForBrowserContext(profile_)->mobile_node()); 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()) if (!bookmark_urls_.empty())
FetchNextFavicon(); FetchNextFavicon();
else 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 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 --- 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 +++ 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(); mDirectoryAdapter.update();
} }
@@ -345,7 +372,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
mTitle.setText(title); mTitle.setText(title);
} }
@@ -87,7 +87,7 @@ public class DownloadLocationCustomView @@ -93,7 +93,7 @@ public class DownloadLocationCustomView extends ScrollView
mSubtitleView.setText(subtitle); 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 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3817,6 +3817,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</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]"> <message name="IDS_MENU_SELECT_TABS" desc="Menu item for bulk editing tabs. [CHAR_LIMIT=27]">
Select tabs Select tabs
</message> </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::kVersionKey[] = "version";
const char BookmarkCodec::kChecksumKey[] = "checksum"; const char BookmarkCodec::kChecksumKey[] = "checksum";
const char BookmarkCodec::kIdKey[] = "id"; const char BookmarkCodec::kIdKey[] = "id";
@@ -74,7 +75,8 @@ BookmarkCodec::~BookmarkCodec() = default; @@ -72,6 +73,7 @@ base::Value::Dict BookmarkCodec::Encode(
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(
const BookmarkNode* bookmark_bar_node, const BookmarkNode* bookmark_bar_node,
const BookmarkNode* other_folder_node, const BookmarkNode* other_folder_node,
const BookmarkNode* mobile_folder_node, const BookmarkNode* mobile_folder_node,
+ const BookmarkNode* tabs_folder_node, + const BookmarkNode* tabs_folder_node,
const BookmarkNode::MetaInfoMap* model_meta_info_map,
const BookmarkNode::MetaInfoMap* model_unsynced_meta_info_map,
std::string sync_metadata_str) { 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(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node));
roots.Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node)); roots.Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node));
roots.Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node)); roots.Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node));
+ roots.Set(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node)); + if (tabs_folder_node)
if (model_meta_info_map) + roots.Set(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node));
roots.Set(kMetaInfo, EncodeMetaInfo(*model_meta_info_map));
if (model_unsynced_meta_info_map) { FinalizeChecksum();
@@ -124,6 +128,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, // 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* bb_node,
BookmarkNode* other_folder_node, BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node, BookmarkNode* mobile_folder_node,
+ BookmarkNode* tabs_folder_node, + BookmarkNode* tabs_folder_node,
int64_t* max_id, int64_t* max_id,
std::string* sync_metadata_str) { std::string* sync_metadata_str) {
ids_.clear(); const int64_t max_already_assigned_id =
@@ -131,7 +136,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, @@ -117,7 +122,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
base::Uuid::ParseLowercase(BookmarkNode::kBookmarkBarNodeUuid), base::Uuid::ParseLowercase(kBookmarkBarNodeUuid),
base::Uuid::ParseLowercase(BookmarkNode::kOtherBookmarksNodeUuid), base::Uuid::ParseLowercase(kOtherBookmarksNodeUuid),
base::Uuid::ParseLowercase(BookmarkNode::kMobileBookmarksNodeUuid), base::Uuid::ParseLowercase(kMobileBookmarksNodeUuid),
- base::Uuid::ParseLowercase(BookmarkNode::kManagedNodeUuid)}; - base::Uuid::ParseLowercase(kManagedNodeUuid)};
+ base::Uuid::ParseLowercase(BookmarkNode::kManagedNodeUuid), + base::Uuid::ParseLowercase(kManagedNodeUuid),
+ base::Uuid::ParseLowercase(BookmarkNode::kTabsCollectionBookmarksNodeUuid)}; + base::Uuid::ParseLowercase(kTabsCollectionBookmarksNodeUuid)};
ids_reassigned_ = false; ids_reassigned_ = false;
uuids_reassigned_ = false; uuids_reassigned_ = false;
ids_valid_ = true; 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(); stored_checksum_.clear();
InitializeChecksum(); InitializeChecksum();
bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node, 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(); FinalizeChecksum();
// If either the checksums differ or some IDs were missing/not unique, // If either the checksums differ or some IDs were missing/not unique,
// reassign IDs. // 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);
+ ReassignIDs(bb_node, other_folder_node, mobile_folder_node, tabs_folder_node); + ReassignIDs(bb_node, other_folder_node, mobile_folder_node, tabs_folder_node);
}
*max_id = maximum_id_ + 1; *max_id = maximum_id_ + 1;
return success; return success;
} @@ -189,6 +196,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo(
@@ -200,6 +207,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo(
bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
BookmarkNode* other_folder_node, BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node, BookmarkNode* mobile_folder_node,
+ BookmarkNode* tabs_folder_node, + BookmarkNode* tabs_folder_node,
const base::Value::Dict& value, const base::Value::Dict& value,
std::string* sync_metadata_str) { std::string* sync_metadata_str) {
absl::optional<int> version = value.FindInt(kVersionKey); std::optional<int> version = value.FindInt(kVersionKey);
@@ -224,6 +232,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, @@ -213,6 +221,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
roots->FindDict(kOtherBookmarkFolderNameKey); roots->FindDict(kOtherBookmarkFolderNameKey);
const base::Value::Dict* mobile_folder_value = const base::Value::Dict* mobile_folder_value =
roots->FindDict(kMobileBookmarkFolderNameKey); 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) if (!bb_value || !other_folder_value || !mobile_folder_value)
return false; 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(*bb_value, nullptr, bb_node);
DecodeNode(*other_folder_value, nullptr, other_folder_node); DecodeNode(*other_folder_value, nullptr, other_folder_node);
DecodeNode(*mobile_folder_value, nullptr, mobile_folder_node); DecodeNode(*mobile_folder_value, nullptr, mobile_folder_node);
+ if (tabs_folder_value) + if (tabs_folder_value)
+ DecodeNode(*tabs_folder_value, nullptr, tabs_folder_node); + DecodeNode(*tabs_folder_value, nullptr, tabs_folder_node);
if (!DecodeMetaInfo(*roots, &model_meta_info_map_)) if (sync_metadata_str) {
return false; const std::string* sync_metadata_str_base64 =
@@ -496,11 +508,13 @@ void BookmarkCodec::DecodeMetaInfoHelper( @@ -459,11 +471,13 @@ void BookmarkCodec::DecodeMetaInfoHelper(
void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node, void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node,
BookmarkNode* other_node, BookmarkNode* other_node,
- BookmarkNode* mobile_node) { - BookmarkNode* mobile_node) {
+ BookmarkNode* mobile_node, + BookmarkNode* mobile_node,
+ BookmarkNode* tabs_folder_node) { + BookmarkNode* tabs_folder_node) {
maximum_id_ = 0; ids_.clear();
ReassignIDsHelper(bb_node); ReassignIDsHelper(bb_node);
ReassignIDsHelper(other_node); ReassignIDsHelper(other_node);
ReassignIDsHelper(mobile_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 diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h
--- a/components/bookmarks/browser/bookmark_codec.h --- a/components/bookmarks/browser/bookmark_codec.h
+++ b/components/bookmarks/browser/bookmark_codec.h +++ b/components/bookmarks/browser/bookmark_codec.h
@@ -46,6 +46,7 @@ class BookmarkCodec { @@ -39,6 +39,7 @@ class BookmarkCodec {
const BookmarkNode* bookmark_bar_node, const BookmarkNode* bookmark_bar_node,
const BookmarkNode* other_folder_node, const BookmarkNode* other_folder_node,
const BookmarkNode* mobile_folder_node, const BookmarkNode* mobile_folder_node,
+ const BookmarkNode* tabs_folder_node, + const BookmarkNode* tabs_folder_node,
const BookmarkNode::MetaInfoMap* model_meta_info_map,
const BookmarkNode::MetaInfoMap* model_unsynced_meta_info_map,
std::string sync_metadata_str); 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* bb_node,
BookmarkNode* other_folder_node, BookmarkNode* other_folder_node,
BookmarkNode* mobile_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, int64_t* max_node_id,
std::string* sync_metadata_str); std::string* sync_metadata_str);
@@ -110,6 +112,7 @@ class BookmarkCodec { @@ -82,6 +84,7 @@ class BookmarkCodec {
// Allows the BookmarkClient to read and a write a string blob from the JSON static const char kBookmarkBarFolderNameKey[];
// file. That string captures the bookmarks sync metadata. static const char kOtherBookmarkFolderNameKey[];
static const char kSyncMetadata[]; static const char kMobileBookmarkFolderNameKey[];
+ static const char kTabsBookmarkFolderNameKey[]; + static const char kTabsBookmarkFolderNameKey[];
static const char kDateLastUsed[]; static const char kVersionKey[];
static const char kChecksumKey[];
// Possible values for kTypeKey. static const char kIdKey[];
@@ -128,6 +131,7 @@ class BookmarkCodec { @@ -114,6 +117,7 @@ class BookmarkCodec {
bool DecodeHelper(BookmarkNode* bb_node, bool DecodeHelper(BookmarkNode* bb_node,
BookmarkNode* other_folder_node, BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node, BookmarkNode* mobile_folder_node,
@@ -536,7 +555,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
const base::Value::Dict& value, const base::Value::Dict& value,
std::string* sync_metadata_str); std::string* sync_metadata_str);
@@ -139,7 +143,8 @@ class BookmarkCodec { @@ -124,7 +128,8 @@ class BookmarkCodec {
// Reassigns bookmark IDs for all nodes. // Reassigns bookmark IDs for all nodes.
void ReassignIDs(BookmarkNode* bb_node, void ReassignIDs(BookmarkNode* bb_node,
BookmarkNode* other_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 diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/bookmarks/browser/bookmark_load_details.cc
--- a/components/bookmarks/browser/bookmark_load_details.cc --- a/components/bookmarks/browser/bookmark_load_details.cc
+++ b/components/bookmarks/browser/bookmark_load_details.cc +++ b/components/bookmarks/browser/bookmark_load_details.cc
@@ -37,6 +37,10 @@ BookmarkLoadDetails::BookmarkLoadDetails(BookmarkClient* client) @@ -15,7 +15,7 @@ namespace {
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))));
}
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 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 --- a/components/bookmarks/browser/bookmark_load_details.h
+++ b/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* bb_node() { return bb_node_; }
BookmarkPermanentNode* mobile_folder_node() { return mobile_folder_node_; } BookmarkPermanentNode* mobile_folder_node() { return mobile_folder_node_; }
BookmarkPermanentNode* other_folder_node() { return other_folder_node_; } BookmarkPermanentNode* other_folder_node() { return other_folder_node_; }
+ BookmarkPermanentNode* tabs_collection_folder_node() { return tabs_collection_folder_node_; } + BookmarkPermanentNode* tabs_collection_folder_node() { return tabs_collection_folder_node_; }
TitledUrlIndex* index() { return index_.get(); } // Account permanent nodes (null unless `AddAccountPermanentNodes()` is
std::unique_ptr<TitledUrlIndex> owned_index() { return std::move(index_); } // called).
@@ -112,6 +113,8 @@ class BookmarkLoadDetails { @@ -138,6 +139,7 @@ class BookmarkLoadDetails {
nullptr; raw_ptr<BookmarkPermanentNode> bb_node_;
raw_ptr<BookmarkPermanentNode, DanglingUntriaged> mobile_folder_node_ = raw_ptr<BookmarkPermanentNode> other_folder_node_;
nullptr; raw_ptr<BookmarkPermanentNode> mobile_folder_node_;
+ raw_ptr<BookmarkPermanentNode, DanglingUntriaged> tabs_collection_folder_node_ = + raw_ptr<BookmarkPermanentNode> tabs_collection_folder_node_;
+ nullptr; raw_ptr<BookmarkPermanentNode> account_bb_node_;
LoadManagedNodeCallback load_managed_node_callback_; raw_ptr<BookmarkPermanentNode> account_other_folder_node_;
std::unique_ptr<TitledUrlIndex> index_; raw_ptr<BookmarkPermanentNode> account_mobile_folder_node_;
BookmarkNode::MetaInfoMap model_meta_info_map_;
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
--- a/components/bookmarks/browser/bookmark_model.cc --- a/components/bookmarks/browser/bookmark_model.cc
+++ b/components/bookmarks/browser/bookmark_model.cc +++ b/components/bookmarks/browser/bookmark_model.cc
@@ -817,7 +817,7 @@ bool BookmarkModel::HasBookmarks() { @@ -846,7 +846,7 @@ bool BookmarkModel::HasBookmarks() const {
bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() { bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return bookmark_bar_node_->children().empty() && return bookmark_bar_node_->children().empty() &&
- other_node_->children().empty() && mobile_node_->children().empty(); - other_node_->children().empty() && mobile_node_->children().empty();
+ other_node_->children().empty() && mobile_node_->children().empty() && tabs_collection_node_->children().empty(); + other_node_->children().empty() && mobile_node_->children().empty() && tabs_collection_node_->children().empty();
} }
bool BookmarkModel::IsBookmarked(const GURL& url) { bool BookmarkModel::IsBookmarked(const GURL& url) const {
@@ -1123,6 +1123,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) { @@ -1191,6 +1191,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
bookmark_bar_node_ = details->bb_node(); bookmark_bar_node_ = details->bb_node();
other_node_ = details->other_folder_node(); other_node_ = details->other_folder_node();
mobile_node_ = details->mobile_folder_node(); mobile_node_ = details->mobile_folder_node();
+ tabs_collection_node_ = details->tabs_collection_folder_node(); + tabs_collection_node_ = details->tabs_collection_folder_node();
titled_url_index_->SetNodeSorter( account_bookmark_bar_node_ = details->account_bb_node();
std::make_unique<TypedCountSorter>(client_.get())); account_other_node_ = details->account_other_folder_node();
diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h
--- a/components/bookmarks/browser/bookmark_model.h --- a/components/bookmarks/browser/bookmark_model.h
+++ b/components/bookmarks/browser/bookmark_model.h +++ b/components/bookmarks/browser/bookmark_model.h
@@ -131,6 +131,12 @@ class BookmarkModel final : public BookmarkUndoProvider, @@ -159,6 +159,12 @@ class BookmarkModel final : public BookmarkUndoProvider,
return mobile_node_; // bookmarks in the account storage).
} const BookmarkNode* account_mobile_node() const;
+ // Returns the 'mobile' node. This is NULL until loaded. + // Returns the 'mobile' node. This is NULL until loaded.
+ const BookmarkNode* tabs_collection_node() const { + 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 { bool is_root_node(const BookmarkNode* node) const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return node == root_; return node == root_;
@@ -489,6 +495,7 @@ class BookmarkModel final : public BookmarkUndoProvider, @@ -619,6 +625,7 @@ class BookmarkModel final : public BookmarkUndoProvider,
nullptr; raw_ptr<BookmarkPermanentNode> account_bookmark_bar_node_ = nullptr;
raw_ptr<BookmarkPermanentNode, DanglingUntriaged> other_node_ = nullptr; raw_ptr<BookmarkPermanentNode> account_other_node_ = nullptr;
raw_ptr<BookmarkPermanentNode, DanglingUntriaged> mobile_node_ = nullptr; raw_ptr<BookmarkPermanentNode> account_mobile_node_ = nullptr;
+ raw_ptr<BookmarkPermanentNode> tabs_collection_node_ = nullptr; + raw_ptr<BookmarkPermanentNode> tabs_collection_node_ = nullptr;
// The maximum ID assigned to the bookmark nodes in the model. // 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 diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc
--- a/components/bookmarks/browser/bookmark_node.cc --- a/components/bookmarks/browser/bookmark_node.cc
+++ b/components/bookmarks/browser/bookmark_node.cc +++ b/components/bookmarks/browser/bookmark_node.cc
@@ -60,6 +60,10 @@ const char BookmarkNode::kOtherBookmarksNodeUuid[] = @@ -161,6 +161,8 @@ bool BookmarkPermanentNode::IsTypeVisibleWhenEmpty(Type type) {
const char BookmarkNode::kMobileBookmarksNodeUuid[] = #endif
"4cf2e351-0e85-532b-bb37-df045d8f8d0f";
+// static switch (type) {
+const char BookmarkNode::kTabsCollectionBookmarksNodeUuid[] = + case bookmarks::BookmarkNode::TABS_COLLECTION:
+ "00000000-0000-4000-a000-000000000006"; + return !is_desktop;
+ case BookmarkNode::URL:
// static NOTREACHED_NORETURN();
const char BookmarkNode::kManagedNodeUuid[] = case BookmarkNode::FOLDER:
"323123f4-9381-5aee-80e6-ea5fca2f7672"; @@ -211,6 +213,15 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id) {
@@ -275,6 +279,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id, l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME)));
visible_when_empty));
} }
+// static +// static
+std::unique_ptr<BookmarkPermanentNode> +std::unique_ptr<BookmarkPermanentNode>
+BookmarkPermanentNode::CreateTabsCollectionBookmarks(int64_t id, +BookmarkPermanentNode::CreateTabsCollectionBookmarks(int64_t id) {
+ bool visible_when_empty) {
+ // base::WrapUnique() used because the constructor is private. + // base::WrapUnique() used because the constructor is private.
+ return base::WrapUnique(new BookmarkPermanentNode( + return base::WrapUnique(new BookmarkPermanentNode(
+ id, TABS_COLLECTION, base::Uuid::ParseLowercase(kTabsCollectionBookmarksNodeUuid), + id, TABS_COLLECTION, base::Uuid::ParseLowercase(kTabsCollectionBookmarksNodeUuid),
+ l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_TABS_COLLECTION_FOLDER_NAME), + l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_TABS_COLLECTION_FOLDER_NAME)));
+ visible_when_empty));
+} +}
+ +
BookmarkPermanentNode::BookmarkPermanentNode(int64_t id, BookmarkPermanentNode::BookmarkPermanentNode(int64_t id,
@@ -667,41 +699,94 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
MOBILE MOBILE
}; };
@@ -52,6 +53,7 @@ class BookmarkNode : public ui::TreeNode<BookmarkNode>, public TitledUrlNode { @@ -231,6 +232,8 @@ class BookmarkPermanentNode : public BookmarkNode {
static const char kBookmarkBarNodeUuid[]; int64_t id);
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 {
static std::unique_ptr<BookmarkPermanentNode> CreateMobileBookmarks( static std::unique_ptr<BookmarkPermanentNode> CreateMobileBookmarks(
int64_t id, int64_t id);
bool visible_when_empty);
+ static std::unique_ptr<BookmarkPermanentNode> CreateTabsCollectionBookmarks( + static std::unique_ptr<BookmarkPermanentNode> CreateTabsCollectionBookmarks(
+ int64_t id, + int64_t id);
+ bool visible_when_empty);
// Constructor is private to disallow the construction of permanent nodes // Returns whether the permanent node of type `type` should be visible even
// other than the well-known ones, see factory methods. // 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 diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks/browser/model_loader.cc
--- a/components/bookmarks/browser/model_loader.cc --- a/components/bookmarks/browser/model_loader.cc
+++ b/components/bookmarks/browser/model_loader.cc +++ b/components/bookmarks/browser/model_loader.cc
@@ -60,7 +60,8 @@ void LoadBookmarks(const base::FilePath& path, @@ -71,6 +71,8 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
std::string sync_metadata_str; BookmarkPermanentNode::CreateOtherBookmarks(0);
BookmarkCodec codec; std::unique_ptr<BookmarkPermanentNode> account_mobile_folder_node =
codec.Decode(*root_dict, details->bb_node(), details->other_folder_node(), BookmarkPermanentNode::CreateMobileBookmarks(0);
- details->mobile_folder_node(), &max_node_id, + std::unique_ptr<BookmarkPermanentNode> tabs_collection_folder_node =
+ details->mobile_folder_node(), + BookmarkPermanentNode::CreateTabsCollectionBookmarks(0);
+ details->tabs_collection_folder_node(), &max_node_id,
&sync_metadata_str); std::optional<base::Value::Dict> root_dict =
details->set_sync_metadata_str(std::move(sync_metadata_str)); LoadFileToDict(account_file_path);
details->set_max_id(std::max(max_node_id, details->max_id())); @@ -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 diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc
--- a/components/sync_bookmarks/bookmark_specifics_conversions.cc --- a/components/sync_bookmarks/bookmark_specifics_conversions.cc
+++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc +++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc
@@ -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::BOOKMARK_BAR:
case bookmarks::BookmarkNode::OTHER_NODE: case bookmarks::BookmarkNode::OTHER_NODE:
case bookmarks::BookmarkNode::MOBILE: 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; 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 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 --- a/chrome/android/java/res/menu/custom_tabs_menu.xml
+++ b/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" <item android:id="@+id/add_to_homescreen_id"
android:title="@string/menu_add_to_homescreen" android:title="@string/menu_add_to_homescreen"
android:orderInCategory="2" /> 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 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 --- a/chrome/android/java/res/menu/main_menu.xml
+++ b/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" <item android:id="@+id/add_to_homescreen_id"
android:title="@string/menu_add_to_homescreen" android:title="@string/menu_add_to_homescreen"
android:icon="@drawable/ic_add_to_home_screen" /> 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -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); NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
} }
RecordUserAction.record("MobileMenuDownloadManager"); 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -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); 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
@@ -544,6 +544,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate @@ -585,6 +585,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
isChromeScheme, isFileScheme, isContentScheme, isIncognito, url)); isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isChromeScheme); 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); 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
@@ -240,6 +240,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat @@ -295,6 +295,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
updateRequestDesktopSiteMenuItem( updateRequestDesktopSiteMenuItem(
menu, currentTab, requestDesktopSiteVisible, isChromeScheme); 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 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -309,6 +309,10 @@ CHAR_LIMIT guidelines: @@ -317,6 +317,10 @@ CHAR_LIMIT guidelines:
USB USB
</message> </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]"> <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 You and Google
-- --
2.25.1
@@ -2,35 +2,77 @@ From: uazo <uazo@users.noreply.github.com>
Date: Mon, 21 Aug 2023 14:03:25 +0000 Date: Mon, 21 Aug 2023 14:03:25 +0000
Subject: Add option to disable snapshots 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 +++ .../java/res/xml/privacy_preferences.xml | 5 +++
.../chrome/browser/app/ChromeActivity.java | 3 +- .../chrome/browser/app/ChromeActivity.java | 3 +-
.../layouts/content/TabContentManager.java | 7 +++- .../layouts/content/TabContentManager.java | 7 +++-
.../privacy/settings/PrivacySettings.java | 42 ++++++++++++++++++- .../privacy/settings/PrivacySettings.java | 42 ++++++++++++++++++-
.../strings/android_chrome_strings.grd | 8 ++++ .../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 diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
@@ -314,8 +314,10 @@ class TabGridViewBinder { @@ -327,9 +327,12 @@ class TabGridViewBinder {
updateThumbnailMatrix(thumbnail, result, thumbnailSize); // Adjust bitmap to thumbnail.
thumbnail.setImageBitmap(result); TabUtils.setBitmapAndUpdateImageMatrix(thumbnail, result, thumbnailSize);
} else if (isMostRecentRequest) { } else if (isMostRecentRequest) {
- // If the most recent request is a null bitmap ensure a placeholder is visible. - // If the most recent request is a null bitmap ensure a placeholder is
- thumbnail.setImageDrawable(null); - // visible.
+ TabListFaviconProvider.TabFavicon tabFavicon = model.get(TabProperties.FAVICON); - thumbnail.setImageDrawable(null);
+ thumbnail.setScaleType(ImageView.ScaleType.CENTER); + TabListFaviconProvider.TabFavicon tabFavicon = model.get(TabProperties.FAVICON);
+ thumbnail.setImageDrawable( + if (tabFavicon != null) {
+ isSelected ? tabFavicon.getSelectedDrawable() : tabFavicon.getDefaultDrawable()); + thumbnail.setScaleType(ImageView.ScaleType.CENTER);
} + thumbnail.setImageDrawable(
}; + isSelected ? tabFavicon.getSelectedDrawable() : tabFavicon.getDefaultDrawable());
if (TabUiFeatureUtilities.isTabGroupsAndroidContinuationEnabled(view.getContext()) + }
}
};
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 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -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:title="@string/open_external_links_incognito_title"
android:summary="@string/open_external_links_incognito_summary" android:summary="@string/open_external_links_incognito_summary"
android:defaultValue="false" /> android:defaultValue="false" />
@@ -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:summary="@string/tabgrid_use_icons_summary"
+ android:defaultValue="false" /> + android:defaultValue="false" />
<Preference <Preference
android:key="privacy_sandbox" android:key="preload_pages"
android:title="@string/prefs_privacy_sandbox" 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -144,6 +144,7 @@ import org.chromium.chrome.browser.page_info.ChromePageInfoHighlight; @@ -145,6 +145,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.printing.TabPrinter; import org.chromium.chrome.browser.printing.TabPrinter;
+import org.chromium.chrome.browser.privacy.settings.PrivacySettings; +import org.chromium.chrome.browser.privacy.settings.PrivacySettings;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.readaloud.ReadAloudController;
import org.chromium.chrome.browser.selection.SelectionPopupBackPressHandler; import org.chromium.chrome.browser.selection.SelectionPopupBackPressHandler;
import org.chromium.chrome.browser.settings.SettingsLauncherImpl; @@ -704,7 +705,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -642,7 +643,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(); getBrowserControlsManager()
setTabContentManager(new TabContentManager(this, getContentOffsetProvider(),
- !SysUtils.isLowEndDevice(),
+ !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false),
tabModelSelector != null ? tabModelSelector::getTabById : null));
getBrowserControlsManager().initialize(
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 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 --- 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 +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
@@ -331,9 +331,12 @@ public class TabContentManager { @@ -326,11 +326,14 @@ 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.
*/ */
- public void getTabThumbnailWithCallback(@NonNull int tabId, @NonNull Size thumbnailSize, public void getTabThumbnailWithCallback(
+ public void getTabThumbnailWithCallback(@NonNull int tabId, @NonNull Size thumbnailSize, // @NonNull int tabId,
@NonNull Callback<Bitmap> callback, boolean forceUpdate, boolean writeBack) { - @NonNull Size thumbnailSize,
+ @NonNull Size thumbnailSize, //
@NonNull Callback<Bitmap> callback,
boolean forceUpdate,
boolean writeBack) {
- if (!mSnapshotsEnabled) return; - if (!mSnapshotsEnabled) return;
+ if (!mSnapshotsEnabled) { + if (!mSnapshotsEnabled) {
+ callback.onResult(null); + callback.onResult(null);
+ return; + return;
+ } + }
// TODO(crbug/1444782): Remove forceUpdate and writeBack params from here and don't // TODO(crbug/1444782): Remove forceUpdate and writeBack params once the following features
// trigger a captureThumbnail. This should be feasible once the // 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -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.ChromeSwitchPreference;
import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; 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.ArrayList;
import java.util.List; import java.util.List;
@@ -77,7 +82,15 @@ import java.util.List; /** Fragment to keep track of the all the privacy related preferences. */
*/ public class PrivacySettings extends ChromeBaseSettingsFragment
public class PrivacySettings extends PreferenceFragmentCompat - implements Preference.OnPreferenceChangeListener {
implements Preference.OnPreferenceChangeListener, FragmentHelpAndFeedbackLauncher, + implements Preference.OnPreferenceChangeListener, INeedSnackbarManager {
- ProfileDependentSetting {
+ ProfileDependentSetting, INeedSnackbarManager {
+ private SnackbarManager mSnackbarManager; + private SnackbarManager mSnackbarManager;
+ private Snackbar mSnackbar; + 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_CAN_MAKE_PAYMENT = "can_make_payment";
private static final String PREF_PRELOAD_PAGES = "preload_pages"; private static final String PREF_PRELOAD_PAGES = "preload_pages";
private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
@@ -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), + 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); Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE);
// Record the launch of PG from the S&P link-row entry point // Record the launch of PG from the S&P link-row entry point
privacyGuidePreference.setOnPreferenceClickListener(preference -> { privacyGuidePreference.setOnPreferenceClickListener(
@@ -297,6 +325,7 @@ public class PrivacySettings extends PreferenceFragmentCompat @@ -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_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito"; public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito";
@@ -142,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -320,6 +349,13 @@ public class PrivacySettings extends PreferenceFragmentCompat @@ -346,6 +375,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue); sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue);
sharedPreferencesEditor.apply(); sharedPreferencesEditor.apply();
@@ -156,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
} }
return true; return true;
} }
@@ -360,6 +396,10 @@ public class PrivacySettings extends PreferenceFragmentCompat @@ -386,6 +422,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
: R.string.text_off); : 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 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -5239,6 +5239,14 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</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. Your <ph name="FQDN">%1$s<ex>www.amazon.com</ex></ph> timer ran out. It'll start again tomorrow.
</message> </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…')."> <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 Tab management
-- --
2.25.1
+129 -89
View File
@@ -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 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
.../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++++++ .../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/ChromePreferenceKeys.java | 1 +
.../preferences/ChromeSharedPreferences.java | 8 ++++++++
.../LegacyChromePreferenceKeys.java | 1 + .../LegacyChromePreferenceKeys.java | 1 +
.../omnibox/LocationBarCoordinator.java | 2 +- .../omnibox/LocationBarCoordinator.java | 2 +-
.../strings/android_chrome_strings.grd | 6 ++++++ .../strings/android_chrome_strings.grd | 7 +++++++
.../toolbar/top/ToolbarControlContainer.java | 5 ++---
components/BUILD.gn | 6 +++--- components/BUILD.gn | 6 +++---
.../res/xml/accessibility_preferences.xml | 5 +++++ .../res/xml/accessibility_preferences.xml | 5 +++++
.../accessibility/AccessibilitySettings.java | 11 +++++++++++ .../accessibility/AccessibilitySettings.java | 10 ++++++++++
.../AccessibilitySettingsDelegate.java | 2 ++ .../AccessibilitySettingsDelegate.java | 2 ++
ui/android/BUILD.gn | 2 ++ .../chromium/ui/base/DeviceFormFactor.java | 6 ++++++
.../chromium/ui/base/DeviceFormFactor.java | 5 +++++ 14 files changed, 71 insertions(+), 6 deletions(-)
12 files changed, 58 insertions(+), 7 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
@@ -77,6 +77,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting @@ -94,6 +94,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
return new ReaderForAccessibilityDelegate(mProfile); return new TextSizeContrastAccessibilityDelegate(getBrowserContextHandle());
} }
+ private static class ForceTabletUIDelegate implements BooleanPreferenceDelegate { + private static class ForceTabletUIDelegate implements BooleanPreferenceDelegate {
+ @Override + @Override
+ public boolean isEnabled() { + public boolean isEnabled() {
+ return SharedPreferencesManager.getInstance().readBoolean( + return ChromeSharedPreferences.getInstance().readBoolean(
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false); + ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false);
+ } + }
+ +
+ @Override + @Override
+ public void setEnabled(boolean value) { + public void setEnabled(boolean value) {
+ SharedPreferencesManager.getInstance().writeBoolean( + ChromeSharedPreferences.getInstance().writeBoolean(
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, value); + 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 @Override
public void addExtraPreferences(PreferenceFragmentCompat fragment) { public void addExtraPreferences(PreferenceFragmentCompat fragment) {
if (ImageDescriptionsController.getInstance().shouldShowImageDescriptionsMenuItem()) { 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 diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -386,6 +386,7 @@ public final class ChromePreferenceKeys { @@ -270,6 +270,7 @@ public final class ChromePreferenceKeys {
AccessibilityConstants.FONT_USER_SET_FORCE_ENABLE_ZOOM; AccessibilityConstants.FONT_USER_SET_FORCE_ENABLE_ZOOM;
public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info"; 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"; + public static final String FLAGS_FORCE_TABLET_UI_ENABLED = "force_tablet_ui_enabled";
/** Keys used to save settings related to homepage. */ /** 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 diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
@@ -65,6 +65,7 @@ public class LegacyChromePreferenceKeys { @@ -58,6 +58,7 @@ public class LegacyChromePreferenceKeys {
ChromePreferenceKeys.FLAGS_CACHED_SWAP_PIXEL_FORMAT_TO_FIX_CONVERT_FROM_TRANSLUCENT, ChromePreferenceKeys.FIRST_RUN_LIGHTWEIGHT_FLOW_COMPLETE,
ChromePreferenceKeys.FLAGS_CACHED_TAB_GROUPS_ANDROID_ENABLED, ChromePreferenceKeys.FIRST_RUN_SKIP_WELCOME_PAGE,
ChromePreferenceKeys.FONT_USER_FONT_SCALE_FACTOR, ChromePreferenceKeys.FONT_USER_FONT_SCALE_FACTOR,
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, + ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED,
ChromePreferenceKeys.FONT_USER_SET_FORCE_ENABLE_ZOOM, ChromePreferenceKeys.FONT_USER_SET_FORCE_ENABLE_ZOOM,
ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO, 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 diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
@@ -669,7 +669,7 @@ public class LocationBarCoordinator @@ -771,7 +771,7 @@ public class LocationBarCoordinator
} }
private boolean isTabletWindow() { 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 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1675,6 +1675,12 @@ Your Google account may have other forms of browsing history like searches and a @@ -1564,6 +1564,13 @@ 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."> Manage third-party cookies and tracking protections
Temporarily links this data to your Google Account when youre signed in, to protect you across Google apps
</message> </message>
+ <message name="IDS_FORCE_TABLET_UI_SUMMARY" desc="Summary of the preference that allows the user to force chromium to use tablet UI."> + <message name="IDS_FORCE_TABLET_UI_SUMMARY" desc="Summary of the preference that allows the user to force chromium to use tablet UI.">
+ Open chromium in Tablet Mode + Open chromium in Tablet Mode
+ </message> + </message>
+ <message name="IDS_FORCE_TABLET_UI_TITLE" desc="Title of the preference that allows the user to update force tablet UI settings."> + <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 + Force Tablet Mode
+ </message> + </message>
+
<!-- Safety check --> <!-- Safety check -->
<message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]"> <message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]">
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 Safety check
--- 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);
diff --git a/components/BUILD.gn b/components/BUILD.gn diff --git a/components/BUILD.gn b/components/BUILD.gn
--- a/components/BUILD.gn --- a/components/BUILD.gn
+++ b/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 # Omit Lacros because it allows //components to depend on //chrome, which in
# turn depends on //extensions. # turn depends on //extensions.
@@ -124,7 +184,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
disallowed_extension_deps_ = [ disallowed_extension_deps_ = [
# Components should largely not depend on //extensions. Since // extensions # Components should largely not depend on //extensions. Since // extensions
# is not a component target and is linked with //chrome, depending on most # 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. # On other platforms, no components should depend on Chrome.
# Since //chrome depends on //extensions, we also only assert_no_deps on # Since //chrome depends on //extensions, we also only assert_no_deps on
# extensions targets for non-lacros builds. # 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 = [ "//chrome/*" ]
assert_no_deps += disallowed_extension_deps_ 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. # dependency. On other platforms, no components should depend on Chrome.
# Since //chrome depends on //extensions, we also only assert_no_deps on # Since //chrome depends on //extensions, we also only assert_no_deps on
# extensions targets for non-lacros builds. # 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 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
@@ -36,6 +36,11 @@ found in the LICENSE file. @@ -40,6 +40,11 @@ found in the LICENSE file.
android:summary="@string/accessibility_tab_switcher_summary" android:summary="@string/reader_for_accessibility_summary"
android:title="@string/accessibility_tab_switcher_title" /> 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:key="force_tablet_ui"
+ android:summary="@string/force_tablet_ui_summary" + android:summary="@string/force_tablet_ui_summary"
+ android:title="@string/force_tablet_ui_title" /> + 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 diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
@@ -14,6 +14,7 @@ import androidx.preference.PreferenceFragmentCompat; @@ -32,6 +32,8 @@ public class AccessibilitySettings extends 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";
public static final String PREF_CAPTIONS = "captions"; public static final String PREF_CAPTIONS = "captions";
public static final String PREF_ZOOM_INFO = "zoom_info";
+ private BooleanPreferenceDelegate mForceTabletUIDelegate; + private BooleanPreferenceDelegate mForceTabletUIDelegate;
+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui"; + static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
private TextScalePreference mTextScalePref; private TextScalePreference mTextScalePref;
private PageZoomPreference mPageZoomDefaultZoomPref; private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomAlwaysShowPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
@@ -109,6 +112,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat @@ -129,6 +131,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
getPreferenceScreen().removePreference(readerForAccessibilityPref); getPreferenceScreen().removePreference(readerForAccessibilityPref);
} }
+ ChromeBaseCheckBoxPreference forceTabletUiPref = + ChromeSwitchPreference forceTabletUiPref =
+ (ChromeBaseCheckBoxPreference) findPreference(PREF_FORCE_TABLET_UI); + (ChromeSwitchPreference) findPreference(PREF_FORCE_TABLET_UI);
+ mForceTabletUIDelegate = mDelegate.getForceTabletUIDelegate(); + mForceTabletUIDelegate = mDelegate.getForceTabletUIDelegate();
+ forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled()); + forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled());
+ forceTabletUiPref.setOnPreferenceChangeListener(this); + forceTabletUiPref.setOnPreferenceChangeListener(this);
+ +
ChromeSwitchPreference accessibilityTabSwitcherPref = Preference captions = findPreference(PREF_CAPTIONS);
(ChromeSwitchPreference) findPreference( captions.setOnPreferenceClickListener(
AccessibilityConstants.ACCESSIBILITY_TAB_SWITCHER); preference -> {
@@ -165,6 +174,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat @@ -190,6 +198,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
mFontSizePrefs.setUserFontScaleFactor((Float) newValue); mFontSizePrefs.setUserFontScaleFactor((Float) newValue);
} else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { } else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue); 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 diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
@@ -44,6 +44,8 @@ public interface AccessibilitySettingsDelegate { @@ -52,6 +52,8 @@ public interface AccessibilitySettingsDelegate {
*/ */
BooleanPreferenceDelegate getReaderForAccessibilityDelegate(); IntegerPreferenceDelegate getTextSizeContrastAccessibilityDelegate();
+ BooleanPreferenceDelegate getForceTabletUIDelegate(); + BooleanPreferenceDelegate getForceTabletUIDelegate();
+ +
/** /**
* Allows the embedder to add more preferences to the preference screen. * 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 diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
--- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java --- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
+++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java +++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
@@ -12,6 +12,8 @@ import androidx.annotation.VisibleForTesting; @@ -31,6 +31,11 @@ public class DeviceFormFactor {
import org.chromium.base.ContextUtils; /** Matches the value set in res/values-sw720dp/values.xml */
import org.chromium.base.ThreadUtils; private static final int SCREEN_BUCKET_LARGET_TABLET = 3;
import org.chromium.base.annotations.CalledByNative;
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; + private static boolean mForceTabletUI;
+import org.chromium.chrome.browser.preferences.SharedPreferencesManager; + public static void setForceTabletUI(boolean forceTabletUI) {
import org.chromium.ui.R; + mForceTabletUI = forceTabletUI;
import org.chromium.ui.display.DisplayAndroid; + }
import org.chromium.ui.display.DisplayUtil; +
@@ -62,6 +64,9 @@ public class DeviceFormFactor { /**
* 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 * E.g. http://developer.samsung.com/samsung-dex/testing
*/ */
public static boolean isNonMultiDisplayContextOnTablet(Context context) { public static boolean isNonMultiDisplayContextOnTablet(Context context) {
+ if (SharedPreferencesManager.getInstance().readBoolean( + if (mForceTabletUI) return true;
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false))
+ return true;
return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET; 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 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -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:title="@string/incognito_settings_title"
android:summary="@string/incognito_settings_summary" android:summary="@string/incognito_settings_summary"
android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/> android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/>
@@ -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:title="@string/close_tabs_on_exit_title"
+ android:summary="@string/close_tabs_on_exit_summary" + android:summary="@string/close_tabs_on_exit_summary"
+ android:defaultValue="false" /> + android:defaultValue="false" />
<Preference <PreferenceCategory
android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" android:key="services_category"
android:key="do_not_track" 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -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.Callback;
import org.chromium.base.CallbackController; import org.chromium.base.CallbackController;
import org.chromium.base.CommandLine; 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.IntentUtils;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.base.MemoryPressureListener; 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 = boolean hadCipherData =
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState()); 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);
+ CommandLine.getInstance().hasSwitch(ChromeSwitches.NO_RESTORE_STATE) || + CommandLine.getInstance().hasSwitch(ChromeSwitches.NO_RESTORE_STATE) ||
+ ContextUtils.getAppSharedPreferences().getBoolean(PREF_CLOSE_TABS_ON_EXIT, false); + ContextUtils.getAppSharedPreferences().getBoolean(PREF_CLOSE_TABS_ON_EXIT, false);
boolean shouldShowHomeSurfaceAtStartupOnTablet = false; boolean shouldShowNtpAsHomeSurfaceAtStartup = false;
final AtomicBoolean isActiveUrlNTP = new AtomicBoolean(false); final AtomicBoolean isActiveUrlNtp = new AtomicBoolean(false);
if (noRestoreState) { 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -59,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
import android.os.Bundle; import android.os.Bundle;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.style.ForegroundColorSpan; 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.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction; 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.base.BuildInfo;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.enterprise.util.ManagedBrowserUtils; import org.chromium.chrome.browser.enterprise.util.ManagedBrowserUtils;
import org.chromium.chrome.browser.feedback.FragmentHelpAndFeedbackLauncher; import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -92,6 +95,8 @@ public class PrivacySettings extends PreferenceFragmentCompat @@ -87,6 +90,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private final SharedPreferencesManager mSharedPreferencesManager = private final SharedPreferencesManager mSharedPreferencesManager =
SharedPreferencesManager.getInstance(); ChromeSharedPreferences.getInstance();
+ private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit"; + private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
+ +
private ManagedPreferenceDelegate mManagedPreferenceDelegate; private ManagedPreferenceDelegate mManagedPreferenceDelegate;
private IncognitoLockSettings mIncognitoLockSettings; 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 @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey(); 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.putBoolean(PREF_CLOSE_TABS_ON_EXIT, (boolean)newValue);
+ sharedPreferencesEditor.apply(); + sharedPreferencesEditor.apply();
+ } else if (PREF_CAN_MAKE_PAYMENT.equals(key)) { + } 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)) { } else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
UserPrefs.get(mProfile).setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue); @@ -316,6 +325,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -290,6 +299,11 @@ public class PrivacySettings extends PreferenceFragmentCompat
PreloadPagesSettingsFragment.getPreloadPagesSummaryString(getContext())); 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 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4653,6 +4653,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</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."> <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 IMAGE
</message> </message>
@@ -119,4 +119,3 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
LINK LINK
</message> </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 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 +++++ .../java/res/xml/homepage_preferences.xml | 5 +++++
.../chrome/browser/homepage/HomepageManager.java | 16 ++++++++++++++++ .../chrome/browser/homepage/HomepageManager.java | 16 ++++++++++++++++
.../homepage/settings/HomepageSettings.java | 12 ++++++++++++ .../homepage/settings/HomepageSettings.java | 12 ++++++++++++
.../chrome/browser/metrics/LaunchMetrics.java | 1 - .../chrome/browser/metrics/LaunchMetrics.java | 1 -
.../browser/tabmodel/ChromeTabCreator.java | 7 +++++++ .../browser/tabmodel/ChromeTabCreator.java | 8 ++++++++
.../preferences/ChromePreferenceKeys.java | 1 + .../preferences/ChromePreferenceKeys.java | 1 +
.../preferences/LegacyChromePreferenceKeys.java | 1 + .../preferences/LegacyChromePreferenceKeys.java | 1 +
.../android/strings/android_chrome_strings.grd | 3 +++ .../android/strings/android_chrome_strings.grd | 3 +++
chrome/browser/ui/browser_ui_prefs.cc | 2 ++ chrome/browser/ui/browser_ui_prefs.cc | 2 ++
chrome/common/pref_names.cc | 4 ++++ chrome/common/pref_names.h | 4 ++++
chrome/common/pref_names.h | 1 + 12 files changed, 67 insertions(+), 3 deletions(-)
11 files changed, 52 insertions(+), 1 deletion(-)
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 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 --- a/chrome/android/java/res/xml/homepage_preferences.xml
+++ b/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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
@@ -227,6 +227,22 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat @@ -233,6 +233,22 @@ public class HomepageManager
notifyHomepageUpdated(); 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
@@ -22,6 +22,7 @@ import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; @@ -22,6 +22,7 @@ import org.chromium.components.browser_ui.settings.SettingsUtils;
import org.chromium.components.browser_ui.settings.SettingsUtils;
import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.components.embedder_support.util.UrlUtilities;
import org.chromium.components.url_formatter.UrlFormatter; import org.chromium.components.url_formatter.UrlFormatter;
import org.chromium.url.GURL;
+import org.chromium.components.embedder_support.util.UrlConstants; +import org.chromium.components.embedder_support.util.UrlConstants;
/** /** Fragment that allows the user to configure homepage related preferences. */
* Fragment that allows the user to configure homepage related preferences. public class HomepageSettings extends ChromeBaseSettingsFragment {
@@ -32,6 +33,8 @@ public class HomepageSettings extends PreferenceFragmentCompat { @@ -30,6 +31,8 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
@VisibleForTesting @VisibleForTesting
public static final String PREF_HOMEPAGE_RADIO_GROUP = "homepage_radio_group"; public static final String PREF_HOMEPAGE_RADIO_GROUP = "homepage_radio_group";
+ private static final String PREF_NTP_HOMEPAGE_SWITCH = "ntp_is_homepage_switch"; + private static final String PREF_NTP_HOMEPAGE_SWITCH = "ntp_is_homepage_switch";
+ +
/** private HomepageManager mHomepageManager;
* Delegate used to mark that the homepage is being managed. private RadioButtonGroupHomepagePreference mRadioButtons;
* Created for {@link org.chromium.chrome.browser.settings.HomepagePreferences}
@@ -72,6 +75,15 @@ public class HomepageSettings extends PreferenceFragmentCompat { @@ -64,6 +67,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
}); });
mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup()); mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup());
+ ChromeSwitchPreference mNTPIsHomepageSwitch = + 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java --- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
@@ -103,7 +103,6 @@ public class LaunchMetrics { @@ -112,7 +112,6 @@ public class LaunchMetrics {
boolean showHomeButton, boolean homepageIsNtp, String homepageUrl) { public static void recordHomePageLaunchMetrics(
if (homepageUrl == null) { boolean showHomeButton, boolean homepageIsNtp, GURL homepageGurl) {
homepageUrl = ""; if (homepageGurl.isEmpty()) {
- assert !showHomeButton : "Homepage should be disabled for a null URL"; - assert !showHomeButton : "Homepage should be disabled for an empty GURL";
} }
LaunchMetricsJni.get().recordHomePageLaunchMetrics( LaunchMetricsJni.get()
showHomeButton, homepageIsNtp, homepageUrl); .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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
@@ -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.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.flags.ChromeFeatureList; 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.homepage.HomepageManager;
import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin; import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin;
import org.chromium.chrome.browser.ntp.NewTabPageUtils; import org.chromium.chrome.browser.ntp.NewTabPageUtils;
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; 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. * @return the created tab.
*/ */
public Tab launchUrl(String url, @TabLaunchType int type, Intent intent, long intentTimestamp) { public Tab launchUrl(String url, @TabLaunchType int type, Intent intent, long intentTimestamp) {
+ if (!mIncognito && url.equals(UrlConstants.NTP_URL)) { + if (!mIncognito && url.equals(UrlConstants.NTP_URL)) {
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) { + if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
+ 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 diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -397,6 +397,7 @@ public final class ChromePreferenceKeys { @@ -283,6 +283,7 @@ public final class ChromePreferenceKeys {
public static final String HOMEPAGE_PARTNER_CUSTOMIZED_DEFAULT_GURL = public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP";
"Chrome.Homepage.PartnerCustomizedDefaultGurl"; public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled";
+ public static final String HOMEPAGE_NTP_IS_HOMEPAGE = "newtabpage_is_homepage"; + 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 diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
@@ -70,6 +70,7 @@ public class LegacyChromePreferenceKeys { @@ -62,6 +62,7 @@ public class LegacyChromePreferenceKeys {
ChromePreferenceKeys.HOMEPAGE_CUSTOM_URI, ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO,
ChromePreferenceKeys.HOMEPAGE_ENABLED, ChromePreferenceKeys.HOMEPAGE_ENABLED,
ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI, ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI,
+ ChromePreferenceKeys.HOMEPAGE_NTP_IS_HOMEPAGE, + 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 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -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."> <message name="IDS_CLEAR_BROWSING_DATA_TAB_PERIOD_HOUR" desc="The option to delete browsing data from the last hour.">
Last hour Last hour
</message> </message>
@@ -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 diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
--- a/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -65,6 +65,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { @@ -73,6 +73,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
GetHomeButtonAndHomePageIsNewTabPageFlags()); GetHomeButtonAndHomePageIsNewTabPageFlags());
registry->RegisterBooleanPref(prefs::kShowHomeButton, false, registry->RegisterBooleanPref(prefs::kShowHomeButton, false,
GetHomeButtonAndHomePageIsNewTabPageFlags()); GetHomeButtonAndHomePageIsNewTabPageFlags());
+ registry->RegisterBooleanPref(prefs::kNewTabPageIsHomePage, false, + registry->RegisterBooleanPref(prefs::kNewTabPageIsHomePage, false,
+ GetHomeButtonAndHomePageIsNewTabPageFlags()); + PrefRegistry::NO_REGISTRATION_FLAGS);
registry->RegisterInt64Pref(prefs::kDefaultBrowserLastDeclined, 0); registry->RegisterInt64Pref(prefs::kDefaultBrowserLastDeclined, 0);
bool reset_check_default = false; 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 diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
--- a/chrome/common/pref_names.h --- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h
@@ -372,6 +372,7 @@ extern const char kRestrictedManagedGuestSessionExtensionCleanupExemptList[]; @@ -1285,6 +1285,10 @@ inline constexpr char kUsedPolicyCertificates[] =
extern const char kUsedPolicyCertificates[]; // visible on the toolbar.
#endif // BUILDFLAG(IS_CHROMEOS) inline constexpr char kShowHomeButton[] = "browser.show_home_button";
extern const char kShowHomeButton[];
+extern const char kNewTabPageIsHomePage[]; +// A boolean specifying whether opening a new tab should open the Home page
extern const char kSpeechRecognitionFilterProfanities[]; +// instead of the New Tab page.
extern const char kAllowedDomainsForApps[]; +inline constexpr char kNewTabPageIsHomePage[] = "newtabpage_is_homepage";
#if BUILDFLAG(IS_CHROMEOS_LACROS) +
// 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
+103
View File
@@ -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;
}
--
@@ -2,6 +2,7 @@ From: uazo <uazo@users.noreply.github.com>
Date: Thu, 16 Feb 2023 15:28:16 +0000 Date: Thu, 16 Feb 2023 15:28:16 +0000
Subject: Add setting to clear data on exit 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/android/chrome_java_sources.gni | 1 +
.../chrome/browser/ChromeTabbedActivity.java | 7 +- .../chrome/browser/ChromeTabbedActivity.java | 7 +-
@@ -15,25 +16,26 @@ Subject: Add setting to clear data on exit
.../api/settings_private/prefs_util.cc | 17 +++++ .../api/settings_private/prefs_util.cc | 17 +++++
.../browser/profiles/ProfileManagerUtils.java | 5 ++ .../browser/profiles/ProfileManagerUtils.java | 5 ++
.../profiles/android/profile_manager_utils.cc | 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 + chrome/browser/profiles/profile_manager.h | 2 +
.../clear_browsing_data_dialog.html | 44 +++++++++++ .../clear_browsing_data_dialog.html | 44 +++++++++++
.../clear_browsing_data_dialog.ts | 1 + .../clear_browsing_data_dialog.ts | 2 +
.../strings/android_chrome_strings.grd | 3 + .../strings/android_chrome_strings.grd | 3 +
.../settings_localized_strings_provider.cc | 1 + .../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 +++ .../core/browsing_data_policies_utils.h | 11 +++
.../browsing_data/core/browsing_data_utils.cc | 34 +++++++++ .../browsing_data/core/browsing_data_utils.cc | 34 +++++++++
.../core/clear_browsing_data_tab.h | 2 +- .../core/clear_browsing_data_tab.h | 2 +-
components/browsing_data/core/pref_names.cc | 27 +++++++ components/browsing_data/core/pref_names.cc | 17 +++++
components/browsing_data/core/pref_names.h | 9 +++ components/browsing_data/core/pref_names.h | 10 +++
24 files changed, 316 insertions(+), 14 deletions(-) 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 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 diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni
@@ -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/ClearBrowsingDataFragmentAdvanced.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -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.QuickDeleteController;
import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl;
import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate; import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate;
+import org.chromium.chrome.browser.profiles.ProfileManagerUtils; +import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler; import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler;
import org.chromium.chrome.browser.read_later.ReadingListUtils;
import org.chromium.chrome.browser.reengagement.ReengagementNotificationController; 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(); Intent intent = getIntent();
boolean hadCipherData = 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 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 --- 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 +++ 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 abstract @ClearBrowsingDataTab int getClearBrowsingDataTabType();
+ protected boolean shouldClearBrowsingData() { + 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 * Decides whether a given dialog option should be selected when the dialog is initialized.
* in the array. *
@@ -515,6 +519,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat @@ -514,6 +518,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
* options. * options.
*/ */
private void onClearButtonClicked() { private void onClearButtonClicked() {
@@ -87,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
if (shouldShowImportantSitesDialog()) { if (shouldShowImportantSitesDialog()) {
showImportantDialogThenClear(); showImportantDialogThenClear();
return; 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); Button clearButton = (Button) getView().findViewById(R.id.clear_button);
boolean isEnabled = !getSelectedOptions().isEmpty(); boolean isEnabled = !getSelectedOptions().isEmpty();
clearButton.setEnabled(isEnabled); 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 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 --- 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 +++ 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 public class ClearBrowsingDataTabsFragment extends Fragment implements ProfileDependentSetting {
extends Fragment implements FragmentHelpAndFeedbackLauncher {
- public static final int CBD_TAB_COUNT = 2; - public static final int CBD_TAB_COUNT = 2;
+ public static final int CBD_TAB_COUNT = 3; + public static final int CBD_TAB_COUNT = 3;
private Profile mProfile;
private ClearBrowsingDataFetcher mFetcher; private ClearBrowsingDataFetcher mFetcher;
private HelpAndFeedbackLauncher mHelpAndFeedbackLauncher; @@ -93,6 +93,8 @@ public class ClearBrowsingDataTabsFragment extends Fragment implements ProfileDe
@@ -93,6 +93,8 @@ public class ClearBrowsingDataTabsFragment
return getActivity().getString(R.string.clear_browsing_data_basic_tab_title); return getActivity().getString(R.string.clear_browsing_data_basic_tab_title);
case 1: case 1:
return getActivity().getString(R.string.prefs_section_advanced); 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: default:
throw new RuntimeException("invalid position: " + position); 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: case 1:
fragment = new ClearBrowsingDataFragmentAdvanced(); fragment = new ClearBrowsingDataFragmentAdvanced();
break; 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 diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
--- a/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp
@@ -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"> <message name="IDS_SETTINGS_CLEAR_BROWSING_DATA" desc="Text for clear browsing data button in Privacy options">
Clear browsing data Clear browsing data
</message> </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."> + <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 + At Close
+ </message> + </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 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 --- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc
+++ b/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( @@ -331,7 +331,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab(
const JavaParamRef<jobject>& obj, const JavaParamRef<jobject>& jprofile,
jint tab_index) { jint tab_index) {
DCHECK_GE(tab_index, 0); DCHECK_GE(tab_index, 0);
- DCHECK_LT(tab_index, 2); - DCHECK_LT(tab_index, 2);
+ DCHECK_LT(tab_index, 3); + DCHECK_LT(tab_index, 3);
GetPrefService()->SetInteger(browsing_data::prefs::kLastClearBrowsingDataTab, GetPrefService(jprofile)->SetInteger(
tab_index); 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 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 --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
+++ b/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( void ChromeBrowsingDataLifetimeManager::ClearBrowsingDataForOnExitPolicy(
bool keep_browser_alive) { 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)) + if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteBrowsingHistoryAtStart))
+ data_types.Append(browsing_data::policy_data_types::kBrowsingHistoryName); + 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)) + if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeletePasswordsAtStart))
+ data_types.Append(browsing_data::policy_data_types::kPasswordSigninName); + data_types.Append(browsing_data::policy_data_types::kPasswordSigninName);
+ if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteFormDataAtStart)) + if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteFormDataAtStart))
+ data_types.Append(browsing_data::policy_data_types::kAutofillName); + 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)) + if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteSiteSettingsAtStart))
+ data_types.Append(browsing_data::policy_data_types::kSiteSettingsName); + 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() && if (!data_types.empty() &&
IsConditionSatisfiedForBrowsingDataRemoval(GetSyncTypesForPolicyPref( IsConditionSatisfiedForBrowsingDataRemoval(GetSyncTypesForPolicyPref(
@@ -427,6 +444,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() { @@ -422,6 +439,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() {
bool ChromeBrowsingDataLifetimeManager:: bool ChromeBrowsingDataLifetimeManager::
IsConditionSatisfiedForBrowsingDataRemoval( IsConditionSatisfiedForBrowsingDataRemoval(
const syncer::UserSelectableTypeSet sync_types) { const syncer::UserSelectableTypeSet sync_types) {
+ if ((true)) return true; + if ((true)) return true;
bool sync_disabled = !SyncServiceFactory::IsSyncAllowed(profile_); bool sync_disabled = !SyncServiceFactory::IsSyncAllowed(profile_);
// Return the state of sync if // Condition is satisfied if sync is fully disabled by policy.
// `features::kDataRetentionPoliciesDisableSyncTypesNeeded` is disabled or if 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 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 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/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( @@ -436,6 +436,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
delete_end_, CreateTaskCompletionClosure(TracingDataType::kHistory), CreateTaskCompletionClosure(TracingDataType::kHistory),
&history_task_tracker_); &history_task_tracker_);
} }
+ } + }
@@ -289,7 +291,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
if (ClipboardRecentContent::GetInstance()) if (ClipboardRecentContent::GetInstance())
ClipboardRecentContent::GetInstance()->SuppressClipboardContent(); 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_CONTENTS |
prerender::NoStatePrefetchManager::CLEAR_PRERENDER_HISTORY); 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 // 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 // which these profiles and credit cards were learned. These are a form of
// history, so clear them as well. // history, so clear them as well.
@@ -490,7 +495,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( @@ -507,7 +512,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
if (data_manager) if (data_manager)
data_manager->Refresh(); data_manager->Refresh();
} }
@@ -309,7 +311,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
base::ThreadPool::PostTaskAndReply( base::ThreadPool::PostTaskAndReply(
FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()}, FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()},
base::BindOnce( base::BindOnce(
@@ -565,9 +572,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( @@ -582,9 +589,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
} }
device_event_log::Clear(delete_begin_, delete_end_); 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) { + if (remove_mask & content::BrowsingDataRemover::DATA_TYPE_CACHE) {
FindBarStateFactory::GetForBrowserContext(profile_)->SetLastSearchText( content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange(
std::u16string()); 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 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 --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/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] = (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] =
settings_api::PrefType::PREF_TYPE_NUMBER; settings_api::PrefType::kNumber;
+ (*s_allowlist)[browsing_data::prefs::kDeleteBrowsingHistoryAtStart] = + (*s_allowlist)[browsing_data::prefs::kDeleteBrowsingHistoryAtStart] =
+ settings_api::PrefType::PREF_TYPE_BOOLEAN; + settings_api::PrefType::kBoolean;
+ (*s_allowlist)[browsing_data::prefs::kDeleteDownloadHistoryAtStart] = + (*s_allowlist)[browsing_data::prefs::kDeleteDownloadHistoryAtStart] =
+ settings_api::PrefType::PREF_TYPE_BOOLEAN; + settings_api::PrefType::kBoolean;
+ (*s_allowlist)[browsing_data::prefs::kDeleteCacheAtStart] = + (*s_allowlist)[browsing_data::prefs::kDeleteCacheAtStart] =
+ settings_api::PrefType::PREF_TYPE_BOOLEAN; + settings_api::PrefType::kBoolean;
+ (*s_allowlist)[browsing_data::prefs::kDeleteCookiesAtStart] = + (*s_allowlist)[browsing_data::prefs::kDeleteCookiesAtStart] =
+ settings_api::PrefType::PREF_TYPE_BOOLEAN; + settings_api::PrefType::kBoolean;
+ (*s_allowlist)[browsing_data::prefs::kDeletePasswordsAtStart] = + (*s_allowlist)[browsing_data::prefs::kDeletePasswordsAtStart] =
+ settings_api::PrefType::PREF_TYPE_BOOLEAN; + settings_api::PrefType::kBoolean;
+ (*s_allowlist)[browsing_data::prefs::kDeleteFormDataAtStart] = + (*s_allowlist)[browsing_data::prefs::kDeleteFormDataAtStart] =
+ settings_api::PrefType::PREF_TYPE_BOOLEAN; + settings_api::PrefType::kBoolean;
+ (*s_allowlist)[browsing_data::prefs::kDeleteSiteSettingsAtStart] = + (*s_allowlist)[browsing_data::prefs::kDeleteSiteSettingsAtStart] =
+ settings_api::PrefType::PREF_TYPE_BOOLEAN; + settings_api::PrefType::kBoolean;
+ (*s_allowlist)[browsing_data::prefs::kDeleteHostedAppsDataAtStart] = + (*s_allowlist)[browsing_data::prefs::kDeleteHostedAppsDataAtStart] =
+ settings_api::PrefType::PREF_TYPE_BOOLEAN; + settings_api::PrefType::kBoolean;
+ +
// Accessibility. // Accessibility.
(*s_allowlist)[::prefs::kAccessibilityImageLabelsEnabled] = (*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 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 --- 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 +++ 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 @NativeMethods
interface Natives { interface Natives {
void flushPersistentDataForAllProfiles(); void flushPersistentDataForAllProfiles();
void removeSessionCookiesForAllProfiles(); void removeSessionCookiesForAllProfiles();
+ void removeBrowsingDataAtStart(); + 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 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 --- a/chrome/browser/profiles/android/profile_manager_utils.cc
+++ b/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(), g_browser_process->profile_manager()->GetLoadedProfiles(),
RemoveSessionCookiesForProfile); 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 diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
--- a/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc
@@ -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, void ProfileManager::DoFinalInitForServices(Profile* profile,
bool go_off_the_record) { bool go_off_the_record) {
if (!do_final_services_init_ || 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 diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h
--- a/chrome/browser/profiles/profile_manager.h --- a/chrome/browser/profiles/profile_manager.h
+++ b/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. // profiles.
std::vector<Profile*> GetLoadedProfiles() const; 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 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 --- 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 +++ 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> disabled="[[clearingInProgress_]]" no-set-pref>
</settings-checkbox> </settings-checkbox>
</div> </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 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 --- 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 +++ 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: () => value: () =>
[loadTimeData.getString('basicPageTitle'), [loadTimeData.getString('basicPageTitle'),
loadTimeData.getString('advancedPageTitle'), 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 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -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."> <message name="IDS_CLEAR_BROWSING_DATA_BASIC_TAB_TITLE" desc="The title of the tab showing the basic clear browsing data options.">
Basic Basic
</message> </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 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 --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/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, @@ -1674,6 +1674,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
{"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearedData", IDS_SETTINGS_CLEARED_DATA},
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
+ {"atStartPageTitle", IDS_CLEAR_BROWSING_DATA_ATSTART_TAB_TITLE}, + {"atStartPageTitle", IDS_CLEAR_BROWSING_DATA_ATSTART_TAB_TITLE},
{"titleAndCount", IDS_SETTINGS_TITLE_AND_COUNT}, {"titleAndCount", IDS_SETTINGS_TITLE_AND_COUNT},
{"safeBrowsingEnableExtendedReportingDesc", {"safeBrowsingEnableExtendedReportingDesc",
IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING_DESC}, 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 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 --- a/components/browsing_data/core/browsing_data_policies_utils.cc
+++ b/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 { namespace policy_data_types {
// Data retention policy types that require sync to be disabled. // Data retention policy types that require sync to be disabled.
-const char kBrowsingHistoryName[] = "browsing_history"; -constexpr char kBrowsingHistoryName[] = "browsing_history";
-const char kPasswordSigninName[] = "password_signin"; -constexpr char kPasswordSigninName[] = "password_signin";
-const char kAutofillName[] = "autofill"; -constexpr char kAutofillName[] = "autofill";
-const char kSiteSettingsName[] = "site_settings"; -constexpr char kSiteSettingsName[] = "site_settings";
+extern const char kBrowsingHistoryName[] = "browsing_history"; +extern constexpr char kBrowsingHistoryName[] = "browsing_history";
+extern const char kPasswordSigninName[] = "password_signin"; +extern constexpr char kPasswordSigninName[] = "password_signin";
+extern const char kAutofillName[] = "autofill"; +extern constexpr char kAutofillName[] = "autofill";
+extern const char kSiteSettingsName[] = "site_settings"; +extern constexpr char kSiteSettingsName[] = "site_settings";
// Data retention policy types that do not require sync to be disabled. // Data retention policy types that do not require sync to be disabled.
-const char kHostedAppDataName[] = "hosted_app_data"; -constexpr char kHostedAppDataName[] = "hosted_app_data";
-const char kDownloadHistoryName[] = "download_history"; -constexpr char kDownloadHistoryName[] = "download_history";
-const char kCookiesAndOtherSiteDataName[] = "cookies_and_other_site_data"; -constexpr char kCookiesAndOtherSiteDataName[] = "cookies_and_other_site_data";
-const char kCachedImagesAndFilesName[] = "cached_images_and_files"; -constexpr char kCachedImagesAndFilesName[] = "cached_images_and_files";
+extern const char kHostedAppDataName[] = "hosted_app_data"; +extern constexpr char kHostedAppDataName[] = "hosted_app_data";
+extern const char kDownloadHistoryName[] = "download_history"; +extern constexpr char kDownloadHistoryName[] = "download_history";
+extern const char kCookiesAndOtherSiteDataName[] = "cookies_and_other_site_data"; +extern constexpr char kCookiesAndOtherSiteDataName[] = "cookies_and_other_site_data";
+extern const char kCachedImagesAndFilesName[] = "cached_images_and_files"; +extern constexpr char kCachedImagesAndFilesName[] = "cached_images_and_files";
} // namespace policy_data_types } // 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 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 --- a/components/browsing_data/core/browsing_data_policies_utils.h
+++ b/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 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 --- a/components/browsing_data/core/pref_names.cc
+++ b/components/browsing_data/core/pref_names.cc +++ b/components/browsing_data/core/pref_names.cc
@@ -26,6 +26,16 @@ const char kClearBrowsingDataOnExitDeletionPending[] = @@ -47,6 +47,23 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
// 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) {
registry->RegisterIntegerPref( registry->RegisterIntegerPref(
kClearBrowsingDataHistoryNoticeShownTimes, 0); 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 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 --- a/components/browsing_data/core/pref_names.h
+++ b/components/browsing_data/core/pref_names.h +++ b/components/browsing_data/core/pref_names.h
@@ -17,6 +17,15 @@ extern const char kBrowsingDataLifetime[]; @@ -28,6 +28,16 @@ inline constexpr char kClearBrowsingDataOnExitDeletionPending[] =
extern const char kClearBrowsingDataOnExitDeletionPending[]; inline constexpr char kClearBrowsingDataOnExitList[] =
extern const char kClearBrowsingDataOnExitList[]; "browser.clear_data.clear_on_exit";
+extern const char kDeleteBrowsingHistoryAtStart[]; +// Clear Browsing Data dialog datatype preferences.
+extern const char kDeleteDownloadHistoryAtStart[]; +inline constexpr char kDeleteBrowsingHistoryAtStart[] = "browser.clear_data.browsing_history_at_start";
+extern const char kDeleteCacheAtStart[]; +inline constexpr char kDeleteDownloadHistoryAtStart[] = "browser.clear_data.download_history_at_start";
+extern const char kDeleteCookiesAtStart[]; +inline constexpr char kDeleteCacheAtStart[] = "browser.clear_data.cache_at_start";
+extern const char kDeletePasswordsAtStart[]; +inline constexpr char kDeleteCookiesAtStart[] = "browser.clear_data.cookies_at_start";
+extern const char kDeleteFormDataAtStart[]; +inline constexpr char kDeletePasswordsAtStart[] = "browser.clear_data.passwords_at_start";
+extern const char kDeleteHostedAppsDataAtStart[]; +inline constexpr char kDeleteFormDataAtStart[] = "browser.clear_data.form_data_at_start";
+extern const char kDeleteSiteSettingsAtStart[]; +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[]; // Clear browsing data deletion time period.
extern const char kDeleteTimePeriodBasic[]; 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
@@ -4,31 +4,35 @@ Subject: Add setting to invert tap and long tap
Reverses single tap to long tap in android for accessibility reasons. Reverses single tap to long tap in android for accessibility reasons.
The feature can be activated from the accessibility settings. 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 + chrome/android/java/res/values/ids.xml | 1 +
.../ChromeAccessibilitySettingsDelegate.java | 18 ++++++++++ .../ChromeAccessibilitySettingsDelegate.java | 18 ++++++++++
.../contextmenu/ChromeContextMenuItem.java | 5 ++- .../contextmenu/ChromeContextMenuItem.java | 5 ++-
.../ChromeContextMenuPopulator.java | 5 +++ .../ChromeContextMenuPopulator.java | 5 +++
.../tab/TabContextMenuItemDelegate.java | 8 +++++ .../tab/TabContextMenuItemDelegate.java | 8 +++++
chrome/browser/about_flags.cc | 5 +++
.../contextmenu/ContextMenuItemDelegate.java | 2 ++ .../contextmenu/ContextMenuItemDelegate.java | 2 ++
chrome/browser/flag_descriptions.cc | 4 +++
chrome/browser/flag_descriptions.h | 3 ++
.../flags/android/chrome_feature_list.cc | 1 + .../flags/android/chrome_feature_list.cc | 1 +
.../browser/flags/ChromeFeatureList.java | 5 +++ .../browser/flags/ChromeFeatureList.java | 5 +++
.../strings/android_chrome_strings.grd | 9 +++++ .../strings/android_chrome_strings.grd | 9 +++++
.../res/xml/accessibility_preferences.xml | 5 +++ .../res/xml/accessibility_preferences.xml | 5 +++
.../accessibility/AccessibilitySettings.java | 11 ++++++ .../accessibility/AccessibilitySettings.java | 11 ++++++
.../AccessibilitySettingsDelegate.java | 2 ++ .../AccessibilitySettingsDelegate.java | 2 ++
third_party/blink/common/features.cc | 4 +++ ...Add-setting-to-invert-tap-and-long-tap.inc | 8 +++++
third_party/blink/public/common/features.h | 2 ++ ...Add-setting-to-invert-tap-and-long-tap.inc | 3 ++
.../renderer/core/html/html_anchor_element.cc | 35 +++++++++++++++---- ...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_anchor_element.h | 9 +++--
.../renderer/core/html/html_image_element.cc | 17 +++++++++ .../renderer/core/html/html_image_element.cc | 17 +++++++++
.../renderer/core/html/html_image_element.h | 2 ++ .../renderer/core/html/html_image_element.h | 2 ++
.../core/page/context_menu_controller.cc | 32 ++++++++++++----- .../core/page/context_menu_controller.cc | 32 ++++++++++++-----
.../core/page/context_menu_controller.h | 5 +-- .../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 diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml
--- a/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml
@@ -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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
@@ -148,6 +148,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting @@ -163,6 +163,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
mSnackbarManager.showSnackbar(mSnackbar); mSnackbarManager.showSnackbar(mSnackbar);
} }
@@ -56,7 +60,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
+ +
+ @Override + @Override
+ public void setEnabled(boolean value) { + 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); + "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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
@@ -89,8 +89,9 @@ class ChromeContextMenuItem { @@ -111,8 +111,9 @@ class ChromeContextMenuItem {
int SHARE_HIGHLIGHT = 32; int SHARE_HIGHLIGHT = 32;
int REMOVE_HIGHLIGHT = 33; int REMOVE_HIGHLIGHT = 33;
int LEARN_MORE = 34; 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; + int NUM_ENTRIES = 36;
} }
/** /** Mapping from {@link Item} to the ID found in the ids.xml. */
@@ -132,6 +133,7 @@ class ChromeContextMenuItem { @@ -152,6 +153,7 @@ class ChromeContextMenuItem {
R.id.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT R.id.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
R.id.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT R.id.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
R.id.contextmenu_learn_more, // Item.LEARN_MORE R.id.contextmenu_learn_more, // Item.LEARN_MORE
+ R.id.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB + R.id.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB
}; };
/** /** Mapping from {@link Item} to the ID of the string that describes the action of the item. */
@@ -173,6 +175,7 @@ class ChromeContextMenuItem { @@ -191,6 +193,7 @@ class ChromeContextMenuItem {
R.string.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT R.string.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
R.string.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT R.string.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
R.string.contextmenu_learn_more, // Item.LEARN_MORE R.string.contextmenu_learn_more, // Item.LEARN_MORE
+ R.string.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB: + 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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
@@ -240,6 +240,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { @@ -266,6 +266,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
if (mParams.isAnchor()) { if (mParams.isAnchor()) {
ModelList linkGroup = new ModelList(); ModelList linkGroup = new ModelList();
+ if (ChromeFeatureList.sShowAlwaysContextMenuOnLinks.isEnabled()) { + if (ChromeFeatureList.sShowAlwaysContextMenuOnLinks.isEnabled()) {
+ linkGroup.add(createListItem(Item.FOLLOW_LINK)); + linkGroup.add(createListItem(Item.FOLLOW_LINK));
+ } + }
if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl()) if (FirstRunStatus.getFirstRunFlowComplete()
&& !isEmptyUrl(mParams.getUrl())
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) { && UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
if (mMode == ContextMenuMode.NORMAL) { @@ -631,6 +634,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -598,6 +601,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { getProfile(),
ShareHelper.shareDirectly( false);
params, ShareHelper.getLastShareComponentName(), getProfile(), false); });
});
+ } else if (itemId == R.id.contextmenu_open_in_tab) { + } else if (itemId == R.id.contextmenu_open_in_tab) {
+ mItemDelegate.onOpenUrl(mParams.getUrl(), mParams.getReferrer()); + mItemDelegate.onOpenUrl(mParams.getUrl(), mParams.getReferrer());
} else if (itemId == R.id.contextmenu_open_in_chrome) { } else if (itemId == R.id.contextmenu_open_in_chrome) {
@@ -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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
@@ -249,6 +249,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { @@ -273,6 +273,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
mTab.loadUrl(loadUrlParams); mTab.loadUrl(loadUrlParams);
} }
@@ -139,25 +143,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
@Override @Override
public void onOpenImageInNewTab(GURL url, Referrer referrer) { public void onOpenImageInNewTab(GURL url, Referrer referrer) {
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); 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 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 --- 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 +++ 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); 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. * Called when the {@code url} is of an image and should be opened in a new tab.
* @param url The image URL to open. * @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 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -314,6 +314,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { @@ -280,6 +280,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kTabGroupsContinuationAndroid, &kTabGroupParityAndroid,
&kTabGroupsForTablets, &kTabletTabSwitcherLongPressMenu,
&kDiscoverFeedMultiColumn, &kTabletToolbarIncognitoStatus,
+ &blink::features::kShowAlwaysContextMenuOnLinks, + &blink::features::kShowAlwaysContextMenuOnLinks,
&kTabStripRedesign,
&kTabletToolbarReordering, &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 diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -312,6 +312,8 @@ public abstract class ChromeFeatureList { @@ -342,6 +342,8 @@ public abstract class ChromeFeatureList {
public static final String METRICS_SETTINGS_ANDROID = "MetricsSettingsAndroid"; public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe";
public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM =
"MoveTopToolbarToBottom"; "MoveTopToolbarToBottom";
+ public static final String SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS = + public static final String SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS =
@@ -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_VARIANT = "NotificationPermissionVariant";
public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET =
"NotificationPermissionBottomSheet"; "NotificationPermissionBottomSheet";
@@ -571,6 +573,8 @@ public abstract class ChromeFeatureList { @@ -619,6 +621,8 @@ public abstract class ChromeFeatureList {
new CachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false); newCachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false);
public static final CachedFlag sMoveTopToolbarToBottom = 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 = + 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 = public static final CachedFlag sOmniboxModernizeVisualUpdate =
new CachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, false); newCachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, true);
public static final CachedFlag sOmniboxMostVisitedTilesAddRecycledViewPool = public static final CachedFlag sOptimizationGuidePushNotifications =
@@ -693,6 +697,7 @@ public abstract class ChromeFeatureList { @@ -771,6 +775,7 @@ public abstract class ChromeFeatureList {
sTabStripRedesign, sTabWindowManagerReportIndicesMismatch,
sTabStripStartupRefactoring, sToolbarUseHardwareBitmapDraw,
sTabletToolbarReordering, sUseChimeAndroidSdk,
+ sShowAlwaysContextMenuOnLinks, + sShowAlwaysContextMenuOnLinks,
sTabToGTSAnimation, sUseLibunwindstackNativeUnwinderAndroid,
sToolbarUseHardwareBitmapDraw, sVerticalAutomotiveBackButtonToolbar);
sUseChimeAndroidSdk,
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -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."> <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 Move toolbar to bottom
</message> </message>
@@ -249,7 +211,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Safety check --> <!-- Safety check -->
<message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]"> <message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]">
@@ -2750,6 +2756,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</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]"> <message name="IDS_CONTEXTMENU_OPEN_IN_NEW_CHROME_TAB" desc="Context sensitive menu item to open the selected link in a new Chrome tab from Chrome Custom Tab. [CHAR_LIMIT=30]">
Open in new Chrome tab Open in new Chrome tab
</message> </message>
@@ -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 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
@@ -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:summary="@string/page_zoom_always_show_preference_summary"
android:title="@string/page_zoom_always_show_preference_title" /> android:title="@string/page_zoom_always_show_preference_title" />
@@ -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 diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
@@ -37,6 +37,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat @@ -35,6 +35,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
private BooleanPreferenceDelegate mForceTabletUIDelegate; private BooleanPreferenceDelegate mForceTabletUIDelegate;
static final String PREF_FORCE_TABLET_UI = "force_tablet_ui"; static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
static final String PREF_MOVE_TOOLBAR_TO_BOTTOM = "move_toolbar_bottom"; 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"; + static final String PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS = "always_show_contextmenu_on_links";
private TextScalePreference mTextScalePref; private TextScalePreference mTextScalePref;
private PageZoomPreference mPageZoomDefaultZoomPref; private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomAlwaysShowPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
@@ -47,6 +48,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat @@ -45,6 +46,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
private BooleanPreferenceDelegate mAccessibilityTabSwitcherDelegate; private BooleanPreferenceDelegate mReaderForAccessibilityDelegate;
private double mPageZoomLatestDefaultZoomPrefValue; private double mPageZoomLatestDefaultZoomPrefValue;
private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate; private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
+ private BooleanPreferenceDelegate mShowAlwaysContextMenuOnLinksDelegate; + private BooleanPreferenceDelegate mShowAlwaysContextMenuOnLinksDelegate;
private FontSizePrefs mFontSizePrefs; private FontSizePrefs mFontSizePrefs;
private FontSizePrefsObserver mFontSizePrefsObserver = new FontSizePrefsObserver() { private FontSizePrefsObserver mFontSizePrefsObserver =
@@ -143,6 +145,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat @@ -149,6 +151,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
mMoveToolbarToBottomPref.setChecked(mMoveTopToolbarToBottomDelegate.isEnabled()); mMoveToolbarToBottomPref.setChecked(mMoveTopToolbarToBottomDelegate.isEnabled());
mMoveToolbarToBottomPref.setOnPreferenceChangeListener(this); mMoveToolbarToBottomPref.setOnPreferenceChangeListener(this);
@@ -304,56 +266,57 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
+ mShowAlwaysContextMenuOnLinksPref.setOnPreferenceChangeListener(this); + mShowAlwaysContextMenuOnLinksPref.setOnPreferenceChangeListener(this);
+ +
Preference captions = findPreference(PREF_CAPTIONS); Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener(preference -> { captions.setOnPreferenceClickListener(
Intent intent = new Intent(Settings.ACTION_CAPTIONING_SETTINGS); preference -> {
@@ -205,6 +213,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat @@ -226,6 +234,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
} else if (PREF_MOVE_TOOLBAR_TO_BOTTOM.equals(preference.getKey())) { } else if (PREF_MOVE_TOOLBAR_TO_BOTTOM.equals(preference.getKey())) {
mMoveTopToolbarToBottomDelegate.setEnabled((Boolean) newValue); mMoveTopToolbarToBottomDelegate.setEnabled((Boolean) newValue);
mDelegate.requestRestart(getActivity()); mDelegate.requestRestart(getActivity());
+ } else if (PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS.equals(preference.getKey())) { + } else if (PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS.equals(preference.getKey())) {
+ mShowAlwaysContextMenuOnLinksDelegate.setEnabled((Boolean) newValue); + mShowAlwaysContextMenuOnLinksDelegate.setEnabled((Boolean) newValue);
+ mDelegate.requestRestart(getActivity()); + 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 diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
@@ -33,6 +33,8 @@ public interface AccessibilitySettingsDelegate { @@ -43,6 +43,8 @@ public interface AccessibilitySettingsDelegate {
BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate(); BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate();
+ BooleanPreferenceDelegate getShowAlwaysContextMenuOnLinksDelegate(); + BooleanPreferenceDelegate getShowAlwaysContextMenuOnLinksDelegate();
+ +
/** /** @return The BrowserContextHandle that should be used to read and update settings. */
* @return The BrowserContextHandle that should be used to read and update settings. BrowserContextHandle getBrowserContextHandle();
*/
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);
+BASE_FEATURE(kShowAlwaysContextMenuOnLinks, 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
+ "ShowAlwaysContextMenuOnLinks", new file mode 100644
+ base::FEATURE_DISABLED_BY_DEFAULT); --- /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 + {"show-always-context-menu-on-links",
// permitted to be included in slow reports traces. See crbug.com/1181774. + "Always show contextmenu on links",
BASE_FEATURE(kBackgroundTracingPerformanceMark, + "Use accessibility settings to set it.", kOsAndroid,
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h + FEATURE_VALUE_TYPE(blink::features::kShowAlwaysContextMenuOnLinks)},
--- a/third_party/blink/public/common/features.h +
+++ b/third_party/blink/public/common/features.h +#endif
@@ -127,6 +127,8 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBackForwardCacheWithKeepaliveRequest); 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
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBackgroundResourceFetch); --- /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); +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 diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc
--- a/third_party/blink/renderer/core/html/html_anchor_element.cc --- a/third_party/blink/renderer/core/html/html_anchor_element.cc
+++ b/third_party/blink/renderer/core/html/html_anchor_element.cc +++ b/third_party/blink/renderer/core/html/html_anchor_element.cc
@@ -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/page/page.h"
#include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h" #include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h" #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, bool is_trusted,
base::TimeTicks platform_time_stamp, base::TimeTicks platform_time_stamp,
KURL completed_url) { 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(); LocalDOMWindow* window = GetDocument().domWindow();
if (!window) { if (!window) {
return; return;
@@ -489,6 +501,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request, @@ -527,6 +539,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
/*element=*/this)); /*element=*/this, request.HasUserGesture()));
} }
+ if (!do_not_show_context_menu && + 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* target_frame =
frame->Tree().FindOrCreateFrameForNavigation(frame_request, 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) { -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(); event.SetDefaultHandled();
LocalDOMWindow* window = GetDocument().domWindow(); 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( - base::OnceClosure navigate_closure = WTF::BindOnce(
- &HTMLAnchorElement::NavigateToHyperlink, WrapWeakPersistent(this), - &HTMLAnchorElement::NavigateToHyperlink, WrapWeakPersistent(this),
- std::move(request), navigation_policy, event.isTrusted(), - std::move(request), navigation_policy, event.isTrusted(),
- event.PlatformTimeStamp(), std::move(completed_url)); - event.PlatformTimeStamp(), std::move(completed_url));
-
if (navigation_policy == kNavigationPolicyDownload) { if (navigation_policy == kNavigationPolicyDownload ||
navigation_policy == kNavigationPolicyLinkPreview) {
+ base::OnceClosure navigate_closure = WTF::BindOnce( + base::OnceClosure navigate_closure = WTF::BindOnce(
+ &HTMLAnchorElement::NavigateToHyperlink, WrapWeakPersistent(this), + &HTMLAnchorElement::NavigateToHyperlink, WrapWeakPersistent(this),
+ std::move(request), navigation_policy, event.isTrusted(), + std::move(request), navigation_policy, event.isTrusted(),
+ event.PlatformTimeStamp(), std::move(completed_url)); + event.PlatformTimeStamp(), std::move(completed_url));
// If Alt is held down it will force a download, however, wait to see if // We distinguish single/double click with some modifiers.
// this is an alt-double-click which should instead select the text of the // See the comment of `EventHandler.delayed_navigation_task_handle_`.
// link. auto task_handle = PostDelayedCancellableTask(
@@ -624,7 +645,9 @@ void HTMLAnchorElement::HandleClick(Event& event) { @@ -672,7 +692,9 @@ void HTMLAnchorElement::HandleClick(Event& event) {
frame->GetEventHandler().SetDownloadModifierTaskHandle( frame->GetEventHandler().SetDelayedNavigationTaskHandle(
std::move(task_handle)); std::move(task_handle));
} else { } else {
- std::move(navigate_closure).Run(); - 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 diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_party/blink/renderer/core/html/html_anchor_element.h
--- a/third_party/blink/renderer/core/html/html_anchor_element.h --- a/third_party/blink/renderer/core/html/html_anchor_element.h
+++ b/third_party/blink/renderer/core/html/html_anchor_element.h +++ b/third_party/blink/renderer/core/html/html_anchor_element.h
@@ -101,6 +101,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils { @@ -106,6 +106,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
void SendPings(const KURL& destination_url) const; void SetHovered(bool hovered) override;
void Trace(Visitor*) const override; void Trace(Visitor*) const override;
+ void HandleClick(Event&, bool do_not_show_context_menu = false); + void HandleClick(Event&, bool do_not_show_context_menu = false);
protected: protected:
void ParseAttribute(const AttributeModificationParams&) override; 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; bool IsInteractiveContent() const final;
InsertionNotificationRequest InsertedInto(ContainerNode&) override; InsertionNotificationRequest InsertedInto(ContainerNode&) override;
void RemovedFrom(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 diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_party/blink/renderer/core/html/html_image_element.cc
--- a/third_party/blink/renderer/core/html/html_image_element.cc --- a/third_party/blink/renderer/core/html/html_image_element.cc
+++ b/third_party/blink/renderer/core/html/html_image_element.cc +++ b/third_party/blink/renderer/core/html/html_image_element.cc
@@ -36,6 +36,7 @@ @@ -37,6 +37,7 @@
#include "third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h" #include "third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h"
#include "third_party/blink/renderer/core/dom/node_traversal.h" #include "third_party/blink/renderer/core/dom/node_traversal.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h" #include "third_party/blink/renderer/core/dom/shadow_root.h"
@@ -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/attribution_src_loader.h"
#include "third_party/blink/renderer/core/frame/deprecation/deprecation.h" #include "third_party/blink/renderer/core/frame/deprecation/deprecation.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h"
@@ -62,6 +63,7 @@ @@ -65,6 +66,7 @@
#include "third_party/blink/renderer/core/media_type_names.h" #include "third_party/blink/renderer/core/media_type_names.h"
#include "third_party/blink/renderer/core/page/chrome_client.h" #include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/page/page.h" #include "third_party/blink/renderer/core/page/page.h"
+#include "third_party/blink/renderer/core/page/context_menu_controller.h" +#include "third_party/blink/renderer/core/page/context_menu_controller.h"
#include "third_party/blink/renderer/core/paint/timing/paint_timing.h" #include "third_party/blink/renderer/core/paint/timing/paint_timing.h"
#include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/core/style/content_data.h" #include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h"
@@ -718,6 +720,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( @@ -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 diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_party/blink/renderer/core/html/html_image_element.h
--- a/third_party/blink/renderer/core/html/html_image_element.h --- a/third_party/blink/renderer/core/html/html_image_element.h
+++ b/third_party/blink/renderer/core/html/html_image_element.h +++ b/third_party/blink/renderer/core/html/html_image_element.h
@@ -217,6 +217,8 @@ class CORE_EXPORT HTMLImageElement final @@ -236,6 +236,8 @@ class CORE_EXPORT HTMLImageElement final
void DidAddUserAgentShadowRoot(ShadowRoot&) override; void DidAddUserAgentShadowRoot(ShadowRoot&) override;
void AdjustStyle(ComputedStyleBuilder&) 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 diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc
--- a/third_party/blink/renderer/core/page/context_menu_controller.cc --- a/third_party/blink/renderer/core/page/context_menu_controller.cc
+++ b/third_party/blink/renderer/core/page/context_menu_controller.cc +++ b/third_party/blink/renderer/core/page/context_menu_controller.cc
@@ -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(); mouse_event->SetDefaultHandled();
} }
@@ -414,7 +416,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( @@ -450,7 +452,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch(
bool ContextMenuController::ShowContextMenu(LocalFrame* frame, bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
const PhysicalOffset& point, const PhysicalOffset& point,
WebMenuSourceType source_type, 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 // Displaying the context menu in this function is a big hack as we don't
// have context, i.e. whether this is being invoked via a script or in // have context, i.e. whether this is being invoked via a script or in
// response to user input (Mouse event WM_RBUTTONDOWN, // response to user input (Mouse event WM_RBUTTONDOWN,
@@ -437,6 +440,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, @@ -473,6 +476,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
if (!result.InnerNodeOrImageMapImage()) if (!result.InnerNodeOrImageMapImage())
return false; 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 // Clear any previously set cached results if we are resetting the hit test
// result. // result.
image_selection_cached_result_ = nullptr; image_selection_cached_result_ = nullptr;
@@ -790,11 +802,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, @@ -831,11 +843,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
data.form_renderer_id = GetFormRendererId(result); SetAutofillData(result.InnerNode(), data);
data.field_renderer_id = GetFieldRendererId(result); SetPasswordManagerData(result.InnerElement(), data);
- const bool from_touch = source_type == kMenuSourceTouch || - const bool from_touch = source_type == kMenuSourceTouch ||
- source_type == kMenuSourceLongPress || - 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&); bool ShouldShowContextMenuFromTouch(const ContextMenuData&);
-- --
2.25.1
+105 -50
View File
@@ -7,68 +7,108 @@ Disabled by default.
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
chrome/browser/about_flags.cc | 6 ++++ chrome/browser/about_flags.cc | 1 +
chrome/browser/flag_descriptions.cc | 5 +++ .../engagement/important_sites_util.cc | 9 +++++
chrome/browser/flag_descriptions.h | 3 ++ .../internal/tracker_impl.cc | 3 ++
.../public/feature_configurations.cc | 7 ++++
.../content/site_engagement_score.cc | 5 +++ .../content/site_engagement_score.cc | 5 +++
components/site_engagement/core/BUILD.gn | 6 ++++ 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 +++++++++++++++++++ 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.cc
create mode 100644 components/site_engagement/core/features.h create mode 100644 components/site_engagement/core/features.h
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -146,6 +146,7 @@ @@ -153,6 +153,7 @@
#include "components/segmentation_platform/public/features.h"
#include "components/send_tab_to_self/features.h" #include "components/send_tab_to_self/features.h"
#include "components/services/heap_profiling/public/cpp/switches.h" #include "components/services/heap_profiling/public/cpp/switches.h"
#include "components/services/storage/public/cpp/buckets/bucket_info.h"
+#include "components/site_engagement/core/features.h" +#include "components/site_engagement/core/features.h"
#include "components/shared_highlighting/core/common/shared_highlighting_features.h" #include "components/shared_highlighting/core/common/shared_highlighting_features.h"
#include "components/signin/core/browser/dice_account_reconcilor_delegate.h" #include "components/signin/core/browser/dice_account_reconcilor_delegate.h"
#include "components/signin/public/base/signin_buildflags.h" #include "components/signin/public/base/signin_buildflags.h"
@@ -9437,6 +9438,11 @@ const FeatureEntry kFeatureEntries[] = { diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc
kLargeFaviconFromGoogleVariations, --- a/chrome/browser/engagement/important_sites_util.cc
"LargeFaviconFromGoogle")}, +++ 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", @@ -401,6 +406,10 @@ std::vector<ImportantDomainInfo>
+ flag_descriptions::kSiteEngagementName, ImportantSitesUtil::GetImportantRegisterableDomains(Profile* profile,
+ flag_descriptions::kSiteEngagementDescription, kOsAll, size_t max_results) {
+ FEATURE_VALUE_TYPE(site_engagement::features::kSiteEngagement)}, 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) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
{"force-off-text-autosizing", BUILDFLAG(IS_CHROMEOS)
flag_descriptions::kForceOffTextAutosizingName, if (kIPHPasswordsAccountStorageFeature.name == feature->name) {
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[];
diff --git a/components/site_engagement/content/site_engagement_score.cc b/components/site_engagement/content/site_engagement_score.cc 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 --- a/components/site_engagement/content/site_engagement_score.cc
+++ b/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 new file mode 100644
--- /dev/null --- /dev/null
+++ b/components/site_engagement/core/features.cc +++ b/components/site_engagement/core/features.cc
@@ -0,0 +1,29 @@ @@ -0,0 +1,30 @@
+/* +/*
+ This file is part of Bromite. + This file is part of Bromite.
+ +
@@ -138,8 +178,9 @@ new file mode 100644
+namespace site_engagement { +namespace site_engagement {
+namespace features { +namespace features {
+ +
+const base::Feature kSiteEngagement{"SiteEngagement", +CROMITE_FEATURE(kSiteEngagement,
+ base::FEATURE_DISABLED_BY_DEFAULT}; + "SiteEngagement",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+ +
+} // namespace features +} // namespace features
+} // namespace site_engagement +} // namespace site_engagement
@@ -176,11 +217,25 @@ new file mode 100644
+namespace features { +namespace features {
+ +
+// Enable site engagement +// Enable site engagement
+extern const base::Feature kSiteEngagement; +BASE_DECLARE_FEATURE(kSiteEngagement);
+ +
+} // namespace features +} // namespace features
+} // namespace site_engagement +} // namespace site_engagement
+ +
+#endif // SITE_ENGAGEMENT_CORE_FEATURES_H_ +#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 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
@@ -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.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.SettingsLauncher;
+import org.chromium.components.browser_ui.settings.SettingsUtils; +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.SiteSettingsCategory;
import org.chromium.components.browser_ui.site_settings.SiteSettingsPreferenceFragment;
import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat; 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(); finish();
return true; return true;
} else if (item.getItemId() == R.id.menu_id_general_help) { } else if (item.getItemId() == R.id.menu_id_general_help) {
- HelpAndFeedbackLauncherImpl.getForProfile(mProfile).show( - HelpAndFeedbackLauncherImpl.getForProfile(mProfile)
- this, getString(R.string.help_context_settings), null); - .show(this, getString(R.string.help_context_settings), null);
+ if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) { + if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) {
+ ((SettingsUtils.ISupportHelpAndFeedback)mainFragment).onHelpAndFeebackPressed(); + ((SettingsUtils.ISupportHelpAndFeedback)mainFragment).onHelpAndFeebackPressed();
+ } else { + } else {
+ HelpAndFeedbackLauncherImpl.getForProfile(mProfile).show( + HelpAndFeedbackLauncherImpl.getForProfile(mProfile)
+ this, getString(R.string.help_context_settings), null); + .show(this, getString(R.string.help_context_settings), null);
+ } + }
return true; 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 diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
--- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java --- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
+++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java +++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
@@ -97,4 +97,8 @@ public class SettingsUtils { @@ -91,4 +91,8 @@ public class SettingsUtils {
ToolbarUtils.setOverflowMenuVisibility(toolbar, visibility); ToolbarUtils.setOverflowMenuVisibility(toolbar, visibility);
return true; 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